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