fix numeric literals
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -6,6 +6,8 @@ yarn-debug.log*
|
|||||||
yarn-error.log*
|
yarn-error.log*
|
||||||
lerna-debug.log*
|
lerna-debug.log*
|
||||||
|
|
||||||
|
tmp
|
||||||
|
|
||||||
# Diagnostic reports (https://nodejs.org/api/report.html)
|
# Diagnostic reports (https://nodejs.org/api/report.html)
|
||||||
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
|
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
|
||||||
|
|
||||||
|
|||||||
10
grammar.js
10
grammar.js
@@ -1,5 +1,4 @@
|
|||||||
const
|
const
|
||||||
newline = '\n',
|
|
||||||
space = ' ',
|
space = ' ',
|
||||||
decimal = /[0-9]/
|
decimal = /[0-9]/
|
||||||
|
|
||||||
@@ -23,7 +22,6 @@ module.exports = grammar({
|
|||||||
$.attribute,
|
$.attribute,
|
||||||
$.block,
|
$.block,
|
||||||
),
|
),
|
||||||
repeat1(newline),
|
|
||||||
)),
|
)),
|
||||||
|
|
||||||
attribute: $ => seq(
|
attribute: $ => seq(
|
||||||
@@ -36,9 +34,7 @@ module.exports = grammar({
|
|||||||
$.identifier,
|
$.identifier,
|
||||||
repeat(choice($.string_lit, $.identifier)),
|
repeat(choice($.string_lit, $.identifier)),
|
||||||
'{',
|
'{',
|
||||||
repeat1(newline),
|
|
||||||
optional($.body),
|
optional($.body),
|
||||||
// newline is handled in body
|
|
||||||
'}',
|
'}',
|
||||||
),
|
),
|
||||||
|
|
||||||
@@ -70,11 +66,7 @@ module.exports = grammar({
|
|||||||
'null',
|
'null',
|
||||||
),
|
),
|
||||||
|
|
||||||
numeric_lit: $ => seq(
|
numeric_lit: $ => /[0-9]+(\.[0-9]+([eE][-+]?[0-9]+)?)?/,
|
||||||
repeat1(decimal),
|
|
||||||
optional(seq('.', repeat1(decimal))),
|
|
||||||
optional(seq(choice('e', 'E'), optional(choice('+', '-')), repeat1(decimal))),
|
|
||||||
),
|
|
||||||
|
|
||||||
variable_expr: $ => $.identifier,
|
variable_expr: $ => $.identifier,
|
||||||
|
|
||||||
|
|||||||
104
src/grammar.json
104
src/grammar.json
@@ -22,13 +22,6 @@
|
|||||||
"name": "block"
|
"name": "block"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "REPEAT1",
|
|
||||||
"content": {
|
|
||||||
"type": "STRING",
|
|
||||||
"value": "\n"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -77,13 +70,6 @@
|
|||||||
"type": "STRING",
|
"type": "STRING",
|
||||||
"value": "{"
|
"value": "{"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"type": "REPEAT1",
|
|
||||||
"content": {
|
|
||||||
"type": "STRING",
|
|
||||||
"value": "\n"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"type": "CHOICE",
|
"type": "CHOICE",
|
||||||
"members": [
|
"members": [
|
||||||
@@ -167,94 +153,8 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"numeric_lit": {
|
"numeric_lit": {
|
||||||
"type": "SEQ",
|
"type": "PATTERN",
|
||||||
"members": [
|
"value": "[0-9]+(\\.[0-9]+([eE][-+]?[0-9]+)?)?"
|
||||||
{
|
|
||||||
"type": "REPEAT1",
|
|
||||||
"content": {
|
|
||||||
"type": "PATTERN",
|
|
||||||
"value": "[0-9]"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "CHOICE",
|
|
||||||
"members": [
|
|
||||||
{
|
|
||||||
"type": "SEQ",
|
|
||||||
"members": [
|
|
||||||
{
|
|
||||||
"type": "STRING",
|
|
||||||
"value": "."
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "REPEAT1",
|
|
||||||
"content": {
|
|
||||||
"type": "PATTERN",
|
|
||||||
"value": "[0-9]"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "BLANK"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "CHOICE",
|
|
||||||
"members": [
|
|
||||||
{
|
|
||||||
"type": "SEQ",
|
|
||||||
"members": [
|
|
||||||
{
|
|
||||||
"type": "CHOICE",
|
|
||||||
"members": [
|
|
||||||
{
|
|
||||||
"type": "STRING",
|
|
||||||
"value": "e"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "STRING",
|
|
||||||
"value": "E"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "CHOICE",
|
|
||||||
"members": [
|
|
||||||
{
|
|
||||||
"type": "CHOICE",
|
|
||||||
"members": [
|
|
||||||
{
|
|
||||||
"type": "STRING",
|
|
||||||
"value": "+"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "STRING",
|
|
||||||
"value": "-"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "BLANK"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "REPEAT1",
|
|
||||||
"content": {
|
|
||||||
"type": "PATTERN",
|
|
||||||
"value": "[0-9]"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "BLANK"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
"variable_expr": {
|
"variable_expr": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
|
|||||||
@@ -137,11 +137,6 @@
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"type": "numeric_lit",
|
|
||||||
"named": true,
|
|
||||||
"fields": {}
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"type": "string_lit",
|
"type": "string_lit",
|
||||||
"named": true,
|
"named": true,
|
||||||
@@ -162,10 +157,6 @@
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"type": "\n",
|
|
||||||
"named": false
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"type": "\"",
|
"type": "\"",
|
||||||
"named": false
|
"named": false
|
||||||
@@ -178,34 +169,14 @@
|
|||||||
"type": ")",
|
"type": ")",
|
||||||
"named": false
|
"named": false
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"type": "+",
|
|
||||||
"named": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "-",
|
|
||||||
"named": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": ".",
|
|
||||||
"named": false
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"type": "=",
|
"type": "=",
|
||||||
"named": false
|
"named": false
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"type": "E",
|
|
||||||
"named": false
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"type": "comment",
|
"type": "comment",
|
||||||
"named": true
|
"named": true
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"type": "e",
|
|
||||||
"named": false
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"type": "false",
|
"type": "false",
|
||||||
"named": false
|
"named": false
|
||||||
@@ -214,6 +185,10 @@
|
|||||||
"type": "null",
|
"type": "null",
|
||||||
"named": false
|
"named": false
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"type": "numeric_lit",
|
||||||
|
"named": true
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"type": "true",
|
"type": "true",
|
||||||
"named": false
|
"named": false
|
||||||
|
|||||||
1641
src/parser.c
1641
src/parser.c
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user