aboutsummaryrefslogtreecommitdiff
path: root/src/z/parser/lexer.zig
diff options
context:
space:
mode:
authorNathan Reiner <nathan@nathanreiner.xyz>2026-08-05 09:08:24 +0200
committerNathan Reiner <nathan@nathanreiner.xyz>2026-08-05 09:08:24 +0200
commit0eaa2a420cb699cdb23ce9b1573560a5d9e59a31 (patch)
tree7c33f4be58e47aa6c1641b66442216352fa3f36b /src/z/parser/lexer.zig
parent356c2bc0ccb1794b5ec219079d8c5b85ddcc4c87 (diff)
add regex literals
Diffstat (limited to 'src/z/parser/lexer.zig')
-rw-r--r--src/z/parser/lexer.zig3
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;
}
};
}