aboutsummaryrefslogtreecommitdiff
path: root/src/js_lexer.zig
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2023-04-09 03:16:11 -0700
committerGravatar GitHub <noreply@github.com> 2023-04-09 03:16:11 -0700
commiteb18101d84760eafd804e92d7a8f2126c0f5fae9 (patch)
tree37a7a5819adbe8668d7ba2db86e42a3ad52d23ad /src/js_lexer.zig
parent2117723642c4195f45ef118b5709119811c29fbe (diff)
downloadbun-eb18101d84760eafd804e92d7a8f2126c0f5fae9.tar.gz
bun-eb18101d84760eafd804e92d7a8f2126c0f5fae9.tar.zst
bun-eb18101d84760eafd804e92d7a8f2126c0f5fae9.zip
Update TypeScript parsing to 5.0 (#2593)
* update syntax * seems to work, needs tests * This test wasn't supposed to be added * Many bugfixes to TypeScript parser --------- Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Diffstat (limited to 'src/js_lexer.zig')
-rw-r--r--src/js_lexer.zig47
1 files changed, 28 insertions, 19 deletions
diff --git a/src/js_lexer.zig b/src/js_lexer.zig
index da445235a..2cf2af086 100644
--- a/src/js_lexer.zig
+++ b/src/js_lexer.zig
@@ -1037,15 +1037,6 @@ fn NewLexer_(
try lexer.next();
}
},
- .t_greater_than_greater_than => {
- lexer.token = .t_greater_than;
- lexer.start += 1;
- },
-
- .t_greater_than_greater_than_greater_than => {
- lexer.token = .t_greater_than_greater_than;
- lexer.start += 1;
- },
.t_greater_than_equals => {
lexer.token = .t_equals;
@@ -1054,13 +1045,25 @@ fn NewLexer_(
},
.t_greater_than_greater_than_equals => {
- lexer.token = .t_greater_than_greater_than;
+ lexer.token = .t_greater_than_equals;
lexer.start += 1;
},
+
.t_greater_than_greater_than_greater_than_equals => {
lexer.token = .t_greater_than_greater_than_equals;
lexer.start += 1;
},
+
+ .t_greater_than_greater_than => {
+ lexer.token = .t_greater_than;
+ lexer.start += 1;
+ },
+
+ .t_greater_than_greater_than_greater_than => {
+ lexer.token = .t_greater_than_greater_than;
+ lexer.start += 1;
+ },
+
else => {
try lexer.expected(.t_greater_than);
},
@@ -1772,15 +1775,21 @@ fn NewLexer_(
}
pub fn expectedString(self: *LexerType, text: string) !void {
- const found = finder: {
- if (self.source.contents.len != self.start) {
- break :finder self.raw();
- } else {
- break :finder "end of file";
- }
- };
-
- try self.addRangeError(self.range(), "Expected {s} but found \"{s}\"", .{ text, found }, true);
+ if (self.source.contents.len != self.start) {
+ try self.addRangeError(
+ self.range(),
+ "Expected {s} but found \"{s}\"",
+ .{ text, self.raw() },
+ true,
+ );
+ } else {
+ try self.addRangeError(
+ self.range(),
+ "Expected {s} but found end of file",
+ .{text},
+ true,
+ );
+ }
}
fn scanCommentText(lexer: *LexerType) void {