eure_tree/
constructors.rs

1//! This file was generated by `eure-gen`.
2//! Do not edit manually.
3use crate::builder::{BuilderNodeId, CstBuilder};
4use crate::node_kind::{NonTerminalKind, TerminalKind};
5///Branded type for Hash terminal
6#[derive(Debug, Clone)]
7pub struct HashToken {
8    pub(super) node_id: BuilderNodeId,
9    pub(super) builder: CstBuilder,
10}
11impl HashToken {
12    /// Consume this token and return its builder
13    pub fn into_builder(self) -> CstBuilder {
14        self.builder
15    }
16}
17impl From<HashToken> for BuilderNodeId {
18    fn from(token: HashToken) -> Self {
19        token.node_id
20    }
21}
22///Branded type for MapBind terminal
23#[derive(Debug, Clone)]
24pub struct MapBindToken {
25    pub(super) node_id: BuilderNodeId,
26    pub(super) builder: CstBuilder,
27}
28impl MapBindToken {
29    /// Consume this token and return its builder
30    pub fn into_builder(self) -> CstBuilder {
31        self.builder
32    }
33}
34impl From<MapBindToken> for BuilderNodeId {
35    fn from(token: MapBindToken) -> Self {
36        token.node_id
37    }
38}
39///Branded type for Integer terminal
40#[derive(Debug, Clone)]
41pub struct IntegerToken {
42    pub(super) node_id: BuilderNodeId,
43    pub(super) builder: CstBuilder,
44}
45impl IntegerToken {
46    /// Consume this token and return its builder
47    pub fn into_builder(self) -> CstBuilder {
48        self.builder
49    }
50}
51impl From<IntegerToken> for BuilderNodeId {
52    fn from(token: IntegerToken) -> Self {
53        token.node_id
54    }
55}
56///Branded type for Float terminal
57#[derive(Debug, Clone)]
58pub struct FloatToken {
59    pub(super) node_id: BuilderNodeId,
60    pub(super) builder: CstBuilder,
61}
62impl FloatToken {
63    /// Consume this token and return its builder
64    pub fn into_builder(self) -> CstBuilder {
65        self.builder
66    }
67}
68impl From<FloatToken> for BuilderNodeId {
69    fn from(token: FloatToken) -> Self {
70        token.node_id
71    }
72}
73///Branded type for Inf terminal
74#[derive(Debug, Clone)]
75pub struct InfToken {
76    pub(super) node_id: BuilderNodeId,
77    pub(super) builder: CstBuilder,
78}
79impl InfToken {
80    /// Consume this token and return its builder
81    pub fn into_builder(self) -> CstBuilder {
82        self.builder
83    }
84}
85impl From<InfToken> for BuilderNodeId {
86    fn from(token: InfToken) -> Self {
87        token.node_id
88    }
89}
90///Branded type for NaN terminal
91#[derive(Debug, Clone)]
92pub struct NaNToken {
93    pub(super) node_id: BuilderNodeId,
94    pub(super) builder: CstBuilder,
95}
96impl NaNToken {
97    /// Consume this token and return its builder
98    pub fn into_builder(self) -> CstBuilder {
99        self.builder
100    }
101}
102impl From<NaNToken> for BuilderNodeId {
103    fn from(token: NaNToken) -> Self {
104        token.node_id
105    }
106}
107///Branded type for True terminal
108#[derive(Debug, Clone)]
109pub struct TrueToken {
110    pub(super) node_id: BuilderNodeId,
111    pub(super) builder: CstBuilder,
112}
113impl TrueToken {
114    /// Consume this token and return its builder
115    pub fn into_builder(self) -> CstBuilder {
116        self.builder
117    }
118}
119impl From<TrueToken> for BuilderNodeId {
120    fn from(token: TrueToken) -> Self {
121        token.node_id
122    }
123}
124///Branded type for False terminal
125#[derive(Debug, Clone)]
126pub struct FalseToken {
127    pub(super) node_id: BuilderNodeId,
128    pub(super) builder: CstBuilder,
129}
130impl FalseToken {
131    /// Consume this token and return its builder
132    pub fn into_builder(self) -> CstBuilder {
133        self.builder
134    }
135}
136impl From<FalseToken> for BuilderNodeId {
137    fn from(token: FalseToken) -> Self {
138        token.node_id
139    }
140}
141///Branded type for Null terminal
142#[derive(Debug, Clone)]
143pub struct NullToken {
144    pub(super) node_id: BuilderNodeId,
145    pub(super) builder: CstBuilder,
146}
147impl NullToken {
148    /// Consume this token and return its builder
149    pub fn into_builder(self) -> CstBuilder {
150        self.builder
151    }
152}
153impl From<NullToken> for BuilderNodeId {
154    fn from(token: NullToken) -> Self {
155        token.node_id
156    }
157}
158///Branded type for Hole terminal
159#[derive(Debug, Clone)]
160pub struct HoleToken {
161    pub(super) node_id: BuilderNodeId,
162    pub(super) builder: CstBuilder,
163}
164impl HoleToken {
165    /// Consume this token and return its builder
166    pub fn into_builder(self) -> CstBuilder {
167        self.builder
168    }
169}
170impl From<HoleToken> for BuilderNodeId {
171    fn from(token: HoleToken) -> Self {
172        token.node_id
173    }
174}
175///Branded type for Str terminal
176#[derive(Debug, Clone)]
177pub struct StrToken {
178    pub(super) node_id: BuilderNodeId,
179    pub(super) builder: CstBuilder,
180}
181impl StrToken {
182    /// Consume this token and return its builder
183    pub fn into_builder(self) -> CstBuilder {
184        self.builder
185    }
186}
187impl From<StrToken> for BuilderNodeId {
188    fn from(token: StrToken) -> Self {
189        token.node_id
190    }
191}
192///Branded type for Text terminal
193#[derive(Debug, Clone)]
194pub struct TextToken {
195    pub(super) node_id: BuilderNodeId,
196    pub(super) builder: CstBuilder,
197}
198impl TextToken {
199    /// Consume this token and return its builder
200    pub fn into_builder(self) -> CstBuilder {
201        self.builder
202    }
203}
204impl From<TextToken> for BuilderNodeId {
205    fn from(token: TextToken) -> Self {
206        token.node_id
207    }
208}
209///Branded type for InlineCode1 terminal
210#[derive(Debug, Clone)]
211pub struct InlineCode1Token {
212    pub(super) node_id: BuilderNodeId,
213    pub(super) builder: CstBuilder,
214}
215impl InlineCode1Token {
216    /// Consume this token and return its builder
217    pub fn into_builder(self) -> CstBuilder {
218        self.builder
219    }
220}
221impl From<InlineCode1Token> for BuilderNodeId {
222    fn from(token: InlineCode1Token) -> Self {
223        token.node_id
224    }
225}
226///Branded type for InlineCodeStart2 terminal
227#[derive(Debug, Clone)]
228pub struct InlineCodeStart2Token {
229    pub(super) node_id: BuilderNodeId,
230    pub(super) builder: CstBuilder,
231}
232impl InlineCodeStart2Token {
233    /// Consume this token and return its builder
234    pub fn into_builder(self) -> CstBuilder {
235        self.builder
236    }
237}
238impl From<InlineCodeStart2Token> for BuilderNodeId {
239    fn from(token: InlineCodeStart2Token) -> Self {
240        token.node_id
241    }
242}
243///Branded type for CodeBlockStart3 terminal
244#[derive(Debug, Clone)]
245pub struct CodeBlockStart3Token {
246    pub(super) node_id: BuilderNodeId,
247    pub(super) builder: CstBuilder,
248}
249impl CodeBlockStart3Token {
250    /// Consume this token and return its builder
251    pub fn into_builder(self) -> CstBuilder {
252        self.builder
253    }
254}
255impl From<CodeBlockStart3Token> for BuilderNodeId {
256    fn from(token: CodeBlockStart3Token) -> Self {
257        token.node_id
258    }
259}
260///Branded type for CodeBlockStart4 terminal
261#[derive(Debug, Clone)]
262pub struct CodeBlockStart4Token {
263    pub(super) node_id: BuilderNodeId,
264    pub(super) builder: CstBuilder,
265}
266impl CodeBlockStart4Token {
267    /// Consume this token and return its builder
268    pub fn into_builder(self) -> CstBuilder {
269        self.builder
270    }
271}
272impl From<CodeBlockStart4Token> for BuilderNodeId {
273    fn from(token: CodeBlockStart4Token) -> Self {
274        token.node_id
275    }
276}
277///Branded type for CodeBlockStart5 terminal
278#[derive(Debug, Clone)]
279pub struct CodeBlockStart5Token {
280    pub(super) node_id: BuilderNodeId,
281    pub(super) builder: CstBuilder,
282}
283impl CodeBlockStart5Token {
284    /// Consume this token and return its builder
285    pub fn into_builder(self) -> CstBuilder {
286        self.builder
287    }
288}
289impl From<CodeBlockStart5Token> for BuilderNodeId {
290    fn from(token: CodeBlockStart5Token) -> Self {
291        token.node_id
292    }
293}
294///Branded type for CodeBlockStart6 terminal
295#[derive(Debug, Clone)]
296pub struct CodeBlockStart6Token {
297    pub(super) node_id: BuilderNodeId,
298    pub(super) builder: CstBuilder,
299}
300impl CodeBlockStart6Token {
301    /// Consume this token and return its builder
302    pub fn into_builder(self) -> CstBuilder {
303        self.builder
304    }
305}
306impl From<CodeBlockStart6Token> for BuilderNodeId {
307    fn from(token: CodeBlockStart6Token) -> Self {
308        token.node_id
309    }
310}
311///Branded type for CodeBlockEnd3 terminal
312#[derive(Debug, Clone)]
313pub struct CodeBlockEnd3Token {
314    pub(super) node_id: BuilderNodeId,
315    pub(super) builder: CstBuilder,
316}
317impl CodeBlockEnd3Token {
318    /// Consume this token and return its builder
319    pub fn into_builder(self) -> CstBuilder {
320        self.builder
321    }
322}
323impl From<CodeBlockEnd3Token> for BuilderNodeId {
324    fn from(token: CodeBlockEnd3Token) -> Self {
325        token.node_id
326    }
327}
328///Branded type for Backtick2 terminal
329#[derive(Debug, Clone)]
330pub struct Backtick2Token {
331    pub(super) node_id: BuilderNodeId,
332    pub(super) builder: CstBuilder,
333}
334impl Backtick2Token {
335    /// Consume this token and return its builder
336    pub fn into_builder(self) -> CstBuilder {
337        self.builder
338    }
339}
340impl From<Backtick2Token> for BuilderNodeId {
341    fn from(token: Backtick2Token) -> Self {
342        token.node_id
343    }
344}
345///Branded type for CodeBlockEnd4 terminal
346#[derive(Debug, Clone)]
347pub struct CodeBlockEnd4Token {
348    pub(super) node_id: BuilderNodeId,
349    pub(super) builder: CstBuilder,
350}
351impl CodeBlockEnd4Token {
352    /// Consume this token and return its builder
353    pub fn into_builder(self) -> CstBuilder {
354        self.builder
355    }
356}
357impl From<CodeBlockEnd4Token> for BuilderNodeId {
358    fn from(token: CodeBlockEnd4Token) -> Self {
359        token.node_id
360    }
361}
362///Branded type for Backtick3 terminal
363#[derive(Debug, Clone)]
364pub struct Backtick3Token {
365    pub(super) node_id: BuilderNodeId,
366    pub(super) builder: CstBuilder,
367}
368impl Backtick3Token {
369    /// Consume this token and return its builder
370    pub fn into_builder(self) -> CstBuilder {
371        self.builder
372    }
373}
374impl From<Backtick3Token> for BuilderNodeId {
375    fn from(token: Backtick3Token) -> Self {
376        token.node_id
377    }
378}
379///Branded type for CodeBlockEnd5 terminal
380#[derive(Debug, Clone)]
381pub struct CodeBlockEnd5Token {
382    pub(super) node_id: BuilderNodeId,
383    pub(super) builder: CstBuilder,
384}
385impl CodeBlockEnd5Token {
386    /// Consume this token and return its builder
387    pub fn into_builder(self) -> CstBuilder {
388        self.builder
389    }
390}
391impl From<CodeBlockEnd5Token> for BuilderNodeId {
392    fn from(token: CodeBlockEnd5Token) -> Self {
393        token.node_id
394    }
395}
396///Branded type for Backtick4 terminal
397#[derive(Debug, Clone)]
398pub struct Backtick4Token {
399    pub(super) node_id: BuilderNodeId,
400    pub(super) builder: CstBuilder,
401}
402impl Backtick4Token {
403    /// Consume this token and return its builder
404    pub fn into_builder(self) -> CstBuilder {
405        self.builder
406    }
407}
408impl From<Backtick4Token> for BuilderNodeId {
409    fn from(token: Backtick4Token) -> Self {
410        token.node_id
411    }
412}
413///Branded type for CodeBlockEnd6 terminal
414#[derive(Debug, Clone)]
415pub struct CodeBlockEnd6Token {
416    pub(super) node_id: BuilderNodeId,
417    pub(super) builder: CstBuilder,
418}
419impl CodeBlockEnd6Token {
420    /// Consume this token and return its builder
421    pub fn into_builder(self) -> CstBuilder {
422        self.builder
423    }
424}
425impl From<CodeBlockEnd6Token> for BuilderNodeId {
426    fn from(token: CodeBlockEnd6Token) -> Self {
427        token.node_id
428    }
429}
430///Branded type for Backtick5 terminal
431#[derive(Debug, Clone)]
432pub struct Backtick5Token {
433    pub(super) node_id: BuilderNodeId,
434    pub(super) builder: CstBuilder,
435}
436impl Backtick5Token {
437    /// Consume this token and return its builder
438    pub fn into_builder(self) -> CstBuilder {
439        self.builder
440    }
441}
442impl From<Backtick5Token> for BuilderNodeId {
443    fn from(token: Backtick5Token) -> Self {
444        token.node_id
445    }
446}
447///Branded type for InlineCodeEnd2 terminal
448#[derive(Debug, Clone)]
449pub struct InlineCodeEnd2Token {
450    pub(super) node_id: BuilderNodeId,
451    pub(super) builder: CstBuilder,
452}
453impl InlineCodeEnd2Token {
454    /// Consume this token and return its builder
455    pub fn into_builder(self) -> CstBuilder {
456        self.builder
457    }
458}
459impl From<InlineCodeEnd2Token> for BuilderNodeId {
460    fn from(token: InlineCodeEnd2Token) -> Self {
461        token.node_id
462    }
463}
464///Branded type for Backtick1 terminal
465#[derive(Debug, Clone)]
466pub struct Backtick1Token {
467    pub(super) node_id: BuilderNodeId,
468    pub(super) builder: CstBuilder,
469}
470impl Backtick1Token {
471    /// Consume this token and return its builder
472    pub fn into_builder(self) -> CstBuilder {
473        self.builder
474    }
475}
476impl From<Backtick1Token> for BuilderNodeId {
477    fn from(token: Backtick1Token) -> Self {
478        token.node_id
479    }
480}
481///Branded type for NoBacktick terminal
482#[derive(Debug, Clone)]
483pub struct NoBacktickToken {
484    pub(super) node_id: BuilderNodeId,
485    pub(super) builder: CstBuilder,
486}
487impl NoBacktickToken {
488    /// Consume this token and return its builder
489    pub fn into_builder(self) -> CstBuilder {
490        self.builder
491    }
492}
493impl From<NoBacktickToken> for BuilderNodeId {
494    fn from(token: NoBacktickToken) -> Self {
495        token.node_id
496    }
497}
498///Branded type for NoBacktickInline terminal
499#[derive(Debug, Clone)]
500pub struct NoBacktickInlineToken {
501    pub(super) node_id: BuilderNodeId,
502    pub(super) builder: CstBuilder,
503}
504impl NoBacktickInlineToken {
505    /// Consume this token and return its builder
506    pub fn into_builder(self) -> CstBuilder {
507        self.builder
508    }
509}
510impl From<NoBacktickInlineToken> for BuilderNodeId {
511    fn from(token: NoBacktickInlineToken) -> Self {
512        token.node_id
513    }
514}
515///Branded type for GrammarNewline terminal
516#[derive(Debug, Clone)]
517pub struct GrammarNewlineToken {
518    pub(super) node_id: BuilderNodeId,
519    pub(super) builder: CstBuilder,
520}
521impl GrammarNewlineToken {
522    /// Consume this token and return its builder
523    pub fn into_builder(self) -> CstBuilder {
524        self.builder
525    }
526}
527impl From<GrammarNewlineToken> for BuilderNodeId {
528    fn from(token: GrammarNewlineToken) -> Self {
529        token.node_id
530    }
531}
532///Branded type for Ws terminal
533#[derive(Debug, Clone)]
534pub struct WsToken {
535    pub(super) node_id: BuilderNodeId,
536    pub(super) builder: CstBuilder,
537}
538impl WsToken {
539    /// Consume this token and return its builder
540    pub fn into_builder(self) -> CstBuilder {
541        self.builder
542    }
543}
544impl From<WsToken> for BuilderNodeId {
545    fn from(token: WsToken) -> Self {
546        token.node_id
547    }
548}
549///Branded type for At terminal
550#[derive(Debug, Clone)]
551pub struct AtToken {
552    pub(super) node_id: BuilderNodeId,
553    pub(super) builder: CstBuilder,
554}
555impl AtToken {
556    /// Consume this token and return its builder
557    pub fn into_builder(self) -> CstBuilder {
558        self.builder
559    }
560}
561impl From<AtToken> for BuilderNodeId {
562    fn from(token: AtToken) -> Self {
563        token.node_id
564    }
565}
566///Branded type for Dollar terminal
567#[derive(Debug, Clone)]
568pub struct DollarToken {
569    pub(super) node_id: BuilderNodeId,
570    pub(super) builder: CstBuilder,
571}
572impl DollarToken {
573    /// Consume this token and return its builder
574    pub fn into_builder(self) -> CstBuilder {
575        self.builder
576    }
577}
578impl From<DollarToken> for BuilderNodeId {
579    fn from(token: DollarToken) -> Self {
580        token.node_id
581    }
582}
583///Branded type for Dot terminal
584#[derive(Debug, Clone)]
585pub struct DotToken {
586    pub(super) node_id: BuilderNodeId,
587    pub(super) builder: CstBuilder,
588}
589impl DotToken {
590    /// Consume this token and return its builder
591    pub fn into_builder(self) -> CstBuilder {
592        self.builder
593    }
594}
595impl From<DotToken> for BuilderNodeId {
596    fn from(token: DotToken) -> Self {
597        token.node_id
598    }
599}
600///Branded type for LBrace terminal
601#[derive(Debug, Clone)]
602pub struct LBraceToken {
603    pub(super) node_id: BuilderNodeId,
604    pub(super) builder: CstBuilder,
605}
606impl LBraceToken {
607    /// Consume this token and return its builder
608    pub fn into_builder(self) -> CstBuilder {
609        self.builder
610    }
611}
612impl From<LBraceToken> for BuilderNodeId {
613    fn from(token: LBraceToken) -> Self {
614        token.node_id
615    }
616}
617///Branded type for RBrace terminal
618#[derive(Debug, Clone)]
619pub struct RBraceToken {
620    pub(super) node_id: BuilderNodeId,
621    pub(super) builder: CstBuilder,
622}
623impl RBraceToken {
624    /// Consume this token and return its builder
625    pub fn into_builder(self) -> CstBuilder {
626        self.builder
627    }
628}
629impl From<RBraceToken> for BuilderNodeId {
630    fn from(token: RBraceToken) -> Self {
631        token.node_id
632    }
633}
634///Branded type for LBracket terminal
635#[derive(Debug, Clone)]
636pub struct LBracketToken {
637    pub(super) node_id: BuilderNodeId,
638    pub(super) builder: CstBuilder,
639}
640impl LBracketToken {
641    /// Consume this token and return its builder
642    pub fn into_builder(self) -> CstBuilder {
643        self.builder
644    }
645}
646impl From<LBracketToken> for BuilderNodeId {
647    fn from(token: LBracketToken) -> Self {
648        token.node_id
649    }
650}
651///Branded type for RBracket terminal
652#[derive(Debug, Clone)]
653pub struct RBracketToken {
654    pub(super) node_id: BuilderNodeId,
655    pub(super) builder: CstBuilder,
656}
657impl RBracketToken {
658    /// Consume this token and return its builder
659    pub fn into_builder(self) -> CstBuilder {
660        self.builder
661    }
662}
663impl From<RBracketToken> for BuilderNodeId {
664    fn from(token: RBracketToken) -> Self {
665        token.node_id
666    }
667}
668///Branded type for LParen terminal
669#[derive(Debug, Clone)]
670pub struct LParenToken {
671    pub(super) node_id: BuilderNodeId,
672    pub(super) builder: CstBuilder,
673}
674impl LParenToken {
675    /// Consume this token and return its builder
676    pub fn into_builder(self) -> CstBuilder {
677        self.builder
678    }
679}
680impl From<LParenToken> for BuilderNodeId {
681    fn from(token: LParenToken) -> Self {
682        token.node_id
683    }
684}
685///Branded type for RParen terminal
686#[derive(Debug, Clone)]
687pub struct RParenToken {
688    pub(super) node_id: BuilderNodeId,
689    pub(super) builder: CstBuilder,
690}
691impl RParenToken {
692    /// Consume this token and return its builder
693    pub fn into_builder(self) -> CstBuilder {
694        self.builder
695    }
696}
697impl From<RParenToken> for BuilderNodeId {
698    fn from(token: RParenToken) -> Self {
699        token.node_id
700    }
701}
702///Branded type for Bind terminal
703#[derive(Debug, Clone)]
704pub struct BindToken {
705    pub(super) node_id: BuilderNodeId,
706    pub(super) builder: CstBuilder,
707}
708impl BindToken {
709    /// Consume this token and return its builder
710    pub fn into_builder(self) -> CstBuilder {
711        self.builder
712    }
713}
714impl From<BindToken> for BuilderNodeId {
715    fn from(token: BindToken) -> Self {
716        token.node_id
717    }
718}
719///Branded type for Comma terminal
720#[derive(Debug, Clone)]
721pub struct CommaToken {
722    pub(super) node_id: BuilderNodeId,
723    pub(super) builder: CstBuilder,
724}
725impl CommaToken {
726    /// Consume this token and return its builder
727    pub fn into_builder(self) -> CstBuilder {
728        self.builder
729    }
730}
731impl From<CommaToken> for BuilderNodeId {
732    fn from(token: CommaToken) -> Self {
733        token.node_id
734    }
735}
736///Branded type for Esc terminal
737#[derive(Debug, Clone)]
738pub struct EscToken {
739    pub(super) node_id: BuilderNodeId,
740    pub(super) builder: CstBuilder,
741}
742impl EscToken {
743    /// Consume this token and return its builder
744    pub fn into_builder(self) -> CstBuilder {
745        self.builder
746    }
747}
748impl From<EscToken> for BuilderNodeId {
749    fn from(token: EscToken) -> Self {
750        token.node_id
751    }
752}
753///Branded type for TextStart terminal
754#[derive(Debug, Clone)]
755pub struct TextStartToken {
756    pub(super) node_id: BuilderNodeId,
757    pub(super) builder: CstBuilder,
758}
759impl TextStartToken {
760    /// Consume this token and return its builder
761    pub fn into_builder(self) -> CstBuilder {
762        self.builder
763    }
764}
765impl From<TextStartToken> for BuilderNodeId {
766    fn from(token: TextStartToken) -> Self {
767        token.node_id
768    }
769}
770///Branded type for Ident terminal
771#[derive(Debug, Clone)]
772pub struct IdentToken {
773    pub(super) node_id: BuilderNodeId,
774    pub(super) builder: CstBuilder,
775}
776impl IdentToken {
777    /// Consume this token and return its builder
778    pub fn into_builder(self) -> CstBuilder {
779        self.builder
780    }
781}
782impl From<IdentToken> for BuilderNodeId {
783    fn from(token: IdentToken) -> Self {
784        token.node_id
785    }
786}
787///Branded type for Array non-terminal
788#[derive(Debug, Clone)]
789pub struct ArrayNode {
790    pub(super) node_id: BuilderNodeId,
791    pub(super) builder: CstBuilder,
792}
793impl ArrayNode {
794    /// Consume this node and return its builder
795    pub fn into_builder(self) -> CstBuilder {
796        self.builder
797    }
798}
799impl From<ArrayNode> for BuilderNodeId {
800    fn from(node: ArrayNode) -> Self {
801        node.node_id
802    }
803}
804///Branded type for ArrayBegin non-terminal
805#[derive(Debug, Clone)]
806pub struct ArrayBeginNode {
807    pub(super) node_id: BuilderNodeId,
808    pub(super) builder: CstBuilder,
809}
810impl ArrayBeginNode {
811    /// Consume this node and return its builder
812    pub fn into_builder(self) -> CstBuilder {
813        self.builder
814    }
815}
816impl From<ArrayBeginNode> for BuilderNodeId {
817    fn from(node: ArrayBeginNode) -> Self {
818        node.node_id
819    }
820}
821///Branded type for ArrayElements non-terminal
822#[derive(Debug, Clone)]
823pub struct ArrayElementsNode {
824    pub(super) node_id: BuilderNodeId,
825    pub(super) builder: CstBuilder,
826}
827impl ArrayElementsNode {
828    /// Consume this node and return its builder
829    pub fn into_builder(self) -> CstBuilder {
830        self.builder
831    }
832}
833impl From<ArrayElementsNode> for BuilderNodeId {
834    fn from(node: ArrayElementsNode) -> Self {
835        node.node_id
836    }
837}
838///Branded type for ArrayElementsOpt non-terminal
839#[derive(Debug, Clone)]
840pub struct ArrayElementsOptNode {
841    pub(super) node_id: BuilderNodeId,
842    pub(super) builder: CstBuilder,
843}
844impl ArrayElementsOptNode {
845    /// Consume this node and return its builder
846    pub fn into_builder(self) -> CstBuilder {
847        self.builder
848    }
849}
850impl From<ArrayElementsOptNode> for BuilderNodeId {
851    fn from(node: ArrayElementsOptNode) -> Self {
852        node.node_id
853    }
854}
855///Branded type for ArrayElementsTail non-terminal
856#[derive(Debug, Clone)]
857pub struct ArrayElementsTailNode {
858    pub(super) node_id: BuilderNodeId,
859    pub(super) builder: CstBuilder,
860}
861impl ArrayElementsTailNode {
862    /// Consume this node and return its builder
863    pub fn into_builder(self) -> CstBuilder {
864        self.builder
865    }
866}
867impl From<ArrayElementsTailNode> for BuilderNodeId {
868    fn from(node: ArrayElementsTailNode) -> Self {
869        node.node_id
870    }
871}
872///Branded type for ArrayElementsTailOpt non-terminal
873#[derive(Debug, Clone)]
874pub struct ArrayElementsTailOptNode {
875    pub(super) node_id: BuilderNodeId,
876    pub(super) builder: CstBuilder,
877}
878impl ArrayElementsTailOptNode {
879    /// Consume this node and return its builder
880    pub fn into_builder(self) -> CstBuilder {
881        self.builder
882    }
883}
884impl From<ArrayElementsTailOptNode> for BuilderNodeId {
885    fn from(node: ArrayElementsTailOptNode) -> Self {
886        node.node_id
887    }
888}
889///Branded type for ArrayEnd non-terminal
890#[derive(Debug, Clone)]
891pub struct ArrayEndNode {
892    pub(super) node_id: BuilderNodeId,
893    pub(super) builder: CstBuilder,
894}
895impl ArrayEndNode {
896    /// Consume this node and return its builder
897    pub fn into_builder(self) -> CstBuilder {
898        self.builder
899    }
900}
901impl From<ArrayEndNode> for BuilderNodeId {
902    fn from(node: ArrayEndNode) -> Self {
903        node.node_id
904    }
905}
906///Branded type for ArrayMarker non-terminal
907#[derive(Debug, Clone)]
908pub struct ArrayMarkerNode {
909    pub(super) node_id: BuilderNodeId,
910    pub(super) builder: CstBuilder,
911}
912impl ArrayMarkerNode {
913    /// Consume this node and return its builder
914    pub fn into_builder(self) -> CstBuilder {
915        self.builder
916    }
917}
918impl From<ArrayMarkerNode> for BuilderNodeId {
919    fn from(node: ArrayMarkerNode) -> Self {
920        node.node_id
921    }
922}
923///Branded type for ArrayMarkerOpt non-terminal
924#[derive(Debug, Clone)]
925pub struct ArrayMarkerOptNode {
926    pub(super) node_id: BuilderNodeId,
927    pub(super) builder: CstBuilder,
928}
929impl ArrayMarkerOptNode {
930    /// Consume this node and return its builder
931    pub fn into_builder(self) -> CstBuilder {
932        self.builder
933    }
934}
935impl From<ArrayMarkerOptNode> for BuilderNodeId {
936    fn from(node: ArrayMarkerOptNode) -> Self {
937        node.node_id
938    }
939}
940///Branded type for ArrayOpt non-terminal
941#[derive(Debug, Clone)]
942pub struct ArrayOptNode {
943    pub(super) node_id: BuilderNodeId,
944    pub(super) builder: CstBuilder,
945}
946impl ArrayOptNode {
947    /// Consume this node and return its builder
948    pub fn into_builder(self) -> CstBuilder {
949        self.builder
950    }
951}
952impl From<ArrayOptNode> for BuilderNodeId {
953    fn from(node: ArrayOptNode) -> Self {
954        node.node_id
955    }
956}
957///Branded type for At non-terminal
958#[derive(Debug, Clone)]
959pub struct AtNode {
960    pub(super) node_id: BuilderNodeId,
961    pub(super) builder: CstBuilder,
962}
963impl AtNode {
964    /// Consume this node and return its builder
965    pub fn into_builder(self) -> CstBuilder {
966        self.builder
967    }
968}
969impl From<AtNode> for BuilderNodeId {
970    fn from(node: AtNode) -> Self {
971        node.node_id
972    }
973}
974///Branded type for Backtick1 non-terminal
975#[derive(Debug, Clone)]
976pub struct Backtick1Node {
977    pub(super) node_id: BuilderNodeId,
978    pub(super) builder: CstBuilder,
979}
980impl Backtick1Node {
981    /// Consume this node and return its builder
982    pub fn into_builder(self) -> CstBuilder {
983        self.builder
984    }
985}
986impl From<Backtick1Node> for BuilderNodeId {
987    fn from(node: Backtick1Node) -> Self {
988        node.node_id
989    }
990}
991///Branded type for Backtick2 non-terminal
992#[derive(Debug, Clone)]
993pub struct Backtick2Node {
994    pub(super) node_id: BuilderNodeId,
995    pub(super) builder: CstBuilder,
996}
997impl Backtick2Node {
998    /// Consume this node and return its builder
999    pub fn into_builder(self) -> CstBuilder {
1000        self.builder
1001    }
1002}
1003impl From<Backtick2Node> for BuilderNodeId {
1004    fn from(node: Backtick2Node) -> Self {
1005        node.node_id
1006    }
1007}
1008///Branded type for Backtick3 non-terminal
1009#[derive(Debug, Clone)]
1010pub struct Backtick3Node {
1011    pub(super) node_id: BuilderNodeId,
1012    pub(super) builder: CstBuilder,
1013}
1014impl Backtick3Node {
1015    /// Consume this node and return its builder
1016    pub fn into_builder(self) -> CstBuilder {
1017        self.builder
1018    }
1019}
1020impl From<Backtick3Node> for BuilderNodeId {
1021    fn from(node: Backtick3Node) -> Self {
1022        node.node_id
1023    }
1024}
1025///Branded type for Backtick4 non-terminal
1026#[derive(Debug, Clone)]
1027pub struct Backtick4Node {
1028    pub(super) node_id: BuilderNodeId,
1029    pub(super) builder: CstBuilder,
1030}
1031impl Backtick4Node {
1032    /// Consume this node and return its builder
1033    pub fn into_builder(self) -> CstBuilder {
1034        self.builder
1035    }
1036}
1037impl From<Backtick4Node> for BuilderNodeId {
1038    fn from(node: Backtick4Node) -> Self {
1039        node.node_id
1040    }
1041}
1042///Branded type for Backtick5 non-terminal
1043#[derive(Debug, Clone)]
1044pub struct Backtick5Node {
1045    pub(super) node_id: BuilderNodeId,
1046    pub(super) builder: CstBuilder,
1047}
1048impl Backtick5Node {
1049    /// Consume this node and return its builder
1050    pub fn into_builder(self) -> CstBuilder {
1051        self.builder
1052    }
1053}
1054impl From<Backtick5Node> for BuilderNodeId {
1055    fn from(node: Backtick5Node) -> Self {
1056        node.node_id
1057    }
1058}
1059///Branded type for Begin non-terminal
1060#[derive(Debug, Clone)]
1061pub struct BeginNode {
1062    pub(super) node_id: BuilderNodeId,
1063    pub(super) builder: CstBuilder,
1064}
1065impl BeginNode {
1066    /// Consume this node and return its builder
1067    pub fn into_builder(self) -> CstBuilder {
1068        self.builder
1069    }
1070}
1071impl From<BeginNode> for BuilderNodeId {
1072    fn from(node: BeginNode) -> Self {
1073        node.node_id
1074    }
1075}
1076///Branded type for Bind non-terminal
1077#[derive(Debug, Clone)]
1078pub struct BindNode {
1079    pub(super) node_id: BuilderNodeId,
1080    pub(super) builder: CstBuilder,
1081}
1082impl BindNode {
1083    /// Consume this node and return its builder
1084    pub fn into_builder(self) -> CstBuilder {
1085        self.builder
1086    }
1087}
1088impl From<BindNode> for BuilderNodeId {
1089    fn from(node: BindNode) -> Self {
1090        node.node_id
1091    }
1092}
1093///Branded type for Binding non-terminal
1094#[derive(Debug, Clone)]
1095pub struct BindingNode {
1096    pub(super) node_id: BuilderNodeId,
1097    pub(super) builder: CstBuilder,
1098}
1099impl BindingNode {
1100    /// Consume this node and return its builder
1101    pub fn into_builder(self) -> CstBuilder {
1102        self.builder
1103    }
1104}
1105impl From<BindingNode> for BuilderNodeId {
1106    fn from(node: BindingNode) -> Self {
1107        node.node_id
1108    }
1109}
1110///Branded type for BindingRhs non-terminal
1111#[derive(Debug, Clone)]
1112pub struct BindingRhsNode {
1113    pub(super) node_id: BuilderNodeId,
1114    pub(super) builder: CstBuilder,
1115}
1116impl BindingRhsNode {
1117    /// Consume this node and return its builder
1118    pub fn into_builder(self) -> CstBuilder {
1119        self.builder
1120    }
1121}
1122impl From<BindingRhsNode> for BuilderNodeId {
1123    fn from(node: BindingRhsNode) -> Self {
1124        node.node_id
1125    }
1126}
1127///Branded type for Boolean non-terminal
1128#[derive(Debug, Clone)]
1129pub struct BooleanNode {
1130    pub(super) node_id: BuilderNodeId,
1131    pub(super) builder: CstBuilder,
1132}
1133impl BooleanNode {
1134    /// Consume this node and return its builder
1135    pub fn into_builder(self) -> CstBuilder {
1136        self.builder
1137    }
1138}
1139impl From<BooleanNode> for BuilderNodeId {
1140    fn from(node: BooleanNode) -> Self {
1141        node.node_id
1142    }
1143}
1144///Branded type for CodeBlock non-terminal
1145#[derive(Debug, Clone)]
1146pub struct CodeBlockNode {
1147    pub(super) node_id: BuilderNodeId,
1148    pub(super) builder: CstBuilder,
1149}
1150impl CodeBlockNode {
1151    /// Consume this node and return its builder
1152    pub fn into_builder(self) -> CstBuilder {
1153        self.builder
1154    }
1155}
1156impl From<CodeBlockNode> for BuilderNodeId {
1157    fn from(node: CodeBlockNode) -> Self {
1158        node.node_id
1159    }
1160}
1161///Branded type for CodeBlock3 non-terminal
1162#[derive(Debug, Clone)]
1163pub struct CodeBlock3Node {
1164    pub(super) node_id: BuilderNodeId,
1165    pub(super) builder: CstBuilder,
1166}
1167impl CodeBlock3Node {
1168    /// Consume this node and return its builder
1169    pub fn into_builder(self) -> CstBuilder {
1170        self.builder
1171    }
1172}
1173impl From<CodeBlock3Node> for BuilderNodeId {
1174    fn from(node: CodeBlock3Node) -> Self {
1175        node.node_id
1176    }
1177}
1178///Branded type for CodeBlock3List non-terminal
1179#[derive(Debug, Clone)]
1180pub struct CodeBlock3ListNode {
1181    pub(super) node_id: BuilderNodeId,
1182    pub(super) builder: CstBuilder,
1183}
1184impl CodeBlock3ListNode {
1185    /// Consume this node and return its builder
1186    pub fn into_builder(self) -> CstBuilder {
1187        self.builder
1188    }
1189}
1190impl From<CodeBlock3ListNode> for BuilderNodeId {
1191    fn from(node: CodeBlock3ListNode) -> Self {
1192        node.node_id
1193    }
1194}
1195///Branded type for CodeBlock3ListGroup non-terminal
1196#[derive(Debug, Clone)]
1197pub struct CodeBlock3ListGroupNode {
1198    pub(super) node_id: BuilderNodeId,
1199    pub(super) builder: CstBuilder,
1200}
1201impl CodeBlock3ListGroupNode {
1202    /// Consume this node and return its builder
1203    pub fn into_builder(self) -> CstBuilder {
1204        self.builder
1205    }
1206}
1207impl From<CodeBlock3ListGroupNode> for BuilderNodeId {
1208    fn from(node: CodeBlock3ListGroupNode) -> Self {
1209        node.node_id
1210    }
1211}
1212///Branded type for CodeBlock4 non-terminal
1213#[derive(Debug, Clone)]
1214pub struct CodeBlock4Node {
1215    pub(super) node_id: BuilderNodeId,
1216    pub(super) builder: CstBuilder,
1217}
1218impl CodeBlock4Node {
1219    /// Consume this node and return its builder
1220    pub fn into_builder(self) -> CstBuilder {
1221        self.builder
1222    }
1223}
1224impl From<CodeBlock4Node> for BuilderNodeId {
1225    fn from(node: CodeBlock4Node) -> Self {
1226        node.node_id
1227    }
1228}
1229///Branded type for CodeBlock4List non-terminal
1230#[derive(Debug, Clone)]
1231pub struct CodeBlock4ListNode {
1232    pub(super) node_id: BuilderNodeId,
1233    pub(super) builder: CstBuilder,
1234}
1235impl CodeBlock4ListNode {
1236    /// Consume this node and return its builder
1237    pub fn into_builder(self) -> CstBuilder {
1238        self.builder
1239    }
1240}
1241impl From<CodeBlock4ListNode> for BuilderNodeId {
1242    fn from(node: CodeBlock4ListNode) -> Self {
1243        node.node_id
1244    }
1245}
1246///Branded type for CodeBlock4ListGroup non-terminal
1247#[derive(Debug, Clone)]
1248pub struct CodeBlock4ListGroupNode {
1249    pub(super) node_id: BuilderNodeId,
1250    pub(super) builder: CstBuilder,
1251}
1252impl CodeBlock4ListGroupNode {
1253    /// Consume this node and return its builder
1254    pub fn into_builder(self) -> CstBuilder {
1255        self.builder
1256    }
1257}
1258impl From<CodeBlock4ListGroupNode> for BuilderNodeId {
1259    fn from(node: CodeBlock4ListGroupNode) -> Self {
1260        node.node_id
1261    }
1262}
1263///Branded type for CodeBlock5 non-terminal
1264#[derive(Debug, Clone)]
1265pub struct CodeBlock5Node {
1266    pub(super) node_id: BuilderNodeId,
1267    pub(super) builder: CstBuilder,
1268}
1269impl CodeBlock5Node {
1270    /// Consume this node and return its builder
1271    pub fn into_builder(self) -> CstBuilder {
1272        self.builder
1273    }
1274}
1275impl From<CodeBlock5Node> for BuilderNodeId {
1276    fn from(node: CodeBlock5Node) -> Self {
1277        node.node_id
1278    }
1279}
1280///Branded type for CodeBlock5List non-terminal
1281#[derive(Debug, Clone)]
1282pub struct CodeBlock5ListNode {
1283    pub(super) node_id: BuilderNodeId,
1284    pub(super) builder: CstBuilder,
1285}
1286impl CodeBlock5ListNode {
1287    /// Consume this node and return its builder
1288    pub fn into_builder(self) -> CstBuilder {
1289        self.builder
1290    }
1291}
1292impl From<CodeBlock5ListNode> for BuilderNodeId {
1293    fn from(node: CodeBlock5ListNode) -> Self {
1294        node.node_id
1295    }
1296}
1297///Branded type for CodeBlock5ListGroup non-terminal
1298#[derive(Debug, Clone)]
1299pub struct CodeBlock5ListGroupNode {
1300    pub(super) node_id: BuilderNodeId,
1301    pub(super) builder: CstBuilder,
1302}
1303impl CodeBlock5ListGroupNode {
1304    /// Consume this node and return its builder
1305    pub fn into_builder(self) -> CstBuilder {
1306        self.builder
1307    }
1308}
1309impl From<CodeBlock5ListGroupNode> for BuilderNodeId {
1310    fn from(node: CodeBlock5ListGroupNode) -> Self {
1311        node.node_id
1312    }
1313}
1314///Branded type for CodeBlock6 non-terminal
1315#[derive(Debug, Clone)]
1316pub struct CodeBlock6Node {
1317    pub(super) node_id: BuilderNodeId,
1318    pub(super) builder: CstBuilder,
1319}
1320impl CodeBlock6Node {
1321    /// Consume this node and return its builder
1322    pub fn into_builder(self) -> CstBuilder {
1323        self.builder
1324    }
1325}
1326impl From<CodeBlock6Node> for BuilderNodeId {
1327    fn from(node: CodeBlock6Node) -> Self {
1328        node.node_id
1329    }
1330}
1331///Branded type for CodeBlock6List non-terminal
1332#[derive(Debug, Clone)]
1333pub struct CodeBlock6ListNode {
1334    pub(super) node_id: BuilderNodeId,
1335    pub(super) builder: CstBuilder,
1336}
1337impl CodeBlock6ListNode {
1338    /// Consume this node and return its builder
1339    pub fn into_builder(self) -> CstBuilder {
1340        self.builder
1341    }
1342}
1343impl From<CodeBlock6ListNode> for BuilderNodeId {
1344    fn from(node: CodeBlock6ListNode) -> Self {
1345        node.node_id
1346    }
1347}
1348///Branded type for CodeBlock6ListGroup non-terminal
1349#[derive(Debug, Clone)]
1350pub struct CodeBlock6ListGroupNode {
1351    pub(super) node_id: BuilderNodeId,
1352    pub(super) builder: CstBuilder,
1353}
1354impl CodeBlock6ListGroupNode {
1355    /// Consume this node and return its builder
1356    pub fn into_builder(self) -> CstBuilder {
1357        self.builder
1358    }
1359}
1360impl From<CodeBlock6ListGroupNode> for BuilderNodeId {
1361    fn from(node: CodeBlock6ListGroupNode) -> Self {
1362        node.node_id
1363    }
1364}
1365///Branded type for CodeBlockEnd3 non-terminal
1366#[derive(Debug, Clone)]
1367pub struct CodeBlockEnd3Node {
1368    pub(super) node_id: BuilderNodeId,
1369    pub(super) builder: CstBuilder,
1370}
1371impl CodeBlockEnd3Node {
1372    /// Consume this node and return its builder
1373    pub fn into_builder(self) -> CstBuilder {
1374        self.builder
1375    }
1376}
1377impl From<CodeBlockEnd3Node> for BuilderNodeId {
1378    fn from(node: CodeBlockEnd3Node) -> Self {
1379        node.node_id
1380    }
1381}
1382///Branded type for CodeBlockEnd4 non-terminal
1383#[derive(Debug, Clone)]
1384pub struct CodeBlockEnd4Node {
1385    pub(super) node_id: BuilderNodeId,
1386    pub(super) builder: CstBuilder,
1387}
1388impl CodeBlockEnd4Node {
1389    /// Consume this node and return its builder
1390    pub fn into_builder(self) -> CstBuilder {
1391        self.builder
1392    }
1393}
1394impl From<CodeBlockEnd4Node> for BuilderNodeId {
1395    fn from(node: CodeBlockEnd4Node) -> Self {
1396        node.node_id
1397    }
1398}
1399///Branded type for CodeBlockEnd5 non-terminal
1400#[derive(Debug, Clone)]
1401pub struct CodeBlockEnd5Node {
1402    pub(super) node_id: BuilderNodeId,
1403    pub(super) builder: CstBuilder,
1404}
1405impl CodeBlockEnd5Node {
1406    /// Consume this node and return its builder
1407    pub fn into_builder(self) -> CstBuilder {
1408        self.builder
1409    }
1410}
1411impl From<CodeBlockEnd5Node> for BuilderNodeId {
1412    fn from(node: CodeBlockEnd5Node) -> Self {
1413        node.node_id
1414    }
1415}
1416///Branded type for CodeBlockEnd6 non-terminal
1417#[derive(Debug, Clone)]
1418pub struct CodeBlockEnd6Node {
1419    pub(super) node_id: BuilderNodeId,
1420    pub(super) builder: CstBuilder,
1421}
1422impl CodeBlockEnd6Node {
1423    /// Consume this node and return its builder
1424    pub fn into_builder(self) -> CstBuilder {
1425        self.builder
1426    }
1427}
1428impl From<CodeBlockEnd6Node> for BuilderNodeId {
1429    fn from(node: CodeBlockEnd6Node) -> Self {
1430        node.node_id
1431    }
1432}
1433///Branded type for CodeBlockStart3 non-terminal
1434#[derive(Debug, Clone)]
1435pub struct CodeBlockStart3Node {
1436    pub(super) node_id: BuilderNodeId,
1437    pub(super) builder: CstBuilder,
1438}
1439impl CodeBlockStart3Node {
1440    /// Consume this node and return its builder
1441    pub fn into_builder(self) -> CstBuilder {
1442        self.builder
1443    }
1444}
1445impl From<CodeBlockStart3Node> for BuilderNodeId {
1446    fn from(node: CodeBlockStart3Node) -> Self {
1447        node.node_id
1448    }
1449}
1450///Branded type for CodeBlockStart4 non-terminal
1451#[derive(Debug, Clone)]
1452pub struct CodeBlockStart4Node {
1453    pub(super) node_id: BuilderNodeId,
1454    pub(super) builder: CstBuilder,
1455}
1456impl CodeBlockStart4Node {
1457    /// Consume this node and return its builder
1458    pub fn into_builder(self) -> CstBuilder {
1459        self.builder
1460    }
1461}
1462impl From<CodeBlockStart4Node> for BuilderNodeId {
1463    fn from(node: CodeBlockStart4Node) -> Self {
1464        node.node_id
1465    }
1466}
1467///Branded type for CodeBlockStart5 non-terminal
1468#[derive(Debug, Clone)]
1469pub struct CodeBlockStart5Node {
1470    pub(super) node_id: BuilderNodeId,
1471    pub(super) builder: CstBuilder,
1472}
1473impl CodeBlockStart5Node {
1474    /// Consume this node and return its builder
1475    pub fn into_builder(self) -> CstBuilder {
1476        self.builder
1477    }
1478}
1479impl From<CodeBlockStart5Node> for BuilderNodeId {
1480    fn from(node: CodeBlockStart5Node) -> Self {
1481        node.node_id
1482    }
1483}
1484///Branded type for CodeBlockStart6 non-terminal
1485#[derive(Debug, Clone)]
1486pub struct CodeBlockStart6Node {
1487    pub(super) node_id: BuilderNodeId,
1488    pub(super) builder: CstBuilder,
1489}
1490impl CodeBlockStart6Node {
1491    /// Consume this node and return its builder
1492    pub fn into_builder(self) -> CstBuilder {
1493        self.builder
1494    }
1495}
1496impl From<CodeBlockStart6Node> for BuilderNodeId {
1497    fn from(node: CodeBlockStart6Node) -> Self {
1498        node.node_id
1499    }
1500}
1501///Branded type for Comma non-terminal
1502#[derive(Debug, Clone)]
1503pub struct CommaNode {
1504    pub(super) node_id: BuilderNodeId,
1505    pub(super) builder: CstBuilder,
1506}
1507impl CommaNode {
1508    /// Consume this node and return its builder
1509    pub fn into_builder(self) -> CstBuilder {
1510        self.builder
1511    }
1512}
1513impl From<CommaNode> for BuilderNodeId {
1514    fn from(node: CommaNode) -> Self {
1515        node.node_id
1516    }
1517}
1518///Branded type for Continue non-terminal
1519#[derive(Debug, Clone)]
1520pub struct ContinueNode {
1521    pub(super) node_id: BuilderNodeId,
1522    pub(super) builder: CstBuilder,
1523}
1524impl ContinueNode {
1525    /// Consume this node and return its builder
1526    pub fn into_builder(self) -> CstBuilder {
1527        self.builder
1528    }
1529}
1530impl From<ContinueNode> for BuilderNodeId {
1531    fn from(node: ContinueNode) -> Self {
1532        node.node_id
1533    }
1534}
1535///Branded type for Dot non-terminal
1536#[derive(Debug, Clone)]
1537pub struct DotNode {
1538    pub(super) node_id: BuilderNodeId,
1539    pub(super) builder: CstBuilder,
1540}
1541impl DotNode {
1542    /// Consume this node and return its builder
1543    pub fn into_builder(self) -> CstBuilder {
1544        self.builder
1545    }
1546}
1547impl From<DotNode> for BuilderNodeId {
1548    fn from(node: DotNode) -> Self {
1549        node.node_id
1550    }
1551}
1552///Branded type for End non-terminal
1553#[derive(Debug, Clone)]
1554pub struct EndNode {
1555    pub(super) node_id: BuilderNodeId,
1556    pub(super) builder: CstBuilder,
1557}
1558impl EndNode {
1559    /// Consume this node and return its builder
1560    pub fn into_builder(self) -> CstBuilder {
1561        self.builder
1562    }
1563}
1564impl From<EndNode> for BuilderNodeId {
1565    fn from(node: EndNode) -> Self {
1566        node.node_id
1567    }
1568}
1569///Branded type for Eure non-terminal
1570#[derive(Debug, Clone)]
1571pub struct EureNode {
1572    pub(super) node_id: BuilderNodeId,
1573    pub(super) builder: CstBuilder,
1574}
1575impl EureNode {
1576    /// Consume this node and return its builder
1577    pub fn into_builder(self) -> CstBuilder {
1578        self.builder
1579    }
1580}
1581impl From<EureNode> for BuilderNodeId {
1582    fn from(node: EureNode) -> Self {
1583        node.node_id
1584    }
1585}
1586///Branded type for EureBindings non-terminal
1587#[derive(Debug, Clone)]
1588pub struct EureBindingsNode {
1589    pub(super) node_id: BuilderNodeId,
1590    pub(super) builder: CstBuilder,
1591}
1592impl EureBindingsNode {
1593    /// Consume this node and return its builder
1594    pub fn into_builder(self) -> CstBuilder {
1595        self.builder
1596    }
1597}
1598impl From<EureBindingsNode> for BuilderNodeId {
1599    fn from(node: EureBindingsNode) -> Self {
1600        node.node_id
1601    }
1602}
1603///Branded type for EureSections non-terminal
1604#[derive(Debug, Clone)]
1605pub struct EureSectionsNode {
1606    pub(super) node_id: BuilderNodeId,
1607    pub(super) builder: CstBuilder,
1608}
1609impl EureSectionsNode {
1610    /// Consume this node and return its builder
1611    pub fn into_builder(self) -> CstBuilder {
1612        self.builder
1613    }
1614}
1615impl From<EureSectionsNode> for BuilderNodeId {
1616    fn from(node: EureSectionsNode) -> Self {
1617        node.node_id
1618    }
1619}
1620///Branded type for EureOpt non-terminal
1621#[derive(Debug, Clone)]
1622pub struct EureOptNode {
1623    pub(super) node_id: BuilderNodeId,
1624    pub(super) builder: CstBuilder,
1625}
1626impl EureOptNode {
1627    /// Consume this node and return its builder
1628    pub fn into_builder(self) -> CstBuilder {
1629        self.builder
1630    }
1631}
1632impl From<EureOptNode> for BuilderNodeId {
1633    fn from(node: EureOptNode) -> Self {
1634        node.node_id
1635    }
1636}
1637///Branded type for Ext non-terminal
1638#[derive(Debug, Clone)]
1639pub struct ExtNode {
1640    pub(super) node_id: BuilderNodeId,
1641    pub(super) builder: CstBuilder,
1642}
1643impl ExtNode {
1644    /// Consume this node and return its builder
1645    pub fn into_builder(self) -> CstBuilder {
1646        self.builder
1647    }
1648}
1649impl From<ExtNode> for BuilderNodeId {
1650    fn from(node: ExtNode) -> Self {
1651        node.node_id
1652    }
1653}
1654///Branded type for ExtensionNameSpace non-terminal
1655#[derive(Debug, Clone)]
1656pub struct ExtensionNameSpaceNode {
1657    pub(super) node_id: BuilderNodeId,
1658    pub(super) builder: CstBuilder,
1659}
1660impl ExtensionNameSpaceNode {
1661    /// Consume this node and return its builder
1662    pub fn into_builder(self) -> CstBuilder {
1663        self.builder
1664    }
1665}
1666impl From<ExtensionNameSpaceNode> for BuilderNodeId {
1667    fn from(node: ExtensionNameSpaceNode) -> Self {
1668        node.node_id
1669    }
1670}
1671///Branded type for False non-terminal
1672#[derive(Debug, Clone)]
1673pub struct FalseNode {
1674    pub(super) node_id: BuilderNodeId,
1675    pub(super) builder: CstBuilder,
1676}
1677impl FalseNode {
1678    /// Consume this node and return its builder
1679    pub fn into_builder(self) -> CstBuilder {
1680        self.builder
1681    }
1682}
1683impl From<FalseNode> for BuilderNodeId {
1684    fn from(node: FalseNode) -> Self {
1685        node.node_id
1686    }
1687}
1688///Branded type for Float non-terminal
1689#[derive(Debug, Clone)]
1690pub struct FloatNode {
1691    pub(super) node_id: BuilderNodeId,
1692    pub(super) builder: CstBuilder,
1693}
1694impl FloatNode {
1695    /// Consume this node and return its builder
1696    pub fn into_builder(self) -> CstBuilder {
1697        self.builder
1698    }
1699}
1700impl From<FloatNode> for BuilderNodeId {
1701    fn from(node: FloatNode) -> Self {
1702        node.node_id
1703    }
1704}
1705///Branded type for GrammarNewline non-terminal
1706#[derive(Debug, Clone)]
1707pub struct GrammarNewlineNode {
1708    pub(super) node_id: BuilderNodeId,
1709    pub(super) builder: CstBuilder,
1710}
1711impl GrammarNewlineNode {
1712    /// Consume this node and return its builder
1713    pub fn into_builder(self) -> CstBuilder {
1714        self.builder
1715    }
1716}
1717impl From<GrammarNewlineNode> for BuilderNodeId {
1718    fn from(node: GrammarNewlineNode) -> Self {
1719        node.node_id
1720    }
1721}
1722///Branded type for Hole non-terminal
1723#[derive(Debug, Clone)]
1724pub struct HoleNode {
1725    pub(super) node_id: BuilderNodeId,
1726    pub(super) builder: CstBuilder,
1727}
1728impl HoleNode {
1729    /// Consume this node and return its builder
1730    pub fn into_builder(self) -> CstBuilder {
1731        self.builder
1732    }
1733}
1734impl From<HoleNode> for BuilderNodeId {
1735    fn from(node: HoleNode) -> Self {
1736        node.node_id
1737    }
1738}
1739///Branded type for Ident non-terminal
1740#[derive(Debug, Clone)]
1741pub struct IdentNode {
1742    pub(super) node_id: BuilderNodeId,
1743    pub(super) builder: CstBuilder,
1744}
1745impl IdentNode {
1746    /// Consume this node and return its builder
1747    pub fn into_builder(self) -> CstBuilder {
1748        self.builder
1749    }
1750}
1751impl From<IdentNode> for BuilderNodeId {
1752    fn from(node: IdentNode) -> Self {
1753        node.node_id
1754    }
1755}
1756///Branded type for Inf non-terminal
1757#[derive(Debug, Clone)]
1758pub struct InfNode {
1759    pub(super) node_id: BuilderNodeId,
1760    pub(super) builder: CstBuilder,
1761}
1762impl InfNode {
1763    /// Consume this node and return its builder
1764    pub fn into_builder(self) -> CstBuilder {
1765        self.builder
1766    }
1767}
1768impl From<InfNode> for BuilderNodeId {
1769    fn from(node: InfNode) -> Self {
1770        node.node_id
1771    }
1772}
1773///Branded type for InlineCode non-terminal
1774#[derive(Debug, Clone)]
1775pub struct InlineCodeNode {
1776    pub(super) node_id: BuilderNodeId,
1777    pub(super) builder: CstBuilder,
1778}
1779impl InlineCodeNode {
1780    /// Consume this node and return its builder
1781    pub fn into_builder(self) -> CstBuilder {
1782        self.builder
1783    }
1784}
1785impl From<InlineCodeNode> for BuilderNodeId {
1786    fn from(node: InlineCodeNode) -> Self {
1787        node.node_id
1788    }
1789}
1790///Branded type for InlineCode1 non-terminal
1791#[derive(Debug, Clone)]
1792pub struct InlineCode1Node {
1793    pub(super) node_id: BuilderNodeId,
1794    pub(super) builder: CstBuilder,
1795}
1796impl InlineCode1Node {
1797    /// Consume this node and return its builder
1798    pub fn into_builder(self) -> CstBuilder {
1799        self.builder
1800    }
1801}
1802impl From<InlineCode1Node> for BuilderNodeId {
1803    fn from(node: InlineCode1Node) -> Self {
1804        node.node_id
1805    }
1806}
1807///Branded type for InlineCode2 non-terminal
1808#[derive(Debug, Clone)]
1809pub struct InlineCode2Node {
1810    pub(super) node_id: BuilderNodeId,
1811    pub(super) builder: CstBuilder,
1812}
1813impl InlineCode2Node {
1814    /// Consume this node and return its builder
1815    pub fn into_builder(self) -> CstBuilder {
1816        self.builder
1817    }
1818}
1819impl From<InlineCode2Node> for BuilderNodeId {
1820    fn from(node: InlineCode2Node) -> Self {
1821        node.node_id
1822    }
1823}
1824///Branded type for InlineCode2List non-terminal
1825#[derive(Debug, Clone)]
1826pub struct InlineCode2ListNode {
1827    pub(super) node_id: BuilderNodeId,
1828    pub(super) builder: CstBuilder,
1829}
1830impl InlineCode2ListNode {
1831    /// Consume this node and return its builder
1832    pub fn into_builder(self) -> CstBuilder {
1833        self.builder
1834    }
1835}
1836impl From<InlineCode2ListNode> for BuilderNodeId {
1837    fn from(node: InlineCode2ListNode) -> Self {
1838        node.node_id
1839    }
1840}
1841///Branded type for InlineCode2ListGroup non-terminal
1842#[derive(Debug, Clone)]
1843pub struct InlineCode2ListGroupNode {
1844    pub(super) node_id: BuilderNodeId,
1845    pub(super) builder: CstBuilder,
1846}
1847impl InlineCode2ListGroupNode {
1848    /// Consume this node and return its builder
1849    pub fn into_builder(self) -> CstBuilder {
1850        self.builder
1851    }
1852}
1853impl From<InlineCode2ListGroupNode> for BuilderNodeId {
1854    fn from(node: InlineCode2ListGroupNode) -> Self {
1855        node.node_id
1856    }
1857}
1858///Branded type for InlineCodeEnd2 non-terminal
1859#[derive(Debug, Clone)]
1860pub struct InlineCodeEnd2Node {
1861    pub(super) node_id: BuilderNodeId,
1862    pub(super) builder: CstBuilder,
1863}
1864impl InlineCodeEnd2Node {
1865    /// Consume this node and return its builder
1866    pub fn into_builder(self) -> CstBuilder {
1867        self.builder
1868    }
1869}
1870impl From<InlineCodeEnd2Node> for BuilderNodeId {
1871    fn from(node: InlineCodeEnd2Node) -> Self {
1872        node.node_id
1873    }
1874}
1875///Branded type for InlineCodeStart2 non-terminal
1876#[derive(Debug, Clone)]
1877pub struct InlineCodeStart2Node {
1878    pub(super) node_id: BuilderNodeId,
1879    pub(super) builder: CstBuilder,
1880}
1881impl InlineCodeStart2Node {
1882    /// Consume this node and return its builder
1883    pub fn into_builder(self) -> CstBuilder {
1884        self.builder
1885    }
1886}
1887impl From<InlineCodeStart2Node> for BuilderNodeId {
1888    fn from(node: InlineCodeStart2Node) -> Self {
1889        node.node_id
1890    }
1891}
1892///Branded type for Integer non-terminal
1893#[derive(Debug, Clone)]
1894pub struct IntegerNode {
1895    pub(super) node_id: BuilderNodeId,
1896    pub(super) builder: CstBuilder,
1897}
1898impl IntegerNode {
1899    /// Consume this node and return its builder
1900    pub fn into_builder(self) -> CstBuilder {
1901        self.builder
1902    }
1903}
1904impl From<IntegerNode> for BuilderNodeId {
1905    fn from(node: IntegerNode) -> Self {
1906        node.node_id
1907    }
1908}
1909///Branded type for Key non-terminal
1910#[derive(Debug, Clone)]
1911pub struct KeyNode {
1912    pub(super) node_id: BuilderNodeId,
1913    pub(super) builder: CstBuilder,
1914}
1915impl KeyNode {
1916    /// Consume this node and return its builder
1917    pub fn into_builder(self) -> CstBuilder {
1918        self.builder
1919    }
1920}
1921impl From<KeyNode> for BuilderNodeId {
1922    fn from(node: KeyNode) -> Self {
1923        node.node_id
1924    }
1925}
1926///Branded type for KeyBase non-terminal
1927#[derive(Debug, Clone)]
1928pub struct KeyBaseNode {
1929    pub(super) node_id: BuilderNodeId,
1930    pub(super) builder: CstBuilder,
1931}
1932impl KeyBaseNode {
1933    /// Consume this node and return its builder
1934    pub fn into_builder(self) -> CstBuilder {
1935        self.builder
1936    }
1937}
1938impl From<KeyBaseNode> for BuilderNodeId {
1939    fn from(node: KeyBaseNode) -> Self {
1940        node.node_id
1941    }
1942}
1943///Branded type for KeyIdent non-terminal
1944#[derive(Debug, Clone)]
1945pub struct KeyIdentNode {
1946    pub(super) node_id: BuilderNodeId,
1947    pub(super) builder: CstBuilder,
1948}
1949impl KeyIdentNode {
1950    /// Consume this node and return its builder
1951    pub fn into_builder(self) -> CstBuilder {
1952        self.builder
1953    }
1954}
1955impl From<KeyIdentNode> for BuilderNodeId {
1956    fn from(node: KeyIdentNode) -> Self {
1957        node.node_id
1958    }
1959}
1960///Branded type for KeyOpt non-terminal
1961#[derive(Debug, Clone)]
1962pub struct KeyOptNode {
1963    pub(super) node_id: BuilderNodeId,
1964    pub(super) builder: CstBuilder,
1965}
1966impl KeyOptNode {
1967    /// Consume this node and return its builder
1968    pub fn into_builder(self) -> CstBuilder {
1969        self.builder
1970    }
1971}
1972impl From<KeyOptNode> for BuilderNodeId {
1973    fn from(node: KeyOptNode) -> Self {
1974        node.node_id
1975    }
1976}
1977///Branded type for KeyTuple non-terminal
1978#[derive(Debug, Clone)]
1979pub struct KeyTupleNode {
1980    pub(super) node_id: BuilderNodeId,
1981    pub(super) builder: CstBuilder,
1982}
1983impl KeyTupleNode {
1984    /// Consume this node and return its builder
1985    pub fn into_builder(self) -> CstBuilder {
1986        self.builder
1987    }
1988}
1989impl From<KeyTupleNode> for BuilderNodeId {
1990    fn from(node: KeyTupleNode) -> Self {
1991        node.node_id
1992    }
1993}
1994///Branded type for KeyTupleElements non-terminal
1995#[derive(Debug, Clone)]
1996pub struct KeyTupleElementsNode {
1997    pub(super) node_id: BuilderNodeId,
1998    pub(super) builder: CstBuilder,
1999}
2000impl KeyTupleElementsNode {
2001    /// Consume this node and return its builder
2002    pub fn into_builder(self) -> CstBuilder {
2003        self.builder
2004    }
2005}
2006impl From<KeyTupleElementsNode> for BuilderNodeId {
2007    fn from(node: KeyTupleElementsNode) -> Self {
2008        node.node_id
2009    }
2010}
2011///Branded type for KeyTupleElementsOpt non-terminal
2012#[derive(Debug, Clone)]
2013pub struct KeyTupleElementsOptNode {
2014    pub(super) node_id: BuilderNodeId,
2015    pub(super) builder: CstBuilder,
2016}
2017impl KeyTupleElementsOptNode {
2018    /// Consume this node and return its builder
2019    pub fn into_builder(self) -> CstBuilder {
2020        self.builder
2021    }
2022}
2023impl From<KeyTupleElementsOptNode> for BuilderNodeId {
2024    fn from(node: KeyTupleElementsOptNode) -> Self {
2025        node.node_id
2026    }
2027}
2028///Branded type for KeyTupleElementsTail non-terminal
2029#[derive(Debug, Clone)]
2030pub struct KeyTupleElementsTailNode {
2031    pub(super) node_id: BuilderNodeId,
2032    pub(super) builder: CstBuilder,
2033}
2034impl KeyTupleElementsTailNode {
2035    /// Consume this node and return its builder
2036    pub fn into_builder(self) -> CstBuilder {
2037        self.builder
2038    }
2039}
2040impl From<KeyTupleElementsTailNode> for BuilderNodeId {
2041    fn from(node: KeyTupleElementsTailNode) -> Self {
2042        node.node_id
2043    }
2044}
2045///Branded type for KeyTupleElementsTailOpt non-terminal
2046#[derive(Debug, Clone)]
2047pub struct KeyTupleElementsTailOptNode {
2048    pub(super) node_id: BuilderNodeId,
2049    pub(super) builder: CstBuilder,
2050}
2051impl KeyTupleElementsTailOptNode {
2052    /// Consume this node and return its builder
2053    pub fn into_builder(self) -> CstBuilder {
2054        self.builder
2055    }
2056}
2057impl From<KeyTupleElementsTailOptNode> for BuilderNodeId {
2058    fn from(node: KeyTupleElementsTailOptNode) -> Self {
2059        node.node_id
2060    }
2061}
2062///Branded type for KeyTupleOpt non-terminal
2063#[derive(Debug, Clone)]
2064pub struct KeyTupleOptNode {
2065    pub(super) node_id: BuilderNodeId,
2066    pub(super) builder: CstBuilder,
2067}
2068impl KeyTupleOptNode {
2069    /// Consume this node and return its builder
2070    pub fn into_builder(self) -> CstBuilder {
2071        self.builder
2072    }
2073}
2074impl From<KeyTupleOptNode> for BuilderNodeId {
2075    fn from(node: KeyTupleOptNode) -> Self {
2076        node.node_id
2077    }
2078}
2079///Branded type for KeyValue non-terminal
2080#[derive(Debug, Clone)]
2081pub struct KeyValueNode {
2082    pub(super) node_id: BuilderNodeId,
2083    pub(super) builder: CstBuilder,
2084}
2085impl KeyValueNode {
2086    /// Consume this node and return its builder
2087    pub fn into_builder(self) -> CstBuilder {
2088        self.builder
2089    }
2090}
2091impl From<KeyValueNode> for BuilderNodeId {
2092    fn from(node: KeyValueNode) -> Self {
2093        node.node_id
2094    }
2095}
2096///Branded type for Keys non-terminal
2097#[derive(Debug, Clone)]
2098pub struct KeysNode {
2099    pub(super) node_id: BuilderNodeId,
2100    pub(super) builder: CstBuilder,
2101}
2102impl KeysNode {
2103    /// Consume this node and return its builder
2104    pub fn into_builder(self) -> CstBuilder {
2105        self.builder
2106    }
2107}
2108impl From<KeysNode> for BuilderNodeId {
2109    fn from(node: KeysNode) -> Self {
2110        node.node_id
2111    }
2112}
2113///Branded type for KeysList non-terminal
2114#[derive(Debug, Clone)]
2115pub struct KeysListNode {
2116    pub(super) node_id: BuilderNodeId,
2117    pub(super) builder: CstBuilder,
2118}
2119impl KeysListNode {
2120    /// Consume this node and return its builder
2121    pub fn into_builder(self) -> CstBuilder {
2122        self.builder
2123    }
2124}
2125impl From<KeysListNode> for BuilderNodeId {
2126    fn from(node: KeysListNode) -> Self {
2127        node.node_id
2128    }
2129}
2130///Branded type for LParen non-terminal
2131#[derive(Debug, Clone)]
2132pub struct LParenNode {
2133    pub(super) node_id: BuilderNodeId,
2134    pub(super) builder: CstBuilder,
2135}
2136impl LParenNode {
2137    /// Consume this node and return its builder
2138    pub fn into_builder(self) -> CstBuilder {
2139        self.builder
2140    }
2141}
2142impl From<LParenNode> for BuilderNodeId {
2143    fn from(node: LParenNode) -> Self {
2144        node.node_id
2145    }
2146}
2147///Branded type for MapBind non-terminal
2148#[derive(Debug, Clone)]
2149pub struct MapBindNode {
2150    pub(super) node_id: BuilderNodeId,
2151    pub(super) builder: CstBuilder,
2152}
2153impl MapBindNode {
2154    /// Consume this node and return its builder
2155    pub fn into_builder(self) -> CstBuilder {
2156        self.builder
2157    }
2158}
2159impl From<MapBindNode> for BuilderNodeId {
2160    fn from(node: MapBindNode) -> Self {
2161        node.node_id
2162    }
2163}
2164///Branded type for NaN non-terminal
2165#[derive(Debug, Clone)]
2166pub struct NaNNode {
2167    pub(super) node_id: BuilderNodeId,
2168    pub(super) builder: CstBuilder,
2169}
2170impl NaNNode {
2171    /// Consume this node and return its builder
2172    pub fn into_builder(self) -> CstBuilder {
2173        self.builder
2174    }
2175}
2176impl From<NaNNode> for BuilderNodeId {
2177    fn from(node: NaNNode) -> Self {
2178        node.node_id
2179    }
2180}
2181///Branded type for NoBacktick non-terminal
2182#[derive(Debug, Clone)]
2183pub struct NoBacktickNode {
2184    pub(super) node_id: BuilderNodeId,
2185    pub(super) builder: CstBuilder,
2186}
2187impl NoBacktickNode {
2188    /// Consume this node and return its builder
2189    pub fn into_builder(self) -> CstBuilder {
2190        self.builder
2191    }
2192}
2193impl From<NoBacktickNode> for BuilderNodeId {
2194    fn from(node: NoBacktickNode) -> Self {
2195        node.node_id
2196    }
2197}
2198///Branded type for NoBacktickInline non-terminal
2199#[derive(Debug, Clone)]
2200pub struct NoBacktickInlineNode {
2201    pub(super) node_id: BuilderNodeId,
2202    pub(super) builder: CstBuilder,
2203}
2204impl NoBacktickInlineNode {
2205    /// Consume this node and return its builder
2206    pub fn into_builder(self) -> CstBuilder {
2207        self.builder
2208    }
2209}
2210impl From<NoBacktickInlineNode> for BuilderNodeId {
2211    fn from(node: NoBacktickInlineNode) -> Self {
2212        node.node_id
2213    }
2214}
2215///Branded type for Null non-terminal
2216#[derive(Debug, Clone)]
2217pub struct NullNode {
2218    pub(super) node_id: BuilderNodeId,
2219    pub(super) builder: CstBuilder,
2220}
2221impl NullNode {
2222    /// Consume this node and return its builder
2223    pub fn into_builder(self) -> CstBuilder {
2224        self.builder
2225    }
2226}
2227impl From<NullNode> for BuilderNodeId {
2228    fn from(node: NullNode) -> Self {
2229        node.node_id
2230    }
2231}
2232///Branded type for Number non-terminal
2233#[derive(Debug, Clone)]
2234pub struct NumberNode {
2235    pub(super) node_id: BuilderNodeId,
2236    pub(super) builder: CstBuilder,
2237}
2238impl NumberNode {
2239    /// Consume this node and return its builder
2240    pub fn into_builder(self) -> CstBuilder {
2241        self.builder
2242    }
2243}
2244impl From<NumberNode> for BuilderNodeId {
2245    fn from(node: NumberNode) -> Self {
2246        node.node_id
2247    }
2248}
2249///Branded type for Object non-terminal
2250#[derive(Debug, Clone)]
2251pub struct ObjectNode {
2252    pub(super) node_id: BuilderNodeId,
2253    pub(super) builder: CstBuilder,
2254}
2255impl ObjectNode {
2256    /// Consume this node and return its builder
2257    pub fn into_builder(self) -> CstBuilder {
2258        self.builder
2259    }
2260}
2261impl From<ObjectNode> for BuilderNodeId {
2262    fn from(node: ObjectNode) -> Self {
2263        node.node_id
2264    }
2265}
2266///Branded type for ObjectList non-terminal
2267#[derive(Debug, Clone)]
2268pub struct ObjectListNode {
2269    pub(super) node_id: BuilderNodeId,
2270    pub(super) builder: CstBuilder,
2271}
2272impl ObjectListNode {
2273    /// Consume this node and return its builder
2274    pub fn into_builder(self) -> CstBuilder {
2275        self.builder
2276    }
2277}
2278impl From<ObjectListNode> for BuilderNodeId {
2279    fn from(node: ObjectListNode) -> Self {
2280        node.node_id
2281    }
2282}
2283///Branded type for ObjectOpt non-terminal
2284#[derive(Debug, Clone)]
2285pub struct ObjectOptNode {
2286    pub(super) node_id: BuilderNodeId,
2287    pub(super) builder: CstBuilder,
2288}
2289impl ObjectOptNode {
2290    /// Consume this node and return its builder
2291    pub fn into_builder(self) -> CstBuilder {
2292        self.builder
2293    }
2294}
2295impl From<ObjectOptNode> for BuilderNodeId {
2296    fn from(node: ObjectOptNode) -> Self {
2297        node.node_id
2298    }
2299}
2300///Branded type for ObjectOpt0 non-terminal
2301#[derive(Debug, Clone)]
2302pub struct ObjectOpt0Node {
2303    pub(super) node_id: BuilderNodeId,
2304    pub(super) builder: CstBuilder,
2305}
2306impl ObjectOpt0Node {
2307    /// Consume this node and return its builder
2308    pub fn into_builder(self) -> CstBuilder {
2309        self.builder
2310    }
2311}
2312impl From<ObjectOpt0Node> for BuilderNodeId {
2313    fn from(node: ObjectOpt0Node) -> Self {
2314        node.node_id
2315    }
2316}
2317///Branded type for ObjectOpt1 non-terminal
2318#[derive(Debug, Clone)]
2319pub struct ObjectOpt1Node {
2320    pub(super) node_id: BuilderNodeId,
2321    pub(super) builder: CstBuilder,
2322}
2323impl ObjectOpt1Node {
2324    /// Consume this node and return its builder
2325    pub fn into_builder(self) -> CstBuilder {
2326        self.builder
2327    }
2328}
2329impl From<ObjectOpt1Node> for BuilderNodeId {
2330    fn from(node: ObjectOpt1Node) -> Self {
2331        node.node_id
2332    }
2333}
2334///Branded type for RParen non-terminal
2335#[derive(Debug, Clone)]
2336pub struct RParenNode {
2337    pub(super) node_id: BuilderNodeId,
2338    pub(super) builder: CstBuilder,
2339}
2340impl RParenNode {
2341    /// Consume this node and return its builder
2342    pub fn into_builder(self) -> CstBuilder {
2343        self.builder
2344    }
2345}
2346impl From<RParenNode> for BuilderNodeId {
2347    fn from(node: RParenNode) -> Self {
2348        node.node_id
2349    }
2350}
2351///Branded type for Section non-terminal
2352#[derive(Debug, Clone)]
2353pub struct SectionNode {
2354    pub(super) node_id: BuilderNodeId,
2355    pub(super) builder: CstBuilder,
2356}
2357impl SectionNode {
2358    /// Consume this node and return its builder
2359    pub fn into_builder(self) -> CstBuilder {
2360        self.builder
2361    }
2362}
2363impl From<SectionNode> for BuilderNodeId {
2364    fn from(node: SectionNode) -> Self {
2365        node.node_id
2366    }
2367}
2368///Branded type for SectionBinding non-terminal
2369#[derive(Debug, Clone)]
2370pub struct SectionBindingNode {
2371    pub(super) node_id: BuilderNodeId,
2372    pub(super) builder: CstBuilder,
2373}
2374impl SectionBindingNode {
2375    /// Consume this node and return its builder
2376    pub fn into_builder(self) -> CstBuilder {
2377        self.builder
2378    }
2379}
2380impl From<SectionBindingNode> for BuilderNodeId {
2381    fn from(node: SectionBindingNode) -> Self {
2382        node.node_id
2383    }
2384}
2385///Branded type for SectionBody non-terminal
2386#[derive(Debug, Clone)]
2387pub struct SectionBodyNode {
2388    pub(super) node_id: BuilderNodeId,
2389    pub(super) builder: CstBuilder,
2390}
2391impl SectionBodyNode {
2392    /// Consume this node and return its builder
2393    pub fn into_builder(self) -> CstBuilder {
2394        self.builder
2395    }
2396}
2397impl From<SectionBodyNode> for BuilderNodeId {
2398    fn from(node: SectionBodyNode) -> Self {
2399        node.node_id
2400    }
2401}
2402///Branded type for SectionBodyList non-terminal
2403#[derive(Debug, Clone)]
2404pub struct SectionBodyListNode {
2405    pub(super) node_id: BuilderNodeId,
2406    pub(super) builder: CstBuilder,
2407}
2408impl SectionBodyListNode {
2409    /// Consume this node and return its builder
2410    pub fn into_builder(self) -> CstBuilder {
2411        self.builder
2412    }
2413}
2414impl From<SectionBodyListNode> for BuilderNodeId {
2415    fn from(node: SectionBodyListNode) -> Self {
2416        node.node_id
2417    }
2418}
2419///Branded type for SectionBodyOpt non-terminal
2420#[derive(Debug, Clone)]
2421pub struct SectionBodyOptNode {
2422    pub(super) node_id: BuilderNodeId,
2423    pub(super) builder: CstBuilder,
2424}
2425impl SectionBodyOptNode {
2426    /// Consume this node and return its builder
2427    pub fn into_builder(self) -> CstBuilder {
2428        self.builder
2429    }
2430}
2431impl From<SectionBodyOptNode> for BuilderNodeId {
2432    fn from(node: SectionBodyOptNode) -> Self {
2433        node.node_id
2434    }
2435}
2436///Branded type for Str non-terminal
2437#[derive(Debug, Clone)]
2438pub struct StrNode {
2439    pub(super) node_id: BuilderNodeId,
2440    pub(super) builder: CstBuilder,
2441}
2442impl StrNode {
2443    /// Consume this node and return its builder
2444    pub fn into_builder(self) -> CstBuilder {
2445        self.builder
2446    }
2447}
2448impl From<StrNode> for BuilderNodeId {
2449    fn from(node: StrNode) -> Self {
2450        node.node_id
2451    }
2452}
2453///Branded type for Strings non-terminal
2454#[derive(Debug, Clone)]
2455pub struct StringsNode {
2456    pub(super) node_id: BuilderNodeId,
2457    pub(super) builder: CstBuilder,
2458}
2459impl StringsNode {
2460    /// Consume this node and return its builder
2461    pub fn into_builder(self) -> CstBuilder {
2462        self.builder
2463    }
2464}
2465impl From<StringsNode> for BuilderNodeId {
2466    fn from(node: StringsNode) -> Self {
2467        node.node_id
2468    }
2469}
2470///Branded type for StringsList non-terminal
2471#[derive(Debug, Clone)]
2472pub struct StringsListNode {
2473    pub(super) node_id: BuilderNodeId,
2474    pub(super) builder: CstBuilder,
2475}
2476impl StringsListNode {
2477    /// Consume this node and return its builder
2478    pub fn into_builder(self) -> CstBuilder {
2479        self.builder
2480    }
2481}
2482impl From<StringsListNode> for BuilderNodeId {
2483    fn from(node: StringsListNode) -> Self {
2484        node.node_id
2485    }
2486}
2487///Branded type for Text non-terminal
2488#[derive(Debug, Clone)]
2489pub struct TextNode {
2490    pub(super) node_id: BuilderNodeId,
2491    pub(super) builder: CstBuilder,
2492}
2493impl TextNode {
2494    /// Consume this node and return its builder
2495    pub fn into_builder(self) -> CstBuilder {
2496        self.builder
2497    }
2498}
2499impl From<TextNode> for BuilderNodeId {
2500    fn from(node: TextNode) -> Self {
2501        node.node_id
2502    }
2503}
2504///Branded type for TextBinding non-terminal
2505#[derive(Debug, Clone)]
2506pub struct TextBindingNode {
2507    pub(super) node_id: BuilderNodeId,
2508    pub(super) builder: CstBuilder,
2509}
2510impl TextBindingNode {
2511    /// Consume this node and return its builder
2512    pub fn into_builder(self) -> CstBuilder {
2513        self.builder
2514    }
2515}
2516impl From<TextBindingNode> for BuilderNodeId {
2517    fn from(node: TextBindingNode) -> Self {
2518        node.node_id
2519    }
2520}
2521///Branded type for TextBindingOpt non-terminal
2522#[derive(Debug, Clone)]
2523pub struct TextBindingOptNode {
2524    pub(super) node_id: BuilderNodeId,
2525    pub(super) builder: CstBuilder,
2526}
2527impl TextBindingOptNode {
2528    /// Consume this node and return its builder
2529    pub fn into_builder(self) -> CstBuilder {
2530        self.builder
2531    }
2532}
2533impl From<TextBindingOptNode> for BuilderNodeId {
2534    fn from(node: TextBindingOptNode) -> Self {
2535        node.node_id
2536    }
2537}
2538///Branded type for TextBindingOpt0 non-terminal
2539#[derive(Debug, Clone)]
2540pub struct TextBindingOpt0Node {
2541    pub(super) node_id: BuilderNodeId,
2542    pub(super) builder: CstBuilder,
2543}
2544impl TextBindingOpt0Node {
2545    /// Consume this node and return its builder
2546    pub fn into_builder(self) -> CstBuilder {
2547        self.builder
2548    }
2549}
2550impl From<TextBindingOpt0Node> for BuilderNodeId {
2551    fn from(node: TextBindingOpt0Node) -> Self {
2552        node.node_id
2553    }
2554}
2555///Branded type for TextStart non-terminal
2556#[derive(Debug, Clone)]
2557pub struct TextStartNode {
2558    pub(super) node_id: BuilderNodeId,
2559    pub(super) builder: CstBuilder,
2560}
2561impl TextStartNode {
2562    /// Consume this node and return its builder
2563    pub fn into_builder(self) -> CstBuilder {
2564        self.builder
2565    }
2566}
2567impl From<TextStartNode> for BuilderNodeId {
2568    fn from(node: TextStartNode) -> Self {
2569        node.node_id
2570    }
2571}
2572///Branded type for True non-terminal
2573#[derive(Debug, Clone)]
2574pub struct TrueNode {
2575    pub(super) node_id: BuilderNodeId,
2576    pub(super) builder: CstBuilder,
2577}
2578impl TrueNode {
2579    /// Consume this node and return its builder
2580    pub fn into_builder(self) -> CstBuilder {
2581        self.builder
2582    }
2583}
2584impl From<TrueNode> for BuilderNodeId {
2585    fn from(node: TrueNode) -> Self {
2586        node.node_id
2587    }
2588}
2589///Branded type for Tuple non-terminal
2590#[derive(Debug, Clone)]
2591pub struct TupleNode {
2592    pub(super) node_id: BuilderNodeId,
2593    pub(super) builder: CstBuilder,
2594}
2595impl TupleNode {
2596    /// Consume this node and return its builder
2597    pub fn into_builder(self) -> CstBuilder {
2598        self.builder
2599    }
2600}
2601impl From<TupleNode> for BuilderNodeId {
2602    fn from(node: TupleNode) -> Self {
2603        node.node_id
2604    }
2605}
2606///Branded type for TupleElements non-terminal
2607#[derive(Debug, Clone)]
2608pub struct TupleElementsNode {
2609    pub(super) node_id: BuilderNodeId,
2610    pub(super) builder: CstBuilder,
2611}
2612impl TupleElementsNode {
2613    /// Consume this node and return its builder
2614    pub fn into_builder(self) -> CstBuilder {
2615        self.builder
2616    }
2617}
2618impl From<TupleElementsNode> for BuilderNodeId {
2619    fn from(node: TupleElementsNode) -> Self {
2620        node.node_id
2621    }
2622}
2623///Branded type for TupleElementsOpt non-terminal
2624#[derive(Debug, Clone)]
2625pub struct TupleElementsOptNode {
2626    pub(super) node_id: BuilderNodeId,
2627    pub(super) builder: CstBuilder,
2628}
2629impl TupleElementsOptNode {
2630    /// Consume this node and return its builder
2631    pub fn into_builder(self) -> CstBuilder {
2632        self.builder
2633    }
2634}
2635impl From<TupleElementsOptNode> for BuilderNodeId {
2636    fn from(node: TupleElementsOptNode) -> Self {
2637        node.node_id
2638    }
2639}
2640///Branded type for TupleElementsTail non-terminal
2641#[derive(Debug, Clone)]
2642pub struct TupleElementsTailNode {
2643    pub(super) node_id: BuilderNodeId,
2644    pub(super) builder: CstBuilder,
2645}
2646impl TupleElementsTailNode {
2647    /// Consume this node and return its builder
2648    pub fn into_builder(self) -> CstBuilder {
2649        self.builder
2650    }
2651}
2652impl From<TupleElementsTailNode> for BuilderNodeId {
2653    fn from(node: TupleElementsTailNode) -> Self {
2654        node.node_id
2655    }
2656}
2657///Branded type for TupleElementsTailOpt non-terminal
2658#[derive(Debug, Clone)]
2659pub struct TupleElementsTailOptNode {
2660    pub(super) node_id: BuilderNodeId,
2661    pub(super) builder: CstBuilder,
2662}
2663impl TupleElementsTailOptNode {
2664    /// Consume this node and return its builder
2665    pub fn into_builder(self) -> CstBuilder {
2666        self.builder
2667    }
2668}
2669impl From<TupleElementsTailOptNode> for BuilderNodeId {
2670    fn from(node: TupleElementsTailOptNode) -> Self {
2671        node.node_id
2672    }
2673}
2674///Branded type for TupleIndex non-terminal
2675#[derive(Debug, Clone)]
2676pub struct TupleIndexNode {
2677    pub(super) node_id: BuilderNodeId,
2678    pub(super) builder: CstBuilder,
2679}
2680impl TupleIndexNode {
2681    /// Consume this node and return its builder
2682    pub fn into_builder(self) -> CstBuilder {
2683        self.builder
2684    }
2685}
2686impl From<TupleIndexNode> for BuilderNodeId {
2687    fn from(node: TupleIndexNode) -> Self {
2688        node.node_id
2689    }
2690}
2691///Branded type for TupleOpt non-terminal
2692#[derive(Debug, Clone)]
2693pub struct TupleOptNode {
2694    pub(super) node_id: BuilderNodeId,
2695    pub(super) builder: CstBuilder,
2696}
2697impl TupleOptNode {
2698    /// Consume this node and return its builder
2699    pub fn into_builder(self) -> CstBuilder {
2700        self.builder
2701    }
2702}
2703impl From<TupleOptNode> for BuilderNodeId {
2704    fn from(node: TupleOptNode) -> Self {
2705        node.node_id
2706    }
2707}
2708///Branded type for Value non-terminal
2709#[derive(Debug, Clone)]
2710pub struct ValueNode {
2711    pub(super) node_id: BuilderNodeId,
2712    pub(super) builder: CstBuilder,
2713}
2714impl ValueNode {
2715    /// Consume this node and return its builder
2716    pub fn into_builder(self) -> CstBuilder {
2717        self.builder
2718    }
2719}
2720impl From<ValueNode> for BuilderNodeId {
2721    fn from(node: ValueNode) -> Self {
2722        node.node_id
2723    }
2724}
2725///Branded type for ValueBinding non-terminal
2726#[derive(Debug, Clone)]
2727pub struct ValueBindingNode {
2728    pub(super) node_id: BuilderNodeId,
2729    pub(super) builder: CstBuilder,
2730}
2731impl ValueBindingNode {
2732    /// Consume this node and return its builder
2733    pub fn into_builder(self) -> CstBuilder {
2734        self.builder
2735    }
2736}
2737impl From<ValueBindingNode> for BuilderNodeId {
2738    fn from(node: ValueBindingNode) -> Self {
2739        node.node_id
2740    }
2741}
2742///Branded type for Ws non-terminal
2743#[derive(Debug, Clone)]
2744pub struct WsNode {
2745    pub(super) node_id: BuilderNodeId,
2746    pub(super) builder: CstBuilder,
2747}
2748impl WsNode {
2749    /// Consume this node and return its builder
2750    pub fn into_builder(self) -> CstBuilder {
2751        self.builder
2752    }
2753}
2754impl From<WsNode> for BuilderNodeId {
2755    fn from(node: WsNode) -> Self {
2756        node.node_id
2757    }
2758}
2759///Branded type for Root non-terminal
2760#[derive(Debug, Clone)]
2761pub struct RootNode {
2762    pub(super) node_id: BuilderNodeId,
2763    pub(super) builder: CstBuilder,
2764}
2765impl RootNode {
2766    /// Consume this node and return its builder
2767    pub fn into_builder(self) -> CstBuilder {
2768        self.builder
2769    }
2770}
2771impl From<RootNode> for BuilderNodeId {
2772    fn from(node: RootNode) -> Self {
2773        node.node_id
2774    }
2775}
2776#[derive(bon::Builder)]
2777pub struct ArrayConstructor {
2778    array_begin: ArrayBeginNode,
2779    array_opt: ArrayOptNode,
2780    array_end: ArrayEndNode,
2781}
2782impl ArrayConstructor {
2783    pub fn build(self) -> ArrayNode {
2784        let mut builder = CstBuilder::new();
2785        let array_begin = builder.embed(self.array_begin.builder);
2786        let array_opt = builder.embed(self.array_opt.builder);
2787        let array_end = builder.embed(self.array_end.builder);
2788        let node_id = builder.non_terminal(
2789            NonTerminalKind::Array,
2790            vec![array_begin, array_opt, array_end],
2791        );
2792        ArrayNode { node_id, builder }
2793    }
2794}
2795#[derive(bon::Builder)]
2796pub struct ArrayBeginConstructor {
2797    l_bracket: LBracketToken,
2798}
2799impl ArrayBeginConstructor {
2800    pub fn build(self) -> ArrayBeginNode {
2801        let mut builder = CstBuilder::new();
2802        let l_bracket = builder.embed(self.l_bracket.builder);
2803        let node_id = builder.non_terminal(NonTerminalKind::ArrayBegin, vec![l_bracket]);
2804        ArrayBeginNode { node_id, builder }
2805    }
2806}
2807#[derive(bon::Builder)]
2808pub struct ArrayElementsConstructor {
2809    value: ValueNode,
2810    array_elements_opt: ArrayElementsOptNode,
2811}
2812impl ArrayElementsConstructor {
2813    pub fn build(self) -> ArrayElementsNode {
2814        let mut builder = CstBuilder::new();
2815        let value = builder.embed(self.value.builder);
2816        let array_elements_opt = builder.embed(self.array_elements_opt.builder);
2817        let node_id = builder.non_terminal(
2818            NonTerminalKind::ArrayElements,
2819            vec![value, array_elements_opt],
2820        );
2821        ArrayElementsNode { node_id, builder }
2822    }
2823}
2824#[derive(bon::Builder)]
2825pub struct ArrayElementsOptConstructor {
2826    array_elements_tail: Option<ArrayElementsTailNode>,
2827}
2828impl ArrayElementsOptConstructor {
2829    pub fn build(self) -> ArrayElementsOptNode {
2830        let mut builder = CstBuilder::new();
2831        let children = if let Some(child) = self.array_elements_tail {
2832            vec![builder.embed(child.builder)]
2833        } else {
2834            Vec::<BuilderNodeId>::new()
2835        };
2836        let node_id = builder.non_terminal(NonTerminalKind::ArrayElementsOpt, children);
2837        ArrayElementsOptNode { node_id, builder }
2838    }
2839}
2840#[derive(bon::Builder)]
2841pub struct ArrayElementsTailConstructor {
2842    comma: CommaNode,
2843    array_elements_tail_opt: ArrayElementsTailOptNode,
2844}
2845impl ArrayElementsTailConstructor {
2846    pub fn build(self) -> ArrayElementsTailNode {
2847        let mut builder = CstBuilder::new();
2848        let comma = builder.embed(self.comma.builder);
2849        let array_elements_tail_opt = builder.embed(self.array_elements_tail_opt.builder);
2850        let node_id = builder.non_terminal(
2851            NonTerminalKind::ArrayElementsTail,
2852            vec![comma, array_elements_tail_opt],
2853        );
2854        ArrayElementsTailNode { node_id, builder }
2855    }
2856}
2857#[derive(bon::Builder)]
2858pub struct ArrayElementsTailOptConstructor {
2859    array_elements: Option<ArrayElementsNode>,
2860}
2861impl ArrayElementsTailOptConstructor {
2862    pub fn build(self) -> ArrayElementsTailOptNode {
2863        let mut builder = CstBuilder::new();
2864        let children = if let Some(child) = self.array_elements {
2865            vec![builder.embed(child.builder)]
2866        } else {
2867            Vec::<BuilderNodeId>::new()
2868        };
2869        let node_id = builder.non_terminal(NonTerminalKind::ArrayElementsTailOpt, children);
2870        ArrayElementsTailOptNode { node_id, builder }
2871    }
2872}
2873#[derive(bon::Builder)]
2874pub struct ArrayEndConstructor {
2875    r_bracket: RBracketToken,
2876}
2877impl ArrayEndConstructor {
2878    pub fn build(self) -> ArrayEndNode {
2879        let mut builder = CstBuilder::new();
2880        let r_bracket = builder.embed(self.r_bracket.builder);
2881        let node_id = builder.non_terminal(NonTerminalKind::ArrayEnd, vec![r_bracket]);
2882        ArrayEndNode { node_id, builder }
2883    }
2884}
2885#[derive(bon::Builder)]
2886pub struct ArrayMarkerConstructor {
2887    array_begin: ArrayBeginNode,
2888    array_marker_opt: ArrayMarkerOptNode,
2889    array_end: ArrayEndNode,
2890}
2891impl ArrayMarkerConstructor {
2892    pub fn build(self) -> ArrayMarkerNode {
2893        let mut builder = CstBuilder::new();
2894        let array_begin = builder.embed(self.array_begin.builder);
2895        let array_marker_opt = builder.embed(self.array_marker_opt.builder);
2896        let array_end = builder.embed(self.array_end.builder);
2897        let node_id = builder.non_terminal(
2898            NonTerminalKind::ArrayMarker,
2899            vec![array_begin, array_marker_opt, array_end],
2900        );
2901        ArrayMarkerNode { node_id, builder }
2902    }
2903}
2904#[derive(bon::Builder)]
2905pub struct ArrayMarkerOptConstructor {
2906    integer: Option<IntegerNode>,
2907}
2908impl ArrayMarkerOptConstructor {
2909    pub fn build(self) -> ArrayMarkerOptNode {
2910        let mut builder = CstBuilder::new();
2911        let children = if let Some(child) = self.integer {
2912            vec![builder.embed(child.builder)]
2913        } else {
2914            Vec::<BuilderNodeId>::new()
2915        };
2916        let node_id = builder.non_terminal(NonTerminalKind::ArrayMarkerOpt, children);
2917        ArrayMarkerOptNode { node_id, builder }
2918    }
2919}
2920#[derive(bon::Builder)]
2921pub struct ArrayOptConstructor {
2922    array_elements: Option<ArrayElementsNode>,
2923}
2924impl ArrayOptConstructor {
2925    pub fn build(self) -> ArrayOptNode {
2926        let mut builder = CstBuilder::new();
2927        let children = if let Some(child) = self.array_elements {
2928            vec![builder.embed(child.builder)]
2929        } else {
2930            Vec::<BuilderNodeId>::new()
2931        };
2932        let node_id = builder.non_terminal(NonTerminalKind::ArrayOpt, children);
2933        ArrayOptNode { node_id, builder }
2934    }
2935}
2936#[derive(bon::Builder)]
2937pub struct AtConstructor {
2938    at: AtToken,
2939}
2940impl AtConstructor {
2941    pub fn build(self) -> AtNode {
2942        let mut builder = CstBuilder::new();
2943        let at = builder.embed(self.at.builder);
2944        let node_id = builder.non_terminal(NonTerminalKind::At, vec![at]);
2945        AtNode { node_id, builder }
2946    }
2947}
2948#[derive(bon::Builder)]
2949pub struct Backtick1Constructor {
2950    backtick_1: Backtick1Token,
2951}
2952impl Backtick1Constructor {
2953    pub fn build(self) -> Backtick1Node {
2954        let mut builder = CstBuilder::new();
2955        let backtick_1 = builder.embed(self.backtick_1.builder);
2956        let node_id = builder.non_terminal(NonTerminalKind::Backtick1, vec![backtick_1]);
2957        Backtick1Node { node_id, builder }
2958    }
2959}
2960#[derive(bon::Builder)]
2961pub struct Backtick2Constructor {
2962    backtick_2: Backtick2Token,
2963}
2964impl Backtick2Constructor {
2965    pub fn build(self) -> Backtick2Node {
2966        let mut builder = CstBuilder::new();
2967        let backtick_2 = builder.embed(self.backtick_2.builder);
2968        let node_id = builder.non_terminal(NonTerminalKind::Backtick2, vec![backtick_2]);
2969        Backtick2Node { node_id, builder }
2970    }
2971}
2972#[derive(bon::Builder)]
2973pub struct Backtick3Constructor {
2974    backtick_3: Backtick3Token,
2975}
2976impl Backtick3Constructor {
2977    pub fn build(self) -> Backtick3Node {
2978        let mut builder = CstBuilder::new();
2979        let backtick_3 = builder.embed(self.backtick_3.builder);
2980        let node_id = builder.non_terminal(NonTerminalKind::Backtick3, vec![backtick_3]);
2981        Backtick3Node { node_id, builder }
2982    }
2983}
2984#[derive(bon::Builder)]
2985pub struct Backtick4Constructor {
2986    backtick_4: Backtick4Token,
2987}
2988impl Backtick4Constructor {
2989    pub fn build(self) -> Backtick4Node {
2990        let mut builder = CstBuilder::new();
2991        let backtick_4 = builder.embed(self.backtick_4.builder);
2992        let node_id = builder.non_terminal(NonTerminalKind::Backtick4, vec![backtick_4]);
2993        Backtick4Node { node_id, builder }
2994    }
2995}
2996#[derive(bon::Builder)]
2997pub struct Backtick5Constructor {
2998    backtick_5: Backtick5Token,
2999}
3000impl Backtick5Constructor {
3001    pub fn build(self) -> Backtick5Node {
3002        let mut builder = CstBuilder::new();
3003        let backtick_5 = builder.embed(self.backtick_5.builder);
3004        let node_id = builder.non_terminal(NonTerminalKind::Backtick5, vec![backtick_5]);
3005        Backtick5Node { node_id, builder }
3006    }
3007}
3008#[derive(bon::Builder)]
3009pub struct BeginConstructor {
3010    l_brace: LBraceToken,
3011}
3012impl BeginConstructor {
3013    pub fn build(self) -> BeginNode {
3014        let mut builder = CstBuilder::new();
3015        let l_brace = builder.embed(self.l_brace.builder);
3016        let node_id = builder.non_terminal(NonTerminalKind::Begin, vec![l_brace]);
3017        BeginNode { node_id, builder }
3018    }
3019}
3020#[derive(bon::Builder)]
3021pub struct BindConstructor {
3022    bind: BindToken,
3023}
3024impl BindConstructor {
3025    pub fn build(self) -> BindNode {
3026        let mut builder = CstBuilder::new();
3027        let bind = builder.embed(self.bind.builder);
3028        let node_id = builder.non_terminal(NonTerminalKind::Bind, vec![bind]);
3029        BindNode { node_id, builder }
3030    }
3031}
3032#[derive(bon::Builder)]
3033pub struct BindingConstructor {
3034    keys: KeysNode,
3035    binding_rhs: BindingRhsNode,
3036}
3037impl BindingConstructor {
3038    pub fn build(self) -> BindingNode {
3039        let mut builder = CstBuilder::new();
3040        let keys = builder.embed(self.keys.builder);
3041        let binding_rhs = builder.embed(self.binding_rhs.builder);
3042        let node_id = builder.non_terminal(NonTerminalKind::Binding, vec![keys, binding_rhs]);
3043        BindingNode { node_id, builder }
3044    }
3045}
3046pub enum BindingRhsConstructor {
3047    ValueBinding(ValueBindingNode),
3048    SectionBinding(SectionBindingNode),
3049    TextBinding(TextBindingNode),
3050}
3051impl BindingRhsConstructor {
3052    pub fn build(self) -> BindingRhsNode {
3053        let mut builder = CstBuilder::new();
3054        let child_id = match self {
3055            Self::ValueBinding(node) => builder.embed(node.builder),
3056            Self::SectionBinding(node) => builder.embed(node.builder),
3057            Self::TextBinding(node) => builder.embed(node.builder),
3058        };
3059        let node_id = builder.non_terminal(NonTerminalKind::BindingRhs, vec![child_id]);
3060        BindingRhsNode { node_id, builder }
3061    }
3062}
3063pub enum BooleanConstructor {
3064    True(TrueNode),
3065    False(FalseNode),
3066}
3067impl BooleanConstructor {
3068    pub fn build(self) -> BooleanNode {
3069        let mut builder = CstBuilder::new();
3070        let child_id = match self {
3071            Self::True(node) => builder.embed(node.builder),
3072            Self::False(node) => builder.embed(node.builder),
3073        };
3074        let node_id = builder.non_terminal(NonTerminalKind::Boolean, vec![child_id]);
3075        BooleanNode { node_id, builder }
3076    }
3077}
3078pub enum CodeBlockConstructor {
3079    CodeBlock3(CodeBlock3Node),
3080    CodeBlock4(CodeBlock4Node),
3081    CodeBlock5(CodeBlock5Node),
3082    CodeBlock6(CodeBlock6Node),
3083}
3084impl CodeBlockConstructor {
3085    pub fn build(self) -> CodeBlockNode {
3086        let mut builder = CstBuilder::new();
3087        let child_id = match self {
3088            Self::CodeBlock3(node) => builder.embed(node.builder),
3089            Self::CodeBlock4(node) => builder.embed(node.builder),
3090            Self::CodeBlock5(node) => builder.embed(node.builder),
3091            Self::CodeBlock6(node) => builder.embed(node.builder),
3092        };
3093        let node_id = builder.non_terminal(NonTerminalKind::CodeBlock, vec![child_id]);
3094        CodeBlockNode { node_id, builder }
3095    }
3096}
3097#[derive(bon::Builder)]
3098pub struct CodeBlock3Constructor {
3099    code_block_start_3: CodeBlockStart3Node,
3100    code_block_3_list: CodeBlock3ListNode,
3101    code_block_end_3: CodeBlockEnd3Node,
3102}
3103impl CodeBlock3Constructor {
3104    pub fn build(self) -> CodeBlock3Node {
3105        let mut builder = CstBuilder::new();
3106        let code_block_start_3 = builder.embed(self.code_block_start_3.builder);
3107        let code_block_3_list = builder.embed(self.code_block_3_list.builder);
3108        let code_block_end_3 = builder.embed(self.code_block_end_3.builder);
3109        let node_id = builder.non_terminal(
3110            NonTerminalKind::CodeBlock3,
3111            vec![code_block_start_3, code_block_3_list, code_block_end_3],
3112        );
3113        CodeBlock3Node { node_id, builder }
3114    }
3115}
3116#[derive(bon::Builder)]
3117pub struct CodeBlock3ListConstructor {
3118    code_block_3_list_group: CodeBlock3ListGroupNode,
3119    code_block_3_list: CodeBlock3ListNode,
3120}
3121impl CodeBlock3ListConstructor {
3122    /// Create an empty node (base case for recursion)
3123    pub fn empty() -> CodeBlock3ListNode {
3124        let mut builder = CstBuilder::new();
3125        let node_id =
3126            builder.non_terminal(NonTerminalKind::CodeBlock3List, Vec::<BuilderNodeId>::new());
3127        CodeBlock3ListNode { node_id, builder }
3128    }
3129    /// Create a node with children (recursive case)
3130    pub fn build(self) -> CodeBlock3ListNode {
3131        let mut builder = CstBuilder::new();
3132        let code_block_3_list_group = builder.embed(self.code_block_3_list_group.builder);
3133        let code_block_3_list = builder.embed(self.code_block_3_list.builder);
3134        let node_id = builder.non_terminal(
3135            NonTerminalKind::CodeBlock3List,
3136            vec![code_block_3_list_group, code_block_3_list],
3137        );
3138        CodeBlock3ListNode { node_id, builder }
3139    }
3140}
3141pub enum CodeBlock3ListGroupConstructor {
3142    NoBacktick(NoBacktickNode),
3143    Backtick2(Backtick2Node),
3144}
3145impl CodeBlock3ListGroupConstructor {
3146    pub fn build(self) -> CodeBlock3ListGroupNode {
3147        let mut builder = CstBuilder::new();
3148        let child_id = match self {
3149            Self::NoBacktick(node) => builder.embed(node.builder),
3150            Self::Backtick2(node) => builder.embed(node.builder),
3151        };
3152        let node_id = builder.non_terminal(NonTerminalKind::CodeBlock3ListGroup, vec![child_id]);
3153        CodeBlock3ListGroupNode { node_id, builder }
3154    }
3155}
3156#[derive(bon::Builder)]
3157pub struct CodeBlock4Constructor {
3158    code_block_start_4: CodeBlockStart4Node,
3159    code_block_4_list: CodeBlock4ListNode,
3160    code_block_end_4: CodeBlockEnd4Node,
3161}
3162impl CodeBlock4Constructor {
3163    pub fn build(self) -> CodeBlock4Node {
3164        let mut builder = CstBuilder::new();
3165        let code_block_start_4 = builder.embed(self.code_block_start_4.builder);
3166        let code_block_4_list = builder.embed(self.code_block_4_list.builder);
3167        let code_block_end_4 = builder.embed(self.code_block_end_4.builder);
3168        let node_id = builder.non_terminal(
3169            NonTerminalKind::CodeBlock4,
3170            vec![code_block_start_4, code_block_4_list, code_block_end_4],
3171        );
3172        CodeBlock4Node { node_id, builder }
3173    }
3174}
3175#[derive(bon::Builder)]
3176pub struct CodeBlock4ListConstructor {
3177    code_block_4_list_group: CodeBlock4ListGroupNode,
3178    code_block_4_list: CodeBlock4ListNode,
3179}
3180impl CodeBlock4ListConstructor {
3181    /// Create an empty node (base case for recursion)
3182    pub fn empty() -> CodeBlock4ListNode {
3183        let mut builder = CstBuilder::new();
3184        let node_id =
3185            builder.non_terminal(NonTerminalKind::CodeBlock4List, Vec::<BuilderNodeId>::new());
3186        CodeBlock4ListNode { node_id, builder }
3187    }
3188    /// Create a node with children (recursive case)
3189    pub fn build(self) -> CodeBlock4ListNode {
3190        let mut builder = CstBuilder::new();
3191        let code_block_4_list_group = builder.embed(self.code_block_4_list_group.builder);
3192        let code_block_4_list = builder.embed(self.code_block_4_list.builder);
3193        let node_id = builder.non_terminal(
3194            NonTerminalKind::CodeBlock4List,
3195            vec![code_block_4_list_group, code_block_4_list],
3196        );
3197        CodeBlock4ListNode { node_id, builder }
3198    }
3199}
3200pub enum CodeBlock4ListGroupConstructor {
3201    NoBacktick(NoBacktickNode),
3202    Backtick3(Backtick3Node),
3203}
3204impl CodeBlock4ListGroupConstructor {
3205    pub fn build(self) -> CodeBlock4ListGroupNode {
3206        let mut builder = CstBuilder::new();
3207        let child_id = match self {
3208            Self::NoBacktick(node) => builder.embed(node.builder),
3209            Self::Backtick3(node) => builder.embed(node.builder),
3210        };
3211        let node_id = builder.non_terminal(NonTerminalKind::CodeBlock4ListGroup, vec![child_id]);
3212        CodeBlock4ListGroupNode { node_id, builder }
3213    }
3214}
3215#[derive(bon::Builder)]
3216pub struct CodeBlock5Constructor {
3217    code_block_start_5: CodeBlockStart5Node,
3218    code_block_5_list: CodeBlock5ListNode,
3219    code_block_end_5: CodeBlockEnd5Node,
3220}
3221impl CodeBlock5Constructor {
3222    pub fn build(self) -> CodeBlock5Node {
3223        let mut builder = CstBuilder::new();
3224        let code_block_start_5 = builder.embed(self.code_block_start_5.builder);
3225        let code_block_5_list = builder.embed(self.code_block_5_list.builder);
3226        let code_block_end_5 = builder.embed(self.code_block_end_5.builder);
3227        let node_id = builder.non_terminal(
3228            NonTerminalKind::CodeBlock5,
3229            vec![code_block_start_5, code_block_5_list, code_block_end_5],
3230        );
3231        CodeBlock5Node { node_id, builder }
3232    }
3233}
3234#[derive(bon::Builder)]
3235pub struct CodeBlock5ListConstructor {
3236    code_block_5_list_group: CodeBlock5ListGroupNode,
3237    code_block_5_list: CodeBlock5ListNode,
3238}
3239impl CodeBlock5ListConstructor {
3240    /// Create an empty node (base case for recursion)
3241    pub fn empty() -> CodeBlock5ListNode {
3242        let mut builder = CstBuilder::new();
3243        let node_id =
3244            builder.non_terminal(NonTerminalKind::CodeBlock5List, Vec::<BuilderNodeId>::new());
3245        CodeBlock5ListNode { node_id, builder }
3246    }
3247    /// Create a node with children (recursive case)
3248    pub fn build(self) -> CodeBlock5ListNode {
3249        let mut builder = CstBuilder::new();
3250        let code_block_5_list_group = builder.embed(self.code_block_5_list_group.builder);
3251        let code_block_5_list = builder.embed(self.code_block_5_list.builder);
3252        let node_id = builder.non_terminal(
3253            NonTerminalKind::CodeBlock5List,
3254            vec![code_block_5_list_group, code_block_5_list],
3255        );
3256        CodeBlock5ListNode { node_id, builder }
3257    }
3258}
3259pub enum CodeBlock5ListGroupConstructor {
3260    NoBacktick(NoBacktickNode),
3261    Backtick4(Backtick4Node),
3262}
3263impl CodeBlock5ListGroupConstructor {
3264    pub fn build(self) -> CodeBlock5ListGroupNode {
3265        let mut builder = CstBuilder::new();
3266        let child_id = match self {
3267            Self::NoBacktick(node) => builder.embed(node.builder),
3268            Self::Backtick4(node) => builder.embed(node.builder),
3269        };
3270        let node_id = builder.non_terminal(NonTerminalKind::CodeBlock5ListGroup, vec![child_id]);
3271        CodeBlock5ListGroupNode { node_id, builder }
3272    }
3273}
3274#[derive(bon::Builder)]
3275pub struct CodeBlock6Constructor {
3276    code_block_start_6: CodeBlockStart6Node,
3277    code_block_6_list: CodeBlock6ListNode,
3278    code_block_end_6: CodeBlockEnd6Node,
3279}
3280impl CodeBlock6Constructor {
3281    pub fn build(self) -> CodeBlock6Node {
3282        let mut builder = CstBuilder::new();
3283        let code_block_start_6 = builder.embed(self.code_block_start_6.builder);
3284        let code_block_6_list = builder.embed(self.code_block_6_list.builder);
3285        let code_block_end_6 = builder.embed(self.code_block_end_6.builder);
3286        let node_id = builder.non_terminal(
3287            NonTerminalKind::CodeBlock6,
3288            vec![code_block_start_6, code_block_6_list, code_block_end_6],
3289        );
3290        CodeBlock6Node { node_id, builder }
3291    }
3292}
3293#[derive(bon::Builder)]
3294pub struct CodeBlock6ListConstructor {
3295    code_block_6_list_group: CodeBlock6ListGroupNode,
3296    code_block_6_list: CodeBlock6ListNode,
3297}
3298impl CodeBlock6ListConstructor {
3299    /// Create an empty node (base case for recursion)
3300    pub fn empty() -> CodeBlock6ListNode {
3301        let mut builder = CstBuilder::new();
3302        let node_id =
3303            builder.non_terminal(NonTerminalKind::CodeBlock6List, Vec::<BuilderNodeId>::new());
3304        CodeBlock6ListNode { node_id, builder }
3305    }
3306    /// Create a node with children (recursive case)
3307    pub fn build(self) -> CodeBlock6ListNode {
3308        let mut builder = CstBuilder::new();
3309        let code_block_6_list_group = builder.embed(self.code_block_6_list_group.builder);
3310        let code_block_6_list = builder.embed(self.code_block_6_list.builder);
3311        let node_id = builder.non_terminal(
3312            NonTerminalKind::CodeBlock6List,
3313            vec![code_block_6_list_group, code_block_6_list],
3314        );
3315        CodeBlock6ListNode { node_id, builder }
3316    }
3317}
3318pub enum CodeBlock6ListGroupConstructor {
3319    NoBacktick(NoBacktickNode),
3320    Backtick5(Backtick5Node),
3321}
3322impl CodeBlock6ListGroupConstructor {
3323    pub fn build(self) -> CodeBlock6ListGroupNode {
3324        let mut builder = CstBuilder::new();
3325        let child_id = match self {
3326            Self::NoBacktick(node) => builder.embed(node.builder),
3327            Self::Backtick5(node) => builder.embed(node.builder),
3328        };
3329        let node_id = builder.non_terminal(NonTerminalKind::CodeBlock6ListGroup, vec![child_id]);
3330        CodeBlock6ListGroupNode { node_id, builder }
3331    }
3332}
3333#[derive(bon::Builder)]
3334pub struct CodeBlockEnd3Constructor {
3335    code_block_end_3: CodeBlockEnd3Token,
3336}
3337impl CodeBlockEnd3Constructor {
3338    pub fn build(self) -> CodeBlockEnd3Node {
3339        let mut builder = CstBuilder::new();
3340        let code_block_end_3 = builder.embed(self.code_block_end_3.builder);
3341        let node_id = builder.non_terminal(NonTerminalKind::CodeBlockEnd3, vec![code_block_end_3]);
3342        CodeBlockEnd3Node { node_id, builder }
3343    }
3344}
3345#[derive(bon::Builder)]
3346pub struct CodeBlockEnd4Constructor {
3347    code_block_end_4: CodeBlockEnd4Token,
3348}
3349impl CodeBlockEnd4Constructor {
3350    pub fn build(self) -> CodeBlockEnd4Node {
3351        let mut builder = CstBuilder::new();
3352        let code_block_end_4 = builder.embed(self.code_block_end_4.builder);
3353        let node_id = builder.non_terminal(NonTerminalKind::CodeBlockEnd4, vec![code_block_end_4]);
3354        CodeBlockEnd4Node { node_id, builder }
3355    }
3356}
3357#[derive(bon::Builder)]
3358pub struct CodeBlockEnd5Constructor {
3359    code_block_end_5: CodeBlockEnd5Token,
3360}
3361impl CodeBlockEnd5Constructor {
3362    pub fn build(self) -> CodeBlockEnd5Node {
3363        let mut builder = CstBuilder::new();
3364        let code_block_end_5 = builder.embed(self.code_block_end_5.builder);
3365        let node_id = builder.non_terminal(NonTerminalKind::CodeBlockEnd5, vec![code_block_end_5]);
3366        CodeBlockEnd5Node { node_id, builder }
3367    }
3368}
3369#[derive(bon::Builder)]
3370pub struct CodeBlockEnd6Constructor {
3371    code_block_end_6: CodeBlockEnd6Token,
3372}
3373impl CodeBlockEnd6Constructor {
3374    pub fn build(self) -> CodeBlockEnd6Node {
3375        let mut builder = CstBuilder::new();
3376        let code_block_end_6 = builder.embed(self.code_block_end_6.builder);
3377        let node_id = builder.non_terminal(NonTerminalKind::CodeBlockEnd6, vec![code_block_end_6]);
3378        CodeBlockEnd6Node { node_id, builder }
3379    }
3380}
3381#[derive(bon::Builder)]
3382pub struct CodeBlockStart3Constructor {
3383    code_block_start_3: CodeBlockStart3Token,
3384}
3385impl CodeBlockStart3Constructor {
3386    pub fn build(self) -> CodeBlockStart3Node {
3387        let mut builder = CstBuilder::new();
3388        let code_block_start_3 = builder.embed(self.code_block_start_3.builder);
3389        let node_id =
3390            builder.non_terminal(NonTerminalKind::CodeBlockStart3, vec![code_block_start_3]);
3391        CodeBlockStart3Node { node_id, builder }
3392    }
3393}
3394#[derive(bon::Builder)]
3395pub struct CodeBlockStart4Constructor {
3396    code_block_start_4: CodeBlockStart4Token,
3397}
3398impl CodeBlockStart4Constructor {
3399    pub fn build(self) -> CodeBlockStart4Node {
3400        let mut builder = CstBuilder::new();
3401        let code_block_start_4 = builder.embed(self.code_block_start_4.builder);
3402        let node_id =
3403            builder.non_terminal(NonTerminalKind::CodeBlockStart4, vec![code_block_start_4]);
3404        CodeBlockStart4Node { node_id, builder }
3405    }
3406}
3407#[derive(bon::Builder)]
3408pub struct CodeBlockStart5Constructor {
3409    code_block_start_5: CodeBlockStart5Token,
3410}
3411impl CodeBlockStart5Constructor {
3412    pub fn build(self) -> CodeBlockStart5Node {
3413        let mut builder = CstBuilder::new();
3414        let code_block_start_5 = builder.embed(self.code_block_start_5.builder);
3415        let node_id =
3416            builder.non_terminal(NonTerminalKind::CodeBlockStart5, vec![code_block_start_5]);
3417        CodeBlockStart5Node { node_id, builder }
3418    }
3419}
3420#[derive(bon::Builder)]
3421pub struct CodeBlockStart6Constructor {
3422    code_block_start_6: CodeBlockStart6Token,
3423}
3424impl CodeBlockStart6Constructor {
3425    pub fn build(self) -> CodeBlockStart6Node {
3426        let mut builder = CstBuilder::new();
3427        let code_block_start_6 = builder.embed(self.code_block_start_6.builder);
3428        let node_id =
3429            builder.non_terminal(NonTerminalKind::CodeBlockStart6, vec![code_block_start_6]);
3430        CodeBlockStart6Node { node_id, builder }
3431    }
3432}
3433#[derive(bon::Builder)]
3434pub struct CommaConstructor {
3435    comma: CommaToken,
3436}
3437impl CommaConstructor {
3438    pub fn build(self) -> CommaNode {
3439        let mut builder = CstBuilder::new();
3440        let comma = builder.embed(self.comma.builder);
3441        let node_id = builder.non_terminal(NonTerminalKind::Comma, vec![comma]);
3442        CommaNode { node_id, builder }
3443    }
3444}
3445#[derive(bon::Builder)]
3446pub struct ContinueConstructor {
3447    esc: EscToken,
3448}
3449impl ContinueConstructor {
3450    pub fn build(self) -> ContinueNode {
3451        let mut builder = CstBuilder::new();
3452        let esc = builder.embed(self.esc.builder);
3453        let node_id = builder.non_terminal(NonTerminalKind::Continue, vec![esc]);
3454        ContinueNode { node_id, builder }
3455    }
3456}
3457#[derive(bon::Builder)]
3458pub struct DotConstructor {
3459    dot: DotToken,
3460}
3461impl DotConstructor {
3462    pub fn build(self) -> DotNode {
3463        let mut builder = CstBuilder::new();
3464        let dot = builder.embed(self.dot.builder);
3465        let node_id = builder.non_terminal(NonTerminalKind::Dot, vec![dot]);
3466        DotNode { node_id, builder }
3467    }
3468}
3469#[derive(bon::Builder)]
3470pub struct EndConstructor {
3471    r_brace: RBraceToken,
3472}
3473impl EndConstructor {
3474    pub fn build(self) -> EndNode {
3475        let mut builder = CstBuilder::new();
3476        let r_brace = builder.embed(self.r_brace.builder);
3477        let node_id = builder.non_terminal(NonTerminalKind::End, vec![r_brace]);
3478        EndNode { node_id, builder }
3479    }
3480}
3481#[derive(bon::Builder)]
3482pub struct EureConstructor {
3483    eure_opt: EureOptNode,
3484    eure_bindings: EureBindingsNode,
3485    eure_sections: EureSectionsNode,
3486}
3487impl EureConstructor {
3488    pub fn build(self) -> EureNode {
3489        let mut builder = CstBuilder::new();
3490        let eure_opt = builder.embed(self.eure_opt.builder);
3491        let eure_bindings = builder.embed(self.eure_bindings.builder);
3492        let eure_sections = builder.embed(self.eure_sections.builder);
3493        let node_id = builder.non_terminal(
3494            NonTerminalKind::Eure,
3495            vec![eure_opt, eure_bindings, eure_sections],
3496        );
3497        EureNode { node_id, builder }
3498    }
3499}
3500#[derive(bon::Builder)]
3501pub struct EureBindingsConstructor {
3502    binding: BindingNode,
3503    eure_bindings: EureBindingsNode,
3504}
3505impl EureBindingsConstructor {
3506    /// Create an empty node (base case for recursion)
3507    pub fn empty() -> EureBindingsNode {
3508        let mut builder = CstBuilder::new();
3509        let node_id = builder.non_terminal(NonTerminalKind::EureList, Vec::<BuilderNodeId>::new());
3510        EureBindingsNode { node_id, builder }
3511    }
3512    /// Create a node with children (recursive case)
3513    pub fn build(self) -> EureBindingsNode {
3514        let mut builder = CstBuilder::new();
3515        let binding = builder.embed(self.binding.builder);
3516        let eure_bindings = builder.embed(self.eure_bindings.builder);
3517        let node_id = builder.non_terminal(NonTerminalKind::EureList, vec![binding, eure_bindings]);
3518        EureBindingsNode { node_id, builder }
3519    }
3520}
3521#[derive(bon::Builder)]
3522pub struct EureSectionsConstructor {
3523    section: SectionNode,
3524    eure_sections: EureSectionsNode,
3525}
3526impl EureSectionsConstructor {
3527    /// Create an empty node (base case for recursion)
3528    pub fn empty() -> EureSectionsNode {
3529        let mut builder = CstBuilder::new();
3530        let node_id = builder.non_terminal(NonTerminalKind::EureList0, Vec::<BuilderNodeId>::new());
3531        EureSectionsNode { node_id, builder }
3532    }
3533    /// Create a node with children (recursive case)
3534    pub fn build(self) -> EureSectionsNode {
3535        let mut builder = CstBuilder::new();
3536        let section = builder.embed(self.section.builder);
3537        let eure_sections = builder.embed(self.eure_sections.builder);
3538        let node_id =
3539            builder.non_terminal(NonTerminalKind::EureList0, vec![section, eure_sections]);
3540        EureSectionsNode { node_id, builder }
3541    }
3542}
3543#[derive(bon::Builder)]
3544pub struct EureOptConstructor {
3545    value_binding: Option<ValueBindingNode>,
3546}
3547impl EureOptConstructor {
3548    pub fn build(self) -> EureOptNode {
3549        let mut builder = CstBuilder::new();
3550        let children = if let Some(child) = self.value_binding {
3551            vec![builder.embed(child.builder)]
3552        } else {
3553            Vec::<BuilderNodeId>::new()
3554        };
3555        let node_id = builder.non_terminal(NonTerminalKind::EureOpt, children);
3556        EureOptNode { node_id, builder }
3557    }
3558}
3559#[derive(bon::Builder)]
3560pub struct ExtConstructor {
3561    dollar: DollarToken,
3562}
3563impl ExtConstructor {
3564    pub fn build(self) -> ExtNode {
3565        let mut builder = CstBuilder::new();
3566        let dollar = builder.embed(self.dollar.builder);
3567        let node_id = builder.non_terminal(NonTerminalKind::Ext, vec![dollar]);
3568        ExtNode { node_id, builder }
3569    }
3570}
3571#[derive(bon::Builder)]
3572pub struct ExtensionNameSpaceConstructor {
3573    ext: ExtNode,
3574    key_ident: KeyIdentNode,
3575}
3576impl ExtensionNameSpaceConstructor {
3577    pub fn build(self) -> ExtensionNameSpaceNode {
3578        let mut builder = CstBuilder::new();
3579        let ext = builder.embed(self.ext.builder);
3580        let key_ident = builder.embed(self.key_ident.builder);
3581        let node_id =
3582            builder.non_terminal(NonTerminalKind::ExtensionNameSpace, vec![ext, key_ident]);
3583        ExtensionNameSpaceNode { node_id, builder }
3584    }
3585}
3586#[derive(bon::Builder)]
3587pub struct FalseConstructor {
3588    r#false: FalseToken,
3589}
3590impl FalseConstructor {
3591    pub fn build(self) -> FalseNode {
3592        let mut builder = CstBuilder::new();
3593        let r#false = builder.embed(self.r#false.builder);
3594        let node_id = builder.non_terminal(NonTerminalKind::False, vec![r#false]);
3595        FalseNode { node_id, builder }
3596    }
3597}
3598#[derive(bon::Builder)]
3599pub struct FloatConstructor {
3600    float: FloatToken,
3601}
3602impl FloatConstructor {
3603    pub fn build(self) -> FloatNode {
3604        let mut builder = CstBuilder::new();
3605        let float = builder.embed(self.float.builder);
3606        let node_id = builder.non_terminal(NonTerminalKind::Float, vec![float]);
3607        FloatNode { node_id, builder }
3608    }
3609}
3610#[derive(bon::Builder)]
3611pub struct GrammarNewlineConstructor {
3612    grammar_newline: GrammarNewlineToken,
3613}
3614impl GrammarNewlineConstructor {
3615    pub fn build(self) -> GrammarNewlineNode {
3616        let mut builder = CstBuilder::new();
3617        let grammar_newline = builder.embed(self.grammar_newline.builder);
3618        let node_id = builder.non_terminal(NonTerminalKind::GrammarNewline, vec![grammar_newline]);
3619        GrammarNewlineNode { node_id, builder }
3620    }
3621}
3622#[derive(bon::Builder)]
3623pub struct HoleConstructor {
3624    hole: HoleToken,
3625}
3626impl HoleConstructor {
3627    pub fn build(self) -> HoleNode {
3628        let mut builder = CstBuilder::new();
3629        let hole = builder.embed(self.hole.builder);
3630        let node_id = builder.non_terminal(NonTerminalKind::Hole, vec![hole]);
3631        HoleNode { node_id, builder }
3632    }
3633}
3634#[derive(bon::Builder)]
3635pub struct IdentConstructor {
3636    ident: IdentToken,
3637}
3638impl IdentConstructor {
3639    pub fn build(self) -> IdentNode {
3640        let mut builder = CstBuilder::new();
3641        let ident = builder.embed(self.ident.builder);
3642        let node_id = builder.non_terminal(NonTerminalKind::Ident, vec![ident]);
3643        IdentNode { node_id, builder }
3644    }
3645}
3646#[derive(bon::Builder)]
3647pub struct InfConstructor {
3648    inf: InfToken,
3649}
3650impl InfConstructor {
3651    pub fn build(self) -> InfNode {
3652        let mut builder = CstBuilder::new();
3653        let inf = builder.embed(self.inf.builder);
3654        let node_id = builder.non_terminal(NonTerminalKind::Inf, vec![inf]);
3655        InfNode { node_id, builder }
3656    }
3657}
3658pub enum InlineCodeConstructor {
3659    InlineCode2(InlineCode2Node),
3660    InlineCode1(InlineCode1Node),
3661}
3662impl InlineCodeConstructor {
3663    pub fn build(self) -> InlineCodeNode {
3664        let mut builder = CstBuilder::new();
3665        let child_id = match self {
3666            Self::InlineCode2(node) => builder.embed(node.builder),
3667            Self::InlineCode1(node) => builder.embed(node.builder),
3668        };
3669        let node_id = builder.non_terminal(NonTerminalKind::InlineCode, vec![child_id]);
3670        InlineCodeNode { node_id, builder }
3671    }
3672}
3673#[derive(bon::Builder)]
3674pub struct InlineCode1Constructor {
3675    inline_code_1: InlineCode1Token,
3676}
3677impl InlineCode1Constructor {
3678    pub fn build(self) -> InlineCode1Node {
3679        let mut builder = CstBuilder::new();
3680        let inline_code_1 = builder.embed(self.inline_code_1.builder);
3681        let node_id = builder.non_terminal(NonTerminalKind::InlineCode1, vec![inline_code_1]);
3682        InlineCode1Node { node_id, builder }
3683    }
3684}
3685#[derive(bon::Builder)]
3686pub struct InlineCode2Constructor {
3687    inline_code_start_2: InlineCodeStart2Node,
3688    inline_code_2_list: InlineCode2ListNode,
3689    inline_code_end_2: InlineCodeEnd2Node,
3690}
3691impl InlineCode2Constructor {
3692    pub fn build(self) -> InlineCode2Node {
3693        let mut builder = CstBuilder::new();
3694        let inline_code_start_2 = builder.embed(self.inline_code_start_2.builder);
3695        let inline_code_2_list = builder.embed(self.inline_code_2_list.builder);
3696        let inline_code_end_2 = builder.embed(self.inline_code_end_2.builder);
3697        let node_id = builder.non_terminal(
3698            NonTerminalKind::InlineCode2,
3699            vec![inline_code_start_2, inline_code_2_list, inline_code_end_2],
3700        );
3701        InlineCode2Node { node_id, builder }
3702    }
3703}
3704#[derive(bon::Builder)]
3705pub struct InlineCode2ListConstructor {
3706    inline_code_2_list_group: InlineCode2ListGroupNode,
3707    inline_code_2_list: InlineCode2ListNode,
3708}
3709impl InlineCode2ListConstructor {
3710    /// Create an empty node (base case for recursion)
3711    pub fn empty() -> InlineCode2ListNode {
3712        let mut builder = CstBuilder::new();
3713        let node_id = builder.non_terminal(
3714            NonTerminalKind::InlineCode2List,
3715            Vec::<BuilderNodeId>::new(),
3716        );
3717        InlineCode2ListNode { node_id, builder }
3718    }
3719    /// Create a node with children (recursive case)
3720    pub fn build(self) -> InlineCode2ListNode {
3721        let mut builder = CstBuilder::new();
3722        let inline_code_2_list_group = builder.embed(self.inline_code_2_list_group.builder);
3723        let inline_code_2_list = builder.embed(self.inline_code_2_list.builder);
3724        let node_id = builder.non_terminal(
3725            NonTerminalKind::InlineCode2List,
3726            vec![inline_code_2_list_group, inline_code_2_list],
3727        );
3728        InlineCode2ListNode { node_id, builder }
3729    }
3730}
3731pub enum InlineCode2ListGroupConstructor {
3732    NoBacktickInline(NoBacktickInlineNode),
3733    Backtick1(Backtick1Node),
3734}
3735impl InlineCode2ListGroupConstructor {
3736    pub fn build(self) -> InlineCode2ListGroupNode {
3737        let mut builder = CstBuilder::new();
3738        let child_id = match self {
3739            Self::NoBacktickInline(node) => builder.embed(node.builder),
3740            Self::Backtick1(node) => builder.embed(node.builder),
3741        };
3742        let node_id = builder.non_terminal(NonTerminalKind::InlineCode2ListGroup, vec![child_id]);
3743        InlineCode2ListGroupNode { node_id, builder }
3744    }
3745}
3746#[derive(bon::Builder)]
3747pub struct InlineCodeEnd2Constructor {
3748    inline_code_end_2: InlineCodeEnd2Token,
3749}
3750impl InlineCodeEnd2Constructor {
3751    pub fn build(self) -> InlineCodeEnd2Node {
3752        let mut builder = CstBuilder::new();
3753        let inline_code_end_2 = builder.embed(self.inline_code_end_2.builder);
3754        let node_id =
3755            builder.non_terminal(NonTerminalKind::InlineCodeEnd2, vec![inline_code_end_2]);
3756        InlineCodeEnd2Node { node_id, builder }
3757    }
3758}
3759#[derive(bon::Builder)]
3760pub struct InlineCodeStart2Constructor {
3761    inline_code_start_2: InlineCodeStart2Token,
3762}
3763impl InlineCodeStart2Constructor {
3764    pub fn build(self) -> InlineCodeStart2Node {
3765        let mut builder = CstBuilder::new();
3766        let inline_code_start_2 = builder.embed(self.inline_code_start_2.builder);
3767        let node_id =
3768            builder.non_terminal(NonTerminalKind::InlineCodeStart2, vec![inline_code_start_2]);
3769        InlineCodeStart2Node { node_id, builder }
3770    }
3771}
3772#[derive(bon::Builder)]
3773pub struct IntegerConstructor {
3774    integer: IntegerToken,
3775}
3776impl IntegerConstructor {
3777    pub fn build(self) -> IntegerNode {
3778        let mut builder = CstBuilder::new();
3779        let integer = builder.embed(self.integer.builder);
3780        let node_id = builder.non_terminal(NonTerminalKind::Integer, vec![integer]);
3781        IntegerNode { node_id, builder }
3782    }
3783}
3784#[derive(bon::Builder)]
3785pub struct KeyConstructor {
3786    key_base: KeyBaseNode,
3787    key_opt: KeyOptNode,
3788}
3789impl KeyConstructor {
3790    pub fn build(self) -> KeyNode {
3791        let mut builder = CstBuilder::new();
3792        let key_base = builder.embed(self.key_base.builder);
3793        let key_opt = builder.embed(self.key_opt.builder);
3794        let node_id = builder.non_terminal(NonTerminalKind::Key, vec![key_base, key_opt]);
3795        KeyNode { node_id, builder }
3796    }
3797}
3798pub enum KeyBaseConstructor {
3799    KeyIdent(KeyIdentNode),
3800    ExtensionNameSpace(ExtensionNameSpaceNode),
3801    Str(StrNode),
3802    Integer(IntegerNode),
3803    KeyTuple(KeyTupleNode),
3804    TupleIndex(TupleIndexNode),
3805}
3806impl KeyBaseConstructor {
3807    pub fn build(self) -> KeyBaseNode {
3808        let mut builder = CstBuilder::new();
3809        let child_id = match self {
3810            Self::KeyIdent(node) => builder.embed(node.builder),
3811            Self::ExtensionNameSpace(node) => builder.embed(node.builder),
3812            Self::Str(node) => builder.embed(node.builder),
3813            Self::Integer(node) => builder.embed(node.builder),
3814            Self::KeyTuple(node) => builder.embed(node.builder),
3815            Self::TupleIndex(node) => builder.embed(node.builder),
3816        };
3817        let node_id = builder.non_terminal(NonTerminalKind::KeyBase, vec![child_id]);
3818        KeyBaseNode { node_id, builder }
3819    }
3820}
3821pub enum KeyIdentConstructor {
3822    Ident(IdentNode),
3823    True(TrueNode),
3824    False(FalseNode),
3825    Null(NullNode),
3826}
3827impl KeyIdentConstructor {
3828    pub fn build(self) -> KeyIdentNode {
3829        let mut builder = CstBuilder::new();
3830        let child_id = match self {
3831            Self::Ident(node) => builder.embed(node.builder),
3832            Self::True(node) => builder.embed(node.builder),
3833            Self::False(node) => builder.embed(node.builder),
3834            Self::Null(node) => builder.embed(node.builder),
3835        };
3836        let node_id = builder.non_terminal(NonTerminalKind::KeyIdent, vec![child_id]);
3837        KeyIdentNode { node_id, builder }
3838    }
3839}
3840#[derive(bon::Builder)]
3841pub struct KeyOptConstructor {
3842    array_marker: Option<ArrayMarkerNode>,
3843}
3844impl KeyOptConstructor {
3845    pub fn build(self) -> KeyOptNode {
3846        let mut builder = CstBuilder::new();
3847        let children = if let Some(child) = self.array_marker {
3848            vec![builder.embed(child.builder)]
3849        } else {
3850            Vec::<BuilderNodeId>::new()
3851        };
3852        let node_id = builder.non_terminal(NonTerminalKind::KeyOpt, children);
3853        KeyOptNode { node_id, builder }
3854    }
3855}
3856#[derive(bon::Builder)]
3857pub struct KeyTupleConstructor {
3858    l_paren: LParenNode,
3859    key_tuple_opt: KeyTupleOptNode,
3860    r_paren: RParenNode,
3861}
3862impl KeyTupleConstructor {
3863    pub fn build(self) -> KeyTupleNode {
3864        let mut builder = CstBuilder::new();
3865        let l_paren = builder.embed(self.l_paren.builder);
3866        let key_tuple_opt = builder.embed(self.key_tuple_opt.builder);
3867        let r_paren = builder.embed(self.r_paren.builder);
3868        let node_id = builder.non_terminal(
3869            NonTerminalKind::KeyTuple,
3870            vec![l_paren, key_tuple_opt, r_paren],
3871        );
3872        KeyTupleNode { node_id, builder }
3873    }
3874}
3875#[derive(bon::Builder)]
3876pub struct KeyTupleElementsConstructor {
3877    key_value: KeyValueNode,
3878    key_tuple_elements_opt: KeyTupleElementsOptNode,
3879}
3880impl KeyTupleElementsConstructor {
3881    pub fn build(self) -> KeyTupleElementsNode {
3882        let mut builder = CstBuilder::new();
3883        let key_value = builder.embed(self.key_value.builder);
3884        let key_tuple_elements_opt = builder.embed(self.key_tuple_elements_opt.builder);
3885        let node_id = builder.non_terminal(
3886            NonTerminalKind::KeyTupleElements,
3887            vec![key_value, key_tuple_elements_opt],
3888        );
3889        KeyTupleElementsNode { node_id, builder }
3890    }
3891}
3892#[derive(bon::Builder)]
3893pub struct KeyTupleElementsOptConstructor {
3894    key_tuple_elements_tail: Option<KeyTupleElementsTailNode>,
3895}
3896impl KeyTupleElementsOptConstructor {
3897    pub fn build(self) -> KeyTupleElementsOptNode {
3898        let mut builder = CstBuilder::new();
3899        let children = if let Some(child) = self.key_tuple_elements_tail {
3900            vec![builder.embed(child.builder)]
3901        } else {
3902            Vec::<BuilderNodeId>::new()
3903        };
3904        let node_id = builder.non_terminal(NonTerminalKind::KeyTupleElementsOpt, children);
3905        KeyTupleElementsOptNode { node_id, builder }
3906    }
3907}
3908#[derive(bon::Builder)]
3909pub struct KeyTupleElementsTailConstructor {
3910    comma: CommaNode,
3911    key_tuple_elements_tail_opt: KeyTupleElementsTailOptNode,
3912}
3913impl KeyTupleElementsTailConstructor {
3914    pub fn build(self) -> KeyTupleElementsTailNode {
3915        let mut builder = CstBuilder::new();
3916        let comma = builder.embed(self.comma.builder);
3917        let key_tuple_elements_tail_opt = builder.embed(self.key_tuple_elements_tail_opt.builder);
3918        let node_id = builder.non_terminal(
3919            NonTerminalKind::KeyTupleElementsTail,
3920            vec![comma, key_tuple_elements_tail_opt],
3921        );
3922        KeyTupleElementsTailNode { node_id, builder }
3923    }
3924}
3925#[derive(bon::Builder)]
3926pub struct KeyTupleElementsTailOptConstructor {
3927    key_tuple_elements: Option<KeyTupleElementsNode>,
3928}
3929impl KeyTupleElementsTailOptConstructor {
3930    pub fn build(self) -> KeyTupleElementsTailOptNode {
3931        let mut builder = CstBuilder::new();
3932        let children = if let Some(child) = self.key_tuple_elements {
3933            vec![builder.embed(child.builder)]
3934        } else {
3935            Vec::<BuilderNodeId>::new()
3936        };
3937        let node_id = builder.non_terminal(NonTerminalKind::KeyTupleElementsTailOpt, children);
3938        KeyTupleElementsTailOptNode { node_id, builder }
3939    }
3940}
3941#[derive(bon::Builder)]
3942pub struct KeyTupleOptConstructor {
3943    key_tuple_elements: Option<KeyTupleElementsNode>,
3944}
3945impl KeyTupleOptConstructor {
3946    pub fn build(self) -> KeyTupleOptNode {
3947        let mut builder = CstBuilder::new();
3948        let children = if let Some(child) = self.key_tuple_elements {
3949            vec![builder.embed(child.builder)]
3950        } else {
3951            Vec::<BuilderNodeId>::new()
3952        };
3953        let node_id = builder.non_terminal(NonTerminalKind::KeyTupleOpt, children);
3954        KeyTupleOptNode { node_id, builder }
3955    }
3956}
3957pub enum KeyValueConstructor {
3958    Integer(IntegerNode),
3959    Boolean(BooleanNode),
3960    Str(StrNode),
3961    KeyTuple(KeyTupleNode),
3962}
3963impl KeyValueConstructor {
3964    pub fn build(self) -> KeyValueNode {
3965        let mut builder = CstBuilder::new();
3966        let child_id = match self {
3967            Self::Integer(node) => builder.embed(node.builder),
3968            Self::Boolean(node) => builder.embed(node.builder),
3969            Self::Str(node) => builder.embed(node.builder),
3970            Self::KeyTuple(node) => builder.embed(node.builder),
3971        };
3972        let node_id = builder.non_terminal(NonTerminalKind::KeyValue, vec![child_id]);
3973        KeyValueNode { node_id, builder }
3974    }
3975}
3976#[derive(bon::Builder)]
3977pub struct KeysConstructor {
3978    key: KeyNode,
3979    keys_list: KeysListNode,
3980}
3981impl KeysConstructor {
3982    pub fn build(self) -> KeysNode {
3983        let mut builder = CstBuilder::new();
3984        let key = builder.embed(self.key.builder);
3985        let keys_list = builder.embed(self.keys_list.builder);
3986        let node_id = builder.non_terminal(NonTerminalKind::Keys, vec![key, keys_list]);
3987        KeysNode { node_id, builder }
3988    }
3989}
3990#[derive(bon::Builder)]
3991pub struct KeysListConstructor {
3992    dot: DotNode,
3993    key: KeyNode,
3994    keys_list: KeysListNode,
3995}
3996impl KeysListConstructor {
3997    /// Create an empty node (base case for recursion)
3998    pub fn empty() -> KeysListNode {
3999        let mut builder = CstBuilder::new();
4000        let node_id = builder.non_terminal(NonTerminalKind::KeysList, Vec::<BuilderNodeId>::new());
4001        KeysListNode { node_id, builder }
4002    }
4003    /// Create a node with children (recursive case)
4004    pub fn build(self) -> KeysListNode {
4005        let mut builder = CstBuilder::new();
4006        let dot = builder.embed(self.dot.builder);
4007        let key = builder.embed(self.key.builder);
4008        let keys_list = builder.embed(self.keys_list.builder);
4009        let node_id = builder.non_terminal(NonTerminalKind::KeysList, vec![dot, key, keys_list]);
4010        KeysListNode { node_id, builder }
4011    }
4012}
4013#[derive(bon::Builder)]
4014pub struct LParenConstructor {
4015    l_paren: LParenToken,
4016}
4017impl LParenConstructor {
4018    pub fn build(self) -> LParenNode {
4019        let mut builder = CstBuilder::new();
4020        let l_paren = builder.embed(self.l_paren.builder);
4021        let node_id = builder.non_terminal(NonTerminalKind::LParen, vec![l_paren]);
4022        LParenNode { node_id, builder }
4023    }
4024}
4025#[derive(bon::Builder)]
4026pub struct MapBindConstructor {
4027    map_bind: MapBindToken,
4028}
4029impl MapBindConstructor {
4030    pub fn build(self) -> MapBindNode {
4031        let mut builder = CstBuilder::new();
4032        let map_bind = builder.embed(self.map_bind.builder);
4033        let node_id = builder.non_terminal(NonTerminalKind::MapBind, vec![map_bind]);
4034        MapBindNode { node_id, builder }
4035    }
4036}
4037#[derive(bon::Builder)]
4038pub struct NaNConstructor {
4039    na_n: NaNToken,
4040}
4041impl NaNConstructor {
4042    pub fn build(self) -> NaNNode {
4043        let mut builder = CstBuilder::new();
4044        let na_n = builder.embed(self.na_n.builder);
4045        let node_id = builder.non_terminal(NonTerminalKind::NaN, vec![na_n]);
4046        NaNNode { node_id, builder }
4047    }
4048}
4049#[derive(bon::Builder)]
4050pub struct NoBacktickConstructor {
4051    no_backtick: NoBacktickToken,
4052}
4053impl NoBacktickConstructor {
4054    pub fn build(self) -> NoBacktickNode {
4055        let mut builder = CstBuilder::new();
4056        let no_backtick = builder.embed(self.no_backtick.builder);
4057        let node_id = builder.non_terminal(NonTerminalKind::NoBacktick, vec![no_backtick]);
4058        NoBacktickNode { node_id, builder }
4059    }
4060}
4061#[derive(bon::Builder)]
4062pub struct NoBacktickInlineConstructor {
4063    no_backtick_inline: NoBacktickInlineToken,
4064}
4065impl NoBacktickInlineConstructor {
4066    pub fn build(self) -> NoBacktickInlineNode {
4067        let mut builder = CstBuilder::new();
4068        let no_backtick_inline = builder.embed(self.no_backtick_inline.builder);
4069        let node_id =
4070            builder.non_terminal(NonTerminalKind::NoBacktickInline, vec![no_backtick_inline]);
4071        NoBacktickInlineNode { node_id, builder }
4072    }
4073}
4074#[derive(bon::Builder)]
4075pub struct NullConstructor {
4076    null: NullToken,
4077}
4078impl NullConstructor {
4079    pub fn build(self) -> NullNode {
4080        let mut builder = CstBuilder::new();
4081        let null = builder.embed(self.null.builder);
4082        let node_id = builder.non_terminal(NonTerminalKind::Null, vec![null]);
4083        NullNode { node_id, builder }
4084    }
4085}
4086pub enum NumberConstructor {
4087    Float(FloatNode),
4088    Integer(IntegerNode),
4089    Inf(InfNode),
4090    NaN(NaNNode),
4091}
4092impl NumberConstructor {
4093    pub fn build(self) -> NumberNode {
4094        let mut builder = CstBuilder::new();
4095        let child_id = match self {
4096            Self::Float(node) => builder.embed(node.builder),
4097            Self::Integer(node) => builder.embed(node.builder),
4098            Self::Inf(node) => builder.embed(node.builder),
4099            Self::NaN(node) => builder.embed(node.builder),
4100        };
4101        let node_id = builder.non_terminal(NonTerminalKind::Number, vec![child_id]);
4102        NumberNode { node_id, builder }
4103    }
4104}
4105#[derive(bon::Builder)]
4106pub struct ObjectConstructor {
4107    begin: BeginNode,
4108    object_opt: ObjectOptNode,
4109    object_list: ObjectListNode,
4110    end: EndNode,
4111}
4112impl ObjectConstructor {
4113    pub fn build(self) -> ObjectNode {
4114        let mut builder = CstBuilder::new();
4115        let begin = builder.embed(self.begin.builder);
4116        let object_opt = builder.embed(self.object_opt.builder);
4117        let object_list = builder.embed(self.object_list.builder);
4118        let end = builder.embed(self.end.builder);
4119        let node_id = builder.non_terminal(
4120            NonTerminalKind::Object,
4121            vec![begin, object_opt, object_list, end],
4122        );
4123        ObjectNode { node_id, builder }
4124    }
4125}
4126#[derive(bon::Builder)]
4127pub struct ObjectListConstructor {
4128    keys: KeysNode,
4129    map_bind: MapBindNode,
4130    value: ValueNode,
4131    object_opt_0: ObjectOpt0Node,
4132    object_list: ObjectListNode,
4133}
4134impl ObjectListConstructor {
4135    /// Create an empty node (base case for recursion)
4136    pub fn empty() -> ObjectListNode {
4137        let mut builder = CstBuilder::new();
4138        let node_id =
4139            builder.non_terminal(NonTerminalKind::ObjectList, Vec::<BuilderNodeId>::new());
4140        ObjectListNode { node_id, builder }
4141    }
4142    /// Create a node with children (recursive case)
4143    pub fn build(self) -> ObjectListNode {
4144        let mut builder = CstBuilder::new();
4145        let keys = builder.embed(self.keys.builder);
4146        let map_bind = builder.embed(self.map_bind.builder);
4147        let value = builder.embed(self.value.builder);
4148        let object_opt_0 = builder.embed(self.object_opt_0.builder);
4149        let object_list = builder.embed(self.object_list.builder);
4150        let node_id = builder.non_terminal(
4151            NonTerminalKind::ObjectList,
4152            vec![keys, map_bind, value, object_opt_0, object_list],
4153        );
4154        ObjectListNode { node_id, builder }
4155    }
4156}
4157#[derive(bon::Builder)]
4158pub struct ObjectOptConstructor {
4159    value_binding: ValueBindingNode,
4160    object_opt_1: ObjectOpt1Node,
4161}
4162impl ObjectOptConstructor {
4163    pub fn build(self) -> ObjectOptNode {
4164        let mut builder = CstBuilder::new();
4165        let value_binding = builder.embed(self.value_binding.builder);
4166        let object_opt_1 = builder.embed(self.object_opt_1.builder);
4167        let node_id = builder.non_terminal(
4168            NonTerminalKind::ObjectOpt,
4169            vec![value_binding, object_opt_1],
4170        );
4171        ObjectOptNode { node_id, builder }
4172    }
4173}
4174#[derive(bon::Builder)]
4175pub struct ObjectOpt0Constructor {
4176    comma: Option<CommaNode>,
4177}
4178impl ObjectOpt0Constructor {
4179    pub fn build(self) -> ObjectOpt0Node {
4180        let mut builder = CstBuilder::new();
4181        let children = if let Some(child) = self.comma {
4182            vec![builder.embed(child.builder)]
4183        } else {
4184            Vec::<BuilderNodeId>::new()
4185        };
4186        let node_id = builder.non_terminal(NonTerminalKind::ObjectOpt0, children);
4187        ObjectOpt0Node { node_id, builder }
4188    }
4189}
4190#[derive(bon::Builder)]
4191pub struct ObjectOpt1Constructor {
4192    comma: Option<CommaNode>,
4193}
4194impl ObjectOpt1Constructor {
4195    pub fn build(self) -> ObjectOpt1Node {
4196        let mut builder = CstBuilder::new();
4197        let children = if let Some(child) = self.comma {
4198            vec![builder.embed(child.builder)]
4199        } else {
4200            Vec::<BuilderNodeId>::new()
4201        };
4202        let node_id = builder.non_terminal(NonTerminalKind::ObjectOpt1, children);
4203        ObjectOpt1Node { node_id, builder }
4204    }
4205}
4206#[derive(bon::Builder)]
4207pub struct RParenConstructor {
4208    r_paren: RParenToken,
4209}
4210impl RParenConstructor {
4211    pub fn build(self) -> RParenNode {
4212        let mut builder = CstBuilder::new();
4213        let r_paren = builder.embed(self.r_paren.builder);
4214        let node_id = builder.non_terminal(NonTerminalKind::RParen, vec![r_paren]);
4215        RParenNode { node_id, builder }
4216    }
4217}
4218#[derive(bon::Builder)]
4219pub struct SectionConstructor {
4220    at: AtNode,
4221    keys: KeysNode,
4222    section_body: SectionBodyNode,
4223}
4224impl SectionConstructor {
4225    pub fn build(self) -> SectionNode {
4226        let mut builder = CstBuilder::new();
4227        let at = builder.embed(self.at.builder);
4228        let keys = builder.embed(self.keys.builder);
4229        let section_body = builder.embed(self.section_body.builder);
4230        let node_id = builder.non_terminal(NonTerminalKind::Section, vec![at, keys, section_body]);
4231        SectionNode { node_id, builder }
4232    }
4233}
4234#[derive(bon::Builder)]
4235pub struct SectionBindingConstructor {
4236    begin: BeginNode,
4237    eure: EureNode,
4238    end: EndNode,
4239}
4240impl SectionBindingConstructor {
4241    pub fn build(self) -> SectionBindingNode {
4242        let mut builder = CstBuilder::new();
4243        let begin = builder.embed(self.begin.builder);
4244        let eure = builder.embed(self.eure.builder);
4245        let end = builder.embed(self.end.builder);
4246        let node_id = builder.non_terminal(NonTerminalKind::SectionBinding, vec![begin, eure, end]);
4247        SectionBindingNode { node_id, builder }
4248    }
4249}
4250pub enum SectionBodyConstructor {
4251    SectionBodyOpt(SectionBodyOptNode),
4252    Begin(BeginNode),
4253}
4254impl SectionBodyConstructor {
4255    pub fn build(self) -> SectionBodyNode {
4256        let mut builder = CstBuilder::new();
4257        let child_id = match self {
4258            Self::SectionBodyOpt(node) => builder.embed(node.builder),
4259            Self::Begin(node) => builder.embed(node.builder),
4260        };
4261        let node_id = builder.non_terminal(NonTerminalKind::SectionBody, vec![child_id]);
4262        SectionBodyNode { node_id, builder }
4263    }
4264}
4265#[derive(bon::Builder)]
4266pub struct SectionBodyListConstructor {
4267    binding: BindingNode,
4268    section_body_list: SectionBodyListNode,
4269}
4270impl SectionBodyListConstructor {
4271    /// Create an empty node (base case for recursion)
4272    pub fn empty() -> SectionBodyListNode {
4273        let mut builder = CstBuilder::new();
4274        let node_id = builder.non_terminal(
4275            NonTerminalKind::SectionBodyList,
4276            Vec::<BuilderNodeId>::new(),
4277        );
4278        SectionBodyListNode { node_id, builder }
4279    }
4280    /// Create a node with children (recursive case)
4281    pub fn build(self) -> SectionBodyListNode {
4282        let mut builder = CstBuilder::new();
4283        let binding = builder.embed(self.binding.builder);
4284        let section_body_list = builder.embed(self.section_body_list.builder);
4285        let node_id = builder.non_terminal(
4286            NonTerminalKind::SectionBodyList,
4287            vec![binding, section_body_list],
4288        );
4289        SectionBodyListNode { node_id, builder }
4290    }
4291}
4292#[derive(bon::Builder)]
4293pub struct SectionBodyOptConstructor {
4294    value_binding: Option<ValueBindingNode>,
4295}
4296impl SectionBodyOptConstructor {
4297    pub fn build(self) -> SectionBodyOptNode {
4298        let mut builder = CstBuilder::new();
4299        let children = if let Some(child) = self.value_binding {
4300            vec![builder.embed(child.builder)]
4301        } else {
4302            Vec::<BuilderNodeId>::new()
4303        };
4304        let node_id = builder.non_terminal(NonTerminalKind::SectionBodyOpt, children);
4305        SectionBodyOptNode { node_id, builder }
4306    }
4307}
4308#[derive(bon::Builder)]
4309pub struct StrConstructor {
4310    str: StrToken,
4311}
4312impl StrConstructor {
4313    pub fn build(self) -> StrNode {
4314        let mut builder = CstBuilder::new();
4315        let str = builder.embed(self.str.builder);
4316        let node_id = builder.non_terminal(NonTerminalKind::Str, vec![str]);
4317        StrNode { node_id, builder }
4318    }
4319}
4320#[derive(bon::Builder)]
4321pub struct StringsConstructor {
4322    str: StrNode,
4323    strings_list: StringsListNode,
4324}
4325impl StringsConstructor {
4326    pub fn build(self) -> StringsNode {
4327        let mut builder = CstBuilder::new();
4328        let str = builder.embed(self.str.builder);
4329        let strings_list = builder.embed(self.strings_list.builder);
4330        let node_id = builder.non_terminal(NonTerminalKind::Strings, vec![str, strings_list]);
4331        StringsNode { node_id, builder }
4332    }
4333}
4334#[derive(bon::Builder)]
4335pub struct StringsListConstructor {
4336    r#continue: ContinueNode,
4337    str: StrNode,
4338    strings_list: StringsListNode,
4339}
4340impl StringsListConstructor {
4341    /// Create an empty node (base case for recursion)
4342    pub fn empty() -> StringsListNode {
4343        let mut builder = CstBuilder::new();
4344        let node_id =
4345            builder.non_terminal(NonTerminalKind::StringsList, Vec::<BuilderNodeId>::new());
4346        StringsListNode { node_id, builder }
4347    }
4348    /// Create a node with children (recursive case)
4349    pub fn build(self) -> StringsListNode {
4350        let mut builder = CstBuilder::new();
4351        let r#continue = builder.embed(self.r#continue.builder);
4352        let str = builder.embed(self.str.builder);
4353        let strings_list = builder.embed(self.strings_list.builder);
4354        let node_id = builder.non_terminal(
4355            NonTerminalKind::StringsList,
4356            vec![r#continue, str, strings_list],
4357        );
4358        StringsListNode { node_id, builder }
4359    }
4360}
4361#[derive(bon::Builder)]
4362pub struct TextConstructor {
4363    text: TextToken,
4364}
4365impl TextConstructor {
4366    pub fn build(self) -> TextNode {
4367        let mut builder = CstBuilder::new();
4368        let text = builder.embed(self.text.builder);
4369        let node_id = builder.non_terminal(NonTerminalKind::Text, vec![text]);
4370        TextNode { node_id, builder }
4371    }
4372}
4373#[derive(bon::Builder)]
4374pub struct TextBindingConstructor {
4375    text_start: TextStartNode,
4376    text_binding_opt: TextBindingOptNode,
4377    text: TextNode,
4378    text_binding_opt_0: TextBindingOpt0Node,
4379}
4380impl TextBindingConstructor {
4381    pub fn build(self) -> TextBindingNode {
4382        let mut builder = CstBuilder::new();
4383        let text_start = builder.embed(self.text_start.builder);
4384        let text_binding_opt = builder.embed(self.text_binding_opt.builder);
4385        let text = builder.embed(self.text.builder);
4386        let text_binding_opt_0 = builder.embed(self.text_binding_opt_0.builder);
4387        let node_id = builder.non_terminal(
4388            NonTerminalKind::TextBinding,
4389            vec![text_start, text_binding_opt, text, text_binding_opt_0],
4390        );
4391        TextBindingNode { node_id, builder }
4392    }
4393}
4394#[derive(bon::Builder)]
4395pub struct TextBindingOptConstructor {
4396    ws: Option<WsNode>,
4397}
4398impl TextBindingOptConstructor {
4399    pub fn build(self) -> TextBindingOptNode {
4400        let mut builder = CstBuilder::new();
4401        let children = if let Some(child) = self.ws {
4402            vec![builder.embed(child.builder)]
4403        } else {
4404            Vec::<BuilderNodeId>::new()
4405        };
4406        let node_id = builder.non_terminal(NonTerminalKind::TextBindingOpt, children);
4407        TextBindingOptNode { node_id, builder }
4408    }
4409}
4410#[derive(bon::Builder)]
4411pub struct TextBindingOpt0Constructor {
4412    grammar_newline: Option<GrammarNewlineNode>,
4413}
4414impl TextBindingOpt0Constructor {
4415    pub fn build(self) -> TextBindingOpt0Node {
4416        let mut builder = CstBuilder::new();
4417        let children = if let Some(child) = self.grammar_newline {
4418            vec![builder.embed(child.builder)]
4419        } else {
4420            Vec::<BuilderNodeId>::new()
4421        };
4422        let node_id = builder.non_terminal(NonTerminalKind::TextBindingOpt0, children);
4423        TextBindingOpt0Node { node_id, builder }
4424    }
4425}
4426#[derive(bon::Builder)]
4427pub struct TextStartConstructor {
4428    text_start: TextStartToken,
4429}
4430impl TextStartConstructor {
4431    pub fn build(self) -> TextStartNode {
4432        let mut builder = CstBuilder::new();
4433        let text_start = builder.embed(self.text_start.builder);
4434        let node_id = builder.non_terminal(NonTerminalKind::TextStart, vec![text_start]);
4435        TextStartNode { node_id, builder }
4436    }
4437}
4438#[derive(bon::Builder)]
4439pub struct TrueConstructor {
4440    r#true: TrueToken,
4441}
4442impl TrueConstructor {
4443    pub fn build(self) -> TrueNode {
4444        let mut builder = CstBuilder::new();
4445        let r#true = builder.embed(self.r#true.builder);
4446        let node_id = builder.non_terminal(NonTerminalKind::True, vec![r#true]);
4447        TrueNode { node_id, builder }
4448    }
4449}
4450#[derive(bon::Builder)]
4451pub struct TupleConstructor {
4452    l_paren: LParenNode,
4453    tuple_opt: TupleOptNode,
4454    r_paren: RParenNode,
4455}
4456impl TupleConstructor {
4457    pub fn build(self) -> TupleNode {
4458        let mut builder = CstBuilder::new();
4459        let l_paren = builder.embed(self.l_paren.builder);
4460        let tuple_opt = builder.embed(self.tuple_opt.builder);
4461        let r_paren = builder.embed(self.r_paren.builder);
4462        let node_id =
4463            builder.non_terminal(NonTerminalKind::Tuple, vec![l_paren, tuple_opt, r_paren]);
4464        TupleNode { node_id, builder }
4465    }
4466}
4467#[derive(bon::Builder)]
4468pub struct TupleElementsConstructor {
4469    value: ValueNode,
4470    tuple_elements_opt: TupleElementsOptNode,
4471}
4472impl TupleElementsConstructor {
4473    pub fn build(self) -> TupleElementsNode {
4474        let mut builder = CstBuilder::new();
4475        let value = builder.embed(self.value.builder);
4476        let tuple_elements_opt = builder.embed(self.tuple_elements_opt.builder);
4477        let node_id = builder.non_terminal(
4478            NonTerminalKind::TupleElements,
4479            vec![value, tuple_elements_opt],
4480        );
4481        TupleElementsNode { node_id, builder }
4482    }
4483}
4484#[derive(bon::Builder)]
4485pub struct TupleElementsOptConstructor {
4486    tuple_elements_tail: Option<TupleElementsTailNode>,
4487}
4488impl TupleElementsOptConstructor {
4489    pub fn build(self) -> TupleElementsOptNode {
4490        let mut builder = CstBuilder::new();
4491        let children = if let Some(child) = self.tuple_elements_tail {
4492            vec![builder.embed(child.builder)]
4493        } else {
4494            Vec::<BuilderNodeId>::new()
4495        };
4496        let node_id = builder.non_terminal(NonTerminalKind::TupleElementsOpt, children);
4497        TupleElementsOptNode { node_id, builder }
4498    }
4499}
4500#[derive(bon::Builder)]
4501pub struct TupleElementsTailConstructor {
4502    comma: CommaNode,
4503    tuple_elements_tail_opt: TupleElementsTailOptNode,
4504}
4505impl TupleElementsTailConstructor {
4506    pub fn build(self) -> TupleElementsTailNode {
4507        let mut builder = CstBuilder::new();
4508        let comma = builder.embed(self.comma.builder);
4509        let tuple_elements_tail_opt = builder.embed(self.tuple_elements_tail_opt.builder);
4510        let node_id = builder.non_terminal(
4511            NonTerminalKind::TupleElementsTail,
4512            vec![comma, tuple_elements_tail_opt],
4513        );
4514        TupleElementsTailNode { node_id, builder }
4515    }
4516}
4517#[derive(bon::Builder)]
4518pub struct TupleElementsTailOptConstructor {
4519    tuple_elements: Option<TupleElementsNode>,
4520}
4521impl TupleElementsTailOptConstructor {
4522    pub fn build(self) -> TupleElementsTailOptNode {
4523        let mut builder = CstBuilder::new();
4524        let children = if let Some(child) = self.tuple_elements {
4525            vec![builder.embed(child.builder)]
4526        } else {
4527            Vec::<BuilderNodeId>::new()
4528        };
4529        let node_id = builder.non_terminal(NonTerminalKind::TupleElementsTailOpt, children);
4530        TupleElementsTailOptNode { node_id, builder }
4531    }
4532}
4533#[derive(bon::Builder)]
4534pub struct TupleIndexConstructor {
4535    hash: HashToken,
4536    integer: IntegerNode,
4537}
4538impl TupleIndexConstructor {
4539    pub fn build(self) -> TupleIndexNode {
4540        let mut builder = CstBuilder::new();
4541        let hash = builder.embed(self.hash.builder);
4542        let integer = builder.embed(self.integer.builder);
4543        let node_id = builder.non_terminal(NonTerminalKind::TupleIndex, vec![hash, integer]);
4544        TupleIndexNode { node_id, builder }
4545    }
4546}
4547#[derive(bon::Builder)]
4548pub struct TupleOptConstructor {
4549    tuple_elements: Option<TupleElementsNode>,
4550}
4551impl TupleOptConstructor {
4552    pub fn build(self) -> TupleOptNode {
4553        let mut builder = CstBuilder::new();
4554        let children = if let Some(child) = self.tuple_elements {
4555            vec![builder.embed(child.builder)]
4556        } else {
4557            Vec::<BuilderNodeId>::new()
4558        };
4559        let node_id = builder.non_terminal(NonTerminalKind::TupleOpt, children);
4560        TupleOptNode { node_id, builder }
4561    }
4562}
4563pub enum ValueConstructor {
4564    Object(ObjectNode),
4565    Array(ArrayNode),
4566    Tuple(TupleNode),
4567    Number(NumberNode),
4568    Boolean(BooleanNode),
4569    Null(NullNode),
4570    Strings(StringsNode),
4571    Hole(HoleNode),
4572    CodeBlock(CodeBlockNode),
4573    InlineCode(InlineCodeNode),
4574}
4575impl ValueConstructor {
4576    pub fn build(self) -> ValueNode {
4577        let mut builder = CstBuilder::new();
4578        let child_id = match self {
4579            Self::Object(node) => builder.embed(node.builder),
4580            Self::Array(node) => builder.embed(node.builder),
4581            Self::Tuple(node) => builder.embed(node.builder),
4582            Self::Number(node) => builder.embed(node.builder),
4583            Self::Boolean(node) => builder.embed(node.builder),
4584            Self::Null(node) => builder.embed(node.builder),
4585            Self::Strings(node) => builder.embed(node.builder),
4586            Self::Hole(node) => builder.embed(node.builder),
4587            Self::CodeBlock(node) => builder.embed(node.builder),
4588            Self::InlineCode(node) => builder.embed(node.builder),
4589        };
4590        let node_id = builder.non_terminal(NonTerminalKind::Value, vec![child_id]);
4591        ValueNode { node_id, builder }
4592    }
4593}
4594#[derive(bon::Builder)]
4595pub struct ValueBindingConstructor {
4596    bind: BindNode,
4597    value: ValueNode,
4598}
4599impl ValueBindingConstructor {
4600    pub fn build(self) -> ValueBindingNode {
4601        let mut builder = CstBuilder::new();
4602        let bind = builder.embed(self.bind.builder);
4603        let value = builder.embed(self.value.builder);
4604        let node_id = builder.non_terminal(NonTerminalKind::ValueBinding, vec![bind, value]);
4605        ValueBindingNode { node_id, builder }
4606    }
4607}
4608#[derive(bon::Builder)]
4609pub struct WsConstructor {
4610    ws: WsToken,
4611}
4612impl WsConstructor {
4613    pub fn build(self) -> WsNode {
4614        let mut builder = CstBuilder::new();
4615        let ws = builder.embed(self.ws.builder);
4616        let node_id = builder.non_terminal(NonTerminalKind::Ws, vec![ws]);
4617        WsNode { node_id, builder }
4618    }
4619}
4620#[derive(bon::Builder)]
4621pub struct RootConstructor {
4622    eure: EureNode,
4623}
4624impl RootConstructor {
4625    pub fn build(self) -> RootNode {
4626        let mut builder = CstBuilder::new();
4627        let eure = builder.embed(self.eure.builder);
4628        let node_id = builder.non_terminal(NonTerminalKind::Root, vec![eure]);
4629        RootNode { node_id, builder }
4630    }
4631}
4632pub mod terminals {
4633    use super::*;
4634    pub fn hash() -> HashToken {
4635        let mut builder = CstBuilder::new();
4636        let node_id = builder.terminal(TerminalKind::Hash, "");
4637        HashToken { node_id, builder }
4638    }
4639    pub fn map_bind() -> MapBindToken {
4640        let mut builder = CstBuilder::new();
4641        let node_id = builder.terminal(TerminalKind::MapBind, "");
4642        MapBindToken { node_id, builder }
4643    }
4644    pub fn integer(value: &str) -> IntegerToken {
4645        let mut builder = CstBuilder::new();
4646        let node_id = builder.terminal(TerminalKind::Integer, value);
4647        IntegerToken { node_id, builder }
4648    }
4649    pub fn float() -> FloatToken {
4650        let mut builder = CstBuilder::new();
4651        let node_id = builder.terminal(TerminalKind::Float, "");
4652        FloatToken { node_id, builder }
4653    }
4654    pub fn inf() -> InfToken {
4655        let mut builder = CstBuilder::new();
4656        let node_id = builder.terminal(TerminalKind::Inf, "");
4657        InfToken { node_id, builder }
4658    }
4659    pub fn na_n() -> NaNToken {
4660        let mut builder = CstBuilder::new();
4661        let node_id = builder.terminal(TerminalKind::NaN, "");
4662        NaNToken { node_id, builder }
4663    }
4664    pub fn r#true() -> TrueToken {
4665        let mut builder = CstBuilder::new();
4666        let node_id = builder.terminal(TerminalKind::True, "true");
4667        TrueToken { node_id, builder }
4668    }
4669    pub fn r#false() -> FalseToken {
4670        let mut builder = CstBuilder::new();
4671        let node_id = builder.terminal(TerminalKind::False, "false");
4672        FalseToken { node_id, builder }
4673    }
4674    pub fn null() -> NullToken {
4675        let mut builder = CstBuilder::new();
4676        let node_id = builder.terminal(TerminalKind::Null, "null");
4677        NullToken { node_id, builder }
4678    }
4679    pub fn hole() -> HoleToken {
4680        let mut builder = CstBuilder::new();
4681        let node_id = builder.terminal(TerminalKind::Hole, "!");
4682        HoleToken { node_id, builder }
4683    }
4684    pub fn str(value: &str) -> StrToken {
4685        let mut builder = CstBuilder::new();
4686        let node_id = builder.terminal(TerminalKind::Str, value);
4687        StrToken { node_id, builder }
4688    }
4689    pub fn text(value: &str) -> TextToken {
4690        let mut builder = CstBuilder::new();
4691        let node_id = builder.terminal(TerminalKind::Text, value);
4692        TextToken { node_id, builder }
4693    }
4694    pub fn inline_code_1() -> InlineCode1Token {
4695        let mut builder = CstBuilder::new();
4696        let node_id = builder.terminal(TerminalKind::InlineCode1, "");
4697        InlineCode1Token { node_id, builder }
4698    }
4699    pub fn inline_code_start_2() -> InlineCodeStart2Token {
4700        let mut builder = CstBuilder::new();
4701        let node_id = builder.terminal(TerminalKind::InlineCodeStart2, "");
4702        InlineCodeStart2Token { node_id, builder }
4703    }
4704    pub fn code_block_start_3() -> CodeBlockStart3Token {
4705        let mut builder = CstBuilder::new();
4706        let node_id = builder.terminal(TerminalKind::CodeBlockStart3, "");
4707        CodeBlockStart3Token { node_id, builder }
4708    }
4709    pub fn code_block_start_4() -> CodeBlockStart4Token {
4710        let mut builder = CstBuilder::new();
4711        let node_id = builder.terminal(TerminalKind::CodeBlockStart4, "");
4712        CodeBlockStart4Token { node_id, builder }
4713    }
4714    pub fn code_block_start_5() -> CodeBlockStart5Token {
4715        let mut builder = CstBuilder::new();
4716        let node_id = builder.terminal(TerminalKind::CodeBlockStart5, "");
4717        CodeBlockStart5Token { node_id, builder }
4718    }
4719    pub fn code_block_start_6() -> CodeBlockStart6Token {
4720        let mut builder = CstBuilder::new();
4721        let node_id = builder.terminal(TerminalKind::CodeBlockStart6, "");
4722        CodeBlockStart6Token { node_id, builder }
4723    }
4724    pub fn code_block_end_3() -> CodeBlockEnd3Token {
4725        let mut builder = CstBuilder::new();
4726        let node_id = builder.terminal(TerminalKind::CodeBlockEnd3, "");
4727        CodeBlockEnd3Token { node_id, builder }
4728    }
4729    pub fn backtick_2() -> Backtick2Token {
4730        let mut builder = CstBuilder::new();
4731        let node_id = builder.terminal(TerminalKind::Backtick2, "");
4732        Backtick2Token { node_id, builder }
4733    }
4734    pub fn code_block_end_4() -> CodeBlockEnd4Token {
4735        let mut builder = CstBuilder::new();
4736        let node_id = builder.terminal(TerminalKind::CodeBlockEnd4, "");
4737        CodeBlockEnd4Token { node_id, builder }
4738    }
4739    pub fn backtick_3() -> Backtick3Token {
4740        let mut builder = CstBuilder::new();
4741        let node_id = builder.terminal(TerminalKind::Backtick3, "");
4742        Backtick3Token { node_id, builder }
4743    }
4744    pub fn code_block_end_5() -> CodeBlockEnd5Token {
4745        let mut builder = CstBuilder::new();
4746        let node_id = builder.terminal(TerminalKind::CodeBlockEnd5, "");
4747        CodeBlockEnd5Token { node_id, builder }
4748    }
4749    pub fn backtick_4() -> Backtick4Token {
4750        let mut builder = CstBuilder::new();
4751        let node_id = builder.terminal(TerminalKind::Backtick4, "");
4752        Backtick4Token { node_id, builder }
4753    }
4754    pub fn code_block_end_6() -> CodeBlockEnd6Token {
4755        let mut builder = CstBuilder::new();
4756        let node_id = builder.terminal(TerminalKind::CodeBlockEnd6, "");
4757        CodeBlockEnd6Token { node_id, builder }
4758    }
4759    pub fn backtick_5() -> Backtick5Token {
4760        let mut builder = CstBuilder::new();
4761        let node_id = builder.terminal(TerminalKind::Backtick5, "");
4762        Backtick5Token { node_id, builder }
4763    }
4764    pub fn inline_code_end_2() -> InlineCodeEnd2Token {
4765        let mut builder = CstBuilder::new();
4766        let node_id = builder.terminal(TerminalKind::InlineCodeEnd2, "");
4767        InlineCodeEnd2Token { node_id, builder }
4768    }
4769    pub fn backtick_1() -> Backtick1Token {
4770        let mut builder = CstBuilder::new();
4771        let node_id = builder.terminal(TerminalKind::Backtick1, "");
4772        Backtick1Token { node_id, builder }
4773    }
4774    pub fn no_backtick() -> NoBacktickToken {
4775        let mut builder = CstBuilder::new();
4776        let node_id = builder.terminal(TerminalKind::NoBacktick, "");
4777        NoBacktickToken { node_id, builder }
4778    }
4779    pub fn no_backtick_inline() -> NoBacktickInlineToken {
4780        let mut builder = CstBuilder::new();
4781        let node_id = builder.terminal(TerminalKind::NoBacktickInline, "");
4782        NoBacktickInlineToken { node_id, builder }
4783    }
4784    pub fn grammar_newline() -> GrammarNewlineToken {
4785        let mut builder = CstBuilder::new();
4786        let node_id = builder.terminal(TerminalKind::GrammarNewline, "\n");
4787        GrammarNewlineToken { node_id, builder }
4788    }
4789    pub fn ws() -> WsToken {
4790        let mut builder = CstBuilder::new();
4791        let node_id = builder.terminal(TerminalKind::Ws, " ");
4792        WsToken { node_id, builder }
4793    }
4794    pub fn at() -> AtToken {
4795        let mut builder = CstBuilder::new();
4796        let node_id = builder.terminal(TerminalKind::At, "@");
4797        AtToken { node_id, builder }
4798    }
4799    pub fn dollar() -> DollarToken {
4800        let mut builder = CstBuilder::new();
4801        let node_id = builder.terminal(TerminalKind::Dollar, "$");
4802        DollarToken { node_id, builder }
4803    }
4804    pub fn dot() -> DotToken {
4805        let mut builder = CstBuilder::new();
4806        let node_id = builder.terminal(TerminalKind::Dot, ".");
4807        DotToken { node_id, builder }
4808    }
4809    pub fn l_brace() -> LBraceToken {
4810        let mut builder = CstBuilder::new();
4811        let node_id = builder.terminal(TerminalKind::LBrace, "{");
4812        LBraceToken { node_id, builder }
4813    }
4814    pub fn r_brace() -> RBraceToken {
4815        let mut builder = CstBuilder::new();
4816        let node_id = builder.terminal(TerminalKind::RBrace, "}");
4817        RBraceToken { node_id, builder }
4818    }
4819    pub fn l_bracket() -> LBracketToken {
4820        let mut builder = CstBuilder::new();
4821        let node_id = builder.terminal(TerminalKind::LBracket, "[");
4822        LBracketToken { node_id, builder }
4823    }
4824    pub fn r_bracket() -> RBracketToken {
4825        let mut builder = CstBuilder::new();
4826        let node_id = builder.terminal(TerminalKind::RBracket, "]");
4827        RBracketToken { node_id, builder }
4828    }
4829    pub fn l_paren() -> LParenToken {
4830        let mut builder = CstBuilder::new();
4831        let node_id = builder.terminal(TerminalKind::LParen, "");
4832        LParenToken { node_id, builder }
4833    }
4834    pub fn r_paren() -> RParenToken {
4835        let mut builder = CstBuilder::new();
4836        let node_id = builder.terminal(TerminalKind::RParen, "");
4837        RParenToken { node_id, builder }
4838    }
4839    pub fn bind() -> BindToken {
4840        let mut builder = CstBuilder::new();
4841        let node_id = builder.terminal(TerminalKind::Bind, "=");
4842        BindToken { node_id, builder }
4843    }
4844    pub fn comma() -> CommaToken {
4845        let mut builder = CstBuilder::new();
4846        let node_id = builder.terminal(TerminalKind::Comma, ",");
4847        CommaToken { node_id, builder }
4848    }
4849    pub fn esc() -> EscToken {
4850        let mut builder = CstBuilder::new();
4851        let node_id = builder.terminal(TerminalKind::Esc, "\\\\");
4852        EscToken { node_id, builder }
4853    }
4854    pub fn text_start() -> TextStartToken {
4855        let mut builder = CstBuilder::new();
4856        let node_id = builder.terminal(TerminalKind::TextStart, "");
4857        TextStartToken { node_id, builder }
4858    }
4859    pub fn ident(name: &str) -> IdentToken {
4860        let mut builder = CstBuilder::new();
4861        let node_id = builder.terminal(TerminalKind::Ident, name);
4862        IdentToken { node_id, builder }
4863    }
4864}