diff options
| author | Nathan Reiner <nathan@nathanreiner.xyz> | 2026-08-01 20:10:10 +0200 |
|---|---|---|
| committer | Nathan Reiner <nathan@nathanreiner.xyz> | 2026-08-01 20:10:10 +0200 |
| commit | 77642e5081b4ed2516dc08b3ef611c3c444ec6c5 (patch) | |
| tree | 7874546e2357e33346f0b91bb1ac023283cae7fb /src/z/parser/builtin.zig | |
| parent | c8744f9f6a28a23b83603435a3ad987f0d9f181b (diff) | |
restructure parser
Diffstat (limited to 'src/z/parser/builtin.zig')
| -rw-r--r-- | src/z/parser/builtin.zig | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/z/parser/builtin.zig b/src/z/parser/builtin.zig new file mode 100644 index 0000000..fc96fc3 --- /dev/null +++ b/src/z/parser/builtin.zig @@ -0,0 +1,17 @@ +const std = @import("std"); + +const parser = @import("root.zig"); +const Parser = parser.Parser; +const Result = parser.Result; + +pub fn literal(lit: []const u8) Parser(void) { + return .fromType(struct { + pub fn parse(buffer: []const u8) !Result(void) { + if (std.mem.startsWith(u8, buffer, lit)) { + return .{ void{}, buffer[lit.len..] }; + } + + return error.Literal; + } + }); +} |