Skip to content

Commit a4ee018

Browse files
robertrossmannMax Brunsfeld
authored andcommitted
Parse BigInt literals (#93)
1 parent b41a968 commit a4ee018

File tree

4 files changed

+91688
-91013
lines changed

4 files changed

+91688
-91013
lines changed

corpus/literals.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@ Numbers
44

55
04000
66
400
7+
100n
78

89
---
910

1011
(program
12+
(expression_statement (number))
1113
(expression_statement (number))
1214
(expression_statement (number)))
1315

grammar.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -819,6 +819,8 @@ module.exports = grammar({
819819

820820
const octal_literal = seq(choice('0o', '0O'), /[0-7]+/)
821821

822+
const bigint_literal = seq(decimal_digits, 'n')
823+
822824
const decimal_integer_literal = choice(
823825
'0',
824826
seq(optional('0'), /[1-9]/, optional(decimal_digits))
@@ -834,7 +836,8 @@ module.exports = grammar({
834836
hex_literal,
835837
decimal_literal,
836838
binary_literal,
837-
octal_literal
839+
octal_literal,
840+
bigint_literal,
838841
))
839842
},
840843

src/grammar.json

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4193,6 +4193,19 @@
41934193
"value": "[0-7]+"
41944194
}
41954195
]
4196+
},
4197+
{
4198+
"type": "SEQ",
4199+
"members": [
4200+
{
4201+
"type": "PATTERN",
4202+
"value": "\\d+"
4203+
},
4204+
{
4205+
"type": "STRING",
4206+
"value": "n"
4207+
}
4208+
]
41964209
}
41974210
]
41984211
}

0 commit comments

Comments
 (0)