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