diff options
author | Dave Gauer <dave@ratfactor.com> | 2021-05-09 13:10:09 -0400 |
---|---|---|
committer | Dave Gauer <dave@ratfactor.com> | 2021-05-09 13:10:09 -0400 |
commit | de584dcd718b6d55179c00a4ec246f029604ab57 (patch) | |
tree | 75d6401a2f47e0aca053cbbd2e4727bb0e4b16f7 | |
parent | 22ac3628a15737af8f59d1e3b1d38b74edc7f1b9 (diff) | |
download | ziglings-de584dcd718b6d55179c00a4ec246f029604ab57.tar.gz ziglings-de584dcd718b6d55179c00a4ec246f029604ab57.tar.bz2 ziglings-de584dcd718b6d55179c00a4ec246f029604ab57.tar.xz ziglings-de584dcd718b6d55179c00a4ec246f029604ab57.zip |
Add ex079 quoted identifiers
-rw-r--r-- | README.md | 1 | ||||
-rw-r--r-- | build.zig | 5 | ||||
-rw-r--r-- | exercises/079_quoted_identifiers.zig | 30 | ||||
-rw-r--r-- | patches/patches/079_quoted_identifiers.patch | 12 |
4 files changed, 48 insertions, 0 deletions
@@ -147,6 +147,7 @@ Core Language * [x] Inline loops * [x] Comptime * [x] Sentinel termination +* [x] Quoted identifiers @"" * [ ] Anonymous structs * [ ] Suspend / Resume * [ ] Async / Await @@ -391,6 +391,11 @@ const exercises = [_]Exercise{ .main_file = "078_sentinels3.zig", .output = "Weird Data!", }, + .{ + .main_file = "079_quoted_identifiers.zig", + .output = "Sweet freedom: 55, false.", + .hint = "Help us, Zig Programmer, you're our only hope!", + }, }; /// Check the zig version to make sure it can compile the examples properly. diff --git a/exercises/079_quoted_identifiers.zig b/exercises/079_quoted_identifiers.zig new file mode 100644 index 0000000..a529b60 --- /dev/null +++ b/exercises/079_quoted_identifiers.zig @@ -0,0 +1,30 @@ +// +// Sometimes you need to create an identifier that will not, for +// whatever reason, play by the naming rules: +// +// const 55_cows: i32 = 55; // ILLEGAL: starts with a number +// const isn't true: bool = false; // ILLEGAL: what even?! +// +// If you try to create either of these under normal +// circumstances, a special Program Identifier Syntax Security +// Team (PISST) will come to your house and take you away. +// +// Thankfully, Zig has a way to sneak these wacky identifiers +// past the authorities: the @"" identifier quoting syntax. +// +// @"foo" +// +// Please help us safely smuggle these fugitive identifiers into +// our program: +// +const print = @import("std").debug.print; + +pub fn main() void { + const 55_cows: i32 = 55; + const isn't true: bool = false; + + print("Sweet freedom: {}, {}.\n", .{ + 55_cows, + isn't true, + }); +} diff --git a/patches/patches/079_quoted_identifiers.patch b/patches/patches/079_quoted_identifiers.patch new file mode 100644 index 0000000..c7bcea8 --- /dev/null +++ b/patches/patches/079_quoted_identifiers.patch @@ -0,0 +1,12 @@ +23,24c23,24 +< const 55_cows: i32 = 55; +< const isn't true: bool = false; +--- +> const @"55_cows": i32 = 55; +> const @"isn't true": bool = false; +27,28c27,28 +< 55_cows, +< isn't true, +--- +> @"55_cows", +> @"isn't true", |