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