Add supertypes to grammar definition
This commit is contained in:
parent
32c7271384
commit
686f3154ce
@ -150,7 +150,7 @@ annotation_bind = 1 ^ 1::some_ann;
|
||||
---
|
||||
|
||||
(source_file
|
||||
(assignment (identifier) (infix_operator (infix_operator (integer_literal) (integer_literal)) (integer_literal)))
|
||||
(assignment (identifier) (infix_operator (parenthesised_expression (infix_operator (integer_literal) (integer_literal))) (integer_literal)))
|
||||
(assignment (identifier) (infix_operator (integer_literal) (infix_operator (integer_literal) (integer_literal))))
|
||||
(assignment (identifier) (infix_operator (integer_literal) (infix_operator (integer_literal) (integer_literal))))
|
||||
(assignment (identifier) (infix_operator (integer_literal) (infix_operator (integer_literal) (identifier)))))
|
||||
|
10
grammar.js
10
grammar.js
@ -29,6 +29,11 @@ module.exports = grammar({
|
||||
[$._expression, $.generator],
|
||||
],
|
||||
|
||||
supertypes: $ => [
|
||||
$._expression,
|
||||
$._item,
|
||||
],
|
||||
|
||||
rules: {
|
||||
source_file: $ => seq(sepBy(';', $._item)),
|
||||
|
||||
@ -56,10 +61,11 @@ module.exports = grammar({
|
||||
$.prefix_operator,
|
||||
$.set_comprehension,
|
||||
$.string_interpolation,
|
||||
// TODO: Other expression types
|
||||
seq('(', $._expression, ')'),
|
||||
$.parenthesised_expression,
|
||||
),
|
||||
|
||||
parenthesised_expression: $ => seq('(', $._expression, ')'),
|
||||
|
||||
array_comprehension: $ => seq(
|
||||
'[', $._expression, '|', sepBy1(',', $.generator), ']',
|
||||
),
|
||||
|
39
src/grammar.json
vendored
39
src/grammar.json
vendored
@ -122,21 +122,25 @@
|
||||
"name": "string_interpolation"
|
||||
},
|
||||
{
|
||||
"type": "SEQ",
|
||||
"members": [
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "("
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "_expression"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": ")"
|
||||
}
|
||||
]
|
||||
"type": "SYMBOL",
|
||||
"name": "parenthesised_expression"
|
||||
}
|
||||
]
|
||||
},
|
||||
"parenthesised_expression": {
|
||||
"type": "SEQ",
|
||||
"members": [
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "("
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "_expression"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": ")"
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -1568,6 +1572,9 @@
|
||||
],
|
||||
"externals": [],
|
||||
"inline": [],
|
||||
"supertypes": []
|
||||
"supertypes": [
|
||||
"_expression",
|
||||
"_item"
|
||||
]
|
||||
}
|
||||
|
||||
|
1161
src/node-types.json
vendored
1161
src/node-types.json
vendored
File diff suppressed because it is too large
Load Diff
2836
src/parser.c
vendored
2836
src/parser.c
vendored
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user