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