@bablr/language-en-regex-vm-pattern 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,2480 @@
1
+ /* @macrome
2
+ * @generatedby @bablr/macrome-generator-bablr
3
+ * @generatedfrom ./grammar.macro.js#a65919df84f608855ab2c6d9b6f40c4fa28f563d
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, _FlagsDecs, _GroupDecs, _AssertionDecs, _StartOfInputAssertionDecs, _EndOfInputAssertionDecs, _WordBoundaryAssertionDecs, _GapDecs, _CharacterDecs, _CharacterClassDecs, _CharacterClassRangeDecs, _CharacterSetDecs, _AnyCharacterSetDecs, _DigitCharacterSetDecs, _SpaceCharacterSetDecs, _WordCharacterSetDecs, _QuantifierDecs, _EscapeSequenceDecs, _AnyDecs, _KeywordDecs, _PunctuatorDecs;
12
+ import { Node, CoveredBy, InjectFrom, Attributes, AllowEmpty } from '@bablr/helpers/decorators';
13
+ import objectEntries from 'iter-tools-es/methods/object-entries';
14
+ import * as Shared from '@bablr/helpers/productions';
15
+ import { buildString, buildBoolean, buildNumber, buildNull } from '@bablr/agast-vm-helpers';
16
+ export const canonicalURL = 'https://bablr.org/languages/core/en/bablr-regex-pattern';
17
+ export const dependencies = {};
18
+ const escapables = new Map(objectEntries({
19
+ n: '\n',
20
+ r: '\r',
21
+ t: '\t',
22
+ 0: '\0'
23
+ }));
24
+ const flagCharacters = {
25
+ global: 'g',
26
+ ignoreCase: 'i',
27
+ multiline: 'm',
28
+ dotAll: 's',
29
+ unicode: 'u',
30
+ sticky: 'y'
31
+ };
32
+ const unique = flags => flags.length === new Set(flags).size;
33
+ const getSpecialPattern = span => {
34
+ if (span === 'Pattern') {
35
+ return _t.node(_l.Regex, "Pattern", [_t.ref`openToken`, _t.ref`alternatives[]`, _t.ref`closeToken`], {
36
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "/"),
37
+ alternatives: [_t.node(_l.Regex, "Alternative", [_t.ref`elements[]`], {
38
+ 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`elements[]`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`closeToken`], {
39
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "["),
40
+ elements: [_t.node(_l.Regex, "Character", [_t.lit("*")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("+")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("{")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("}")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("[")], {}, {}), _t.node(_l.Regex, "Character", [_t.embedded(_t.s_e_node(_l.CSTML, "Escape", [_t.lit("\\]")], {}, {
41
+ cooked: "]"
42
+ }))], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("(")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit(")")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit(".")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("^")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("$")], {}, {}), _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("\\\\")], {}, {
45
+ cooked: "\\"
46
+ }))], {}, {})],
47
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "]")
48
+ }, {
49
+ negate: false
50
+ })]
51
+ }, {})],
52
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "/")
53
+ }, {});
54
+ } else if (span === 'CharacterClass') {
55
+ return _t.node(_l.Regex, "Pattern", [_t.ref`openToken`, _t.ref`alternatives[]`, _t.ref`closeToken`], {
56
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "/"),
57
+ alternatives: [_t.node(_l.Regex, "Alternative", [_t.ref`elements[]`], {
58
+ elements: [_t.node(_l.Regex, "CharacterClass", [_t.ref`openToken`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`closeToken`], {
59
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "["),
60
+ elements: [_t.node(_l.Regex, "Character", [_t.embedded(_t.s_e_node(_l.CSTML, "Escape", [_t.lit("\\]")], {}, {
61
+ cooked: "]"
62
+ }))], {}, {}), _t.node(_l.Regex, "Character", [_t.embedded(_t.s_e_node(_l.CSTML, "Escape", [_t.lit("\\\\")], {}, {
63
+ cooked: "\\"
64
+ }))], {}, {})],
65
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "]")
66
+ }, {
67
+ negate: false
68
+ })]
69
+ }, {})],
70
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "/")
71
+ }, {});
72
+ } else {
73
+ throw new Error('unknown span type for special pattern');
74
+ }
75
+ };
76
+ export const grammar = class RegexGrammar {
77
+ static {
78
+ [_initProto] = _applyDecs(this, [[Node, 2, "Pattern"], [_FlagsDecs, 2, "Flags"], [AllowEmpty, 2, "Alternatives"], [[AllowEmpty, Node], 2, "Alternative"], [AllowEmpty, 2, "Elements"], [_GroupDecs, 2, "Group"], [Node, 2, "CapturingGroup"], [_AssertionDecs, 2, "Assertion"], [_StartOfInputAssertionDecs, 2, "StartOfInputAssertion"], [_EndOfInputAssertionDecs, 2, "EndOfInputAssertion"], [_WordBoundaryAssertionDecs, 2, "WordBoundaryAssertion"], [_GapDecs, 2, "Gap"], [_CharacterDecs, 2, "Character"], [_CharacterClassDecs, 2, "CharacterClass"], [_CharacterClassRangeDecs, 2, "CharacterClassRange"], [_CharacterSetDecs, 2, "CharacterSet"], [_AnyCharacterSetDecs, 2, "AnyCharacterSet"], [_DigitCharacterSetDecs, 2, "DigitCharacterSet"], [_SpaceCharacterSetDecs, 2, "SpaceCharacterSet"], [_WordCharacterSetDecs, 2, "WordCharacterSet"], [_QuantifierDecs, 2, "Quantifier"], [Node, 2, "UnsignedInteger"], [_EscapeSequenceDecs, 2, "EscapeSequence"], [Node, 2, "EscapeCode"], [Node, 2, "Digit"], [_AnyDecs, 2, "Any"], [_KeywordDecs, 2, "Keyword"], [_PunctuatorDecs, 2, "Punctuator"]], []).e;
79
+ }
80
+ constructor() {
81
+ _initProto(this);
82
+ }
83
+ *[(_FlagsDecs = [Attributes(Object.keys(flagCharacters)), AllowEmpty, Node], _GroupDecs = [CoveredBy('Element'), Node], _AssertionDecs = CoveredBy('Element'), _StartOfInputAssertionDecs = [CoveredBy('Assertion'), Node], _EndOfInputAssertionDecs = [CoveredBy('Assertion'), Node], _WordBoundaryAssertionDecs = [Attributes(['negate']), CoveredBy('Assertion'), Node], _GapDecs = [CoveredBy('Assertion'), Node], _CharacterDecs = [CoveredBy('Element'), CoveredBy('CharacterClassElement'), Node], _CharacterClassDecs = [Attributes(['negate']), CoveredBy('Element'), Node], _CharacterClassRangeDecs = [CoveredBy('CharacterClassElement'), Node], _CharacterSetDecs = CoveredBy('Element'), _AnyCharacterSetDecs = [CoveredBy('CharacterSet'), Node], _DigitCharacterSetDecs = [Attributes(['negate']), CoveredBy('CharacterSet'), Node], _SpaceCharacterSetDecs = [Attributes(['negate']), CoveredBy('CharacterSet'), Node], _WordCharacterSetDecs = [Attributes(['negate']), CoveredBy('CharacterSet'), Node], _QuantifierDecs = [Attributes(['min', 'max']), Node], _EscapeSequenceDecs = [Attributes(['cooked']), Node], _AnyDecs = InjectFrom(Shared), _KeywordDecs = [Node, InjectFrom(Shared)], _PunctuatorDecs = [Node, InjectFrom(Shared)], "Pattern")]() {
84
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
85
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
86
+ 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`], {
87
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
88
+ 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`], {
89
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
90
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], {
91
+ intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"),
92
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
93
+ }, {}),
94
+ type: _t.s_node(_l.Spamex, "Identifier", "Punctuator"),
95
+ intrinsicValue: _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("/")], {}, {}),
98
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
99
+ }, {}),
100
+ attributes: [_t.node(_l.Spamex, "MappingAttribute", [_t.ref`key`, _t.ref`mapToken`, _t.ref`value`], {
101
+ key: _t.node(_l.Spamex, "Literal", [_t.lit("balanced")], {}, {}),
102
+ mapToken: _t.s_i_node(_l.Spamex, "Punctuator", "="),
103
+ value: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
104
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
105
+ content: _t.node(_l.CSTML, "Content", [_t.lit("/")], {}, {}),
106
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
107
+ }, {})
108
+ }, {}), _t.node(_l.Spamex, "MappingAttribute", [_t.ref`key`, _t.ref`mapToken`, _t.ref`value`], {
109
+ key: _t.node(_l.Spamex, "Literal", [_t.lit("balancedSpan")], {}, {}),
110
+ mapToken: _t.s_i_node(_l.Spamex, "Punctuator", "="),
111
+ value: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
112
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
113
+ content: _t.node(_l.CSTML, "Content", [_t.lit("Pattern")], {}, {}),
114
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
115
+ }, {})
116
+ }, {})],
117
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
118
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
119
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
120
+ content: _t.node(_l.CSTML, "Content", [_t.lit("openToken")], {}, {}),
121
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
122
+ }, {})],
123
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
124
+ }, {})
125
+ }, {});
126
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
127
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
128
+ arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.ref`closeToken`], {
129
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
130
+ values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.ref`closeToken`], {
131
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
132
+ flags: _t.node(_l.CSTML, "Flags", [], {}, {}),
133
+ type: _t.s_node(_l.Spamex, "Identifier", "Alternatives"),
134
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
135
+ }, {})],
136
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
137
+ }, {})
138
+ }, {});
139
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
140
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
141
+ 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`], {
142
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
143
+ 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`], {
144
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
145
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], {
146
+ intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"),
147
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
148
+ }, {}),
149
+ type: _t.s_node(_l.Spamex, "Identifier", "Punctuator"),
150
+ intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
151
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
152
+ content: _t.node(_l.CSTML, "Content", [_t.lit("/")], {}, {}),
153
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
154
+ }, {}),
155
+ attributes: [_t.node(_l.Spamex, "BooleanAttribute", [_t.ref`key`], {
156
+ key: _t.node(_l.Spamex, "Literal", [_t.lit("balancer")], {}, {})
157
+ }, {})],
158
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
159
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
160
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
161
+ content: _t.node(_l.CSTML, "Content", [_t.lit("closeToken")], {}, {}),
162
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
163
+ }, {})],
164
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
165
+ }, {})
166
+ }, {});
167
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
168
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
169
+ 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`], {
170
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
171
+ values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.ref`closeToken`], {
172
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
173
+ flags: _t.node(_l.CSTML, "Flags", [], {}, {}),
174
+ type: _t.s_node(_l.Spamex, "Identifier", "Flags"),
175
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
176
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
177
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
178
+ content: _t.node(_l.CSTML, "Content", [_t.lit("flags")], {}, {}),
179
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
180
+ }, {})],
181
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
182
+ }, {})
183
+ }, {});
184
+ }
185
+ *Flags({
186
+ ctx
187
+ }) {
188
+ const flags = yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
189
+ verb: _t.s_node(_l.Instruction, "Identifier", "match"),
190
+ arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.ref`closeToken`], {
191
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
192
+ values: [_t.node(_l.Regex, "Pattern", [_t.ref`openToken`, _t.ref`alternatives[]`, _t.ref`closeToken`], {
193
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "/"),
194
+ alternatives: [_t.node(_l.Regex, "Alternative", [_t.ref`elements[]`], {
195
+ elements: [_t.node(_l.Regex, "Quantifier", [_t.ref`element`, _t.ref`value`], {
196
+ element: _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`closeToken`], {
197
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "["),
198
+ elements: [_t.node(_l.Regex, "Character", [_t.lit("g")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("i")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("m")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("s")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("u")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("y")], {}, {})],
199
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "]")
200
+ }, {
201
+ negate: false
202
+ }),
203
+ value: _t.s_i_node(_l.Regex, "Keyword", "+")
204
+ }, {
205
+ min: 1,
206
+ max: Infinity,
207
+ greedy: true
208
+ })]
209
+ }, {})],
210
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "/")
211
+ }, {})],
212
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
213
+ }, {})
214
+ }, {});
215
+ const flagsStr = ctx.sourceTextFor(flags) || '';
216
+ if (flagsStr && !unique(flagsStr)) throw new Error('flags must be unique');
217
+ for (const {
218
+ 0: name,
219
+ 1: chr
220
+ } of Object.entries(flagCharacters)) {
221
+ if (flagsStr.includes(chr)) {
222
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
223
+ verb: _t.s_node(_l.Instruction, "Identifier", "bindAttribute"),
224
+ arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, ..._interpolateArrayChildren(buildString(name), _t.ref`values[]`, _t.embedded(_t.t_node(_l.Comment, null, [_t.embedded(_t.t_node('Space', 'Space', [_t.lit(' ')]))]))), _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`values[]`, _t.ref`closeToken`], {
225
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
226
+ values: [..._interpolateArray(buildString(name)), _t.node(_l.Instruction, "Boolean", [_t.ref`sigilToken`], {
227
+ sigilToken: _t.s_i_node(_l.Instruction, "Keyword", "true")
228
+ }, {})],
229
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
230
+ }, {})
231
+ }, {});
232
+ } else {
233
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
234
+ verb: _t.s_node(_l.Instruction, "Identifier", "bindAttribute"),
235
+ arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, ..._interpolateArrayChildren(buildString(name), _t.ref`values[]`, _t.embedded(_t.t_node(_l.Comment, null, [_t.embedded(_t.t_node('Space', 'Space', [_t.lit(' ')]))]))), _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`values[]`, _t.ref`closeToken`], {
236
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
237
+ values: [..._interpolateArray(buildString(name)), _t.node(_l.Instruction, "Boolean", [_t.ref`sigilToken`], {
238
+ sigilToken: _t.s_i_node(_l.Instruction, "Keyword", "false")
239
+ }, {})],
240
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
241
+ }, {})
242
+ }, {});
243
+ }
244
+ }
245
+ for (const flagChr of flagsStr) {
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.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.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), _t.ref`intrinsicValue`, _t.ref`closeToken`], {
251
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
252
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`tokenToken`], {
253
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
254
+ }, {}),
255
+ type: _t.s_node(_l.Spamex, "Identifier", "Keyword"),
256
+ intrinsicValue: buildString(flagChr),
257
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
258
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
259
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
260
+ content: _t.node(_l.CSTML, "Content", [_t.lit("tokens[]")], {}, {}),
261
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
262
+ }, {})],
263
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
264
+ }, {})
265
+ }, {});
266
+ }
267
+ }
268
+ *Alternatives() {
269
+ do {
270
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
271
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
272
+ 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`], {
273
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
274
+ values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.ref`closeToken`], {
275
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
276
+ flags: _t.node(_l.CSTML, "Flags", [], {}, {}),
277
+ type: _t.s_node(_l.Spamex, "Identifier", "Alternative"),
278
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
279
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
280
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
281
+ content: _t.node(_l.CSTML, "Content", [_t.lit("alternatives[]")], {}, {}),
282
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
283
+ }, {})],
284
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
285
+ }, {})
286
+ }, {});
287
+ } while (yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
288
+ verb: _t.s_node(_l.Instruction, "Identifier", "eatMatch"),
289
+ 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`], {
290
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
291
+ 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`], {
292
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
293
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], {
294
+ intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"),
295
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
296
+ }, {}),
297
+ type: _t.s_node(_l.Spamex, "Identifier", "Punctuator"),
298
+ intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
299
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
300
+ content: _t.node(_l.CSTML, "Content", [_t.lit("|")], {}, {}),
301
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
302
+ }, {}),
303
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
304
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
305
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
306
+ content: _t.node(_l.CSTML, "Content", [_t.lit("separators[]")], {}, {}),
307
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
308
+ }, {})],
309
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
310
+ }, {})
311
+ }, {}));
312
+ }
313
+ *Alternative() {
314
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
315
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
316
+ arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.ref`closeToken`], {
317
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
318
+ values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.ref`closeToken`], {
319
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
320
+ flags: _t.node(_l.CSTML, "Flags", [], {}, {}),
321
+ type: _t.s_node(_l.Spamex, "Identifier", "Elements"),
322
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
323
+ }, {})],
324
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
325
+ }, {})
326
+ }, {});
327
+ }
328
+ *Elements() {
329
+ let matched = false;
330
+ while (yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
331
+ verb: _t.s_node(_l.Instruction, "Identifier", "match"),
332
+ arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.ref`closeToken`], {
333
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
334
+ values: [_t.node(_l.Regex, "Pattern", [_t.ref`openToken`, _t.ref`alternatives[]`, _t.ref`closeToken`], {
335
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "/"),
336
+ alternatives: [_t.node(_l.Regex, "Alternative", [_t.ref`elements[]`], {
337
+ elements: [_t.node(_l.Regex, "CharacterClass", [_t.ref`openToken`, _t.ref`negateToken`, _t.ref`elements[]`, _t.ref`closeToken`], {
338
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "["),
339
+ negateToken: _t.s_i_node(_l.Regex, "Keyword", "^"),
340
+ elements: [_t.node(_l.Regex, "Character", [_t.lit("|")], {}, {})],
341
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "]")
342
+ }, {
343
+ negate: true
344
+ })]
345
+ }, {})],
346
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "/")
347
+ }, {})],
348
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
349
+ }, {})
350
+ }, {})) {
351
+ matched = true;
352
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
353
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
354
+ 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`], {
355
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
356
+ values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.ref`closeToken`], {
357
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
358
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`expressionToken`], {
359
+ expressionToken: _t.s_i_node(_l.CSTML, "Punctuator", "+")
360
+ }, {}),
361
+ type: _t.s_node(_l.Spamex, "Identifier", "Element"),
362
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
363
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
364
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
365
+ content: _t.node(_l.CSTML, "Content", [_t.lit("elements[]")], {}, {}),
366
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
367
+ }, {})],
368
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
369
+ }, {})
370
+ }, {});
371
+ }
372
+ if (!matched) yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
373
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
374
+ 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`], {
375
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
376
+ values: [_t.node(_l.Instruction, "Null", [_t.ref`sigilToken`], {
377
+ sigilToken: _t.s_i_node(_l.Instruction, "Keyword", "null")
378
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
379
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
380
+ content: _t.node(_l.CSTML, "Content", [_t.lit("elements[]")], {}, {}),
381
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
382
+ }, {})],
383
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
384
+ }, {})
385
+ }, {});
386
+ }
387
+ *Element() {
388
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
389
+ verb: _t.s_node(_l.Instruction, "Identifier", "guard"),
390
+ arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.ref`closeToken`], {
391
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
392
+ 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`], {
393
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
394
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], {
395
+ intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"),
396
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
397
+ }, {}),
398
+ type: _t.s_node(_l.Spamex, "Identifier", "Keyword"),
399
+ intrinsicValue: _t.node(_l.Regex, "Pattern", [_t.ref`openToken`, _t.ref`alternatives[]`, _t.ref`closeToken`], {
400
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "/"),
401
+ alternatives: [_t.node(_l.Regex, "Alternative", [_t.ref`elements[]`], {
402
+ elements: [_t.node(_l.Regex, "CharacterClass", [_t.ref`openToken`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`closeToken`], {
403
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "["),
404
+ elements: [_t.node(_l.Regex, "Character", [_t.lit("*")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("+")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("?")], {}, {})],
405
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "]")
406
+ }, {
407
+ negate: false
408
+ })]
409
+ }, {})],
410
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "/")
411
+ }, {}),
412
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
413
+ }, {})],
414
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
415
+ }, {})
416
+ }, {});
417
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
418
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
419
+ 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`], {
420
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
421
+ values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.ref`closeToken`], {
422
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
423
+ flags: _t.node(_l.CSTML, "Flags", [], {}, {}),
424
+ type: _t.s_node(_l.Spamex, "Identifier", "Any"),
425
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
426
+ }, {}), _t.node(_l.Instruction, "Null", [_t.ref`sigilToken`], {
427
+ sigilToken: _t.s_i_node(_l.Instruction, "Keyword", "null")
428
+ }, {}), _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`], {
429
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "["),
430
+ 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`], {
431
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
432
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`expressionToken`], {
433
+ expressionToken: _t.s_i_node(_l.CSTML, "Punctuator", "+")
434
+ }, {}),
435
+ type: _t.s_node(_l.Spamex, "Identifier", "CharacterClass"),
436
+ intrinsicValue: _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("[")], {}, {}),
439
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
440
+ }, {}),
441
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
442
+ }, {}), _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`], {
443
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
444
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`expressionToken`], {
445
+ expressionToken: _t.s_i_node(_l.CSTML, "Punctuator", "+")
446
+ }, {}),
447
+ type: _t.s_node(_l.Spamex, "Identifier", "Group"),
448
+ intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
449
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
450
+ content: _t.node(_l.CSTML, "Content", [_t.lit("(?:")], {}, {}),
451
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
452
+ }, {}),
453
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
454
+ }, {}), _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`], {
455
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
456
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`expressionToken`], {
457
+ expressionToken: _t.s_i_node(_l.CSTML, "Punctuator", "+")
458
+ }, {}),
459
+ type: _t.s_node(_l.Spamex, "Identifier", "Assertion"),
460
+ intrinsicValue: _t.node(_l.Regex, "Pattern", [_t.ref`openToken`, _t.ref`alternatives[]`, _t.ref`separators[]`, _t.ref`alternatives[]`, _t.ref`closeToken`, _t.ref`flags`], {
461
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "/"),
462
+ alternatives: [_t.node(_l.Regex, "Alternative", [_t.ref`elements[]`], {
463
+ elements: [_t.node(_l.Regex, "CharacterClass", [_t.ref`openToken`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`closeToken`], {
464
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "["),
465
+ elements: [_t.node(_l.Regex, "Character", [_t.lit("$")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("^")], {}, {})],
466
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "]")
467
+ }, {
468
+ negate: false
469
+ })]
470
+ }, {}), _t.node(_l.Regex, "Alternative", [_t.ref`elements[]`, _t.ref`elements[]`], {
471
+ elements: [_t.node(_l.Regex, "Character", [_t.embedded(_t.s_e_node(_l.CSTML, "Escape", [_t.lit("\\\\")], {}, {
472
+ cooked: "\\"
473
+ }))], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("b")], {}, {})]
474
+ }, {})],
475
+ separators: [_t.s_i_node(_l.Regex, "Punctuator", "|")],
476
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "/"),
477
+ flags: _t.node(_l.Regex, "Flags", [_t.ref`tokens[]`], {
478
+ tokens: [_t.s_i_node(_l.Regex, "Keyword", "i")]
479
+ }, {
480
+ global: false,
481
+ ignoreCase: true,
482
+ multiline: false,
483
+ dotAll: false,
484
+ unicode: false,
485
+ sticky: false
486
+ })
487
+ }, {}),
488
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
489
+ }, {}), _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`], {
490
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
491
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`expressionToken`], {
492
+ expressionToken: _t.s_i_node(_l.CSTML, "Punctuator", "+")
493
+ }, {}),
494
+ type: _t.s_node(_l.Spamex, "Identifier", "Gap"),
495
+ intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
496
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
497
+ content: _t.node(_l.CSTML, "Content", [_t.embedded(_t.s_e_node(_l.CSTML, "Escape", [_t.lit("\\\\")], {}, {
498
+ cooked: "\\"
499
+ })), _t.lit("g")], {}, {}),
500
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
501
+ }, {}),
502
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
503
+ }, {}), _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`], {
504
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
505
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`expressionToken`], {
506
+ expressionToken: _t.s_i_node(_l.CSTML, "Punctuator", "+")
507
+ }, {}),
508
+ type: _t.s_node(_l.Spamex, "Identifier", "CharacterSet"),
509
+ intrinsicValue: _t.node(_l.Regex, "Pattern", [_t.ref`openToken`, _t.ref`alternatives[]`, _t.ref`separators[]`, _t.ref`alternatives[]`, _t.ref`closeToken`, _t.ref`flags`], {
510
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "/"),
511
+ alternatives: [_t.node(_l.Regex, "Alternative", [_t.ref`elements[]`], {
512
+ elements: [_t.node(_l.Regex, "Character", [_t.embedded(_t.s_e_node(_l.CSTML, "Escape", [_t.lit("\\.")], {}, {
513
+ cooked: "."
514
+ }))], {}, {})]
515
+ }, {}), _t.node(_l.Regex, "Alternative", [_t.ref`elements[]`, _t.ref`elements[]`], {
516
+ elements: [_t.node(_l.Regex, "Character", [_t.embedded(_t.s_e_node(_l.CSTML, "Escape", [_t.lit("\\\\")], {}, {
517
+ cooked: "\\"
518
+ }))], {}, {}), _t.node(_l.Regex, "CharacterClass", [_t.ref`openToken`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`closeToken`], {
519
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "["),
520
+ elements: [_t.node(_l.Regex, "Character", [_t.lit("d")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("s")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("w")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("p")], {}, {})],
521
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "]")
522
+ }, {
523
+ negate: false
524
+ })]
525
+ }, {})],
526
+ separators: [_t.s_i_node(_l.Regex, "Punctuator", "|")],
527
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "/"),
528
+ flags: _t.node(_l.Regex, "Flags", [_t.ref`tokens[]`], {
529
+ tokens: [_t.s_i_node(_l.Regex, "Keyword", "i")]
530
+ }, {
531
+ global: false,
532
+ ignoreCase: true,
533
+ multiline: false,
534
+ dotAll: false,
535
+ unicode: false,
536
+ sticky: false
537
+ })
538
+ }, {}),
539
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
540
+ }, {}), _t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.ref`closeToken`], {
541
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
542
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`tokenToken`, _t.ref`expressionToken`], {
543
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*"),
544
+ expressionToken: _t.s_i_node(_l.CSTML, "Punctuator", "+")
545
+ }, {}),
546
+ type: _t.s_node(_l.Spamex, "Identifier", "Character"),
547
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
548
+ }, {})],
549
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", "]")
550
+ }, {})],
551
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
552
+ }, {})
553
+ }, {});
554
+ if (yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
555
+ verb: _t.s_node(_l.Instruction, "Identifier", "match"),
556
+ arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.ref`closeToken`], {
557
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
558
+ values: [_t.node(_l.Regex, "Pattern", [_t.ref`openToken`, _t.ref`alternatives[]`, _t.ref`closeToken`], {
559
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "/"),
560
+ alternatives: [_t.node(_l.Regex, "Alternative", [_t.ref`elements[]`], {
561
+ elements: [_t.node(_l.Regex, "CharacterClass", [_t.ref`openToken`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`closeToken`], {
562
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "["),
563
+ elements: [_t.node(_l.Regex, "Character", [_t.lit("*")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("+")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("?")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("{")], {}, {})],
564
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "]")
565
+ }, {
566
+ negate: false
567
+ })]
568
+ }, {})],
569
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "/")
570
+ }, {})],
571
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
572
+ }, {})
573
+ }, {})) {
574
+ return _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
575
+ verb: _t.s_node(_l.Instruction, "Identifier", "holdForMatch"),
576
+ arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.ref`closeToken`], {
577
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
578
+ values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.ref`closeToken`], {
579
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
580
+ flags: _t.node(_l.CSTML, "Flags", [], {}, {}),
581
+ type: _t.s_node(_l.Spamex, "Identifier", "Quantifier"),
582
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
583
+ }, {})],
584
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
585
+ }, {})
586
+ }, {});
587
+ }
588
+ }
589
+ *Group() {
590
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
591
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
592
+ 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`], {
593
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
594
+ 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`], {
595
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
596
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], {
597
+ intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"),
598
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
599
+ }, {}),
600
+ type: _t.s_node(_l.Spamex, "Identifier", "Punctuator"),
601
+ intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
602
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
603
+ content: _t.node(_l.CSTML, "Content", [_t.lit("(?:")], {}, {}),
604
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
605
+ }, {}),
606
+ attributes: [_t.node(_l.Spamex, "MappingAttribute", [_t.ref`key`, _t.ref`mapToken`, _t.ref`value`], {
607
+ key: _t.node(_l.Spamex, "Literal", [_t.lit("balanced")], {}, {}),
608
+ mapToken: _t.s_i_node(_l.Spamex, "Punctuator", "="),
609
+ value: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
610
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
611
+ content: _t.node(_l.CSTML, "Content", [_t.lit(")")], {}, {}),
612
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
613
+ }, {})
614
+ }, {})],
615
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
616
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
617
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
618
+ content: _t.node(_l.CSTML, "Content", [_t.lit("openToken")], {}, {}),
619
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
620
+ }, {})],
621
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
622
+ }, {})
623
+ }, {});
624
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
625
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
626
+ arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.ref`closeToken`], {
627
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
628
+ values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.ref`closeToken`], {
629
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
630
+ flags: _t.node(_l.CSTML, "Flags", [], {}, {}),
631
+ type: _t.s_node(_l.Spamex, "Identifier", "Alternatives"),
632
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
633
+ }, {})],
634
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
635
+ }, {})
636
+ }, {});
637
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
638
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
639
+ 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`], {
640
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
641
+ 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`], {
642
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
643
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], {
644
+ intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"),
645
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
646
+ }, {}),
647
+ type: _t.s_node(_l.Spamex, "Identifier", "Punctuator"),
648
+ intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
649
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
650
+ content: _t.node(_l.CSTML, "Content", [_t.lit(")")], {}, {}),
651
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
652
+ }, {}),
653
+ attributes: [_t.node(_l.Spamex, "BooleanAttribute", [_t.ref`key`], {
654
+ key: _t.node(_l.Spamex, "Literal", [_t.lit("balancer")], {}, {})
655
+ }, {})],
656
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
657
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
658
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
659
+ content: _t.node(_l.CSTML, "Content", [_t.lit("closeToken")], {}, {}),
660
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
661
+ }, {})],
662
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
663
+ }, {})
664
+ }, {});
665
+ }
666
+ *CapturingGroup() {
667
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
668
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
669
+ 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`], {
670
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
671
+ 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`], {
672
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
673
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], {
674
+ intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"),
675
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
676
+ }, {}),
677
+ type: _t.s_node(_l.Spamex, "Identifier", "Punctuator"),
678
+ intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
679
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
680
+ content: _t.node(_l.CSTML, "Content", [_t.lit("(")], {}, {}),
681
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
682
+ }, {}),
683
+ attributes: [_t.node(_l.Spamex, "MappingAttribute", [_t.ref`key`, _t.ref`mapToken`, _t.ref`value`], {
684
+ key: _t.node(_l.Spamex, "Literal", [_t.lit("balanced")], {}, {}),
685
+ mapToken: _t.s_i_node(_l.Spamex, "Punctuator", "="),
686
+ value: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
687
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
688
+ content: _t.node(_l.CSTML, "Content", [_t.lit(")")], {}, {}),
689
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
690
+ }, {})
691
+ }, {})],
692
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
693
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
694
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
695
+ content: _t.node(_l.CSTML, "Content", [_t.lit("openToken")], {}, {}),
696
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
697
+ }, {})],
698
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
699
+ }, {})
700
+ }, {});
701
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
702
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
703
+ arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.ref`closeToken`], {
704
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
705
+ values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.ref`closeToken`], {
706
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
707
+ flags: _t.node(_l.CSTML, "Flags", [], {}, {}),
708
+ type: _t.s_node(_l.Spamex, "Identifier", "Alternatives"),
709
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
710
+ }, {})],
711
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
712
+ }, {})
713
+ }, {});
714
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
715
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
716
+ 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`], {
717
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
718
+ 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`], {
719
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
720
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], {
721
+ intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"),
722
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
723
+ }, {}),
724
+ type: _t.s_node(_l.Spamex, "Identifier", "Punctuator"),
725
+ intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
726
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
727
+ content: _t.node(_l.CSTML, "Content", [_t.lit(")")], {}, {}),
728
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
729
+ }, {}),
730
+ attributes: [_t.node(_l.Spamex, "BooleanAttribute", [_t.ref`key`], {
731
+ key: _t.node(_l.Spamex, "Literal", [_t.lit("balancer")], {}, {})
732
+ }, {})],
733
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
734
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
735
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
736
+ content: _t.node(_l.CSTML, "Content", [_t.lit("closeToken")], {}, {}),
737
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
738
+ }, {})],
739
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
740
+ }, {})
741
+ }, {});
742
+ }
743
+ *Assertion() {
744
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
745
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
746
+ 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`], {
747
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
748
+ values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.ref`closeToken`], {
749
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
750
+ flags: _t.node(_l.CSTML, "Flags", [], {}, {}),
751
+ type: _t.s_node(_l.Spamex, "Identifier", "Any"),
752
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
753
+ }, {}), _t.node(_l.Instruction, "Null", [_t.ref`sigilToken`], {
754
+ sigilToken: _t.s_i_node(_l.Instruction, "Keyword", "null")
755
+ }, {}), _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`closeToken`], {
756
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "["),
757
+ 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`], {
758
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
759
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`tokenToken`], {
760
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
761
+ }, {}),
762
+ type: _t.s_node(_l.Spamex, "Identifier", "StartOfInputAssertion"),
763
+ intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
764
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
765
+ content: _t.node(_l.CSTML, "Content", [_t.lit("^")], {}, {}),
766
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
767
+ }, {}),
768
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
769
+ }, {}), _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`], {
770
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
771
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`tokenToken`], {
772
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
773
+ }, {}),
774
+ type: _t.s_node(_l.Spamex, "Identifier", "EndOfInputAssertion"),
775
+ intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
776
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
777
+ content: _t.node(_l.CSTML, "Content", [_t.lit("$")], {}, {}),
778
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
779
+ }, {}),
780
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
781
+ }, {}), _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`], {
782
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
783
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`tokenToken`, _t.ref`escapeToken`], {
784
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*"),
785
+ escapeToken: _t.s_i_node(_l.CSTML, "Punctuator", "@")
786
+ }, {}),
787
+ type: _t.s_node(_l.Spamex, "Identifier", "WordBoundaryAssertion"),
788
+ intrinsicValue: _t.node(_l.Regex, "Pattern", [_t.ref`openToken`, _t.ref`alternatives[]`, _t.ref`closeToken`, _t.ref`flags`], {
789
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "/"),
790
+ alternatives: [_t.node(_l.Regex, "Alternative", [_t.ref`elements[]`, _t.ref`elements[]`], {
791
+ elements: [_t.node(_l.Regex, "Character", [_t.embedded(_t.s_e_node(_l.CSTML, "Escape", [_t.lit("\\\\")], {}, {
792
+ cooked: "\\"
793
+ }))], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("b")], {}, {})]
794
+ }, {})],
795
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "/"),
796
+ flags: _t.node(_l.Regex, "Flags", [_t.ref`tokens[]`], {
797
+ tokens: [_t.s_i_node(_l.Regex, "Keyword", "i")]
798
+ }, {
799
+ global: false,
800
+ ignoreCase: true,
801
+ multiline: false,
802
+ dotAll: false,
803
+ unicode: false,
804
+ sticky: false
805
+ })
806
+ }, {}),
807
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
808
+ }, {})],
809
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", "]")
810
+ }, {})],
811
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
812
+ }, {})
813
+ }, {});
814
+ }
815
+ *StartOfInputAssertion() {
816
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
817
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
818
+ 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`], {
819
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
820
+ 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`], {
821
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
822
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], {
823
+ intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"),
824
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
825
+ }, {}),
826
+ type: _t.s_node(_l.Spamex, "Identifier", "Keyword"),
827
+ intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
828
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
829
+ content: _t.node(_l.CSTML, "Content", [_t.lit("^")], {}, {}),
830
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
831
+ }, {}),
832
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
833
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
834
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
835
+ content: _t.node(_l.CSTML, "Content", [_t.lit("sigilToken")], {}, {}),
836
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
837
+ }, {})],
838
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
839
+ }, {})
840
+ }, {});
841
+ }
842
+ *EndOfInputAssertion() {
843
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
844
+ verb: _t.s_node(_l.Instruction, "Identifier", "eatMatch"),
845
+ 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`], {
846
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
847
+ 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`], {
848
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
849
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], {
850
+ intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"),
851
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
852
+ }, {}),
853
+ type: _t.s_node(_l.Spamex, "Identifier", "Keyword"),
854
+ intrinsicValue: _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("$")], {}, {}),
857
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
858
+ }, {}),
859
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
860
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
861
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
862
+ content: _t.node(_l.CSTML, "Content", [_t.lit("sigilToken")], {}, {}),
863
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
864
+ }, {})],
865
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
866
+ }, {})
867
+ }, {});
868
+ }
869
+ *WordBoundaryAssertion({
870
+ ctx
871
+ }) {
872
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
873
+ verb: _t.s_node(_l.Instruction, "Identifier", "eatMatch"),
874
+ 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`], {
875
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
876
+ 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`], {
877
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
878
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], {
879
+ intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"),
880
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
881
+ }, {}),
882
+ type: _t.s_node(_l.Spamex, "Identifier", "Punctuator"),
883
+ intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
884
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
885
+ content: _t.node(_l.CSTML, "Content", [_t.embedded(_t.s_e_node(_l.CSTML, "Escape", [_t.lit("\\\\")], {}, {
886
+ cooked: "\\"
887
+ }))], {}, {}),
888
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
889
+ }, {}),
890
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
891
+ }, {}), _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("escapeToken")], {}, {}),
894
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
895
+ }, {})],
896
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
897
+ }, {})
898
+ }, {});
899
+ const m = yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
900
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
901
+ 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`], {
902
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
903
+ 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`], {
904
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
905
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], {
906
+ intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"),
907
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
908
+ }, {}),
909
+ type: _t.s_node(_l.Spamex, "Identifier", "Keyword"),
910
+ intrinsicValue: _t.node(_l.Regex, "Pattern", [_t.ref`openToken`, _t.ref`alternatives[]`, _t.ref`closeToken`, _t.ref`flags`], {
911
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "/"),
912
+ alternatives: [_t.node(_l.Regex, "Alternative", [_t.ref`elements[]`], {
913
+ elements: [_t.node(_l.Regex, "Character", [_t.lit("b")], {}, {})]
914
+ }, {})],
915
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "/"),
916
+ flags: _t.node(_l.Regex, "Flags", [_t.ref`tokens[]`], {
917
+ tokens: [_t.s_i_node(_l.Regex, "Keyword", "i")]
918
+ }, {
919
+ global: false,
920
+ ignoreCase: true,
921
+ multiline: false,
922
+ dotAll: false,
923
+ unicode: false,
924
+ sticky: false
925
+ })
926
+ }, {}),
927
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
928
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
929
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
930
+ content: _t.node(_l.CSTML, "Content", [_t.lit("value")], {}, {}),
931
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
932
+ }, {})],
933
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
934
+ }, {})
935
+ }, {});
936
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
937
+ verb: _t.s_node(_l.Instruction, "Identifier", "bindAttribute"),
938
+ arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), ..._interpolateArrayChildren(buildBoolean(ctx.sourceTextFor(m) === 'B'), _t.ref`values[]`, _t.embedded(_t.t_node(_l.Comment, null, [_t.embedded(_t.t_node('Space', 'Space', [_t.lit(' ')]))]))), _t.ref`closeToken`], {
939
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
940
+ values: [_t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
941
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
942
+ content: _t.node(_l.CSTML, "Content", [_t.lit("negate")], {}, {}),
943
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
944
+ }, {}), ..._interpolateArray(buildBoolean(ctx.sourceTextFor(m) === 'B'))],
945
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
946
+ }, {})
947
+ }, {});
948
+ }
949
+ *Gap() {
950
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
951
+ verb: _t.s_node(_l.Instruction, "Identifier", "eatMatch"),
952
+ 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`], {
953
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
954
+ 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`], {
955
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
956
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], {
957
+ intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"),
958
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
959
+ }, {}),
960
+ type: _t.s_node(_l.Spamex, "Identifier", "Punctuator"),
961
+ intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
962
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
963
+ content: _t.node(_l.CSTML, "Content", [_t.embedded(_t.s_e_node(_l.CSTML, "Escape", [_t.lit("\\\\")], {}, {
964
+ cooked: "\\"
965
+ }))], {}, {}),
966
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
967
+ }, {}),
968
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
969
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
970
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
971
+ content: _t.node(_l.CSTML, "Content", [_t.lit("escapeToken")], {}, {}),
972
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
973
+ }, {})],
974
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
975
+ }, {})
976
+ }, {});
977
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
978
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
979
+ 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`], {
980
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
981
+ 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`], {
982
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
983
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], {
984
+ intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"),
985
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
986
+ }, {}),
987
+ type: _t.s_node(_l.Spamex, "Identifier", "Keyword"),
988
+ intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
989
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
990
+ content: _t.node(_l.CSTML, "Content", [_t.lit("g")], {}, {}),
991
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
992
+ }, {}),
993
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
994
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
995
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
996
+ content: _t.node(_l.CSTML, "Content", [_t.lit("value")], {}, {}),
997
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
998
+ }, {})],
999
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
1000
+ }, {})
1001
+ }, {});
1002
+ }
1003
+ *Character() {
1004
+ if (yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
1005
+ verb: _t.s_node(_l.Instruction, "Identifier", "match"),
1006
+ arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.ref`closeToken`], {
1007
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
1008
+ values: [_t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
1009
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
1010
+ content: _t.node(_l.CSTML, "Content", [_t.embedded(_t.s_e_node(_l.CSTML, "Escape", [_t.lit("\\\\")], {}, {
1011
+ cooked: "\\"
1012
+ }))], {}, {}),
1013
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
1014
+ }, {})],
1015
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
1016
+ }, {})
1017
+ }, {})) {
1018
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
1019
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
1020
+ 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`], {
1021
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
1022
+ values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.ref`closeToken`], {
1023
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
1024
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`escapeToken`], {
1025
+ escapeToken: _t.s_i_node(_l.CSTML, "Punctuator", "@")
1026
+ }, {}),
1027
+ type: _t.s_node(_l.Spamex, "Identifier", "EscapeSequence"),
1028
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
1029
+ }, {}), _t.node(_l.Instruction, "Null", [_t.ref`sigilToken`], {
1030
+ sigilToken: _t.s_i_node(_l.Instruction, "Keyword", "null")
1031
+ }, {})],
1032
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
1033
+ }, {})
1034
+ }, {});
1035
+ } else {
1036
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
1037
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
1038
+ arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.ref`closeToken`], {
1039
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
1040
+ values: [_t.node(_l.Regex, "Pattern", [_t.ref`openToken`, _t.ref`alternatives[]`, _t.ref`closeToken`], {
1041
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "/"),
1042
+ alternatives: [_t.node(_l.Regex, "Alternative", [_t.ref`elements[]`], {
1043
+ elements: [_t.node(_l.Regex, "CharacterClass", [_t.ref`openToken`, _t.ref`negateToken`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`closeToken`], {
1044
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "["),
1045
+ negateToken: _t.s_i_node(_l.Regex, "Keyword", "^"),
1046
+ elements: [_t.node(_l.Regex, "Character", [_t.embedded(_t.s_e_node(_l.CSTML, "Escape", [_t.lit("\\r")], {}, {
1047
+ cooked: "\r"
1048
+ }))], {}, {}), _t.node(_l.Regex, "Character", [_t.embedded(_t.s_e_node(_l.CSTML, "Escape", [_t.lit("\\n")], {}, {
1049
+ cooked: "\n"
1050
+ }))], {}, {}), _t.node(_l.Regex, "Character", [_t.embedded(_t.s_e_node(_l.CSTML, "Escape", [_t.lit("\\t")], {}, {
1051
+ cooked: "\t"
1052
+ }))], {}, {})],
1053
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "]")
1054
+ }, {
1055
+ negate: true
1056
+ })]
1057
+ }, {})],
1058
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "/")
1059
+ }, {})],
1060
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
1061
+ }, {})
1062
+ }, {});
1063
+ }
1064
+ }
1065
+ *CharacterClass() {
1066
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
1067
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
1068
+ 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`], {
1069
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
1070
+ 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`], {
1071
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
1072
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], {
1073
+ intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"),
1074
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
1075
+ }, {}),
1076
+ type: _t.s_node(_l.Spamex, "Identifier", "Punctuator"),
1077
+ intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
1078
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
1079
+ content: _t.node(_l.CSTML, "Content", [_t.lit("[")], {}, {}),
1080
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
1081
+ }, {}),
1082
+ attributes: [_t.node(_l.Spamex, "MappingAttribute", [_t.ref`key`, _t.ref`mapToken`, _t.ref`value`], {
1083
+ key: _t.node(_l.Spamex, "Literal", [_t.lit("balancedSpan")], {}, {}),
1084
+ mapToken: _t.s_i_node(_l.Spamex, "Punctuator", "="),
1085
+ value: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
1086
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
1087
+ content: _t.node(_l.CSTML, "Content", [_t.lit("CharacterClass")], {}, {}),
1088
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
1089
+ }, {})
1090
+ }, {}), _t.node(_l.Spamex, "MappingAttribute", [_t.ref`key`, _t.ref`mapToken`, _t.ref`value`], {
1091
+ key: _t.node(_l.Spamex, "Literal", [_t.lit("balanced")], {}, {}),
1092
+ mapToken: _t.s_i_node(_l.Spamex, "Punctuator", "="),
1093
+ value: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
1094
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
1095
+ content: _t.node(_l.CSTML, "Content", [_t.lit("]")], {}, {}),
1096
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
1097
+ }, {})
1098
+ }, {})],
1099
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
1100
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
1101
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
1102
+ content: _t.node(_l.CSTML, "Content", [_t.lit("openToken")], {}, {}),
1103
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
1104
+ }, {})],
1105
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
1106
+ }, {})
1107
+ }, {});
1108
+ let neg = yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
1109
+ verb: _t.s_node(_l.Instruction, "Identifier", "eatMatch"),
1110
+ 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`], {
1111
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
1112
+ 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`], {
1113
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
1114
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], {
1115
+ intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"),
1116
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
1117
+ }, {}),
1118
+ type: _t.s_node(_l.Spamex, "Identifier", "Keyword"),
1119
+ intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
1120
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
1121
+ content: _t.node(_l.CSTML, "Content", [_t.lit("^")], {}, {}),
1122
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
1123
+ }, {}),
1124
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
1125
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
1126
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
1127
+ content: _t.node(_l.CSTML, "Content", [_t.lit("negateToken")], {}, {}),
1128
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
1129
+ }, {})],
1130
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
1131
+ }, {})
1132
+ }, {});
1133
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
1134
+ verb: _t.s_node(_l.Instruction, "Identifier", "bindAttribute"),
1135
+ arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), ..._interpolateArrayChildren(buildBoolean(neg), _t.ref`values[]`, _t.embedded(_t.t_node(_l.Comment, null, [_t.embedded(_t.t_node('Space', 'Space', [_t.lit(' ')]))]))), _t.ref`closeToken`], {
1136
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
1137
+ values: [_t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
1138
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
1139
+ content: _t.node(_l.CSTML, "Content", [_t.lit("negate")], {}, {}),
1140
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
1141
+ }, {}), ..._interpolateArray(buildBoolean(neg))],
1142
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
1143
+ }, {})
1144
+ }, {});
1145
+ while (yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
1146
+ verb: _t.s_node(_l.Instruction, "Identifier", "match"),
1147
+ arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.ref`closeToken`], {
1148
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
1149
+ values: [_t.node(_l.Regex, "Pattern", [_t.ref`openToken`, _t.ref`alternatives[]`, _t.ref`closeToken`, _t.ref`flags`], {
1150
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "/"),
1151
+ alternatives: [_t.node(_l.Regex, "Alternative", [_t.ref`elements[]`], {
1152
+ elements: [_t.node(_l.Regex, "AnyCharacterSet", [_t.ref`sigilToken`], {
1153
+ sigilToken: _t.s_i_node(_l.Regex, "Keyword", ".")
1154
+ }, {})]
1155
+ }, {})],
1156
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "/"),
1157
+ flags: _t.node(_l.Regex, "Flags", [_t.ref`tokens[]`], {
1158
+ tokens: [_t.s_i_node(_l.Regex, "Keyword", "s")]
1159
+ }, {
1160
+ global: false,
1161
+ ignoreCase: false,
1162
+ multiline: false,
1163
+ dotAll: true,
1164
+ unicode: false,
1165
+ sticky: false
1166
+ })
1167
+ }, {})],
1168
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
1169
+ }, {})
1170
+ }, {})) {
1171
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
1172
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
1173
+ 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`], {
1174
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
1175
+ values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.ref`closeToken`], {
1176
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
1177
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`expressionToken`], {
1178
+ expressionToken: _t.s_i_node(_l.CSTML, "Punctuator", "+")
1179
+ }, {}),
1180
+ type: _t.s_node(_l.Spamex, "Identifier", "CharacterClassElement"),
1181
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
1182
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
1183
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
1184
+ content: _t.node(_l.CSTML, "Content", [_t.lit("elements[]")], {}, {}),
1185
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
1186
+ }, {})],
1187
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
1188
+ }, {})
1189
+ }, {});
1190
+ }
1191
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
1192
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
1193
+ 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`], {
1194
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
1195
+ 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`], {
1196
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
1197
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], {
1198
+ intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"),
1199
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
1200
+ }, {}),
1201
+ type: _t.s_node(_l.Spamex, "Identifier", "Punctuator"),
1202
+ intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
1203
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
1204
+ content: _t.node(_l.CSTML, "Content", [_t.lit("]")], {}, {}),
1205
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
1206
+ }, {}),
1207
+ attributes: [_t.node(_l.Spamex, "BooleanAttribute", [_t.ref`key`], {
1208
+ key: _t.node(_l.Spamex, "Literal", [_t.lit("balancer")], {}, {})
1209
+ }, {})],
1210
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
1211
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
1212
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
1213
+ content: _t.node(_l.CSTML, "Content", [_t.lit("closeToken")], {}, {}),
1214
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
1215
+ }, {})],
1216
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
1217
+ }, {})
1218
+ }, {});
1219
+ }
1220
+ *CharacterClassElement() {
1221
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
1222
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
1223
+ 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`], {
1224
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
1225
+ values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.ref`closeToken`], {
1226
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
1227
+ flags: _t.node(_l.CSTML, "Flags", [], {}, {}),
1228
+ type: _t.s_node(_l.Spamex, "Identifier", "Any"),
1229
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
1230
+ }, {}), _t.node(_l.Instruction, "Null", [_t.ref`sigilToken`], {
1231
+ sigilToken: _t.s_i_node(_l.Instruction, "Keyword", "null")
1232
+ }, {}), _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`closeToken`], {
1233
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "["),
1234
+ 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`], {
1235
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
1236
+ flags: _t.node(_l.CSTML, "Flags", [], {}, {}),
1237
+ type: _t.s_node(_l.Spamex, "Identifier", "CharacterSet"),
1238
+ intrinsicValue: _t.node(_l.Regex, "Pattern", [_t.ref`openToken`, _t.ref`alternatives[]`, _t.ref`closeToken`, _t.ref`flags`], {
1239
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "/"),
1240
+ alternatives: [_t.node(_l.Regex, "Alternative", [_t.ref`elements[]`, _t.ref`elements[]`], {
1241
+ elements: [_t.node(_l.Regex, "Character", [_t.embedded(_t.s_e_node(_l.CSTML, "Escape", [_t.lit("\\\\")], {}, {
1242
+ cooked: "\\"
1243
+ }))], {}, {}), _t.node(_l.Regex, "CharacterClass", [_t.ref`openToken`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`closeToken`], {
1244
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "["),
1245
+ elements: [_t.node(_l.Regex, "Character", [_t.lit("d")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("s")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("w")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("p")], {}, {})],
1246
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "]")
1247
+ }, {
1248
+ negate: false
1249
+ })]
1250
+ }, {})],
1251
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "/"),
1252
+ flags: _t.node(_l.Regex, "Flags", [_t.ref`tokens[]`], {
1253
+ tokens: [_t.s_i_node(_l.Regex, "Keyword", "i")]
1254
+ }, {
1255
+ global: false,
1256
+ ignoreCase: true,
1257
+ multiline: false,
1258
+ dotAll: false,
1259
+ unicode: false,
1260
+ sticky: false
1261
+ })
1262
+ }, {}),
1263
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
1264
+ }, {}), _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`], {
1265
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
1266
+ flags: _t.node(_l.CSTML, "Flags", [], {}, {}),
1267
+ type: _t.s_node(_l.Spamex, "Identifier", "Gap"),
1268
+ intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
1269
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
1270
+ content: _t.node(_l.CSTML, "Content", [_t.embedded(_t.s_e_node(_l.CSTML, "Escape", [_t.lit("\\\\")], {}, {
1271
+ cooked: "\\"
1272
+ })), _t.lit("g")], {}, {}),
1273
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
1274
+ }, {}),
1275
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
1276
+ }, {}), _t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.ref`closeToken`], {
1277
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
1278
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`tokenToken`, _t.ref`expressionToken`], {
1279
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*"),
1280
+ expressionToken: _t.s_i_node(_l.CSTML, "Punctuator", "+")
1281
+ }, {}),
1282
+ type: _t.s_node(_l.Spamex, "Identifier", "Character"),
1283
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
1284
+ }, {})],
1285
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", "]")
1286
+ }, {})],
1287
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
1288
+ }, {})
1289
+ }, {});
1290
+ if (yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
1291
+ verb: _t.s_node(_l.Instruction, "Identifier", "match"),
1292
+ arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.ref`closeToken`], {
1293
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
1294
+ values: [_t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
1295
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
1296
+ content: _t.node(_l.CSTML, "Content", [_t.lit("-")], {}, {}),
1297
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
1298
+ }, {})],
1299
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
1300
+ }, {})
1301
+ }, {})) {
1302
+ return _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
1303
+ verb: _t.s_node(_l.Instruction, "Identifier", "holdForMatch"),
1304
+ arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.ref`closeToken`], {
1305
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
1306
+ values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.ref`closeToken`], {
1307
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
1308
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`expressionToken`], {
1309
+ expressionToken: _t.s_i_node(_l.CSTML, "Punctuator", "+")
1310
+ }, {}),
1311
+ type: _t.s_node(_l.Spamex, "Identifier", "CharacterClassRange"),
1312
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
1313
+ }, {})],
1314
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
1315
+ }, {})
1316
+ }, {});
1317
+ }
1318
+ }
1319
+ *CharacterClassRange() {
1320
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
1321
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
1322
+ 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`], {
1323
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
1324
+ values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.ref`closeToken`], {
1325
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
1326
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`tokenToken`, _t.ref`expressionToken`], {
1327
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*"),
1328
+ expressionToken: _t.s_i_node(_l.CSTML, "Punctuator", "+")
1329
+ }, {}),
1330
+ type: _t.s_node(_l.Spamex, "Identifier", "Character"),
1331
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
1332
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
1333
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
1334
+ content: _t.node(_l.CSTML, "Content", [_t.lit("min")], {}, {}),
1335
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
1336
+ }, {})],
1337
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
1338
+ }, {})
1339
+ }, {});
1340
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
1341
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
1342
+ 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`], {
1343
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
1344
+ 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`], {
1345
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
1346
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], {
1347
+ intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"),
1348
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
1349
+ }, {}),
1350
+ type: _t.s_node(_l.Spamex, "Identifier", "Punctuator"),
1351
+ intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
1352
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
1353
+ content: _t.node(_l.CSTML, "Content", [_t.lit("-")], {}, {}),
1354
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
1355
+ }, {}),
1356
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
1357
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
1358
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
1359
+ content: _t.node(_l.CSTML, "Content", [_t.lit("sigilToken")], {}, {}),
1360
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
1361
+ }, {})],
1362
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
1363
+ }, {})
1364
+ }, {});
1365
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
1366
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
1367
+ 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`], {
1368
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
1369
+ values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.ref`closeToken`], {
1370
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
1371
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`tokenToken`, _t.ref`expressionToken`], {
1372
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*"),
1373
+ expressionToken: _t.s_i_node(_l.CSTML, "Punctuator", "+")
1374
+ }, {}),
1375
+ type: _t.s_node(_l.Spamex, "Identifier", "Character"),
1376
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
1377
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
1378
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
1379
+ content: _t.node(_l.CSTML, "Content", [_t.lit("max")], {}, {}),
1380
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
1381
+ }, {})],
1382
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
1383
+ }, {})
1384
+ }, {});
1385
+ }
1386
+ *CharacterSet() {
1387
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
1388
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
1389
+ 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`], {
1390
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
1391
+ values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.ref`closeToken`], {
1392
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
1393
+ flags: _t.node(_l.CSTML, "Flags", [], {}, {}),
1394
+ type: _t.s_node(_l.Spamex, "Identifier", "Any"),
1395
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
1396
+ }, {}), _t.node(_l.Instruction, "Null", [_t.ref`sigilToken`], {
1397
+ sigilToken: _t.s_i_node(_l.Instruction, "Keyword", "null")
1398
+ }, {}), _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`closeToken`], {
1399
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "["),
1400
+ 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`], {
1401
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
1402
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`expressionToken`], {
1403
+ expressionToken: _t.s_i_node(_l.CSTML, "Punctuator", "+")
1404
+ }, {}),
1405
+ type: _t.s_node(_l.Spamex, "Identifier", "AnyCharacterSet"),
1406
+ intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
1407
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
1408
+ content: _t.node(_l.CSTML, "Content", [_t.lit(".")], {}, {}),
1409
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
1410
+ }, {}),
1411
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
1412
+ }, {}), _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`], {
1413
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
1414
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`expressionToken`], {
1415
+ expressionToken: _t.s_i_node(_l.CSTML, "Punctuator", "+")
1416
+ }, {}),
1417
+ type: _t.s_node(_l.Spamex, "Identifier", "DigitCharacterSet"),
1418
+ intrinsicValue: _t.node(_l.Regex, "Pattern", [_t.ref`openToken`, _t.ref`alternatives[]`, _t.ref`closeToken`], {
1419
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "/"),
1420
+ alternatives: [_t.node(_l.Regex, "Alternative", [_t.ref`elements[]`, _t.ref`elements[]`], {
1421
+ elements: [_t.node(_l.Regex, "Character", [_t.embedded(_t.s_e_node(_l.CSTML, "Escape", [_t.lit("\\\\")], {}, {
1422
+ cooked: "\\"
1423
+ }))], {}, {}), _t.node(_l.Regex, "CharacterClass", [_t.ref`openToken`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`closeToken`], {
1424
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "["),
1425
+ elements: [_t.node(_l.Regex, "Character", [_t.lit("d")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("D")], {}, {})],
1426
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "]")
1427
+ }, {
1428
+ negate: false
1429
+ })]
1430
+ }, {})],
1431
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "/")
1432
+ }, {}),
1433
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
1434
+ }, {}), _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`], {
1435
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
1436
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`expressionToken`], {
1437
+ expressionToken: _t.s_i_node(_l.CSTML, "Punctuator", "+")
1438
+ }, {}),
1439
+ type: _t.s_node(_l.Spamex, "Identifier", "SpaceCharacterSet"),
1440
+ intrinsicValue: _t.node(_l.Regex, "Pattern", [_t.ref`openToken`, _t.ref`alternatives[]`, _t.ref`closeToken`], {
1441
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "/"),
1442
+ alternatives: [_t.node(_l.Regex, "Alternative", [_t.ref`elements[]`, _t.ref`elements[]`], {
1443
+ elements: [_t.node(_l.Regex, "Character", [_t.embedded(_t.s_e_node(_l.CSTML, "Escape", [_t.lit("\\\\")], {}, {
1444
+ cooked: "\\"
1445
+ }))], {}, {}), _t.node(_l.Regex, "CharacterClass", [_t.ref`openToken`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`closeToken`], {
1446
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "["),
1447
+ elements: [_t.node(_l.Regex, "Character", [_t.lit("s")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("S")], {}, {})],
1448
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "]")
1449
+ }, {
1450
+ negate: false
1451
+ })]
1452
+ }, {})],
1453
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "/")
1454
+ }, {}),
1455
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
1456
+ }, {}), _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`], {
1457
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
1458
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`expressionToken`], {
1459
+ expressionToken: _t.s_i_node(_l.CSTML, "Punctuator", "+")
1460
+ }, {}),
1461
+ type: _t.s_node(_l.Spamex, "Identifier", "WordCharacterSet"),
1462
+ intrinsicValue: _t.node(_l.Regex, "Pattern", [_t.ref`openToken`, _t.ref`alternatives[]`, _t.ref`closeToken`], {
1463
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "/"),
1464
+ alternatives: [_t.node(_l.Regex, "Alternative", [_t.ref`elements[]`, _t.ref`elements[]`], {
1465
+ elements: [_t.node(_l.Regex, "Character", [_t.embedded(_t.s_e_node(_l.CSTML, "Escape", [_t.lit("\\\\")], {}, {
1466
+ cooked: "\\"
1467
+ }))], {}, {}), _t.node(_l.Regex, "CharacterClass", [_t.ref`openToken`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`closeToken`], {
1468
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "["),
1469
+ elements: [_t.node(_l.Regex, "Character", [_t.lit("w")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("W")], {}, {})],
1470
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "]")
1471
+ }, {
1472
+ negate: false
1473
+ })]
1474
+ }, {})],
1475
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "/")
1476
+ }, {}),
1477
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
1478
+ }, {})],
1479
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", "]")
1480
+ }, {})],
1481
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
1482
+ }, {})
1483
+ }, {});
1484
+ }
1485
+ *AnyCharacterSet() {
1486
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
1487
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
1488
+ 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`], {
1489
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
1490
+ 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`], {
1491
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
1492
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], {
1493
+ intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"),
1494
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
1495
+ }, {}),
1496
+ type: _t.s_node(_l.Spamex, "Identifier", "Keyword"),
1497
+ intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
1498
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
1499
+ content: _t.node(_l.CSTML, "Content", [_t.lit(".")], {}, {}),
1500
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
1501
+ }, {}),
1502
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
1503
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
1504
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
1505
+ content: _t.node(_l.CSTML, "Content", [_t.lit("sigilToken")], {}, {}),
1506
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
1507
+ }, {})],
1508
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
1509
+ }, {})
1510
+ }, {});
1511
+ }
1512
+ *DigitCharacterSet({
1513
+ ctx
1514
+ }) {
1515
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
1516
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
1517
+ 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`], {
1518
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
1519
+ 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`], {
1520
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
1521
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], {
1522
+ intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"),
1523
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
1524
+ }, {}),
1525
+ type: _t.s_node(_l.Spamex, "Identifier", "Punctuator"),
1526
+ intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
1527
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
1528
+ content: _t.node(_l.CSTML, "Content", [_t.embedded(_t.s_e_node(_l.CSTML, "Escape", [_t.lit("\\\\")], {}, {
1529
+ cooked: "\\"
1530
+ }))], {}, {}),
1531
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
1532
+ }, {}),
1533
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
1534
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
1535
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
1536
+ content: _t.node(_l.CSTML, "Content", [_t.lit("escapeToken")], {}, {}),
1537
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
1538
+ }, {})],
1539
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
1540
+ }, {})
1541
+ }, {});
1542
+ let code = yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
1543
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
1544
+ 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`], {
1545
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
1546
+ 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`], {
1547
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
1548
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], {
1549
+ intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"),
1550
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
1551
+ }, {}),
1552
+ type: _t.s_node(_l.Spamex, "Identifier", "Keyword"),
1553
+ intrinsicValue: _t.node(_l.Regex, "Pattern", [_t.ref`openToken`, _t.ref`alternatives[]`, _t.ref`closeToken`], {
1554
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "/"),
1555
+ alternatives: [_t.node(_l.Regex, "Alternative", [_t.ref`elements[]`], {
1556
+ elements: [_t.node(_l.Regex, "CharacterClass", [_t.ref`openToken`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`closeToken`], {
1557
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "["),
1558
+ elements: [_t.node(_l.Regex, "Character", [_t.lit("d")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("D")], {}, {})],
1559
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "]")
1560
+ }, {
1561
+ negate: false
1562
+ })]
1563
+ }, {})],
1564
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "/")
1565
+ }, {}),
1566
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
1567
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
1568
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
1569
+ content: _t.node(_l.CSTML, "Content", [_t.lit("value")], {}, {}),
1570
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
1571
+ }, {})],
1572
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
1573
+ }, {})
1574
+ }, {});
1575
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
1576
+ verb: _t.s_node(_l.Instruction, "Identifier", "bindAttribute"),
1577
+ arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), ..._interpolateArrayChildren(buildBoolean(ctx.sourceTextFor(code) === 'D'), _t.ref`values[]`, _t.embedded(_t.t_node(_l.Comment, null, [_t.embedded(_t.t_node('Space', 'Space', [_t.lit(' ')]))]))), _t.ref`closeToken`], {
1578
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
1579
+ values: [_t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
1580
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
1581
+ content: _t.node(_l.CSTML, "Content", [_t.lit("negate")], {}, {}),
1582
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
1583
+ }, {}), ..._interpolateArray(buildBoolean(ctx.sourceTextFor(code) === 'D'))],
1584
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
1585
+ }, {})
1586
+ }, {});
1587
+ }
1588
+ *SpaceCharacterSet({
1589
+ ctx
1590
+ }) {
1591
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
1592
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
1593
+ 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`], {
1594
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
1595
+ 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`], {
1596
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
1597
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], {
1598
+ intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"),
1599
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
1600
+ }, {}),
1601
+ type: _t.s_node(_l.Spamex, "Identifier", "Punctuator"),
1602
+ intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
1603
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
1604
+ content: _t.node(_l.CSTML, "Content", [_t.embedded(_t.s_e_node(_l.CSTML, "Escape", [_t.lit("\\\\")], {}, {
1605
+ cooked: "\\"
1606
+ }))], {}, {}),
1607
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
1608
+ }, {}),
1609
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
1610
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
1611
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
1612
+ content: _t.node(_l.CSTML, "Content", [_t.lit("escapeToken")], {}, {}),
1613
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
1614
+ }, {})],
1615
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
1616
+ }, {})
1617
+ }, {});
1618
+ let code = yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
1619
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
1620
+ 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`], {
1621
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
1622
+ 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`], {
1623
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
1624
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], {
1625
+ intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"),
1626
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
1627
+ }, {}),
1628
+ type: _t.s_node(_l.Spamex, "Identifier", "Keyword"),
1629
+ intrinsicValue: _t.node(_l.Regex, "Pattern", [_t.ref`openToken`, _t.ref`alternatives[]`, _t.ref`closeToken`], {
1630
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "/"),
1631
+ alternatives: [_t.node(_l.Regex, "Alternative", [_t.ref`elements[]`], {
1632
+ elements: [_t.node(_l.Regex, "CharacterClass", [_t.ref`openToken`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`closeToken`], {
1633
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "["),
1634
+ elements: [_t.node(_l.Regex, "Character", [_t.lit("s")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("S")], {}, {})],
1635
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "]")
1636
+ }, {
1637
+ negate: false
1638
+ })]
1639
+ }, {})],
1640
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "/")
1641
+ }, {}),
1642
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
1643
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
1644
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
1645
+ content: _t.node(_l.CSTML, "Content", [_t.lit("value")], {}, {}),
1646
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
1647
+ }, {})],
1648
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
1649
+ }, {})
1650
+ }, {});
1651
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
1652
+ verb: _t.s_node(_l.Instruction, "Identifier", "bindAttribute"),
1653
+ arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), ..._interpolateArrayChildren(buildBoolean(ctx.sourceTextFor(code) === 'S'), _t.ref`values[]`, _t.embedded(_t.t_node(_l.Comment, null, [_t.embedded(_t.t_node('Space', 'Space', [_t.lit(' ')]))]))), _t.ref`closeToken`], {
1654
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
1655
+ values: [_t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
1656
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
1657
+ content: _t.node(_l.CSTML, "Content", [_t.lit("negate")], {}, {}),
1658
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
1659
+ }, {}), ..._interpolateArray(buildBoolean(ctx.sourceTextFor(code) === 'S'))],
1660
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
1661
+ }, {})
1662
+ }, {});
1663
+ }
1664
+ *WordCharacterSet({
1665
+ ctx
1666
+ }) {
1667
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
1668
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
1669
+ 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`], {
1670
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
1671
+ 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`], {
1672
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
1673
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], {
1674
+ intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"),
1675
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
1676
+ }, {}),
1677
+ type: _t.s_node(_l.Spamex, "Identifier", "Punctuator"),
1678
+ intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
1679
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
1680
+ content: _t.node(_l.CSTML, "Content", [_t.embedded(_t.s_e_node(_l.CSTML, "Escape", [_t.lit("\\\\")], {}, {
1681
+ cooked: "\\"
1682
+ }))], {}, {}),
1683
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
1684
+ }, {}),
1685
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
1686
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
1687
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
1688
+ content: _t.node(_l.CSTML, "Content", [_t.lit("escapeToken")], {}, {}),
1689
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
1690
+ }, {})],
1691
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
1692
+ }, {})
1693
+ }, {});
1694
+ let code = yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
1695
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
1696
+ 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`], {
1697
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
1698
+ 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`], {
1699
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
1700
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], {
1701
+ intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"),
1702
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
1703
+ }, {}),
1704
+ type: _t.s_node(_l.Spamex, "Identifier", "Keyword"),
1705
+ intrinsicValue: _t.node(_l.Regex, "Pattern", [_t.ref`openToken`, _t.ref`alternatives[]`, _t.ref`closeToken`], {
1706
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "/"),
1707
+ alternatives: [_t.node(_l.Regex, "Alternative", [_t.ref`elements[]`], {
1708
+ elements: [_t.node(_l.Regex, "CharacterClass", [_t.ref`openToken`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`closeToken`], {
1709
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "["),
1710
+ elements: [_t.node(_l.Regex, "Character", [_t.lit("w")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("W")], {}, {})],
1711
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "]")
1712
+ }, {
1713
+ negate: false
1714
+ })]
1715
+ }, {})],
1716
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "/")
1717
+ }, {}),
1718
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
1719
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
1720
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
1721
+ content: _t.node(_l.CSTML, "Content", [_t.lit("value")], {}, {}),
1722
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
1723
+ }, {})],
1724
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
1725
+ }, {})
1726
+ }, {});
1727
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
1728
+ verb: _t.s_node(_l.Instruction, "Identifier", "bindAttribute"),
1729
+ arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), ..._interpolateArrayChildren(buildBoolean(ctx.sourceTextFor(code) === 'W'), _t.ref`values[]`, _t.embedded(_t.t_node(_l.Comment, null, [_t.embedded(_t.t_node('Space', 'Space', [_t.lit(' ')]))]))), _t.ref`closeToken`], {
1730
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
1731
+ values: [_t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
1732
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
1733
+ content: _t.node(_l.CSTML, "Content", [_t.lit("negate")], {}, {}),
1734
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
1735
+ }, {}), ..._interpolateArray(buildBoolean(ctx.sourceTextFor(code) === 'W'))],
1736
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
1737
+ }, {})
1738
+ }, {});
1739
+ }
1740
+ *Quantifier({
1741
+ ctx
1742
+ }) {
1743
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
1744
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
1745
+ 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`], {
1746
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
1747
+ values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.ref`closeToken`], {
1748
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
1749
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`expressionToken`], {
1750
+ expressionToken: _t.s_i_node(_l.CSTML, "Punctuator", "+")
1751
+ }, {}),
1752
+ type: _t.s_node(_l.Spamex, "Identifier", "Element"),
1753
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
1754
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
1755
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
1756
+ content: _t.node(_l.CSTML, "Content", [_t.lit("element")], {}, {}),
1757
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
1758
+ }, {})],
1759
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
1760
+ }, {})
1761
+ }, {});
1762
+ let attrs, sigil;
1763
+ if (sigil = yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
1764
+ verb: _t.s_node(_l.Instruction, "Identifier", "eatMatch"),
1765
+ 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`], {
1766
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
1767
+ 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`], {
1768
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
1769
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], {
1770
+ intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"),
1771
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
1772
+ }, {}),
1773
+ type: _t.s_node(_l.Spamex, "Identifier", "Keyword"),
1774
+ intrinsicValue: _t.node(_l.Regex, "Pattern", [_t.ref`openToken`, _t.ref`alternatives[]`, _t.ref`closeToken`], {
1775
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "/"),
1776
+ alternatives: [_t.node(_l.Regex, "Alternative", [_t.ref`elements[]`], {
1777
+ elements: [_t.node(_l.Regex, "CharacterClass", [_t.ref`openToken`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`closeToken`], {
1778
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "["),
1779
+ elements: [_t.node(_l.Regex, "Character", [_t.lit("*")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("+")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("?")], {}, {})],
1780
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "]")
1781
+ }, {
1782
+ negate: false
1783
+ })]
1784
+ }, {})],
1785
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "/")
1786
+ }, {}),
1787
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
1788
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
1789
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
1790
+ content: _t.node(_l.CSTML, "Content", [_t.lit("sigilToken")], {}, {}),
1791
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
1792
+ }, {})],
1793
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
1794
+ }, {})
1795
+ }, {})) {
1796
+ switch (ctx.sourceTextFor(sigil)) {
1797
+ case '*':
1798
+ attrs = {
1799
+ min: 0,
1800
+ max: Infinity
1801
+ };
1802
+ break;
1803
+ case '+':
1804
+ attrs = {
1805
+ min: 1,
1806
+ max: Infinity
1807
+ };
1808
+ break;
1809
+ case '?':
1810
+ attrs = {
1811
+ min: 0,
1812
+ max: 1
1813
+ };
1814
+ break;
1815
+ }
1816
+ } else if (yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
1817
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
1818
+ 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`], {
1819
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
1820
+ 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`], {
1821
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
1822
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], {
1823
+ intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"),
1824
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
1825
+ }, {}),
1826
+ type: _t.s_node(_l.Spamex, "Identifier", "Punctuator"),
1827
+ intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
1828
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
1829
+ content: _t.node(_l.CSTML, "Content", [_t.lit("{")], {}, {}),
1830
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
1831
+ }, {}),
1832
+ attributes: [_t.node(_l.Spamex, "MappingAttribute", [_t.ref`key`, _t.ref`mapToken`, _t.ref`value`], {
1833
+ key: _t.node(_l.Spamex, "Literal", [_t.lit("balanced")], {}, {}),
1834
+ mapToken: _t.s_i_node(_l.Spamex, "Punctuator", "="),
1835
+ value: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
1836
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
1837
+ content: _t.node(_l.CSTML, "Content", [_t.lit("}")], {}, {}),
1838
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
1839
+ }, {})
1840
+ }, {})],
1841
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
1842
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
1843
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
1844
+ content: _t.node(_l.CSTML, "Content", [_t.lit("openToken")], {}, {}),
1845
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
1846
+ }, {})],
1847
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
1848
+ }, {})
1849
+ }, {})) {
1850
+ let max;
1851
+ let min = yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
1852
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
1853
+ 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`], {
1854
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
1855
+ values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.ref`closeToken`], {
1856
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
1857
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`tokenToken`], {
1858
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
1859
+ }, {}),
1860
+ type: _t.s_node(_l.Spamex, "Identifier", "UnsignedInteger"),
1861
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
1862
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
1863
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
1864
+ content: _t.node(_l.CSTML, "Content", [_t.lit("min")], {}, {}),
1865
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
1866
+ }, {})],
1867
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
1868
+ }, {})
1869
+ }, {});
1870
+ if (yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
1871
+ verb: _t.s_node(_l.Instruction, "Identifier", "eatMatch"),
1872
+ 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`], {
1873
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
1874
+ 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`], {
1875
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
1876
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], {
1877
+ intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"),
1878
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
1879
+ }, {}),
1880
+ type: _t.s_node(_l.Spamex, "Identifier", "Punctuator"),
1881
+ intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
1882
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
1883
+ content: _t.node(_l.CSTML, "Content", [_t.lit(",")], {}, {}),
1884
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
1885
+ }, {}),
1886
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
1887
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
1888
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
1889
+ content: _t.node(_l.CSTML, "Content", [_t.lit("separator")], {}, {}),
1890
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
1891
+ }, {})],
1892
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
1893
+ }, {})
1894
+ }, {})) {
1895
+ max = yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
1896
+ verb: _t.s_node(_l.Instruction, "Identifier", "eatMatch"),
1897
+ 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`], {
1898
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
1899
+ values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.ref`closeToken`], {
1900
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
1901
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`tokenToken`], {
1902
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
1903
+ }, {}),
1904
+ type: _t.s_node(_l.Spamex, "Identifier", "UnsignedInteger"),
1905
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
1906
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
1907
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
1908
+ content: _t.node(_l.CSTML, "Content", [_t.lit("max")], {}, {}),
1909
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
1910
+ }, {})],
1911
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
1912
+ }, {})
1913
+ }, {});
1914
+ }
1915
+ min = min && ctx.sourceTextFor(min);
1916
+ max = max && ctx.sourceTextFor(max);
1917
+ min = min && parseInt(min, 10);
1918
+ max = max && parseInt(max, 10);
1919
+ attrs = {
1920
+ min,
1921
+ max
1922
+ };
1923
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
1924
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
1925
+ 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`], {
1926
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
1927
+ 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`], {
1928
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
1929
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], {
1930
+ intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"),
1931
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
1932
+ }, {}),
1933
+ type: _t.s_node(_l.Spamex, "Identifier", "Punctuator"),
1934
+ intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
1935
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
1936
+ content: _t.node(_l.CSTML, "Content", [_t.lit("}")], {}, {}),
1937
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
1938
+ }, {}),
1939
+ attributes: [_t.node(_l.Spamex, "BooleanAttribute", [_t.ref`key`], {
1940
+ key: _t.node(_l.Spamex, "Literal", [_t.lit("balancer")], {}, {})
1941
+ }, {})],
1942
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
1943
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
1944
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
1945
+ content: _t.node(_l.CSTML, "Content", [_t.lit("closeToken")], {}, {}),
1946
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
1947
+ }, {})],
1948
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
1949
+ }, {})
1950
+ }, {});
1951
+ }
1952
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
1953
+ verb: _t.s_node(_l.Instruction, "Identifier", "bindAttribute"),
1954
+ arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), ..._interpolateArrayChildren(attrs.min ? buildNumber(attrs.min) : buildNull(), _t.ref`values[]`, _t.embedded(_t.t_node(_l.Comment, null, [_t.embedded(_t.t_node('Space', 'Space', [_t.lit(' ')]))]))), _t.ref`closeToken`], {
1955
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
1956
+ values: [_t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
1957
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
1958
+ content: _t.node(_l.CSTML, "Content", [_t.lit("min")], {}, {}),
1959
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
1960
+ }, {}), ..._interpolateArray(attrs.min ? buildNumber(attrs.min) : buildNull())],
1961
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
1962
+ }, {})
1963
+ }, {});
1964
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
1965
+ verb: _t.s_node(_l.Instruction, "Identifier", "bindAttribute"),
1966
+ arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.embedded(_t.s_t_node(_l.Space, "Space", [_t.lit(" ")], {}, {})), ..._interpolateArrayChildren(attrs.max ? buildNumber(attrs.max) : buildNull(), _t.ref`values[]`, _t.embedded(_t.t_node(_l.Comment, null, [_t.embedded(_t.t_node('Space', 'Space', [_t.lit(' ')]))]))), _t.ref`closeToken`], {
1967
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
1968
+ values: [_t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
1969
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
1970
+ content: _t.node(_l.CSTML, "Content", [_t.lit("max")], {}, {}),
1971
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
1972
+ }, {}), ..._interpolateArray(attrs.max ? buildNumber(attrs.max) : buildNull())],
1973
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
1974
+ }, {})
1975
+ }, {});
1976
+ }
1977
+ *UnsignedInteger() {
1978
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
1979
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
1980
+ arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.ref`closeToken`], {
1981
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
1982
+ values: [_t.node(_l.Regex, "Pattern", [_t.ref`openToken`, _t.ref`alternatives[]`, _t.ref`closeToken`], {
1983
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "/"),
1984
+ alternatives: [_t.node(_l.Regex, "Alternative", [_t.ref`elements[]`], {
1985
+ elements: [_t.node(_l.Regex, "Quantifier", [_t.ref`element`, _t.ref`value`], {
1986
+ element: _t.node(_l.Regex, "DigitCharacterSet", [_t.ref`escapeToken`, _t.ref`value`], {
1987
+ escapeToken: _t.s_i_node(_l.Regex, "Punctuator", "\\"),
1988
+ value: _t.s_i_node(_l.Regex, "Keyword", "d")
1989
+ }, {}),
1990
+ value: _t.s_i_node(_l.Regex, "Keyword", "+")
1991
+ }, {
1992
+ min: 1,
1993
+ max: Infinity,
1994
+ greedy: true
1995
+ })]
1996
+ }, {})],
1997
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "/")
1998
+ }, {})],
1999
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
2000
+ }, {})
2001
+ }, {});
2002
+ }
2003
+ *EscapeSequence({
2004
+ state,
2005
+ ctx,
2006
+ value: props
2007
+ }) {
2008
+ const parentSpan = state.span;
2009
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
2010
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
2011
+ 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`], {
2012
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
2013
+ 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`], {
2014
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
2015
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], {
2016
+ intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"),
2017
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
2018
+ }, {}),
2019
+ type: _t.s_node(_l.Spamex, "Identifier", "Punctuator"),
2020
+ intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
2021
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
2022
+ content: _t.node(_l.CSTML, "Content", [_t.embedded(_t.s_e_node(_l.CSTML, "Escape", [_t.lit("\\\\")], {}, {
2023
+ cooked: "\\"
2024
+ }))], {}, {}),
2025
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
2026
+ }, {}),
2027
+ attributes: [_t.node(_l.Spamex, "MappingAttribute", [_t.ref`key`, _t.ref`mapToken`, _t.ref`value`], {
2028
+ key: _t.node(_l.Spamex, "Literal", [_t.lit("openSpan")], {}, {}),
2029
+ mapToken: _t.s_i_node(_l.Spamex, "Punctuator", "="),
2030
+ value: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
2031
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
2032
+ content: _t.node(_l.CSTML, "Content", [_t.lit("Escape")], {}, {}),
2033
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
2034
+ }, {})
2035
+ }, {})],
2036
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
2037
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
2038
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
2039
+ content: _t.node(_l.CSTML, "Content", [_t.lit("escape")], {}, {}),
2040
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
2041
+ }, {})],
2042
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
2043
+ }, {})
2044
+ }, {});
2045
+ let match, cooked;
2046
+ if (match = yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
2047
+ verb: _t.s_node(_l.Instruction, "Identifier", "match"),
2048
+ arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.ref`closeToken`], {
2049
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
2050
+ values: [_t.node(_l.Regex, "Pattern", [_t.ref`openToken`, _t.ref`alternatives[]`, _t.ref`closeToken`], {
2051
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "/"),
2052
+ alternatives: [_t.node(_l.Regex, "Alternative", [_t.ref`elements[]`], {
2053
+ 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`closeToken`], {
2054
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "["),
2055
+ elements: [_t.node(_l.Regex, "Character", [_t.embedded(_t.s_e_node(_l.CSTML, "Escape", [_t.lit("\\\\")], {}, {
2056
+ cooked: "\\"
2057
+ }))], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("/")], {}, {}), _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("0")], {}, {})],
2058
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "]")
2059
+ }, {
2060
+ negate: false
2061
+ })]
2062
+ }, {})],
2063
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "/")
2064
+ }, {})],
2065
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
2066
+ }, {})
2067
+ }, {})) {
2068
+ const match_ = ctx.sourceTextFor(match);
2069
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
2070
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
2071
+ 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`], {
2072
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
2073
+ 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`], {
2074
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
2075
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], {
2076
+ intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"),
2077
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
2078
+ }, {}),
2079
+ type: _t.s_node(_l.Spamex, "Identifier", "Keyword"),
2080
+ intrinsicValue: buildString(match_),
2081
+ attributes: [_t.node(_l.Spamex, "MappingAttribute", [_t.ref`key`, _t.ref`mapToken`, _t.ref`value`], {
2082
+ key: _t.node(_l.Spamex, "Literal", [_t.lit("closeSpan")], {}, {}),
2083
+ mapToken: _t.s_i_node(_l.Spamex, "Punctuator", "="),
2084
+ value: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
2085
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
2086
+ content: _t.node(_l.CSTML, "Content", [_t.lit("Escape")], {}, {}),
2087
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
2088
+ }, {})
2089
+ }, {})],
2090
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
2091
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
2092
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
2093
+ content: _t.node(_l.CSTML, "Content", [_t.lit("value")], {}, {}),
2094
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
2095
+ }, {})],
2096
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
2097
+ }, {})
2098
+ }, {});
2099
+ cooked = escapables.get(match_) || match_;
2100
+ } else if (match = yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
2101
+ verb: _t.s_node(_l.Instruction, "Identifier", "match"),
2102
+ arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, ..._interpolateArrayChildren(getSpecialPattern(parentSpan, ctx.reifyExpression(props)), _t.ref`values[]`, _t.embedded(_t.t_node(_l.Comment, null, [_t.embedded(_t.t_node('Space', 'Space', [_t.lit(' ')]))]))), _t.ref`closeToken`], {
2103
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
2104
+ values: [..._interpolateArray(getSpecialPattern(parentSpan, ctx.reifyExpression(props)))],
2105
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
2106
+ }, {})
2107
+ }, {})) {
2108
+ const match_ = ctx.sourceTextFor(match);
2109
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
2110
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
2111
+ 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`], {
2112
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
2113
+ 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`], {
2114
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
2115
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], {
2116
+ intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"),
2117
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
2118
+ }, {}),
2119
+ type: _t.s_node(_l.Spamex, "Identifier", "Keyword"),
2120
+ intrinsicValue: buildString(match_),
2121
+ attributes: [_t.node(_l.Spamex, "MappingAttribute", [_t.ref`key`, _t.ref`mapToken`, _t.ref`value`], {
2122
+ key: _t.node(_l.Spamex, "Literal", [_t.lit("closeSpan")], {}, {}),
2123
+ mapToken: _t.s_i_node(_l.Spamex, "Punctuator", "="),
2124
+ value: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
2125
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
2126
+ content: _t.node(_l.CSTML, "Content", [_t.lit("Escape")], {}, {}),
2127
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
2128
+ }, {})
2129
+ }, {})],
2130
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
2131
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
2132
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
2133
+ content: _t.node(_l.CSTML, "Content", [_t.lit("value")], {}, {}),
2134
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
2135
+ }, {})],
2136
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
2137
+ }, {})
2138
+ }, {});
2139
+ cooked = ctx.sourceTextFor(match);
2140
+ } else if (yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
2141
+ verb: _t.s_node(_l.Instruction, "Identifier", "match"),
2142
+ arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.ref`closeToken`], {
2143
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
2144
+ values: [_t.node(_l.Regex, "Pattern", [_t.ref`openToken`, _t.ref`alternatives[]`, _t.ref`closeToken`], {
2145
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "/"),
2146
+ alternatives: [_t.node(_l.Regex, "Alternative", [_t.ref`elements[]`], {
2147
+ elements: [_t.node(_l.Regex, "CharacterClass", [_t.ref`openToken`, _t.ref`elements[]`, _t.ref`elements[]`, _t.ref`closeToken`], {
2148
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "["),
2149
+ elements: [_t.node(_l.Regex, "Character", [_t.lit("u")], {}, {}), _t.node(_l.Regex, "Character", [_t.lit("x")], {}, {})],
2150
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "]")
2151
+ }, {
2152
+ negate: false
2153
+ })]
2154
+ }, {})],
2155
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "/")
2156
+ }, {})],
2157
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
2158
+ }, {})
2159
+ }, {})) {
2160
+ const codeNode = yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
2161
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
2162
+ 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`], {
2163
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
2164
+ 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`], {
2165
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
2166
+ flags: _t.node(_l.CSTML, "Flags", [], {}, {}),
2167
+ type: _t.s_node(_l.Spamex, "Identifier", "EscapeCode"),
2168
+ attributes: [_t.node(_l.Spamex, "MappingAttribute", [_t.ref`key`, _t.ref`mapToken`, _t.ref`value`], {
2169
+ key: _t.node(_l.Spamex, "Literal", [_t.lit("closeSpan")], {}, {}),
2170
+ mapToken: _t.s_i_node(_l.Spamex, "Punctuator", "="),
2171
+ value: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
2172
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
2173
+ content: _t.node(_l.CSTML, "Content", [_t.lit("Escape")], {}, {}),
2174
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
2175
+ }, {})
2176
+ }, {})],
2177
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
2178
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
2179
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
2180
+ content: _t.node(_l.CSTML, "Content", [_t.lit("value")], {}, {}),
2181
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
2182
+ }, {})],
2183
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
2184
+ }, {})
2185
+ }, {});
2186
+ cooked = parseInt(ctx.getProperty(codeNode, 'digits').map(digit => ctx.sourceTextFor(digit)).join(''), 16);
2187
+ } else {
2188
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
2189
+ verb: _t.s_node(_l.Instruction, "Identifier", "fail"),
2190
+ arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`closeToken`], {
2191
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
2192
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
2193
+ }, {})
2194
+ }, {});
2195
+ }
2196
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
2197
+ verb: _t.s_node(_l.Instruction, "Identifier", "bindAttribute"),
2198
+ 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), _t.ref`values[]`, _t.embedded(_t.t_node(_l.Comment, null, [_t.embedded(_t.t_node('Space', 'Space', [_t.lit(' ')]))]))), _t.ref`closeToken`], {
2199
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
2200
+ values: [_t.s_node(_l.Instruction, "Identifier", "cooked"), ..._interpolateArray(buildString(cooked))],
2201
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
2202
+ }, {})
2203
+ }, {});
2204
+ }
2205
+ *EscapeCode() {
2206
+ if (yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
2207
+ verb: _t.s_node(_l.Instruction, "Identifier", "eatMatch"),
2208
+ 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`], {
2209
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
2210
+ 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`], {
2211
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
2212
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], {
2213
+ intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"),
2214
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
2215
+ }, {}),
2216
+ type: _t.s_node(_l.Spamex, "Identifier", "Keyword"),
2217
+ intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
2218
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
2219
+ content: _t.node(_l.CSTML, "Content", [_t.lit("u")], {}, {}),
2220
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
2221
+ }, {}),
2222
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
2223
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
2224
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
2225
+ content: _t.node(_l.CSTML, "Content", [_t.lit("type")], {}, {}),
2226
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
2227
+ }, {})],
2228
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
2229
+ }, {})
2230
+ }, {})) {
2231
+ if (yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
2232
+ verb: _t.s_node(_l.Instruction, "Identifier", "eatMatch"),
2233
+ 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`], {
2234
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
2235
+ 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`], {
2236
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
2237
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], {
2238
+ intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"),
2239
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
2240
+ }, {}),
2241
+ type: _t.s_node(_l.Spamex, "Identifier", "Punctuator"),
2242
+ intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
2243
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
2244
+ content: _t.node(_l.CSTML, "Content", [_t.lit("{")], {}, {}),
2245
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
2246
+ }, {}),
2247
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
2248
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
2249
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
2250
+ content: _t.node(_l.CSTML, "Content", [_t.lit("openToken")], {}, {}),
2251
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
2252
+ }, {})],
2253
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
2254
+ }, {})
2255
+ }, {})) {
2256
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
2257
+ verb: _t.s_node(_l.Instruction, "Identifier", "eatMatch"),
2258
+ 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`], {
2259
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
2260
+ values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.ref`closeToken`], {
2261
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
2262
+ flags: _t.node(_l.CSTML, "Flags", [], {}, {}),
2263
+ type: _t.s_node(_l.Spamex, "Identifier", "Digits"),
2264
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
2265
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
2266
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
2267
+ content: _t.node(_l.CSTML, "Content", [_t.lit("value")], {}, {}),
2268
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
2269
+ }, {})],
2270
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
2271
+ }, {})
2272
+ }, {});
2273
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
2274
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
2275
+ 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`], {
2276
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
2277
+ 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`], {
2278
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
2279
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], {
2280
+ intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"),
2281
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
2282
+ }, {}),
2283
+ type: _t.s_node(_l.Spamex, "Identifier", "Punctuator"),
2284
+ intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
2285
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
2286
+ content: _t.node(_l.CSTML, "Content", [_t.lit("}")], {}, {}),
2287
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
2288
+ }, {}),
2289
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
2290
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
2291
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
2292
+ content: _t.node(_l.CSTML, "Content", [_t.lit("closeToken")], {}, {}),
2293
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
2294
+ }, {})],
2295
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
2296
+ }, {})
2297
+ }, {});
2298
+ } else {
2299
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
2300
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
2301
+ 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`], {
2302
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
2303
+ 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`], {
2304
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
2305
+ flags: _t.node(_l.CSTML, "Flags", [], {}, {}),
2306
+ type: _t.s_node(_l.Spamex, "Identifier", "Digits"),
2307
+ intrinsicValue: _t.node(_l.Regex, "Pattern", [_t.ref`openToken`, _t.ref`alternatives[]`, _t.ref`closeToken`], {
2308
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "/"),
2309
+ alternatives: [_t.node(_l.Regex, "Alternative", [_t.ref`elements[]`], {
2310
+ elements: [_t.node(_l.Regex, "Quantifier", [_t.ref`element`, _t.ref`openToken`, _t.ref`min`, _t.ref`closeToken`], {
2311
+ element: _t.node(_l.Regex, "DigitCharacterSet", [_t.ref`escapeToken`, _t.ref`value`], {
2312
+ escapeToken: _t.s_i_node(_l.Regex, "Punctuator", "\\"),
2313
+ value: _t.s_i_node(_l.Regex, "Keyword", "d")
2314
+ }, {}),
2315
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "{"),
2316
+ min: _t.node(_l.Regex, "Number", [_t.lit("4")], {}, {}),
2317
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "}")
2318
+ }, {
2319
+ min: 4,
2320
+ max: undefined,
2321
+ greedy: true
2322
+ })]
2323
+ }, {})],
2324
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "/")
2325
+ }, {}),
2326
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
2327
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
2328
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
2329
+ content: _t.node(_l.CSTML, "Content", [_t.lit("value")], {}, {}),
2330
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
2331
+ }, {})],
2332
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
2333
+ }, {})
2334
+ }, {});
2335
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
2336
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
2337
+ 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`], {
2338
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
2339
+ values: [_t.node(_l.Instruction, "Null", [_t.ref`sigilToken`], {
2340
+ sigilToken: _t.s_i_node(_l.Instruction, "Keyword", "null")
2341
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
2342
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
2343
+ content: _t.node(_l.CSTML, "Content", [_t.lit("closeToken")], {}, {}),
2344
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
2345
+ }, {})],
2346
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
2347
+ }, {})
2348
+ }, {});
2349
+ }
2350
+ } else if (yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
2351
+ verb: _t.s_node(_l.Instruction, "Identifier", "eatMatch"),
2352
+ 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`], {
2353
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
2354
+ 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`], {
2355
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
2356
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`intrinsicToken`, _t.ref`tokenToken`], {
2357
+ intrinsicToken: _t.s_i_node(_l.CSTML, "Punctuator", "~"),
2358
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
2359
+ }, {}),
2360
+ type: _t.s_node(_l.Spamex, "Identifier", "Keyword"),
2361
+ intrinsicValue: _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
2362
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
2363
+ content: _t.node(_l.CSTML, "Content", [_t.lit("x")], {}, {}),
2364
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
2365
+ }, {}),
2366
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
2367
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
2368
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
2369
+ content: _t.node(_l.CSTML, "Content", [_t.lit("type")], {}, {}),
2370
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
2371
+ }, {})],
2372
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
2373
+ }, {})
2374
+ }, {})) {
2375
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
2376
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
2377
+ 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`], {
2378
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
2379
+ values: [_t.node(_l.Instruction, "Null", [_t.ref`sigilToken`], {
2380
+ sigilToken: _t.s_i_node(_l.Instruction, "Keyword", "null")
2381
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
2382
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
2383
+ content: _t.node(_l.CSTML, "Content", [_t.lit("openToken")], {}, {}),
2384
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
2385
+ }, {})],
2386
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
2387
+ }, {})
2388
+ }, {});
2389
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
2390
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
2391
+ 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`], {
2392
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
2393
+ 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`], {
2394
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
2395
+ flags: _t.node(_l.CSTML, "Flags", [], {}, {}),
2396
+ type: _t.s_node(_l.Spamex, "Identifier", "Digits"),
2397
+ intrinsicValue: _t.node(_l.Regex, "Pattern", [_t.ref`openToken`, _t.ref`alternatives[]`, _t.ref`closeToken`], {
2398
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "/"),
2399
+ alternatives: [_t.node(_l.Regex, "Alternative", [_t.ref`elements[]`], {
2400
+ elements: [_t.node(_l.Regex, "Quantifier", [_t.ref`element`, _t.ref`openToken`, _t.ref`min`, _t.ref`closeToken`], {
2401
+ element: _t.node(_l.Regex, "DigitCharacterSet", [_t.ref`escapeToken`, _t.ref`value`], {
2402
+ escapeToken: _t.s_i_node(_l.Regex, "Punctuator", "\\"),
2403
+ value: _t.s_i_node(_l.Regex, "Keyword", "d")
2404
+ }, {}),
2405
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "{"),
2406
+ min: _t.node(_l.Regex, "Number", [_t.lit("2")], {}, {}),
2407
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "}")
2408
+ }, {
2409
+ min: 2,
2410
+ max: undefined,
2411
+ greedy: true
2412
+ })]
2413
+ }, {})],
2414
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "/")
2415
+ }, {}),
2416
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
2417
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
2418
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
2419
+ content: _t.node(_l.CSTML, "Content", [_t.lit("value")], {}, {}),
2420
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
2421
+ }, {})],
2422
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
2423
+ }, {})
2424
+ }, {});
2425
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
2426
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
2427
+ 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`], {
2428
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
2429
+ values: [_t.node(_l.Instruction, "Null", [_t.ref`sigilToken`], {
2430
+ sigilToken: _t.s_i_node(_l.Instruction, "Keyword", "null")
2431
+ }, {}), _t.node(_l.CSTML, "String", [_t.ref`openToken`, _t.ref`content`, _t.ref`closeToken`], {
2432
+ openToken: _t.s_i_node(_l.CSTML, "Punctuator", "'"),
2433
+ content: _t.node(_l.CSTML, "Content", [_t.lit("closeToken")], {}, {}),
2434
+ closeToken: _t.s_i_node(_l.CSTML, "Punctuator", "'")
2435
+ }, {})],
2436
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
2437
+ }, {})
2438
+ }, {});
2439
+ }
2440
+ }
2441
+ *Digits() {
2442
+ while (yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
2443
+ verb: _t.s_node(_l.Instruction, "Identifier", "eatMatch"),
2444
+ arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.ref`closeToken`], {
2445
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
2446
+ values: [_t.node(_l.Spamex, "NodeMatcher", [_t.ref`openToken`, _t.ref`flags`, _t.ref`type`, _t.ref`closeToken`], {
2447
+ openToken: _t.s_i_node(_l.Spamex, "Punctuator", "<"),
2448
+ flags: _t.node(_l.CSTML, "Flags", [_t.ref`tokenToken`], {
2449
+ tokenToken: _t.s_i_node(_l.CSTML, "Punctuator", "*")
2450
+ }, {}),
2451
+ type: _t.s_node(_l.Spamex, "Identifier", "Digit"),
2452
+ closeToken: _t.s_i_node(_l.Spamex, "Punctuator", ">")
2453
+ }, {})],
2454
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
2455
+ }, {})
2456
+ }, {}));
2457
+ }
2458
+ *Digit() {
2459
+ yield _t.node(_l.Instruction, "Call", [_t.ref`verb`, _t.ref`arguments`], {
2460
+ verb: _t.s_node(_l.Instruction, "Identifier", "eat"),
2461
+ arguments: _t.node(_l.Instruction, "Tuple", [_t.ref`openToken`, _t.ref`values[]`, _t.ref`closeToken`], {
2462
+ openToken: _t.s_i_node(_l.Instruction, "Punctuator", "("),
2463
+ values: [_t.node(_l.Regex, "Pattern", [_t.ref`openToken`, _t.ref`alternatives[]`, _t.ref`closeToken`], {
2464
+ openToken: _t.s_i_node(_l.Regex, "Punctuator", "/"),
2465
+ alternatives: [_t.node(_l.Regex, "Alternative", [_t.ref`elements[]`], {
2466
+ elements: [_t.node(_l.Regex, "DigitCharacterSet", [_t.ref`escapeToken`, _t.ref`value`], {
2467
+ escapeToken: _t.s_i_node(_l.Regex, "Punctuator", "\\"),
2468
+ value: _t.s_i_node(_l.Regex, "Keyword", "d")
2469
+ }, {})]
2470
+ }, {})],
2471
+ closeToken: _t.s_i_node(_l.Regex, "Punctuator", "/")
2472
+ }, {})],
2473
+ closeToken: _t.s_i_node(_l.Instruction, "Punctuator", ")")
2474
+ }, {})
2475
+ }, {});
2476
+ }
2477
+ *Any() {}
2478
+ *Keyword() {}
2479
+ *Punctuator() {}
2480
+ };