Last active
August 13, 2024 20:54
-
-
Save conartist6/b28c27bdbf94167abbcad439a0d8052b to your computer and use it in GitHub Desktop.
JSON grammar with hoisting
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { readFileSync } from 'node:fs'; | |
import { streamParse, Context, AgastContext } from 'bablr/enhanceable'; | |
import { evaluateReturnAsync } from '@bablr/agast-helpers/tree'; | |
import * as language from './z_2.json.grammar.fast.js'; | |
import { buildFullyQualifiedSpamMatcher } from '@bablr/agast-vm-helpers'; | |
const input = readFileSync(`${import.meta.dirname}/z_3_fixture.json`, 'utf-8'); | |
const matcher = buildFullyQualifiedSpamMatcher({}, language.canonicalURL, 'Expression'); | |
const ctx = Context.from(AgastContext.create(), language); | |
await evaluateReturnAsync(streamParse(ctx, matcher, input)); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"private": true, | |
"devDependencies": { | |
"bablr": "0.4.4" | |
"@bablr/agast-helpers": "0.3.2", | |
"@bablr/agast-vm-helpers": "0.3.2", | |
"@bablr/boot": "0.4.0", | |
"@bablr/cli": "0.4.6", | |
"@bablr/helpers": "0.18.2" | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { i } from '@bablr/boot/shorthand.macro'; | |
import { triviaEnhancer } from '@bablr/helpers/trivia'; | |
import * as productions from '@bablr/helpers/productions'; | |
import { buildString, buildBoolean } from '@bablr/agast-vm-helpers'; | |
import { Node, CoveredBy, AllowEmpty, InjectFrom, Attributes } from '@bablr/helpers/decorators'; | |
export const canonicalURL = 'https://github.com/bablr-lang/language-en-json'; | |
export const escapables = new Map( | |
Object.entries({ | |
b: '\b', | |
f: '\f', | |
n: '\n', | |
r: '\r', | |
t: '\t', | |
'\\': '\\', | |
'/': '/', | |
}), | |
); | |
const s = [ | |
i`match(/[ \n\r\t]/)`, | |
i`eat(<#*Space>)`, | |
i`eat(<> 'root')`, | |
i`eat(<Any> null [ | |
<Array '['> | |
<Object '{'> | |
<String '"'> | |
<Number /-?\d/ span='Number'> | |
<Null 'null'> | |
<Boolean /true|false/> | |
])`, | |
i`eat(<~*Punctuator '[' balanced=']'> 'openToken')`, | |
i`eat(<List> 'elements[]' { | |
element: <Expression> | |
separator: <~*Punctuator ','> | |
allowTrailingSeparator: false | |
})`, | |
i`eat(<~*Punctuator ']' balancer> 'closeToken')`, | |
i`eat(<~*Punctuator '{' balanced='}'> 'openToken')`, | |
i`eat(<List> 'properties[]' { | |
element: <Property> | |
separator: <~*Punctuator ','> | |
allowTrailingSeparator: false | |
})`, | |
i`eat(<~*Punctuator '}' balancer> 'closeToken')`, | |
i`eat(<String> 'key')`, | |
i`eat(<~*Punctuator ':'> 'sigilToken')`, | |
i`eat(<Expression> 'value')`, | |
i`eat(<~*Punctuator '"' balanced='"' balancedSpan='String'> 'openToken')`, | |
i`eat(<*StringContent> 'content')`, | |
i`eat(<~*Punctuator '"' balancer> 'closeToken')`, | |
i`match('\\')`, | |
i`eat(<@EscapeSequence>)`, | |
i`eatMatch(/[^\r\n\\"]+/)`, | |
i`fail()`, | |
i`eat(<~*Punctuator '\\' openSpan='Escape'> 'sigilToken')`, | |
i`match(/[\\/bfnrt"]/)`, | |
i`match('u')`, | |
i`eat(<EscapeCode closeSpan='Escape'> 'value')`, | |
i`eat(<~*Keyword 'u'> 'typeToken')`, | |
i`eat(<Digits> 'digits[]')`, | |
i`eat(<Integer> 'wholePart' { noDoubleZero: true matchSign: '-' })`, | |
i`eatMatch(<~*Punctuator '.'> 'fractionalSeparatorToken')`, | |
i`eat(<Integer> 'fractionalPart')`, | |
i`eat(null 'fractionalPart')`, | |
i`eatMatch(<~*Punctuator /[eE]/> 'exponentSeparatorToken')`, | |
i`eat(<Integer> 'exponentPart' { matchSign: /[+-]/ })`, | |
i`eat(null 'exponentPart')`, | |
i`eat(null 'signToken')`, | |
i`eatMatch(/\d+/)`, | |
i`eat(<~*Keyword /true|false/> 'sigilToken')`, | |
i`eat(<~*Keyword 'null'> 'sigilToken')`, | |
i`eat(/[ \t\r\n]+/)`, | |
]; | |
export const grammar = triviaEnhancer( | |
{ | |
triviaIsAllowed: (s) => s.span === 'Bare', | |
*eatMatchTrivia() { | |
if (yield s[0]) { | |
yield s[1]; | |
} | |
}, | |
}, | |
class JSONGrammar { | |
*[Symbol.for('@bablr/fragment')]() { | |
yield s[2]; | |
} | |
@CoveredBy('Element') | |
*Expression() { | |
yield s[3]; | |
} | |
@CoveredBy('Expression') | |
@Node | |
*Array() { | |
yield s[4]; | |
yield s[5]; | |
yield s[6]; | |
} | |
@CoveredBy('Expression') | |
@Node | |
*Object() { | |
yield s[7]; | |
yield s[8]; | |
yield s[9]; | |
} | |
@Node | |
*Property() { | |
yield s[10]; | |
yield s[11]; | |
yield s[12]; | |
} | |
@CoveredBy('Language') | |
@Node | |
*String() { | |
yield s[13]; | |
yield s[14]; | |
yield s[15]; | |
} | |
@AllowEmpty | |
@Node | |
*StringContent() { | |
let esc, lit; | |
do { | |
esc = (yield s[16]) && (yield s[17]); | |
lit = yield s[18]; | |
} while (esc || lit); | |
} | |
@Attributes(['cooked']) | |
@Node | |
*EscapeSequence({ state: { span }, ctx }) { | |
if (!span.startsWith('String')) { | |
yield s[19]; | |
} | |
yield s[20]; | |
let match, cooked; | |
if ((match = yield s[21])) { | |
const match_ = ctx.sourceTextFor(match); | |
yield i`eat(<~*Keyword ${buildString(match_)} closeSpan='Escape'> 'value')`; | |
cooked = escapables.get(match_) || match_; | |
} else if (yield s[22]) { | |
const codeNode = yield s[23]; | |
cooked = parseInt( | |
codeNode.properties.digits.map((digit) => ctx.sourceTextFor(digit)).join(''), | |
16, | |
); | |
} else { | |
yield s[19]; | |
} | |
yield i`bindAttribute(cooked ${buildString(cooked.toString(10))})`; | |
} | |
@Node | |
*EscapeCode() { | |
yield s[24]; | |
yield s[25]; | |
} | |
@CoveredBy('Expression') | |
@Node | |
*Number() { | |
yield s[26]; | |
let fs = yield s[27]; | |
if (fs) { | |
yield s[28]; | |
} else { | |
yield s[29]; | |
} | |
let es = yield s[30]; | |
if (es) { | |
yield s[31]; | |
} else { | |
yield s[32]; | |
} | |
} | |
@Node | |
*Integer({ value: props, ctx }) { | |
const { matchSign = null, noDoubleZero = false } = (props && ctx.unbox(props)) || {}; | |
if (matchSign) { | |
yield i`eatMatch(<~*Punctuator ${matchSign}> 'signToken')`; | |
} else { | |
yield s[33]; | |
} | |
yield i`eat(<*UnsignedInteger noDoubleZero=${buildBoolean(noDoubleZero)}> 'value')`; | |
} | |
@Node | |
*UnsignedInteger({ value: props, ctx }) { | |
const { noDoubleZero = false } = (props && ctx.unbox(props)) || {}; | |
let [firstDigit] = ctx.allTerminalsFor(yield i`eat(/\d/)`); | |
if (!noDoubleZero || firstDigit.value !== '0') { | |
yield s[34]; | |
} | |
} | |
@CoveredBy('Expression') | |
@Node | |
*Boolean() { | |
yield s[35]; | |
} | |
@CoveredBy('Expression') | |
@Node | |
*Null() { | |
yield s[36]; | |
} | |
@Node | |
*Space() { | |
yield s[37]; | |
} | |
@Node | |
@InjectFrom(productions) | |
*Keyword() {} | |
@Node | |
@InjectFrom(productions) | |
*Punctuator() {} | |
@AllowEmpty | |
@InjectFrom(productions) | |
*List() {} | |
@InjectFrom(productions) | |
*Any() {} | |
}, | |
); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* @macrome | |
* @generatedby @bablr/macrome-generator-bablr | |
* @generatedfrom ./z_1.json.grammar.fast.macro.js#e0742bdbccd1335aa70856535e91987ca784206f | |
* This file is autogenerated. Please do not edit it directly. | |
* When editing run `npx macrome watch` then change the file this is generated from. | |
*/ | |
import _applyDecs from "@babel/runtime/helpers/applyDecs2305"; | |
import { interpolateArray as _interpolateArray, interpolateArrayChildren as _interpolateArrayChildren, interpolateString as _interpolateString } from "@bablr/agast-helpers/template"; | |
import * as _l from "@bablr/agast-vm-helpers/languages"; | |
import * as _t from "@bablr/agast-helpers/shorthand"; | |
let _initProto, _ExpressionDecs, _ArrayDecs, _ObjectDecs, _StringDecs, _EscapeSequenceDecs, _NumberDecs, _BooleanDecs, _NullDecs, _KeywordDecs, _PunctuatorDecs, _ListDecs, _AnyDecs; | |
import { triviaEnhancer } from '@bablr/helpers/trivia'; | |
import * as productions from '@bablr/helpers/productions'; | |
import { buildString, buildBoolean } from '@bablr/agast-vm-helpers'; | |
import { Node, CoveredBy, AllowEmpty, InjectFrom, Attributes } from '@bablr/helpers/decorators'; | |
export const canonicalURL = 'https://github.com/bablr-lang/language-en-json'; | |
export const escapables = new Map(Object.entries({ | |
b: '\b', | |
f: '\f', | |
n: '\n', | |
r: '\r', | |
t: '\t', | |
'\\': '\\', | |
'/': '/' | |
})); | |
const s = [_t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], { | |
verb: _t.s_node(_l.Instruction, "Identifier", "match"), | |
arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("), | |
values: [_t.node(_l.Regex, "Pattern", [_t.ref`openToken`, _t.ref`alternatives[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Regex, "Punctuator", "/"), | |
alternatives: [_t.node(_l.Regex, "Alternative", [_t.ref`elements[]`], { | |
elements: [_t.node(_l.Regex, "CharacterClass", [_t.ref`openToken`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Regex, "Punctuator", "["), | |
elements: [_t.node(_l.Regex, "Character", [_t.lit(" ")], {}, {}), _t.node(_l.Regex, "Character", [_t.embedded(_t.s_e_node(_l.CSTML, "Escape", [_t.lit("\\n")], {}, { | |
cooked: "\n" | |
}))], {}, {}), _t.node(_l.Regex, "Character", [_t.embedded(_t.s_e_node(_l.CSTML, "Escape", [_t.lit("\\r")], {}, { | |
cooked: "\r" | |
}))], {}, {}), _t.node(_l.Regex, "Character", [_t.embedded(_t.s_e_node(_l.CSTML, "Escape", [_t.lit("\\t")], {}, { | |
cooked: "\t" | |
}))], {}, {})], | |
closeToken: _t.s_i_node(_l.Regex, "Punctuator", "]") | |
}, { | |
negate: false | |
})] | |
}, {})], | |
closeToken: _t.s_i_node(_l.Regex, "Punctuator", "/") | |
}, {})], | |
closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")") | |
}, {}) | |
}, {}), _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], { | |
verb: _t.s_node(_l.Instruction, "Identifier", "eat"), | |
arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("), | |
values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"), | |
flags: _t.node(_l.CSTML, "Flags", [_t.ref`triviaToken`, _t.ref`tokenToken`], { | |
triviaToken: _t.s_i_node(_l.CSTML, "Punctuator", "#"), | |
tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*") | |
}, {}), | |
type: _t.s_node(_l.Spamex, "Identifier", "Space"), | |
closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">") | |
}, {})], | |
closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")") | |
}, {}) | |
}, {}), _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], { | |
verb: _t.s_node(_l.Instruction, "Identifier", "eat"), | |
arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`values[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("), | |
values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"), | |
flags: _t.node(_l.CSTML, "Flags", [], {}, {}), | |
closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">") | |
}, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit("root")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {})], | |
closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")") | |
}, {}) | |
}, {}), _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], { | |
verb: _t.s_node(_l.Instruction, "Identifier", "eat"), | |
arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`values[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`values[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("), | |
values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"), | |
flags: _t.node(_l.CSTML, "Flags", [], {}, {}), | |
type: _t.s_node(_l.Spamex, "Identifier", "Any"), | |
closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">") | |
}, {}), _t.node(_l.Instruction, "Null", [_t.ref`sigilToken`], { | |
sigilToken: _t.s_i_node(_l.Instruction, "Keyword", "null") | |
}, {}), _t.node(_l.Instruction, "Array", [_t.ref`openToken`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit("\n ")], {}, {})), _t.ref`elements[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit("\n ")], {}, {})), _t.ref`elements[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit("\n ")], {}, {})), _t.ref`elements[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit("\n ")], {}, {})), _t.ref`elements[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit("\n ")], {}, {})), _t.ref`elements[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit("\n ")], {}, {})), _t.ref`elements[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit("\n ")], {}, {})), _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Instruction, "Punctuator", "["), | |
elements: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`intrinsicValue`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"), | |
flags: _t.node(_l.CSTML, "Flags", [], {}, {}), | |
type: _t.s_node(_l.Spamex, "Identifier", "Array"), | |
intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit("[")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {}), | |
closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">") | |
}, {}), _t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`intrinsicValue`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"), | |
flags: _t.node(_l.CSTML, "Flags", [], {}, {}), | |
type: _t.s_node(_l.Spamex, "Identifier", "Object"), | |
intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit("{")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {}), | |
closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">") | |
}, {}), _t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`intrinsicValue`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"), | |
flags: _t.node(_l.CSTML, "Flags", [], {}, {}), | |
type: _t.s_node(_l.Spamex, "Identifier", "String"), | |
intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit("\"")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {}), | |
closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">") | |
}, {}), _t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`intrinsicValue`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`attributes[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"), | |
flags: _t.node(_l.CSTML, "Flags", [], {}, {}), | |
type: _t.s_node(_l.Spamex, "Identifier", "Number"), | |
intrinsicValue: _t.node(_l.Regex, "Pattern", [_t.ref`openToken`, _t.ref`alternatives[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Regex, "Punctuator", "/"), | |
alternatives: [_t.node(_l.Regex, "Alternative", [_t.ref`elements[]`, _t.ref`elements[]`], { | |
elements: [_t.node(_l.Regex, "Quantifier", [_t.ref`element`, _t.ref`value`], { | |
element: _t.node(_l.Regex, "Character", [_t.lit("-")], {}, {}), | |
value: _t.s_i_node(_l.Regex, "Keyword", "?") | |
}, { | |
min: 0, | |
max: 1, | |
greedy: true | |
}), _t.node(_l.Regex, "DigitCharacterSet", [_t.ref`escapeToken`, _t.ref`value`], { | |
escapeToken: _t.s_i_node(_l.Regex, "Punctuator", "\\"), | |
value: _t.s_i_node(_l.Regex, "Keyword", "d") | |
}, {})] | |
}, {})], | |
closeToken: _t.s_i_node(_l.Regex, "Punctuator", "/") | |
}, {}), | |
attributes: [_t.node(_l.Spamex, "MappingAttribute", [_t.ref`key`, _t.ref`mapToken`, _t.ref`value`], { | |
key: _t.node(_l.Spamex, "Literal", [_t.lit("span")], {}, {}), | |
mapToken: _t.s_i_node(_l.Spamex, "Punctuator", "="), | |
value: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit("Number")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {}) | |
}, {})], | |
closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">") | |
}, {}), _t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`intrinsicValue`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"), | |
flags: _t.node(_l.CSTML, "Flags", [], {}, {}), | |
type: _t.s_node(_l.Spamex, "Identifier", "Null"), | |
intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit("null")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {}), | |
closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">") | |
}, {}), _t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`intrinsicValue`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"), | |
flags: _t.node(_l.CSTML, "Flags", [], {}, {}), | |
type: _t.s_node(_l.Spamex, "Identifier", "Boolean"), | |
intrinsicValue: _t.node(_l.Regex, "Pattern", [_t.ref`openToken`, _t.ref`alternatives[]`, _t.ref`separators[]`, _t.ref`alternatives[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Regex, "Punctuator", "/"), | |
alternatives: [_t.node(_l.Regex, "Alternative", [_t.ref`elements[]`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`elements[]`], { | |
elements: [_t.node(_l.Regex, "Character", [_t.lit("t")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("r")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("u")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("e")], {}, {})] | |
}, {}), _t.node(_l.Regex, "Alternative", [_t.ref`elements[]`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`elements[]`], { | |
elements: [_t.node(_l.Regex, "Character", [_t.lit("f")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("a")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("l")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("s")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("e")], {}, {})] | |
}, {})], | |
separators: [_t.s_i_node(_l.Regex, "Punctuator", "|")], | |
closeToken: _t.s_i_node(_l.Regex, "Punctuator", "/") | |
}, {}), | |
closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">") | |
}, {})], | |
closeToken: _t.s_i_node(_l.Instruction, "Punctuator", "]") | |
}, {})], | |
closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")") | |
}, {}) | |
}, {}), _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], { | |
verb: _t.s_node(_l.Instruction, "Identifier", "eat"), | |
arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`values[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("), | |
values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`intrinsicValue`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`attributes[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"), | |
flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], { | |
intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"), | |
tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*") | |
}, {}), | |
type: _t.s_node(_l.Spamex, "Identifier", "Punctuator"), | |
intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit("[")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {}), | |
attributes: [_t.node(_l.Spamex, "MappingAttribute", [_t.ref`key`, _t.ref`mapToken`, _t.ref`value`], { | |
key: _t.node(_l.Spamex, "Literal", [_t.lit("balanced")], {}, {}), | |
mapToken: _t.s_i_node(_l.Spamex, "Punctuator", "="), | |
value: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit("]")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {}) | |
}, {})], | |
closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">") | |
}, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit("openToken")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {})], | |
closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")") | |
}, {}) | |
}, {}), _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], { | |
verb: _t.s_node(_l.Instruction, "Identifier", "eat"), | |
arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`values[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`values[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("), | |
values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"), | |
flags: _t.node(_l.CSTML, "Flags", [], {}, {}), | |
type: _t.s_node(_l.Spamex, "Identifier", "List"), | |
closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">") | |
}, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit("elements[]")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {}), _t.node(_l.Instruction, "Object", [_t.ref`openToken`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit("\n ")], {}, {})), _t.ref`properties[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit("\n ")], {}, {})), _t.ref`properties[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit("\n ")], {}, {})), _t.ref`properties[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit("\n ")], {}, {})), _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Instruction, "Punctuator", "{"), | |
properties: [_t.node(_l.Instruction, "Property", [_t.ref`key`, _t.ref`mapToken`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`value`], { | |
key: _t.node(_l.Instruction, "Literal", [_t.lit("element")], {}, {}), | |
mapToken: _t.s_i_node(_l.Instruction, "Punctuator", ":"), | |
value: _t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"), | |
flags: _t.node(_l.CSTML, "Flags", [], {}, {}), | |
type: _t.s_node(_l.Spamex, "Identifier", "Expression"), | |
closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">") | |
}, {}) | |
}, {}), _t.node(_l.Instruction, "Property", [_t.ref`key`, _t.ref`mapToken`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`value`], { | |
key: _t.node(_l.Instruction, "Literal", [_t.lit("separator")], {}, {}), | |
mapToken: _t.s_i_node(_l.Instruction, "Punctuator", ":"), | |
value: _t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`intrinsicValue`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"), | |
flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], { | |
intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"), | |
tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*") | |
}, {}), | |
type: _t.s_node(_l.Spamex, "Identifier", "Punctuator"), | |
intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit(",")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {}), | |
closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">") | |
}, {}) | |
}, {}), _t.node(_l.Instruction, "Property", [_t.ref`key`, _t.ref`mapToken`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`value`], { | |
key: _t.node(_l.Instruction, "Literal", [_t.lit("allowTrailingSeparator")], {}, {}), | |
mapToken: _t.s_i_node(_l.Instruction, "Punctuator", ":"), | |
value: _t.node(_l.Instruction, "Boolean", [_t.ref`sigilToken`], { | |
sigilToken: _t.s_i_node(_l.Instruction, "Keyword", "false") | |
}, {}) | |
}, {})], | |
closeToken: _t.s_i_node(_l.Instruction, "Punctuator", "}") | |
}, {})], | |
closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")") | |
}, {}) | |
}, {}), _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], { | |
verb: _t.s_node(_l.Instruction, "Identifier", "eat"), | |
arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`values[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("), | |
values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`intrinsicValue`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`attributes[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"), | |
flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], { | |
intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"), | |
tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*") | |
}, {}), | |
type: _t.s_node(_l.Spamex, "Identifier", "Punctuator"), | |
intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit("]")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {}), | |
attributes: [_t.node(_l.Spamex, "BooleanAttribute", [_t.ref`key`], { | |
key: _t.node(_l.Spamex, "Literal", [_t.lit("balancer")], {}, {}) | |
}, {})], | |
closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">") | |
}, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit("closeToken")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {})], | |
closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")") | |
}, {}) | |
}, {}), _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], { | |
verb: _t.s_node(_l.Instruction, "Identifier", "eat"), | |
arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`values[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("), | |
values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`intrinsicValue`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`attributes[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"), | |
flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], { | |
intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"), | |
tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*") | |
}, {}), | |
type: _t.s_node(_l.Spamex, "Identifier", "Punctuator"), | |
intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit("{")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {}), | |
attributes: [_t.node(_l.Spamex, "MappingAttribute", [_t.ref`key`, _t.ref`mapToken`, _t.ref`value`], { | |
key: _t.node(_l.Spamex, "Literal", [_t.lit("balanced")], {}, {}), | |
mapToken: _t.s_i_node(_l.Spamex, "Punctuator", "="), | |
value: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit("}")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {}) | |
}, {})], | |
closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">") | |
}, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit("openToken")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {})], | |
closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")") | |
}, {}) | |
}, {}), _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], { | |
verb: _t.s_node(_l.Instruction, "Identifier", "eat"), | |
arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`values[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`values[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("), | |
values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"), | |
flags: _t.node(_l.CSTML, "Flags", [], {}, {}), | |
type: _t.s_node(_l.Spamex, "Identifier", "List"), | |
closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">") | |
}, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit("properties[]")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {}), _t.node(_l.Instruction, "Object", [_t.ref`openToken`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit("\n ")], {}, {})), _t.ref`properties[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit("\n ")], {}, {})), _t.ref`properties[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit("\n ")], {}, {})), _t.ref`properties[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit("\n ")], {}, {})), _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Instruction, "Punctuator", "{"), | |
properties: [_t.node(_l.Instruction, "Property", [_t.ref`key`, _t.ref`mapToken`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`value`], { | |
key: _t.node(_l.Instruction, "Literal", [_t.lit("element")], {}, {}), | |
mapToken: _t.s_i_node(_l.Instruction, "Punctuator", ":"), | |
value: _t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"), | |
flags: _t.node(_l.CSTML, "Flags", [], {}, {}), | |
type: _t.s_node(_l.Spamex, "Identifier", "Property"), | |
closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">") | |
}, {}) | |
}, {}), _t.node(_l.Instruction, "Property", [_t.ref`key`, _t.ref`mapToken`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`value`], { | |
key: _t.node(_l.Instruction, "Literal", [_t.lit("separator")], {}, {}), | |
mapToken: _t.s_i_node(_l.Instruction, "Punctuator", ":"), | |
value: _t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`intrinsicValue`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"), | |
flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], { | |
intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"), | |
tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*") | |
}, {}), | |
type: _t.s_node(_l.Spamex, "Identifier", "Punctuator"), | |
intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit(",")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {}), | |
closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">") | |
}, {}) | |
}, {}), _t.node(_l.Instruction, "Property", [_t.ref`key`, _t.ref`mapToken`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`value`], { | |
key: _t.node(_l.Instruction, "Literal", [_t.lit("allowTrailingSeparator")], {}, {}), | |
mapToken: _t.s_i_node(_l.Instruction, "Punctuator", ":"), | |
value: _t.node(_l.Instruction, "Boolean", [_t.ref`sigilToken`], { | |
sigilToken: _t.s_i_node(_l.Instruction, "Keyword", "false") | |
}, {}) | |
}, {})], | |
closeToken: _t.s_i_node(_l.Instruction, "Punctuator", "}") | |
}, {})], | |
closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")") | |
}, {}) | |
}, {}), _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], { | |
verb: _t.s_node(_l.Instruction, "Identifier", "eat"), | |
arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`values[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("), | |
values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`intrinsicValue`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`attributes[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"), | |
flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], { | |
intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"), | |
tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*") | |
}, {}), | |
type: _t.s_node(_l.Spamex, "Identifier", "Punctuator"), | |
intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit("}")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {}), | |
attributes: [_t.node(_l.Spamex, "BooleanAttribute", [_t.ref`key`], { | |
key: _t.node(_l.Spamex, "Literal", [_t.lit("balancer")], {}, {}) | |
}, {})], | |
closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">") | |
}, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit("closeToken")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {})], | |
closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")") | |
}, {}) | |
}, {}), _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], { | |
verb: _t.s_node(_l.Instruction, "Identifier", "eat"), | |
arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`values[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("), | |
values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"), | |
flags: _t.node(_l.CSTML, "Flags", [], {}, {}), | |
type: _t.s_node(_l.Spamex, "Identifier", "String"), | |
closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">") | |
}, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit("key")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {})], | |
closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")") | |
}, {}) | |
}, {}), _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], { | |
verb: _t.s_node(_l.Instruction, "Identifier", "eat"), | |
arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`values[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("), | |
values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`intrinsicValue`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"), | |
flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], { | |
intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"), | |
tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*") | |
}, {}), | |
type: _t.s_node(_l.Spamex, "Identifier", "Punctuator"), | |
intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit(":")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {}), | |
closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">") | |
}, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit("sigilToken")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {})], | |
closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")") | |
}, {}) | |
}, {}), _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], { | |
verb: _t.s_node(_l.Instruction, "Identifier", "eat"), | |
arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`values[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("), | |
values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"), | |
flags: _t.node(_l.CSTML, "Flags", [], {}, {}), | |
type: _t.s_node(_l.Spamex, "Identifier", "Expression"), | |
closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">") | |
}, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit("value")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {})], | |
closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")") | |
}, {}) | |
}, {}), _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], { | |
verb: _t.s_node(_l.Instruction, "Identifier", "eat"), | |
arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`values[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("), | |
values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`intrinsicValue`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`attributes[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`attributes[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"), | |
flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], { | |
intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"), | |
tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*") | |
}, {}), | |
type: _t.s_node(_l.Spamex, "Identifier", "Punctuator"), | |
intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit("\"")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {}), | |
attributes: [_t.node(_l.Spamex, "MappingAttribute", [_t.ref`key`, _t.ref`mapToken`, _t.ref`value`], { | |
key: _t.node(_l.Spamex, "Literal", [_t.lit("balanced")], {}, {}), | |
mapToken: _t.s_i_node(_l.Spamex, "Punctuator", "="), | |
value: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit("\"")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {}) | |
}, {}), _t.node(_l.Spamex, "MappingAttribute", [_t.ref`key`, _t.ref`mapToken`, _t.ref`value`], { | |
key: _t.node(_l.Spamex, "Literal", [_t.lit("balancedSpan")], {}, {}), | |
mapToken: _t.s_i_node(_l.Spamex, "Punctuator", "="), | |
value: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit("String")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {}) | |
}, {})], | |
closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">") | |
}, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit("openToken")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {})], | |
closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")") | |
}, {}) | |
}, {}), _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], { | |
verb: _t.s_node(_l.Instruction, "Identifier", "eat"), | |
arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`values[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("), | |
values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"), | |
flags: _t.node(_l.CSTML, "Flags", [_t.ref`tokenToken`], { | |
tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*") | |
}, {}), | |
type: _t.s_node(_l.Spamex, "Identifier", "StringContent"), | |
closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">") | |
}, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit("content")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {})], | |
closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")") | |
}, {}) | |
}, {}), _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], { | |
verb: _t.s_node(_l.Instruction, "Identifier", "eat"), | |
arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`values[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("), | |
values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`intrinsicValue`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`attributes[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"), | |
flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], { | |
intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"), | |
tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*") | |
}, {}), | |
type: _t.s_node(_l.Spamex, "Identifier", "Punctuator"), | |
intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit("\"")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {}), | |
attributes: [_t.node(_l.Spamex, "BooleanAttribute", [_t.ref`key`], { | |
key: _t.node(_l.Spamex, "Literal", [_t.lit("balancer")], {}, {}) | |
}, {})], | |
closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">") | |
}, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit("closeToken")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {})], | |
closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")") | |
}, {}) | |
}, {}), _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], { | |
verb: _t.s_node(_l.Instruction, "Identifier", "match"), | |
arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("), | |
values: [_t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.embedded(_t.s_e_node(_l.CSTML, "Escape", [_t.lit("\\\\")], {}, { | |
cooked: "\\" | |
}))], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {})], | |
closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")") | |
}, {}) | |
}, {}), _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], { | |
verb: _t.s_node(_l.Instruction, "Identifier", "eat"), | |
arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("), | |
values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"), | |
flags: _t.node(_l.CSTML, "Flags", [_t.ref`escapeToken`], { | |
escapeToken: _t.s_i_node(_l.CSTML, "Punctuator", "@") | |
}, {}), | |
type: _t.s_node(_l.Spamex, "Identifier", "EscapeSequence"), | |
closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">") | |
}, {})], | |
closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")") | |
}, {}) | |
}, {}), _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], { | |
verb: _t.s_node(_l.Instruction, "Identifier", "eatMatch"), | |
arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("), | |
values: [_t.node(_l.Regex, "Pattern", [_t.ref`openToken`, _t.ref`alternatives[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Regex, "Punctuator", "/"), | |
alternatives: [_t.node(_l.Regex, "Alternative", [_t.ref`elements[]`], { | |
elements: [_t.node(_l.Regex, "Quantifier", [_t.ref`element`, _t.ref`value`], { | |
element: _t.node(_l.Regex, "CharacterClass", [_t.ref`openToken`, _t.ref`negateToken`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Regex, "Punctuator", "["), | |
negateToken: _t.s_i_node(_l.Regex, "Keyword", "^"), | |
elements: [_t.node(_l.Regex, "Character", [_t.embedded(_t.s_e_node(_l.CSTML, "Escape", [_t.lit("\\r")], {}, { | |
cooked: "\r" | |
}))], {}, {}), _t.node(_l.Regex, "Character", [_t.embedded(_t.s_e_node(_l.CSTML, "Escape", [_t.lit("\\n")], {}, { | |
cooked: "\n" | |
}))], {}, {}), _t.node(_l.Regex, "Character", [_t.embedded(_t.s_e_node(_l.CSTML, "Escape", [_t.lit("\\\\")], {}, { | |
cooked: "\\" | |
}))], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("\"")], {}, {})], | |
closeToken: _t.s_i_node(_l.Regex, "Punctuator", "]") | |
}, { | |
negate: true | |
}), | |
value: _t.s_i_node(_l.Regex, "Keyword", "+") | |
}, { | |
min: 1, | |
max: Infinity, | |
greedy: true | |
})] | |
}, {})], | |
closeToken: _t.s_i_node(_l.Regex, "Punctuator", "/") | |
}, {})], | |
closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")") | |
}, {}) | |
}, {}), _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], { | |
verb: _t.s_node(_l.Instruction, "Identifier", "fail"), | |
arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("), | |
closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")") | |
}, {}) | |
}, {}), _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], { | |
verb: _t.s_node(_l.Instruction, "Identifier", "eat"), | |
arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`values[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("), | |
values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`intrinsicValue`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`attributes[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"), | |
flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], { | |
intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"), | |
tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*") | |
}, {}), | |
type: _t.s_node(_l.Spamex, "Identifier", "Punctuator"), | |
intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.embedded(_t.s_e_node(_l.CSTML, "Escape", [_t.lit("\\\\")], {}, { | |
cooked: "\\" | |
}))], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {}), | |
attributes: [_t.node(_l.Spamex, "MappingAttribute", [_t.ref`key`, _t.ref`mapToken`, _t.ref`value`], { | |
key: _t.node(_l.Spamex, "Literal", [_t.lit("openSpan")], {}, {}), | |
mapToken: _t.s_i_node(_l.Spamex, "Punctuator", "="), | |
value: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit("Escape")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {}) | |
}, {})], | |
closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">") | |
}, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit("sigilToken")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {})], | |
closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")") | |
}, {}) | |
}, {}), _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], { | |
verb: _t.s_node(_l.Instruction, "Identifier", "match"), | |
arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("), | |
values: [_t.node(_l.Regex, "Pattern", [_t.ref`openToken`, _t.ref`alternatives[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Regex, "Punctuator", "/"), | |
alternatives: [_t.node(_l.Regex, "Alternative", [_t.ref`elements[]`], { | |
elements: [_t.node(_l.Regex, "CharacterClass", [_t.ref`openToken`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Regex, "Punctuator", "["), | |
elements: [_t.node(_l.Regex, "Character", [_t.embedded(_t.s_e_node(_l.CSTML, "Escape", [_t.lit("\\\\")], {}, { | |
cooked: "\\" | |
}))], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("/")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("b")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("f")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("n")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("r")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("t")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("\"")], {}, {})], | |
closeToken: _t.s_i_node(_l.Regex, "Punctuator", "]") | |
}, { | |
negate: false | |
})] | |
}, {})], | |
closeToken: _t.s_i_node(_l.Regex, "Punctuator", "/") | |
}, {})], | |
closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")") | |
}, {}) | |
}, {}), _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], { | |
verb: _t.s_node(_l.Instruction, "Identifier", "match"), | |
arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("), | |
values: [_t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit("u")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {})], | |
closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")") | |
}, {}) | |
}, {}), _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], { | |
verb: _t.s_node(_l.Instruction, "Identifier", "eat"), | |
arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`values[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("), | |
values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`attributes[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"), | |
flags: _t.node(_l.CSTML, "Flags", [], {}, {}), | |
type: _t.s_node(_l.Spamex, "Identifier", "EscapeCode"), | |
attributes: [_t.node(_l.Spamex, "MappingAttribute", [_t.ref`key`, _t.ref`mapToken`, _t.ref`value`], { | |
key: _t.node(_l.Spamex, "Literal", [_t.lit("closeSpan")], {}, {}), | |
mapToken: _t.s_i_node(_l.Spamex, "Punctuator", "="), | |
value: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit("Escape")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {}) | |
}, {})], | |
closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">") | |
}, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit("value")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {})], | |
closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")") | |
}, {}) | |
}, {}), _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], { | |
verb: _t.s_node(_l.Instruction, "Identifier", "eat"), | |
arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`values[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("), | |
values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`intrinsicValue`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"), | |
flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], { | |
intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"), | |
tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*") | |
}, {}), | |
type: _t.s_node(_l.Spamex, "Identifier", "Keyword"), | |
intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit("u")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {}), | |
closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">") | |
}, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit("typeToken")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {})], | |
closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")") | |
}, {}) | |
}, {}), _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], { | |
verb: _t.s_node(_l.Instruction, "Identifier", "eat"), | |
arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`values[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("), | |
values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"), | |
flags: _t.node(_l.CSTML, "Flags", [], {}, {}), | |
type: _t.s_node(_l.Spamex, "Identifier", "Digits"), | |
closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">") | |
}, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit("digits[]")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {})], | |
closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")") | |
}, {}) | |
}, {}), _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], { | |
verb: _t.s_node(_l.Instruction, "Identifier", "eat"), | |
arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`values[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`values[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("), | |
values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"), | |
flags: _t.node(_l.CSTML, "Flags", [], {}, {}), | |
type: _t.s_node(_l.Spamex, "Identifier", "Integer"), | |
closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">") | |
}, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit("wholePart")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {}), _t.node(_l.Instruction, "Object", [_t.ref`openToken`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`properties[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`properties[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Instruction, "Punctuator", "{"), | |
properties: [_t.node(_l.Instruction, "Property", [_t.ref`key`, _t.ref`mapToken`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`value`], { | |
key: _t.node(_l.Instruction, "Literal", [_t.lit("noDoubleZero")], {}, {}), | |
mapToken: _t.s_i_node(_l.Instruction, "Punctuator", ":"), | |
value: _t.node(_l.Instruction, "Boolean", [_t.ref`sigilToken`], { | |
sigilToken: _t.s_i_node(_l.Instruction, "Keyword", "true") | |
}, {}) | |
}, {}), _t.node(_l.Instruction, "Property", [_t.ref`key`, _t.ref`mapToken`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`value`], { | |
key: _t.node(_l.Instruction, "Literal", [_t.lit("matchSign")], {}, {}), | |
mapToken: _t.s_i_node(_l.Instruction, "Punctuator", ":"), | |
value: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit("-")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {}) | |
}, {})], | |
closeToken: _t.s_i_node(_l.Instruction, "Punctuator", "}") | |
}, {})], | |
closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")") | |
}, {}) | |
}, {}), _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], { | |
verb: _t.s_node(_l.Instruction, "Identifier", "eatMatch"), | |
arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`values[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("), | |
values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`intrinsicValue`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"), | |
flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], { | |
intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"), | |
tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*") | |
}, {}), | |
type: _t.s_node(_l.Spamex, "Identifier", "Punctuator"), | |
intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit(".")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {}), | |
closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">") | |
}, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit("fractionalSeparatorToken")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {})], | |
closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")") | |
}, {}) | |
}, {}), _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], { | |
verb: _t.s_node(_l.Instruction, "Identifier", "eat"), | |
arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`values[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("), | |
values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"), | |
flags: _t.node(_l.CSTML, "Flags", [], {}, {}), | |
type: _t.s_node(_l.Spamex, "Identifier", "Integer"), | |
closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">") | |
}, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit("fractionalPart")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {})], | |
closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")") | |
}, {}) | |
}, {}), _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], { | |
verb: _t.s_node(_l.Instruction, "Identifier", "eat"), | |
arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`values[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("), | |
values: [_t.node(_l.Instruction, "Null", [_t.ref`sigilToken`], { | |
sigilToken: _t.s_i_node(_l.Instruction, "Keyword", "null") | |
}, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit("fractionalPart")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {})], | |
closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")") | |
}, {}) | |
}, {}), _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], { | |
verb: _t.s_node(_l.Instruction, "Identifier", "eatMatch"), | |
arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`values[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("), | |
values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`intrinsicValue`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"), | |
flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], { | |
intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"), | |
tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*") | |
}, {}), | |
type: _t.s_node(_l.Spamex, "Identifier", "Punctuator"), | |
intrinsicValue: _t.node(_l.Regex, "Pattern", [_t.ref`openToken`, _t.ref`alternatives[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Regex, "Punctuator", "/"), | |
alternatives: [_t.node(_l.Regex, "Alternative", [_t.ref`elements[]`], { | |
elements: [_t.node(_l.Regex, "CharacterClass", [_t.ref`openToken`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Regex, "Punctuator", "["), | |
elements: [_t.node(_l.Regex, "Character", [_t.lit("e")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("E")], {}, {})], | |
closeToken: _t.s_i_node(_l.Regex, "Punctuator", "]") | |
}, { | |
negate: false | |
})] | |
}, {})], | |
closeToken: _t.s_i_node(_l.Regex, "Punctuator", "/") | |
}, {}), | |
closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">") | |
}, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit("exponentSeparatorToken")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {})], | |
closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")") | |
}, {}) | |
}, {}), _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], { | |
verb: _t.s_node(_l.Instruction, "Identifier", "eat"), | |
arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`values[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`values[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("), | |
values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"), | |
flags: _t.node(_l.CSTML, "Flags", [], {}, {}), | |
type: _t.s_node(_l.Spamex, "Identifier", "Integer"), | |
closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">") | |
}, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit("exponentPart")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {}), _t.node(_l.Instruction, "Object", [_t.ref`openToken`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`properties[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Instruction, "Punctuator", "{"), | |
properties: [_t.node(_l.Instruction, "Property", [_t.ref`key`, _t.ref`mapToken`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`value`], { | |
key: _t.node(_l.Instruction, "Literal", [_t.lit("matchSign")], {}, {}), | |
mapToken: _t.s_i_node(_l.Instruction, "Punctuator", ":"), | |
value: _t.node(_l.Regex, "Pattern", [_t.ref`openToken`, _t.ref`alternatives[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Regex, "Punctuator", "/"), | |
alternatives: [_t.node(_l.Regex, "Alternative", [_t.ref`elements[]`], { | |
elements: [_t.node(_l.Regex, "CharacterClass", [_t.ref`openToken`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Regex, "Punctuator", "["), | |
elements: [_t.node(_l.Regex, "Character", [_t.lit("+")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("-")], {}, {})], | |
closeToken: _t.s_i_node(_l.Regex, "Punctuator", "]") | |
}, { | |
negate: false | |
})] | |
}, {})], | |
closeToken: _t.s_i_node(_l.Regex, "Punctuator", "/") | |
}, {}) | |
}, {})], | |
closeToken: _t.s_i_node(_l.Instruction, "Punctuator", "}") | |
}, {})], | |
closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")") | |
}, {}) | |
}, {}), _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], { | |
verb: _t.s_node(_l.Instruction, "Identifier", "eat"), | |
arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`values[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("), | |
values: [_t.node(_l.Instruction, "Null", [_t.ref`sigilToken`], { | |
sigilToken: _t.s_i_node(_l.Instruction, "Keyword", "null") | |
}, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit("exponentPart")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {})], | |
closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")") | |
}, {}) | |
}, {}), _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], { | |
verb: _t.s_node(_l.Instruction, "Identifier", "eat"), | |
arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`values[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("), | |
values: [_t.node(_l.Instruction, "Null", [_t.ref`sigilToken`], { | |
sigilToken: _t.s_i_node(_l.Instruction, "Keyword", "null") | |
}, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit("signToken")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {})], | |
closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")") | |
}, {}) | |
}, {}), _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], { | |
verb: _t.s_node(_l.Instruction, "Identifier", "eatMatch"), | |
arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("), | |
values: [_t.node(_l.Regex, "Pattern", [_t.ref`openToken`, _t.ref`alternatives[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Regex, "Punctuator", "/"), | |
alternatives: [_t.node(_l.Regex, "Alternative", [_t.ref`elements[]`], { | |
elements: [_t.node(_l.Regex, "Quantifier", [_t.ref`element`, _t.ref`value`], { | |
element: _t.node(_l.Regex, "DigitCharacterSet", [_t.ref`escapeToken`, _t.ref`value`], { | |
escapeToken: _t.s_i_node(_l.Regex, "Punctuator", "\\"), | |
value: _t.s_i_node(_l.Regex, "Keyword", "d") | |
}, {}), | |
value: _t.s_i_node(_l.Regex, "Keyword", "+") | |
}, { | |
min: 1, | |
max: Infinity, | |
greedy: true | |
})] | |
}, {})], | |
closeToken: _t.s_i_node(_l.Regex, "Punctuator", "/") | |
}, {})], | |
closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")") | |
}, {}) | |
}, {}), _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], { | |
verb: _t.s_node(_l.Instruction, "Identifier", "eat"), | |
arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`values[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("), | |
values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`intrinsicValue`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"), | |
flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], { | |
intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"), | |
tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*") | |
}, {}), | |
type: _t.s_node(_l.Spamex, "Identifier", "Keyword"), | |
intrinsicValue: _t.node(_l.Regex, "Pattern", [_t.ref`openToken`, _t.ref`alternatives[]`, _t.ref`separators[]`, _t.ref`alternatives[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Regex, "Punctuator", "/"), | |
alternatives: [_t.node(_l.Regex, "Alternative", [_t.ref`elements[]`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`elements[]`], { | |
elements: [_t.node(_l.Regex, "Character", [_t.lit("t")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("r")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("u")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("e")], {}, {})] | |
}, {}), _t.node(_l.Regex, "Alternative", [_t.ref`elements[]`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`elements[]`], { | |
elements: [_t.node(_l.Regex, "Character", [_t.lit("f")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("a")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("l")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("s")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("e")], {}, {})] | |
}, {})], | |
separators: [_t.s_i_node(_l.Regex, "Punctuator", "|")], | |
closeToken: _t.s_i_node(_l.Regex, "Punctuator", "/") | |
}, {}), | |
closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">") | |
}, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit("sigilToken")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {})], | |
closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")") | |
}, {}) | |
}, {}), _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], { | |
verb: _t.s_node(_l.Instruction, "Identifier", "eat"), | |
arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`values[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("), | |
values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`intrinsicValue`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"), | |
flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], { | |
intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"), | |
tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*") | |
}, {}), | |
type: _t.s_node(_l.Spamex, "Identifier", "Keyword"), | |
intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit("null")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {}), | |
closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">") | |
}, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit("sigilToken")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {})], | |
closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")") | |
}, {}) | |
}, {}), _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], { | |
verb: _t.s_node(_l.Instruction, "Identifier", "eat"), | |
arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("), | |
values: [_t.node(_l.Regex, "Pattern", [_t.ref`openToken`, _t.ref`alternatives[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Regex, "Punctuator", "/"), | |
alternatives: [_t.node(_l.Regex, "Alternative", [_t.ref`elements[]`], { | |
elements: [_t.node(_l.Regex, "Quantifier", [_t.ref`element`, _t.ref`value`], { | |
element: _t.node(_l.Regex, "CharacterClass", [_t.ref`openToken`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Regex, "Punctuator", "["), | |
elements: [_t.node(_l.Regex, "Character", [_t.lit(" ")], {}, {}), _t.node(_l.Regex, "Character", [_t.embedded(_t.s_e_node(_l.CSTML, "Escape", [_t.lit("\\t")], {}, { | |
cooked: "\t" | |
}))], {}, {}), _t.node(_l.Regex, "Character", [_t.embedded(_t.s_e_node(_l.CSTML, "Escape", [_t.lit("\\r")], {}, { | |
cooked: "\r" | |
}))], {}, {}), _t.node(_l.Regex, "Character", [_t.embedded(_t.s_e_node(_l.CSTML, "Escape", [_t.lit("\\n")], {}, { | |
cooked: "\n" | |
}))], {}, {})], | |
closeToken: _t.s_i_node(_l.Regex, "Punctuator", "]") | |
}, { | |
negate: false | |
}), | |
value: _t.s_i_node(_l.Regex, "Keyword", "+") | |
}, { | |
min: 1, | |
max: Infinity, | |
greedy: true | |
})] | |
}, {})], | |
closeToken: _t.s_i_node(_l.Regex, "Punctuator", "/") | |
}, {})], | |
closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")") | |
}, {}) | |
}, {})]; | |
export const grammar = triviaEnhancer({ | |
triviaIsAllowed: s => s.span === 'Bare', | |
*eatMatchTrivia() { | |
if (yield s[0]) { | |
yield s[1]; | |
} | |
} | |
}, class JSONGrammar { | |
static { | |
[_initProto] = _applyDecs(this, [[_ExpressionDecs, 2, "Expression"], [_ArrayDecs, 2, "Array"], [_ObjectDecs, 2, "Object"], [Node, 2, "Property"], [_StringDecs, 2, "String"], [[AllowEmpty, Node], 2, "StringContent"], [_EscapeSequenceDecs, 2, "EscapeSequence"], [Node, 2, "EscapeCode"], [_NumberDecs, 2, "Number"], [Node, 2, "Integer"], [Node, 2, "UnsignedInteger"], [_BooleanDecs, 2, "Boolean"], [_NullDecs, 2, "Null"], [Node, 2, "Space"], [_KeywordDecs, 2, "Keyword"], [_PunctuatorDecs, 2, "Punctuator"], [_ListDecs, 2, "List"], [_AnyDecs, 2, "Any"]], []).e; | |
} | |
constructor() { | |
_initProto(this); | |
} | |
*[(_ExpressionDecs = CoveredBy('Element'), _ArrayDecs = [CoveredBy('Expression'), Node], _ObjectDecs = [CoveredBy('Expression'), Node], _StringDecs = [CoveredBy('Language'), Node], _EscapeSequenceDecs = [Attributes(['cooked']), Node], _NumberDecs = [CoveredBy('Expression'), Node], _BooleanDecs = [CoveredBy('Expression'), Node], _NullDecs = [CoveredBy('Expression'), Node], _KeywordDecs = [Node, InjectFrom(productions)], _PunctuatorDecs = [Node, InjectFrom(productions)], _ListDecs = [AllowEmpty, InjectFrom(productions)], _AnyDecs = InjectFrom(productions), Symbol.for('@bablr/fragment'))]() { | |
yield s[2]; | |
} | |
*Expression() { | |
yield s[3]; | |
} | |
*Array() { | |
yield s[4]; | |
yield s[5]; | |
yield s[6]; | |
} | |
*Object() { | |
yield s[7]; | |
yield s[8]; | |
yield s[9]; | |
} | |
*Property() { | |
yield s[10]; | |
yield s[11]; | |
yield s[12]; | |
} | |
*String() { | |
yield s[13]; | |
yield s[14]; | |
yield s[15]; | |
} | |
*StringContent() { | |
let esc, lit; | |
do { | |
esc = (yield s[16]) && (yield s[17]); | |
lit = yield s[18]; | |
} while (esc || lit); | |
} | |
*EscapeSequence({ | |
state: { | |
span | |
}, | |
ctx | |
}) { | |
if (!span.startsWith('String')) { | |
yield s[19]; | |
} | |
yield s[20]; | |
let match, cooked; | |
if (match = yield s[21]) { | |
const match_ = ctx.sourceTextFor(match); | |
yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], { | |
verb: _t.s_node(_l.Instruction, "Identifier", "eat"), | |
arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`values[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("), | |
values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`intrinsicValue`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`attributes[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"), | |
flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], { | |
intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"), | |
tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*") | |
}, {}), | |
type: _t.s_node(_l.Spamex, "Identifier", "Keyword"), | |
intrinsicValue: buildString(match_), | |
attributes: [_t.node(_l.Spamex, "MappingAttribute", [_t.ref`key`, _t.ref`mapToken`, _t.ref`value`], { | |
key: _t.node(_l.Spamex, "Literal", [_t.lit("closeSpan")], {}, {}), | |
mapToken: _t.s_i_node(_l.Spamex, "Punctuator", "="), | |
value: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit("Escape")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {}) | |
}, {})], | |
closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">") | |
}, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit("value")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {})], | |
closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")") | |
}, {}) | |
}, {}); | |
cooked = escapables.get(match_) || match_; | |
} else if (yield s[22]) { | |
const codeNode = yield s[23]; | |
cooked = parseInt(codeNode.properties.digits.map(digit => ctx.sourceTextFor(digit)).join(''), 16); | |
} else { | |
yield s[19]; | |
} | |
yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], { | |
verb: _t.s_node(_l.Instruction, "Identifier", "bindAttribute"), | |
arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), ..._interpolateArrayChildren(buildString(cooked.toString(10)), _t.ref`values[]`, _t.embedded(_t.t_node(_l.Comment, null, [_t.embedded(_t.t_node('Space', 'Space', [_t.lit(' ')]))]))), _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("), | |
values: [_t.s_node(_l.Instruction, "Identifier", "cooked"), ..._interpolateArray(buildString(cooked.toString(10)))], | |
closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")") | |
}, {}) | |
}, {}); | |
} | |
*EscapeCode() { | |
yield s[24]; | |
yield s[25]; | |
} | |
*Number() { | |
yield s[26]; | |
let fs = yield s[27]; | |
if (fs) { | |
yield s[28]; | |
} else { | |
yield s[29]; | |
} | |
let es = yield s[30]; | |
if (es) { | |
yield s[31]; | |
} else { | |
yield s[32]; | |
} | |
} | |
*Integer({ | |
value: props, | |
ctx | |
}) { | |
const { | |
matchSign = null, | |
noDoubleZero = false | |
} = props && ctx.unbox(props) || {}; | |
if (matchSign) { | |
yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], { | |
verb: _t.s_node(_l.Instruction, "Identifier", "eatMatch"), | |
arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`values[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("), | |
values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`intrinsicValue`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"), | |
flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], { | |
intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"), | |
tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*") | |
}, {}), | |
type: _t.s_node(_l.Spamex, "Identifier", "Punctuator"), | |
intrinsicValue: matchSign, | |
closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">") | |
}, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit("signToken")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {})], | |
closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")") | |
}, {}) | |
}, {}); | |
} else { | |
yield s[33]; | |
} | |
yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], { | |
verb: _t.s_node(_l.Instruction, "Identifier", "eat"), | |
arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`values[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("), | |
values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`attributes[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"), | |
flags: _t.node(_l.CSTML, "Flags", [_t.ref`tokenToken`], { | |
tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*") | |
}, {}), | |
type: _t.s_node(_l.Spamex, "Identifier", "UnsignedInteger"), | |
attributes: [_t.node(_l.Spamex, "MappingAttribute", [_t.ref`key`, _t.ref`mapToken`, _t.ref`value`], { | |
key: _t.node(_l.Spamex, "Literal", [_t.lit("noDoubleZero")], {}, {}), | |
mapToken: _t.s_i_node(_l.Spamex, "Punctuator", "="), | |
value: buildBoolean(noDoubleZero) | |
}, {})], | |
closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">") | |
}, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"), | |
content: _t.node(_l.CSTML, "Content", [_t.lit("value")], {}, {}), | |
closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'") | |
}, {})], | |
closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")") | |
}, {}) | |
}, {}); | |
} | |
*UnsignedInteger({ | |
value: props, | |
ctx | |
}) { | |
const { | |
noDoubleZero = false | |
} = props && ctx.unbox(props) || {}; | |
let [firstDigit] = ctx.allTerminalsFor(yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], { | |
verb: _t.s_node(_l.Instruction, "Identifier", "eat"), | |
arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("), | |
values: [_t.node(_l.Regex, "Pattern", [_t.ref`openToken`, _t.ref`alternatives[]`, _t.ref`closeToken`], { | |
openToken: _t.s_i_node(_l.Regex, "Punctuator", "/"), | |
alternatives: [_t.node(_l.Regex, "Alternative", [_t.ref`elements[]`], { | |
elements: [_t.node(_l.Regex, "DigitCharacterSet", [_t.ref`escapeToken`, _t.ref`value`], { | |
escapeToken: _t.s_i_node(_l.Regex, "Punctuator", "\\"), | |
value: _t.s_i_node(_l.Regex, "Keyword", "d") | |
}, {})] | |
}, {})], | |
closeToken: _t.s_i_node(_l.Regex, "Punctuator", "/") | |
}, {})], | |
closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")") | |
}, {}) | |
}, {})); | |
if (!noDoubleZero || firstDigit.value !== '0') { | |
yield s[34]; | |
} | |
} | |
*Boolean() { | |
yield s[35]; | |
} | |
*Null() { | |
yield s[36]; | |
} | |
*Space() { | |
yield s[37]; | |
} | |
*Keyword() {} | |
*Punctuator() {} | |
*List() {} | |
*Any() {} | |
}); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[ | |
{ | |
"type": "declaration", | |
"named": true, | |
"subtypes": [ | |
{ | |
"type": "abstract_class_declaration", | |
"named": true | |
}, | |
{ | |
"type": "ambient_declaration", | |
"named": true | |
}, | |
{ | |
"type": "class_declaration", | |
"named": true | |
}, | |
{ | |
"type": "enum_declaration", | |
"named": true | |
}, | |
{ | |
"type": "function_declaration", | |
"named": true | |
}, | |
{ | |
"type": "function_signature", | |
"named": true | |
}, | |
{ | |
"type": "generator_function_declaration", | |
"named": true | |
}, | |
{ | |
"type": "import_alias", | |
"named": true | |
}, | |
{ | |
"type": "interface_declaration", | |
"named": true | |
}, | |
{ | |
"type": "internal_module", | |
"named": true | |
}, | |
{ | |
"type": "lexical_declaration", | |
"named": true | |
}, | |
{ | |
"type": "module", | |
"named": true | |
}, | |
{ | |
"type": "type_alias_declaration", | |
"named": true | |
}, | |
{ | |
"type": "variable_declaration", | |
"named": true | |
} | |
] | |
}, | |
{ | |
"type": "expression", | |
"named": true, | |
"subtypes": [ | |
{ | |
"type": "as_expression", | |
"named": true | |
}, | |
{ | |
"type": "assignment_expression", | |
"named": true | |
}, | |
{ | |
"type": "augmented_assignment_expression", | |
"named": true | |
}, | |
{ | |
"type": "await_expression", | |
"named": true | |
}, | |
{ | |
"type": "binary_expression", | |
"named": true | |
}, | |
{ | |
"type": "glimmer_template", | |
"named": true | |
}, | |
{ | |
"type": "instantiation_expression", | |
"named": true | |
}, | |
{ | |
"type": "internal_module", | |
"named": true | |
}, | |
{ | |
"type": "new_expression", | |
"named": true | |
}, | |
{ | |
"type": "primary_expression", | |
"named": true | |
}, | |
{ | |
"type": "satisfies_expression", | |
"named": true | |
}, | |
{ | |
"type": "ternary_expression", | |
"named": true | |
}, | |
{ | |
"type": "type_assertion", | |
"named": true | |
}, | |
{ | |
"type": "unary_expression", | |
"named": true | |
}, | |
{ | |
"type": "update_expression", | |
"named": true | |
}, | |
{ | |
"type": "yield_expression", | |
"named": true | |
} | |
] | |
}, | |
{ | |
"type": "pattern", | |
"named": true, | |
"subtypes": [ | |
{ | |
"type": "array_pattern", | |
"named": true | |
}, | |
{ | |
"type": "identifier", | |
"named": true | |
}, | |
{ | |
"type": "member_expression", | |
"named": true | |
}, | |
{ | |
"type": "non_null_expression", | |
"named": true | |
}, | |
{ | |
"type": "object_pattern", | |
"named": true | |
}, | |
{ | |
"type": "rest_pattern", | |
"named": true | |
}, | |
{ | |
"type": "subscript_expression", | |
"named": true | |
}, | |
{ | |
"type": "undefined", | |
"named": true | |
} | |
] | |
}, | |
{ | |
"type": "primary_expression", | |
"named": true, | |
"subtypes": [ | |
{ | |
"type": "array", | |
"named": true | |
}, | |
{ | |
"type": "arrow_function", | |
"named": true | |
}, | |
{ | |
"type": "call_expression", | |
"named": true | |
}, | |
{ | |
"type": "class", | |
"named": true | |
}, | |
{ | |
"type": "false", | |
"named": true | |
}, | |
{ | |
"type": "function_expression", | |
"named": true | |
}, | |
{ | |
"type": "generator_function", | |
"named": true | |
}, | |
{ | |
"type": "identifier", | |
"named": true | |
}, | |
{ | |
"type": "member_expression", | |
"named": true | |
}, | |
{ | |
"type": "meta_property", | |
"named": true | |
}, | |
{ | |
"type": "non_null_expression", | |
"named": true | |
}, | |
{ | |
"type": "null", | |
"named": true | |
}, | |
{ | |
"type": "number", | |
"named": true | |
}, | |
{ | |
"type": "object", | |
"named": true | |
}, | |
{ | |
"type": "parenthesized_expression", | |
"named": true | |
}, | |
{ | |
"type": "regex", | |
"named": true | |
}, | |
{ | |
"type": "string", | |
"named": true | |
}, | |
{ | |
"type": "subscript_expression", | |
"named": true | |
}, | |
{ | |
"type": "super", | |
"named": true | |
}, | |
{ | |
"type": "template_string", | |
"named": true | |
}, | |
{ | |
"type": "this", | |
"named": true | |
}, | |
{ | |
"type": "true", | |
"named": true | |
}, | |
{ | |
"type": "undefined", | |
"named": true | |
} | |
] | |
}, | |
{ | |
"type": "primary_type", | |
"named": true, | |
"subtypes": [ | |
{ | |
"type": "array_type", | |
"named": true | |
}, | |
{ | |
"type": "conditional_type", | |
"named": true | |
}, | |
{ | |
"type": "const", | |
"named": false | |
}, | |
{ | |
"type": "existential_type", | |
"named": true | |
}, | |
{ | |
"type": "flow_maybe_type", | |
"named": true | |
}, | |
{ | |
"type": "generic_type", | |
"named": true | |
}, | |
{ | |
"type": "index_type_query", | |
"named": true | |
}, | |
{ | |
"type": "intersection_type", | |
"named": true | |
}, | |
{ | |
"type": "literal_type", | |
"named": true | |
}, | |
{ | |
"type": "lookup_type", | |
"named": true | |
}, | |
{ | |
"type": "nested_type_identifier", | |
"named": true | |
}, | |
{ | |
"type": "object_type", | |
"named": true | |
}, | |
{ | |
"type": "parenthesized_type", | |
"named": true | |
}, | |
{ | |
"type": "predefined_type", | |
"named": true | |
}, | |
{ | |
"type": "template_literal_type", | |
"named": true | |
}, | |
{ | |
"type": "this_type", | |
"named": true | |
}, | |
{ | |
"type": "tuple_type", | |
"named": true | |
}, | |
{ | |
"type": "type_identifier", | |
"named": true | |
}, | |
{ | |
"type": "type_query", | |
"named": true | |
}, | |
{ | |
"type": "union_type", | |
"named": true | |
} | |
] | |
}, | |
{ | |
"type": "statement", | |
"named": true, | |
"subtypes": [ | |
{ | |
"type": "break_statement", | |
"named": true | |
}, | |
{ | |
"type": "continue_statement", | |
"named": true | |
}, | |
{ | |
"type": "debugger_statement", | |
"named": true | |
}, | |
{ | |
"type": "declaration", | |
"named": true | |
}, | |
{ | |
"type": "do_statement", | |
"named": true | |
}, | |
{ | |
"type": "empty_statement", | |
"named": true | |
}, | |
{ | |
"type": "export_statement", | |
"named": true | |
}, | |
{ | |
"type": "expression_statement", | |
"named": true | |
}, | |
{ | |
"type": "for_in_statement", | |
"named": true | |
}, | |
{ | |
"type": "for_statement", | |
"named": true | |
}, | |
{ | |
"type": "if_statement", | |
"named": true | |
}, | |
{ | |
"type": "import_statement", | |
"named": true | |
}, | |
{ | |
"type": "labeled_statement", | |
"named": true | |
}, | |
{ | |
"type": "return_statement", | |
"named": true | |
}, | |
{ | |
"type": "statement_block", | |
"named": true | |
}, | |
{ | |
"type": "switch_statement", | |
"named": true | |
}, | |
{ | |
"type": "throw_statement", | |
"named": true | |
}, | |
{ | |
"type": "try_statement", | |
"named": true | |
}, | |
{ | |
"type": "while_statement", | |
"named": true | |
}, | |
{ | |
"type": "with_statement", | |
"named": true | |
} | |
] | |
}, | |
{ | |
"type": "type", | |
"named": true, | |
"subtypes": [ | |
{ | |
"type": "call_expression", | |
"named": true | |
}, | |
{ | |
"type": "constructor_type", | |
"named": true | |
}, | |
{ | |
"type": "function_type", | |
"named": true | |
}, | |
{ | |
"type": "infer_type", | |
"named": true | |
}, | |
{ | |
"type": "member_expression", | |
"named": true | |
}, | |
{ | |
"type": "primary_type", | |
"named": true | |
}, | |
{ | |
"type": "readonly_type", | |
"named": true | |
} | |
] | |
}, | |
{ | |
"type": "abstract_class_declaration", | |
"named": true, | |
"fields": { | |
"body": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "class_body", | |
"named": true | |
} | |
] | |
}, | |
"decorator": { | |
"multiple": true, | |
"required": false, | |
"types": [ | |
{ | |
"type": "decorator", | |
"named": true | |
} | |
] | |
}, | |
"name": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "type_identifier", | |
"named": true | |
} | |
] | |
}, | |
"type_parameters": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "type_parameters", | |
"named": true | |
} | |
] | |
} | |
}, | |
"children": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "class_heritage", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "abstract_method_signature", | |
"named": true, | |
"fields": { | |
"name": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "computed_property_name", | |
"named": true | |
}, | |
{ | |
"type": "number", | |
"named": true | |
}, | |
{ | |
"type": "private_property_identifier", | |
"named": true | |
}, | |
{ | |
"type": "property_identifier", | |
"named": true | |
}, | |
{ | |
"type": "string", | |
"named": true | |
} | |
] | |
}, | |
"parameters": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "formal_parameters", | |
"named": true | |
} | |
] | |
}, | |
"return_type": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "asserts_annotation", | |
"named": true | |
}, | |
{ | |
"type": "type_annotation", | |
"named": true | |
}, | |
{ | |
"type": "type_predicate_annotation", | |
"named": true | |
} | |
] | |
}, | |
"type_parameters": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "type_parameters", | |
"named": true | |
} | |
] | |
} | |
}, | |
"children": { | |
"multiple": true, | |
"required": false, | |
"types": [ | |
{ | |
"type": "accessibility_modifier", | |
"named": true | |
}, | |
{ | |
"type": "override_modifier", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "accessibility_modifier", | |
"named": true, | |
"fields": {} | |
}, | |
{ | |
"type": "adding_type_annotation", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "type", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "ambient_declaration", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": true, | |
"required": true, | |
"types": [ | |
{ | |
"type": "declaration", | |
"named": true | |
}, | |
{ | |
"type": "property_identifier", | |
"named": true | |
}, | |
{ | |
"type": "statement_block", | |
"named": true | |
}, | |
{ | |
"type": "type", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "arguments", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": true, | |
"required": false, | |
"types": [ | |
{ | |
"type": "expression", | |
"named": true | |
}, | |
{ | |
"type": "spread_element", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "array", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": true, | |
"required": false, | |
"types": [ | |
{ | |
"type": "expression", | |
"named": true | |
}, | |
{ | |
"type": "spread_element", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "array_pattern", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": true, | |
"required": false, | |
"types": [ | |
{ | |
"type": "assignment_pattern", | |
"named": true | |
}, | |
{ | |
"type": "pattern", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "array_type", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "primary_type", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "arrow_function", | |
"named": true, | |
"fields": { | |
"body": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "expression", | |
"named": true | |
}, | |
{ | |
"type": "statement_block", | |
"named": true | |
} | |
] | |
}, | |
"parameter": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "identifier", | |
"named": true | |
} | |
] | |
}, | |
"parameters": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "formal_parameters", | |
"named": true | |
} | |
] | |
}, | |
"return_type": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "asserts_annotation", | |
"named": true | |
}, | |
{ | |
"type": "type_annotation", | |
"named": true | |
}, | |
{ | |
"type": "type_predicate_annotation", | |
"named": true | |
} | |
] | |
}, | |
"type_parameters": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "type_parameters", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "as_expression", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": true, | |
"required": true, | |
"types": [ | |
{ | |
"type": "expression", | |
"named": true | |
}, | |
{ | |
"type": "type", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "asserts", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "identifier", | |
"named": true | |
}, | |
{ | |
"type": "this", | |
"named": true | |
}, | |
{ | |
"type": "type_predicate", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "asserts_annotation", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "asserts", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "assignment_expression", | |
"named": true, | |
"fields": { | |
"left": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "array_pattern", | |
"named": true | |
}, | |
{ | |
"type": "identifier", | |
"named": true | |
}, | |
{ | |
"type": "member_expression", | |
"named": true | |
}, | |
{ | |
"type": "non_null_expression", | |
"named": true | |
}, | |
{ | |
"type": "object_pattern", | |
"named": true | |
}, | |
{ | |
"type": "parenthesized_expression", | |
"named": true | |
}, | |
{ | |
"type": "subscript_expression", | |
"named": true | |
}, | |
{ | |
"type": "undefined", | |
"named": true | |
} | |
] | |
}, | |
"right": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "expression", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "assignment_pattern", | |
"named": true, | |
"fields": { | |
"left": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "pattern", | |
"named": true | |
} | |
] | |
}, | |
"right": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "expression", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "augmented_assignment_expression", | |
"named": true, | |
"fields": { | |
"left": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "identifier", | |
"named": true | |
}, | |
{ | |
"type": "member_expression", | |
"named": true | |
}, | |
{ | |
"type": "non_null_expression", | |
"named": true | |
}, | |
{ | |
"type": "parenthesized_expression", | |
"named": true | |
}, | |
{ | |
"type": "subscript_expression", | |
"named": true | |
} | |
] | |
}, | |
"operator": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "%=", | |
"named": false | |
}, | |
{ | |
"type": "&&=", | |
"named": false | |
}, | |
{ | |
"type": "&=", | |
"named": false | |
}, | |
{ | |
"type": "**=", | |
"named": false | |
}, | |
{ | |
"type": "*=", | |
"named": false | |
}, | |
{ | |
"type": "+=", | |
"named": false | |
}, | |
{ | |
"type": "-=", | |
"named": false | |
}, | |
{ | |
"type": "/=", | |
"named": false | |
}, | |
{ | |
"type": "<<=", | |
"named": false | |
}, | |
{ | |
"type": ">>=", | |
"named": false | |
}, | |
{ | |
"type": ">>>=", | |
"named": false | |
}, | |
{ | |
"type": "??=", | |
"named": false | |
}, | |
{ | |
"type": "^=", | |
"named": false | |
}, | |
{ | |
"type": "|=", | |
"named": false | |
}, | |
{ | |
"type": "||=", | |
"named": false | |
} | |
] | |
}, | |
"right": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "expression", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "await_expression", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "expression", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "binary_expression", | |
"named": true, | |
"fields": { | |
"left": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "expression", | |
"named": true | |
}, | |
{ | |
"type": "private_property_identifier", | |
"named": true | |
} | |
] | |
}, | |
"operator": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "!=", | |
"named": false | |
}, | |
{ | |
"type": "!==", | |
"named": false | |
}, | |
{ | |
"type": "%", | |
"named": false | |
}, | |
{ | |
"type": "&", | |
"named": false | |
}, | |
{ | |
"type": "&&", | |
"named": false | |
}, | |
{ | |
"type": "*", | |
"named": false | |
}, | |
{ | |
"type": "**", | |
"named": false | |
}, | |
{ | |
"type": "+", | |
"named": false | |
}, | |
{ | |
"type": "-", | |
"named": false | |
}, | |
{ | |
"type": "/", | |
"named": false | |
}, | |
{ | |
"type": "<", | |
"named": false | |
}, | |
{ | |
"type": "<<", | |
"named": false | |
}, | |
{ | |
"type": "<=", | |
"named": false | |
}, | |
{ | |
"type": "==", | |
"named": false | |
}, | |
{ | |
"type": "===", | |
"named": false | |
}, | |
{ | |
"type": ">", | |
"named": false | |
}, | |
{ | |
"type": ">=", | |
"named": false | |
}, | |
{ | |
"type": ">>", | |
"named": false | |
}, | |
{ | |
"type": ">>>", | |
"named": false | |
}, | |
{ | |
"type": "??", | |
"named": false | |
}, | |
{ | |
"type": "^", | |
"named": false | |
}, | |
{ | |
"type": "in", | |
"named": false | |
}, | |
{ | |
"type": "instanceof", | |
"named": false | |
}, | |
{ | |
"type": "|", | |
"named": false | |
}, | |
{ | |
"type": "||", | |
"named": false | |
} | |
] | |
}, | |
"right": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "expression", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "break_statement", | |
"named": true, | |
"fields": { | |
"label": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "statement_identifier", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "call_expression", | |
"named": true, | |
"fields": { | |
"arguments": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "arguments", | |
"named": true | |
}, | |
{ | |
"type": "template_string", | |
"named": true | |
} | |
] | |
}, | |
"function": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "expression", | |
"named": true | |
}, | |
{ | |
"type": "import", | |
"named": true | |
} | |
] | |
}, | |
"type_arguments": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "type_arguments", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "call_signature", | |
"named": true, | |
"fields": { | |
"parameters": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "formal_parameters", | |
"named": true | |
} | |
] | |
}, | |
"return_type": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "asserts_annotation", | |
"named": true | |
}, | |
{ | |
"type": "type_annotation", | |
"named": true | |
}, | |
{ | |
"type": "type_predicate_annotation", | |
"named": true | |
} | |
] | |
}, | |
"type_parameters": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "type_parameters", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "catch_clause", | |
"named": true, | |
"fields": { | |
"body": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "statement_block", | |
"named": true | |
} | |
] | |
}, | |
"parameter": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "array_pattern", | |
"named": true | |
}, | |
{ | |
"type": "identifier", | |
"named": true | |
}, | |
{ | |
"type": "object_pattern", | |
"named": true | |
} | |
] | |
}, | |
"type": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "type_annotation", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "class", | |
"named": true, | |
"fields": { | |
"body": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "class_body", | |
"named": true | |
} | |
] | |
}, | |
"decorator": { | |
"multiple": true, | |
"required": false, | |
"types": [ | |
{ | |
"type": "decorator", | |
"named": true | |
} | |
] | |
}, | |
"name": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "type_identifier", | |
"named": true | |
} | |
] | |
}, | |
"type_parameters": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "type_parameters", | |
"named": true | |
} | |
] | |
} | |
}, | |
"children": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "class_heritage", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "class_body", | |
"named": true, | |
"fields": { | |
"decorator": { | |
"multiple": true, | |
"required": false, | |
"types": [ | |
{ | |
"type": "decorator", | |
"named": true | |
} | |
] | |
} | |
}, | |
"children": { | |
"multiple": true, | |
"required": false, | |
"types": [ | |
{ | |
"type": "abstract_method_signature", | |
"named": true | |
}, | |
{ | |
"type": "class_static_block", | |
"named": true | |
}, | |
{ | |
"type": "index_signature", | |
"named": true | |
}, | |
{ | |
"type": "method_definition", | |
"named": true | |
}, | |
{ | |
"type": "method_signature", | |
"named": true | |
}, | |
{ | |
"type": "public_field_definition", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "class_declaration", | |
"named": true, | |
"fields": { | |
"body": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "class_body", | |
"named": true | |
} | |
] | |
}, | |
"decorator": { | |
"multiple": true, | |
"required": false, | |
"types": [ | |
{ | |
"type": "decorator", | |
"named": true | |
} | |
] | |
}, | |
"name": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "type_identifier", | |
"named": true | |
} | |
] | |
}, | |
"type_parameters": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "type_parameters", | |
"named": true | |
} | |
] | |
} | |
}, | |
"children": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "class_heritage", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "class_heritage", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": true, | |
"required": true, | |
"types": [ | |
{ | |
"type": "extends_clause", | |
"named": true | |
}, | |
{ | |
"type": "implements_clause", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "class_static_block", | |
"named": true, | |
"fields": { | |
"body": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "statement_block", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "computed_property_name", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "expression", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "conditional_type", | |
"named": true, | |
"fields": { | |
"alternative": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "type", | |
"named": true | |
} | |
] | |
}, | |
"consequence": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "type", | |
"named": true | |
} | |
] | |
}, | |
"left": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "type", | |
"named": true | |
} | |
] | |
}, | |
"right": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "type", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "constraint", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "type", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "construct_signature", | |
"named": true, | |
"fields": { | |
"parameters": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "formal_parameters", | |
"named": true | |
} | |
] | |
}, | |
"type": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "type_annotation", | |
"named": true | |
} | |
] | |
}, | |
"type_parameters": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "type_parameters", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "constructor_type", | |
"named": true, | |
"fields": { | |
"parameters": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "formal_parameters", | |
"named": true | |
} | |
] | |
}, | |
"type": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "type", | |
"named": true | |
} | |
] | |
}, | |
"type_parameters": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "type_parameters", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "continue_statement", | |
"named": true, | |
"fields": { | |
"label": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "statement_identifier", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "debugger_statement", | |
"named": true, | |
"fields": {} | |
}, | |
{ | |
"type": "decorator", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "call_expression", | |
"named": true | |
}, | |
{ | |
"type": "identifier", | |
"named": true | |
}, | |
{ | |
"type": "member_expression", | |
"named": true | |
}, | |
{ | |
"type": "parenthesized_expression", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "default_type", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "type", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "do_statement", | |
"named": true, | |
"fields": { | |
"body": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "statement", | |
"named": true | |
} | |
] | |
}, | |
"condition": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "parenthesized_expression", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "else_clause", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "statement", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "empty_statement", | |
"named": true, | |
"fields": {} | |
}, | |
{ | |
"type": "enum_assignment", | |
"named": true, | |
"fields": { | |
"name": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "computed_property_name", | |
"named": true | |
}, | |
{ | |
"type": "number", | |
"named": true | |
}, | |
{ | |
"type": "private_property_identifier", | |
"named": true | |
}, | |
{ | |
"type": "property_identifier", | |
"named": true | |
}, | |
{ | |
"type": "string", | |
"named": true | |
} | |
] | |
}, | |
"value": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "expression", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "enum_body", | |
"named": true, | |
"fields": { | |
"name": { | |
"multiple": true, | |
"required": false, | |
"types": [ | |
{ | |
"type": "computed_property_name", | |
"named": true | |
}, | |
{ | |
"type": "number", | |
"named": true | |
}, | |
{ | |
"type": "private_property_identifier", | |
"named": true | |
}, | |
{ | |
"type": "property_identifier", | |
"named": true | |
}, | |
{ | |
"type": "string", | |
"named": true | |
} | |
] | |
} | |
}, | |
"children": { | |
"multiple": true, | |
"required": false, | |
"types": [ | |
{ | |
"type": "enum_assignment", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "enum_declaration", | |
"named": true, | |
"fields": { | |
"body": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "enum_body", | |
"named": true | |
} | |
] | |
}, | |
"name": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "identifier", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "existential_type", | |
"named": true, | |
"fields": {} | |
}, | |
{ | |
"type": "export_clause", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": true, | |
"required": false, | |
"types": [ | |
{ | |
"type": "export_specifier", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "export_specifier", | |
"named": true, | |
"fields": { | |
"alias": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "identifier", | |
"named": true | |
}, | |
{ | |
"type": "string", | |
"named": true | |
} | |
] | |
}, | |
"name": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "identifier", | |
"named": true | |
}, | |
{ | |
"type": "string", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "export_statement", | |
"named": true, | |
"fields": { | |
"declaration": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "declaration", | |
"named": true | |
} | |
] | |
}, | |
"decorator": { | |
"multiple": true, | |
"required": false, | |
"types": [ | |
{ | |
"type": "decorator", | |
"named": true | |
} | |
] | |
}, | |
"source": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "string", | |
"named": true | |
} | |
] | |
}, | |
"value": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "expression", | |
"named": true | |
} | |
] | |
} | |
}, | |
"children": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "export_clause", | |
"named": true | |
}, | |
{ | |
"type": "expression", | |
"named": true | |
}, | |
{ | |
"type": "identifier", | |
"named": true | |
}, | |
{ | |
"type": "namespace_export", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "expression_statement", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "expression", | |
"named": true | |
}, | |
{ | |
"type": "sequence_expression", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "extends_clause", | |
"named": true, | |
"fields": { | |
"type_arguments": { | |
"multiple": true, | |
"required": false, | |
"types": [ | |
{ | |
"type": "type_arguments", | |
"named": true | |
} | |
] | |
}, | |
"value": { | |
"multiple": true, | |
"required": true, | |
"types": [ | |
{ | |
"type": "expression", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "extends_type_clause", | |
"named": true, | |
"fields": { | |
"type": { | |
"multiple": true, | |
"required": true, | |
"types": [ | |
{ | |
"type": "generic_type", | |
"named": true | |
}, | |
{ | |
"type": "nested_type_identifier", | |
"named": true | |
}, | |
{ | |
"type": "type_identifier", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "finally_clause", | |
"named": true, | |
"fields": { | |
"body": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "statement_block", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "flow_maybe_type", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "primary_type", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "for_in_statement", | |
"named": true, | |
"fields": { | |
"body": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "statement", | |
"named": true | |
} | |
] | |
}, | |
"kind": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "const", | |
"named": false | |
}, | |
{ | |
"type": "let", | |
"named": false | |
}, | |
{ | |
"type": "var", | |
"named": false | |
} | |
] | |
}, | |
"left": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "array_pattern", | |
"named": true | |
}, | |
{ | |
"type": "identifier", | |
"named": true | |
}, | |
{ | |
"type": "member_expression", | |
"named": true | |
}, | |
{ | |
"type": "non_null_expression", | |
"named": true | |
}, | |
{ | |
"type": "object_pattern", | |
"named": true | |
}, | |
{ | |
"type": "parenthesized_expression", | |
"named": true | |
}, | |
{ | |
"type": "subscript_expression", | |
"named": true | |
}, | |
{ | |
"type": "undefined", | |
"named": true | |
} | |
] | |
}, | |
"operator": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "in", | |
"named": false | |
}, | |
{ | |
"type": "of", | |
"named": false | |
} | |
] | |
}, | |
"right": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "expression", | |
"named": true | |
}, | |
{ | |
"type": "sequence_expression", | |
"named": true | |
} | |
] | |
}, | |
"value": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "expression", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "for_statement", | |
"named": true, | |
"fields": { | |
"body": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "statement", | |
"named": true | |
} | |
] | |
}, | |
"condition": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "empty_statement", | |
"named": true | |
}, | |
{ | |
"type": "expression_statement", | |
"named": true | |
} | |
] | |
}, | |
"increment": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "expression", | |
"named": true | |
}, | |
{ | |
"type": "sequence_expression", | |
"named": true | |
} | |
] | |
}, | |
"initializer": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "empty_statement", | |
"named": true | |
}, | |
{ | |
"type": "expression_statement", | |
"named": true | |
}, | |
{ | |
"type": "lexical_declaration", | |
"named": true | |
}, | |
{ | |
"type": "variable_declaration", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "formal_parameters", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": true, | |
"required": false, | |
"types": [ | |
{ | |
"type": "optional_parameter", | |
"named": true | |
}, | |
{ | |
"type": "required_parameter", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "function_declaration", | |
"named": true, | |
"fields": { | |
"body": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "statement_block", | |
"named": true | |
} | |
] | |
}, | |
"name": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "identifier", | |
"named": true | |
} | |
] | |
}, | |
"parameters": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "formal_parameters", | |
"named": true | |
} | |
] | |
}, | |
"return_type": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "asserts_annotation", | |
"named": true | |
}, | |
{ | |
"type": "type_annotation", | |
"named": true | |
}, | |
{ | |
"type": "type_predicate_annotation", | |
"named": true | |
} | |
] | |
}, | |
"type_parameters": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "type_parameters", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "function_expression", | |
"named": true, | |
"fields": { | |
"body": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "statement_block", | |
"named": true | |
} | |
] | |
}, | |
"name": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "identifier", | |
"named": true | |
} | |
] | |
}, | |
"parameters": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "formal_parameters", | |
"named": true | |
} | |
] | |
}, | |
"return_type": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "asserts_annotation", | |
"named": true | |
}, | |
{ | |
"type": "type_annotation", | |
"named": true | |
}, | |
{ | |
"type": "type_predicate_annotation", | |
"named": true | |
} | |
] | |
}, | |
"type_parameters": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "type_parameters", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "function_signature", | |
"named": true, | |
"fields": { | |
"name": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "identifier", | |
"named": true | |
} | |
] | |
}, | |
"parameters": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "formal_parameters", | |
"named": true | |
} | |
] | |
}, | |
"return_type": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "asserts_annotation", | |
"named": true | |
}, | |
{ | |
"type": "type_annotation", | |
"named": true | |
}, | |
{ | |
"type": "type_predicate_annotation", | |
"named": true | |
} | |
] | |
}, | |
"type_parameters": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "type_parameters", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "function_type", | |
"named": true, | |
"fields": { | |
"parameters": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "formal_parameters", | |
"named": true | |
} | |
] | |
}, | |
"return_type": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "asserts", | |
"named": true | |
}, | |
{ | |
"type": "type", | |
"named": true | |
}, | |
{ | |
"type": "type_predicate", | |
"named": true | |
} | |
] | |
}, | |
"type_parameters": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "type_parameters", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "generator_function", | |
"named": true, | |
"fields": { | |
"body": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "statement_block", | |
"named": true | |
} | |
] | |
}, | |
"name": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "identifier", | |
"named": true | |
} | |
] | |
}, | |
"parameters": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "formal_parameters", | |
"named": true | |
} | |
] | |
}, | |
"return_type": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "asserts_annotation", | |
"named": true | |
}, | |
{ | |
"type": "type_annotation", | |
"named": true | |
}, | |
{ | |
"type": "type_predicate_annotation", | |
"named": true | |
} | |
] | |
}, | |
"type_parameters": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "type_parameters", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "generator_function_declaration", | |
"named": true, | |
"fields": { | |
"body": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "statement_block", | |
"named": true | |
} | |
] | |
}, | |
"name": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "identifier", | |
"named": true | |
} | |
] | |
}, | |
"parameters": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "formal_parameters", | |
"named": true | |
} | |
] | |
}, | |
"return_type": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "asserts_annotation", | |
"named": true | |
}, | |
{ | |
"type": "type_annotation", | |
"named": true | |
}, | |
{ | |
"type": "type_predicate_annotation", | |
"named": true | |
} | |
] | |
}, | |
"type_parameters": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "type_parameters", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "generic_type", | |
"named": true, | |
"fields": { | |
"name": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "nested_type_identifier", | |
"named": true | |
}, | |
{ | |
"type": "type_identifier", | |
"named": true | |
} | |
] | |
}, | |
"type_arguments": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "type_arguments", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "glimmer_template", | |
"named": true, | |
"fields": { | |
"close_tag": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "glimmer_closing_tag", | |
"named": true | |
} | |
] | |
}, | |
"open_tag": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "glimmer_opening_tag", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "identifier", | |
"named": true, | |
"fields": {} | |
}, | |
{ | |
"type": "if_statement", | |
"named": true, | |
"fields": { | |
"alternative": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "else_clause", | |
"named": true | |
} | |
] | |
}, | |
"condition": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "parenthesized_expression", | |
"named": true | |
} | |
] | |
}, | |
"consequence": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "statement", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "implements_clause", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": true, | |
"required": true, | |
"types": [ | |
{ | |
"type": "type", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "import", | |
"named": true, | |
"fields": {} | |
}, | |
{ | |
"type": "import_alias", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": true, | |
"required": true, | |
"types": [ | |
{ | |
"type": "identifier", | |
"named": true | |
}, | |
{ | |
"type": "nested_identifier", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "import_attribute", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "object", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "import_clause", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": true, | |
"required": true, | |
"types": [ | |
{ | |
"type": "identifier", | |
"named": true | |
}, | |
{ | |
"type": "named_imports", | |
"named": true | |
}, | |
{ | |
"type": "namespace_import", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "import_require_clause", | |
"named": true, | |
"fields": { | |
"source": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "string", | |
"named": true | |
} | |
] | |
} | |
}, | |
"children": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "identifier", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "import_specifier", | |
"named": true, | |
"fields": { | |
"alias": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "identifier", | |
"named": true | |
} | |
] | |
}, | |
"name": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "identifier", | |
"named": true | |
}, | |
{ | |
"type": "string", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "import_statement", | |
"named": true, | |
"fields": { | |
"source": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "string", | |
"named": true | |
} | |
] | |
} | |
}, | |
"children": { | |
"multiple": true, | |
"required": false, | |
"types": [ | |
{ | |
"type": "import_attribute", | |
"named": true | |
}, | |
{ | |
"type": "import_clause", | |
"named": true | |
}, | |
{ | |
"type": "import_require_clause", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "index_signature", | |
"named": true, | |
"fields": { | |
"index_type": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "type", | |
"named": true | |
} | |
] | |
}, | |
"name": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "identifier", | |
"named": true | |
} | |
] | |
}, | |
"sign": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "+", | |
"named": false | |
}, | |
{ | |
"type": "-", | |
"named": false | |
} | |
] | |
}, | |
"type": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "adding_type_annotation", | |
"named": true | |
}, | |
{ | |
"type": "omitting_type_annotation", | |
"named": true | |
}, | |
{ | |
"type": "opting_type_annotation", | |
"named": true | |
}, | |
{ | |
"type": "type_annotation", | |
"named": true | |
} | |
] | |
} | |
}, | |
"children": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "mapped_type_clause", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "index_type_query", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "primary_type", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "infer_type", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": true, | |
"required": true, | |
"types": [ | |
{ | |
"type": "type", | |
"named": true | |
}, | |
{ | |
"type": "type_identifier", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "instantiation_expression", | |
"named": true, | |
"fields": { | |
"function": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "identifier", | |
"named": true | |
}, | |
{ | |
"type": "import", | |
"named": true | |
}, | |
{ | |
"type": "member_expression", | |
"named": true | |
}, | |
{ | |
"type": "subscript_expression", | |
"named": true | |
} | |
] | |
}, | |
"type_arguments": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "type_arguments", | |
"named": true | |
} | |
] | |
} | |
}, | |
"children": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "expression", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "interface_body", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": true, | |
"required": false, | |
"types": [ | |
{ | |
"type": "call_signature", | |
"named": true | |
}, | |
{ | |
"type": "construct_signature", | |
"named": true | |
}, | |
{ | |
"type": "export_statement", | |
"named": true | |
}, | |
{ | |
"type": "index_signature", | |
"named": true | |
}, | |
{ | |
"type": "method_signature", | |
"named": true | |
}, | |
{ | |
"type": "property_signature", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "interface_declaration", | |
"named": true, | |
"fields": { | |
"body": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "interface_body", | |
"named": true | |
} | |
] | |
}, | |
"name": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "type_identifier", | |
"named": true | |
} | |
] | |
}, | |
"type_parameters": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "type_parameters", | |
"named": true | |
} | |
] | |
} | |
}, | |
"children": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "extends_type_clause", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "internal_module", | |
"named": true, | |
"fields": { | |
"body": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "statement_block", | |
"named": true | |
} | |
] | |
}, | |
"name": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "identifier", | |
"named": true | |
}, | |
{ | |
"type": "nested_identifier", | |
"named": true | |
}, | |
{ | |
"type": "string", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "intersection_type", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": true, | |
"required": true, | |
"types": [ | |
{ | |
"type": "type", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "jsx_attribute", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": true, | |
"required": true, | |
"types": [ | |
{ | |
"type": "jsx_element", | |
"named": true | |
}, | |
{ | |
"type": "jsx_expression", | |
"named": true | |
}, | |
{ | |
"type": "jsx_namespace_name", | |
"named": true | |
}, | |
{ | |
"type": "jsx_self_closing_element", | |
"named": true | |
}, | |
{ | |
"type": "property_identifier", | |
"named": true | |
}, | |
{ | |
"type": "string", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "jsx_closing_element", | |
"named": true, | |
"fields": { | |
"name": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "identifier", | |
"named": true | |
}, | |
{ | |
"type": "jsx_namespace_name", | |
"named": true | |
}, | |
{ | |
"type": "member_expression", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "jsx_element", | |
"named": true, | |
"fields": { | |
"close_tag": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "jsx_closing_element", | |
"named": true | |
} | |
] | |
}, | |
"open_tag": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "jsx_opening_element", | |
"named": true | |
} | |
] | |
} | |
}, | |
"children": { | |
"multiple": true, | |
"required": false, | |
"types": [ | |
{ | |
"type": "html_character_reference", | |
"named": true | |
}, | |
{ | |
"type": "jsx_element", | |
"named": true | |
}, | |
{ | |
"type": "jsx_expression", | |
"named": true | |
}, | |
{ | |
"type": "jsx_self_closing_element", | |
"named": true | |
}, | |
{ | |
"type": "jsx_text", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "jsx_expression", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "expression", | |
"named": true | |
}, | |
{ | |
"type": "sequence_expression", | |
"named": true | |
}, | |
{ | |
"type": "spread_element", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "jsx_namespace_name", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": true, | |
"required": true, | |
"types": [ | |
{ | |
"type": "identifier", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "jsx_opening_element", | |
"named": true, | |
"fields": { | |
"attribute": { | |
"multiple": true, | |
"required": false, | |
"types": [ | |
{ | |
"type": "jsx_attribute", | |
"named": true | |
}, | |
{ | |
"type": "jsx_expression", | |
"named": true | |
} | |
] | |
}, | |
"name": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "identifier", | |
"named": true | |
}, | |
{ | |
"type": "jsx_namespace_name", | |
"named": true | |
}, | |
{ | |
"type": "member_expression", | |
"named": true | |
} | |
] | |
}, | |
"type_arguments": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "type_arguments", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "jsx_self_closing_element", | |
"named": true, | |
"fields": { | |
"attribute": { | |
"multiple": true, | |
"required": false, | |
"types": [ | |
{ | |
"type": "jsx_attribute", | |
"named": true | |
}, | |
{ | |
"type": "jsx_expression", | |
"named": true | |
} | |
] | |
}, | |
"name": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "identifier", | |
"named": true | |
}, | |
{ | |
"type": "jsx_namespace_name", | |
"named": true | |
}, | |
{ | |
"type": "member_expression", | |
"named": true | |
} | |
] | |
}, | |
"type_arguments": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "type_arguments", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "jsx_text", | |
"named": true, | |
"fields": {} | |
}, | |
{ | |
"type": "labeled_statement", | |
"named": true, | |
"fields": { | |
"body": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "statement", | |
"named": true | |
} | |
] | |
}, | |
"label": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "statement_identifier", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "lexical_declaration", | |
"named": true, | |
"fields": { | |
"kind": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "const", | |
"named": false | |
}, | |
{ | |
"type": "let", | |
"named": false | |
} | |
] | |
} | |
}, | |
"children": { | |
"multiple": true, | |
"required": true, | |
"types": [ | |
{ | |
"type": "variable_declarator", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "literal_type", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "false", | |
"named": true | |
}, | |
{ | |
"type": "null", | |
"named": true | |
}, | |
{ | |
"type": "number", | |
"named": true | |
}, | |
{ | |
"type": "string", | |
"named": true | |
}, | |
{ | |
"type": "true", | |
"named": true | |
}, | |
{ | |
"type": "unary_expression", | |
"named": true | |
}, | |
{ | |
"type": "undefined", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "lookup_type", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": true, | |
"required": true, | |
"types": [ | |
{ | |
"type": "type", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "mapped_type_clause", | |
"named": true, | |
"fields": { | |
"alias": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "type", | |
"named": true | |
} | |
] | |
}, | |
"name": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "type_identifier", | |
"named": true | |
} | |
] | |
}, | |
"type": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "type", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "member_expression", | |
"named": true, | |
"fields": { | |
"object": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "expression", | |
"named": true | |
}, | |
{ | |
"type": "import", | |
"named": true | |
} | |
] | |
}, | |
"optional_chain": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "optional_chain", | |
"named": true | |
} | |
] | |
}, | |
"property": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "private_property_identifier", | |
"named": true | |
}, | |
{ | |
"type": "property_identifier", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "meta_property", | |
"named": true, | |
"fields": {} | |
}, | |
{ | |
"type": "method_definition", | |
"named": true, | |
"fields": { | |
"body": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "statement_block", | |
"named": true | |
} | |
] | |
}, | |
"name": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "computed_property_name", | |
"named": true | |
}, | |
{ | |
"type": "number", | |
"named": true | |
}, | |
{ | |
"type": "private_property_identifier", | |
"named": true | |
}, | |
{ | |
"type": "property_identifier", | |
"named": true | |
}, | |
{ | |
"type": "string", | |
"named": true | |
} | |
] | |
}, | |
"parameters": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "formal_parameters", | |
"named": true | |
} | |
] | |
}, | |
"return_type": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "asserts_annotation", | |
"named": true | |
}, | |
{ | |
"type": "type_annotation", | |
"named": true | |
}, | |
{ | |
"type": "type_predicate_annotation", | |
"named": true | |
} | |
] | |
}, | |
"type_parameters": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "type_parameters", | |
"named": true | |
} | |
] | |
} | |
}, | |
"children": { | |
"multiple": true, | |
"required": false, | |
"types": [ | |
{ | |
"type": "accessibility_modifier", | |
"named": true | |
}, | |
{ | |
"type": "override_modifier", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "method_signature", | |
"named": true, | |
"fields": { | |
"name": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "computed_property_name", | |
"named": true | |
}, | |
{ | |
"type": "number", | |
"named": true | |
}, | |
{ | |
"type": "private_property_identifier", | |
"named": true | |
}, | |
{ | |
"type": "property_identifier", | |
"named": true | |
}, | |
{ | |
"type": "string", | |
"named": true | |
} | |
] | |
}, | |
"parameters": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "formal_parameters", | |
"named": true | |
} | |
] | |
}, | |
"return_type": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "asserts_annotation", | |
"named": true | |
}, | |
{ | |
"type": "type_annotation", | |
"named": true | |
}, | |
{ | |
"type": "type_predicate_annotation", | |
"named": true | |
} | |
] | |
}, | |
"type_parameters": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "type_parameters", | |
"named": true | |
} | |
] | |
} | |
}, | |
"children": { | |
"multiple": true, | |
"required": false, | |
"types": [ | |
{ | |
"type": "accessibility_modifier", | |
"named": true | |
}, | |
{ | |
"type": "override_modifier", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "module", | |
"named": true, | |
"fields": { | |
"body": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "statement_block", | |
"named": true | |
} | |
] | |
}, | |
"name": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "identifier", | |
"named": true | |
}, | |
{ | |
"type": "nested_identifier", | |
"named": true | |
}, | |
{ | |
"type": "string", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "named_imports", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": true, | |
"required": false, | |
"types": [ | |
{ | |
"type": "import_specifier", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "namespace_export", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "identifier", | |
"named": true | |
}, | |
{ | |
"type": "string", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "namespace_import", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "identifier", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "nested_identifier", | |
"named": true, | |
"fields": { | |
"object": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "identifier", | |
"named": true | |
}, | |
{ | |
"type": "member_expression", | |
"named": true | |
} | |
] | |
}, | |
"property": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "property_identifier", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "nested_type_identifier", | |
"named": true, | |
"fields": { | |
"module": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "identifier", | |
"named": true | |
}, | |
{ | |
"type": "nested_identifier", | |
"named": true | |
} | |
] | |
}, | |
"name": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "type_identifier", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "new_expression", | |
"named": true, | |
"fields": { | |
"arguments": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "arguments", | |
"named": true | |
} | |
] | |
}, | |
"constructor": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "primary_expression", | |
"named": true | |
} | |
] | |
}, | |
"type_arguments": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "type_arguments", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "non_null_expression", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "expression", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "object", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": true, | |
"required": false, | |
"types": [ | |
{ | |
"type": "method_definition", | |
"named": true | |
}, | |
{ | |
"type": "pair", | |
"named": true | |
}, | |
{ | |
"type": "shorthand_property_identifier", | |
"named": true | |
}, | |
{ | |
"type": "spread_element", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "object_assignment_pattern", | |
"named": true, | |
"fields": { | |
"left": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "array_pattern", | |
"named": true | |
}, | |
{ | |
"type": "object_pattern", | |
"named": true | |
}, | |
{ | |
"type": "shorthand_property_identifier_pattern", | |
"named": true | |
} | |
] | |
}, | |
"right": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "expression", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "object_pattern", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": true, | |
"required": false, | |
"types": [ | |
{ | |
"type": "object_assignment_pattern", | |
"named": true | |
}, | |
{ | |
"type": "pair_pattern", | |
"named": true | |
}, | |
{ | |
"type": "rest_pattern", | |
"named": true | |
}, | |
{ | |
"type": "shorthand_property_identifier_pattern", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "object_type", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": true, | |
"required": false, | |
"types": [ | |
{ | |
"type": "call_signature", | |
"named": true | |
}, | |
{ | |
"type": "construct_signature", | |
"named": true | |
}, | |
{ | |
"type": "export_statement", | |
"named": true | |
}, | |
{ | |
"type": "index_signature", | |
"named": true | |
}, | |
{ | |
"type": "method_signature", | |
"named": true | |
}, | |
{ | |
"type": "property_signature", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "omitting_type_annotation", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "type", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "opting_type_annotation", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "type", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "optional_chain", | |
"named": true, | |
"fields": {} | |
}, | |
{ | |
"type": "optional_parameter", | |
"named": true, | |
"fields": { | |
"decorator": { | |
"multiple": true, | |
"required": false, | |
"types": [ | |
{ | |
"type": "decorator", | |
"named": true | |
} | |
] | |
}, | |
"name": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "identifier", | |
"named": true | |
} | |
] | |
}, | |
"pattern": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "pattern", | |
"named": true | |
}, | |
{ | |
"type": "this", | |
"named": true | |
} | |
] | |
}, | |
"type": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "type_annotation", | |
"named": true | |
} | |
] | |
}, | |
"value": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "expression", | |
"named": true | |
} | |
] | |
} | |
}, | |
"children": { | |
"multiple": true, | |
"required": false, | |
"types": [ | |
{ | |
"type": "accessibility_modifier", | |
"named": true | |
}, | |
{ | |
"type": "override_modifier", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "optional_type", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "type", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "override_modifier", | |
"named": true, | |
"fields": {} | |
}, | |
{ | |
"type": "pair", | |
"named": true, | |
"fields": { | |
"key": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "computed_property_name", | |
"named": true | |
}, | |
{ | |
"type": "number", | |
"named": true | |
}, | |
{ | |
"type": "private_property_identifier", | |
"named": true | |
}, | |
{ | |
"type": "property_identifier", | |
"named": true | |
}, | |
{ | |
"type": "string", | |
"named": true | |
} | |
] | |
}, | |
"value": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "expression", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "pair_pattern", | |
"named": true, | |
"fields": { | |
"key": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "computed_property_name", | |
"named": true | |
}, | |
{ | |
"type": "number", | |
"named": true | |
}, | |
{ | |
"type": "private_property_identifier", | |
"named": true | |
}, | |
{ | |
"type": "property_identifier", | |
"named": true | |
}, | |
{ | |
"type": "string", | |
"named": true | |
} | |
] | |
}, | |
"value": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "assignment_pattern", | |
"named": true | |
}, | |
{ | |
"type": "pattern", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "parenthesized_expression", | |
"named": true, | |
"fields": { | |
"type": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "type_annotation", | |
"named": true | |
} | |
] | |
} | |
}, | |
"children": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "call_expression", | |
"named": true | |
}, | |
{ | |
"type": "expression", | |
"named": true | |
}, | |
{ | |
"type": "identifier", | |
"named": true | |
}, | |
{ | |
"type": "member_expression", | |
"named": true | |
}, | |
{ | |
"type": "sequence_expression", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "parenthesized_type", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "type", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "predefined_type", | |
"named": true, | |
"fields": {} | |
}, | |
{ | |
"type": "program", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": true, | |
"required": false, | |
"types": [ | |
{ | |
"type": "hash_bang_line", | |
"named": true | |
}, | |
{ | |
"type": "statement", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "property_signature", | |
"named": true, | |
"fields": { | |
"name": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "computed_property_name", | |
"named": true | |
}, | |
{ | |
"type": "number", | |
"named": true | |
}, | |
{ | |
"type": "private_property_identifier", | |
"named": true | |
}, | |
{ | |
"type": "property_identifier", | |
"named": true | |
}, | |
{ | |
"type": "string", | |
"named": true | |
} | |
] | |
}, | |
"type": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "type_annotation", | |
"named": true | |
} | |
] | |
} | |
}, | |
"children": { | |
"multiple": true, | |
"required": false, | |
"types": [ | |
{ | |
"type": "accessibility_modifier", | |
"named": true | |
}, | |
{ | |
"type": "override_modifier", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "public_field_definition", | |
"named": true, | |
"fields": { | |
"decorator": { | |
"multiple": true, | |
"required": false, | |
"types": [ | |
{ | |
"type": "decorator", | |
"named": true | |
} | |
] | |
}, | |
"name": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "computed_property_name", | |
"named": true | |
}, | |
{ | |
"type": "number", | |
"named": true | |
}, | |
{ | |
"type": "private_property_identifier", | |
"named": true | |
}, | |
{ | |
"type": "property_identifier", | |
"named": true | |
}, | |
{ | |
"type": "string", | |
"named": true | |
} | |
] | |
}, | |
"type": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "type_annotation", | |
"named": true | |
} | |
] | |
}, | |
"value": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "expression", | |
"named": true | |
} | |
] | |
} | |
}, | |
"children": { | |
"multiple": true, | |
"required": false, | |
"types": [ | |
{ | |
"type": "accessibility_modifier", | |
"named": true | |
}, | |
{ | |
"type": "override_modifier", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "readonly_type", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "type", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "regex", | |
"named": true, | |
"fields": { | |
"flags": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "regex_flags", | |
"named": true | |
} | |
] | |
}, | |
"pattern": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "regex_pattern", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "required_parameter", | |
"named": true, | |
"fields": { | |
"decorator": { | |
"multiple": true, | |
"required": false, | |
"types": [ | |
{ | |
"type": "decorator", | |
"named": true | |
} | |
] | |
}, | |
"name": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "identifier", | |
"named": true | |
}, | |
{ | |
"type": "rest_pattern", | |
"named": true | |
} | |
] | |
}, | |
"pattern": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "pattern", | |
"named": true | |
}, | |
{ | |
"type": "this", | |
"named": true | |
} | |
] | |
}, | |
"type": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "type_annotation", | |
"named": true | |
} | |
] | |
}, | |
"value": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "expression", | |
"named": true | |
} | |
] | |
} | |
}, | |
"children": { | |
"multiple": true, | |
"required": false, | |
"types": [ | |
{ | |
"type": "accessibility_modifier", | |
"named": true | |
}, | |
{ | |
"type": "override_modifier", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "rest_pattern", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "array_pattern", | |
"named": true | |
}, | |
{ | |
"type": "identifier", | |
"named": true | |
}, | |
{ | |
"type": "member_expression", | |
"named": true | |
}, | |
{ | |
"type": "non_null_expression", | |
"named": true | |
}, | |
{ | |
"type": "object_pattern", | |
"named": true | |
}, | |
{ | |
"type": "subscript_expression", | |
"named": true | |
}, | |
{ | |
"type": "undefined", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "rest_type", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "type", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "return_statement", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "expression", | |
"named": true | |
}, | |
{ | |
"type": "sequence_expression", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "satisfies_expression", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": true, | |
"required": true, | |
"types": [ | |
{ | |
"type": "expression", | |
"named": true | |
}, | |
{ | |
"type": "type", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "sequence_expression", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": true, | |
"required": true, | |
"types": [ | |
{ | |
"type": "expression", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "spread_element", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "expression", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "statement_block", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": true, | |
"required": false, | |
"types": [ | |
{ | |
"type": "statement", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "string", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": true, | |
"required": false, | |
"types": [ | |
{ | |
"type": "escape_sequence", | |
"named": true | |
}, | |
{ | |
"type": "html_character_reference", | |
"named": true | |
}, | |
{ | |
"type": "string_fragment", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "subscript_expression", | |
"named": true, | |
"fields": { | |
"index": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "expression", | |
"named": true | |
}, | |
{ | |
"type": "number", | |
"named": true | |
}, | |
{ | |
"type": "predefined_type", | |
"named": true | |
}, | |
{ | |
"type": "sequence_expression", | |
"named": true | |
}, | |
{ | |
"type": "string", | |
"named": true | |
} | |
] | |
}, | |
"object": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "expression", | |
"named": true | |
} | |
] | |
}, | |
"optional_chain": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "optional_chain", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "switch_body", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": true, | |
"required": false, | |
"types": [ | |
{ | |
"type": "switch_case", | |
"named": true | |
}, | |
{ | |
"type": "switch_default", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "switch_case", | |
"named": true, | |
"fields": { | |
"body": { | |
"multiple": true, | |
"required": false, | |
"types": [ | |
{ | |
"type": "statement", | |
"named": true | |
} | |
] | |
}, | |
"value": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "expression", | |
"named": true | |
}, | |
{ | |
"type": "sequence_expression", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "switch_default", | |
"named": true, | |
"fields": { | |
"body": { | |
"multiple": true, | |
"required": false, | |
"types": [ | |
{ | |
"type": "statement", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "switch_statement", | |
"named": true, | |
"fields": { | |
"body": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "switch_body", | |
"named": true | |
} | |
] | |
}, | |
"value": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "parenthesized_expression", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "template_literal_type", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": true, | |
"required": false, | |
"types": [ | |
{ | |
"type": "string_fragment", | |
"named": true | |
}, | |
{ | |
"type": "template_type", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "template_string", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": true, | |
"required": false, | |
"types": [ | |
{ | |
"type": "escape_sequence", | |
"named": true | |
}, | |
{ | |
"type": "string_fragment", | |
"named": true | |
}, | |
{ | |
"type": "template_substitution", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "template_substitution", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "expression", | |
"named": true | |
}, | |
{ | |
"type": "sequence_expression", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "template_type", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "infer_type", | |
"named": true | |
}, | |
{ | |
"type": "primary_type", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "ternary_expression", | |
"named": true, | |
"fields": { | |
"alternative": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "expression", | |
"named": true | |
} | |
] | |
}, | |
"condition": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "expression", | |
"named": true | |
} | |
] | |
}, | |
"consequence": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "expression", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "throw_statement", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "expression", | |
"named": true | |
}, | |
{ | |
"type": "sequence_expression", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "try_statement", | |
"named": true, | |
"fields": { | |
"body": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "statement_block", | |
"named": true | |
} | |
] | |
}, | |
"finalizer": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "finally_clause", | |
"named": true | |
} | |
] | |
}, | |
"handler": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "catch_clause", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "tuple_type", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": true, | |
"required": false, | |
"types": [ | |
{ | |
"type": "optional_parameter", | |
"named": true | |
}, | |
{ | |
"type": "optional_type", | |
"named": true | |
}, | |
{ | |
"type": "required_parameter", | |
"named": true | |
}, | |
{ | |
"type": "rest_type", | |
"named": true | |
}, | |
{ | |
"type": "type", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "type_alias_declaration", | |
"named": true, | |
"fields": { | |
"name": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "type_identifier", | |
"named": true | |
} | |
] | |
}, | |
"type_parameters": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "type_parameters", | |
"named": true | |
} | |
] | |
}, | |
"value": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "type", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "type_annotation", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "type", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "type_arguments", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": true, | |
"required": true, | |
"types": [ | |
{ | |
"type": "type", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "type_assertion", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": true, | |
"required": true, | |
"types": [ | |
{ | |
"type": "expression", | |
"named": true | |
}, | |
{ | |
"type": "type_arguments", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "type_parameter", | |
"named": true, | |
"fields": { | |
"constraint": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "constraint", | |
"named": true | |
} | |
] | |
}, | |
"name": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "type_identifier", | |
"named": true | |
} | |
] | |
}, | |
"value": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "default_type", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "type_parameters", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": true, | |
"required": true, | |
"types": [ | |
{ | |
"type": "type_parameter", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "type_predicate", | |
"named": true, | |
"fields": { | |
"name": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "identifier", | |
"named": true | |
}, | |
{ | |
"type": "this", | |
"named": true | |
} | |
] | |
}, | |
"type": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "type", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "type_predicate_annotation", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "type_predicate", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "type_query", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "call_expression", | |
"named": true | |
}, | |
{ | |
"type": "identifier", | |
"named": true | |
}, | |
{ | |
"type": "instantiation_expression", | |
"named": true | |
}, | |
{ | |
"type": "member_expression", | |
"named": true | |
}, | |
{ | |
"type": "subscript_expression", | |
"named": true | |
}, | |
{ | |
"type": "this", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "unary_expression", | |
"named": true, | |
"fields": { | |
"argument": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "expression", | |
"named": true | |
}, | |
{ | |
"type": "number", | |
"named": true | |
} | |
] | |
}, | |
"operator": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "!", | |
"named": false | |
}, | |
{ | |
"type": "+", | |
"named": false | |
}, | |
{ | |
"type": "-", | |
"named": false | |
}, | |
{ | |
"type": "delete", | |
"named": false | |
}, | |
{ | |
"type": "typeof", | |
"named": false | |
}, | |
{ | |
"type": "void", | |
"named": false | |
}, | |
{ | |
"type": "~", | |
"named": false | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "union_type", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": true, | |
"required": true, | |
"types": [ | |
{ | |
"type": "type", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "update_expression", | |
"named": true, | |
"fields": { | |
"argument": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "expression", | |
"named": true | |
} | |
] | |
}, | |
"operator": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "++", | |
"named": false | |
}, | |
{ | |
"type": "--", | |
"named": false | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "variable_declaration", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": true, | |
"required": true, | |
"types": [ | |
{ | |
"type": "variable_declarator", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "variable_declarator", | |
"named": true, | |
"fields": { | |
"name": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "array_pattern", | |
"named": true | |
}, | |
{ | |
"type": "identifier", | |
"named": true | |
}, | |
{ | |
"type": "object_pattern", | |
"named": true | |
} | |
] | |
}, | |
"type": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "type_annotation", | |
"named": true | |
} | |
] | |
}, | |
"value": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "expression", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "while_statement", | |
"named": true, | |
"fields": { | |
"body": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "statement", | |
"named": true | |
} | |
] | |
}, | |
"condition": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "parenthesized_expression", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "with_statement", | |
"named": true, | |
"fields": { | |
"body": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "statement", | |
"named": true | |
} | |
] | |
}, | |
"object": { | |
"multiple": false, | |
"required": true, | |
"types": [ | |
{ | |
"type": "parenthesized_expression", | |
"named": true | |
} | |
] | |
} | |
} | |
}, | |
{ | |
"type": "yield_expression", | |
"named": true, | |
"fields": {}, | |
"children": { | |
"multiple": false, | |
"required": false, | |
"types": [ | |
{ | |
"type": "expression", | |
"named": true | |
} | |
] | |
} | |
}, | |
{ | |
"type": "!", | |
"named": false | |
}, | |
{ | |
"type": "!=", | |
"named": false | |
}, | |
{ | |
"type": "!==", | |
"named": false | |
}, | |
{ | |
"type": "\"", | |
"named": false | |
}, | |
{ | |
"type": "${", | |
"named": false | |
}, | |
{ | |
"type": "%", | |
"named": false | |
}, | |
{ | |
"type": "%=", | |
"named": false | |
}, | |
{ | |
"type": "&", | |
"named": false | |
}, | |
{ | |
"type": "&&", | |
"named": false | |
}, | |
{ | |
"type": "&&=", | |
"named": false | |
}, | |
{ | |
"type": "&=", | |
"named": false | |
}, | |
{ | |
"type": "'", | |
"named": false | |
}, | |
{ | |
"type": "(", | |
"named": false | |
}, | |
{ | |
"type": ")", | |
"named": false | |
}, | |
{ | |
"type": "*", | |
"named": false | |
}, | |
{ | |
"type": "**", | |
"named": false | |
}, | |
{ | |
"type": "**=", | |
"named": false | |
}, | |
{ | |
"type": "*=", | |
"named": false | |
}, | |
{ | |
"type": "+", | |
"named": false | |
}, | |
{ | |
"type": "++", | |
"named": false | |
}, | |
{ | |
"type": "+=", | |
"named": false | |
}, | |
{ | |
"type": "+?:", | |
"named": false | |
}, | |
{ | |
"type": ",", | |
"named": false | |
}, | |
{ | |
"type": "-", | |
"named": false | |
}, | |
{ | |
"type": "--", | |
"named": false | |
}, | |
{ | |
"type": "-=", | |
"named": false | |
}, | |
{ | |
"type": "-?:", | |
"named": false | |
}, | |
{ | |
"type": ".", | |
"named": false | |
}, | |
{ | |
"type": "...", | |
"named": false | |
}, | |
{ | |
"type": "/", | |
"named": false | |
}, | |
{ | |
"type": "/=", | |
"named": false | |
}, | |
{ | |
"type": "/>", | |
"named": false | |
}, | |
{ | |
"type": ":", | |
"named": false | |
}, | |
{ | |
"type": ";", | |
"named": false | |
}, | |
{ | |
"type": "<", | |
"named": false | |
}, | |
{ | |
"type": "</", | |
"named": false | |
}, | |
{ | |
"type": "<<", | |
"named": false | |
}, | |
{ | |
"type": "<<=", | |
"named": false | |
}, | |
{ | |
"type": "<=", | |
"named": false | |
}, | |
{ | |
"type": "=", | |
"named": false | |
}, | |
{ | |
"type": "==", | |
"named": false | |
}, | |
{ | |
"type": "===", | |
"named": false | |
}, | |
{ | |
"type": "=>", | |
"named": false | |
}, | |
{ | |
"type": ">", | |
"named": false | |
}, | |
{ | |
"type": ">=", | |
"named": false | |
}, | |
{ | |
"type": ">>", | |
"named": false | |
}, | |
{ | |
"type": ">>=", | |
"named": false | |
}, | |
{ | |
"type": ">>>", | |
"named": false | |
}, | |
{ | |
"type": ">>>=", | |
"named": false | |
}, | |
{ | |
"type": "?", | |
"named": false | |
}, | |
{ | |
"type": "?.", | |
"named": false | |
}, | |
{ | |
"type": "?:", | |
"named": false | |
}, | |
{ | |
"type": "??", | |
"named": false | |
}, | |
{ | |
"type": "??=", | |
"named": false | |
}, | |
{ | |
"type": "@", | |
"named": false | |
}, | |
{ | |
"type": "[", | |
"named": false | |
}, | |
{ | |
"type": "]", | |
"named": false | |
}, | |
{ | |
"type": "^", | |
"named": false | |
}, | |
{ | |
"type": "^=", | |
"named": false | |
}, | |
{ | |
"type": "`", | |
"named": false | |
}, | |
{ | |
"type": "abstract", | |
"named": false | |
}, | |
{ | |
"type": "accessor", | |
"named": false | |
}, | |
{ | |
"type": "any", | |
"named": false | |
}, | |
{ | |
"type": "as", | |
"named": false | |
}, | |
{ | |
"type": "assert", | |
"named": false | |
}, | |
{ | |
"type": "asserts", | |
"named": false | |
}, | |
{ | |
"type": "async", | |
"named": false | |
}, | |
{ | |
"type": "await", | |
"named": false | |
}, | |
{ | |
"type": "boolean", | |
"named": false | |
}, | |
{ | |
"type": "break", | |
"named": false | |
}, | |
{ | |
"type": "case", | |
"named": false | |
}, | |
{ | |
"type": "catch", | |
"named": false | |
}, | |
{ | |
"type": "class", | |
"named": false | |
}, | |
{ | |
"type": "comment", | |
"named": true | |
}, | |
{ | |
"type": "const", | |
"named": false | |
}, | |
{ | |
"type": "continue", | |
"named": false | |
}, | |
{ | |
"type": "debugger", | |
"named": false | |
}, | |
{ | |
"type": "declare", | |
"named": false | |
}, | |
{ | |
"type": "default", | |
"named": false | |
}, | |
{ | |
"type": "delete", | |
"named": false | |
}, | |
{ | |
"type": "do", | |
"named": false | |
}, | |
{ | |
"type": "else", | |
"named": false | |
}, | |
{ | |
"type": "enum", | |
"named": false | |
}, | |
{ | |
"type": "escape_sequence", | |
"named": true | |
}, | |
{ | |
"type": "export", | |
"named": false | |
}, | |
{ | |
"type": "extends", | |
"named": false | |
}, | |
{ | |
"type": "false", | |
"named": true | |
}, | |
{ | |
"type": "finally", | |
"named": false | |
}, | |
{ | |
"type": "for", | |
"named": false | |
}, | |
{ | |
"type": "from", | |
"named": false | |
}, | |
{ | |
"type": "function", | |
"named": false | |
}, | |
{ | |
"type": "get", | |
"named": false | |
}, | |
{ | |
"type": "glimmer_closing_tag", | |
"named": true | |
}, | |
{ | |
"type": "glimmer_opening_tag", | |
"named": true | |
}, | |
{ | |
"type": "global", | |
"named": false | |
}, | |
{ | |
"type": "hash_bang_line", | |
"named": true | |
}, | |
{ | |
"type": "html_character_reference", | |
"named": true | |
}, | |
{ | |
"type": "html_comment", | |
"named": true | |
}, | |
{ | |
"type": "if", | |
"named": false | |
}, | |
{ | |
"type": "implements", | |
"named": false | |
}, | |
{ | |
"type": "import", | |
"named": false | |
}, | |
{ | |
"type": "in", | |
"named": false | |
}, | |
{ | |
"type": "infer", | |
"named": false | |
}, | |
{ | |
"type": "instanceof", | |
"named": false | |
}, | |
{ | |
"type": "interface", | |
"named": false | |
}, | |
{ | |
"type": "is", | |
"named": false | |
}, | |
{ | |
"type": "keyof", | |
"named": false | |
}, | |
{ | |
"type": "let", | |
"named": false | |
}, | |
{ | |
"type": "module", | |
"named": false | |
}, | |
{ | |
"type": "namespace", | |
"named": false | |
}, | |
{ | |
"type": "never", | |
"named": false | |
}, | |
{ | |
"type": "new", | |
"named": false | |
}, | |
{ | |
"type": "null", | |
"named": true | |
}, | |
{ | |
"type": "number", | |
"named": false | |
}, | |
{ | |
"type": "number", | |
"named": true | |
}, | |
{ | |
"type": "object", | |
"named": false | |
}, | |
{ | |
"type": "of", | |
"named": false | |
}, | |
{ | |
"type": "override", | |
"named": false | |
}, | |
{ | |
"type": "private", | |
"named": false | |
}, | |
{ | |
"type": "private_property_identifier", | |
"named": true | |
}, | |
{ | |
"type": "property_identifier", | |
"named": true | |
}, | |
{ | |
"type": "protected", | |
"named": false | |
}, | |
{ | |
"type": "public", | |
"named": false | |
}, | |
{ | |
"type": "readonly", | |
"named": false | |
}, | |
{ | |
"type": "regex_flags", | |
"named": true | |
}, | |
{ | |
"type": "regex_pattern", | |
"named": true | |
}, | |
{ | |
"type": "require", | |
"named": false | |
}, | |
{ | |
"type": "return", | |
"named": false | |
}, | |
{ | |
"type": "satisfies", | |
"named": false | |
}, | |
{ | |
"type": "set", | |
"named": false | |
}, | |
{ | |
"type": "shorthand_property_identifier", | |
"named": true | |
}, | |
{ | |
"type": "shorthand_property_identifier_pattern", | |
"named": true | |
}, | |
{ | |
"type": "statement_identifier", | |
"named": true | |
}, | |
{ | |
"type": "static", | |
"named": false | |
}, | |
{ | |
"type": "string", | |
"named": false | |
}, | |
{ | |
"type": "string_fragment", | |
"named": true | |
}, | |
{ | |
"type": "super", | |
"named": true | |
}, | |
{ | |
"type": "switch", | |
"named": false | |
}, | |
{ | |
"type": "symbol", | |
"named": false | |
}, | |
{ | |
"type": "target", | |
"named": false | |
}, | |
{ | |
"type": "this", | |
"named": true | |
}, | |
{ | |
"type": "this_type", | |
"named": true | |
}, | |
{ | |
"type": "throw", | |
"named": false | |
}, | |
{ | |
"type": "true", | |
"named": true | |
}, | |
{ | |
"type": "try", | |
"named": false | |
}, | |
{ | |
"type": "type", | |
"named": false | |
}, | |
{ | |
"type": "type_identifier", | |
"named": true | |
}, | |
{ | |
"type": "typeof", | |
"named": false | |
}, | |
{ | |
"type": "undefined", | |
"named": true | |
}, | |
{ | |
"type": "unique symbol", | |
"named": false | |
}, | |
{ | |
"type": "unknown", | |
"named": false | |
}, | |
{ | |
"type": "using", | |
"named": false | |
}, | |
{ | |
"type": "var", | |
"named": false | |
}, | |
{ | |
"type": "void", | |
"named": false | |
}, | |
{ | |
"type": "while", | |
"named": false | |
}, | |
{ | |
"type": "with", | |
"named": false | |
}, | |
{ | |
"type": "yield", | |
"named": false | |
}, | |
{ | |
"type": "{", | |
"named": false | |
}, | |
{ | |
"type": "{|", | |
"named": false | |
}, | |
{ | |
"type": "|", | |
"named": false | |
}, | |
{ | |
"type": "|=", | |
"named": false | |
}, | |
{ | |
"type": "||", | |
"named": false | |
}, | |
{ | |
"type": "||=", | |
"named": false | |
}, | |
{ | |
"type": "|}", | |
"named": false | |
}, | |
{ | |
"type": "}", | |
"named": false | |
}, | |
{ | |
"type": "~", | |
"named": false | |
} | |
] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment