This commit is contained in:
2025-08-27 01:43:23 -04:00
parent 542d36f266
commit 1f7a6fe01e
4 changed files with 3946 additions and 3302 deletions

View File

@@ -21,50 +21,65 @@ module.exports = grammar({
$.bool, $.bool,
$.word, $.word,
$.binexp, $.binexp,
$.callexp, $.eqexp,
$.parexp,
$.block,
$.vardef, $.vardef,
$.lambda, $.callexp,
$.funcdef, $.funcdef,
$.lambda,
$.seqexp,
$.ifexp, $.ifexp,
$.tern_ifexp,
$.block,
$.parexp,
), ),
num: (_) => /\d+/, num: (_) => /\d+/,
bool: (_) => choice("TRUE", "T", "FALSE", "F"),
bool: (_) => choice("T", "F"),
word: (_) => /[a-zA-Z_]\w*/, word: (_) => /[a-zA-Z_]\w*/,
binexp: ($) => seqexp: ($) =>
prec.left( prec.left(
1, -1, // lowest
seq( seq(field("first", $._exp), repeat1(seq(";", field("rest", $._exp)))),
field("left", $._exp), ),
field("op", choice("+", "-", "*", "/", "eq")),
field("right", $._exp), vardef: ($) =>
prec.right(1, seq(field("name", $.word), "=", field("value", $._exp))),
eqexp: ($) =>
prec.left(2, seq(field("left", $._exp), "==", field("right", $._exp))),
binexp: ($) =>
choice(
prec.left(
3,
seq(
field("left", $._exp),
field("op", choice("+", "-")),
field("right", $._exp),
),
),
prec.left(
4,
seq(
field("left", $._exp),
field("op", choice("*", "/")),
field("right", $._exp),
),
), ),
), ),
callexp: ($) => callexp: ($) =>
prec.left( prec.left(
1, // lower than funcdef 5,
seq(field("fn", $.word), "(", optional(commaSep($._exp)), ")"), seq(field("fn", $.word), "(", optional(commaSep($._exp)), ")"),
), ),
parexp: ($) => seq("(", $._exp, ")"),
block: ($) => seq("{", repeat($._exp), "}"),
vardef: ($) =>
prec.right(1, seq(field("name", $.word), "=", field("value", $._exp))),
lambda: ($) =>
prec.right(
2,
seq("\\", field("params", $.params), field("body", $._exp)),
),
funcdef: ($) => funcdef: ($) =>
prec.right( prec.right(
3, // higher precedence than call 6,
seq( seq(
field("name", $.word), field("name", $.word),
field("params", $.params), field("params", $.params),
@@ -72,33 +87,36 @@ module.exports = grammar({
), ),
), ),
lambda: ($) =>
prec.right(
6,
seq("\\", field("params", $.params), field("body", $._exp)),
),
parexp: ($) => seq("(", $._exp, ")"),
block: ($) => seq("{", repeat($._exp), "}"),
params: ($) => seq("(", optional(commaSep($.word)), ")"), params: ($) => seq("(", optional(commaSep($.word)), ")"),
ifexp: ($) => ifexp: ($) =>
choice( prec.right(
seq(
"_if",
"(",
field("cond", $._exp),
",",
field("then", $._exp),
",",
field("else", $._exp),
")",
),
seq( seq(
"if", "if",
field("cond", $._exp), field("cond", $._exp),
field("then", $._exp), field("then", $._exp),
choice(seq("else", field("else", $._exp)), field("else", $._exp)), optional("else"),
),
seq(
"?",
field("cond", $._exp),
field("then", $._exp),
field("else", $._exp), field("else", $._exp),
), ),
), ),
tern_ifexp: ($) =>
seq(
"?",
field("cond", $._exp),
field("then", $._exp),
field("else", $._exp),
),
}, },
}); });

585
src/grammar.json generated
View File

@@ -30,15 +30,7 @@
}, },
{ {
"type": "SYMBOL", "type": "SYMBOL",
"name": "callexp" "name": "eqexp"
},
{
"type": "SYMBOL",
"name": "parexp"
},
{
"type": "SYMBOL",
"name": "block"
}, },
{ {
"type": "SYMBOL", "type": "SYMBOL",
@@ -46,15 +38,35 @@
}, },
{ {
"type": "SYMBOL", "type": "SYMBOL",
"name": "lambda" "name": "callexp"
}, },
{ {
"type": "SYMBOL", "type": "SYMBOL",
"name": "funcdef" "name": "funcdef"
}, },
{
"type": "SYMBOL",
"name": "lambda"
},
{
"type": "SYMBOL",
"name": "seqexp"
},
{ {
"type": "SYMBOL", "type": "SYMBOL",
"name": "ifexp" "name": "ifexp"
},
{
"type": "SYMBOL",
"name": "tern_ifexp"
},
{
"type": "SYMBOL",
"name": "block"
},
{
"type": "SYMBOL",
"name": "parexp"
} }
] ]
}, },
@@ -65,18 +77,10 @@
"bool": { "bool": {
"type": "CHOICE", "type": "CHOICE",
"members": [ "members": [
{
"type": "STRING",
"value": "TRUE"
},
{ {
"type": "STRING", "type": "STRING",
"value": "T" "value": "T"
}, },
{
"type": "STRING",
"value": "FALSE"
},
{ {
"type": "STRING", "type": "STRING",
"value": "F" "value": "F"
@@ -87,9 +91,75 @@
"type": "PATTERN", "type": "PATTERN",
"value": "[a-zA-Z_]\\w*" "value": "[a-zA-Z_]\\w*"
}, },
"binexp": { "seqexp": {
"type": "PREC_LEFT", "type": "PREC_LEFT",
"value": -1,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "first",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
},
{
"type": "REPEAT1",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "FIELD",
"name": "rest",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
}
]
}
}
]
}
},
"vardef": {
"type": "PREC_RIGHT",
"value": 1, "value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "word"
}
},
{
"type": "STRING",
"value": "="
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
}
]
}
},
"eqexp": {
"type": "PREC_LEFT",
"value": 2,
"content": { "content": {
"type": "SEQ", "type": "SEQ",
"members": [ "members": [
@@ -102,33 +172,8 @@
} }
}, },
{ {
"type": "FIELD", "type": "STRING",
"name": "op", "value": "=="
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "+"
},
{
"type": "STRING",
"value": "-"
},
{
"type": "STRING",
"value": "*"
},
{
"type": "STRING",
"value": "/"
},
{
"type": "STRING",
"value": "eq"
}
]
}
}, },
{ {
"type": "FIELD", "type": "FIELD",
@@ -141,9 +186,98 @@
] ]
} }
}, },
"binexp": {
"type": "CHOICE",
"members": [
{
"type": "PREC_LEFT",
"value": 3,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
},
{
"type": "FIELD",
"name": "op",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "+"
},
{
"type": "STRING",
"value": "-"
}
]
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 4,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
},
{
"type": "FIELD",
"name": "op",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "*"
},
{
"type": "STRING",
"value": "/"
}
]
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
}
]
}
}
]
},
"callexp": { "callexp": {
"type": "PREC_LEFT", "type": "PREC_LEFT",
"value": 1, "value": 5,
"content": { "content": {
"type": "SEQ", "type": "SEQ",
"members": [ "members": [
@@ -199,6 +333,68 @@
] ]
} }
}, },
"funcdef": {
"type": "PREC_RIGHT",
"value": 6,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "word"
}
},
{
"type": "FIELD",
"name": "params",
"content": {
"type": "SYMBOL",
"name": "params"
}
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
}
]
}
},
"lambda": {
"type": "PREC_RIGHT",
"value": 6,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "\\"
},
{
"type": "FIELD",
"name": "params",
"content": {
"type": "SYMBOL",
"name": "params"
}
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
}
]
}
},
"parexp": { "parexp": {
"type": "SEQ", "type": "SEQ",
"members": [ "members": [
@@ -236,97 +432,6 @@
} }
] ]
}, },
"vardef": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "word"
}
},
{
"type": "STRING",
"value": "="
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
}
]
}
},
"lambda": {
"type": "PREC_RIGHT",
"value": 2,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "\\"
},
{
"type": "FIELD",
"name": "params",
"content": {
"type": "SYMBOL",
"name": "params"
}
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
}
]
}
},
"funcdef": {
"type": "PREC_RIGHT",
"value": 3,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "word"
}
},
{
"type": "FIELD",
"name": "params",
"content": {
"type": "SYMBOL",
"name": "params"
}
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
}
]
}
},
"params": { "params": {
"type": "SEQ", "type": "SEQ",
"members": [ "members": [
@@ -374,144 +479,84 @@
] ]
}, },
"ifexp": { "ifexp": {
"type": "CHOICE", "type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "if"
},
{
"type": "FIELD",
"name": "cond",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
},
{
"type": "FIELD",
"name": "then",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "else"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "else",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
}
]
}
},
"tern_ifexp": {
"type": "SEQ",
"members": [ "members": [
{ {
"type": "SEQ", "type": "STRING",
"members": [ "value": "?"
{
"type": "STRING",
"value": "_if"
},
{
"type": "STRING",
"value": "("
},
{
"type": "FIELD",
"name": "cond",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
},
{
"type": "STRING",
"value": ","
},
{
"type": "FIELD",
"name": "then",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
},
{
"type": "STRING",
"value": ","
},
{
"type": "FIELD",
"name": "else",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
},
{
"type": "STRING",
"value": ")"
}
]
}, },
{ {
"type": "SEQ", "type": "FIELD",
"members": [ "name": "cond",
{ "content": {
"type": "STRING", "type": "SYMBOL",
"value": "if" "name": "_exp"
}, }
{
"type": "FIELD",
"name": "cond",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
},
{
"type": "FIELD",
"name": "then",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "else"
},
{
"type": "FIELD",
"name": "else",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
}
]
},
{
"type": "FIELD",
"name": "else",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
}
]
}
]
}, },
{ {
"type": "SEQ", "type": "FIELD",
"members": [ "name": "then",
{ "content": {
"type": "STRING", "type": "SYMBOL",
"value": "?" "name": "_exp"
}, }
{ },
"type": "FIELD", {
"name": "cond", "type": "FIELD",
"content": { "name": "else",
"type": "SYMBOL", "content": {
"name": "_exp" "type": "SYMBOL",
} "name": "_exp"
}, }
{
"type": "FIELD",
"name": "then",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
},
{
"type": "FIELD",
"name": "else",
"content": {
"type": "SYMBOL",
"name": "_exp"
}
}
]
} }
] ]
} }

624
src/node-types.json generated
View File

@@ -23,6 +23,10 @@
"type": "callexp", "type": "callexp",
"named": true "named": true
}, },
{
"type": "eqexp",
"named": true
},
{ {
"type": "funcdef", "type": "funcdef",
"named": true "named": true
@@ -43,6 +47,14 @@
"type": "parexp", "type": "parexp",
"named": true "named": true
}, },
{
"type": "seqexp",
"named": true
},
{
"type": "tern_ifexp",
"named": true
},
{ {
"type": "vardef", "type": "vardef",
"named": true "named": true
@@ -72,10 +84,6 @@
{ {
"type": "/", "type": "/",
"named": false "named": false
},
{
"type": "eq",
"named": false
} }
] ]
}, },
@@ -99,6 +107,10 @@
"type": "callexp", "type": "callexp",
"named": true "named": true
}, },
{
"type": "eqexp",
"named": true
},
{ {
"type": "funcdef", "type": "funcdef",
"named": true "named": true
@@ -119,6 +131,14 @@
"type": "parexp", "type": "parexp",
"named": true "named": true
}, },
{
"type": "seqexp",
"named": true
},
{
"type": "tern_ifexp",
"named": true
},
{ {
"type": "vardef", "type": "vardef",
"named": true "named": true
@@ -155,6 +175,10 @@
"type": "callexp", "type": "callexp",
"named": true "named": true
}, },
{
"type": "eqexp",
"named": true
},
{ {
"type": "funcdef", "type": "funcdef",
"named": true "named": true
@@ -175,6 +199,14 @@
"type": "parexp", "type": "parexp",
"named": true "named": true
}, },
{
"type": "seqexp",
"named": true
},
{
"type": "tern_ifexp",
"named": true
},
{ {
"type": "vardef", "type": "vardef",
"named": true "named": true
@@ -226,6 +258,10 @@
"type": "callexp", "type": "callexp",
"named": true "named": true
}, },
{
"type": "eqexp",
"named": true
},
{ {
"type": "funcdef", "type": "funcdef",
"named": true "named": true
@@ -246,6 +282,14 @@
"type": "parexp", "type": "parexp",
"named": true "named": true
}, },
{
"type": "seqexp",
"named": true
},
{
"type": "tern_ifexp",
"named": true
},
{ {
"type": "vardef", "type": "vardef",
"named": true "named": true
@@ -257,6 +301,136 @@
] ]
} }
}, },
{
"type": "eqexp",
"named": true,
"fields": {
"left": {
"multiple": false,
"required": true,
"types": [
{
"type": "binexp",
"named": true
},
{
"type": "block",
"named": true
},
{
"type": "bool",
"named": true
},
{
"type": "callexp",
"named": true
},
{
"type": "eqexp",
"named": true
},
{
"type": "funcdef",
"named": true
},
{
"type": "ifexp",
"named": true
},
{
"type": "lambda",
"named": true
},
{
"type": "num",
"named": true
},
{
"type": "parexp",
"named": true
},
{
"type": "seqexp",
"named": true
},
{
"type": "tern_ifexp",
"named": true
},
{
"type": "vardef",
"named": true
},
{
"type": "word",
"named": true
}
]
},
"right": {
"multiple": false,
"required": true,
"types": [
{
"type": "binexp",
"named": true
},
{
"type": "block",
"named": true
},
{
"type": "bool",
"named": true
},
{
"type": "callexp",
"named": true
},
{
"type": "eqexp",
"named": true
},
{
"type": "funcdef",
"named": true
},
{
"type": "ifexp",
"named": true
},
{
"type": "lambda",
"named": true
},
{
"type": "num",
"named": true
},
{
"type": "parexp",
"named": true
},
{
"type": "seqexp",
"named": true
},
{
"type": "tern_ifexp",
"named": true
},
{
"type": "vardef",
"named": true
},
{
"type": "word",
"named": true
}
]
}
}
},
{ {
"type": "funcdef", "type": "funcdef",
"named": true, "named": true,
@@ -281,6 +455,10 @@
"type": "callexp", "type": "callexp",
"named": true "named": true
}, },
{
"type": "eqexp",
"named": true
},
{ {
"type": "funcdef", "type": "funcdef",
"named": true "named": true
@@ -301,6 +479,14 @@
"type": "parexp", "type": "parexp",
"named": true "named": true
}, },
{
"type": "seqexp",
"named": true
},
{
"type": "tern_ifexp",
"named": true
},
{ {
"type": "vardef", "type": "vardef",
"named": true "named": true
@@ -357,6 +543,10 @@
"type": "callexp", "type": "callexp",
"named": true "named": true
}, },
{
"type": "eqexp",
"named": true
},
{ {
"type": "funcdef", "type": "funcdef",
"named": true "named": true
@@ -377,6 +567,14 @@
"type": "parexp", "type": "parexp",
"named": true "named": true
}, },
{
"type": "seqexp",
"named": true
},
{
"type": "tern_ifexp",
"named": true
},
{ {
"type": "vardef", "type": "vardef",
"named": true "named": true
@@ -407,6 +605,10 @@
"type": "callexp", "type": "callexp",
"named": true "named": true
}, },
{
"type": "eqexp",
"named": true
},
{ {
"type": "funcdef", "type": "funcdef",
"named": true "named": true
@@ -427,6 +629,14 @@
"type": "parexp", "type": "parexp",
"named": true "named": true
}, },
{
"type": "seqexp",
"named": true
},
{
"type": "tern_ifexp",
"named": true
},
{ {
"type": "vardef", "type": "vardef",
"named": true "named": true
@@ -457,6 +667,10 @@
"type": "callexp", "type": "callexp",
"named": true "named": true
}, },
{
"type": "eqexp",
"named": true
},
{ {
"type": "funcdef", "type": "funcdef",
"named": true "named": true
@@ -477,6 +691,14 @@
"type": "parexp", "type": "parexp",
"named": true "named": true
}, },
{
"type": "seqexp",
"named": true
},
{
"type": "tern_ifexp",
"named": true
},
{ {
"type": "vardef", "type": "vardef",
"named": true "named": true
@@ -513,6 +735,10 @@
"type": "callexp", "type": "callexp",
"named": true "named": true
}, },
{
"type": "eqexp",
"named": true
},
{ {
"type": "funcdef", "type": "funcdef",
"named": true "named": true
@@ -533,6 +759,14 @@
"type": "parexp", "type": "parexp",
"named": true "named": true
}, },
{
"type": "seqexp",
"named": true
},
{
"type": "tern_ifexp",
"named": true
},
{ {
"type": "vardef", "type": "vardef",
"named": true "named": true
@@ -594,6 +828,10 @@
"type": "callexp", "type": "callexp",
"named": true "named": true
}, },
{
"type": "eqexp",
"named": true
},
{ {
"type": "funcdef", "type": "funcdef",
"named": true "named": true
@@ -614,6 +852,14 @@
"type": "parexp", "type": "parexp",
"named": true "named": true
}, },
{
"type": "seqexp",
"named": true
},
{
"type": "tern_ifexp",
"named": true
},
{ {
"type": "vardef", "type": "vardef",
"named": true "named": true
@@ -625,6 +871,136 @@
] ]
} }
}, },
{
"type": "seqexp",
"named": true,
"fields": {
"first": {
"multiple": false,
"required": true,
"types": [
{
"type": "binexp",
"named": true
},
{
"type": "block",
"named": true
},
{
"type": "bool",
"named": true
},
{
"type": "callexp",
"named": true
},
{
"type": "eqexp",
"named": true
},
{
"type": "funcdef",
"named": true
},
{
"type": "ifexp",
"named": true
},
{
"type": "lambda",
"named": true
},
{
"type": "num",
"named": true
},
{
"type": "parexp",
"named": true
},
{
"type": "seqexp",
"named": true
},
{
"type": "tern_ifexp",
"named": true
},
{
"type": "vardef",
"named": true
},
{
"type": "word",
"named": true
}
]
},
"rest": {
"multiple": true,
"required": true,
"types": [
{
"type": "binexp",
"named": true
},
{
"type": "block",
"named": true
},
{
"type": "bool",
"named": true
},
{
"type": "callexp",
"named": true
},
{
"type": "eqexp",
"named": true
},
{
"type": "funcdef",
"named": true
},
{
"type": "ifexp",
"named": true
},
{
"type": "lambda",
"named": true
},
{
"type": "num",
"named": true
},
{
"type": "parexp",
"named": true
},
{
"type": "seqexp",
"named": true
},
{
"type": "tern_ifexp",
"named": true
},
{
"type": "vardef",
"named": true
},
{
"type": "word",
"named": true
}
]
}
}
},
{ {
"type": "source_file", "type": "source_file",
"named": true, "named": true,
@@ -650,6 +1026,10 @@
"type": "callexp", "type": "callexp",
"named": true "named": true
}, },
{
"type": "eqexp",
"named": true
},
{ {
"type": "funcdef", "type": "funcdef",
"named": true "named": true
@@ -670,6 +1050,14 @@
"type": "parexp", "type": "parexp",
"named": true "named": true
}, },
{
"type": "seqexp",
"named": true
},
{
"type": "tern_ifexp",
"named": true
},
{ {
"type": "vardef", "type": "vardef",
"named": true "named": true
@@ -681,6 +1069,198 @@
] ]
} }
}, },
{
"type": "tern_ifexp",
"named": true,
"fields": {
"cond": {
"multiple": false,
"required": true,
"types": [
{
"type": "binexp",
"named": true
},
{
"type": "block",
"named": true
},
{
"type": "bool",
"named": true
},
{
"type": "callexp",
"named": true
},
{
"type": "eqexp",
"named": true
},
{
"type": "funcdef",
"named": true
},
{
"type": "ifexp",
"named": true
},
{
"type": "lambda",
"named": true
},
{
"type": "num",
"named": true
},
{
"type": "parexp",
"named": true
},
{
"type": "seqexp",
"named": true
},
{
"type": "tern_ifexp",
"named": true
},
{
"type": "vardef",
"named": true
},
{
"type": "word",
"named": true
}
]
},
"else": {
"multiple": false,
"required": true,
"types": [
{
"type": "binexp",
"named": true
},
{
"type": "block",
"named": true
},
{
"type": "bool",
"named": true
},
{
"type": "callexp",
"named": true
},
{
"type": "eqexp",
"named": true
},
{
"type": "funcdef",
"named": true
},
{
"type": "ifexp",
"named": true
},
{
"type": "lambda",
"named": true
},
{
"type": "num",
"named": true
},
{
"type": "parexp",
"named": true
},
{
"type": "seqexp",
"named": true
},
{
"type": "tern_ifexp",
"named": true
},
{
"type": "vardef",
"named": true
},
{
"type": "word",
"named": true
}
]
},
"then": {
"multiple": false,
"required": true,
"types": [
{
"type": "binexp",
"named": true
},
{
"type": "block",
"named": true
},
{
"type": "bool",
"named": true
},
{
"type": "callexp",
"named": true
},
{
"type": "eqexp",
"named": true
},
{
"type": "funcdef",
"named": true
},
{
"type": "ifexp",
"named": true
},
{
"type": "lambda",
"named": true
},
{
"type": "num",
"named": true
},
{
"type": "parexp",
"named": true
},
{
"type": "seqexp",
"named": true
},
{
"type": "tern_ifexp",
"named": true
},
{
"type": "vardef",
"named": true
},
{
"type": "word",
"named": true
}
]
}
}
},
{ {
"type": "vardef", "type": "vardef",
"named": true, "named": true,
@@ -715,6 +1295,10 @@
"type": "callexp", "type": "callexp",
"named": true "named": true
}, },
{
"type": "eqexp",
"named": true
},
{ {
"type": "funcdef", "type": "funcdef",
"named": true "named": true
@@ -735,6 +1319,14 @@
"type": "parexp", "type": "parexp",
"named": true "named": true
}, },
{
"type": "seqexp",
"named": true
},
{
"type": "tern_ifexp",
"named": true
},
{ {
"type": "vardef", "type": "vardef",
"named": true "named": true
@@ -775,10 +1367,18 @@
"type": "/", "type": "/",
"named": false "named": false
}, },
{
"type": ";",
"named": false
},
{ {
"type": "=", "type": "=",
"named": false "named": false
}, },
{
"type": "==",
"named": false
},
{ {
"type": "?", "type": "?",
"named": false "named": false
@@ -787,34 +1387,18 @@
"type": "F", "type": "F",
"named": false "named": false
}, },
{
"type": "FALSE",
"named": false
},
{ {
"type": "T", "type": "T",
"named": false "named": false
}, },
{
"type": "TRUE",
"named": false
},
{ {
"type": "\\", "type": "\\",
"named": false "named": false
}, },
{
"type": "_if",
"named": false
},
{ {
"type": "else", "type": "else",
"named": false "named": false
}, },
{
"type": "eq",
"named": false
},
{ {
"type": "if", "type": "if",
"named": false "named": false

5937
src/parser.c generated

File diff suppressed because it is too large Load Diff