@creationix/rex 0.3.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +3 -2
- package/rex-cli.js +124 -25
- package/rex-cli.ts +2 -2
- package/rex-repl.js +122 -23
- package/rex-repl.ts +36 -3
- package/rex.js +64 -12
- package/rex.ohm +23 -3
- package/rex.ohm-bundle.cjs +1 -1
- package/rex.ohm-bundle.d.ts +5 -0
- package/rex.ohm-bundle.js +1 -1
- package/rex.ts +52 -9
- package/rexc-interpreter.ts +18 -8
package/rex.js
CHANGED
|
@@ -33,7 +33,7 @@ var OPCODE_IDS = {
|
|
|
33
33
|
mod: 20,
|
|
34
34
|
neg: 21
|
|
35
35
|
};
|
|
36
|
-
var FIRST_NON_RESERVED_REF =
|
|
36
|
+
var FIRST_NON_RESERVED_REF = 8;
|
|
37
37
|
var DOMAIN_DIGIT_INDEX = new Map(Array.from(DIGITS).map((char, index) => [char, index]));
|
|
38
38
|
var BINARY_TO_OPCODE = {
|
|
39
39
|
add: "add",
|
|
@@ -147,12 +147,33 @@ function encodeBareOrLengthString(value) {
|
|
|
147
147
|
return `${value}:`;
|
|
148
148
|
return `${encodeUint(byteLength(value))},${value}`;
|
|
149
149
|
}
|
|
150
|
+
var DEC_PARTS = /^(-?\d)(?:\.(\d+))?e([+-]\d+)$/;
|
|
151
|
+
function splitDecimal(num) {
|
|
152
|
+
const match = num.toExponential().match(DEC_PARTS);
|
|
153
|
+
if (!match)
|
|
154
|
+
throw new Error(`Failed to split decimal for ${num}`);
|
|
155
|
+
const [, b1, b2 = "", e1] = match;
|
|
156
|
+
const base = Number.parseInt(b1 + b2, 10);
|
|
157
|
+
const exp = Number.parseInt(e1, 10) - b2.length;
|
|
158
|
+
return { base, exp };
|
|
159
|
+
}
|
|
160
|
+
function encodeDecimal(significand, power) {
|
|
161
|
+
return `${encodeZigzag(power)}*${encodeInt(significand)}`;
|
|
162
|
+
}
|
|
150
163
|
function encodeNumberNode(node) {
|
|
151
164
|
const numberValue = node.value;
|
|
152
|
-
if (
|
|
153
|
-
|
|
154
|
-
if (
|
|
155
|
-
return
|
|
165
|
+
if (Number.isNaN(numberValue))
|
|
166
|
+
return "5'";
|
|
167
|
+
if (numberValue === Infinity)
|
|
168
|
+
return "6'";
|
|
169
|
+
if (numberValue === -Infinity)
|
|
170
|
+
return "7'";
|
|
171
|
+
if (Number.isInteger(numberValue)) {
|
|
172
|
+
const { base, exp } = splitDecimal(numberValue);
|
|
173
|
+
if (exp >= 0 && exp <= 4)
|
|
174
|
+
return encodeInt(numberValue);
|
|
175
|
+
return encodeDecimal(base, exp);
|
|
176
|
+
}
|
|
156
177
|
const raw = node.raw.toLowerCase();
|
|
157
178
|
const sign = raw.startsWith("-") ? -1 : 1;
|
|
158
179
|
const unsigned = sign < 0 ? raw.slice(1) : raw;
|
|
@@ -175,7 +196,7 @@ function encodeNumberNode(node) {
|
|
|
175
196
|
significand /= 10;
|
|
176
197
|
power += 1;
|
|
177
198
|
}
|
|
178
|
-
return
|
|
199
|
+
return encodeDecimal(significand, power);
|
|
179
200
|
}
|
|
180
201
|
function encodeOpcode(opcode) {
|
|
181
202
|
return `${encodeUint(OPCODE_IDS[opcode])}%`;
|
|
@@ -477,6 +498,18 @@ function isPlainObject(value) {
|
|
|
477
498
|
function isBareKeyName(key) {
|
|
478
499
|
return /^[A-Za-z_][A-Za-z0-9_-]*$/.test(key);
|
|
479
500
|
}
|
|
501
|
+
function isNumericKey(key) {
|
|
502
|
+
if (key === "")
|
|
503
|
+
return false;
|
|
504
|
+
return String(Number(key)) === key && Number.isFinite(Number(key));
|
|
505
|
+
}
|
|
506
|
+
function stringifyKey(key) {
|
|
507
|
+
if (isBareKeyName(key))
|
|
508
|
+
return key;
|
|
509
|
+
if (isNumericKey(key))
|
|
510
|
+
return key;
|
|
511
|
+
return stringifyString(key);
|
|
512
|
+
}
|
|
480
513
|
function stringifyString(value) {
|
|
481
514
|
return JSON.stringify(value);
|
|
482
515
|
}
|
|
@@ -488,8 +521,12 @@ function stringifyInline(value) {
|
|
|
488
521
|
if (typeof value === "boolean")
|
|
489
522
|
return value ? "true" : "false";
|
|
490
523
|
if (typeof value === "number") {
|
|
491
|
-
if (
|
|
492
|
-
|
|
524
|
+
if (Number.isNaN(value))
|
|
525
|
+
return "nan";
|
|
526
|
+
if (value === Infinity)
|
|
527
|
+
return "inf";
|
|
528
|
+
if (value === -Infinity)
|
|
529
|
+
return "-inf";
|
|
493
530
|
return String(value);
|
|
494
531
|
}
|
|
495
532
|
if (typeof value === "string")
|
|
@@ -503,7 +540,7 @@ function stringifyInline(value) {
|
|
|
503
540
|
const entries = Object.entries(value);
|
|
504
541
|
if (entries.length === 0)
|
|
505
542
|
return "{}";
|
|
506
|
-
const body = entries.map(([key, item]) => `${
|
|
543
|
+
const body = entries.map(([key, item]) => `${stringifyKey(key)}: ${stringifyInline(item)}`).join(" ");
|
|
507
544
|
return `{${body}}`;
|
|
508
545
|
}
|
|
509
546
|
throw new Error(`Rex stringify() cannot encode value of type ${typeof value}`);
|
|
@@ -540,7 +577,7 @@ ${indent}]`;
|
|
|
540
577
|
if (entries.length === 0)
|
|
541
578
|
return "{}";
|
|
542
579
|
const lines = entries.map(([key, item]) => {
|
|
543
|
-
const keyText =
|
|
580
|
+
const keyText = stringifyKey(key);
|
|
544
581
|
const rendered = stringifyPretty(item, depth + 1, indentSize, maxWidth);
|
|
545
582
|
return `${childIndent}${keyText}: ${rendered}`;
|
|
546
583
|
});
|
|
@@ -1200,7 +1237,16 @@ function inlineAdjacentPureAssignments(block) {
|
|
|
1200
1237
|
return out;
|
|
1201
1238
|
}
|
|
1202
1239
|
function toNumberNode(value) {
|
|
1203
|
-
|
|
1240
|
+
let raw;
|
|
1241
|
+
if (Number.isNaN(value))
|
|
1242
|
+
raw = "nan";
|
|
1243
|
+
else if (value === Infinity)
|
|
1244
|
+
raw = "inf";
|
|
1245
|
+
else if (value === -Infinity)
|
|
1246
|
+
raw = "-inf";
|
|
1247
|
+
else
|
|
1248
|
+
raw = String(value);
|
|
1249
|
+
return { type: "number", raw, value };
|
|
1204
1250
|
}
|
|
1205
1251
|
function toStringNode(value) {
|
|
1206
1252
|
return { type: "string", raw: JSON.stringify(value) };
|
|
@@ -1212,7 +1258,7 @@ function toLiteralNode(value) {
|
|
|
1212
1258
|
return { type: "null" };
|
|
1213
1259
|
if (typeof value === "boolean")
|
|
1214
1260
|
return { type: "boolean", value };
|
|
1215
|
-
if (typeof value === "number"
|
|
1261
|
+
if (typeof value === "number")
|
|
1216
1262
|
return toNumberNode(value);
|
|
1217
1263
|
if (typeof value === "string")
|
|
1218
1264
|
return toStringNode(value);
|
|
@@ -2033,6 +2079,12 @@ function compile(source, options) {
|
|
|
2033
2079
|
});
|
|
2034
2080
|
}
|
|
2035
2081
|
function parseNumber(raw) {
|
|
2082
|
+
if (raw === "nan")
|
|
2083
|
+
return NaN;
|
|
2084
|
+
if (raw === "inf")
|
|
2085
|
+
return Infinity;
|
|
2086
|
+
if (raw === "-inf")
|
|
2087
|
+
return -Infinity;
|
|
2036
2088
|
if (/^-?0x/i.test(raw))
|
|
2037
2089
|
return parseInt(raw, 16);
|
|
2038
2090
|
if (/^-?0b/i.test(raw)) {
|
package/rex.ohm
CHANGED
|
@@ -38,7 +38,7 @@ Rex {
|
|
|
38
38
|
| UnaryExpr -- value
|
|
39
39
|
|
|
40
40
|
UnaryExpr
|
|
41
|
-
= "-" ~digit UnaryExpr
|
|
41
|
+
= "-" ~digit ~infTok UnaryExpr -- neg
|
|
42
42
|
| "~" UnaryExpr -- not
|
|
43
43
|
| DeleteKw Place -- delete
|
|
44
44
|
| PostfixExpr -- value
|
|
@@ -47,7 +47,7 @@ Rex {
|
|
|
47
47
|
= PrimaryExpr PostfixTail* -- chain
|
|
48
48
|
|
|
49
49
|
PostfixTail
|
|
50
|
-
= "."
|
|
50
|
+
= "." navKey -- navStatic
|
|
51
51
|
| ".(" Expr ")" -- navDynamic
|
|
52
52
|
| "(" ")" -- callEmpty
|
|
53
53
|
| "(" Elements<Expr> ")" -- call
|
|
@@ -88,7 +88,7 @@ Rex {
|
|
|
88
88
|
| SelfKw
|
|
89
89
|
|
|
90
90
|
PlaceTail
|
|
91
|
-
= "."
|
|
91
|
+
= "." navKey -- navStatic
|
|
92
92
|
| ".(" Expr ")" -- navDynamic
|
|
93
93
|
|
|
94
94
|
ConditionalExpr
|
|
@@ -142,6 +142,10 @@ Rex {
|
|
|
142
142
|
| String -- string
|
|
143
143
|
| "(" Expr ")" -- computed
|
|
144
144
|
|
|
145
|
+
navKey
|
|
146
|
+
= keyName
|
|
147
|
+
| digit+
|
|
148
|
+
|
|
145
149
|
keyName
|
|
146
150
|
= nameHead nameTail*
|
|
147
151
|
|
|
@@ -185,6 +189,8 @@ Rex {
|
|
|
185
189
|
| falseTok
|
|
186
190
|
| nullTok
|
|
187
191
|
| undefinedTok
|
|
192
|
+
| nanTok
|
|
193
|
+
| infTok
|
|
188
194
|
| selfTok
|
|
189
195
|
| whenTok
|
|
190
196
|
| unlessTok
|
|
@@ -284,6 +290,12 @@ Rex {
|
|
|
284
290
|
undefinedTok
|
|
285
291
|
= "undefined" ~nameTail
|
|
286
292
|
|
|
293
|
+
nanTok
|
|
294
|
+
= "nan" ~nameTail
|
|
295
|
+
|
|
296
|
+
infTok
|
|
297
|
+
= "inf" ~nameTail
|
|
298
|
+
|
|
287
299
|
selfTok
|
|
288
300
|
= "self" ~nameTail
|
|
289
301
|
|
|
@@ -382,8 +394,16 @@ Rex {
|
|
|
382
394
|
Number
|
|
383
395
|
= hexNumber
|
|
384
396
|
| binaryNumber
|
|
397
|
+
| infLiteral
|
|
398
|
+
| nanLiteral
|
|
385
399
|
| decimalNumber
|
|
386
400
|
|
|
401
|
+
infLiteral
|
|
402
|
+
= "-"? infTok
|
|
403
|
+
|
|
404
|
+
nanLiteral
|
|
405
|
+
= nanTok
|
|
406
|
+
|
|
387
407
|
hexNumber
|
|
388
408
|
= "-"? "0x" hex+
|
|
389
409
|
|
package/rex.ohm-bundle.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';const {makeRecipe}=require('ohm-js');const result=makeRecipe(["grammar",{"source":"Rex {\n space += comment\n\n Program\n = Expr*\n\n Expr\n = AssignExpr\n\n AssignExpr\n = Place AssignOp AssignExpr -- assign\n | ExistenceExpr -- value\n\n ExistenceExpr\n = ExistenceExpr AndKw BitExpr -- and\n | ExistenceExpr OrKw BitExpr -- or\n | BitExpr -- value\n\n BitExpr\n = BitExpr \"&\" CompareExpr -- and\n | BitExpr \"^\" CompareExpr -- xor\n | BitExpr \"|\" CompareExpr -- or\n | CompareExpr -- value\n\n CompareExpr\n = AddExpr CompareOp AddExpr -- binary\n | AddExpr -- value\n\n AddExpr\n = AddExpr \"+\" MulExpr -- add\n | AddExpr \"-\" MulExpr -- sub\n | MulExpr -- value\n\n MulExpr\n = MulExpr \"*\" UnaryExpr -- mul\n | MulExpr \"/\" UnaryExpr -- div\n | MulExpr \"%\" UnaryExpr -- mod\n | UnaryExpr -- value\n\n UnaryExpr\n = \"-\" ~digit UnaryExpr -- neg\n | \"~\" UnaryExpr -- not\n | DeleteKw Place -- delete\n | PostfixExpr -- value\n\n PostfixExpr\n = PrimaryExpr PostfixTail* -- chain\n\n PostfixTail\n = \".\" keyName -- navStatic\n | \".(\" Expr \")\" -- navDynamic\n | \"(\" \")\" -- callEmpty\n | \"(\" Elements<Expr> \")\" -- call\n\n PrimaryExpr\n = ConditionalExpr\n | DoExpr\n | ForExpr\n | WhileExpr\n | BreakKw -- break\n | ContinueKw -- continue\n | Array\n | Object\n | String\n | Number\n | StringKw -- stringPred\n | NumberKw -- numberPred\n | ObjectKw -- objectPred\n | ArrayKw -- arrayPred\n | BooleanKw -- booleanPred\n | TrueKw -- true\n | FalseKw -- false\n | NullKw -- null\n | UndefinedKw -- undefined\n | SelfExpr -- self\n | identifier -- identifier\n | \"(\" Expr \")\" -- group\n\n SelfExpr\n = SelfKw \"@\" Number -- depth\n | SelfKw -- plain\n\n Place\n = PlaceBase PlaceTail*\n\n PlaceBase\n = identifier\n | SelfKw\n\n PlaceTail\n = \".\" keyName -- navStatic\n | \".(\" Expr \")\" -- navDynamic\n\n ConditionalExpr\n = ConditionalHead Expr DoKw Block ConditionalElse? EndKw\n\n ConditionalHead\n = WhenKw\n | UnlessKw\n\n ConditionalElse\n = ElseKw ConditionalHead Expr DoKw Block ConditionalElse? -- elseChain\n | ElseKw Block -- else\n\n ForExpr\n = ForKw BindingExpr DoKw Block EndKw\n\n WhileExpr\n = WhileKw Expr DoKw Block EndKw\n\n DoExpr\n = DoKw Block EndKw\n\n BindingExpr\n = IterBinding\n | Expr\n\n Block\n = Expr*\n\n Array\n = \"[\" \"]\" -- empty\n | \"[\" BindingExpr \";\" Expr \"]\" -- comprehension\n | \"[\" Elements<Expr> \"]\" -- values\n\n Object\n = \"{\" \"}\" -- empty\n | \"{\" BindingExpr \";\" ObjKey \":\" Expr \"}\" -- comprehension\n | \"{\" Elements<Pair> \"}\" -- pairs\n\n IterBinding\n = identifier \",\" identifier \"in\" Expr -- keyValueIn\n | identifier \"in\" Expr -- valueIn\n | identifier \"of\" Expr -- keyOf\n\n Pair\n = ObjKey \":\" Expr\n\n ObjKey\n = keyName -- bare\n | Number -- number\n | String -- string\n | \"(\" Expr \")\" -- computed\n\n keyName\n = nameHead nameTail*\n\n CompareOp\n = \"==\"\n | \"!=\"\n | \">=\"\n | \">\"\n | \"<=\"\n | \"<\"\n\n AssignOp\n = \"=\"\n | \"+=\"\n | \"-=\"\n | \"*=\"\n | \"/=\"\n | \"%=\"\n | \"&=\"\n | \"|=\"\n | \"^=\"\n\n Elements<item>\n = item (\",\"? item)* \",\"?\n\n identifier\n = ~reserved nameHead nameTail*\n\n nameHead\n = letter\n | \"_\"\n\n nameTail\n = letter\n | digit\n | \"_\"\n | \"-\"\n\n reserved\n = trueTok\n | falseTok\n | nullTok\n | undefinedTok\n | selfTok\n | whenTok\n | unlessTok\n | forTok\n | whileTok\n | inTok\n | ofTok\n | doTok\n | elseTok\n | endTok\n | breakTok\n | continueTok\n | andTok\n | orTok\n | deleteTok\n | stringTok\n | numberTok\n | objectTok\n | arrayTok\n | booleanTok\n\n TrueKw\n = trueTok\n\n FalseKw\n = falseTok\n\n NullKw\n = nullTok\n\n UndefinedKw\n = undefinedTok\n\n SelfKw\n = selfTok\n\n WhenKw\n = whenTok\n\n UnlessKw\n = unlessTok\n\n WhileKw\n = whileTok\n\n ForKw\n = forTok\n\n DoKw\n = doTok\n\n ElseKw\n = elseTok\n\n EndKw\n = endTok\n\n BreakKw\n = breakTok\n\n ContinueKw\n = continueTok\n\n AndKw\n = andTok\n\n OrKw\n = orTok\n\n DeleteKw\n = deleteTok\n\n StringKw\n = stringTok\n\n NumberKw\n = numberTok\n\n ObjectKw\n = objectTok\n\n ArrayKw\n = arrayTok\n\n BooleanKw\n = booleanTok\n\n trueTok\n = \"true\" ~nameTail\n\n falseTok\n = \"false\" ~nameTail\n\n nullTok\n = \"null\" ~nameTail\n\n undefinedTok\n = \"undefined\" ~nameTail\n\n selfTok\n = \"self\" ~nameTail\n\n whenTok\n = \"when\" ~nameTail\n\n unlessTok\n = \"unless\" ~nameTail\n\n whileTok\n = \"while\" ~nameTail\n\n forTok\n = \"for\" ~nameTail\n\n inTok\n = \"in\" ~nameTail\n\n ofTok\n = \"of\" ~nameTail\n\n doTok\n = \"do\" ~nameTail\n\n elseTok\n = \"else\" ~nameTail\n\n endTok\n = \"end\" ~nameTail\n\n breakTok\n = \"break\" ~nameTail\n\n continueTok\n = \"continue\" ~nameTail\n\n andTok\n = \"and\" ~nameTail\n\n orTok\n = \"or\" ~nameTail\n\n deleteTok\n = \"delete\" ~nameTail\n\n stringTok\n = \"string\" ~nameTail\n\n numberTok\n = \"number\" ~nameTail\n\n objectTok\n = \"object\" ~nameTail\n\n arrayTok\n = \"array\" ~nameTail\n\n booleanTok\n = \"boolean\" ~nameTail\n\n String\n = DQuotedString\n | SQuotedString\n\n DQuotedString\n = \"\\\"\" dStringChar* \"\\\"\"\n\n dStringChar\n = ~(\"\\\"\" | \"\\\\\") any\n | escape\n\n SQuotedString\n = \"'\" sStringChar* \"'\"\n\n sStringChar\n = ~(\"'\" | \"\\\\\") any\n | escape\n\n escape\n = \"\\\\\" (escapeChar | hexEscape | unicodeEscape)\n\n escapeChar\n = \"\\\"\" | \"'\" | \"\\\\\" | \"/\" | \"b\" | \"f\" | \"n\" | \"r\" | \"t\" | \"0\"\n\n hexEscape\n = \"x\" hex hex\n\n unicodeEscape\n = \"u\" hex hex hex hex\n\n hex\n = digit\n | \"A\"..\"F\"\n | \"a\"..\"f\"\n\n Number\n = hexNumber\n | binaryNumber\n | decimalNumber\n\n hexNumber\n = \"-\"? \"0x\" hex+\n\n binaryNumber\n = \"-\"? \"0b\" bit+\n\n decimalNumber\n = \"-\"? decimalInteger (\".\" digit+)? exponent?\n\n decimalInteger\n = nonZeroDigit digit* -- nonZero\n | \"0\" -- zero\n\n bit\n = \"0\" | \"1\"\n\n exponent\n = (\"e\" | \"E\") (\"+\" | \"-\")? digit+\n\n nonZeroDigit\n = \"1\"..\"9\"\n\n comment\n = lineComment\n | blockComment\n\n lineComment\n = \"//\" (~\"\\n\" any)* \"\\n\"?\n\n blockComment\n = \"/*\" (~\"*/\" any)* \"*/\"\n}"},"Rex",null,"Program",{"space":["extend",{"sourceInterval":[8,24]},null,[],["app",{"sourceInterval":[17,24]},"comment",[]]],"Program":["define",{"sourceInterval":[28,47]},null,[],["star",{"sourceInterval":[42,47]},["app",{"sourceInterval":[42,46]},"Expr",[]]]],"Expr":["define",{"sourceInterval":[51,72]},null,[],["app",{"sourceInterval":[62,72]},"AssignExpr",[]]],"AssignExpr_assign":["define",{"sourceInterval":[93,133]},null,[],["seq",{"sourceInterval":[93,118]},["app",{"sourceInterval":[93,98]},"Place",[]],["app",{"sourceInterval":[99,107]},"AssignOp",[]],["app",{"sourceInterval":[108,118]},"AssignExpr",[]]]],"AssignExpr_value":["define",{"sourceInterval":[140,179]},null,[],["app",{"sourceInterval":[140,153]},"ExistenceExpr",[]]],"AssignExpr":["define",{"sourceInterval":[76,179]},null,[],["alt",{"sourceInterval":[93,179]},["app",{"sourceInterval":[93,118]},"AssignExpr_assign",[]],["app",{"sourceInterval":[140,153]},"AssignExpr_value",[]]]],"ExistenceExpr_and":["define",{"sourceInterval":[203,240]},null,[],["seq",{"sourceInterval":[203,230]},["app",{"sourceInterval":[203,216]},"ExistenceExpr",[]],["app",{"sourceInterval":[217,222]},"AndKw",[]],["app",{"sourceInterval":[223,230]},"BitExpr",[]]]],"ExistenceExpr_or":["define",{"sourceInterval":[247,283]},null,[],["seq",{"sourceInterval":[247,273]},["app",{"sourceInterval":[247,260]},"ExistenceExpr",[]],["app",{"sourceInterval":[261,265]},"OrKw",[]],["app",{"sourceInterval":[266,273]},"BitExpr",[]]]],"ExistenceExpr_value":["define",{"sourceInterval":[290,329]},null,[],["app",{"sourceInterval":[290,297]},"BitExpr",[]]],"ExistenceExpr":["define",{"sourceInterval":[183,329]},null,[],["alt",{"sourceInterval":[203,329]},["app",{"sourceInterval":[203,230]},"ExistenceExpr_and",[]],["app",{"sourceInterval":[247,273]},"ExistenceExpr_or",[]],["app",{"sourceInterval":[290,297]},"ExistenceExpr_value",[]]]],"BitExpr_and":["define",{"sourceInterval":[347,384]},null,[],["seq",{"sourceInterval":[347,370]},["app",{"sourceInterval":[347,354]},"BitExpr",[]],["terminal",{"sourceInterval":[355,358]},"&"],["app",{"sourceInterval":[359,370]},"CompareExpr",[]]]],"BitExpr_xor":["define",{"sourceInterval":[391,428]},null,[],["seq",{"sourceInterval":[391,414]},["app",{"sourceInterval":[391,398]},"BitExpr",[]],["terminal",{"sourceInterval":[399,402]},"^"],["app",{"sourceInterval":[403,414]},"CompareExpr",[]]]],"BitExpr_or":["define",{"sourceInterval":[435,471]},null,[],["seq",{"sourceInterval":[435,458]},["app",{"sourceInterval":[435,442]},"BitExpr",[]],["terminal",{"sourceInterval":[443,446]},"|"],["app",{"sourceInterval":[447,458]},"CompareExpr",[]]]],"BitExpr_value":["define",{"sourceInterval":[478,517]},null,[],["app",{"sourceInterval":[478,489]},"CompareExpr",[]]],"BitExpr":["define",{"sourceInterval":[333,517]},null,[],["alt",{"sourceInterval":[347,517]},["app",{"sourceInterval":[347,370]},"BitExpr_and",[]],["app",{"sourceInterval":[391,414]},"BitExpr_xor",[]],["app",{"sourceInterval":[435,458]},"BitExpr_or",[]],["app",{"sourceInterval":[478,489]},"BitExpr_value",[]]]],"CompareExpr_binary":["define",{"sourceInterval":[539,579]},null,[],["seq",{"sourceInterval":[539,564]},["app",{"sourceInterval":[539,546]},"AddExpr",[]],["app",{"sourceInterval":[547,556]},"CompareOp",[]],["app",{"sourceInterval":[557,564]},"AddExpr",[]]]],"CompareExpr_value":["define",{"sourceInterval":[586,625]},null,[],["app",{"sourceInterval":[586,593]},"AddExpr",[]]],"CompareExpr":["define",{"sourceInterval":[521,625]},null,[],["alt",{"sourceInterval":[539,625]},["app",{"sourceInterval":[539,564]},"CompareExpr_binary",[]],["app",{"sourceInterval":[586,593]},"CompareExpr_value",[]]]],"AddExpr_add":["define",{"sourceInterval":[643,680]},null,[],["seq",{"sourceInterval":[643,662]},["app",{"sourceInterval":[643,650]},"AddExpr",[]],["terminal",{"sourceInterval":[651,654]},"+"],["app",{"sourceInterval":[655,662]},"MulExpr",[]]]],"AddExpr_sub":["define",{"sourceInterval":[687,724]},null,[],["seq",{"sourceInterval":[687,706]},["app",{"sourceInterval":[687,694]},"AddExpr",[]],["terminal",{"sourceInterval":[695,698]},"-"],["app",{"sourceInterval":[699,706]},"MulExpr",[]]]],"AddExpr_value":["define",{"sourceInterval":[731,770]},null,[],["app",{"sourceInterval":[731,738]},"MulExpr",[]]],"AddExpr":["define",{"sourceInterval":[629,770]},null,[],["alt",{"sourceInterval":[643,770]},["app",{"sourceInterval":[643,662]},"AddExpr_add",[]],["app",{"sourceInterval":[687,706]},"AddExpr_sub",[]],["app",{"sourceInterval":[731,738]},"AddExpr_value",[]]]],"MulExpr_mul":["define",{"sourceInterval":[788,825]},null,[],["seq",{"sourceInterval":[788,809]},["app",{"sourceInterval":[788,795]},"MulExpr",[]],["terminal",{"sourceInterval":[796,799]},"*"],["app",{"sourceInterval":[800,809]},"UnaryExpr",[]]]],"MulExpr_div":["define",{"sourceInterval":[832,869]},null,[],["seq",{"sourceInterval":[832,853]},["app",{"sourceInterval":[832,839]},"MulExpr",[]],["terminal",{"sourceInterval":[840,843]},"/"],["app",{"sourceInterval":[844,853]},"UnaryExpr",[]]]],"MulExpr_mod":["define",{"sourceInterval":[876,913]},null,[],["seq",{"sourceInterval":[876,897]},["app",{"sourceInterval":[876,883]},"MulExpr",[]],["terminal",{"sourceInterval":[884,887]},"%"],["app",{"sourceInterval":[888,897]},"UnaryExpr",[]]]],"MulExpr_value":["define",{"sourceInterval":[920,959]},null,[],["app",{"sourceInterval":[920,929]},"UnaryExpr",[]]],"MulExpr":["define",{"sourceInterval":[774,959]},null,[],["alt",{"sourceInterval":[788,959]},["app",{"sourceInterval":[788,809]},"MulExpr_mul",[]],["app",{"sourceInterval":[832,853]},"MulExpr_div",[]],["app",{"sourceInterval":[876,897]},"MulExpr_mod",[]],["app",{"sourceInterval":[920,929]},"MulExpr_value",[]]]],"UnaryExpr_neg":["define",{"sourceInterval":[979,1016]},null,[],["seq",{"sourceInterval":[979,999]},["terminal",{"sourceInterval":[979,982]},"-"],["not",{"sourceInterval":[983,989]},["app",{"sourceInterval":[984,989]},"digit",[]]],["app",{"sourceInterval":[990,999]},"UnaryExpr",[]]]],"UnaryExpr_not":["define",{"sourceInterval":[1023,1060]},null,[],["seq",{"sourceInterval":[1023,1036]},["terminal",{"sourceInterval":[1023,1026]},"~"],["app",{"sourceInterval":[1027,1036]},"UnaryExpr",[]]]],"UnaryExpr_delete":["define",{"sourceInterval":[1067,1107]},null,[],["seq",{"sourceInterval":[1067,1081]},["app",{"sourceInterval":[1067,1075]},"DeleteKw",[]],["app",{"sourceInterval":[1076,1081]},"Place",[]]]],"UnaryExpr_value":["define",{"sourceInterval":[1114,1153]},null,[],["app",{"sourceInterval":[1114,1125]},"PostfixExpr",[]]],"UnaryExpr":["define",{"sourceInterval":[963,1153]},null,[],["alt",{"sourceInterval":[979,1153]},["app",{"sourceInterval":[979,999]},"UnaryExpr_neg",[]],["app",{"sourceInterval":[1023,1036]},"UnaryExpr_not",[]],["app",{"sourceInterval":[1067,1081]},"UnaryExpr_delete",[]],["app",{"sourceInterval":[1114,1125]},"UnaryExpr_value",[]]]],"PostfixExpr_chain":["define",{"sourceInterval":[1175,1214]},null,[],["seq",{"sourceInterval":[1175,1199]},["app",{"sourceInterval":[1175,1186]},"PrimaryExpr",[]],["star",{"sourceInterval":[1187,1199]},["app",{"sourceInterval":[1187,1198]},"PostfixTail",[]]]]],"PostfixExpr":["define",{"sourceInterval":[1157,1214]},null,[],["app",{"sourceInterval":[1175,1214]},"PostfixExpr_chain",[]]],"PostfixTail_navStatic":["define",{"sourceInterval":[1236,1279]},null,[],["seq",{"sourceInterval":[1236,1247]},["terminal",{"sourceInterval":[1236,1239]},"."],["app",{"sourceInterval":[1240,1247]},"keyName",[]]]],"PostfixTail_navDynamic":["define",{"sourceInterval":[1286,1329]},null,[],["seq",{"sourceInterval":[1286,1299]},["terminal",{"sourceInterval":[1286,1290]},".("],["app",{"sourceInterval":[1291,1295]},"Expr",[]],["terminal",{"sourceInterval":[1296,1299]},")"]]],"PostfixTail_callEmpty":["define",{"sourceInterval":[1336,1377]},null,[],["seq",{"sourceInterval":[1336,1343]},["terminal",{"sourceInterval":[1336,1339]},"("],["terminal",{"sourceInterval":[1340,1343]},")"]]],"PostfixTail_call":["define",{"sourceInterval":[1384,1421]},null,[],["seq",{"sourceInterval":[1384,1406]},["terminal",{"sourceInterval":[1384,1387]},"("],["app",{"sourceInterval":[1388,1402]},"Elements",[["app",{"sourceInterval":[1397,1401]},"Expr",[]]]],["terminal",{"sourceInterval":[1403,1406]},")"]]],"PostfixTail":["define",{"sourceInterval":[1218,1421]},null,[],["alt",{"sourceInterval":[1236,1421]},["app",{"sourceInterval":[1236,1247]},"PostfixTail_navStatic",[]],["app",{"sourceInterval":[1286,1299]},"PostfixTail_navDynamic",[]],["app",{"sourceInterval":[1336,1343]},"PostfixTail_callEmpty",[]],["app",{"sourceInterval":[1384,1406]},"PostfixTail_call",[]]]],"PrimaryExpr_break":["define",{"sourceInterval":[1508,1547]},null,[],["app",{"sourceInterval":[1508,1515]},"BreakKw",[]]],"PrimaryExpr_continue":["define",{"sourceInterval":[1554,1596]},null,[],["app",{"sourceInterval":[1554,1564]},"ContinueKw",[]]],"PrimaryExpr_stringPred":["define",{"sourceInterval":[1654,1698]},null,[],["app",{"sourceInterval":[1654,1662]},"StringKw",[]]],"PrimaryExpr_numberPred":["define",{"sourceInterval":[1705,1749]},null,[],["app",{"sourceInterval":[1705,1713]},"NumberKw",[]]],"PrimaryExpr_objectPred":["define",{"sourceInterval":[1756,1800]},null,[],["app",{"sourceInterval":[1756,1764]},"ObjectKw",[]]],"PrimaryExpr_arrayPred":["define",{"sourceInterval":[1807,1850]},null,[],["app",{"sourceInterval":[1807,1814]},"ArrayKw",[]]],"PrimaryExpr_booleanPred":["define",{"sourceInterval":[1857,1902]},null,[],["app",{"sourceInterval":[1857,1866]},"BooleanKw",[]]],"PrimaryExpr_true":["define",{"sourceInterval":[1909,1947]},null,[],["app",{"sourceInterval":[1909,1915]},"TrueKw",[]]],"PrimaryExpr_false":["define",{"sourceInterval":[1954,1993]},null,[],["app",{"sourceInterval":[1954,1961]},"FalseKw",[]]],"PrimaryExpr_null":["define",{"sourceInterval":[2000,2038]},null,[],["app",{"sourceInterval":[2000,2006]},"NullKw",[]]],"PrimaryExpr_undefined":["define",{"sourceInterval":[2045,2088]},null,[],["app",{"sourceInterval":[2045,2056]},"UndefinedKw",[]]],"PrimaryExpr_self":["define",{"sourceInterval":[2095,2133]},null,[],["app",{"sourceInterval":[2095,2103]},"SelfExpr",[]]],"PrimaryExpr_identifier":["define",{"sourceInterval":[2140,2184]},null,[],["app",{"sourceInterval":[2140,2150]},"identifier",[]]],"PrimaryExpr_group":["define",{"sourceInterval":[2191,2229]},null,[],["seq",{"sourceInterval":[2191,2203]},["terminal",{"sourceInterval":[2191,2194]},"("],["app",{"sourceInterval":[2195,2199]},"Expr",[]],["terminal",{"sourceInterval":[2200,2203]},")"]]],"PrimaryExpr":["define",{"sourceInterval":[1425,2229]},null,[],["alt",{"sourceInterval":[1443,2229]},["app",{"sourceInterval":[1443,1458]},"ConditionalExpr",[]],["app",{"sourceInterval":[1465,1471]},"DoExpr",[]],["app",{"sourceInterval":[1478,1485]},"ForExpr",[]],["app",{"sourceInterval":[1492,1501]},"WhileExpr",[]],["app",{"sourceInterval":[1508,1515]},"PrimaryExpr_break",[]],["app",{"sourceInterval":[1554,1564]},"PrimaryExpr_continue",[]],["app",{"sourceInterval":[1603,1608]},"Array",[]],["app",{"sourceInterval":[1615,1621]},"Object",[]],["app",{"sourceInterval":[1628,1634]},"String",[]],["app",{"sourceInterval":[1641,1647]},"Number",[]],["app",{"sourceInterval":[1654,1662]},"PrimaryExpr_stringPred",[]],["app",{"sourceInterval":[1705,1713]},"PrimaryExpr_numberPred",[]],["app",{"sourceInterval":[1756,1764]},"PrimaryExpr_objectPred",[]],["app",{"sourceInterval":[1807,1814]},"PrimaryExpr_arrayPred",[]],["app",{"sourceInterval":[1857,1866]},"PrimaryExpr_booleanPred",[]],["app",{"sourceInterval":[1909,1915]},"PrimaryExpr_true",[]],["app",{"sourceInterval":[1954,1961]},"PrimaryExpr_false",[]],["app",{"sourceInterval":[2000,2006]},"PrimaryExpr_null",[]],["app",{"sourceInterval":[2045,2056]},"PrimaryExpr_undefined",[]],["app",{"sourceInterval":[2095,2103]},"PrimaryExpr_self",[]],["app",{"sourceInterval":[2140,2150]},"PrimaryExpr_identifier",[]],["app",{"sourceInterval":[2191,2203]},"PrimaryExpr_group",[]]]],"SelfExpr_depth":["define",{"sourceInterval":[2248,2286]},null,[],["seq",{"sourceInterval":[2248,2265]},["app",{"sourceInterval":[2248,2254]},"SelfKw",[]],["terminal",{"sourceInterval":[2255,2258]},"@"],["app",{"sourceInterval":[2259,2265]},"Number",[]]]],"SelfExpr_plain":["define",{"sourceInterval":[2293,2332]},null,[],["app",{"sourceInterval":[2293,2299]},"SelfKw",[]]],"SelfExpr":["define",{"sourceInterval":[2233,2332]},null,[],["alt",{"sourceInterval":[2248,2332]},["app",{"sourceInterval":[2248,2265]},"SelfExpr_depth",[]],["app",{"sourceInterval":[2293,2299]},"SelfExpr_plain",[]]]],"Place":["define",{"sourceInterval":[2336,2368]},null,[],["seq",{"sourceInterval":[2348,2368]},["app",{"sourceInterval":[2348,2357]},"PlaceBase",[]],["star",{"sourceInterval":[2358,2368]},["app",{"sourceInterval":[2358,2367]},"PlaceTail",[]]]]],"PlaceBase":["define",{"sourceInterval":[2372,2411]},null,[],["alt",{"sourceInterval":[2388,2411]},["app",{"sourceInterval":[2388,2398]},"identifier",[]],["app",{"sourceInterval":[2405,2411]},"SelfKw",[]]]],"PlaceTail_navStatic":["define",{"sourceInterval":[2431,2474]},null,[],["seq",{"sourceInterval":[2431,2442]},["terminal",{"sourceInterval":[2431,2434]},"."],["app",{"sourceInterval":[2435,2442]},"keyName",[]]]],"PlaceTail_navDynamic":["define",{"sourceInterval":[2481,2524]},null,[],["seq",{"sourceInterval":[2481,2494]},["terminal",{"sourceInterval":[2481,2485]},".("],["app",{"sourceInterval":[2486,2490]},"Expr",[]],["terminal",{"sourceInterval":[2491,2494]},")"]]],"PlaceTail":["define",{"sourceInterval":[2415,2524]},null,[],["alt",{"sourceInterval":[2431,2524]},["app",{"sourceInterval":[2431,2442]},"PlaceTail_navStatic",[]],["app",{"sourceInterval":[2481,2494]},"PlaceTail_navDynamic",[]]]],"ConditionalExpr":["define",{"sourceInterval":[2528,2604]},null,[],["seq",{"sourceInterval":[2550,2604]},["app",{"sourceInterval":[2550,2565]},"ConditionalHead",[]],["app",{"sourceInterval":[2566,2570]},"Expr",[]],["app",{"sourceInterval":[2571,2575]},"DoKw",[]],["app",{"sourceInterval":[2576,2581]},"Block",[]],["opt",{"sourceInterval":[2582,2598]},["app",{"sourceInterval":[2582,2597]},"ConditionalElse",[]]],["app",{"sourceInterval":[2599,2604]},"EndKw",[]]]],"ConditionalHead":["define",{"sourceInterval":[2608,2651]},null,[],["alt",{"sourceInterval":[2630,2651]},["app",{"sourceInterval":[2630,2636]},"WhenKw",[]],["app",{"sourceInterval":[2643,2651]},"UnlessKw",[]]]],"ConditionalElse_elseChain":["define",{"sourceInterval":[2677,2746]},null,[],["seq",{"sourceInterval":[2677,2732]},["app",{"sourceInterval":[2677,2683]},"ElseKw",[]],["app",{"sourceInterval":[2684,2699]},"ConditionalHead",[]],["app",{"sourceInterval":[2700,2704]},"Expr",[]],["app",{"sourceInterval":[2705,2709]},"DoKw",[]],["app",{"sourceInterval":[2710,2715]},"Block",[]],["opt",{"sourceInterval":[2716,2732]},["app",{"sourceInterval":[2716,2731]},"ConditionalElse",[]]]]],"ConditionalElse_else":["define",{"sourceInterval":[2753,2819]},null,[],["seq",{"sourceInterval":[2753,2765]},["app",{"sourceInterval":[2753,2759]},"ElseKw",[]],["app",{"sourceInterval":[2760,2765]},"Block",[]]]],"ConditionalElse":["define",{"sourceInterval":[2655,2819]},null,[],["alt",{"sourceInterval":[2677,2819]},["app",{"sourceInterval":[2677,2732]},"ConditionalElse_elseChain",[]],["app",{"sourceInterval":[2753,2765]},"ConditionalElse_else",[]]]],"ForExpr":["define",{"sourceInterval":[2823,2871]},null,[],["seq",{"sourceInterval":[2837,2871]},["app",{"sourceInterval":[2837,2842]},"ForKw",[]],["app",{"sourceInterval":[2843,2854]},"BindingExpr",[]],["app",{"sourceInterval":[2855,2859]},"DoKw",[]],["app",{"sourceInterval":[2860,2865]},"Block",[]],["app",{"sourceInterval":[2866,2871]},"EndKw",[]]]],"WhileExpr":["define",{"sourceInterval":[2875,2920]},null,[],["seq",{"sourceInterval":[2891,2920]},["app",{"sourceInterval":[2891,2898]},"WhileKw",[]],["app",{"sourceInterval":[2899,2903]},"Expr",[]],["app",{"sourceInterval":[2904,2908]},"DoKw",[]],["app",{"sourceInterval":[2909,2914]},"Block",[]],["app",{"sourceInterval":[2915,2920]},"EndKw",[]]]],"DoExpr":["define",{"sourceInterval":[2924,2953]},null,[],["seq",{"sourceInterval":[2937,2953]},["app",{"sourceInterval":[2937,2941]},"DoKw",[]],["app",{"sourceInterval":[2942,2947]},"Block",[]],["app",{"sourceInterval":[2948,2953]},"EndKw",[]]]],"BindingExpr":["define",{"sourceInterval":[2957,2997]},null,[],["alt",{"sourceInterval":[2975,2997]},["app",{"sourceInterval":[2975,2986]},"IterBinding",[]],["app",{"sourceInterval":[2993,2997]},"Expr",[]]]],"Block":["define",{"sourceInterval":[3001,3018]},null,[],["star",{"sourceInterval":[3013,3018]},["app",{"sourceInterval":[3013,3017]},"Expr",[]]]],"Array_empty":["define",{"sourceInterval":[3034,3081]},null,[],["seq",{"sourceInterval":[3034,3041]},["terminal",{"sourceInterval":[3034,3037]},"["],["terminal",{"sourceInterval":[3038,3041]},"]"]]],"Array_comprehension":["define",{"sourceInterval":[3088,3142]},null,[],["seq",{"sourceInterval":[3088,3116]},["terminal",{"sourceInterval":[3088,3091]},"["],["app",{"sourceInterval":[3092,3103]},"BindingExpr",[]],["terminal",{"sourceInterval":[3104,3107]},";"],["app",{"sourceInterval":[3108,3112]},"Expr",[]],["terminal",{"sourceInterval":[3113,3116]},"]"]]],"Array_values":["define",{"sourceInterval":[3149,3197]},null,[],["seq",{"sourceInterval":[3149,3171]},["terminal",{"sourceInterval":[3149,3152]},"["],["app",{"sourceInterval":[3153,3167]},"Elements",[["app",{"sourceInterval":[3162,3166]},"Expr",[]]]],["terminal",{"sourceInterval":[3168,3171]},"]"]]],"Array":["define",{"sourceInterval":[3022,3197]},null,[],["alt",{"sourceInterval":[3034,3197]},["app",{"sourceInterval":[3034,3041]},"Array_empty",[]],["app",{"sourceInterval":[3088,3116]},"Array_comprehension",[]],["app",{"sourceInterval":[3149,3171]},"Array_values",[]]]],"Object_empty":["define",{"sourceInterval":[3214,3262]},null,[],["seq",{"sourceInterval":[3214,3221]},["terminal",{"sourceInterval":[3214,3217]},"{"],["terminal",{"sourceInterval":[3218,3221]},"}"]]],"Object_comprehension":["define",{"sourceInterval":[3269,3325]},null,[],["seq",{"sourceInterval":[3269,3308]},["terminal",{"sourceInterval":[3269,3272]},"{"],["app",{"sourceInterval":[3273,3284]},"BindingExpr",[]],["terminal",{"sourceInterval":[3285,3288]},";"],["app",{"sourceInterval":[3289,3295]},"ObjKey",[]],["terminal",{"sourceInterval":[3296,3299]},":"],["app",{"sourceInterval":[3300,3304]},"Expr",[]],["terminal",{"sourceInterval":[3305,3308]},"}"]]],"Object_pairs":["define",{"sourceInterval":[3332,3379]},null,[],["seq",{"sourceInterval":[3332,3354]},["terminal",{"sourceInterval":[3332,3335]},"{"],["app",{"sourceInterval":[3336,3350]},"Elements",[["app",{"sourceInterval":[3345,3349]},"Pair",[]]]],["terminal",{"sourceInterval":[3351,3354]},"}"]]],"Object":["define",{"sourceInterval":[3201,3379]},null,[],["alt",{"sourceInterval":[3214,3379]},["app",{"sourceInterval":[3214,3221]},"Object_empty",[]],["app",{"sourceInterval":[3269,3308]},"Object_comprehension",[]],["app",{"sourceInterval":[3332,3354]},"Object_pairs",[]]]],"IterBinding_keyValueIn":["define",{"sourceInterval":[3401,3452]},null,[],["seq",{"sourceInterval":[3401,3436]},["app",{"sourceInterval":[3401,3411]},"identifier",[]],["terminal",{"sourceInterval":[3412,3415]},","],["app",{"sourceInterval":[3416,3426]},"identifier",[]],["terminal",{"sourceInterval":[3427,3431]},"in"],["app",{"sourceInterval":[3432,3436]},"Expr",[]]]],"IterBinding_valueIn":["define",{"sourceInterval":[3459,3507]},null,[],["seq",{"sourceInterval":[3459,3479]},["app",{"sourceInterval":[3459,3469]},"identifier",[]],["terminal",{"sourceInterval":[3470,3474]},"in"],["app",{"sourceInterval":[3475,3479]},"Expr",[]]]],"IterBinding_keyOf":["define",{"sourceInterval":[3514,3560]},null,[],["seq",{"sourceInterval":[3514,3534]},["app",{"sourceInterval":[3514,3524]},"identifier",[]],["terminal",{"sourceInterval":[3525,3529]},"of"],["app",{"sourceInterval":[3530,3534]},"Expr",[]]]],"IterBinding":["define",{"sourceInterval":[3383,3560]},null,[],["alt",{"sourceInterval":[3401,3560]},["app",{"sourceInterval":[3401,3436]},"IterBinding_keyValueIn",[]],["app",{"sourceInterval":[3459,3479]},"IterBinding_valueIn",[]],["app",{"sourceInterval":[3514,3534]},"IterBinding_keyOf",[]]]],"Pair":["define",{"sourceInterval":[3564,3590]},null,[],["seq",{"sourceInterval":[3575,3590]},["app",{"sourceInterval":[3575,3581]},"ObjKey",[]],["terminal",{"sourceInterval":[3582,3585]},":"],["app",{"sourceInterval":[3586,3590]},"Expr",[]]]],"ObjKey_bare":["define",{"sourceInterval":[3607,3645]},null,[],["app",{"sourceInterval":[3607,3614]},"keyName",[]]],"ObjKey_number":["define",{"sourceInterval":[3652,3692]},null,[],["app",{"sourceInterval":[3652,3658]},"Number",[]]],"ObjKey_string":["define",{"sourceInterval":[3699,3739]},null,[],["app",{"sourceInterval":[3699,3705]},"String",[]]],"ObjKey_computed":["define",{"sourceInterval":[3746,3787]},null,[],["seq",{"sourceInterval":[3746,3758]},["terminal",{"sourceInterval":[3746,3749]},"("],["app",{"sourceInterval":[3750,3754]},"Expr",[]],["terminal",{"sourceInterval":[3755,3758]},")"]]],"ObjKey":["define",{"sourceInterval":[3594,3787]},null,[],["alt",{"sourceInterval":[3607,3787]},["app",{"sourceInterval":[3607,3614]},"ObjKey_bare",[]],["app",{"sourceInterval":[3652,3658]},"ObjKey_number",[]],["app",{"sourceInterval":[3699,3705]},"ObjKey_string",[]],["app",{"sourceInterval":[3746,3758]},"ObjKey_computed",[]]]],"keyName":["define",{"sourceInterval":[3791,3823]},null,[],["seq",{"sourceInterval":[3805,3823]},["app",{"sourceInterval":[3805,3813]},"nameHead",[]],["star",{"sourceInterval":[3814,3823]},["app",{"sourceInterval":[3814,3822]},"nameTail",[]]]]],"CompareOp":["define",{"sourceInterval":[3827,3900]},null,[],["alt",{"sourceInterval":[3843,3900]},["terminal",{"sourceInterval":[3843,3847]},"=="],["terminal",{"sourceInterval":[3854,3858]},"!="],["terminal",{"sourceInterval":[3865,3869]},">="],["terminal",{"sourceInterval":[3876,3879]},">"],["terminal",{"sourceInterval":[3886,3890]},"<="],["terminal",{"sourceInterval":[3897,3900]},"<"]]],"AssignOp":["define",{"sourceInterval":[3904,4010]},null,[],["alt",{"sourceInterval":[3919,4010]},["terminal",{"sourceInterval":[3919,3922]},"="],["terminal",{"sourceInterval":[3929,3933]},"+="],["terminal",{"sourceInterval":[3940,3944]},"-="],["terminal",{"sourceInterval":[3951,3955]},"*="],["terminal",{"sourceInterval":[3962,3966]},"/="],["terminal",{"sourceInterval":[3973,3977]},"%="],["terminal",{"sourceInterval":[3984,3988]},"&="],["terminal",{"sourceInterval":[3995,3999]},"|="],["terminal",{"sourceInterval":[4006,4010]},"^="]]],"Elements":["define",{"sourceInterval":[4014,4057]},null,["item"],["seq",{"sourceInterval":[4035,4057]},["param",{"sourceInterval":[4035,4039]},0],["star",{"sourceInterval":[4040,4052]},["seq",{"sourceInterval":[4041,4050]},["opt",{"sourceInterval":[4041,4045]},["terminal",{"sourceInterval":[4041,4044]},","]],["param",{"sourceInterval":[4046,4050]},0]]],["opt",{"sourceInterval":[4053,4057]},["terminal",{"sourceInterval":[4053,4056]},","]]]],"identifier":["define",{"sourceInterval":[4061,4106]},null,[],["seq",{"sourceInterval":[4078,4106]},["not",{"sourceInterval":[4078,4087]},["app",{"sourceInterval":[4079,4087]},"reserved",[]]],["app",{"sourceInterval":[4088,4096]},"nameHead",[]],["star",{"sourceInterval":[4097,4106]},["app",{"sourceInterval":[4097,4105]},"nameTail",[]]]]],"nameHead":["define",{"sourceInterval":[4110,4141]},null,[],["alt",{"sourceInterval":[4125,4141]},["app",{"sourceInterval":[4125,4131]},"letter",[]],["terminal",{"sourceInterval":[4138,4141]},"_"]]],"nameTail":["define",{"sourceInterval":[4145,4198]},null,[],["alt",{"sourceInterval":[4160,4198]},["app",{"sourceInterval":[4160,4166]},"letter",[]],["app",{"sourceInterval":[4173,4178]},"digit",[]],["terminal",{"sourceInterval":[4185,4188]},"_"],["terminal",{"sourceInterval":[4195,4198]},"-"]]],"reserved":["define",{"sourceInterval":[4202,4561]},null,[],["alt",{"sourceInterval":[4217,4561]},["app",{"sourceInterval":[4217,4224]},"trueTok",[]],["app",{"sourceInterval":[4231,4239]},"falseTok",[]],["app",{"sourceInterval":[4246,4253]},"nullTok",[]],["app",{"sourceInterval":[4260,4272]},"undefinedTok",[]],["app",{"sourceInterval":[4279,4286]},"selfTok",[]],["app",{"sourceInterval":[4293,4300]},"whenTok",[]],["app",{"sourceInterval":[4307,4316]},"unlessTok",[]],["app",{"sourceInterval":[4323,4329]},"forTok",[]],["app",{"sourceInterval":[4336,4344]},"whileTok",[]],["app",{"sourceInterval":[4351,4356]},"inTok",[]],["app",{"sourceInterval":[4363,4368]},"ofTok",[]],["app",{"sourceInterval":[4375,4380]},"doTok",[]],["app",{"sourceInterval":[4387,4394]},"elseTok",[]],["app",{"sourceInterval":[4401,4407]},"endTok",[]],["app",{"sourceInterval":[4414,4422]},"breakTok",[]],["app",{"sourceInterval":[4429,4440]},"continueTok",[]],["app",{"sourceInterval":[4447,4453]},"andTok",[]],["app",{"sourceInterval":[4460,4465]},"orTok",[]],["app",{"sourceInterval":[4472,4481]},"deleteTok",[]],["app",{"sourceInterval":[4488,4497]},"stringTok",[]],["app",{"sourceInterval":[4504,4513]},"numberTok",[]],["app",{"sourceInterval":[4520,4529]},"objectTok",[]],["app",{"sourceInterval":[4536,4544]},"arrayTok",[]],["app",{"sourceInterval":[4551,4561]},"booleanTok",[]]]],"TrueKw":["define",{"sourceInterval":[4565,4585]},null,[],["app",{"sourceInterval":[4578,4585]},"trueTok",[]]],"FalseKw":["define",{"sourceInterval":[4589,4611]},null,[],["app",{"sourceInterval":[4603,4611]},"falseTok",[]]],"NullKw":["define",{"sourceInterval":[4615,4635]},null,[],["app",{"sourceInterval":[4628,4635]},"nullTok",[]]],"UndefinedKw":["define",{"sourceInterval":[4639,4669]},null,[],["app",{"sourceInterval":[4657,4669]},"undefinedTok",[]]],"SelfKw":["define",{"sourceInterval":[4673,4693]},null,[],["app",{"sourceInterval":[4686,4693]},"selfTok",[]]],"WhenKw":["define",{"sourceInterval":[4697,4717]},null,[],["app",{"sourceInterval":[4710,4717]},"whenTok",[]]],"UnlessKw":["define",{"sourceInterval":[4721,4745]},null,[],["app",{"sourceInterval":[4736,4745]},"unlessTok",[]]],"WhileKw":["define",{"sourceInterval":[4749,4771]},null,[],["app",{"sourceInterval":[4763,4771]},"whileTok",[]]],"ForKw":["define",{"sourceInterval":[4775,4793]},null,[],["app",{"sourceInterval":[4787,4793]},"forTok",[]]],"DoKw":["define",{"sourceInterval":[4797,4813]},null,[],["app",{"sourceInterval":[4808,4813]},"doTok",[]]],"ElseKw":["define",{"sourceInterval":[4817,4837]},null,[],["app",{"sourceInterval":[4830,4837]},"elseTok",[]]],"EndKw":["define",{"sourceInterval":[4841,4859]},null,[],["app",{"sourceInterval":[4853,4859]},"endTok",[]]],"BreakKw":["define",{"sourceInterval":[4863,4885]},null,[],["app",{"sourceInterval":[4877,4885]},"breakTok",[]]],"ContinueKw":["define",{"sourceInterval":[4889,4917]},null,[],["app",{"sourceInterval":[4906,4917]},"continueTok",[]]],"AndKw":["define",{"sourceInterval":[4921,4939]},null,[],["app",{"sourceInterval":[4933,4939]},"andTok",[]]],"OrKw":["define",{"sourceInterval":[4943,4959]},null,[],["app",{"sourceInterval":[4954,4959]},"orTok",[]]],"DeleteKw":["define",{"sourceInterval":[4963,4987]},null,[],["app",{"sourceInterval":[4978,4987]},"deleteTok",[]]],"StringKw":["define",{"sourceInterval":[4991,5015]},null,[],["app",{"sourceInterval":[5006,5015]},"stringTok",[]]],"NumberKw":["define",{"sourceInterval":[5019,5043]},null,[],["app",{"sourceInterval":[5034,5043]},"numberTok",[]]],"ObjectKw":["define",{"sourceInterval":[5047,5071]},null,[],["app",{"sourceInterval":[5062,5071]},"objectTok",[]]],"ArrayKw":["define",{"sourceInterval":[5075,5097]},null,[],["app",{"sourceInterval":[5089,5097]},"arrayTok",[]]],"BooleanKw":["define",{"sourceInterval":[5101,5127]},null,[],["app",{"sourceInterval":[5117,5127]},"booleanTok",[]]],"trueTok":["define",{"sourceInterval":[5131,5161]},null,[],["seq",{"sourceInterval":[5145,5161]},["terminal",{"sourceInterval":[5145,5151]},"true"],["not",{"sourceInterval":[5152,5161]},["app",{"sourceInterval":[5153,5161]},"nameTail",[]]]]],"falseTok":["define",{"sourceInterval":[5165,5197]},null,[],["seq",{"sourceInterval":[5180,5197]},["terminal",{"sourceInterval":[5180,5187]},"false"],["not",{"sourceInterval":[5188,5197]},["app",{"sourceInterval":[5189,5197]},"nameTail",[]]]]],"nullTok":["define",{"sourceInterval":[5201,5231]},null,[],["seq",{"sourceInterval":[5215,5231]},["terminal",{"sourceInterval":[5215,5221]},"null"],["not",{"sourceInterval":[5222,5231]},["app",{"sourceInterval":[5223,5231]},"nameTail",[]]]]],"undefinedTok":["define",{"sourceInterval":[5235,5275]},null,[],["seq",{"sourceInterval":[5254,5275]},["terminal",{"sourceInterval":[5254,5265]},"undefined"],["not",{"sourceInterval":[5266,5275]},["app",{"sourceInterval":[5267,5275]},"nameTail",[]]]]],"selfTok":["define",{"sourceInterval":[5279,5309]},null,[],["seq",{"sourceInterval":[5293,5309]},["terminal",{"sourceInterval":[5293,5299]},"self"],["not",{"sourceInterval":[5300,5309]},["app",{"sourceInterval":[5301,5309]},"nameTail",[]]]]],"whenTok":["define",{"sourceInterval":[5313,5343]},null,[],["seq",{"sourceInterval":[5327,5343]},["terminal",{"sourceInterval":[5327,5333]},"when"],["not",{"sourceInterval":[5334,5343]},["app",{"sourceInterval":[5335,5343]},"nameTail",[]]]]],"unlessTok":["define",{"sourceInterval":[5347,5381]},null,[],["seq",{"sourceInterval":[5363,5381]},["terminal",{"sourceInterval":[5363,5371]},"unless"],["not",{"sourceInterval":[5372,5381]},["app",{"sourceInterval":[5373,5381]},"nameTail",[]]]]],"whileTok":["define",{"sourceInterval":[5385,5417]},null,[],["seq",{"sourceInterval":[5400,5417]},["terminal",{"sourceInterval":[5400,5407]},"while"],["not",{"sourceInterval":[5408,5417]},["app",{"sourceInterval":[5409,5417]},"nameTail",[]]]]],"forTok":["define",{"sourceInterval":[5421,5449]},null,[],["seq",{"sourceInterval":[5434,5449]},["terminal",{"sourceInterval":[5434,5439]},"for"],["not",{"sourceInterval":[5440,5449]},["app",{"sourceInterval":[5441,5449]},"nameTail",[]]]]],"inTok":["define",{"sourceInterval":[5453,5479]},null,[],["seq",{"sourceInterval":[5465,5479]},["terminal",{"sourceInterval":[5465,5469]},"in"],["not",{"sourceInterval":[5470,5479]},["app",{"sourceInterval":[5471,5479]},"nameTail",[]]]]],"ofTok":["define",{"sourceInterval":[5483,5509]},null,[],["seq",{"sourceInterval":[5495,5509]},["terminal",{"sourceInterval":[5495,5499]},"of"],["not",{"sourceInterval":[5500,5509]},["app",{"sourceInterval":[5501,5509]},"nameTail",[]]]]],"doTok":["define",{"sourceInterval":[5513,5539]},null,[],["seq",{"sourceInterval":[5525,5539]},["terminal",{"sourceInterval":[5525,5529]},"do"],["not",{"sourceInterval":[5530,5539]},["app",{"sourceInterval":[5531,5539]},"nameTail",[]]]]],"elseTok":["define",{"sourceInterval":[5543,5573]},null,[],["seq",{"sourceInterval":[5557,5573]},["terminal",{"sourceInterval":[5557,5563]},"else"],["not",{"sourceInterval":[5564,5573]},["app",{"sourceInterval":[5565,5573]},"nameTail",[]]]]],"endTok":["define",{"sourceInterval":[5577,5605]},null,[],["seq",{"sourceInterval":[5590,5605]},["terminal",{"sourceInterval":[5590,5595]},"end"],["not",{"sourceInterval":[5596,5605]},["app",{"sourceInterval":[5597,5605]},"nameTail",[]]]]],"breakTok":["define",{"sourceInterval":[5609,5641]},null,[],["seq",{"sourceInterval":[5624,5641]},["terminal",{"sourceInterval":[5624,5631]},"break"],["not",{"sourceInterval":[5632,5641]},["app",{"sourceInterval":[5633,5641]},"nameTail",[]]]]],"continueTok":["define",{"sourceInterval":[5645,5683]},null,[],["seq",{"sourceInterval":[5663,5683]},["terminal",{"sourceInterval":[5663,5673]},"continue"],["not",{"sourceInterval":[5674,5683]},["app",{"sourceInterval":[5675,5683]},"nameTail",[]]]]],"andTok":["define",{"sourceInterval":[5687,5715]},null,[],["seq",{"sourceInterval":[5700,5715]},["terminal",{"sourceInterval":[5700,5705]},"and"],["not",{"sourceInterval":[5706,5715]},["app",{"sourceInterval":[5707,5715]},"nameTail",[]]]]],"orTok":["define",{"sourceInterval":[5719,5745]},null,[],["seq",{"sourceInterval":[5731,5745]},["terminal",{"sourceInterval":[5731,5735]},"or"],["not",{"sourceInterval":[5736,5745]},["app",{"sourceInterval":[5737,5745]},"nameTail",[]]]]],"deleteTok":["define",{"sourceInterval":[5749,5783]},null,[],["seq",{"sourceInterval":[5765,5783]},["terminal",{"sourceInterval":[5765,5773]},"delete"],["not",{"sourceInterval":[5774,5783]},["app",{"sourceInterval":[5775,5783]},"nameTail",[]]]]],"stringTok":["define",{"sourceInterval":[5787,5821]},null,[],["seq",{"sourceInterval":[5803,5821]},["terminal",{"sourceInterval":[5803,5811]},"string"],["not",{"sourceInterval":[5812,5821]},["app",{"sourceInterval":[5813,5821]},"nameTail",[]]]]],"numberTok":["define",{"sourceInterval":[5825,5859]},null,[],["seq",{"sourceInterval":[5841,5859]},["terminal",{"sourceInterval":[5841,5849]},"number"],["not",{"sourceInterval":[5850,5859]},["app",{"sourceInterval":[5851,5859]},"nameTail",[]]]]],"objectTok":["define",{"sourceInterval":[5863,5897]},null,[],["seq",{"sourceInterval":[5879,5897]},["terminal",{"sourceInterval":[5879,5887]},"object"],["not",{"sourceInterval":[5888,5897]},["app",{"sourceInterval":[5889,5897]},"nameTail",[]]]]],"arrayTok":["define",{"sourceInterval":[5901,5933]},null,[],["seq",{"sourceInterval":[5916,5933]},["terminal",{"sourceInterval":[5916,5923]},"array"],["not",{"sourceInterval":[5924,5933]},["app",{"sourceInterval":[5925,5933]},"nameTail",[]]]]],"booleanTok":["define",{"sourceInterval":[5937,5973]},null,[],["seq",{"sourceInterval":[5954,5973]},["terminal",{"sourceInterval":[5954,5963]},"boolean"],["not",{"sourceInterval":[5964,5973]},["app",{"sourceInterval":[5965,5973]},"nameTail",[]]]]],"String":["define",{"sourceInterval":[5977,6023]},null,[],["alt",{"sourceInterval":[5990,6023]},["app",{"sourceInterval":[5990,6003]},"DQuotedString",[]],["app",{"sourceInterval":[6010,6023]},"SQuotedString",[]]]],"DQuotedString":["define",{"sourceInterval":[6027,6069]},null,[],["seq",{"sourceInterval":[6047,6069]},["terminal",{"sourceInterval":[6047,6051]},"\""],["star",{"sourceInterval":[6052,6064]},["app",{"sourceInterval":[6052,6063]},"dStringChar",[]]],["terminal",{"sourceInterval":[6065,6069]},"\""]]],"dStringChar":["define",{"sourceInterval":[6073,6122]},null,[],["alt",{"sourceInterval":[6091,6122]},["seq",{"sourceInterval":[6091,6109]},["not",{"sourceInterval":[6091,6105]},["alt",{"sourceInterval":[6093,6104]},["terminal",{"sourceInterval":[6093,6097]},"\""],["terminal",{"sourceInterval":[6100,6104]},"\\"]]],["app",{"sourceInterval":[6106,6109]},"any",[]]],["app",{"sourceInterval":[6116,6122]},"escape",[]]]],"SQuotedString":["define",{"sourceInterval":[6126,6166]},null,[],["seq",{"sourceInterval":[6146,6166]},["terminal",{"sourceInterval":[6146,6149]},"'"],["star",{"sourceInterval":[6150,6162]},["app",{"sourceInterval":[6150,6161]},"sStringChar",[]]],["terminal",{"sourceInterval":[6163,6166]},"'"]]],"sStringChar":["define",{"sourceInterval":[6170,6218]},null,[],["alt",{"sourceInterval":[6188,6218]},["seq",{"sourceInterval":[6188,6205]},["not",{"sourceInterval":[6188,6201]},["alt",{"sourceInterval":[6190,6200]},["terminal",{"sourceInterval":[6190,6193]},"'"],["terminal",{"sourceInterval":[6196,6200]},"\\"]]],["app",{"sourceInterval":[6202,6205]},"any",[]]],["app",{"sourceInterval":[6212,6218]},"escape",[]]]],"escape":["define",{"sourceInterval":[6222,6280]},null,[],["seq",{"sourceInterval":[6235,6280]},["terminal",{"sourceInterval":[6235,6239]},"\\"],["alt",{"sourceInterval":[6241,6279]},["app",{"sourceInterval":[6241,6251]},"escapeChar",[]],["app",{"sourceInterval":[6254,6263]},"hexEscape",[]],["app",{"sourceInterval":[6266,6279]},"unicodeEscape",[]]]]],"escapeChar":["define",{"sourceInterval":[6284,6360]},null,[],["alt",{"sourceInterval":[6301,6360]},["terminal",{"sourceInterval":[6301,6305]},"\""],["terminal",{"sourceInterval":[6308,6311]},"'"],["terminal",{"sourceInterval":[6314,6318]},"\\"],["terminal",{"sourceInterval":[6321,6324]},"/"],["terminal",{"sourceInterval":[6327,6330]},"b"],["terminal",{"sourceInterval":[6333,6336]},"f"],["terminal",{"sourceInterval":[6339,6342]},"n"],["terminal",{"sourceInterval":[6345,6348]},"r"],["terminal",{"sourceInterval":[6351,6354]},"t"],["terminal",{"sourceInterval":[6357,6360]},"0"]]],"hexEscape":["define",{"sourceInterval":[6364,6391]},null,[],["seq",{"sourceInterval":[6380,6391]},["terminal",{"sourceInterval":[6380,6383]},"x"],["app",{"sourceInterval":[6384,6387]},"hex",[]],["app",{"sourceInterval":[6388,6391]},"hex",[]]]],"unicodeEscape":["define",{"sourceInterval":[6395,6434]},null,[],["seq",{"sourceInterval":[6415,6434]},["terminal",{"sourceInterval":[6415,6418]},"u"],["app",{"sourceInterval":[6419,6422]},"hex",[]],["app",{"sourceInterval":[6423,6426]},"hex",[]],["app",{"sourceInterval":[6427,6430]},"hex",[]],["app",{"sourceInterval":[6431,6434]},"hex",[]]]],"hex":["define",{"sourceInterval":[6438,6483]},null,[],["alt",{"sourceInterval":[6448,6483]},["app",{"sourceInterval":[6448,6453]},"digit",[]],["range",{"sourceInterval":[6460,6468]},"A","F"],["range",{"sourceInterval":[6475,6483]},"a","f"]]],"Number":["define",{"sourceInterval":[6487,6548]},null,[],["alt",{"sourceInterval":[6500,6548]},["app",{"sourceInterval":[6500,6509]},"hexNumber",[]],["app",{"sourceInterval":[6516,6528]},"binaryNumber",[]],["app",{"sourceInterval":[6535,6548]},"decimalNumber",[]]]],"hexNumber":["define",{"sourceInterval":[6552,6582]},null,[],["seq",{"sourceInterval":[6568,6582]},["opt",{"sourceInterval":[6568,6572]},["terminal",{"sourceInterval":[6568,6571]},"-"]],["terminal",{"sourceInterval":[6573,6577]},"0x"],["plus",{"sourceInterval":[6578,6582]},["app",{"sourceInterval":[6578,6581]},"hex",[]]]]],"binaryNumber":["define",{"sourceInterval":[6586,6619]},null,[],["seq",{"sourceInterval":[6605,6619]},["opt",{"sourceInterval":[6605,6609]},["terminal",{"sourceInterval":[6605,6608]},"-"]],["terminal",{"sourceInterval":[6610,6614]},"0b"],["plus",{"sourceInterval":[6615,6619]},["app",{"sourceInterval":[6615,6618]},"bit",[]]]]],"decimalNumber":["define",{"sourceInterval":[6623,6686]},null,[],["seq",{"sourceInterval":[6643,6686]},["opt",{"sourceInterval":[6643,6647]},["terminal",{"sourceInterval":[6643,6646]},"-"]],["app",{"sourceInterval":[6648,6662]},"decimalInteger",[]],["opt",{"sourceInterval":[6663,6676]},["seq",{"sourceInterval":[6664,6674]},["terminal",{"sourceInterval":[6664,6667]},"."],["plus",{"sourceInterval":[6668,6674]},["app",{"sourceInterval":[6668,6673]},"digit",[]]]]],["opt",{"sourceInterval":[6677,6686]},["app",{"sourceInterval":[6677,6685]},"exponent",[]]]]],"decimalInteger_nonZero":["define",{"sourceInterval":[6711,6742]},null,[],["seq",{"sourceInterval":[6711,6730]},["app",{"sourceInterval":[6711,6723]},"nonZeroDigit",[]],["star",{"sourceInterval":[6724,6730]},["app",{"sourceInterval":[6724,6729]},"digit",[]]]]],"decimalInteger_zero":["define",{"sourceInterval":[6749,6777]},null,[],["terminal",{"sourceInterval":[6749,6752]},"0"]],"decimalInteger":["define",{"sourceInterval":[6690,6777]},null,[],["alt",{"sourceInterval":[6711,6777]},["app",{"sourceInterval":[6711,6730]},"decimalInteger_nonZero",[]],["app",{"sourceInterval":[6749,6752]},"decimalInteger_zero",[]]]],"bit":["define",{"sourceInterval":[6781,6800]},null,[],["alt",{"sourceInterval":[6791,6800]},["terminal",{"sourceInterval":[6791,6794]},"0"],["terminal",{"sourceInterval":[6797,6800]},"1"]]],"exponent":["define",{"sourceInterval":[6804,6850]},null,[],["seq",{"sourceInterval":[6819,6850]},["alt",{"sourceInterval":[6820,6829]},["terminal",{"sourceInterval":[6820,6823]},"e"],["terminal",{"sourceInterval":[6826,6829]},"E"]],["opt",{"sourceInterval":[6831,6843]},["alt",{"sourceInterval":[6832,6841]},["terminal",{"sourceInterval":[6832,6835]},"+"],["terminal",{"sourceInterval":[6838,6841]},"-"]]],["plus",{"sourceInterval":[6844,6850]},["app",{"sourceInterval":[6844,6849]},"digit",[]]]]],"nonZeroDigit":["define",{"sourceInterval":[6854,6881]},null,[],["range",{"sourceInterval":[6873,6881]},"1","9"]],"comment":["define",{"sourceInterval":[6885,6929]},null,[],["alt",{"sourceInterval":[6899,6929]},["app",{"sourceInterval":[6899,6910]},"lineComment",[]],["app",{"sourceInterval":[6917,6929]},"blockComment",[]]]],"lineComment":["define",{"sourceInterval":[6933,6974]},null,[],["seq",{"sourceInterval":[6951,6974]},["terminal",{"sourceInterval":[6951,6955]},"//"],["star",{"sourceInterval":[6956,6968]},["seq",{"sourceInterval":[6957,6966]},["not",{"sourceInterval":[6957,6962]},["terminal",{"sourceInterval":[6958,6962]},"\n"]],["app",{"sourceInterval":[6963,6966]},"any",[]]]],["opt",{"sourceInterval":[6969,6974]},["terminal",{"sourceInterval":[6969,6973]},"\n"]]]],"blockComment":["define",{"sourceInterval":[6978,7019]},null,[],["seq",{"sourceInterval":[6997,7019]},["terminal",{"sourceInterval":[6997,7001]},"/*"],["star",{"sourceInterval":[7002,7014]},["seq",{"sourceInterval":[7003,7012]},["not",{"sourceInterval":[7003,7008]},["terminal",{"sourceInterval":[7004,7008]},"*/"]],["app",{"sourceInterval":[7009,7012]},"any",[]]]],["terminal",{"sourceInterval":[7015,7019]},"*/"]]]}]);module.exports=result;
|
|
1
|
+
'use strict';const {makeRecipe}=require('ohm-js');const result=makeRecipe(["grammar",{"source":"Rex {\n space += comment\n\n Program\n = Expr*\n\n Expr\n = AssignExpr\n\n AssignExpr\n = Place AssignOp AssignExpr -- assign\n | ExistenceExpr -- value\n\n ExistenceExpr\n = ExistenceExpr AndKw BitExpr -- and\n | ExistenceExpr OrKw BitExpr -- or\n | BitExpr -- value\n\n BitExpr\n = BitExpr \"&\" CompareExpr -- and\n | BitExpr \"^\" CompareExpr -- xor\n | BitExpr \"|\" CompareExpr -- or\n | CompareExpr -- value\n\n CompareExpr\n = AddExpr CompareOp AddExpr -- binary\n | AddExpr -- value\n\n AddExpr\n = AddExpr \"+\" MulExpr -- add\n | AddExpr \"-\" MulExpr -- sub\n | MulExpr -- value\n\n MulExpr\n = MulExpr \"*\" UnaryExpr -- mul\n | MulExpr \"/\" UnaryExpr -- div\n | MulExpr \"%\" UnaryExpr -- mod\n | UnaryExpr -- value\n\n UnaryExpr\n = \"-\" ~digit ~infTok UnaryExpr -- neg\n | \"~\" UnaryExpr -- not\n | DeleteKw Place -- delete\n | PostfixExpr -- value\n\n PostfixExpr\n = PrimaryExpr PostfixTail* -- chain\n\n PostfixTail\n = \".\" navKey -- navStatic\n | \".(\" Expr \")\" -- navDynamic\n | \"(\" \")\" -- callEmpty\n | \"(\" Elements<Expr> \")\" -- call\n\n PrimaryExpr\n = ConditionalExpr\n | DoExpr\n | ForExpr\n | WhileExpr\n | BreakKw -- break\n | ContinueKw -- continue\n | Array\n | Object\n | String\n | Number\n | StringKw -- stringPred\n | NumberKw -- numberPred\n | ObjectKw -- objectPred\n | ArrayKw -- arrayPred\n | BooleanKw -- booleanPred\n | TrueKw -- true\n | FalseKw -- false\n | NullKw -- null\n | UndefinedKw -- undefined\n | SelfExpr -- self\n | identifier -- identifier\n | \"(\" Expr \")\" -- group\n\n SelfExpr\n = SelfKw \"@\" Number -- depth\n | SelfKw -- plain\n\n Place\n = PlaceBase PlaceTail*\n\n PlaceBase\n = identifier\n | SelfKw\n\n PlaceTail\n = \".\" navKey -- navStatic\n | \".(\" Expr \")\" -- navDynamic\n\n ConditionalExpr\n = ConditionalHead Expr DoKw Block ConditionalElse? EndKw\n\n ConditionalHead\n = WhenKw\n | UnlessKw\n\n ConditionalElse\n = ElseKw ConditionalHead Expr DoKw Block ConditionalElse? -- elseChain\n | ElseKw Block -- else\n\n ForExpr\n = ForKw BindingExpr DoKw Block EndKw\n\n WhileExpr\n = WhileKw Expr DoKw Block EndKw\n\n DoExpr\n = DoKw Block EndKw\n\n BindingExpr\n = IterBinding\n | Expr\n\n Block\n = Expr*\n\n Array\n = \"[\" \"]\" -- empty\n | \"[\" BindingExpr \";\" Expr \"]\" -- comprehension\n | \"[\" Elements<Expr> \"]\" -- values\n\n Object\n = \"{\" \"}\" -- empty\n | \"{\" BindingExpr \";\" ObjKey \":\" Expr \"}\" -- comprehension\n | \"{\" Elements<Pair> \"}\" -- pairs\n\n IterBinding\n = identifier \",\" identifier \"in\" Expr -- keyValueIn\n | identifier \"in\" Expr -- valueIn\n | identifier \"of\" Expr -- keyOf\n\n Pair\n = ObjKey \":\" Expr\n\n ObjKey\n = keyName -- bare\n | Number -- number\n | String -- string\n | \"(\" Expr \")\" -- computed\n\n navKey\n = keyName\n | digit+\n\n keyName\n = nameHead nameTail*\n\n CompareOp\n = \"==\"\n | \"!=\"\n | \">=\"\n | \">\"\n | \"<=\"\n | \"<\"\n\n AssignOp\n = \"=\"\n | \"+=\"\n | \"-=\"\n | \"*=\"\n | \"/=\"\n | \"%=\"\n | \"&=\"\n | \"|=\"\n | \"^=\"\n\n Elements<item>\n = item (\",\"? item)* \",\"?\n\n identifier\n = ~reserved nameHead nameTail*\n\n nameHead\n = letter\n | \"_\"\n\n nameTail\n = letter\n | digit\n | \"_\"\n | \"-\"\n\n reserved\n = trueTok\n | falseTok\n | nullTok\n | undefinedTok\n | nanTok\n | infTok\n | selfTok\n | whenTok\n | unlessTok\n | forTok\n | whileTok\n | inTok\n | ofTok\n | doTok\n | elseTok\n | endTok\n | breakTok\n | continueTok\n | andTok\n | orTok\n | deleteTok\n | stringTok\n | numberTok\n | objectTok\n | arrayTok\n | booleanTok\n\n TrueKw\n = trueTok\n\n FalseKw\n = falseTok\n\n NullKw\n = nullTok\n\n UndefinedKw\n = undefinedTok\n\n SelfKw\n = selfTok\n\n WhenKw\n = whenTok\n\n UnlessKw\n = unlessTok\n\n WhileKw\n = whileTok\n\n ForKw\n = forTok\n\n DoKw\n = doTok\n\n ElseKw\n = elseTok\n\n EndKw\n = endTok\n\n BreakKw\n = breakTok\n\n ContinueKw\n = continueTok\n\n AndKw\n = andTok\n\n OrKw\n = orTok\n\n DeleteKw\n = deleteTok\n\n StringKw\n = stringTok\n\n NumberKw\n = numberTok\n\n ObjectKw\n = objectTok\n\n ArrayKw\n = arrayTok\n\n BooleanKw\n = booleanTok\n\n trueTok\n = \"true\" ~nameTail\n\n falseTok\n = \"false\" ~nameTail\n\n nullTok\n = \"null\" ~nameTail\n\n undefinedTok\n = \"undefined\" ~nameTail\n\n nanTok\n = \"nan\" ~nameTail\n\n infTok\n = \"inf\" ~nameTail\n\n selfTok\n = \"self\" ~nameTail\n\n whenTok\n = \"when\" ~nameTail\n\n unlessTok\n = \"unless\" ~nameTail\n\n whileTok\n = \"while\" ~nameTail\n\n forTok\n = \"for\" ~nameTail\n\n inTok\n = \"in\" ~nameTail\n\n ofTok\n = \"of\" ~nameTail\n\n doTok\n = \"do\" ~nameTail\n\n elseTok\n = \"else\" ~nameTail\n\n endTok\n = \"end\" ~nameTail\n\n breakTok\n = \"break\" ~nameTail\n\n continueTok\n = \"continue\" ~nameTail\n\n andTok\n = \"and\" ~nameTail\n\n orTok\n = \"or\" ~nameTail\n\n deleteTok\n = \"delete\" ~nameTail\n\n stringTok\n = \"string\" ~nameTail\n\n numberTok\n = \"number\" ~nameTail\n\n objectTok\n = \"object\" ~nameTail\n\n arrayTok\n = \"array\" ~nameTail\n\n booleanTok\n = \"boolean\" ~nameTail\n\n String\n = DQuotedString\n | SQuotedString\n\n DQuotedString\n = \"\\\"\" dStringChar* \"\\\"\"\n\n dStringChar\n = ~(\"\\\"\" | \"\\\\\") any\n | escape\n\n SQuotedString\n = \"'\" sStringChar* \"'\"\n\n sStringChar\n = ~(\"'\" | \"\\\\\") any\n | escape\n\n escape\n = \"\\\\\" (escapeChar | hexEscape | unicodeEscape)\n\n escapeChar\n = \"\\\"\" | \"'\" | \"\\\\\" | \"/\" | \"b\" | \"f\" | \"n\" | \"r\" | \"t\" | \"0\"\n\n hexEscape\n = \"x\" hex hex\n\n unicodeEscape\n = \"u\" hex hex hex hex\n\n hex\n = digit\n | \"A\"..\"F\"\n | \"a\"..\"f\"\n\n Number\n = hexNumber\n | binaryNumber\n | infLiteral\n | nanLiteral\n | decimalNumber\n\n infLiteral\n = \"-\"? infTok\n\n nanLiteral\n = nanTok\n\n hexNumber\n = \"-\"? \"0x\" hex+\n\n binaryNumber\n = \"-\"? \"0b\" bit+\n\n decimalNumber\n = \"-\"? decimalInteger (\".\" digit+)? exponent?\n\n decimalInteger\n = nonZeroDigit digit* -- nonZero\n | \"0\" -- zero\n\n bit\n = \"0\" | \"1\"\n\n exponent\n = (\"e\" | \"E\") (\"+\" | \"-\")? digit+\n\n nonZeroDigit\n = \"1\"..\"9\"\n\n comment\n = lineComment\n | blockComment\n\n lineComment\n = \"//\" (~\"\\n\" any)* \"\\n\"?\n\n blockComment\n = \"/*\" (~\"*/\" any)* \"*/\"\n}"},"Rex",null,"Program",{"space":["extend",{"sourceInterval":[8,24]},null,[],["app",{"sourceInterval":[17,24]},"comment",[]]],"Program":["define",{"sourceInterval":[28,47]},null,[],["star",{"sourceInterval":[42,47]},["app",{"sourceInterval":[42,46]},"Expr",[]]]],"Expr":["define",{"sourceInterval":[51,72]},null,[],["app",{"sourceInterval":[62,72]},"AssignExpr",[]]],"AssignExpr_assign":["define",{"sourceInterval":[93,133]},null,[],["seq",{"sourceInterval":[93,118]},["app",{"sourceInterval":[93,98]},"Place",[]],["app",{"sourceInterval":[99,107]},"AssignOp",[]],["app",{"sourceInterval":[108,118]},"AssignExpr",[]]]],"AssignExpr_value":["define",{"sourceInterval":[140,179]},null,[],["app",{"sourceInterval":[140,153]},"ExistenceExpr",[]]],"AssignExpr":["define",{"sourceInterval":[76,179]},null,[],["alt",{"sourceInterval":[93,179]},["app",{"sourceInterval":[93,118]},"AssignExpr_assign",[]],["app",{"sourceInterval":[140,153]},"AssignExpr_value",[]]]],"ExistenceExpr_and":["define",{"sourceInterval":[203,240]},null,[],["seq",{"sourceInterval":[203,230]},["app",{"sourceInterval":[203,216]},"ExistenceExpr",[]],["app",{"sourceInterval":[217,222]},"AndKw",[]],["app",{"sourceInterval":[223,230]},"BitExpr",[]]]],"ExistenceExpr_or":["define",{"sourceInterval":[247,283]},null,[],["seq",{"sourceInterval":[247,273]},["app",{"sourceInterval":[247,260]},"ExistenceExpr",[]],["app",{"sourceInterval":[261,265]},"OrKw",[]],["app",{"sourceInterval":[266,273]},"BitExpr",[]]]],"ExistenceExpr_value":["define",{"sourceInterval":[290,329]},null,[],["app",{"sourceInterval":[290,297]},"BitExpr",[]]],"ExistenceExpr":["define",{"sourceInterval":[183,329]},null,[],["alt",{"sourceInterval":[203,329]},["app",{"sourceInterval":[203,230]},"ExistenceExpr_and",[]],["app",{"sourceInterval":[247,273]},"ExistenceExpr_or",[]],["app",{"sourceInterval":[290,297]},"ExistenceExpr_value",[]]]],"BitExpr_and":["define",{"sourceInterval":[347,384]},null,[],["seq",{"sourceInterval":[347,370]},["app",{"sourceInterval":[347,354]},"BitExpr",[]],["terminal",{"sourceInterval":[355,358]},"&"],["app",{"sourceInterval":[359,370]},"CompareExpr",[]]]],"BitExpr_xor":["define",{"sourceInterval":[391,428]},null,[],["seq",{"sourceInterval":[391,414]},["app",{"sourceInterval":[391,398]},"BitExpr",[]],["terminal",{"sourceInterval":[399,402]},"^"],["app",{"sourceInterval":[403,414]},"CompareExpr",[]]]],"BitExpr_or":["define",{"sourceInterval":[435,471]},null,[],["seq",{"sourceInterval":[435,458]},["app",{"sourceInterval":[435,442]},"BitExpr",[]],["terminal",{"sourceInterval":[443,446]},"|"],["app",{"sourceInterval":[447,458]},"CompareExpr",[]]]],"BitExpr_value":["define",{"sourceInterval":[478,517]},null,[],["app",{"sourceInterval":[478,489]},"CompareExpr",[]]],"BitExpr":["define",{"sourceInterval":[333,517]},null,[],["alt",{"sourceInterval":[347,517]},["app",{"sourceInterval":[347,370]},"BitExpr_and",[]],["app",{"sourceInterval":[391,414]},"BitExpr_xor",[]],["app",{"sourceInterval":[435,458]},"BitExpr_or",[]],["app",{"sourceInterval":[478,489]},"BitExpr_value",[]]]],"CompareExpr_binary":["define",{"sourceInterval":[539,579]},null,[],["seq",{"sourceInterval":[539,564]},["app",{"sourceInterval":[539,546]},"AddExpr",[]],["app",{"sourceInterval":[547,556]},"CompareOp",[]],["app",{"sourceInterval":[557,564]},"AddExpr",[]]]],"CompareExpr_value":["define",{"sourceInterval":[586,625]},null,[],["app",{"sourceInterval":[586,593]},"AddExpr",[]]],"CompareExpr":["define",{"sourceInterval":[521,625]},null,[],["alt",{"sourceInterval":[539,625]},["app",{"sourceInterval":[539,564]},"CompareExpr_binary",[]],["app",{"sourceInterval":[586,593]},"CompareExpr_value",[]]]],"AddExpr_add":["define",{"sourceInterval":[643,680]},null,[],["seq",{"sourceInterval":[643,662]},["app",{"sourceInterval":[643,650]},"AddExpr",[]],["terminal",{"sourceInterval":[651,654]},"+"],["app",{"sourceInterval":[655,662]},"MulExpr",[]]]],"AddExpr_sub":["define",{"sourceInterval":[687,724]},null,[],["seq",{"sourceInterval":[687,706]},["app",{"sourceInterval":[687,694]},"AddExpr",[]],["terminal",{"sourceInterval":[695,698]},"-"],["app",{"sourceInterval":[699,706]},"MulExpr",[]]]],"AddExpr_value":["define",{"sourceInterval":[731,770]},null,[],["app",{"sourceInterval":[731,738]},"MulExpr",[]]],"AddExpr":["define",{"sourceInterval":[629,770]},null,[],["alt",{"sourceInterval":[643,770]},["app",{"sourceInterval":[643,662]},"AddExpr_add",[]],["app",{"sourceInterval":[687,706]},"AddExpr_sub",[]],["app",{"sourceInterval":[731,738]},"AddExpr_value",[]]]],"MulExpr_mul":["define",{"sourceInterval":[788,825]},null,[],["seq",{"sourceInterval":[788,809]},["app",{"sourceInterval":[788,795]},"MulExpr",[]],["terminal",{"sourceInterval":[796,799]},"*"],["app",{"sourceInterval":[800,809]},"UnaryExpr",[]]]],"MulExpr_div":["define",{"sourceInterval":[832,869]},null,[],["seq",{"sourceInterval":[832,853]},["app",{"sourceInterval":[832,839]},"MulExpr",[]],["terminal",{"sourceInterval":[840,843]},"/"],["app",{"sourceInterval":[844,853]},"UnaryExpr",[]]]],"MulExpr_mod":["define",{"sourceInterval":[876,913]},null,[],["seq",{"sourceInterval":[876,897]},["app",{"sourceInterval":[876,883]},"MulExpr",[]],["terminal",{"sourceInterval":[884,887]},"%"],["app",{"sourceInterval":[888,897]},"UnaryExpr",[]]]],"MulExpr_value":["define",{"sourceInterval":[920,959]},null,[],["app",{"sourceInterval":[920,929]},"UnaryExpr",[]]],"MulExpr":["define",{"sourceInterval":[774,959]},null,[],["alt",{"sourceInterval":[788,959]},["app",{"sourceInterval":[788,809]},"MulExpr_mul",[]],["app",{"sourceInterval":[832,853]},"MulExpr_div",[]],["app",{"sourceInterval":[876,897]},"MulExpr_mod",[]],["app",{"sourceInterval":[920,929]},"MulExpr_value",[]]]],"UnaryExpr_neg":["define",{"sourceInterval":[979,1017]},null,[],["seq",{"sourceInterval":[979,1007]},["terminal",{"sourceInterval":[979,982]},"-"],["not",{"sourceInterval":[983,989]},["app",{"sourceInterval":[984,989]},"digit",[]]],["not",{"sourceInterval":[990,997]},["app",{"sourceInterval":[991,997]},"infTok",[]]],["app",{"sourceInterval":[998,1007]},"UnaryExpr",[]]]],"UnaryExpr_not":["define",{"sourceInterval":[1024,1061]},null,[],["seq",{"sourceInterval":[1024,1037]},["terminal",{"sourceInterval":[1024,1027]},"~"],["app",{"sourceInterval":[1028,1037]},"UnaryExpr",[]]]],"UnaryExpr_delete":["define",{"sourceInterval":[1068,1108]},null,[],["seq",{"sourceInterval":[1068,1082]},["app",{"sourceInterval":[1068,1076]},"DeleteKw",[]],["app",{"sourceInterval":[1077,1082]},"Place",[]]]],"UnaryExpr_value":["define",{"sourceInterval":[1115,1154]},null,[],["app",{"sourceInterval":[1115,1126]},"PostfixExpr",[]]],"UnaryExpr":["define",{"sourceInterval":[963,1154]},null,[],["alt",{"sourceInterval":[979,1154]},["app",{"sourceInterval":[979,1007]},"UnaryExpr_neg",[]],["app",{"sourceInterval":[1024,1037]},"UnaryExpr_not",[]],["app",{"sourceInterval":[1068,1082]},"UnaryExpr_delete",[]],["app",{"sourceInterval":[1115,1126]},"UnaryExpr_value",[]]]],"PostfixExpr_chain":["define",{"sourceInterval":[1176,1215]},null,[],["seq",{"sourceInterval":[1176,1200]},["app",{"sourceInterval":[1176,1187]},"PrimaryExpr",[]],["star",{"sourceInterval":[1188,1200]},["app",{"sourceInterval":[1188,1199]},"PostfixTail",[]]]]],"PostfixExpr":["define",{"sourceInterval":[1158,1215]},null,[],["app",{"sourceInterval":[1176,1215]},"PostfixExpr_chain",[]]],"PostfixTail_navStatic":["define",{"sourceInterval":[1237,1280]},null,[],["seq",{"sourceInterval":[1237,1247]},["terminal",{"sourceInterval":[1237,1240]},"."],["app",{"sourceInterval":[1241,1247]},"navKey",[]]]],"PostfixTail_navDynamic":["define",{"sourceInterval":[1287,1330]},null,[],["seq",{"sourceInterval":[1287,1300]},["terminal",{"sourceInterval":[1287,1291]},".("],["app",{"sourceInterval":[1292,1296]},"Expr",[]],["terminal",{"sourceInterval":[1297,1300]},")"]]],"PostfixTail_callEmpty":["define",{"sourceInterval":[1337,1378]},null,[],["seq",{"sourceInterval":[1337,1344]},["terminal",{"sourceInterval":[1337,1340]},"("],["terminal",{"sourceInterval":[1341,1344]},")"]]],"PostfixTail_call":["define",{"sourceInterval":[1385,1422]},null,[],["seq",{"sourceInterval":[1385,1407]},["terminal",{"sourceInterval":[1385,1388]},"("],["app",{"sourceInterval":[1389,1403]},"Elements",[["app",{"sourceInterval":[1398,1402]},"Expr",[]]]],["terminal",{"sourceInterval":[1404,1407]},")"]]],"PostfixTail":["define",{"sourceInterval":[1219,1422]},null,[],["alt",{"sourceInterval":[1237,1422]},["app",{"sourceInterval":[1237,1247]},"PostfixTail_navStatic",[]],["app",{"sourceInterval":[1287,1300]},"PostfixTail_navDynamic",[]],["app",{"sourceInterval":[1337,1344]},"PostfixTail_callEmpty",[]],["app",{"sourceInterval":[1385,1407]},"PostfixTail_call",[]]]],"PrimaryExpr_break":["define",{"sourceInterval":[1509,1548]},null,[],["app",{"sourceInterval":[1509,1516]},"BreakKw",[]]],"PrimaryExpr_continue":["define",{"sourceInterval":[1555,1597]},null,[],["app",{"sourceInterval":[1555,1565]},"ContinueKw",[]]],"PrimaryExpr_stringPred":["define",{"sourceInterval":[1655,1699]},null,[],["app",{"sourceInterval":[1655,1663]},"StringKw",[]]],"PrimaryExpr_numberPred":["define",{"sourceInterval":[1706,1750]},null,[],["app",{"sourceInterval":[1706,1714]},"NumberKw",[]]],"PrimaryExpr_objectPred":["define",{"sourceInterval":[1757,1801]},null,[],["app",{"sourceInterval":[1757,1765]},"ObjectKw",[]]],"PrimaryExpr_arrayPred":["define",{"sourceInterval":[1808,1851]},null,[],["app",{"sourceInterval":[1808,1815]},"ArrayKw",[]]],"PrimaryExpr_booleanPred":["define",{"sourceInterval":[1858,1903]},null,[],["app",{"sourceInterval":[1858,1867]},"BooleanKw",[]]],"PrimaryExpr_true":["define",{"sourceInterval":[1910,1948]},null,[],["app",{"sourceInterval":[1910,1916]},"TrueKw",[]]],"PrimaryExpr_false":["define",{"sourceInterval":[1955,1994]},null,[],["app",{"sourceInterval":[1955,1962]},"FalseKw",[]]],"PrimaryExpr_null":["define",{"sourceInterval":[2001,2039]},null,[],["app",{"sourceInterval":[2001,2007]},"NullKw",[]]],"PrimaryExpr_undefined":["define",{"sourceInterval":[2046,2089]},null,[],["app",{"sourceInterval":[2046,2057]},"UndefinedKw",[]]],"PrimaryExpr_self":["define",{"sourceInterval":[2096,2134]},null,[],["app",{"sourceInterval":[2096,2104]},"SelfExpr",[]]],"PrimaryExpr_identifier":["define",{"sourceInterval":[2141,2185]},null,[],["app",{"sourceInterval":[2141,2151]},"identifier",[]]],"PrimaryExpr_group":["define",{"sourceInterval":[2192,2230]},null,[],["seq",{"sourceInterval":[2192,2204]},["terminal",{"sourceInterval":[2192,2195]},"("],["app",{"sourceInterval":[2196,2200]},"Expr",[]],["terminal",{"sourceInterval":[2201,2204]},")"]]],"PrimaryExpr":["define",{"sourceInterval":[1426,2230]},null,[],["alt",{"sourceInterval":[1444,2230]},["app",{"sourceInterval":[1444,1459]},"ConditionalExpr",[]],["app",{"sourceInterval":[1466,1472]},"DoExpr",[]],["app",{"sourceInterval":[1479,1486]},"ForExpr",[]],["app",{"sourceInterval":[1493,1502]},"WhileExpr",[]],["app",{"sourceInterval":[1509,1516]},"PrimaryExpr_break",[]],["app",{"sourceInterval":[1555,1565]},"PrimaryExpr_continue",[]],["app",{"sourceInterval":[1604,1609]},"Array",[]],["app",{"sourceInterval":[1616,1622]},"Object",[]],["app",{"sourceInterval":[1629,1635]},"String",[]],["app",{"sourceInterval":[1642,1648]},"Number",[]],["app",{"sourceInterval":[1655,1663]},"PrimaryExpr_stringPred",[]],["app",{"sourceInterval":[1706,1714]},"PrimaryExpr_numberPred",[]],["app",{"sourceInterval":[1757,1765]},"PrimaryExpr_objectPred",[]],["app",{"sourceInterval":[1808,1815]},"PrimaryExpr_arrayPred",[]],["app",{"sourceInterval":[1858,1867]},"PrimaryExpr_booleanPred",[]],["app",{"sourceInterval":[1910,1916]},"PrimaryExpr_true",[]],["app",{"sourceInterval":[1955,1962]},"PrimaryExpr_false",[]],["app",{"sourceInterval":[2001,2007]},"PrimaryExpr_null",[]],["app",{"sourceInterval":[2046,2057]},"PrimaryExpr_undefined",[]],["app",{"sourceInterval":[2096,2104]},"PrimaryExpr_self",[]],["app",{"sourceInterval":[2141,2151]},"PrimaryExpr_identifier",[]],["app",{"sourceInterval":[2192,2204]},"PrimaryExpr_group",[]]]],"SelfExpr_depth":["define",{"sourceInterval":[2249,2287]},null,[],["seq",{"sourceInterval":[2249,2266]},["app",{"sourceInterval":[2249,2255]},"SelfKw",[]],["terminal",{"sourceInterval":[2256,2259]},"@"],["app",{"sourceInterval":[2260,2266]},"Number",[]]]],"SelfExpr_plain":["define",{"sourceInterval":[2294,2333]},null,[],["app",{"sourceInterval":[2294,2300]},"SelfKw",[]]],"SelfExpr":["define",{"sourceInterval":[2234,2333]},null,[],["alt",{"sourceInterval":[2249,2333]},["app",{"sourceInterval":[2249,2266]},"SelfExpr_depth",[]],["app",{"sourceInterval":[2294,2300]},"SelfExpr_plain",[]]]],"Place":["define",{"sourceInterval":[2337,2369]},null,[],["seq",{"sourceInterval":[2349,2369]},["app",{"sourceInterval":[2349,2358]},"PlaceBase",[]],["star",{"sourceInterval":[2359,2369]},["app",{"sourceInterval":[2359,2368]},"PlaceTail",[]]]]],"PlaceBase":["define",{"sourceInterval":[2373,2412]},null,[],["alt",{"sourceInterval":[2389,2412]},["app",{"sourceInterval":[2389,2399]},"identifier",[]],["app",{"sourceInterval":[2406,2412]},"SelfKw",[]]]],"PlaceTail_navStatic":["define",{"sourceInterval":[2432,2475]},null,[],["seq",{"sourceInterval":[2432,2442]},["terminal",{"sourceInterval":[2432,2435]},"."],["app",{"sourceInterval":[2436,2442]},"navKey",[]]]],"PlaceTail_navDynamic":["define",{"sourceInterval":[2482,2525]},null,[],["seq",{"sourceInterval":[2482,2495]},["terminal",{"sourceInterval":[2482,2486]},".("],["app",{"sourceInterval":[2487,2491]},"Expr",[]],["terminal",{"sourceInterval":[2492,2495]},")"]]],"PlaceTail":["define",{"sourceInterval":[2416,2525]},null,[],["alt",{"sourceInterval":[2432,2525]},["app",{"sourceInterval":[2432,2442]},"PlaceTail_navStatic",[]],["app",{"sourceInterval":[2482,2495]},"PlaceTail_navDynamic",[]]]],"ConditionalExpr":["define",{"sourceInterval":[2529,2605]},null,[],["seq",{"sourceInterval":[2551,2605]},["app",{"sourceInterval":[2551,2566]},"ConditionalHead",[]],["app",{"sourceInterval":[2567,2571]},"Expr",[]],["app",{"sourceInterval":[2572,2576]},"DoKw",[]],["app",{"sourceInterval":[2577,2582]},"Block",[]],["opt",{"sourceInterval":[2583,2599]},["app",{"sourceInterval":[2583,2598]},"ConditionalElse",[]]],["app",{"sourceInterval":[2600,2605]},"EndKw",[]]]],"ConditionalHead":["define",{"sourceInterval":[2609,2652]},null,[],["alt",{"sourceInterval":[2631,2652]},["app",{"sourceInterval":[2631,2637]},"WhenKw",[]],["app",{"sourceInterval":[2644,2652]},"UnlessKw",[]]]],"ConditionalElse_elseChain":["define",{"sourceInterval":[2678,2747]},null,[],["seq",{"sourceInterval":[2678,2733]},["app",{"sourceInterval":[2678,2684]},"ElseKw",[]],["app",{"sourceInterval":[2685,2700]},"ConditionalHead",[]],["app",{"sourceInterval":[2701,2705]},"Expr",[]],["app",{"sourceInterval":[2706,2710]},"DoKw",[]],["app",{"sourceInterval":[2711,2716]},"Block",[]],["opt",{"sourceInterval":[2717,2733]},["app",{"sourceInterval":[2717,2732]},"ConditionalElse",[]]]]],"ConditionalElse_else":["define",{"sourceInterval":[2754,2820]},null,[],["seq",{"sourceInterval":[2754,2766]},["app",{"sourceInterval":[2754,2760]},"ElseKw",[]],["app",{"sourceInterval":[2761,2766]},"Block",[]]]],"ConditionalElse":["define",{"sourceInterval":[2656,2820]},null,[],["alt",{"sourceInterval":[2678,2820]},["app",{"sourceInterval":[2678,2733]},"ConditionalElse_elseChain",[]],["app",{"sourceInterval":[2754,2766]},"ConditionalElse_else",[]]]],"ForExpr":["define",{"sourceInterval":[2824,2872]},null,[],["seq",{"sourceInterval":[2838,2872]},["app",{"sourceInterval":[2838,2843]},"ForKw",[]],["app",{"sourceInterval":[2844,2855]},"BindingExpr",[]],["app",{"sourceInterval":[2856,2860]},"DoKw",[]],["app",{"sourceInterval":[2861,2866]},"Block",[]],["app",{"sourceInterval":[2867,2872]},"EndKw",[]]]],"WhileExpr":["define",{"sourceInterval":[2876,2921]},null,[],["seq",{"sourceInterval":[2892,2921]},["app",{"sourceInterval":[2892,2899]},"WhileKw",[]],["app",{"sourceInterval":[2900,2904]},"Expr",[]],["app",{"sourceInterval":[2905,2909]},"DoKw",[]],["app",{"sourceInterval":[2910,2915]},"Block",[]],["app",{"sourceInterval":[2916,2921]},"EndKw",[]]]],"DoExpr":["define",{"sourceInterval":[2925,2954]},null,[],["seq",{"sourceInterval":[2938,2954]},["app",{"sourceInterval":[2938,2942]},"DoKw",[]],["app",{"sourceInterval":[2943,2948]},"Block",[]],["app",{"sourceInterval":[2949,2954]},"EndKw",[]]]],"BindingExpr":["define",{"sourceInterval":[2958,2998]},null,[],["alt",{"sourceInterval":[2976,2998]},["app",{"sourceInterval":[2976,2987]},"IterBinding",[]],["app",{"sourceInterval":[2994,2998]},"Expr",[]]]],"Block":["define",{"sourceInterval":[3002,3019]},null,[],["star",{"sourceInterval":[3014,3019]},["app",{"sourceInterval":[3014,3018]},"Expr",[]]]],"Array_empty":["define",{"sourceInterval":[3035,3082]},null,[],["seq",{"sourceInterval":[3035,3042]},["terminal",{"sourceInterval":[3035,3038]},"["],["terminal",{"sourceInterval":[3039,3042]},"]"]]],"Array_comprehension":["define",{"sourceInterval":[3089,3143]},null,[],["seq",{"sourceInterval":[3089,3117]},["terminal",{"sourceInterval":[3089,3092]},"["],["app",{"sourceInterval":[3093,3104]},"BindingExpr",[]],["terminal",{"sourceInterval":[3105,3108]},";"],["app",{"sourceInterval":[3109,3113]},"Expr",[]],["terminal",{"sourceInterval":[3114,3117]},"]"]]],"Array_values":["define",{"sourceInterval":[3150,3198]},null,[],["seq",{"sourceInterval":[3150,3172]},["terminal",{"sourceInterval":[3150,3153]},"["],["app",{"sourceInterval":[3154,3168]},"Elements",[["app",{"sourceInterval":[3163,3167]},"Expr",[]]]],["terminal",{"sourceInterval":[3169,3172]},"]"]]],"Array":["define",{"sourceInterval":[3023,3198]},null,[],["alt",{"sourceInterval":[3035,3198]},["app",{"sourceInterval":[3035,3042]},"Array_empty",[]],["app",{"sourceInterval":[3089,3117]},"Array_comprehension",[]],["app",{"sourceInterval":[3150,3172]},"Array_values",[]]]],"Object_empty":["define",{"sourceInterval":[3215,3263]},null,[],["seq",{"sourceInterval":[3215,3222]},["terminal",{"sourceInterval":[3215,3218]},"{"],["terminal",{"sourceInterval":[3219,3222]},"}"]]],"Object_comprehension":["define",{"sourceInterval":[3270,3326]},null,[],["seq",{"sourceInterval":[3270,3309]},["terminal",{"sourceInterval":[3270,3273]},"{"],["app",{"sourceInterval":[3274,3285]},"BindingExpr",[]],["terminal",{"sourceInterval":[3286,3289]},";"],["app",{"sourceInterval":[3290,3296]},"ObjKey",[]],["terminal",{"sourceInterval":[3297,3300]},":"],["app",{"sourceInterval":[3301,3305]},"Expr",[]],["terminal",{"sourceInterval":[3306,3309]},"}"]]],"Object_pairs":["define",{"sourceInterval":[3333,3380]},null,[],["seq",{"sourceInterval":[3333,3355]},["terminal",{"sourceInterval":[3333,3336]},"{"],["app",{"sourceInterval":[3337,3351]},"Elements",[["app",{"sourceInterval":[3346,3350]},"Pair",[]]]],["terminal",{"sourceInterval":[3352,3355]},"}"]]],"Object":["define",{"sourceInterval":[3202,3380]},null,[],["alt",{"sourceInterval":[3215,3380]},["app",{"sourceInterval":[3215,3222]},"Object_empty",[]],["app",{"sourceInterval":[3270,3309]},"Object_comprehension",[]],["app",{"sourceInterval":[3333,3355]},"Object_pairs",[]]]],"IterBinding_keyValueIn":["define",{"sourceInterval":[3402,3453]},null,[],["seq",{"sourceInterval":[3402,3437]},["app",{"sourceInterval":[3402,3412]},"identifier",[]],["terminal",{"sourceInterval":[3413,3416]},","],["app",{"sourceInterval":[3417,3427]},"identifier",[]],["terminal",{"sourceInterval":[3428,3432]},"in"],["app",{"sourceInterval":[3433,3437]},"Expr",[]]]],"IterBinding_valueIn":["define",{"sourceInterval":[3460,3508]},null,[],["seq",{"sourceInterval":[3460,3480]},["app",{"sourceInterval":[3460,3470]},"identifier",[]],["terminal",{"sourceInterval":[3471,3475]},"in"],["app",{"sourceInterval":[3476,3480]},"Expr",[]]]],"IterBinding_keyOf":["define",{"sourceInterval":[3515,3561]},null,[],["seq",{"sourceInterval":[3515,3535]},["app",{"sourceInterval":[3515,3525]},"identifier",[]],["terminal",{"sourceInterval":[3526,3530]},"of"],["app",{"sourceInterval":[3531,3535]},"Expr",[]]]],"IterBinding":["define",{"sourceInterval":[3384,3561]},null,[],["alt",{"sourceInterval":[3402,3561]},["app",{"sourceInterval":[3402,3437]},"IterBinding_keyValueIn",[]],["app",{"sourceInterval":[3460,3480]},"IterBinding_valueIn",[]],["app",{"sourceInterval":[3515,3535]},"IterBinding_keyOf",[]]]],"Pair":["define",{"sourceInterval":[3565,3591]},null,[],["seq",{"sourceInterval":[3576,3591]},["app",{"sourceInterval":[3576,3582]},"ObjKey",[]],["terminal",{"sourceInterval":[3583,3586]},":"],["app",{"sourceInterval":[3587,3591]},"Expr",[]]]],"ObjKey_bare":["define",{"sourceInterval":[3608,3646]},null,[],["app",{"sourceInterval":[3608,3615]},"keyName",[]]],"ObjKey_number":["define",{"sourceInterval":[3653,3693]},null,[],["app",{"sourceInterval":[3653,3659]},"Number",[]]],"ObjKey_string":["define",{"sourceInterval":[3700,3740]},null,[],["app",{"sourceInterval":[3700,3706]},"String",[]]],"ObjKey_computed":["define",{"sourceInterval":[3747,3788]},null,[],["seq",{"sourceInterval":[3747,3759]},["terminal",{"sourceInterval":[3747,3750]},"("],["app",{"sourceInterval":[3751,3755]},"Expr",[]],["terminal",{"sourceInterval":[3756,3759]},")"]]],"ObjKey":["define",{"sourceInterval":[3595,3788]},null,[],["alt",{"sourceInterval":[3608,3788]},["app",{"sourceInterval":[3608,3615]},"ObjKey_bare",[]],["app",{"sourceInterval":[3653,3659]},"ObjKey_number",[]],["app",{"sourceInterval":[3700,3706]},"ObjKey_string",[]],["app",{"sourceInterval":[3747,3759]},"ObjKey_computed",[]]]],"navKey":["define",{"sourceInterval":[3792,3825]},null,[],["alt",{"sourceInterval":[3805,3825]},["app",{"sourceInterval":[3805,3812]},"keyName",[]],["plus",{"sourceInterval":[3819,3825]},["app",{"sourceInterval":[3819,3824]},"digit",[]]]]],"keyName":["define",{"sourceInterval":[3829,3861]},null,[],["seq",{"sourceInterval":[3843,3861]},["app",{"sourceInterval":[3843,3851]},"nameHead",[]],["star",{"sourceInterval":[3852,3861]},["app",{"sourceInterval":[3852,3860]},"nameTail",[]]]]],"CompareOp":["define",{"sourceInterval":[3865,3938]},null,[],["alt",{"sourceInterval":[3881,3938]},["terminal",{"sourceInterval":[3881,3885]},"=="],["terminal",{"sourceInterval":[3892,3896]},"!="],["terminal",{"sourceInterval":[3903,3907]},">="],["terminal",{"sourceInterval":[3914,3917]},">"],["terminal",{"sourceInterval":[3924,3928]},"<="],["terminal",{"sourceInterval":[3935,3938]},"<"]]],"AssignOp":["define",{"sourceInterval":[3942,4048]},null,[],["alt",{"sourceInterval":[3957,4048]},["terminal",{"sourceInterval":[3957,3960]},"="],["terminal",{"sourceInterval":[3967,3971]},"+="],["terminal",{"sourceInterval":[3978,3982]},"-="],["terminal",{"sourceInterval":[3989,3993]},"*="],["terminal",{"sourceInterval":[4000,4004]},"/="],["terminal",{"sourceInterval":[4011,4015]},"%="],["terminal",{"sourceInterval":[4022,4026]},"&="],["terminal",{"sourceInterval":[4033,4037]},"|="],["terminal",{"sourceInterval":[4044,4048]},"^="]]],"Elements":["define",{"sourceInterval":[4052,4095]},null,["item"],["seq",{"sourceInterval":[4073,4095]},["param",{"sourceInterval":[4073,4077]},0],["star",{"sourceInterval":[4078,4090]},["seq",{"sourceInterval":[4079,4088]},["opt",{"sourceInterval":[4079,4083]},["terminal",{"sourceInterval":[4079,4082]},","]],["param",{"sourceInterval":[4084,4088]},0]]],["opt",{"sourceInterval":[4091,4095]},["terminal",{"sourceInterval":[4091,4094]},","]]]],"identifier":["define",{"sourceInterval":[4099,4144]},null,[],["seq",{"sourceInterval":[4116,4144]},["not",{"sourceInterval":[4116,4125]},["app",{"sourceInterval":[4117,4125]},"reserved",[]]],["app",{"sourceInterval":[4126,4134]},"nameHead",[]],["star",{"sourceInterval":[4135,4144]},["app",{"sourceInterval":[4135,4143]},"nameTail",[]]]]],"nameHead":["define",{"sourceInterval":[4148,4179]},null,[],["alt",{"sourceInterval":[4163,4179]},["app",{"sourceInterval":[4163,4169]},"letter",[]],["terminal",{"sourceInterval":[4176,4179]},"_"]]],"nameTail":["define",{"sourceInterval":[4183,4236]},null,[],["alt",{"sourceInterval":[4198,4236]},["app",{"sourceInterval":[4198,4204]},"letter",[]],["app",{"sourceInterval":[4211,4216]},"digit",[]],["terminal",{"sourceInterval":[4223,4226]},"_"],["terminal",{"sourceInterval":[4233,4236]},"-"]]],"reserved":["define",{"sourceInterval":[4240,4625]},null,[],["alt",{"sourceInterval":[4255,4625]},["app",{"sourceInterval":[4255,4262]},"trueTok",[]],["app",{"sourceInterval":[4269,4277]},"falseTok",[]],["app",{"sourceInterval":[4284,4291]},"nullTok",[]],["app",{"sourceInterval":[4298,4310]},"undefinedTok",[]],["app",{"sourceInterval":[4317,4323]},"nanTok",[]],["app",{"sourceInterval":[4330,4336]},"infTok",[]],["app",{"sourceInterval":[4343,4350]},"selfTok",[]],["app",{"sourceInterval":[4357,4364]},"whenTok",[]],["app",{"sourceInterval":[4371,4380]},"unlessTok",[]],["app",{"sourceInterval":[4387,4393]},"forTok",[]],["app",{"sourceInterval":[4400,4408]},"whileTok",[]],["app",{"sourceInterval":[4415,4420]},"inTok",[]],["app",{"sourceInterval":[4427,4432]},"ofTok",[]],["app",{"sourceInterval":[4439,4444]},"doTok",[]],["app",{"sourceInterval":[4451,4458]},"elseTok",[]],["app",{"sourceInterval":[4465,4471]},"endTok",[]],["app",{"sourceInterval":[4478,4486]},"breakTok",[]],["app",{"sourceInterval":[4493,4504]},"continueTok",[]],["app",{"sourceInterval":[4511,4517]},"andTok",[]],["app",{"sourceInterval":[4524,4529]},"orTok",[]],["app",{"sourceInterval":[4536,4545]},"deleteTok",[]],["app",{"sourceInterval":[4552,4561]},"stringTok",[]],["app",{"sourceInterval":[4568,4577]},"numberTok",[]],["app",{"sourceInterval":[4584,4593]},"objectTok",[]],["app",{"sourceInterval":[4600,4608]},"arrayTok",[]],["app",{"sourceInterval":[4615,4625]},"booleanTok",[]]]],"TrueKw":["define",{"sourceInterval":[4629,4649]},null,[],["app",{"sourceInterval":[4642,4649]},"trueTok",[]]],"FalseKw":["define",{"sourceInterval":[4653,4675]},null,[],["app",{"sourceInterval":[4667,4675]},"falseTok",[]]],"NullKw":["define",{"sourceInterval":[4679,4699]},null,[],["app",{"sourceInterval":[4692,4699]},"nullTok",[]]],"UndefinedKw":["define",{"sourceInterval":[4703,4733]},null,[],["app",{"sourceInterval":[4721,4733]},"undefinedTok",[]]],"SelfKw":["define",{"sourceInterval":[4737,4757]},null,[],["app",{"sourceInterval":[4750,4757]},"selfTok",[]]],"WhenKw":["define",{"sourceInterval":[4761,4781]},null,[],["app",{"sourceInterval":[4774,4781]},"whenTok",[]]],"UnlessKw":["define",{"sourceInterval":[4785,4809]},null,[],["app",{"sourceInterval":[4800,4809]},"unlessTok",[]]],"WhileKw":["define",{"sourceInterval":[4813,4835]},null,[],["app",{"sourceInterval":[4827,4835]},"whileTok",[]]],"ForKw":["define",{"sourceInterval":[4839,4857]},null,[],["app",{"sourceInterval":[4851,4857]},"forTok",[]]],"DoKw":["define",{"sourceInterval":[4861,4877]},null,[],["app",{"sourceInterval":[4872,4877]},"doTok",[]]],"ElseKw":["define",{"sourceInterval":[4881,4901]},null,[],["app",{"sourceInterval":[4894,4901]},"elseTok",[]]],"EndKw":["define",{"sourceInterval":[4905,4923]},null,[],["app",{"sourceInterval":[4917,4923]},"endTok",[]]],"BreakKw":["define",{"sourceInterval":[4927,4949]},null,[],["app",{"sourceInterval":[4941,4949]},"breakTok",[]]],"ContinueKw":["define",{"sourceInterval":[4953,4981]},null,[],["app",{"sourceInterval":[4970,4981]},"continueTok",[]]],"AndKw":["define",{"sourceInterval":[4985,5003]},null,[],["app",{"sourceInterval":[4997,5003]},"andTok",[]]],"OrKw":["define",{"sourceInterval":[5007,5023]},null,[],["app",{"sourceInterval":[5018,5023]},"orTok",[]]],"DeleteKw":["define",{"sourceInterval":[5027,5051]},null,[],["app",{"sourceInterval":[5042,5051]},"deleteTok",[]]],"StringKw":["define",{"sourceInterval":[5055,5079]},null,[],["app",{"sourceInterval":[5070,5079]},"stringTok",[]]],"NumberKw":["define",{"sourceInterval":[5083,5107]},null,[],["app",{"sourceInterval":[5098,5107]},"numberTok",[]]],"ObjectKw":["define",{"sourceInterval":[5111,5135]},null,[],["app",{"sourceInterval":[5126,5135]},"objectTok",[]]],"ArrayKw":["define",{"sourceInterval":[5139,5161]},null,[],["app",{"sourceInterval":[5153,5161]},"arrayTok",[]]],"BooleanKw":["define",{"sourceInterval":[5165,5191]},null,[],["app",{"sourceInterval":[5181,5191]},"booleanTok",[]]],"trueTok":["define",{"sourceInterval":[5195,5225]},null,[],["seq",{"sourceInterval":[5209,5225]},["terminal",{"sourceInterval":[5209,5215]},"true"],["not",{"sourceInterval":[5216,5225]},["app",{"sourceInterval":[5217,5225]},"nameTail",[]]]]],"falseTok":["define",{"sourceInterval":[5229,5261]},null,[],["seq",{"sourceInterval":[5244,5261]},["terminal",{"sourceInterval":[5244,5251]},"false"],["not",{"sourceInterval":[5252,5261]},["app",{"sourceInterval":[5253,5261]},"nameTail",[]]]]],"nullTok":["define",{"sourceInterval":[5265,5295]},null,[],["seq",{"sourceInterval":[5279,5295]},["terminal",{"sourceInterval":[5279,5285]},"null"],["not",{"sourceInterval":[5286,5295]},["app",{"sourceInterval":[5287,5295]},"nameTail",[]]]]],"undefinedTok":["define",{"sourceInterval":[5299,5339]},null,[],["seq",{"sourceInterval":[5318,5339]},["terminal",{"sourceInterval":[5318,5329]},"undefined"],["not",{"sourceInterval":[5330,5339]},["app",{"sourceInterval":[5331,5339]},"nameTail",[]]]]],"nanTok":["define",{"sourceInterval":[5343,5371]},null,[],["seq",{"sourceInterval":[5356,5371]},["terminal",{"sourceInterval":[5356,5361]},"nan"],["not",{"sourceInterval":[5362,5371]},["app",{"sourceInterval":[5363,5371]},"nameTail",[]]]]],"infTok":["define",{"sourceInterval":[5375,5403]},null,[],["seq",{"sourceInterval":[5388,5403]},["terminal",{"sourceInterval":[5388,5393]},"inf"],["not",{"sourceInterval":[5394,5403]},["app",{"sourceInterval":[5395,5403]},"nameTail",[]]]]],"selfTok":["define",{"sourceInterval":[5407,5437]},null,[],["seq",{"sourceInterval":[5421,5437]},["terminal",{"sourceInterval":[5421,5427]},"self"],["not",{"sourceInterval":[5428,5437]},["app",{"sourceInterval":[5429,5437]},"nameTail",[]]]]],"whenTok":["define",{"sourceInterval":[5441,5471]},null,[],["seq",{"sourceInterval":[5455,5471]},["terminal",{"sourceInterval":[5455,5461]},"when"],["not",{"sourceInterval":[5462,5471]},["app",{"sourceInterval":[5463,5471]},"nameTail",[]]]]],"unlessTok":["define",{"sourceInterval":[5475,5509]},null,[],["seq",{"sourceInterval":[5491,5509]},["terminal",{"sourceInterval":[5491,5499]},"unless"],["not",{"sourceInterval":[5500,5509]},["app",{"sourceInterval":[5501,5509]},"nameTail",[]]]]],"whileTok":["define",{"sourceInterval":[5513,5545]},null,[],["seq",{"sourceInterval":[5528,5545]},["terminal",{"sourceInterval":[5528,5535]},"while"],["not",{"sourceInterval":[5536,5545]},["app",{"sourceInterval":[5537,5545]},"nameTail",[]]]]],"forTok":["define",{"sourceInterval":[5549,5577]},null,[],["seq",{"sourceInterval":[5562,5577]},["terminal",{"sourceInterval":[5562,5567]},"for"],["not",{"sourceInterval":[5568,5577]},["app",{"sourceInterval":[5569,5577]},"nameTail",[]]]]],"inTok":["define",{"sourceInterval":[5581,5607]},null,[],["seq",{"sourceInterval":[5593,5607]},["terminal",{"sourceInterval":[5593,5597]},"in"],["not",{"sourceInterval":[5598,5607]},["app",{"sourceInterval":[5599,5607]},"nameTail",[]]]]],"ofTok":["define",{"sourceInterval":[5611,5637]},null,[],["seq",{"sourceInterval":[5623,5637]},["terminal",{"sourceInterval":[5623,5627]},"of"],["not",{"sourceInterval":[5628,5637]},["app",{"sourceInterval":[5629,5637]},"nameTail",[]]]]],"doTok":["define",{"sourceInterval":[5641,5667]},null,[],["seq",{"sourceInterval":[5653,5667]},["terminal",{"sourceInterval":[5653,5657]},"do"],["not",{"sourceInterval":[5658,5667]},["app",{"sourceInterval":[5659,5667]},"nameTail",[]]]]],"elseTok":["define",{"sourceInterval":[5671,5701]},null,[],["seq",{"sourceInterval":[5685,5701]},["terminal",{"sourceInterval":[5685,5691]},"else"],["not",{"sourceInterval":[5692,5701]},["app",{"sourceInterval":[5693,5701]},"nameTail",[]]]]],"endTok":["define",{"sourceInterval":[5705,5733]},null,[],["seq",{"sourceInterval":[5718,5733]},["terminal",{"sourceInterval":[5718,5723]},"end"],["not",{"sourceInterval":[5724,5733]},["app",{"sourceInterval":[5725,5733]},"nameTail",[]]]]],"breakTok":["define",{"sourceInterval":[5737,5769]},null,[],["seq",{"sourceInterval":[5752,5769]},["terminal",{"sourceInterval":[5752,5759]},"break"],["not",{"sourceInterval":[5760,5769]},["app",{"sourceInterval":[5761,5769]},"nameTail",[]]]]],"continueTok":["define",{"sourceInterval":[5773,5811]},null,[],["seq",{"sourceInterval":[5791,5811]},["terminal",{"sourceInterval":[5791,5801]},"continue"],["not",{"sourceInterval":[5802,5811]},["app",{"sourceInterval":[5803,5811]},"nameTail",[]]]]],"andTok":["define",{"sourceInterval":[5815,5843]},null,[],["seq",{"sourceInterval":[5828,5843]},["terminal",{"sourceInterval":[5828,5833]},"and"],["not",{"sourceInterval":[5834,5843]},["app",{"sourceInterval":[5835,5843]},"nameTail",[]]]]],"orTok":["define",{"sourceInterval":[5847,5873]},null,[],["seq",{"sourceInterval":[5859,5873]},["terminal",{"sourceInterval":[5859,5863]},"or"],["not",{"sourceInterval":[5864,5873]},["app",{"sourceInterval":[5865,5873]},"nameTail",[]]]]],"deleteTok":["define",{"sourceInterval":[5877,5911]},null,[],["seq",{"sourceInterval":[5893,5911]},["terminal",{"sourceInterval":[5893,5901]},"delete"],["not",{"sourceInterval":[5902,5911]},["app",{"sourceInterval":[5903,5911]},"nameTail",[]]]]],"stringTok":["define",{"sourceInterval":[5915,5949]},null,[],["seq",{"sourceInterval":[5931,5949]},["terminal",{"sourceInterval":[5931,5939]},"string"],["not",{"sourceInterval":[5940,5949]},["app",{"sourceInterval":[5941,5949]},"nameTail",[]]]]],"numberTok":["define",{"sourceInterval":[5953,5987]},null,[],["seq",{"sourceInterval":[5969,5987]},["terminal",{"sourceInterval":[5969,5977]},"number"],["not",{"sourceInterval":[5978,5987]},["app",{"sourceInterval":[5979,5987]},"nameTail",[]]]]],"objectTok":["define",{"sourceInterval":[5991,6025]},null,[],["seq",{"sourceInterval":[6007,6025]},["terminal",{"sourceInterval":[6007,6015]},"object"],["not",{"sourceInterval":[6016,6025]},["app",{"sourceInterval":[6017,6025]},"nameTail",[]]]]],"arrayTok":["define",{"sourceInterval":[6029,6061]},null,[],["seq",{"sourceInterval":[6044,6061]},["terminal",{"sourceInterval":[6044,6051]},"array"],["not",{"sourceInterval":[6052,6061]},["app",{"sourceInterval":[6053,6061]},"nameTail",[]]]]],"booleanTok":["define",{"sourceInterval":[6065,6101]},null,[],["seq",{"sourceInterval":[6082,6101]},["terminal",{"sourceInterval":[6082,6091]},"boolean"],["not",{"sourceInterval":[6092,6101]},["app",{"sourceInterval":[6093,6101]},"nameTail",[]]]]],"String":["define",{"sourceInterval":[6105,6151]},null,[],["alt",{"sourceInterval":[6118,6151]},["app",{"sourceInterval":[6118,6131]},"DQuotedString",[]],["app",{"sourceInterval":[6138,6151]},"SQuotedString",[]]]],"DQuotedString":["define",{"sourceInterval":[6155,6197]},null,[],["seq",{"sourceInterval":[6175,6197]},["terminal",{"sourceInterval":[6175,6179]},"\""],["star",{"sourceInterval":[6180,6192]},["app",{"sourceInterval":[6180,6191]},"dStringChar",[]]],["terminal",{"sourceInterval":[6193,6197]},"\""]]],"dStringChar":["define",{"sourceInterval":[6201,6250]},null,[],["alt",{"sourceInterval":[6219,6250]},["seq",{"sourceInterval":[6219,6237]},["not",{"sourceInterval":[6219,6233]},["alt",{"sourceInterval":[6221,6232]},["terminal",{"sourceInterval":[6221,6225]},"\""],["terminal",{"sourceInterval":[6228,6232]},"\\"]]],["app",{"sourceInterval":[6234,6237]},"any",[]]],["app",{"sourceInterval":[6244,6250]},"escape",[]]]],"SQuotedString":["define",{"sourceInterval":[6254,6294]},null,[],["seq",{"sourceInterval":[6274,6294]},["terminal",{"sourceInterval":[6274,6277]},"'"],["star",{"sourceInterval":[6278,6290]},["app",{"sourceInterval":[6278,6289]},"sStringChar",[]]],["terminal",{"sourceInterval":[6291,6294]},"'"]]],"sStringChar":["define",{"sourceInterval":[6298,6346]},null,[],["alt",{"sourceInterval":[6316,6346]},["seq",{"sourceInterval":[6316,6333]},["not",{"sourceInterval":[6316,6329]},["alt",{"sourceInterval":[6318,6328]},["terminal",{"sourceInterval":[6318,6321]},"'"],["terminal",{"sourceInterval":[6324,6328]},"\\"]]],["app",{"sourceInterval":[6330,6333]},"any",[]]],["app",{"sourceInterval":[6340,6346]},"escape",[]]]],"escape":["define",{"sourceInterval":[6350,6408]},null,[],["seq",{"sourceInterval":[6363,6408]},["terminal",{"sourceInterval":[6363,6367]},"\\"],["alt",{"sourceInterval":[6369,6407]},["app",{"sourceInterval":[6369,6379]},"escapeChar",[]],["app",{"sourceInterval":[6382,6391]},"hexEscape",[]],["app",{"sourceInterval":[6394,6407]},"unicodeEscape",[]]]]],"escapeChar":["define",{"sourceInterval":[6412,6488]},null,[],["alt",{"sourceInterval":[6429,6488]},["terminal",{"sourceInterval":[6429,6433]},"\""],["terminal",{"sourceInterval":[6436,6439]},"'"],["terminal",{"sourceInterval":[6442,6446]},"\\"],["terminal",{"sourceInterval":[6449,6452]},"/"],["terminal",{"sourceInterval":[6455,6458]},"b"],["terminal",{"sourceInterval":[6461,6464]},"f"],["terminal",{"sourceInterval":[6467,6470]},"n"],["terminal",{"sourceInterval":[6473,6476]},"r"],["terminal",{"sourceInterval":[6479,6482]},"t"],["terminal",{"sourceInterval":[6485,6488]},"0"]]],"hexEscape":["define",{"sourceInterval":[6492,6519]},null,[],["seq",{"sourceInterval":[6508,6519]},["terminal",{"sourceInterval":[6508,6511]},"x"],["app",{"sourceInterval":[6512,6515]},"hex",[]],["app",{"sourceInterval":[6516,6519]},"hex",[]]]],"unicodeEscape":["define",{"sourceInterval":[6523,6562]},null,[],["seq",{"sourceInterval":[6543,6562]},["terminal",{"sourceInterval":[6543,6546]},"u"],["app",{"sourceInterval":[6547,6550]},"hex",[]],["app",{"sourceInterval":[6551,6554]},"hex",[]],["app",{"sourceInterval":[6555,6558]},"hex",[]],["app",{"sourceInterval":[6559,6562]},"hex",[]]]],"hex":["define",{"sourceInterval":[6566,6611]},null,[],["alt",{"sourceInterval":[6576,6611]},["app",{"sourceInterval":[6576,6581]},"digit",[]],["range",{"sourceInterval":[6588,6596]},"A","F"],["range",{"sourceInterval":[6603,6611]},"a","f"]]],"Number":["define",{"sourceInterval":[6615,6710]},null,[],["alt",{"sourceInterval":[6628,6710]},["app",{"sourceInterval":[6628,6637]},"hexNumber",[]],["app",{"sourceInterval":[6644,6656]},"binaryNumber",[]],["app",{"sourceInterval":[6663,6673]},"infLiteral",[]],["app",{"sourceInterval":[6680,6690]},"nanLiteral",[]],["app",{"sourceInterval":[6697,6710]},"decimalNumber",[]]]],"infLiteral":["define",{"sourceInterval":[6714,6742]},null,[],["seq",{"sourceInterval":[6731,6742]},["opt",{"sourceInterval":[6731,6735]},["terminal",{"sourceInterval":[6731,6734]},"-"]],["app",{"sourceInterval":[6736,6742]},"infTok",[]]]],"nanLiteral":["define",{"sourceInterval":[6746,6769]},null,[],["app",{"sourceInterval":[6763,6769]},"nanTok",[]]],"hexNumber":["define",{"sourceInterval":[6773,6803]},null,[],["seq",{"sourceInterval":[6789,6803]},["opt",{"sourceInterval":[6789,6793]},["terminal",{"sourceInterval":[6789,6792]},"-"]],["terminal",{"sourceInterval":[6794,6798]},"0x"],["plus",{"sourceInterval":[6799,6803]},["app",{"sourceInterval":[6799,6802]},"hex",[]]]]],"binaryNumber":["define",{"sourceInterval":[6807,6840]},null,[],["seq",{"sourceInterval":[6826,6840]},["opt",{"sourceInterval":[6826,6830]},["terminal",{"sourceInterval":[6826,6829]},"-"]],["terminal",{"sourceInterval":[6831,6835]},"0b"],["plus",{"sourceInterval":[6836,6840]},["app",{"sourceInterval":[6836,6839]},"bit",[]]]]],"decimalNumber":["define",{"sourceInterval":[6844,6907]},null,[],["seq",{"sourceInterval":[6864,6907]},["opt",{"sourceInterval":[6864,6868]},["terminal",{"sourceInterval":[6864,6867]},"-"]],["app",{"sourceInterval":[6869,6883]},"decimalInteger",[]],["opt",{"sourceInterval":[6884,6897]},["seq",{"sourceInterval":[6885,6895]},["terminal",{"sourceInterval":[6885,6888]},"."],["plus",{"sourceInterval":[6889,6895]},["app",{"sourceInterval":[6889,6894]},"digit",[]]]]],["opt",{"sourceInterval":[6898,6907]},["app",{"sourceInterval":[6898,6906]},"exponent",[]]]]],"decimalInteger_nonZero":["define",{"sourceInterval":[6932,6963]},null,[],["seq",{"sourceInterval":[6932,6951]},["app",{"sourceInterval":[6932,6944]},"nonZeroDigit",[]],["star",{"sourceInterval":[6945,6951]},["app",{"sourceInterval":[6945,6950]},"digit",[]]]]],"decimalInteger_zero":["define",{"sourceInterval":[6970,6998]},null,[],["terminal",{"sourceInterval":[6970,6973]},"0"]],"decimalInteger":["define",{"sourceInterval":[6911,6998]},null,[],["alt",{"sourceInterval":[6932,6998]},["app",{"sourceInterval":[6932,6951]},"decimalInteger_nonZero",[]],["app",{"sourceInterval":[6970,6973]},"decimalInteger_zero",[]]]],"bit":["define",{"sourceInterval":[7002,7021]},null,[],["alt",{"sourceInterval":[7012,7021]},["terminal",{"sourceInterval":[7012,7015]},"0"],["terminal",{"sourceInterval":[7018,7021]},"1"]]],"exponent":["define",{"sourceInterval":[7025,7071]},null,[],["seq",{"sourceInterval":[7040,7071]},["alt",{"sourceInterval":[7041,7050]},["terminal",{"sourceInterval":[7041,7044]},"e"],["terminal",{"sourceInterval":[7047,7050]},"E"]],["opt",{"sourceInterval":[7052,7064]},["alt",{"sourceInterval":[7053,7062]},["terminal",{"sourceInterval":[7053,7056]},"+"],["terminal",{"sourceInterval":[7059,7062]},"-"]]],["plus",{"sourceInterval":[7065,7071]},["app",{"sourceInterval":[7065,7070]},"digit",[]]]]],"nonZeroDigit":["define",{"sourceInterval":[7075,7102]},null,[],["range",{"sourceInterval":[7094,7102]},"1","9"]],"comment":["define",{"sourceInterval":[7106,7150]},null,[],["alt",{"sourceInterval":[7120,7150]},["app",{"sourceInterval":[7120,7131]},"lineComment",[]],["app",{"sourceInterval":[7138,7150]},"blockComment",[]]]],"lineComment":["define",{"sourceInterval":[7154,7195]},null,[],["seq",{"sourceInterval":[7172,7195]},["terminal",{"sourceInterval":[7172,7176]},"//"],["star",{"sourceInterval":[7177,7189]},["seq",{"sourceInterval":[7178,7187]},["not",{"sourceInterval":[7178,7183]},["terminal",{"sourceInterval":[7179,7183]},"\n"]],["app",{"sourceInterval":[7184,7187]},"any",[]]]],["opt",{"sourceInterval":[7190,7195]},["terminal",{"sourceInterval":[7190,7194]},"\n"]]]],"blockComment":["define",{"sourceInterval":[7199,7240]},null,[],["seq",{"sourceInterval":[7218,7240]},["terminal",{"sourceInterval":[7218,7222]},"/*"],["star",{"sourceInterval":[7223,7235]},["seq",{"sourceInterval":[7224,7233]},["not",{"sourceInterval":[7224,7229]},["terminal",{"sourceInterval":[7225,7229]},"*/"]],["app",{"sourceInterval":[7230,7233]},"any",[]]]],["terminal",{"sourceInterval":[7236,7240]},"*/"]]]}]);module.exports=result;
|
package/rex.ohm-bundle.d.ts
CHANGED
|
@@ -102,6 +102,7 @@ export interface RexActionDict<T> extends BaseActionDict<T> {
|
|
|
102
102
|
ObjKey_string?: (this: NonterminalNode, arg0: NonterminalNode) => T;
|
|
103
103
|
ObjKey_computed?: (this: NonterminalNode, arg0: TerminalNode, arg1: NonterminalNode, arg2: TerminalNode) => T;
|
|
104
104
|
ObjKey?: (this: NonterminalNode, arg0: NonterminalNode) => T;
|
|
105
|
+
navKey?: (this: NonterminalNode, arg0: IterationNode | NonterminalNode) => T;
|
|
105
106
|
keyName?: (this: NonterminalNode, arg0: NonterminalNode, arg1: IterationNode) => T;
|
|
106
107
|
CompareOp?: (this: NonterminalNode, arg0: TerminalNode) => T;
|
|
107
108
|
AssignOp?: (this: NonterminalNode, arg0: TerminalNode) => T;
|
|
@@ -136,6 +137,8 @@ export interface RexActionDict<T> extends BaseActionDict<T> {
|
|
|
136
137
|
falseTok?: (this: NonterminalNode, arg0: TerminalNode) => T;
|
|
137
138
|
nullTok?: (this: NonterminalNode, arg0: TerminalNode) => T;
|
|
138
139
|
undefinedTok?: (this: NonterminalNode, arg0: TerminalNode) => T;
|
|
140
|
+
nanTok?: (this: NonterminalNode, arg0: TerminalNode) => T;
|
|
141
|
+
infTok?: (this: NonterminalNode, arg0: TerminalNode) => T;
|
|
139
142
|
selfTok?: (this: NonterminalNode, arg0: TerminalNode) => T;
|
|
140
143
|
whenTok?: (this: NonterminalNode, arg0: TerminalNode) => T;
|
|
141
144
|
unlessTok?: (this: NonterminalNode, arg0: TerminalNode) => T;
|
|
@@ -167,6 +170,8 @@ export interface RexActionDict<T> extends BaseActionDict<T> {
|
|
|
167
170
|
unicodeEscape?: (this: NonterminalNode, arg0: TerminalNode, arg1: NonterminalNode, arg2: NonterminalNode, arg3: NonterminalNode, arg4: NonterminalNode) => T;
|
|
168
171
|
hex?: (this: NonterminalNode, arg0: NonterminalNode | TerminalNode) => T;
|
|
169
172
|
Number?: (this: NonterminalNode, arg0: NonterminalNode) => T;
|
|
173
|
+
infLiteral?: (this: NonterminalNode, arg0: IterationNode, arg1: NonterminalNode) => T;
|
|
174
|
+
nanLiteral?: (this: NonterminalNode, arg0: NonterminalNode) => T;
|
|
170
175
|
hexNumber?: (this: NonterminalNode, arg0: IterationNode, arg1: TerminalNode, arg2: IterationNode) => T;
|
|
171
176
|
binaryNumber?: (this: NonterminalNode, arg0: IterationNode, arg1: TerminalNode, arg2: IterationNode) => T;
|
|
172
177
|
decimalNumber?: (this: NonterminalNode, arg0: IterationNode, arg1: NonterminalNode, arg2: IterationNode, arg3: IterationNode, arg4: IterationNode) => T;
|