mirror of
https://codeberg.org/andyscott/ziglings.git
synced 2024-11-09 19:40:48 -05:00
Add ex079 quoted identifiers
This commit is contained in:
parent
d4f5684450
commit
34ac5f6742
4 changed files with 48 additions and 0 deletions
|
@ -147,6 +147,7 @@ Core Language
|
||||||
* [x] Inline loops
|
* [x] Inline loops
|
||||||
* [x] Comptime
|
* [x] Comptime
|
||||||
* [x] Sentinel termination
|
* [x] Sentinel termination
|
||||||
|
* [x] Quoted identifiers @""
|
||||||
* [ ] Anonymous structs
|
* [ ] Anonymous structs
|
||||||
* [ ] Suspend / Resume
|
* [ ] Suspend / Resume
|
||||||
* [ ] Async / Await
|
* [ ] Async / Await
|
||||||
|
|
|
@ -391,6 +391,11 @@ const exercises = [_]Exercise{
|
||||||
.main_file = "078_sentinels3.zig",
|
.main_file = "078_sentinels3.zig",
|
||||||
.output = "Weird Data!",
|
.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.
|
/// Check the zig version to make sure it can compile the examples properly.
|
||||||
|
|
30
exercises/079_quoted_identifiers.zig
Normal file
30
exercises/079_quoted_identifiers.zig
Normal file
|
@ -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,
|
||||||
|
});
|
||||||
|
}
|
12
patches/patches/079_quoted_identifiers.patch
Normal file
12
patches/patches/079_quoted_identifiers.patch
Normal file
|
@ -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",
|
Loading…
Reference in a new issue