@bablr/language-en-json 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/grammar.js ADDED
@@ -0,0 +1,1212 @@
1
+ /* @macrome
2
+ * @generatedby @bablr/macrome-generator-bablr
3
+ * @generatedfrom ./grammar.macro.js#8e38cbef6aca9da2e26c57cb190d3282281b0286
4
+ * This file is autogenerated. Please do not edit it directly.
5
+ * When editing run `npx macrome watch` then change the file this is generated from.
6
+ */
7
+ import _applyDecs from "@babel/runtime/helpers/applyDecs2305";
8
+ import { interpolateArray as _interpolateArray, interpolateArrayChildren as _interpolateArrayChildren, interpolateString as _interpolateString } from "@bablr/agast-helpers/template";
9
+ import * as _l from "@bablr/agast-vm-helpers/languages";
10
+ import * as _t from "@bablr/agast-helpers/shorthand";
11
+ let _initProto, _ExpressionDecs, _ArrayDecs, _ObjectDecs, _StringDecs, _EscapeSequenceDecs, _NumberDecs, _BooleanDecs, _NullDecs, _KeywordDecs, _PunctuatorDecs, _ListDecs, _AnyDecs;
12
+ import { triviaEnhancer } from '@bablr/helpers/trivia';
13
+ import * as productions from '@bablr/helpers/productions';
14
+ import { buildString, buildBoolean } from '@bablr/agast-vm-helpers';
15
+ import { Node, CoveredBy, AllowEmpty, InjectFrom, Attributes } from '@bablr/helpers/decorators';
16
+ import * as Space from '@bablr/language-en-blank-space';
17
+ export const dependencies = {
18
+ Space
19
+ };
20
+ export const canonicalURL = 'https://github.com/bablr-lang/language-en-json';
21
+ export const escapables = new Map(Object.entries({
22
+ b: '\b',
23
+ f: '\f',
24
+ n: '\n',
25
+ r: '\r',
26
+ t: '\t',
27
+ '\\': '\\',
28
+ '/': '/'
29
+ }));
30
+ export const grammar = triviaEnhancer({
31
+ triviaIsAllowed: s => s.span === 'Bare',
32
+ *eatMatchTrivia() {
33
+ if (yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
34
+ verb: _t.s_node(_l.Instruction, "Identifier", "match"),
35
+ arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.ref`closeToken`], {
36
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
37
+ values: [_t.node(_l.Regex, "Pattern", [_t.ref`openToken`, _t.ref`alternatives[]`, _t.ref`closeToken`], {
38
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "/"),
39
+ alternatives: [_t.node(_l.Regex, "Alternative", [_t.ref`elements[]`], {
40
+ elements: [_t.node(_l.Regex, "CharacterClass", [_t.ref`openToken`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`closeToken`], {
41
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "["),
42
+ 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")], {}, {
43
+ cooked: "\n"
44
+ }))], {}, {}), _t.node(_l.Regex, "Character", [_t.embedded(_t.s_e_node(_l.CSTML, "Escape", [_t.lit("\\r")], {}, {
45
+ cooked: "\r"
46
+ }))], {}, {}), _t.node(_l.Regex, "Character", [_t.embedded(_t.s_e_node(_l.CSTML, "Escape", [_t.lit("\\t")], {}, {
47
+ cooked: "\t"
48
+ }))], {}, {})],
49
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "]")
50
+ }, {
51
+ negate: false
52
+ })]
53
+ }, {})],
54
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "/")
55
+ }, {})],
56
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
57
+ }, {})
58
+ }, {})) {
59
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
60
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
61
+ arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.ref`closeToken`], {
62
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
63
+ values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`language`, _t.ref`namespaceSeparatorToken`, _t.ref`type`, _t.ref`closeToken`], {
64
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
65
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`triviaToken`, _t.ref`tokenToken`], {
66
+ triviaToken: _t.s_i_node(_l.CSTML, "Punctuator", "#"),
67
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
68
+ }, {}),
69
+ language: _t.s_node(_l.Spamex, "Identifier", "Space"),
70
+ namespaceSeparatorToken: _t.s_i_node(_l.Spamex, "Punctuator", ":"),
71
+ type: _t.s_node(_l.Spamex, "Identifier", "Space"),
72
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
73
+ }, {})],
74
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
75
+ }, {})
76
+ }, {});
77
+ }
78
+ }
79
+ }, class JSONGrammar {
80
+ static {
81
+ [_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"], [_KeywordDecs, 2, "Keyword"], [_PunctuatorDecs, 2, "Punctuator"], [_ListDecs, 2, "List"], [_AnyDecs, 2, "Any"]], []).e;
82
+ }
83
+ constructor() {
84
+ _initProto(this);
85
+ }
86
+ *[(_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'))]() {
87
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
88
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
89
+ 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`], {
90
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
91
+ values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`closeToken`], {
92
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
93
+ flags: _t.node(_l.CSTML, "Flags", [], {}, {}),
94
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
95
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
96
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
97
+ content: _t.node(_l.CSTML, "Content", [_t.lit("root")], {}, {}),
98
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
99
+ }, {})],
100
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
101
+ }, {})
102
+ }, {});
103
+ }
104
+ *Expression() {
105
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
106
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
107
+ 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`], {
108
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
109
+ values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.ref`closeToken`], {
110
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
111
+ flags: _t.node(_l.CSTML, "Flags", [], {}, {}),
112
+ type: _t.s_node(_l.Spamex, "Identifier", "Any"),
113
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
114
+ }, {}), _t.node(_l.Instruction, "Null", [_t.ref`sigilToken`], {
115
+ sigilToken: _t.s_i_node(_l.Instruction, "Keyword", "null")
116
+ }, {}), _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`], {
117
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "["),
118
+ 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`], {
119
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
120
+ flags: _t.node(_l.CSTML, "Flags", [], {}, {}),
121
+ type: _t.s_node(_l.Spamex, "Identifier", "Array"),
122
+ intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
123
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
124
+ content: _t.node(_l.CSTML, "Content", [_t.lit("[")], {}, {}),
125
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
126
+ }, {}),
127
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
128
+ }, {}), _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`], {
129
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
130
+ flags: _t.node(_l.CSTML, "Flags", [], {}, {}),
131
+ type: _t.s_node(_l.Spamex, "Identifier", "Object"),
132
+ intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
133
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
134
+ content: _t.node(_l.CSTML, "Content", [_t.lit("{")], {}, {}),
135
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
136
+ }, {}),
137
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
138
+ }, {}), _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`], {
139
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
140
+ flags: _t.node(_l.CSTML, "Flags", [], {}, {}),
141
+ type: _t.s_node(_l.Spamex, "Identifier", "String"),
142
+ intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
143
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
144
+ content: _t.node(_l.CSTML, "Content", [_t.lit("\"")], {}, {}),
145
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
146
+ }, {}),
147
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
148
+ }, {}), _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`], {
149
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
150
+ flags: _t.node(_l.CSTML, "Flags", [], {}, {}),
151
+ type: _t.s_node(_l.Spamex, "Identifier", "Number"),
152
+ intrinsicValue: _t.node(_l.Regex, "Pattern", [_t.ref`openToken`, _t.ref`alternatives[]`, _t.ref`closeToken`], {
153
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "/"),
154
+ alternatives: [_t.node(_l.Regex, "Alternative", [_t.ref`elements[]`, _t.ref`elements[]`], {
155
+ elements: [_t.node(_l.Regex, "Quantifier", [_t.ref`element`, _t.ref`value`], {
156
+ element: _t.node(_l.Regex, "Character", [_t.lit("-")], {}, {}),
157
+ value: _t.s_i_node(_l.Regex, "Keyword", "?")
158
+ }, {
159
+ min: 0,
160
+ max: 1,
161
+ greedy: true
162
+ }), _t.node(_l.Regex, "DigitCharacterSet", [_t.ref`escapeToken`, _t.ref`value`], {
163
+ escapeToken: _t.s_i_node(_l.Regex, "Punctuator", "\\"),
164
+ value: _t.s_i_node(_l.Regex, "Keyword", "d")
165
+ }, {})]
166
+ }, {})],
167
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "/")
168
+ }, {}),
169
+ attributes: [_t.node(_l.Spamex, "MappingAttribute", [_t.ref`key`, _t.ref`mapToken`, _t.ref`value`], {
170
+ key: _t.node(_l.Spamex, "Literal", [_t.lit("span")], {}, {}),
171
+ mapToken: _t.s_i_node(_l.Spamex, "Punctuator", "="),
172
+ value: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
173
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
174
+ content: _t.node(_l.CSTML, "Content", [_t.lit("Number")], {}, {}),
175
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
176
+ }, {})
177
+ }, {})],
178
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
179
+ }, {}), _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`], {
180
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
181
+ flags: _t.node(_l.CSTML, "Flags", [], {}, {}),
182
+ type: _t.s_node(_l.Spamex, "Identifier", "Null"),
183
+ intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
184
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
185
+ content: _t.node(_l.CSTML, "Content", [_t.lit("null")], {}, {}),
186
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
187
+ }, {}),
188
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
189
+ }, {}), _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`], {
190
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
191
+ flags: _t.node(_l.CSTML, "Flags", [], {}, {}),
192
+ type: _t.s_node(_l.Spamex, "Identifier", "Boolean"),
193
+ intrinsicValue: _t.node(_l.Regex, "Pattern", [_t.ref`openToken`, _t.ref`alternatives[]`, _t.ref`separators[]`, _t.ref`alternatives[]`, _t.ref`closeToken`], {
194
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "/"),
195
+ alternatives: [_t.node(_l.Regex, "Alternative", [_t.ref`elements[]`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`elements[]`], {
196
+ 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")], {}, {})]
197
+ }, {}), _t.node(_l.Regex, "Alternative", [_t.ref`elements[]`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`elements[]`], {
198
+ 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")], {}, {})]
199
+ }, {})],
200
+ separators: [_t.s_i_node(_l.Regex, "Punctuator", "|")],
201
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "/")
202
+ }, {}),
203
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
204
+ }, {})],
205
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", "]")
206
+ }, {})],
207
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
208
+ }, {})
209
+ }, {});
210
+ }
211
+ *Array() {
212
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
213
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
214
+ 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`], {
215
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
216
+ 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`], {
217
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
218
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], {
219
+ intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"),
220
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
221
+ }, {}),
222
+ type: _t.s_node(_l.Spamex, "Identifier", "Punctuator"),
223
+ intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
224
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
225
+ content: _t.node(_l.CSTML, "Content", [_t.lit("[")], {}, {}),
226
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
227
+ }, {}),
228
+ attributes: [_t.node(_l.Spamex, "MappingAttribute", [_t.ref`key`, _t.ref`mapToken`, _t.ref`value`], {
229
+ key: _t.node(_l.Spamex, "Literal", [_t.lit("balanced")], {}, {}),
230
+ mapToken: _t.s_i_node(_l.Spamex, "Punctuator", "="),
231
+ value: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
232
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
233
+ content: _t.node(_l.CSTML, "Content", [_t.lit("]")], {}, {}),
234
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
235
+ }, {})
236
+ }, {})],
237
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
238
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
239
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
240
+ content: _t.node(_l.CSTML, "Content", [_t.lit("openToken")], {}, {}),
241
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
242
+ }, {})],
243
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
244
+ }, {})
245
+ }, {});
246
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
247
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
248
+ 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`], {
249
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
250
+ values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.ref`closeToken`], {
251
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
252
+ flags: _t.node(_l.CSTML, "Flags", [], {}, {}),
253
+ type: _t.s_node(_l.Spamex, "Identifier", "List"),
254
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
255
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
256
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
257
+ content: _t.node(_l.CSTML, "Content", [_t.lit("elements[]")], {}, {}),
258
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
259
+ }, {}), _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`], {
260
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "{"),
261
+ 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`], {
262
+ key: _t.node(_l.Instruction, "Literal", [_t.lit("element")], {}, {}),
263
+ mapToken: _t.s_i_node(_l.Instruction, "Punctuator", ":"),
264
+ value: _t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.ref`closeToken`], {
265
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
266
+ flags: _t.node(_l.CSTML, "Flags", [], {}, {}),
267
+ type: _t.s_node(_l.Spamex, "Identifier", "Expression"),
268
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
269
+ }, {})
270
+ }, {}), _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`], {
271
+ key: _t.node(_l.Instruction, "Literal", [_t.lit("separator")], {}, {}),
272
+ mapToken: _t.s_i_node(_l.Instruction, "Punctuator", ":"),
273
+ 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`], {
274
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
275
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], {
276
+ intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"),
277
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
278
+ }, {}),
279
+ type: _t.s_node(_l.Spamex, "Identifier", "Punctuator"),
280
+ intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
281
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
282
+ content: _t.node(_l.CSTML, "Content", [_t.lit(",")], {}, {}),
283
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
284
+ }, {}),
285
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
286
+ }, {})
287
+ }, {}), _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`], {
288
+ key: _t.node(_l.Instruction, "Literal", [_t.lit("allowTrailingSeparator")], {}, {}),
289
+ mapToken: _t.s_i_node(_l.Instruction, "Punctuator", ":"),
290
+ value: _t.node(_l.Instruction, "Boolean", [_t.ref`sigilToken`], {
291
+ sigilToken: _t.s_i_node(_l.Instruction, "Keyword", "false")
292
+ }, {})
293
+ }, {})],
294
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", "}")
295
+ }, {})],
296
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
297
+ }, {})
298
+ }, {});
299
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
300
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
301
+ 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`], {
302
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
303
+ 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`], {
304
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
305
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], {
306
+ intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"),
307
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
308
+ }, {}),
309
+ type: _t.s_node(_l.Spamex, "Identifier", "Punctuator"),
310
+ intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
311
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
312
+ content: _t.node(_l.CSTML, "Content", [_t.lit("]")], {}, {}),
313
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
314
+ }, {}),
315
+ attributes: [_t.node(_l.Spamex, "BooleanAttribute", [_t.ref`key`], {
316
+ key: _t.node(_l.Spamex, "Literal", [_t.lit("balancer")], {}, {})
317
+ }, {})],
318
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
319
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
320
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
321
+ content: _t.node(_l.CSTML, "Content", [_t.lit("closeToken")], {}, {}),
322
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
323
+ }, {})],
324
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
325
+ }, {})
326
+ }, {});
327
+ }
328
+ *Object() {
329
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
330
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
331
+ 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`], {
332
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
333
+ 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`], {
334
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
335
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], {
336
+ intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"),
337
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
338
+ }, {}),
339
+ type: _t.s_node(_l.Spamex, "Identifier", "Punctuator"),
340
+ intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
341
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
342
+ content: _t.node(_l.CSTML, "Content", [_t.lit("{")], {}, {}),
343
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
344
+ }, {}),
345
+ attributes: [_t.node(_l.Spamex, "MappingAttribute", [_t.ref`key`, _t.ref`mapToken`, _t.ref`value`], {
346
+ key: _t.node(_l.Spamex, "Literal", [_t.lit("balanced")], {}, {}),
347
+ mapToken: _t.s_i_node(_l.Spamex, "Punctuator", "="),
348
+ value: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
349
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
350
+ content: _t.node(_l.CSTML, "Content", [_t.lit("}")], {}, {}),
351
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
352
+ }, {})
353
+ }, {})],
354
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
355
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
356
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
357
+ content: _t.node(_l.CSTML, "Content", [_t.lit("openToken")], {}, {}),
358
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
359
+ }, {})],
360
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
361
+ }, {})
362
+ }, {});
363
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
364
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
365
+ 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`], {
366
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
367
+ values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.ref`closeToken`], {
368
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
369
+ flags: _t.node(_l.CSTML, "Flags", [], {}, {}),
370
+ type: _t.s_node(_l.Spamex, "Identifier", "List"),
371
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
372
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
373
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
374
+ content: _t.node(_l.CSTML, "Content", [_t.lit("properties[]")], {}, {}),
375
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
376
+ }, {}), _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`], {
377
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "{"),
378
+ 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`], {
379
+ key: _t.node(_l.Instruction, "Literal", [_t.lit("element")], {}, {}),
380
+ mapToken: _t.s_i_node(_l.Instruction, "Punctuator", ":"),
381
+ value: _t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.ref`closeToken`], {
382
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
383
+ flags: _t.node(_l.CSTML, "Flags", [], {}, {}),
384
+ type: _t.s_node(_l.Spamex, "Identifier", "Property"),
385
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
386
+ }, {})
387
+ }, {}), _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`], {
388
+ key: _t.node(_l.Instruction, "Literal", [_t.lit("separator")], {}, {}),
389
+ mapToken: _t.s_i_node(_l.Instruction, "Punctuator", ":"),
390
+ 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`], {
391
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
392
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], {
393
+ intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"),
394
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
395
+ }, {}),
396
+ type: _t.s_node(_l.Spamex, "Identifier", "Punctuator"),
397
+ intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
398
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
399
+ content: _t.node(_l.CSTML, "Content", [_t.lit(",")], {}, {}),
400
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
401
+ }, {}),
402
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
403
+ }, {})
404
+ }, {}), _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`], {
405
+ key: _t.node(_l.Instruction, "Literal", [_t.lit("allowTrailingSeparator")], {}, {}),
406
+ mapToken: _t.s_i_node(_l.Instruction, "Punctuator", ":"),
407
+ value: _t.node(_l.Instruction, "Boolean", [_t.ref`sigilToken`], {
408
+ sigilToken: _t.s_i_node(_l.Instruction, "Keyword", "false")
409
+ }, {})
410
+ }, {})],
411
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", "}")
412
+ }, {})],
413
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
414
+ }, {})
415
+ }, {});
416
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
417
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
418
+ 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`], {
419
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
420
+ 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`], {
421
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
422
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], {
423
+ intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"),
424
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
425
+ }, {}),
426
+ type: _t.s_node(_l.Spamex, "Identifier", "Punctuator"),
427
+ intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
428
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
429
+ content: _t.node(_l.CSTML, "Content", [_t.lit("}")], {}, {}),
430
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
431
+ }, {}),
432
+ attributes: [_t.node(_l.Spamex, "BooleanAttribute", [_t.ref`key`], {
433
+ key: _t.node(_l.Spamex, "Literal", [_t.lit("balancer")], {}, {})
434
+ }, {})],
435
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
436
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
437
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
438
+ content: _t.node(_l.CSTML, "Content", [_t.lit("closeToken")], {}, {}),
439
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
440
+ }, {})],
441
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
442
+ }, {})
443
+ }, {});
444
+ }
445
+ *Property() {
446
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
447
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
448
+ 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`], {
449
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
450
+ values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.ref`closeToken`], {
451
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
452
+ flags: _t.node(_l.CSTML, "Flags", [], {}, {}),
453
+ type: _t.s_node(_l.Spamex, "Identifier", "String"),
454
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
455
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
456
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
457
+ content: _t.node(_l.CSTML, "Content", [_t.lit("key")], {}, {}),
458
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
459
+ }, {})],
460
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
461
+ }, {})
462
+ }, {});
463
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
464
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
465
+ 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`], {
466
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
467
+ 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`], {
468
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
469
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], {
470
+ intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"),
471
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
472
+ }, {}),
473
+ type: _t.s_node(_l.Spamex, "Identifier", "Punctuator"),
474
+ intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
475
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
476
+ content: _t.node(_l.CSTML, "Content", [_t.lit(":")], {}, {}),
477
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
478
+ }, {}),
479
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
480
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
481
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
482
+ content: _t.node(_l.CSTML, "Content", [_t.lit("sigilToken")], {}, {}),
483
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
484
+ }, {})],
485
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
486
+ }, {})
487
+ }, {});
488
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
489
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
490
+ 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`], {
491
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
492
+ values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.ref`closeToken`], {
493
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
494
+ flags: _t.node(_l.CSTML, "Flags", [], {}, {}),
495
+ type: _t.s_node(_l.Spamex, "Identifier", "Expression"),
496
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
497
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
498
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
499
+ content: _t.node(_l.CSTML, "Content", [_t.lit("value")], {}, {}),
500
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
501
+ }, {})],
502
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
503
+ }, {})
504
+ }, {});
505
+ }
506
+ *String() {
507
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
508
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
509
+ 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`], {
510
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
511
+ 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`], {
512
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
513
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], {
514
+ intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"),
515
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
516
+ }, {}),
517
+ type: _t.s_node(_l.Spamex, "Identifier", "Punctuator"),
518
+ intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
519
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
520
+ content: _t.node(_l.CSTML, "Content", [_t.lit("\"")], {}, {}),
521
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
522
+ }, {}),
523
+ attributes: [_t.node(_l.Spamex, "MappingAttribute", [_t.ref`key`, _t.ref`mapToken`, _t.ref`value`], {
524
+ key: _t.node(_l.Spamex, "Literal", [_t.lit("balanced")], {}, {}),
525
+ mapToken: _t.s_i_node(_l.Spamex, "Punctuator", "="),
526
+ value: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
527
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
528
+ content: _t.node(_l.CSTML, "Content", [_t.lit("\"")], {}, {}),
529
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
530
+ }, {})
531
+ }, {}), _t.node(_l.Spamex, "MappingAttribute", [_t.ref`key`, _t.ref`mapToken`, _t.ref`value`], {
532
+ key: _t.node(_l.Spamex, "Literal", [_t.lit("balancedSpan")], {}, {}),
533
+ mapToken: _t.s_i_node(_l.Spamex, "Punctuator", "="),
534
+ value: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
535
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
536
+ content: _t.node(_l.CSTML, "Content", [_t.lit("String")], {}, {}),
537
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
538
+ }, {})
539
+ }, {})],
540
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
541
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
542
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
543
+ content: _t.node(_l.CSTML, "Content", [_t.lit("openToken")], {}, {}),
544
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
545
+ }, {})],
546
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
547
+ }, {})
548
+ }, {});
549
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
550
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
551
+ 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`], {
552
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
553
+ values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.ref`closeToken`], {
554
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
555
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`tokenToken`], {
556
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
557
+ }, {}),
558
+ type: _t.s_node(_l.Spamex, "Identifier", "StringContent"),
559
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
560
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
561
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
562
+ content: _t.node(_l.CSTML, "Content", [_t.lit("content")], {}, {}),
563
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
564
+ }, {})],
565
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
566
+ }, {})
567
+ }, {});
568
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
569
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
570
+ 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`], {
571
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
572
+ 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`], {
573
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
574
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], {
575
+ intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"),
576
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
577
+ }, {}),
578
+ type: _t.s_node(_l.Spamex, "Identifier", "Punctuator"),
579
+ intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
580
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
581
+ content: _t.node(_l.CSTML, "Content", [_t.lit("\"")], {}, {}),
582
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
583
+ }, {}),
584
+ attributes: [_t.node(_l.Spamex, "BooleanAttribute", [_t.ref`key`], {
585
+ key: _t.node(_l.Spamex, "Literal", [_t.lit("balancer")], {}, {})
586
+ }, {})],
587
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
588
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
589
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
590
+ content: _t.node(_l.CSTML, "Content", [_t.lit("closeToken")], {}, {}),
591
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
592
+ }, {})],
593
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
594
+ }, {})
595
+ }, {});
596
+ }
597
+ *StringContent() {
598
+ let esc, lit;
599
+ do {
600
+ esc = (yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
601
+ verb: _t.s_node(_l.Instruction, "Identifier", "match"),
602
+ arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.ref`closeToken`], {
603
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
604
+ values: [_t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
605
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
606
+ content: _t.node(_l.CSTML, "Content", [_t.embedded(_t.s_e_node(_l.CSTML, "Escape", [_t.lit("\\\\")], {}, {
607
+ cooked: "\\"
608
+ }))], {}, {}),
609
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
610
+ }, {})],
611
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
612
+ }, {})
613
+ }, {})) && (yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
614
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
615
+ arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.ref`closeToken`], {
616
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
617
+ values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.ref`closeToken`], {
618
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
619
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`escapeToken`], {
620
+ escapeToken: _t.s_i_node(_l.CSTML, "Punctuator", "@")
621
+ }, {}),
622
+ type: _t.s_node(_l.Spamex, "Identifier", "EscapeSequence"),
623
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
624
+ }, {})],
625
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
626
+ }, {})
627
+ }, {}));
628
+ lit = yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
629
+ verb: _t.s_node(_l.Instruction, "Identifier", "eatMatch"),
630
+ arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.ref`closeToken`], {
631
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
632
+ values: [_t.node(_l.Regex, "Pattern", [_t.ref`openToken`, _t.ref`alternatives[]`, _t.ref`closeToken`], {
633
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "/"),
634
+ alternatives: [_t.node(_l.Regex, "Alternative", [_t.ref`elements[]`], {
635
+ elements: [_t.node(_l.Regex, "Quantifier", [_t.ref`element`, _t.ref`value`], {
636
+ 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`], {
637
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "["),
638
+ negateToken: _t.s_i_node(_l.Regex, "Keyword", "^"),
639
+ elements: [_t.node(_l.Regex, "Character", [_t.embedded(_t.s_e_node(_l.CSTML, "Escape", [_t.lit("\\r")], {}, {
640
+ cooked: "\r"
641
+ }))], {}, {}), _t.node(_l.Regex, "Character", [_t.embedded(_t.s_e_node(_l.CSTML, "Escape", [_t.lit("\\n")], {}, {
642
+ cooked: "\n"
643
+ }))], {}, {}), _t.node(_l.Regex, "Character", [_t.embedded(_t.s_e_node(_l.CSTML, "Escape", [_t.lit("\\\\")], {}, {
644
+ cooked: "\\"
645
+ }))], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("\"")], {}, {})],
646
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "]")
647
+ }, {
648
+ negate: true
649
+ }),
650
+ value: _t.s_i_node(_l.Regex, "Keyword", "+")
651
+ }, {
652
+ min: 1,
653
+ max: Infinity,
654
+ greedy: true
655
+ })]
656
+ }, {})],
657
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "/")
658
+ }, {})],
659
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
660
+ }, {})
661
+ }, {});
662
+ } while (esc || lit);
663
+ }
664
+ *EscapeSequence({
665
+ state: {
666
+ span
667
+ },
668
+ ctx
669
+ }) {
670
+ if (!span.startsWith('String')) {
671
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
672
+ verb: _t.s_node(_l.Instruction, "Identifier", "fail"),
673
+ arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`closeToken`], {
674
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
675
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
676
+ }, {})
677
+ }, {});
678
+ }
679
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
680
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
681
+ 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`], {
682
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
683
+ 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`], {
684
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
685
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], {
686
+ intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"),
687
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
688
+ }, {}),
689
+ type: _t.s_node(_l.Spamex, "Identifier", "Punctuator"),
690
+ intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
691
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
692
+ content: _t.node(_l.CSTML, "Content", [_t.embedded(_t.s_e_node(_l.CSTML, "Escape", [_t.lit("\\\\")], {}, {
693
+ cooked: "\\"
694
+ }))], {}, {}),
695
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
696
+ }, {}),
697
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
698
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
699
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
700
+ content: _t.node(_l.CSTML, "Content", [_t.lit("sigilToken")], {}, {}),
701
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
702
+ }, {})],
703
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
704
+ }, {})
705
+ }, {});
706
+ let match, cooked;
707
+ if (match = yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
708
+ verb: _t.s_node(_l.Instruction, "Identifier", "match"),
709
+ arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.ref`closeToken`], {
710
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
711
+ values: [_t.node(_l.Regex, "Pattern", [_t.ref`openToken`, _t.ref`alternatives[]`, _t.ref`closeToken`], {
712
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "/"),
713
+ alternatives: [_t.node(_l.Regex, "Alternative", [_t.ref`elements[]`], {
714
+ 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`], {
715
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "["),
716
+ elements: [_t.node(_l.Regex, "Character", [_t.embedded(_t.s_e_node(_l.CSTML, "Escape", [_t.lit("\\\\")], {}, {
717
+ cooked: "\\"
718
+ }))], {}, {}), _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("\"")], {}, {})],
719
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "]")
720
+ }, {
721
+ negate: false
722
+ })]
723
+ }, {})],
724
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "/")
725
+ }, {})],
726
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
727
+ }, {})
728
+ }, {})) {
729
+ const match_ = ctx.sourceTextFor(match);
730
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
731
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
732
+ 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`], {
733
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
734
+ 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`], {
735
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
736
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], {
737
+ intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"),
738
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
739
+ }, {}),
740
+ type: _t.s_node(_l.Spamex, "Identifier", "Keyword"),
741
+ intrinsicValue: buildString(match_),
742
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
743
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
744
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
745
+ content: _t.node(_l.CSTML, "Content", [_t.lit("value")], {}, {}),
746
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
747
+ }, {})],
748
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
749
+ }, {})
750
+ }, {});
751
+ cooked = escapables.get(match_) || match_;
752
+ } else if (yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
753
+ verb: _t.s_node(_l.Instruction, "Identifier", "match"),
754
+ arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.ref`closeToken`], {
755
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
756
+ values: [_t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
757
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
758
+ content: _t.node(_l.CSTML, "Content", [_t.lit("u")], {}, {}),
759
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
760
+ }, {})],
761
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
762
+ }, {})
763
+ }, {})) {
764
+ const codeNode = yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
765
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
766
+ 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`], {
767
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
768
+ values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.ref`closeToken`], {
769
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
770
+ flags: _t.node(_l.CSTML, "Flags", [], {}, {}),
771
+ type: _t.s_node(_l.Spamex, "Identifier", "EscapeCode"),
772
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
773
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
774
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
775
+ content: _t.node(_l.CSTML, "Content", [_t.lit("value")], {}, {}),
776
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
777
+ }, {})],
778
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
779
+ }, {})
780
+ }, {});
781
+ cooked = parseInt(ctx.getProperty(codeNode, 'digits').map(digit => ctx.sourceTextFor(digit)).join(''), 16);
782
+ } else {
783
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
784
+ verb: _t.s_node(_l.Instruction, "Identifier", "fail"),
785
+ arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`closeToken`], {
786
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
787
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
788
+ }, {})
789
+ }, {});
790
+ }
791
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
792
+ verb: _t.s_node(_l.Instruction, "Identifier", "bindAttribute"),
793
+ 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`], {
794
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
795
+ values: [_t.s_node(_l.Instruction, "Identifier", "cooked"), ..._interpolateArray(buildString(cooked.toString(10)))],
796
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
797
+ }, {})
798
+ }, {});
799
+ }
800
+ *EscapeCode() {
801
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
802
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
803
+ 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`], {
804
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
805
+ 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`], {
806
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
807
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], {
808
+ intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"),
809
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
810
+ }, {}),
811
+ type: _t.s_node(_l.Spamex, "Identifier", "Keyword"),
812
+ intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
813
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
814
+ content: _t.node(_l.CSTML, "Content", [_t.lit("u")], {}, {}),
815
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
816
+ }, {}),
817
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
818
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
819
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
820
+ content: _t.node(_l.CSTML, "Content", [_t.lit("typeToken")], {}, {}),
821
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
822
+ }, {})],
823
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
824
+ }, {})
825
+ }, {});
826
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
827
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
828
+ 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`], {
829
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
830
+ values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.ref`closeToken`], {
831
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
832
+ flags: _t.node(_l.CSTML, "Flags", [], {}, {}),
833
+ type: _t.s_node(_l.Spamex, "Identifier", "Digits"),
834
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
835
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
836
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
837
+ content: _t.node(_l.CSTML, "Content", [_t.lit("digits[]")], {}, {}),
838
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
839
+ }, {})],
840
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
841
+ }, {})
842
+ }, {});
843
+ }
844
+ *Number() {
845
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
846
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
847
+ 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`], {
848
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
849
+ values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.ref`closeToken`], {
850
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
851
+ flags: _t.node(_l.CSTML, "Flags", [], {}, {}),
852
+ type: _t.s_node(_l.Spamex, "Identifier", "Integer"),
853
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
854
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
855
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
856
+ content: _t.node(_l.CSTML, "Content", [_t.lit("wholePart")], {}, {}),
857
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
858
+ }, {}), _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`], {
859
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "{"),
860
+ 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`], {
861
+ key: _t.node(_l.Instruction, "Literal", [_t.lit("noDoubleZero")], {}, {}),
862
+ mapToken: _t.s_i_node(_l.Instruction, "Punctuator", ":"),
863
+ value: _t.node(_l.Instruction, "Boolean", [_t.ref`sigilToken`], {
864
+ sigilToken: _t.s_i_node(_l.Instruction, "Keyword", "true")
865
+ }, {})
866
+ }, {}), _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`], {
867
+ key: _t.node(_l.Instruction, "Literal", [_t.lit("matchSign")], {}, {}),
868
+ mapToken: _t.s_i_node(_l.Instruction, "Punctuator", ":"),
869
+ value: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
870
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
871
+ content: _t.node(_l.CSTML, "Content", [_t.lit("-")], {}, {}),
872
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
873
+ }, {})
874
+ }, {})],
875
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", "}")
876
+ }, {})],
877
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
878
+ }, {})
879
+ }, {});
880
+ let fs = yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
881
+ verb: _t.s_node(_l.Instruction, "Identifier", "eatMatch"),
882
+ 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`], {
883
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
884
+ 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`], {
885
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
886
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], {
887
+ intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"),
888
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
889
+ }, {}),
890
+ type: _t.s_node(_l.Spamex, "Identifier", "Punctuator"),
891
+ intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
892
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
893
+ content: _t.node(_l.CSTML, "Content", [_t.lit(".")], {}, {}),
894
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
895
+ }, {}),
896
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
897
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
898
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
899
+ content: _t.node(_l.CSTML, "Content", [_t.lit("fractionalSeparatorToken")], {}, {}),
900
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
901
+ }, {})],
902
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
903
+ }, {})
904
+ }, {});
905
+ if (fs) {
906
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
907
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
908
+ 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`], {
909
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
910
+ values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.ref`closeToken`], {
911
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
912
+ flags: _t.node(_l.CSTML, "Flags", [], {}, {}),
913
+ type: _t.s_node(_l.Spamex, "Identifier", "Integer"),
914
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
915
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
916
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
917
+ content: _t.node(_l.CSTML, "Content", [_t.lit("fractionalPart")], {}, {}),
918
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
919
+ }, {})],
920
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
921
+ }, {})
922
+ }, {});
923
+ } else {
924
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
925
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
926
+ 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`], {
927
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
928
+ values: [_t.node(_l.Instruction, "Null", [_t.ref`sigilToken`], {
929
+ sigilToken: _t.s_i_node(_l.Instruction, "Keyword", "null")
930
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
931
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
932
+ content: _t.node(_l.CSTML, "Content", [_t.lit("fractionalPart")], {}, {}),
933
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
934
+ }, {})],
935
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
936
+ }, {})
937
+ }, {});
938
+ }
939
+ let es = yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
940
+ verb: _t.s_node(_l.Instruction, "Identifier", "eatMatch"),
941
+ 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`], {
942
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
943
+ 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`], {
944
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
945
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], {
946
+ intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"),
947
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
948
+ }, {}),
949
+ type: _t.s_node(_l.Spamex, "Identifier", "Punctuator"),
950
+ intrinsicValue: _t.node(_l.Regex, "Pattern", [_t.ref`openToken`, _t.ref`alternatives[]`, _t.ref`closeToken`], {
951
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "/"),
952
+ alternatives: [_t.node(_l.Regex, "Alternative", [_t.ref`elements[]`], {
953
+ elements: [_t.node(_l.Regex, "CharacterClass", [_t.ref`openToken`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`closeToken`], {
954
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "["),
955
+ elements: [_t.node(_l.Regex, "Character", [_t.lit("e")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("E")], {}, {})],
956
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "]")
957
+ }, {
958
+ negate: false
959
+ })]
960
+ }, {})],
961
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "/")
962
+ }, {}),
963
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
964
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
965
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
966
+ content: _t.node(_l.CSTML, "Content", [_t.lit("exponentSeparatorToken")], {}, {}),
967
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
968
+ }, {})],
969
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
970
+ }, {})
971
+ }, {});
972
+ if (es) {
973
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
974
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
975
+ 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`], {
976
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
977
+ values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.ref`closeToken`], {
978
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
979
+ flags: _t.node(_l.CSTML, "Flags", [], {}, {}),
980
+ type: _t.s_node(_l.Spamex, "Identifier", "Integer"),
981
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
982
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
983
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
984
+ content: _t.node(_l.CSTML, "Content", [_t.lit("exponentPart")], {}, {}),
985
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
986
+ }, {}), _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`], {
987
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "{"),
988
+ 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`], {
989
+ key: _t.node(_l.Instruction, "Literal", [_t.lit("matchSign")], {}, {}),
990
+ mapToken: _t.s_i_node(_l.Instruction, "Punctuator", ":"),
991
+ value: _t.node(_l.Regex, "Pattern", [_t.ref`openToken`, _t.ref`alternatives[]`, _t.ref`closeToken`], {
992
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "/"),
993
+ alternatives: [_t.node(_l.Regex, "Alternative", [_t.ref`elements[]`], {
994
+ elements: [_t.node(_l.Regex, "CharacterClass", [_t.ref`openToken`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`closeToken`], {
995
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "["),
996
+ elements: [_t.node(_l.Regex, "Character", [_t.lit("+")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("-")], {}, {})],
997
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "]")
998
+ }, {
999
+ negate: false
1000
+ })]
1001
+ }, {})],
1002
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "/")
1003
+ }, {})
1004
+ }, {})],
1005
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", "}")
1006
+ }, {})],
1007
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
1008
+ }, {})
1009
+ }, {});
1010
+ } else {
1011
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
1012
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
1013
+ 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`], {
1014
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
1015
+ values: [_t.node(_l.Instruction, "Null", [_t.ref`sigilToken`], {
1016
+ sigilToken: _t.s_i_node(_l.Instruction, "Keyword", "null")
1017
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
1018
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
1019
+ content: _t.node(_l.CSTML, "Content", [_t.lit("exponentPart")], {}, {}),
1020
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
1021
+ }, {})],
1022
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
1023
+ }, {})
1024
+ }, {});
1025
+ }
1026
+ }
1027
+ *Integer({
1028
+ value: props,
1029
+ ctx
1030
+ }) {
1031
+ const {
1032
+ matchSign = null,
1033
+ noDoubleZero = false
1034
+ } = props && ctx.unbox(props) || {};
1035
+ if (matchSign) {
1036
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
1037
+ verb: _t.s_node(_l.Instruction, "Identifier", "eatMatch"),
1038
+ 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`], {
1039
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
1040
+ 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`], {
1041
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
1042
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], {
1043
+ intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"),
1044
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
1045
+ }, {}),
1046
+ type: _t.s_node(_l.Spamex, "Identifier", "Punctuator"),
1047
+ intrinsicValue: matchSign,
1048
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
1049
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
1050
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
1051
+ content: _t.node(_l.CSTML, "Content", [_t.lit("signToken")], {}, {}),
1052
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
1053
+ }, {})],
1054
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
1055
+ }, {})
1056
+ }, {});
1057
+ } else {
1058
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
1059
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
1060
+ 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`], {
1061
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
1062
+ values: [_t.node(_l.Instruction, "Null", [_t.ref`sigilToken`], {
1063
+ sigilToken: _t.s_i_node(_l.Instruction, "Keyword", "null")
1064
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
1065
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
1066
+ content: _t.node(_l.CSTML, "Content", [_t.lit("signToken")], {}, {}),
1067
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
1068
+ }, {})],
1069
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
1070
+ }, {})
1071
+ }, {});
1072
+ }
1073
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
1074
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
1075
+ 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`], {
1076
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
1077
+ 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`], {
1078
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
1079
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`tokenToken`], {
1080
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
1081
+ }, {}),
1082
+ type: _t.s_node(_l.Spamex, "Identifier", "UnsignedInteger"),
1083
+ attributes: [_t.node(_l.Spamex, "MappingAttribute", [_t.ref`key`, _t.ref`mapToken`, _t.ref`value`], {
1084
+ key: _t.node(_l.Spamex, "Literal", [_t.lit("noDoubleZero")], {}, {}),
1085
+ mapToken: _t.s_i_node(_l.Spamex, "Punctuator", "="),
1086
+ value: buildBoolean(noDoubleZero)
1087
+ }, {})],
1088
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
1089
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
1090
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
1091
+ content: _t.node(_l.CSTML, "Content", [_t.lit("value")], {}, {}),
1092
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
1093
+ }, {})],
1094
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
1095
+ }, {})
1096
+ }, {});
1097
+ }
1098
+ *UnsignedInteger({
1099
+ value: props,
1100
+ ctx
1101
+ }) {
1102
+ const {
1103
+ noDoubleZero = false
1104
+ } = props && ctx.unbox(props) || {};
1105
+ let [firstDigit] = ctx.ownTerminalsFor(yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
1106
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
1107
+ arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.ref`closeToken`], {
1108
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
1109
+ values: [_t.node(_l.Regex, "Pattern", [_t.ref`openToken`, _t.ref`alternatives[]`, _t.ref`closeToken`], {
1110
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "/"),
1111
+ alternatives: [_t.node(_l.Regex, "Alternative", [_t.ref`elements[]`], {
1112
+ elements: [_t.node(_l.Regex, "DigitCharacterSet", [_t.ref`escapeToken`, _t.ref`value`], {
1113
+ escapeToken: _t.s_i_node(_l.Regex, "Punctuator", "\\"),
1114
+ value: _t.s_i_node(_l.Regex, "Keyword", "d")
1115
+ }, {})]
1116
+ }, {})],
1117
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "/")
1118
+ }, {})],
1119
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
1120
+ }, {})
1121
+ }, {}));
1122
+ if (!noDoubleZero || firstDigit.value !== '0') {
1123
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
1124
+ verb: _t.s_node(_l.Instruction, "Identifier", "eatMatch"),
1125
+ arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.ref`closeToken`], {
1126
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
1127
+ values: [_t.node(_l.Regex, "Pattern", [_t.ref`openToken`, _t.ref`alternatives[]`, _t.ref`closeToken`], {
1128
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "/"),
1129
+ alternatives: [_t.node(_l.Regex, "Alternative", [_t.ref`elements[]`], {
1130
+ elements: [_t.node(_l.Regex, "Quantifier", [_t.ref`element`, _t.ref`value`], {
1131
+ element: _t.node(_l.Regex, "DigitCharacterSet", [_t.ref`escapeToken`, _t.ref`value`], {
1132
+ escapeToken: _t.s_i_node(_l.Regex, "Punctuator", "\\"),
1133
+ value: _t.s_i_node(_l.Regex, "Keyword", "d")
1134
+ }, {}),
1135
+ value: _t.s_i_node(_l.Regex, "Keyword", "+")
1136
+ }, {
1137
+ min: 1,
1138
+ max: Infinity,
1139
+ greedy: true
1140
+ })]
1141
+ }, {})],
1142
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "/")
1143
+ }, {})],
1144
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
1145
+ }, {})
1146
+ }, {});
1147
+ }
1148
+ }
1149
+ *Boolean() {
1150
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
1151
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
1152
+ 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`], {
1153
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
1154
+ 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`], {
1155
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
1156
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], {
1157
+ intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"),
1158
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
1159
+ }, {}),
1160
+ type: _t.s_node(_l.Spamex, "Identifier", "Keyword"),
1161
+ intrinsicValue: _t.node(_l.Regex, "Pattern", [_t.ref`openToken`, _t.ref`alternatives[]`, _t.ref`separators[]`, _t.ref`alternatives[]`, _t.ref`closeToken`], {
1162
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "/"),
1163
+ alternatives: [_t.node(_l.Regex, "Alternative", [_t.ref`elements[]`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`elements[]`], {
1164
+ 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")], {}, {})]
1165
+ }, {}), _t.node(_l.Regex, "Alternative", [_t.ref`elements[]`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`elements[]`], {
1166
+ 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")], {}, {})]
1167
+ }, {})],
1168
+ separators: [_t.s_i_node(_l.Regex, "Punctuator", "|")],
1169
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "/")
1170
+ }, {}),
1171
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
1172
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
1173
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
1174
+ content: _t.node(_l.CSTML, "Content", [_t.lit("sigilToken")], {}, {}),
1175
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
1176
+ }, {})],
1177
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
1178
+ }, {})
1179
+ }, {});
1180
+ }
1181
+ *Null() {
1182
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
1183
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
1184
+ 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`], {
1185
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
1186
+ 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`], {
1187
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
1188
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], {
1189
+ intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"),
1190
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
1191
+ }, {}),
1192
+ type: _t.s_node(_l.Spamex, "Identifier", "Keyword"),
1193
+ intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
1194
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
1195
+ content: _t.node(_l.CSTML, "Content", [_t.lit("null")], {}, {}),
1196
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
1197
+ }, {}),
1198
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
1199
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
1200
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
1201
+ content: _t.node(_l.CSTML, "Content", [_t.lit("sigilToken")], {}, {}),
1202
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
1203
+ }, {})],
1204
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
1205
+ }, {})
1206
+ }, {});
1207
+ }
1208
+ *Keyword() {}
1209
+ *Punctuator() {}
1210
+ *List() {}
1211
+ *Any() {}
1212
+ });