diff options
| author | Nathan Reiner <nathan@nathanreiner.xyz> | 2026-08-05 09:08:24 +0200 |
|---|---|---|
| committer | Nathan Reiner <nathan@nathanreiner.xyz> | 2026-08-05 09:08:24 +0200 |
| commit | 0eaa2a420cb699cdb23ce9b1573560a5d9e59a31 (patch) | |
| tree | 7c33f4be58e47aa6c1641b66442216352fa3f36b /src/z/parser/lexer.zig | |
| parent | 356c2bc0ccb1794b5ec219079d8c5b85ddcc4c87 (diff) | |
add regex literals
Diffstat (limited to 'src/z/parser/lexer.zig')
| -rw-r--r-- | src/z/parser/lexer.zig | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/z/parser/lexer.zig b/src/z/parser/lexer.zig index 66d4211..5beefde 100644 --- a/src/z/parser/lexer.zig +++ b/src/z/parser/lexer.zig @@ -43,6 +43,7 @@ pub fn Lexer(TokenKind: type) type { last_buffer: []const u8, tokens: []const Token(TokenKind) = &.{}, context: TokenKind.Context = .{}, + last_context: TokenKind.Context = .{}, pub fn init(buffer: []const u8) Self { return .{ @@ -114,11 +115,13 @@ pub fn Lexer(TokenKind: type) type { pub fn revert(self: *Self) void { self.buffer = self.last_buffer; + self.context = self.last_context; } pub fn commit(self: *Self, tok: Token(TokenKind)) void { self.tokens = self.tokens ++ [_]Token(TokenKind){tok.stop(self)}; self.last_buffer = self.buffer; + self.last_context = self.context; } }; } |