Skip to content

Commit 12e4537

Browse files
authored
fix: automatic semicolon should be inserted given a number decimal a newline
1 parent f5af62c commit 12e4537

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

src/scanner.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,6 @@ static bool scan_automatic_semicolon(TSLexer *lexer, bool comment_condition, boo
152152

153153
switch (lexer->lookahead) {
154154
case ',':
155-
case '.':
156155
case ':':
157156
case ';':
158157
case '*':
@@ -169,6 +168,11 @@ static bool scan_automatic_semicolon(TSLexer *lexer, bool comment_condition, boo
169168
case '/':
170169
return false;
171170

171+
// Insert a semicolon before decimals literals but not otherwise.
172+
case '.':
173+
skip(lexer);
174+
return iswdigit(lexer->lookahead);
175+
172176
// Insert a semicolon before `--` and `++`, but not before binary `+` or `-`.
173177
case '+':
174178
skip(lexer);

test/corpus/literals.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ Numbers
1313
0b1_000_000
1414
1_2_3
1515
12_3.4_5e6_7
16+
.4_5e6_7
1617
0b1_000_000n
1718
01
1819
00000123
@@ -33,6 +34,7 @@ Numbers
3334
(expression_statement (number))
3435
(expression_statement (number))
3536
(expression_statement (number))
37+
(expression_statement (number))
3638
(expression_statement (number)))
3739

3840
============================================

0 commit comments

Comments
 (0)