aboutsummaryrefslogtreecommitdiff
path: root/src/z/parser/js/grammar/punctuator.zig
diff options
context:
space:
mode:
authorNathan Reiner <nathan@nathanreiner.xyz>2026-08-04 22:28:25 +0200
committerNathan Reiner <nathan@nathanreiner.xyz>2026-08-04 22:28:25 +0200
commit356c2bc0ccb1794b5ec219079d8c5b85ddcc4c87 (patch)
treedefa9a0e3c46af6e59e3be3d3ac1482c8fad24c8 /src/z/parser/js/grammar/punctuator.zig
parent06d1607aabad0a967c0500efe305de3fa732f8d3 (diff)
add templates to tokenizer
Diffstat (limited to 'src/z/parser/js/grammar/punctuator.zig')
-rw-r--r--src/z/parser/js/grammar/punctuator.zig5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/z/parser/js/grammar/punctuator.zig b/src/z/parser/js/grammar/punctuator.zig
index a72ab8a..4fd5d16 100644
--- a/src/z/parser/js/grammar/punctuator.zig
+++ b/src/z/parser/js/grammar/punctuator.zig
@@ -86,6 +86,11 @@ pub const Punctuator = enum {
defer lexer.revert();
if (punctuatormap.getLongestPrefix(lexer.buffer)) |pair| {
+
+ if (std.mem.eql(u8, pair.key, "}") and lexer.context.template_nesting > 0) {
+ return Lexer.Error.UnexpectedToken;
+ }
+
const token = lexer.start(.{ .punctuator = pair.value });
try lexer.skipTo(pair.key.len);
lexer.commit(token);