Skip to main content

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 LitStr terminal
193#[derive(Debug, Clone)]
194pub struct LitStrToken {
195    pub(super) node_id: BuilderNodeId,
196    pub(super) builder: CstBuilder,
197}
198impl LitStrToken {
199    /// Consume this token and return its builder
200    pub fn into_builder(self) -> CstBuilder {
201        self.builder
202    }
203}
204impl From<LitStrToken> for BuilderNodeId {
205    fn from(token: LitStrToken) -> Self {
206        token.node_id
207    }
208}
209///Branded type for Text terminal
210#[derive(Debug, Clone)]
211pub struct TextToken {
212    pub(super) node_id: BuilderNodeId,
213    pub(super) builder: CstBuilder,
214}
215impl TextToken {
216    /// Consume this token and return its builder
217    pub fn into_builder(self) -> CstBuilder {
218        self.builder
219    }
220}
221impl From<TextToken> for BuilderNodeId {
222    fn from(token: TextToken) -> Self {
223        token.node_id
224    }
225}
226///Branded type for InlineCode1 terminal
227#[derive(Debug, Clone)]
228pub struct InlineCode1Token {
229    pub(super) node_id: BuilderNodeId,
230    pub(super) builder: CstBuilder,
231}
232impl InlineCode1Token {
233    /// Consume this token and return its builder
234    pub fn into_builder(self) -> CstBuilder {
235        self.builder
236    }
237}
238impl From<InlineCode1Token> for BuilderNodeId {
239    fn from(token: InlineCode1Token) -> Self {
240        token.node_id
241    }
242}
243///Branded type for LitStr3Start terminal
244#[derive(Debug, Clone)]
245pub struct LitStr3StartToken {
246    pub(super) node_id: BuilderNodeId,
247    pub(super) builder: CstBuilder,
248}
249impl LitStr3StartToken {
250    /// Consume this token and return its builder
251    pub fn into_builder(self) -> CstBuilder {
252        self.builder
253    }
254}
255impl From<LitStr3StartToken> for BuilderNodeId {
256    fn from(token: LitStr3StartToken) -> Self {
257        token.node_id
258    }
259}
260///Branded type for LitStr2Start terminal
261#[derive(Debug, Clone)]
262pub struct LitStr2StartToken {
263    pub(super) node_id: BuilderNodeId,
264    pub(super) builder: CstBuilder,
265}
266impl LitStr2StartToken {
267    /// Consume this token and return its builder
268    pub fn into_builder(self) -> CstBuilder {
269        self.builder
270    }
271}
272impl From<LitStr2StartToken> for BuilderNodeId {
273    fn from(token: LitStr2StartToken) -> Self {
274        token.node_id
275    }
276}
277///Branded type for LitStr1Start terminal
278#[derive(Debug, Clone)]
279pub struct LitStr1StartToken {
280    pub(super) node_id: BuilderNodeId,
281    pub(super) builder: CstBuilder,
282}
283impl LitStr1StartToken {
284    /// Consume this token and return its builder
285    pub fn into_builder(self) -> CstBuilder {
286        self.builder
287    }
288}
289impl From<LitStr1StartToken> for BuilderNodeId {
290    fn from(token: LitStr1StartToken) -> Self {
291        token.node_id
292    }
293}
294///Branded type for DelimCodeStart3 terminal
295#[derive(Debug, Clone)]
296pub struct DelimCodeStart3Token {
297    pub(super) node_id: BuilderNodeId,
298    pub(super) builder: CstBuilder,
299}
300impl DelimCodeStart3Token {
301    /// Consume this token and return its builder
302    pub fn into_builder(self) -> CstBuilder {
303        self.builder
304    }
305}
306impl From<DelimCodeStart3Token> for BuilderNodeId {
307    fn from(token: DelimCodeStart3Token) -> Self {
308        token.node_id
309    }
310}
311///Branded type for DelimCodeStart2 terminal
312#[derive(Debug, Clone)]
313pub struct DelimCodeStart2Token {
314    pub(super) node_id: BuilderNodeId,
315    pub(super) builder: CstBuilder,
316}
317impl DelimCodeStart2Token {
318    /// Consume this token and return its builder
319    pub fn into_builder(self) -> CstBuilder {
320        self.builder
321    }
322}
323impl From<DelimCodeStart2Token> for BuilderNodeId {
324    fn from(token: DelimCodeStart2Token) -> Self {
325        token.node_id
326    }
327}
328///Branded type for DelimCodeStart1 terminal
329#[derive(Debug, Clone)]
330pub struct DelimCodeStart1Token {
331    pub(super) node_id: BuilderNodeId,
332    pub(super) builder: CstBuilder,
333}
334impl DelimCodeStart1Token {
335    /// Consume this token and return its builder
336    pub fn into_builder(self) -> CstBuilder {
337        self.builder
338    }
339}
340impl From<DelimCodeStart1Token> for BuilderNodeId {
341    fn from(token: DelimCodeStart1Token) -> Self {
342        token.node_id
343    }
344}
345///Branded type for CodeBlockStart3 terminal
346#[derive(Debug, Clone)]
347pub struct CodeBlockStart3Token {
348    pub(super) node_id: BuilderNodeId,
349    pub(super) builder: CstBuilder,
350}
351impl CodeBlockStart3Token {
352    /// Consume this token and return its builder
353    pub fn into_builder(self) -> CstBuilder {
354        self.builder
355    }
356}
357impl From<CodeBlockStart3Token> for BuilderNodeId {
358    fn from(token: CodeBlockStart3Token) -> Self {
359        token.node_id
360    }
361}
362///Branded type for CodeBlockStart4 terminal
363#[derive(Debug, Clone)]
364pub struct CodeBlockStart4Token {
365    pub(super) node_id: BuilderNodeId,
366    pub(super) builder: CstBuilder,
367}
368impl CodeBlockStart4Token {
369    /// Consume this token and return its builder
370    pub fn into_builder(self) -> CstBuilder {
371        self.builder
372    }
373}
374impl From<CodeBlockStart4Token> for BuilderNodeId {
375    fn from(token: CodeBlockStart4Token) -> Self {
376        token.node_id
377    }
378}
379///Branded type for CodeBlockStart5 terminal
380#[derive(Debug, Clone)]
381pub struct CodeBlockStart5Token {
382    pub(super) node_id: BuilderNodeId,
383    pub(super) builder: CstBuilder,
384}
385impl CodeBlockStart5Token {
386    /// Consume this token and return its builder
387    pub fn into_builder(self) -> CstBuilder {
388        self.builder
389    }
390}
391impl From<CodeBlockStart5Token> for BuilderNodeId {
392    fn from(token: CodeBlockStart5Token) -> Self {
393        token.node_id
394    }
395}
396///Branded type for CodeBlockStart6 terminal
397#[derive(Debug, Clone)]
398pub struct CodeBlockStart6Token {
399    pub(super) node_id: BuilderNodeId,
400    pub(super) builder: CstBuilder,
401}
402impl CodeBlockStart6Token {
403    /// Consume this token and return its builder
404    pub fn into_builder(self) -> CstBuilder {
405        self.builder
406    }
407}
408impl From<CodeBlockStart6Token> for BuilderNodeId {
409    fn from(token: CodeBlockStart6Token) -> Self {
410        token.node_id
411    }
412}
413///Branded type for CodeBlockEnd3 terminal
414#[derive(Debug, Clone)]
415pub struct CodeBlockEnd3Token {
416    pub(super) node_id: BuilderNodeId,
417    pub(super) builder: CstBuilder,
418}
419impl CodeBlockEnd3Token {
420    /// Consume this token and return its builder
421    pub fn into_builder(self) -> CstBuilder {
422        self.builder
423    }
424}
425impl From<CodeBlockEnd3Token> for BuilderNodeId {
426    fn from(token: CodeBlockEnd3Token) -> Self {
427        token.node_id
428    }
429}
430///Branded type for Backtick2 terminal
431#[derive(Debug, Clone)]
432pub struct Backtick2Token {
433    pub(super) node_id: BuilderNodeId,
434    pub(super) builder: CstBuilder,
435}
436impl Backtick2Token {
437    /// Consume this token and return its builder
438    pub fn into_builder(self) -> CstBuilder {
439        self.builder
440    }
441}
442impl From<Backtick2Token> for BuilderNodeId {
443    fn from(token: Backtick2Token) -> Self {
444        token.node_id
445    }
446}
447///Branded type for CodeBlockEnd4 terminal
448#[derive(Debug, Clone)]
449pub struct CodeBlockEnd4Token {
450    pub(super) node_id: BuilderNodeId,
451    pub(super) builder: CstBuilder,
452}
453impl CodeBlockEnd4Token {
454    /// Consume this token and return its builder
455    pub fn into_builder(self) -> CstBuilder {
456        self.builder
457    }
458}
459impl From<CodeBlockEnd4Token> for BuilderNodeId {
460    fn from(token: CodeBlockEnd4Token) -> Self {
461        token.node_id
462    }
463}
464///Branded type for Backtick3 terminal
465#[derive(Debug, Clone)]
466pub struct Backtick3Token {
467    pub(super) node_id: BuilderNodeId,
468    pub(super) builder: CstBuilder,
469}
470impl Backtick3Token {
471    /// Consume this token and return its builder
472    pub fn into_builder(self) -> CstBuilder {
473        self.builder
474    }
475}
476impl From<Backtick3Token> for BuilderNodeId {
477    fn from(token: Backtick3Token) -> Self {
478        token.node_id
479    }
480}
481///Branded type for CodeBlockEnd5 terminal
482#[derive(Debug, Clone)]
483pub struct CodeBlockEnd5Token {
484    pub(super) node_id: BuilderNodeId,
485    pub(super) builder: CstBuilder,
486}
487impl CodeBlockEnd5Token {
488    /// Consume this token and return its builder
489    pub fn into_builder(self) -> CstBuilder {
490        self.builder
491    }
492}
493impl From<CodeBlockEnd5Token> for BuilderNodeId {
494    fn from(token: CodeBlockEnd5Token) -> Self {
495        token.node_id
496    }
497}
498///Branded type for Backtick4 terminal
499#[derive(Debug, Clone)]
500pub struct Backtick4Token {
501    pub(super) node_id: BuilderNodeId,
502    pub(super) builder: CstBuilder,
503}
504impl Backtick4Token {
505    /// Consume this token and return its builder
506    pub fn into_builder(self) -> CstBuilder {
507        self.builder
508    }
509}
510impl From<Backtick4Token> for BuilderNodeId {
511    fn from(token: Backtick4Token) -> Self {
512        token.node_id
513    }
514}
515///Branded type for CodeBlockEnd6 terminal
516#[derive(Debug, Clone)]
517pub struct CodeBlockEnd6Token {
518    pub(super) node_id: BuilderNodeId,
519    pub(super) builder: CstBuilder,
520}
521impl CodeBlockEnd6Token {
522    /// Consume this token and return its builder
523    pub fn into_builder(self) -> CstBuilder {
524        self.builder
525    }
526}
527impl From<CodeBlockEnd6Token> for BuilderNodeId {
528    fn from(token: CodeBlockEnd6Token) -> Self {
529        token.node_id
530    }
531}
532///Branded type for Backtick5 terminal
533#[derive(Debug, Clone)]
534pub struct Backtick5Token {
535    pub(super) node_id: BuilderNodeId,
536    pub(super) builder: CstBuilder,
537}
538impl Backtick5Token {
539    /// Consume this token and return its builder
540    pub fn into_builder(self) -> CstBuilder {
541        self.builder
542    }
543}
544impl From<Backtick5Token> for BuilderNodeId {
545    fn from(token: Backtick5Token) -> Self {
546        token.node_id
547    }
548}
549///Branded type for NoBacktick terminal
550#[derive(Debug, Clone)]
551pub struct NoBacktickToken {
552    pub(super) node_id: BuilderNodeId,
553    pub(super) builder: CstBuilder,
554}
555impl NoBacktickToken {
556    /// Consume this token and return its builder
557    pub fn into_builder(self) -> CstBuilder {
558        self.builder
559    }
560}
561impl From<NoBacktickToken> for BuilderNodeId {
562    fn from(token: NoBacktickToken) -> Self {
563        token.node_id
564    }
565}
566///Branded type for LitStr3End terminal
567#[derive(Debug, Clone)]
568pub struct LitStr3EndToken {
569    pub(super) node_id: BuilderNodeId,
570    pub(super) builder: CstBuilder,
571}
572impl LitStr3EndToken {
573    /// Consume this token and return its builder
574    pub fn into_builder(self) -> CstBuilder {
575        self.builder
576    }
577}
578impl From<LitStr3EndToken> for BuilderNodeId {
579    fn from(token: LitStr3EndToken) -> Self {
580        token.node_id
581    }
582}
583///Branded type for LitStr2End terminal
584#[derive(Debug, Clone)]
585pub struct LitStr2EndToken {
586    pub(super) node_id: BuilderNodeId,
587    pub(super) builder: CstBuilder,
588}
589impl LitStr2EndToken {
590    /// Consume this token and return its builder
591    pub fn into_builder(self) -> CstBuilder {
592        self.builder
593    }
594}
595impl From<LitStr2EndToken> for BuilderNodeId {
596    fn from(token: LitStr2EndToken) -> Self {
597        token.node_id
598    }
599}
600///Branded type for LitStr1End terminal
601#[derive(Debug, Clone)]
602pub struct LitStr1EndToken {
603    pub(super) node_id: BuilderNodeId,
604    pub(super) builder: CstBuilder,
605}
606impl LitStr1EndToken {
607    /// Consume this token and return its builder
608    pub fn into_builder(self) -> CstBuilder {
609        self.builder
610    }
611}
612impl From<LitStr1EndToken> for BuilderNodeId {
613    fn from(token: LitStr1EndToken) -> Self {
614        token.node_id
615    }
616}
617///Branded type for SQuote terminal
618#[derive(Debug, Clone)]
619pub struct SQuoteToken {
620    pub(super) node_id: BuilderNodeId,
621    pub(super) builder: CstBuilder,
622}
623impl SQuoteToken {
624    /// Consume this token and return its builder
625    pub fn into_builder(self) -> CstBuilder {
626        self.builder
627    }
628}
629impl From<SQuoteToken> for BuilderNodeId {
630    fn from(token: SQuoteToken) -> Self {
631        token.node_id
632    }
633}
634///Branded type for NoSQuote terminal
635#[derive(Debug, Clone)]
636pub struct NoSQuoteToken {
637    pub(super) node_id: BuilderNodeId,
638    pub(super) builder: CstBuilder,
639}
640impl NoSQuoteToken {
641    /// Consume this token and return its builder
642    pub fn into_builder(self) -> CstBuilder {
643        self.builder
644    }
645}
646impl From<NoSQuoteToken> for BuilderNodeId {
647    fn from(token: NoSQuoteToken) -> Self {
648        token.node_id
649    }
650}
651///Branded type for DelimCodeEnd3 terminal
652#[derive(Debug, Clone)]
653pub struct DelimCodeEnd3Token {
654    pub(super) node_id: BuilderNodeId,
655    pub(super) builder: CstBuilder,
656}
657impl DelimCodeEnd3Token {
658    /// Consume this token and return its builder
659    pub fn into_builder(self) -> CstBuilder {
660        self.builder
661    }
662}
663impl From<DelimCodeEnd3Token> for BuilderNodeId {
664    fn from(token: DelimCodeEnd3Token) -> Self {
665        token.node_id
666    }
667}
668///Branded type for DelimCodeEnd2 terminal
669#[derive(Debug, Clone)]
670pub struct DelimCodeEnd2Token {
671    pub(super) node_id: BuilderNodeId,
672    pub(super) builder: CstBuilder,
673}
674impl DelimCodeEnd2Token {
675    /// Consume this token and return its builder
676    pub fn into_builder(self) -> CstBuilder {
677        self.builder
678    }
679}
680impl From<DelimCodeEnd2Token> for BuilderNodeId {
681    fn from(token: DelimCodeEnd2Token) -> Self {
682        token.node_id
683    }
684}
685///Branded type for DelimCodeEnd1 terminal
686#[derive(Debug, Clone)]
687pub struct DelimCodeEnd1Token {
688    pub(super) node_id: BuilderNodeId,
689    pub(super) builder: CstBuilder,
690}
691impl DelimCodeEnd1Token {
692    /// Consume this token and return its builder
693    pub fn into_builder(self) -> CstBuilder {
694        self.builder
695    }
696}
697impl From<DelimCodeEnd1Token> for BuilderNodeId {
698    fn from(token: DelimCodeEnd1Token) -> Self {
699        token.node_id
700    }
701}
702///Branded type for BacktickDelim terminal
703#[derive(Debug, Clone)]
704pub struct BacktickDelimToken {
705    pub(super) node_id: BuilderNodeId,
706    pub(super) builder: CstBuilder,
707}
708impl BacktickDelimToken {
709    /// Consume this token and return its builder
710    pub fn into_builder(self) -> CstBuilder {
711        self.builder
712    }
713}
714impl From<BacktickDelimToken> for BuilderNodeId {
715    fn from(token: BacktickDelimToken) -> Self {
716        token.node_id
717    }
718}
719///Branded type for GrammarNewline terminal
720#[derive(Debug, Clone)]
721pub struct GrammarNewlineToken {
722    pub(super) node_id: BuilderNodeId,
723    pub(super) builder: CstBuilder,
724}
725impl GrammarNewlineToken {
726    /// Consume this token and return its builder
727    pub fn into_builder(self) -> CstBuilder {
728        self.builder
729    }
730}
731impl From<GrammarNewlineToken> for BuilderNodeId {
732    fn from(token: GrammarNewlineToken) -> Self {
733        token.node_id
734    }
735}
736///Branded type for Ws terminal
737#[derive(Debug, Clone)]
738pub struct WsToken {
739    pub(super) node_id: BuilderNodeId,
740    pub(super) builder: CstBuilder,
741}
742impl WsToken {
743    /// Consume this token and return its builder
744    pub fn into_builder(self) -> CstBuilder {
745        self.builder
746    }
747}
748impl From<WsToken> for BuilderNodeId {
749    fn from(token: WsToken) -> Self {
750        token.node_id
751    }
752}
753///Branded type for At terminal
754#[derive(Debug, Clone)]
755pub struct AtToken {
756    pub(super) node_id: BuilderNodeId,
757    pub(super) builder: CstBuilder,
758}
759impl AtToken {
760    /// Consume this token and return its builder
761    pub fn into_builder(self) -> CstBuilder {
762        self.builder
763    }
764}
765impl From<AtToken> for BuilderNodeId {
766    fn from(token: AtToken) -> Self {
767        token.node_id
768    }
769}
770///Branded type for Dollar terminal
771#[derive(Debug, Clone)]
772pub struct DollarToken {
773    pub(super) node_id: BuilderNodeId,
774    pub(super) builder: CstBuilder,
775}
776impl DollarToken {
777    /// Consume this token and return its builder
778    pub fn into_builder(self) -> CstBuilder {
779        self.builder
780    }
781}
782impl From<DollarToken> for BuilderNodeId {
783    fn from(token: DollarToken) -> Self {
784        token.node_id
785    }
786}
787///Branded type for Dot terminal
788#[derive(Debug, Clone)]
789pub struct DotToken {
790    pub(super) node_id: BuilderNodeId,
791    pub(super) builder: CstBuilder,
792}
793impl DotToken {
794    /// Consume this token and return its builder
795    pub fn into_builder(self) -> CstBuilder {
796        self.builder
797    }
798}
799impl From<DotToken> for BuilderNodeId {
800    fn from(token: DotToken) -> Self {
801        token.node_id
802    }
803}
804///Branded type for LBrace terminal
805#[derive(Debug, Clone)]
806pub struct LBraceToken {
807    pub(super) node_id: BuilderNodeId,
808    pub(super) builder: CstBuilder,
809}
810impl LBraceToken {
811    /// Consume this token and return its builder
812    pub fn into_builder(self) -> CstBuilder {
813        self.builder
814    }
815}
816impl From<LBraceToken> for BuilderNodeId {
817    fn from(token: LBraceToken) -> Self {
818        token.node_id
819    }
820}
821///Branded type for RBrace terminal
822#[derive(Debug, Clone)]
823pub struct RBraceToken {
824    pub(super) node_id: BuilderNodeId,
825    pub(super) builder: CstBuilder,
826}
827impl RBraceToken {
828    /// Consume this token and return its builder
829    pub fn into_builder(self) -> CstBuilder {
830        self.builder
831    }
832}
833impl From<RBraceToken> for BuilderNodeId {
834    fn from(token: RBraceToken) -> Self {
835        token.node_id
836    }
837}
838///Branded type for LBracket terminal
839#[derive(Debug, Clone)]
840pub struct LBracketToken {
841    pub(super) node_id: BuilderNodeId,
842    pub(super) builder: CstBuilder,
843}
844impl LBracketToken {
845    /// Consume this token and return its builder
846    pub fn into_builder(self) -> CstBuilder {
847        self.builder
848    }
849}
850impl From<LBracketToken> for BuilderNodeId {
851    fn from(token: LBracketToken) -> Self {
852        token.node_id
853    }
854}
855///Branded type for RBracket terminal
856#[derive(Debug, Clone)]
857pub struct RBracketToken {
858    pub(super) node_id: BuilderNodeId,
859    pub(super) builder: CstBuilder,
860}
861impl RBracketToken {
862    /// Consume this token and return its builder
863    pub fn into_builder(self) -> CstBuilder {
864        self.builder
865    }
866}
867impl From<RBracketToken> for BuilderNodeId {
868    fn from(token: RBracketToken) -> Self {
869        token.node_id
870    }
871}
872///Branded type for Circumflex terminal
873#[derive(Debug, Clone)]
874pub struct CircumflexToken {
875    pub(super) node_id: BuilderNodeId,
876    pub(super) builder: CstBuilder,
877}
878impl CircumflexToken {
879    /// Consume this token and return its builder
880    pub fn into_builder(self) -> CstBuilder {
881        self.builder
882    }
883}
884impl From<CircumflexToken> for BuilderNodeId {
885    fn from(token: CircumflexToken) -> Self {
886        token.node_id
887    }
888}
889///Branded type for LParen terminal
890#[derive(Debug, Clone)]
891pub struct LParenToken {
892    pub(super) node_id: BuilderNodeId,
893    pub(super) builder: CstBuilder,
894}
895impl LParenToken {
896    /// Consume this token and return its builder
897    pub fn into_builder(self) -> CstBuilder {
898        self.builder
899    }
900}
901impl From<LParenToken> for BuilderNodeId {
902    fn from(token: LParenToken) -> Self {
903        token.node_id
904    }
905}
906///Branded type for RParen terminal
907#[derive(Debug, Clone)]
908pub struct RParenToken {
909    pub(super) node_id: BuilderNodeId,
910    pub(super) builder: CstBuilder,
911}
912impl RParenToken {
913    /// Consume this token and return its builder
914    pub fn into_builder(self) -> CstBuilder {
915        self.builder
916    }
917}
918impl From<RParenToken> for BuilderNodeId {
919    fn from(token: RParenToken) -> Self {
920        token.node_id
921    }
922}
923///Branded type for NewlineBind terminal
924#[derive(Debug, Clone)]
925pub struct NewlineBindToken {
926    pub(super) node_id: BuilderNodeId,
927    pub(super) builder: CstBuilder,
928}
929impl NewlineBindToken {
930    /// Consume this token and return its builder
931    pub fn into_builder(self) -> CstBuilder {
932        self.builder
933    }
934}
935impl From<NewlineBindToken> for BuilderNodeId {
936    fn from(token: NewlineBindToken) -> Self {
937        token.node_id
938    }
939}
940///Branded type for Bind terminal
941#[derive(Debug, Clone)]
942pub struct BindToken {
943    pub(super) node_id: BuilderNodeId,
944    pub(super) builder: CstBuilder,
945}
946impl BindToken {
947    /// Consume this token and return its builder
948    pub fn into_builder(self) -> CstBuilder {
949        self.builder
950    }
951}
952impl From<BindToken> for BuilderNodeId {
953    fn from(token: BindToken) -> Self {
954        token.node_id
955    }
956}
957///Branded type for Comma terminal
958#[derive(Debug, Clone)]
959pub struct CommaToken {
960    pub(super) node_id: BuilderNodeId,
961    pub(super) builder: CstBuilder,
962}
963impl CommaToken {
964    /// Consume this token and return its builder
965    pub fn into_builder(self) -> CstBuilder {
966        self.builder
967    }
968}
969impl From<CommaToken> for BuilderNodeId {
970    fn from(token: CommaToken) -> Self {
971        token.node_id
972    }
973}
974///Branded type for Esc terminal
975#[derive(Debug, Clone)]
976pub struct EscToken {
977    pub(super) node_id: BuilderNodeId,
978    pub(super) builder: CstBuilder,
979}
980impl EscToken {
981    /// Consume this token and return its builder
982    pub fn into_builder(self) -> CstBuilder {
983        self.builder
984    }
985}
986impl From<EscToken> for BuilderNodeId {
987    fn from(token: EscToken) -> Self {
988        token.node_id
989    }
990}
991///Branded type for NewlineTextStart terminal
992#[derive(Debug, Clone)]
993pub struct NewlineTextStartToken {
994    pub(super) node_id: BuilderNodeId,
995    pub(super) builder: CstBuilder,
996}
997impl NewlineTextStartToken {
998    /// Consume this token and return its builder
999    pub fn into_builder(self) -> CstBuilder {
1000        self.builder
1001    }
1002}
1003impl From<NewlineTextStartToken> for BuilderNodeId {
1004    fn from(token: NewlineTextStartToken) -> Self {
1005        token.node_id
1006    }
1007}
1008///Branded type for TextStart terminal
1009#[derive(Debug, Clone)]
1010pub struct TextStartToken {
1011    pub(super) node_id: BuilderNodeId,
1012    pub(super) builder: CstBuilder,
1013}
1014impl TextStartToken {
1015    /// Consume this token and return its builder
1016    pub fn into_builder(self) -> CstBuilder {
1017        self.builder
1018    }
1019}
1020impl From<TextStartToken> for BuilderNodeId {
1021    fn from(token: TextStartToken) -> Self {
1022        token.node_id
1023    }
1024}
1025///Branded type for Ident terminal
1026#[derive(Debug, Clone)]
1027pub struct IdentToken {
1028    pub(super) node_id: BuilderNodeId,
1029    pub(super) builder: CstBuilder,
1030}
1031impl IdentToken {
1032    /// Consume this token and return its builder
1033    pub fn into_builder(self) -> CstBuilder {
1034        self.builder
1035    }
1036}
1037impl From<IdentToken> for BuilderNodeId {
1038    fn from(token: IdentToken) -> Self {
1039        token.node_id
1040    }
1041}
1042///Branded type for Array non-terminal
1043#[derive(Debug, Clone)]
1044pub struct ArrayNode {
1045    pub(super) node_id: BuilderNodeId,
1046    pub(super) builder: CstBuilder,
1047}
1048impl ArrayNode {
1049    /// Consume this node and return its builder
1050    pub fn into_builder(self) -> CstBuilder {
1051        self.builder
1052    }
1053}
1054impl From<ArrayNode> for BuilderNodeId {
1055    fn from(node: ArrayNode) -> Self {
1056        node.node_id
1057    }
1058}
1059///Branded type for ArrayBegin non-terminal
1060#[derive(Debug, Clone)]
1061pub struct ArrayBeginNode {
1062    pub(super) node_id: BuilderNodeId,
1063    pub(super) builder: CstBuilder,
1064}
1065impl ArrayBeginNode {
1066    /// Consume this node and return its builder
1067    pub fn into_builder(self) -> CstBuilder {
1068        self.builder
1069    }
1070}
1071impl From<ArrayBeginNode> for BuilderNodeId {
1072    fn from(node: ArrayBeginNode) -> Self {
1073        node.node_id
1074    }
1075}
1076///Branded type for ArrayElements non-terminal
1077#[derive(Debug, Clone)]
1078pub struct ArrayElementsNode {
1079    pub(super) node_id: BuilderNodeId,
1080    pub(super) builder: CstBuilder,
1081}
1082impl ArrayElementsNode {
1083    /// Consume this node and return its builder
1084    pub fn into_builder(self) -> CstBuilder {
1085        self.builder
1086    }
1087}
1088impl From<ArrayElementsNode> for BuilderNodeId {
1089    fn from(node: ArrayElementsNode) -> Self {
1090        node.node_id
1091    }
1092}
1093///Branded type for ArrayElementsOpt non-terminal
1094#[derive(Debug, Clone)]
1095pub struct ArrayElementsOptNode {
1096    pub(super) node_id: BuilderNodeId,
1097    pub(super) builder: CstBuilder,
1098}
1099impl ArrayElementsOptNode {
1100    /// Consume this node and return its builder
1101    pub fn into_builder(self) -> CstBuilder {
1102        self.builder
1103    }
1104}
1105impl From<ArrayElementsOptNode> for BuilderNodeId {
1106    fn from(node: ArrayElementsOptNode) -> Self {
1107        node.node_id
1108    }
1109}
1110///Branded type for ArrayElementsTail non-terminal
1111#[derive(Debug, Clone)]
1112pub struct ArrayElementsTailNode {
1113    pub(super) node_id: BuilderNodeId,
1114    pub(super) builder: CstBuilder,
1115}
1116impl ArrayElementsTailNode {
1117    /// Consume this node and return its builder
1118    pub fn into_builder(self) -> CstBuilder {
1119        self.builder
1120    }
1121}
1122impl From<ArrayElementsTailNode> for BuilderNodeId {
1123    fn from(node: ArrayElementsTailNode) -> Self {
1124        node.node_id
1125    }
1126}
1127///Branded type for ArrayElementsTailOpt non-terminal
1128#[derive(Debug, Clone)]
1129pub struct ArrayElementsTailOptNode {
1130    pub(super) node_id: BuilderNodeId,
1131    pub(super) builder: CstBuilder,
1132}
1133impl ArrayElementsTailOptNode {
1134    /// Consume this node and return its builder
1135    pub fn into_builder(self) -> CstBuilder {
1136        self.builder
1137    }
1138}
1139impl From<ArrayElementsTailOptNode> for BuilderNodeId {
1140    fn from(node: ArrayElementsTailOptNode) -> Self {
1141        node.node_id
1142    }
1143}
1144///Branded type for ArrayEnd non-terminal
1145#[derive(Debug, Clone)]
1146pub struct ArrayEndNode {
1147    pub(super) node_id: BuilderNodeId,
1148    pub(super) builder: CstBuilder,
1149}
1150impl ArrayEndNode {
1151    /// Consume this node and return its builder
1152    pub fn into_builder(self) -> CstBuilder {
1153        self.builder
1154    }
1155}
1156impl From<ArrayEndNode> for BuilderNodeId {
1157    fn from(node: ArrayEndNode) -> Self {
1158        node.node_id
1159    }
1160}
1161///Branded type for ArrayMarker non-terminal
1162#[derive(Debug, Clone)]
1163pub struct ArrayMarkerNode {
1164    pub(super) node_id: BuilderNodeId,
1165    pub(super) builder: CstBuilder,
1166}
1167impl ArrayMarkerNode {
1168    /// Consume this node and return its builder
1169    pub fn into_builder(self) -> CstBuilder {
1170        self.builder
1171    }
1172}
1173impl From<ArrayMarkerNode> for BuilderNodeId {
1174    fn from(node: ArrayMarkerNode) -> Self {
1175        node.node_id
1176    }
1177}
1178///Branded type for ArrayMarkerOpt non-terminal
1179#[derive(Debug, Clone)]
1180pub struct ArrayMarkerOptNode {
1181    pub(super) node_id: BuilderNodeId,
1182    pub(super) builder: CstBuilder,
1183}
1184impl ArrayMarkerOptNode {
1185    /// Consume this node and return its builder
1186    pub fn into_builder(self) -> CstBuilder {
1187        self.builder
1188    }
1189}
1190impl From<ArrayMarkerOptNode> for BuilderNodeId {
1191    fn from(node: ArrayMarkerOptNode) -> Self {
1192        node.node_id
1193    }
1194}
1195///Branded type for ArrayMarkerOptGroup non-terminal
1196#[derive(Debug, Clone)]
1197pub struct ArrayMarkerOptGroupNode {
1198    pub(super) node_id: BuilderNodeId,
1199    pub(super) builder: CstBuilder,
1200}
1201impl ArrayMarkerOptGroupNode {
1202    /// Consume this node and return its builder
1203    pub fn into_builder(self) -> CstBuilder {
1204        self.builder
1205    }
1206}
1207impl From<ArrayMarkerOptGroupNode> for BuilderNodeId {
1208    fn from(node: ArrayMarkerOptGroupNode) -> Self {
1209        node.node_id
1210    }
1211}
1212///Branded type for ArrayOpt non-terminal
1213#[derive(Debug, Clone)]
1214pub struct ArrayOptNode {
1215    pub(super) node_id: BuilderNodeId,
1216    pub(super) builder: CstBuilder,
1217}
1218impl ArrayOptNode {
1219    /// Consume this node and return its builder
1220    pub fn into_builder(self) -> CstBuilder {
1221        self.builder
1222    }
1223}
1224impl From<ArrayOptNode> for BuilderNodeId {
1225    fn from(node: ArrayOptNode) -> Self {
1226        node.node_id
1227    }
1228}
1229///Branded type for At non-terminal
1230#[derive(Debug, Clone)]
1231pub struct AtNode {
1232    pub(super) node_id: BuilderNodeId,
1233    pub(super) builder: CstBuilder,
1234}
1235impl AtNode {
1236    /// Consume this node and return its builder
1237    pub fn into_builder(self) -> CstBuilder {
1238        self.builder
1239    }
1240}
1241impl From<AtNode> for BuilderNodeId {
1242    fn from(node: AtNode) -> Self {
1243        node.node_id
1244    }
1245}
1246///Branded type for Backtick2 non-terminal
1247#[derive(Debug, Clone)]
1248pub struct Backtick2Node {
1249    pub(super) node_id: BuilderNodeId,
1250    pub(super) builder: CstBuilder,
1251}
1252impl Backtick2Node {
1253    /// Consume this node and return its builder
1254    pub fn into_builder(self) -> CstBuilder {
1255        self.builder
1256    }
1257}
1258impl From<Backtick2Node> for BuilderNodeId {
1259    fn from(node: Backtick2Node) -> Self {
1260        node.node_id
1261    }
1262}
1263///Branded type for Backtick3 non-terminal
1264#[derive(Debug, Clone)]
1265pub struct Backtick3Node {
1266    pub(super) node_id: BuilderNodeId,
1267    pub(super) builder: CstBuilder,
1268}
1269impl Backtick3Node {
1270    /// Consume this node and return its builder
1271    pub fn into_builder(self) -> CstBuilder {
1272        self.builder
1273    }
1274}
1275impl From<Backtick3Node> for BuilderNodeId {
1276    fn from(node: Backtick3Node) -> Self {
1277        node.node_id
1278    }
1279}
1280///Branded type for Backtick4 non-terminal
1281#[derive(Debug, Clone)]
1282pub struct Backtick4Node {
1283    pub(super) node_id: BuilderNodeId,
1284    pub(super) builder: CstBuilder,
1285}
1286impl Backtick4Node {
1287    /// Consume this node and return its builder
1288    pub fn into_builder(self) -> CstBuilder {
1289        self.builder
1290    }
1291}
1292impl From<Backtick4Node> for BuilderNodeId {
1293    fn from(node: Backtick4Node) -> Self {
1294        node.node_id
1295    }
1296}
1297///Branded type for Backtick5 non-terminal
1298#[derive(Debug, Clone)]
1299pub struct Backtick5Node {
1300    pub(super) node_id: BuilderNodeId,
1301    pub(super) builder: CstBuilder,
1302}
1303impl Backtick5Node {
1304    /// Consume this node and return its builder
1305    pub fn into_builder(self) -> CstBuilder {
1306        self.builder
1307    }
1308}
1309impl From<Backtick5Node> for BuilderNodeId {
1310    fn from(node: Backtick5Node) -> Self {
1311        node.node_id
1312    }
1313}
1314///Branded type for BacktickDelim non-terminal
1315#[derive(Debug, Clone)]
1316pub struct BacktickDelimNode {
1317    pub(super) node_id: BuilderNodeId,
1318    pub(super) builder: CstBuilder,
1319}
1320impl BacktickDelimNode {
1321    /// Consume this node and return its builder
1322    pub fn into_builder(self) -> CstBuilder {
1323        self.builder
1324    }
1325}
1326impl From<BacktickDelimNode> for BuilderNodeId {
1327    fn from(node: BacktickDelimNode) -> Self {
1328        node.node_id
1329    }
1330}
1331///Branded type for Begin non-terminal
1332#[derive(Debug, Clone)]
1333pub struct BeginNode {
1334    pub(super) node_id: BuilderNodeId,
1335    pub(super) builder: CstBuilder,
1336}
1337impl BeginNode {
1338    /// Consume this node and return its builder
1339    pub fn into_builder(self) -> CstBuilder {
1340        self.builder
1341    }
1342}
1343impl From<BeginNode> for BuilderNodeId {
1344    fn from(node: BeginNode) -> Self {
1345        node.node_id
1346    }
1347}
1348///Branded type for Bind non-terminal
1349#[derive(Debug, Clone)]
1350pub struct BindNode {
1351    pub(super) node_id: BuilderNodeId,
1352    pub(super) builder: CstBuilder,
1353}
1354impl BindNode {
1355    /// Consume this node and return its builder
1356    pub fn into_builder(self) -> CstBuilder {
1357        self.builder
1358    }
1359}
1360impl From<BindNode> for BuilderNodeId {
1361    fn from(node: BindNode) -> Self {
1362        node.node_id
1363    }
1364}
1365///Branded type for Binding non-terminal
1366#[derive(Debug, Clone)]
1367pub struct BindingNode {
1368    pub(super) node_id: BuilderNodeId,
1369    pub(super) builder: CstBuilder,
1370}
1371impl BindingNode {
1372    /// Consume this node and return its builder
1373    pub fn into_builder(self) -> CstBuilder {
1374        self.builder
1375    }
1376}
1377impl From<BindingNode> for BuilderNodeId {
1378    fn from(node: BindingNode) -> Self {
1379        node.node_id
1380    }
1381}
1382///Branded type for BindingRhs non-terminal
1383#[derive(Debug, Clone)]
1384pub struct BindingRhsNode {
1385    pub(super) node_id: BuilderNodeId,
1386    pub(super) builder: CstBuilder,
1387}
1388impl BindingRhsNode {
1389    /// Consume this node and return its builder
1390    pub fn into_builder(self) -> CstBuilder {
1391        self.builder
1392    }
1393}
1394impl From<BindingRhsNode> for BuilderNodeId {
1395    fn from(node: BindingRhsNode) -> Self {
1396        node.node_id
1397    }
1398}
1399///Branded type for BlockBody non-terminal
1400#[derive(Debug, Clone)]
1401pub struct BlockBodyNode {
1402    pub(super) node_id: BuilderNodeId,
1403    pub(super) builder: CstBuilder,
1404}
1405impl BlockBodyNode {
1406    /// Consume this node and return its builder
1407    pub fn into_builder(self) -> CstBuilder {
1408        self.builder
1409    }
1410}
1411impl From<BlockBodyNode> for BuilderNodeId {
1412    fn from(node: BlockBodyNode) -> Self {
1413        node.node_id
1414    }
1415}
1416///Branded type for Boolean non-terminal
1417#[derive(Debug, Clone)]
1418pub struct BooleanNode {
1419    pub(super) node_id: BuilderNodeId,
1420    pub(super) builder: CstBuilder,
1421}
1422impl BooleanNode {
1423    /// Consume this node and return its builder
1424    pub fn into_builder(self) -> CstBuilder {
1425        self.builder
1426    }
1427}
1428impl From<BooleanNode> for BuilderNodeId {
1429    fn from(node: BooleanNode) -> Self {
1430        node.node_id
1431    }
1432}
1433///Branded type for Caret non-terminal
1434#[derive(Debug, Clone)]
1435pub struct CaretNode {
1436    pub(super) node_id: BuilderNodeId,
1437    pub(super) builder: CstBuilder,
1438}
1439impl CaretNode {
1440    /// Consume this node and return its builder
1441    pub fn into_builder(self) -> CstBuilder {
1442        self.builder
1443    }
1444}
1445impl From<CaretNode> for BuilderNodeId {
1446    fn from(node: CaretNode) -> Self {
1447        node.node_id
1448    }
1449}
1450///Branded type for CodeBlock non-terminal
1451#[derive(Debug, Clone)]
1452pub struct CodeBlockNode {
1453    pub(super) node_id: BuilderNodeId,
1454    pub(super) builder: CstBuilder,
1455}
1456impl CodeBlockNode {
1457    /// Consume this node and return its builder
1458    pub fn into_builder(self) -> CstBuilder {
1459        self.builder
1460    }
1461}
1462impl From<CodeBlockNode> for BuilderNodeId {
1463    fn from(node: CodeBlockNode) -> Self {
1464        node.node_id
1465    }
1466}
1467///Branded type for CodeBlock3 non-terminal
1468#[derive(Debug, Clone)]
1469pub struct CodeBlock3Node {
1470    pub(super) node_id: BuilderNodeId,
1471    pub(super) builder: CstBuilder,
1472}
1473impl CodeBlock3Node {
1474    /// Consume this node and return its builder
1475    pub fn into_builder(self) -> CstBuilder {
1476        self.builder
1477    }
1478}
1479impl From<CodeBlock3Node> for BuilderNodeId {
1480    fn from(node: CodeBlock3Node) -> Self {
1481        node.node_id
1482    }
1483}
1484///Branded type for CodeBlock3List non-terminal
1485#[derive(Debug, Clone)]
1486pub struct CodeBlock3ListNode {
1487    pub(super) node_id: BuilderNodeId,
1488    pub(super) builder: CstBuilder,
1489}
1490impl CodeBlock3ListNode {
1491    /// Consume this node and return its builder
1492    pub fn into_builder(self) -> CstBuilder {
1493        self.builder
1494    }
1495}
1496impl From<CodeBlock3ListNode> for BuilderNodeId {
1497    fn from(node: CodeBlock3ListNode) -> Self {
1498        node.node_id
1499    }
1500}
1501///Branded type for CodeBlock3ListGroup non-terminal
1502#[derive(Debug, Clone)]
1503pub struct CodeBlock3ListGroupNode {
1504    pub(super) node_id: BuilderNodeId,
1505    pub(super) builder: CstBuilder,
1506}
1507impl CodeBlock3ListGroupNode {
1508    /// Consume this node and return its builder
1509    pub fn into_builder(self) -> CstBuilder {
1510        self.builder
1511    }
1512}
1513impl From<CodeBlock3ListGroupNode> for BuilderNodeId {
1514    fn from(node: CodeBlock3ListGroupNode) -> Self {
1515        node.node_id
1516    }
1517}
1518///Branded type for CodeBlock4 non-terminal
1519#[derive(Debug, Clone)]
1520pub struct CodeBlock4Node {
1521    pub(super) node_id: BuilderNodeId,
1522    pub(super) builder: CstBuilder,
1523}
1524impl CodeBlock4Node {
1525    /// Consume this node and return its builder
1526    pub fn into_builder(self) -> CstBuilder {
1527        self.builder
1528    }
1529}
1530impl From<CodeBlock4Node> for BuilderNodeId {
1531    fn from(node: CodeBlock4Node) -> Self {
1532        node.node_id
1533    }
1534}
1535///Branded type for CodeBlock4List non-terminal
1536#[derive(Debug, Clone)]
1537pub struct CodeBlock4ListNode {
1538    pub(super) node_id: BuilderNodeId,
1539    pub(super) builder: CstBuilder,
1540}
1541impl CodeBlock4ListNode {
1542    /// Consume this node and return its builder
1543    pub fn into_builder(self) -> CstBuilder {
1544        self.builder
1545    }
1546}
1547impl From<CodeBlock4ListNode> for BuilderNodeId {
1548    fn from(node: CodeBlock4ListNode) -> Self {
1549        node.node_id
1550    }
1551}
1552///Branded type for CodeBlock4ListGroup non-terminal
1553#[derive(Debug, Clone)]
1554pub struct CodeBlock4ListGroupNode {
1555    pub(super) node_id: BuilderNodeId,
1556    pub(super) builder: CstBuilder,
1557}
1558impl CodeBlock4ListGroupNode {
1559    /// Consume this node and return its builder
1560    pub fn into_builder(self) -> CstBuilder {
1561        self.builder
1562    }
1563}
1564impl From<CodeBlock4ListGroupNode> for BuilderNodeId {
1565    fn from(node: CodeBlock4ListGroupNode) -> Self {
1566        node.node_id
1567    }
1568}
1569///Branded type for CodeBlock5 non-terminal
1570#[derive(Debug, Clone)]
1571pub struct CodeBlock5Node {
1572    pub(super) node_id: BuilderNodeId,
1573    pub(super) builder: CstBuilder,
1574}
1575impl CodeBlock5Node {
1576    /// Consume this node and return its builder
1577    pub fn into_builder(self) -> CstBuilder {
1578        self.builder
1579    }
1580}
1581impl From<CodeBlock5Node> for BuilderNodeId {
1582    fn from(node: CodeBlock5Node) -> Self {
1583        node.node_id
1584    }
1585}
1586///Branded type for CodeBlock5List non-terminal
1587#[derive(Debug, Clone)]
1588pub struct CodeBlock5ListNode {
1589    pub(super) node_id: BuilderNodeId,
1590    pub(super) builder: CstBuilder,
1591}
1592impl CodeBlock5ListNode {
1593    /// Consume this node and return its builder
1594    pub fn into_builder(self) -> CstBuilder {
1595        self.builder
1596    }
1597}
1598impl From<CodeBlock5ListNode> for BuilderNodeId {
1599    fn from(node: CodeBlock5ListNode) -> Self {
1600        node.node_id
1601    }
1602}
1603///Branded type for CodeBlock5ListGroup non-terminal
1604#[derive(Debug, Clone)]
1605pub struct CodeBlock5ListGroupNode {
1606    pub(super) node_id: BuilderNodeId,
1607    pub(super) builder: CstBuilder,
1608}
1609impl CodeBlock5ListGroupNode {
1610    /// Consume this node and return its builder
1611    pub fn into_builder(self) -> CstBuilder {
1612        self.builder
1613    }
1614}
1615impl From<CodeBlock5ListGroupNode> for BuilderNodeId {
1616    fn from(node: CodeBlock5ListGroupNode) -> Self {
1617        node.node_id
1618    }
1619}
1620///Branded type for CodeBlock6 non-terminal
1621#[derive(Debug, Clone)]
1622pub struct CodeBlock6Node {
1623    pub(super) node_id: BuilderNodeId,
1624    pub(super) builder: CstBuilder,
1625}
1626impl CodeBlock6Node {
1627    /// Consume this node and return its builder
1628    pub fn into_builder(self) -> CstBuilder {
1629        self.builder
1630    }
1631}
1632impl From<CodeBlock6Node> for BuilderNodeId {
1633    fn from(node: CodeBlock6Node) -> Self {
1634        node.node_id
1635    }
1636}
1637///Branded type for CodeBlock6List non-terminal
1638#[derive(Debug, Clone)]
1639pub struct CodeBlock6ListNode {
1640    pub(super) node_id: BuilderNodeId,
1641    pub(super) builder: CstBuilder,
1642}
1643impl CodeBlock6ListNode {
1644    /// Consume this node and return its builder
1645    pub fn into_builder(self) -> CstBuilder {
1646        self.builder
1647    }
1648}
1649impl From<CodeBlock6ListNode> for BuilderNodeId {
1650    fn from(node: CodeBlock6ListNode) -> Self {
1651        node.node_id
1652    }
1653}
1654///Branded type for CodeBlock6ListGroup non-terminal
1655#[derive(Debug, Clone)]
1656pub struct CodeBlock6ListGroupNode {
1657    pub(super) node_id: BuilderNodeId,
1658    pub(super) builder: CstBuilder,
1659}
1660impl CodeBlock6ListGroupNode {
1661    /// Consume this node and return its builder
1662    pub fn into_builder(self) -> CstBuilder {
1663        self.builder
1664    }
1665}
1666impl From<CodeBlock6ListGroupNode> for BuilderNodeId {
1667    fn from(node: CodeBlock6ListGroupNode) -> Self {
1668        node.node_id
1669    }
1670}
1671///Branded type for CodeBlockEnd3 non-terminal
1672#[derive(Debug, Clone)]
1673pub struct CodeBlockEnd3Node {
1674    pub(super) node_id: BuilderNodeId,
1675    pub(super) builder: CstBuilder,
1676}
1677impl CodeBlockEnd3Node {
1678    /// Consume this node and return its builder
1679    pub fn into_builder(self) -> CstBuilder {
1680        self.builder
1681    }
1682}
1683impl From<CodeBlockEnd3Node> for BuilderNodeId {
1684    fn from(node: CodeBlockEnd3Node) -> Self {
1685        node.node_id
1686    }
1687}
1688///Branded type for CodeBlockEnd4 non-terminal
1689#[derive(Debug, Clone)]
1690pub struct CodeBlockEnd4Node {
1691    pub(super) node_id: BuilderNodeId,
1692    pub(super) builder: CstBuilder,
1693}
1694impl CodeBlockEnd4Node {
1695    /// Consume this node and return its builder
1696    pub fn into_builder(self) -> CstBuilder {
1697        self.builder
1698    }
1699}
1700impl From<CodeBlockEnd4Node> for BuilderNodeId {
1701    fn from(node: CodeBlockEnd4Node) -> Self {
1702        node.node_id
1703    }
1704}
1705///Branded type for CodeBlockEnd5 non-terminal
1706#[derive(Debug, Clone)]
1707pub struct CodeBlockEnd5Node {
1708    pub(super) node_id: BuilderNodeId,
1709    pub(super) builder: CstBuilder,
1710}
1711impl CodeBlockEnd5Node {
1712    /// Consume this node and return its builder
1713    pub fn into_builder(self) -> CstBuilder {
1714        self.builder
1715    }
1716}
1717impl From<CodeBlockEnd5Node> for BuilderNodeId {
1718    fn from(node: CodeBlockEnd5Node) -> Self {
1719        node.node_id
1720    }
1721}
1722///Branded type for CodeBlockEnd6 non-terminal
1723#[derive(Debug, Clone)]
1724pub struct CodeBlockEnd6Node {
1725    pub(super) node_id: BuilderNodeId,
1726    pub(super) builder: CstBuilder,
1727}
1728impl CodeBlockEnd6Node {
1729    /// Consume this node and return its builder
1730    pub fn into_builder(self) -> CstBuilder {
1731        self.builder
1732    }
1733}
1734impl From<CodeBlockEnd6Node> for BuilderNodeId {
1735    fn from(node: CodeBlockEnd6Node) -> Self {
1736        node.node_id
1737    }
1738}
1739///Branded type for CodeBlockStart3 non-terminal
1740#[derive(Debug, Clone)]
1741pub struct CodeBlockStart3Node {
1742    pub(super) node_id: BuilderNodeId,
1743    pub(super) builder: CstBuilder,
1744}
1745impl CodeBlockStart3Node {
1746    /// Consume this node and return its builder
1747    pub fn into_builder(self) -> CstBuilder {
1748        self.builder
1749    }
1750}
1751impl From<CodeBlockStart3Node> for BuilderNodeId {
1752    fn from(node: CodeBlockStart3Node) -> Self {
1753        node.node_id
1754    }
1755}
1756///Branded type for CodeBlockStart4 non-terminal
1757#[derive(Debug, Clone)]
1758pub struct CodeBlockStart4Node {
1759    pub(super) node_id: BuilderNodeId,
1760    pub(super) builder: CstBuilder,
1761}
1762impl CodeBlockStart4Node {
1763    /// Consume this node and return its builder
1764    pub fn into_builder(self) -> CstBuilder {
1765        self.builder
1766    }
1767}
1768impl From<CodeBlockStart4Node> for BuilderNodeId {
1769    fn from(node: CodeBlockStart4Node) -> Self {
1770        node.node_id
1771    }
1772}
1773///Branded type for CodeBlockStart5 non-terminal
1774#[derive(Debug, Clone)]
1775pub struct CodeBlockStart5Node {
1776    pub(super) node_id: BuilderNodeId,
1777    pub(super) builder: CstBuilder,
1778}
1779impl CodeBlockStart5Node {
1780    /// Consume this node and return its builder
1781    pub fn into_builder(self) -> CstBuilder {
1782        self.builder
1783    }
1784}
1785impl From<CodeBlockStart5Node> for BuilderNodeId {
1786    fn from(node: CodeBlockStart5Node) -> Self {
1787        node.node_id
1788    }
1789}
1790///Branded type for CodeBlockStart6 non-terminal
1791#[derive(Debug, Clone)]
1792pub struct CodeBlockStart6Node {
1793    pub(super) node_id: BuilderNodeId,
1794    pub(super) builder: CstBuilder,
1795}
1796impl CodeBlockStart6Node {
1797    /// Consume this node and return its builder
1798    pub fn into_builder(self) -> CstBuilder {
1799        self.builder
1800    }
1801}
1802impl From<CodeBlockStart6Node> for BuilderNodeId {
1803    fn from(node: CodeBlockStart6Node) -> Self {
1804        node.node_id
1805    }
1806}
1807///Branded type for Comma non-terminal
1808#[derive(Debug, Clone)]
1809pub struct CommaNode {
1810    pub(super) node_id: BuilderNodeId,
1811    pub(super) builder: CstBuilder,
1812}
1813impl CommaNode {
1814    /// Consume this node and return its builder
1815    pub fn into_builder(self) -> CstBuilder {
1816        self.builder
1817    }
1818}
1819impl From<CommaNode> for BuilderNodeId {
1820    fn from(node: CommaNode) -> Self {
1821        node.node_id
1822    }
1823}
1824///Branded type for Continue non-terminal
1825#[derive(Debug, Clone)]
1826pub struct ContinueNode {
1827    pub(super) node_id: BuilderNodeId,
1828    pub(super) builder: CstBuilder,
1829}
1830impl ContinueNode {
1831    /// Consume this node and return its builder
1832    pub fn into_builder(self) -> CstBuilder {
1833        self.builder
1834    }
1835}
1836impl From<ContinueNode> for BuilderNodeId {
1837    fn from(node: ContinueNode) -> Self {
1838        node.node_id
1839    }
1840}
1841///Branded type for DelimCode non-terminal
1842#[derive(Debug, Clone)]
1843pub struct DelimCodeNode {
1844    pub(super) node_id: BuilderNodeId,
1845    pub(super) builder: CstBuilder,
1846}
1847impl DelimCodeNode {
1848    /// Consume this node and return its builder
1849    pub fn into_builder(self) -> CstBuilder {
1850        self.builder
1851    }
1852}
1853impl From<DelimCodeNode> for BuilderNodeId {
1854    fn from(node: DelimCodeNode) -> Self {
1855        node.node_id
1856    }
1857}
1858///Branded type for DelimCode1 non-terminal
1859#[derive(Debug, Clone)]
1860pub struct DelimCode1Node {
1861    pub(super) node_id: BuilderNodeId,
1862    pub(super) builder: CstBuilder,
1863}
1864impl DelimCode1Node {
1865    /// Consume this node and return its builder
1866    pub fn into_builder(self) -> CstBuilder {
1867        self.builder
1868    }
1869}
1870impl From<DelimCode1Node> for BuilderNodeId {
1871    fn from(node: DelimCode1Node) -> Self {
1872        node.node_id
1873    }
1874}
1875///Branded type for DelimCode1List non-terminal
1876#[derive(Debug, Clone)]
1877pub struct DelimCode1ListNode {
1878    pub(super) node_id: BuilderNodeId,
1879    pub(super) builder: CstBuilder,
1880}
1881impl DelimCode1ListNode {
1882    /// Consume this node and return its builder
1883    pub fn into_builder(self) -> CstBuilder {
1884        self.builder
1885    }
1886}
1887impl From<DelimCode1ListNode> for BuilderNodeId {
1888    fn from(node: DelimCode1ListNode) -> Self {
1889        node.node_id
1890    }
1891}
1892///Branded type for DelimCode1ListGroup non-terminal
1893#[derive(Debug, Clone)]
1894pub struct DelimCode1ListGroupNode {
1895    pub(super) node_id: BuilderNodeId,
1896    pub(super) builder: CstBuilder,
1897}
1898impl DelimCode1ListGroupNode {
1899    /// Consume this node and return its builder
1900    pub fn into_builder(self) -> CstBuilder {
1901        self.builder
1902    }
1903}
1904impl From<DelimCode1ListGroupNode> for BuilderNodeId {
1905    fn from(node: DelimCode1ListGroupNode) -> Self {
1906        node.node_id
1907    }
1908}
1909///Branded type for DelimCode2 non-terminal
1910#[derive(Debug, Clone)]
1911pub struct DelimCode2Node {
1912    pub(super) node_id: BuilderNodeId,
1913    pub(super) builder: CstBuilder,
1914}
1915impl DelimCode2Node {
1916    /// Consume this node and return its builder
1917    pub fn into_builder(self) -> CstBuilder {
1918        self.builder
1919    }
1920}
1921impl From<DelimCode2Node> for BuilderNodeId {
1922    fn from(node: DelimCode2Node) -> Self {
1923        node.node_id
1924    }
1925}
1926///Branded type for DelimCode2List non-terminal
1927#[derive(Debug, Clone)]
1928pub struct DelimCode2ListNode {
1929    pub(super) node_id: BuilderNodeId,
1930    pub(super) builder: CstBuilder,
1931}
1932impl DelimCode2ListNode {
1933    /// Consume this node and return its builder
1934    pub fn into_builder(self) -> CstBuilder {
1935        self.builder
1936    }
1937}
1938impl From<DelimCode2ListNode> for BuilderNodeId {
1939    fn from(node: DelimCode2ListNode) -> Self {
1940        node.node_id
1941    }
1942}
1943///Branded type for DelimCode2ListGroup non-terminal
1944#[derive(Debug, Clone)]
1945pub struct DelimCode2ListGroupNode {
1946    pub(super) node_id: BuilderNodeId,
1947    pub(super) builder: CstBuilder,
1948}
1949impl DelimCode2ListGroupNode {
1950    /// Consume this node and return its builder
1951    pub fn into_builder(self) -> CstBuilder {
1952        self.builder
1953    }
1954}
1955impl From<DelimCode2ListGroupNode> for BuilderNodeId {
1956    fn from(node: DelimCode2ListGroupNode) -> Self {
1957        node.node_id
1958    }
1959}
1960///Branded type for DelimCode3 non-terminal
1961#[derive(Debug, Clone)]
1962pub struct DelimCode3Node {
1963    pub(super) node_id: BuilderNodeId,
1964    pub(super) builder: CstBuilder,
1965}
1966impl DelimCode3Node {
1967    /// Consume this node and return its builder
1968    pub fn into_builder(self) -> CstBuilder {
1969        self.builder
1970    }
1971}
1972impl From<DelimCode3Node> for BuilderNodeId {
1973    fn from(node: DelimCode3Node) -> Self {
1974        node.node_id
1975    }
1976}
1977///Branded type for DelimCode3List non-terminal
1978#[derive(Debug, Clone)]
1979pub struct DelimCode3ListNode {
1980    pub(super) node_id: BuilderNodeId,
1981    pub(super) builder: CstBuilder,
1982}
1983impl DelimCode3ListNode {
1984    /// Consume this node and return its builder
1985    pub fn into_builder(self) -> CstBuilder {
1986        self.builder
1987    }
1988}
1989impl From<DelimCode3ListNode> for BuilderNodeId {
1990    fn from(node: DelimCode3ListNode) -> Self {
1991        node.node_id
1992    }
1993}
1994///Branded type for DelimCode3ListGroup non-terminal
1995#[derive(Debug, Clone)]
1996pub struct DelimCode3ListGroupNode {
1997    pub(super) node_id: BuilderNodeId,
1998    pub(super) builder: CstBuilder,
1999}
2000impl DelimCode3ListGroupNode {
2001    /// Consume this node and return its builder
2002    pub fn into_builder(self) -> CstBuilder {
2003        self.builder
2004    }
2005}
2006impl From<DelimCode3ListGroupNode> for BuilderNodeId {
2007    fn from(node: DelimCode3ListGroupNode) -> Self {
2008        node.node_id
2009    }
2010}
2011///Branded type for DelimCodeEnd1 non-terminal
2012#[derive(Debug, Clone)]
2013pub struct DelimCodeEnd1Node {
2014    pub(super) node_id: BuilderNodeId,
2015    pub(super) builder: CstBuilder,
2016}
2017impl DelimCodeEnd1Node {
2018    /// Consume this node and return its builder
2019    pub fn into_builder(self) -> CstBuilder {
2020        self.builder
2021    }
2022}
2023impl From<DelimCodeEnd1Node> for BuilderNodeId {
2024    fn from(node: DelimCodeEnd1Node) -> Self {
2025        node.node_id
2026    }
2027}
2028///Branded type for DelimCodeEnd2 non-terminal
2029#[derive(Debug, Clone)]
2030pub struct DelimCodeEnd2Node {
2031    pub(super) node_id: BuilderNodeId,
2032    pub(super) builder: CstBuilder,
2033}
2034impl DelimCodeEnd2Node {
2035    /// Consume this node and return its builder
2036    pub fn into_builder(self) -> CstBuilder {
2037        self.builder
2038    }
2039}
2040impl From<DelimCodeEnd2Node> for BuilderNodeId {
2041    fn from(node: DelimCodeEnd2Node) -> Self {
2042        node.node_id
2043    }
2044}
2045///Branded type for DelimCodeEnd3 non-terminal
2046#[derive(Debug, Clone)]
2047pub struct DelimCodeEnd3Node {
2048    pub(super) node_id: BuilderNodeId,
2049    pub(super) builder: CstBuilder,
2050}
2051impl DelimCodeEnd3Node {
2052    /// Consume this node and return its builder
2053    pub fn into_builder(self) -> CstBuilder {
2054        self.builder
2055    }
2056}
2057impl From<DelimCodeEnd3Node> for BuilderNodeId {
2058    fn from(node: DelimCodeEnd3Node) -> Self {
2059        node.node_id
2060    }
2061}
2062///Branded type for DelimCodeStart1 non-terminal
2063#[derive(Debug, Clone)]
2064pub struct DelimCodeStart1Node {
2065    pub(super) node_id: BuilderNodeId,
2066    pub(super) builder: CstBuilder,
2067}
2068impl DelimCodeStart1Node {
2069    /// Consume this node and return its builder
2070    pub fn into_builder(self) -> CstBuilder {
2071        self.builder
2072    }
2073}
2074impl From<DelimCodeStart1Node> for BuilderNodeId {
2075    fn from(node: DelimCodeStart1Node) -> Self {
2076        node.node_id
2077    }
2078}
2079///Branded type for DelimCodeStart2 non-terminal
2080#[derive(Debug, Clone)]
2081pub struct DelimCodeStart2Node {
2082    pub(super) node_id: BuilderNodeId,
2083    pub(super) builder: CstBuilder,
2084}
2085impl DelimCodeStart2Node {
2086    /// Consume this node and return its builder
2087    pub fn into_builder(self) -> CstBuilder {
2088        self.builder
2089    }
2090}
2091impl From<DelimCodeStart2Node> for BuilderNodeId {
2092    fn from(node: DelimCodeStart2Node) -> Self {
2093        node.node_id
2094    }
2095}
2096///Branded type for DelimCodeStart3 non-terminal
2097#[derive(Debug, Clone)]
2098pub struct DelimCodeStart3Node {
2099    pub(super) node_id: BuilderNodeId,
2100    pub(super) builder: CstBuilder,
2101}
2102impl DelimCodeStart3Node {
2103    /// Consume this node and return its builder
2104    pub fn into_builder(self) -> CstBuilder {
2105        self.builder
2106    }
2107}
2108impl From<DelimCodeStart3Node> for BuilderNodeId {
2109    fn from(node: DelimCodeStart3Node) -> Self {
2110        node.node_id
2111    }
2112}
2113///Branded type for Dot non-terminal
2114#[derive(Debug, Clone)]
2115pub struct DotNode {
2116    pub(super) node_id: BuilderNodeId,
2117    pub(super) builder: CstBuilder,
2118}
2119impl DotNode {
2120    /// Consume this node and return its builder
2121    pub fn into_builder(self) -> CstBuilder {
2122        self.builder
2123    }
2124}
2125impl From<DotNode> for BuilderNodeId {
2126    fn from(node: DotNode) -> Self {
2127        node.node_id
2128    }
2129}
2130///Branded type for DotKey non-terminal
2131#[derive(Debug, Clone)]
2132pub struct DotKeyNode {
2133    pub(super) node_id: BuilderNodeId,
2134    pub(super) builder: CstBuilder,
2135}
2136impl DotKeyNode {
2137    /// Consume this node and return its builder
2138    pub fn into_builder(self) -> CstBuilder {
2139        self.builder
2140    }
2141}
2142impl From<DotKeyNode> for BuilderNodeId {
2143    fn from(node: DotKeyNode) -> Self {
2144        node.node_id
2145    }
2146}
2147///Branded type for End non-terminal
2148#[derive(Debug, Clone)]
2149pub struct EndNode {
2150    pub(super) node_id: BuilderNodeId,
2151    pub(super) builder: CstBuilder,
2152}
2153impl EndNode {
2154    /// Consume this node and return its builder
2155    pub fn into_builder(self) -> CstBuilder {
2156        self.builder
2157    }
2158}
2159impl From<EndNode> for BuilderNodeId {
2160    fn from(node: EndNode) -> Self {
2161        node.node_id
2162    }
2163}
2164///Branded type for Eure non-terminal
2165#[derive(Debug, Clone)]
2166pub struct EureNode {
2167    pub(super) node_id: BuilderNodeId,
2168    pub(super) builder: CstBuilder,
2169}
2170impl EureNode {
2171    /// Consume this node and return its builder
2172    pub fn into_builder(self) -> CstBuilder {
2173        self.builder
2174    }
2175}
2176impl From<EureNode> for BuilderNodeId {
2177    fn from(node: EureNode) -> Self {
2178        node.node_id
2179    }
2180}
2181///Branded type for EureBindings non-terminal
2182#[derive(Debug, Clone)]
2183pub struct EureBindingsNode {
2184    pub(super) node_id: BuilderNodeId,
2185    pub(super) builder: CstBuilder,
2186}
2187impl EureBindingsNode {
2188    /// Consume this node and return its builder
2189    pub fn into_builder(self) -> CstBuilder {
2190        self.builder
2191    }
2192}
2193impl From<EureBindingsNode> for BuilderNodeId {
2194    fn from(node: EureBindingsNode) -> Self {
2195        node.node_id
2196    }
2197}
2198///Branded type for EureSections non-terminal
2199#[derive(Debug, Clone)]
2200pub struct EureSectionsNode {
2201    pub(super) node_id: BuilderNodeId,
2202    pub(super) builder: CstBuilder,
2203}
2204impl EureSectionsNode {
2205    /// Consume this node and return its builder
2206    pub fn into_builder(self) -> CstBuilder {
2207        self.builder
2208    }
2209}
2210impl From<EureSectionsNode> for BuilderNodeId {
2211    fn from(node: EureSectionsNode) -> Self {
2212        node.node_id
2213    }
2214}
2215///Branded type for EureOpt non-terminal
2216#[derive(Debug, Clone)]
2217pub struct EureOptNode {
2218    pub(super) node_id: BuilderNodeId,
2219    pub(super) builder: CstBuilder,
2220}
2221impl EureOptNode {
2222    /// Consume this node and return its builder
2223    pub fn into_builder(self) -> CstBuilder {
2224        self.builder
2225    }
2226}
2227impl From<EureOptNode> for BuilderNodeId {
2228    fn from(node: EureOptNode) -> Self {
2229        node.node_id
2230    }
2231}
2232///Branded type for Ext non-terminal
2233#[derive(Debug, Clone)]
2234pub struct ExtNode {
2235    pub(super) node_id: BuilderNodeId,
2236    pub(super) builder: CstBuilder,
2237}
2238impl ExtNode {
2239    /// Consume this node and return its builder
2240    pub fn into_builder(self) -> CstBuilder {
2241        self.builder
2242    }
2243}
2244impl From<ExtNode> for BuilderNodeId {
2245    fn from(node: ExtNode) -> Self {
2246        node.node_id
2247    }
2248}
2249///Branded type for ExtensionNameSpace non-terminal
2250#[derive(Debug, Clone)]
2251pub struct ExtensionNameSpaceNode {
2252    pub(super) node_id: BuilderNodeId,
2253    pub(super) builder: CstBuilder,
2254}
2255impl ExtensionNameSpaceNode {
2256    /// Consume this node and return its builder
2257    pub fn into_builder(self) -> CstBuilder {
2258        self.builder
2259    }
2260}
2261impl From<ExtensionNameSpaceNode> for BuilderNodeId {
2262    fn from(node: ExtensionNameSpaceNode) -> Self {
2263        node.node_id
2264    }
2265}
2266///Branded type for False non-terminal
2267#[derive(Debug, Clone)]
2268pub struct FalseNode {
2269    pub(super) node_id: BuilderNodeId,
2270    pub(super) builder: CstBuilder,
2271}
2272impl FalseNode {
2273    /// Consume this node and return its builder
2274    pub fn into_builder(self) -> CstBuilder {
2275        self.builder
2276    }
2277}
2278impl From<FalseNode> for BuilderNodeId {
2279    fn from(node: FalseNode) -> Self {
2280        node.node_id
2281    }
2282}
2283///Branded type for FirstKey non-terminal
2284#[derive(Debug, Clone)]
2285pub struct FirstKeyNode {
2286    pub(super) node_id: BuilderNodeId,
2287    pub(super) builder: CstBuilder,
2288}
2289impl FirstKeyNode {
2290    /// Consume this node and return its builder
2291    pub fn into_builder(self) -> CstBuilder {
2292        self.builder
2293    }
2294}
2295impl From<FirstKeyNode> for BuilderNodeId {
2296    fn from(node: FirstKeyNode) -> Self {
2297        node.node_id
2298    }
2299}
2300///Branded type for FlatBody non-terminal
2301#[derive(Debug, Clone)]
2302pub struct FlatBodyNode {
2303    pub(super) node_id: BuilderNodeId,
2304    pub(super) builder: CstBuilder,
2305}
2306impl FlatBodyNode {
2307    /// Consume this node and return its builder
2308    pub fn into_builder(self) -> CstBuilder {
2309        self.builder
2310    }
2311}
2312impl From<FlatBodyNode> for BuilderNodeId {
2313    fn from(node: FlatBodyNode) -> Self {
2314        node.node_id
2315    }
2316}
2317///Branded type for FlatBodyList non-terminal
2318#[derive(Debug, Clone)]
2319pub struct FlatBodyListNode {
2320    pub(super) node_id: BuilderNodeId,
2321    pub(super) builder: CstBuilder,
2322}
2323impl FlatBodyListNode {
2324    /// Consume this node and return its builder
2325    pub fn into_builder(self) -> CstBuilder {
2326        self.builder
2327    }
2328}
2329impl From<FlatBodyListNode> for BuilderNodeId {
2330    fn from(node: FlatBodyListNode) -> Self {
2331        node.node_id
2332    }
2333}
2334///Branded type for FlatRootBinding non-terminal
2335#[derive(Debug, Clone)]
2336pub struct FlatRootBindingNode {
2337    pub(super) node_id: BuilderNodeId,
2338    pub(super) builder: CstBuilder,
2339}
2340impl FlatRootBindingNode {
2341    /// Consume this node and return its builder
2342    pub fn into_builder(self) -> CstBuilder {
2343        self.builder
2344    }
2345}
2346impl From<FlatRootBindingNode> for BuilderNodeId {
2347    fn from(node: FlatRootBindingNode) -> Self {
2348        node.node_id
2349    }
2350}
2351///Branded type for Float non-terminal
2352#[derive(Debug, Clone)]
2353pub struct FloatNode {
2354    pub(super) node_id: BuilderNodeId,
2355    pub(super) builder: CstBuilder,
2356}
2357impl FloatNode {
2358    /// Consume this node and return its builder
2359    pub fn into_builder(self) -> CstBuilder {
2360        self.builder
2361    }
2362}
2363impl From<FloatNode> for BuilderNodeId {
2364    fn from(node: FloatNode) -> Self {
2365        node.node_id
2366    }
2367}
2368///Branded type for GrammarNewline non-terminal
2369#[derive(Debug, Clone)]
2370pub struct GrammarNewlineNode {
2371    pub(super) node_id: BuilderNodeId,
2372    pub(super) builder: CstBuilder,
2373}
2374impl GrammarNewlineNode {
2375    /// Consume this node and return its builder
2376    pub fn into_builder(self) -> CstBuilder {
2377        self.builder
2378    }
2379}
2380impl From<GrammarNewlineNode> for BuilderNodeId {
2381    fn from(node: GrammarNewlineNode) -> Self {
2382        node.node_id
2383    }
2384}
2385///Branded type for Hole non-terminal
2386#[derive(Debug, Clone)]
2387pub struct HoleNode {
2388    pub(super) node_id: BuilderNodeId,
2389    pub(super) builder: CstBuilder,
2390}
2391impl HoleNode {
2392    /// Consume this node and return its builder
2393    pub fn into_builder(self) -> CstBuilder {
2394        self.builder
2395    }
2396}
2397impl From<HoleNode> for BuilderNodeId {
2398    fn from(node: HoleNode) -> Self {
2399        node.node_id
2400    }
2401}
2402///Branded type for Ident non-terminal
2403#[derive(Debug, Clone)]
2404pub struct IdentNode {
2405    pub(super) node_id: BuilderNodeId,
2406    pub(super) builder: CstBuilder,
2407}
2408impl IdentNode {
2409    /// Consume this node and return its builder
2410    pub fn into_builder(self) -> CstBuilder {
2411        self.builder
2412    }
2413}
2414impl From<IdentNode> for BuilderNodeId {
2415    fn from(node: IdentNode) -> Self {
2416        node.node_id
2417    }
2418}
2419///Branded type for Inf non-terminal
2420#[derive(Debug, Clone)]
2421pub struct InfNode {
2422    pub(super) node_id: BuilderNodeId,
2423    pub(super) builder: CstBuilder,
2424}
2425impl InfNode {
2426    /// Consume this node and return its builder
2427    pub fn into_builder(self) -> CstBuilder {
2428        self.builder
2429    }
2430}
2431impl From<InfNode> for BuilderNodeId {
2432    fn from(node: InfNode) -> Self {
2433        node.node_id
2434    }
2435}
2436///Branded type for InlineCode non-terminal
2437#[derive(Debug, Clone)]
2438pub struct InlineCodeNode {
2439    pub(super) node_id: BuilderNodeId,
2440    pub(super) builder: CstBuilder,
2441}
2442impl InlineCodeNode {
2443    /// Consume this node and return its builder
2444    pub fn into_builder(self) -> CstBuilder {
2445        self.builder
2446    }
2447}
2448impl From<InlineCodeNode> for BuilderNodeId {
2449    fn from(node: InlineCodeNode) -> Self {
2450        node.node_id
2451    }
2452}
2453///Branded type for InlineCode1 non-terminal
2454#[derive(Debug, Clone)]
2455pub struct InlineCode1Node {
2456    pub(super) node_id: BuilderNodeId,
2457    pub(super) builder: CstBuilder,
2458}
2459impl InlineCode1Node {
2460    /// Consume this node and return its builder
2461    pub fn into_builder(self) -> CstBuilder {
2462        self.builder
2463    }
2464}
2465impl From<InlineCode1Node> for BuilderNodeId {
2466    fn from(node: InlineCode1Node) -> Self {
2467        node.node_id
2468    }
2469}
2470///Branded type for Integer non-terminal
2471#[derive(Debug, Clone)]
2472pub struct IntegerNode {
2473    pub(super) node_id: BuilderNodeId,
2474    pub(super) builder: CstBuilder,
2475}
2476impl IntegerNode {
2477    /// Consume this node and return its builder
2478    pub fn into_builder(self) -> CstBuilder {
2479        self.builder
2480    }
2481}
2482impl From<IntegerNode> for BuilderNodeId {
2483    fn from(node: IntegerNode) -> Self {
2484        node.node_id
2485    }
2486}
2487///Branded type for Key non-terminal
2488#[derive(Debug, Clone)]
2489pub struct KeyNode {
2490    pub(super) node_id: BuilderNodeId,
2491    pub(super) builder: CstBuilder,
2492}
2493impl KeyNode {
2494    /// Consume this node and return its builder
2495    pub fn into_builder(self) -> CstBuilder {
2496        self.builder
2497    }
2498}
2499impl From<KeyNode> for BuilderNodeId {
2500    fn from(node: KeyNode) -> Self {
2501        node.node_id
2502    }
2503}
2504///Branded type for KeyIdent non-terminal
2505#[derive(Debug, Clone)]
2506pub struct KeyIdentNode {
2507    pub(super) node_id: BuilderNodeId,
2508    pub(super) builder: CstBuilder,
2509}
2510impl KeyIdentNode {
2511    /// Consume this node and return its builder
2512    pub fn into_builder(self) -> CstBuilder {
2513        self.builder
2514    }
2515}
2516impl From<KeyIdentNode> for BuilderNodeId {
2517    fn from(node: KeyIdentNode) -> Self {
2518        node.node_id
2519    }
2520}
2521///Branded type for KeyTail non-terminal
2522#[derive(Debug, Clone)]
2523pub struct KeyTailNode {
2524    pub(super) node_id: BuilderNodeId,
2525    pub(super) builder: CstBuilder,
2526}
2527impl KeyTailNode {
2528    /// Consume this node and return its builder
2529    pub fn into_builder(self) -> CstBuilder {
2530        self.builder
2531    }
2532}
2533impl From<KeyTailNode> for BuilderNodeId {
2534    fn from(node: KeyTailNode) -> Self {
2535        node.node_id
2536    }
2537}
2538///Branded type for KeyTuple non-terminal
2539#[derive(Debug, Clone)]
2540pub struct KeyTupleNode {
2541    pub(super) node_id: BuilderNodeId,
2542    pub(super) builder: CstBuilder,
2543}
2544impl KeyTupleNode {
2545    /// Consume this node and return its builder
2546    pub fn into_builder(self) -> CstBuilder {
2547        self.builder
2548    }
2549}
2550impl From<KeyTupleNode> for BuilderNodeId {
2551    fn from(node: KeyTupleNode) -> Self {
2552        node.node_id
2553    }
2554}
2555///Branded type for KeyTupleElements non-terminal
2556#[derive(Debug, Clone)]
2557pub struct KeyTupleElementsNode {
2558    pub(super) node_id: BuilderNodeId,
2559    pub(super) builder: CstBuilder,
2560}
2561impl KeyTupleElementsNode {
2562    /// Consume this node and return its builder
2563    pub fn into_builder(self) -> CstBuilder {
2564        self.builder
2565    }
2566}
2567impl From<KeyTupleElementsNode> for BuilderNodeId {
2568    fn from(node: KeyTupleElementsNode) -> Self {
2569        node.node_id
2570    }
2571}
2572///Branded type for KeyTupleElementsOpt non-terminal
2573#[derive(Debug, Clone)]
2574pub struct KeyTupleElementsOptNode {
2575    pub(super) node_id: BuilderNodeId,
2576    pub(super) builder: CstBuilder,
2577}
2578impl KeyTupleElementsOptNode {
2579    /// Consume this node and return its builder
2580    pub fn into_builder(self) -> CstBuilder {
2581        self.builder
2582    }
2583}
2584impl From<KeyTupleElementsOptNode> for BuilderNodeId {
2585    fn from(node: KeyTupleElementsOptNode) -> Self {
2586        node.node_id
2587    }
2588}
2589///Branded type for KeyTupleElementsTail non-terminal
2590#[derive(Debug, Clone)]
2591pub struct KeyTupleElementsTailNode {
2592    pub(super) node_id: BuilderNodeId,
2593    pub(super) builder: CstBuilder,
2594}
2595impl KeyTupleElementsTailNode {
2596    /// Consume this node and return its builder
2597    pub fn into_builder(self) -> CstBuilder {
2598        self.builder
2599    }
2600}
2601impl From<KeyTupleElementsTailNode> for BuilderNodeId {
2602    fn from(node: KeyTupleElementsTailNode) -> Self {
2603        node.node_id
2604    }
2605}
2606///Branded type for KeyTupleElementsTailOpt non-terminal
2607#[derive(Debug, Clone)]
2608pub struct KeyTupleElementsTailOptNode {
2609    pub(super) node_id: BuilderNodeId,
2610    pub(super) builder: CstBuilder,
2611}
2612impl KeyTupleElementsTailOptNode {
2613    /// Consume this node and return its builder
2614    pub fn into_builder(self) -> CstBuilder {
2615        self.builder
2616    }
2617}
2618impl From<KeyTupleElementsTailOptNode> for BuilderNodeId {
2619    fn from(node: KeyTupleElementsTailOptNode) -> Self {
2620        node.node_id
2621    }
2622}
2623///Branded type for KeyTupleOpt non-terminal
2624#[derive(Debug, Clone)]
2625pub struct KeyTupleOptNode {
2626    pub(super) node_id: BuilderNodeId,
2627    pub(super) builder: CstBuilder,
2628}
2629impl KeyTupleOptNode {
2630    /// Consume this node and return its builder
2631    pub fn into_builder(self) -> CstBuilder {
2632        self.builder
2633    }
2634}
2635impl From<KeyTupleOptNode> for BuilderNodeId {
2636    fn from(node: KeyTupleOptNode) -> Self {
2637        node.node_id
2638    }
2639}
2640///Branded type for KeyValue non-terminal
2641#[derive(Debug, Clone)]
2642pub struct KeyValueNode {
2643    pub(super) node_id: BuilderNodeId,
2644    pub(super) builder: CstBuilder,
2645}
2646impl KeyValueNode {
2647    /// Consume this node and return its builder
2648    pub fn into_builder(self) -> CstBuilder {
2649        self.builder
2650    }
2651}
2652impl From<KeyValueNode> for BuilderNodeId {
2653    fn from(node: KeyValueNode) -> Self {
2654        node.node_id
2655    }
2656}
2657///Branded type for Keys non-terminal
2658#[derive(Debug, Clone)]
2659pub struct KeysNode {
2660    pub(super) node_id: BuilderNodeId,
2661    pub(super) builder: CstBuilder,
2662}
2663impl KeysNode {
2664    /// Consume this node and return its builder
2665    pub fn into_builder(self) -> CstBuilder {
2666        self.builder
2667    }
2668}
2669impl From<KeysNode> for BuilderNodeId {
2670    fn from(node: KeysNode) -> Self {
2671        node.node_id
2672    }
2673}
2674///Branded type for KeysList non-terminal
2675#[derive(Debug, Clone)]
2676pub struct KeysListNode {
2677    pub(super) node_id: BuilderNodeId,
2678    pub(super) builder: CstBuilder,
2679}
2680impl KeysListNode {
2681    /// Consume this node and return its builder
2682    pub fn into_builder(self) -> CstBuilder {
2683        self.builder
2684    }
2685}
2686impl From<KeysListNode> for BuilderNodeId {
2687    fn from(node: KeysListNode) -> Self {
2688        node.node_id
2689    }
2690}
2691///Branded type for LParen non-terminal
2692#[derive(Debug, Clone)]
2693pub struct LParenNode {
2694    pub(super) node_id: BuilderNodeId,
2695    pub(super) builder: CstBuilder,
2696}
2697impl LParenNode {
2698    /// Consume this node and return its builder
2699    pub fn into_builder(self) -> CstBuilder {
2700        self.builder
2701    }
2702}
2703impl From<LParenNode> for BuilderNodeId {
2704    fn from(node: LParenNode) -> Self {
2705        node.node_id
2706    }
2707}
2708///Branded type for LitStr non-terminal
2709#[derive(Debug, Clone)]
2710pub struct LitStrNode {
2711    pub(super) node_id: BuilderNodeId,
2712    pub(super) builder: CstBuilder,
2713}
2714impl LitStrNode {
2715    /// Consume this node and return its builder
2716    pub fn into_builder(self) -> CstBuilder {
2717        self.builder
2718    }
2719}
2720impl From<LitStrNode> for BuilderNodeId {
2721    fn from(node: LitStrNode) -> Self {
2722        node.node_id
2723    }
2724}
2725///Branded type for LitStr1 non-terminal
2726#[derive(Debug, Clone)]
2727pub struct LitStr1Node {
2728    pub(super) node_id: BuilderNodeId,
2729    pub(super) builder: CstBuilder,
2730}
2731impl LitStr1Node {
2732    /// Consume this node and return its builder
2733    pub fn into_builder(self) -> CstBuilder {
2734        self.builder
2735    }
2736}
2737impl From<LitStr1Node> for BuilderNodeId {
2738    fn from(node: LitStr1Node) -> Self {
2739        node.node_id
2740    }
2741}
2742///Branded type for LitStr1End non-terminal
2743#[derive(Debug, Clone)]
2744pub struct LitStr1EndNode {
2745    pub(super) node_id: BuilderNodeId,
2746    pub(super) builder: CstBuilder,
2747}
2748impl LitStr1EndNode {
2749    /// Consume this node and return its builder
2750    pub fn into_builder(self) -> CstBuilder {
2751        self.builder
2752    }
2753}
2754impl From<LitStr1EndNode> for BuilderNodeId {
2755    fn from(node: LitStr1EndNode) -> Self {
2756        node.node_id
2757    }
2758}
2759///Branded type for LitStr1List non-terminal
2760#[derive(Debug, Clone)]
2761pub struct LitStr1ListNode {
2762    pub(super) node_id: BuilderNodeId,
2763    pub(super) builder: CstBuilder,
2764}
2765impl LitStr1ListNode {
2766    /// Consume this node and return its builder
2767    pub fn into_builder(self) -> CstBuilder {
2768        self.builder
2769    }
2770}
2771impl From<LitStr1ListNode> for BuilderNodeId {
2772    fn from(node: LitStr1ListNode) -> Self {
2773        node.node_id
2774    }
2775}
2776///Branded type for LitStr1ListGroup non-terminal
2777#[derive(Debug, Clone)]
2778pub struct LitStr1ListGroupNode {
2779    pub(super) node_id: BuilderNodeId,
2780    pub(super) builder: CstBuilder,
2781}
2782impl LitStr1ListGroupNode {
2783    /// Consume this node and return its builder
2784    pub fn into_builder(self) -> CstBuilder {
2785        self.builder
2786    }
2787}
2788impl From<LitStr1ListGroupNode> for BuilderNodeId {
2789    fn from(node: LitStr1ListGroupNode) -> Self {
2790        node.node_id
2791    }
2792}
2793///Branded type for LitStr1Start non-terminal
2794#[derive(Debug, Clone)]
2795pub struct LitStr1StartNode {
2796    pub(super) node_id: BuilderNodeId,
2797    pub(super) builder: CstBuilder,
2798}
2799impl LitStr1StartNode {
2800    /// Consume this node and return its builder
2801    pub fn into_builder(self) -> CstBuilder {
2802        self.builder
2803    }
2804}
2805impl From<LitStr1StartNode> for BuilderNodeId {
2806    fn from(node: LitStr1StartNode) -> Self {
2807        node.node_id
2808    }
2809}
2810///Branded type for LitStr2 non-terminal
2811#[derive(Debug, Clone)]
2812pub struct LitStr2Node {
2813    pub(super) node_id: BuilderNodeId,
2814    pub(super) builder: CstBuilder,
2815}
2816impl LitStr2Node {
2817    /// Consume this node and return its builder
2818    pub fn into_builder(self) -> CstBuilder {
2819        self.builder
2820    }
2821}
2822impl From<LitStr2Node> for BuilderNodeId {
2823    fn from(node: LitStr2Node) -> Self {
2824        node.node_id
2825    }
2826}
2827///Branded type for LitStr2End non-terminal
2828#[derive(Debug, Clone)]
2829pub struct LitStr2EndNode {
2830    pub(super) node_id: BuilderNodeId,
2831    pub(super) builder: CstBuilder,
2832}
2833impl LitStr2EndNode {
2834    /// Consume this node and return its builder
2835    pub fn into_builder(self) -> CstBuilder {
2836        self.builder
2837    }
2838}
2839impl From<LitStr2EndNode> for BuilderNodeId {
2840    fn from(node: LitStr2EndNode) -> Self {
2841        node.node_id
2842    }
2843}
2844///Branded type for LitStr2List non-terminal
2845#[derive(Debug, Clone)]
2846pub struct LitStr2ListNode {
2847    pub(super) node_id: BuilderNodeId,
2848    pub(super) builder: CstBuilder,
2849}
2850impl LitStr2ListNode {
2851    /// Consume this node and return its builder
2852    pub fn into_builder(self) -> CstBuilder {
2853        self.builder
2854    }
2855}
2856impl From<LitStr2ListNode> for BuilderNodeId {
2857    fn from(node: LitStr2ListNode) -> Self {
2858        node.node_id
2859    }
2860}
2861///Branded type for LitStr2ListGroup non-terminal
2862#[derive(Debug, Clone)]
2863pub struct LitStr2ListGroupNode {
2864    pub(super) node_id: BuilderNodeId,
2865    pub(super) builder: CstBuilder,
2866}
2867impl LitStr2ListGroupNode {
2868    /// Consume this node and return its builder
2869    pub fn into_builder(self) -> CstBuilder {
2870        self.builder
2871    }
2872}
2873impl From<LitStr2ListGroupNode> for BuilderNodeId {
2874    fn from(node: LitStr2ListGroupNode) -> Self {
2875        node.node_id
2876    }
2877}
2878///Branded type for LitStr2Start non-terminal
2879#[derive(Debug, Clone)]
2880pub struct LitStr2StartNode {
2881    pub(super) node_id: BuilderNodeId,
2882    pub(super) builder: CstBuilder,
2883}
2884impl LitStr2StartNode {
2885    /// Consume this node and return its builder
2886    pub fn into_builder(self) -> CstBuilder {
2887        self.builder
2888    }
2889}
2890impl From<LitStr2StartNode> for BuilderNodeId {
2891    fn from(node: LitStr2StartNode) -> Self {
2892        node.node_id
2893    }
2894}
2895///Branded type for LitStr3 non-terminal
2896#[derive(Debug, Clone)]
2897pub struct LitStr3Node {
2898    pub(super) node_id: BuilderNodeId,
2899    pub(super) builder: CstBuilder,
2900}
2901impl LitStr3Node {
2902    /// Consume this node and return its builder
2903    pub fn into_builder(self) -> CstBuilder {
2904        self.builder
2905    }
2906}
2907impl From<LitStr3Node> for BuilderNodeId {
2908    fn from(node: LitStr3Node) -> Self {
2909        node.node_id
2910    }
2911}
2912///Branded type for LitStr3End non-terminal
2913#[derive(Debug, Clone)]
2914pub struct LitStr3EndNode {
2915    pub(super) node_id: BuilderNodeId,
2916    pub(super) builder: CstBuilder,
2917}
2918impl LitStr3EndNode {
2919    /// Consume this node and return its builder
2920    pub fn into_builder(self) -> CstBuilder {
2921        self.builder
2922    }
2923}
2924impl From<LitStr3EndNode> for BuilderNodeId {
2925    fn from(node: LitStr3EndNode) -> Self {
2926        node.node_id
2927    }
2928}
2929///Branded type for LitStr3List non-terminal
2930#[derive(Debug, Clone)]
2931pub struct LitStr3ListNode {
2932    pub(super) node_id: BuilderNodeId,
2933    pub(super) builder: CstBuilder,
2934}
2935impl LitStr3ListNode {
2936    /// Consume this node and return its builder
2937    pub fn into_builder(self) -> CstBuilder {
2938        self.builder
2939    }
2940}
2941impl From<LitStr3ListNode> for BuilderNodeId {
2942    fn from(node: LitStr3ListNode) -> Self {
2943        node.node_id
2944    }
2945}
2946///Branded type for LitStr3ListGroup non-terminal
2947#[derive(Debug, Clone)]
2948pub struct LitStr3ListGroupNode {
2949    pub(super) node_id: BuilderNodeId,
2950    pub(super) builder: CstBuilder,
2951}
2952impl LitStr3ListGroupNode {
2953    /// Consume this node and return its builder
2954    pub fn into_builder(self) -> CstBuilder {
2955        self.builder
2956    }
2957}
2958impl From<LitStr3ListGroupNode> for BuilderNodeId {
2959    fn from(node: LitStr3ListGroupNode) -> Self {
2960        node.node_id
2961    }
2962}
2963///Branded type for LitStr3Start non-terminal
2964#[derive(Debug, Clone)]
2965pub struct LitStr3StartNode {
2966    pub(super) node_id: BuilderNodeId,
2967    pub(super) builder: CstBuilder,
2968}
2969impl LitStr3StartNode {
2970    /// Consume this node and return its builder
2971    pub fn into_builder(self) -> CstBuilder {
2972        self.builder
2973    }
2974}
2975impl From<LitStr3StartNode> for BuilderNodeId {
2976    fn from(node: LitStr3StartNode) -> Self {
2977        node.node_id
2978    }
2979}
2980///Branded type for MapBind non-terminal
2981#[derive(Debug, Clone)]
2982pub struct MapBindNode {
2983    pub(super) node_id: BuilderNodeId,
2984    pub(super) builder: CstBuilder,
2985}
2986impl MapBindNode {
2987    /// Consume this node and return its builder
2988    pub fn into_builder(self) -> CstBuilder {
2989        self.builder
2990    }
2991}
2992impl From<MapBindNode> for BuilderNodeId {
2993    fn from(node: MapBindNode) -> Self {
2994        node.node_id
2995    }
2996}
2997///Branded type for NaN non-terminal
2998#[derive(Debug, Clone)]
2999pub struct NaNNode {
3000    pub(super) node_id: BuilderNodeId,
3001    pub(super) builder: CstBuilder,
3002}
3003impl NaNNode {
3004    /// Consume this node and return its builder
3005    pub fn into_builder(self) -> CstBuilder {
3006        self.builder
3007    }
3008}
3009impl From<NaNNode> for BuilderNodeId {
3010    fn from(node: NaNNode) -> Self {
3011        node.node_id
3012    }
3013}
3014///Branded type for NewlineBind non-terminal
3015#[derive(Debug, Clone)]
3016pub struct NewlineBindNode {
3017    pub(super) node_id: BuilderNodeId,
3018    pub(super) builder: CstBuilder,
3019}
3020impl NewlineBindNode {
3021    /// Consume this node and return its builder
3022    pub fn into_builder(self) -> CstBuilder {
3023        self.builder
3024    }
3025}
3026impl From<NewlineBindNode> for BuilderNodeId {
3027    fn from(node: NewlineBindNode) -> Self {
3028        node.node_id
3029    }
3030}
3031///Branded type for NewlineHead non-terminal
3032#[derive(Debug, Clone)]
3033pub struct NewlineHeadNode {
3034    pub(super) node_id: BuilderNodeId,
3035    pub(super) builder: CstBuilder,
3036}
3037impl NewlineHeadNode {
3038    /// Consume this node and return its builder
3039    pub fn into_builder(self) -> CstBuilder {
3040        self.builder
3041    }
3042}
3043impl From<NewlineHeadNode> for BuilderNodeId {
3044    fn from(node: NewlineHeadNode) -> Self {
3045        node.node_id
3046    }
3047}
3048///Branded type for NewlineHeadOpt non-terminal
3049#[derive(Debug, Clone)]
3050pub struct NewlineHeadOptNode {
3051    pub(super) node_id: BuilderNodeId,
3052    pub(super) builder: CstBuilder,
3053}
3054impl NewlineHeadOptNode {
3055    /// Consume this node and return its builder
3056    pub fn into_builder(self) -> CstBuilder {
3057        self.builder
3058    }
3059}
3060impl From<NewlineHeadOptNode> for BuilderNodeId {
3061    fn from(node: NewlineHeadOptNode) -> Self {
3062        node.node_id
3063    }
3064}
3065///Branded type for NewlineTextStart non-terminal
3066#[derive(Debug, Clone)]
3067pub struct NewlineTextStartNode {
3068    pub(super) node_id: BuilderNodeId,
3069    pub(super) builder: CstBuilder,
3070}
3071impl NewlineTextStartNode {
3072    /// Consume this node and return its builder
3073    pub fn into_builder(self) -> CstBuilder {
3074        self.builder
3075    }
3076}
3077impl From<NewlineTextStartNode> for BuilderNodeId {
3078    fn from(node: NewlineTextStartNode) -> Self {
3079        node.node_id
3080    }
3081}
3082///Branded type for NoBacktick non-terminal
3083#[derive(Debug, Clone)]
3084pub struct NoBacktickNode {
3085    pub(super) node_id: BuilderNodeId,
3086    pub(super) builder: CstBuilder,
3087}
3088impl NoBacktickNode {
3089    /// Consume this node and return its builder
3090    pub fn into_builder(self) -> CstBuilder {
3091        self.builder
3092    }
3093}
3094impl From<NoBacktickNode> for BuilderNodeId {
3095    fn from(node: NoBacktickNode) -> Self {
3096        node.node_id
3097    }
3098}
3099///Branded type for NoSQuote non-terminal
3100#[derive(Debug, Clone)]
3101pub struct NoSQuoteNode {
3102    pub(super) node_id: BuilderNodeId,
3103    pub(super) builder: CstBuilder,
3104}
3105impl NoSQuoteNode {
3106    /// Consume this node and return its builder
3107    pub fn into_builder(self) -> CstBuilder {
3108        self.builder
3109    }
3110}
3111impl From<NoSQuoteNode> for BuilderNodeId {
3112    fn from(node: NoSQuoteNode) -> Self {
3113        node.node_id
3114    }
3115}
3116///Branded type for Null non-terminal
3117#[derive(Debug, Clone)]
3118pub struct NullNode {
3119    pub(super) node_id: BuilderNodeId,
3120    pub(super) builder: CstBuilder,
3121}
3122impl NullNode {
3123    /// Consume this node and return its builder
3124    pub fn into_builder(self) -> CstBuilder {
3125        self.builder
3126    }
3127}
3128impl From<NullNode> for BuilderNodeId {
3129    fn from(node: NullNode) -> Self {
3130        node.node_id
3131    }
3132}
3133///Branded type for Number non-terminal
3134#[derive(Debug, Clone)]
3135pub struct NumberNode {
3136    pub(super) node_id: BuilderNodeId,
3137    pub(super) builder: CstBuilder,
3138}
3139impl NumberNode {
3140    /// Consume this node and return its builder
3141    pub fn into_builder(self) -> CstBuilder {
3142        self.builder
3143    }
3144}
3145impl From<NumberNode> for BuilderNodeId {
3146    fn from(node: NumberNode) -> Self {
3147        node.node_id
3148    }
3149}
3150///Branded type for Object non-terminal
3151#[derive(Debug, Clone)]
3152pub struct ObjectNode {
3153    pub(super) node_id: BuilderNodeId,
3154    pub(super) builder: CstBuilder,
3155}
3156impl ObjectNode {
3157    /// Consume this node and return its builder
3158    pub fn into_builder(self) -> CstBuilder {
3159        self.builder
3160    }
3161}
3162impl From<ObjectNode> for BuilderNodeId {
3163    fn from(node: ObjectNode) -> Self {
3164        node.node_id
3165    }
3166}
3167///Branded type for ObjectList non-terminal
3168#[derive(Debug, Clone)]
3169pub struct ObjectListNode {
3170    pub(super) node_id: BuilderNodeId,
3171    pub(super) builder: CstBuilder,
3172}
3173impl ObjectListNode {
3174    /// Consume this node and return its builder
3175    pub fn into_builder(self) -> CstBuilder {
3176        self.builder
3177    }
3178}
3179impl From<ObjectListNode> for BuilderNodeId {
3180    fn from(node: ObjectListNode) -> Self {
3181        node.node_id
3182    }
3183}
3184///Branded type for ObjectOpt non-terminal
3185#[derive(Debug, Clone)]
3186pub struct ObjectOptNode {
3187    pub(super) node_id: BuilderNodeId,
3188    pub(super) builder: CstBuilder,
3189}
3190impl ObjectOptNode {
3191    /// Consume this node and return its builder
3192    pub fn into_builder(self) -> CstBuilder {
3193        self.builder
3194    }
3195}
3196impl From<ObjectOptNode> for BuilderNodeId {
3197    fn from(node: ObjectOptNode) -> Self {
3198        node.node_id
3199    }
3200}
3201///Branded type for ObjectOpt0 non-terminal
3202#[derive(Debug, Clone)]
3203pub struct ObjectOpt0Node {
3204    pub(super) node_id: BuilderNodeId,
3205    pub(super) builder: CstBuilder,
3206}
3207impl ObjectOpt0Node {
3208    /// Consume this node and return its builder
3209    pub fn into_builder(self) -> CstBuilder {
3210        self.builder
3211    }
3212}
3213impl From<ObjectOpt0Node> for BuilderNodeId {
3214    fn from(node: ObjectOpt0Node) -> Self {
3215        node.node_id
3216    }
3217}
3218///Branded type for ObjectOpt1 non-terminal
3219#[derive(Debug, Clone)]
3220pub struct ObjectOpt1Node {
3221    pub(super) node_id: BuilderNodeId,
3222    pub(super) builder: CstBuilder,
3223}
3224impl ObjectOpt1Node {
3225    /// Consume this node and return its builder
3226    pub fn into_builder(self) -> CstBuilder {
3227        self.builder
3228    }
3229}
3230impl From<ObjectOpt1Node> for BuilderNodeId {
3231    fn from(node: ObjectOpt1Node) -> Self {
3232        node.node_id
3233    }
3234}
3235///Branded type for RParen non-terminal
3236#[derive(Debug, Clone)]
3237pub struct RParenNode {
3238    pub(super) node_id: BuilderNodeId,
3239    pub(super) builder: CstBuilder,
3240}
3241impl RParenNode {
3242    /// Consume this node and return its builder
3243    pub fn into_builder(self) -> CstBuilder {
3244        self.builder
3245    }
3246}
3247impl From<RParenNode> for BuilderNodeId {
3248    fn from(node: RParenNode) -> Self {
3249        node.node_id
3250    }
3251}
3252///Branded type for RootBinding non-terminal
3253#[derive(Debug, Clone)]
3254pub struct RootBindingNode {
3255    pub(super) node_id: BuilderNodeId,
3256    pub(super) builder: CstBuilder,
3257}
3258impl RootBindingNode {
3259    /// Consume this node and return its builder
3260    pub fn into_builder(self) -> CstBuilder {
3261        self.builder
3262    }
3263}
3264impl From<RootBindingNode> for BuilderNodeId {
3265    fn from(node: RootBindingNode) -> Self {
3266        node.node_id
3267    }
3268}
3269///Branded type for RootTextBinding non-terminal
3270#[derive(Debug, Clone)]
3271pub struct RootTextBindingNode {
3272    pub(super) node_id: BuilderNodeId,
3273    pub(super) builder: CstBuilder,
3274}
3275impl RootTextBindingNode {
3276    /// Consume this node and return its builder
3277    pub fn into_builder(self) -> CstBuilder {
3278        self.builder
3279    }
3280}
3281impl From<RootTextBindingNode> for BuilderNodeId {
3282    fn from(node: RootTextBindingNode) -> Self {
3283        node.node_id
3284    }
3285}
3286///Branded type for RootTextBindingOpt non-terminal
3287#[derive(Debug, Clone)]
3288pub struct RootTextBindingOptNode {
3289    pub(super) node_id: BuilderNodeId,
3290    pub(super) builder: CstBuilder,
3291}
3292impl RootTextBindingOptNode {
3293    /// Consume this node and return its builder
3294    pub fn into_builder(self) -> CstBuilder {
3295        self.builder
3296    }
3297}
3298impl From<RootTextBindingOptNode> for BuilderNodeId {
3299    fn from(node: RootTextBindingOptNode) -> Self {
3300        node.node_id
3301    }
3302}
3303///Branded type for RootTextBindingOpt0 non-terminal
3304#[derive(Debug, Clone)]
3305pub struct RootTextBindingOpt0Node {
3306    pub(super) node_id: BuilderNodeId,
3307    pub(super) builder: CstBuilder,
3308}
3309impl RootTextBindingOpt0Node {
3310    /// Consume this node and return its builder
3311    pub fn into_builder(self) -> CstBuilder {
3312        self.builder
3313    }
3314}
3315impl From<RootTextBindingOpt0Node> for BuilderNodeId {
3316    fn from(node: RootTextBindingOpt0Node) -> Self {
3317        node.node_id
3318    }
3319}
3320///Branded type for RootTextBindingOpt1 non-terminal
3321#[derive(Debug, Clone)]
3322pub struct RootTextBindingOpt1Node {
3323    pub(super) node_id: BuilderNodeId,
3324    pub(super) builder: CstBuilder,
3325}
3326impl RootTextBindingOpt1Node {
3327    /// Consume this node and return its builder
3328    pub fn into_builder(self) -> CstBuilder {
3329        self.builder
3330    }
3331}
3332impl From<RootTextBindingOpt1Node> for BuilderNodeId {
3333    fn from(node: RootTextBindingOpt1Node) -> Self {
3334        node.node_id
3335    }
3336}
3337///Branded type for RootValueBinding non-terminal
3338#[derive(Debug, Clone)]
3339pub struct RootValueBindingNode {
3340    pub(super) node_id: BuilderNodeId,
3341    pub(super) builder: CstBuilder,
3342}
3343impl RootValueBindingNode {
3344    /// Consume this node and return its builder
3345    pub fn into_builder(self) -> CstBuilder {
3346        self.builder
3347    }
3348}
3349impl From<RootValueBindingNode> for BuilderNodeId {
3350    fn from(node: RootValueBindingNode) -> Self {
3351        node.node_id
3352    }
3353}
3354///Branded type for SQuote non-terminal
3355#[derive(Debug, Clone)]
3356pub struct SQuoteNode {
3357    pub(super) node_id: BuilderNodeId,
3358    pub(super) builder: CstBuilder,
3359}
3360impl SQuoteNode {
3361    /// Consume this node and return its builder
3362    pub fn into_builder(self) -> CstBuilder {
3363        self.builder
3364    }
3365}
3366impl From<SQuoteNode> for BuilderNodeId {
3367    fn from(node: SQuoteNode) -> Self {
3368        node.node_id
3369    }
3370}
3371///Branded type for Section non-terminal
3372#[derive(Debug, Clone)]
3373pub struct SectionNode {
3374    pub(super) node_id: BuilderNodeId,
3375    pub(super) builder: CstBuilder,
3376}
3377impl SectionNode {
3378    /// Consume this node and return its builder
3379    pub fn into_builder(self) -> CstBuilder {
3380        self.builder
3381    }
3382}
3383impl From<SectionNode> for BuilderNodeId {
3384    fn from(node: SectionNode) -> Self {
3385        node.node_id
3386    }
3387}
3388///Branded type for SectionBinding non-terminal
3389#[derive(Debug, Clone)]
3390pub struct SectionBindingNode {
3391    pub(super) node_id: BuilderNodeId,
3392    pub(super) builder: CstBuilder,
3393}
3394impl SectionBindingNode {
3395    /// Consume this node and return its builder
3396    pub fn into_builder(self) -> CstBuilder {
3397        self.builder
3398    }
3399}
3400impl From<SectionBindingNode> for BuilderNodeId {
3401    fn from(node: SectionBindingNode) -> Self {
3402        node.node_id
3403    }
3404}
3405///Branded type for SectionBody non-terminal
3406#[derive(Debug, Clone)]
3407pub struct SectionBodyNode {
3408    pub(super) node_id: BuilderNodeId,
3409    pub(super) builder: CstBuilder,
3410}
3411impl SectionBodyNode {
3412    /// Consume this node and return its builder
3413    pub fn into_builder(self) -> CstBuilder {
3414        self.builder
3415    }
3416}
3417impl From<SectionBodyNode> for BuilderNodeId {
3418    fn from(node: SectionBodyNode) -> Self {
3419        node.node_id
3420    }
3421}
3422///Branded type for SectionBodyOpt non-terminal
3423#[derive(Debug, Clone)]
3424pub struct SectionBodyOptNode {
3425    pub(super) node_id: BuilderNodeId,
3426    pub(super) builder: CstBuilder,
3427}
3428impl SectionBodyOptNode {
3429    /// Consume this node and return its builder
3430    pub fn into_builder(self) -> CstBuilder {
3431        self.builder
3432    }
3433}
3434impl From<SectionBodyOptNode> for BuilderNodeId {
3435    fn from(node: SectionBodyOptNode) -> Self {
3436        node.node_id
3437    }
3438}
3439///Branded type for SectionHead non-terminal
3440#[derive(Debug, Clone)]
3441pub struct SectionHeadNode {
3442    pub(super) node_id: BuilderNodeId,
3443    pub(super) builder: CstBuilder,
3444}
3445impl SectionHeadNode {
3446    /// Consume this node and return its builder
3447    pub fn into_builder(self) -> CstBuilder {
3448        self.builder
3449    }
3450}
3451impl From<SectionHeadNode> for BuilderNodeId {
3452    fn from(node: SectionHeadNode) -> Self {
3453        node.node_id
3454    }
3455}
3456///Branded type for Str non-terminal
3457#[derive(Debug, Clone)]
3458pub struct StrNode {
3459    pub(super) node_id: BuilderNodeId,
3460    pub(super) builder: CstBuilder,
3461}
3462impl StrNode {
3463    /// Consume this node and return its builder
3464    pub fn into_builder(self) -> CstBuilder {
3465        self.builder
3466    }
3467}
3468impl From<StrNode> for BuilderNodeId {
3469    fn from(node: StrNode) -> Self {
3470        node.node_id
3471    }
3472}
3473///Branded type for String non-terminal
3474#[derive(Debug, Clone)]
3475pub struct StringNode {
3476    pub(super) node_id: BuilderNodeId,
3477    pub(super) builder: CstBuilder,
3478}
3479impl StringNode {
3480    /// Consume this node and return its builder
3481    pub fn into_builder(self) -> CstBuilder {
3482        self.builder
3483    }
3484}
3485impl From<StringNode> for BuilderNodeId {
3486    fn from(node: StringNode) -> Self {
3487        node.node_id
3488    }
3489}
3490///Branded type for Strings non-terminal
3491#[derive(Debug, Clone)]
3492pub struct StringsNode {
3493    pub(super) node_id: BuilderNodeId,
3494    pub(super) builder: CstBuilder,
3495}
3496impl StringsNode {
3497    /// Consume this node and return its builder
3498    pub fn into_builder(self) -> CstBuilder {
3499        self.builder
3500    }
3501}
3502impl From<StringsNode> for BuilderNodeId {
3503    fn from(node: StringsNode) -> Self {
3504        node.node_id
3505    }
3506}
3507///Branded type for StringsList non-terminal
3508#[derive(Debug, Clone)]
3509pub struct StringsListNode {
3510    pub(super) node_id: BuilderNodeId,
3511    pub(super) builder: CstBuilder,
3512}
3513impl StringsListNode {
3514    /// Consume this node and return its builder
3515    pub fn into_builder(self) -> CstBuilder {
3516        self.builder
3517    }
3518}
3519impl From<StringsListNode> for BuilderNodeId {
3520    fn from(node: StringsListNode) -> Self {
3521        node.node_id
3522    }
3523}
3524///Branded type for Text non-terminal
3525#[derive(Debug, Clone)]
3526pub struct TextNode {
3527    pub(super) node_id: BuilderNodeId,
3528    pub(super) builder: CstBuilder,
3529}
3530impl TextNode {
3531    /// Consume this node and return its builder
3532    pub fn into_builder(self) -> CstBuilder {
3533        self.builder
3534    }
3535}
3536impl From<TextNode> for BuilderNodeId {
3537    fn from(node: TextNode) -> Self {
3538        node.node_id
3539    }
3540}
3541///Branded type for TextBinding non-terminal
3542#[derive(Debug, Clone)]
3543pub struct TextBindingNode {
3544    pub(super) node_id: BuilderNodeId,
3545    pub(super) builder: CstBuilder,
3546}
3547impl TextBindingNode {
3548    /// Consume this node and return its builder
3549    pub fn into_builder(self) -> CstBuilder {
3550        self.builder
3551    }
3552}
3553impl From<TextBindingNode> for BuilderNodeId {
3554    fn from(node: TextBindingNode) -> Self {
3555        node.node_id
3556    }
3557}
3558///Branded type for TextBindingOpt non-terminal
3559#[derive(Debug, Clone)]
3560pub struct TextBindingOptNode {
3561    pub(super) node_id: BuilderNodeId,
3562    pub(super) builder: CstBuilder,
3563}
3564impl TextBindingOptNode {
3565    /// Consume this node and return its builder
3566    pub fn into_builder(self) -> CstBuilder {
3567        self.builder
3568    }
3569}
3570impl From<TextBindingOptNode> for BuilderNodeId {
3571    fn from(node: TextBindingOptNode) -> Self {
3572        node.node_id
3573    }
3574}
3575///Branded type for TextBindingOpt0 non-terminal
3576#[derive(Debug, Clone)]
3577pub struct TextBindingOpt0Node {
3578    pub(super) node_id: BuilderNodeId,
3579    pub(super) builder: CstBuilder,
3580}
3581impl TextBindingOpt0Node {
3582    /// Consume this node and return its builder
3583    pub fn into_builder(self) -> CstBuilder {
3584        self.builder
3585    }
3586}
3587impl From<TextBindingOpt0Node> for BuilderNodeId {
3588    fn from(node: TextBindingOpt0Node) -> Self {
3589        node.node_id
3590    }
3591}
3592///Branded type for TextBindingOpt1 non-terminal
3593#[derive(Debug, Clone)]
3594pub struct TextBindingOpt1Node {
3595    pub(super) node_id: BuilderNodeId,
3596    pub(super) builder: CstBuilder,
3597}
3598impl TextBindingOpt1Node {
3599    /// Consume this node and return its builder
3600    pub fn into_builder(self) -> CstBuilder {
3601        self.builder
3602    }
3603}
3604impl From<TextBindingOpt1Node> for BuilderNodeId {
3605    fn from(node: TextBindingOpt1Node) -> Self {
3606        node.node_id
3607    }
3608}
3609///Branded type for TextStart non-terminal
3610#[derive(Debug, Clone)]
3611pub struct TextStartNode {
3612    pub(super) node_id: BuilderNodeId,
3613    pub(super) builder: CstBuilder,
3614}
3615impl TextStartNode {
3616    /// Consume this node and return its builder
3617    pub fn into_builder(self) -> CstBuilder {
3618        self.builder
3619    }
3620}
3621impl From<TextStartNode> for BuilderNodeId {
3622    fn from(node: TextStartNode) -> Self {
3623        node.node_id
3624    }
3625}
3626///Branded type for TopLevelBinding non-terminal
3627#[derive(Debug, Clone)]
3628pub struct TopLevelBindingNode {
3629    pub(super) node_id: BuilderNodeId,
3630    pub(super) builder: CstBuilder,
3631}
3632impl TopLevelBindingNode {
3633    /// Consume this node and return its builder
3634    pub fn into_builder(self) -> CstBuilder {
3635        self.builder
3636    }
3637}
3638impl From<TopLevelBindingNode> for BuilderNodeId {
3639    fn from(node: TopLevelBindingNode) -> Self {
3640        node.node_id
3641    }
3642}
3643///Branded type for True non-terminal
3644#[derive(Debug, Clone)]
3645pub struct TrueNode {
3646    pub(super) node_id: BuilderNodeId,
3647    pub(super) builder: CstBuilder,
3648}
3649impl TrueNode {
3650    /// Consume this node and return its builder
3651    pub fn into_builder(self) -> CstBuilder {
3652        self.builder
3653    }
3654}
3655impl From<TrueNode> for BuilderNodeId {
3656    fn from(node: TrueNode) -> Self {
3657        node.node_id
3658    }
3659}
3660///Branded type for Tuple non-terminal
3661#[derive(Debug, Clone)]
3662pub struct TupleNode {
3663    pub(super) node_id: BuilderNodeId,
3664    pub(super) builder: CstBuilder,
3665}
3666impl TupleNode {
3667    /// Consume this node and return its builder
3668    pub fn into_builder(self) -> CstBuilder {
3669        self.builder
3670    }
3671}
3672impl From<TupleNode> for BuilderNodeId {
3673    fn from(node: TupleNode) -> Self {
3674        node.node_id
3675    }
3676}
3677///Branded type for TupleElements non-terminal
3678#[derive(Debug, Clone)]
3679pub struct TupleElementsNode {
3680    pub(super) node_id: BuilderNodeId,
3681    pub(super) builder: CstBuilder,
3682}
3683impl TupleElementsNode {
3684    /// Consume this node and return its builder
3685    pub fn into_builder(self) -> CstBuilder {
3686        self.builder
3687    }
3688}
3689impl From<TupleElementsNode> for BuilderNodeId {
3690    fn from(node: TupleElementsNode) -> Self {
3691        node.node_id
3692    }
3693}
3694///Branded type for TupleElementsOpt non-terminal
3695#[derive(Debug, Clone)]
3696pub struct TupleElementsOptNode {
3697    pub(super) node_id: BuilderNodeId,
3698    pub(super) builder: CstBuilder,
3699}
3700impl TupleElementsOptNode {
3701    /// Consume this node and return its builder
3702    pub fn into_builder(self) -> CstBuilder {
3703        self.builder
3704    }
3705}
3706impl From<TupleElementsOptNode> for BuilderNodeId {
3707    fn from(node: TupleElementsOptNode) -> Self {
3708        node.node_id
3709    }
3710}
3711///Branded type for TupleElementsTail non-terminal
3712#[derive(Debug, Clone)]
3713pub struct TupleElementsTailNode {
3714    pub(super) node_id: BuilderNodeId,
3715    pub(super) builder: CstBuilder,
3716}
3717impl TupleElementsTailNode {
3718    /// Consume this node and return its builder
3719    pub fn into_builder(self) -> CstBuilder {
3720        self.builder
3721    }
3722}
3723impl From<TupleElementsTailNode> for BuilderNodeId {
3724    fn from(node: TupleElementsTailNode) -> Self {
3725        node.node_id
3726    }
3727}
3728///Branded type for TupleElementsTailOpt non-terminal
3729#[derive(Debug, Clone)]
3730pub struct TupleElementsTailOptNode {
3731    pub(super) node_id: BuilderNodeId,
3732    pub(super) builder: CstBuilder,
3733}
3734impl TupleElementsTailOptNode {
3735    /// Consume this node and return its builder
3736    pub fn into_builder(self) -> CstBuilder {
3737        self.builder
3738    }
3739}
3740impl From<TupleElementsTailOptNode> for BuilderNodeId {
3741    fn from(node: TupleElementsTailOptNode) -> Self {
3742        node.node_id
3743    }
3744}
3745///Branded type for TupleIndex non-terminal
3746#[derive(Debug, Clone)]
3747pub struct TupleIndexNode {
3748    pub(super) node_id: BuilderNodeId,
3749    pub(super) builder: CstBuilder,
3750}
3751impl TupleIndexNode {
3752    /// Consume this node and return its builder
3753    pub fn into_builder(self) -> CstBuilder {
3754        self.builder
3755    }
3756}
3757impl From<TupleIndexNode> for BuilderNodeId {
3758    fn from(node: TupleIndexNode) -> Self {
3759        node.node_id
3760    }
3761}
3762///Branded type for TupleOpt non-terminal
3763#[derive(Debug, Clone)]
3764pub struct TupleOptNode {
3765    pub(super) node_id: BuilderNodeId,
3766    pub(super) builder: CstBuilder,
3767}
3768impl TupleOptNode {
3769    /// Consume this node and return its builder
3770    pub fn into_builder(self) -> CstBuilder {
3771        self.builder
3772    }
3773}
3774impl From<TupleOptNode> for BuilderNodeId {
3775    fn from(node: TupleOptNode) -> Self {
3776        node.node_id
3777    }
3778}
3779///Branded type for Value non-terminal
3780#[derive(Debug, Clone)]
3781pub struct ValueNode {
3782    pub(super) node_id: BuilderNodeId,
3783    pub(super) builder: CstBuilder,
3784}
3785impl ValueNode {
3786    /// Consume this node and return its builder
3787    pub fn into_builder(self) -> CstBuilder {
3788        self.builder
3789    }
3790}
3791impl From<ValueNode> for BuilderNodeId {
3792    fn from(node: ValueNode) -> Self {
3793        node.node_id
3794    }
3795}
3796///Branded type for ValueBinding non-terminal
3797#[derive(Debug, Clone)]
3798pub struct ValueBindingNode {
3799    pub(super) node_id: BuilderNodeId,
3800    pub(super) builder: CstBuilder,
3801}
3802impl ValueBindingNode {
3803    /// Consume this node and return its builder
3804    pub fn into_builder(self) -> CstBuilder {
3805        self.builder
3806    }
3807}
3808impl From<ValueBindingNode> for BuilderNodeId {
3809    fn from(node: ValueBindingNode) -> Self {
3810        node.node_id
3811    }
3812}
3813///Branded type for Ws non-terminal
3814#[derive(Debug, Clone)]
3815pub struct WsNode {
3816    pub(super) node_id: BuilderNodeId,
3817    pub(super) builder: CstBuilder,
3818}
3819impl WsNode {
3820    /// Consume this node and return its builder
3821    pub fn into_builder(self) -> CstBuilder {
3822        self.builder
3823    }
3824}
3825impl From<WsNode> for BuilderNodeId {
3826    fn from(node: WsNode) -> Self {
3827        node.node_id
3828    }
3829}
3830///Branded type for Root non-terminal
3831#[derive(Debug, Clone)]
3832pub struct RootNode {
3833    pub(super) node_id: BuilderNodeId,
3834    pub(super) builder: CstBuilder,
3835}
3836impl RootNode {
3837    /// Consume this node and return its builder
3838    pub fn into_builder(self) -> CstBuilder {
3839        self.builder
3840    }
3841}
3842impl From<RootNode> for BuilderNodeId {
3843    fn from(node: RootNode) -> Self {
3844        node.node_id
3845    }
3846}
3847#[derive(bon::Builder)]
3848pub struct ArrayConstructor {
3849    array_begin: ArrayBeginNode,
3850    array_opt: ArrayOptNode,
3851    array_end: ArrayEndNode,
3852}
3853impl ArrayConstructor {
3854    pub fn build(self) -> ArrayNode {
3855        let mut builder = CstBuilder::new();
3856        let array_begin = builder.embed(self.array_begin.builder);
3857        let array_opt = builder.embed(self.array_opt.builder);
3858        let array_end = builder.embed(self.array_end.builder);
3859        let node_id = builder.non_terminal(
3860            NonTerminalKind::Array,
3861            vec![array_begin, array_opt, array_end],
3862        );
3863        ArrayNode { node_id, builder }
3864    }
3865}
3866#[derive(bon::Builder)]
3867pub struct ArrayBeginConstructor {
3868    l_bracket: LBracketToken,
3869}
3870impl ArrayBeginConstructor {
3871    pub fn build(self) -> ArrayBeginNode {
3872        let mut builder = CstBuilder::new();
3873        let l_bracket = builder.embed(self.l_bracket.builder);
3874        let node_id = builder.non_terminal(NonTerminalKind::ArrayBegin, vec![l_bracket]);
3875        ArrayBeginNode { node_id, builder }
3876    }
3877}
3878#[derive(bon::Builder)]
3879pub struct ArrayElementsConstructor {
3880    value: ValueNode,
3881    array_elements_opt: ArrayElementsOptNode,
3882}
3883impl ArrayElementsConstructor {
3884    pub fn build(self) -> ArrayElementsNode {
3885        let mut builder = CstBuilder::new();
3886        let value = builder.embed(self.value.builder);
3887        let array_elements_opt = builder.embed(self.array_elements_opt.builder);
3888        let node_id = builder.non_terminal(
3889            NonTerminalKind::ArrayElements,
3890            vec![value, array_elements_opt],
3891        );
3892        ArrayElementsNode { node_id, builder }
3893    }
3894}
3895#[derive(bon::Builder)]
3896pub struct ArrayElementsOptConstructor {
3897    array_elements_tail: Option<ArrayElementsTailNode>,
3898}
3899impl ArrayElementsOptConstructor {
3900    pub fn build(self) -> ArrayElementsOptNode {
3901        let mut builder = CstBuilder::new();
3902        let children = if let Some(child) = self.array_elements_tail {
3903            vec![builder.embed(child.builder)]
3904        } else {
3905            Vec::<BuilderNodeId>::new()
3906        };
3907        let node_id = builder.non_terminal(NonTerminalKind::ArrayElementsOpt, children);
3908        ArrayElementsOptNode { node_id, builder }
3909    }
3910}
3911#[derive(bon::Builder)]
3912pub struct ArrayElementsTailConstructor {
3913    comma: CommaNode,
3914    array_elements_tail_opt: ArrayElementsTailOptNode,
3915}
3916impl ArrayElementsTailConstructor {
3917    pub fn build(self) -> ArrayElementsTailNode {
3918        let mut builder = CstBuilder::new();
3919        let comma = builder.embed(self.comma.builder);
3920        let array_elements_tail_opt = builder.embed(self.array_elements_tail_opt.builder);
3921        let node_id = builder.non_terminal(
3922            NonTerminalKind::ArrayElementsTail,
3923            vec![comma, array_elements_tail_opt],
3924        );
3925        ArrayElementsTailNode { node_id, builder }
3926    }
3927}
3928#[derive(bon::Builder)]
3929pub struct ArrayElementsTailOptConstructor {
3930    array_elements: Option<ArrayElementsNode>,
3931}
3932impl ArrayElementsTailOptConstructor {
3933    pub fn build(self) -> ArrayElementsTailOptNode {
3934        let mut builder = CstBuilder::new();
3935        let children = if let Some(child) = self.array_elements {
3936            vec![builder.embed(child.builder)]
3937        } else {
3938            Vec::<BuilderNodeId>::new()
3939        };
3940        let node_id = builder.non_terminal(NonTerminalKind::ArrayElementsTailOpt, children);
3941        ArrayElementsTailOptNode { node_id, builder }
3942    }
3943}
3944#[derive(bon::Builder)]
3945pub struct ArrayEndConstructor {
3946    r_bracket: RBracketToken,
3947}
3948impl ArrayEndConstructor {
3949    pub fn build(self) -> ArrayEndNode {
3950        let mut builder = CstBuilder::new();
3951        let r_bracket = builder.embed(self.r_bracket.builder);
3952        let node_id = builder.non_terminal(NonTerminalKind::ArrayEnd, vec![r_bracket]);
3953        ArrayEndNode { node_id, builder }
3954    }
3955}
3956#[derive(bon::Builder)]
3957pub struct ArrayMarkerConstructor {
3958    array_begin: ArrayBeginNode,
3959    array_marker_opt: ArrayMarkerOptNode,
3960    array_end: ArrayEndNode,
3961}
3962impl ArrayMarkerConstructor {
3963    pub fn build(self) -> ArrayMarkerNode {
3964        let mut builder = CstBuilder::new();
3965        let array_begin = builder.embed(self.array_begin.builder);
3966        let array_marker_opt = builder.embed(self.array_marker_opt.builder);
3967        let array_end = builder.embed(self.array_end.builder);
3968        let node_id = builder.non_terminal(
3969            NonTerminalKind::ArrayMarker,
3970            vec![array_begin, array_marker_opt, array_end],
3971        );
3972        ArrayMarkerNode { node_id, builder }
3973    }
3974}
3975#[derive(bon::Builder)]
3976pub struct ArrayMarkerOptConstructor {
3977    array_marker_opt_group: Option<ArrayMarkerOptGroupNode>,
3978}
3979impl ArrayMarkerOptConstructor {
3980    pub fn build(self) -> ArrayMarkerOptNode {
3981        let mut builder = CstBuilder::new();
3982        let children = if let Some(child) = self.array_marker_opt_group {
3983            vec![builder.embed(child.builder)]
3984        } else {
3985            Vec::<BuilderNodeId>::new()
3986        };
3987        let node_id = builder.non_terminal(NonTerminalKind::ArrayMarkerOpt, children);
3988        ArrayMarkerOptNode { node_id, builder }
3989    }
3990}
3991pub enum ArrayMarkerOptGroupConstructor {
3992    Integer(IntegerNode),
3993    Caret(CaretNode),
3994}
3995impl ArrayMarkerOptGroupConstructor {
3996    pub fn build(self) -> ArrayMarkerOptGroupNode {
3997        let mut builder = CstBuilder::new();
3998        let child_id = match self {
3999            Self::Integer(node) => builder.embed(node.builder),
4000            Self::Caret(node) => builder.embed(node.builder),
4001        };
4002        let node_id = builder.non_terminal(NonTerminalKind::ArrayMarkerOptGroup, vec![child_id]);
4003        ArrayMarkerOptGroupNode { node_id, builder }
4004    }
4005}
4006#[derive(bon::Builder)]
4007pub struct ArrayOptConstructor {
4008    array_elements: Option<ArrayElementsNode>,
4009}
4010impl ArrayOptConstructor {
4011    pub fn build(self) -> ArrayOptNode {
4012        let mut builder = CstBuilder::new();
4013        let children = if let Some(child) = self.array_elements {
4014            vec![builder.embed(child.builder)]
4015        } else {
4016            Vec::<BuilderNodeId>::new()
4017        };
4018        let node_id = builder.non_terminal(NonTerminalKind::ArrayOpt, children);
4019        ArrayOptNode { node_id, builder }
4020    }
4021}
4022#[derive(bon::Builder)]
4023pub struct AtConstructor {
4024    at: AtToken,
4025}
4026impl AtConstructor {
4027    pub fn build(self) -> AtNode {
4028        let mut builder = CstBuilder::new();
4029        let at = builder.embed(self.at.builder);
4030        let node_id = builder.non_terminal(NonTerminalKind::At, vec![at]);
4031        AtNode { node_id, builder }
4032    }
4033}
4034#[derive(bon::Builder)]
4035pub struct Backtick2Constructor {
4036    backtick_2: Backtick2Token,
4037}
4038impl Backtick2Constructor {
4039    pub fn build(self) -> Backtick2Node {
4040        let mut builder = CstBuilder::new();
4041        let backtick_2 = builder.embed(self.backtick_2.builder);
4042        let node_id = builder.non_terminal(NonTerminalKind::Backtick2, vec![backtick_2]);
4043        Backtick2Node { node_id, builder }
4044    }
4045}
4046#[derive(bon::Builder)]
4047pub struct Backtick3Constructor {
4048    backtick_3: Backtick3Token,
4049}
4050impl Backtick3Constructor {
4051    pub fn build(self) -> Backtick3Node {
4052        let mut builder = CstBuilder::new();
4053        let backtick_3 = builder.embed(self.backtick_3.builder);
4054        let node_id = builder.non_terminal(NonTerminalKind::Backtick3, vec![backtick_3]);
4055        Backtick3Node { node_id, builder }
4056    }
4057}
4058#[derive(bon::Builder)]
4059pub struct Backtick4Constructor {
4060    backtick_4: Backtick4Token,
4061}
4062impl Backtick4Constructor {
4063    pub fn build(self) -> Backtick4Node {
4064        let mut builder = CstBuilder::new();
4065        let backtick_4 = builder.embed(self.backtick_4.builder);
4066        let node_id = builder.non_terminal(NonTerminalKind::Backtick4, vec![backtick_4]);
4067        Backtick4Node { node_id, builder }
4068    }
4069}
4070#[derive(bon::Builder)]
4071pub struct Backtick5Constructor {
4072    backtick_5: Backtick5Token,
4073}
4074impl Backtick5Constructor {
4075    pub fn build(self) -> Backtick5Node {
4076        let mut builder = CstBuilder::new();
4077        let backtick_5 = builder.embed(self.backtick_5.builder);
4078        let node_id = builder.non_terminal(NonTerminalKind::Backtick5, vec![backtick_5]);
4079        Backtick5Node { node_id, builder }
4080    }
4081}
4082#[derive(bon::Builder)]
4083pub struct BacktickDelimConstructor {
4084    backtick_delim: BacktickDelimToken,
4085}
4086impl BacktickDelimConstructor {
4087    pub fn build(self) -> BacktickDelimNode {
4088        let mut builder = CstBuilder::new();
4089        let backtick_delim = builder.embed(self.backtick_delim.builder);
4090        let node_id = builder.non_terminal(NonTerminalKind::BacktickDelim, vec![backtick_delim]);
4091        BacktickDelimNode { node_id, builder }
4092    }
4093}
4094#[derive(bon::Builder)]
4095pub struct BeginConstructor {
4096    l_brace: LBraceToken,
4097}
4098impl BeginConstructor {
4099    pub fn build(self) -> BeginNode {
4100        let mut builder = CstBuilder::new();
4101        let l_brace = builder.embed(self.l_brace.builder);
4102        let node_id = builder.non_terminal(NonTerminalKind::Begin, vec![l_brace]);
4103        BeginNode { node_id, builder }
4104    }
4105}
4106#[derive(bon::Builder)]
4107pub struct BindConstructor {
4108    bind: BindToken,
4109}
4110impl BindConstructor {
4111    pub fn build(self) -> BindNode {
4112        let mut builder = CstBuilder::new();
4113        let bind = builder.embed(self.bind.builder);
4114        let node_id = builder.non_terminal(NonTerminalKind::Bind, vec![bind]);
4115        BindNode { node_id, builder }
4116    }
4117}
4118#[derive(bon::Builder)]
4119pub struct BindingConstructor {
4120    keys: KeysNode,
4121    binding_rhs: BindingRhsNode,
4122}
4123impl BindingConstructor {
4124    pub fn build(self) -> BindingNode {
4125        let mut builder = CstBuilder::new();
4126        let keys = builder.embed(self.keys.builder);
4127        let binding_rhs = builder.embed(self.binding_rhs.builder);
4128        let node_id = builder.non_terminal(NonTerminalKind::Binding, vec![keys, binding_rhs]);
4129        BindingNode { node_id, builder }
4130    }
4131}
4132pub enum BindingRhsConstructor {
4133    ValueBinding(ValueBindingNode),
4134    SectionBinding(SectionBindingNode),
4135    TextBinding(TextBindingNode),
4136}
4137impl BindingRhsConstructor {
4138    pub fn build(self) -> BindingRhsNode {
4139        let mut builder = CstBuilder::new();
4140        let child_id = match self {
4141            Self::ValueBinding(node) => builder.embed(node.builder),
4142            Self::SectionBinding(node) => builder.embed(node.builder),
4143            Self::TextBinding(node) => builder.embed(node.builder),
4144        };
4145        let node_id = builder.non_terminal(NonTerminalKind::BindingRhs, vec![child_id]);
4146        BindingRhsNode { node_id, builder }
4147    }
4148}
4149#[derive(bon::Builder)]
4150pub struct BlockBodyConstructor {
4151    begin: BeginNode,
4152    eure: EureNode,
4153    end: EndNode,
4154}
4155impl BlockBodyConstructor {
4156    pub fn build(self) -> BlockBodyNode {
4157        let mut builder = CstBuilder::new();
4158        let begin = builder.embed(self.begin.builder);
4159        let eure = builder.embed(self.eure.builder);
4160        let end = builder.embed(self.end.builder);
4161        let node_id = builder.non_terminal(NonTerminalKind::BlockBody, vec![begin, eure, end]);
4162        BlockBodyNode { node_id, builder }
4163    }
4164}
4165pub enum BooleanConstructor {
4166    True(TrueNode),
4167    False(FalseNode),
4168}
4169impl BooleanConstructor {
4170    pub fn build(self) -> BooleanNode {
4171        let mut builder = CstBuilder::new();
4172        let child_id = match self {
4173            Self::True(node) => builder.embed(node.builder),
4174            Self::False(node) => builder.embed(node.builder),
4175        };
4176        let node_id = builder.non_terminal(NonTerminalKind::Boolean, vec![child_id]);
4177        BooleanNode { node_id, builder }
4178    }
4179}
4180#[derive(bon::Builder)]
4181pub struct CaretConstructor {
4182    circumflex: CircumflexToken,
4183}
4184impl CaretConstructor {
4185    pub fn build(self) -> CaretNode {
4186        let mut builder = CstBuilder::new();
4187        let circumflex = builder.embed(self.circumflex.builder);
4188        let node_id = builder.non_terminal(NonTerminalKind::Caret, vec![circumflex]);
4189        CaretNode { node_id, builder }
4190    }
4191}
4192pub enum CodeBlockConstructor {
4193    CodeBlock3(CodeBlock3Node),
4194    CodeBlock4(CodeBlock4Node),
4195    CodeBlock5(CodeBlock5Node),
4196    CodeBlock6(CodeBlock6Node),
4197}
4198impl CodeBlockConstructor {
4199    pub fn build(self) -> CodeBlockNode {
4200        let mut builder = CstBuilder::new();
4201        let child_id = match self {
4202            Self::CodeBlock3(node) => builder.embed(node.builder),
4203            Self::CodeBlock4(node) => builder.embed(node.builder),
4204            Self::CodeBlock5(node) => builder.embed(node.builder),
4205            Self::CodeBlock6(node) => builder.embed(node.builder),
4206        };
4207        let node_id = builder.non_terminal(NonTerminalKind::CodeBlock, vec![child_id]);
4208        CodeBlockNode { node_id, builder }
4209    }
4210}
4211#[derive(bon::Builder)]
4212pub struct CodeBlock3Constructor {
4213    code_block_start_3: CodeBlockStart3Node,
4214    code_block_3_list: CodeBlock3ListNode,
4215    code_block_end_3: CodeBlockEnd3Node,
4216}
4217impl CodeBlock3Constructor {
4218    pub fn build(self) -> CodeBlock3Node {
4219        let mut builder = CstBuilder::new();
4220        let code_block_start_3 = builder.embed(self.code_block_start_3.builder);
4221        let code_block_3_list = builder.embed(self.code_block_3_list.builder);
4222        let code_block_end_3 = builder.embed(self.code_block_end_3.builder);
4223        let node_id = builder.non_terminal(
4224            NonTerminalKind::CodeBlock3,
4225            vec![code_block_start_3, code_block_3_list, code_block_end_3],
4226        );
4227        CodeBlock3Node { node_id, builder }
4228    }
4229}
4230#[derive(bon::Builder)]
4231pub struct CodeBlock3ListConstructor {
4232    code_block_3_list_group: CodeBlock3ListGroupNode,
4233    code_block_3_list: CodeBlock3ListNode,
4234}
4235impl CodeBlock3ListConstructor {
4236    /// Create an empty node (base case for recursion)
4237    pub fn empty() -> CodeBlock3ListNode {
4238        let mut builder = CstBuilder::new();
4239        let node_id =
4240            builder.non_terminal(NonTerminalKind::CodeBlock3List, Vec::<BuilderNodeId>::new());
4241        CodeBlock3ListNode { node_id, builder }
4242    }
4243    /// Create a node with children (recursive case)
4244    pub fn build(self) -> CodeBlock3ListNode {
4245        let mut builder = CstBuilder::new();
4246        let code_block_3_list_group = builder.embed(self.code_block_3_list_group.builder);
4247        let code_block_3_list = builder.embed(self.code_block_3_list.builder);
4248        let node_id = builder.non_terminal(
4249            NonTerminalKind::CodeBlock3List,
4250            vec![code_block_3_list_group, code_block_3_list],
4251        );
4252        CodeBlock3ListNode { node_id, builder }
4253    }
4254}
4255pub enum CodeBlock3ListGroupConstructor {
4256    NoBacktick(NoBacktickNode),
4257    Backtick2(Backtick2Node),
4258}
4259impl CodeBlock3ListGroupConstructor {
4260    pub fn build(self) -> CodeBlock3ListGroupNode {
4261        let mut builder = CstBuilder::new();
4262        let child_id = match self {
4263            Self::NoBacktick(node) => builder.embed(node.builder),
4264            Self::Backtick2(node) => builder.embed(node.builder),
4265        };
4266        let node_id = builder.non_terminal(NonTerminalKind::CodeBlock3ListGroup, vec![child_id]);
4267        CodeBlock3ListGroupNode { node_id, builder }
4268    }
4269}
4270#[derive(bon::Builder)]
4271pub struct CodeBlock4Constructor {
4272    code_block_start_4: CodeBlockStart4Node,
4273    code_block_4_list: CodeBlock4ListNode,
4274    code_block_end_4: CodeBlockEnd4Node,
4275}
4276impl CodeBlock4Constructor {
4277    pub fn build(self) -> CodeBlock4Node {
4278        let mut builder = CstBuilder::new();
4279        let code_block_start_4 = builder.embed(self.code_block_start_4.builder);
4280        let code_block_4_list = builder.embed(self.code_block_4_list.builder);
4281        let code_block_end_4 = builder.embed(self.code_block_end_4.builder);
4282        let node_id = builder.non_terminal(
4283            NonTerminalKind::CodeBlock4,
4284            vec![code_block_start_4, code_block_4_list, code_block_end_4],
4285        );
4286        CodeBlock4Node { node_id, builder }
4287    }
4288}
4289#[derive(bon::Builder)]
4290pub struct CodeBlock4ListConstructor {
4291    code_block_4_list_group: CodeBlock4ListGroupNode,
4292    code_block_4_list: CodeBlock4ListNode,
4293}
4294impl CodeBlock4ListConstructor {
4295    /// Create an empty node (base case for recursion)
4296    pub fn empty() -> CodeBlock4ListNode {
4297        let mut builder = CstBuilder::new();
4298        let node_id =
4299            builder.non_terminal(NonTerminalKind::CodeBlock4List, Vec::<BuilderNodeId>::new());
4300        CodeBlock4ListNode { node_id, builder }
4301    }
4302    /// Create a node with children (recursive case)
4303    pub fn build(self) -> CodeBlock4ListNode {
4304        let mut builder = CstBuilder::new();
4305        let code_block_4_list_group = builder.embed(self.code_block_4_list_group.builder);
4306        let code_block_4_list = builder.embed(self.code_block_4_list.builder);
4307        let node_id = builder.non_terminal(
4308            NonTerminalKind::CodeBlock4List,
4309            vec![code_block_4_list_group, code_block_4_list],
4310        );
4311        CodeBlock4ListNode { node_id, builder }
4312    }
4313}
4314pub enum CodeBlock4ListGroupConstructor {
4315    NoBacktick(NoBacktickNode),
4316    Backtick3(Backtick3Node),
4317}
4318impl CodeBlock4ListGroupConstructor {
4319    pub fn build(self) -> CodeBlock4ListGroupNode {
4320        let mut builder = CstBuilder::new();
4321        let child_id = match self {
4322            Self::NoBacktick(node) => builder.embed(node.builder),
4323            Self::Backtick3(node) => builder.embed(node.builder),
4324        };
4325        let node_id = builder.non_terminal(NonTerminalKind::CodeBlock4ListGroup, vec![child_id]);
4326        CodeBlock4ListGroupNode { node_id, builder }
4327    }
4328}
4329#[derive(bon::Builder)]
4330pub struct CodeBlock5Constructor {
4331    code_block_start_5: CodeBlockStart5Node,
4332    code_block_5_list: CodeBlock5ListNode,
4333    code_block_end_5: CodeBlockEnd5Node,
4334}
4335impl CodeBlock5Constructor {
4336    pub fn build(self) -> CodeBlock5Node {
4337        let mut builder = CstBuilder::new();
4338        let code_block_start_5 = builder.embed(self.code_block_start_5.builder);
4339        let code_block_5_list = builder.embed(self.code_block_5_list.builder);
4340        let code_block_end_5 = builder.embed(self.code_block_end_5.builder);
4341        let node_id = builder.non_terminal(
4342            NonTerminalKind::CodeBlock5,
4343            vec![code_block_start_5, code_block_5_list, code_block_end_5],
4344        );
4345        CodeBlock5Node { node_id, builder }
4346    }
4347}
4348#[derive(bon::Builder)]
4349pub struct CodeBlock5ListConstructor {
4350    code_block_5_list_group: CodeBlock5ListGroupNode,
4351    code_block_5_list: CodeBlock5ListNode,
4352}
4353impl CodeBlock5ListConstructor {
4354    /// Create an empty node (base case for recursion)
4355    pub fn empty() -> CodeBlock5ListNode {
4356        let mut builder = CstBuilder::new();
4357        let node_id =
4358            builder.non_terminal(NonTerminalKind::CodeBlock5List, Vec::<BuilderNodeId>::new());
4359        CodeBlock5ListNode { node_id, builder }
4360    }
4361    /// Create a node with children (recursive case)
4362    pub fn build(self) -> CodeBlock5ListNode {
4363        let mut builder = CstBuilder::new();
4364        let code_block_5_list_group = builder.embed(self.code_block_5_list_group.builder);
4365        let code_block_5_list = builder.embed(self.code_block_5_list.builder);
4366        let node_id = builder.non_terminal(
4367            NonTerminalKind::CodeBlock5List,
4368            vec![code_block_5_list_group, code_block_5_list],
4369        );
4370        CodeBlock5ListNode { node_id, builder }
4371    }
4372}
4373pub enum CodeBlock5ListGroupConstructor {
4374    NoBacktick(NoBacktickNode),
4375    Backtick4(Backtick4Node),
4376}
4377impl CodeBlock5ListGroupConstructor {
4378    pub fn build(self) -> CodeBlock5ListGroupNode {
4379        let mut builder = CstBuilder::new();
4380        let child_id = match self {
4381            Self::NoBacktick(node) => builder.embed(node.builder),
4382            Self::Backtick4(node) => builder.embed(node.builder),
4383        };
4384        let node_id = builder.non_terminal(NonTerminalKind::CodeBlock5ListGroup, vec![child_id]);
4385        CodeBlock5ListGroupNode { node_id, builder }
4386    }
4387}
4388#[derive(bon::Builder)]
4389pub struct CodeBlock6Constructor {
4390    code_block_start_6: CodeBlockStart6Node,
4391    code_block_6_list: CodeBlock6ListNode,
4392    code_block_end_6: CodeBlockEnd6Node,
4393}
4394impl CodeBlock6Constructor {
4395    pub fn build(self) -> CodeBlock6Node {
4396        let mut builder = CstBuilder::new();
4397        let code_block_start_6 = builder.embed(self.code_block_start_6.builder);
4398        let code_block_6_list = builder.embed(self.code_block_6_list.builder);
4399        let code_block_end_6 = builder.embed(self.code_block_end_6.builder);
4400        let node_id = builder.non_terminal(
4401            NonTerminalKind::CodeBlock6,
4402            vec![code_block_start_6, code_block_6_list, code_block_end_6],
4403        );
4404        CodeBlock6Node { node_id, builder }
4405    }
4406}
4407#[derive(bon::Builder)]
4408pub struct CodeBlock6ListConstructor {
4409    code_block_6_list_group: CodeBlock6ListGroupNode,
4410    code_block_6_list: CodeBlock6ListNode,
4411}
4412impl CodeBlock6ListConstructor {
4413    /// Create an empty node (base case for recursion)
4414    pub fn empty() -> CodeBlock6ListNode {
4415        let mut builder = CstBuilder::new();
4416        let node_id =
4417            builder.non_terminal(NonTerminalKind::CodeBlock6List, Vec::<BuilderNodeId>::new());
4418        CodeBlock6ListNode { node_id, builder }
4419    }
4420    /// Create a node with children (recursive case)
4421    pub fn build(self) -> CodeBlock6ListNode {
4422        let mut builder = CstBuilder::new();
4423        let code_block_6_list_group = builder.embed(self.code_block_6_list_group.builder);
4424        let code_block_6_list = builder.embed(self.code_block_6_list.builder);
4425        let node_id = builder.non_terminal(
4426            NonTerminalKind::CodeBlock6List,
4427            vec![code_block_6_list_group, code_block_6_list],
4428        );
4429        CodeBlock6ListNode { node_id, builder }
4430    }
4431}
4432pub enum CodeBlock6ListGroupConstructor {
4433    NoBacktick(NoBacktickNode),
4434    Backtick5(Backtick5Node),
4435}
4436impl CodeBlock6ListGroupConstructor {
4437    pub fn build(self) -> CodeBlock6ListGroupNode {
4438        let mut builder = CstBuilder::new();
4439        let child_id = match self {
4440            Self::NoBacktick(node) => builder.embed(node.builder),
4441            Self::Backtick5(node) => builder.embed(node.builder),
4442        };
4443        let node_id = builder.non_terminal(NonTerminalKind::CodeBlock6ListGroup, vec![child_id]);
4444        CodeBlock6ListGroupNode { node_id, builder }
4445    }
4446}
4447#[derive(bon::Builder)]
4448pub struct CodeBlockEnd3Constructor {
4449    code_block_end_3: CodeBlockEnd3Token,
4450}
4451impl CodeBlockEnd3Constructor {
4452    pub fn build(self) -> CodeBlockEnd3Node {
4453        let mut builder = CstBuilder::new();
4454        let code_block_end_3 = builder.embed(self.code_block_end_3.builder);
4455        let node_id = builder.non_terminal(NonTerminalKind::CodeBlockEnd3, vec![code_block_end_3]);
4456        CodeBlockEnd3Node { node_id, builder }
4457    }
4458}
4459#[derive(bon::Builder)]
4460pub struct CodeBlockEnd4Constructor {
4461    code_block_end_4: CodeBlockEnd4Token,
4462}
4463impl CodeBlockEnd4Constructor {
4464    pub fn build(self) -> CodeBlockEnd4Node {
4465        let mut builder = CstBuilder::new();
4466        let code_block_end_4 = builder.embed(self.code_block_end_4.builder);
4467        let node_id = builder.non_terminal(NonTerminalKind::CodeBlockEnd4, vec![code_block_end_4]);
4468        CodeBlockEnd4Node { node_id, builder }
4469    }
4470}
4471#[derive(bon::Builder)]
4472pub struct CodeBlockEnd5Constructor {
4473    code_block_end_5: CodeBlockEnd5Token,
4474}
4475impl CodeBlockEnd5Constructor {
4476    pub fn build(self) -> CodeBlockEnd5Node {
4477        let mut builder = CstBuilder::new();
4478        let code_block_end_5 = builder.embed(self.code_block_end_5.builder);
4479        let node_id = builder.non_terminal(NonTerminalKind::CodeBlockEnd5, vec![code_block_end_5]);
4480        CodeBlockEnd5Node { node_id, builder }
4481    }
4482}
4483#[derive(bon::Builder)]
4484pub struct CodeBlockEnd6Constructor {
4485    code_block_end_6: CodeBlockEnd6Token,
4486}
4487impl CodeBlockEnd6Constructor {
4488    pub fn build(self) -> CodeBlockEnd6Node {
4489        let mut builder = CstBuilder::new();
4490        let code_block_end_6 = builder.embed(self.code_block_end_6.builder);
4491        let node_id = builder.non_terminal(NonTerminalKind::CodeBlockEnd6, vec![code_block_end_6]);
4492        CodeBlockEnd6Node { node_id, builder }
4493    }
4494}
4495#[derive(bon::Builder)]
4496pub struct CodeBlockStart3Constructor {
4497    code_block_start_3: CodeBlockStart3Token,
4498}
4499impl CodeBlockStart3Constructor {
4500    pub fn build(self) -> CodeBlockStart3Node {
4501        let mut builder = CstBuilder::new();
4502        let code_block_start_3 = builder.embed(self.code_block_start_3.builder);
4503        let node_id =
4504            builder.non_terminal(NonTerminalKind::CodeBlockStart3, vec![code_block_start_3]);
4505        CodeBlockStart3Node { node_id, builder }
4506    }
4507}
4508#[derive(bon::Builder)]
4509pub struct CodeBlockStart4Constructor {
4510    code_block_start_4: CodeBlockStart4Token,
4511}
4512impl CodeBlockStart4Constructor {
4513    pub fn build(self) -> CodeBlockStart4Node {
4514        let mut builder = CstBuilder::new();
4515        let code_block_start_4 = builder.embed(self.code_block_start_4.builder);
4516        let node_id =
4517            builder.non_terminal(NonTerminalKind::CodeBlockStart4, vec![code_block_start_4]);
4518        CodeBlockStart4Node { node_id, builder }
4519    }
4520}
4521#[derive(bon::Builder)]
4522pub struct CodeBlockStart5Constructor {
4523    code_block_start_5: CodeBlockStart5Token,
4524}
4525impl CodeBlockStart5Constructor {
4526    pub fn build(self) -> CodeBlockStart5Node {
4527        let mut builder = CstBuilder::new();
4528        let code_block_start_5 = builder.embed(self.code_block_start_5.builder);
4529        let node_id =
4530            builder.non_terminal(NonTerminalKind::CodeBlockStart5, vec![code_block_start_5]);
4531        CodeBlockStart5Node { node_id, builder }
4532    }
4533}
4534#[derive(bon::Builder)]
4535pub struct CodeBlockStart6Constructor {
4536    code_block_start_6: CodeBlockStart6Token,
4537}
4538impl CodeBlockStart6Constructor {
4539    pub fn build(self) -> CodeBlockStart6Node {
4540        let mut builder = CstBuilder::new();
4541        let code_block_start_6 = builder.embed(self.code_block_start_6.builder);
4542        let node_id =
4543            builder.non_terminal(NonTerminalKind::CodeBlockStart6, vec![code_block_start_6]);
4544        CodeBlockStart6Node { node_id, builder }
4545    }
4546}
4547#[derive(bon::Builder)]
4548pub struct CommaConstructor {
4549    comma: CommaToken,
4550}
4551impl CommaConstructor {
4552    pub fn build(self) -> CommaNode {
4553        let mut builder = CstBuilder::new();
4554        let comma = builder.embed(self.comma.builder);
4555        let node_id = builder.non_terminal(NonTerminalKind::Comma, vec![comma]);
4556        CommaNode { node_id, builder }
4557    }
4558}
4559#[derive(bon::Builder)]
4560pub struct ContinueConstructor {
4561    esc: EscToken,
4562}
4563impl ContinueConstructor {
4564    pub fn build(self) -> ContinueNode {
4565        let mut builder = CstBuilder::new();
4566        let esc = builder.embed(self.esc.builder);
4567        let node_id = builder.non_terminal(NonTerminalKind::Continue, vec![esc]);
4568        ContinueNode { node_id, builder }
4569    }
4570}
4571pub enum DelimCodeConstructor {
4572    DelimCode3(DelimCode3Node),
4573    DelimCode2(DelimCode2Node),
4574    DelimCode1(DelimCode1Node),
4575}
4576impl DelimCodeConstructor {
4577    pub fn build(self) -> DelimCodeNode {
4578        let mut builder = CstBuilder::new();
4579        let child_id = match self {
4580            Self::DelimCode3(node) => builder.embed(node.builder),
4581            Self::DelimCode2(node) => builder.embed(node.builder),
4582            Self::DelimCode1(node) => builder.embed(node.builder),
4583        };
4584        let node_id = builder.non_terminal(NonTerminalKind::DelimCode, vec![child_id]);
4585        DelimCodeNode { node_id, builder }
4586    }
4587}
4588#[derive(bon::Builder)]
4589pub struct DelimCode1Constructor {
4590    delim_code_start_1: DelimCodeStart1Node,
4591    delim_code_1_list: DelimCode1ListNode,
4592    delim_code_end_1: DelimCodeEnd1Node,
4593}
4594impl DelimCode1Constructor {
4595    pub fn build(self) -> DelimCode1Node {
4596        let mut builder = CstBuilder::new();
4597        let delim_code_start_1 = builder.embed(self.delim_code_start_1.builder);
4598        let delim_code_1_list = builder.embed(self.delim_code_1_list.builder);
4599        let delim_code_end_1 = builder.embed(self.delim_code_end_1.builder);
4600        let node_id = builder.non_terminal(
4601            NonTerminalKind::DelimCode1,
4602            vec![delim_code_start_1, delim_code_1_list, delim_code_end_1],
4603        );
4604        DelimCode1Node { node_id, builder }
4605    }
4606}
4607#[derive(bon::Builder)]
4608pub struct DelimCode1ListConstructor {
4609    delim_code_1_list_group: DelimCode1ListGroupNode,
4610    delim_code_1_list: DelimCode1ListNode,
4611}
4612impl DelimCode1ListConstructor {
4613    /// Create an empty node (base case for recursion)
4614    pub fn empty() -> DelimCode1ListNode {
4615        let mut builder = CstBuilder::new();
4616        let node_id =
4617            builder.non_terminal(NonTerminalKind::DelimCode1List, Vec::<BuilderNodeId>::new());
4618        DelimCode1ListNode { node_id, builder }
4619    }
4620    /// Create a node with children (recursive case)
4621    pub fn build(self) -> DelimCode1ListNode {
4622        let mut builder = CstBuilder::new();
4623        let delim_code_1_list_group = builder.embed(self.delim_code_1_list_group.builder);
4624        let delim_code_1_list = builder.embed(self.delim_code_1_list.builder);
4625        let node_id = builder.non_terminal(
4626            NonTerminalKind::DelimCode1List,
4627            vec![delim_code_1_list_group, delim_code_1_list],
4628        );
4629        DelimCode1ListNode { node_id, builder }
4630    }
4631}
4632pub enum DelimCode1ListGroupConstructor {
4633    NoBacktick(NoBacktickNode),
4634    BacktickDelim(BacktickDelimNode),
4635}
4636impl DelimCode1ListGroupConstructor {
4637    pub fn build(self) -> DelimCode1ListGroupNode {
4638        let mut builder = CstBuilder::new();
4639        let child_id = match self {
4640            Self::NoBacktick(node) => builder.embed(node.builder),
4641            Self::BacktickDelim(node) => builder.embed(node.builder),
4642        };
4643        let node_id = builder.non_terminal(NonTerminalKind::DelimCode1ListGroup, vec![child_id]);
4644        DelimCode1ListGroupNode { node_id, builder }
4645    }
4646}
4647#[derive(bon::Builder)]
4648pub struct DelimCode2Constructor {
4649    delim_code_start_2: DelimCodeStart2Node,
4650    delim_code_2_list: DelimCode2ListNode,
4651    delim_code_end_2: DelimCodeEnd2Node,
4652}
4653impl DelimCode2Constructor {
4654    pub fn build(self) -> DelimCode2Node {
4655        let mut builder = CstBuilder::new();
4656        let delim_code_start_2 = builder.embed(self.delim_code_start_2.builder);
4657        let delim_code_2_list = builder.embed(self.delim_code_2_list.builder);
4658        let delim_code_end_2 = builder.embed(self.delim_code_end_2.builder);
4659        let node_id = builder.non_terminal(
4660            NonTerminalKind::DelimCode2,
4661            vec![delim_code_start_2, delim_code_2_list, delim_code_end_2],
4662        );
4663        DelimCode2Node { node_id, builder }
4664    }
4665}
4666#[derive(bon::Builder)]
4667pub struct DelimCode2ListConstructor {
4668    delim_code_2_list_group: DelimCode2ListGroupNode,
4669    delim_code_2_list: DelimCode2ListNode,
4670}
4671impl DelimCode2ListConstructor {
4672    /// Create an empty node (base case for recursion)
4673    pub fn empty() -> DelimCode2ListNode {
4674        let mut builder = CstBuilder::new();
4675        let node_id =
4676            builder.non_terminal(NonTerminalKind::DelimCode2List, Vec::<BuilderNodeId>::new());
4677        DelimCode2ListNode { node_id, builder }
4678    }
4679    /// Create a node with children (recursive case)
4680    pub fn build(self) -> DelimCode2ListNode {
4681        let mut builder = CstBuilder::new();
4682        let delim_code_2_list_group = builder.embed(self.delim_code_2_list_group.builder);
4683        let delim_code_2_list = builder.embed(self.delim_code_2_list.builder);
4684        let node_id = builder.non_terminal(
4685            NonTerminalKind::DelimCode2List,
4686            vec![delim_code_2_list_group, delim_code_2_list],
4687        );
4688        DelimCode2ListNode { node_id, builder }
4689    }
4690}
4691pub enum DelimCode2ListGroupConstructor {
4692    NoBacktick(NoBacktickNode),
4693    BacktickDelim(BacktickDelimNode),
4694}
4695impl DelimCode2ListGroupConstructor {
4696    pub fn build(self) -> DelimCode2ListGroupNode {
4697        let mut builder = CstBuilder::new();
4698        let child_id = match self {
4699            Self::NoBacktick(node) => builder.embed(node.builder),
4700            Self::BacktickDelim(node) => builder.embed(node.builder),
4701        };
4702        let node_id = builder.non_terminal(NonTerminalKind::DelimCode2ListGroup, vec![child_id]);
4703        DelimCode2ListGroupNode { node_id, builder }
4704    }
4705}
4706#[derive(bon::Builder)]
4707pub struct DelimCode3Constructor {
4708    delim_code_start_3: DelimCodeStart3Node,
4709    delim_code_3_list: DelimCode3ListNode,
4710    delim_code_end_3: DelimCodeEnd3Node,
4711}
4712impl DelimCode3Constructor {
4713    pub fn build(self) -> DelimCode3Node {
4714        let mut builder = CstBuilder::new();
4715        let delim_code_start_3 = builder.embed(self.delim_code_start_3.builder);
4716        let delim_code_3_list = builder.embed(self.delim_code_3_list.builder);
4717        let delim_code_end_3 = builder.embed(self.delim_code_end_3.builder);
4718        let node_id = builder.non_terminal(
4719            NonTerminalKind::DelimCode3,
4720            vec![delim_code_start_3, delim_code_3_list, delim_code_end_3],
4721        );
4722        DelimCode3Node { node_id, builder }
4723    }
4724}
4725#[derive(bon::Builder)]
4726pub struct DelimCode3ListConstructor {
4727    delim_code_3_list_group: DelimCode3ListGroupNode,
4728    delim_code_3_list: DelimCode3ListNode,
4729}
4730impl DelimCode3ListConstructor {
4731    /// Create an empty node (base case for recursion)
4732    pub fn empty() -> DelimCode3ListNode {
4733        let mut builder = CstBuilder::new();
4734        let node_id =
4735            builder.non_terminal(NonTerminalKind::DelimCode3List, Vec::<BuilderNodeId>::new());
4736        DelimCode3ListNode { node_id, builder }
4737    }
4738    /// Create a node with children (recursive case)
4739    pub fn build(self) -> DelimCode3ListNode {
4740        let mut builder = CstBuilder::new();
4741        let delim_code_3_list_group = builder.embed(self.delim_code_3_list_group.builder);
4742        let delim_code_3_list = builder.embed(self.delim_code_3_list.builder);
4743        let node_id = builder.non_terminal(
4744            NonTerminalKind::DelimCode3List,
4745            vec![delim_code_3_list_group, delim_code_3_list],
4746        );
4747        DelimCode3ListNode { node_id, builder }
4748    }
4749}
4750pub enum DelimCode3ListGroupConstructor {
4751    NoBacktick(NoBacktickNode),
4752    BacktickDelim(BacktickDelimNode),
4753}
4754impl DelimCode3ListGroupConstructor {
4755    pub fn build(self) -> DelimCode3ListGroupNode {
4756        let mut builder = CstBuilder::new();
4757        let child_id = match self {
4758            Self::NoBacktick(node) => builder.embed(node.builder),
4759            Self::BacktickDelim(node) => builder.embed(node.builder),
4760        };
4761        let node_id = builder.non_terminal(NonTerminalKind::DelimCode3ListGroup, vec![child_id]);
4762        DelimCode3ListGroupNode { node_id, builder }
4763    }
4764}
4765#[derive(bon::Builder)]
4766pub struct DelimCodeEnd1Constructor {
4767    delim_code_end_1: DelimCodeEnd1Token,
4768}
4769impl DelimCodeEnd1Constructor {
4770    pub fn build(self) -> DelimCodeEnd1Node {
4771        let mut builder = CstBuilder::new();
4772        let delim_code_end_1 = builder.embed(self.delim_code_end_1.builder);
4773        let node_id = builder.non_terminal(NonTerminalKind::DelimCodeEnd1, vec![delim_code_end_1]);
4774        DelimCodeEnd1Node { node_id, builder }
4775    }
4776}
4777#[derive(bon::Builder)]
4778pub struct DelimCodeEnd2Constructor {
4779    delim_code_end_2: DelimCodeEnd2Token,
4780}
4781impl DelimCodeEnd2Constructor {
4782    pub fn build(self) -> DelimCodeEnd2Node {
4783        let mut builder = CstBuilder::new();
4784        let delim_code_end_2 = builder.embed(self.delim_code_end_2.builder);
4785        let node_id = builder.non_terminal(NonTerminalKind::DelimCodeEnd2, vec![delim_code_end_2]);
4786        DelimCodeEnd2Node { node_id, builder }
4787    }
4788}
4789#[derive(bon::Builder)]
4790pub struct DelimCodeEnd3Constructor {
4791    delim_code_end_3: DelimCodeEnd3Token,
4792}
4793impl DelimCodeEnd3Constructor {
4794    pub fn build(self) -> DelimCodeEnd3Node {
4795        let mut builder = CstBuilder::new();
4796        let delim_code_end_3 = builder.embed(self.delim_code_end_3.builder);
4797        let node_id = builder.non_terminal(NonTerminalKind::DelimCodeEnd3, vec![delim_code_end_3]);
4798        DelimCodeEnd3Node { node_id, builder }
4799    }
4800}
4801#[derive(bon::Builder)]
4802pub struct DelimCodeStart1Constructor {
4803    delim_code_start_1: DelimCodeStart1Token,
4804}
4805impl DelimCodeStart1Constructor {
4806    pub fn build(self) -> DelimCodeStart1Node {
4807        let mut builder = CstBuilder::new();
4808        let delim_code_start_1 = builder.embed(self.delim_code_start_1.builder);
4809        let node_id =
4810            builder.non_terminal(NonTerminalKind::DelimCodeStart1, vec![delim_code_start_1]);
4811        DelimCodeStart1Node { node_id, builder }
4812    }
4813}
4814#[derive(bon::Builder)]
4815pub struct DelimCodeStart2Constructor {
4816    delim_code_start_2: DelimCodeStart2Token,
4817}
4818impl DelimCodeStart2Constructor {
4819    pub fn build(self) -> DelimCodeStart2Node {
4820        let mut builder = CstBuilder::new();
4821        let delim_code_start_2 = builder.embed(self.delim_code_start_2.builder);
4822        let node_id =
4823            builder.non_terminal(NonTerminalKind::DelimCodeStart2, vec![delim_code_start_2]);
4824        DelimCodeStart2Node { node_id, builder }
4825    }
4826}
4827#[derive(bon::Builder)]
4828pub struct DelimCodeStart3Constructor {
4829    delim_code_start_3: DelimCodeStart3Token,
4830}
4831impl DelimCodeStart3Constructor {
4832    pub fn build(self) -> DelimCodeStart3Node {
4833        let mut builder = CstBuilder::new();
4834        let delim_code_start_3 = builder.embed(self.delim_code_start_3.builder);
4835        let node_id =
4836            builder.non_terminal(NonTerminalKind::DelimCodeStart3, vec![delim_code_start_3]);
4837        DelimCodeStart3Node { node_id, builder }
4838    }
4839}
4840#[derive(bon::Builder)]
4841pub struct DotConstructor {
4842    dot: DotToken,
4843}
4844impl DotConstructor {
4845    pub fn build(self) -> DotNode {
4846        let mut builder = CstBuilder::new();
4847        let dot = builder.embed(self.dot.builder);
4848        let node_id = builder.non_terminal(NonTerminalKind::Dot, vec![dot]);
4849        DotNode { node_id, builder }
4850    }
4851}
4852#[derive(bon::Builder)]
4853pub struct DotKeyConstructor {
4854    dot: DotNode,
4855    key: KeyNode,
4856}
4857impl DotKeyConstructor {
4858    pub fn build(self) -> DotKeyNode {
4859        let mut builder = CstBuilder::new();
4860        let dot = builder.embed(self.dot.builder);
4861        let key = builder.embed(self.key.builder);
4862        let node_id = builder.non_terminal(NonTerminalKind::DotKey, vec![dot, key]);
4863        DotKeyNode { node_id, builder }
4864    }
4865}
4866#[derive(bon::Builder)]
4867pub struct EndConstructor {
4868    r_brace: RBraceToken,
4869}
4870impl EndConstructor {
4871    pub fn build(self) -> EndNode {
4872        let mut builder = CstBuilder::new();
4873        let r_brace = builder.embed(self.r_brace.builder);
4874        let node_id = builder.non_terminal(NonTerminalKind::End, vec![r_brace]);
4875        EndNode { node_id, builder }
4876    }
4877}
4878#[derive(bon::Builder)]
4879pub struct EureConstructor {
4880    eure_opt: EureOptNode,
4881    eure_bindings: EureBindingsNode,
4882    eure_sections: EureSectionsNode,
4883}
4884impl EureConstructor {
4885    pub fn build(self) -> EureNode {
4886        let mut builder = CstBuilder::new();
4887        let eure_opt = builder.embed(self.eure_opt.builder);
4888        let eure_bindings = builder.embed(self.eure_bindings.builder);
4889        let eure_sections = builder.embed(self.eure_sections.builder);
4890        let node_id = builder.non_terminal(
4891            NonTerminalKind::Eure,
4892            vec![eure_opt, eure_bindings, eure_sections],
4893        );
4894        EureNode { node_id, builder }
4895    }
4896}
4897#[derive(bon::Builder)]
4898pub struct EureBindingsConstructor {
4899    binding: BindingNode,
4900    eure_bindings: EureBindingsNode,
4901}
4902impl EureBindingsConstructor {
4903    /// Create an empty node (base case for recursion)
4904    pub fn empty() -> EureBindingsNode {
4905        let mut builder = CstBuilder::new();
4906        let node_id = builder.non_terminal(NonTerminalKind::EureList, Vec::<BuilderNodeId>::new());
4907        EureBindingsNode { node_id, builder }
4908    }
4909    /// Create a node with children (recursive case)
4910    pub fn build(self) -> EureBindingsNode {
4911        let mut builder = CstBuilder::new();
4912        let binding = builder.embed(self.binding.builder);
4913        let eure_bindings = builder.embed(self.eure_bindings.builder);
4914        let node_id = builder.non_terminal(NonTerminalKind::EureList, vec![binding, eure_bindings]);
4915        EureBindingsNode { node_id, builder }
4916    }
4917}
4918#[derive(bon::Builder)]
4919pub struct EureSectionsConstructor {
4920    section: SectionNode,
4921    eure_sections: EureSectionsNode,
4922}
4923impl EureSectionsConstructor {
4924    /// Create an empty node (base case for recursion)
4925    pub fn empty() -> EureSectionsNode {
4926        let mut builder = CstBuilder::new();
4927        let node_id = builder.non_terminal(NonTerminalKind::EureList0, Vec::<BuilderNodeId>::new());
4928        EureSectionsNode { node_id, builder }
4929    }
4930    /// Create a node with children (recursive case)
4931    pub fn build(self) -> EureSectionsNode {
4932        let mut builder = CstBuilder::new();
4933        let section = builder.embed(self.section.builder);
4934        let eure_sections = builder.embed(self.eure_sections.builder);
4935        let node_id =
4936            builder.non_terminal(NonTerminalKind::EureList0, vec![section, eure_sections]);
4937        EureSectionsNode { node_id, builder }
4938    }
4939}
4940#[derive(bon::Builder)]
4941pub struct EureOptConstructor {
4942    top_level_binding: Option<TopLevelBindingNode>,
4943}
4944impl EureOptConstructor {
4945    pub fn build(self) -> EureOptNode {
4946        let mut builder = CstBuilder::new();
4947        let children = if let Some(child) = self.top_level_binding {
4948            vec![builder.embed(child.builder)]
4949        } else {
4950            Vec::<BuilderNodeId>::new()
4951        };
4952        let node_id = builder.non_terminal(NonTerminalKind::EureOpt, children);
4953        EureOptNode { node_id, builder }
4954    }
4955}
4956#[derive(bon::Builder)]
4957pub struct ExtConstructor {
4958    dollar: DollarToken,
4959}
4960impl ExtConstructor {
4961    pub fn build(self) -> ExtNode {
4962        let mut builder = CstBuilder::new();
4963        let dollar = builder.embed(self.dollar.builder);
4964        let node_id = builder.non_terminal(NonTerminalKind::Ext, vec![dollar]);
4965        ExtNode { node_id, builder }
4966    }
4967}
4968#[derive(bon::Builder)]
4969pub struct ExtensionNameSpaceConstructor {
4970    ext: ExtNode,
4971    key_ident: KeyIdentNode,
4972}
4973impl ExtensionNameSpaceConstructor {
4974    pub fn build(self) -> ExtensionNameSpaceNode {
4975        let mut builder = CstBuilder::new();
4976        let ext = builder.embed(self.ext.builder);
4977        let key_ident = builder.embed(self.key_ident.builder);
4978        let node_id =
4979            builder.non_terminal(NonTerminalKind::ExtensionNameSpace, vec![ext, key_ident]);
4980        ExtensionNameSpaceNode { node_id, builder }
4981    }
4982}
4983#[derive(bon::Builder)]
4984pub struct FalseConstructor {
4985    r#false: FalseToken,
4986}
4987impl FalseConstructor {
4988    pub fn build(self) -> FalseNode {
4989        let mut builder = CstBuilder::new();
4990        let r#false = builder.embed(self.r#false.builder);
4991        let node_id = builder.non_terminal(NonTerminalKind::False, vec![r#false]);
4992        FalseNode { node_id, builder }
4993    }
4994}
4995pub enum FirstKeyConstructor {
4996    Key(KeyNode),
4997    ArrayMarker(ArrayMarkerNode),
4998}
4999impl FirstKeyConstructor {
5000    pub fn build(self) -> FirstKeyNode {
5001        let mut builder = CstBuilder::new();
5002        let child_id = match self {
5003            Self::Key(node) => builder.embed(node.builder),
5004            Self::ArrayMarker(node) => builder.embed(node.builder),
5005        };
5006        let node_id = builder.non_terminal(NonTerminalKind::FirstKey, vec![child_id]);
5007        FirstKeyNode { node_id, builder }
5008    }
5009}
5010#[derive(bon::Builder)]
5011pub struct FlatBodyConstructor {
5012    section_head: SectionHeadNode,
5013    flat_body_list: FlatBodyListNode,
5014}
5015impl FlatBodyConstructor {
5016    pub fn build(self) -> FlatBodyNode {
5017        let mut builder = CstBuilder::new();
5018        let section_head = builder.embed(self.section_head.builder);
5019        let flat_body_list = builder.embed(self.flat_body_list.builder);
5020        let node_id = builder.non_terminal(
5021            NonTerminalKind::FlatBody,
5022            vec![section_head, flat_body_list],
5023        );
5024        FlatBodyNode { node_id, builder }
5025    }
5026}
5027#[derive(bon::Builder)]
5028pub struct FlatBodyListConstructor {
5029    binding: BindingNode,
5030    flat_body_list: FlatBodyListNode,
5031}
5032impl FlatBodyListConstructor {
5033    /// Create an empty node (base case for recursion)
5034    pub fn empty() -> FlatBodyListNode {
5035        let mut builder = CstBuilder::new();
5036        let node_id =
5037            builder.non_terminal(NonTerminalKind::FlatBodyList, Vec::<BuilderNodeId>::new());
5038        FlatBodyListNode { node_id, builder }
5039    }
5040    /// Create a node with children (recursive case)
5041    pub fn build(self) -> FlatBodyListNode {
5042        let mut builder = CstBuilder::new();
5043        let binding = builder.embed(self.binding.builder);
5044        let flat_body_list = builder.embed(self.flat_body_list.builder);
5045        let node_id =
5046            builder.non_terminal(NonTerminalKind::FlatBodyList, vec![binding, flat_body_list]);
5047        FlatBodyListNode { node_id, builder }
5048    }
5049}
5050pub enum FlatRootBindingConstructor {
5051    ValueBinding(ValueBindingNode),
5052    TextBinding(TextBindingNode),
5053}
5054impl FlatRootBindingConstructor {
5055    pub fn build(self) -> FlatRootBindingNode {
5056        let mut builder = CstBuilder::new();
5057        let child_id = match self {
5058            Self::ValueBinding(node) => builder.embed(node.builder),
5059            Self::TextBinding(node) => builder.embed(node.builder),
5060        };
5061        let node_id = builder.non_terminal(NonTerminalKind::FlatRootBinding, vec![child_id]);
5062        FlatRootBindingNode { node_id, builder }
5063    }
5064}
5065#[derive(bon::Builder)]
5066pub struct FloatConstructor {
5067    float: FloatToken,
5068}
5069impl FloatConstructor {
5070    pub fn build(self) -> FloatNode {
5071        let mut builder = CstBuilder::new();
5072        let float = builder.embed(self.float.builder);
5073        let node_id = builder.non_terminal(NonTerminalKind::Float, vec![float]);
5074        FloatNode { node_id, builder }
5075    }
5076}
5077#[derive(bon::Builder)]
5078pub struct GrammarNewlineConstructor {
5079    grammar_newline: GrammarNewlineToken,
5080}
5081impl GrammarNewlineConstructor {
5082    pub fn build(self) -> GrammarNewlineNode {
5083        let mut builder = CstBuilder::new();
5084        let grammar_newline = builder.embed(self.grammar_newline.builder);
5085        let node_id = builder.non_terminal(NonTerminalKind::GrammarNewline, vec![grammar_newline]);
5086        GrammarNewlineNode { node_id, builder }
5087    }
5088}
5089#[derive(bon::Builder)]
5090pub struct HoleConstructor {
5091    hole: HoleToken,
5092}
5093impl HoleConstructor {
5094    pub fn build(self) -> HoleNode {
5095        let mut builder = CstBuilder::new();
5096        let hole = builder.embed(self.hole.builder);
5097        let node_id = builder.non_terminal(NonTerminalKind::Hole, vec![hole]);
5098        HoleNode { node_id, builder }
5099    }
5100}
5101#[derive(bon::Builder)]
5102pub struct IdentConstructor {
5103    ident: IdentToken,
5104}
5105impl IdentConstructor {
5106    pub fn build(self) -> IdentNode {
5107        let mut builder = CstBuilder::new();
5108        let ident = builder.embed(self.ident.builder);
5109        let node_id = builder.non_terminal(NonTerminalKind::Ident, vec![ident]);
5110        IdentNode { node_id, builder }
5111    }
5112}
5113#[derive(bon::Builder)]
5114pub struct InfConstructor {
5115    inf: InfToken,
5116}
5117impl InfConstructor {
5118    pub fn build(self) -> InfNode {
5119        let mut builder = CstBuilder::new();
5120        let inf = builder.embed(self.inf.builder);
5121        let node_id = builder.non_terminal(NonTerminalKind::Inf, vec![inf]);
5122        InfNode { node_id, builder }
5123    }
5124}
5125pub enum InlineCodeConstructor {
5126    DelimCode(DelimCodeNode),
5127    InlineCode1(InlineCode1Node),
5128}
5129impl InlineCodeConstructor {
5130    pub fn build(self) -> InlineCodeNode {
5131        let mut builder = CstBuilder::new();
5132        let child_id = match self {
5133            Self::DelimCode(node) => builder.embed(node.builder),
5134            Self::InlineCode1(node) => builder.embed(node.builder),
5135        };
5136        let node_id = builder.non_terminal(NonTerminalKind::InlineCode, vec![child_id]);
5137        InlineCodeNode { node_id, builder }
5138    }
5139}
5140#[derive(bon::Builder)]
5141pub struct InlineCode1Constructor {
5142    inline_code_1: InlineCode1Token,
5143}
5144impl InlineCode1Constructor {
5145    pub fn build(self) -> InlineCode1Node {
5146        let mut builder = CstBuilder::new();
5147        let inline_code_1 = builder.embed(self.inline_code_1.builder);
5148        let node_id = builder.non_terminal(NonTerminalKind::InlineCode1, vec![inline_code_1]);
5149        InlineCode1Node { node_id, builder }
5150    }
5151}
5152#[derive(bon::Builder)]
5153pub struct IntegerConstructor {
5154    integer: IntegerToken,
5155}
5156impl IntegerConstructor {
5157    pub fn build(self) -> IntegerNode {
5158        let mut builder = CstBuilder::new();
5159        let integer = builder.embed(self.integer.builder);
5160        let node_id = builder.non_terminal(NonTerminalKind::Integer, vec![integer]);
5161        IntegerNode { node_id, builder }
5162    }
5163}
5164pub enum KeyConstructor {
5165    KeyIdent(KeyIdentNode),
5166    ExtensionNameSpace(ExtensionNameSpaceNode),
5167    String(StringNode),
5168    Integer(IntegerNode),
5169    Float(FloatNode),
5170    KeyTuple(KeyTupleNode),
5171    TupleIndex(TupleIndexNode),
5172    Hole(HoleNode),
5173}
5174impl KeyConstructor {
5175    pub fn build(self) -> KeyNode {
5176        let mut builder = CstBuilder::new();
5177        let child_id = match self {
5178            Self::KeyIdent(node) => builder.embed(node.builder),
5179            Self::ExtensionNameSpace(node) => builder.embed(node.builder),
5180            Self::String(node) => builder.embed(node.builder),
5181            Self::Integer(node) => builder.embed(node.builder),
5182            Self::Float(node) => builder.embed(node.builder),
5183            Self::KeyTuple(node) => builder.embed(node.builder),
5184            Self::TupleIndex(node) => builder.embed(node.builder),
5185            Self::Hole(node) => builder.embed(node.builder),
5186        };
5187        let node_id = builder.non_terminal(NonTerminalKind::Key, vec![child_id]);
5188        KeyNode { node_id, builder }
5189    }
5190}
5191pub enum KeyIdentConstructor {
5192    Ident(IdentNode),
5193    True(TrueNode),
5194    False(FalseNode),
5195    Null(NullNode),
5196}
5197impl KeyIdentConstructor {
5198    pub fn build(self) -> KeyIdentNode {
5199        let mut builder = CstBuilder::new();
5200        let child_id = match self {
5201            Self::Ident(node) => builder.embed(node.builder),
5202            Self::True(node) => builder.embed(node.builder),
5203            Self::False(node) => builder.embed(node.builder),
5204            Self::Null(node) => builder.embed(node.builder),
5205        };
5206        let node_id = builder.non_terminal(NonTerminalKind::KeyIdent, vec![child_id]);
5207        KeyIdentNode { node_id, builder }
5208    }
5209}
5210pub enum KeyTailConstructor {
5211    DotKey(DotKeyNode),
5212    ArrayMarker(ArrayMarkerNode),
5213}
5214impl KeyTailConstructor {
5215    pub fn build(self) -> KeyTailNode {
5216        let mut builder = CstBuilder::new();
5217        let child_id = match self {
5218            Self::DotKey(node) => builder.embed(node.builder),
5219            Self::ArrayMarker(node) => builder.embed(node.builder),
5220        };
5221        let node_id = builder.non_terminal(NonTerminalKind::KeyTail, vec![child_id]);
5222        KeyTailNode { node_id, builder }
5223    }
5224}
5225#[derive(bon::Builder)]
5226pub struct KeyTupleConstructor {
5227    l_paren: LParenNode,
5228    key_tuple_opt: KeyTupleOptNode,
5229    r_paren: RParenNode,
5230}
5231impl KeyTupleConstructor {
5232    pub fn build(self) -> KeyTupleNode {
5233        let mut builder = CstBuilder::new();
5234        let l_paren = builder.embed(self.l_paren.builder);
5235        let key_tuple_opt = builder.embed(self.key_tuple_opt.builder);
5236        let r_paren = builder.embed(self.r_paren.builder);
5237        let node_id = builder.non_terminal(
5238            NonTerminalKind::KeyTuple,
5239            vec![l_paren, key_tuple_opt, r_paren],
5240        );
5241        KeyTupleNode { node_id, builder }
5242    }
5243}
5244#[derive(bon::Builder)]
5245pub struct KeyTupleElementsConstructor {
5246    key_value: KeyValueNode,
5247    key_tuple_elements_opt: KeyTupleElementsOptNode,
5248}
5249impl KeyTupleElementsConstructor {
5250    pub fn build(self) -> KeyTupleElementsNode {
5251        let mut builder = CstBuilder::new();
5252        let key_value = builder.embed(self.key_value.builder);
5253        let key_tuple_elements_opt = builder.embed(self.key_tuple_elements_opt.builder);
5254        let node_id = builder.non_terminal(
5255            NonTerminalKind::KeyTupleElements,
5256            vec![key_value, key_tuple_elements_opt],
5257        );
5258        KeyTupleElementsNode { node_id, builder }
5259    }
5260}
5261#[derive(bon::Builder)]
5262pub struct KeyTupleElementsOptConstructor {
5263    key_tuple_elements_tail: Option<KeyTupleElementsTailNode>,
5264}
5265impl KeyTupleElementsOptConstructor {
5266    pub fn build(self) -> KeyTupleElementsOptNode {
5267        let mut builder = CstBuilder::new();
5268        let children = if let Some(child) = self.key_tuple_elements_tail {
5269            vec![builder.embed(child.builder)]
5270        } else {
5271            Vec::<BuilderNodeId>::new()
5272        };
5273        let node_id = builder.non_terminal(NonTerminalKind::KeyTupleElementsOpt, children);
5274        KeyTupleElementsOptNode { node_id, builder }
5275    }
5276}
5277#[derive(bon::Builder)]
5278pub struct KeyTupleElementsTailConstructor {
5279    comma: CommaNode,
5280    key_tuple_elements_tail_opt: KeyTupleElementsTailOptNode,
5281}
5282impl KeyTupleElementsTailConstructor {
5283    pub fn build(self) -> KeyTupleElementsTailNode {
5284        let mut builder = CstBuilder::new();
5285        let comma = builder.embed(self.comma.builder);
5286        let key_tuple_elements_tail_opt = builder.embed(self.key_tuple_elements_tail_opt.builder);
5287        let node_id = builder.non_terminal(
5288            NonTerminalKind::KeyTupleElementsTail,
5289            vec![comma, key_tuple_elements_tail_opt],
5290        );
5291        KeyTupleElementsTailNode { node_id, builder }
5292    }
5293}
5294#[derive(bon::Builder)]
5295pub struct KeyTupleElementsTailOptConstructor {
5296    key_tuple_elements: Option<KeyTupleElementsNode>,
5297}
5298impl KeyTupleElementsTailOptConstructor {
5299    pub fn build(self) -> KeyTupleElementsTailOptNode {
5300        let mut builder = CstBuilder::new();
5301        let children = if let Some(child) = self.key_tuple_elements {
5302            vec![builder.embed(child.builder)]
5303        } else {
5304            Vec::<BuilderNodeId>::new()
5305        };
5306        let node_id = builder.non_terminal(NonTerminalKind::KeyTupleElementsTailOpt, children);
5307        KeyTupleElementsTailOptNode { node_id, builder }
5308    }
5309}
5310#[derive(bon::Builder)]
5311pub struct KeyTupleOptConstructor {
5312    key_tuple_elements: Option<KeyTupleElementsNode>,
5313}
5314impl KeyTupleOptConstructor {
5315    pub fn build(self) -> KeyTupleOptNode {
5316        let mut builder = CstBuilder::new();
5317        let children = if let Some(child) = self.key_tuple_elements {
5318            vec![builder.embed(child.builder)]
5319        } else {
5320            Vec::<BuilderNodeId>::new()
5321        };
5322        let node_id = builder.non_terminal(NonTerminalKind::KeyTupleOpt, children);
5323        KeyTupleOptNode { node_id, builder }
5324    }
5325}
5326pub enum KeyValueConstructor {
5327    Integer(IntegerNode),
5328    Boolean(BooleanNode),
5329    Str(StrNode),
5330    KeyTuple(KeyTupleNode),
5331    Hole(HoleNode),
5332}
5333impl KeyValueConstructor {
5334    pub fn build(self) -> KeyValueNode {
5335        let mut builder = CstBuilder::new();
5336        let child_id = match self {
5337            Self::Integer(node) => builder.embed(node.builder),
5338            Self::Boolean(node) => builder.embed(node.builder),
5339            Self::Str(node) => builder.embed(node.builder),
5340            Self::KeyTuple(node) => builder.embed(node.builder),
5341            Self::Hole(node) => builder.embed(node.builder),
5342        };
5343        let node_id = builder.non_terminal(NonTerminalKind::KeyValue, vec![child_id]);
5344        KeyValueNode { node_id, builder }
5345    }
5346}
5347#[derive(bon::Builder)]
5348pub struct KeysConstructor {
5349    first_key: FirstKeyNode,
5350    keys_list: KeysListNode,
5351}
5352impl KeysConstructor {
5353    pub fn build(self) -> KeysNode {
5354        let mut builder = CstBuilder::new();
5355        let first_key = builder.embed(self.first_key.builder);
5356        let keys_list = builder.embed(self.keys_list.builder);
5357        let node_id = builder.non_terminal(NonTerminalKind::Keys, vec![first_key, keys_list]);
5358        KeysNode { node_id, builder }
5359    }
5360}
5361#[derive(bon::Builder)]
5362pub struct KeysListConstructor {
5363    key_tail: KeyTailNode,
5364    keys_list: KeysListNode,
5365}
5366impl KeysListConstructor {
5367    /// Create an empty node (base case for recursion)
5368    pub fn empty() -> KeysListNode {
5369        let mut builder = CstBuilder::new();
5370        let node_id = builder.non_terminal(NonTerminalKind::KeysList, Vec::<BuilderNodeId>::new());
5371        KeysListNode { node_id, builder }
5372    }
5373    /// Create a node with children (recursive case)
5374    pub fn build(self) -> KeysListNode {
5375        let mut builder = CstBuilder::new();
5376        let key_tail = builder.embed(self.key_tail.builder);
5377        let keys_list = builder.embed(self.keys_list.builder);
5378        let node_id = builder.non_terminal(NonTerminalKind::KeysList, vec![key_tail, keys_list]);
5379        KeysListNode { node_id, builder }
5380    }
5381}
5382#[derive(bon::Builder)]
5383pub struct LParenConstructor {
5384    l_paren: LParenToken,
5385}
5386impl LParenConstructor {
5387    pub fn build(self) -> LParenNode {
5388        let mut builder = CstBuilder::new();
5389        let l_paren = builder.embed(self.l_paren.builder);
5390        let node_id = builder.non_terminal(NonTerminalKind::LParen, vec![l_paren]);
5391        LParenNode { node_id, builder }
5392    }
5393}
5394#[derive(bon::Builder)]
5395pub struct LitStrConstructor {
5396    lit_str: LitStrToken,
5397}
5398impl LitStrConstructor {
5399    pub fn build(self) -> LitStrNode {
5400        let mut builder = CstBuilder::new();
5401        let lit_str = builder.embed(self.lit_str.builder);
5402        let node_id = builder.non_terminal(NonTerminalKind::LitStr, vec![lit_str]);
5403        LitStrNode { node_id, builder }
5404    }
5405}
5406#[derive(bon::Builder)]
5407pub struct LitStr1Constructor {
5408    lit_str_1_start: LitStr1StartNode,
5409    lit_str_1_list: LitStr1ListNode,
5410    lit_str_1_end: LitStr1EndNode,
5411}
5412impl LitStr1Constructor {
5413    pub fn build(self) -> LitStr1Node {
5414        let mut builder = CstBuilder::new();
5415        let lit_str_1_start = builder.embed(self.lit_str_1_start.builder);
5416        let lit_str_1_list = builder.embed(self.lit_str_1_list.builder);
5417        let lit_str_1_end = builder.embed(self.lit_str_1_end.builder);
5418        let node_id = builder.non_terminal(
5419            NonTerminalKind::LitStr1,
5420            vec![lit_str_1_start, lit_str_1_list, lit_str_1_end],
5421        );
5422        LitStr1Node { node_id, builder }
5423    }
5424}
5425#[derive(bon::Builder)]
5426pub struct LitStr1EndConstructor {
5427    lit_str_1_end: LitStr1EndToken,
5428}
5429impl LitStr1EndConstructor {
5430    pub fn build(self) -> LitStr1EndNode {
5431        let mut builder = CstBuilder::new();
5432        let lit_str_1_end = builder.embed(self.lit_str_1_end.builder);
5433        let node_id = builder.non_terminal(NonTerminalKind::LitStr1End, vec![lit_str_1_end]);
5434        LitStr1EndNode { node_id, builder }
5435    }
5436}
5437#[derive(bon::Builder)]
5438pub struct LitStr1ListConstructor {
5439    lit_str_1_list_group: LitStr1ListGroupNode,
5440    lit_str_1_list: LitStr1ListNode,
5441}
5442impl LitStr1ListConstructor {
5443    /// Create an empty node (base case for recursion)
5444    pub fn empty() -> LitStr1ListNode {
5445        let mut builder = CstBuilder::new();
5446        let node_id =
5447            builder.non_terminal(NonTerminalKind::LitStr1List, Vec::<BuilderNodeId>::new());
5448        LitStr1ListNode { node_id, builder }
5449    }
5450    /// Create a node with children (recursive case)
5451    pub fn build(self) -> LitStr1ListNode {
5452        let mut builder = CstBuilder::new();
5453        let lit_str_1_list_group = builder.embed(self.lit_str_1_list_group.builder);
5454        let lit_str_1_list = builder.embed(self.lit_str_1_list.builder);
5455        let node_id = builder.non_terminal(
5456            NonTerminalKind::LitStr1List,
5457            vec![lit_str_1_list_group, lit_str_1_list],
5458        );
5459        LitStr1ListNode { node_id, builder }
5460    }
5461}
5462pub enum LitStr1ListGroupConstructor {
5463    NoSQuote(NoSQuoteNode),
5464    SQuote(SQuoteNode),
5465}
5466impl LitStr1ListGroupConstructor {
5467    pub fn build(self) -> LitStr1ListGroupNode {
5468        let mut builder = CstBuilder::new();
5469        let child_id = match self {
5470            Self::NoSQuote(node) => builder.embed(node.builder),
5471            Self::SQuote(node) => builder.embed(node.builder),
5472        };
5473        let node_id = builder.non_terminal(NonTerminalKind::LitStr1ListGroup, vec![child_id]);
5474        LitStr1ListGroupNode { node_id, builder }
5475    }
5476}
5477#[derive(bon::Builder)]
5478pub struct LitStr1StartConstructor {
5479    lit_str_1_start: LitStr1StartToken,
5480}
5481impl LitStr1StartConstructor {
5482    pub fn build(self) -> LitStr1StartNode {
5483        let mut builder = CstBuilder::new();
5484        let lit_str_1_start = builder.embed(self.lit_str_1_start.builder);
5485        let node_id = builder.non_terminal(NonTerminalKind::LitStr1Start, vec![lit_str_1_start]);
5486        LitStr1StartNode { node_id, builder }
5487    }
5488}
5489#[derive(bon::Builder)]
5490pub struct LitStr2Constructor {
5491    lit_str_2_start: LitStr2StartNode,
5492    lit_str_2_list: LitStr2ListNode,
5493    lit_str_2_end: LitStr2EndNode,
5494}
5495impl LitStr2Constructor {
5496    pub fn build(self) -> LitStr2Node {
5497        let mut builder = CstBuilder::new();
5498        let lit_str_2_start = builder.embed(self.lit_str_2_start.builder);
5499        let lit_str_2_list = builder.embed(self.lit_str_2_list.builder);
5500        let lit_str_2_end = builder.embed(self.lit_str_2_end.builder);
5501        let node_id = builder.non_terminal(
5502            NonTerminalKind::LitStr2,
5503            vec![lit_str_2_start, lit_str_2_list, lit_str_2_end],
5504        );
5505        LitStr2Node { node_id, builder }
5506    }
5507}
5508#[derive(bon::Builder)]
5509pub struct LitStr2EndConstructor {
5510    lit_str_2_end: LitStr2EndToken,
5511}
5512impl LitStr2EndConstructor {
5513    pub fn build(self) -> LitStr2EndNode {
5514        let mut builder = CstBuilder::new();
5515        let lit_str_2_end = builder.embed(self.lit_str_2_end.builder);
5516        let node_id = builder.non_terminal(NonTerminalKind::LitStr2End, vec![lit_str_2_end]);
5517        LitStr2EndNode { node_id, builder }
5518    }
5519}
5520#[derive(bon::Builder)]
5521pub struct LitStr2ListConstructor {
5522    lit_str_2_list_group: LitStr2ListGroupNode,
5523    lit_str_2_list: LitStr2ListNode,
5524}
5525impl LitStr2ListConstructor {
5526    /// Create an empty node (base case for recursion)
5527    pub fn empty() -> LitStr2ListNode {
5528        let mut builder = CstBuilder::new();
5529        let node_id =
5530            builder.non_terminal(NonTerminalKind::LitStr2List, Vec::<BuilderNodeId>::new());
5531        LitStr2ListNode { node_id, builder }
5532    }
5533    /// Create a node with children (recursive case)
5534    pub fn build(self) -> LitStr2ListNode {
5535        let mut builder = CstBuilder::new();
5536        let lit_str_2_list_group = builder.embed(self.lit_str_2_list_group.builder);
5537        let lit_str_2_list = builder.embed(self.lit_str_2_list.builder);
5538        let node_id = builder.non_terminal(
5539            NonTerminalKind::LitStr2List,
5540            vec![lit_str_2_list_group, lit_str_2_list],
5541        );
5542        LitStr2ListNode { node_id, builder }
5543    }
5544}
5545pub enum LitStr2ListGroupConstructor {
5546    NoSQuote(NoSQuoteNode),
5547    SQuote(SQuoteNode),
5548}
5549impl LitStr2ListGroupConstructor {
5550    pub fn build(self) -> LitStr2ListGroupNode {
5551        let mut builder = CstBuilder::new();
5552        let child_id = match self {
5553            Self::NoSQuote(node) => builder.embed(node.builder),
5554            Self::SQuote(node) => builder.embed(node.builder),
5555        };
5556        let node_id = builder.non_terminal(NonTerminalKind::LitStr2ListGroup, vec![child_id]);
5557        LitStr2ListGroupNode { node_id, builder }
5558    }
5559}
5560#[derive(bon::Builder)]
5561pub struct LitStr2StartConstructor {
5562    lit_str_2_start: LitStr2StartToken,
5563}
5564impl LitStr2StartConstructor {
5565    pub fn build(self) -> LitStr2StartNode {
5566        let mut builder = CstBuilder::new();
5567        let lit_str_2_start = builder.embed(self.lit_str_2_start.builder);
5568        let node_id = builder.non_terminal(NonTerminalKind::LitStr2Start, vec![lit_str_2_start]);
5569        LitStr2StartNode { node_id, builder }
5570    }
5571}
5572#[derive(bon::Builder)]
5573pub struct LitStr3Constructor {
5574    lit_str_3_start: LitStr3StartNode,
5575    lit_str_3_list: LitStr3ListNode,
5576    lit_str_3_end: LitStr3EndNode,
5577}
5578impl LitStr3Constructor {
5579    pub fn build(self) -> LitStr3Node {
5580        let mut builder = CstBuilder::new();
5581        let lit_str_3_start = builder.embed(self.lit_str_3_start.builder);
5582        let lit_str_3_list = builder.embed(self.lit_str_3_list.builder);
5583        let lit_str_3_end = builder.embed(self.lit_str_3_end.builder);
5584        let node_id = builder.non_terminal(
5585            NonTerminalKind::LitStr3,
5586            vec![lit_str_3_start, lit_str_3_list, lit_str_3_end],
5587        );
5588        LitStr3Node { node_id, builder }
5589    }
5590}
5591#[derive(bon::Builder)]
5592pub struct LitStr3EndConstructor {
5593    lit_str_3_end: LitStr3EndToken,
5594}
5595impl LitStr3EndConstructor {
5596    pub fn build(self) -> LitStr3EndNode {
5597        let mut builder = CstBuilder::new();
5598        let lit_str_3_end = builder.embed(self.lit_str_3_end.builder);
5599        let node_id = builder.non_terminal(NonTerminalKind::LitStr3End, vec![lit_str_3_end]);
5600        LitStr3EndNode { node_id, builder }
5601    }
5602}
5603#[derive(bon::Builder)]
5604pub struct LitStr3ListConstructor {
5605    lit_str_3_list_group: LitStr3ListGroupNode,
5606    lit_str_3_list: LitStr3ListNode,
5607}
5608impl LitStr3ListConstructor {
5609    /// Create an empty node (base case for recursion)
5610    pub fn empty() -> LitStr3ListNode {
5611        let mut builder = CstBuilder::new();
5612        let node_id =
5613            builder.non_terminal(NonTerminalKind::LitStr3List, Vec::<BuilderNodeId>::new());
5614        LitStr3ListNode { node_id, builder }
5615    }
5616    /// Create a node with children (recursive case)
5617    pub fn build(self) -> LitStr3ListNode {
5618        let mut builder = CstBuilder::new();
5619        let lit_str_3_list_group = builder.embed(self.lit_str_3_list_group.builder);
5620        let lit_str_3_list = builder.embed(self.lit_str_3_list.builder);
5621        let node_id = builder.non_terminal(
5622            NonTerminalKind::LitStr3List,
5623            vec![lit_str_3_list_group, lit_str_3_list],
5624        );
5625        LitStr3ListNode { node_id, builder }
5626    }
5627}
5628pub enum LitStr3ListGroupConstructor {
5629    NoSQuote(NoSQuoteNode),
5630    SQuote(SQuoteNode),
5631}
5632impl LitStr3ListGroupConstructor {
5633    pub fn build(self) -> LitStr3ListGroupNode {
5634        let mut builder = CstBuilder::new();
5635        let child_id = match self {
5636            Self::NoSQuote(node) => builder.embed(node.builder),
5637            Self::SQuote(node) => builder.embed(node.builder),
5638        };
5639        let node_id = builder.non_terminal(NonTerminalKind::LitStr3ListGroup, vec![child_id]);
5640        LitStr3ListGroupNode { node_id, builder }
5641    }
5642}
5643#[derive(bon::Builder)]
5644pub struct LitStr3StartConstructor {
5645    lit_str_3_start: LitStr3StartToken,
5646}
5647impl LitStr3StartConstructor {
5648    pub fn build(self) -> LitStr3StartNode {
5649        let mut builder = CstBuilder::new();
5650        let lit_str_3_start = builder.embed(self.lit_str_3_start.builder);
5651        let node_id = builder.non_terminal(NonTerminalKind::LitStr3Start, vec![lit_str_3_start]);
5652        LitStr3StartNode { node_id, builder }
5653    }
5654}
5655#[derive(bon::Builder)]
5656pub struct MapBindConstructor {
5657    map_bind: MapBindToken,
5658}
5659impl MapBindConstructor {
5660    pub fn build(self) -> MapBindNode {
5661        let mut builder = CstBuilder::new();
5662        let map_bind = builder.embed(self.map_bind.builder);
5663        let node_id = builder.non_terminal(NonTerminalKind::MapBind, vec![map_bind]);
5664        MapBindNode { node_id, builder }
5665    }
5666}
5667#[derive(bon::Builder)]
5668pub struct NaNConstructor {
5669    na_n: NaNToken,
5670}
5671impl NaNConstructor {
5672    pub fn build(self) -> NaNNode {
5673        let mut builder = CstBuilder::new();
5674        let na_n = builder.embed(self.na_n.builder);
5675        let node_id = builder.non_terminal(NonTerminalKind::NaN, vec![na_n]);
5676        NaNNode { node_id, builder }
5677    }
5678}
5679#[derive(bon::Builder)]
5680pub struct NewlineBindConstructor {
5681    newline_bind: NewlineBindToken,
5682}
5683impl NewlineBindConstructor {
5684    pub fn build(self) -> NewlineBindNode {
5685        let mut builder = CstBuilder::new();
5686        let newline_bind = builder.embed(self.newline_bind.builder);
5687        let node_id = builder.non_terminal(NonTerminalKind::NewlineBind, vec![newline_bind]);
5688        NewlineBindNode { node_id, builder }
5689    }
5690}
5691#[derive(bon::Builder)]
5692pub struct NewlineHeadConstructor {
5693    grammar_newline: GrammarNewlineNode,
5694    newline_head_opt: NewlineHeadOptNode,
5695}
5696impl NewlineHeadConstructor {
5697    pub fn build(self) -> NewlineHeadNode {
5698        let mut builder = CstBuilder::new();
5699        let grammar_newline = builder.embed(self.grammar_newline.builder);
5700        let newline_head_opt = builder.embed(self.newline_head_opt.builder);
5701        let node_id = builder.non_terminal(
5702            NonTerminalKind::NewlineHead,
5703            vec![grammar_newline, newline_head_opt],
5704        );
5705        NewlineHeadNode { node_id, builder }
5706    }
5707}
5708#[derive(bon::Builder)]
5709pub struct NewlineHeadOptConstructor {
5710    flat_root_binding: Option<FlatRootBindingNode>,
5711}
5712impl NewlineHeadOptConstructor {
5713    pub fn build(self) -> NewlineHeadOptNode {
5714        let mut builder = CstBuilder::new();
5715        let children = if let Some(child) = self.flat_root_binding {
5716            vec![builder.embed(child.builder)]
5717        } else {
5718            Vec::<BuilderNodeId>::new()
5719        };
5720        let node_id = builder.non_terminal(NonTerminalKind::NewlineHeadOpt, children);
5721        NewlineHeadOptNode { node_id, builder }
5722    }
5723}
5724#[derive(bon::Builder)]
5725pub struct NewlineTextStartConstructor {
5726    newline_text_start: NewlineTextStartToken,
5727}
5728impl NewlineTextStartConstructor {
5729    pub fn build(self) -> NewlineTextStartNode {
5730        let mut builder = CstBuilder::new();
5731        let newline_text_start = builder.embed(self.newline_text_start.builder);
5732        let node_id =
5733            builder.non_terminal(NonTerminalKind::NewlineTextStart, vec![newline_text_start]);
5734        NewlineTextStartNode { node_id, builder }
5735    }
5736}
5737#[derive(bon::Builder)]
5738pub struct NoBacktickConstructor {
5739    no_backtick: NoBacktickToken,
5740}
5741impl NoBacktickConstructor {
5742    pub fn build(self) -> NoBacktickNode {
5743        let mut builder = CstBuilder::new();
5744        let no_backtick = builder.embed(self.no_backtick.builder);
5745        let node_id = builder.non_terminal(NonTerminalKind::NoBacktick, vec![no_backtick]);
5746        NoBacktickNode { node_id, builder }
5747    }
5748}
5749#[derive(bon::Builder)]
5750pub struct NoSQuoteConstructor {
5751    no_s_quote: NoSQuoteToken,
5752}
5753impl NoSQuoteConstructor {
5754    pub fn build(self) -> NoSQuoteNode {
5755        let mut builder = CstBuilder::new();
5756        let no_s_quote = builder.embed(self.no_s_quote.builder);
5757        let node_id = builder.non_terminal(NonTerminalKind::NoSQuote, vec![no_s_quote]);
5758        NoSQuoteNode { node_id, builder }
5759    }
5760}
5761#[derive(bon::Builder)]
5762pub struct NullConstructor {
5763    null: NullToken,
5764}
5765impl NullConstructor {
5766    pub fn build(self) -> NullNode {
5767        let mut builder = CstBuilder::new();
5768        let null = builder.embed(self.null.builder);
5769        let node_id = builder.non_terminal(NonTerminalKind::Null, vec![null]);
5770        NullNode { node_id, builder }
5771    }
5772}
5773pub enum NumberConstructor {
5774    Float(FloatNode),
5775    Integer(IntegerNode),
5776    Inf(InfNode),
5777    NaN(NaNNode),
5778}
5779impl NumberConstructor {
5780    pub fn build(self) -> NumberNode {
5781        let mut builder = CstBuilder::new();
5782        let child_id = match self {
5783            Self::Float(node) => builder.embed(node.builder),
5784            Self::Integer(node) => builder.embed(node.builder),
5785            Self::Inf(node) => builder.embed(node.builder),
5786            Self::NaN(node) => builder.embed(node.builder),
5787        };
5788        let node_id = builder.non_terminal(NonTerminalKind::Number, vec![child_id]);
5789        NumberNode { node_id, builder }
5790    }
5791}
5792#[derive(bon::Builder)]
5793pub struct ObjectConstructor {
5794    begin: BeginNode,
5795    object_opt: ObjectOptNode,
5796    object_list: ObjectListNode,
5797    end: EndNode,
5798}
5799impl ObjectConstructor {
5800    pub fn build(self) -> ObjectNode {
5801        let mut builder = CstBuilder::new();
5802        let begin = builder.embed(self.begin.builder);
5803        let object_opt = builder.embed(self.object_opt.builder);
5804        let object_list = builder.embed(self.object_list.builder);
5805        let end = builder.embed(self.end.builder);
5806        let node_id = builder.non_terminal(
5807            NonTerminalKind::Object,
5808            vec![begin, object_opt, object_list, end],
5809        );
5810        ObjectNode { node_id, builder }
5811    }
5812}
5813#[derive(bon::Builder)]
5814pub struct ObjectListConstructor {
5815    keys: KeysNode,
5816    map_bind: MapBindNode,
5817    value: ValueNode,
5818    object_opt_0: ObjectOpt0Node,
5819    object_list: ObjectListNode,
5820}
5821impl ObjectListConstructor {
5822    /// Create an empty node (base case for recursion)
5823    pub fn empty() -> ObjectListNode {
5824        let mut builder = CstBuilder::new();
5825        let node_id =
5826            builder.non_terminal(NonTerminalKind::ObjectList, Vec::<BuilderNodeId>::new());
5827        ObjectListNode { node_id, builder }
5828    }
5829    /// Create a node with children (recursive case)
5830    pub fn build(self) -> ObjectListNode {
5831        let mut builder = CstBuilder::new();
5832        let keys = builder.embed(self.keys.builder);
5833        let map_bind = builder.embed(self.map_bind.builder);
5834        let value = builder.embed(self.value.builder);
5835        let object_opt_0 = builder.embed(self.object_opt_0.builder);
5836        let object_list = builder.embed(self.object_list.builder);
5837        let node_id = builder.non_terminal(
5838            NonTerminalKind::ObjectList,
5839            vec![keys, map_bind, value, object_opt_0, object_list],
5840        );
5841        ObjectListNode { node_id, builder }
5842    }
5843}
5844#[derive(bon::Builder)]
5845pub struct ObjectOptConstructor {
5846    value_binding: ValueBindingNode,
5847    object_opt_1: ObjectOpt1Node,
5848}
5849impl ObjectOptConstructor {
5850    pub fn build(self) -> ObjectOptNode {
5851        let mut builder = CstBuilder::new();
5852        let value_binding = builder.embed(self.value_binding.builder);
5853        let object_opt_1 = builder.embed(self.object_opt_1.builder);
5854        let node_id = builder.non_terminal(
5855            NonTerminalKind::ObjectOpt,
5856            vec![value_binding, object_opt_1],
5857        );
5858        ObjectOptNode { node_id, builder }
5859    }
5860}
5861#[derive(bon::Builder)]
5862pub struct ObjectOpt0Constructor {
5863    comma: Option<CommaNode>,
5864}
5865impl ObjectOpt0Constructor {
5866    pub fn build(self) -> ObjectOpt0Node {
5867        let mut builder = CstBuilder::new();
5868        let children = if let Some(child) = self.comma {
5869            vec![builder.embed(child.builder)]
5870        } else {
5871            Vec::<BuilderNodeId>::new()
5872        };
5873        let node_id = builder.non_terminal(NonTerminalKind::ObjectOpt0, children);
5874        ObjectOpt0Node { node_id, builder }
5875    }
5876}
5877#[derive(bon::Builder)]
5878pub struct ObjectOpt1Constructor {
5879    comma: Option<CommaNode>,
5880}
5881impl ObjectOpt1Constructor {
5882    pub fn build(self) -> ObjectOpt1Node {
5883        let mut builder = CstBuilder::new();
5884        let children = if let Some(child) = self.comma {
5885            vec![builder.embed(child.builder)]
5886        } else {
5887            Vec::<BuilderNodeId>::new()
5888        };
5889        let node_id = builder.non_terminal(NonTerminalKind::ObjectOpt1, children);
5890        ObjectOpt1Node { node_id, builder }
5891    }
5892}
5893#[derive(bon::Builder)]
5894pub struct RParenConstructor {
5895    r_paren: RParenToken,
5896}
5897impl RParenConstructor {
5898    pub fn build(self) -> RParenNode {
5899        let mut builder = CstBuilder::new();
5900        let r_paren = builder.embed(self.r_paren.builder);
5901        let node_id = builder.non_terminal(NonTerminalKind::RParen, vec![r_paren]);
5902        RParenNode { node_id, builder }
5903    }
5904}
5905pub enum RootBindingConstructor {
5906    RootValueBinding(RootValueBindingNode),
5907    RootTextBinding(RootTextBindingNode),
5908}
5909impl RootBindingConstructor {
5910    pub fn build(self) -> RootBindingNode {
5911        let mut builder = CstBuilder::new();
5912        let child_id = match self {
5913            Self::RootValueBinding(node) => builder.embed(node.builder),
5914            Self::RootTextBinding(node) => builder.embed(node.builder),
5915        };
5916        let node_id = builder.non_terminal(NonTerminalKind::RootBinding, vec![child_id]);
5917        RootBindingNode { node_id, builder }
5918    }
5919}
5920#[derive(bon::Builder)]
5921pub struct RootTextBindingConstructor {
5922    newline_text_start: NewlineTextStartNode,
5923    root_text_binding_opt: RootTextBindingOptNode,
5924    root_text_binding_opt_0: RootTextBindingOpt0Node,
5925    root_text_binding_opt_1: RootTextBindingOpt1Node,
5926}
5927impl RootTextBindingConstructor {
5928    pub fn build(self) -> RootTextBindingNode {
5929        let mut builder = CstBuilder::new();
5930        let newline_text_start = builder.embed(self.newline_text_start.builder);
5931        let root_text_binding_opt = builder.embed(self.root_text_binding_opt.builder);
5932        let root_text_binding_opt_0 = builder.embed(self.root_text_binding_opt_0.builder);
5933        let root_text_binding_opt_1 = builder.embed(self.root_text_binding_opt_1.builder);
5934        let node_id = builder.non_terminal(
5935            NonTerminalKind::RootTextBinding,
5936            vec![
5937                newline_text_start,
5938                root_text_binding_opt,
5939                root_text_binding_opt_0,
5940                root_text_binding_opt_1,
5941            ],
5942        );
5943        RootTextBindingNode { node_id, builder }
5944    }
5945}
5946#[derive(bon::Builder)]
5947pub struct RootTextBindingOptConstructor {
5948    ws: Option<WsNode>,
5949}
5950impl RootTextBindingOptConstructor {
5951    pub fn build(self) -> RootTextBindingOptNode {
5952        let mut builder = CstBuilder::new();
5953        let children = if let Some(child) = self.ws {
5954            vec![builder.embed(child.builder)]
5955        } else {
5956            Vec::<BuilderNodeId>::new()
5957        };
5958        let node_id = builder.non_terminal(NonTerminalKind::RootTextBindingOpt, children);
5959        RootTextBindingOptNode { node_id, builder }
5960    }
5961}
5962#[derive(bon::Builder)]
5963pub struct RootTextBindingOpt0Constructor {
5964    text: Option<TextNode>,
5965}
5966impl RootTextBindingOpt0Constructor {
5967    pub fn build(self) -> RootTextBindingOpt0Node {
5968        let mut builder = CstBuilder::new();
5969        let children = if let Some(child) = self.text {
5970            vec![builder.embed(child.builder)]
5971        } else {
5972            Vec::<BuilderNodeId>::new()
5973        };
5974        let node_id = builder.non_terminal(NonTerminalKind::RootTextBindingOpt0, children);
5975        RootTextBindingOpt0Node { node_id, builder }
5976    }
5977}
5978#[derive(bon::Builder)]
5979pub struct RootTextBindingOpt1Constructor {
5980    grammar_newline: Option<GrammarNewlineNode>,
5981}
5982impl RootTextBindingOpt1Constructor {
5983    pub fn build(self) -> RootTextBindingOpt1Node {
5984        let mut builder = CstBuilder::new();
5985        let children = if let Some(child) = self.grammar_newline {
5986            vec![builder.embed(child.builder)]
5987        } else {
5988            Vec::<BuilderNodeId>::new()
5989        };
5990        let node_id = builder.non_terminal(NonTerminalKind::RootTextBindingOpt1, children);
5991        RootTextBindingOpt1Node { node_id, builder }
5992    }
5993}
5994#[derive(bon::Builder)]
5995pub struct RootValueBindingConstructor {
5996    newline_bind: NewlineBindNode,
5997    value: ValueNode,
5998}
5999impl RootValueBindingConstructor {
6000    pub fn build(self) -> RootValueBindingNode {
6001        let mut builder = CstBuilder::new();
6002        let newline_bind = builder.embed(self.newline_bind.builder);
6003        let value = builder.embed(self.value.builder);
6004        let node_id =
6005            builder.non_terminal(NonTerminalKind::RootValueBinding, vec![newline_bind, value]);
6006        RootValueBindingNode { node_id, builder }
6007    }
6008}
6009#[derive(bon::Builder)]
6010pub struct SQuoteConstructor {
6011    s_quote: SQuoteToken,
6012}
6013impl SQuoteConstructor {
6014    pub fn build(self) -> SQuoteNode {
6015        let mut builder = CstBuilder::new();
6016        let s_quote = builder.embed(self.s_quote.builder);
6017        let node_id = builder.non_terminal(NonTerminalKind::SQuote, vec![s_quote]);
6018        SQuoteNode { node_id, builder }
6019    }
6020}
6021#[derive(bon::Builder)]
6022pub struct SectionConstructor {
6023    at: AtNode,
6024    keys: KeysNode,
6025    section_body: SectionBodyNode,
6026}
6027impl SectionConstructor {
6028    pub fn build(self) -> SectionNode {
6029        let mut builder = CstBuilder::new();
6030        let at = builder.embed(self.at.builder);
6031        let keys = builder.embed(self.keys.builder);
6032        let section_body = builder.embed(self.section_body.builder);
6033        let node_id = builder.non_terminal(NonTerminalKind::Section, vec![at, keys, section_body]);
6034        SectionNode { node_id, builder }
6035    }
6036}
6037#[derive(bon::Builder)]
6038pub struct SectionBindingConstructor {
6039    begin: BeginNode,
6040    eure: EureNode,
6041    end: EndNode,
6042}
6043impl SectionBindingConstructor {
6044    pub fn build(self) -> SectionBindingNode {
6045        let mut builder = CstBuilder::new();
6046        let begin = builder.embed(self.begin.builder);
6047        let eure = builder.embed(self.eure.builder);
6048        let end = builder.embed(self.end.builder);
6049        let node_id = builder.non_terminal(NonTerminalKind::SectionBinding, vec![begin, eure, end]);
6050        SectionBindingNode { node_id, builder }
6051    }
6052}
6053pub enum SectionBodyConstructor {
6054    SectionBodyOpt(SectionBodyOptNode),
6055    BlockBody(BlockBodyNode),
6056}
6057impl SectionBodyConstructor {
6058    pub fn build(self) -> SectionBodyNode {
6059        let mut builder = CstBuilder::new();
6060        let child_id = match self {
6061            Self::SectionBodyOpt(node) => builder.embed(node.builder),
6062            Self::BlockBody(node) => builder.embed(node.builder),
6063        };
6064        let node_id = builder.non_terminal(NonTerminalKind::SectionBody, vec![child_id]);
6065        SectionBodyNode { node_id, builder }
6066    }
6067}
6068#[derive(bon::Builder)]
6069pub struct SectionBodyOptConstructor {
6070    flat_body: Option<FlatBodyNode>,
6071}
6072impl SectionBodyOptConstructor {
6073    pub fn build(self) -> SectionBodyOptNode {
6074        let mut builder = CstBuilder::new();
6075        let children = if let Some(child) = self.flat_body {
6076            vec![builder.embed(child.builder)]
6077        } else {
6078            Vec::<BuilderNodeId>::new()
6079        };
6080        let node_id = builder.non_terminal(NonTerminalKind::SectionBodyOpt, children);
6081        SectionBodyOptNode { node_id, builder }
6082    }
6083}
6084pub enum SectionHeadConstructor {
6085    RootBinding(RootBindingNode),
6086    NewlineHead(NewlineHeadNode),
6087}
6088impl SectionHeadConstructor {
6089    pub fn build(self) -> SectionHeadNode {
6090        let mut builder = CstBuilder::new();
6091        let child_id = match self {
6092            Self::RootBinding(node) => builder.embed(node.builder),
6093            Self::NewlineHead(node) => builder.embed(node.builder),
6094        };
6095        let node_id = builder.non_terminal(NonTerminalKind::SectionHead, vec![child_id]);
6096        SectionHeadNode { node_id, builder }
6097    }
6098}
6099#[derive(bon::Builder)]
6100pub struct StrConstructor {
6101    str: StrToken,
6102}
6103impl StrConstructor {
6104    pub fn build(self) -> StrNode {
6105        let mut builder = CstBuilder::new();
6106        let str = builder.embed(self.str.builder);
6107        let node_id = builder.non_terminal(NonTerminalKind::Str, vec![str]);
6108        StrNode { node_id, builder }
6109    }
6110}
6111pub enum StringConstructor {
6112    Str(StrNode),
6113    LitStr(LitStrNode),
6114    LitStr1(LitStr1Node),
6115    LitStr2(LitStr2Node),
6116    LitStr3(LitStr3Node),
6117}
6118impl StringConstructor {
6119    pub fn build(self) -> StringNode {
6120        let mut builder = CstBuilder::new();
6121        let child_id = match self {
6122            Self::Str(node) => builder.embed(node.builder),
6123            Self::LitStr(node) => builder.embed(node.builder),
6124            Self::LitStr1(node) => builder.embed(node.builder),
6125            Self::LitStr2(node) => builder.embed(node.builder),
6126            Self::LitStr3(node) => builder.embed(node.builder),
6127        };
6128        let node_id = builder.non_terminal(NonTerminalKind::String, vec![child_id]);
6129        StringNode { node_id, builder }
6130    }
6131}
6132#[derive(bon::Builder)]
6133pub struct StringsConstructor {
6134    string: StringNode,
6135    strings_list: StringsListNode,
6136}
6137impl StringsConstructor {
6138    pub fn build(self) -> StringsNode {
6139        let mut builder = CstBuilder::new();
6140        let string = builder.embed(self.string.builder);
6141        let strings_list = builder.embed(self.strings_list.builder);
6142        let node_id = builder.non_terminal(NonTerminalKind::Strings, vec![string, strings_list]);
6143        StringsNode { node_id, builder }
6144    }
6145}
6146#[derive(bon::Builder)]
6147pub struct StringsListConstructor {
6148    r#continue: ContinueNode,
6149    string: StringNode,
6150    strings_list: StringsListNode,
6151}
6152impl StringsListConstructor {
6153    /// Create an empty node (base case for recursion)
6154    pub fn empty() -> StringsListNode {
6155        let mut builder = CstBuilder::new();
6156        let node_id =
6157            builder.non_terminal(NonTerminalKind::StringsList, Vec::<BuilderNodeId>::new());
6158        StringsListNode { node_id, builder }
6159    }
6160    /// Create a node with children (recursive case)
6161    pub fn build(self) -> StringsListNode {
6162        let mut builder = CstBuilder::new();
6163        let r#continue = builder.embed(self.r#continue.builder);
6164        let string = builder.embed(self.string.builder);
6165        let strings_list = builder.embed(self.strings_list.builder);
6166        let node_id = builder.non_terminal(
6167            NonTerminalKind::StringsList,
6168            vec![r#continue, string, strings_list],
6169        );
6170        StringsListNode { node_id, builder }
6171    }
6172}
6173#[derive(bon::Builder)]
6174pub struct TextConstructor {
6175    text: TextToken,
6176}
6177impl TextConstructor {
6178    pub fn build(self) -> TextNode {
6179        let mut builder = CstBuilder::new();
6180        let text = builder.embed(self.text.builder);
6181        let node_id = builder.non_terminal(NonTerminalKind::Text, vec![text]);
6182        TextNode { node_id, builder }
6183    }
6184}
6185#[derive(bon::Builder)]
6186pub struct TextBindingConstructor {
6187    text_start: TextStartNode,
6188    text_binding_opt: TextBindingOptNode,
6189    text_binding_opt_0: TextBindingOpt0Node,
6190    text_binding_opt_1: TextBindingOpt1Node,
6191}
6192impl TextBindingConstructor {
6193    pub fn build(self) -> TextBindingNode {
6194        let mut builder = CstBuilder::new();
6195        let text_start = builder.embed(self.text_start.builder);
6196        let text_binding_opt = builder.embed(self.text_binding_opt.builder);
6197        let text_binding_opt_0 = builder.embed(self.text_binding_opt_0.builder);
6198        let text_binding_opt_1 = builder.embed(self.text_binding_opt_1.builder);
6199        let node_id = builder.non_terminal(
6200            NonTerminalKind::TextBinding,
6201            vec![
6202                text_start,
6203                text_binding_opt,
6204                text_binding_opt_0,
6205                text_binding_opt_1,
6206            ],
6207        );
6208        TextBindingNode { node_id, builder }
6209    }
6210}
6211#[derive(bon::Builder)]
6212pub struct TextBindingOptConstructor {
6213    ws: Option<WsNode>,
6214}
6215impl TextBindingOptConstructor {
6216    pub fn build(self) -> TextBindingOptNode {
6217        let mut builder = CstBuilder::new();
6218        let children = if let Some(child) = self.ws {
6219            vec![builder.embed(child.builder)]
6220        } else {
6221            Vec::<BuilderNodeId>::new()
6222        };
6223        let node_id = builder.non_terminal(NonTerminalKind::TextBindingOpt, children);
6224        TextBindingOptNode { node_id, builder }
6225    }
6226}
6227#[derive(bon::Builder)]
6228pub struct TextBindingOpt0Constructor {
6229    text: Option<TextNode>,
6230}
6231impl TextBindingOpt0Constructor {
6232    pub fn build(self) -> TextBindingOpt0Node {
6233        let mut builder = CstBuilder::new();
6234        let children = if let Some(child) = self.text {
6235            vec![builder.embed(child.builder)]
6236        } else {
6237            Vec::<BuilderNodeId>::new()
6238        };
6239        let node_id = builder.non_terminal(NonTerminalKind::TextBindingOpt0, children);
6240        TextBindingOpt0Node { node_id, builder }
6241    }
6242}
6243#[derive(bon::Builder)]
6244pub struct TextBindingOpt1Constructor {
6245    grammar_newline: Option<GrammarNewlineNode>,
6246}
6247impl TextBindingOpt1Constructor {
6248    pub fn build(self) -> TextBindingOpt1Node {
6249        let mut builder = CstBuilder::new();
6250        let children = if let Some(child) = self.grammar_newline {
6251            vec![builder.embed(child.builder)]
6252        } else {
6253            Vec::<BuilderNodeId>::new()
6254        };
6255        let node_id = builder.non_terminal(NonTerminalKind::TextBindingOpt1, children);
6256        TextBindingOpt1Node { node_id, builder }
6257    }
6258}
6259#[derive(bon::Builder)]
6260pub struct TextStartConstructor {
6261    text_start: TextStartToken,
6262}
6263impl TextStartConstructor {
6264    pub fn build(self) -> TextStartNode {
6265        let mut builder = CstBuilder::new();
6266        let text_start = builder.embed(self.text_start.builder);
6267        let node_id = builder.non_terminal(NonTerminalKind::TextStart, vec![text_start]);
6268        TextStartNode { node_id, builder }
6269    }
6270}
6271pub enum TopLevelBindingConstructor {
6272    ValueBinding(ValueBindingNode),
6273    TextBinding(TextBindingNode),
6274}
6275impl TopLevelBindingConstructor {
6276    pub fn build(self) -> TopLevelBindingNode {
6277        let mut builder = CstBuilder::new();
6278        let child_id = match self {
6279            Self::ValueBinding(node) => builder.embed(node.builder),
6280            Self::TextBinding(node) => builder.embed(node.builder),
6281        };
6282        let node_id = builder.non_terminal(NonTerminalKind::TopLevelBinding, vec![child_id]);
6283        TopLevelBindingNode { node_id, builder }
6284    }
6285}
6286#[derive(bon::Builder)]
6287pub struct TrueConstructor {
6288    r#true: TrueToken,
6289}
6290impl TrueConstructor {
6291    pub fn build(self) -> TrueNode {
6292        let mut builder = CstBuilder::new();
6293        let r#true = builder.embed(self.r#true.builder);
6294        let node_id = builder.non_terminal(NonTerminalKind::True, vec![r#true]);
6295        TrueNode { node_id, builder }
6296    }
6297}
6298#[derive(bon::Builder)]
6299pub struct TupleConstructor {
6300    l_paren: LParenNode,
6301    tuple_opt: TupleOptNode,
6302    r_paren: RParenNode,
6303}
6304impl TupleConstructor {
6305    pub fn build(self) -> TupleNode {
6306        let mut builder = CstBuilder::new();
6307        let l_paren = builder.embed(self.l_paren.builder);
6308        let tuple_opt = builder.embed(self.tuple_opt.builder);
6309        let r_paren = builder.embed(self.r_paren.builder);
6310        let node_id =
6311            builder.non_terminal(NonTerminalKind::Tuple, vec![l_paren, tuple_opt, r_paren]);
6312        TupleNode { node_id, builder }
6313    }
6314}
6315#[derive(bon::Builder)]
6316pub struct TupleElementsConstructor {
6317    value: ValueNode,
6318    tuple_elements_opt: TupleElementsOptNode,
6319}
6320impl TupleElementsConstructor {
6321    pub fn build(self) -> TupleElementsNode {
6322        let mut builder = CstBuilder::new();
6323        let value = builder.embed(self.value.builder);
6324        let tuple_elements_opt = builder.embed(self.tuple_elements_opt.builder);
6325        let node_id = builder.non_terminal(
6326            NonTerminalKind::TupleElements,
6327            vec![value, tuple_elements_opt],
6328        );
6329        TupleElementsNode { node_id, builder }
6330    }
6331}
6332#[derive(bon::Builder)]
6333pub struct TupleElementsOptConstructor {
6334    tuple_elements_tail: Option<TupleElementsTailNode>,
6335}
6336impl TupleElementsOptConstructor {
6337    pub fn build(self) -> TupleElementsOptNode {
6338        let mut builder = CstBuilder::new();
6339        let children = if let Some(child) = self.tuple_elements_tail {
6340            vec![builder.embed(child.builder)]
6341        } else {
6342            Vec::<BuilderNodeId>::new()
6343        };
6344        let node_id = builder.non_terminal(NonTerminalKind::TupleElementsOpt, children);
6345        TupleElementsOptNode { node_id, builder }
6346    }
6347}
6348#[derive(bon::Builder)]
6349pub struct TupleElementsTailConstructor {
6350    comma: CommaNode,
6351    tuple_elements_tail_opt: TupleElementsTailOptNode,
6352}
6353impl TupleElementsTailConstructor {
6354    pub fn build(self) -> TupleElementsTailNode {
6355        let mut builder = CstBuilder::new();
6356        let comma = builder.embed(self.comma.builder);
6357        let tuple_elements_tail_opt = builder.embed(self.tuple_elements_tail_opt.builder);
6358        let node_id = builder.non_terminal(
6359            NonTerminalKind::TupleElementsTail,
6360            vec![comma, tuple_elements_tail_opt],
6361        );
6362        TupleElementsTailNode { node_id, builder }
6363    }
6364}
6365#[derive(bon::Builder)]
6366pub struct TupleElementsTailOptConstructor {
6367    tuple_elements: Option<TupleElementsNode>,
6368}
6369impl TupleElementsTailOptConstructor {
6370    pub fn build(self) -> TupleElementsTailOptNode {
6371        let mut builder = CstBuilder::new();
6372        let children = if let Some(child) = self.tuple_elements {
6373            vec![builder.embed(child.builder)]
6374        } else {
6375            Vec::<BuilderNodeId>::new()
6376        };
6377        let node_id = builder.non_terminal(NonTerminalKind::TupleElementsTailOpt, children);
6378        TupleElementsTailOptNode { node_id, builder }
6379    }
6380}
6381#[derive(bon::Builder)]
6382pub struct TupleIndexConstructor {
6383    hash: HashToken,
6384    integer: IntegerNode,
6385}
6386impl TupleIndexConstructor {
6387    pub fn build(self) -> TupleIndexNode {
6388        let mut builder = CstBuilder::new();
6389        let hash = builder.embed(self.hash.builder);
6390        let integer = builder.embed(self.integer.builder);
6391        let node_id = builder.non_terminal(NonTerminalKind::TupleIndex, vec![hash, integer]);
6392        TupleIndexNode { node_id, builder }
6393    }
6394}
6395#[derive(bon::Builder)]
6396pub struct TupleOptConstructor {
6397    tuple_elements: Option<TupleElementsNode>,
6398}
6399impl TupleOptConstructor {
6400    pub fn build(self) -> TupleOptNode {
6401        let mut builder = CstBuilder::new();
6402        let children = if let Some(child) = self.tuple_elements {
6403            vec![builder.embed(child.builder)]
6404        } else {
6405            Vec::<BuilderNodeId>::new()
6406        };
6407        let node_id = builder.non_terminal(NonTerminalKind::TupleOpt, children);
6408        TupleOptNode { node_id, builder }
6409    }
6410}
6411pub enum ValueConstructor {
6412    Object(ObjectNode),
6413    Array(ArrayNode),
6414    Tuple(TupleNode),
6415    Number(NumberNode),
6416    Boolean(BooleanNode),
6417    Null(NullNode),
6418    Strings(StringsNode),
6419    Hole(HoleNode),
6420    CodeBlock(CodeBlockNode),
6421    InlineCode(InlineCodeNode),
6422}
6423impl ValueConstructor {
6424    pub fn build(self) -> ValueNode {
6425        let mut builder = CstBuilder::new();
6426        let child_id = match self {
6427            Self::Object(node) => builder.embed(node.builder),
6428            Self::Array(node) => builder.embed(node.builder),
6429            Self::Tuple(node) => builder.embed(node.builder),
6430            Self::Number(node) => builder.embed(node.builder),
6431            Self::Boolean(node) => builder.embed(node.builder),
6432            Self::Null(node) => builder.embed(node.builder),
6433            Self::Strings(node) => builder.embed(node.builder),
6434            Self::Hole(node) => builder.embed(node.builder),
6435            Self::CodeBlock(node) => builder.embed(node.builder),
6436            Self::InlineCode(node) => builder.embed(node.builder),
6437        };
6438        let node_id = builder.non_terminal(NonTerminalKind::Value, vec![child_id]);
6439        ValueNode { node_id, builder }
6440    }
6441}
6442#[derive(bon::Builder)]
6443pub struct ValueBindingConstructor {
6444    bind: BindNode,
6445    value: ValueNode,
6446}
6447impl ValueBindingConstructor {
6448    pub fn build(self) -> ValueBindingNode {
6449        let mut builder = CstBuilder::new();
6450        let bind = builder.embed(self.bind.builder);
6451        let value = builder.embed(self.value.builder);
6452        let node_id = builder.non_terminal(NonTerminalKind::ValueBinding, vec![bind, value]);
6453        ValueBindingNode { node_id, builder }
6454    }
6455}
6456#[derive(bon::Builder)]
6457pub struct WsConstructor {
6458    ws: WsToken,
6459}
6460impl WsConstructor {
6461    pub fn build(self) -> WsNode {
6462        let mut builder = CstBuilder::new();
6463        let ws = builder.embed(self.ws.builder);
6464        let node_id = builder.non_terminal(NonTerminalKind::Ws, vec![ws]);
6465        WsNode { node_id, builder }
6466    }
6467}
6468#[derive(bon::Builder)]
6469pub struct RootConstructor {
6470    eure: EureNode,
6471}
6472impl RootConstructor {
6473    pub fn build(self) -> RootNode {
6474        let mut builder = CstBuilder::new();
6475        let eure = builder.embed(self.eure.builder);
6476        let node_id = builder.non_terminal(NonTerminalKind::Root, vec![eure]);
6477        RootNode { node_id, builder }
6478    }
6479}
6480pub mod terminals {
6481    use super::*;
6482    pub fn hash() -> HashToken {
6483        let mut builder = CstBuilder::new();
6484        let node_id = builder.terminal(TerminalKind::Hash, "");
6485        HashToken { node_id, builder }
6486    }
6487    pub fn map_bind() -> MapBindToken {
6488        let mut builder = CstBuilder::new();
6489        let node_id = builder.terminal(TerminalKind::MapBind, "");
6490        MapBindToken { node_id, builder }
6491    }
6492    pub fn integer(value: &str) -> IntegerToken {
6493        let mut builder = CstBuilder::new();
6494        let node_id = builder.terminal(TerminalKind::Integer, value);
6495        IntegerToken { node_id, builder }
6496    }
6497    pub fn float() -> FloatToken {
6498        let mut builder = CstBuilder::new();
6499        let node_id = builder.terminal(TerminalKind::Float, "");
6500        FloatToken { node_id, builder }
6501    }
6502    pub fn inf() -> InfToken {
6503        let mut builder = CstBuilder::new();
6504        let node_id = builder.terminal(TerminalKind::Inf, "");
6505        InfToken { node_id, builder }
6506    }
6507    pub fn na_n() -> NaNToken {
6508        let mut builder = CstBuilder::new();
6509        let node_id = builder.terminal(TerminalKind::NaN, "");
6510        NaNToken { node_id, builder }
6511    }
6512    pub fn r#true() -> TrueToken {
6513        let mut builder = CstBuilder::new();
6514        let node_id = builder.terminal(TerminalKind::True, "true");
6515        TrueToken { node_id, builder }
6516    }
6517    pub fn r#false() -> FalseToken {
6518        let mut builder = CstBuilder::new();
6519        let node_id = builder.terminal(TerminalKind::False, "false");
6520        FalseToken { node_id, builder }
6521    }
6522    pub fn null() -> NullToken {
6523        let mut builder = CstBuilder::new();
6524        let node_id = builder.terminal(TerminalKind::Null, "null");
6525        NullToken { node_id, builder }
6526    }
6527    pub fn hole() -> HoleToken {
6528        let mut builder = CstBuilder::new();
6529        let node_id = builder.terminal(TerminalKind::Hole, "!");
6530        HoleToken { node_id, builder }
6531    }
6532    pub fn str(value: &str) -> StrToken {
6533        let mut builder = CstBuilder::new();
6534        let node_id = builder.terminal(TerminalKind::Str, value);
6535        StrToken { node_id, builder }
6536    }
6537    pub fn lit_str() -> LitStrToken {
6538        let mut builder = CstBuilder::new();
6539        let node_id = builder.terminal(TerminalKind::LitStr, "");
6540        LitStrToken { node_id, builder }
6541    }
6542    pub fn text(value: &str) -> TextToken {
6543        let mut builder = CstBuilder::new();
6544        let node_id = builder.terminal(TerminalKind::Text, value);
6545        TextToken { node_id, builder }
6546    }
6547    pub fn inline_code_1() -> InlineCode1Token {
6548        let mut builder = CstBuilder::new();
6549        let node_id = builder.terminal(TerminalKind::InlineCode1, "");
6550        InlineCode1Token { node_id, builder }
6551    }
6552    pub fn lit_str_3_start() -> LitStr3StartToken {
6553        let mut builder = CstBuilder::new();
6554        let node_id = builder.terminal(TerminalKind::LitStr3Start, "");
6555        LitStr3StartToken { node_id, builder }
6556    }
6557    pub fn lit_str_2_start() -> LitStr2StartToken {
6558        let mut builder = CstBuilder::new();
6559        let node_id = builder.terminal(TerminalKind::LitStr2Start, "");
6560        LitStr2StartToken { node_id, builder }
6561    }
6562    pub fn lit_str_1_start() -> LitStr1StartToken {
6563        let mut builder = CstBuilder::new();
6564        let node_id = builder.terminal(TerminalKind::LitStr1Start, "");
6565        LitStr1StartToken { node_id, builder }
6566    }
6567    pub fn delim_code_start_3() -> DelimCodeStart3Token {
6568        let mut builder = CstBuilder::new();
6569        let node_id = builder.terminal(TerminalKind::DelimCodeStart3, "");
6570        DelimCodeStart3Token { node_id, builder }
6571    }
6572    pub fn delim_code_start_2() -> DelimCodeStart2Token {
6573        let mut builder = CstBuilder::new();
6574        let node_id = builder.terminal(TerminalKind::DelimCodeStart2, "");
6575        DelimCodeStart2Token { node_id, builder }
6576    }
6577    pub fn delim_code_start_1() -> DelimCodeStart1Token {
6578        let mut builder = CstBuilder::new();
6579        let node_id = builder.terminal(TerminalKind::DelimCodeStart1, "");
6580        DelimCodeStart1Token { node_id, builder }
6581    }
6582    pub fn code_block_start_3() -> CodeBlockStart3Token {
6583        let mut builder = CstBuilder::new();
6584        let node_id = builder.terminal(TerminalKind::CodeBlockStart3, "");
6585        CodeBlockStart3Token { node_id, builder }
6586    }
6587    pub fn code_block_start_4() -> CodeBlockStart4Token {
6588        let mut builder = CstBuilder::new();
6589        let node_id = builder.terminal(TerminalKind::CodeBlockStart4, "");
6590        CodeBlockStart4Token { node_id, builder }
6591    }
6592    pub fn code_block_start_5() -> CodeBlockStart5Token {
6593        let mut builder = CstBuilder::new();
6594        let node_id = builder.terminal(TerminalKind::CodeBlockStart5, "");
6595        CodeBlockStart5Token { node_id, builder }
6596    }
6597    pub fn code_block_start_6() -> CodeBlockStart6Token {
6598        let mut builder = CstBuilder::new();
6599        let node_id = builder.terminal(TerminalKind::CodeBlockStart6, "");
6600        CodeBlockStart6Token { node_id, builder }
6601    }
6602    pub fn code_block_end_3() -> CodeBlockEnd3Token {
6603        let mut builder = CstBuilder::new();
6604        let node_id = builder.terminal(TerminalKind::CodeBlockEnd3, "");
6605        CodeBlockEnd3Token { node_id, builder }
6606    }
6607    pub fn backtick_2() -> Backtick2Token {
6608        let mut builder = CstBuilder::new();
6609        let node_id = builder.terminal(TerminalKind::Backtick2, "");
6610        Backtick2Token { node_id, builder }
6611    }
6612    pub fn code_block_end_4() -> CodeBlockEnd4Token {
6613        let mut builder = CstBuilder::new();
6614        let node_id = builder.terminal(TerminalKind::CodeBlockEnd4, "");
6615        CodeBlockEnd4Token { node_id, builder }
6616    }
6617    pub fn backtick_3() -> Backtick3Token {
6618        let mut builder = CstBuilder::new();
6619        let node_id = builder.terminal(TerminalKind::Backtick3, "");
6620        Backtick3Token { node_id, builder }
6621    }
6622    pub fn code_block_end_5() -> CodeBlockEnd5Token {
6623        let mut builder = CstBuilder::new();
6624        let node_id = builder.terminal(TerminalKind::CodeBlockEnd5, "");
6625        CodeBlockEnd5Token { node_id, builder }
6626    }
6627    pub fn backtick_4() -> Backtick4Token {
6628        let mut builder = CstBuilder::new();
6629        let node_id = builder.terminal(TerminalKind::Backtick4, "");
6630        Backtick4Token { node_id, builder }
6631    }
6632    pub fn code_block_end_6() -> CodeBlockEnd6Token {
6633        let mut builder = CstBuilder::new();
6634        let node_id = builder.terminal(TerminalKind::CodeBlockEnd6, "");
6635        CodeBlockEnd6Token { node_id, builder }
6636    }
6637    pub fn backtick_5() -> Backtick5Token {
6638        let mut builder = CstBuilder::new();
6639        let node_id = builder.terminal(TerminalKind::Backtick5, "");
6640        Backtick5Token { node_id, builder }
6641    }
6642    pub fn no_backtick() -> NoBacktickToken {
6643        let mut builder = CstBuilder::new();
6644        let node_id = builder.terminal(TerminalKind::NoBacktick, "");
6645        NoBacktickToken { node_id, builder }
6646    }
6647    pub fn lit_str_3_end() -> LitStr3EndToken {
6648        let mut builder = CstBuilder::new();
6649        let node_id = builder.terminal(TerminalKind::LitStr3End, "");
6650        LitStr3EndToken { node_id, builder }
6651    }
6652    pub fn lit_str_2_end() -> LitStr2EndToken {
6653        let mut builder = CstBuilder::new();
6654        let node_id = builder.terminal(TerminalKind::LitStr2End, "");
6655        LitStr2EndToken { node_id, builder }
6656    }
6657    pub fn lit_str_1_end() -> LitStr1EndToken {
6658        let mut builder = CstBuilder::new();
6659        let node_id = builder.terminal(TerminalKind::LitStr1End, "");
6660        LitStr1EndToken { node_id, builder }
6661    }
6662    pub fn s_quote() -> SQuoteToken {
6663        let mut builder = CstBuilder::new();
6664        let node_id = builder.terminal(TerminalKind::SQuote, "");
6665        SQuoteToken { node_id, builder }
6666    }
6667    pub fn no_s_quote() -> NoSQuoteToken {
6668        let mut builder = CstBuilder::new();
6669        let node_id = builder.terminal(TerminalKind::NoSQuote, "");
6670        NoSQuoteToken { node_id, builder }
6671    }
6672    pub fn delim_code_end_3() -> DelimCodeEnd3Token {
6673        let mut builder = CstBuilder::new();
6674        let node_id = builder.terminal(TerminalKind::DelimCodeEnd3, "");
6675        DelimCodeEnd3Token { node_id, builder }
6676    }
6677    pub fn delim_code_end_2() -> DelimCodeEnd2Token {
6678        let mut builder = CstBuilder::new();
6679        let node_id = builder.terminal(TerminalKind::DelimCodeEnd2, "");
6680        DelimCodeEnd2Token { node_id, builder }
6681    }
6682    pub fn delim_code_end_1() -> DelimCodeEnd1Token {
6683        let mut builder = CstBuilder::new();
6684        let node_id = builder.terminal(TerminalKind::DelimCodeEnd1, "");
6685        DelimCodeEnd1Token { node_id, builder }
6686    }
6687    pub fn backtick_delim() -> BacktickDelimToken {
6688        let mut builder = CstBuilder::new();
6689        let node_id = builder.terminal(TerminalKind::BacktickDelim, "");
6690        BacktickDelimToken { node_id, builder }
6691    }
6692    pub fn grammar_newline() -> GrammarNewlineToken {
6693        let mut builder = CstBuilder::new();
6694        let node_id = builder.terminal(TerminalKind::GrammarNewline, "\n");
6695        GrammarNewlineToken { node_id, builder }
6696    }
6697    pub fn ws() -> WsToken {
6698        let mut builder = CstBuilder::new();
6699        let node_id = builder.terminal(TerminalKind::Ws, " ");
6700        WsToken { node_id, builder }
6701    }
6702    pub fn at() -> AtToken {
6703        let mut builder = CstBuilder::new();
6704        let node_id = builder.terminal(TerminalKind::At, "@");
6705        AtToken { node_id, builder }
6706    }
6707    pub fn dollar() -> DollarToken {
6708        let mut builder = CstBuilder::new();
6709        let node_id = builder.terminal(TerminalKind::Dollar, "$");
6710        DollarToken { node_id, builder }
6711    }
6712    pub fn dot() -> DotToken {
6713        let mut builder = CstBuilder::new();
6714        let node_id = builder.terminal(TerminalKind::Dot, ".");
6715        DotToken { node_id, builder }
6716    }
6717    pub fn l_brace() -> LBraceToken {
6718        let mut builder = CstBuilder::new();
6719        let node_id = builder.terminal(TerminalKind::LBrace, "{");
6720        LBraceToken { node_id, builder }
6721    }
6722    pub fn r_brace() -> RBraceToken {
6723        let mut builder = CstBuilder::new();
6724        let node_id = builder.terminal(TerminalKind::RBrace, "}");
6725        RBraceToken { node_id, builder }
6726    }
6727    pub fn l_bracket() -> LBracketToken {
6728        let mut builder = CstBuilder::new();
6729        let node_id = builder.terminal(TerminalKind::LBracket, "[");
6730        LBracketToken { node_id, builder }
6731    }
6732    pub fn r_bracket() -> RBracketToken {
6733        let mut builder = CstBuilder::new();
6734        let node_id = builder.terminal(TerminalKind::RBracket, "]");
6735        RBracketToken { node_id, builder }
6736    }
6737    pub fn circumflex() -> CircumflexToken {
6738        let mut builder = CstBuilder::new();
6739        let node_id = builder.terminal(TerminalKind::Circumflex, "");
6740        CircumflexToken { node_id, builder }
6741    }
6742    pub fn l_paren() -> LParenToken {
6743        let mut builder = CstBuilder::new();
6744        let node_id = builder.terminal(TerminalKind::LParen, "");
6745        LParenToken { node_id, builder }
6746    }
6747    pub fn r_paren() -> RParenToken {
6748        let mut builder = CstBuilder::new();
6749        let node_id = builder.terminal(TerminalKind::RParen, "");
6750        RParenToken { node_id, builder }
6751    }
6752    pub fn newline_bind() -> NewlineBindToken {
6753        let mut builder = CstBuilder::new();
6754        let node_id = builder.terminal(TerminalKind::NewlineBind, "");
6755        NewlineBindToken { node_id, builder }
6756    }
6757    pub fn bind() -> BindToken {
6758        let mut builder = CstBuilder::new();
6759        let node_id = builder.terminal(TerminalKind::Bind, "=");
6760        BindToken { node_id, builder }
6761    }
6762    pub fn comma() -> CommaToken {
6763        let mut builder = CstBuilder::new();
6764        let node_id = builder.terminal(TerminalKind::Comma, ",");
6765        CommaToken { node_id, builder }
6766    }
6767    pub fn esc() -> EscToken {
6768        let mut builder = CstBuilder::new();
6769        let node_id = builder.terminal(TerminalKind::Esc, "\\\\");
6770        EscToken { node_id, builder }
6771    }
6772    pub fn newline_text_start() -> NewlineTextStartToken {
6773        let mut builder = CstBuilder::new();
6774        let node_id = builder.terminal(TerminalKind::NewlineTextStart, "");
6775        NewlineTextStartToken { node_id, builder }
6776    }
6777    pub fn text_start() -> TextStartToken {
6778        let mut builder = CstBuilder::new();
6779        let node_id = builder.terminal(TerminalKind::TextStart, "");
6780        TextStartToken { node_id, builder }
6781    }
6782    pub fn ident(name: &str) -> IdentToken {
6783        let mut builder = CstBuilder::new();
6784        let node_id = builder.terminal(TerminalKind::Ident, name);
6785        IdentToken { node_id, builder }
6786    }
6787}