Skip to main content

eure_parol/
grammar_trait.rs

1// ---------------------------------------------------------
2// This file was generated by parol.
3// Do not edit this file manually.
4// Changes will be overwritten on the next build.
5// ---------------------------------------------------------
6
7// Disable clippy warnings that can result in the way how parol generates code.
8#![allow(clippy::enum_variant_names)]
9#![allow(clippy::large_enum_variant)]
10#![allow(clippy::upper_case_acronyms)]
11
12use parol_runtime::log::trace;
13#[allow(unused_imports)]
14use parol_runtime::parol_macros::{pop_and_reverse_item, pop_item};
15use parol_runtime::parser::{ParseTreeType, UserActionsTrait};
16use parol_runtime::{ParserError, Result, Token};
17use parol_runtime::{Span, ToSpan};
18
19/// Semantic actions trait generated for the user grammar
20/// All functions have default implementations.
21pub trait GrammarTrait<'t> {
22    /// Semantic action for non-terminal 'Eure'
23    fn eure(&mut self, _arg: &Eure<'t>) -> Result<()> {
24        Ok(())
25    }
26
27    /// Semantic action for non-terminal 'TopLevelBinding'
28    fn top_level_binding(&mut self, _arg: &TopLevelBinding<'t>) -> Result<()> {
29        Ok(())
30    }
31
32    /// Semantic action for non-terminal 'RootBinding'
33    fn root_binding(&mut self, _arg: &RootBinding<'t>) -> Result<()> {
34        Ok(())
35    }
36
37    /// Semantic action for non-terminal 'RootValueBinding'
38    fn root_value_binding(&mut self, _arg: &RootValueBinding<'t>) -> Result<()> {
39        Ok(())
40    }
41
42    /// Semantic action for non-terminal 'RootTextBinding'
43    fn root_text_binding(&mut self, _arg: &RootTextBinding<'t>) -> Result<()> {
44        Ok(())
45    }
46
47    /// Semantic action for non-terminal 'Binding'
48    fn binding(&mut self, _arg: &Binding<'t>) -> Result<()> {
49        Ok(())
50    }
51
52    /// Semantic action for non-terminal 'BindingRhs'
53    fn binding_rhs(&mut self, _arg: &BindingRhs<'t>) -> Result<()> {
54        Ok(())
55    }
56
57    /// Semantic action for non-terminal 'ValueBinding'
58    fn value_binding(&mut self, _arg: &ValueBinding<'t>) -> Result<()> {
59        Ok(())
60    }
61
62    /// Semantic action for non-terminal 'SectionBinding'
63    fn section_binding(&mut self, _arg: &SectionBinding<'t>) -> Result<()> {
64        Ok(())
65    }
66
67    /// Semantic action for non-terminal 'TextBinding'
68    fn text_binding(&mut self, _arg: &TextBinding<'t>) -> Result<()> {
69        Ok(())
70    }
71
72    /// Semantic action for non-terminal 'Section'
73    fn section(&mut self, _arg: &Section<'t>) -> Result<()> {
74        Ok(())
75    }
76
77    /// Semantic action for non-terminal 'SectionBody'
78    fn section_body(&mut self, _arg: &SectionBody<'t>) -> Result<()> {
79        Ok(())
80    }
81
82    /// Semantic action for non-terminal 'FlatBody'
83    fn flat_body(&mut self, _arg: &FlatBody<'t>) -> Result<()> {
84        Ok(())
85    }
86
87    /// Semantic action for non-terminal 'SectionHead'
88    fn section_head(&mut self, _arg: &SectionHead<'t>) -> Result<()> {
89        Ok(())
90    }
91
92    /// Semantic action for non-terminal 'NewlineHead'
93    fn newline_head(&mut self, _arg: &NewlineHead<'t>) -> Result<()> {
94        Ok(())
95    }
96
97    /// Semantic action for non-terminal 'FlatRootBinding'
98    fn flat_root_binding(&mut self, _arg: &FlatRootBinding<'t>) -> Result<()> {
99        Ok(())
100    }
101
102    /// Semantic action for non-terminal 'BlockBody'
103    fn block_body(&mut self, _arg: &BlockBody<'t>) -> Result<()> {
104        Ok(())
105    }
106
107    /// Semantic action for non-terminal 'Keys'
108    fn keys(&mut self, _arg: &Keys<'t>) -> Result<()> {
109        Ok(())
110    }
111
112    /// Semantic action for non-terminal 'FirstKey'
113    fn first_key(&mut self, _arg: &FirstKey<'t>) -> Result<()> {
114        Ok(())
115    }
116
117    /// Semantic action for non-terminal 'KeyTail'
118    fn key_tail(&mut self, _arg: &KeyTail<'t>) -> Result<()> {
119        Ok(())
120    }
121
122    /// Semantic action for non-terminal 'DotKey'
123    fn dot_key(&mut self, _arg: &DotKey<'t>) -> Result<()> {
124        Ok(())
125    }
126
127    /// Semantic action for non-terminal 'ArrayMarker'
128    fn array_marker(&mut self, _arg: &ArrayMarker<'t>) -> Result<()> {
129        Ok(())
130    }
131
132    /// Semantic action for non-terminal 'Key'
133    fn key(&mut self, _arg: &Key<'t>) -> Result<()> {
134        Ok(())
135    }
136
137    /// Semantic action for non-terminal 'TupleIndex'
138    fn tuple_index(&mut self, _arg: &TupleIndex<'t>) -> Result<()> {
139        Ok(())
140    }
141
142    /// Semantic action for non-terminal 'ExtensionNameSpace'
143    fn extension_name_space(&mut self, _arg: &ExtensionNameSpace<'t>) -> Result<()> {
144        Ok(())
145    }
146
147    /// Semantic action for non-terminal 'KeyTuple'
148    fn key_tuple(&mut self, _arg: &KeyTuple<'t>) -> Result<()> {
149        Ok(())
150    }
151
152    /// Semantic action for non-terminal 'KeyTupleElements'
153    fn key_tuple_elements(&mut self, _arg: &KeyTupleElements<'t>) -> Result<()> {
154        Ok(())
155    }
156
157    /// Semantic action for non-terminal 'KeyTupleElementsTail'
158    fn key_tuple_elements_tail(&mut self, _arg: &KeyTupleElementsTail<'t>) -> Result<()> {
159        Ok(())
160    }
161
162    /// Semantic action for non-terminal 'KeyValue'
163    fn key_value(&mut self, _arg: &KeyValue<'t>) -> Result<()> {
164        Ok(())
165    }
166
167    /// Semantic action for non-terminal 'KeyIdent'
168    fn key_ident(&mut self, _arg: &KeyIdent<'t>) -> Result<()> {
169        Ok(())
170    }
171
172    /// Semantic action for non-terminal 'Value'
173    fn value(&mut self, _arg: &Value<'t>) -> Result<()> {
174        Ok(())
175    }
176
177    /// Semantic action for non-terminal 'Object'
178    fn object(&mut self, _arg: &Object<'t>) -> Result<()> {
179        Ok(())
180    }
181
182    /// Semantic action for non-terminal 'MapBind'
183    fn map_bind(&mut self, _arg: &MapBind<'t>) -> Result<()> {
184        Ok(())
185    }
186
187    /// Semantic action for non-terminal 'Array'
188    fn array(&mut self, _arg: &Array<'t>) -> Result<()> {
189        Ok(())
190    }
191
192    /// Semantic action for non-terminal 'ArrayElements'
193    fn array_elements(&mut self, _arg: &ArrayElements<'t>) -> Result<()> {
194        Ok(())
195    }
196
197    /// Semantic action for non-terminal 'ArrayElementsTail'
198    fn array_elements_tail(&mut self, _arg: &ArrayElementsTail<'t>) -> Result<()> {
199        Ok(())
200    }
201
202    /// Semantic action for non-terminal 'Tuple'
203    fn tuple(&mut self, _arg: &Tuple<'t>) -> Result<()> {
204        Ok(())
205    }
206
207    /// Semantic action for non-terminal 'TupleElements'
208    fn tuple_elements(&mut self, _arg: &TupleElements<'t>) -> Result<()> {
209        Ok(())
210    }
211
212    /// Semantic action for non-terminal 'TupleElementsTail'
213    fn tuple_elements_tail(&mut self, _arg: &TupleElementsTail<'t>) -> Result<()> {
214        Ok(())
215    }
216
217    /// Semantic action for non-terminal 'Number'
218    fn number(&mut self, _arg: &Number<'t>) -> Result<()> {
219        Ok(())
220    }
221
222    /// Semantic action for non-terminal 'Integer'
223    fn integer(&mut self, _arg: &Integer<'t>) -> Result<()> {
224        Ok(())
225    }
226
227    /// Semantic action for non-terminal 'Float'
228    fn float(&mut self, _arg: &Float<'t>) -> Result<()> {
229        Ok(())
230    }
231
232    /// Semantic action for non-terminal 'Inf'
233    fn inf(&mut self, _arg: &Inf<'t>) -> Result<()> {
234        Ok(())
235    }
236
237    /// Semantic action for non-terminal 'NaN'
238    fn na_n(&mut self, _arg: &NaN<'t>) -> Result<()> {
239        Ok(())
240    }
241
242    /// Semantic action for non-terminal 'Boolean'
243    fn boolean(&mut self, _arg: &Boolean<'t>) -> Result<()> {
244        Ok(())
245    }
246
247    /// Semantic action for non-terminal 'True'
248    fn r#true(&mut self, _arg: &True<'t>) -> Result<()> {
249        Ok(())
250    }
251
252    /// Semantic action for non-terminal 'False'
253    fn r#false(&mut self, _arg: &False<'t>) -> Result<()> {
254        Ok(())
255    }
256
257    /// Semantic action for non-terminal 'Null'
258    fn null(&mut self, _arg: &Null<'t>) -> Result<()> {
259        Ok(())
260    }
261
262    /// Semantic action for non-terminal 'Hole'
263    fn hole(&mut self, _arg: &Hole<'t>) -> Result<()> {
264        Ok(())
265    }
266
267    /// Semantic action for non-terminal 'String'
268    fn string(&mut self, _arg: &String<'t>) -> Result<()> {
269        Ok(())
270    }
271
272    /// Semantic action for non-terminal 'Strings'
273    fn strings(&mut self, _arg: &Strings<'t>) -> Result<()> {
274        Ok(())
275    }
276
277    /// Semantic action for non-terminal 'Str'
278    fn str(&mut self, _arg: &Str<'t>) -> Result<()> {
279        Ok(())
280    }
281
282    /// Semantic action for non-terminal 'LitStr'
283    fn lit_str(&mut self, _arg: &LitStr<'t>) -> Result<()> {
284        Ok(())
285    }
286
287    /// Semantic action for non-terminal 'Text'
288    fn text(&mut self, _arg: &Text<'t>) -> Result<()> {
289        Ok(())
290    }
291
292    /// Semantic action for non-terminal 'InlineCode'
293    fn inline_code(&mut self, _arg: &InlineCode<'t>) -> Result<()> {
294        Ok(())
295    }
296
297    /// Semantic action for non-terminal 'InlineCode1'
298    fn inline_code1(&mut self, _arg: &InlineCode1<'t>) -> Result<()> {
299        Ok(())
300    }
301
302    /// Semantic action for non-terminal 'LitStr1'
303    fn lit_str1(&mut self, _arg: &LitStr1<'t>) -> Result<()> {
304        Ok(())
305    }
306
307    /// Semantic action for non-terminal 'LitStr2'
308    fn lit_str2(&mut self, _arg: &LitStr2<'t>) -> Result<()> {
309        Ok(())
310    }
311
312    /// Semantic action for non-terminal 'LitStr3'
313    fn lit_str3(&mut self, _arg: &LitStr3<'t>) -> Result<()> {
314        Ok(())
315    }
316
317    /// Semantic action for non-terminal 'DelimCode'
318    fn delim_code(&mut self, _arg: &DelimCode<'t>) -> Result<()> {
319        Ok(())
320    }
321
322    /// Semantic action for non-terminal 'DelimCode1'
323    fn delim_code1(&mut self, _arg: &DelimCode1<'t>) -> Result<()> {
324        Ok(())
325    }
326
327    /// Semantic action for non-terminal 'DelimCode2'
328    fn delim_code2(&mut self, _arg: &DelimCode2<'t>) -> Result<()> {
329        Ok(())
330    }
331
332    /// Semantic action for non-terminal 'DelimCode3'
333    fn delim_code3(&mut self, _arg: &DelimCode3<'t>) -> Result<()> {
334        Ok(())
335    }
336
337    /// Semantic action for non-terminal 'CodeBlock'
338    fn code_block(&mut self, _arg: &CodeBlock<'t>) -> Result<()> {
339        Ok(())
340    }
341
342    /// Semantic action for non-terminal 'CodeBlock3'
343    fn code_block3(&mut self, _arg: &CodeBlock3<'t>) -> Result<()> {
344        Ok(())
345    }
346
347    /// Semantic action for non-terminal 'CodeBlock4'
348    fn code_block4(&mut self, _arg: &CodeBlock4<'t>) -> Result<()> {
349        Ok(())
350    }
351
352    /// Semantic action for non-terminal 'CodeBlock5'
353    fn code_block5(&mut self, _arg: &CodeBlock5<'t>) -> Result<()> {
354        Ok(())
355    }
356
357    /// Semantic action for non-terminal 'CodeBlock6'
358    fn code_block6(&mut self, _arg: &CodeBlock6<'t>) -> Result<()> {
359        Ok(())
360    }
361
362    /// Semantic action for non-terminal 'LitStr3Start'
363    fn lit_str3_start(&mut self, _arg: &LitStr3Start<'t>) -> Result<()> {
364        Ok(())
365    }
366
367    /// Semantic action for non-terminal 'LitStr2Start'
368    fn lit_str2_start(&mut self, _arg: &LitStr2Start<'t>) -> Result<()> {
369        Ok(())
370    }
371
372    /// Semantic action for non-terminal 'LitStr1Start'
373    fn lit_str1_start(&mut self, _arg: &LitStr1Start<'t>) -> Result<()> {
374        Ok(())
375    }
376
377    /// Semantic action for non-terminal 'DelimCodeStart3'
378    fn delim_code_start3(&mut self, _arg: &DelimCodeStart3<'t>) -> Result<()> {
379        Ok(())
380    }
381
382    /// Semantic action for non-terminal 'DelimCodeStart2'
383    fn delim_code_start2(&mut self, _arg: &DelimCodeStart2<'t>) -> Result<()> {
384        Ok(())
385    }
386
387    /// Semantic action for non-terminal 'DelimCodeStart1'
388    fn delim_code_start1(&mut self, _arg: &DelimCodeStart1<'t>) -> Result<()> {
389        Ok(())
390    }
391
392    /// Semantic action for non-terminal 'CodeBlockStart3'
393    fn code_block_start3(&mut self, _arg: &CodeBlockStart3<'t>) -> Result<()> {
394        Ok(())
395    }
396
397    /// Semantic action for non-terminal 'CodeBlockStart4'
398    fn code_block_start4(&mut self, _arg: &CodeBlockStart4<'t>) -> Result<()> {
399        Ok(())
400    }
401
402    /// Semantic action for non-terminal 'CodeBlockStart5'
403    fn code_block_start5(&mut self, _arg: &CodeBlockStart5<'t>) -> Result<()> {
404        Ok(())
405    }
406
407    /// Semantic action for non-terminal 'CodeBlockStart6'
408    fn code_block_start6(&mut self, _arg: &CodeBlockStart6<'t>) -> Result<()> {
409        Ok(())
410    }
411
412    /// Semantic action for non-terminal 'CodeBlockEnd3'
413    fn code_block_end3(&mut self, _arg: &CodeBlockEnd3<'t>) -> Result<()> {
414        Ok(())
415    }
416
417    /// Semantic action for non-terminal 'Backtick2'
418    fn backtick2(&mut self, _arg: &Backtick2<'t>) -> Result<()> {
419        Ok(())
420    }
421
422    /// Semantic action for non-terminal 'CodeBlockEnd4'
423    fn code_block_end4(&mut self, _arg: &CodeBlockEnd4<'t>) -> Result<()> {
424        Ok(())
425    }
426
427    /// Semantic action for non-terminal 'Backtick3'
428    fn backtick3(&mut self, _arg: &Backtick3<'t>) -> Result<()> {
429        Ok(())
430    }
431
432    /// Semantic action for non-terminal 'CodeBlockEnd5'
433    fn code_block_end5(&mut self, _arg: &CodeBlockEnd5<'t>) -> Result<()> {
434        Ok(())
435    }
436
437    /// Semantic action for non-terminal 'Backtick4'
438    fn backtick4(&mut self, _arg: &Backtick4<'t>) -> Result<()> {
439        Ok(())
440    }
441
442    /// Semantic action for non-terminal 'CodeBlockEnd6'
443    fn code_block_end6(&mut self, _arg: &CodeBlockEnd6<'t>) -> Result<()> {
444        Ok(())
445    }
446
447    /// Semantic action for non-terminal 'Backtick5'
448    fn backtick5(&mut self, _arg: &Backtick5<'t>) -> Result<()> {
449        Ok(())
450    }
451
452    /// Semantic action for non-terminal 'NoBacktick'
453    fn no_backtick(&mut self, _arg: &NoBacktick<'t>) -> Result<()> {
454        Ok(())
455    }
456
457    /// Semantic action for non-terminal 'LitStr3End'
458    fn lit_str3_end(&mut self, _arg: &LitStr3End<'t>) -> Result<()> {
459        Ok(())
460    }
461
462    /// Semantic action for non-terminal 'LitStr2End'
463    fn lit_str2_end(&mut self, _arg: &LitStr2End<'t>) -> Result<()> {
464        Ok(())
465    }
466
467    /// Semantic action for non-terminal 'LitStr1End'
468    fn lit_str1_end(&mut self, _arg: &LitStr1End<'t>) -> Result<()> {
469        Ok(())
470    }
471
472    /// Semantic action for non-terminal 'SQuote'
473    fn s_quote(&mut self, _arg: &SQuote<'t>) -> Result<()> {
474        Ok(())
475    }
476
477    /// Semantic action for non-terminal 'NoSQuote'
478    fn no_s_quote(&mut self, _arg: &NoSQuote<'t>) -> Result<()> {
479        Ok(())
480    }
481
482    /// Semantic action for non-terminal 'DelimCodeEnd3'
483    fn delim_code_end3(&mut self, _arg: &DelimCodeEnd3<'t>) -> Result<()> {
484        Ok(())
485    }
486
487    /// Semantic action for non-terminal 'DelimCodeEnd2'
488    fn delim_code_end2(&mut self, _arg: &DelimCodeEnd2<'t>) -> Result<()> {
489        Ok(())
490    }
491
492    /// Semantic action for non-terminal 'DelimCodeEnd1'
493    fn delim_code_end1(&mut self, _arg: &DelimCodeEnd1<'t>) -> Result<()> {
494        Ok(())
495    }
496
497    /// Semantic action for non-terminal 'BacktickDelim'
498    fn backtick_delim(&mut self, _arg: &BacktickDelim<'t>) -> Result<()> {
499        Ok(())
500    }
501
502    /// Semantic action for non-terminal 'GrammarNewline'
503    fn grammar_newline(&mut self, _arg: &GrammarNewline<'t>) -> Result<()> {
504        Ok(())
505    }
506
507    /// Semantic action for non-terminal 'Ws'
508    fn ws(&mut self, _arg: &Ws<'t>) -> Result<()> {
509        Ok(())
510    }
511
512    /// Semantic action for non-terminal 'At'
513    fn at(&mut self, _arg: &At<'t>) -> Result<()> {
514        Ok(())
515    }
516
517    /// Semantic action for non-terminal 'Ext'
518    fn ext(&mut self, _arg: &Ext<'t>) -> Result<()> {
519        Ok(())
520    }
521
522    /// Semantic action for non-terminal 'Dot'
523    fn dot(&mut self, _arg: &Dot<'t>) -> Result<()> {
524        Ok(())
525    }
526
527    /// Semantic action for non-terminal 'Begin'
528    fn begin(&mut self, _arg: &Begin<'t>) -> Result<()> {
529        Ok(())
530    }
531
532    /// Semantic action for non-terminal 'End'
533    fn end(&mut self, _arg: &End<'t>) -> Result<()> {
534        Ok(())
535    }
536
537    /// Semantic action for non-terminal 'ArrayBegin'
538    fn array_begin(&mut self, _arg: &ArrayBegin<'t>) -> Result<()> {
539        Ok(())
540    }
541
542    /// Semantic action for non-terminal 'ArrayEnd'
543    fn array_end(&mut self, _arg: &ArrayEnd<'t>) -> Result<()> {
544        Ok(())
545    }
546
547    /// Semantic action for non-terminal 'Caret'
548    fn caret(&mut self, _arg: &Caret<'t>) -> Result<()> {
549        Ok(())
550    }
551
552    /// Semantic action for non-terminal 'LParen'
553    fn l_paren(&mut self, _arg: &LParen<'t>) -> Result<()> {
554        Ok(())
555    }
556
557    /// Semantic action for non-terminal 'RParen'
558    fn r_paren(&mut self, _arg: &RParen<'t>) -> Result<()> {
559        Ok(())
560    }
561
562    /// Semantic action for non-terminal 'NewlineBind'
563    fn newline_bind(&mut self, _arg: &NewlineBind<'t>) -> Result<()> {
564        Ok(())
565    }
566
567    /// Semantic action for non-terminal 'Bind'
568    fn bind(&mut self, _arg: &Bind<'t>) -> Result<()> {
569        Ok(())
570    }
571
572    /// Semantic action for non-terminal 'Comma'
573    fn comma(&mut self, _arg: &Comma<'t>) -> Result<()> {
574        Ok(())
575    }
576
577    /// Semantic action for non-terminal 'Continue'
578    fn r#continue(&mut self, _arg: &Continue<'t>) -> Result<()> {
579        Ok(())
580    }
581
582    /// Semantic action for non-terminal 'NewlineTextStart'
583    fn newline_text_start(&mut self, _arg: &NewlineTextStart<'t>) -> Result<()> {
584        Ok(())
585    }
586
587    /// Semantic action for non-terminal 'TextStart'
588    fn text_start(&mut self, _arg: &TextStart<'t>) -> Result<()> {
589        Ok(())
590    }
591
592    /// Semantic action for non-terminal 'Ident'
593    fn ident(&mut self, _arg: &Ident<'t>) -> Result<()> {
594        Ok(())
595    }
596
597    /// This method provides skipped language comments.
598    /// If you need comments please provide your own implementation of this method.
599    fn on_comment(&mut self, _token: Token<'t>) {}
600}
601
602// -------------------------------------------------------------------------------------------------
603//
604// Output Types of productions deduced from the structure of the transformed grammar
605//
606
607///
608/// Type derived for production 7
609///
610/// `TopLevelBinding: ValueBinding;`
611///
612#[allow(dead_code)]
613#[derive(Debug, Clone)]
614pub struct TopLevelBindingValueBinding<'t> {
615    pub value_binding: ValueBinding<'t>,
616}
617
618impl ToSpan for TopLevelBindingValueBinding<'_> {
619    fn span(&self) -> Span {
620        self.value_binding.span()
621    }
622}
623
624///
625/// Type derived for production 8
626///
627/// `TopLevelBinding: TextBinding;`
628///
629#[allow(dead_code)]
630#[derive(Debug, Clone)]
631pub struct TopLevelBindingTextBinding<'t> {
632    pub text_binding: TextBinding<'t>,
633}
634
635impl ToSpan for TopLevelBindingTextBinding<'_> {
636    fn span(&self) -> Span {
637        self.text_binding.span()
638    }
639}
640
641///
642/// Type derived for production 9
643///
644/// `RootBinding: RootValueBinding;`
645///
646#[allow(dead_code)]
647#[derive(Debug, Clone)]
648pub struct RootBindingRootValueBinding<'t> {
649    pub root_value_binding: RootValueBinding<'t>,
650}
651
652impl ToSpan for RootBindingRootValueBinding<'_> {
653    fn span(&self) -> Span {
654        self.root_value_binding.span()
655    }
656}
657
658///
659/// Type derived for production 10
660///
661/// `RootBinding: RootTextBinding;`
662///
663#[allow(dead_code)]
664#[derive(Debug, Clone)]
665pub struct RootBindingRootTextBinding<'t> {
666    pub root_text_binding: RootTextBinding<'t>,
667}
668
669impl ToSpan for RootBindingRootTextBinding<'_> {
670    fn span(&self) -> Span {
671        self.root_text_binding.span()
672    }
673}
674
675///
676/// Type derived for production 20
677///
678/// `BindingRhs: ValueBinding;`
679///
680#[allow(dead_code)]
681#[derive(Debug, Clone)]
682pub struct BindingRhsValueBinding<'t> {
683    pub value_binding: ValueBinding<'t>,
684}
685
686impl ToSpan for BindingRhsValueBinding<'_> {
687    fn span(&self) -> Span {
688        self.value_binding.span()
689    }
690}
691
692///
693/// Type derived for production 21
694///
695/// `BindingRhs: SectionBinding;`
696///
697#[allow(dead_code)]
698#[derive(Debug, Clone)]
699pub struct BindingRhsSectionBinding<'t> {
700    pub section_binding: SectionBinding<'t>,
701}
702
703impl ToSpan for BindingRhsSectionBinding<'_> {
704    fn span(&self) -> Span {
705        self.section_binding.span()
706    }
707}
708
709///
710/// Type derived for production 22
711///
712/// `BindingRhs: TextBinding;`
713///
714#[allow(dead_code)]
715#[derive(Debug, Clone)]
716pub struct BindingRhsTextBinding<'t> {
717    pub text_binding: TextBinding<'t>,
718}
719
720impl ToSpan for BindingRhsTextBinding<'_> {
721    fn span(&self) -> Span {
722        self.text_binding.span()
723    }
724}
725
726///
727/// Type derived for production 33
728///
729/// `SectionBody: SectionBodyOpt /* Option */;`
730///
731#[allow(dead_code)]
732#[derive(Debug, Clone)]
733pub struct SectionBodySectionBodyOpt<'t> {
734    pub section_body_opt: Option<SectionBodyOpt<'t>>,
735}
736
737impl ToSpan for SectionBodySectionBodyOpt<'_> {
738    fn span(&self) -> Span {
739        self.section_body_opt
740            .as_ref()
741            .map_or(Span::default(), |o| o.span())
742    }
743}
744
745///
746/// Type derived for production 34
747///
748/// `SectionBody: BlockBody;`
749///
750#[allow(dead_code)]
751#[derive(Debug, Clone)]
752pub struct SectionBodyBlockBody<'t> {
753    pub block_body: BlockBody<'t>,
754}
755
756impl ToSpan for SectionBodyBlockBody<'_> {
757    fn span(&self) -> Span {
758        self.block_body.span()
759    }
760}
761
762///
763/// Type derived for production 40
764///
765/// `SectionHead: RootBinding;`
766///
767#[allow(dead_code)]
768#[derive(Debug, Clone)]
769pub struct SectionHeadRootBinding<'t> {
770    pub root_binding: RootBinding<'t>,
771}
772
773impl ToSpan for SectionHeadRootBinding<'_> {
774    fn span(&self) -> Span {
775        self.root_binding.span()
776    }
777}
778
779///
780/// Type derived for production 41
781///
782/// `SectionHead: NewlineHead;`
783///
784#[allow(dead_code)]
785#[derive(Debug, Clone)]
786pub struct SectionHeadNewlineHead<'t> {
787    pub newline_head: NewlineHead<'t>,
788}
789
790impl ToSpan for SectionHeadNewlineHead<'_> {
791    fn span(&self) -> Span {
792        self.newline_head.span()
793    }
794}
795
796///
797/// Type derived for production 45
798///
799/// `FlatRootBinding: ValueBinding;`
800///
801#[allow(dead_code)]
802#[derive(Debug, Clone)]
803pub struct FlatRootBindingValueBinding<'t> {
804    pub value_binding: ValueBinding<'t>,
805}
806
807impl ToSpan for FlatRootBindingValueBinding<'_> {
808    fn span(&self) -> Span {
809        self.value_binding.span()
810    }
811}
812
813///
814/// Type derived for production 46
815///
816/// `FlatRootBinding: TextBinding;`
817///
818#[allow(dead_code)]
819#[derive(Debug, Clone)]
820pub struct FlatRootBindingTextBinding<'t> {
821    pub text_binding: TextBinding<'t>,
822}
823
824impl ToSpan for FlatRootBindingTextBinding<'_> {
825    fn span(&self) -> Span {
826        self.text_binding.span()
827    }
828}
829
830///
831/// Type derived for production 51
832///
833/// `FirstKey: Key;`
834///
835#[allow(dead_code)]
836#[derive(Debug, Clone)]
837pub struct FirstKeyKey<'t> {
838    pub key: Key<'t>,
839}
840
841impl ToSpan for FirstKeyKey<'_> {
842    fn span(&self) -> Span {
843        self.key.span()
844    }
845}
846
847///
848/// Type derived for production 52
849///
850/// `FirstKey: ArrayMarker;`
851///
852#[allow(dead_code)]
853#[derive(Debug, Clone)]
854pub struct FirstKeyArrayMarker<'t> {
855    pub array_marker: ArrayMarker<'t>,
856}
857
858impl ToSpan for FirstKeyArrayMarker<'_> {
859    fn span(&self) -> Span {
860        self.array_marker.span()
861    }
862}
863
864///
865/// Type derived for production 53
866///
867/// `KeyTail: DotKey;`
868///
869#[allow(dead_code)]
870#[derive(Debug, Clone)]
871pub struct KeyTailDotKey<'t> {
872    pub dot_key: DotKey<'t>,
873}
874
875impl ToSpan for KeyTailDotKey<'_> {
876    fn span(&self) -> Span {
877        self.dot_key.span()
878    }
879}
880
881///
882/// Type derived for production 54
883///
884/// `KeyTail: ArrayMarker;`
885///
886#[allow(dead_code)]
887#[derive(Debug, Clone)]
888pub struct KeyTailArrayMarker<'t> {
889    pub array_marker: ArrayMarker<'t>,
890}
891
892impl ToSpan for KeyTailArrayMarker<'_> {
893    fn span(&self) -> Span {
894        self.array_marker.span()
895    }
896}
897
898///
899/// Type derived for production 58
900///
901/// `ArrayMarkerOptGroup: Integer;`
902///
903#[allow(dead_code)]
904#[derive(Debug, Clone)]
905pub struct ArrayMarkerOptGroupInteger<'t> {
906    pub integer: Integer<'t>,
907}
908
909impl ToSpan for ArrayMarkerOptGroupInteger<'_> {
910    fn span(&self) -> Span {
911        self.integer.span()
912    }
913}
914
915///
916/// Type derived for production 59
917///
918/// `ArrayMarkerOptGroup: Caret;`
919///
920#[allow(dead_code)]
921#[derive(Debug, Clone)]
922pub struct ArrayMarkerOptGroupCaret<'t> {
923    pub caret: Caret<'t>,
924}
925
926impl ToSpan for ArrayMarkerOptGroupCaret<'_> {
927    fn span(&self) -> Span {
928        self.caret.span()
929    }
930}
931
932///
933/// Type derived for production 61
934///
935/// `Key: KeyIdent;`
936///
937#[allow(dead_code)]
938#[derive(Debug, Clone)]
939pub struct KeyKeyIdent<'t> {
940    pub key_ident: KeyIdent<'t>,
941}
942
943impl ToSpan for KeyKeyIdent<'_> {
944    fn span(&self) -> Span {
945        self.key_ident.span()
946    }
947}
948
949///
950/// Type derived for production 62
951///
952/// `Key: ExtensionNameSpace;`
953///
954#[allow(dead_code)]
955#[derive(Debug, Clone)]
956pub struct KeyExtensionNameSpace<'t> {
957    pub extension_name_space: ExtensionNameSpace<'t>,
958}
959
960impl ToSpan for KeyExtensionNameSpace<'_> {
961    fn span(&self) -> Span {
962        self.extension_name_space.span()
963    }
964}
965
966///
967/// Type derived for production 63
968///
969/// `Key: String;`
970///
971#[allow(dead_code)]
972#[derive(Debug, Clone)]
973pub struct KeyString<'t> {
974    pub string: String<'t>,
975}
976
977impl ToSpan for KeyString<'_> {
978    fn span(&self) -> Span {
979        self.string.span()
980    }
981}
982
983///
984/// Type derived for production 64
985///
986/// `Key: Integer;`
987///
988#[allow(dead_code)]
989#[derive(Debug, Clone)]
990pub struct KeyInteger<'t> {
991    pub integer: Integer<'t>,
992}
993
994impl ToSpan for KeyInteger<'_> {
995    fn span(&self) -> Span {
996        self.integer.span()
997    }
998}
999
1000///
1001/// Type derived for production 65
1002///
1003/// `Key: Float;`
1004///
1005#[allow(dead_code)]
1006#[derive(Debug, Clone)]
1007pub struct KeyFloat<'t> {
1008    pub float: Float<'t>,
1009}
1010
1011impl ToSpan for KeyFloat<'_> {
1012    fn span(&self) -> Span {
1013        self.float.span()
1014    }
1015}
1016
1017///
1018/// Type derived for production 66
1019///
1020/// `Key: KeyTuple;`
1021///
1022#[allow(dead_code)]
1023#[derive(Debug, Clone)]
1024pub struct KeyKeyTuple<'t> {
1025    pub key_tuple: KeyTuple<'t>,
1026}
1027
1028impl ToSpan for KeyKeyTuple<'_> {
1029    fn span(&self) -> Span {
1030        self.key_tuple.span()
1031    }
1032}
1033
1034///
1035/// Type derived for production 67
1036///
1037/// `Key: TupleIndex;`
1038///
1039#[allow(dead_code)]
1040#[derive(Debug, Clone)]
1041pub struct KeyTupleIndex<'t> {
1042    pub tuple_index: TupleIndex<'t>,
1043}
1044
1045impl ToSpan for KeyTupleIndex<'_> {
1046    fn span(&self) -> Span {
1047        self.tuple_index.span()
1048    }
1049}
1050
1051///
1052/// Type derived for production 68
1053///
1054/// `Key: Hole;`
1055///
1056#[allow(dead_code)]
1057#[derive(Debug, Clone)]
1058pub struct KeyHole<'t> {
1059    pub hole: Hole<'t>,
1060}
1061
1062impl ToSpan for KeyHole<'_> {
1063    fn span(&self) -> Span {
1064        self.hole.span()
1065    }
1066}
1067
1068///
1069/// Type derived for production 80
1070///
1071/// `KeyValue: Integer;`
1072///
1073#[allow(dead_code)]
1074#[derive(Debug, Clone)]
1075pub struct KeyValueInteger<'t> {
1076    pub integer: Integer<'t>,
1077}
1078
1079impl ToSpan for KeyValueInteger<'_> {
1080    fn span(&self) -> Span {
1081        self.integer.span()
1082    }
1083}
1084
1085///
1086/// Type derived for production 81
1087///
1088/// `KeyValue: Boolean;`
1089///
1090#[allow(dead_code)]
1091#[derive(Debug, Clone)]
1092pub struct KeyValueBoolean<'t> {
1093    pub boolean: Boolean<'t>,
1094}
1095
1096impl ToSpan for KeyValueBoolean<'_> {
1097    fn span(&self) -> Span {
1098        self.boolean.span()
1099    }
1100}
1101
1102///
1103/// Type derived for production 82
1104///
1105/// `KeyValue: Str;`
1106///
1107#[allow(dead_code)]
1108#[derive(Debug, Clone)]
1109pub struct KeyValueStr<'t> {
1110    pub str: Str<'t>,
1111}
1112
1113impl ToSpan for KeyValueStr<'_> {
1114    fn span(&self) -> Span {
1115        self.str.span()
1116    }
1117}
1118
1119///
1120/// Type derived for production 83
1121///
1122/// `KeyValue: KeyTuple;`
1123///
1124#[allow(dead_code)]
1125#[derive(Debug, Clone)]
1126pub struct KeyValueKeyTuple<'t> {
1127    pub key_tuple: Box<KeyTuple<'t>>,
1128}
1129
1130impl ToSpan for KeyValueKeyTuple<'_> {
1131    fn span(&self) -> Span {
1132        self.key_tuple.span()
1133    }
1134}
1135
1136///
1137/// Type derived for production 84
1138///
1139/// `KeyValue: Hole;`
1140///
1141#[allow(dead_code)]
1142#[derive(Debug, Clone)]
1143pub struct KeyValueHole<'t> {
1144    pub hole: Hole<'t>,
1145}
1146
1147impl ToSpan for KeyValueHole<'_> {
1148    fn span(&self) -> Span {
1149        self.hole.span()
1150    }
1151}
1152
1153///
1154/// Type derived for production 85
1155///
1156/// `KeyIdent: Ident;`
1157///
1158#[allow(dead_code)]
1159#[derive(Debug, Clone)]
1160pub struct KeyIdentIdent<'t> {
1161    pub ident: Ident<'t>,
1162}
1163
1164impl ToSpan for KeyIdentIdent<'_> {
1165    fn span(&self) -> Span {
1166        self.ident.span()
1167    }
1168}
1169
1170///
1171/// Type derived for production 86
1172///
1173/// `KeyIdent: True;`
1174///
1175#[allow(dead_code)]
1176#[derive(Debug, Clone)]
1177pub struct KeyIdentTrue<'t> {
1178    pub r#true: True<'t>,
1179}
1180
1181impl ToSpan for KeyIdentTrue<'_> {
1182    fn span(&self) -> Span {
1183        self.r#true.span()
1184    }
1185}
1186
1187///
1188/// Type derived for production 87
1189///
1190/// `KeyIdent: False;`
1191///
1192#[allow(dead_code)]
1193#[derive(Debug, Clone)]
1194pub struct KeyIdentFalse<'t> {
1195    pub r#false: False<'t>,
1196}
1197
1198impl ToSpan for KeyIdentFalse<'_> {
1199    fn span(&self) -> Span {
1200        self.r#false.span()
1201    }
1202}
1203
1204///
1205/// Type derived for production 88
1206///
1207/// `KeyIdent: Null;`
1208///
1209#[allow(dead_code)]
1210#[derive(Debug, Clone)]
1211pub struct KeyIdentNull<'t> {
1212    pub null: Null<'t>,
1213}
1214
1215impl ToSpan for KeyIdentNull<'_> {
1216    fn span(&self) -> Span {
1217        self.null.span()
1218    }
1219}
1220
1221///
1222/// Type derived for production 89
1223///
1224/// `Value: Object;`
1225///
1226#[allow(dead_code)]
1227#[derive(Debug, Clone)]
1228pub struct ValueObject<'t> {
1229    pub object: Box<Object<'t>>,
1230}
1231
1232impl ToSpan for ValueObject<'_> {
1233    fn span(&self) -> Span {
1234        self.object.span()
1235    }
1236}
1237
1238///
1239/// Type derived for production 90
1240///
1241/// `Value: Array;`
1242///
1243#[allow(dead_code)]
1244#[derive(Debug, Clone)]
1245pub struct ValueArray<'t> {
1246    pub array: Box<Array<'t>>,
1247}
1248
1249impl ToSpan for ValueArray<'_> {
1250    fn span(&self) -> Span {
1251        self.array.span()
1252    }
1253}
1254
1255///
1256/// Type derived for production 91
1257///
1258/// `Value: Tuple;`
1259///
1260#[allow(dead_code)]
1261#[derive(Debug, Clone)]
1262pub struct ValueTuple<'t> {
1263    pub tuple: Box<Tuple<'t>>,
1264}
1265
1266impl ToSpan for ValueTuple<'_> {
1267    fn span(&self) -> Span {
1268        self.tuple.span()
1269    }
1270}
1271
1272///
1273/// Type derived for production 92
1274///
1275/// `Value: Number;`
1276///
1277#[allow(dead_code)]
1278#[derive(Debug, Clone)]
1279pub struct ValueNumber<'t> {
1280    pub number: Number<'t>,
1281}
1282
1283impl ToSpan for ValueNumber<'_> {
1284    fn span(&self) -> Span {
1285        self.number.span()
1286    }
1287}
1288
1289///
1290/// Type derived for production 93
1291///
1292/// `Value: Boolean;`
1293///
1294#[allow(dead_code)]
1295#[derive(Debug, Clone)]
1296pub struct ValueBoolean<'t> {
1297    pub boolean: Boolean<'t>,
1298}
1299
1300impl ToSpan for ValueBoolean<'_> {
1301    fn span(&self) -> Span {
1302        self.boolean.span()
1303    }
1304}
1305
1306///
1307/// Type derived for production 94
1308///
1309/// `Value: Null;`
1310///
1311#[allow(dead_code)]
1312#[derive(Debug, Clone)]
1313pub struct ValueNull<'t> {
1314    pub null: Null<'t>,
1315}
1316
1317impl ToSpan for ValueNull<'_> {
1318    fn span(&self) -> Span {
1319        self.null.span()
1320    }
1321}
1322
1323///
1324/// Type derived for production 95
1325///
1326/// `Value: Strings;`
1327///
1328#[allow(dead_code)]
1329#[derive(Debug, Clone)]
1330pub struct ValueStrings<'t> {
1331    pub strings: Strings<'t>,
1332}
1333
1334impl ToSpan for ValueStrings<'_> {
1335    fn span(&self) -> Span {
1336        self.strings.span()
1337    }
1338}
1339
1340///
1341/// Type derived for production 96
1342///
1343/// `Value: Hole;`
1344///
1345#[allow(dead_code)]
1346#[derive(Debug, Clone)]
1347pub struct ValueHole<'t> {
1348    pub hole: Hole<'t>,
1349}
1350
1351impl ToSpan for ValueHole<'_> {
1352    fn span(&self) -> Span {
1353        self.hole.span()
1354    }
1355}
1356
1357///
1358/// Type derived for production 97
1359///
1360/// `Value: CodeBlock;`
1361///
1362#[allow(dead_code)]
1363#[derive(Debug, Clone)]
1364pub struct ValueCodeBlock<'t> {
1365    pub code_block: CodeBlock<'t>,
1366}
1367
1368impl ToSpan for ValueCodeBlock<'_> {
1369    fn span(&self) -> Span {
1370        self.code_block.span()
1371    }
1372}
1373
1374///
1375/// Type derived for production 98
1376///
1377/// `Value: InlineCode;`
1378///
1379#[allow(dead_code)]
1380#[derive(Debug, Clone)]
1381pub struct ValueInlineCode<'t> {
1382    pub inline_code: InlineCode<'t>,
1383}
1384
1385impl ToSpan for ValueInlineCode<'_> {
1386    fn span(&self) -> Span {
1387        self.inline_code.span()
1388    }
1389}
1390
1391///
1392/// Type derived for production 127
1393///
1394/// `Number: Float;`
1395///
1396#[allow(dead_code)]
1397#[derive(Debug, Clone)]
1398pub struct NumberFloat<'t> {
1399    pub float: Float<'t>,
1400}
1401
1402impl ToSpan for NumberFloat<'_> {
1403    fn span(&self) -> Span {
1404        self.float.span()
1405    }
1406}
1407
1408///
1409/// Type derived for production 128
1410///
1411/// `Number: Integer;`
1412///
1413#[allow(dead_code)]
1414#[derive(Debug, Clone)]
1415pub struct NumberInteger<'t> {
1416    pub integer: Integer<'t>,
1417}
1418
1419impl ToSpan for NumberInteger<'_> {
1420    fn span(&self) -> Span {
1421        self.integer.span()
1422    }
1423}
1424
1425///
1426/// Type derived for production 129
1427///
1428/// `Number: Inf;`
1429///
1430#[allow(dead_code)]
1431#[derive(Debug, Clone)]
1432pub struct NumberInf<'t> {
1433    pub inf: Inf<'t>,
1434}
1435
1436impl ToSpan for NumberInf<'_> {
1437    fn span(&self) -> Span {
1438        self.inf.span()
1439    }
1440}
1441
1442///
1443/// Type derived for production 130
1444///
1445/// `Number: NaN;`
1446///
1447#[allow(dead_code)]
1448#[derive(Debug, Clone)]
1449pub struct NumberNaN<'t> {
1450    pub na_n: NaN<'t>,
1451}
1452
1453impl ToSpan for NumberNaN<'_> {
1454    fn span(&self) -> Span {
1455        self.na_n.span()
1456    }
1457}
1458
1459///
1460/// Type derived for production 135
1461///
1462/// `Boolean: True;`
1463///
1464#[allow(dead_code)]
1465#[derive(Debug, Clone)]
1466pub struct BooleanTrue<'t> {
1467    pub r#true: True<'t>,
1468}
1469
1470impl ToSpan for BooleanTrue<'_> {
1471    fn span(&self) -> Span {
1472        self.r#true.span()
1473    }
1474}
1475
1476///
1477/// Type derived for production 136
1478///
1479/// `Boolean: False;`
1480///
1481#[allow(dead_code)]
1482#[derive(Debug, Clone)]
1483pub struct BooleanFalse<'t> {
1484    pub r#false: False<'t>,
1485}
1486
1487impl ToSpan for BooleanFalse<'_> {
1488    fn span(&self) -> Span {
1489        self.r#false.span()
1490    }
1491}
1492
1493///
1494/// Type derived for production 141
1495///
1496/// `String: Str;`
1497///
1498#[allow(dead_code)]
1499#[derive(Debug, Clone)]
1500pub struct StringStr<'t> {
1501    pub str: Str<'t>,
1502}
1503
1504impl ToSpan for StringStr<'_> {
1505    fn span(&self) -> Span {
1506        self.str.span()
1507    }
1508}
1509
1510///
1511/// Type derived for production 142
1512///
1513/// `String: LitStr;`
1514///
1515#[allow(dead_code)]
1516#[derive(Debug, Clone)]
1517pub struct StringLitStr<'t> {
1518    pub lit_str: LitStr<'t>,
1519}
1520
1521impl ToSpan for StringLitStr<'_> {
1522    fn span(&self) -> Span {
1523        self.lit_str.span()
1524    }
1525}
1526
1527///
1528/// Type derived for production 143
1529///
1530/// `String: LitStr1;`
1531///
1532#[allow(dead_code)]
1533#[derive(Debug, Clone)]
1534pub struct StringLitStr1<'t> {
1535    pub lit_str1: LitStr1<'t>,
1536}
1537
1538impl ToSpan for StringLitStr1<'_> {
1539    fn span(&self) -> Span {
1540        self.lit_str1.span()
1541    }
1542}
1543
1544///
1545/// Type derived for production 144
1546///
1547/// `String: LitStr2;`
1548///
1549#[allow(dead_code)]
1550#[derive(Debug, Clone)]
1551pub struct StringLitStr2<'t> {
1552    pub lit_str2: LitStr2<'t>,
1553}
1554
1555impl ToSpan for StringLitStr2<'_> {
1556    fn span(&self) -> Span {
1557        self.lit_str2.span()
1558    }
1559}
1560
1561///
1562/// Type derived for production 145
1563///
1564/// `String: LitStr3;`
1565///
1566#[allow(dead_code)]
1567#[derive(Debug, Clone)]
1568pub struct StringLitStr3<'t> {
1569    pub lit_str3: LitStr3<'t>,
1570}
1571
1572impl ToSpan for StringLitStr3<'_> {
1573    fn span(&self) -> Span {
1574        self.lit_str3.span()
1575    }
1576}
1577
1578///
1579/// Type derived for production 152
1580///
1581/// `InlineCode: DelimCode;`
1582///
1583#[allow(dead_code)]
1584#[derive(Debug, Clone)]
1585pub struct InlineCodeDelimCode<'t> {
1586    pub delim_code: DelimCode<'t>,
1587}
1588
1589impl ToSpan for InlineCodeDelimCode<'_> {
1590    fn span(&self) -> Span {
1591        self.delim_code.span()
1592    }
1593}
1594
1595///
1596/// Type derived for production 153
1597///
1598/// `InlineCode: InlineCode1;`
1599///
1600#[allow(dead_code)]
1601#[derive(Debug, Clone)]
1602pub struct InlineCodeInlineCode1<'t> {
1603    pub inline_code1: InlineCode1<'t>,
1604}
1605
1606impl ToSpan for InlineCodeInlineCode1<'_> {
1607    fn span(&self) -> Span {
1608        self.inline_code1.span()
1609    }
1610}
1611
1612///
1613/// Type derived for production 157
1614///
1615/// `LitStr1ListGroup: NoSQuote;`
1616///
1617#[allow(dead_code)]
1618#[derive(Debug, Clone)]
1619pub struct LitStr1ListGroupNoSQuote<'t> {
1620    pub no_s_quote: NoSQuote<'t>,
1621}
1622
1623impl ToSpan for LitStr1ListGroupNoSQuote<'_> {
1624    fn span(&self) -> Span {
1625        self.no_s_quote.span()
1626    }
1627}
1628
1629///
1630/// Type derived for production 158
1631///
1632/// `LitStr1ListGroup: SQuote;`
1633///
1634#[allow(dead_code)]
1635#[derive(Debug, Clone)]
1636pub struct LitStr1ListGroupSQuote<'t> {
1637    pub s_quote: SQuote<'t>,
1638}
1639
1640impl ToSpan for LitStr1ListGroupSQuote<'_> {
1641    fn span(&self) -> Span {
1642        self.s_quote.span()
1643    }
1644}
1645
1646///
1647/// Type derived for production 162
1648///
1649/// `LitStr2ListGroup: NoSQuote;`
1650///
1651#[allow(dead_code)]
1652#[derive(Debug, Clone)]
1653pub struct LitStr2ListGroupNoSQuote<'t> {
1654    pub no_s_quote: NoSQuote<'t>,
1655}
1656
1657impl ToSpan for LitStr2ListGroupNoSQuote<'_> {
1658    fn span(&self) -> Span {
1659        self.no_s_quote.span()
1660    }
1661}
1662
1663///
1664/// Type derived for production 163
1665///
1666/// `LitStr2ListGroup: SQuote;`
1667///
1668#[allow(dead_code)]
1669#[derive(Debug, Clone)]
1670pub struct LitStr2ListGroupSQuote<'t> {
1671    pub s_quote: SQuote<'t>,
1672}
1673
1674impl ToSpan for LitStr2ListGroupSQuote<'_> {
1675    fn span(&self) -> Span {
1676        self.s_quote.span()
1677    }
1678}
1679
1680///
1681/// Type derived for production 167
1682///
1683/// `LitStr3ListGroup: NoSQuote;`
1684///
1685#[allow(dead_code)]
1686#[derive(Debug, Clone)]
1687pub struct LitStr3ListGroupNoSQuote<'t> {
1688    pub no_s_quote: NoSQuote<'t>,
1689}
1690
1691impl ToSpan for LitStr3ListGroupNoSQuote<'_> {
1692    fn span(&self) -> Span {
1693        self.no_s_quote.span()
1694    }
1695}
1696
1697///
1698/// Type derived for production 168
1699///
1700/// `LitStr3ListGroup: SQuote;`
1701///
1702#[allow(dead_code)]
1703#[derive(Debug, Clone)]
1704pub struct LitStr3ListGroupSQuote<'t> {
1705    pub s_quote: SQuote<'t>,
1706}
1707
1708impl ToSpan for LitStr3ListGroupSQuote<'_> {
1709    fn span(&self) -> Span {
1710        self.s_quote.span()
1711    }
1712}
1713
1714///
1715/// Type derived for production 170
1716///
1717/// `DelimCode: DelimCode3;`
1718///
1719#[allow(dead_code)]
1720#[derive(Debug, Clone)]
1721pub struct DelimCodeDelimCode3<'t> {
1722    pub delim_code3: DelimCode3<'t>,
1723}
1724
1725impl ToSpan for DelimCodeDelimCode3<'_> {
1726    fn span(&self) -> Span {
1727        self.delim_code3.span()
1728    }
1729}
1730
1731///
1732/// Type derived for production 171
1733///
1734/// `DelimCode: DelimCode2;`
1735///
1736#[allow(dead_code)]
1737#[derive(Debug, Clone)]
1738pub struct DelimCodeDelimCode2<'t> {
1739    pub delim_code2: DelimCode2<'t>,
1740}
1741
1742impl ToSpan for DelimCodeDelimCode2<'_> {
1743    fn span(&self) -> Span {
1744        self.delim_code2.span()
1745    }
1746}
1747
1748///
1749/// Type derived for production 172
1750///
1751/// `DelimCode: DelimCode1;`
1752///
1753#[allow(dead_code)]
1754#[derive(Debug, Clone)]
1755pub struct DelimCodeDelimCode1<'t> {
1756    pub delim_code1: DelimCode1<'t>,
1757}
1758
1759impl ToSpan for DelimCodeDelimCode1<'_> {
1760    fn span(&self) -> Span {
1761        self.delim_code1.span()
1762    }
1763}
1764
1765///
1766/// Type derived for production 175
1767///
1768/// `DelimCode1ListGroup: NoBacktick;`
1769///
1770#[allow(dead_code)]
1771#[derive(Debug, Clone)]
1772pub struct DelimCode1ListGroupNoBacktick<'t> {
1773    pub no_backtick: NoBacktick<'t>,
1774}
1775
1776impl ToSpan for DelimCode1ListGroupNoBacktick<'_> {
1777    fn span(&self) -> Span {
1778        self.no_backtick.span()
1779    }
1780}
1781
1782///
1783/// Type derived for production 176
1784///
1785/// `DelimCode1ListGroup: BacktickDelim;`
1786///
1787#[allow(dead_code)]
1788#[derive(Debug, Clone)]
1789pub struct DelimCode1ListGroupBacktickDelim<'t> {
1790    pub backtick_delim: BacktickDelim<'t>,
1791}
1792
1793impl ToSpan for DelimCode1ListGroupBacktickDelim<'_> {
1794    fn span(&self) -> Span {
1795        self.backtick_delim.span()
1796    }
1797}
1798
1799///
1800/// Type derived for production 180
1801///
1802/// `DelimCode2ListGroup: NoBacktick;`
1803///
1804#[allow(dead_code)]
1805#[derive(Debug, Clone)]
1806pub struct DelimCode2ListGroupNoBacktick<'t> {
1807    pub no_backtick: NoBacktick<'t>,
1808}
1809
1810impl ToSpan for DelimCode2ListGroupNoBacktick<'_> {
1811    fn span(&self) -> Span {
1812        self.no_backtick.span()
1813    }
1814}
1815
1816///
1817/// Type derived for production 181
1818///
1819/// `DelimCode2ListGroup: BacktickDelim;`
1820///
1821#[allow(dead_code)]
1822#[derive(Debug, Clone)]
1823pub struct DelimCode2ListGroupBacktickDelim<'t> {
1824    pub backtick_delim: BacktickDelim<'t>,
1825}
1826
1827impl ToSpan for DelimCode2ListGroupBacktickDelim<'_> {
1828    fn span(&self) -> Span {
1829        self.backtick_delim.span()
1830    }
1831}
1832
1833///
1834/// Type derived for production 185
1835///
1836/// `DelimCode3ListGroup: NoBacktick;`
1837///
1838#[allow(dead_code)]
1839#[derive(Debug, Clone)]
1840pub struct DelimCode3ListGroupNoBacktick<'t> {
1841    pub no_backtick: NoBacktick<'t>,
1842}
1843
1844impl ToSpan for DelimCode3ListGroupNoBacktick<'_> {
1845    fn span(&self) -> Span {
1846        self.no_backtick.span()
1847    }
1848}
1849
1850///
1851/// Type derived for production 186
1852///
1853/// `DelimCode3ListGroup: BacktickDelim;`
1854///
1855#[allow(dead_code)]
1856#[derive(Debug, Clone)]
1857pub struct DelimCode3ListGroupBacktickDelim<'t> {
1858    pub backtick_delim: BacktickDelim<'t>,
1859}
1860
1861impl ToSpan for DelimCode3ListGroupBacktickDelim<'_> {
1862    fn span(&self) -> Span {
1863        self.backtick_delim.span()
1864    }
1865}
1866
1867///
1868/// Type derived for production 188
1869///
1870/// `CodeBlock: CodeBlock3;`
1871///
1872#[allow(dead_code)]
1873#[derive(Debug, Clone)]
1874pub struct CodeBlockCodeBlock3<'t> {
1875    pub code_block3: CodeBlock3<'t>,
1876}
1877
1878impl ToSpan for CodeBlockCodeBlock3<'_> {
1879    fn span(&self) -> Span {
1880        self.code_block3.span()
1881    }
1882}
1883
1884///
1885/// Type derived for production 189
1886///
1887/// `CodeBlock: CodeBlock4;`
1888///
1889#[allow(dead_code)]
1890#[derive(Debug, Clone)]
1891pub struct CodeBlockCodeBlock4<'t> {
1892    pub code_block4: CodeBlock4<'t>,
1893}
1894
1895impl ToSpan for CodeBlockCodeBlock4<'_> {
1896    fn span(&self) -> Span {
1897        self.code_block4.span()
1898    }
1899}
1900
1901///
1902/// Type derived for production 190
1903///
1904/// `CodeBlock: CodeBlock5;`
1905///
1906#[allow(dead_code)]
1907#[derive(Debug, Clone)]
1908pub struct CodeBlockCodeBlock5<'t> {
1909    pub code_block5: CodeBlock5<'t>,
1910}
1911
1912impl ToSpan for CodeBlockCodeBlock5<'_> {
1913    fn span(&self) -> Span {
1914        self.code_block5.span()
1915    }
1916}
1917
1918///
1919/// Type derived for production 191
1920///
1921/// `CodeBlock: CodeBlock6;`
1922///
1923#[allow(dead_code)]
1924#[derive(Debug, Clone)]
1925pub struct CodeBlockCodeBlock6<'t> {
1926    pub code_block6: CodeBlock6<'t>,
1927}
1928
1929impl ToSpan for CodeBlockCodeBlock6<'_> {
1930    fn span(&self) -> Span {
1931        self.code_block6.span()
1932    }
1933}
1934
1935///
1936/// Type derived for production 194
1937///
1938/// `CodeBlock3ListGroup: NoBacktick;`
1939///
1940#[allow(dead_code)]
1941#[derive(Debug, Clone)]
1942pub struct CodeBlock3ListGroupNoBacktick<'t> {
1943    pub no_backtick: NoBacktick<'t>,
1944}
1945
1946impl ToSpan for CodeBlock3ListGroupNoBacktick<'_> {
1947    fn span(&self) -> Span {
1948        self.no_backtick.span()
1949    }
1950}
1951
1952///
1953/// Type derived for production 195
1954///
1955/// `CodeBlock3ListGroup: Backtick2;`
1956///
1957#[allow(dead_code)]
1958#[derive(Debug, Clone)]
1959pub struct CodeBlock3ListGroupBacktick2<'t> {
1960    pub backtick2: Backtick2<'t>,
1961}
1962
1963impl ToSpan for CodeBlock3ListGroupBacktick2<'_> {
1964    fn span(&self) -> Span {
1965        self.backtick2.span()
1966    }
1967}
1968
1969///
1970/// Type derived for production 199
1971///
1972/// `CodeBlock4ListGroup: NoBacktick;`
1973///
1974#[allow(dead_code)]
1975#[derive(Debug, Clone)]
1976pub struct CodeBlock4ListGroupNoBacktick<'t> {
1977    pub no_backtick: NoBacktick<'t>,
1978}
1979
1980impl ToSpan for CodeBlock4ListGroupNoBacktick<'_> {
1981    fn span(&self) -> Span {
1982        self.no_backtick.span()
1983    }
1984}
1985
1986///
1987/// Type derived for production 200
1988///
1989/// `CodeBlock4ListGroup: Backtick3;`
1990///
1991#[allow(dead_code)]
1992#[derive(Debug, Clone)]
1993pub struct CodeBlock4ListGroupBacktick3<'t> {
1994    pub backtick3: Backtick3<'t>,
1995}
1996
1997impl ToSpan for CodeBlock4ListGroupBacktick3<'_> {
1998    fn span(&self) -> Span {
1999        self.backtick3.span()
2000    }
2001}
2002
2003///
2004/// Type derived for production 204
2005///
2006/// `CodeBlock5ListGroup: NoBacktick;`
2007///
2008#[allow(dead_code)]
2009#[derive(Debug, Clone)]
2010pub struct CodeBlock5ListGroupNoBacktick<'t> {
2011    pub no_backtick: NoBacktick<'t>,
2012}
2013
2014impl ToSpan for CodeBlock5ListGroupNoBacktick<'_> {
2015    fn span(&self) -> Span {
2016        self.no_backtick.span()
2017    }
2018}
2019
2020///
2021/// Type derived for production 205
2022///
2023/// `CodeBlock5ListGroup: Backtick4;`
2024///
2025#[allow(dead_code)]
2026#[derive(Debug, Clone)]
2027pub struct CodeBlock5ListGroupBacktick4<'t> {
2028    pub backtick4: Backtick4<'t>,
2029}
2030
2031impl ToSpan for CodeBlock5ListGroupBacktick4<'_> {
2032    fn span(&self) -> Span {
2033        self.backtick4.span()
2034    }
2035}
2036
2037///
2038/// Type derived for production 209
2039///
2040/// `CodeBlock6ListGroup: NoBacktick;`
2041///
2042#[allow(dead_code)]
2043#[derive(Debug, Clone)]
2044pub struct CodeBlock6ListGroupNoBacktick<'t> {
2045    pub no_backtick: NoBacktick<'t>,
2046}
2047
2048impl ToSpan for CodeBlock6ListGroupNoBacktick<'_> {
2049    fn span(&self) -> Span {
2050        self.no_backtick.span()
2051    }
2052}
2053
2054///
2055/// Type derived for production 210
2056///
2057/// `CodeBlock6ListGroup: Backtick5;`
2058///
2059#[allow(dead_code)]
2060#[derive(Debug, Clone)]
2061pub struct CodeBlock6ListGroupBacktick5<'t> {
2062    pub backtick5: Backtick5<'t>,
2063}
2064
2065impl ToSpan for CodeBlock6ListGroupBacktick5<'_> {
2066    fn span(&self) -> Span {
2067        self.backtick5.span()
2068    }
2069}
2070
2071// -------------------------------------------------------------------------------------------------
2072//
2073// Types of non-terminals deduced from the structure of the transformed grammar
2074//
2075
2076///
2077/// Type derived for non-terminal Array
2078///
2079#[allow(dead_code)]
2080#[derive(Debug, Clone)]
2081pub struct Array<'t> {
2082    pub array_begin: ArrayBegin<'t>,
2083    pub array_opt: Option<ArrayOpt<'t>>,
2084    pub array_end: ArrayEnd<'t>,
2085}
2086
2087impl ToSpan for Array<'_> {
2088    fn span(&self) -> Span {
2089        self.array_begin.span()
2090            + self
2091                .array_opt
2092                .as_ref()
2093                .map_or(Span::default(), |o| o.span())
2094            + self.array_end.span()
2095    }
2096}
2097
2098///
2099/// Type derived for non-terminal ArrayBegin
2100///
2101#[allow(dead_code)]
2102#[derive(Debug, Clone)]
2103pub struct ArrayBegin<'t> {
2104    pub array_begin: Token<'t>, /* [ */
2105}
2106
2107impl ToSpan for ArrayBegin<'_> {
2108    fn span(&self) -> Span {
2109        self.array_begin.span()
2110    }
2111}
2112
2113///
2114/// Type derived for non-terminal ArrayElements
2115///
2116#[allow(dead_code)]
2117#[derive(Debug, Clone)]
2118pub struct ArrayElements<'t> {
2119    pub value: Value<'t>,
2120    pub array_elements_opt: Option<Box<ArrayElementsOpt<'t>>>,
2121}
2122
2123impl ToSpan for ArrayElements<'_> {
2124    fn span(&self) -> Span {
2125        self.value.span()
2126            + self
2127                .array_elements_opt
2128                .as_ref()
2129                .map_or(Span::default(), |o| o.span())
2130    }
2131}
2132
2133///
2134/// Type derived for non-terminal ArrayElementsOpt
2135///
2136#[allow(dead_code)]
2137#[derive(Debug, Clone)]
2138pub struct ArrayElementsOpt<'t> {
2139    pub array_elements_tail: ArrayElementsTail<'t>,
2140}
2141
2142impl ToSpan for ArrayElementsOpt<'_> {
2143    fn span(&self) -> Span {
2144        self.array_elements_tail.span()
2145    }
2146}
2147
2148///
2149/// Type derived for non-terminal ArrayElementsTail
2150///
2151#[allow(dead_code)]
2152#[derive(Debug, Clone)]
2153pub struct ArrayElementsTail<'t> {
2154    pub comma: Comma<'t>,
2155    pub array_elements_tail_opt: Option<ArrayElementsTailOpt<'t>>,
2156}
2157
2158impl ToSpan for ArrayElementsTail<'_> {
2159    fn span(&self) -> Span {
2160        self.comma.span()
2161            + self
2162                .array_elements_tail_opt
2163                .as_ref()
2164                .map_or(Span::default(), |o| o.span())
2165    }
2166}
2167
2168///
2169/// Type derived for non-terminal ArrayElementsTailOpt
2170///
2171#[allow(dead_code)]
2172#[derive(Debug, Clone)]
2173pub struct ArrayElementsTailOpt<'t> {
2174    pub array_elements: ArrayElements<'t>,
2175}
2176
2177impl ToSpan for ArrayElementsTailOpt<'_> {
2178    fn span(&self) -> Span {
2179        self.array_elements.span()
2180    }
2181}
2182
2183///
2184/// Type derived for non-terminal ArrayEnd
2185///
2186#[allow(dead_code)]
2187#[derive(Debug, Clone)]
2188pub struct ArrayEnd<'t> {
2189    pub array_end: Token<'t>, /* ] */
2190}
2191
2192impl ToSpan for ArrayEnd<'_> {
2193    fn span(&self) -> Span {
2194        self.array_end.span()
2195    }
2196}
2197
2198///
2199/// Type derived for non-terminal ArrayMarker
2200///
2201#[allow(dead_code)]
2202#[derive(Debug, Clone)]
2203pub struct ArrayMarker<'t> {
2204    pub array_begin: ArrayBegin<'t>,
2205    pub array_marker_opt: Option<ArrayMarkerOpt<'t>>,
2206    pub array_end: ArrayEnd<'t>,
2207}
2208
2209impl ToSpan for ArrayMarker<'_> {
2210    fn span(&self) -> Span {
2211        self.array_begin.span()
2212            + self
2213                .array_marker_opt
2214                .as_ref()
2215                .map_or(Span::default(), |o| o.span())
2216            + self.array_end.span()
2217    }
2218}
2219
2220///
2221/// Type derived for non-terminal ArrayMarkerOpt
2222///
2223#[allow(dead_code)]
2224#[derive(Debug, Clone)]
2225pub struct ArrayMarkerOpt<'t> {
2226    pub array_marker_opt_group: ArrayMarkerOptGroup<'t>,
2227}
2228
2229impl ToSpan for ArrayMarkerOpt<'_> {
2230    fn span(&self) -> Span {
2231        self.array_marker_opt_group.span()
2232    }
2233}
2234
2235///
2236/// Type derived for non-terminal ArrayMarkerOptGroup
2237///
2238#[allow(dead_code)]
2239#[derive(Debug, Clone)]
2240pub enum ArrayMarkerOptGroup<'t> {
2241    Integer(ArrayMarkerOptGroupInteger<'t>),
2242    Caret(ArrayMarkerOptGroupCaret<'t>),
2243}
2244
2245impl ToSpan for ArrayMarkerOptGroup<'_> {
2246    fn span(&self) -> Span {
2247        match self {
2248            ArrayMarkerOptGroup::Integer(v) => v.span(),
2249            ArrayMarkerOptGroup::Caret(v) => v.span(),
2250        }
2251    }
2252}
2253
2254///
2255/// Type derived for non-terminal ArrayOpt
2256///
2257#[allow(dead_code)]
2258#[derive(Debug, Clone)]
2259pub struct ArrayOpt<'t> {
2260    pub array_elements: ArrayElements<'t>,
2261}
2262
2263impl ToSpan for ArrayOpt<'_> {
2264    fn span(&self) -> Span {
2265        self.array_elements.span()
2266    }
2267}
2268
2269///
2270/// Type derived for non-terminal At
2271///
2272#[allow(dead_code)]
2273#[derive(Debug, Clone)]
2274pub struct At<'t> {
2275    pub at: Token<'t>, /* @ */
2276}
2277
2278impl ToSpan for At<'_> {
2279    fn span(&self) -> Span {
2280        self.at.span()
2281    }
2282}
2283
2284///
2285/// Type derived for non-terminal Backtick2
2286///
2287#[allow(dead_code)]
2288#[derive(Debug, Clone)]
2289pub struct Backtick2<'t> {
2290    pub backtick2: Token<'t>, /* `{1,2} */
2291}
2292
2293impl ToSpan for Backtick2<'_> {
2294    fn span(&self) -> Span {
2295        self.backtick2.span()
2296    }
2297}
2298
2299///
2300/// Type derived for non-terminal Backtick3
2301///
2302#[allow(dead_code)]
2303#[derive(Debug, Clone)]
2304pub struct Backtick3<'t> {
2305    pub backtick3: Token<'t>, /* `{1,3} */
2306}
2307
2308impl ToSpan for Backtick3<'_> {
2309    fn span(&self) -> Span {
2310        self.backtick3.span()
2311    }
2312}
2313
2314///
2315/// Type derived for non-terminal Backtick4
2316///
2317#[allow(dead_code)]
2318#[derive(Debug, Clone)]
2319pub struct Backtick4<'t> {
2320    pub backtick4: Token<'t>, /* `{1,4} */
2321}
2322
2323impl ToSpan for Backtick4<'_> {
2324    fn span(&self) -> Span {
2325        self.backtick4.span()
2326    }
2327}
2328
2329///
2330/// Type derived for non-terminal Backtick5
2331///
2332#[allow(dead_code)]
2333#[derive(Debug, Clone)]
2334pub struct Backtick5<'t> {
2335    pub backtick5: Token<'t>, /* `{1,5} */
2336}
2337
2338impl ToSpan for Backtick5<'_> {
2339    fn span(&self) -> Span {
2340        self.backtick5.span()
2341    }
2342}
2343
2344///
2345/// Type derived for non-terminal BacktickDelim
2346///
2347#[allow(dead_code)]
2348#[derive(Debug, Clone)]
2349pub struct BacktickDelim<'t> {
2350    pub backtick_delim: Token<'t>, /* ` */
2351}
2352
2353impl ToSpan for BacktickDelim<'_> {
2354    fn span(&self) -> Span {
2355        self.backtick_delim.span()
2356    }
2357}
2358
2359///
2360/// Type derived for non-terminal Begin
2361///
2362#[allow(dead_code)]
2363#[derive(Debug, Clone)]
2364pub struct Begin<'t> {
2365    pub begin: Token<'t>, /* { */
2366}
2367
2368impl ToSpan for Begin<'_> {
2369    fn span(&self) -> Span {
2370        self.begin.span()
2371    }
2372}
2373
2374///
2375/// Type derived for non-terminal Bind
2376///
2377#[allow(dead_code)]
2378#[derive(Debug, Clone)]
2379pub struct Bind<'t> {
2380    pub bind: Token<'t>, /* = */
2381}
2382
2383impl ToSpan for Bind<'_> {
2384    fn span(&self) -> Span {
2385        self.bind.span()
2386    }
2387}
2388
2389///
2390/// Type derived for non-terminal Binding
2391///
2392#[allow(dead_code)]
2393#[derive(Debug, Clone)]
2394pub struct Binding<'t> {
2395    pub keys: Keys<'t>,
2396    pub binding_rhs: BindingRhs<'t>,
2397}
2398
2399impl ToSpan for Binding<'_> {
2400    fn span(&self) -> Span {
2401        self.keys.span() + self.binding_rhs.span()
2402    }
2403}
2404
2405///
2406/// Type derived for non-terminal BindingRhs
2407///
2408#[allow(dead_code)]
2409#[derive(Debug, Clone)]
2410pub enum BindingRhs<'t> {
2411    ValueBinding(BindingRhsValueBinding<'t>),
2412    SectionBinding(BindingRhsSectionBinding<'t>),
2413    TextBinding(BindingRhsTextBinding<'t>),
2414}
2415
2416impl ToSpan for BindingRhs<'_> {
2417    fn span(&self) -> Span {
2418        match self {
2419            BindingRhs::ValueBinding(v) => v.span(),
2420            BindingRhs::SectionBinding(v) => v.span(),
2421            BindingRhs::TextBinding(v) => v.span(),
2422        }
2423    }
2424}
2425
2426///
2427/// Type derived for non-terminal BlockBody
2428///
2429#[allow(dead_code)]
2430#[derive(Debug, Clone)]
2431pub struct BlockBody<'t> {
2432    pub begin: Begin<'t>,
2433    pub eure: Eure<'t>,
2434    pub end: End<'t>,
2435}
2436
2437impl ToSpan for BlockBody<'_> {
2438    fn span(&self) -> Span {
2439        self.begin.span() + self.eure.span() + self.end.span()
2440    }
2441}
2442
2443///
2444/// Type derived for non-terminal Boolean
2445///
2446#[allow(dead_code)]
2447#[derive(Debug, Clone)]
2448pub enum Boolean<'t> {
2449    True(BooleanTrue<'t>),
2450    False(BooleanFalse<'t>),
2451}
2452
2453impl ToSpan for Boolean<'_> {
2454    fn span(&self) -> Span {
2455        match self {
2456            Boolean::True(v) => v.span(),
2457            Boolean::False(v) => v.span(),
2458        }
2459    }
2460}
2461
2462///
2463/// Type derived for non-terminal Caret
2464///
2465#[allow(dead_code)]
2466#[derive(Debug, Clone)]
2467pub struct Caret<'t> {
2468    pub caret: Token<'t>, /* ^ */
2469}
2470
2471impl ToSpan for Caret<'_> {
2472    fn span(&self) -> Span {
2473        self.caret.span()
2474    }
2475}
2476
2477///
2478/// Type derived for non-terminal CodeBlock
2479///
2480#[allow(dead_code)]
2481#[derive(Debug, Clone)]
2482pub enum CodeBlock<'t> {
2483    CodeBlock3(CodeBlockCodeBlock3<'t>),
2484    CodeBlock4(CodeBlockCodeBlock4<'t>),
2485    CodeBlock5(CodeBlockCodeBlock5<'t>),
2486    CodeBlock6(CodeBlockCodeBlock6<'t>),
2487}
2488
2489impl ToSpan for CodeBlock<'_> {
2490    fn span(&self) -> Span {
2491        match self {
2492            CodeBlock::CodeBlock3(v) => v.span(),
2493            CodeBlock::CodeBlock4(v) => v.span(),
2494            CodeBlock::CodeBlock5(v) => v.span(),
2495            CodeBlock::CodeBlock6(v) => v.span(),
2496        }
2497    }
2498}
2499
2500///
2501/// Type derived for non-terminal CodeBlock3
2502///
2503#[allow(dead_code)]
2504#[derive(Debug, Clone)]
2505pub struct CodeBlock3<'t> {
2506    pub code_block_start3: CodeBlockStart3<'t>,
2507    pub code_block3_list: Vec<CodeBlock3List<'t>>,
2508    pub code_block_end3: CodeBlockEnd3<'t>,
2509}
2510
2511impl ToSpan for CodeBlock3<'_> {
2512    fn span(&self) -> Span {
2513        self.code_block_start3.span()
2514            + self
2515                .code_block3_list
2516                .first()
2517                .map_or(Span::default(), |f| f.span())
2518            + self
2519                .code_block3_list
2520                .last()
2521                .map_or(Span::default(), |l| l.span())
2522            + self.code_block_end3.span()
2523    }
2524}
2525
2526///
2527/// Type derived for non-terminal CodeBlock3List
2528///
2529#[allow(dead_code)]
2530#[derive(Debug, Clone)]
2531pub struct CodeBlock3List<'t> {
2532    pub code_block3_list_group: CodeBlock3ListGroup<'t>,
2533}
2534
2535impl ToSpan for CodeBlock3List<'_> {
2536    fn span(&self) -> Span {
2537        self.code_block3_list_group.span()
2538    }
2539}
2540
2541///
2542/// Type derived for non-terminal CodeBlock3ListGroup
2543///
2544#[allow(dead_code)]
2545#[derive(Debug, Clone)]
2546pub enum CodeBlock3ListGroup<'t> {
2547    NoBacktick(CodeBlock3ListGroupNoBacktick<'t>),
2548    Backtick2(CodeBlock3ListGroupBacktick2<'t>),
2549}
2550
2551impl ToSpan for CodeBlock3ListGroup<'_> {
2552    fn span(&self) -> Span {
2553        match self {
2554            CodeBlock3ListGroup::NoBacktick(v) => v.span(),
2555            CodeBlock3ListGroup::Backtick2(v) => v.span(),
2556        }
2557    }
2558}
2559
2560///
2561/// Type derived for non-terminal CodeBlock4
2562///
2563#[allow(dead_code)]
2564#[derive(Debug, Clone)]
2565pub struct CodeBlock4<'t> {
2566    pub code_block_start4: CodeBlockStart4<'t>,
2567    pub code_block4_list: Vec<CodeBlock4List<'t>>,
2568    pub code_block_end4: CodeBlockEnd4<'t>,
2569}
2570
2571impl ToSpan for CodeBlock4<'_> {
2572    fn span(&self) -> Span {
2573        self.code_block_start4.span()
2574            + self
2575                .code_block4_list
2576                .first()
2577                .map_or(Span::default(), |f| f.span())
2578            + self
2579                .code_block4_list
2580                .last()
2581                .map_or(Span::default(), |l| l.span())
2582            + self.code_block_end4.span()
2583    }
2584}
2585
2586///
2587/// Type derived for non-terminal CodeBlock4List
2588///
2589#[allow(dead_code)]
2590#[derive(Debug, Clone)]
2591pub struct CodeBlock4List<'t> {
2592    pub code_block4_list_group: CodeBlock4ListGroup<'t>,
2593}
2594
2595impl ToSpan for CodeBlock4List<'_> {
2596    fn span(&self) -> Span {
2597        self.code_block4_list_group.span()
2598    }
2599}
2600
2601///
2602/// Type derived for non-terminal CodeBlock4ListGroup
2603///
2604#[allow(dead_code)]
2605#[derive(Debug, Clone)]
2606pub enum CodeBlock4ListGroup<'t> {
2607    NoBacktick(CodeBlock4ListGroupNoBacktick<'t>),
2608    Backtick3(CodeBlock4ListGroupBacktick3<'t>),
2609}
2610
2611impl ToSpan for CodeBlock4ListGroup<'_> {
2612    fn span(&self) -> Span {
2613        match self {
2614            CodeBlock4ListGroup::NoBacktick(v) => v.span(),
2615            CodeBlock4ListGroup::Backtick3(v) => v.span(),
2616        }
2617    }
2618}
2619
2620///
2621/// Type derived for non-terminal CodeBlock5
2622///
2623#[allow(dead_code)]
2624#[derive(Debug, Clone)]
2625pub struct CodeBlock5<'t> {
2626    pub code_block_start5: CodeBlockStart5<'t>,
2627    pub code_block5_list: Vec<CodeBlock5List<'t>>,
2628    pub code_block_end5: CodeBlockEnd5<'t>,
2629}
2630
2631impl ToSpan for CodeBlock5<'_> {
2632    fn span(&self) -> Span {
2633        self.code_block_start5.span()
2634            + self
2635                .code_block5_list
2636                .first()
2637                .map_or(Span::default(), |f| f.span())
2638            + self
2639                .code_block5_list
2640                .last()
2641                .map_or(Span::default(), |l| l.span())
2642            + self.code_block_end5.span()
2643    }
2644}
2645
2646///
2647/// Type derived for non-terminal CodeBlock5List
2648///
2649#[allow(dead_code)]
2650#[derive(Debug, Clone)]
2651pub struct CodeBlock5List<'t> {
2652    pub code_block5_list_group: CodeBlock5ListGroup<'t>,
2653}
2654
2655impl ToSpan for CodeBlock5List<'_> {
2656    fn span(&self) -> Span {
2657        self.code_block5_list_group.span()
2658    }
2659}
2660
2661///
2662/// Type derived for non-terminal CodeBlock5ListGroup
2663///
2664#[allow(dead_code)]
2665#[derive(Debug, Clone)]
2666pub enum CodeBlock5ListGroup<'t> {
2667    NoBacktick(CodeBlock5ListGroupNoBacktick<'t>),
2668    Backtick4(CodeBlock5ListGroupBacktick4<'t>),
2669}
2670
2671impl ToSpan for CodeBlock5ListGroup<'_> {
2672    fn span(&self) -> Span {
2673        match self {
2674            CodeBlock5ListGroup::NoBacktick(v) => v.span(),
2675            CodeBlock5ListGroup::Backtick4(v) => v.span(),
2676        }
2677    }
2678}
2679
2680///
2681/// Type derived for non-terminal CodeBlock6
2682///
2683#[allow(dead_code)]
2684#[derive(Debug, Clone)]
2685pub struct CodeBlock6<'t> {
2686    pub code_block_start6: CodeBlockStart6<'t>,
2687    pub code_block6_list: Vec<CodeBlock6List<'t>>,
2688    pub code_block_end6: CodeBlockEnd6<'t>,
2689}
2690
2691impl ToSpan for CodeBlock6<'_> {
2692    fn span(&self) -> Span {
2693        self.code_block_start6.span()
2694            + self
2695                .code_block6_list
2696                .first()
2697                .map_or(Span::default(), |f| f.span())
2698            + self
2699                .code_block6_list
2700                .last()
2701                .map_or(Span::default(), |l| l.span())
2702            + self.code_block_end6.span()
2703    }
2704}
2705
2706///
2707/// Type derived for non-terminal CodeBlock6List
2708///
2709#[allow(dead_code)]
2710#[derive(Debug, Clone)]
2711pub struct CodeBlock6List<'t> {
2712    pub code_block6_list_group: CodeBlock6ListGroup<'t>,
2713}
2714
2715impl ToSpan for CodeBlock6List<'_> {
2716    fn span(&self) -> Span {
2717        self.code_block6_list_group.span()
2718    }
2719}
2720
2721///
2722/// Type derived for non-terminal CodeBlock6ListGroup
2723///
2724#[allow(dead_code)]
2725#[derive(Debug, Clone)]
2726pub enum CodeBlock6ListGroup<'t> {
2727    NoBacktick(CodeBlock6ListGroupNoBacktick<'t>),
2728    Backtick5(CodeBlock6ListGroupBacktick5<'t>),
2729}
2730
2731impl ToSpan for CodeBlock6ListGroup<'_> {
2732    fn span(&self) -> Span {
2733        match self {
2734            CodeBlock6ListGroup::NoBacktick(v) => v.span(),
2735            CodeBlock6ListGroup::Backtick5(v) => v.span(),
2736        }
2737    }
2738}
2739
2740///
2741/// Type derived for non-terminal CodeBlockEnd3
2742///
2743#[allow(dead_code)]
2744#[derive(Debug, Clone)]
2745pub struct CodeBlockEnd3<'t> {
2746    pub code_block_end3: Token<'t>, /* `{3} */
2747}
2748
2749impl ToSpan for CodeBlockEnd3<'_> {
2750    fn span(&self) -> Span {
2751        self.code_block_end3.span()
2752    }
2753}
2754
2755///
2756/// Type derived for non-terminal CodeBlockEnd4
2757///
2758#[allow(dead_code)]
2759#[derive(Debug, Clone)]
2760pub struct CodeBlockEnd4<'t> {
2761    pub code_block_end4: Token<'t>, /* `{4} */
2762}
2763
2764impl ToSpan for CodeBlockEnd4<'_> {
2765    fn span(&self) -> Span {
2766        self.code_block_end4.span()
2767    }
2768}
2769
2770///
2771/// Type derived for non-terminal CodeBlockEnd5
2772///
2773#[allow(dead_code)]
2774#[derive(Debug, Clone)]
2775pub struct CodeBlockEnd5<'t> {
2776    pub code_block_end5: Token<'t>, /* `{5} */
2777}
2778
2779impl ToSpan for CodeBlockEnd5<'_> {
2780    fn span(&self) -> Span {
2781        self.code_block_end5.span()
2782    }
2783}
2784
2785///
2786/// Type derived for non-terminal CodeBlockEnd6
2787///
2788#[allow(dead_code)]
2789#[derive(Debug, Clone)]
2790pub struct CodeBlockEnd6<'t> {
2791    pub code_block_end6: Token<'t>, /* `{6} */
2792}
2793
2794impl ToSpan for CodeBlockEnd6<'_> {
2795    fn span(&self) -> Span {
2796        self.code_block_end6.span()
2797    }
2798}
2799
2800///
2801/// Type derived for non-terminal CodeBlockStart3
2802///
2803#[allow(dead_code)]
2804#[derive(Debug, Clone)]
2805pub struct CodeBlockStart3<'t> {
2806    pub code_block_start3: Token<'t>, /* `{3}[a-zA-Z0-9-_]*[\s--\r\n]*(\r\n|\r|\n) */
2807}
2808
2809impl ToSpan for CodeBlockStart3<'_> {
2810    fn span(&self) -> Span {
2811        self.code_block_start3.span()
2812    }
2813}
2814
2815///
2816/// Type derived for non-terminal CodeBlockStart4
2817///
2818#[allow(dead_code)]
2819#[derive(Debug, Clone)]
2820pub struct CodeBlockStart4<'t> {
2821    pub code_block_start4: Token<'t>, /* `{4}[a-zA-Z0-9-_]*[\s--\r\n]*(\r\n|\r|\n) */
2822}
2823
2824impl ToSpan for CodeBlockStart4<'_> {
2825    fn span(&self) -> Span {
2826        self.code_block_start4.span()
2827    }
2828}
2829
2830///
2831/// Type derived for non-terminal CodeBlockStart5
2832///
2833#[allow(dead_code)]
2834#[derive(Debug, Clone)]
2835pub struct CodeBlockStart5<'t> {
2836    pub code_block_start5: Token<'t>, /* `{5}[a-zA-Z0-9-_]*[\s--\r\n]*(\r\n|\r|\n) */
2837}
2838
2839impl ToSpan for CodeBlockStart5<'_> {
2840    fn span(&self) -> Span {
2841        self.code_block_start5.span()
2842    }
2843}
2844
2845///
2846/// Type derived for non-terminal CodeBlockStart6
2847///
2848#[allow(dead_code)]
2849#[derive(Debug, Clone)]
2850pub struct CodeBlockStart6<'t> {
2851    pub code_block_start6: Token<'t>, /* `{6}[a-zA-Z0-9-_]*[\s--\r\n]*(\r\n|\r|\n) */
2852}
2853
2854impl ToSpan for CodeBlockStart6<'_> {
2855    fn span(&self) -> Span {
2856        self.code_block_start6.span()
2857    }
2858}
2859
2860///
2861/// Type derived for non-terminal Comma
2862///
2863#[allow(dead_code)]
2864#[derive(Debug, Clone)]
2865pub struct Comma<'t> {
2866    pub comma: Token<'t>, /* , */
2867}
2868
2869impl ToSpan for Comma<'_> {
2870    fn span(&self) -> Span {
2871        self.comma.span()
2872    }
2873}
2874
2875///
2876/// Type derived for non-terminal Continue
2877///
2878#[allow(dead_code)]
2879#[derive(Debug, Clone)]
2880pub struct Continue<'t> {
2881    pub r#continue: Token<'t>, /* \ */
2882}
2883
2884impl ToSpan for Continue<'_> {
2885    fn span(&self) -> Span {
2886        self.r#continue.span()
2887    }
2888}
2889
2890///
2891/// Type derived for non-terminal DelimCode
2892///
2893#[allow(dead_code)]
2894#[derive(Debug, Clone)]
2895pub enum DelimCode<'t> {
2896    DelimCode3(DelimCodeDelimCode3<'t>),
2897    DelimCode2(DelimCodeDelimCode2<'t>),
2898    DelimCode1(DelimCodeDelimCode1<'t>),
2899}
2900
2901impl ToSpan for DelimCode<'_> {
2902    fn span(&self) -> Span {
2903        match self {
2904            DelimCode::DelimCode3(v) => v.span(),
2905            DelimCode::DelimCode2(v) => v.span(),
2906            DelimCode::DelimCode1(v) => v.span(),
2907        }
2908    }
2909}
2910
2911///
2912/// Type derived for non-terminal DelimCode1
2913///
2914#[allow(dead_code)]
2915#[derive(Debug, Clone)]
2916pub struct DelimCode1<'t> {
2917    pub delim_code_start1: DelimCodeStart1<'t>,
2918    pub delim_code1_list: Vec<DelimCode1List<'t>>,
2919    pub delim_code_end1: DelimCodeEnd1<'t>,
2920}
2921
2922impl ToSpan for DelimCode1<'_> {
2923    fn span(&self) -> Span {
2924        self.delim_code_start1.span()
2925            + self
2926                .delim_code1_list
2927                .first()
2928                .map_or(Span::default(), |f| f.span())
2929            + self
2930                .delim_code1_list
2931                .last()
2932                .map_or(Span::default(), |l| l.span())
2933            + self.delim_code_end1.span()
2934    }
2935}
2936
2937///
2938/// Type derived for non-terminal DelimCode1List
2939///
2940#[allow(dead_code)]
2941#[derive(Debug, Clone)]
2942pub struct DelimCode1List<'t> {
2943    pub delim_code1_list_group: DelimCode1ListGroup<'t>,
2944}
2945
2946impl ToSpan for DelimCode1List<'_> {
2947    fn span(&self) -> Span {
2948        self.delim_code1_list_group.span()
2949    }
2950}
2951
2952///
2953/// Type derived for non-terminal DelimCode1ListGroup
2954///
2955#[allow(dead_code)]
2956#[derive(Debug, Clone)]
2957pub enum DelimCode1ListGroup<'t> {
2958    NoBacktick(DelimCode1ListGroupNoBacktick<'t>),
2959    BacktickDelim(DelimCode1ListGroupBacktickDelim<'t>),
2960}
2961
2962impl ToSpan for DelimCode1ListGroup<'_> {
2963    fn span(&self) -> Span {
2964        match self {
2965            DelimCode1ListGroup::NoBacktick(v) => v.span(),
2966            DelimCode1ListGroup::BacktickDelim(v) => v.span(),
2967        }
2968    }
2969}
2970
2971///
2972/// Type derived for non-terminal DelimCode2
2973///
2974#[allow(dead_code)]
2975#[derive(Debug, Clone)]
2976pub struct DelimCode2<'t> {
2977    pub delim_code_start2: DelimCodeStart2<'t>,
2978    pub delim_code2_list: Vec<DelimCode2List<'t>>,
2979    pub delim_code_end2: DelimCodeEnd2<'t>,
2980}
2981
2982impl ToSpan for DelimCode2<'_> {
2983    fn span(&self) -> Span {
2984        self.delim_code_start2.span()
2985            + self
2986                .delim_code2_list
2987                .first()
2988                .map_or(Span::default(), |f| f.span())
2989            + self
2990                .delim_code2_list
2991                .last()
2992                .map_or(Span::default(), |l| l.span())
2993            + self.delim_code_end2.span()
2994    }
2995}
2996
2997///
2998/// Type derived for non-terminal DelimCode2List
2999///
3000#[allow(dead_code)]
3001#[derive(Debug, Clone)]
3002pub struct DelimCode2List<'t> {
3003    pub delim_code2_list_group: DelimCode2ListGroup<'t>,
3004}
3005
3006impl ToSpan for DelimCode2List<'_> {
3007    fn span(&self) -> Span {
3008        self.delim_code2_list_group.span()
3009    }
3010}
3011
3012///
3013/// Type derived for non-terminal DelimCode2ListGroup
3014///
3015#[allow(dead_code)]
3016#[derive(Debug, Clone)]
3017pub enum DelimCode2ListGroup<'t> {
3018    NoBacktick(DelimCode2ListGroupNoBacktick<'t>),
3019    BacktickDelim(DelimCode2ListGroupBacktickDelim<'t>),
3020}
3021
3022impl ToSpan for DelimCode2ListGroup<'_> {
3023    fn span(&self) -> Span {
3024        match self {
3025            DelimCode2ListGroup::NoBacktick(v) => v.span(),
3026            DelimCode2ListGroup::BacktickDelim(v) => v.span(),
3027        }
3028    }
3029}
3030
3031///
3032/// Type derived for non-terminal DelimCode3
3033///
3034#[allow(dead_code)]
3035#[derive(Debug, Clone)]
3036pub struct DelimCode3<'t> {
3037    pub delim_code_start3: DelimCodeStart3<'t>,
3038    pub delim_code3_list: Vec<DelimCode3List<'t>>,
3039    pub delim_code_end3: DelimCodeEnd3<'t>,
3040}
3041
3042impl ToSpan for DelimCode3<'_> {
3043    fn span(&self) -> Span {
3044        self.delim_code_start3.span()
3045            + self
3046                .delim_code3_list
3047                .first()
3048                .map_or(Span::default(), |f| f.span())
3049            + self
3050                .delim_code3_list
3051                .last()
3052                .map_or(Span::default(), |l| l.span())
3053            + self.delim_code_end3.span()
3054    }
3055}
3056
3057///
3058/// Type derived for non-terminal DelimCode3List
3059///
3060#[allow(dead_code)]
3061#[derive(Debug, Clone)]
3062pub struct DelimCode3List<'t> {
3063    pub delim_code3_list_group: DelimCode3ListGroup<'t>,
3064}
3065
3066impl ToSpan for DelimCode3List<'_> {
3067    fn span(&self) -> Span {
3068        self.delim_code3_list_group.span()
3069    }
3070}
3071
3072///
3073/// Type derived for non-terminal DelimCode3ListGroup
3074///
3075#[allow(dead_code)]
3076#[derive(Debug, Clone)]
3077pub enum DelimCode3ListGroup<'t> {
3078    NoBacktick(DelimCode3ListGroupNoBacktick<'t>),
3079    BacktickDelim(DelimCode3ListGroupBacktickDelim<'t>),
3080}
3081
3082impl ToSpan for DelimCode3ListGroup<'_> {
3083    fn span(&self) -> Span {
3084        match self {
3085            DelimCode3ListGroup::NoBacktick(v) => v.span(),
3086            DelimCode3ListGroup::BacktickDelim(v) => v.span(),
3087        }
3088    }
3089}
3090
3091///
3092/// Type derived for non-terminal DelimCodeEnd1
3093///
3094#[allow(dead_code)]
3095#[derive(Debug, Clone)]
3096pub struct DelimCodeEnd1<'t> {
3097    pub delim_code_end1: Token<'t>, /* `> */
3098}
3099
3100impl ToSpan for DelimCodeEnd1<'_> {
3101    fn span(&self) -> Span {
3102        self.delim_code_end1.span()
3103    }
3104}
3105
3106///
3107/// Type derived for non-terminal DelimCodeEnd2
3108///
3109#[allow(dead_code)]
3110#[derive(Debug, Clone)]
3111pub struct DelimCodeEnd2<'t> {
3112    pub delim_code_end2: Token<'t>, /* `>> */
3113}
3114
3115impl ToSpan for DelimCodeEnd2<'_> {
3116    fn span(&self) -> Span {
3117        self.delim_code_end2.span()
3118    }
3119}
3120
3121///
3122/// Type derived for non-terminal DelimCodeEnd3
3123///
3124#[allow(dead_code)]
3125#[derive(Debug, Clone)]
3126pub struct DelimCodeEnd3<'t> {
3127    pub delim_code_end3: Token<'t>, /* `>>> */
3128}
3129
3130impl ToSpan for DelimCodeEnd3<'_> {
3131    fn span(&self) -> Span {
3132        self.delim_code_end3.span()
3133    }
3134}
3135
3136///
3137/// Type derived for non-terminal DelimCodeStart1
3138///
3139#[allow(dead_code)]
3140#[derive(Debug, Clone)]
3141pub struct DelimCodeStart1<'t> {
3142    pub delim_code_start1: Token<'t>, /* [a-zA-Z0-9-_]*<` */
3143}
3144
3145impl ToSpan for DelimCodeStart1<'_> {
3146    fn span(&self) -> Span {
3147        self.delim_code_start1.span()
3148    }
3149}
3150
3151///
3152/// Type derived for non-terminal DelimCodeStart2
3153///
3154#[allow(dead_code)]
3155#[derive(Debug, Clone)]
3156pub struct DelimCodeStart2<'t> {
3157    pub delim_code_start2: Token<'t>, /* [a-zA-Z0-9-_]*<<` */
3158}
3159
3160impl ToSpan for DelimCodeStart2<'_> {
3161    fn span(&self) -> Span {
3162        self.delim_code_start2.span()
3163    }
3164}
3165
3166///
3167/// Type derived for non-terminal DelimCodeStart3
3168///
3169#[allow(dead_code)]
3170#[derive(Debug, Clone)]
3171pub struct DelimCodeStart3<'t> {
3172    pub delim_code_start3: Token<'t>, /* [a-zA-Z0-9-_]*<<<` */
3173}
3174
3175impl ToSpan for DelimCodeStart3<'_> {
3176    fn span(&self) -> Span {
3177        self.delim_code_start3.span()
3178    }
3179}
3180
3181///
3182/// Type derived for non-terminal Dot
3183///
3184#[allow(dead_code)]
3185#[derive(Debug, Clone)]
3186pub struct Dot<'t> {
3187    pub dot: Token<'t>, /* . */
3188}
3189
3190impl ToSpan for Dot<'_> {
3191    fn span(&self) -> Span {
3192        self.dot.span()
3193    }
3194}
3195
3196///
3197/// Type derived for non-terminal DotKey
3198///
3199#[allow(dead_code)]
3200#[derive(Debug, Clone)]
3201pub struct DotKey<'t> {
3202    pub dot: Dot<'t>,
3203    pub key: Key<'t>,
3204}
3205
3206impl ToSpan for DotKey<'_> {
3207    fn span(&self) -> Span {
3208        self.dot.span() + self.key.span()
3209    }
3210}
3211
3212///
3213/// Type derived for non-terminal End
3214///
3215#[allow(dead_code)]
3216#[derive(Debug, Clone)]
3217pub struct End<'t> {
3218    pub end: Token<'t>, /* } */
3219}
3220
3221impl ToSpan for End<'_> {
3222    fn span(&self) -> Span {
3223        self.end.span()
3224    }
3225}
3226
3227///
3228/// Type derived for non-terminal Eure
3229///
3230#[allow(dead_code)]
3231#[derive(Debug, Clone)]
3232pub struct Eure<'t> {
3233    pub eure_opt: Option<EureOpt<'t>>,
3234    pub eure_list: Vec<EureList<'t>>,
3235    pub eure_list0: Vec<EureList0<'t>>,
3236}
3237
3238impl ToSpan for Eure<'_> {
3239    fn span(&self) -> Span {
3240        self.eure_opt.as_ref().map_or(Span::default(), |o| o.span())
3241            + self.eure_list.first().map_or(Span::default(), |f| f.span())
3242            + self.eure_list.last().map_or(Span::default(), |l| l.span())
3243            + self
3244                .eure_list0
3245                .first()
3246                .map_or(Span::default(), |f| f.span())
3247            + self.eure_list0.last().map_or(Span::default(), |l| l.span())
3248    }
3249}
3250
3251///
3252/// Type derived for non-terminal EureList
3253///
3254#[allow(dead_code)]
3255#[derive(Debug, Clone)]
3256pub struct EureList<'t> {
3257    pub binding: Binding<'t>,
3258}
3259
3260impl ToSpan for EureList<'_> {
3261    fn span(&self) -> Span {
3262        self.binding.span()
3263    }
3264}
3265
3266///
3267/// Type derived for non-terminal EureList0
3268///
3269#[allow(dead_code)]
3270#[derive(Debug, Clone)]
3271pub struct EureList0<'t> {
3272    pub section: Section<'t>,
3273}
3274
3275impl ToSpan for EureList0<'_> {
3276    fn span(&self) -> Span {
3277        self.section.span()
3278    }
3279}
3280
3281///
3282/// Type derived for non-terminal EureOpt
3283///
3284#[allow(dead_code)]
3285#[derive(Debug, Clone)]
3286pub struct EureOpt<'t> {
3287    pub top_level_binding: TopLevelBinding<'t>,
3288}
3289
3290impl ToSpan for EureOpt<'_> {
3291    fn span(&self) -> Span {
3292        self.top_level_binding.span()
3293    }
3294}
3295
3296///
3297/// Type derived for non-terminal Ext
3298///
3299#[allow(dead_code)]
3300#[derive(Debug, Clone)]
3301pub struct Ext<'t> {
3302    pub ext: Token<'t>, /* $ */
3303}
3304
3305impl ToSpan for Ext<'_> {
3306    fn span(&self) -> Span {
3307        self.ext.span()
3308    }
3309}
3310
3311///
3312/// Type derived for non-terminal ExtensionNameSpace
3313///
3314#[allow(dead_code)]
3315#[derive(Debug, Clone)]
3316pub struct ExtensionNameSpace<'t> {
3317    pub ext: Ext<'t>,
3318    pub key_ident: KeyIdent<'t>,
3319}
3320
3321impl ToSpan for ExtensionNameSpace<'_> {
3322    fn span(&self) -> Span {
3323        self.ext.span() + self.key_ident.span()
3324    }
3325}
3326
3327///
3328/// Type derived for non-terminal False
3329///
3330#[allow(dead_code)]
3331#[derive(Debug, Clone)]
3332pub struct False<'t> {
3333    pub r#false: Token<'t>, /* false */
3334}
3335
3336impl ToSpan for False<'_> {
3337    fn span(&self) -> Span {
3338        self.r#false.span()
3339    }
3340}
3341
3342///
3343/// Type derived for non-terminal FirstKey
3344///
3345#[allow(dead_code)]
3346#[derive(Debug, Clone)]
3347pub enum FirstKey<'t> {
3348    Key(FirstKeyKey<'t>),
3349    ArrayMarker(FirstKeyArrayMarker<'t>),
3350}
3351
3352impl ToSpan for FirstKey<'_> {
3353    fn span(&self) -> Span {
3354        match self {
3355            FirstKey::Key(v) => v.span(),
3356            FirstKey::ArrayMarker(v) => v.span(),
3357        }
3358    }
3359}
3360
3361///
3362/// Type derived for non-terminal FlatBody
3363///
3364#[allow(dead_code)]
3365#[derive(Debug, Clone)]
3366pub struct FlatBody<'t> {
3367    pub section_head: SectionHead<'t>,
3368    pub flat_body_list: Vec<FlatBodyList<'t>>,
3369}
3370
3371impl ToSpan for FlatBody<'_> {
3372    fn span(&self) -> Span {
3373        self.section_head.span()
3374            + self
3375                .flat_body_list
3376                .first()
3377                .map_or(Span::default(), |f| f.span())
3378            + self
3379                .flat_body_list
3380                .last()
3381                .map_or(Span::default(), |l| l.span())
3382    }
3383}
3384
3385///
3386/// Type derived for non-terminal FlatBodyList
3387///
3388#[allow(dead_code)]
3389#[derive(Debug, Clone)]
3390pub struct FlatBodyList<'t> {
3391    pub binding: Binding<'t>,
3392}
3393
3394impl ToSpan for FlatBodyList<'_> {
3395    fn span(&self) -> Span {
3396        self.binding.span()
3397    }
3398}
3399
3400///
3401/// Type derived for non-terminal FlatRootBinding
3402///
3403#[allow(dead_code)]
3404#[derive(Debug, Clone)]
3405pub enum FlatRootBinding<'t> {
3406    ValueBinding(FlatRootBindingValueBinding<'t>),
3407    TextBinding(FlatRootBindingTextBinding<'t>),
3408}
3409
3410impl ToSpan for FlatRootBinding<'_> {
3411    fn span(&self) -> Span {
3412        match self {
3413            FlatRootBinding::ValueBinding(v) => v.span(),
3414            FlatRootBinding::TextBinding(v) => v.span(),
3415        }
3416    }
3417}
3418
3419///
3420/// Type derived for non-terminal Float
3421///
3422#[allow(dead_code)]
3423#[derive(Debug, Clone)]
3424pub struct Float<'t> {
3425    pub float: Token<'t>, /* [-+]?\d[\d_]*\.\d+([eE][-+]?\d+)?(f32|f64)?|[-+]?\d[\d_]*[eE][-+]?\d+(f32|f64)? */
3426}
3427
3428impl ToSpan for Float<'_> {
3429    fn span(&self) -> Span {
3430        self.float.span()
3431    }
3432}
3433
3434///
3435/// Type derived for non-terminal GrammarNewline
3436///
3437#[allow(dead_code)]
3438#[derive(Debug, Clone)]
3439pub struct GrammarNewline<'t> {
3440    pub grammar_newline: Token<'t>, /* \r\n|\r|\n */
3441}
3442
3443impl ToSpan for GrammarNewline<'_> {
3444    fn span(&self) -> Span {
3445        self.grammar_newline.span()
3446    }
3447}
3448
3449///
3450/// Type derived for non-terminal Hole
3451///
3452#[allow(dead_code)]
3453#[derive(Debug, Clone)]
3454pub struct Hole<'t> {
3455    pub hole: Token<'t>, /* ![\p{XID_Start}_]?[\p{XID_Continue}-]* */
3456}
3457
3458impl ToSpan for Hole<'_> {
3459    fn span(&self) -> Span {
3460        self.hole.span()
3461    }
3462}
3463
3464///
3465/// Type derived for non-terminal Ident
3466///
3467#[allow(dead_code)]
3468#[derive(Debug, Clone)]
3469pub struct Ident<'t> {
3470    pub ident: Token<'t>, /* [\p{XID_Start}_][\p{XID_Continue}-]* */
3471}
3472
3473impl ToSpan for Ident<'_> {
3474    fn span(&self) -> Span {
3475        self.ident.span()
3476    }
3477}
3478
3479///
3480/// Type derived for non-terminal Inf
3481///
3482#[allow(dead_code)]
3483#[derive(Debug, Clone)]
3484pub struct Inf<'t> {
3485    pub inf: Token<'t>, /* [-+]?[Ii]nf */
3486}
3487
3488impl ToSpan for Inf<'_> {
3489    fn span(&self) -> Span {
3490        self.inf.span()
3491    }
3492}
3493
3494///
3495/// Type derived for non-terminal InlineCode
3496///
3497#[allow(dead_code)]
3498#[derive(Debug, Clone)]
3499pub enum InlineCode<'t> {
3500    DelimCode(InlineCodeDelimCode<'t>),
3501    InlineCode1(InlineCodeInlineCode1<'t>),
3502}
3503
3504impl ToSpan for InlineCode<'_> {
3505    fn span(&self) -> Span {
3506        match self {
3507            InlineCode::DelimCode(v) => v.span(),
3508            InlineCode::InlineCode1(v) => v.span(),
3509        }
3510    }
3511}
3512
3513///
3514/// Type derived for non-terminal InlineCode1
3515///
3516#[allow(dead_code)]
3517#[derive(Debug, Clone)]
3518pub struct InlineCode1<'t> {
3519    pub inline_code1: Token<'t>, /* [a-zA-Z0-9-_]*`[^`\r\n]*` */
3520}
3521
3522impl ToSpan for InlineCode1<'_> {
3523    fn span(&self) -> Span {
3524        self.inline_code1.span()
3525    }
3526}
3527
3528///
3529/// Type derived for non-terminal Integer
3530///
3531#[allow(dead_code)]
3532#[derive(Debug, Clone)]
3533pub struct Integer<'t> {
3534    pub integer: Token<'t>, /* [-+]?\d[\d_]* */
3535}
3536
3537impl ToSpan for Integer<'_> {
3538    fn span(&self) -> Span {
3539        self.integer.span()
3540    }
3541}
3542
3543///
3544/// Type derived for non-terminal Key
3545///
3546#[allow(dead_code)]
3547#[derive(Debug, Clone)]
3548pub enum Key<'t> {
3549    KeyIdent(KeyKeyIdent<'t>),
3550    ExtensionNameSpace(KeyExtensionNameSpace<'t>),
3551    String(KeyString<'t>),
3552    Integer(KeyInteger<'t>),
3553    Float(KeyFloat<'t>),
3554    KeyTuple(KeyKeyTuple<'t>),
3555    TupleIndex(KeyTupleIndex<'t>),
3556    Hole(KeyHole<'t>),
3557}
3558
3559impl ToSpan for Key<'_> {
3560    fn span(&self) -> Span {
3561        match self {
3562            Key::KeyIdent(v) => v.span(),
3563            Key::ExtensionNameSpace(v) => v.span(),
3564            Key::String(v) => v.span(),
3565            Key::Integer(v) => v.span(),
3566            Key::Float(v) => v.span(),
3567            Key::KeyTuple(v) => v.span(),
3568            Key::TupleIndex(v) => v.span(),
3569            Key::Hole(v) => v.span(),
3570        }
3571    }
3572}
3573
3574///
3575/// Type derived for non-terminal KeyIdent
3576///
3577#[allow(dead_code)]
3578#[derive(Debug, Clone)]
3579pub enum KeyIdent<'t> {
3580    Ident(KeyIdentIdent<'t>),
3581    True(KeyIdentTrue<'t>),
3582    False(KeyIdentFalse<'t>),
3583    Null(KeyIdentNull<'t>),
3584}
3585
3586impl ToSpan for KeyIdent<'_> {
3587    fn span(&self) -> Span {
3588        match self {
3589            KeyIdent::Ident(v) => v.span(),
3590            KeyIdent::True(v) => v.span(),
3591            KeyIdent::False(v) => v.span(),
3592            KeyIdent::Null(v) => v.span(),
3593        }
3594    }
3595}
3596
3597///
3598/// Type derived for non-terminal KeyTail
3599///
3600#[allow(dead_code)]
3601#[derive(Debug, Clone)]
3602pub enum KeyTail<'t> {
3603    DotKey(KeyTailDotKey<'t>),
3604    ArrayMarker(KeyTailArrayMarker<'t>),
3605}
3606
3607impl ToSpan for KeyTail<'_> {
3608    fn span(&self) -> Span {
3609        match self {
3610            KeyTail::DotKey(v) => v.span(),
3611            KeyTail::ArrayMarker(v) => v.span(),
3612        }
3613    }
3614}
3615
3616///
3617/// Type derived for non-terminal KeyTuple
3618///
3619#[allow(dead_code)]
3620#[derive(Debug, Clone)]
3621pub struct KeyTuple<'t> {
3622    pub l_paren: LParen<'t>,
3623    pub key_tuple_opt: Option<KeyTupleOpt<'t>>,
3624    pub r_paren: RParen<'t>,
3625}
3626
3627impl ToSpan for KeyTuple<'_> {
3628    fn span(&self) -> Span {
3629        self.l_paren.span()
3630            + self
3631                .key_tuple_opt
3632                .as_ref()
3633                .map_or(Span::default(), |o| o.span())
3634            + self.r_paren.span()
3635    }
3636}
3637
3638///
3639/// Type derived for non-terminal KeyTupleElements
3640///
3641#[allow(dead_code)]
3642#[derive(Debug, Clone)]
3643pub struct KeyTupleElements<'t> {
3644    pub key_value: KeyValue<'t>,
3645    pub key_tuple_elements_opt: Option<Box<KeyTupleElementsOpt<'t>>>,
3646}
3647
3648impl ToSpan for KeyTupleElements<'_> {
3649    fn span(&self) -> Span {
3650        self.key_value.span()
3651            + self
3652                .key_tuple_elements_opt
3653                .as_ref()
3654                .map_or(Span::default(), |o| o.span())
3655    }
3656}
3657
3658///
3659/// Type derived for non-terminal KeyTupleElementsOpt
3660///
3661#[allow(dead_code)]
3662#[derive(Debug, Clone)]
3663pub struct KeyTupleElementsOpt<'t> {
3664    pub key_tuple_elements_tail: KeyTupleElementsTail<'t>,
3665}
3666
3667impl ToSpan for KeyTupleElementsOpt<'_> {
3668    fn span(&self) -> Span {
3669        self.key_tuple_elements_tail.span()
3670    }
3671}
3672
3673///
3674/// Type derived for non-terminal KeyTupleElementsTail
3675///
3676#[allow(dead_code)]
3677#[derive(Debug, Clone)]
3678pub struct KeyTupleElementsTail<'t> {
3679    pub comma: Comma<'t>,
3680    pub key_tuple_elements_tail_opt: Option<KeyTupleElementsTailOpt<'t>>,
3681}
3682
3683impl ToSpan for KeyTupleElementsTail<'_> {
3684    fn span(&self) -> Span {
3685        self.comma.span()
3686            + self
3687                .key_tuple_elements_tail_opt
3688                .as_ref()
3689                .map_or(Span::default(), |o| o.span())
3690    }
3691}
3692
3693///
3694/// Type derived for non-terminal KeyTupleElementsTailOpt
3695///
3696#[allow(dead_code)]
3697#[derive(Debug, Clone)]
3698pub struct KeyTupleElementsTailOpt<'t> {
3699    pub key_tuple_elements: KeyTupleElements<'t>,
3700}
3701
3702impl ToSpan for KeyTupleElementsTailOpt<'_> {
3703    fn span(&self) -> Span {
3704        self.key_tuple_elements.span()
3705    }
3706}
3707
3708///
3709/// Type derived for non-terminal KeyTupleOpt
3710///
3711#[allow(dead_code)]
3712#[derive(Debug, Clone)]
3713pub struct KeyTupleOpt<'t> {
3714    pub key_tuple_elements: KeyTupleElements<'t>,
3715}
3716
3717impl ToSpan for KeyTupleOpt<'_> {
3718    fn span(&self) -> Span {
3719        self.key_tuple_elements.span()
3720    }
3721}
3722
3723///
3724/// Type derived for non-terminal KeyValue
3725///
3726#[allow(dead_code)]
3727#[derive(Debug, Clone)]
3728pub enum KeyValue<'t> {
3729    Integer(KeyValueInteger<'t>),
3730    Boolean(KeyValueBoolean<'t>),
3731    Str(KeyValueStr<'t>),
3732    KeyTuple(KeyValueKeyTuple<'t>),
3733    Hole(KeyValueHole<'t>),
3734}
3735
3736impl ToSpan for KeyValue<'_> {
3737    fn span(&self) -> Span {
3738        match self {
3739            KeyValue::Integer(v) => v.span(),
3740            KeyValue::Boolean(v) => v.span(),
3741            KeyValue::Str(v) => v.span(),
3742            KeyValue::KeyTuple(v) => v.span(),
3743            KeyValue::Hole(v) => v.span(),
3744        }
3745    }
3746}
3747
3748///
3749/// Type derived for non-terminal Keys
3750///
3751#[allow(dead_code)]
3752#[derive(Debug, Clone)]
3753pub struct Keys<'t> {
3754    pub first_key: FirstKey<'t>,
3755    pub keys_list: Vec<KeysList<'t>>,
3756}
3757
3758impl ToSpan for Keys<'_> {
3759    fn span(&self) -> Span {
3760        self.first_key.span()
3761            + self.keys_list.first().map_or(Span::default(), |f| f.span())
3762            + self.keys_list.last().map_or(Span::default(), |l| l.span())
3763    }
3764}
3765
3766///
3767/// Type derived for non-terminal KeysList
3768///
3769#[allow(dead_code)]
3770#[derive(Debug, Clone)]
3771pub struct KeysList<'t> {
3772    pub key_tail: KeyTail<'t>,
3773}
3774
3775impl ToSpan for KeysList<'_> {
3776    fn span(&self) -> Span {
3777        self.key_tail.span()
3778    }
3779}
3780
3781///
3782/// Type derived for non-terminal LParen
3783///
3784#[allow(dead_code)]
3785#[derive(Debug, Clone)]
3786pub struct LParen<'t> {
3787    pub l_paren: Token<'t>, /* ( */
3788}
3789
3790impl ToSpan for LParen<'_> {
3791    fn span(&self) -> Span {
3792        self.l_paren.span()
3793    }
3794}
3795
3796///
3797/// Type derived for non-terminal LitStr
3798///
3799#[allow(dead_code)]
3800#[derive(Debug, Clone)]
3801pub struct LitStr<'t> {
3802    pub lit_str: Token<'t>, /* '[^']*' */
3803}
3804
3805impl ToSpan for LitStr<'_> {
3806    fn span(&self) -> Span {
3807        self.lit_str.span()
3808    }
3809}
3810
3811///
3812/// Type derived for non-terminal LitStr1
3813///
3814#[allow(dead_code)]
3815#[derive(Debug, Clone)]
3816pub struct LitStr1<'t> {
3817    pub lit_str1_start: LitStr1Start<'t>,
3818    pub lit_str1_list: Vec<LitStr1List<'t>>,
3819    pub lit_str1_end: LitStr1End<'t>,
3820}
3821
3822impl ToSpan for LitStr1<'_> {
3823    fn span(&self) -> Span {
3824        self.lit_str1_start.span()
3825            + self
3826                .lit_str1_list
3827                .first()
3828                .map_or(Span::default(), |f| f.span())
3829            + self
3830                .lit_str1_list
3831                .last()
3832                .map_or(Span::default(), |l| l.span())
3833            + self.lit_str1_end.span()
3834    }
3835}
3836
3837///
3838/// Type derived for non-terminal LitStr1End
3839///
3840#[allow(dead_code)]
3841#[derive(Debug, Clone)]
3842pub struct LitStr1End<'t> {
3843    pub lit_str1_end: Token<'t>, /* '> */
3844}
3845
3846impl ToSpan for LitStr1End<'_> {
3847    fn span(&self) -> Span {
3848        self.lit_str1_end.span()
3849    }
3850}
3851
3852///
3853/// Type derived for non-terminal LitStr1List
3854///
3855#[allow(dead_code)]
3856#[derive(Debug, Clone)]
3857pub struct LitStr1List<'t> {
3858    pub lit_str1_list_group: LitStr1ListGroup<'t>,
3859}
3860
3861impl ToSpan for LitStr1List<'_> {
3862    fn span(&self) -> Span {
3863        self.lit_str1_list_group.span()
3864    }
3865}
3866
3867///
3868/// Type derived for non-terminal LitStr1ListGroup
3869///
3870#[allow(dead_code)]
3871#[derive(Debug, Clone)]
3872pub enum LitStr1ListGroup<'t> {
3873    NoSQuote(LitStr1ListGroupNoSQuote<'t>),
3874    SQuote(LitStr1ListGroupSQuote<'t>),
3875}
3876
3877impl ToSpan for LitStr1ListGroup<'_> {
3878    fn span(&self) -> Span {
3879        match self {
3880            LitStr1ListGroup::NoSQuote(v) => v.span(),
3881            LitStr1ListGroup::SQuote(v) => v.span(),
3882        }
3883    }
3884}
3885
3886///
3887/// Type derived for non-terminal LitStr1Start
3888///
3889#[allow(dead_code)]
3890#[derive(Debug, Clone)]
3891pub struct LitStr1Start<'t> {
3892    pub lit_str1_start: Token<'t>, /* <' */
3893}
3894
3895impl ToSpan for LitStr1Start<'_> {
3896    fn span(&self) -> Span {
3897        self.lit_str1_start.span()
3898    }
3899}
3900
3901///
3902/// Type derived for non-terminal LitStr2
3903///
3904#[allow(dead_code)]
3905#[derive(Debug, Clone)]
3906pub struct LitStr2<'t> {
3907    pub lit_str2_start: LitStr2Start<'t>,
3908    pub lit_str2_list: Vec<LitStr2List<'t>>,
3909    pub lit_str2_end: LitStr2End<'t>,
3910}
3911
3912impl ToSpan for LitStr2<'_> {
3913    fn span(&self) -> Span {
3914        self.lit_str2_start.span()
3915            + self
3916                .lit_str2_list
3917                .first()
3918                .map_or(Span::default(), |f| f.span())
3919            + self
3920                .lit_str2_list
3921                .last()
3922                .map_or(Span::default(), |l| l.span())
3923            + self.lit_str2_end.span()
3924    }
3925}
3926
3927///
3928/// Type derived for non-terminal LitStr2End
3929///
3930#[allow(dead_code)]
3931#[derive(Debug, Clone)]
3932pub struct LitStr2End<'t> {
3933    pub lit_str2_end: Token<'t>, /* '>> */
3934}
3935
3936impl ToSpan for LitStr2End<'_> {
3937    fn span(&self) -> Span {
3938        self.lit_str2_end.span()
3939    }
3940}
3941
3942///
3943/// Type derived for non-terminal LitStr2List
3944///
3945#[allow(dead_code)]
3946#[derive(Debug, Clone)]
3947pub struct LitStr2List<'t> {
3948    pub lit_str2_list_group: LitStr2ListGroup<'t>,
3949}
3950
3951impl ToSpan for LitStr2List<'_> {
3952    fn span(&self) -> Span {
3953        self.lit_str2_list_group.span()
3954    }
3955}
3956
3957///
3958/// Type derived for non-terminal LitStr2ListGroup
3959///
3960#[allow(dead_code)]
3961#[derive(Debug, Clone)]
3962pub enum LitStr2ListGroup<'t> {
3963    NoSQuote(LitStr2ListGroupNoSQuote<'t>),
3964    SQuote(LitStr2ListGroupSQuote<'t>),
3965}
3966
3967impl ToSpan for LitStr2ListGroup<'_> {
3968    fn span(&self) -> Span {
3969        match self {
3970            LitStr2ListGroup::NoSQuote(v) => v.span(),
3971            LitStr2ListGroup::SQuote(v) => v.span(),
3972        }
3973    }
3974}
3975
3976///
3977/// Type derived for non-terminal LitStr2Start
3978///
3979#[allow(dead_code)]
3980#[derive(Debug, Clone)]
3981pub struct LitStr2Start<'t> {
3982    pub lit_str2_start: Token<'t>, /* <<' */
3983}
3984
3985impl ToSpan for LitStr2Start<'_> {
3986    fn span(&self) -> Span {
3987        self.lit_str2_start.span()
3988    }
3989}
3990
3991///
3992/// Type derived for non-terminal LitStr3
3993///
3994#[allow(dead_code)]
3995#[derive(Debug, Clone)]
3996pub struct LitStr3<'t> {
3997    pub lit_str3_start: LitStr3Start<'t>,
3998    pub lit_str3_list: Vec<LitStr3List<'t>>,
3999    pub lit_str3_end: LitStr3End<'t>,
4000}
4001
4002impl ToSpan for LitStr3<'_> {
4003    fn span(&self) -> Span {
4004        self.lit_str3_start.span()
4005            + self
4006                .lit_str3_list
4007                .first()
4008                .map_or(Span::default(), |f| f.span())
4009            + self
4010                .lit_str3_list
4011                .last()
4012                .map_or(Span::default(), |l| l.span())
4013            + self.lit_str3_end.span()
4014    }
4015}
4016
4017///
4018/// Type derived for non-terminal LitStr3End
4019///
4020#[allow(dead_code)]
4021#[derive(Debug, Clone)]
4022pub struct LitStr3End<'t> {
4023    pub lit_str3_end: Token<'t>, /* '>>> */
4024}
4025
4026impl ToSpan for LitStr3End<'_> {
4027    fn span(&self) -> Span {
4028        self.lit_str3_end.span()
4029    }
4030}
4031
4032///
4033/// Type derived for non-terminal LitStr3List
4034///
4035#[allow(dead_code)]
4036#[derive(Debug, Clone)]
4037pub struct LitStr3List<'t> {
4038    pub lit_str3_list_group: LitStr3ListGroup<'t>,
4039}
4040
4041impl ToSpan for LitStr3List<'_> {
4042    fn span(&self) -> Span {
4043        self.lit_str3_list_group.span()
4044    }
4045}
4046
4047///
4048/// Type derived for non-terminal LitStr3ListGroup
4049///
4050#[allow(dead_code)]
4051#[derive(Debug, Clone)]
4052pub enum LitStr3ListGroup<'t> {
4053    NoSQuote(LitStr3ListGroupNoSQuote<'t>),
4054    SQuote(LitStr3ListGroupSQuote<'t>),
4055}
4056
4057impl ToSpan for LitStr3ListGroup<'_> {
4058    fn span(&self) -> Span {
4059        match self {
4060            LitStr3ListGroup::NoSQuote(v) => v.span(),
4061            LitStr3ListGroup::SQuote(v) => v.span(),
4062        }
4063    }
4064}
4065
4066///
4067/// Type derived for non-terminal LitStr3Start
4068///
4069#[allow(dead_code)]
4070#[derive(Debug, Clone)]
4071pub struct LitStr3Start<'t> {
4072    pub lit_str3_start: Token<'t>, /* <<<' */
4073}
4074
4075impl ToSpan for LitStr3Start<'_> {
4076    fn span(&self) -> Span {
4077        self.lit_str3_start.span()
4078    }
4079}
4080
4081///
4082/// Type derived for non-terminal MapBind
4083///
4084#[allow(dead_code)]
4085#[derive(Debug, Clone)]
4086pub struct MapBind<'t> {
4087    pub map_bind: Token<'t>, /* => */
4088}
4089
4090impl ToSpan for MapBind<'_> {
4091    fn span(&self) -> Span {
4092        self.map_bind.span()
4093    }
4094}
4095
4096///
4097/// Type derived for non-terminal NaN
4098///
4099#[allow(dead_code)]
4100#[derive(Debug, Clone)]
4101pub struct NaN<'t> {
4102    pub na_n: Token<'t>, /* [Nn]a[Nn] */
4103}
4104
4105impl ToSpan for NaN<'_> {
4106    fn span(&self) -> Span {
4107        self.na_n.span()
4108    }
4109}
4110
4111///
4112/// Type derived for non-terminal NewlineBind
4113///
4114#[allow(dead_code)]
4115#[derive(Debug, Clone)]
4116pub struct NewlineBind<'t> {
4117    pub newline_bind: Token<'t>, /* (\r\n|\r|\n)*= */
4118}
4119
4120impl ToSpan for NewlineBind<'_> {
4121    fn span(&self) -> Span {
4122        self.newline_bind.span()
4123    }
4124}
4125
4126///
4127/// Type derived for non-terminal NewlineHead
4128///
4129#[allow(dead_code)]
4130#[derive(Debug, Clone)]
4131pub struct NewlineHead<'t> {
4132    pub grammar_newline: GrammarNewline<'t>,
4133    pub newline_head_opt: Option<NewlineHeadOpt<'t>>,
4134}
4135
4136impl ToSpan for NewlineHead<'_> {
4137    fn span(&self) -> Span {
4138        self.grammar_newline.span()
4139            + self
4140                .newline_head_opt
4141                .as_ref()
4142                .map_or(Span::default(), |o| o.span())
4143    }
4144}
4145
4146///
4147/// Type derived for non-terminal NewlineHeadOpt
4148///
4149#[allow(dead_code)]
4150#[derive(Debug, Clone)]
4151pub struct NewlineHeadOpt<'t> {
4152    pub flat_root_binding: FlatRootBinding<'t>,
4153}
4154
4155impl ToSpan for NewlineHeadOpt<'_> {
4156    fn span(&self) -> Span {
4157        self.flat_root_binding.span()
4158    }
4159}
4160
4161///
4162/// Type derived for non-terminal NewlineTextStart
4163///
4164#[allow(dead_code)]
4165#[derive(Debug, Clone)]
4166pub struct NewlineTextStart<'t> {
4167    pub newline_text_start: Token<'t>, /* (\r\n|\r|\n)*: */
4168}
4169
4170impl ToSpan for NewlineTextStart<'_> {
4171    fn span(&self) -> Span {
4172        self.newline_text_start.span()
4173    }
4174}
4175
4176///
4177/// Type derived for non-terminal NoBacktick
4178///
4179#[allow(dead_code)]
4180#[derive(Debug, Clone)]
4181pub struct NoBacktick<'t> {
4182    pub no_backtick: Token<'t>, /* [^`]+ */
4183}
4184
4185impl ToSpan for NoBacktick<'_> {
4186    fn span(&self) -> Span {
4187        self.no_backtick.span()
4188    }
4189}
4190
4191///
4192/// Type derived for non-terminal NoSQuote
4193///
4194#[allow(dead_code)]
4195#[derive(Debug, Clone)]
4196pub struct NoSQuote<'t> {
4197    pub no_s_quote: Token<'t>, /* [^']+ */
4198}
4199
4200impl ToSpan for NoSQuote<'_> {
4201    fn span(&self) -> Span {
4202        self.no_s_quote.span()
4203    }
4204}
4205
4206///
4207/// Type derived for non-terminal Null
4208///
4209#[allow(dead_code)]
4210#[derive(Debug, Clone)]
4211pub struct Null<'t> {
4212    pub null: Token<'t>, /* null */
4213}
4214
4215impl ToSpan for Null<'_> {
4216    fn span(&self) -> Span {
4217        self.null.span()
4218    }
4219}
4220
4221///
4222/// Type derived for non-terminal Number
4223///
4224#[allow(dead_code)]
4225#[derive(Debug, Clone)]
4226pub enum Number<'t> {
4227    Float(NumberFloat<'t>),
4228    Integer(NumberInteger<'t>),
4229    Inf(NumberInf<'t>),
4230    NaN(NumberNaN<'t>),
4231}
4232
4233impl ToSpan for Number<'_> {
4234    fn span(&self) -> Span {
4235        match self {
4236            Number::Float(v) => v.span(),
4237            Number::Integer(v) => v.span(),
4238            Number::Inf(v) => v.span(),
4239            Number::NaN(v) => v.span(),
4240        }
4241    }
4242}
4243
4244///
4245/// Type derived for non-terminal Object
4246///
4247#[allow(dead_code)]
4248#[derive(Debug, Clone)]
4249pub struct Object<'t> {
4250    pub begin: Begin<'t>,
4251    pub object_opt: Option<ObjectOpt<'t>>,
4252    pub object_list: Vec<ObjectList<'t>>,
4253    pub end: End<'t>,
4254}
4255
4256impl ToSpan for Object<'_> {
4257    fn span(&self) -> Span {
4258        self.begin.span()
4259            + self
4260                .object_opt
4261                .as_ref()
4262                .map_or(Span::default(), |o| o.span())
4263            + self
4264                .object_list
4265                .first()
4266                .map_or(Span::default(), |f| f.span())
4267            + self
4268                .object_list
4269                .last()
4270                .map_or(Span::default(), |l| l.span())
4271            + self.end.span()
4272    }
4273}
4274
4275///
4276/// Type derived for non-terminal ObjectList
4277///
4278#[allow(dead_code)]
4279#[derive(Debug, Clone)]
4280pub struct ObjectList<'t> {
4281    pub keys: Keys<'t>,
4282    pub map_bind: MapBind<'t>,
4283    pub value: Value<'t>,
4284    pub object_opt0: Option<ObjectOpt0<'t>>,
4285}
4286
4287impl ToSpan for ObjectList<'_> {
4288    fn span(&self) -> Span {
4289        self.keys.span()
4290            + self.map_bind.span()
4291            + self.value.span()
4292            + self
4293                .object_opt0
4294                .as_ref()
4295                .map_or(Span::default(), |o| o.span())
4296    }
4297}
4298
4299///
4300/// Type derived for non-terminal ObjectOpt
4301///
4302#[allow(dead_code)]
4303#[derive(Debug, Clone)]
4304pub struct ObjectOpt<'t> {
4305    pub value_binding: ValueBinding<'t>,
4306    pub object_opt1: Option<ObjectOpt1<'t>>,
4307}
4308
4309impl ToSpan for ObjectOpt<'_> {
4310    fn span(&self) -> Span {
4311        self.value_binding.span()
4312            + self
4313                .object_opt1
4314                .as_ref()
4315                .map_or(Span::default(), |o| o.span())
4316    }
4317}
4318
4319///
4320/// Type derived for non-terminal ObjectOpt0
4321///
4322#[allow(dead_code)]
4323#[derive(Debug, Clone)]
4324pub struct ObjectOpt0<'t> {
4325    pub comma: Comma<'t>,
4326}
4327
4328impl ToSpan for ObjectOpt0<'_> {
4329    fn span(&self) -> Span {
4330        self.comma.span()
4331    }
4332}
4333
4334///
4335/// Type derived for non-terminal ObjectOpt1
4336///
4337#[allow(dead_code)]
4338#[derive(Debug, Clone)]
4339pub struct ObjectOpt1<'t> {
4340    pub comma: Comma<'t>,
4341}
4342
4343impl ToSpan for ObjectOpt1<'_> {
4344    fn span(&self) -> Span {
4345        self.comma.span()
4346    }
4347}
4348
4349///
4350/// Type derived for non-terminal RParen
4351///
4352#[allow(dead_code)]
4353#[derive(Debug, Clone)]
4354pub struct RParen<'t> {
4355    pub r_paren: Token<'t>, /* ) */
4356}
4357
4358impl ToSpan for RParen<'_> {
4359    fn span(&self) -> Span {
4360        self.r_paren.span()
4361    }
4362}
4363
4364///
4365/// Type derived for non-terminal RootBinding
4366///
4367#[allow(dead_code)]
4368#[derive(Debug, Clone)]
4369pub enum RootBinding<'t> {
4370    RootValueBinding(RootBindingRootValueBinding<'t>),
4371    RootTextBinding(RootBindingRootTextBinding<'t>),
4372}
4373
4374impl ToSpan for RootBinding<'_> {
4375    fn span(&self) -> Span {
4376        match self {
4377            RootBinding::RootValueBinding(v) => v.span(),
4378            RootBinding::RootTextBinding(v) => v.span(),
4379        }
4380    }
4381}
4382
4383///
4384/// Type derived for non-terminal RootTextBinding
4385///
4386#[allow(dead_code)]
4387#[derive(Debug, Clone)]
4388pub struct RootTextBinding<'t> {
4389    pub newline_text_start: NewlineTextStart<'t>,
4390    pub root_text_binding_opt: Option<RootTextBindingOpt>,
4391    pub root_text_binding_opt0: Option<RootTextBindingOpt0<'t>>,
4392    pub root_text_binding_opt1: Option<RootTextBindingOpt1<'t>>,
4393}
4394
4395impl ToSpan for RootTextBinding<'_> {
4396    fn span(&self) -> Span {
4397        self.newline_text_start.span()
4398            + self
4399                .root_text_binding_opt
4400                .as_ref()
4401                .map_or(Span::default(), |o| o.span())
4402            + self
4403                .root_text_binding_opt0
4404                .as_ref()
4405                .map_or(Span::default(), |o| o.span())
4406            + self
4407                .root_text_binding_opt1
4408                .as_ref()
4409                .map_or(Span::default(), |o| o.span())
4410    }
4411}
4412
4413///
4414/// Type derived for non-terminal RootTextBindingOpt
4415///
4416#[allow(dead_code)]
4417#[derive(Debug, Clone)]
4418pub struct RootTextBindingOpt {}
4419
4420impl ToSpan for RootTextBindingOpt {
4421    fn span(&self) -> Span {
4422        Span::default()
4423    }
4424}
4425
4426///
4427/// Type derived for non-terminal RootTextBindingOpt0
4428///
4429#[allow(dead_code)]
4430#[derive(Debug, Clone)]
4431pub struct RootTextBindingOpt0<'t> {
4432    pub text: Text<'t>,
4433}
4434
4435impl ToSpan for RootTextBindingOpt0<'_> {
4436    fn span(&self) -> Span {
4437        self.text.span()
4438    }
4439}
4440
4441///
4442/// Type derived for non-terminal RootTextBindingOpt1
4443///
4444#[allow(dead_code)]
4445#[derive(Debug, Clone)]
4446pub struct RootTextBindingOpt1<'t> {
4447    pub grammar_newline: GrammarNewline<'t>,
4448}
4449
4450impl ToSpan for RootTextBindingOpt1<'_> {
4451    fn span(&self) -> Span {
4452        self.grammar_newline.span()
4453    }
4454}
4455
4456///
4457/// Type derived for non-terminal RootValueBinding
4458///
4459#[allow(dead_code)]
4460#[derive(Debug, Clone)]
4461pub struct RootValueBinding<'t> {
4462    pub newline_bind: NewlineBind<'t>,
4463    pub value: Value<'t>,
4464}
4465
4466impl ToSpan for RootValueBinding<'_> {
4467    fn span(&self) -> Span {
4468        self.newline_bind.span() + self.value.span()
4469    }
4470}
4471
4472///
4473/// Type derived for non-terminal SQuote
4474///
4475#[allow(dead_code)]
4476#[derive(Debug, Clone)]
4477pub struct SQuote<'t> {
4478    pub s_quote: Token<'t>, /* ' */
4479}
4480
4481impl ToSpan for SQuote<'_> {
4482    fn span(&self) -> Span {
4483        self.s_quote.span()
4484    }
4485}
4486
4487///
4488/// Type derived for non-terminal Section
4489///
4490#[allow(dead_code)]
4491#[derive(Debug, Clone)]
4492pub struct Section<'t> {
4493    pub at: At<'t>,
4494    pub keys: Keys<'t>,
4495    pub section_body: SectionBody<'t>,
4496}
4497
4498impl ToSpan for Section<'_> {
4499    fn span(&self) -> Span {
4500        self.at.span() + self.keys.span() + self.section_body.span()
4501    }
4502}
4503
4504///
4505/// Type derived for non-terminal SectionBinding
4506///
4507#[allow(dead_code)]
4508#[derive(Debug, Clone)]
4509pub struct SectionBinding<'t> {
4510    pub begin: Begin<'t>,
4511    pub eure: Eure<'t>,
4512    pub end: End<'t>,
4513}
4514
4515impl ToSpan for SectionBinding<'_> {
4516    fn span(&self) -> Span {
4517        self.begin.span() + self.eure.span() + self.end.span()
4518    }
4519}
4520
4521///
4522/// Type derived for non-terminal SectionBody
4523///
4524#[allow(dead_code)]
4525#[derive(Debug, Clone)]
4526pub enum SectionBody<'t> {
4527    SectionBodyOpt(SectionBodySectionBodyOpt<'t>),
4528    BlockBody(SectionBodyBlockBody<'t>),
4529}
4530
4531impl ToSpan for SectionBody<'_> {
4532    fn span(&self) -> Span {
4533        match self {
4534            SectionBody::SectionBodyOpt(v) => v.span(),
4535            SectionBody::BlockBody(v) => v.span(),
4536        }
4537    }
4538}
4539
4540///
4541/// Type derived for non-terminal SectionBodyOpt
4542///
4543#[allow(dead_code)]
4544#[derive(Debug, Clone)]
4545pub struct SectionBodyOpt<'t> {
4546    pub flat_body: FlatBody<'t>,
4547}
4548
4549impl ToSpan for SectionBodyOpt<'_> {
4550    fn span(&self) -> Span {
4551        self.flat_body.span()
4552    }
4553}
4554
4555///
4556/// Type derived for non-terminal SectionHead
4557///
4558#[allow(dead_code)]
4559#[derive(Debug, Clone)]
4560pub enum SectionHead<'t> {
4561    RootBinding(SectionHeadRootBinding<'t>),
4562    NewlineHead(SectionHeadNewlineHead<'t>),
4563}
4564
4565impl ToSpan for SectionHead<'_> {
4566    fn span(&self) -> Span {
4567        match self {
4568            SectionHead::RootBinding(v) => v.span(),
4569            SectionHead::NewlineHead(v) => v.span(),
4570        }
4571    }
4572}
4573
4574///
4575/// Type derived for non-terminal Str
4576///
4577#[allow(dead_code)]
4578#[derive(Debug, Clone)]
4579pub struct Str<'t> {
4580    pub str: Token<'t>, /* "([^"]|\\")*" */
4581}
4582
4583impl ToSpan for Str<'_> {
4584    fn span(&self) -> Span {
4585        self.str.span()
4586    }
4587}
4588
4589///
4590/// Type derived for non-terminal String
4591///
4592#[allow(dead_code)]
4593#[derive(Debug, Clone)]
4594pub enum String<'t> {
4595    Str(StringStr<'t>),
4596    LitStr(StringLitStr<'t>),
4597    LitStr1(StringLitStr1<'t>),
4598    LitStr2(StringLitStr2<'t>),
4599    LitStr3(StringLitStr3<'t>),
4600}
4601
4602impl ToSpan for String<'_> {
4603    fn span(&self) -> Span {
4604        match self {
4605            String::Str(v) => v.span(),
4606            String::LitStr(v) => v.span(),
4607            String::LitStr1(v) => v.span(),
4608            String::LitStr2(v) => v.span(),
4609            String::LitStr3(v) => v.span(),
4610        }
4611    }
4612}
4613
4614///
4615/// Type derived for non-terminal Strings
4616///
4617#[allow(dead_code)]
4618#[derive(Debug, Clone)]
4619pub struct Strings<'t> {
4620    pub string: String<'t>,
4621    pub strings_list: Vec<StringsList<'t>>,
4622}
4623
4624impl ToSpan for Strings<'_> {
4625    fn span(&self) -> Span {
4626        self.string.span()
4627            + self
4628                .strings_list
4629                .first()
4630                .map_or(Span::default(), |f| f.span())
4631            + self
4632                .strings_list
4633                .last()
4634                .map_or(Span::default(), |l| l.span())
4635    }
4636}
4637
4638///
4639/// Type derived for non-terminal StringsList
4640///
4641#[allow(dead_code)]
4642#[derive(Debug, Clone)]
4643pub struct StringsList<'t> {
4644    pub r#continue: Continue<'t>,
4645    pub string: String<'t>,
4646}
4647
4648impl ToSpan for StringsList<'_> {
4649    fn span(&self) -> Span {
4650        self.r#continue.span() + self.string.span()
4651    }
4652}
4653
4654///
4655/// Type derived for non-terminal Text
4656///
4657#[allow(dead_code)]
4658#[derive(Debug, Clone)]
4659pub struct Text<'t> {
4660    pub text: Token<'t>, /* [^\r\n]* */
4661}
4662
4663impl ToSpan for Text<'_> {
4664    fn span(&self) -> Span {
4665        self.text.span()
4666    }
4667}
4668
4669///
4670/// Type derived for non-terminal TextBinding
4671///
4672#[allow(dead_code)]
4673#[derive(Debug, Clone)]
4674pub struct TextBinding<'t> {
4675    pub text_start: TextStart<'t>,
4676    pub text_binding_opt: Option<TextBindingOpt>,
4677    pub text_binding_opt0: Option<TextBindingOpt0<'t>>,
4678    pub text_binding_opt1: Option<TextBindingOpt1<'t>>,
4679}
4680
4681impl ToSpan for TextBinding<'_> {
4682    fn span(&self) -> Span {
4683        self.text_start.span()
4684            + self
4685                .text_binding_opt
4686                .as_ref()
4687                .map_or(Span::default(), |o| o.span())
4688            + self
4689                .text_binding_opt0
4690                .as_ref()
4691                .map_or(Span::default(), |o| o.span())
4692            + self
4693                .text_binding_opt1
4694                .as_ref()
4695                .map_or(Span::default(), |o| o.span())
4696    }
4697}
4698
4699///
4700/// Type derived for non-terminal TextBindingOpt
4701///
4702#[allow(dead_code)]
4703#[derive(Debug, Clone)]
4704pub struct TextBindingOpt {}
4705
4706impl ToSpan for TextBindingOpt {
4707    fn span(&self) -> Span {
4708        Span::default()
4709    }
4710}
4711
4712///
4713/// Type derived for non-terminal TextBindingOpt0
4714///
4715#[allow(dead_code)]
4716#[derive(Debug, Clone)]
4717pub struct TextBindingOpt0<'t> {
4718    pub text: Text<'t>,
4719}
4720
4721impl ToSpan for TextBindingOpt0<'_> {
4722    fn span(&self) -> Span {
4723        self.text.span()
4724    }
4725}
4726
4727///
4728/// Type derived for non-terminal TextBindingOpt1
4729///
4730#[allow(dead_code)]
4731#[derive(Debug, Clone)]
4732pub struct TextBindingOpt1<'t> {
4733    pub grammar_newline: GrammarNewline<'t>,
4734}
4735
4736impl ToSpan for TextBindingOpt1<'_> {
4737    fn span(&self) -> Span {
4738        self.grammar_newline.span()
4739    }
4740}
4741
4742///
4743/// Type derived for non-terminal TextStart
4744///
4745#[allow(dead_code)]
4746#[derive(Debug, Clone)]
4747pub struct TextStart<'t> {
4748    pub text_start: Token<'t>, /* : */
4749}
4750
4751impl ToSpan for TextStart<'_> {
4752    fn span(&self) -> Span {
4753        self.text_start.span()
4754    }
4755}
4756
4757///
4758/// Type derived for non-terminal TopLevelBinding
4759///
4760#[allow(dead_code)]
4761#[derive(Debug, Clone)]
4762pub enum TopLevelBinding<'t> {
4763    ValueBinding(TopLevelBindingValueBinding<'t>),
4764    TextBinding(TopLevelBindingTextBinding<'t>),
4765}
4766
4767impl ToSpan for TopLevelBinding<'_> {
4768    fn span(&self) -> Span {
4769        match self {
4770            TopLevelBinding::ValueBinding(v) => v.span(),
4771            TopLevelBinding::TextBinding(v) => v.span(),
4772        }
4773    }
4774}
4775
4776///
4777/// Type derived for non-terminal True
4778///
4779#[allow(dead_code)]
4780#[derive(Debug, Clone)]
4781pub struct True<'t> {
4782    pub r#true: Token<'t>, /* true */
4783}
4784
4785impl ToSpan for True<'_> {
4786    fn span(&self) -> Span {
4787        self.r#true.span()
4788    }
4789}
4790
4791///
4792/// Type derived for non-terminal Tuple
4793///
4794#[allow(dead_code)]
4795#[derive(Debug, Clone)]
4796pub struct Tuple<'t> {
4797    pub l_paren: LParen<'t>,
4798    pub tuple_opt: Option<TupleOpt<'t>>,
4799    pub r_paren: RParen<'t>,
4800}
4801
4802impl ToSpan for Tuple<'_> {
4803    fn span(&self) -> Span {
4804        self.l_paren.span()
4805            + self
4806                .tuple_opt
4807                .as_ref()
4808                .map_or(Span::default(), |o| o.span())
4809            + self.r_paren.span()
4810    }
4811}
4812
4813///
4814/// Type derived for non-terminal TupleElements
4815///
4816#[allow(dead_code)]
4817#[derive(Debug, Clone)]
4818pub struct TupleElements<'t> {
4819    pub value: Value<'t>,
4820    pub tuple_elements_opt: Option<Box<TupleElementsOpt<'t>>>,
4821}
4822
4823impl ToSpan for TupleElements<'_> {
4824    fn span(&self) -> Span {
4825        self.value.span()
4826            + self
4827                .tuple_elements_opt
4828                .as_ref()
4829                .map_or(Span::default(), |o| o.span())
4830    }
4831}
4832
4833///
4834/// Type derived for non-terminal TupleElementsOpt
4835///
4836#[allow(dead_code)]
4837#[derive(Debug, Clone)]
4838pub struct TupleElementsOpt<'t> {
4839    pub tuple_elements_tail: TupleElementsTail<'t>,
4840}
4841
4842impl ToSpan for TupleElementsOpt<'_> {
4843    fn span(&self) -> Span {
4844        self.tuple_elements_tail.span()
4845    }
4846}
4847
4848///
4849/// Type derived for non-terminal TupleElementsTail
4850///
4851#[allow(dead_code)]
4852#[derive(Debug, Clone)]
4853pub struct TupleElementsTail<'t> {
4854    pub comma: Comma<'t>,
4855    pub tuple_elements_tail_opt: Option<TupleElementsTailOpt<'t>>,
4856}
4857
4858impl ToSpan for TupleElementsTail<'_> {
4859    fn span(&self) -> Span {
4860        self.comma.span()
4861            + self
4862                .tuple_elements_tail_opt
4863                .as_ref()
4864                .map_or(Span::default(), |o| o.span())
4865    }
4866}
4867
4868///
4869/// Type derived for non-terminal TupleElementsTailOpt
4870///
4871#[allow(dead_code)]
4872#[derive(Debug, Clone)]
4873pub struct TupleElementsTailOpt<'t> {
4874    pub tuple_elements: TupleElements<'t>,
4875}
4876
4877impl ToSpan for TupleElementsTailOpt<'_> {
4878    fn span(&self) -> Span {
4879        self.tuple_elements.span()
4880    }
4881}
4882
4883///
4884/// Type derived for non-terminal TupleIndex
4885///
4886#[allow(dead_code)]
4887#[derive(Debug, Clone)]
4888pub struct TupleIndex<'t> {
4889    pub hash: Token<'t>, /* # */
4890    pub integer: Integer<'t>,
4891}
4892
4893impl ToSpan for TupleIndex<'_> {
4894    fn span(&self) -> Span {
4895        self.hash.span() + self.integer.span()
4896    }
4897}
4898
4899///
4900/// Type derived for non-terminal TupleOpt
4901///
4902#[allow(dead_code)]
4903#[derive(Debug, Clone)]
4904pub struct TupleOpt<'t> {
4905    pub tuple_elements: TupleElements<'t>,
4906}
4907
4908impl ToSpan for TupleOpt<'_> {
4909    fn span(&self) -> Span {
4910        self.tuple_elements.span()
4911    }
4912}
4913
4914///
4915/// Type derived for non-terminal Value
4916///
4917#[allow(dead_code)]
4918#[derive(Debug, Clone)]
4919pub enum Value<'t> {
4920    Object(ValueObject<'t>),
4921    Array(ValueArray<'t>),
4922    Tuple(ValueTuple<'t>),
4923    Number(ValueNumber<'t>),
4924    Boolean(ValueBoolean<'t>),
4925    Null(ValueNull<'t>),
4926    Strings(ValueStrings<'t>),
4927    Hole(ValueHole<'t>),
4928    CodeBlock(ValueCodeBlock<'t>),
4929    InlineCode(ValueInlineCode<'t>),
4930}
4931
4932impl ToSpan for Value<'_> {
4933    fn span(&self) -> Span {
4934        match self {
4935            Value::Object(v) => v.span(),
4936            Value::Array(v) => v.span(),
4937            Value::Tuple(v) => v.span(),
4938            Value::Number(v) => v.span(),
4939            Value::Boolean(v) => v.span(),
4940            Value::Null(v) => v.span(),
4941            Value::Strings(v) => v.span(),
4942            Value::Hole(v) => v.span(),
4943            Value::CodeBlock(v) => v.span(),
4944            Value::InlineCode(v) => v.span(),
4945        }
4946    }
4947}
4948
4949///
4950/// Type derived for non-terminal ValueBinding
4951///
4952#[allow(dead_code)]
4953#[derive(Debug, Clone)]
4954pub struct ValueBinding<'t> {
4955    pub bind: Bind<'t>,
4956    pub value: Value<'t>,
4957}
4958
4959impl ToSpan for ValueBinding<'_> {
4960    fn span(&self) -> Span {
4961        self.bind.span() + self.value.span()
4962    }
4963}
4964
4965///
4966/// Type derived for non-terminal Ws
4967///
4968#[allow(dead_code)]
4969#[derive(Debug, Clone)]
4970pub struct Ws<'t> {
4971    pub ws: Token<'t>, /* [\s--\r\n]+ */
4972}
4973
4974impl ToSpan for Ws<'_> {
4975    fn span(&self) -> Span {
4976        self.ws.span()
4977    }
4978}
4979
4980// -------------------------------------------------------------------------------------------------
4981
4982///
4983/// Deduced ASTType of expanded grammar
4984///
4985#[allow(dead_code)]
4986#[derive(Debug, Clone)]
4987pub enum ASTType<'t> {
4988    Array(Array<'t>),
4989    ArrayBegin(ArrayBegin<'t>),
4990    ArrayElements(ArrayElements<'t>),
4991    ArrayElementsOpt(Option<ArrayElementsOpt<'t>>),
4992    ArrayElementsTail(ArrayElementsTail<'t>),
4993    ArrayElementsTailOpt(Option<ArrayElementsTailOpt<'t>>),
4994    ArrayEnd(ArrayEnd<'t>),
4995    ArrayMarker(ArrayMarker<'t>),
4996    ArrayMarkerOpt(Option<ArrayMarkerOpt<'t>>),
4997    ArrayMarkerOptGroup(ArrayMarkerOptGroup<'t>),
4998    ArrayOpt(Option<ArrayOpt<'t>>),
4999    At(At<'t>),
5000    Backtick2(Backtick2<'t>),
5001    Backtick3(Backtick3<'t>),
5002    Backtick4(Backtick4<'t>),
5003    Backtick5(Backtick5<'t>),
5004    BacktickDelim(BacktickDelim<'t>),
5005    Begin(Begin<'t>),
5006    Bind(Bind<'t>),
5007    Binding(Binding<'t>),
5008    BindingRhs(BindingRhs<'t>),
5009    BlockBody(BlockBody<'t>),
5010    Boolean(Boolean<'t>),
5011    Caret(Caret<'t>),
5012    CodeBlock(CodeBlock<'t>),
5013    CodeBlock3(CodeBlock3<'t>),
5014    CodeBlock3List(Vec<CodeBlock3List<'t>>),
5015    CodeBlock3ListGroup(CodeBlock3ListGroup<'t>),
5016    CodeBlock4(CodeBlock4<'t>),
5017    CodeBlock4List(Vec<CodeBlock4List<'t>>),
5018    CodeBlock4ListGroup(CodeBlock4ListGroup<'t>),
5019    CodeBlock5(CodeBlock5<'t>),
5020    CodeBlock5List(Vec<CodeBlock5List<'t>>),
5021    CodeBlock5ListGroup(CodeBlock5ListGroup<'t>),
5022    CodeBlock6(CodeBlock6<'t>),
5023    CodeBlock6List(Vec<CodeBlock6List<'t>>),
5024    CodeBlock6ListGroup(CodeBlock6ListGroup<'t>),
5025    CodeBlockEnd3(CodeBlockEnd3<'t>),
5026    CodeBlockEnd4(CodeBlockEnd4<'t>),
5027    CodeBlockEnd5(CodeBlockEnd5<'t>),
5028    CodeBlockEnd6(CodeBlockEnd6<'t>),
5029    CodeBlockStart3(CodeBlockStart3<'t>),
5030    CodeBlockStart4(CodeBlockStart4<'t>),
5031    CodeBlockStart5(CodeBlockStart5<'t>),
5032    CodeBlockStart6(CodeBlockStart6<'t>),
5033    Comma(Comma<'t>),
5034    Continue(Continue<'t>),
5035    DelimCode(DelimCode<'t>),
5036    DelimCode1(DelimCode1<'t>),
5037    DelimCode1List(Vec<DelimCode1List<'t>>),
5038    DelimCode1ListGroup(DelimCode1ListGroup<'t>),
5039    DelimCode2(DelimCode2<'t>),
5040    DelimCode2List(Vec<DelimCode2List<'t>>),
5041    DelimCode2ListGroup(DelimCode2ListGroup<'t>),
5042    DelimCode3(DelimCode3<'t>),
5043    DelimCode3List(Vec<DelimCode3List<'t>>),
5044    DelimCode3ListGroup(DelimCode3ListGroup<'t>),
5045    DelimCodeEnd1(DelimCodeEnd1<'t>),
5046    DelimCodeEnd2(DelimCodeEnd2<'t>),
5047    DelimCodeEnd3(DelimCodeEnd3<'t>),
5048    DelimCodeStart1(DelimCodeStart1<'t>),
5049    DelimCodeStart2(DelimCodeStart2<'t>),
5050    DelimCodeStart3(DelimCodeStart3<'t>),
5051    Dot(Dot<'t>),
5052    DotKey(DotKey<'t>),
5053    End(End<'t>),
5054    Eure(Eure<'t>),
5055    EureList(Vec<EureList<'t>>),
5056    EureList0(Vec<EureList0<'t>>),
5057    EureOpt(Option<EureOpt<'t>>),
5058    Ext(Ext<'t>),
5059    ExtensionNameSpace(ExtensionNameSpace<'t>),
5060    False(False<'t>),
5061    FirstKey(FirstKey<'t>),
5062    FlatBody(FlatBody<'t>),
5063    FlatBodyList(Vec<FlatBodyList<'t>>),
5064    FlatRootBinding(FlatRootBinding<'t>),
5065    Float(Float<'t>),
5066    GrammarNewline(GrammarNewline<'t>),
5067    Hole(Hole<'t>),
5068    Ident(Ident<'t>),
5069    Inf(Inf<'t>),
5070    InlineCode(InlineCode<'t>),
5071    InlineCode1(InlineCode1<'t>),
5072    Integer(Integer<'t>),
5073    Key(Key<'t>),
5074    KeyIdent(KeyIdent<'t>),
5075    KeyTail(KeyTail<'t>),
5076    KeyTuple(KeyTuple<'t>),
5077    KeyTupleElements(KeyTupleElements<'t>),
5078    KeyTupleElementsOpt(Option<KeyTupleElementsOpt<'t>>),
5079    KeyTupleElementsTail(KeyTupleElementsTail<'t>),
5080    KeyTupleElementsTailOpt(Option<KeyTupleElementsTailOpt<'t>>),
5081    KeyTupleOpt(Option<KeyTupleOpt<'t>>),
5082    KeyValue(KeyValue<'t>),
5083    Keys(Keys<'t>),
5084    KeysList(Vec<KeysList<'t>>),
5085    LParen(LParen<'t>),
5086    LitStr(LitStr<'t>),
5087    LitStr1(LitStr1<'t>),
5088    LitStr1End(LitStr1End<'t>),
5089    LitStr1List(Vec<LitStr1List<'t>>),
5090    LitStr1ListGroup(LitStr1ListGroup<'t>),
5091    LitStr1Start(LitStr1Start<'t>),
5092    LitStr2(LitStr2<'t>),
5093    LitStr2End(LitStr2End<'t>),
5094    LitStr2List(Vec<LitStr2List<'t>>),
5095    LitStr2ListGroup(LitStr2ListGroup<'t>),
5096    LitStr2Start(LitStr2Start<'t>),
5097    LitStr3(LitStr3<'t>),
5098    LitStr3End(LitStr3End<'t>),
5099    LitStr3List(Vec<LitStr3List<'t>>),
5100    LitStr3ListGroup(LitStr3ListGroup<'t>),
5101    LitStr3Start(LitStr3Start<'t>),
5102    MapBind(MapBind<'t>),
5103    NaN(NaN<'t>),
5104    NewlineBind(NewlineBind<'t>),
5105    NewlineHead(NewlineHead<'t>),
5106    NewlineHeadOpt(Option<NewlineHeadOpt<'t>>),
5107    NewlineTextStart(NewlineTextStart<'t>),
5108    NoBacktick(NoBacktick<'t>),
5109    NoSQuote(NoSQuote<'t>),
5110    Null(Null<'t>),
5111    Number(Number<'t>),
5112    Object(Object<'t>),
5113    ObjectList(Vec<ObjectList<'t>>),
5114    ObjectOpt(Option<ObjectOpt<'t>>),
5115    ObjectOpt0(Option<ObjectOpt0<'t>>),
5116    ObjectOpt1(Option<ObjectOpt1<'t>>),
5117    RParen(RParen<'t>),
5118    RootBinding(RootBinding<'t>),
5119    RootTextBinding(RootTextBinding<'t>),
5120    RootTextBindingOpt(Option<RootTextBindingOpt>),
5121    RootTextBindingOpt0(Option<RootTextBindingOpt0<'t>>),
5122    RootTextBindingOpt1(Option<RootTextBindingOpt1<'t>>),
5123    RootValueBinding(RootValueBinding<'t>),
5124    SQuote(SQuote<'t>),
5125    Section(Section<'t>),
5126    SectionBinding(SectionBinding<'t>),
5127    SectionBody(SectionBody<'t>),
5128    SectionBodyOpt(Option<SectionBodyOpt<'t>>),
5129    SectionHead(SectionHead<'t>),
5130    Str(Str<'t>),
5131    String(String<'t>),
5132    Strings(Strings<'t>),
5133    StringsList(Vec<StringsList<'t>>),
5134    Text(Text<'t>),
5135    TextBinding(TextBinding<'t>),
5136    TextBindingOpt(Option<TextBindingOpt>),
5137    TextBindingOpt0(Option<TextBindingOpt0<'t>>),
5138    TextBindingOpt1(Option<TextBindingOpt1<'t>>),
5139    TextStart(TextStart<'t>),
5140    TopLevelBinding(TopLevelBinding<'t>),
5141    True(True<'t>),
5142    Tuple(Tuple<'t>),
5143    TupleElements(TupleElements<'t>),
5144    TupleElementsOpt(Option<TupleElementsOpt<'t>>),
5145    TupleElementsTail(TupleElementsTail<'t>),
5146    TupleElementsTailOpt(Option<TupleElementsTailOpt<'t>>),
5147    TupleIndex(TupleIndex<'t>),
5148    TupleOpt(Option<TupleOpt<'t>>),
5149    Value(Value<'t>),
5150    ValueBinding(ValueBinding<'t>),
5151    Ws(Ws<'t>),
5152}
5153impl ToSpan for ASTType<'_> {
5154    fn span(&self) -> Span {
5155        match self {
5156            ASTType::Array(v) => v.span(),
5157            ASTType::ArrayBegin(v) => v.span(),
5158            ASTType::ArrayElements(v) => v.span(),
5159            ASTType::ArrayElementsOpt(o) => o.as_ref().map_or(Span::default(), |o| o.span()),
5160            ASTType::ArrayElementsTail(v) => v.span(),
5161            ASTType::ArrayElementsTailOpt(o) => o.as_ref().map_or(Span::default(), |o| o.span()),
5162            ASTType::ArrayEnd(v) => v.span(),
5163            ASTType::ArrayMarker(v) => v.span(),
5164            ASTType::ArrayMarkerOpt(o) => o.as_ref().map_or(Span::default(), |o| o.span()),
5165            ASTType::ArrayMarkerOptGroup(v) => v.span(),
5166            ASTType::ArrayOpt(o) => o.as_ref().map_or(Span::default(), |o| o.span()),
5167            ASTType::At(v) => v.span(),
5168            ASTType::Backtick2(v) => v.span(),
5169            ASTType::Backtick3(v) => v.span(),
5170            ASTType::Backtick4(v) => v.span(),
5171            ASTType::Backtick5(v) => v.span(),
5172            ASTType::BacktickDelim(v) => v.span(),
5173            ASTType::Begin(v) => v.span(),
5174            ASTType::Bind(v) => v.span(),
5175            ASTType::Binding(v) => v.span(),
5176            ASTType::BindingRhs(v) => v.span(),
5177            ASTType::BlockBody(v) => v.span(),
5178            ASTType::Boolean(v) => v.span(),
5179            ASTType::Caret(v) => v.span(),
5180            ASTType::CodeBlock(v) => v.span(),
5181            ASTType::CodeBlock3(v) => v.span(),
5182            ASTType::CodeBlock3List(v) => {
5183                v.first().map_or(Span::default(), |f| f.span())
5184                    + v.last().map_or(Span::default(), |l| l.span())
5185            }
5186            ASTType::CodeBlock3ListGroup(v) => v.span(),
5187            ASTType::CodeBlock4(v) => v.span(),
5188            ASTType::CodeBlock4List(v) => {
5189                v.first().map_or(Span::default(), |f| f.span())
5190                    + v.last().map_or(Span::default(), |l| l.span())
5191            }
5192            ASTType::CodeBlock4ListGroup(v) => v.span(),
5193            ASTType::CodeBlock5(v) => v.span(),
5194            ASTType::CodeBlock5List(v) => {
5195                v.first().map_or(Span::default(), |f| f.span())
5196                    + v.last().map_or(Span::default(), |l| l.span())
5197            }
5198            ASTType::CodeBlock5ListGroup(v) => v.span(),
5199            ASTType::CodeBlock6(v) => v.span(),
5200            ASTType::CodeBlock6List(v) => {
5201                v.first().map_or(Span::default(), |f| f.span())
5202                    + v.last().map_or(Span::default(), |l| l.span())
5203            }
5204            ASTType::CodeBlock6ListGroup(v) => v.span(),
5205            ASTType::CodeBlockEnd3(v) => v.span(),
5206            ASTType::CodeBlockEnd4(v) => v.span(),
5207            ASTType::CodeBlockEnd5(v) => v.span(),
5208            ASTType::CodeBlockEnd6(v) => v.span(),
5209            ASTType::CodeBlockStart3(v) => v.span(),
5210            ASTType::CodeBlockStart4(v) => v.span(),
5211            ASTType::CodeBlockStart5(v) => v.span(),
5212            ASTType::CodeBlockStart6(v) => v.span(),
5213            ASTType::Comma(v) => v.span(),
5214            ASTType::Continue(v) => v.span(),
5215            ASTType::DelimCode(v) => v.span(),
5216            ASTType::DelimCode1(v) => v.span(),
5217            ASTType::DelimCode1List(v) => {
5218                v.first().map_or(Span::default(), |f| f.span())
5219                    + v.last().map_or(Span::default(), |l| l.span())
5220            }
5221            ASTType::DelimCode1ListGroup(v) => v.span(),
5222            ASTType::DelimCode2(v) => v.span(),
5223            ASTType::DelimCode2List(v) => {
5224                v.first().map_or(Span::default(), |f| f.span())
5225                    + v.last().map_or(Span::default(), |l| l.span())
5226            }
5227            ASTType::DelimCode2ListGroup(v) => v.span(),
5228            ASTType::DelimCode3(v) => v.span(),
5229            ASTType::DelimCode3List(v) => {
5230                v.first().map_or(Span::default(), |f| f.span())
5231                    + v.last().map_or(Span::default(), |l| l.span())
5232            }
5233            ASTType::DelimCode3ListGroup(v) => v.span(),
5234            ASTType::DelimCodeEnd1(v) => v.span(),
5235            ASTType::DelimCodeEnd2(v) => v.span(),
5236            ASTType::DelimCodeEnd3(v) => v.span(),
5237            ASTType::DelimCodeStart1(v) => v.span(),
5238            ASTType::DelimCodeStart2(v) => v.span(),
5239            ASTType::DelimCodeStart3(v) => v.span(),
5240            ASTType::Dot(v) => v.span(),
5241            ASTType::DotKey(v) => v.span(),
5242            ASTType::End(v) => v.span(),
5243            ASTType::Eure(v) => v.span(),
5244            ASTType::EureList(v) => {
5245                v.first().map_or(Span::default(), |f| f.span())
5246                    + v.last().map_or(Span::default(), |l| l.span())
5247            }
5248            ASTType::EureList0(v) => {
5249                v.first().map_or(Span::default(), |f| f.span())
5250                    + v.last().map_or(Span::default(), |l| l.span())
5251            }
5252            ASTType::EureOpt(o) => o.as_ref().map_or(Span::default(), |o| o.span()),
5253            ASTType::Ext(v) => v.span(),
5254            ASTType::ExtensionNameSpace(v) => v.span(),
5255            ASTType::False(v) => v.span(),
5256            ASTType::FirstKey(v) => v.span(),
5257            ASTType::FlatBody(v) => v.span(),
5258            ASTType::FlatBodyList(v) => {
5259                v.first().map_or(Span::default(), |f| f.span())
5260                    + v.last().map_or(Span::default(), |l| l.span())
5261            }
5262            ASTType::FlatRootBinding(v) => v.span(),
5263            ASTType::Float(v) => v.span(),
5264            ASTType::GrammarNewline(v) => v.span(),
5265            ASTType::Hole(v) => v.span(),
5266            ASTType::Ident(v) => v.span(),
5267            ASTType::Inf(v) => v.span(),
5268            ASTType::InlineCode(v) => v.span(),
5269            ASTType::InlineCode1(v) => v.span(),
5270            ASTType::Integer(v) => v.span(),
5271            ASTType::Key(v) => v.span(),
5272            ASTType::KeyIdent(v) => v.span(),
5273            ASTType::KeyTail(v) => v.span(),
5274            ASTType::KeyTuple(v) => v.span(),
5275            ASTType::KeyTupleElements(v) => v.span(),
5276            ASTType::KeyTupleElementsOpt(o) => o.as_ref().map_or(Span::default(), |o| o.span()),
5277            ASTType::KeyTupleElementsTail(v) => v.span(),
5278            ASTType::KeyTupleElementsTailOpt(o) => o.as_ref().map_or(Span::default(), |o| o.span()),
5279            ASTType::KeyTupleOpt(o) => o.as_ref().map_or(Span::default(), |o| o.span()),
5280            ASTType::KeyValue(v) => v.span(),
5281            ASTType::Keys(v) => v.span(),
5282            ASTType::KeysList(v) => {
5283                v.first().map_or(Span::default(), |f| f.span())
5284                    + v.last().map_or(Span::default(), |l| l.span())
5285            }
5286            ASTType::LParen(v) => v.span(),
5287            ASTType::LitStr(v) => v.span(),
5288            ASTType::LitStr1(v) => v.span(),
5289            ASTType::LitStr1End(v) => v.span(),
5290            ASTType::LitStr1List(v) => {
5291                v.first().map_or(Span::default(), |f| f.span())
5292                    + v.last().map_or(Span::default(), |l| l.span())
5293            }
5294            ASTType::LitStr1ListGroup(v) => v.span(),
5295            ASTType::LitStr1Start(v) => v.span(),
5296            ASTType::LitStr2(v) => v.span(),
5297            ASTType::LitStr2End(v) => v.span(),
5298            ASTType::LitStr2List(v) => {
5299                v.first().map_or(Span::default(), |f| f.span())
5300                    + v.last().map_or(Span::default(), |l| l.span())
5301            }
5302            ASTType::LitStr2ListGroup(v) => v.span(),
5303            ASTType::LitStr2Start(v) => v.span(),
5304            ASTType::LitStr3(v) => v.span(),
5305            ASTType::LitStr3End(v) => v.span(),
5306            ASTType::LitStr3List(v) => {
5307                v.first().map_or(Span::default(), |f| f.span())
5308                    + v.last().map_or(Span::default(), |l| l.span())
5309            }
5310            ASTType::LitStr3ListGroup(v) => v.span(),
5311            ASTType::LitStr3Start(v) => v.span(),
5312            ASTType::MapBind(v) => v.span(),
5313            ASTType::NaN(v) => v.span(),
5314            ASTType::NewlineBind(v) => v.span(),
5315            ASTType::NewlineHead(v) => v.span(),
5316            ASTType::NewlineHeadOpt(o) => o.as_ref().map_or(Span::default(), |o| o.span()),
5317            ASTType::NewlineTextStart(v) => v.span(),
5318            ASTType::NoBacktick(v) => v.span(),
5319            ASTType::NoSQuote(v) => v.span(),
5320            ASTType::Null(v) => v.span(),
5321            ASTType::Number(v) => v.span(),
5322            ASTType::Object(v) => v.span(),
5323            ASTType::ObjectList(v) => {
5324                v.first().map_or(Span::default(), |f| f.span())
5325                    + v.last().map_or(Span::default(), |l| l.span())
5326            }
5327            ASTType::ObjectOpt(o) => o.as_ref().map_or(Span::default(), |o| o.span()),
5328            ASTType::ObjectOpt0(o) => o.as_ref().map_or(Span::default(), |o| o.span()),
5329            ASTType::ObjectOpt1(o) => o.as_ref().map_or(Span::default(), |o| o.span()),
5330            ASTType::RParen(v) => v.span(),
5331            ASTType::RootBinding(v) => v.span(),
5332            ASTType::RootTextBinding(v) => v.span(),
5333            ASTType::RootTextBindingOpt(o) => o.as_ref().map_or(Span::default(), |o| o.span()),
5334            ASTType::RootTextBindingOpt0(o) => o.as_ref().map_or(Span::default(), |o| o.span()),
5335            ASTType::RootTextBindingOpt1(o) => o.as_ref().map_or(Span::default(), |o| o.span()),
5336            ASTType::RootValueBinding(v) => v.span(),
5337            ASTType::SQuote(v) => v.span(),
5338            ASTType::Section(v) => v.span(),
5339            ASTType::SectionBinding(v) => v.span(),
5340            ASTType::SectionBody(v) => v.span(),
5341            ASTType::SectionBodyOpt(o) => o.as_ref().map_or(Span::default(), |o| o.span()),
5342            ASTType::SectionHead(v) => v.span(),
5343            ASTType::Str(v) => v.span(),
5344            ASTType::String(v) => v.span(),
5345            ASTType::Strings(v) => v.span(),
5346            ASTType::StringsList(v) => {
5347                v.first().map_or(Span::default(), |f| f.span())
5348                    + v.last().map_or(Span::default(), |l| l.span())
5349            }
5350            ASTType::Text(v) => v.span(),
5351            ASTType::TextBinding(v) => v.span(),
5352            ASTType::TextBindingOpt(o) => o.as_ref().map_or(Span::default(), |o| o.span()),
5353            ASTType::TextBindingOpt0(o) => o.as_ref().map_or(Span::default(), |o| o.span()),
5354            ASTType::TextBindingOpt1(o) => o.as_ref().map_or(Span::default(), |o| o.span()),
5355            ASTType::TextStart(v) => v.span(),
5356            ASTType::TopLevelBinding(v) => v.span(),
5357            ASTType::True(v) => v.span(),
5358            ASTType::Tuple(v) => v.span(),
5359            ASTType::TupleElements(v) => v.span(),
5360            ASTType::TupleElementsOpt(o) => o.as_ref().map_or(Span::default(), |o| o.span()),
5361            ASTType::TupleElementsTail(v) => v.span(),
5362            ASTType::TupleElementsTailOpt(o) => o.as_ref().map_or(Span::default(), |o| o.span()),
5363            ASTType::TupleIndex(v) => v.span(),
5364            ASTType::TupleOpt(o) => o.as_ref().map_or(Span::default(), |o| o.span()),
5365            ASTType::Value(v) => v.span(),
5366            ASTType::ValueBinding(v) => v.span(),
5367            ASTType::Ws(v) => v.span(),
5368        }
5369    }
5370}
5371
5372// -------------------------------------------------------------------------------------------------
5373
5374/// Auto-implemented adapter grammar
5375///
5376/// The lifetime parameter `'t` refers to the lifetime of the scanned text.
5377/// The lifetime parameter `'u` refers to the lifetime of user grammar object.
5378///
5379#[allow(dead_code)]
5380pub struct GrammarAuto<'t, 'u>
5381where
5382    't: 'u,
5383{
5384    // Mutable reference of the actual user grammar to be able to call the semantic actions on it
5385    user_grammar: &'u mut dyn GrammarTrait<'t>,
5386    // Stack to construct the AST on it
5387    item_stack: Vec<ASTType<'t>>,
5388}
5389
5390///
5391/// The `GrammarAuto` impl is automatically generated for the
5392/// given grammar.
5393///
5394impl<'t, 'u> GrammarAuto<'t, 'u> {
5395    pub fn new(user_grammar: &'u mut dyn GrammarTrait<'t>) -> Self {
5396        Self {
5397            user_grammar,
5398            item_stack: Vec::new(),
5399        }
5400    }
5401
5402    #[allow(dead_code)]
5403    fn push(&mut self, item: ASTType<'t>, context: &str) {
5404        trace!("push    {context}: {item:?}");
5405        self.item_stack.push(item)
5406    }
5407
5408    #[allow(dead_code)]
5409    fn pop(&mut self, context: &str) -> Option<ASTType<'t>> {
5410        let item = self.item_stack.pop();
5411        if let Some(ref item) = item {
5412            trace!("pop     {context}: {item:?}");
5413        }
5414        item
5415    }
5416
5417    #[allow(dead_code)]
5418    // Use this function for debugging purposes:
5419    // trace!("{}", self.trace_item_stack(context));
5420    fn trace_item_stack(&self, context: &str) -> std::string::String {
5421        format!(
5422            "Item stack at {}:\n{}",
5423            context,
5424            self.item_stack
5425                .iter()
5426                .rev()
5427                .map(|s| format!("  {s:?}"))
5428                .collect::<Vec<std::string::String>>()
5429                .join("\n")
5430        )
5431    }
5432
5433    /// Semantic action for production 0:
5434    ///
5435    /// `Eure: EureOpt /* Option */ EureList /* Vec */ EureList0 /* Vec */;`
5436    ///
5437    #[parol_runtime::function_name::named]
5438    fn eure(
5439        &mut self,
5440        _eure_opt: &ParseTreeType<'t>,
5441        _eure_list: &ParseTreeType<'t>,
5442        _eure_list0: &ParseTreeType<'t>,
5443    ) -> Result<()> {
5444        let context = function_name!();
5445        trace!("{}", self.trace_item_stack(context));
5446        let eure_list0 = pop_and_reverse_item!(self, eure_list0, EureList0, context);
5447        let eure_list = pop_and_reverse_item!(self, eure_list, EureList, context);
5448        let eure_opt = pop_item!(self, eure_opt, EureOpt, context);
5449        let eure_built = Eure {
5450            eure_opt,
5451            eure_list,
5452            eure_list0,
5453        };
5454        // Calling user action here
5455        self.user_grammar.eure(&eure_built)?;
5456        self.push(ASTType::Eure(eure_built), context);
5457        Ok(())
5458    }
5459
5460    /// Semantic action for production 1:
5461    ///
5462    /// `EureList0 /* Vec<T>::Push */: Section EureList0;`
5463    ///
5464    #[parol_runtime::function_name::named]
5465    fn eure_list0_0(
5466        &mut self,
5467        _section: &ParseTreeType<'t>,
5468        _eure_list0: &ParseTreeType<'t>,
5469    ) -> Result<()> {
5470        let context = function_name!();
5471        trace!("{}", self.trace_item_stack(context));
5472        let mut eure_list0 = pop_item!(self, eure_list0, EureList0, context);
5473        let section = pop_item!(self, section, Section, context);
5474        let eure_list0_0_built = EureList0 { section };
5475        // Add an element to the vector
5476        eure_list0.push(eure_list0_0_built);
5477        self.push(ASTType::EureList0(eure_list0), context);
5478        Ok(())
5479    }
5480
5481    /// Semantic action for production 2:
5482    ///
5483    /// `EureList0 /* Vec<T>::New */: ;`
5484    ///
5485    #[parol_runtime::function_name::named]
5486    fn eure_list0_1(&mut self) -> Result<()> {
5487        let context = function_name!();
5488        trace!("{}", self.trace_item_stack(context));
5489        let eure_list0_1_built = Vec::new();
5490        self.push(ASTType::EureList0(eure_list0_1_built), context);
5491        Ok(())
5492    }
5493
5494    /// Semantic action for production 3:
5495    ///
5496    /// `EureList /* Vec<T>::Push */: Binding EureList;`
5497    ///
5498    #[parol_runtime::function_name::named]
5499    fn eure_list_0(
5500        &mut self,
5501        _binding: &ParseTreeType<'t>,
5502        _eure_list: &ParseTreeType<'t>,
5503    ) -> Result<()> {
5504        let context = function_name!();
5505        trace!("{}", self.trace_item_stack(context));
5506        let mut eure_list = pop_item!(self, eure_list, EureList, context);
5507        let binding = pop_item!(self, binding, Binding, context);
5508        let eure_list_0_built = EureList { binding };
5509        // Add an element to the vector
5510        eure_list.push(eure_list_0_built);
5511        self.push(ASTType::EureList(eure_list), context);
5512        Ok(())
5513    }
5514
5515    /// Semantic action for production 4:
5516    ///
5517    /// `EureList /* Vec<T>::New */: ;`
5518    ///
5519    #[parol_runtime::function_name::named]
5520    fn eure_list_1(&mut self) -> Result<()> {
5521        let context = function_name!();
5522        trace!("{}", self.trace_item_stack(context));
5523        let eure_list_1_built = Vec::new();
5524        self.push(ASTType::EureList(eure_list_1_built), context);
5525        Ok(())
5526    }
5527
5528    /// Semantic action for production 5:
5529    ///
5530    /// `EureOpt /* Option<T>::Some */: TopLevelBinding;`
5531    ///
5532    #[parol_runtime::function_name::named]
5533    fn eure_opt_0(&mut self, _top_level_binding: &ParseTreeType<'t>) -> Result<()> {
5534        let context = function_name!();
5535        trace!("{}", self.trace_item_stack(context));
5536        let top_level_binding = pop_item!(self, top_level_binding, TopLevelBinding, context);
5537        let eure_opt_0_built = EureOpt { top_level_binding };
5538        self.push(ASTType::EureOpt(Some(eure_opt_0_built)), context);
5539        Ok(())
5540    }
5541
5542    /// Semantic action for production 6:
5543    ///
5544    /// `EureOpt /* Option<T>::None */: ;`
5545    ///
5546    #[parol_runtime::function_name::named]
5547    fn eure_opt_1(&mut self) -> Result<()> {
5548        let context = function_name!();
5549        trace!("{}", self.trace_item_stack(context));
5550        self.push(ASTType::EureOpt(None), context);
5551        Ok(())
5552    }
5553
5554    /// Semantic action for production 7:
5555    ///
5556    /// `TopLevelBinding: ValueBinding;`
5557    ///
5558    #[parol_runtime::function_name::named]
5559    fn top_level_binding_0(&mut self, _value_binding: &ParseTreeType<'t>) -> Result<()> {
5560        let context = function_name!();
5561        trace!("{}", self.trace_item_stack(context));
5562        let value_binding = pop_item!(self, value_binding, ValueBinding, context);
5563        let top_level_binding_0_built = TopLevelBindingValueBinding { value_binding };
5564        let top_level_binding_0_built = TopLevelBinding::ValueBinding(top_level_binding_0_built);
5565        // Calling user action here
5566        self.user_grammar
5567            .top_level_binding(&top_level_binding_0_built)?;
5568        self.push(ASTType::TopLevelBinding(top_level_binding_0_built), context);
5569        Ok(())
5570    }
5571
5572    /// Semantic action for production 8:
5573    ///
5574    /// `TopLevelBinding: TextBinding;`
5575    ///
5576    #[parol_runtime::function_name::named]
5577    fn top_level_binding_1(&mut self, _text_binding: &ParseTreeType<'t>) -> Result<()> {
5578        let context = function_name!();
5579        trace!("{}", self.trace_item_stack(context));
5580        let text_binding = pop_item!(self, text_binding, TextBinding, context);
5581        let top_level_binding_1_built = TopLevelBindingTextBinding { text_binding };
5582        let top_level_binding_1_built = TopLevelBinding::TextBinding(top_level_binding_1_built);
5583        // Calling user action here
5584        self.user_grammar
5585            .top_level_binding(&top_level_binding_1_built)?;
5586        self.push(ASTType::TopLevelBinding(top_level_binding_1_built), context);
5587        Ok(())
5588    }
5589
5590    /// Semantic action for production 9:
5591    ///
5592    /// `RootBinding: RootValueBinding;`
5593    ///
5594    #[parol_runtime::function_name::named]
5595    fn root_binding_0(&mut self, _root_value_binding: &ParseTreeType<'t>) -> Result<()> {
5596        let context = function_name!();
5597        trace!("{}", self.trace_item_stack(context));
5598        let root_value_binding = pop_item!(self, root_value_binding, RootValueBinding, context);
5599        let root_binding_0_built = RootBindingRootValueBinding { root_value_binding };
5600        let root_binding_0_built = RootBinding::RootValueBinding(root_binding_0_built);
5601        // Calling user action here
5602        self.user_grammar.root_binding(&root_binding_0_built)?;
5603        self.push(ASTType::RootBinding(root_binding_0_built), context);
5604        Ok(())
5605    }
5606
5607    /// Semantic action for production 10:
5608    ///
5609    /// `RootBinding: RootTextBinding;`
5610    ///
5611    #[parol_runtime::function_name::named]
5612    fn root_binding_1(&mut self, _root_text_binding: &ParseTreeType<'t>) -> Result<()> {
5613        let context = function_name!();
5614        trace!("{}", self.trace_item_stack(context));
5615        let root_text_binding = pop_item!(self, root_text_binding, RootTextBinding, context);
5616        let root_binding_1_built = RootBindingRootTextBinding { root_text_binding };
5617        let root_binding_1_built = RootBinding::RootTextBinding(root_binding_1_built);
5618        // Calling user action here
5619        self.user_grammar.root_binding(&root_binding_1_built)?;
5620        self.push(ASTType::RootBinding(root_binding_1_built), context);
5621        Ok(())
5622    }
5623
5624    /// Semantic action for production 11:
5625    ///
5626    /// `RootValueBinding: NewlineBind Value;`
5627    ///
5628    #[parol_runtime::function_name::named]
5629    fn root_value_binding(
5630        &mut self,
5631        _newline_bind: &ParseTreeType<'t>,
5632        _value: &ParseTreeType<'t>,
5633    ) -> Result<()> {
5634        let context = function_name!();
5635        trace!("{}", self.trace_item_stack(context));
5636        let value = pop_item!(self, value, Value, context);
5637        let newline_bind = pop_item!(self, newline_bind, NewlineBind, context);
5638        let root_value_binding_built = RootValueBinding {
5639            newline_bind,
5640            value,
5641        };
5642        // Calling user action here
5643        self.user_grammar
5644            .root_value_binding(&root_value_binding_built)?;
5645        self.push(ASTType::RootValueBinding(root_value_binding_built), context);
5646        Ok(())
5647    }
5648
5649    /// Semantic action for production 12:
5650    ///
5651    /// `RootTextBinding: NewlineTextStart RootTextBindingOpt /* Option */ RootTextBindingOpt0 /* Option */ RootTextBindingOpt1 /* Option */;`
5652    ///
5653    #[parol_runtime::function_name::named]
5654    fn root_text_binding(
5655        &mut self,
5656        _newline_text_start: &ParseTreeType<'t>,
5657        _root_text_binding_opt: &ParseTreeType<'t>,
5658        _root_text_binding_opt0: &ParseTreeType<'t>,
5659        _root_text_binding_opt1: &ParseTreeType<'t>,
5660    ) -> Result<()> {
5661        let context = function_name!();
5662        trace!("{}", self.trace_item_stack(context));
5663        let root_text_binding_opt1 =
5664            pop_item!(self, root_text_binding_opt1, RootTextBindingOpt1, context);
5665        let root_text_binding_opt0 =
5666            pop_item!(self, root_text_binding_opt0, RootTextBindingOpt0, context);
5667        let root_text_binding_opt =
5668            pop_item!(self, root_text_binding_opt, RootTextBindingOpt, context);
5669        let newline_text_start = pop_item!(self, newline_text_start, NewlineTextStart, context);
5670        let root_text_binding_built = RootTextBinding {
5671            newline_text_start,
5672            root_text_binding_opt,
5673            root_text_binding_opt0,
5674            root_text_binding_opt1,
5675        };
5676        // Calling user action here
5677        self.user_grammar
5678            .root_text_binding(&root_text_binding_built)?;
5679        self.push(ASTType::RootTextBinding(root_text_binding_built), context);
5680        Ok(())
5681    }
5682
5683    /// Semantic action for production 13:
5684    ///
5685    /// `RootTextBindingOpt1 /* Option<T>::Some */: GrammarNewline;`
5686    ///
5687    #[parol_runtime::function_name::named]
5688    fn root_text_binding_opt1_0(&mut self, _grammar_newline: &ParseTreeType<'t>) -> Result<()> {
5689        let context = function_name!();
5690        trace!("{}", self.trace_item_stack(context));
5691        let grammar_newline = pop_item!(self, grammar_newline, GrammarNewline, context);
5692        let root_text_binding_opt1_0_built = RootTextBindingOpt1 { grammar_newline };
5693        self.push(
5694            ASTType::RootTextBindingOpt1(Some(root_text_binding_opt1_0_built)),
5695            context,
5696        );
5697        Ok(())
5698    }
5699
5700    /// Semantic action for production 14:
5701    ///
5702    /// `RootTextBindingOpt1 /* Option<T>::None */: ;`
5703    ///
5704    #[parol_runtime::function_name::named]
5705    fn root_text_binding_opt1_1(&mut self) -> Result<()> {
5706        let context = function_name!();
5707        trace!("{}", self.trace_item_stack(context));
5708        self.push(ASTType::RootTextBindingOpt1(None), context);
5709        Ok(())
5710    }
5711
5712    /// Semantic action for production 15:
5713    ///
5714    /// `RootTextBindingOpt0 /* Option<T>::Some */: Text;`
5715    ///
5716    #[parol_runtime::function_name::named]
5717    fn root_text_binding_opt0_0(&mut self, _text: &ParseTreeType<'t>) -> Result<()> {
5718        let context = function_name!();
5719        trace!("{}", self.trace_item_stack(context));
5720        let text = pop_item!(self, text, Text, context);
5721        let root_text_binding_opt0_0_built = RootTextBindingOpt0 { text };
5722        self.push(
5723            ASTType::RootTextBindingOpt0(Some(root_text_binding_opt0_0_built)),
5724            context,
5725        );
5726        Ok(())
5727    }
5728
5729    /// Semantic action for production 16:
5730    ///
5731    /// `RootTextBindingOpt0 /* Option<T>::None */: ;`
5732    ///
5733    #[parol_runtime::function_name::named]
5734    fn root_text_binding_opt0_1(&mut self) -> Result<()> {
5735        let context = function_name!();
5736        trace!("{}", self.trace_item_stack(context));
5737        self.push(ASTType::RootTextBindingOpt0(None), context);
5738        Ok(())
5739    }
5740
5741    /// Semantic action for production 17:
5742    ///
5743    /// `RootTextBindingOpt /* Option<T>::Some */: Ws^ /* Clipped */;`
5744    ///
5745    #[parol_runtime::function_name::named]
5746    fn root_text_binding_opt_0(&mut self, _ws: &ParseTreeType<'t>) -> Result<()> {
5747        let context = function_name!();
5748        trace!("{}", self.trace_item_stack(context));
5749        self.pop(context);
5750        let root_text_binding_opt_0_built = RootTextBindingOpt {};
5751        self.push(
5752            ASTType::RootTextBindingOpt(Some(root_text_binding_opt_0_built)),
5753            context,
5754        );
5755        Ok(())
5756    }
5757
5758    /// Semantic action for production 18:
5759    ///
5760    /// `RootTextBindingOpt /* Option<T>::None */: ;`
5761    ///
5762    #[parol_runtime::function_name::named]
5763    fn root_text_binding_opt_1(&mut self) -> Result<()> {
5764        let context = function_name!();
5765        trace!("{}", self.trace_item_stack(context));
5766        self.push(ASTType::RootTextBindingOpt(None), context);
5767        Ok(())
5768    }
5769
5770    /// Semantic action for production 19:
5771    ///
5772    /// `Binding: Keys BindingRhs;`
5773    ///
5774    #[parol_runtime::function_name::named]
5775    fn binding(
5776        &mut self,
5777        _keys: &ParseTreeType<'t>,
5778        _binding_rhs: &ParseTreeType<'t>,
5779    ) -> Result<()> {
5780        let context = function_name!();
5781        trace!("{}", self.trace_item_stack(context));
5782        let binding_rhs = pop_item!(self, binding_rhs, BindingRhs, context);
5783        let keys = pop_item!(self, keys, Keys, context);
5784        let binding_built = Binding { keys, binding_rhs };
5785        // Calling user action here
5786        self.user_grammar.binding(&binding_built)?;
5787        self.push(ASTType::Binding(binding_built), context);
5788        Ok(())
5789    }
5790
5791    /// Semantic action for production 20:
5792    ///
5793    /// `BindingRhs: ValueBinding;`
5794    ///
5795    #[parol_runtime::function_name::named]
5796    fn binding_rhs_0(&mut self, _value_binding: &ParseTreeType<'t>) -> Result<()> {
5797        let context = function_name!();
5798        trace!("{}", self.trace_item_stack(context));
5799        let value_binding = pop_item!(self, value_binding, ValueBinding, context);
5800        let binding_rhs_0_built = BindingRhsValueBinding { value_binding };
5801        let binding_rhs_0_built = BindingRhs::ValueBinding(binding_rhs_0_built);
5802        // Calling user action here
5803        self.user_grammar.binding_rhs(&binding_rhs_0_built)?;
5804        self.push(ASTType::BindingRhs(binding_rhs_0_built), context);
5805        Ok(())
5806    }
5807
5808    /// Semantic action for production 21:
5809    ///
5810    /// `BindingRhs: SectionBinding;`
5811    ///
5812    #[parol_runtime::function_name::named]
5813    fn binding_rhs_1(&mut self, _section_binding: &ParseTreeType<'t>) -> Result<()> {
5814        let context = function_name!();
5815        trace!("{}", self.trace_item_stack(context));
5816        let section_binding = pop_item!(self, section_binding, SectionBinding, context);
5817        let binding_rhs_1_built = BindingRhsSectionBinding { section_binding };
5818        let binding_rhs_1_built = BindingRhs::SectionBinding(binding_rhs_1_built);
5819        // Calling user action here
5820        self.user_grammar.binding_rhs(&binding_rhs_1_built)?;
5821        self.push(ASTType::BindingRhs(binding_rhs_1_built), context);
5822        Ok(())
5823    }
5824
5825    /// Semantic action for production 22:
5826    ///
5827    /// `BindingRhs: TextBinding;`
5828    ///
5829    #[parol_runtime::function_name::named]
5830    fn binding_rhs_2(&mut self, _text_binding: &ParseTreeType<'t>) -> Result<()> {
5831        let context = function_name!();
5832        trace!("{}", self.trace_item_stack(context));
5833        let text_binding = pop_item!(self, text_binding, TextBinding, context);
5834        let binding_rhs_2_built = BindingRhsTextBinding { text_binding };
5835        let binding_rhs_2_built = BindingRhs::TextBinding(binding_rhs_2_built);
5836        // Calling user action here
5837        self.user_grammar.binding_rhs(&binding_rhs_2_built)?;
5838        self.push(ASTType::BindingRhs(binding_rhs_2_built), context);
5839        Ok(())
5840    }
5841
5842    /// Semantic action for production 23:
5843    ///
5844    /// `ValueBinding: Bind Value;`
5845    ///
5846    #[parol_runtime::function_name::named]
5847    fn value_binding(
5848        &mut self,
5849        _bind: &ParseTreeType<'t>,
5850        _value: &ParseTreeType<'t>,
5851    ) -> Result<()> {
5852        let context = function_name!();
5853        trace!("{}", self.trace_item_stack(context));
5854        let value = pop_item!(self, value, Value, context);
5855        let bind = pop_item!(self, bind, Bind, context);
5856        let value_binding_built = ValueBinding { bind, value };
5857        // Calling user action here
5858        self.user_grammar.value_binding(&value_binding_built)?;
5859        self.push(ASTType::ValueBinding(value_binding_built), context);
5860        Ok(())
5861    }
5862
5863    /// Semantic action for production 24:
5864    ///
5865    /// `SectionBinding: Begin Eure End;`
5866    ///
5867    #[parol_runtime::function_name::named]
5868    fn section_binding(
5869        &mut self,
5870        _begin: &ParseTreeType<'t>,
5871        _eure: &ParseTreeType<'t>,
5872        _end: &ParseTreeType<'t>,
5873    ) -> Result<()> {
5874        let context = function_name!();
5875        trace!("{}", self.trace_item_stack(context));
5876        let end = pop_item!(self, end, End, context);
5877        let eure = pop_item!(self, eure, Eure, context);
5878        let begin = pop_item!(self, begin, Begin, context);
5879        let section_binding_built = SectionBinding { begin, eure, end };
5880        // Calling user action here
5881        self.user_grammar.section_binding(&section_binding_built)?;
5882        self.push(ASTType::SectionBinding(section_binding_built), context);
5883        Ok(())
5884    }
5885
5886    /// Semantic action for production 25:
5887    ///
5888    /// `TextBinding: TextStart TextBindingOpt /* Option */ TextBindingOpt0 /* Option */ TextBindingOpt1 /* Option */;`
5889    ///
5890    #[parol_runtime::function_name::named]
5891    fn text_binding(
5892        &mut self,
5893        _text_start: &ParseTreeType<'t>,
5894        _text_binding_opt: &ParseTreeType<'t>,
5895        _text_binding_opt0: &ParseTreeType<'t>,
5896        _text_binding_opt1: &ParseTreeType<'t>,
5897    ) -> Result<()> {
5898        let context = function_name!();
5899        trace!("{}", self.trace_item_stack(context));
5900        let text_binding_opt1 = pop_item!(self, text_binding_opt1, TextBindingOpt1, context);
5901        let text_binding_opt0 = pop_item!(self, text_binding_opt0, TextBindingOpt0, context);
5902        let text_binding_opt = pop_item!(self, text_binding_opt, TextBindingOpt, context);
5903        let text_start = pop_item!(self, text_start, TextStart, context);
5904        let text_binding_built = TextBinding {
5905            text_start,
5906            text_binding_opt,
5907            text_binding_opt0,
5908            text_binding_opt1,
5909        };
5910        // Calling user action here
5911        self.user_grammar.text_binding(&text_binding_built)?;
5912        self.push(ASTType::TextBinding(text_binding_built), context);
5913        Ok(())
5914    }
5915
5916    /// Semantic action for production 26:
5917    ///
5918    /// `TextBindingOpt1 /* Option<T>::Some */: GrammarNewline;`
5919    ///
5920    #[parol_runtime::function_name::named]
5921    fn text_binding_opt1_0(&mut self, _grammar_newline: &ParseTreeType<'t>) -> Result<()> {
5922        let context = function_name!();
5923        trace!("{}", self.trace_item_stack(context));
5924        let grammar_newline = pop_item!(self, grammar_newline, GrammarNewline, context);
5925        let text_binding_opt1_0_built = TextBindingOpt1 { grammar_newline };
5926        self.push(
5927            ASTType::TextBindingOpt1(Some(text_binding_opt1_0_built)),
5928            context,
5929        );
5930        Ok(())
5931    }
5932
5933    /// Semantic action for production 27:
5934    ///
5935    /// `TextBindingOpt1 /* Option<T>::None */: ;`
5936    ///
5937    #[parol_runtime::function_name::named]
5938    fn text_binding_opt1_1(&mut self) -> Result<()> {
5939        let context = function_name!();
5940        trace!("{}", self.trace_item_stack(context));
5941        self.push(ASTType::TextBindingOpt1(None), context);
5942        Ok(())
5943    }
5944
5945    /// Semantic action for production 28:
5946    ///
5947    /// `TextBindingOpt0 /* Option<T>::Some */: Text;`
5948    ///
5949    #[parol_runtime::function_name::named]
5950    fn text_binding_opt0_0(&mut self, _text: &ParseTreeType<'t>) -> Result<()> {
5951        let context = function_name!();
5952        trace!("{}", self.trace_item_stack(context));
5953        let text = pop_item!(self, text, Text, context);
5954        let text_binding_opt0_0_built = TextBindingOpt0 { text };
5955        self.push(
5956            ASTType::TextBindingOpt0(Some(text_binding_opt0_0_built)),
5957            context,
5958        );
5959        Ok(())
5960    }
5961
5962    /// Semantic action for production 29:
5963    ///
5964    /// `TextBindingOpt0 /* Option<T>::None */: ;`
5965    ///
5966    #[parol_runtime::function_name::named]
5967    fn text_binding_opt0_1(&mut self) -> Result<()> {
5968        let context = function_name!();
5969        trace!("{}", self.trace_item_stack(context));
5970        self.push(ASTType::TextBindingOpt0(None), context);
5971        Ok(())
5972    }
5973
5974    /// Semantic action for production 30:
5975    ///
5976    /// `TextBindingOpt /* Option<T>::Some */: Ws^ /* Clipped */;`
5977    ///
5978    #[parol_runtime::function_name::named]
5979    fn text_binding_opt_0(&mut self, _ws: &ParseTreeType<'t>) -> Result<()> {
5980        let context = function_name!();
5981        trace!("{}", self.trace_item_stack(context));
5982        self.pop(context);
5983        let text_binding_opt_0_built = TextBindingOpt {};
5984        self.push(
5985            ASTType::TextBindingOpt(Some(text_binding_opt_0_built)),
5986            context,
5987        );
5988        Ok(())
5989    }
5990
5991    /// Semantic action for production 31:
5992    ///
5993    /// `TextBindingOpt /* Option<T>::None */: ;`
5994    ///
5995    #[parol_runtime::function_name::named]
5996    fn text_binding_opt_1(&mut self) -> Result<()> {
5997        let context = function_name!();
5998        trace!("{}", self.trace_item_stack(context));
5999        self.push(ASTType::TextBindingOpt(None), context);
6000        Ok(())
6001    }
6002
6003    /// Semantic action for production 32:
6004    ///
6005    /// `Section: At Keys SectionBody;`
6006    ///
6007    #[parol_runtime::function_name::named]
6008    fn section(
6009        &mut self,
6010        _at: &ParseTreeType<'t>,
6011        _keys: &ParseTreeType<'t>,
6012        _section_body: &ParseTreeType<'t>,
6013    ) -> Result<()> {
6014        let context = function_name!();
6015        trace!("{}", self.trace_item_stack(context));
6016        let section_body = pop_item!(self, section_body, SectionBody, context);
6017        let keys = pop_item!(self, keys, Keys, context);
6018        let at = pop_item!(self, at, At, context);
6019        let section_built = Section {
6020            at,
6021            keys,
6022            section_body,
6023        };
6024        // Calling user action here
6025        self.user_grammar.section(&section_built)?;
6026        self.push(ASTType::Section(section_built), context);
6027        Ok(())
6028    }
6029
6030    /// Semantic action for production 33:
6031    ///
6032    /// `SectionBody: SectionBodyOpt /* Option */;`
6033    ///
6034    #[parol_runtime::function_name::named]
6035    fn section_body_0(&mut self, _section_body_opt: &ParseTreeType<'t>) -> Result<()> {
6036        let context = function_name!();
6037        trace!("{}", self.trace_item_stack(context));
6038        let section_body_opt = pop_item!(self, section_body_opt, SectionBodyOpt, context);
6039        let section_body_0_built = SectionBodySectionBodyOpt { section_body_opt };
6040        let section_body_0_built = SectionBody::SectionBodyOpt(section_body_0_built);
6041        // Calling user action here
6042        self.user_grammar.section_body(&section_body_0_built)?;
6043        self.push(ASTType::SectionBody(section_body_0_built), context);
6044        Ok(())
6045    }
6046
6047    /// Semantic action for production 34:
6048    ///
6049    /// `SectionBody: BlockBody;`
6050    ///
6051    #[parol_runtime::function_name::named]
6052    fn section_body_1(&mut self, _block_body: &ParseTreeType<'t>) -> Result<()> {
6053        let context = function_name!();
6054        trace!("{}", self.trace_item_stack(context));
6055        let block_body = pop_item!(self, block_body, BlockBody, context);
6056        let section_body_1_built = SectionBodyBlockBody { block_body };
6057        let section_body_1_built = SectionBody::BlockBody(section_body_1_built);
6058        // Calling user action here
6059        self.user_grammar.section_body(&section_body_1_built)?;
6060        self.push(ASTType::SectionBody(section_body_1_built), context);
6061        Ok(())
6062    }
6063
6064    /// Semantic action for production 35:
6065    ///
6066    /// `SectionBodyOpt /* Option<T>::Some */: FlatBody;`
6067    ///
6068    #[parol_runtime::function_name::named]
6069    fn section_body_opt_0(&mut self, _flat_body: &ParseTreeType<'t>) -> Result<()> {
6070        let context = function_name!();
6071        trace!("{}", self.trace_item_stack(context));
6072        let flat_body = pop_item!(self, flat_body, FlatBody, context);
6073        let section_body_opt_0_built = SectionBodyOpt { flat_body };
6074        self.push(
6075            ASTType::SectionBodyOpt(Some(section_body_opt_0_built)),
6076            context,
6077        );
6078        Ok(())
6079    }
6080
6081    /// Semantic action for production 36:
6082    ///
6083    /// `SectionBodyOpt /* Option<T>::None */: ;`
6084    ///
6085    #[parol_runtime::function_name::named]
6086    fn section_body_opt_1(&mut self) -> Result<()> {
6087        let context = function_name!();
6088        trace!("{}", self.trace_item_stack(context));
6089        self.push(ASTType::SectionBodyOpt(None), context);
6090        Ok(())
6091    }
6092
6093    /// Semantic action for production 37:
6094    ///
6095    /// `FlatBody: SectionHead FlatBodyList /* Vec */;`
6096    ///
6097    #[parol_runtime::function_name::named]
6098    fn flat_body(
6099        &mut self,
6100        _section_head: &ParseTreeType<'t>,
6101        _flat_body_list: &ParseTreeType<'t>,
6102    ) -> Result<()> {
6103        let context = function_name!();
6104        trace!("{}", self.trace_item_stack(context));
6105        let flat_body_list = pop_and_reverse_item!(self, flat_body_list, FlatBodyList, context);
6106        let section_head = pop_item!(self, section_head, SectionHead, context);
6107        let flat_body_built = FlatBody {
6108            section_head,
6109            flat_body_list,
6110        };
6111        // Calling user action here
6112        self.user_grammar.flat_body(&flat_body_built)?;
6113        self.push(ASTType::FlatBody(flat_body_built), context);
6114        Ok(())
6115    }
6116
6117    /// Semantic action for production 38:
6118    ///
6119    /// `FlatBodyList /* Vec<T>::Push */: Binding FlatBodyList;`
6120    ///
6121    #[parol_runtime::function_name::named]
6122    fn flat_body_list_0(
6123        &mut self,
6124        _binding: &ParseTreeType<'t>,
6125        _flat_body_list: &ParseTreeType<'t>,
6126    ) -> Result<()> {
6127        let context = function_name!();
6128        trace!("{}", self.trace_item_stack(context));
6129        let mut flat_body_list = pop_item!(self, flat_body_list, FlatBodyList, context);
6130        let binding = pop_item!(self, binding, Binding, context);
6131        let flat_body_list_0_built = FlatBodyList { binding };
6132        // Add an element to the vector
6133        flat_body_list.push(flat_body_list_0_built);
6134        self.push(ASTType::FlatBodyList(flat_body_list), context);
6135        Ok(())
6136    }
6137
6138    /// Semantic action for production 39:
6139    ///
6140    /// `FlatBodyList /* Vec<T>::New */: ;`
6141    ///
6142    #[parol_runtime::function_name::named]
6143    fn flat_body_list_1(&mut self) -> Result<()> {
6144        let context = function_name!();
6145        trace!("{}", self.trace_item_stack(context));
6146        let flat_body_list_1_built = Vec::new();
6147        self.push(ASTType::FlatBodyList(flat_body_list_1_built), context);
6148        Ok(())
6149    }
6150
6151    /// Semantic action for production 40:
6152    ///
6153    /// `SectionHead: RootBinding;`
6154    ///
6155    #[parol_runtime::function_name::named]
6156    fn section_head_0(&mut self, _root_binding: &ParseTreeType<'t>) -> Result<()> {
6157        let context = function_name!();
6158        trace!("{}", self.trace_item_stack(context));
6159        let root_binding = pop_item!(self, root_binding, RootBinding, context);
6160        let section_head_0_built = SectionHeadRootBinding { root_binding };
6161        let section_head_0_built = SectionHead::RootBinding(section_head_0_built);
6162        // Calling user action here
6163        self.user_grammar.section_head(&section_head_0_built)?;
6164        self.push(ASTType::SectionHead(section_head_0_built), context);
6165        Ok(())
6166    }
6167
6168    /// Semantic action for production 41:
6169    ///
6170    /// `SectionHead: NewlineHead;`
6171    ///
6172    #[parol_runtime::function_name::named]
6173    fn section_head_1(&mut self, _newline_head: &ParseTreeType<'t>) -> Result<()> {
6174        let context = function_name!();
6175        trace!("{}", self.trace_item_stack(context));
6176        let newline_head = pop_item!(self, newline_head, NewlineHead, context);
6177        let section_head_1_built = SectionHeadNewlineHead { newline_head };
6178        let section_head_1_built = SectionHead::NewlineHead(section_head_1_built);
6179        // Calling user action here
6180        self.user_grammar.section_head(&section_head_1_built)?;
6181        self.push(ASTType::SectionHead(section_head_1_built), context);
6182        Ok(())
6183    }
6184
6185    /// Semantic action for production 42:
6186    ///
6187    /// `NewlineHead: GrammarNewline NewlineHeadOpt /* Option */;`
6188    ///
6189    #[parol_runtime::function_name::named]
6190    fn newline_head(
6191        &mut self,
6192        _grammar_newline: &ParseTreeType<'t>,
6193        _newline_head_opt: &ParseTreeType<'t>,
6194    ) -> Result<()> {
6195        let context = function_name!();
6196        trace!("{}", self.trace_item_stack(context));
6197        let newline_head_opt = pop_item!(self, newline_head_opt, NewlineHeadOpt, context);
6198        let grammar_newline = pop_item!(self, grammar_newline, GrammarNewline, context);
6199        let newline_head_built = NewlineHead {
6200            grammar_newline,
6201            newline_head_opt,
6202        };
6203        // Calling user action here
6204        self.user_grammar.newline_head(&newline_head_built)?;
6205        self.push(ASTType::NewlineHead(newline_head_built), context);
6206        Ok(())
6207    }
6208
6209    /// Semantic action for production 43:
6210    ///
6211    /// `NewlineHeadOpt /* Option<T>::Some */: FlatRootBinding;`
6212    ///
6213    #[parol_runtime::function_name::named]
6214    fn newline_head_opt_0(&mut self, _flat_root_binding: &ParseTreeType<'t>) -> Result<()> {
6215        let context = function_name!();
6216        trace!("{}", self.trace_item_stack(context));
6217        let flat_root_binding = pop_item!(self, flat_root_binding, FlatRootBinding, context);
6218        let newline_head_opt_0_built = NewlineHeadOpt { flat_root_binding };
6219        self.push(
6220            ASTType::NewlineHeadOpt(Some(newline_head_opt_0_built)),
6221            context,
6222        );
6223        Ok(())
6224    }
6225
6226    /// Semantic action for production 44:
6227    ///
6228    /// `NewlineHeadOpt /* Option<T>::None */: ;`
6229    ///
6230    #[parol_runtime::function_name::named]
6231    fn newline_head_opt_1(&mut self) -> Result<()> {
6232        let context = function_name!();
6233        trace!("{}", self.trace_item_stack(context));
6234        self.push(ASTType::NewlineHeadOpt(None), context);
6235        Ok(())
6236    }
6237
6238    /// Semantic action for production 45:
6239    ///
6240    /// `FlatRootBinding: ValueBinding;`
6241    ///
6242    #[parol_runtime::function_name::named]
6243    fn flat_root_binding_0(&mut self, _value_binding: &ParseTreeType<'t>) -> Result<()> {
6244        let context = function_name!();
6245        trace!("{}", self.trace_item_stack(context));
6246        let value_binding = pop_item!(self, value_binding, ValueBinding, context);
6247        let flat_root_binding_0_built = FlatRootBindingValueBinding { value_binding };
6248        let flat_root_binding_0_built = FlatRootBinding::ValueBinding(flat_root_binding_0_built);
6249        // Calling user action here
6250        self.user_grammar
6251            .flat_root_binding(&flat_root_binding_0_built)?;
6252        self.push(ASTType::FlatRootBinding(flat_root_binding_0_built), context);
6253        Ok(())
6254    }
6255
6256    /// Semantic action for production 46:
6257    ///
6258    /// `FlatRootBinding: TextBinding;`
6259    ///
6260    #[parol_runtime::function_name::named]
6261    fn flat_root_binding_1(&mut self, _text_binding: &ParseTreeType<'t>) -> Result<()> {
6262        let context = function_name!();
6263        trace!("{}", self.trace_item_stack(context));
6264        let text_binding = pop_item!(self, text_binding, TextBinding, context);
6265        let flat_root_binding_1_built = FlatRootBindingTextBinding { text_binding };
6266        let flat_root_binding_1_built = FlatRootBinding::TextBinding(flat_root_binding_1_built);
6267        // Calling user action here
6268        self.user_grammar
6269            .flat_root_binding(&flat_root_binding_1_built)?;
6270        self.push(ASTType::FlatRootBinding(flat_root_binding_1_built), context);
6271        Ok(())
6272    }
6273
6274    /// Semantic action for production 47:
6275    ///
6276    /// `BlockBody: Begin Eure End;`
6277    ///
6278    #[parol_runtime::function_name::named]
6279    fn block_body(
6280        &mut self,
6281        _begin: &ParseTreeType<'t>,
6282        _eure: &ParseTreeType<'t>,
6283        _end: &ParseTreeType<'t>,
6284    ) -> Result<()> {
6285        let context = function_name!();
6286        trace!("{}", self.trace_item_stack(context));
6287        let end = pop_item!(self, end, End, context);
6288        let eure = pop_item!(self, eure, Eure, context);
6289        let begin = pop_item!(self, begin, Begin, context);
6290        let block_body_built = BlockBody { begin, eure, end };
6291        // Calling user action here
6292        self.user_grammar.block_body(&block_body_built)?;
6293        self.push(ASTType::BlockBody(block_body_built), context);
6294        Ok(())
6295    }
6296
6297    /// Semantic action for production 48:
6298    ///
6299    /// `Keys: FirstKey KeysList /* Vec */;`
6300    ///
6301    #[parol_runtime::function_name::named]
6302    fn keys(
6303        &mut self,
6304        _first_key: &ParseTreeType<'t>,
6305        _keys_list: &ParseTreeType<'t>,
6306    ) -> Result<()> {
6307        let context = function_name!();
6308        trace!("{}", self.trace_item_stack(context));
6309        let keys_list = pop_and_reverse_item!(self, keys_list, KeysList, context);
6310        let first_key = pop_item!(self, first_key, FirstKey, context);
6311        let keys_built = Keys {
6312            first_key,
6313            keys_list,
6314        };
6315        // Calling user action here
6316        self.user_grammar.keys(&keys_built)?;
6317        self.push(ASTType::Keys(keys_built), context);
6318        Ok(())
6319    }
6320
6321    /// Semantic action for production 49:
6322    ///
6323    /// `KeysList /* Vec<T>::Push */: KeyTail KeysList;`
6324    ///
6325    #[parol_runtime::function_name::named]
6326    fn keys_list_0(
6327        &mut self,
6328        _key_tail: &ParseTreeType<'t>,
6329        _keys_list: &ParseTreeType<'t>,
6330    ) -> Result<()> {
6331        let context = function_name!();
6332        trace!("{}", self.trace_item_stack(context));
6333        let mut keys_list = pop_item!(self, keys_list, KeysList, context);
6334        let key_tail = pop_item!(self, key_tail, KeyTail, context);
6335        let keys_list_0_built = KeysList { key_tail };
6336        // Add an element to the vector
6337        keys_list.push(keys_list_0_built);
6338        self.push(ASTType::KeysList(keys_list), context);
6339        Ok(())
6340    }
6341
6342    /// Semantic action for production 50:
6343    ///
6344    /// `KeysList /* Vec<T>::New */: ;`
6345    ///
6346    #[parol_runtime::function_name::named]
6347    fn keys_list_1(&mut self) -> Result<()> {
6348        let context = function_name!();
6349        trace!("{}", self.trace_item_stack(context));
6350        let keys_list_1_built = Vec::new();
6351        self.push(ASTType::KeysList(keys_list_1_built), context);
6352        Ok(())
6353    }
6354
6355    /// Semantic action for production 51:
6356    ///
6357    /// `FirstKey: Key;`
6358    ///
6359    #[parol_runtime::function_name::named]
6360    fn first_key_0(&mut self, _key: &ParseTreeType<'t>) -> Result<()> {
6361        let context = function_name!();
6362        trace!("{}", self.trace_item_stack(context));
6363        let key = pop_item!(self, key, Key, context);
6364        let first_key_0_built = FirstKeyKey { key };
6365        let first_key_0_built = FirstKey::Key(first_key_0_built);
6366        // Calling user action here
6367        self.user_grammar.first_key(&first_key_0_built)?;
6368        self.push(ASTType::FirstKey(first_key_0_built), context);
6369        Ok(())
6370    }
6371
6372    /// Semantic action for production 52:
6373    ///
6374    /// `FirstKey: ArrayMarker;`
6375    ///
6376    #[parol_runtime::function_name::named]
6377    fn first_key_1(&mut self, _array_marker: &ParseTreeType<'t>) -> Result<()> {
6378        let context = function_name!();
6379        trace!("{}", self.trace_item_stack(context));
6380        let array_marker = pop_item!(self, array_marker, ArrayMarker, context);
6381        let first_key_1_built = FirstKeyArrayMarker { array_marker };
6382        let first_key_1_built = FirstKey::ArrayMarker(first_key_1_built);
6383        // Calling user action here
6384        self.user_grammar.first_key(&first_key_1_built)?;
6385        self.push(ASTType::FirstKey(first_key_1_built), context);
6386        Ok(())
6387    }
6388
6389    /// Semantic action for production 53:
6390    ///
6391    /// `KeyTail: DotKey;`
6392    ///
6393    #[parol_runtime::function_name::named]
6394    fn key_tail_0(&mut self, _dot_key: &ParseTreeType<'t>) -> Result<()> {
6395        let context = function_name!();
6396        trace!("{}", self.trace_item_stack(context));
6397        let dot_key = pop_item!(self, dot_key, DotKey, context);
6398        let key_tail_0_built = KeyTailDotKey { dot_key };
6399        let key_tail_0_built = KeyTail::DotKey(key_tail_0_built);
6400        // Calling user action here
6401        self.user_grammar.key_tail(&key_tail_0_built)?;
6402        self.push(ASTType::KeyTail(key_tail_0_built), context);
6403        Ok(())
6404    }
6405
6406    /// Semantic action for production 54:
6407    ///
6408    /// `KeyTail: ArrayMarker;`
6409    ///
6410    #[parol_runtime::function_name::named]
6411    fn key_tail_1(&mut self, _array_marker: &ParseTreeType<'t>) -> Result<()> {
6412        let context = function_name!();
6413        trace!("{}", self.trace_item_stack(context));
6414        let array_marker = pop_item!(self, array_marker, ArrayMarker, context);
6415        let key_tail_1_built = KeyTailArrayMarker { array_marker };
6416        let key_tail_1_built = KeyTail::ArrayMarker(key_tail_1_built);
6417        // Calling user action here
6418        self.user_grammar.key_tail(&key_tail_1_built)?;
6419        self.push(ASTType::KeyTail(key_tail_1_built), context);
6420        Ok(())
6421    }
6422
6423    /// Semantic action for production 55:
6424    ///
6425    /// `DotKey: Dot Key;`
6426    ///
6427    #[parol_runtime::function_name::named]
6428    fn dot_key(&mut self, _dot: &ParseTreeType<'t>, _key: &ParseTreeType<'t>) -> Result<()> {
6429        let context = function_name!();
6430        trace!("{}", self.trace_item_stack(context));
6431        let key = pop_item!(self, key, Key, context);
6432        let dot = pop_item!(self, dot, Dot, context);
6433        let dot_key_built = DotKey { dot, key };
6434        // Calling user action here
6435        self.user_grammar.dot_key(&dot_key_built)?;
6436        self.push(ASTType::DotKey(dot_key_built), context);
6437        Ok(())
6438    }
6439
6440    /// Semantic action for production 56:
6441    ///
6442    /// `ArrayMarker: ArrayBegin ArrayMarkerOpt /* Option */ ArrayEnd;`
6443    ///
6444    #[parol_runtime::function_name::named]
6445    fn array_marker(
6446        &mut self,
6447        _array_begin: &ParseTreeType<'t>,
6448        _array_marker_opt: &ParseTreeType<'t>,
6449        _array_end: &ParseTreeType<'t>,
6450    ) -> Result<()> {
6451        let context = function_name!();
6452        trace!("{}", self.trace_item_stack(context));
6453        let array_end = pop_item!(self, array_end, ArrayEnd, context);
6454        let array_marker_opt = pop_item!(self, array_marker_opt, ArrayMarkerOpt, context);
6455        let array_begin = pop_item!(self, array_begin, ArrayBegin, context);
6456        let array_marker_built = ArrayMarker {
6457            array_begin,
6458            array_marker_opt,
6459            array_end,
6460        };
6461        // Calling user action here
6462        self.user_grammar.array_marker(&array_marker_built)?;
6463        self.push(ASTType::ArrayMarker(array_marker_built), context);
6464        Ok(())
6465    }
6466
6467    /// Semantic action for production 57:
6468    ///
6469    /// `ArrayMarkerOpt /* Option<T>::Some */: ArrayMarkerOptGroup;`
6470    ///
6471    #[parol_runtime::function_name::named]
6472    fn array_marker_opt_0(&mut self, _array_marker_opt_group: &ParseTreeType<'t>) -> Result<()> {
6473        let context = function_name!();
6474        trace!("{}", self.trace_item_stack(context));
6475        let array_marker_opt_group =
6476            pop_item!(self, array_marker_opt_group, ArrayMarkerOptGroup, context);
6477        let array_marker_opt_0_built = ArrayMarkerOpt {
6478            array_marker_opt_group,
6479        };
6480        self.push(
6481            ASTType::ArrayMarkerOpt(Some(array_marker_opt_0_built)),
6482            context,
6483        );
6484        Ok(())
6485    }
6486
6487    /// Semantic action for production 58:
6488    ///
6489    /// `ArrayMarkerOptGroup: Integer;`
6490    ///
6491    #[parol_runtime::function_name::named]
6492    fn array_marker_opt_group_0(&mut self, _integer: &ParseTreeType<'t>) -> Result<()> {
6493        let context = function_name!();
6494        trace!("{}", self.trace_item_stack(context));
6495        let integer = pop_item!(self, integer, Integer, context);
6496        let array_marker_opt_group_0_built = ArrayMarkerOptGroupInteger { integer };
6497        let array_marker_opt_group_0_built =
6498            ArrayMarkerOptGroup::Integer(array_marker_opt_group_0_built);
6499        self.push(
6500            ASTType::ArrayMarkerOptGroup(array_marker_opt_group_0_built),
6501            context,
6502        );
6503        Ok(())
6504    }
6505
6506    /// Semantic action for production 59:
6507    ///
6508    /// `ArrayMarkerOptGroup: Caret;`
6509    ///
6510    #[parol_runtime::function_name::named]
6511    fn array_marker_opt_group_1(&mut self, _caret: &ParseTreeType<'t>) -> Result<()> {
6512        let context = function_name!();
6513        trace!("{}", self.trace_item_stack(context));
6514        let caret = pop_item!(self, caret, Caret, context);
6515        let array_marker_opt_group_1_built = ArrayMarkerOptGroupCaret { caret };
6516        let array_marker_opt_group_1_built =
6517            ArrayMarkerOptGroup::Caret(array_marker_opt_group_1_built);
6518        self.push(
6519            ASTType::ArrayMarkerOptGroup(array_marker_opt_group_1_built),
6520            context,
6521        );
6522        Ok(())
6523    }
6524
6525    /// Semantic action for production 60:
6526    ///
6527    /// `ArrayMarkerOpt /* Option<T>::None */: ;`
6528    ///
6529    #[parol_runtime::function_name::named]
6530    fn array_marker_opt_1(&mut self) -> Result<()> {
6531        let context = function_name!();
6532        trace!("{}", self.trace_item_stack(context));
6533        self.push(ASTType::ArrayMarkerOpt(None), context);
6534        Ok(())
6535    }
6536
6537    /// Semantic action for production 61:
6538    ///
6539    /// `Key: KeyIdent;`
6540    ///
6541    #[parol_runtime::function_name::named]
6542    fn key_0(&mut self, _key_ident: &ParseTreeType<'t>) -> Result<()> {
6543        let context = function_name!();
6544        trace!("{}", self.trace_item_stack(context));
6545        let key_ident = pop_item!(self, key_ident, KeyIdent, context);
6546        let key_0_built = KeyKeyIdent { key_ident };
6547        let key_0_built = Key::KeyIdent(key_0_built);
6548        // Calling user action here
6549        self.user_grammar.key(&key_0_built)?;
6550        self.push(ASTType::Key(key_0_built), context);
6551        Ok(())
6552    }
6553
6554    /// Semantic action for production 62:
6555    ///
6556    /// `Key: ExtensionNameSpace;`
6557    ///
6558    #[parol_runtime::function_name::named]
6559    fn key_1(&mut self, _extension_name_space: &ParseTreeType<'t>) -> Result<()> {
6560        let context = function_name!();
6561        trace!("{}", self.trace_item_stack(context));
6562        let extension_name_space =
6563            pop_item!(self, extension_name_space, ExtensionNameSpace, context);
6564        let key_1_built = KeyExtensionNameSpace {
6565            extension_name_space,
6566        };
6567        let key_1_built = Key::ExtensionNameSpace(key_1_built);
6568        // Calling user action here
6569        self.user_grammar.key(&key_1_built)?;
6570        self.push(ASTType::Key(key_1_built), context);
6571        Ok(())
6572    }
6573
6574    /// Semantic action for production 63:
6575    ///
6576    /// `Key: String;`
6577    ///
6578    #[parol_runtime::function_name::named]
6579    fn key_2(&mut self, _string: &ParseTreeType<'t>) -> Result<()> {
6580        let context = function_name!();
6581        trace!("{}", self.trace_item_stack(context));
6582        let string = pop_item!(self, string, String, context);
6583        let key_2_built = KeyString { string };
6584        let key_2_built = Key::String(key_2_built);
6585        // Calling user action here
6586        self.user_grammar.key(&key_2_built)?;
6587        self.push(ASTType::Key(key_2_built), context);
6588        Ok(())
6589    }
6590
6591    /// Semantic action for production 64:
6592    ///
6593    /// `Key: Integer;`
6594    ///
6595    #[parol_runtime::function_name::named]
6596    fn key_3(&mut self, _integer: &ParseTreeType<'t>) -> Result<()> {
6597        let context = function_name!();
6598        trace!("{}", self.trace_item_stack(context));
6599        let integer = pop_item!(self, integer, Integer, context);
6600        let key_3_built = KeyInteger { integer };
6601        let key_3_built = Key::Integer(key_3_built);
6602        // Calling user action here
6603        self.user_grammar.key(&key_3_built)?;
6604        self.push(ASTType::Key(key_3_built), context);
6605        Ok(())
6606    }
6607
6608    /// Semantic action for production 65:
6609    ///
6610    /// `Key: Float;`
6611    ///
6612    #[parol_runtime::function_name::named]
6613    fn key_4(&mut self, _float: &ParseTreeType<'t>) -> Result<()> {
6614        let context = function_name!();
6615        trace!("{}", self.trace_item_stack(context));
6616        let float = pop_item!(self, float, Float, context);
6617        let key_4_built = KeyFloat { float };
6618        let key_4_built = Key::Float(key_4_built);
6619        // Calling user action here
6620        self.user_grammar.key(&key_4_built)?;
6621        self.push(ASTType::Key(key_4_built), context);
6622        Ok(())
6623    }
6624
6625    /// Semantic action for production 66:
6626    ///
6627    /// `Key: KeyTuple;`
6628    ///
6629    #[parol_runtime::function_name::named]
6630    fn key_5(&mut self, _key_tuple: &ParseTreeType<'t>) -> Result<()> {
6631        let context = function_name!();
6632        trace!("{}", self.trace_item_stack(context));
6633        let key_tuple = pop_item!(self, key_tuple, KeyTuple, context);
6634        let key_5_built = KeyKeyTuple { key_tuple };
6635        let key_5_built = Key::KeyTuple(key_5_built);
6636        // Calling user action here
6637        self.user_grammar.key(&key_5_built)?;
6638        self.push(ASTType::Key(key_5_built), context);
6639        Ok(())
6640    }
6641
6642    /// Semantic action for production 67:
6643    ///
6644    /// `Key: TupleIndex;`
6645    ///
6646    #[parol_runtime::function_name::named]
6647    fn key_6(&mut self, _tuple_index: &ParseTreeType<'t>) -> Result<()> {
6648        let context = function_name!();
6649        trace!("{}", self.trace_item_stack(context));
6650        let tuple_index = pop_item!(self, tuple_index, TupleIndex, context);
6651        let key_6_built = KeyTupleIndex { tuple_index };
6652        let key_6_built = Key::TupleIndex(key_6_built);
6653        // Calling user action here
6654        self.user_grammar.key(&key_6_built)?;
6655        self.push(ASTType::Key(key_6_built), context);
6656        Ok(())
6657    }
6658
6659    /// Semantic action for production 68:
6660    ///
6661    /// `Key: Hole;`
6662    ///
6663    #[parol_runtime::function_name::named]
6664    fn key_7(&mut self, _hole: &ParseTreeType<'t>) -> Result<()> {
6665        let context = function_name!();
6666        trace!("{}", self.trace_item_stack(context));
6667        let hole = pop_item!(self, hole, Hole, context);
6668        let key_7_built = KeyHole { hole };
6669        let key_7_built = Key::Hole(key_7_built);
6670        // Calling user action here
6671        self.user_grammar.key(&key_7_built)?;
6672        self.push(ASTType::Key(key_7_built), context);
6673        Ok(())
6674    }
6675
6676    /// Semantic action for production 69:
6677    ///
6678    /// `TupleIndex: '#' Integer;`
6679    ///
6680    #[parol_runtime::function_name::named]
6681    fn tuple_index(
6682        &mut self,
6683        hash: &ParseTreeType<'t>,
6684        _integer: &ParseTreeType<'t>,
6685    ) -> Result<()> {
6686        let context = function_name!();
6687        trace!("{}", self.trace_item_stack(context));
6688        let hash = hash.token()?.clone();
6689        let integer = pop_item!(self, integer, Integer, context);
6690        let tuple_index_built = TupleIndex { hash, integer };
6691        // Calling user action here
6692        self.user_grammar.tuple_index(&tuple_index_built)?;
6693        self.push(ASTType::TupleIndex(tuple_index_built), context);
6694        Ok(())
6695    }
6696
6697    /// Semantic action for production 70:
6698    ///
6699    /// `ExtensionNameSpace: Ext KeyIdent;`
6700    ///
6701    #[parol_runtime::function_name::named]
6702    fn extension_name_space(
6703        &mut self,
6704        _ext: &ParseTreeType<'t>,
6705        _key_ident: &ParseTreeType<'t>,
6706    ) -> Result<()> {
6707        let context = function_name!();
6708        trace!("{}", self.trace_item_stack(context));
6709        let key_ident = pop_item!(self, key_ident, KeyIdent, context);
6710        let ext = pop_item!(self, ext, Ext, context);
6711        let extension_name_space_built = ExtensionNameSpace { ext, key_ident };
6712        // Calling user action here
6713        self.user_grammar
6714            .extension_name_space(&extension_name_space_built)?;
6715        self.push(
6716            ASTType::ExtensionNameSpace(extension_name_space_built),
6717            context,
6718        );
6719        Ok(())
6720    }
6721
6722    /// Semantic action for production 71:
6723    ///
6724    /// `KeyTuple: LParen KeyTupleOpt /* Option */ RParen;`
6725    ///
6726    #[parol_runtime::function_name::named]
6727    fn key_tuple(
6728        &mut self,
6729        _l_paren: &ParseTreeType<'t>,
6730        _key_tuple_opt: &ParseTreeType<'t>,
6731        _r_paren: &ParseTreeType<'t>,
6732    ) -> Result<()> {
6733        let context = function_name!();
6734        trace!("{}", self.trace_item_stack(context));
6735        let r_paren = pop_item!(self, r_paren, RParen, context);
6736        let key_tuple_opt = pop_item!(self, key_tuple_opt, KeyTupleOpt, context);
6737        let l_paren = pop_item!(self, l_paren, LParen, context);
6738        let key_tuple_built = KeyTuple {
6739            l_paren,
6740            key_tuple_opt,
6741            r_paren,
6742        };
6743        // Calling user action here
6744        self.user_grammar.key_tuple(&key_tuple_built)?;
6745        self.push(ASTType::KeyTuple(key_tuple_built), context);
6746        Ok(())
6747    }
6748
6749    /// Semantic action for production 72:
6750    ///
6751    /// `KeyTupleOpt /* Option<T>::Some */: KeyTupleElements;`
6752    ///
6753    #[parol_runtime::function_name::named]
6754    fn key_tuple_opt_0(&mut self, _key_tuple_elements: &ParseTreeType<'t>) -> Result<()> {
6755        let context = function_name!();
6756        trace!("{}", self.trace_item_stack(context));
6757        let key_tuple_elements = pop_item!(self, key_tuple_elements, KeyTupleElements, context);
6758        let key_tuple_opt_0_built = KeyTupleOpt { key_tuple_elements };
6759        self.push(ASTType::KeyTupleOpt(Some(key_tuple_opt_0_built)), context);
6760        Ok(())
6761    }
6762
6763    /// Semantic action for production 73:
6764    ///
6765    /// `KeyTupleOpt /* Option<T>::None */: ;`
6766    ///
6767    #[parol_runtime::function_name::named]
6768    fn key_tuple_opt_1(&mut self) -> Result<()> {
6769        let context = function_name!();
6770        trace!("{}", self.trace_item_stack(context));
6771        self.push(ASTType::KeyTupleOpt(None), context);
6772        Ok(())
6773    }
6774
6775    /// Semantic action for production 74:
6776    ///
6777    /// `KeyTupleElements: KeyValue KeyTupleElementsOpt /* Option */;`
6778    ///
6779    #[parol_runtime::function_name::named]
6780    fn key_tuple_elements(
6781        &mut self,
6782        _key_value: &ParseTreeType<'t>,
6783        _key_tuple_elements_opt: &ParseTreeType<'t>,
6784    ) -> Result<()> {
6785        let context = function_name!();
6786        trace!("{}", self.trace_item_stack(context));
6787        let key_tuple_elements_opt =
6788            pop_item!(self, key_tuple_elements_opt, KeyTupleElementsOpt, context);
6789        let key_value = pop_item!(self, key_value, KeyValue, context);
6790        let key_tuple_elements_built = KeyTupleElements {
6791            key_value,
6792            key_tuple_elements_opt: key_tuple_elements_opt.map(Box::new),
6793        };
6794        // Calling user action here
6795        self.user_grammar
6796            .key_tuple_elements(&key_tuple_elements_built)?;
6797        self.push(ASTType::KeyTupleElements(key_tuple_elements_built), context);
6798        Ok(())
6799    }
6800
6801    /// Semantic action for production 75:
6802    ///
6803    /// `KeyTupleElementsOpt /* Option<T>::Some */: KeyTupleElementsTail;`
6804    ///
6805    #[parol_runtime::function_name::named]
6806    fn key_tuple_elements_opt_0(
6807        &mut self,
6808        _key_tuple_elements_tail: &ParseTreeType<'t>,
6809    ) -> Result<()> {
6810        let context = function_name!();
6811        trace!("{}", self.trace_item_stack(context));
6812        let key_tuple_elements_tail =
6813            pop_item!(self, key_tuple_elements_tail, KeyTupleElementsTail, context);
6814        let key_tuple_elements_opt_0_built = KeyTupleElementsOpt {
6815            key_tuple_elements_tail,
6816        };
6817        self.push(
6818            ASTType::KeyTupleElementsOpt(Some(key_tuple_elements_opt_0_built)),
6819            context,
6820        );
6821        Ok(())
6822    }
6823
6824    /// Semantic action for production 76:
6825    ///
6826    /// `KeyTupleElementsOpt /* Option<T>::None */: ;`
6827    ///
6828    #[parol_runtime::function_name::named]
6829    fn key_tuple_elements_opt_1(&mut self) -> Result<()> {
6830        let context = function_name!();
6831        trace!("{}", self.trace_item_stack(context));
6832        self.push(ASTType::KeyTupleElementsOpt(None), context);
6833        Ok(())
6834    }
6835
6836    /// Semantic action for production 77:
6837    ///
6838    /// `KeyTupleElementsTail: Comma KeyTupleElementsTailOpt /* Option */;`
6839    ///
6840    #[parol_runtime::function_name::named]
6841    fn key_tuple_elements_tail(
6842        &mut self,
6843        _comma: &ParseTreeType<'t>,
6844        _key_tuple_elements_tail_opt: &ParseTreeType<'t>,
6845    ) -> Result<()> {
6846        let context = function_name!();
6847        trace!("{}", self.trace_item_stack(context));
6848        let key_tuple_elements_tail_opt = pop_item!(
6849            self,
6850            key_tuple_elements_tail_opt,
6851            KeyTupleElementsTailOpt,
6852            context
6853        );
6854        let comma = pop_item!(self, comma, Comma, context);
6855        let key_tuple_elements_tail_built = KeyTupleElementsTail {
6856            comma,
6857            key_tuple_elements_tail_opt,
6858        };
6859        // Calling user action here
6860        self.user_grammar
6861            .key_tuple_elements_tail(&key_tuple_elements_tail_built)?;
6862        self.push(
6863            ASTType::KeyTupleElementsTail(key_tuple_elements_tail_built),
6864            context,
6865        );
6866        Ok(())
6867    }
6868
6869    /// Semantic action for production 78:
6870    ///
6871    /// `KeyTupleElementsTailOpt /* Option<T>::Some */: KeyTupleElements;`
6872    ///
6873    #[parol_runtime::function_name::named]
6874    fn key_tuple_elements_tail_opt_0(
6875        &mut self,
6876        _key_tuple_elements: &ParseTreeType<'t>,
6877    ) -> Result<()> {
6878        let context = function_name!();
6879        trace!("{}", self.trace_item_stack(context));
6880        let key_tuple_elements = pop_item!(self, key_tuple_elements, KeyTupleElements, context);
6881        let key_tuple_elements_tail_opt_0_built = KeyTupleElementsTailOpt { key_tuple_elements };
6882        self.push(
6883            ASTType::KeyTupleElementsTailOpt(Some(key_tuple_elements_tail_opt_0_built)),
6884            context,
6885        );
6886        Ok(())
6887    }
6888
6889    /// Semantic action for production 79:
6890    ///
6891    /// `KeyTupleElementsTailOpt /* Option<T>::None */: ;`
6892    ///
6893    #[parol_runtime::function_name::named]
6894    fn key_tuple_elements_tail_opt_1(&mut self) -> Result<()> {
6895        let context = function_name!();
6896        trace!("{}", self.trace_item_stack(context));
6897        self.push(ASTType::KeyTupleElementsTailOpt(None), context);
6898        Ok(())
6899    }
6900
6901    /// Semantic action for production 80:
6902    ///
6903    /// `KeyValue: Integer;`
6904    ///
6905    #[parol_runtime::function_name::named]
6906    fn key_value_0(&mut self, _integer: &ParseTreeType<'t>) -> Result<()> {
6907        let context = function_name!();
6908        trace!("{}", self.trace_item_stack(context));
6909        let integer = pop_item!(self, integer, Integer, context);
6910        let key_value_0_built = KeyValueInteger { integer };
6911        let key_value_0_built = KeyValue::Integer(key_value_0_built);
6912        // Calling user action here
6913        self.user_grammar.key_value(&key_value_0_built)?;
6914        self.push(ASTType::KeyValue(key_value_0_built), context);
6915        Ok(())
6916    }
6917
6918    /// Semantic action for production 81:
6919    ///
6920    /// `KeyValue: Boolean;`
6921    ///
6922    #[parol_runtime::function_name::named]
6923    fn key_value_1(&mut self, _boolean: &ParseTreeType<'t>) -> Result<()> {
6924        let context = function_name!();
6925        trace!("{}", self.trace_item_stack(context));
6926        let boolean = pop_item!(self, boolean, Boolean, context);
6927        let key_value_1_built = KeyValueBoolean { boolean };
6928        let key_value_1_built = KeyValue::Boolean(key_value_1_built);
6929        // Calling user action here
6930        self.user_grammar.key_value(&key_value_1_built)?;
6931        self.push(ASTType::KeyValue(key_value_1_built), context);
6932        Ok(())
6933    }
6934
6935    /// Semantic action for production 82:
6936    ///
6937    /// `KeyValue: Str;`
6938    ///
6939    #[parol_runtime::function_name::named]
6940    fn key_value_2(&mut self, _str: &ParseTreeType<'t>) -> Result<()> {
6941        let context = function_name!();
6942        trace!("{}", self.trace_item_stack(context));
6943        let str = pop_item!(self, str, Str, context);
6944        let key_value_2_built = KeyValueStr { str };
6945        let key_value_2_built = KeyValue::Str(key_value_2_built);
6946        // Calling user action here
6947        self.user_grammar.key_value(&key_value_2_built)?;
6948        self.push(ASTType::KeyValue(key_value_2_built), context);
6949        Ok(())
6950    }
6951
6952    /// Semantic action for production 83:
6953    ///
6954    /// `KeyValue: KeyTuple;`
6955    ///
6956    #[parol_runtime::function_name::named]
6957    fn key_value_3(&mut self, _key_tuple: &ParseTreeType<'t>) -> Result<()> {
6958        let context = function_name!();
6959        trace!("{}", self.trace_item_stack(context));
6960        let key_tuple = pop_item!(self, key_tuple, KeyTuple, context);
6961        let key_value_3_built = KeyValueKeyTuple {
6962            key_tuple: Box::new(key_tuple),
6963        };
6964        let key_value_3_built = KeyValue::KeyTuple(key_value_3_built);
6965        // Calling user action here
6966        self.user_grammar.key_value(&key_value_3_built)?;
6967        self.push(ASTType::KeyValue(key_value_3_built), context);
6968        Ok(())
6969    }
6970
6971    /// Semantic action for production 84:
6972    ///
6973    /// `KeyValue: Hole;`
6974    ///
6975    #[parol_runtime::function_name::named]
6976    fn key_value_4(&mut self, _hole: &ParseTreeType<'t>) -> Result<()> {
6977        let context = function_name!();
6978        trace!("{}", self.trace_item_stack(context));
6979        let hole = pop_item!(self, hole, Hole, context);
6980        let key_value_4_built = KeyValueHole { hole };
6981        let key_value_4_built = KeyValue::Hole(key_value_4_built);
6982        // Calling user action here
6983        self.user_grammar.key_value(&key_value_4_built)?;
6984        self.push(ASTType::KeyValue(key_value_4_built), context);
6985        Ok(())
6986    }
6987
6988    /// Semantic action for production 85:
6989    ///
6990    /// `KeyIdent: Ident;`
6991    ///
6992    #[parol_runtime::function_name::named]
6993    fn key_ident_0(&mut self, _ident: &ParseTreeType<'t>) -> Result<()> {
6994        let context = function_name!();
6995        trace!("{}", self.trace_item_stack(context));
6996        let ident = pop_item!(self, ident, Ident, context);
6997        let key_ident_0_built = KeyIdentIdent { ident };
6998        let key_ident_0_built = KeyIdent::Ident(key_ident_0_built);
6999        // Calling user action here
7000        self.user_grammar.key_ident(&key_ident_0_built)?;
7001        self.push(ASTType::KeyIdent(key_ident_0_built), context);
7002        Ok(())
7003    }
7004
7005    /// Semantic action for production 86:
7006    ///
7007    /// `KeyIdent: True;`
7008    ///
7009    #[parol_runtime::function_name::named]
7010    fn key_ident_1(&mut self, _true: &ParseTreeType<'t>) -> Result<()> {
7011        let context = function_name!();
7012        trace!("{}", self.trace_item_stack(context));
7013        let r#true = pop_item!(self, r#true, True, context);
7014        let key_ident_1_built = KeyIdentTrue { r#true };
7015        let key_ident_1_built = KeyIdent::True(key_ident_1_built);
7016        // Calling user action here
7017        self.user_grammar.key_ident(&key_ident_1_built)?;
7018        self.push(ASTType::KeyIdent(key_ident_1_built), context);
7019        Ok(())
7020    }
7021
7022    /// Semantic action for production 87:
7023    ///
7024    /// `KeyIdent: False;`
7025    ///
7026    #[parol_runtime::function_name::named]
7027    fn key_ident_2(&mut self, _false: &ParseTreeType<'t>) -> Result<()> {
7028        let context = function_name!();
7029        trace!("{}", self.trace_item_stack(context));
7030        let r#false = pop_item!(self, r#false, False, context);
7031        let key_ident_2_built = KeyIdentFalse { r#false };
7032        let key_ident_2_built = KeyIdent::False(key_ident_2_built);
7033        // Calling user action here
7034        self.user_grammar.key_ident(&key_ident_2_built)?;
7035        self.push(ASTType::KeyIdent(key_ident_2_built), context);
7036        Ok(())
7037    }
7038
7039    /// Semantic action for production 88:
7040    ///
7041    /// `KeyIdent: Null;`
7042    ///
7043    #[parol_runtime::function_name::named]
7044    fn key_ident_3(&mut self, _null: &ParseTreeType<'t>) -> Result<()> {
7045        let context = function_name!();
7046        trace!("{}", self.trace_item_stack(context));
7047        let null = pop_item!(self, null, Null, context);
7048        let key_ident_3_built = KeyIdentNull { null };
7049        let key_ident_3_built = KeyIdent::Null(key_ident_3_built);
7050        // Calling user action here
7051        self.user_grammar.key_ident(&key_ident_3_built)?;
7052        self.push(ASTType::KeyIdent(key_ident_3_built), context);
7053        Ok(())
7054    }
7055
7056    /// Semantic action for production 89:
7057    ///
7058    /// `Value: Object;`
7059    ///
7060    #[parol_runtime::function_name::named]
7061    fn value_0(&mut self, _object: &ParseTreeType<'t>) -> Result<()> {
7062        let context = function_name!();
7063        trace!("{}", self.trace_item_stack(context));
7064        let object = pop_item!(self, object, Object, context);
7065        let value_0_built = ValueObject {
7066            object: Box::new(object),
7067        };
7068        let value_0_built = Value::Object(value_0_built);
7069        // Calling user action here
7070        self.user_grammar.value(&value_0_built)?;
7071        self.push(ASTType::Value(value_0_built), context);
7072        Ok(())
7073    }
7074
7075    /// Semantic action for production 90:
7076    ///
7077    /// `Value: Array;`
7078    ///
7079    #[parol_runtime::function_name::named]
7080    fn value_1(&mut self, _array: &ParseTreeType<'t>) -> Result<()> {
7081        let context = function_name!();
7082        trace!("{}", self.trace_item_stack(context));
7083        let array = pop_item!(self, array, Array, context);
7084        let value_1_built = ValueArray {
7085            array: Box::new(array),
7086        };
7087        let value_1_built = Value::Array(value_1_built);
7088        // Calling user action here
7089        self.user_grammar.value(&value_1_built)?;
7090        self.push(ASTType::Value(value_1_built), context);
7091        Ok(())
7092    }
7093
7094    /// Semantic action for production 91:
7095    ///
7096    /// `Value: Tuple;`
7097    ///
7098    #[parol_runtime::function_name::named]
7099    fn value_2(&mut self, _tuple: &ParseTreeType<'t>) -> Result<()> {
7100        let context = function_name!();
7101        trace!("{}", self.trace_item_stack(context));
7102        let tuple = pop_item!(self, tuple, Tuple, context);
7103        let value_2_built = ValueTuple {
7104            tuple: Box::new(tuple),
7105        };
7106        let value_2_built = Value::Tuple(value_2_built);
7107        // Calling user action here
7108        self.user_grammar.value(&value_2_built)?;
7109        self.push(ASTType::Value(value_2_built), context);
7110        Ok(())
7111    }
7112
7113    /// Semantic action for production 92:
7114    ///
7115    /// `Value: Number;`
7116    ///
7117    #[parol_runtime::function_name::named]
7118    fn value_3(&mut self, _number: &ParseTreeType<'t>) -> Result<()> {
7119        let context = function_name!();
7120        trace!("{}", self.trace_item_stack(context));
7121        let number = pop_item!(self, number, Number, context);
7122        let value_3_built = ValueNumber { number };
7123        let value_3_built = Value::Number(value_3_built);
7124        // Calling user action here
7125        self.user_grammar.value(&value_3_built)?;
7126        self.push(ASTType::Value(value_3_built), context);
7127        Ok(())
7128    }
7129
7130    /// Semantic action for production 93:
7131    ///
7132    /// `Value: Boolean;`
7133    ///
7134    #[parol_runtime::function_name::named]
7135    fn value_4(&mut self, _boolean: &ParseTreeType<'t>) -> Result<()> {
7136        let context = function_name!();
7137        trace!("{}", self.trace_item_stack(context));
7138        let boolean = pop_item!(self, boolean, Boolean, context);
7139        let value_4_built = ValueBoolean { boolean };
7140        let value_4_built = Value::Boolean(value_4_built);
7141        // Calling user action here
7142        self.user_grammar.value(&value_4_built)?;
7143        self.push(ASTType::Value(value_4_built), context);
7144        Ok(())
7145    }
7146
7147    /// Semantic action for production 94:
7148    ///
7149    /// `Value: Null;`
7150    ///
7151    #[parol_runtime::function_name::named]
7152    fn value_5(&mut self, _null: &ParseTreeType<'t>) -> Result<()> {
7153        let context = function_name!();
7154        trace!("{}", self.trace_item_stack(context));
7155        let null = pop_item!(self, null, Null, context);
7156        let value_5_built = ValueNull { null };
7157        let value_5_built = Value::Null(value_5_built);
7158        // Calling user action here
7159        self.user_grammar.value(&value_5_built)?;
7160        self.push(ASTType::Value(value_5_built), context);
7161        Ok(())
7162    }
7163
7164    /// Semantic action for production 95:
7165    ///
7166    /// `Value: Strings;`
7167    ///
7168    #[parol_runtime::function_name::named]
7169    fn value_6(&mut self, _strings: &ParseTreeType<'t>) -> Result<()> {
7170        let context = function_name!();
7171        trace!("{}", self.trace_item_stack(context));
7172        let strings = pop_item!(self, strings, Strings, context);
7173        let value_6_built = ValueStrings { strings };
7174        let value_6_built = Value::Strings(value_6_built);
7175        // Calling user action here
7176        self.user_grammar.value(&value_6_built)?;
7177        self.push(ASTType::Value(value_6_built), context);
7178        Ok(())
7179    }
7180
7181    /// Semantic action for production 96:
7182    ///
7183    /// `Value: Hole;`
7184    ///
7185    #[parol_runtime::function_name::named]
7186    fn value_7(&mut self, _hole: &ParseTreeType<'t>) -> Result<()> {
7187        let context = function_name!();
7188        trace!("{}", self.trace_item_stack(context));
7189        let hole = pop_item!(self, hole, Hole, context);
7190        let value_7_built = ValueHole { hole };
7191        let value_7_built = Value::Hole(value_7_built);
7192        // Calling user action here
7193        self.user_grammar.value(&value_7_built)?;
7194        self.push(ASTType::Value(value_7_built), context);
7195        Ok(())
7196    }
7197
7198    /// Semantic action for production 97:
7199    ///
7200    /// `Value: CodeBlock;`
7201    ///
7202    #[parol_runtime::function_name::named]
7203    fn value_8(&mut self, _code_block: &ParseTreeType<'t>) -> Result<()> {
7204        let context = function_name!();
7205        trace!("{}", self.trace_item_stack(context));
7206        let code_block = pop_item!(self, code_block, CodeBlock, context);
7207        let value_8_built = ValueCodeBlock { code_block };
7208        let value_8_built = Value::CodeBlock(value_8_built);
7209        // Calling user action here
7210        self.user_grammar.value(&value_8_built)?;
7211        self.push(ASTType::Value(value_8_built), context);
7212        Ok(())
7213    }
7214
7215    /// Semantic action for production 98:
7216    ///
7217    /// `Value: InlineCode;`
7218    ///
7219    #[parol_runtime::function_name::named]
7220    fn value_9(&mut self, _inline_code: &ParseTreeType<'t>) -> Result<()> {
7221        let context = function_name!();
7222        trace!("{}", self.trace_item_stack(context));
7223        let inline_code = pop_item!(self, inline_code, InlineCode, context);
7224        let value_9_built = ValueInlineCode { inline_code };
7225        let value_9_built = Value::InlineCode(value_9_built);
7226        // Calling user action here
7227        self.user_grammar.value(&value_9_built)?;
7228        self.push(ASTType::Value(value_9_built), context);
7229        Ok(())
7230    }
7231
7232    /// Semantic action for production 99:
7233    ///
7234    /// `Object: Begin ObjectOpt /* Option */ ObjectList /* Vec */ End;`
7235    ///
7236    #[parol_runtime::function_name::named]
7237    fn object(
7238        &mut self,
7239        _begin: &ParseTreeType<'t>,
7240        _object_opt: &ParseTreeType<'t>,
7241        _object_list: &ParseTreeType<'t>,
7242        _end: &ParseTreeType<'t>,
7243    ) -> Result<()> {
7244        let context = function_name!();
7245        trace!("{}", self.trace_item_stack(context));
7246        let end = pop_item!(self, end, End, context);
7247        let object_list = pop_and_reverse_item!(self, object_list, ObjectList, context);
7248        let object_opt = pop_item!(self, object_opt, ObjectOpt, context);
7249        let begin = pop_item!(self, begin, Begin, context);
7250        let object_built = Object {
7251            begin,
7252            object_opt,
7253            object_list,
7254            end,
7255        };
7256        // Calling user action here
7257        self.user_grammar.object(&object_built)?;
7258        self.push(ASTType::Object(object_built), context);
7259        Ok(())
7260    }
7261
7262    /// Semantic action for production 100:
7263    ///
7264    /// `ObjectList /* Vec<T>::Push */: Keys MapBind Value ObjectOpt0 /* Option */ ObjectList;`
7265    ///
7266    #[parol_runtime::function_name::named]
7267    fn object_list_0(
7268        &mut self,
7269        _keys: &ParseTreeType<'t>,
7270        _map_bind: &ParseTreeType<'t>,
7271        _value: &ParseTreeType<'t>,
7272        _object_opt0: &ParseTreeType<'t>,
7273        _object_list: &ParseTreeType<'t>,
7274    ) -> Result<()> {
7275        let context = function_name!();
7276        trace!("{}", self.trace_item_stack(context));
7277        let mut object_list = pop_item!(self, object_list, ObjectList, context);
7278        let object_opt0 = pop_item!(self, object_opt0, ObjectOpt0, context);
7279        let value = pop_item!(self, value, Value, context);
7280        let map_bind = pop_item!(self, map_bind, MapBind, context);
7281        let keys = pop_item!(self, keys, Keys, context);
7282        let object_list_0_built = ObjectList {
7283            object_opt0,
7284            value,
7285            map_bind,
7286            keys,
7287        };
7288        // Add an element to the vector
7289        object_list.push(object_list_0_built);
7290        self.push(ASTType::ObjectList(object_list), context);
7291        Ok(())
7292    }
7293
7294    /// Semantic action for production 101:
7295    ///
7296    /// `ObjectList /* Vec<T>::New */: ;`
7297    ///
7298    #[parol_runtime::function_name::named]
7299    fn object_list_1(&mut self) -> Result<()> {
7300        let context = function_name!();
7301        trace!("{}", self.trace_item_stack(context));
7302        let object_list_1_built = Vec::new();
7303        self.push(ASTType::ObjectList(object_list_1_built), context);
7304        Ok(())
7305    }
7306
7307    /// Semantic action for production 102:
7308    ///
7309    /// `ObjectOpt0 /* Option<T>::Some */: Comma;`
7310    ///
7311    #[parol_runtime::function_name::named]
7312    fn object_opt0_0(&mut self, _comma: &ParseTreeType<'t>) -> Result<()> {
7313        let context = function_name!();
7314        trace!("{}", self.trace_item_stack(context));
7315        let comma = pop_item!(self, comma, Comma, context);
7316        let object_opt0_0_built = ObjectOpt0 { comma };
7317        self.push(ASTType::ObjectOpt0(Some(object_opt0_0_built)), context);
7318        Ok(())
7319    }
7320
7321    /// Semantic action for production 103:
7322    ///
7323    /// `ObjectOpt0 /* Option<T>::None */: ;`
7324    ///
7325    #[parol_runtime::function_name::named]
7326    fn object_opt0_1(&mut self) -> Result<()> {
7327        let context = function_name!();
7328        trace!("{}", self.trace_item_stack(context));
7329        self.push(ASTType::ObjectOpt0(None), context);
7330        Ok(())
7331    }
7332
7333    /// Semantic action for production 104:
7334    ///
7335    /// `ObjectOpt /* Option<T>::Some */: ValueBinding ObjectOpt1 /* Option */;`
7336    ///
7337    #[parol_runtime::function_name::named]
7338    fn object_opt_0(
7339        &mut self,
7340        _value_binding: &ParseTreeType<'t>,
7341        _object_opt1: &ParseTreeType<'t>,
7342    ) -> Result<()> {
7343        let context = function_name!();
7344        trace!("{}", self.trace_item_stack(context));
7345        let object_opt1 = pop_item!(self, object_opt1, ObjectOpt1, context);
7346        let value_binding = pop_item!(self, value_binding, ValueBinding, context);
7347        let object_opt_0_built = ObjectOpt {
7348            value_binding,
7349            object_opt1,
7350        };
7351        self.push(ASTType::ObjectOpt(Some(object_opt_0_built)), context);
7352        Ok(())
7353    }
7354
7355    /// Semantic action for production 105:
7356    ///
7357    /// `ObjectOpt1 /* Option<T>::Some */: Comma;`
7358    ///
7359    #[parol_runtime::function_name::named]
7360    fn object_opt1_0(&mut self, _comma: &ParseTreeType<'t>) -> Result<()> {
7361        let context = function_name!();
7362        trace!("{}", self.trace_item_stack(context));
7363        let comma = pop_item!(self, comma, Comma, context);
7364        let object_opt1_0_built = ObjectOpt1 { comma };
7365        self.push(ASTType::ObjectOpt1(Some(object_opt1_0_built)), context);
7366        Ok(())
7367    }
7368
7369    /// Semantic action for production 106:
7370    ///
7371    /// `ObjectOpt1 /* Option<T>::None */: ;`
7372    ///
7373    #[parol_runtime::function_name::named]
7374    fn object_opt1_1(&mut self) -> Result<()> {
7375        let context = function_name!();
7376        trace!("{}", self.trace_item_stack(context));
7377        self.push(ASTType::ObjectOpt1(None), context);
7378        Ok(())
7379    }
7380
7381    /// Semantic action for production 107:
7382    ///
7383    /// `ObjectOpt /* Option<T>::None */: ;`
7384    ///
7385    #[parol_runtime::function_name::named]
7386    fn object_opt_1(&mut self) -> Result<()> {
7387        let context = function_name!();
7388        trace!("{}", self.trace_item_stack(context));
7389        self.push(ASTType::ObjectOpt(None), context);
7390        Ok(())
7391    }
7392
7393    /// Semantic action for production 108:
7394    ///
7395    /// `MapBind: '=>';`
7396    ///
7397    #[parol_runtime::function_name::named]
7398    fn map_bind(&mut self, map_bind: &ParseTreeType<'t>) -> Result<()> {
7399        let context = function_name!();
7400        trace!("{}", self.trace_item_stack(context));
7401        let map_bind = map_bind.token()?.clone();
7402        let map_bind_built = MapBind { map_bind };
7403        // Calling user action here
7404        self.user_grammar.map_bind(&map_bind_built)?;
7405        self.push(ASTType::MapBind(map_bind_built), context);
7406        Ok(())
7407    }
7408
7409    /// Semantic action for production 109:
7410    ///
7411    /// `Array: ArrayBegin ArrayOpt /* Option */ ArrayEnd;`
7412    ///
7413    #[parol_runtime::function_name::named]
7414    fn array(
7415        &mut self,
7416        _array_begin: &ParseTreeType<'t>,
7417        _array_opt: &ParseTreeType<'t>,
7418        _array_end: &ParseTreeType<'t>,
7419    ) -> Result<()> {
7420        let context = function_name!();
7421        trace!("{}", self.trace_item_stack(context));
7422        let array_end = pop_item!(self, array_end, ArrayEnd, context);
7423        let array_opt = pop_item!(self, array_opt, ArrayOpt, context);
7424        let array_begin = pop_item!(self, array_begin, ArrayBegin, context);
7425        let array_built = Array {
7426            array_begin,
7427            array_opt,
7428            array_end,
7429        };
7430        // Calling user action here
7431        self.user_grammar.array(&array_built)?;
7432        self.push(ASTType::Array(array_built), context);
7433        Ok(())
7434    }
7435
7436    /// Semantic action for production 110:
7437    ///
7438    /// `ArrayOpt /* Option<T>::Some */: ArrayElements;`
7439    ///
7440    #[parol_runtime::function_name::named]
7441    fn array_opt_0(&mut self, _array_elements: &ParseTreeType<'t>) -> Result<()> {
7442        let context = function_name!();
7443        trace!("{}", self.trace_item_stack(context));
7444        let array_elements = pop_item!(self, array_elements, ArrayElements, context);
7445        let array_opt_0_built = ArrayOpt { array_elements };
7446        self.push(ASTType::ArrayOpt(Some(array_opt_0_built)), context);
7447        Ok(())
7448    }
7449
7450    /// Semantic action for production 111:
7451    ///
7452    /// `ArrayOpt /* Option<T>::None */: ;`
7453    ///
7454    #[parol_runtime::function_name::named]
7455    fn array_opt_1(&mut self) -> Result<()> {
7456        let context = function_name!();
7457        trace!("{}", self.trace_item_stack(context));
7458        self.push(ASTType::ArrayOpt(None), context);
7459        Ok(())
7460    }
7461
7462    /// Semantic action for production 112:
7463    ///
7464    /// `ArrayElements: Value ArrayElementsOpt /* Option */;`
7465    ///
7466    #[parol_runtime::function_name::named]
7467    fn array_elements(
7468        &mut self,
7469        _value: &ParseTreeType<'t>,
7470        _array_elements_opt: &ParseTreeType<'t>,
7471    ) -> Result<()> {
7472        let context = function_name!();
7473        trace!("{}", self.trace_item_stack(context));
7474        let array_elements_opt = pop_item!(self, array_elements_opt, ArrayElementsOpt, context);
7475        let value = pop_item!(self, value, Value, context);
7476        let array_elements_built = ArrayElements {
7477            value,
7478            array_elements_opt: array_elements_opt.map(Box::new),
7479        };
7480        // Calling user action here
7481        self.user_grammar.array_elements(&array_elements_built)?;
7482        self.push(ASTType::ArrayElements(array_elements_built), context);
7483        Ok(())
7484    }
7485
7486    /// Semantic action for production 113:
7487    ///
7488    /// `ArrayElementsOpt /* Option<T>::Some */: ArrayElementsTail;`
7489    ///
7490    #[parol_runtime::function_name::named]
7491    fn array_elements_opt_0(&mut self, _array_elements_tail: &ParseTreeType<'t>) -> Result<()> {
7492        let context = function_name!();
7493        trace!("{}", self.trace_item_stack(context));
7494        let array_elements_tail = pop_item!(self, array_elements_tail, ArrayElementsTail, context);
7495        let array_elements_opt_0_built = ArrayElementsOpt {
7496            array_elements_tail,
7497        };
7498        self.push(
7499            ASTType::ArrayElementsOpt(Some(array_elements_opt_0_built)),
7500            context,
7501        );
7502        Ok(())
7503    }
7504
7505    /// Semantic action for production 114:
7506    ///
7507    /// `ArrayElementsOpt /* Option<T>::None */: ;`
7508    ///
7509    #[parol_runtime::function_name::named]
7510    fn array_elements_opt_1(&mut self) -> Result<()> {
7511        let context = function_name!();
7512        trace!("{}", self.trace_item_stack(context));
7513        self.push(ASTType::ArrayElementsOpt(None), context);
7514        Ok(())
7515    }
7516
7517    /// Semantic action for production 115:
7518    ///
7519    /// `ArrayElementsTail: Comma ArrayElementsTailOpt /* Option */;`
7520    ///
7521    #[parol_runtime::function_name::named]
7522    fn array_elements_tail(
7523        &mut self,
7524        _comma: &ParseTreeType<'t>,
7525        _array_elements_tail_opt: &ParseTreeType<'t>,
7526    ) -> Result<()> {
7527        let context = function_name!();
7528        trace!("{}", self.trace_item_stack(context));
7529        let array_elements_tail_opt =
7530            pop_item!(self, array_elements_tail_opt, ArrayElementsTailOpt, context);
7531        let comma = pop_item!(self, comma, Comma, context);
7532        let array_elements_tail_built = ArrayElementsTail {
7533            comma,
7534            array_elements_tail_opt,
7535        };
7536        // Calling user action here
7537        self.user_grammar
7538            .array_elements_tail(&array_elements_tail_built)?;
7539        self.push(
7540            ASTType::ArrayElementsTail(array_elements_tail_built),
7541            context,
7542        );
7543        Ok(())
7544    }
7545
7546    /// Semantic action for production 116:
7547    ///
7548    /// `ArrayElementsTailOpt /* Option<T>::Some */: ArrayElements;`
7549    ///
7550    #[parol_runtime::function_name::named]
7551    fn array_elements_tail_opt_0(&mut self, _array_elements: &ParseTreeType<'t>) -> Result<()> {
7552        let context = function_name!();
7553        trace!("{}", self.trace_item_stack(context));
7554        let array_elements = pop_item!(self, array_elements, ArrayElements, context);
7555        let array_elements_tail_opt_0_built = ArrayElementsTailOpt { array_elements };
7556        self.push(
7557            ASTType::ArrayElementsTailOpt(Some(array_elements_tail_opt_0_built)),
7558            context,
7559        );
7560        Ok(())
7561    }
7562
7563    /// Semantic action for production 117:
7564    ///
7565    /// `ArrayElementsTailOpt /* Option<T>::None */: ;`
7566    ///
7567    #[parol_runtime::function_name::named]
7568    fn array_elements_tail_opt_1(&mut self) -> Result<()> {
7569        let context = function_name!();
7570        trace!("{}", self.trace_item_stack(context));
7571        self.push(ASTType::ArrayElementsTailOpt(None), context);
7572        Ok(())
7573    }
7574
7575    /// Semantic action for production 118:
7576    ///
7577    /// `Tuple: LParen TupleOpt /* Option */ RParen;`
7578    ///
7579    #[parol_runtime::function_name::named]
7580    fn tuple(
7581        &mut self,
7582        _l_paren: &ParseTreeType<'t>,
7583        _tuple_opt: &ParseTreeType<'t>,
7584        _r_paren: &ParseTreeType<'t>,
7585    ) -> Result<()> {
7586        let context = function_name!();
7587        trace!("{}", self.trace_item_stack(context));
7588        let r_paren = pop_item!(self, r_paren, RParen, context);
7589        let tuple_opt = pop_item!(self, tuple_opt, TupleOpt, context);
7590        let l_paren = pop_item!(self, l_paren, LParen, context);
7591        let tuple_built = Tuple {
7592            l_paren,
7593            tuple_opt,
7594            r_paren,
7595        };
7596        // Calling user action here
7597        self.user_grammar.tuple(&tuple_built)?;
7598        self.push(ASTType::Tuple(tuple_built), context);
7599        Ok(())
7600    }
7601
7602    /// Semantic action for production 119:
7603    ///
7604    /// `TupleOpt /* Option<T>::Some */: TupleElements;`
7605    ///
7606    #[parol_runtime::function_name::named]
7607    fn tuple_opt_0(&mut self, _tuple_elements: &ParseTreeType<'t>) -> Result<()> {
7608        let context = function_name!();
7609        trace!("{}", self.trace_item_stack(context));
7610        let tuple_elements = pop_item!(self, tuple_elements, TupleElements, context);
7611        let tuple_opt_0_built = TupleOpt { tuple_elements };
7612        self.push(ASTType::TupleOpt(Some(tuple_opt_0_built)), context);
7613        Ok(())
7614    }
7615
7616    /// Semantic action for production 120:
7617    ///
7618    /// `TupleOpt /* Option<T>::None */: ;`
7619    ///
7620    #[parol_runtime::function_name::named]
7621    fn tuple_opt_1(&mut self) -> Result<()> {
7622        let context = function_name!();
7623        trace!("{}", self.trace_item_stack(context));
7624        self.push(ASTType::TupleOpt(None), context);
7625        Ok(())
7626    }
7627
7628    /// Semantic action for production 121:
7629    ///
7630    /// `TupleElements: Value TupleElementsOpt /* Option */;`
7631    ///
7632    #[parol_runtime::function_name::named]
7633    fn tuple_elements(
7634        &mut self,
7635        _value: &ParseTreeType<'t>,
7636        _tuple_elements_opt: &ParseTreeType<'t>,
7637    ) -> Result<()> {
7638        let context = function_name!();
7639        trace!("{}", self.trace_item_stack(context));
7640        let tuple_elements_opt = pop_item!(self, tuple_elements_opt, TupleElementsOpt, context);
7641        let value = pop_item!(self, value, Value, context);
7642        let tuple_elements_built = TupleElements {
7643            value,
7644            tuple_elements_opt: tuple_elements_opt.map(Box::new),
7645        };
7646        // Calling user action here
7647        self.user_grammar.tuple_elements(&tuple_elements_built)?;
7648        self.push(ASTType::TupleElements(tuple_elements_built), context);
7649        Ok(())
7650    }
7651
7652    /// Semantic action for production 122:
7653    ///
7654    /// `TupleElementsOpt /* Option<T>::Some */: TupleElementsTail;`
7655    ///
7656    #[parol_runtime::function_name::named]
7657    fn tuple_elements_opt_0(&mut self, _tuple_elements_tail: &ParseTreeType<'t>) -> Result<()> {
7658        let context = function_name!();
7659        trace!("{}", self.trace_item_stack(context));
7660        let tuple_elements_tail = pop_item!(self, tuple_elements_tail, TupleElementsTail, context);
7661        let tuple_elements_opt_0_built = TupleElementsOpt {
7662            tuple_elements_tail,
7663        };
7664        self.push(
7665            ASTType::TupleElementsOpt(Some(tuple_elements_opt_0_built)),
7666            context,
7667        );
7668        Ok(())
7669    }
7670
7671    /// Semantic action for production 123:
7672    ///
7673    /// `TupleElementsOpt /* Option<T>::None */: ;`
7674    ///
7675    #[parol_runtime::function_name::named]
7676    fn tuple_elements_opt_1(&mut self) -> Result<()> {
7677        let context = function_name!();
7678        trace!("{}", self.trace_item_stack(context));
7679        self.push(ASTType::TupleElementsOpt(None), context);
7680        Ok(())
7681    }
7682
7683    /// Semantic action for production 124:
7684    ///
7685    /// `TupleElementsTail: Comma TupleElementsTailOpt /* Option */;`
7686    ///
7687    #[parol_runtime::function_name::named]
7688    fn tuple_elements_tail(
7689        &mut self,
7690        _comma: &ParseTreeType<'t>,
7691        _tuple_elements_tail_opt: &ParseTreeType<'t>,
7692    ) -> Result<()> {
7693        let context = function_name!();
7694        trace!("{}", self.trace_item_stack(context));
7695        let tuple_elements_tail_opt =
7696            pop_item!(self, tuple_elements_tail_opt, TupleElementsTailOpt, context);
7697        let comma = pop_item!(self, comma, Comma, context);
7698        let tuple_elements_tail_built = TupleElementsTail {
7699            comma,
7700            tuple_elements_tail_opt,
7701        };
7702        // Calling user action here
7703        self.user_grammar
7704            .tuple_elements_tail(&tuple_elements_tail_built)?;
7705        self.push(
7706            ASTType::TupleElementsTail(tuple_elements_tail_built),
7707            context,
7708        );
7709        Ok(())
7710    }
7711
7712    /// Semantic action for production 125:
7713    ///
7714    /// `TupleElementsTailOpt /* Option<T>::Some */: TupleElements;`
7715    ///
7716    #[parol_runtime::function_name::named]
7717    fn tuple_elements_tail_opt_0(&mut self, _tuple_elements: &ParseTreeType<'t>) -> Result<()> {
7718        let context = function_name!();
7719        trace!("{}", self.trace_item_stack(context));
7720        let tuple_elements = pop_item!(self, tuple_elements, TupleElements, context);
7721        let tuple_elements_tail_opt_0_built = TupleElementsTailOpt { tuple_elements };
7722        self.push(
7723            ASTType::TupleElementsTailOpt(Some(tuple_elements_tail_opt_0_built)),
7724            context,
7725        );
7726        Ok(())
7727    }
7728
7729    /// Semantic action for production 126:
7730    ///
7731    /// `TupleElementsTailOpt /* Option<T>::None */: ;`
7732    ///
7733    #[parol_runtime::function_name::named]
7734    fn tuple_elements_tail_opt_1(&mut self) -> Result<()> {
7735        let context = function_name!();
7736        trace!("{}", self.trace_item_stack(context));
7737        self.push(ASTType::TupleElementsTailOpt(None), context);
7738        Ok(())
7739    }
7740
7741    /// Semantic action for production 127:
7742    ///
7743    /// `Number: Float;`
7744    ///
7745    #[parol_runtime::function_name::named]
7746    fn number_0(&mut self, _float: &ParseTreeType<'t>) -> Result<()> {
7747        let context = function_name!();
7748        trace!("{}", self.trace_item_stack(context));
7749        let float = pop_item!(self, float, Float, context);
7750        let number_0_built = NumberFloat { float };
7751        let number_0_built = Number::Float(number_0_built);
7752        // Calling user action here
7753        self.user_grammar.number(&number_0_built)?;
7754        self.push(ASTType::Number(number_0_built), context);
7755        Ok(())
7756    }
7757
7758    /// Semantic action for production 128:
7759    ///
7760    /// `Number: Integer;`
7761    ///
7762    #[parol_runtime::function_name::named]
7763    fn number_1(&mut self, _integer: &ParseTreeType<'t>) -> Result<()> {
7764        let context = function_name!();
7765        trace!("{}", self.trace_item_stack(context));
7766        let integer = pop_item!(self, integer, Integer, context);
7767        let number_1_built = NumberInteger { integer };
7768        let number_1_built = Number::Integer(number_1_built);
7769        // Calling user action here
7770        self.user_grammar.number(&number_1_built)?;
7771        self.push(ASTType::Number(number_1_built), context);
7772        Ok(())
7773    }
7774
7775    /// Semantic action for production 129:
7776    ///
7777    /// `Number: Inf;`
7778    ///
7779    #[parol_runtime::function_name::named]
7780    fn number_2(&mut self, _inf: &ParseTreeType<'t>) -> Result<()> {
7781        let context = function_name!();
7782        trace!("{}", self.trace_item_stack(context));
7783        let inf = pop_item!(self, inf, Inf, context);
7784        let number_2_built = NumberInf { inf };
7785        let number_2_built = Number::Inf(number_2_built);
7786        // Calling user action here
7787        self.user_grammar.number(&number_2_built)?;
7788        self.push(ASTType::Number(number_2_built), context);
7789        Ok(())
7790    }
7791
7792    /// Semantic action for production 130:
7793    ///
7794    /// `Number: NaN;`
7795    ///
7796    #[parol_runtime::function_name::named]
7797    fn number_3(&mut self, _na_n: &ParseTreeType<'t>) -> Result<()> {
7798        let context = function_name!();
7799        trace!("{}", self.trace_item_stack(context));
7800        let na_n = pop_item!(self, na_n, NaN, context);
7801        let number_3_built = NumberNaN { na_n };
7802        let number_3_built = Number::NaN(number_3_built);
7803        // Calling user action here
7804        self.user_grammar.number(&number_3_built)?;
7805        self.push(ASTType::Number(number_3_built), context);
7806        Ok(())
7807    }
7808
7809    /// Semantic action for production 131:
7810    ///
7811    /// `Integer: <INITIAL, Header>/[-+]?\d[\d_]*/;`
7812    ///
7813    #[parol_runtime::function_name::named]
7814    fn integer(&mut self, integer: &ParseTreeType<'t>) -> Result<()> {
7815        let context = function_name!();
7816        trace!("{}", self.trace_item_stack(context));
7817        let integer = integer.token()?.clone();
7818        let integer_built = Integer { integer };
7819        // Calling user action here
7820        self.user_grammar.integer(&integer_built)?;
7821        self.push(ASTType::Integer(integer_built), context);
7822        Ok(())
7823    }
7824
7825    /// Semantic action for production 132:
7826    ///
7827    /// `Float: <INITIAL, Header>/[-+]?\d[\d_]*\.\d+([eE][-+]?\d+)?(f32|f64)?|[-+]?\d[\d_]*[eE][-+]?\d+(f32|f64)?/;`
7828    ///
7829    #[parol_runtime::function_name::named]
7830    fn float(&mut self, float: &ParseTreeType<'t>) -> Result<()> {
7831        let context = function_name!();
7832        trace!("{}", self.trace_item_stack(context));
7833        let float = float.token()?.clone();
7834        let float_built = Float { float };
7835        // Calling user action here
7836        self.user_grammar.float(&float_built)?;
7837        self.push(ASTType::Float(float_built), context);
7838        Ok(())
7839    }
7840
7841    /// Semantic action for production 133:
7842    ///
7843    /// `Inf: /[-+]?[Ii]nf/;`
7844    ///
7845    #[parol_runtime::function_name::named]
7846    fn inf(&mut self, inf: &ParseTreeType<'t>) -> Result<()> {
7847        let context = function_name!();
7848        trace!("{}", self.trace_item_stack(context));
7849        let inf = inf.token()?.clone();
7850        let inf_built = Inf { inf };
7851        // Calling user action here
7852        self.user_grammar.inf(&inf_built)?;
7853        self.push(ASTType::Inf(inf_built), context);
7854        Ok(())
7855    }
7856
7857    /// Semantic action for production 134:
7858    ///
7859    /// `NaN: /[Nn]a[Nn]/;`
7860    ///
7861    #[parol_runtime::function_name::named]
7862    fn na_n(&mut self, na_n: &ParseTreeType<'t>) -> Result<()> {
7863        let context = function_name!();
7864        trace!("{}", self.trace_item_stack(context));
7865        let na_n = na_n.token()?.clone();
7866        let na_n_built = NaN { na_n };
7867        // Calling user action here
7868        self.user_grammar.na_n(&na_n_built)?;
7869        self.push(ASTType::NaN(na_n_built), context);
7870        Ok(())
7871    }
7872
7873    /// Semantic action for production 135:
7874    ///
7875    /// `Boolean: True;`
7876    ///
7877    #[parol_runtime::function_name::named]
7878    fn boolean_0(&mut self, _true: &ParseTreeType<'t>) -> Result<()> {
7879        let context = function_name!();
7880        trace!("{}", self.trace_item_stack(context));
7881        let r#true = pop_item!(self, r#true, True, context);
7882        let boolean_0_built = BooleanTrue { r#true };
7883        let boolean_0_built = Boolean::True(boolean_0_built);
7884        // Calling user action here
7885        self.user_grammar.boolean(&boolean_0_built)?;
7886        self.push(ASTType::Boolean(boolean_0_built), context);
7887        Ok(())
7888    }
7889
7890    /// Semantic action for production 136:
7891    ///
7892    /// `Boolean: False;`
7893    ///
7894    #[parol_runtime::function_name::named]
7895    fn boolean_1(&mut self, _false: &ParseTreeType<'t>) -> Result<()> {
7896        let context = function_name!();
7897        trace!("{}", self.trace_item_stack(context));
7898        let r#false = pop_item!(self, r#false, False, context);
7899        let boolean_1_built = BooleanFalse { r#false };
7900        let boolean_1_built = Boolean::False(boolean_1_built);
7901        // Calling user action here
7902        self.user_grammar.boolean(&boolean_1_built)?;
7903        self.push(ASTType::Boolean(boolean_1_built), context);
7904        Ok(())
7905    }
7906
7907    /// Semantic action for production 137:
7908    ///
7909    /// `True: <INITIAL, Header>'true';`
7910    ///
7911    #[parol_runtime::function_name::named]
7912    fn r#true(&mut self, r#true: &ParseTreeType<'t>) -> Result<()> {
7913        let context = function_name!();
7914        trace!("{}", self.trace_item_stack(context));
7915        let r#true = r#true.token()?.clone();
7916        let r#true_built = True { r#true };
7917        // Calling user action here
7918        self.user_grammar.r#true(&r#true_built)?;
7919        self.push(ASTType::True(r#true_built), context);
7920        Ok(())
7921    }
7922
7923    /// Semantic action for production 138:
7924    ///
7925    /// `False: <INITIAL, Header>'false';`
7926    ///
7927    #[parol_runtime::function_name::named]
7928    fn r#false(&mut self, r#false: &ParseTreeType<'t>) -> Result<()> {
7929        let context = function_name!();
7930        trace!("{}", self.trace_item_stack(context));
7931        let r#false = r#false.token()?.clone();
7932        let r#false_built = False { r#false };
7933        // Calling user action here
7934        self.user_grammar.r#false(&r#false_built)?;
7935        self.push(ASTType::False(r#false_built), context);
7936        Ok(())
7937    }
7938
7939    /// Semantic action for production 139:
7940    ///
7941    /// `Null: <INITIAL, Header>'null';`
7942    ///
7943    #[parol_runtime::function_name::named]
7944    fn null(&mut self, null: &ParseTreeType<'t>) -> Result<()> {
7945        let context = function_name!();
7946        trace!("{}", self.trace_item_stack(context));
7947        let null = null.token()?.clone();
7948        let null_built = Null { null };
7949        // Calling user action here
7950        self.user_grammar.null(&null_built)?;
7951        self.push(ASTType::Null(null_built), context);
7952        Ok(())
7953    }
7954
7955    /// Semantic action for production 140:
7956    ///
7957    /// `Hole: <INITIAL, Header>/![\p{XID_Start}_]?[\p{XID_Continue}-]*/;`
7958    ///
7959    #[parol_runtime::function_name::named]
7960    fn hole(&mut self, hole: &ParseTreeType<'t>) -> Result<()> {
7961        let context = function_name!();
7962        trace!("{}", self.trace_item_stack(context));
7963        let hole = hole.token()?.clone();
7964        let hole_built = Hole { hole };
7965        // Calling user action here
7966        self.user_grammar.hole(&hole_built)?;
7967        self.push(ASTType::Hole(hole_built), context);
7968        Ok(())
7969    }
7970
7971    /// Semantic action for production 141:
7972    ///
7973    /// `String: Str;`
7974    ///
7975    #[parol_runtime::function_name::named]
7976    fn string_0(&mut self, _str: &ParseTreeType<'t>) -> Result<()> {
7977        let context = function_name!();
7978        trace!("{}", self.trace_item_stack(context));
7979        let str = pop_item!(self, str, Str, context);
7980        let string_0_built = StringStr { str };
7981        let string_0_built = String::Str(string_0_built);
7982        // Calling user action here
7983        self.user_grammar.string(&string_0_built)?;
7984        self.push(ASTType::String(string_0_built), context);
7985        Ok(())
7986    }
7987
7988    /// Semantic action for production 142:
7989    ///
7990    /// `String: LitStr;`
7991    ///
7992    #[parol_runtime::function_name::named]
7993    fn string_1(&mut self, _lit_str: &ParseTreeType<'t>) -> Result<()> {
7994        let context = function_name!();
7995        trace!("{}", self.trace_item_stack(context));
7996        let lit_str = pop_item!(self, lit_str, LitStr, context);
7997        let string_1_built = StringLitStr { lit_str };
7998        let string_1_built = String::LitStr(string_1_built);
7999        // Calling user action here
8000        self.user_grammar.string(&string_1_built)?;
8001        self.push(ASTType::String(string_1_built), context);
8002        Ok(())
8003    }
8004
8005    /// Semantic action for production 143:
8006    ///
8007    /// `String: LitStr1;`
8008    ///
8009    #[parol_runtime::function_name::named]
8010    fn string_2(&mut self, _lit_str1: &ParseTreeType<'t>) -> Result<()> {
8011        let context = function_name!();
8012        trace!("{}", self.trace_item_stack(context));
8013        let lit_str1 = pop_item!(self, lit_str1, LitStr1, context);
8014        let string_2_built = StringLitStr1 { lit_str1 };
8015        let string_2_built = String::LitStr1(string_2_built);
8016        // Calling user action here
8017        self.user_grammar.string(&string_2_built)?;
8018        self.push(ASTType::String(string_2_built), context);
8019        Ok(())
8020    }
8021
8022    /// Semantic action for production 144:
8023    ///
8024    /// `String: LitStr2;`
8025    ///
8026    #[parol_runtime::function_name::named]
8027    fn string_3(&mut self, _lit_str2: &ParseTreeType<'t>) -> Result<()> {
8028        let context = function_name!();
8029        trace!("{}", self.trace_item_stack(context));
8030        let lit_str2 = pop_item!(self, lit_str2, LitStr2, context);
8031        let string_3_built = StringLitStr2 { lit_str2 };
8032        let string_3_built = String::LitStr2(string_3_built);
8033        // Calling user action here
8034        self.user_grammar.string(&string_3_built)?;
8035        self.push(ASTType::String(string_3_built), context);
8036        Ok(())
8037    }
8038
8039    /// Semantic action for production 145:
8040    ///
8041    /// `String: LitStr3;`
8042    ///
8043    #[parol_runtime::function_name::named]
8044    fn string_4(&mut self, _lit_str3: &ParseTreeType<'t>) -> Result<()> {
8045        let context = function_name!();
8046        trace!("{}", self.trace_item_stack(context));
8047        let lit_str3 = pop_item!(self, lit_str3, LitStr3, context);
8048        let string_4_built = StringLitStr3 { lit_str3 };
8049        let string_4_built = String::LitStr3(string_4_built);
8050        // Calling user action here
8051        self.user_grammar.string(&string_4_built)?;
8052        self.push(ASTType::String(string_4_built), context);
8053        Ok(())
8054    }
8055
8056    /// Semantic action for production 146:
8057    ///
8058    /// `Strings: String StringsList /* Vec */;`
8059    ///
8060    #[parol_runtime::function_name::named]
8061    fn strings(
8062        &mut self,
8063        _string: &ParseTreeType<'t>,
8064        _strings_list: &ParseTreeType<'t>,
8065    ) -> Result<()> {
8066        let context = function_name!();
8067        trace!("{}", self.trace_item_stack(context));
8068        let strings_list = pop_and_reverse_item!(self, strings_list, StringsList, context);
8069        let string = pop_item!(self, string, String, context);
8070        let strings_built = Strings {
8071            string,
8072            strings_list,
8073        };
8074        // Calling user action here
8075        self.user_grammar.strings(&strings_built)?;
8076        self.push(ASTType::Strings(strings_built), context);
8077        Ok(())
8078    }
8079
8080    /// Semantic action for production 147:
8081    ///
8082    /// `StringsList /* Vec<T>::Push */: Continue String StringsList;`
8083    ///
8084    #[parol_runtime::function_name::named]
8085    fn strings_list_0(
8086        &mut self,
8087        _continue: &ParseTreeType<'t>,
8088        _string: &ParseTreeType<'t>,
8089        _strings_list: &ParseTreeType<'t>,
8090    ) -> Result<()> {
8091        let context = function_name!();
8092        trace!("{}", self.trace_item_stack(context));
8093        let mut strings_list = pop_item!(self, strings_list, StringsList, context);
8094        let string = pop_item!(self, string, String, context);
8095        let r#continue = pop_item!(self, r#continue, Continue, context);
8096        let strings_list_0_built = StringsList { string, r#continue };
8097        // Add an element to the vector
8098        strings_list.push(strings_list_0_built);
8099        self.push(ASTType::StringsList(strings_list), context);
8100        Ok(())
8101    }
8102
8103    /// Semantic action for production 148:
8104    ///
8105    /// `StringsList /* Vec<T>::New */: ;`
8106    ///
8107    #[parol_runtime::function_name::named]
8108    fn strings_list_1(&mut self) -> Result<()> {
8109        let context = function_name!();
8110        trace!("{}", self.trace_item_stack(context));
8111        let strings_list_1_built = Vec::new();
8112        self.push(ASTType::StringsList(strings_list_1_built), context);
8113        Ok(())
8114    }
8115
8116    /// Semantic action for production 149:
8117    ///
8118    /// `Str: <INITIAL, Header>/"([^"]|\\")*"/;`
8119    ///
8120    #[parol_runtime::function_name::named]
8121    fn str(&mut self, str: &ParseTreeType<'t>) -> Result<()> {
8122        let context = function_name!();
8123        trace!("{}", self.trace_item_stack(context));
8124        let str = str.token()?.clone();
8125        let str_built = Str { str };
8126        // Calling user action here
8127        self.user_grammar.str(&str_built)?;
8128        self.push(ASTType::Str(str_built), context);
8129        Ok(())
8130    }
8131
8132    /// Semantic action for production 150:
8133    ///
8134    /// `LitStr: <INITIAL, Header>/'[^']*'/;`
8135    ///
8136    #[parol_runtime::function_name::named]
8137    fn lit_str(&mut self, lit_str: &ParseTreeType<'t>) -> Result<()> {
8138        let context = function_name!();
8139        trace!("{}", self.trace_item_stack(context));
8140        let lit_str = lit_str.token()?.clone();
8141        let lit_str_built = LitStr { lit_str };
8142        // Calling user action here
8143        self.user_grammar.lit_str(&lit_str_built)?;
8144        self.push(ASTType::LitStr(lit_str_built), context);
8145        Ok(())
8146    }
8147
8148    /// Semantic action for production 151:
8149    ///
8150    /// `Text: <Text>/[^\r\n]*/;`
8151    ///
8152    #[parol_runtime::function_name::named]
8153    fn text(&mut self, text: &ParseTreeType<'t>) -> Result<()> {
8154        let context = function_name!();
8155        trace!("{}", self.trace_item_stack(context));
8156        let text = text.token()?.clone();
8157        let text_built = Text { text };
8158        // Calling user action here
8159        self.user_grammar.text(&text_built)?;
8160        self.push(ASTType::Text(text_built), context);
8161        Ok(())
8162    }
8163
8164    /// Semantic action for production 152:
8165    ///
8166    /// `InlineCode: DelimCode;`
8167    ///
8168    #[parol_runtime::function_name::named]
8169    fn inline_code_0(&mut self, _delim_code: &ParseTreeType<'t>) -> Result<()> {
8170        let context = function_name!();
8171        trace!("{}", self.trace_item_stack(context));
8172        let delim_code = pop_item!(self, delim_code, DelimCode, context);
8173        let inline_code_0_built = InlineCodeDelimCode { delim_code };
8174        let inline_code_0_built = InlineCode::DelimCode(inline_code_0_built);
8175        // Calling user action here
8176        self.user_grammar.inline_code(&inline_code_0_built)?;
8177        self.push(ASTType::InlineCode(inline_code_0_built), context);
8178        Ok(())
8179    }
8180
8181    /// Semantic action for production 153:
8182    ///
8183    /// `InlineCode: InlineCode1;`
8184    ///
8185    #[parol_runtime::function_name::named]
8186    fn inline_code_1(&mut self, _inline_code1: &ParseTreeType<'t>) -> Result<()> {
8187        let context = function_name!();
8188        trace!("{}", self.trace_item_stack(context));
8189        let inline_code1 = pop_item!(self, inline_code1, InlineCode1, context);
8190        let inline_code_1_built = InlineCodeInlineCode1 { inline_code1 };
8191        let inline_code_1_built = InlineCode::InlineCode1(inline_code_1_built);
8192        // Calling user action here
8193        self.user_grammar.inline_code(&inline_code_1_built)?;
8194        self.push(ASTType::InlineCode(inline_code_1_built), context);
8195        Ok(())
8196    }
8197
8198    /// Semantic action for production 154:
8199    ///
8200    /// `InlineCode1: /[a-zA-Z0-9-_]*`[^`\r\n]*`/;`
8201    ///
8202    #[parol_runtime::function_name::named]
8203    fn inline_code1(&mut self, inline_code1: &ParseTreeType<'t>) -> Result<()> {
8204        let context = function_name!();
8205        trace!("{}", self.trace_item_stack(context));
8206        let inline_code1 = inline_code1.token()?.clone();
8207        let inline_code1_built = InlineCode1 { inline_code1 };
8208        // Calling user action here
8209        self.user_grammar.inline_code1(&inline_code1_built)?;
8210        self.push(ASTType::InlineCode1(inline_code1_built), context);
8211        Ok(())
8212    }
8213
8214    /// Semantic action for production 155:
8215    ///
8216    /// `LitStr1: LitStr1Start LitStr1List /* Vec */ LitStr1End;`
8217    ///
8218    #[parol_runtime::function_name::named]
8219    fn lit_str1(
8220        &mut self,
8221        _lit_str1_start: &ParseTreeType<'t>,
8222        _lit_str1_list: &ParseTreeType<'t>,
8223        _lit_str1_end: &ParseTreeType<'t>,
8224    ) -> Result<()> {
8225        let context = function_name!();
8226        trace!("{}", self.trace_item_stack(context));
8227        let lit_str1_end = pop_item!(self, lit_str1_end, LitStr1End, context);
8228        let lit_str1_list = pop_and_reverse_item!(self, lit_str1_list, LitStr1List, context);
8229        let lit_str1_start = pop_item!(self, lit_str1_start, LitStr1Start, context);
8230        let lit_str1_built = LitStr1 {
8231            lit_str1_start,
8232            lit_str1_list,
8233            lit_str1_end,
8234        };
8235        // Calling user action here
8236        self.user_grammar.lit_str1(&lit_str1_built)?;
8237        self.push(ASTType::LitStr1(lit_str1_built), context);
8238        Ok(())
8239    }
8240
8241    /// Semantic action for production 156:
8242    ///
8243    /// `LitStr1List /* Vec<T>::Push */: LitStr1ListGroup LitStr1List;`
8244    ///
8245    #[parol_runtime::function_name::named]
8246    fn lit_str1_list_0(
8247        &mut self,
8248        _lit_str1_list_group: &ParseTreeType<'t>,
8249        _lit_str1_list: &ParseTreeType<'t>,
8250    ) -> Result<()> {
8251        let context = function_name!();
8252        trace!("{}", self.trace_item_stack(context));
8253        let mut lit_str1_list = pop_item!(self, lit_str1_list, LitStr1List, context);
8254        let lit_str1_list_group = pop_item!(self, lit_str1_list_group, LitStr1ListGroup, context);
8255        let lit_str1_list_0_built = LitStr1List {
8256            lit_str1_list_group,
8257        };
8258        // Add an element to the vector
8259        lit_str1_list.push(lit_str1_list_0_built);
8260        self.push(ASTType::LitStr1List(lit_str1_list), context);
8261        Ok(())
8262    }
8263
8264    /// Semantic action for production 157:
8265    ///
8266    /// `LitStr1ListGroup: NoSQuote;`
8267    ///
8268    #[parol_runtime::function_name::named]
8269    fn lit_str1_list_group_0(&mut self, _no_s_quote: &ParseTreeType<'t>) -> Result<()> {
8270        let context = function_name!();
8271        trace!("{}", self.trace_item_stack(context));
8272        let no_s_quote = pop_item!(self, no_s_quote, NoSQuote, context);
8273        let lit_str1_list_group_0_built = LitStr1ListGroupNoSQuote { no_s_quote };
8274        let lit_str1_list_group_0_built = LitStr1ListGroup::NoSQuote(lit_str1_list_group_0_built);
8275        self.push(
8276            ASTType::LitStr1ListGroup(lit_str1_list_group_0_built),
8277            context,
8278        );
8279        Ok(())
8280    }
8281
8282    /// Semantic action for production 158:
8283    ///
8284    /// `LitStr1ListGroup: SQuote;`
8285    ///
8286    #[parol_runtime::function_name::named]
8287    fn lit_str1_list_group_1(&mut self, _s_quote: &ParseTreeType<'t>) -> Result<()> {
8288        let context = function_name!();
8289        trace!("{}", self.trace_item_stack(context));
8290        let s_quote = pop_item!(self, s_quote, SQuote, context);
8291        let lit_str1_list_group_1_built = LitStr1ListGroupSQuote { s_quote };
8292        let lit_str1_list_group_1_built = LitStr1ListGroup::SQuote(lit_str1_list_group_1_built);
8293        self.push(
8294            ASTType::LitStr1ListGroup(lit_str1_list_group_1_built),
8295            context,
8296        );
8297        Ok(())
8298    }
8299
8300    /// Semantic action for production 159:
8301    ///
8302    /// `LitStr1List /* Vec<T>::New */: ;`
8303    ///
8304    #[parol_runtime::function_name::named]
8305    fn lit_str1_list_1(&mut self) -> Result<()> {
8306        let context = function_name!();
8307        trace!("{}", self.trace_item_stack(context));
8308        let lit_str1_list_1_built = Vec::new();
8309        self.push(ASTType::LitStr1List(lit_str1_list_1_built), context);
8310        Ok(())
8311    }
8312
8313    /// Semantic action for production 160:
8314    ///
8315    /// `LitStr2: LitStr2Start LitStr2List /* Vec */ LitStr2End;`
8316    ///
8317    #[parol_runtime::function_name::named]
8318    fn lit_str2(
8319        &mut self,
8320        _lit_str2_start: &ParseTreeType<'t>,
8321        _lit_str2_list: &ParseTreeType<'t>,
8322        _lit_str2_end: &ParseTreeType<'t>,
8323    ) -> Result<()> {
8324        let context = function_name!();
8325        trace!("{}", self.trace_item_stack(context));
8326        let lit_str2_end = pop_item!(self, lit_str2_end, LitStr2End, context);
8327        let lit_str2_list = pop_and_reverse_item!(self, lit_str2_list, LitStr2List, context);
8328        let lit_str2_start = pop_item!(self, lit_str2_start, LitStr2Start, context);
8329        let lit_str2_built = LitStr2 {
8330            lit_str2_start,
8331            lit_str2_list,
8332            lit_str2_end,
8333        };
8334        // Calling user action here
8335        self.user_grammar.lit_str2(&lit_str2_built)?;
8336        self.push(ASTType::LitStr2(lit_str2_built), context);
8337        Ok(())
8338    }
8339
8340    /// Semantic action for production 161:
8341    ///
8342    /// `LitStr2List /* Vec<T>::Push */: LitStr2ListGroup LitStr2List;`
8343    ///
8344    #[parol_runtime::function_name::named]
8345    fn lit_str2_list_0(
8346        &mut self,
8347        _lit_str2_list_group: &ParseTreeType<'t>,
8348        _lit_str2_list: &ParseTreeType<'t>,
8349    ) -> Result<()> {
8350        let context = function_name!();
8351        trace!("{}", self.trace_item_stack(context));
8352        let mut lit_str2_list = pop_item!(self, lit_str2_list, LitStr2List, context);
8353        let lit_str2_list_group = pop_item!(self, lit_str2_list_group, LitStr2ListGroup, context);
8354        let lit_str2_list_0_built = LitStr2List {
8355            lit_str2_list_group,
8356        };
8357        // Add an element to the vector
8358        lit_str2_list.push(lit_str2_list_0_built);
8359        self.push(ASTType::LitStr2List(lit_str2_list), context);
8360        Ok(())
8361    }
8362
8363    /// Semantic action for production 162:
8364    ///
8365    /// `LitStr2ListGroup: NoSQuote;`
8366    ///
8367    #[parol_runtime::function_name::named]
8368    fn lit_str2_list_group_0(&mut self, _no_s_quote: &ParseTreeType<'t>) -> Result<()> {
8369        let context = function_name!();
8370        trace!("{}", self.trace_item_stack(context));
8371        let no_s_quote = pop_item!(self, no_s_quote, NoSQuote, context);
8372        let lit_str2_list_group_0_built = LitStr2ListGroupNoSQuote { no_s_quote };
8373        let lit_str2_list_group_0_built = LitStr2ListGroup::NoSQuote(lit_str2_list_group_0_built);
8374        self.push(
8375            ASTType::LitStr2ListGroup(lit_str2_list_group_0_built),
8376            context,
8377        );
8378        Ok(())
8379    }
8380
8381    /// Semantic action for production 163:
8382    ///
8383    /// `LitStr2ListGroup: SQuote;`
8384    ///
8385    #[parol_runtime::function_name::named]
8386    fn lit_str2_list_group_1(&mut self, _s_quote: &ParseTreeType<'t>) -> Result<()> {
8387        let context = function_name!();
8388        trace!("{}", self.trace_item_stack(context));
8389        let s_quote = pop_item!(self, s_quote, SQuote, context);
8390        let lit_str2_list_group_1_built = LitStr2ListGroupSQuote { s_quote };
8391        let lit_str2_list_group_1_built = LitStr2ListGroup::SQuote(lit_str2_list_group_1_built);
8392        self.push(
8393            ASTType::LitStr2ListGroup(lit_str2_list_group_1_built),
8394            context,
8395        );
8396        Ok(())
8397    }
8398
8399    /// Semantic action for production 164:
8400    ///
8401    /// `LitStr2List /* Vec<T>::New */: ;`
8402    ///
8403    #[parol_runtime::function_name::named]
8404    fn lit_str2_list_1(&mut self) -> Result<()> {
8405        let context = function_name!();
8406        trace!("{}", self.trace_item_stack(context));
8407        let lit_str2_list_1_built = Vec::new();
8408        self.push(ASTType::LitStr2List(lit_str2_list_1_built), context);
8409        Ok(())
8410    }
8411
8412    /// Semantic action for production 165:
8413    ///
8414    /// `LitStr3: LitStr3Start LitStr3List /* Vec */ LitStr3End;`
8415    ///
8416    #[parol_runtime::function_name::named]
8417    fn lit_str3(
8418        &mut self,
8419        _lit_str3_start: &ParseTreeType<'t>,
8420        _lit_str3_list: &ParseTreeType<'t>,
8421        _lit_str3_end: &ParseTreeType<'t>,
8422    ) -> Result<()> {
8423        let context = function_name!();
8424        trace!("{}", self.trace_item_stack(context));
8425        let lit_str3_end = pop_item!(self, lit_str3_end, LitStr3End, context);
8426        let lit_str3_list = pop_and_reverse_item!(self, lit_str3_list, LitStr3List, context);
8427        let lit_str3_start = pop_item!(self, lit_str3_start, LitStr3Start, context);
8428        let lit_str3_built = LitStr3 {
8429            lit_str3_start,
8430            lit_str3_list,
8431            lit_str3_end,
8432        };
8433        // Calling user action here
8434        self.user_grammar.lit_str3(&lit_str3_built)?;
8435        self.push(ASTType::LitStr3(lit_str3_built), context);
8436        Ok(())
8437    }
8438
8439    /// Semantic action for production 166:
8440    ///
8441    /// `LitStr3List /* Vec<T>::Push */: LitStr3ListGroup LitStr3List;`
8442    ///
8443    #[parol_runtime::function_name::named]
8444    fn lit_str3_list_0(
8445        &mut self,
8446        _lit_str3_list_group: &ParseTreeType<'t>,
8447        _lit_str3_list: &ParseTreeType<'t>,
8448    ) -> Result<()> {
8449        let context = function_name!();
8450        trace!("{}", self.trace_item_stack(context));
8451        let mut lit_str3_list = pop_item!(self, lit_str3_list, LitStr3List, context);
8452        let lit_str3_list_group = pop_item!(self, lit_str3_list_group, LitStr3ListGroup, context);
8453        let lit_str3_list_0_built = LitStr3List {
8454            lit_str3_list_group,
8455        };
8456        // Add an element to the vector
8457        lit_str3_list.push(lit_str3_list_0_built);
8458        self.push(ASTType::LitStr3List(lit_str3_list), context);
8459        Ok(())
8460    }
8461
8462    /// Semantic action for production 167:
8463    ///
8464    /// `LitStr3ListGroup: NoSQuote;`
8465    ///
8466    #[parol_runtime::function_name::named]
8467    fn lit_str3_list_group_0(&mut self, _no_s_quote: &ParseTreeType<'t>) -> Result<()> {
8468        let context = function_name!();
8469        trace!("{}", self.trace_item_stack(context));
8470        let no_s_quote = pop_item!(self, no_s_quote, NoSQuote, context);
8471        let lit_str3_list_group_0_built = LitStr3ListGroupNoSQuote { no_s_quote };
8472        let lit_str3_list_group_0_built = LitStr3ListGroup::NoSQuote(lit_str3_list_group_0_built);
8473        self.push(
8474            ASTType::LitStr3ListGroup(lit_str3_list_group_0_built),
8475            context,
8476        );
8477        Ok(())
8478    }
8479
8480    /// Semantic action for production 168:
8481    ///
8482    /// `LitStr3ListGroup: SQuote;`
8483    ///
8484    #[parol_runtime::function_name::named]
8485    fn lit_str3_list_group_1(&mut self, _s_quote: &ParseTreeType<'t>) -> Result<()> {
8486        let context = function_name!();
8487        trace!("{}", self.trace_item_stack(context));
8488        let s_quote = pop_item!(self, s_quote, SQuote, context);
8489        let lit_str3_list_group_1_built = LitStr3ListGroupSQuote { s_quote };
8490        let lit_str3_list_group_1_built = LitStr3ListGroup::SQuote(lit_str3_list_group_1_built);
8491        self.push(
8492            ASTType::LitStr3ListGroup(lit_str3_list_group_1_built),
8493            context,
8494        );
8495        Ok(())
8496    }
8497
8498    /// Semantic action for production 169:
8499    ///
8500    /// `LitStr3List /* Vec<T>::New */: ;`
8501    ///
8502    #[parol_runtime::function_name::named]
8503    fn lit_str3_list_1(&mut self) -> Result<()> {
8504        let context = function_name!();
8505        trace!("{}", self.trace_item_stack(context));
8506        let lit_str3_list_1_built = Vec::new();
8507        self.push(ASTType::LitStr3List(lit_str3_list_1_built), context);
8508        Ok(())
8509    }
8510
8511    /// Semantic action for production 170:
8512    ///
8513    /// `DelimCode: DelimCode3;`
8514    ///
8515    #[parol_runtime::function_name::named]
8516    fn delim_code_0(&mut self, _delim_code3: &ParseTreeType<'t>) -> Result<()> {
8517        let context = function_name!();
8518        trace!("{}", self.trace_item_stack(context));
8519        let delim_code3 = pop_item!(self, delim_code3, DelimCode3, context);
8520        let delim_code_0_built = DelimCodeDelimCode3 { delim_code3 };
8521        let delim_code_0_built = DelimCode::DelimCode3(delim_code_0_built);
8522        // Calling user action here
8523        self.user_grammar.delim_code(&delim_code_0_built)?;
8524        self.push(ASTType::DelimCode(delim_code_0_built), context);
8525        Ok(())
8526    }
8527
8528    /// Semantic action for production 171:
8529    ///
8530    /// `DelimCode: DelimCode2;`
8531    ///
8532    #[parol_runtime::function_name::named]
8533    fn delim_code_1(&mut self, _delim_code2: &ParseTreeType<'t>) -> Result<()> {
8534        let context = function_name!();
8535        trace!("{}", self.trace_item_stack(context));
8536        let delim_code2 = pop_item!(self, delim_code2, DelimCode2, context);
8537        let delim_code_1_built = DelimCodeDelimCode2 { delim_code2 };
8538        let delim_code_1_built = DelimCode::DelimCode2(delim_code_1_built);
8539        // Calling user action here
8540        self.user_grammar.delim_code(&delim_code_1_built)?;
8541        self.push(ASTType::DelimCode(delim_code_1_built), context);
8542        Ok(())
8543    }
8544
8545    /// Semantic action for production 172:
8546    ///
8547    /// `DelimCode: DelimCode1;`
8548    ///
8549    #[parol_runtime::function_name::named]
8550    fn delim_code_2(&mut self, _delim_code1: &ParseTreeType<'t>) -> Result<()> {
8551        let context = function_name!();
8552        trace!("{}", self.trace_item_stack(context));
8553        let delim_code1 = pop_item!(self, delim_code1, DelimCode1, context);
8554        let delim_code_2_built = DelimCodeDelimCode1 { delim_code1 };
8555        let delim_code_2_built = DelimCode::DelimCode1(delim_code_2_built);
8556        // Calling user action here
8557        self.user_grammar.delim_code(&delim_code_2_built)?;
8558        self.push(ASTType::DelimCode(delim_code_2_built), context);
8559        Ok(())
8560    }
8561
8562    /// Semantic action for production 173:
8563    ///
8564    /// `DelimCode1: DelimCodeStart1 DelimCode1List /* Vec */ DelimCodeEnd1;`
8565    ///
8566    #[parol_runtime::function_name::named]
8567    fn delim_code1(
8568        &mut self,
8569        _delim_code_start1: &ParseTreeType<'t>,
8570        _delim_code1_list: &ParseTreeType<'t>,
8571        _delim_code_end1: &ParseTreeType<'t>,
8572    ) -> Result<()> {
8573        let context = function_name!();
8574        trace!("{}", self.trace_item_stack(context));
8575        let delim_code_end1 = pop_item!(self, delim_code_end1, DelimCodeEnd1, context);
8576        let delim_code1_list =
8577            pop_and_reverse_item!(self, delim_code1_list, DelimCode1List, context);
8578        let delim_code_start1 = pop_item!(self, delim_code_start1, DelimCodeStart1, context);
8579        let delim_code1_built = DelimCode1 {
8580            delim_code_start1,
8581            delim_code1_list,
8582            delim_code_end1,
8583        };
8584        // Calling user action here
8585        self.user_grammar.delim_code1(&delim_code1_built)?;
8586        self.push(ASTType::DelimCode1(delim_code1_built), context);
8587        Ok(())
8588    }
8589
8590    /// Semantic action for production 174:
8591    ///
8592    /// `DelimCode1List /* Vec<T>::Push */: DelimCode1ListGroup DelimCode1List;`
8593    ///
8594    #[parol_runtime::function_name::named]
8595    fn delim_code1_list_0(
8596        &mut self,
8597        _delim_code1_list_group: &ParseTreeType<'t>,
8598        _delim_code1_list: &ParseTreeType<'t>,
8599    ) -> Result<()> {
8600        let context = function_name!();
8601        trace!("{}", self.trace_item_stack(context));
8602        let mut delim_code1_list = pop_item!(self, delim_code1_list, DelimCode1List, context);
8603        let delim_code1_list_group =
8604            pop_item!(self, delim_code1_list_group, DelimCode1ListGroup, context);
8605        let delim_code1_list_0_built = DelimCode1List {
8606            delim_code1_list_group,
8607        };
8608        // Add an element to the vector
8609        delim_code1_list.push(delim_code1_list_0_built);
8610        self.push(ASTType::DelimCode1List(delim_code1_list), context);
8611        Ok(())
8612    }
8613
8614    /// Semantic action for production 175:
8615    ///
8616    /// `DelimCode1ListGroup: NoBacktick;`
8617    ///
8618    #[parol_runtime::function_name::named]
8619    fn delim_code1_list_group_0(&mut self, _no_backtick: &ParseTreeType<'t>) -> Result<()> {
8620        let context = function_name!();
8621        trace!("{}", self.trace_item_stack(context));
8622        let no_backtick = pop_item!(self, no_backtick, NoBacktick, context);
8623        let delim_code1_list_group_0_built = DelimCode1ListGroupNoBacktick { no_backtick };
8624        let delim_code1_list_group_0_built =
8625            DelimCode1ListGroup::NoBacktick(delim_code1_list_group_0_built);
8626        self.push(
8627            ASTType::DelimCode1ListGroup(delim_code1_list_group_0_built),
8628            context,
8629        );
8630        Ok(())
8631    }
8632
8633    /// Semantic action for production 176:
8634    ///
8635    /// `DelimCode1ListGroup: BacktickDelim;`
8636    ///
8637    #[parol_runtime::function_name::named]
8638    fn delim_code1_list_group_1(&mut self, _backtick_delim: &ParseTreeType<'t>) -> Result<()> {
8639        let context = function_name!();
8640        trace!("{}", self.trace_item_stack(context));
8641        let backtick_delim = pop_item!(self, backtick_delim, BacktickDelim, context);
8642        let delim_code1_list_group_1_built = DelimCode1ListGroupBacktickDelim { backtick_delim };
8643        let delim_code1_list_group_1_built =
8644            DelimCode1ListGroup::BacktickDelim(delim_code1_list_group_1_built);
8645        self.push(
8646            ASTType::DelimCode1ListGroup(delim_code1_list_group_1_built),
8647            context,
8648        );
8649        Ok(())
8650    }
8651
8652    /// Semantic action for production 177:
8653    ///
8654    /// `DelimCode1List /* Vec<T>::New */: ;`
8655    ///
8656    #[parol_runtime::function_name::named]
8657    fn delim_code1_list_1(&mut self) -> Result<()> {
8658        let context = function_name!();
8659        trace!("{}", self.trace_item_stack(context));
8660        let delim_code1_list_1_built = Vec::new();
8661        self.push(ASTType::DelimCode1List(delim_code1_list_1_built), context);
8662        Ok(())
8663    }
8664
8665    /// Semantic action for production 178:
8666    ///
8667    /// `DelimCode2: DelimCodeStart2 DelimCode2List /* Vec */ DelimCodeEnd2;`
8668    ///
8669    #[parol_runtime::function_name::named]
8670    fn delim_code2(
8671        &mut self,
8672        _delim_code_start2: &ParseTreeType<'t>,
8673        _delim_code2_list: &ParseTreeType<'t>,
8674        _delim_code_end2: &ParseTreeType<'t>,
8675    ) -> Result<()> {
8676        let context = function_name!();
8677        trace!("{}", self.trace_item_stack(context));
8678        let delim_code_end2 = pop_item!(self, delim_code_end2, DelimCodeEnd2, context);
8679        let delim_code2_list =
8680            pop_and_reverse_item!(self, delim_code2_list, DelimCode2List, context);
8681        let delim_code_start2 = pop_item!(self, delim_code_start2, DelimCodeStart2, context);
8682        let delim_code2_built = DelimCode2 {
8683            delim_code_start2,
8684            delim_code2_list,
8685            delim_code_end2,
8686        };
8687        // Calling user action here
8688        self.user_grammar.delim_code2(&delim_code2_built)?;
8689        self.push(ASTType::DelimCode2(delim_code2_built), context);
8690        Ok(())
8691    }
8692
8693    /// Semantic action for production 179:
8694    ///
8695    /// `DelimCode2List /* Vec<T>::Push */: DelimCode2ListGroup DelimCode2List;`
8696    ///
8697    #[parol_runtime::function_name::named]
8698    fn delim_code2_list_0(
8699        &mut self,
8700        _delim_code2_list_group: &ParseTreeType<'t>,
8701        _delim_code2_list: &ParseTreeType<'t>,
8702    ) -> Result<()> {
8703        let context = function_name!();
8704        trace!("{}", self.trace_item_stack(context));
8705        let mut delim_code2_list = pop_item!(self, delim_code2_list, DelimCode2List, context);
8706        let delim_code2_list_group =
8707            pop_item!(self, delim_code2_list_group, DelimCode2ListGroup, context);
8708        let delim_code2_list_0_built = DelimCode2List {
8709            delim_code2_list_group,
8710        };
8711        // Add an element to the vector
8712        delim_code2_list.push(delim_code2_list_0_built);
8713        self.push(ASTType::DelimCode2List(delim_code2_list), context);
8714        Ok(())
8715    }
8716
8717    /// Semantic action for production 180:
8718    ///
8719    /// `DelimCode2ListGroup: NoBacktick;`
8720    ///
8721    #[parol_runtime::function_name::named]
8722    fn delim_code2_list_group_0(&mut self, _no_backtick: &ParseTreeType<'t>) -> Result<()> {
8723        let context = function_name!();
8724        trace!("{}", self.trace_item_stack(context));
8725        let no_backtick = pop_item!(self, no_backtick, NoBacktick, context);
8726        let delim_code2_list_group_0_built = DelimCode2ListGroupNoBacktick { no_backtick };
8727        let delim_code2_list_group_0_built =
8728            DelimCode2ListGroup::NoBacktick(delim_code2_list_group_0_built);
8729        self.push(
8730            ASTType::DelimCode2ListGroup(delim_code2_list_group_0_built),
8731            context,
8732        );
8733        Ok(())
8734    }
8735
8736    /// Semantic action for production 181:
8737    ///
8738    /// `DelimCode2ListGroup: BacktickDelim;`
8739    ///
8740    #[parol_runtime::function_name::named]
8741    fn delim_code2_list_group_1(&mut self, _backtick_delim: &ParseTreeType<'t>) -> Result<()> {
8742        let context = function_name!();
8743        trace!("{}", self.trace_item_stack(context));
8744        let backtick_delim = pop_item!(self, backtick_delim, BacktickDelim, context);
8745        let delim_code2_list_group_1_built = DelimCode2ListGroupBacktickDelim { backtick_delim };
8746        let delim_code2_list_group_1_built =
8747            DelimCode2ListGroup::BacktickDelim(delim_code2_list_group_1_built);
8748        self.push(
8749            ASTType::DelimCode2ListGroup(delim_code2_list_group_1_built),
8750            context,
8751        );
8752        Ok(())
8753    }
8754
8755    /// Semantic action for production 182:
8756    ///
8757    /// `DelimCode2List /* Vec<T>::New */: ;`
8758    ///
8759    #[parol_runtime::function_name::named]
8760    fn delim_code2_list_1(&mut self) -> Result<()> {
8761        let context = function_name!();
8762        trace!("{}", self.trace_item_stack(context));
8763        let delim_code2_list_1_built = Vec::new();
8764        self.push(ASTType::DelimCode2List(delim_code2_list_1_built), context);
8765        Ok(())
8766    }
8767
8768    /// Semantic action for production 183:
8769    ///
8770    /// `DelimCode3: DelimCodeStart3 DelimCode3List /* Vec */ DelimCodeEnd3;`
8771    ///
8772    #[parol_runtime::function_name::named]
8773    fn delim_code3(
8774        &mut self,
8775        _delim_code_start3: &ParseTreeType<'t>,
8776        _delim_code3_list: &ParseTreeType<'t>,
8777        _delim_code_end3: &ParseTreeType<'t>,
8778    ) -> Result<()> {
8779        let context = function_name!();
8780        trace!("{}", self.trace_item_stack(context));
8781        let delim_code_end3 = pop_item!(self, delim_code_end3, DelimCodeEnd3, context);
8782        let delim_code3_list =
8783            pop_and_reverse_item!(self, delim_code3_list, DelimCode3List, context);
8784        let delim_code_start3 = pop_item!(self, delim_code_start3, DelimCodeStart3, context);
8785        let delim_code3_built = DelimCode3 {
8786            delim_code_start3,
8787            delim_code3_list,
8788            delim_code_end3,
8789        };
8790        // Calling user action here
8791        self.user_grammar.delim_code3(&delim_code3_built)?;
8792        self.push(ASTType::DelimCode3(delim_code3_built), context);
8793        Ok(())
8794    }
8795
8796    /// Semantic action for production 184:
8797    ///
8798    /// `DelimCode3List /* Vec<T>::Push */: DelimCode3ListGroup DelimCode3List;`
8799    ///
8800    #[parol_runtime::function_name::named]
8801    fn delim_code3_list_0(
8802        &mut self,
8803        _delim_code3_list_group: &ParseTreeType<'t>,
8804        _delim_code3_list: &ParseTreeType<'t>,
8805    ) -> Result<()> {
8806        let context = function_name!();
8807        trace!("{}", self.trace_item_stack(context));
8808        let mut delim_code3_list = pop_item!(self, delim_code3_list, DelimCode3List, context);
8809        let delim_code3_list_group =
8810            pop_item!(self, delim_code3_list_group, DelimCode3ListGroup, context);
8811        let delim_code3_list_0_built = DelimCode3List {
8812            delim_code3_list_group,
8813        };
8814        // Add an element to the vector
8815        delim_code3_list.push(delim_code3_list_0_built);
8816        self.push(ASTType::DelimCode3List(delim_code3_list), context);
8817        Ok(())
8818    }
8819
8820    /// Semantic action for production 185:
8821    ///
8822    /// `DelimCode3ListGroup: NoBacktick;`
8823    ///
8824    #[parol_runtime::function_name::named]
8825    fn delim_code3_list_group_0(&mut self, _no_backtick: &ParseTreeType<'t>) -> Result<()> {
8826        let context = function_name!();
8827        trace!("{}", self.trace_item_stack(context));
8828        let no_backtick = pop_item!(self, no_backtick, NoBacktick, context);
8829        let delim_code3_list_group_0_built = DelimCode3ListGroupNoBacktick { no_backtick };
8830        let delim_code3_list_group_0_built =
8831            DelimCode3ListGroup::NoBacktick(delim_code3_list_group_0_built);
8832        self.push(
8833            ASTType::DelimCode3ListGroup(delim_code3_list_group_0_built),
8834            context,
8835        );
8836        Ok(())
8837    }
8838
8839    /// Semantic action for production 186:
8840    ///
8841    /// `DelimCode3ListGroup: BacktickDelim;`
8842    ///
8843    #[parol_runtime::function_name::named]
8844    fn delim_code3_list_group_1(&mut self, _backtick_delim: &ParseTreeType<'t>) -> Result<()> {
8845        let context = function_name!();
8846        trace!("{}", self.trace_item_stack(context));
8847        let backtick_delim = pop_item!(self, backtick_delim, BacktickDelim, context);
8848        let delim_code3_list_group_1_built = DelimCode3ListGroupBacktickDelim { backtick_delim };
8849        let delim_code3_list_group_1_built =
8850            DelimCode3ListGroup::BacktickDelim(delim_code3_list_group_1_built);
8851        self.push(
8852            ASTType::DelimCode3ListGroup(delim_code3_list_group_1_built),
8853            context,
8854        );
8855        Ok(())
8856    }
8857
8858    /// Semantic action for production 187:
8859    ///
8860    /// `DelimCode3List /* Vec<T>::New */: ;`
8861    ///
8862    #[parol_runtime::function_name::named]
8863    fn delim_code3_list_1(&mut self) -> Result<()> {
8864        let context = function_name!();
8865        trace!("{}", self.trace_item_stack(context));
8866        let delim_code3_list_1_built = Vec::new();
8867        self.push(ASTType::DelimCode3List(delim_code3_list_1_built), context);
8868        Ok(())
8869    }
8870
8871    /// Semantic action for production 188:
8872    ///
8873    /// `CodeBlock: CodeBlock3;`
8874    ///
8875    #[parol_runtime::function_name::named]
8876    fn code_block_0(&mut self, _code_block3: &ParseTreeType<'t>) -> Result<()> {
8877        let context = function_name!();
8878        trace!("{}", self.trace_item_stack(context));
8879        let code_block3 = pop_item!(self, code_block3, CodeBlock3, context);
8880        let code_block_0_built = CodeBlockCodeBlock3 { code_block3 };
8881        let code_block_0_built = CodeBlock::CodeBlock3(code_block_0_built);
8882        // Calling user action here
8883        self.user_grammar.code_block(&code_block_0_built)?;
8884        self.push(ASTType::CodeBlock(code_block_0_built), context);
8885        Ok(())
8886    }
8887
8888    /// Semantic action for production 189:
8889    ///
8890    /// `CodeBlock: CodeBlock4;`
8891    ///
8892    #[parol_runtime::function_name::named]
8893    fn code_block_1(&mut self, _code_block4: &ParseTreeType<'t>) -> Result<()> {
8894        let context = function_name!();
8895        trace!("{}", self.trace_item_stack(context));
8896        let code_block4 = pop_item!(self, code_block4, CodeBlock4, context);
8897        let code_block_1_built = CodeBlockCodeBlock4 { code_block4 };
8898        let code_block_1_built = CodeBlock::CodeBlock4(code_block_1_built);
8899        // Calling user action here
8900        self.user_grammar.code_block(&code_block_1_built)?;
8901        self.push(ASTType::CodeBlock(code_block_1_built), context);
8902        Ok(())
8903    }
8904
8905    /// Semantic action for production 190:
8906    ///
8907    /// `CodeBlock: CodeBlock5;`
8908    ///
8909    #[parol_runtime::function_name::named]
8910    fn code_block_2(&mut self, _code_block5: &ParseTreeType<'t>) -> Result<()> {
8911        let context = function_name!();
8912        trace!("{}", self.trace_item_stack(context));
8913        let code_block5 = pop_item!(self, code_block5, CodeBlock5, context);
8914        let code_block_2_built = CodeBlockCodeBlock5 { code_block5 };
8915        let code_block_2_built = CodeBlock::CodeBlock5(code_block_2_built);
8916        // Calling user action here
8917        self.user_grammar.code_block(&code_block_2_built)?;
8918        self.push(ASTType::CodeBlock(code_block_2_built), context);
8919        Ok(())
8920    }
8921
8922    /// Semantic action for production 191:
8923    ///
8924    /// `CodeBlock: CodeBlock6;`
8925    ///
8926    #[parol_runtime::function_name::named]
8927    fn code_block_3(&mut self, _code_block6: &ParseTreeType<'t>) -> Result<()> {
8928        let context = function_name!();
8929        trace!("{}", self.trace_item_stack(context));
8930        let code_block6 = pop_item!(self, code_block6, CodeBlock6, context);
8931        let code_block_3_built = CodeBlockCodeBlock6 { code_block6 };
8932        let code_block_3_built = CodeBlock::CodeBlock6(code_block_3_built);
8933        // Calling user action here
8934        self.user_grammar.code_block(&code_block_3_built)?;
8935        self.push(ASTType::CodeBlock(code_block_3_built), context);
8936        Ok(())
8937    }
8938
8939    /// Semantic action for production 192:
8940    ///
8941    /// `CodeBlock3: CodeBlockStart3 CodeBlock3List /* Vec */ CodeBlockEnd3;`
8942    ///
8943    #[parol_runtime::function_name::named]
8944    fn code_block3(
8945        &mut self,
8946        _code_block_start3: &ParseTreeType<'t>,
8947        _code_block3_list: &ParseTreeType<'t>,
8948        _code_block_end3: &ParseTreeType<'t>,
8949    ) -> Result<()> {
8950        let context = function_name!();
8951        trace!("{}", self.trace_item_stack(context));
8952        let code_block_end3 = pop_item!(self, code_block_end3, CodeBlockEnd3, context);
8953        let code_block3_list =
8954            pop_and_reverse_item!(self, code_block3_list, CodeBlock3List, context);
8955        let code_block_start3 = pop_item!(self, code_block_start3, CodeBlockStart3, context);
8956        let code_block3_built = CodeBlock3 {
8957            code_block_start3,
8958            code_block3_list,
8959            code_block_end3,
8960        };
8961        // Calling user action here
8962        self.user_grammar.code_block3(&code_block3_built)?;
8963        self.push(ASTType::CodeBlock3(code_block3_built), context);
8964        Ok(())
8965    }
8966
8967    /// Semantic action for production 193:
8968    ///
8969    /// `CodeBlock3List /* Vec<T>::Push */: CodeBlock3ListGroup CodeBlock3List;`
8970    ///
8971    #[parol_runtime::function_name::named]
8972    fn code_block3_list_0(
8973        &mut self,
8974        _code_block3_list_group: &ParseTreeType<'t>,
8975        _code_block3_list: &ParseTreeType<'t>,
8976    ) -> Result<()> {
8977        let context = function_name!();
8978        trace!("{}", self.trace_item_stack(context));
8979        let mut code_block3_list = pop_item!(self, code_block3_list, CodeBlock3List, context);
8980        let code_block3_list_group =
8981            pop_item!(self, code_block3_list_group, CodeBlock3ListGroup, context);
8982        let code_block3_list_0_built = CodeBlock3List {
8983            code_block3_list_group,
8984        };
8985        // Add an element to the vector
8986        code_block3_list.push(code_block3_list_0_built);
8987        self.push(ASTType::CodeBlock3List(code_block3_list), context);
8988        Ok(())
8989    }
8990
8991    /// Semantic action for production 194:
8992    ///
8993    /// `CodeBlock3ListGroup: NoBacktick;`
8994    ///
8995    #[parol_runtime::function_name::named]
8996    fn code_block3_list_group_0(&mut self, _no_backtick: &ParseTreeType<'t>) -> Result<()> {
8997        let context = function_name!();
8998        trace!("{}", self.trace_item_stack(context));
8999        let no_backtick = pop_item!(self, no_backtick, NoBacktick, context);
9000        let code_block3_list_group_0_built = CodeBlock3ListGroupNoBacktick { no_backtick };
9001        let code_block3_list_group_0_built =
9002            CodeBlock3ListGroup::NoBacktick(code_block3_list_group_0_built);
9003        self.push(
9004            ASTType::CodeBlock3ListGroup(code_block3_list_group_0_built),
9005            context,
9006        );
9007        Ok(())
9008    }
9009
9010    /// Semantic action for production 195:
9011    ///
9012    /// `CodeBlock3ListGroup: Backtick2;`
9013    ///
9014    #[parol_runtime::function_name::named]
9015    fn code_block3_list_group_1(&mut self, _backtick2: &ParseTreeType<'t>) -> Result<()> {
9016        let context = function_name!();
9017        trace!("{}", self.trace_item_stack(context));
9018        let backtick2 = pop_item!(self, backtick2, Backtick2, context);
9019        let code_block3_list_group_1_built = CodeBlock3ListGroupBacktick2 { backtick2 };
9020        let code_block3_list_group_1_built =
9021            CodeBlock3ListGroup::Backtick2(code_block3_list_group_1_built);
9022        self.push(
9023            ASTType::CodeBlock3ListGroup(code_block3_list_group_1_built),
9024            context,
9025        );
9026        Ok(())
9027    }
9028
9029    /// Semantic action for production 196:
9030    ///
9031    /// `CodeBlock3List /* Vec<T>::New */: ;`
9032    ///
9033    #[parol_runtime::function_name::named]
9034    fn code_block3_list_1(&mut self) -> Result<()> {
9035        let context = function_name!();
9036        trace!("{}", self.trace_item_stack(context));
9037        let code_block3_list_1_built = Vec::new();
9038        self.push(ASTType::CodeBlock3List(code_block3_list_1_built), context);
9039        Ok(())
9040    }
9041
9042    /// Semantic action for production 197:
9043    ///
9044    /// `CodeBlock4: CodeBlockStart4 CodeBlock4List /* Vec */ CodeBlockEnd4;`
9045    ///
9046    #[parol_runtime::function_name::named]
9047    fn code_block4(
9048        &mut self,
9049        _code_block_start4: &ParseTreeType<'t>,
9050        _code_block4_list: &ParseTreeType<'t>,
9051        _code_block_end4: &ParseTreeType<'t>,
9052    ) -> Result<()> {
9053        let context = function_name!();
9054        trace!("{}", self.trace_item_stack(context));
9055        let code_block_end4 = pop_item!(self, code_block_end4, CodeBlockEnd4, context);
9056        let code_block4_list =
9057            pop_and_reverse_item!(self, code_block4_list, CodeBlock4List, context);
9058        let code_block_start4 = pop_item!(self, code_block_start4, CodeBlockStart4, context);
9059        let code_block4_built = CodeBlock4 {
9060            code_block_start4,
9061            code_block4_list,
9062            code_block_end4,
9063        };
9064        // Calling user action here
9065        self.user_grammar.code_block4(&code_block4_built)?;
9066        self.push(ASTType::CodeBlock4(code_block4_built), context);
9067        Ok(())
9068    }
9069
9070    /// Semantic action for production 198:
9071    ///
9072    /// `CodeBlock4List /* Vec<T>::Push */: CodeBlock4ListGroup CodeBlock4List;`
9073    ///
9074    #[parol_runtime::function_name::named]
9075    fn code_block4_list_0(
9076        &mut self,
9077        _code_block4_list_group: &ParseTreeType<'t>,
9078        _code_block4_list: &ParseTreeType<'t>,
9079    ) -> Result<()> {
9080        let context = function_name!();
9081        trace!("{}", self.trace_item_stack(context));
9082        let mut code_block4_list = pop_item!(self, code_block4_list, CodeBlock4List, context);
9083        let code_block4_list_group =
9084            pop_item!(self, code_block4_list_group, CodeBlock4ListGroup, context);
9085        let code_block4_list_0_built = CodeBlock4List {
9086            code_block4_list_group,
9087        };
9088        // Add an element to the vector
9089        code_block4_list.push(code_block4_list_0_built);
9090        self.push(ASTType::CodeBlock4List(code_block4_list), context);
9091        Ok(())
9092    }
9093
9094    /// Semantic action for production 199:
9095    ///
9096    /// `CodeBlock4ListGroup: NoBacktick;`
9097    ///
9098    #[parol_runtime::function_name::named]
9099    fn code_block4_list_group_0(&mut self, _no_backtick: &ParseTreeType<'t>) -> Result<()> {
9100        let context = function_name!();
9101        trace!("{}", self.trace_item_stack(context));
9102        let no_backtick = pop_item!(self, no_backtick, NoBacktick, context);
9103        let code_block4_list_group_0_built = CodeBlock4ListGroupNoBacktick { no_backtick };
9104        let code_block4_list_group_0_built =
9105            CodeBlock4ListGroup::NoBacktick(code_block4_list_group_0_built);
9106        self.push(
9107            ASTType::CodeBlock4ListGroup(code_block4_list_group_0_built),
9108            context,
9109        );
9110        Ok(())
9111    }
9112
9113    /// Semantic action for production 200:
9114    ///
9115    /// `CodeBlock4ListGroup: Backtick3;`
9116    ///
9117    #[parol_runtime::function_name::named]
9118    fn code_block4_list_group_1(&mut self, _backtick3: &ParseTreeType<'t>) -> Result<()> {
9119        let context = function_name!();
9120        trace!("{}", self.trace_item_stack(context));
9121        let backtick3 = pop_item!(self, backtick3, Backtick3, context);
9122        let code_block4_list_group_1_built = CodeBlock4ListGroupBacktick3 { backtick3 };
9123        let code_block4_list_group_1_built =
9124            CodeBlock4ListGroup::Backtick3(code_block4_list_group_1_built);
9125        self.push(
9126            ASTType::CodeBlock4ListGroup(code_block4_list_group_1_built),
9127            context,
9128        );
9129        Ok(())
9130    }
9131
9132    /// Semantic action for production 201:
9133    ///
9134    /// `CodeBlock4List /* Vec<T>::New */: ;`
9135    ///
9136    #[parol_runtime::function_name::named]
9137    fn code_block4_list_1(&mut self) -> Result<()> {
9138        let context = function_name!();
9139        trace!("{}", self.trace_item_stack(context));
9140        let code_block4_list_1_built = Vec::new();
9141        self.push(ASTType::CodeBlock4List(code_block4_list_1_built), context);
9142        Ok(())
9143    }
9144
9145    /// Semantic action for production 202:
9146    ///
9147    /// `CodeBlock5: CodeBlockStart5 CodeBlock5List /* Vec */ CodeBlockEnd5;`
9148    ///
9149    #[parol_runtime::function_name::named]
9150    fn code_block5(
9151        &mut self,
9152        _code_block_start5: &ParseTreeType<'t>,
9153        _code_block5_list: &ParseTreeType<'t>,
9154        _code_block_end5: &ParseTreeType<'t>,
9155    ) -> Result<()> {
9156        let context = function_name!();
9157        trace!("{}", self.trace_item_stack(context));
9158        let code_block_end5 = pop_item!(self, code_block_end5, CodeBlockEnd5, context);
9159        let code_block5_list =
9160            pop_and_reverse_item!(self, code_block5_list, CodeBlock5List, context);
9161        let code_block_start5 = pop_item!(self, code_block_start5, CodeBlockStart5, context);
9162        let code_block5_built = CodeBlock5 {
9163            code_block_start5,
9164            code_block5_list,
9165            code_block_end5,
9166        };
9167        // Calling user action here
9168        self.user_grammar.code_block5(&code_block5_built)?;
9169        self.push(ASTType::CodeBlock5(code_block5_built), context);
9170        Ok(())
9171    }
9172
9173    /// Semantic action for production 203:
9174    ///
9175    /// `CodeBlock5List /* Vec<T>::Push */: CodeBlock5ListGroup CodeBlock5List;`
9176    ///
9177    #[parol_runtime::function_name::named]
9178    fn code_block5_list_0(
9179        &mut self,
9180        _code_block5_list_group: &ParseTreeType<'t>,
9181        _code_block5_list: &ParseTreeType<'t>,
9182    ) -> Result<()> {
9183        let context = function_name!();
9184        trace!("{}", self.trace_item_stack(context));
9185        let mut code_block5_list = pop_item!(self, code_block5_list, CodeBlock5List, context);
9186        let code_block5_list_group =
9187            pop_item!(self, code_block5_list_group, CodeBlock5ListGroup, context);
9188        let code_block5_list_0_built = CodeBlock5List {
9189            code_block5_list_group,
9190        };
9191        // Add an element to the vector
9192        code_block5_list.push(code_block5_list_0_built);
9193        self.push(ASTType::CodeBlock5List(code_block5_list), context);
9194        Ok(())
9195    }
9196
9197    /// Semantic action for production 204:
9198    ///
9199    /// `CodeBlock5ListGroup: NoBacktick;`
9200    ///
9201    #[parol_runtime::function_name::named]
9202    fn code_block5_list_group_0(&mut self, _no_backtick: &ParseTreeType<'t>) -> Result<()> {
9203        let context = function_name!();
9204        trace!("{}", self.trace_item_stack(context));
9205        let no_backtick = pop_item!(self, no_backtick, NoBacktick, context);
9206        let code_block5_list_group_0_built = CodeBlock5ListGroupNoBacktick { no_backtick };
9207        let code_block5_list_group_0_built =
9208            CodeBlock5ListGroup::NoBacktick(code_block5_list_group_0_built);
9209        self.push(
9210            ASTType::CodeBlock5ListGroup(code_block5_list_group_0_built),
9211            context,
9212        );
9213        Ok(())
9214    }
9215
9216    /// Semantic action for production 205:
9217    ///
9218    /// `CodeBlock5ListGroup: Backtick4;`
9219    ///
9220    #[parol_runtime::function_name::named]
9221    fn code_block5_list_group_1(&mut self, _backtick4: &ParseTreeType<'t>) -> Result<()> {
9222        let context = function_name!();
9223        trace!("{}", self.trace_item_stack(context));
9224        let backtick4 = pop_item!(self, backtick4, Backtick4, context);
9225        let code_block5_list_group_1_built = CodeBlock5ListGroupBacktick4 { backtick4 };
9226        let code_block5_list_group_1_built =
9227            CodeBlock5ListGroup::Backtick4(code_block5_list_group_1_built);
9228        self.push(
9229            ASTType::CodeBlock5ListGroup(code_block5_list_group_1_built),
9230            context,
9231        );
9232        Ok(())
9233    }
9234
9235    /// Semantic action for production 206:
9236    ///
9237    /// `CodeBlock5List /* Vec<T>::New */: ;`
9238    ///
9239    #[parol_runtime::function_name::named]
9240    fn code_block5_list_1(&mut self) -> Result<()> {
9241        let context = function_name!();
9242        trace!("{}", self.trace_item_stack(context));
9243        let code_block5_list_1_built = Vec::new();
9244        self.push(ASTType::CodeBlock5List(code_block5_list_1_built), context);
9245        Ok(())
9246    }
9247
9248    /// Semantic action for production 207:
9249    ///
9250    /// `CodeBlock6: CodeBlockStart6 CodeBlock6List /* Vec */ CodeBlockEnd6;`
9251    ///
9252    #[parol_runtime::function_name::named]
9253    fn code_block6(
9254        &mut self,
9255        _code_block_start6: &ParseTreeType<'t>,
9256        _code_block6_list: &ParseTreeType<'t>,
9257        _code_block_end6: &ParseTreeType<'t>,
9258    ) -> Result<()> {
9259        let context = function_name!();
9260        trace!("{}", self.trace_item_stack(context));
9261        let code_block_end6 = pop_item!(self, code_block_end6, CodeBlockEnd6, context);
9262        let code_block6_list =
9263            pop_and_reverse_item!(self, code_block6_list, CodeBlock6List, context);
9264        let code_block_start6 = pop_item!(self, code_block_start6, CodeBlockStart6, context);
9265        let code_block6_built = CodeBlock6 {
9266            code_block_start6,
9267            code_block6_list,
9268            code_block_end6,
9269        };
9270        // Calling user action here
9271        self.user_grammar.code_block6(&code_block6_built)?;
9272        self.push(ASTType::CodeBlock6(code_block6_built), context);
9273        Ok(())
9274    }
9275
9276    /// Semantic action for production 208:
9277    ///
9278    /// `CodeBlock6List /* Vec<T>::Push */: CodeBlock6ListGroup CodeBlock6List;`
9279    ///
9280    #[parol_runtime::function_name::named]
9281    fn code_block6_list_0(
9282        &mut self,
9283        _code_block6_list_group: &ParseTreeType<'t>,
9284        _code_block6_list: &ParseTreeType<'t>,
9285    ) -> Result<()> {
9286        let context = function_name!();
9287        trace!("{}", self.trace_item_stack(context));
9288        let mut code_block6_list = pop_item!(self, code_block6_list, CodeBlock6List, context);
9289        let code_block6_list_group =
9290            pop_item!(self, code_block6_list_group, CodeBlock6ListGroup, context);
9291        let code_block6_list_0_built = CodeBlock6List {
9292            code_block6_list_group,
9293        };
9294        // Add an element to the vector
9295        code_block6_list.push(code_block6_list_0_built);
9296        self.push(ASTType::CodeBlock6List(code_block6_list), context);
9297        Ok(())
9298    }
9299
9300    /// Semantic action for production 209:
9301    ///
9302    /// `CodeBlock6ListGroup: NoBacktick;`
9303    ///
9304    #[parol_runtime::function_name::named]
9305    fn code_block6_list_group_0(&mut self, _no_backtick: &ParseTreeType<'t>) -> Result<()> {
9306        let context = function_name!();
9307        trace!("{}", self.trace_item_stack(context));
9308        let no_backtick = pop_item!(self, no_backtick, NoBacktick, context);
9309        let code_block6_list_group_0_built = CodeBlock6ListGroupNoBacktick { no_backtick };
9310        let code_block6_list_group_0_built =
9311            CodeBlock6ListGroup::NoBacktick(code_block6_list_group_0_built);
9312        self.push(
9313            ASTType::CodeBlock6ListGroup(code_block6_list_group_0_built),
9314            context,
9315        );
9316        Ok(())
9317    }
9318
9319    /// Semantic action for production 210:
9320    ///
9321    /// `CodeBlock6ListGroup: Backtick5;`
9322    ///
9323    #[parol_runtime::function_name::named]
9324    fn code_block6_list_group_1(&mut self, _backtick5: &ParseTreeType<'t>) -> Result<()> {
9325        let context = function_name!();
9326        trace!("{}", self.trace_item_stack(context));
9327        let backtick5 = pop_item!(self, backtick5, Backtick5, context);
9328        let code_block6_list_group_1_built = CodeBlock6ListGroupBacktick5 { backtick5 };
9329        let code_block6_list_group_1_built =
9330            CodeBlock6ListGroup::Backtick5(code_block6_list_group_1_built);
9331        self.push(
9332            ASTType::CodeBlock6ListGroup(code_block6_list_group_1_built),
9333            context,
9334        );
9335        Ok(())
9336    }
9337
9338    /// Semantic action for production 211:
9339    ///
9340    /// `CodeBlock6List /* Vec<T>::New */: ;`
9341    ///
9342    #[parol_runtime::function_name::named]
9343    fn code_block6_list_1(&mut self) -> Result<()> {
9344        let context = function_name!();
9345        trace!("{}", self.trace_item_stack(context));
9346        let code_block6_list_1_built = Vec::new();
9347        self.push(ASTType::CodeBlock6List(code_block6_list_1_built), context);
9348        Ok(())
9349    }
9350
9351    /// Semantic action for production 212:
9352    ///
9353    /// `LitStr3Start: <INITIAL, Header>"<<<'";`
9354    ///
9355    #[parol_runtime::function_name::named]
9356    fn lit_str3_start(&mut self, lit_str3_start: &ParseTreeType<'t>) -> Result<()> {
9357        let context = function_name!();
9358        trace!("{}", self.trace_item_stack(context));
9359        let lit_str3_start = lit_str3_start.token()?.clone();
9360        let lit_str3_start_built = LitStr3Start { lit_str3_start };
9361        // Calling user action here
9362        self.user_grammar.lit_str3_start(&lit_str3_start_built)?;
9363        self.push(ASTType::LitStr3Start(lit_str3_start_built), context);
9364        Ok(())
9365    }
9366
9367    /// Semantic action for production 213:
9368    ///
9369    /// `LitStr2Start: <INITIAL, Header>"<<'";`
9370    ///
9371    #[parol_runtime::function_name::named]
9372    fn lit_str2_start(&mut self, lit_str2_start: &ParseTreeType<'t>) -> Result<()> {
9373        let context = function_name!();
9374        trace!("{}", self.trace_item_stack(context));
9375        let lit_str2_start = lit_str2_start.token()?.clone();
9376        let lit_str2_start_built = LitStr2Start { lit_str2_start };
9377        // Calling user action here
9378        self.user_grammar.lit_str2_start(&lit_str2_start_built)?;
9379        self.push(ASTType::LitStr2Start(lit_str2_start_built), context);
9380        Ok(())
9381    }
9382
9383    /// Semantic action for production 214:
9384    ///
9385    /// `LitStr1Start: <INITIAL, Header>"<'";`
9386    ///
9387    #[parol_runtime::function_name::named]
9388    fn lit_str1_start(&mut self, lit_str1_start: &ParseTreeType<'t>) -> Result<()> {
9389        let context = function_name!();
9390        trace!("{}", self.trace_item_stack(context));
9391        let lit_str1_start = lit_str1_start.token()?.clone();
9392        let lit_str1_start_built = LitStr1Start { lit_str1_start };
9393        // Calling user action here
9394        self.user_grammar.lit_str1_start(&lit_str1_start_built)?;
9395        self.push(ASTType::LitStr1Start(lit_str1_start_built), context);
9396        Ok(())
9397    }
9398
9399    /// Semantic action for production 215:
9400    ///
9401    /// `DelimCodeStart3: /[a-zA-Z0-9-_]*<<<`/;`
9402    ///
9403    #[parol_runtime::function_name::named]
9404    fn delim_code_start3(&mut self, delim_code_start3: &ParseTreeType<'t>) -> Result<()> {
9405        let context = function_name!();
9406        trace!("{}", self.trace_item_stack(context));
9407        let delim_code_start3 = delim_code_start3.token()?.clone();
9408        let delim_code_start3_built = DelimCodeStart3 { delim_code_start3 };
9409        // Calling user action here
9410        self.user_grammar
9411            .delim_code_start3(&delim_code_start3_built)?;
9412        self.push(ASTType::DelimCodeStart3(delim_code_start3_built), context);
9413        Ok(())
9414    }
9415
9416    /// Semantic action for production 216:
9417    ///
9418    /// `DelimCodeStart2: /[a-zA-Z0-9-_]*<<`/;`
9419    ///
9420    #[parol_runtime::function_name::named]
9421    fn delim_code_start2(&mut self, delim_code_start2: &ParseTreeType<'t>) -> Result<()> {
9422        let context = function_name!();
9423        trace!("{}", self.trace_item_stack(context));
9424        let delim_code_start2 = delim_code_start2.token()?.clone();
9425        let delim_code_start2_built = DelimCodeStart2 { delim_code_start2 };
9426        // Calling user action here
9427        self.user_grammar
9428            .delim_code_start2(&delim_code_start2_built)?;
9429        self.push(ASTType::DelimCodeStart2(delim_code_start2_built), context);
9430        Ok(())
9431    }
9432
9433    /// Semantic action for production 217:
9434    ///
9435    /// `DelimCodeStart1: /[a-zA-Z0-9-_]*<`/;`
9436    ///
9437    #[parol_runtime::function_name::named]
9438    fn delim_code_start1(&mut self, delim_code_start1: &ParseTreeType<'t>) -> Result<()> {
9439        let context = function_name!();
9440        trace!("{}", self.trace_item_stack(context));
9441        let delim_code_start1 = delim_code_start1.token()?.clone();
9442        let delim_code_start1_built = DelimCodeStart1 { delim_code_start1 };
9443        // Calling user action here
9444        self.user_grammar
9445            .delim_code_start1(&delim_code_start1_built)?;
9446        self.push(ASTType::DelimCodeStart1(delim_code_start1_built), context);
9447        Ok(())
9448    }
9449
9450    /// Semantic action for production 218:
9451    ///
9452    /// `CodeBlockStart3: /`{3}[a-zA-Z0-9-_]*[\s--\r\n]*(\r\n|\r|\n)/;`
9453    ///
9454    #[parol_runtime::function_name::named]
9455    fn code_block_start3(&mut self, code_block_start3: &ParseTreeType<'t>) -> Result<()> {
9456        let context = function_name!();
9457        trace!("{}", self.trace_item_stack(context));
9458        let code_block_start3 = code_block_start3.token()?.clone();
9459        let code_block_start3_built = CodeBlockStart3 { code_block_start3 };
9460        // Calling user action here
9461        self.user_grammar
9462            .code_block_start3(&code_block_start3_built)?;
9463        self.push(ASTType::CodeBlockStart3(code_block_start3_built), context);
9464        Ok(())
9465    }
9466
9467    /// Semantic action for production 219:
9468    ///
9469    /// `CodeBlockStart4: /`{4}[a-zA-Z0-9-_]*[\s--\r\n]*(\r\n|\r|\n)/;`
9470    ///
9471    #[parol_runtime::function_name::named]
9472    fn code_block_start4(&mut self, code_block_start4: &ParseTreeType<'t>) -> Result<()> {
9473        let context = function_name!();
9474        trace!("{}", self.trace_item_stack(context));
9475        let code_block_start4 = code_block_start4.token()?.clone();
9476        let code_block_start4_built = CodeBlockStart4 { code_block_start4 };
9477        // Calling user action here
9478        self.user_grammar
9479            .code_block_start4(&code_block_start4_built)?;
9480        self.push(ASTType::CodeBlockStart4(code_block_start4_built), context);
9481        Ok(())
9482    }
9483
9484    /// Semantic action for production 220:
9485    ///
9486    /// `CodeBlockStart5: /`{5}[a-zA-Z0-9-_]*[\s--\r\n]*(\r\n|\r|\n)/;`
9487    ///
9488    #[parol_runtime::function_name::named]
9489    fn code_block_start5(&mut self, code_block_start5: &ParseTreeType<'t>) -> Result<()> {
9490        let context = function_name!();
9491        trace!("{}", self.trace_item_stack(context));
9492        let code_block_start5 = code_block_start5.token()?.clone();
9493        let code_block_start5_built = CodeBlockStart5 { code_block_start5 };
9494        // Calling user action here
9495        self.user_grammar
9496            .code_block_start5(&code_block_start5_built)?;
9497        self.push(ASTType::CodeBlockStart5(code_block_start5_built), context);
9498        Ok(())
9499    }
9500
9501    /// Semantic action for production 221:
9502    ///
9503    /// `CodeBlockStart6: /`{6}[a-zA-Z0-9-_]*[\s--\r\n]*(\r\n|\r|\n)/;`
9504    ///
9505    #[parol_runtime::function_name::named]
9506    fn code_block_start6(&mut self, code_block_start6: &ParseTreeType<'t>) -> Result<()> {
9507        let context = function_name!();
9508        trace!("{}", self.trace_item_stack(context));
9509        let code_block_start6 = code_block_start6.token()?.clone();
9510        let code_block_start6_built = CodeBlockStart6 { code_block_start6 };
9511        // Calling user action here
9512        self.user_grammar
9513            .code_block_start6(&code_block_start6_built)?;
9514        self.push(ASTType::CodeBlockStart6(code_block_start6_built), context);
9515        Ok(())
9516    }
9517
9518    /// Semantic action for production 222:
9519    ///
9520    /// `CodeBlockEnd3: <InCodeBlock3>/`{3}/;`
9521    ///
9522    #[parol_runtime::function_name::named]
9523    fn code_block_end3(&mut self, code_block_end3: &ParseTreeType<'t>) -> Result<()> {
9524        let context = function_name!();
9525        trace!("{}", self.trace_item_stack(context));
9526        let code_block_end3 = code_block_end3.token()?.clone();
9527        let code_block_end3_built = CodeBlockEnd3 { code_block_end3 };
9528        // Calling user action here
9529        self.user_grammar.code_block_end3(&code_block_end3_built)?;
9530        self.push(ASTType::CodeBlockEnd3(code_block_end3_built), context);
9531        Ok(())
9532    }
9533
9534    /// Semantic action for production 223:
9535    ///
9536    /// `Backtick2: <InCodeBlock3>/`{1,2}/;`
9537    ///
9538    #[parol_runtime::function_name::named]
9539    fn backtick2(&mut self, backtick2: &ParseTreeType<'t>) -> Result<()> {
9540        let context = function_name!();
9541        trace!("{}", self.trace_item_stack(context));
9542        let backtick2 = backtick2.token()?.clone();
9543        let backtick2_built = Backtick2 { backtick2 };
9544        // Calling user action here
9545        self.user_grammar.backtick2(&backtick2_built)?;
9546        self.push(ASTType::Backtick2(backtick2_built), context);
9547        Ok(())
9548    }
9549
9550    /// Semantic action for production 224:
9551    ///
9552    /// `CodeBlockEnd4: <InCodeBlock4>/`{4}/;`
9553    ///
9554    #[parol_runtime::function_name::named]
9555    fn code_block_end4(&mut self, code_block_end4: &ParseTreeType<'t>) -> Result<()> {
9556        let context = function_name!();
9557        trace!("{}", self.trace_item_stack(context));
9558        let code_block_end4 = code_block_end4.token()?.clone();
9559        let code_block_end4_built = CodeBlockEnd4 { code_block_end4 };
9560        // Calling user action here
9561        self.user_grammar.code_block_end4(&code_block_end4_built)?;
9562        self.push(ASTType::CodeBlockEnd4(code_block_end4_built), context);
9563        Ok(())
9564    }
9565
9566    /// Semantic action for production 225:
9567    ///
9568    /// `Backtick3: <InCodeBlock4>/`{1,3}/;`
9569    ///
9570    #[parol_runtime::function_name::named]
9571    fn backtick3(&mut self, backtick3: &ParseTreeType<'t>) -> Result<()> {
9572        let context = function_name!();
9573        trace!("{}", self.trace_item_stack(context));
9574        let backtick3 = backtick3.token()?.clone();
9575        let backtick3_built = Backtick3 { backtick3 };
9576        // Calling user action here
9577        self.user_grammar.backtick3(&backtick3_built)?;
9578        self.push(ASTType::Backtick3(backtick3_built), context);
9579        Ok(())
9580    }
9581
9582    /// Semantic action for production 226:
9583    ///
9584    /// `CodeBlockEnd5: <InCodeBlock5>/`{5}/;`
9585    ///
9586    #[parol_runtime::function_name::named]
9587    fn code_block_end5(&mut self, code_block_end5: &ParseTreeType<'t>) -> Result<()> {
9588        let context = function_name!();
9589        trace!("{}", self.trace_item_stack(context));
9590        let code_block_end5 = code_block_end5.token()?.clone();
9591        let code_block_end5_built = CodeBlockEnd5 { code_block_end5 };
9592        // Calling user action here
9593        self.user_grammar.code_block_end5(&code_block_end5_built)?;
9594        self.push(ASTType::CodeBlockEnd5(code_block_end5_built), context);
9595        Ok(())
9596    }
9597
9598    /// Semantic action for production 227:
9599    ///
9600    /// `Backtick4: <InCodeBlock5>/`{1,4}/;`
9601    ///
9602    #[parol_runtime::function_name::named]
9603    fn backtick4(&mut self, backtick4: &ParseTreeType<'t>) -> Result<()> {
9604        let context = function_name!();
9605        trace!("{}", self.trace_item_stack(context));
9606        let backtick4 = backtick4.token()?.clone();
9607        let backtick4_built = Backtick4 { backtick4 };
9608        // Calling user action here
9609        self.user_grammar.backtick4(&backtick4_built)?;
9610        self.push(ASTType::Backtick4(backtick4_built), context);
9611        Ok(())
9612    }
9613
9614    /// Semantic action for production 228:
9615    ///
9616    /// `CodeBlockEnd6: <InCodeBlock6>/`{6}/;`
9617    ///
9618    #[parol_runtime::function_name::named]
9619    fn code_block_end6(&mut self, code_block_end6: &ParseTreeType<'t>) -> Result<()> {
9620        let context = function_name!();
9621        trace!("{}", self.trace_item_stack(context));
9622        let code_block_end6 = code_block_end6.token()?.clone();
9623        let code_block_end6_built = CodeBlockEnd6 { code_block_end6 };
9624        // Calling user action here
9625        self.user_grammar.code_block_end6(&code_block_end6_built)?;
9626        self.push(ASTType::CodeBlockEnd6(code_block_end6_built), context);
9627        Ok(())
9628    }
9629
9630    /// Semantic action for production 229:
9631    ///
9632    /// `Backtick5: <InCodeBlock6>/`{1,5}/;`
9633    ///
9634    #[parol_runtime::function_name::named]
9635    fn backtick5(&mut self, backtick5: &ParseTreeType<'t>) -> Result<()> {
9636        let context = function_name!();
9637        trace!("{}", self.trace_item_stack(context));
9638        let backtick5 = backtick5.token()?.clone();
9639        let backtick5_built = Backtick5 { backtick5 };
9640        // Calling user action here
9641        self.user_grammar.backtick5(&backtick5_built)?;
9642        self.push(ASTType::Backtick5(backtick5_built), context);
9643        Ok(())
9644    }
9645
9646    /// Semantic action for production 230:
9647    ///
9648    /// `NoBacktick: <InCodeBlock3, InCodeBlock4, InCodeBlock5, InCodeBlock6, InDelimCode1, InDelimCode2, InDelimCode3>/[^`]+/;`
9649    ///
9650    #[parol_runtime::function_name::named]
9651    fn no_backtick(&mut self, no_backtick: &ParseTreeType<'t>) -> Result<()> {
9652        let context = function_name!();
9653        trace!("{}", self.trace_item_stack(context));
9654        let no_backtick = no_backtick.token()?.clone();
9655        let no_backtick_built = NoBacktick { no_backtick };
9656        // Calling user action here
9657        self.user_grammar.no_backtick(&no_backtick_built)?;
9658        self.push(ASTType::NoBacktick(no_backtick_built), context);
9659        Ok(())
9660    }
9661
9662    /// Semantic action for production 231:
9663    ///
9664    /// `LitStr3End: <InLitStr3>"'>>>";`
9665    ///
9666    #[parol_runtime::function_name::named]
9667    fn lit_str3_end(&mut self, lit_str3_end: &ParseTreeType<'t>) -> Result<()> {
9668        let context = function_name!();
9669        trace!("{}", self.trace_item_stack(context));
9670        let lit_str3_end = lit_str3_end.token()?.clone();
9671        let lit_str3_end_built = LitStr3End { lit_str3_end };
9672        // Calling user action here
9673        self.user_grammar.lit_str3_end(&lit_str3_end_built)?;
9674        self.push(ASTType::LitStr3End(lit_str3_end_built), context);
9675        Ok(())
9676    }
9677
9678    /// Semantic action for production 232:
9679    ///
9680    /// `LitStr2End: <InLitStr2>"'>>";`
9681    ///
9682    #[parol_runtime::function_name::named]
9683    fn lit_str2_end(&mut self, lit_str2_end: &ParseTreeType<'t>) -> Result<()> {
9684        let context = function_name!();
9685        trace!("{}", self.trace_item_stack(context));
9686        let lit_str2_end = lit_str2_end.token()?.clone();
9687        let lit_str2_end_built = LitStr2End { lit_str2_end };
9688        // Calling user action here
9689        self.user_grammar.lit_str2_end(&lit_str2_end_built)?;
9690        self.push(ASTType::LitStr2End(lit_str2_end_built), context);
9691        Ok(())
9692    }
9693
9694    /// Semantic action for production 233:
9695    ///
9696    /// `LitStr1End: <InLitStr1>"'>";`
9697    ///
9698    #[parol_runtime::function_name::named]
9699    fn lit_str1_end(&mut self, lit_str1_end: &ParseTreeType<'t>) -> Result<()> {
9700        let context = function_name!();
9701        trace!("{}", self.trace_item_stack(context));
9702        let lit_str1_end = lit_str1_end.token()?.clone();
9703        let lit_str1_end_built = LitStr1End { lit_str1_end };
9704        // Calling user action here
9705        self.user_grammar.lit_str1_end(&lit_str1_end_built)?;
9706        self.push(ASTType::LitStr1End(lit_str1_end_built), context);
9707        Ok(())
9708    }
9709
9710    /// Semantic action for production 234:
9711    ///
9712    /// `SQuote: <InLitStr1, InLitStr2, InLitStr3>"'";`
9713    ///
9714    #[parol_runtime::function_name::named]
9715    fn s_quote(&mut self, s_quote: &ParseTreeType<'t>) -> Result<()> {
9716        let context = function_name!();
9717        trace!("{}", self.trace_item_stack(context));
9718        let s_quote = s_quote.token()?.clone();
9719        let s_quote_built = SQuote { s_quote };
9720        // Calling user action here
9721        self.user_grammar.s_quote(&s_quote_built)?;
9722        self.push(ASTType::SQuote(s_quote_built), context);
9723        Ok(())
9724    }
9725
9726    /// Semantic action for production 235:
9727    ///
9728    /// `NoSQuote: <InLitStr1, InLitStr2, InLitStr3>/[^']+/;`
9729    ///
9730    #[parol_runtime::function_name::named]
9731    fn no_s_quote(&mut self, no_s_quote: &ParseTreeType<'t>) -> Result<()> {
9732        let context = function_name!();
9733        trace!("{}", self.trace_item_stack(context));
9734        let no_s_quote = no_s_quote.token()?.clone();
9735        let no_s_quote_built = NoSQuote { no_s_quote };
9736        // Calling user action here
9737        self.user_grammar.no_s_quote(&no_s_quote_built)?;
9738        self.push(ASTType::NoSQuote(no_s_quote_built), context);
9739        Ok(())
9740    }
9741
9742    /// Semantic action for production 236:
9743    ///
9744    /// `DelimCodeEnd3: <InDelimCode3>'`>>>';`
9745    ///
9746    #[parol_runtime::function_name::named]
9747    fn delim_code_end3(&mut self, delim_code_end3: &ParseTreeType<'t>) -> Result<()> {
9748        let context = function_name!();
9749        trace!("{}", self.trace_item_stack(context));
9750        let delim_code_end3 = delim_code_end3.token()?.clone();
9751        let delim_code_end3_built = DelimCodeEnd3 { delim_code_end3 };
9752        // Calling user action here
9753        self.user_grammar.delim_code_end3(&delim_code_end3_built)?;
9754        self.push(ASTType::DelimCodeEnd3(delim_code_end3_built), context);
9755        Ok(())
9756    }
9757
9758    /// Semantic action for production 237:
9759    ///
9760    /// `DelimCodeEnd2: <InDelimCode2>'`>>';`
9761    ///
9762    #[parol_runtime::function_name::named]
9763    fn delim_code_end2(&mut self, delim_code_end2: &ParseTreeType<'t>) -> Result<()> {
9764        let context = function_name!();
9765        trace!("{}", self.trace_item_stack(context));
9766        let delim_code_end2 = delim_code_end2.token()?.clone();
9767        let delim_code_end2_built = DelimCodeEnd2 { delim_code_end2 };
9768        // Calling user action here
9769        self.user_grammar.delim_code_end2(&delim_code_end2_built)?;
9770        self.push(ASTType::DelimCodeEnd2(delim_code_end2_built), context);
9771        Ok(())
9772    }
9773
9774    /// Semantic action for production 238:
9775    ///
9776    /// `DelimCodeEnd1: <InDelimCode1>'`>';`
9777    ///
9778    #[parol_runtime::function_name::named]
9779    fn delim_code_end1(&mut self, delim_code_end1: &ParseTreeType<'t>) -> Result<()> {
9780        let context = function_name!();
9781        trace!("{}", self.trace_item_stack(context));
9782        let delim_code_end1 = delim_code_end1.token()?.clone();
9783        let delim_code_end1_built = DelimCodeEnd1 { delim_code_end1 };
9784        // Calling user action here
9785        self.user_grammar.delim_code_end1(&delim_code_end1_built)?;
9786        self.push(ASTType::DelimCodeEnd1(delim_code_end1_built), context);
9787        Ok(())
9788    }
9789
9790    /// Semantic action for production 239:
9791    ///
9792    /// `BacktickDelim: <InDelimCode1, InDelimCode2, InDelimCode3>'`';`
9793    ///
9794    #[parol_runtime::function_name::named]
9795    fn backtick_delim(&mut self, backtick_delim: &ParseTreeType<'t>) -> Result<()> {
9796        let context = function_name!();
9797        trace!("{}", self.trace_item_stack(context));
9798        let backtick_delim = backtick_delim.token()?.clone();
9799        let backtick_delim_built = BacktickDelim { backtick_delim };
9800        // Calling user action here
9801        self.user_grammar.backtick_delim(&backtick_delim_built)?;
9802        self.push(ASTType::BacktickDelim(backtick_delim_built), context);
9803        Ok(())
9804    }
9805
9806    /// Semantic action for production 240:
9807    ///
9808    /// `GrammarNewline: <Header, Text>/\r\n|\r|\n/;`
9809    ///
9810    #[parol_runtime::function_name::named]
9811    fn grammar_newline(&mut self, grammar_newline: &ParseTreeType<'t>) -> Result<()> {
9812        let context = function_name!();
9813        trace!("{}", self.trace_item_stack(context));
9814        let grammar_newline = grammar_newline.token()?.clone();
9815        let grammar_newline_built = GrammarNewline { grammar_newline };
9816        // Calling user action here
9817        self.user_grammar.grammar_newline(&grammar_newline_built)?;
9818        self.push(ASTType::GrammarNewline(grammar_newline_built), context);
9819        Ok(())
9820    }
9821
9822    /// Semantic action for production 241:
9823    ///
9824    /// `Ws: <Text>/[\s--\r\n]+/;`
9825    ///
9826    #[parol_runtime::function_name::named]
9827    fn ws(&mut self, ws: &ParseTreeType<'t>) -> Result<()> {
9828        let context = function_name!();
9829        trace!("{}", self.trace_item_stack(context));
9830        let ws = ws.token()?.clone();
9831        let ws_built = Ws { ws };
9832        // Calling user action here
9833        self.user_grammar.ws(&ws_built)?;
9834        self.push(ASTType::Ws(ws_built), context);
9835        Ok(())
9836    }
9837
9838    /// Semantic action for production 242:
9839    ///
9840    /// `At: <INITIAL, Header>'@';`
9841    ///
9842    #[parol_runtime::function_name::named]
9843    fn at(&mut self, at: &ParseTreeType<'t>) -> Result<()> {
9844        let context = function_name!();
9845        trace!("{}", self.trace_item_stack(context));
9846        let at = at.token()?.clone();
9847        let at_built = At { at };
9848        // Calling user action here
9849        self.user_grammar.at(&at_built)?;
9850        self.push(ASTType::At(at_built), context);
9851        Ok(())
9852    }
9853
9854    /// Semantic action for production 243:
9855    ///
9856    /// `Ext: <INITIAL, Header>'$';`
9857    ///
9858    #[parol_runtime::function_name::named]
9859    fn ext(&mut self, ext: &ParseTreeType<'t>) -> Result<()> {
9860        let context = function_name!();
9861        trace!("{}", self.trace_item_stack(context));
9862        let ext = ext.token()?.clone();
9863        let ext_built = Ext { ext };
9864        // Calling user action here
9865        self.user_grammar.ext(&ext_built)?;
9866        self.push(ASTType::Ext(ext_built), context);
9867        Ok(())
9868    }
9869
9870    /// Semantic action for production 244:
9871    ///
9872    /// `Dot: <INITIAL, Header>'.';`
9873    ///
9874    #[parol_runtime::function_name::named]
9875    fn dot(&mut self, dot: &ParseTreeType<'t>) -> Result<()> {
9876        let context = function_name!();
9877        trace!("{}", self.trace_item_stack(context));
9878        let dot = dot.token()?.clone();
9879        let dot_built = Dot { dot };
9880        // Calling user action here
9881        self.user_grammar.dot(&dot_built)?;
9882        self.push(ASTType::Dot(dot_built), context);
9883        Ok(())
9884    }
9885
9886    /// Semantic action for production 245:
9887    ///
9888    /// `Begin: <INITIAL, Header>'{';`
9889    ///
9890    #[parol_runtime::function_name::named]
9891    fn begin(&mut self, begin: &ParseTreeType<'t>) -> Result<()> {
9892        let context = function_name!();
9893        trace!("{}", self.trace_item_stack(context));
9894        let begin = begin.token()?.clone();
9895        let begin_built = Begin { begin };
9896        // Calling user action here
9897        self.user_grammar.begin(&begin_built)?;
9898        self.push(ASTType::Begin(begin_built), context);
9899        Ok(())
9900    }
9901
9902    /// Semantic action for production 246:
9903    ///
9904    /// `End: '}';`
9905    ///
9906    #[parol_runtime::function_name::named]
9907    fn end(&mut self, end: &ParseTreeType<'t>) -> Result<()> {
9908        let context = function_name!();
9909        trace!("{}", self.trace_item_stack(context));
9910        let end = end.token()?.clone();
9911        let end_built = End { end };
9912        // Calling user action here
9913        self.user_grammar.end(&end_built)?;
9914        self.push(ASTType::End(end_built), context);
9915        Ok(())
9916    }
9917
9918    /// Semantic action for production 247:
9919    ///
9920    /// `ArrayBegin: <INITIAL, Header>'[';`
9921    ///
9922    #[parol_runtime::function_name::named]
9923    fn array_begin(&mut self, array_begin: &ParseTreeType<'t>) -> Result<()> {
9924        let context = function_name!();
9925        trace!("{}", self.trace_item_stack(context));
9926        let array_begin = array_begin.token()?.clone();
9927        let array_begin_built = ArrayBegin { array_begin };
9928        // Calling user action here
9929        self.user_grammar.array_begin(&array_begin_built)?;
9930        self.push(ASTType::ArrayBegin(array_begin_built), context);
9931        Ok(())
9932    }
9933
9934    /// Semantic action for production 248:
9935    ///
9936    /// `ArrayEnd: <INITIAL, Header>']';`
9937    ///
9938    #[parol_runtime::function_name::named]
9939    fn array_end(&mut self, array_end: &ParseTreeType<'t>) -> Result<()> {
9940        let context = function_name!();
9941        trace!("{}", self.trace_item_stack(context));
9942        let array_end = array_end.token()?.clone();
9943        let array_end_built = ArrayEnd { array_end };
9944        // Calling user action here
9945        self.user_grammar.array_end(&array_end_built)?;
9946        self.push(ASTType::ArrayEnd(array_end_built), context);
9947        Ok(())
9948    }
9949
9950    /// Semantic action for production 249:
9951    ///
9952    /// `Caret: <INITIAL, Header>'^';`
9953    ///
9954    #[parol_runtime::function_name::named]
9955    fn caret(&mut self, caret: &ParseTreeType<'t>) -> Result<()> {
9956        let context = function_name!();
9957        trace!("{}", self.trace_item_stack(context));
9958        let caret = caret.token()?.clone();
9959        let caret_built = Caret { caret };
9960        // Calling user action here
9961        self.user_grammar.caret(&caret_built)?;
9962        self.push(ASTType::Caret(caret_built), context);
9963        Ok(())
9964    }
9965
9966    /// Semantic action for production 250:
9967    ///
9968    /// `LParen: <INITIAL, Header>'(';`
9969    ///
9970    #[parol_runtime::function_name::named]
9971    fn l_paren(&mut self, l_paren: &ParseTreeType<'t>) -> Result<()> {
9972        let context = function_name!();
9973        trace!("{}", self.trace_item_stack(context));
9974        let l_paren = l_paren.token()?.clone();
9975        let l_paren_built = LParen { l_paren };
9976        // Calling user action here
9977        self.user_grammar.l_paren(&l_paren_built)?;
9978        self.push(ASTType::LParen(l_paren_built), context);
9979        Ok(())
9980    }
9981
9982    /// Semantic action for production 251:
9983    ///
9984    /// `RParen: <INITIAL, Header>')';`
9985    ///
9986    #[parol_runtime::function_name::named]
9987    fn r_paren(&mut self, r_paren: &ParseTreeType<'t>) -> Result<()> {
9988        let context = function_name!();
9989        trace!("{}", self.trace_item_stack(context));
9990        let r_paren = r_paren.token()?.clone();
9991        let r_paren_built = RParen { r_paren };
9992        // Calling user action here
9993        self.user_grammar.r_paren(&r_paren_built)?;
9994        self.push(ASTType::RParen(r_paren_built), context);
9995        Ok(())
9996    }
9997
9998    /// Semantic action for production 252:
9999    ///
10000    /// `NewlineBind: <Header>/(\r\n|\r|\n)*=/;`
10001    ///
10002    #[parol_runtime::function_name::named]
10003    fn newline_bind(&mut self, newline_bind: &ParseTreeType<'t>) -> Result<()> {
10004        let context = function_name!();
10005        trace!("{}", self.trace_item_stack(context));
10006        let newline_bind = newline_bind.token()?.clone();
10007        let newline_bind_built = NewlineBind { newline_bind };
10008        // Calling user action here
10009        self.user_grammar.newline_bind(&newline_bind_built)?;
10010        self.push(ASTType::NewlineBind(newline_bind_built), context);
10011        Ok(())
10012    }
10013
10014    /// Semantic action for production 253:
10015    ///
10016    /// `Bind: '=';`
10017    ///
10018    #[parol_runtime::function_name::named]
10019    fn bind(&mut self, bind: &ParseTreeType<'t>) -> Result<()> {
10020        let context = function_name!();
10021        trace!("{}", self.trace_item_stack(context));
10022        let bind = bind.token()?.clone();
10023        let bind_built = Bind { bind };
10024        // Calling user action here
10025        self.user_grammar.bind(&bind_built)?;
10026        self.push(ASTType::Bind(bind_built), context);
10027        Ok(())
10028    }
10029
10030    /// Semantic action for production 254:
10031    ///
10032    /// `Comma: <INITIAL, Header>',';`
10033    ///
10034    #[parol_runtime::function_name::named]
10035    fn comma(&mut self, comma: &ParseTreeType<'t>) -> Result<()> {
10036        let context = function_name!();
10037        trace!("{}", self.trace_item_stack(context));
10038        let comma = comma.token()?.clone();
10039        let comma_built = Comma { comma };
10040        // Calling user action here
10041        self.user_grammar.comma(&comma_built)?;
10042        self.push(ASTType::Comma(comma_built), context);
10043        Ok(())
10044    }
10045
10046    /// Semantic action for production 255:
10047    ///
10048    /// `Continue: '\';`
10049    ///
10050    #[parol_runtime::function_name::named]
10051    fn r#continue(&mut self, r#continue: &ParseTreeType<'t>) -> Result<()> {
10052        let context = function_name!();
10053        trace!("{}", self.trace_item_stack(context));
10054        let r#continue = r#continue.token()?.clone();
10055        let r#continue_built = Continue { r#continue };
10056        // Calling user action here
10057        self.user_grammar.r#continue(&r#continue_built)?;
10058        self.push(ASTType::Continue(r#continue_built), context);
10059        Ok(())
10060    }
10061
10062    /// Semantic action for production 256:
10063    ///
10064    /// `NewlineTextStart: <Header>/(\r\n|\r|\n)*:/;`
10065    ///
10066    #[parol_runtime::function_name::named]
10067    fn newline_text_start(&mut self, newline_text_start: &ParseTreeType<'t>) -> Result<()> {
10068        let context = function_name!();
10069        trace!("{}", self.trace_item_stack(context));
10070        let newline_text_start = newline_text_start.token()?.clone();
10071        let newline_text_start_built = NewlineTextStart { newline_text_start };
10072        // Calling user action here
10073        self.user_grammar
10074            .newline_text_start(&newline_text_start_built)?;
10075        self.push(ASTType::NewlineTextStart(newline_text_start_built), context);
10076        Ok(())
10077    }
10078
10079    /// Semantic action for production 257:
10080    ///
10081    /// `TextStart: ":";`
10082    ///
10083    #[parol_runtime::function_name::named]
10084    fn text_start(&mut self, text_start: &ParseTreeType<'t>) -> Result<()> {
10085        let context = function_name!();
10086        trace!("{}", self.trace_item_stack(context));
10087        let text_start = text_start.token()?.clone();
10088        let text_start_built = TextStart { text_start };
10089        // Calling user action here
10090        self.user_grammar.text_start(&text_start_built)?;
10091        self.push(ASTType::TextStart(text_start_built), context);
10092        Ok(())
10093    }
10094
10095    /// Semantic action for production 258:
10096    ///
10097    /// `Ident: <INITIAL, Header>/[\p{XID_Start}_][\p{XID_Continue}-]*/;`
10098    ///
10099    #[parol_runtime::function_name::named]
10100    fn ident(&mut self, ident: &ParseTreeType<'t>) -> Result<()> {
10101        let context = function_name!();
10102        trace!("{}", self.trace_item_stack(context));
10103        let ident = ident.token()?.clone();
10104        let ident_built = Ident { ident };
10105        // Calling user action here
10106        self.user_grammar.ident(&ident_built)?;
10107        self.push(ASTType::Ident(ident_built), context);
10108        Ok(())
10109    }
10110}
10111
10112impl<'t> UserActionsTrait<'t> for GrammarAuto<'t, '_> {
10113    ///
10114    /// This function is implemented automatically for the user's item Grammar.
10115    ///
10116    fn call_semantic_action_for_production_number(
10117        &mut self,
10118        prod_num: usize,
10119        children: &[ParseTreeType<'t>],
10120    ) -> Result<()> {
10121        match prod_num {
10122            0 => self.eure(&children[0], &children[1], &children[2]),
10123            1 => self.eure_list0_0(&children[0], &children[1]),
10124            2 => self.eure_list0_1(),
10125            3 => self.eure_list_0(&children[0], &children[1]),
10126            4 => self.eure_list_1(),
10127            5 => self.eure_opt_0(&children[0]),
10128            6 => self.eure_opt_1(),
10129            7 => self.top_level_binding_0(&children[0]),
10130            8 => self.top_level_binding_1(&children[0]),
10131            9 => self.root_binding_0(&children[0]),
10132            10 => self.root_binding_1(&children[0]),
10133            11 => self.root_value_binding(&children[0], &children[1]),
10134            12 => self.root_text_binding(&children[0], &children[1], &children[2], &children[3]),
10135            13 => self.root_text_binding_opt1_0(&children[0]),
10136            14 => self.root_text_binding_opt1_1(),
10137            15 => self.root_text_binding_opt0_0(&children[0]),
10138            16 => self.root_text_binding_opt0_1(),
10139            17 => self.root_text_binding_opt_0(&children[0]),
10140            18 => self.root_text_binding_opt_1(),
10141            19 => self.binding(&children[0], &children[1]),
10142            20 => self.binding_rhs_0(&children[0]),
10143            21 => self.binding_rhs_1(&children[0]),
10144            22 => self.binding_rhs_2(&children[0]),
10145            23 => self.value_binding(&children[0], &children[1]),
10146            24 => self.section_binding(&children[0], &children[1], &children[2]),
10147            25 => self.text_binding(&children[0], &children[1], &children[2], &children[3]),
10148            26 => self.text_binding_opt1_0(&children[0]),
10149            27 => self.text_binding_opt1_1(),
10150            28 => self.text_binding_opt0_0(&children[0]),
10151            29 => self.text_binding_opt0_1(),
10152            30 => self.text_binding_opt_0(&children[0]),
10153            31 => self.text_binding_opt_1(),
10154            32 => self.section(&children[0], &children[1], &children[2]),
10155            33 => self.section_body_0(&children[0]),
10156            34 => self.section_body_1(&children[0]),
10157            35 => self.section_body_opt_0(&children[0]),
10158            36 => self.section_body_opt_1(),
10159            37 => self.flat_body(&children[0], &children[1]),
10160            38 => self.flat_body_list_0(&children[0], &children[1]),
10161            39 => self.flat_body_list_1(),
10162            40 => self.section_head_0(&children[0]),
10163            41 => self.section_head_1(&children[0]),
10164            42 => self.newline_head(&children[0], &children[1]),
10165            43 => self.newline_head_opt_0(&children[0]),
10166            44 => self.newline_head_opt_1(),
10167            45 => self.flat_root_binding_0(&children[0]),
10168            46 => self.flat_root_binding_1(&children[0]),
10169            47 => self.block_body(&children[0], &children[1], &children[2]),
10170            48 => self.keys(&children[0], &children[1]),
10171            49 => self.keys_list_0(&children[0], &children[1]),
10172            50 => self.keys_list_1(),
10173            51 => self.first_key_0(&children[0]),
10174            52 => self.first_key_1(&children[0]),
10175            53 => self.key_tail_0(&children[0]),
10176            54 => self.key_tail_1(&children[0]),
10177            55 => self.dot_key(&children[0], &children[1]),
10178            56 => self.array_marker(&children[0], &children[1], &children[2]),
10179            57 => self.array_marker_opt_0(&children[0]),
10180            58 => self.array_marker_opt_group_0(&children[0]),
10181            59 => self.array_marker_opt_group_1(&children[0]),
10182            60 => self.array_marker_opt_1(),
10183            61 => self.key_0(&children[0]),
10184            62 => self.key_1(&children[0]),
10185            63 => self.key_2(&children[0]),
10186            64 => self.key_3(&children[0]),
10187            65 => self.key_4(&children[0]),
10188            66 => self.key_5(&children[0]),
10189            67 => self.key_6(&children[0]),
10190            68 => self.key_7(&children[0]),
10191            69 => self.tuple_index(&children[0], &children[1]),
10192            70 => self.extension_name_space(&children[0], &children[1]),
10193            71 => self.key_tuple(&children[0], &children[1], &children[2]),
10194            72 => self.key_tuple_opt_0(&children[0]),
10195            73 => self.key_tuple_opt_1(),
10196            74 => self.key_tuple_elements(&children[0], &children[1]),
10197            75 => self.key_tuple_elements_opt_0(&children[0]),
10198            76 => self.key_tuple_elements_opt_1(),
10199            77 => self.key_tuple_elements_tail(&children[0], &children[1]),
10200            78 => self.key_tuple_elements_tail_opt_0(&children[0]),
10201            79 => self.key_tuple_elements_tail_opt_1(),
10202            80 => self.key_value_0(&children[0]),
10203            81 => self.key_value_1(&children[0]),
10204            82 => self.key_value_2(&children[0]),
10205            83 => self.key_value_3(&children[0]),
10206            84 => self.key_value_4(&children[0]),
10207            85 => self.key_ident_0(&children[0]),
10208            86 => self.key_ident_1(&children[0]),
10209            87 => self.key_ident_2(&children[0]),
10210            88 => self.key_ident_3(&children[0]),
10211            89 => self.value_0(&children[0]),
10212            90 => self.value_1(&children[0]),
10213            91 => self.value_2(&children[0]),
10214            92 => self.value_3(&children[0]),
10215            93 => self.value_4(&children[0]),
10216            94 => self.value_5(&children[0]),
10217            95 => self.value_6(&children[0]),
10218            96 => self.value_7(&children[0]),
10219            97 => self.value_8(&children[0]),
10220            98 => self.value_9(&children[0]),
10221            99 => self.object(&children[0], &children[1], &children[2], &children[3]),
10222            100 => self.object_list_0(
10223                &children[0],
10224                &children[1],
10225                &children[2],
10226                &children[3],
10227                &children[4],
10228            ),
10229            101 => self.object_list_1(),
10230            102 => self.object_opt0_0(&children[0]),
10231            103 => self.object_opt0_1(),
10232            104 => self.object_opt_0(&children[0], &children[1]),
10233            105 => self.object_opt1_0(&children[0]),
10234            106 => self.object_opt1_1(),
10235            107 => self.object_opt_1(),
10236            108 => self.map_bind(&children[0]),
10237            109 => self.array(&children[0], &children[1], &children[2]),
10238            110 => self.array_opt_0(&children[0]),
10239            111 => self.array_opt_1(),
10240            112 => self.array_elements(&children[0], &children[1]),
10241            113 => self.array_elements_opt_0(&children[0]),
10242            114 => self.array_elements_opt_1(),
10243            115 => self.array_elements_tail(&children[0], &children[1]),
10244            116 => self.array_elements_tail_opt_0(&children[0]),
10245            117 => self.array_elements_tail_opt_1(),
10246            118 => self.tuple(&children[0], &children[1], &children[2]),
10247            119 => self.tuple_opt_0(&children[0]),
10248            120 => self.tuple_opt_1(),
10249            121 => self.tuple_elements(&children[0], &children[1]),
10250            122 => self.tuple_elements_opt_0(&children[0]),
10251            123 => self.tuple_elements_opt_1(),
10252            124 => self.tuple_elements_tail(&children[0], &children[1]),
10253            125 => self.tuple_elements_tail_opt_0(&children[0]),
10254            126 => self.tuple_elements_tail_opt_1(),
10255            127 => self.number_0(&children[0]),
10256            128 => self.number_1(&children[0]),
10257            129 => self.number_2(&children[0]),
10258            130 => self.number_3(&children[0]),
10259            131 => self.integer(&children[0]),
10260            132 => self.float(&children[0]),
10261            133 => self.inf(&children[0]),
10262            134 => self.na_n(&children[0]),
10263            135 => self.boolean_0(&children[0]),
10264            136 => self.boolean_1(&children[0]),
10265            137 => self.r#true(&children[0]),
10266            138 => self.r#false(&children[0]),
10267            139 => self.null(&children[0]),
10268            140 => self.hole(&children[0]),
10269            141 => self.string_0(&children[0]),
10270            142 => self.string_1(&children[0]),
10271            143 => self.string_2(&children[0]),
10272            144 => self.string_3(&children[0]),
10273            145 => self.string_4(&children[0]),
10274            146 => self.strings(&children[0], &children[1]),
10275            147 => self.strings_list_0(&children[0], &children[1], &children[2]),
10276            148 => self.strings_list_1(),
10277            149 => self.str(&children[0]),
10278            150 => self.lit_str(&children[0]),
10279            151 => self.text(&children[0]),
10280            152 => self.inline_code_0(&children[0]),
10281            153 => self.inline_code_1(&children[0]),
10282            154 => self.inline_code1(&children[0]),
10283            155 => self.lit_str1(&children[0], &children[1], &children[2]),
10284            156 => self.lit_str1_list_0(&children[0], &children[1]),
10285            157 => self.lit_str1_list_group_0(&children[0]),
10286            158 => self.lit_str1_list_group_1(&children[0]),
10287            159 => self.lit_str1_list_1(),
10288            160 => self.lit_str2(&children[0], &children[1], &children[2]),
10289            161 => self.lit_str2_list_0(&children[0], &children[1]),
10290            162 => self.lit_str2_list_group_0(&children[0]),
10291            163 => self.lit_str2_list_group_1(&children[0]),
10292            164 => self.lit_str2_list_1(),
10293            165 => self.lit_str3(&children[0], &children[1], &children[2]),
10294            166 => self.lit_str3_list_0(&children[0], &children[1]),
10295            167 => self.lit_str3_list_group_0(&children[0]),
10296            168 => self.lit_str3_list_group_1(&children[0]),
10297            169 => self.lit_str3_list_1(),
10298            170 => self.delim_code_0(&children[0]),
10299            171 => self.delim_code_1(&children[0]),
10300            172 => self.delim_code_2(&children[0]),
10301            173 => self.delim_code1(&children[0], &children[1], &children[2]),
10302            174 => self.delim_code1_list_0(&children[0], &children[1]),
10303            175 => self.delim_code1_list_group_0(&children[0]),
10304            176 => self.delim_code1_list_group_1(&children[0]),
10305            177 => self.delim_code1_list_1(),
10306            178 => self.delim_code2(&children[0], &children[1], &children[2]),
10307            179 => self.delim_code2_list_0(&children[0], &children[1]),
10308            180 => self.delim_code2_list_group_0(&children[0]),
10309            181 => self.delim_code2_list_group_1(&children[0]),
10310            182 => self.delim_code2_list_1(),
10311            183 => self.delim_code3(&children[0], &children[1], &children[2]),
10312            184 => self.delim_code3_list_0(&children[0], &children[1]),
10313            185 => self.delim_code3_list_group_0(&children[0]),
10314            186 => self.delim_code3_list_group_1(&children[0]),
10315            187 => self.delim_code3_list_1(),
10316            188 => self.code_block_0(&children[0]),
10317            189 => self.code_block_1(&children[0]),
10318            190 => self.code_block_2(&children[0]),
10319            191 => self.code_block_3(&children[0]),
10320            192 => self.code_block3(&children[0], &children[1], &children[2]),
10321            193 => self.code_block3_list_0(&children[0], &children[1]),
10322            194 => self.code_block3_list_group_0(&children[0]),
10323            195 => self.code_block3_list_group_1(&children[0]),
10324            196 => self.code_block3_list_1(),
10325            197 => self.code_block4(&children[0], &children[1], &children[2]),
10326            198 => self.code_block4_list_0(&children[0], &children[1]),
10327            199 => self.code_block4_list_group_0(&children[0]),
10328            200 => self.code_block4_list_group_1(&children[0]),
10329            201 => self.code_block4_list_1(),
10330            202 => self.code_block5(&children[0], &children[1], &children[2]),
10331            203 => self.code_block5_list_0(&children[0], &children[1]),
10332            204 => self.code_block5_list_group_0(&children[0]),
10333            205 => self.code_block5_list_group_1(&children[0]),
10334            206 => self.code_block5_list_1(),
10335            207 => self.code_block6(&children[0], &children[1], &children[2]),
10336            208 => self.code_block6_list_0(&children[0], &children[1]),
10337            209 => self.code_block6_list_group_0(&children[0]),
10338            210 => self.code_block6_list_group_1(&children[0]),
10339            211 => self.code_block6_list_1(),
10340            212 => self.lit_str3_start(&children[0]),
10341            213 => self.lit_str2_start(&children[0]),
10342            214 => self.lit_str1_start(&children[0]),
10343            215 => self.delim_code_start3(&children[0]),
10344            216 => self.delim_code_start2(&children[0]),
10345            217 => self.delim_code_start1(&children[0]),
10346            218 => self.code_block_start3(&children[0]),
10347            219 => self.code_block_start4(&children[0]),
10348            220 => self.code_block_start5(&children[0]),
10349            221 => self.code_block_start6(&children[0]),
10350            222 => self.code_block_end3(&children[0]),
10351            223 => self.backtick2(&children[0]),
10352            224 => self.code_block_end4(&children[0]),
10353            225 => self.backtick3(&children[0]),
10354            226 => self.code_block_end5(&children[0]),
10355            227 => self.backtick4(&children[0]),
10356            228 => self.code_block_end6(&children[0]),
10357            229 => self.backtick5(&children[0]),
10358            230 => self.no_backtick(&children[0]),
10359            231 => self.lit_str3_end(&children[0]),
10360            232 => self.lit_str2_end(&children[0]),
10361            233 => self.lit_str1_end(&children[0]),
10362            234 => self.s_quote(&children[0]),
10363            235 => self.no_s_quote(&children[0]),
10364            236 => self.delim_code_end3(&children[0]),
10365            237 => self.delim_code_end2(&children[0]),
10366            238 => self.delim_code_end1(&children[0]),
10367            239 => self.backtick_delim(&children[0]),
10368            240 => self.grammar_newline(&children[0]),
10369            241 => self.ws(&children[0]),
10370            242 => self.at(&children[0]),
10371            243 => self.ext(&children[0]),
10372            244 => self.dot(&children[0]),
10373            245 => self.begin(&children[0]),
10374            246 => self.end(&children[0]),
10375            247 => self.array_begin(&children[0]),
10376            248 => self.array_end(&children[0]),
10377            249 => self.caret(&children[0]),
10378            250 => self.l_paren(&children[0]),
10379            251 => self.r_paren(&children[0]),
10380            252 => self.newline_bind(&children[0]),
10381            253 => self.bind(&children[0]),
10382            254 => self.comma(&children[0]),
10383            255 => self.r#continue(&children[0]),
10384            256 => self.newline_text_start(&children[0]),
10385            257 => self.text_start(&children[0]),
10386            258 => self.ident(&children[0]),
10387            _ => Err(ParserError::InternalError(format!(
10388                "Unhandled production number: {prod_num}"
10389            ))
10390            .into()),
10391        }
10392    }
10393
10394    fn on_comment(&mut self, token: Token<'t>) {
10395        self.user_grammar.on_comment(token)
10396    }
10397}