finish TS grammar
This commit is contained in:
3
spec.md
3
spec.md
@@ -365,7 +365,10 @@ def add = a -> b -> a + b
|
||||
- `if cond then a else b`
|
||||
- `{field1: val1, field2: val2}` field construction
|
||||
- `match expr with <match cases>`: [pattern matching](##pattern-matching)
|
||||
- `'Tag expr`
|
||||
- `a = b` the [equality operator](##equality-operator)
|
||||
- `-a`: identical to `\`-a\`(a)` name: "negate"
|
||||
- `a ^ b`: identical to `\`a^b\`(a, b)` name: "exponent"
|
||||
- `a + b`: identical to `\`a+b\`(a, b)` name: "sum"
|
||||
- `a - b`: identical to `\`a-b\`(a, b)` name: "difference"
|
||||
- `a * b`: identical to `\`a*b\`(a, b)` name: "times"
|
||||
|
@@ -22,6 +22,27 @@ module.exports = grammar({
|
||||
|
||||
word: $ => $._identifier_tok,
|
||||
|
||||
precedences: _ => [
|
||||
[
|
||||
"exponent",
|
||||
"multiplication",
|
||||
"negate",
|
||||
"addition",
|
||||
"concat",
|
||||
"with",
|
||||
"equal",
|
||||
"if",
|
||||
"let",
|
||||
"new_match_arm",
|
||||
"match_arm",
|
||||
"tag",
|
||||
],
|
||||
],
|
||||
|
||||
conflicts: $ => [
|
||||
[$.match_expr, $.match_expr],
|
||||
],
|
||||
|
||||
rules: {
|
||||
source_file: $ => repeat($._definition),
|
||||
|
||||
@@ -184,26 +205,25 @@ module.exports = grammar({
|
||||
$.field_access,
|
||||
$.function_call,
|
||||
$.record_expr,
|
||||
// TODO
|
||||
),
|
||||
|
||||
let_binding: $ => seq(
|
||||
let_binding: $ => prec("let", seq(
|
||||
'let',
|
||||
$.identifier,
|
||||
'=',
|
||||
$.expression,
|
||||
optional('in'),
|
||||
$.expression,
|
||||
),
|
||||
)),
|
||||
|
||||
await_binding: $ => seq(
|
||||
await_binding: $ => prec("let", seq(
|
||||
'await',
|
||||
$.identifier,
|
||||
'=',
|
||||
$.expression,
|
||||
optional('in'),
|
||||
$.expression,
|
||||
),
|
||||
)),
|
||||
|
||||
type_downcast: $ => seq(
|
||||
$._atom,
|
||||
@@ -218,13 +238,74 @@ module.exports = grammar({
|
||||
$.expression
|
||||
)),
|
||||
|
||||
with_expr: $ => prec.left("with",
|
||||
seq($.expression, 'with', $._atom)),
|
||||
|
||||
and_expr: $ => prec.left("with",
|
||||
seq($.expression, 'and', $._atom)),
|
||||
|
||||
if_expr: $ => prec("if",
|
||||
seq('if', $.expression, 'then', $.expression, 'else', $.expression)),
|
||||
|
||||
sub_expr: $ => prec.left("addition",
|
||||
seq($.expression, '-', $.expression)),
|
||||
add_expr: $ => prec.left("addition",
|
||||
seq($.expression, '+', $.expression)),
|
||||
|
||||
divide_expr: $ => prec.left("multiplication",
|
||||
seq($.expression, '/', $.expression)),
|
||||
multiply_expr: $ => prec.left("multiplication",
|
||||
seq($.expression, '*', $.expression)),
|
||||
|
||||
equal_expr: $ => prec.left("equal",
|
||||
seq($.expression, '=', $.expression)),
|
||||
|
||||
concat_expr: $ => prec.left("concat",
|
||||
seq($.expression, '++', $.expression)),
|
||||
|
||||
compose_expr: $ => prec.left("concat",
|
||||
seq($.expression, '=>', $.expression)),
|
||||
|
||||
exponent_expr: $ => prec.left("exponent",
|
||||
seq($.expression, '^', $._atom)),
|
||||
|
||||
match_arm: $ => prec("match_arm",
|
||||
seq(
|
||||
field('cases', seq($._atom, repeat(seq('|', $._atom)))),
|
||||
'->', $.expression)),
|
||||
|
||||
match_expr: $ =>
|
||||
seq('match', $.expression, 'with',
|
||||
$.match_arm,
|
||||
prec("new_match_arm", repeat(seq('|', $.match_arm)))),
|
||||
|
||||
negate_expr: $ => prec.right("negate",
|
||||
seq('-', $.expression)),
|
||||
|
||||
tag_expr: $ => prec.right("tag",
|
||||
seq($.tag, $.expression)),
|
||||
|
||||
expression: $ => choice(
|
||||
$._atom,
|
||||
$.let_binding,
|
||||
$.await_binding,
|
||||
$.type_downcast,
|
||||
$.lambda,
|
||||
// TODO
|
||||
$.with_expr,
|
||||
$.and_expr,
|
||||
$.if_expr,
|
||||
$.match_expr,
|
||||
$.tag_expr,
|
||||
|
||||
$.add_expr,
|
||||
$.sub_expr,
|
||||
$.divide_expr,
|
||||
$.multiply_expr,
|
||||
$.concat_expr,
|
||||
$.compose_expr,
|
||||
$.equal_expr,
|
||||
$.exponent_expr,
|
||||
$.negate_expr,
|
||||
),
|
||||
|
||||
def: $ => seq(
|
||||
|
628
tree-sitter/src/grammar.json
generated
628
tree-sitter/src/grammar.json
generated
@@ -932,78 +932,86 @@
|
||||
]
|
||||
},
|
||||
"let_binding": {
|
||||
"type": "SEQ",
|
||||
"members": [
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "let"
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "identifier"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "="
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "expression"
|
||||
},
|
||||
{
|
||||
"type": "CHOICE",
|
||||
"members": [
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "in"
|
||||
},
|
||||
{
|
||||
"type": "BLANK"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "expression"
|
||||
}
|
||||
]
|
||||
"type": "PREC",
|
||||
"value": "let",
|
||||
"content": {
|
||||
"type": "SEQ",
|
||||
"members": [
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "let"
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "identifier"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "="
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "expression"
|
||||
},
|
||||
{
|
||||
"type": "CHOICE",
|
||||
"members": [
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "in"
|
||||
},
|
||||
{
|
||||
"type": "BLANK"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "expression"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"await_binding": {
|
||||
"type": "SEQ",
|
||||
"members": [
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "await"
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "identifier"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "="
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "expression"
|
||||
},
|
||||
{
|
||||
"type": "CHOICE",
|
||||
"members": [
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "in"
|
||||
},
|
||||
{
|
||||
"type": "BLANK"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "expression"
|
||||
}
|
||||
]
|
||||
"type": "PREC",
|
||||
"value": "let",
|
||||
"content": {
|
||||
"type": "SEQ",
|
||||
"members": [
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "await"
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "identifier"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "="
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "expression"
|
||||
},
|
||||
{
|
||||
"type": "CHOICE",
|
||||
"members": [
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "in"
|
||||
},
|
||||
{
|
||||
"type": "BLANK"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "expression"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"type_downcast": {
|
||||
"type": "SEQ",
|
||||
@@ -1064,6 +1072,370 @@
|
||||
]
|
||||
}
|
||||
},
|
||||
"with_expr": {
|
||||
"type": "PREC_LEFT",
|
||||
"value": "with",
|
||||
"content": {
|
||||
"type": "SEQ",
|
||||
"members": [
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "expression"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "with"
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "_atom"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"and_expr": {
|
||||
"type": "PREC_LEFT",
|
||||
"value": "with",
|
||||
"content": {
|
||||
"type": "SEQ",
|
||||
"members": [
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "expression"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "and"
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "_atom"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"if_expr": {
|
||||
"type": "PREC",
|
||||
"value": "if",
|
||||
"content": {
|
||||
"type": "SEQ",
|
||||
"members": [
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "if"
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "expression"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "then"
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "expression"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "else"
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "expression"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"sub_expr": {
|
||||
"type": "PREC_LEFT",
|
||||
"value": "addition",
|
||||
"content": {
|
||||
"type": "SEQ",
|
||||
"members": [
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "expression"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "-"
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "expression"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"add_expr": {
|
||||
"type": "PREC_LEFT",
|
||||
"value": "addition",
|
||||
"content": {
|
||||
"type": "SEQ",
|
||||
"members": [
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "expression"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "+"
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "expression"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"divide_expr": {
|
||||
"type": "PREC_LEFT",
|
||||
"value": "multiplication",
|
||||
"content": {
|
||||
"type": "SEQ",
|
||||
"members": [
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "expression"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "/"
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "expression"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"multiply_expr": {
|
||||
"type": "PREC_LEFT",
|
||||
"value": "multiplication",
|
||||
"content": {
|
||||
"type": "SEQ",
|
||||
"members": [
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "expression"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "*"
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "expression"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"equal_expr": {
|
||||
"type": "PREC_LEFT",
|
||||
"value": "equal",
|
||||
"content": {
|
||||
"type": "SEQ",
|
||||
"members": [
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "expression"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "="
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "expression"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"concat_expr": {
|
||||
"type": "PREC_LEFT",
|
||||
"value": "concat",
|
||||
"content": {
|
||||
"type": "SEQ",
|
||||
"members": [
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "expression"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "++"
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "expression"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"compose_expr": {
|
||||
"type": "PREC_LEFT",
|
||||
"value": "concat",
|
||||
"content": {
|
||||
"type": "SEQ",
|
||||
"members": [
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "expression"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "=>"
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "expression"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"exponent_expr": {
|
||||
"type": "PREC_LEFT",
|
||||
"value": "exponent",
|
||||
"content": {
|
||||
"type": "SEQ",
|
||||
"members": [
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "expression"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "^"
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "_atom"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"match_arm": {
|
||||
"type": "PREC",
|
||||
"value": "match_arm",
|
||||
"content": {
|
||||
"type": "SEQ",
|
||||
"members": [
|
||||
{
|
||||
"type": "FIELD",
|
||||
"name": "cases",
|
||||
"content": {
|
||||
"type": "SEQ",
|
||||
"members": [
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "_atom"
|
||||
},
|
||||
{
|
||||
"type": "REPEAT",
|
||||
"content": {
|
||||
"type": "SEQ",
|
||||
"members": [
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "|"
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "_atom"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "->"
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "expression"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"match_expr": {
|
||||
"type": "SEQ",
|
||||
"members": [
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "match"
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "expression"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "with"
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "match_arm"
|
||||
},
|
||||
{
|
||||
"type": "PREC",
|
||||
"value": "new_match_arm",
|
||||
"content": {
|
||||
"type": "REPEAT",
|
||||
"content": {
|
||||
"type": "SEQ",
|
||||
"members": [
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "|"
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "match_arm"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"negate_expr": {
|
||||
"type": "PREC_RIGHT",
|
||||
"value": "negate",
|
||||
"content": {
|
||||
"type": "SEQ",
|
||||
"members": [
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "-"
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "expression"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"tag_expr": {
|
||||
"type": "PREC_RIGHT",
|
||||
"value": "tag",
|
||||
"content": {
|
||||
"type": "SEQ",
|
||||
"members": [
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "tag"
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "expression"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"expression": {
|
||||
"type": "CHOICE",
|
||||
"members": [
|
||||
@@ -1086,6 +1458,62 @@
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "lambda"
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "with_expr"
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "and_expr"
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "if_expr"
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "match_expr"
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "tag_expr"
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "add_expr"
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "sub_expr"
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "divide_expr"
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "multiply_expr"
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "concat_expr"
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "compose_expr"
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "equal_expr"
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "exponent_expr"
|
||||
},
|
||||
{
|
||||
"type": "SYMBOL",
|
||||
"name": "negate_expr"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -1170,8 +1598,64 @@
|
||||
"name": "comment"
|
||||
}
|
||||
],
|
||||
"conflicts": [],
|
||||
"precedences": [],
|
||||
"conflicts": [
|
||||
[
|
||||
"match_expr",
|
||||
"match_expr"
|
||||
]
|
||||
],
|
||||
"precedences": [
|
||||
[
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "exponent"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "multiplication"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "negate"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "addition"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "concat"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "with"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "equal"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "if"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "let"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "new_match_arm"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "match_arm"
|
||||
},
|
||||
{
|
||||
"type": "STRING",
|
||||
"value": "tag"
|
||||
}
|
||||
]
|
||||
],
|
||||
"externals": [],
|
||||
"inline": [],
|
||||
"supertypes": [],
|
||||
|
496
tree-sitter/src/node-types.json
generated
496
tree-sitter/src/node-types.json
generated
@@ -1,4 +1,66 @@
|
||||
[
|
||||
{
|
||||
"type": "add_expr",
|
||||
"named": true,
|
||||
"fields": {},
|
||||
"children": {
|
||||
"multiple": true,
|
||||
"required": true,
|
||||
"types": [
|
||||
{
|
||||
"type": "expression",
|
||||
"named": true
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "and_expr",
|
||||
"named": true,
|
||||
"fields": {},
|
||||
"children": {
|
||||
"multiple": true,
|
||||
"required": true,
|
||||
"types": [
|
||||
{
|
||||
"type": "char_literal",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "expression",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "field_access",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "function_call",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "ident_expr",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "list_expression",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "num_literal",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "record_expr",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "string_literal",
|
||||
"named": true
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "await_binding",
|
||||
"named": true,
|
||||
@@ -37,6 +99,36 @@
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "compose_expr",
|
||||
"named": true,
|
||||
"fields": {},
|
||||
"children": {
|
||||
"multiple": true,
|
||||
"required": true,
|
||||
"types": [
|
||||
{
|
||||
"type": "expression",
|
||||
"named": true
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "concat_expr",
|
||||
"named": true,
|
||||
"fields": {},
|
||||
"children": {
|
||||
"multiple": true,
|
||||
"required": true,
|
||||
"types": [
|
||||
{
|
||||
"type": "expression",
|
||||
"named": true
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "def",
|
||||
"named": true,
|
||||
@@ -97,17 +189,43 @@
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "expression",
|
||||
"type": "divide_expr",
|
||||
"named": true,
|
||||
"fields": {},
|
||||
"children": {
|
||||
"multiple": false,
|
||||
"multiple": true,
|
||||
"required": true,
|
||||
"types": [
|
||||
{
|
||||
"type": "await_binding",
|
||||
"type": "expression",
|
||||
"named": true
|
||||
},
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "equal_expr",
|
||||
"named": true,
|
||||
"fields": {},
|
||||
"children": {
|
||||
"multiple": true,
|
||||
"required": true,
|
||||
"types": [
|
||||
{
|
||||
"type": "expression",
|
||||
"named": true
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "exponent_expr",
|
||||
"named": true,
|
||||
"fields": {},
|
||||
"children": {
|
||||
"multiple": true,
|
||||
"required": true,
|
||||
"types": [
|
||||
{
|
||||
"type": "char_literal",
|
||||
"named": true
|
||||
@@ -128,6 +246,89 @@
|
||||
"type": "ident_expr",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "list_expression",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "num_literal",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "record_expr",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "string_literal",
|
||||
"named": true
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "expression",
|
||||
"named": true,
|
||||
"fields": {},
|
||||
"children": {
|
||||
"multiple": false,
|
||||
"required": true,
|
||||
"types": [
|
||||
{
|
||||
"type": "add_expr",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "and_expr",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "await_binding",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "char_literal",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "compose_expr",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "concat_expr",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "divide_expr",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "equal_expr",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "exponent_expr",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "expression",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "field_access",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "function_call",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "ident_expr",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "if_expr",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "lambda",
|
||||
"named": true
|
||||
@@ -140,6 +341,18 @@
|
||||
"type": "list_expression",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "match_expr",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "multiply_expr",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "negate_expr",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "num_literal",
|
||||
"named": true
|
||||
@@ -152,9 +365,21 @@
|
||||
"type": "string_literal",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "sub_expr",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "tag_expr",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "type_downcast",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "with_expr",
|
||||
"named": true
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -457,6 +682,21 @@
|
||||
"named": true,
|
||||
"fields": {}
|
||||
},
|
||||
{
|
||||
"type": "if_expr",
|
||||
"named": true,
|
||||
"fields": {},
|
||||
"children": {
|
||||
"multiple": true,
|
||||
"required": true,
|
||||
"types": [
|
||||
{
|
||||
"type": "expression",
|
||||
"named": true
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "just_type",
|
||||
"named": true,
|
||||
@@ -565,6 +805,95 @@
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "match_arm",
|
||||
"named": true,
|
||||
"fields": {
|
||||
"cases": {
|
||||
"multiple": true,
|
||||
"required": true,
|
||||
"types": [
|
||||
{
|
||||
"type": "(",
|
||||
"named": false
|
||||
},
|
||||
{
|
||||
"type": ")",
|
||||
"named": false
|
||||
},
|
||||
{
|
||||
"type": "char_literal",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "expression",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "field_access",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "function_call",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "ident_expr",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "list_expression",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "num_literal",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "record_expr",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "string_literal",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "|",
|
||||
"named": false
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"children": {
|
||||
"multiple": false,
|
||||
"required": true,
|
||||
"types": [
|
||||
{
|
||||
"type": "expression",
|
||||
"named": true
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "match_expr",
|
||||
"named": true,
|
||||
"fields": {},
|
||||
"children": {
|
||||
"multiple": true,
|
||||
"required": true,
|
||||
"types": [
|
||||
{
|
||||
"type": "expression",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "match_arm",
|
||||
"named": true
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "multi_type_parameters",
|
||||
"named": true,
|
||||
@@ -616,6 +945,36 @@
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "multiply_expr",
|
||||
"named": true,
|
||||
"fields": {},
|
||||
"children": {
|
||||
"multiple": true,
|
||||
"required": true,
|
||||
"types": [
|
||||
{
|
||||
"type": "expression",
|
||||
"named": true
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "negate_expr",
|
||||
"named": true,
|
||||
"fields": {},
|
||||
"children": {
|
||||
"multiple": false,
|
||||
"required": true,
|
||||
"types": [
|
||||
{
|
||||
"type": "expression",
|
||||
"named": true
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "num_literal",
|
||||
"named": true,
|
||||
@@ -975,6 +1334,40 @@
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "sub_expr",
|
||||
"named": true,
|
||||
"fields": {},
|
||||
"children": {
|
||||
"multiple": true,
|
||||
"required": true,
|
||||
"types": [
|
||||
{
|
||||
"type": "expression",
|
||||
"named": true
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tag_expr",
|
||||
"named": true,
|
||||
"fields": {},
|
||||
"children": {
|
||||
"multiple": true,
|
||||
"required": true,
|
||||
"types": [
|
||||
{
|
||||
"type": "expression",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "tag",
|
||||
"named": true
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tagged_type",
|
||||
"named": true,
|
||||
@@ -1227,6 +1620,53 @@
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "with_expr",
|
||||
"named": true,
|
||||
"fields": {},
|
||||
"children": {
|
||||
"multiple": true,
|
||||
"required": true,
|
||||
"types": [
|
||||
{
|
||||
"type": "char_literal",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "expression",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "field_access",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "function_call",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "ident_expr",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "list_expression",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "num_literal",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "record_expr",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "string_literal",
|
||||
"named": true
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "with_type",
|
||||
"named": true,
|
||||
@@ -1302,10 +1742,26 @@
|
||||
"type": ")",
|
||||
"named": false
|
||||
},
|
||||
{
|
||||
"type": "*",
|
||||
"named": false
|
||||
},
|
||||
{
|
||||
"type": "+",
|
||||
"named": false
|
||||
},
|
||||
{
|
||||
"type": "++",
|
||||
"named": false
|
||||
},
|
||||
{
|
||||
"type": ",",
|
||||
"named": false
|
||||
},
|
||||
{
|
||||
"type": "-",
|
||||
"named": false
|
||||
},
|
||||
{
|
||||
"type": "->",
|
||||
"named": false
|
||||
@@ -1318,6 +1774,10 @@
|
||||
"type": "...",
|
||||
"named": false
|
||||
},
|
||||
{
|
||||
"type": "/",
|
||||
"named": false
|
||||
},
|
||||
{
|
||||
"type": ":",
|
||||
"named": false
|
||||
@@ -1330,6 +1790,10 @@
|
||||
"type": "=",
|
||||
"named": false
|
||||
},
|
||||
{
|
||||
"type": "=>",
|
||||
"named": false
|
||||
},
|
||||
{
|
||||
"type": "?",
|
||||
"named": false
|
||||
@@ -1342,6 +1806,14 @@
|
||||
"type": "]",
|
||||
"named": false
|
||||
},
|
||||
{
|
||||
"type": "^",
|
||||
"named": false
|
||||
},
|
||||
{
|
||||
"type": "and",
|
||||
"named": false
|
||||
},
|
||||
{
|
||||
"type": "await",
|
||||
"named": false
|
||||
@@ -1359,6 +1831,10 @@
|
||||
"type": "def",
|
||||
"named": false
|
||||
},
|
||||
{
|
||||
"type": "else",
|
||||
"named": false
|
||||
},
|
||||
{
|
||||
"type": "escape_sequence",
|
||||
"named": true
|
||||
@@ -1371,6 +1847,10 @@
|
||||
"type": "extensible",
|
||||
"named": false
|
||||
},
|
||||
{
|
||||
"type": "if",
|
||||
"named": false
|
||||
},
|
||||
{
|
||||
"type": "in",
|
||||
"named": false
|
||||
@@ -1379,6 +1859,10 @@
|
||||
"type": "let",
|
||||
"named": false
|
||||
},
|
||||
{
|
||||
"type": "match",
|
||||
"named": false
|
||||
},
|
||||
{
|
||||
"type": "string_middle",
|
||||
"named": true
|
||||
@@ -1387,6 +1871,10 @@
|
||||
"type": "tag",
|
||||
"named": true
|
||||
},
|
||||
{
|
||||
"type": "then",
|
||||
"named": false
|
||||
},
|
||||
{
|
||||
"type": "type",
|
||||
"named": false
|
||||
|
41290
tree-sitter/src/parser.c
generated
41290
tree-sitter/src/parser.c
generated
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user