veryl_parser/generated/
veryl_grammar_trait.rs

1// ---------------------------------------------------------
2// This file was generated by parol.
3// It is not intended for manual editing and changes will be
4// lost after 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::derive_builder::Builder;
13use parol_runtime::log::trace;
14#[allow(unused_imports)]
15use parol_runtime::parol_macros::{pop_and_reverse_item, pop_item};
16use parol_runtime::parser::{ParseTreeType, UserActionsTrait};
17use parol_runtime::{ParserError, Result, Token};
18use std::marker::PhantomData;
19
20/// Semantic actions trait generated for the user grammar
21/// All functions have default implementations.
22pub trait VerylGrammarTrait {
23    /// Semantic action for non-terminal 'CommentsTerm'
24    fn comments_term(&mut self, _arg: &CommentsTerm) -> Result<()> {
25        Ok(())
26    }
27
28    /// Semantic action for non-terminal 'StringLiteralTerm'
29    fn string_literal_term(&mut self, _arg: &StringLiteralTerm) -> Result<()> {
30        Ok(())
31    }
32
33    /// Semantic action for non-terminal 'ExponentTerm'
34    fn exponent_term(&mut self, _arg: &ExponentTerm) -> Result<()> {
35        Ok(())
36    }
37
38    /// Semantic action for non-terminal 'FixedPointTerm'
39    fn fixed_point_term(&mut self, _arg: &FixedPointTerm) -> Result<()> {
40        Ok(())
41    }
42
43    /// Semantic action for non-terminal 'BasedTerm'
44    fn based_term(&mut self, _arg: &BasedTerm) -> Result<()> {
45        Ok(())
46    }
47
48    /// Semantic action for non-terminal 'AllBitTerm'
49    fn all_bit_term(&mut self, _arg: &AllBitTerm) -> Result<()> {
50        Ok(())
51    }
52
53    /// Semantic action for non-terminal 'BaseLessTerm'
54    fn base_less_term(&mut self, _arg: &BaseLessTerm) -> Result<()> {
55        Ok(())
56    }
57
58    /// Semantic action for non-terminal 'MinusColonTerm'
59    fn minus_colon_term(&mut self, _arg: &MinusColonTerm) -> Result<()> {
60        Ok(())
61    }
62
63    /// Semantic action for non-terminal 'MinusGTTerm'
64    fn minus_g_t_term(&mut self, _arg: &MinusGTTerm) -> Result<()> {
65        Ok(())
66    }
67
68    /// Semantic action for non-terminal 'PlusColonTerm'
69    fn plus_colon_term(&mut self, _arg: &PlusColonTerm) -> Result<()> {
70        Ok(())
71    }
72
73    /// Semantic action for non-terminal 'AssignmentOperatorTerm'
74    fn assignment_operator_term(&mut self, _arg: &AssignmentOperatorTerm) -> Result<()> {
75        Ok(())
76    }
77
78    /// Semantic action for non-terminal 'Operator11Term'
79    fn operator11_term(&mut self, _arg: &Operator11Term) -> Result<()> {
80        Ok(())
81    }
82
83    /// Semantic action for non-terminal 'Operator10Term'
84    fn operator10_term(&mut self, _arg: &Operator10Term) -> Result<()> {
85        Ok(())
86    }
87
88    /// Semantic action for non-terminal 'Operator09Term'
89    fn operator09_term(&mut self, _arg: &Operator09Term) -> Result<()> {
90        Ok(())
91    }
92
93    /// Semantic action for non-terminal 'Operator08Term'
94    fn operator08_term(&mut self, _arg: &Operator08Term) -> Result<()> {
95        Ok(())
96    }
97
98    /// Semantic action for non-terminal 'Operator07Term'
99    fn operator07_term(&mut self, _arg: &Operator07Term) -> Result<()> {
100        Ok(())
101    }
102
103    /// Semantic action for non-terminal 'Operator06Term'
104    fn operator06_term(&mut self, _arg: &Operator06Term) -> Result<()> {
105        Ok(())
106    }
107
108    /// Semantic action for non-terminal 'Operator02Term'
109    fn operator02_term(&mut self, _arg: &Operator02Term) -> Result<()> {
110        Ok(())
111    }
112
113    /// Semantic action for non-terminal 'Operator01Term'
114    fn operator01_term(&mut self, _arg: &Operator01Term) -> Result<()> {
115        Ok(())
116    }
117
118    /// Semantic action for non-terminal 'Operator05Term'
119    fn operator05_term(&mut self, _arg: &Operator05Term) -> Result<()> {
120        Ok(())
121    }
122
123    /// Semantic action for non-terminal 'Operator04Term'
124    fn operator04_term(&mut self, _arg: &Operator04Term) -> Result<()> {
125        Ok(())
126    }
127
128    /// Semantic action for non-terminal 'Operator03Term'
129    fn operator03_term(&mut self, _arg: &Operator03Term) -> Result<()> {
130        Ok(())
131    }
132
133    /// Semantic action for non-terminal 'UnaryOperatorTerm'
134    fn unary_operator_term(&mut self, _arg: &UnaryOperatorTerm) -> Result<()> {
135        Ok(())
136    }
137
138    /// Semantic action for non-terminal 'BackQuoteTerm'
139    fn back_quote_term(&mut self, _arg: &BackQuoteTerm) -> Result<()> {
140        Ok(())
141    }
142
143    /// Semantic action for non-terminal 'ColonColonLAngleTerm'
144    fn colon_colon_l_angle_term(&mut self, _arg: &ColonColonLAngleTerm) -> Result<()> {
145        Ok(())
146    }
147
148    /// Semantic action for non-terminal 'ColonColonTerm'
149    fn colon_colon_term(&mut self, _arg: &ColonColonTerm) -> Result<()> {
150        Ok(())
151    }
152
153    /// Semantic action for non-terminal 'ColonTerm'
154    fn colon_term(&mut self, _arg: &ColonTerm) -> Result<()> {
155        Ok(())
156    }
157
158    /// Semantic action for non-terminal 'CommaTerm'
159    fn comma_term(&mut self, _arg: &CommaTerm) -> Result<()> {
160        Ok(())
161    }
162
163    /// Semantic action for non-terminal 'DotDotEquTerm'
164    fn dot_dot_equ_term(&mut self, _arg: &DotDotEquTerm) -> Result<()> {
165        Ok(())
166    }
167
168    /// Semantic action for non-terminal 'DotDotTerm'
169    fn dot_dot_term(&mut self, _arg: &DotDotTerm) -> Result<()> {
170        Ok(())
171    }
172
173    /// Semantic action for non-terminal 'DotTerm'
174    fn dot_term(&mut self, _arg: &DotTerm) -> Result<()> {
175        Ok(())
176    }
177
178    /// Semantic action for non-terminal 'EquTerm'
179    fn equ_term(&mut self, _arg: &EquTerm) -> Result<()> {
180        Ok(())
181    }
182
183    /// Semantic action for non-terminal 'HashTerm'
184    fn hash_term(&mut self, _arg: &HashTerm) -> Result<()> {
185        Ok(())
186    }
187
188    /// Semantic action for non-terminal 'LAngleTerm'
189    fn l_angle_term(&mut self, _arg: &LAngleTerm) -> Result<()> {
190        Ok(())
191    }
192
193    /// Semantic action for non-terminal 'QuoteLBraceTerm'
194    fn quote_l_brace_term(&mut self, _arg: &QuoteLBraceTerm) -> Result<()> {
195        Ok(())
196    }
197
198    /// Semantic action for non-terminal 'LBraceTerm'
199    fn l_brace_term(&mut self, _arg: &LBraceTerm) -> Result<()> {
200        Ok(())
201    }
202
203    /// Semantic action for non-terminal 'LBracketTerm'
204    fn l_bracket_term(&mut self, _arg: &LBracketTerm) -> Result<()> {
205        Ok(())
206    }
207
208    /// Semantic action for non-terminal 'LParenTerm'
209    fn l_paren_term(&mut self, _arg: &LParenTerm) -> Result<()> {
210        Ok(())
211    }
212
213    /// Semantic action for non-terminal 'RAngleTerm'
214    fn r_angle_term(&mut self, _arg: &RAngleTerm) -> Result<()> {
215        Ok(())
216    }
217
218    /// Semantic action for non-terminal 'RBraceTerm'
219    fn r_brace_term(&mut self, _arg: &RBraceTerm) -> Result<()> {
220        Ok(())
221    }
222
223    /// Semantic action for non-terminal 'RBracketTerm'
224    fn r_bracket_term(&mut self, _arg: &RBracketTerm) -> Result<()> {
225        Ok(())
226    }
227
228    /// Semantic action for non-terminal 'RParenTerm'
229    fn r_paren_term(&mut self, _arg: &RParenTerm) -> Result<()> {
230        Ok(())
231    }
232
233    /// Semantic action for non-terminal 'SemicolonTerm'
234    fn semicolon_term(&mut self, _arg: &SemicolonTerm) -> Result<()> {
235        Ok(())
236    }
237
238    /// Semantic action for non-terminal 'StarTerm'
239    fn star_term(&mut self, _arg: &StarTerm) -> Result<()> {
240        Ok(())
241    }
242
243    /// Semantic action for non-terminal 'AlwaysCombTerm'
244    fn always_comb_term(&mut self, _arg: &AlwaysCombTerm) -> Result<()> {
245        Ok(())
246    }
247
248    /// Semantic action for non-terminal 'AlwaysFfTerm'
249    fn always_ff_term(&mut self, _arg: &AlwaysFfTerm) -> Result<()> {
250        Ok(())
251    }
252
253    /// Semantic action for non-terminal 'AssignTerm'
254    fn assign_term(&mut self, _arg: &AssignTerm) -> Result<()> {
255        Ok(())
256    }
257
258    /// Semantic action for non-terminal 'AsTerm'
259    fn as_term(&mut self, _arg: &AsTerm) -> Result<()> {
260        Ok(())
261    }
262
263    /// Semantic action for non-terminal 'BitTerm'
264    fn bit_term(&mut self, _arg: &BitTerm) -> Result<()> {
265        Ok(())
266    }
267
268    /// Semantic action for non-terminal 'CaseTerm'
269    fn case_term(&mut self, _arg: &CaseTerm) -> Result<()> {
270        Ok(())
271    }
272
273    /// Semantic action for non-terminal 'ClockTerm'
274    fn clock_term(&mut self, _arg: &ClockTerm) -> Result<()> {
275        Ok(())
276    }
277
278    /// Semantic action for non-terminal 'ClockPosedgeTerm'
279    fn clock_posedge_term(&mut self, _arg: &ClockPosedgeTerm) -> Result<()> {
280        Ok(())
281    }
282
283    /// Semantic action for non-terminal 'ClockNegedgeTerm'
284    fn clock_negedge_term(&mut self, _arg: &ClockNegedgeTerm) -> Result<()> {
285        Ok(())
286    }
287
288    /// Semantic action for non-terminal 'ConstTerm'
289    fn const_term(&mut self, _arg: &ConstTerm) -> Result<()> {
290        Ok(())
291    }
292
293    /// Semantic action for non-terminal 'ConverseTerm'
294    fn converse_term(&mut self, _arg: &ConverseTerm) -> Result<()> {
295        Ok(())
296    }
297
298    /// Semantic action for non-terminal 'DefaultTerm'
299    fn default_term(&mut self, _arg: &DefaultTerm) -> Result<()> {
300        Ok(())
301    }
302
303    /// Semantic action for non-terminal 'ElseTerm'
304    fn else_term(&mut self, _arg: &ElseTerm) -> Result<()> {
305        Ok(())
306    }
307
308    /// Semantic action for non-terminal 'EmbedTerm'
309    fn embed_term(&mut self, _arg: &EmbedTerm) -> Result<()> {
310        Ok(())
311    }
312
313    /// Semantic action for non-terminal 'EnumTerm'
314    fn enum_term(&mut self, _arg: &EnumTerm) -> Result<()> {
315        Ok(())
316    }
317
318    /// Semantic action for non-terminal 'ExportTerm'
319    fn export_term(&mut self, _arg: &ExportTerm) -> Result<()> {
320        Ok(())
321    }
322
323    /// Semantic action for non-terminal 'F32Term'
324    fn f32_term(&mut self, _arg: &F32Term) -> Result<()> {
325        Ok(())
326    }
327
328    /// Semantic action for non-terminal 'F64Term'
329    fn f64_term(&mut self, _arg: &F64Term) -> Result<()> {
330        Ok(())
331    }
332
333    /// Semantic action for non-terminal 'FinalTerm'
334    fn final_term(&mut self, _arg: &FinalTerm) -> Result<()> {
335        Ok(())
336    }
337
338    /// Semantic action for non-terminal 'ForTerm'
339    fn for_term(&mut self, _arg: &ForTerm) -> Result<()> {
340        Ok(())
341    }
342
343    /// Semantic action for non-terminal 'FunctionTerm'
344    fn function_term(&mut self, _arg: &FunctionTerm) -> Result<()> {
345        Ok(())
346    }
347
348    /// Semantic action for non-terminal 'I32Term'
349    fn i32_term(&mut self, _arg: &I32Term) -> Result<()> {
350        Ok(())
351    }
352
353    /// Semantic action for non-terminal 'I64Term'
354    fn i64_term(&mut self, _arg: &I64Term) -> Result<()> {
355        Ok(())
356    }
357
358    /// Semantic action for non-terminal 'IfResetTerm'
359    fn if_reset_term(&mut self, _arg: &IfResetTerm) -> Result<()> {
360        Ok(())
361    }
362
363    /// Semantic action for non-terminal 'IfTerm'
364    fn if_term(&mut self, _arg: &IfTerm) -> Result<()> {
365        Ok(())
366    }
367
368    /// Semantic action for non-terminal 'ImportTerm'
369    fn import_term(&mut self, _arg: &ImportTerm) -> Result<()> {
370        Ok(())
371    }
372
373    /// Semantic action for non-terminal 'IncludeTerm'
374    fn include_term(&mut self, _arg: &IncludeTerm) -> Result<()> {
375        Ok(())
376    }
377
378    /// Semantic action for non-terminal 'InitialTerm'
379    fn initial_term(&mut self, _arg: &InitialTerm) -> Result<()> {
380        Ok(())
381    }
382
383    /// Semantic action for non-terminal 'InoutTerm'
384    fn inout_term(&mut self, _arg: &InoutTerm) -> Result<()> {
385        Ok(())
386    }
387
388    /// Semantic action for non-terminal 'InputTerm'
389    fn input_term(&mut self, _arg: &InputTerm) -> Result<()> {
390        Ok(())
391    }
392
393    /// Semantic action for non-terminal 'InsideTerm'
394    fn inside_term(&mut self, _arg: &InsideTerm) -> Result<()> {
395        Ok(())
396    }
397
398    /// Semantic action for non-terminal 'InstTerm'
399    fn inst_term(&mut self, _arg: &InstTerm) -> Result<()> {
400        Ok(())
401    }
402
403    /// Semantic action for non-terminal 'InterfaceTerm'
404    fn interface_term(&mut self, _arg: &InterfaceTerm) -> Result<()> {
405        Ok(())
406    }
407
408    /// Semantic action for non-terminal 'InTerm'
409    fn in_term(&mut self, _arg: &InTerm) -> Result<()> {
410        Ok(())
411    }
412
413    /// Semantic action for non-terminal 'LetTerm'
414    fn let_term(&mut self, _arg: &LetTerm) -> Result<()> {
415        Ok(())
416    }
417
418    /// Semantic action for non-terminal 'LogicTerm'
419    fn logic_term(&mut self, _arg: &LogicTerm) -> Result<()> {
420        Ok(())
421    }
422
423    /// Semantic action for non-terminal 'LsbTerm'
424    fn lsb_term(&mut self, _arg: &LsbTerm) -> Result<()> {
425        Ok(())
426    }
427
428    /// Semantic action for non-terminal 'ModportTerm'
429    fn modport_term(&mut self, _arg: &ModportTerm) -> Result<()> {
430        Ok(())
431    }
432
433    /// Semantic action for non-terminal 'ModuleTerm'
434    fn module_term(&mut self, _arg: &ModuleTerm) -> Result<()> {
435        Ok(())
436    }
437
438    /// Semantic action for non-terminal 'MsbTerm'
439    fn msb_term(&mut self, _arg: &MsbTerm) -> Result<()> {
440        Ok(())
441    }
442
443    /// Semantic action for non-terminal 'OutputTerm'
444    fn output_term(&mut self, _arg: &OutputTerm) -> Result<()> {
445        Ok(())
446    }
447
448    /// Semantic action for non-terminal 'OutsideTerm'
449    fn outside_term(&mut self, _arg: &OutsideTerm) -> Result<()> {
450        Ok(())
451    }
452
453    /// Semantic action for non-terminal 'PackageTerm'
454    fn package_term(&mut self, _arg: &PackageTerm) -> Result<()> {
455        Ok(())
456    }
457
458    /// Semantic action for non-terminal 'ParamTerm'
459    fn param_term(&mut self, _arg: &ParamTerm) -> Result<()> {
460        Ok(())
461    }
462
463    /// Semantic action for non-terminal 'ProtoTerm'
464    fn proto_term(&mut self, _arg: &ProtoTerm) -> Result<()> {
465        Ok(())
466    }
467
468    /// Semantic action for non-terminal 'PubTerm'
469    fn pub_term(&mut self, _arg: &PubTerm) -> Result<()> {
470        Ok(())
471    }
472
473    /// Semantic action for non-terminal 'RefTerm'
474    fn ref_term(&mut self, _arg: &RefTerm) -> Result<()> {
475        Ok(())
476    }
477
478    /// Semantic action for non-terminal 'RepeatTerm'
479    fn repeat_term(&mut self, _arg: &RepeatTerm) -> Result<()> {
480        Ok(())
481    }
482
483    /// Semantic action for non-terminal 'ResetTerm'
484    fn reset_term(&mut self, _arg: &ResetTerm) -> Result<()> {
485        Ok(())
486    }
487
488    /// Semantic action for non-terminal 'ResetAsyncHighTerm'
489    fn reset_async_high_term(&mut self, _arg: &ResetAsyncHighTerm) -> Result<()> {
490        Ok(())
491    }
492
493    /// Semantic action for non-terminal 'ResetAsyncLowTerm'
494    fn reset_async_low_term(&mut self, _arg: &ResetAsyncLowTerm) -> Result<()> {
495        Ok(())
496    }
497
498    /// Semantic action for non-terminal 'ResetSyncHighTerm'
499    fn reset_sync_high_term(&mut self, _arg: &ResetSyncHighTerm) -> Result<()> {
500        Ok(())
501    }
502
503    /// Semantic action for non-terminal 'ResetSyncLowTerm'
504    fn reset_sync_low_term(&mut self, _arg: &ResetSyncLowTerm) -> Result<()> {
505        Ok(())
506    }
507
508    /// Semantic action for non-terminal 'ReturnTerm'
509    fn return_term(&mut self, _arg: &ReturnTerm) -> Result<()> {
510        Ok(())
511    }
512
513    /// Semantic action for non-terminal 'BreakTerm'
514    fn break_term(&mut self, _arg: &BreakTerm) -> Result<()> {
515        Ok(())
516    }
517
518    /// Semantic action for non-terminal 'SignedTerm'
519    fn signed_term(&mut self, _arg: &SignedTerm) -> Result<()> {
520        Ok(())
521    }
522
523    /// Semantic action for non-terminal 'StepTerm'
524    fn step_term(&mut self, _arg: &StepTerm) -> Result<()> {
525        Ok(())
526    }
527
528    /// Semantic action for non-terminal 'StringTerm'
529    fn string_term(&mut self, _arg: &StringTerm) -> Result<()> {
530        Ok(())
531    }
532
533    /// Semantic action for non-terminal 'StructTerm'
534    fn struct_term(&mut self, _arg: &StructTerm) -> Result<()> {
535        Ok(())
536    }
537
538    /// Semantic action for non-terminal 'SwitchTerm'
539    fn switch_term(&mut self, _arg: &SwitchTerm) -> Result<()> {
540        Ok(())
541    }
542
543    /// Semantic action for non-terminal 'TriTerm'
544    fn tri_term(&mut self, _arg: &TriTerm) -> Result<()> {
545        Ok(())
546    }
547
548    /// Semantic action for non-terminal 'TypeTerm'
549    fn type_term(&mut self, _arg: &TypeTerm) -> Result<()> {
550        Ok(())
551    }
552
553    /// Semantic action for non-terminal 'U32Term'
554    fn u32_term(&mut self, _arg: &U32Term) -> Result<()> {
555        Ok(())
556    }
557
558    /// Semantic action for non-terminal 'U64Term'
559    fn u64_term(&mut self, _arg: &U64Term) -> Result<()> {
560        Ok(())
561    }
562
563    /// Semantic action for non-terminal 'UnionTerm'
564    fn union_term(&mut self, _arg: &UnionTerm) -> Result<()> {
565        Ok(())
566    }
567
568    /// Semantic action for non-terminal 'UnsafeTerm'
569    fn unsafe_term(&mut self, _arg: &UnsafeTerm) -> Result<()> {
570        Ok(())
571    }
572
573    /// Semantic action for non-terminal 'VarTerm'
574    fn var_term(&mut self, _arg: &VarTerm) -> Result<()> {
575        Ok(())
576    }
577
578    /// Semantic action for non-terminal 'DollarIdentifierTerm'
579    fn dollar_identifier_term(&mut self, _arg: &DollarIdentifierTerm) -> Result<()> {
580        Ok(())
581    }
582
583    /// Semantic action for non-terminal 'IdentifierTerm'
584    fn identifier_term(&mut self, _arg: &IdentifierTerm) -> Result<()> {
585        Ok(())
586    }
587
588    /// Semantic action for non-terminal 'AnyTerm'
589    fn any_term(&mut self, _arg: &AnyTerm) -> Result<()> {
590        Ok(())
591    }
592
593    /// Semantic action for non-terminal 'Comments'
594    fn comments(&mut self, _arg: &Comments) -> Result<()> {
595        Ok(())
596    }
597
598    /// Semantic action for non-terminal 'StartToken'
599    fn start_token(&mut self, _arg: &StartToken) -> Result<()> {
600        Ok(())
601    }
602
603    /// Semantic action for non-terminal 'StringLiteralToken'
604    fn string_literal_token(&mut self, _arg: &StringLiteralToken) -> Result<()> {
605        Ok(())
606    }
607
608    /// Semantic action for non-terminal 'ExponentToken'
609    fn exponent_token(&mut self, _arg: &ExponentToken) -> Result<()> {
610        Ok(())
611    }
612
613    /// Semantic action for non-terminal 'FixedPointToken'
614    fn fixed_point_token(&mut self, _arg: &FixedPointToken) -> Result<()> {
615        Ok(())
616    }
617
618    /// Semantic action for non-terminal 'BasedToken'
619    fn based_token(&mut self, _arg: &BasedToken) -> Result<()> {
620        Ok(())
621    }
622
623    /// Semantic action for non-terminal 'BaseLessToken'
624    fn base_less_token(&mut self, _arg: &BaseLessToken) -> Result<()> {
625        Ok(())
626    }
627
628    /// Semantic action for non-terminal 'AllBitToken'
629    fn all_bit_token(&mut self, _arg: &AllBitToken) -> Result<()> {
630        Ok(())
631    }
632
633    /// Semantic action for non-terminal 'AssignmentOperatorToken'
634    fn assignment_operator_token(&mut self, _arg: &AssignmentOperatorToken) -> Result<()> {
635        Ok(())
636    }
637
638    /// Semantic action for non-terminal 'Operator01Token'
639    fn operator01_token(&mut self, _arg: &Operator01Token) -> Result<()> {
640        Ok(())
641    }
642
643    /// Semantic action for non-terminal 'Operator02Token'
644    fn operator02_token(&mut self, _arg: &Operator02Token) -> Result<()> {
645        Ok(())
646    }
647
648    /// Semantic action for non-terminal 'Operator03Token'
649    fn operator03_token(&mut self, _arg: &Operator03Token) -> Result<()> {
650        Ok(())
651    }
652
653    /// Semantic action for non-terminal 'Operator04Token'
654    fn operator04_token(&mut self, _arg: &Operator04Token) -> Result<()> {
655        Ok(())
656    }
657
658    /// Semantic action for non-terminal 'Operator05Token'
659    fn operator05_token(&mut self, _arg: &Operator05Token) -> Result<()> {
660        Ok(())
661    }
662
663    /// Semantic action for non-terminal 'Operator06Token'
664    fn operator06_token(&mut self, _arg: &Operator06Token) -> Result<()> {
665        Ok(())
666    }
667
668    /// Semantic action for non-terminal 'Operator07Token'
669    fn operator07_token(&mut self, _arg: &Operator07Token) -> Result<()> {
670        Ok(())
671    }
672
673    /// Semantic action for non-terminal 'Operator08Token'
674    fn operator08_token(&mut self, _arg: &Operator08Token) -> Result<()> {
675        Ok(())
676    }
677
678    /// Semantic action for non-terminal 'Operator09Token'
679    fn operator09_token(&mut self, _arg: &Operator09Token) -> Result<()> {
680        Ok(())
681    }
682
683    /// Semantic action for non-terminal 'Operator10Token'
684    fn operator10_token(&mut self, _arg: &Operator10Token) -> Result<()> {
685        Ok(())
686    }
687
688    /// Semantic action for non-terminal 'Operator11Token'
689    fn operator11_token(&mut self, _arg: &Operator11Token) -> Result<()> {
690        Ok(())
691    }
692
693    /// Semantic action for non-terminal 'UnaryOperatorToken'
694    fn unary_operator_token(&mut self, _arg: &UnaryOperatorToken) -> Result<()> {
695        Ok(())
696    }
697
698    /// Semantic action for non-terminal 'BackQuoteToken'
699    fn back_quote_token(&mut self, _arg: &BackQuoteToken) -> Result<()> {
700        Ok(())
701    }
702
703    /// Semantic action for non-terminal 'ColonToken'
704    fn colon_token(&mut self, _arg: &ColonToken) -> Result<()> {
705        Ok(())
706    }
707
708    /// Semantic action for non-terminal 'ColonColonLAngleToken'
709    fn colon_colon_l_angle_token(&mut self, _arg: &ColonColonLAngleToken) -> Result<()> {
710        Ok(())
711    }
712
713    /// Semantic action for non-terminal 'ColonColonToken'
714    fn colon_colon_token(&mut self, _arg: &ColonColonToken) -> Result<()> {
715        Ok(())
716    }
717
718    /// Semantic action for non-terminal 'CommaToken'
719    fn comma_token(&mut self, _arg: &CommaToken) -> Result<()> {
720        Ok(())
721    }
722
723    /// Semantic action for non-terminal 'DotDotToken'
724    fn dot_dot_token(&mut self, _arg: &DotDotToken) -> Result<()> {
725        Ok(())
726    }
727
728    /// Semantic action for non-terminal 'DotDotEquToken'
729    fn dot_dot_equ_token(&mut self, _arg: &DotDotEquToken) -> Result<()> {
730        Ok(())
731    }
732
733    /// Semantic action for non-terminal 'DotToken'
734    fn dot_token(&mut self, _arg: &DotToken) -> Result<()> {
735        Ok(())
736    }
737
738    /// Semantic action for non-terminal 'EquToken'
739    fn equ_token(&mut self, _arg: &EquToken) -> Result<()> {
740        Ok(())
741    }
742
743    /// Semantic action for non-terminal 'HashToken'
744    fn hash_token(&mut self, _arg: &HashToken) -> Result<()> {
745        Ok(())
746    }
747
748    /// Semantic action for non-terminal 'QuoteLBraceToken'
749    fn quote_l_brace_token(&mut self, _arg: &QuoteLBraceToken) -> Result<()> {
750        Ok(())
751    }
752
753    /// Semantic action for non-terminal 'LAngleToken'
754    fn l_angle_token(&mut self, _arg: &LAngleToken) -> Result<()> {
755        Ok(())
756    }
757
758    /// Semantic action for non-terminal 'LBraceToken'
759    fn l_brace_token(&mut self, _arg: &LBraceToken) -> Result<()> {
760        Ok(())
761    }
762
763    /// Semantic action for non-terminal 'LBracketToken'
764    fn l_bracket_token(&mut self, _arg: &LBracketToken) -> Result<()> {
765        Ok(())
766    }
767
768    /// Semantic action for non-terminal 'LParenToken'
769    fn l_paren_token(&mut self, _arg: &LParenToken) -> Result<()> {
770        Ok(())
771    }
772
773    /// Semantic action for non-terminal 'MinusColonToken'
774    fn minus_colon_token(&mut self, _arg: &MinusColonToken) -> Result<()> {
775        Ok(())
776    }
777
778    /// Semantic action for non-terminal 'MinusGTToken'
779    fn minus_g_t_token(&mut self, _arg: &MinusGTToken) -> Result<()> {
780        Ok(())
781    }
782
783    /// Semantic action for non-terminal 'PlusColonToken'
784    fn plus_colon_token(&mut self, _arg: &PlusColonToken) -> Result<()> {
785        Ok(())
786    }
787
788    /// Semantic action for non-terminal 'RAngleToken'
789    fn r_angle_token(&mut self, _arg: &RAngleToken) -> Result<()> {
790        Ok(())
791    }
792
793    /// Semantic action for non-terminal 'RBraceToken'
794    fn r_brace_token(&mut self, _arg: &RBraceToken) -> Result<()> {
795        Ok(())
796    }
797
798    /// Semantic action for non-terminal 'RBracketToken'
799    fn r_bracket_token(&mut self, _arg: &RBracketToken) -> Result<()> {
800        Ok(())
801    }
802
803    /// Semantic action for non-terminal 'RParenToken'
804    fn r_paren_token(&mut self, _arg: &RParenToken) -> Result<()> {
805        Ok(())
806    }
807
808    /// Semantic action for non-terminal 'SemicolonToken'
809    fn semicolon_token(&mut self, _arg: &SemicolonToken) -> Result<()> {
810        Ok(())
811    }
812
813    /// Semantic action for non-terminal 'StarToken'
814    fn star_token(&mut self, _arg: &StarToken) -> Result<()> {
815        Ok(())
816    }
817
818    /// Semantic action for non-terminal 'AlwaysCombToken'
819    fn always_comb_token(&mut self, _arg: &AlwaysCombToken) -> Result<()> {
820        Ok(())
821    }
822
823    /// Semantic action for non-terminal 'AlwaysFfToken'
824    fn always_ff_token(&mut self, _arg: &AlwaysFfToken) -> Result<()> {
825        Ok(())
826    }
827
828    /// Semantic action for non-terminal 'AsToken'
829    fn as_token(&mut self, _arg: &AsToken) -> Result<()> {
830        Ok(())
831    }
832
833    /// Semantic action for non-terminal 'AssignToken'
834    fn assign_token(&mut self, _arg: &AssignToken) -> Result<()> {
835        Ok(())
836    }
837
838    /// Semantic action for non-terminal 'BitToken'
839    fn bit_token(&mut self, _arg: &BitToken) -> Result<()> {
840        Ok(())
841    }
842
843    /// Semantic action for non-terminal 'CaseToken'
844    fn case_token(&mut self, _arg: &CaseToken) -> Result<()> {
845        Ok(())
846    }
847
848    /// Semantic action for non-terminal 'ClockToken'
849    fn clock_token(&mut self, _arg: &ClockToken) -> Result<()> {
850        Ok(())
851    }
852
853    /// Semantic action for non-terminal 'ClockPosedgeToken'
854    fn clock_posedge_token(&mut self, _arg: &ClockPosedgeToken) -> Result<()> {
855        Ok(())
856    }
857
858    /// Semantic action for non-terminal 'ClockNegedgeToken'
859    fn clock_negedge_token(&mut self, _arg: &ClockNegedgeToken) -> Result<()> {
860        Ok(())
861    }
862
863    /// Semantic action for non-terminal 'ConstToken'
864    fn const_token(&mut self, _arg: &ConstToken) -> Result<()> {
865        Ok(())
866    }
867
868    /// Semantic action for non-terminal 'ConverseToken'
869    fn converse_token(&mut self, _arg: &ConverseToken) -> Result<()> {
870        Ok(())
871    }
872
873    /// Semantic action for non-terminal 'DefaultToken'
874    fn default_token(&mut self, _arg: &DefaultToken) -> Result<()> {
875        Ok(())
876    }
877
878    /// Semantic action for non-terminal 'ElseToken'
879    fn else_token(&mut self, _arg: &ElseToken) -> Result<()> {
880        Ok(())
881    }
882
883    /// Semantic action for non-terminal 'EmbedToken'
884    fn embed_token(&mut self, _arg: &EmbedToken) -> Result<()> {
885        Ok(())
886    }
887
888    /// Semantic action for non-terminal 'EnumToken'
889    fn enum_token(&mut self, _arg: &EnumToken) -> Result<()> {
890        Ok(())
891    }
892
893    /// Semantic action for non-terminal 'ExportToken'
894    fn export_token(&mut self, _arg: &ExportToken) -> Result<()> {
895        Ok(())
896    }
897
898    /// Semantic action for non-terminal 'F32Token'
899    fn f32_token(&mut self, _arg: &F32Token) -> Result<()> {
900        Ok(())
901    }
902
903    /// Semantic action for non-terminal 'F64Token'
904    fn f64_token(&mut self, _arg: &F64Token) -> Result<()> {
905        Ok(())
906    }
907
908    /// Semantic action for non-terminal 'FinalToken'
909    fn final_token(&mut self, _arg: &FinalToken) -> Result<()> {
910        Ok(())
911    }
912
913    /// Semantic action for non-terminal 'ForToken'
914    fn for_token(&mut self, _arg: &ForToken) -> Result<()> {
915        Ok(())
916    }
917
918    /// Semantic action for non-terminal 'FunctionToken'
919    fn function_token(&mut self, _arg: &FunctionToken) -> Result<()> {
920        Ok(())
921    }
922
923    /// Semantic action for non-terminal 'I32Token'
924    fn i32_token(&mut self, _arg: &I32Token) -> Result<()> {
925        Ok(())
926    }
927
928    /// Semantic action for non-terminal 'I64Token'
929    fn i64_token(&mut self, _arg: &I64Token) -> Result<()> {
930        Ok(())
931    }
932
933    /// Semantic action for non-terminal 'IfResetToken'
934    fn if_reset_token(&mut self, _arg: &IfResetToken) -> Result<()> {
935        Ok(())
936    }
937
938    /// Semantic action for non-terminal 'IfToken'
939    fn if_token(&mut self, _arg: &IfToken) -> Result<()> {
940        Ok(())
941    }
942
943    /// Semantic action for non-terminal 'ImportToken'
944    fn import_token(&mut self, _arg: &ImportToken) -> Result<()> {
945        Ok(())
946    }
947
948    /// Semantic action for non-terminal 'IncludeToken'
949    fn include_token(&mut self, _arg: &IncludeToken) -> Result<()> {
950        Ok(())
951    }
952
953    /// Semantic action for non-terminal 'InitialToken'
954    fn initial_token(&mut self, _arg: &InitialToken) -> Result<()> {
955        Ok(())
956    }
957
958    /// Semantic action for non-terminal 'InoutToken'
959    fn inout_token(&mut self, _arg: &InoutToken) -> Result<()> {
960        Ok(())
961    }
962
963    /// Semantic action for non-terminal 'InputToken'
964    fn input_token(&mut self, _arg: &InputToken) -> Result<()> {
965        Ok(())
966    }
967
968    /// Semantic action for non-terminal 'InsideToken'
969    fn inside_token(&mut self, _arg: &InsideToken) -> Result<()> {
970        Ok(())
971    }
972
973    /// Semantic action for non-terminal 'InstToken'
974    fn inst_token(&mut self, _arg: &InstToken) -> Result<()> {
975        Ok(())
976    }
977
978    /// Semantic action for non-terminal 'InterfaceToken'
979    fn interface_token(&mut self, _arg: &InterfaceToken) -> Result<()> {
980        Ok(())
981    }
982
983    /// Semantic action for non-terminal 'InToken'
984    fn in_token(&mut self, _arg: &InToken) -> Result<()> {
985        Ok(())
986    }
987
988    /// Semantic action for non-terminal 'LetToken'
989    fn let_token(&mut self, _arg: &LetToken) -> Result<()> {
990        Ok(())
991    }
992
993    /// Semantic action for non-terminal 'LogicToken'
994    fn logic_token(&mut self, _arg: &LogicToken) -> Result<()> {
995        Ok(())
996    }
997
998    /// Semantic action for non-terminal 'LsbToken'
999    fn lsb_token(&mut self, _arg: &LsbToken) -> Result<()> {
1000        Ok(())
1001    }
1002
1003    /// Semantic action for non-terminal 'ModportToken'
1004    fn modport_token(&mut self, _arg: &ModportToken) -> Result<()> {
1005        Ok(())
1006    }
1007
1008    /// Semantic action for non-terminal 'ModuleToken'
1009    fn module_token(&mut self, _arg: &ModuleToken) -> Result<()> {
1010        Ok(())
1011    }
1012
1013    /// Semantic action for non-terminal 'MsbToken'
1014    fn msb_token(&mut self, _arg: &MsbToken) -> Result<()> {
1015        Ok(())
1016    }
1017
1018    /// Semantic action for non-terminal 'OutputToken'
1019    fn output_token(&mut self, _arg: &OutputToken) -> Result<()> {
1020        Ok(())
1021    }
1022
1023    /// Semantic action for non-terminal 'OutsideToken'
1024    fn outside_token(&mut self, _arg: &OutsideToken) -> Result<()> {
1025        Ok(())
1026    }
1027
1028    /// Semantic action for non-terminal 'PackageToken'
1029    fn package_token(&mut self, _arg: &PackageToken) -> Result<()> {
1030        Ok(())
1031    }
1032
1033    /// Semantic action for non-terminal 'ParamToken'
1034    fn param_token(&mut self, _arg: &ParamToken) -> Result<()> {
1035        Ok(())
1036    }
1037
1038    /// Semantic action for non-terminal 'ProtoToken'
1039    fn proto_token(&mut self, _arg: &ProtoToken) -> Result<()> {
1040        Ok(())
1041    }
1042
1043    /// Semantic action for non-terminal 'PubToken'
1044    fn pub_token(&mut self, _arg: &PubToken) -> Result<()> {
1045        Ok(())
1046    }
1047
1048    /// Semantic action for non-terminal 'RefToken'
1049    fn ref_token(&mut self, _arg: &RefToken) -> Result<()> {
1050        Ok(())
1051    }
1052
1053    /// Semantic action for non-terminal 'RepeatToken'
1054    fn repeat_token(&mut self, _arg: &RepeatToken) -> Result<()> {
1055        Ok(())
1056    }
1057
1058    /// Semantic action for non-terminal 'ResetToken'
1059    fn reset_token(&mut self, _arg: &ResetToken) -> Result<()> {
1060        Ok(())
1061    }
1062
1063    /// Semantic action for non-terminal 'ResetAsyncHighToken'
1064    fn reset_async_high_token(&mut self, _arg: &ResetAsyncHighToken) -> Result<()> {
1065        Ok(())
1066    }
1067
1068    /// Semantic action for non-terminal 'ResetAsyncLowToken'
1069    fn reset_async_low_token(&mut self, _arg: &ResetAsyncLowToken) -> Result<()> {
1070        Ok(())
1071    }
1072
1073    /// Semantic action for non-terminal 'ResetSyncHighToken'
1074    fn reset_sync_high_token(&mut self, _arg: &ResetSyncHighToken) -> Result<()> {
1075        Ok(())
1076    }
1077
1078    /// Semantic action for non-terminal 'ResetSyncLowToken'
1079    fn reset_sync_low_token(&mut self, _arg: &ResetSyncLowToken) -> Result<()> {
1080        Ok(())
1081    }
1082
1083    /// Semantic action for non-terminal 'ReturnToken'
1084    fn return_token(&mut self, _arg: &ReturnToken) -> Result<()> {
1085        Ok(())
1086    }
1087
1088    /// Semantic action for non-terminal 'BreakToken'
1089    fn break_token(&mut self, _arg: &BreakToken) -> Result<()> {
1090        Ok(())
1091    }
1092
1093    /// Semantic action for non-terminal 'SignedToken'
1094    fn signed_token(&mut self, _arg: &SignedToken) -> Result<()> {
1095        Ok(())
1096    }
1097
1098    /// Semantic action for non-terminal 'StepToken'
1099    fn step_token(&mut self, _arg: &StepToken) -> Result<()> {
1100        Ok(())
1101    }
1102
1103    /// Semantic action for non-terminal 'StringToken'
1104    fn string_token(&mut self, _arg: &StringToken) -> Result<()> {
1105        Ok(())
1106    }
1107
1108    /// Semantic action for non-terminal 'StructToken'
1109    fn struct_token(&mut self, _arg: &StructToken) -> Result<()> {
1110        Ok(())
1111    }
1112
1113    /// Semantic action for non-terminal 'SwitchToken'
1114    fn switch_token(&mut self, _arg: &SwitchToken) -> Result<()> {
1115        Ok(())
1116    }
1117
1118    /// Semantic action for non-terminal 'TriToken'
1119    fn tri_token(&mut self, _arg: &TriToken) -> Result<()> {
1120        Ok(())
1121    }
1122
1123    /// Semantic action for non-terminal 'TypeToken'
1124    fn type_token(&mut self, _arg: &TypeToken) -> Result<()> {
1125        Ok(())
1126    }
1127
1128    /// Semantic action for non-terminal 'U32Token'
1129    fn u32_token(&mut self, _arg: &U32Token) -> Result<()> {
1130        Ok(())
1131    }
1132
1133    /// Semantic action for non-terminal 'U64Token'
1134    fn u64_token(&mut self, _arg: &U64Token) -> Result<()> {
1135        Ok(())
1136    }
1137
1138    /// Semantic action for non-terminal 'UnionToken'
1139    fn union_token(&mut self, _arg: &UnionToken) -> Result<()> {
1140        Ok(())
1141    }
1142
1143    /// Semantic action for non-terminal 'UnsafeToken'
1144    fn unsafe_token(&mut self, _arg: &UnsafeToken) -> Result<()> {
1145        Ok(())
1146    }
1147
1148    /// Semantic action for non-terminal 'VarToken'
1149    fn var_token(&mut self, _arg: &VarToken) -> Result<()> {
1150        Ok(())
1151    }
1152
1153    /// Semantic action for non-terminal 'DollarIdentifierToken'
1154    fn dollar_identifier_token(&mut self, _arg: &DollarIdentifierToken) -> Result<()> {
1155        Ok(())
1156    }
1157
1158    /// Semantic action for non-terminal 'IdentifierToken'
1159    fn identifier_token(&mut self, _arg: &IdentifierToken) -> Result<()> {
1160        Ok(())
1161    }
1162
1163    /// Semantic action for non-terminal 'Start'
1164    fn start(&mut self, _arg: &Start) -> Result<()> {
1165        Ok(())
1166    }
1167
1168    /// Semantic action for non-terminal 'StringLiteral'
1169    fn string_literal(&mut self, _arg: &StringLiteral) -> Result<()> {
1170        Ok(())
1171    }
1172
1173    /// Semantic action for non-terminal 'Exponent'
1174    fn exponent(&mut self, _arg: &Exponent) -> Result<()> {
1175        Ok(())
1176    }
1177
1178    /// Semantic action for non-terminal 'FixedPoint'
1179    fn fixed_point(&mut self, _arg: &FixedPoint) -> Result<()> {
1180        Ok(())
1181    }
1182
1183    /// Semantic action for non-terminal 'Based'
1184    fn based(&mut self, _arg: &Based) -> Result<()> {
1185        Ok(())
1186    }
1187
1188    /// Semantic action for non-terminal 'BaseLess'
1189    fn base_less(&mut self, _arg: &BaseLess) -> Result<()> {
1190        Ok(())
1191    }
1192
1193    /// Semantic action for non-terminal 'AllBit'
1194    fn all_bit(&mut self, _arg: &AllBit) -> Result<()> {
1195        Ok(())
1196    }
1197
1198    /// Semantic action for non-terminal 'AssignmentOperator'
1199    fn assignment_operator(&mut self, _arg: &AssignmentOperator) -> Result<()> {
1200        Ok(())
1201    }
1202
1203    /// Semantic action for non-terminal 'Operator01'
1204    fn operator01(&mut self, _arg: &Operator01) -> Result<()> {
1205        Ok(())
1206    }
1207
1208    /// Semantic action for non-terminal 'Operator02'
1209    fn operator02(&mut self, _arg: &Operator02) -> Result<()> {
1210        Ok(())
1211    }
1212
1213    /// Semantic action for non-terminal 'Operator03'
1214    fn operator03(&mut self, _arg: &Operator03) -> Result<()> {
1215        Ok(())
1216    }
1217
1218    /// Semantic action for non-terminal 'Operator04'
1219    fn operator04(&mut self, _arg: &Operator04) -> Result<()> {
1220        Ok(())
1221    }
1222
1223    /// Semantic action for non-terminal 'Operator05'
1224    fn operator05(&mut self, _arg: &Operator05) -> Result<()> {
1225        Ok(())
1226    }
1227
1228    /// Semantic action for non-terminal 'Operator06'
1229    fn operator06(&mut self, _arg: &Operator06) -> Result<()> {
1230        Ok(())
1231    }
1232
1233    /// Semantic action for non-terminal 'Operator07'
1234    fn operator07(&mut self, _arg: &Operator07) -> Result<()> {
1235        Ok(())
1236    }
1237
1238    /// Semantic action for non-terminal 'Operator08'
1239    fn operator08(&mut self, _arg: &Operator08) -> Result<()> {
1240        Ok(())
1241    }
1242
1243    /// Semantic action for non-terminal 'Operator09'
1244    fn operator09(&mut self, _arg: &Operator09) -> Result<()> {
1245        Ok(())
1246    }
1247
1248    /// Semantic action for non-terminal 'Operator10'
1249    fn operator10(&mut self, _arg: &Operator10) -> Result<()> {
1250        Ok(())
1251    }
1252
1253    /// Semantic action for non-terminal 'Operator11'
1254    fn operator11(&mut self, _arg: &Operator11) -> Result<()> {
1255        Ok(())
1256    }
1257
1258    /// Semantic action for non-terminal 'UnaryOperator'
1259    fn unary_operator(&mut self, _arg: &UnaryOperator) -> Result<()> {
1260        Ok(())
1261    }
1262
1263    /// Semantic action for non-terminal 'BackQuote'
1264    fn back_quote(&mut self, _arg: &BackQuote) -> Result<()> {
1265        Ok(())
1266    }
1267
1268    /// Semantic action for non-terminal 'Colon'
1269    fn colon(&mut self, _arg: &Colon) -> Result<()> {
1270        Ok(())
1271    }
1272
1273    /// Semantic action for non-terminal 'ColonColonLAngle'
1274    fn colon_colon_l_angle(&mut self, _arg: &ColonColonLAngle) -> Result<()> {
1275        Ok(())
1276    }
1277
1278    /// Semantic action for non-terminal 'ColonColon'
1279    fn colon_colon(&mut self, _arg: &ColonColon) -> Result<()> {
1280        Ok(())
1281    }
1282
1283    /// Semantic action for non-terminal 'Comma'
1284    fn comma(&mut self, _arg: &Comma) -> Result<()> {
1285        Ok(())
1286    }
1287
1288    /// Semantic action for non-terminal 'DotDot'
1289    fn dot_dot(&mut self, _arg: &DotDot) -> Result<()> {
1290        Ok(())
1291    }
1292
1293    /// Semantic action for non-terminal 'DotDotEqu'
1294    fn dot_dot_equ(&mut self, _arg: &DotDotEqu) -> Result<()> {
1295        Ok(())
1296    }
1297
1298    /// Semantic action for non-terminal 'Dot'
1299    fn dot(&mut self, _arg: &Dot) -> Result<()> {
1300        Ok(())
1301    }
1302
1303    /// Semantic action for non-terminal 'Equ'
1304    fn equ(&mut self, _arg: &Equ) -> Result<()> {
1305        Ok(())
1306    }
1307
1308    /// Semantic action for non-terminal 'Hash'
1309    fn hash(&mut self, _arg: &Hash) -> Result<()> {
1310        Ok(())
1311    }
1312
1313    /// Semantic action for non-terminal 'QuoteLBrace'
1314    fn quote_l_brace(&mut self, _arg: &QuoteLBrace) -> Result<()> {
1315        Ok(())
1316    }
1317
1318    /// Semantic action for non-terminal 'LAngle'
1319    fn l_angle(&mut self, _arg: &LAngle) -> Result<()> {
1320        Ok(())
1321    }
1322
1323    /// Semantic action for non-terminal 'LBrace'
1324    fn l_brace(&mut self, _arg: &LBrace) -> Result<()> {
1325        Ok(())
1326    }
1327
1328    /// Semantic action for non-terminal 'LBracket'
1329    fn l_bracket(&mut self, _arg: &LBracket) -> Result<()> {
1330        Ok(())
1331    }
1332
1333    /// Semantic action for non-terminal 'LParen'
1334    fn l_paren(&mut self, _arg: &LParen) -> Result<()> {
1335        Ok(())
1336    }
1337
1338    /// Semantic action for non-terminal 'MinusColon'
1339    fn minus_colon(&mut self, _arg: &MinusColon) -> Result<()> {
1340        Ok(())
1341    }
1342
1343    /// Semantic action for non-terminal 'MinusGT'
1344    fn minus_g_t(&mut self, _arg: &MinusGT) -> Result<()> {
1345        Ok(())
1346    }
1347
1348    /// Semantic action for non-terminal 'PlusColon'
1349    fn plus_colon(&mut self, _arg: &PlusColon) -> Result<()> {
1350        Ok(())
1351    }
1352
1353    /// Semantic action for non-terminal 'RAngle'
1354    fn r_angle(&mut self, _arg: &RAngle) -> Result<()> {
1355        Ok(())
1356    }
1357
1358    /// Semantic action for non-terminal 'RBrace'
1359    fn r_brace(&mut self, _arg: &RBrace) -> Result<()> {
1360        Ok(())
1361    }
1362
1363    /// Semantic action for non-terminal 'RBracket'
1364    fn r_bracket(&mut self, _arg: &RBracket) -> Result<()> {
1365        Ok(())
1366    }
1367
1368    /// Semantic action for non-terminal 'RParen'
1369    fn r_paren(&mut self, _arg: &RParen) -> Result<()> {
1370        Ok(())
1371    }
1372
1373    /// Semantic action for non-terminal 'Semicolon'
1374    fn semicolon(&mut self, _arg: &Semicolon) -> Result<()> {
1375        Ok(())
1376    }
1377
1378    /// Semantic action for non-terminal 'Star'
1379    fn star(&mut self, _arg: &Star) -> Result<()> {
1380        Ok(())
1381    }
1382
1383    /// Semantic action for non-terminal 'AlwaysComb'
1384    fn always_comb(&mut self, _arg: &AlwaysComb) -> Result<()> {
1385        Ok(())
1386    }
1387
1388    /// Semantic action for non-terminal 'AlwaysFf'
1389    fn always_ff(&mut self, _arg: &AlwaysFf) -> Result<()> {
1390        Ok(())
1391    }
1392
1393    /// Semantic action for non-terminal 'As'
1394    fn r#as(&mut self, _arg: &As) -> Result<()> {
1395        Ok(())
1396    }
1397
1398    /// Semantic action for non-terminal 'Assign'
1399    fn assign(&mut self, _arg: &Assign) -> Result<()> {
1400        Ok(())
1401    }
1402
1403    /// Semantic action for non-terminal 'Bit'
1404    fn bit(&mut self, _arg: &Bit) -> Result<()> {
1405        Ok(())
1406    }
1407
1408    /// Semantic action for non-terminal 'Break'
1409    fn r#break(&mut self, _arg: &Break) -> Result<()> {
1410        Ok(())
1411    }
1412
1413    /// Semantic action for non-terminal 'Case'
1414    fn case(&mut self, _arg: &Case) -> Result<()> {
1415        Ok(())
1416    }
1417
1418    /// Semantic action for non-terminal 'Clock'
1419    fn clock(&mut self, _arg: &Clock) -> Result<()> {
1420        Ok(())
1421    }
1422
1423    /// Semantic action for non-terminal 'ClockPosedge'
1424    fn clock_posedge(&mut self, _arg: &ClockPosedge) -> Result<()> {
1425        Ok(())
1426    }
1427
1428    /// Semantic action for non-terminal 'ClockNegedge'
1429    fn clock_negedge(&mut self, _arg: &ClockNegedge) -> Result<()> {
1430        Ok(())
1431    }
1432
1433    /// Semantic action for non-terminal 'Const'
1434    fn r#const(&mut self, _arg: &Const) -> Result<()> {
1435        Ok(())
1436    }
1437
1438    /// Semantic action for non-terminal 'Converse'
1439    fn converse(&mut self, _arg: &Converse) -> Result<()> {
1440        Ok(())
1441    }
1442
1443    /// Semantic action for non-terminal 'Defaul'
1444    fn defaul(&mut self, _arg: &Defaul) -> Result<()> {
1445        Ok(())
1446    }
1447
1448    /// Semantic action for non-terminal 'Else'
1449    fn r#else(&mut self, _arg: &Else) -> Result<()> {
1450        Ok(())
1451    }
1452
1453    /// Semantic action for non-terminal 'Embed'
1454    fn embed(&mut self, _arg: &Embed) -> Result<()> {
1455        Ok(())
1456    }
1457
1458    /// Semantic action for non-terminal 'Enum'
1459    fn r#enum(&mut self, _arg: &Enum) -> Result<()> {
1460        Ok(())
1461    }
1462
1463    /// Semantic action for non-terminal 'Export'
1464    fn export(&mut self, _arg: &Export) -> Result<()> {
1465        Ok(())
1466    }
1467
1468    /// Semantic action for non-terminal 'F32'
1469    fn f32(&mut self, _arg: &F32) -> Result<()> {
1470        Ok(())
1471    }
1472
1473    /// Semantic action for non-terminal 'F64'
1474    fn f64(&mut self, _arg: &F64) -> Result<()> {
1475        Ok(())
1476    }
1477
1478    /// Semantic action for non-terminal 'Final'
1479    fn r#final(&mut self, _arg: &Final) -> Result<()> {
1480        Ok(())
1481    }
1482
1483    /// Semantic action for non-terminal 'For'
1484    fn r#for(&mut self, _arg: &For) -> Result<()> {
1485        Ok(())
1486    }
1487
1488    /// Semantic action for non-terminal 'Function'
1489    fn function(&mut self, _arg: &Function) -> Result<()> {
1490        Ok(())
1491    }
1492
1493    /// Semantic action for non-terminal 'I32'
1494    fn i32(&mut self, _arg: &I32) -> Result<()> {
1495        Ok(())
1496    }
1497
1498    /// Semantic action for non-terminal 'I64'
1499    fn i64(&mut self, _arg: &I64) -> Result<()> {
1500        Ok(())
1501    }
1502
1503    /// Semantic action for non-terminal 'If'
1504    fn r#if(&mut self, _arg: &If) -> Result<()> {
1505        Ok(())
1506    }
1507
1508    /// Semantic action for non-terminal 'IfReset'
1509    fn if_reset(&mut self, _arg: &IfReset) -> Result<()> {
1510        Ok(())
1511    }
1512
1513    /// Semantic action for non-terminal 'Import'
1514    fn import(&mut self, _arg: &Import) -> Result<()> {
1515        Ok(())
1516    }
1517
1518    /// Semantic action for non-terminal 'In'
1519    fn r#in(&mut self, _arg: &In) -> Result<()> {
1520        Ok(())
1521    }
1522
1523    /// Semantic action for non-terminal 'Include'
1524    fn include(&mut self, _arg: &Include) -> Result<()> {
1525        Ok(())
1526    }
1527
1528    /// Semantic action for non-terminal 'Initial'
1529    fn initial(&mut self, _arg: &Initial) -> Result<()> {
1530        Ok(())
1531    }
1532
1533    /// Semantic action for non-terminal 'Inout'
1534    fn inout(&mut self, _arg: &Inout) -> Result<()> {
1535        Ok(())
1536    }
1537
1538    /// Semantic action for non-terminal 'Input'
1539    fn input(&mut self, _arg: &Input) -> Result<()> {
1540        Ok(())
1541    }
1542
1543    /// Semantic action for non-terminal 'Inside'
1544    fn inside(&mut self, _arg: &Inside) -> Result<()> {
1545        Ok(())
1546    }
1547
1548    /// Semantic action for non-terminal 'Inst'
1549    fn inst(&mut self, _arg: &Inst) -> Result<()> {
1550        Ok(())
1551    }
1552
1553    /// Semantic action for non-terminal 'Interface'
1554    fn interface(&mut self, _arg: &Interface) -> Result<()> {
1555        Ok(())
1556    }
1557
1558    /// Semantic action for non-terminal 'Let'
1559    fn r#let(&mut self, _arg: &Let) -> Result<()> {
1560        Ok(())
1561    }
1562
1563    /// Semantic action for non-terminal 'Logic'
1564    fn logic(&mut self, _arg: &Logic) -> Result<()> {
1565        Ok(())
1566    }
1567
1568    /// Semantic action for non-terminal 'Lsb'
1569    fn lsb(&mut self, _arg: &Lsb) -> Result<()> {
1570        Ok(())
1571    }
1572
1573    /// Semantic action for non-terminal 'Modport'
1574    fn modport(&mut self, _arg: &Modport) -> Result<()> {
1575        Ok(())
1576    }
1577
1578    /// Semantic action for non-terminal 'Module'
1579    fn module(&mut self, _arg: &Module) -> Result<()> {
1580        Ok(())
1581    }
1582
1583    /// Semantic action for non-terminal 'Msb'
1584    fn msb(&mut self, _arg: &Msb) -> Result<()> {
1585        Ok(())
1586    }
1587
1588    /// Semantic action for non-terminal 'Output'
1589    fn output(&mut self, _arg: &Output) -> Result<()> {
1590        Ok(())
1591    }
1592
1593    /// Semantic action for non-terminal 'Outside'
1594    fn outside(&mut self, _arg: &Outside) -> Result<()> {
1595        Ok(())
1596    }
1597
1598    /// Semantic action for non-terminal 'Package'
1599    fn package(&mut self, _arg: &Package) -> Result<()> {
1600        Ok(())
1601    }
1602
1603    /// Semantic action for non-terminal 'Param'
1604    fn param(&mut self, _arg: &Param) -> Result<()> {
1605        Ok(())
1606    }
1607
1608    /// Semantic action for non-terminal 'Proto'
1609    fn proto(&mut self, _arg: &Proto) -> Result<()> {
1610        Ok(())
1611    }
1612
1613    /// Semantic action for non-terminal 'Pub'
1614    fn r#pub(&mut self, _arg: &Pub) -> Result<()> {
1615        Ok(())
1616    }
1617
1618    /// Semantic action for non-terminal 'Ref'
1619    fn r#ref(&mut self, _arg: &Ref) -> Result<()> {
1620        Ok(())
1621    }
1622
1623    /// Semantic action for non-terminal 'Repeat'
1624    fn repeat(&mut self, _arg: &Repeat) -> Result<()> {
1625        Ok(())
1626    }
1627
1628    /// Semantic action for non-terminal 'Reset'
1629    fn reset(&mut self, _arg: &Reset) -> Result<()> {
1630        Ok(())
1631    }
1632
1633    /// Semantic action for non-terminal 'ResetAsyncHigh'
1634    fn reset_async_high(&mut self, _arg: &ResetAsyncHigh) -> Result<()> {
1635        Ok(())
1636    }
1637
1638    /// Semantic action for non-terminal 'ResetAsyncLow'
1639    fn reset_async_low(&mut self, _arg: &ResetAsyncLow) -> Result<()> {
1640        Ok(())
1641    }
1642
1643    /// Semantic action for non-terminal 'ResetSyncHigh'
1644    fn reset_sync_high(&mut self, _arg: &ResetSyncHigh) -> Result<()> {
1645        Ok(())
1646    }
1647
1648    /// Semantic action for non-terminal 'ResetSyncLow'
1649    fn reset_sync_low(&mut self, _arg: &ResetSyncLow) -> Result<()> {
1650        Ok(())
1651    }
1652
1653    /// Semantic action for non-terminal 'Return'
1654    fn r#return(&mut self, _arg: &Return) -> Result<()> {
1655        Ok(())
1656    }
1657
1658    /// Semantic action for non-terminal 'Signed'
1659    fn signed(&mut self, _arg: &Signed) -> Result<()> {
1660        Ok(())
1661    }
1662
1663    /// Semantic action for non-terminal 'Step'
1664    fn step(&mut self, _arg: &Step) -> Result<()> {
1665        Ok(())
1666    }
1667
1668    /// Semantic action for non-terminal 'Strin'
1669    fn strin(&mut self, _arg: &Strin) -> Result<()> {
1670        Ok(())
1671    }
1672
1673    /// Semantic action for non-terminal 'Struct'
1674    fn r#struct(&mut self, _arg: &Struct) -> Result<()> {
1675        Ok(())
1676    }
1677
1678    /// Semantic action for non-terminal 'Switch'
1679    fn switch(&mut self, _arg: &Switch) -> Result<()> {
1680        Ok(())
1681    }
1682
1683    /// Semantic action for non-terminal 'Tri'
1684    fn tri(&mut self, _arg: &Tri) -> Result<()> {
1685        Ok(())
1686    }
1687
1688    /// Semantic action for non-terminal 'Type'
1689    fn r#type(&mut self, _arg: &Type) -> Result<()> {
1690        Ok(())
1691    }
1692
1693    /// Semantic action for non-terminal 'U32'
1694    fn u32(&mut self, _arg: &U32) -> Result<()> {
1695        Ok(())
1696    }
1697
1698    /// Semantic action for non-terminal 'U64'
1699    fn u64(&mut self, _arg: &U64) -> Result<()> {
1700        Ok(())
1701    }
1702
1703    /// Semantic action for non-terminal 'Union'
1704    fn r#union(&mut self, _arg: &Union) -> Result<()> {
1705        Ok(())
1706    }
1707
1708    /// Semantic action for non-terminal 'Unsafe'
1709    fn r#unsafe(&mut self, _arg: &Unsafe) -> Result<()> {
1710        Ok(())
1711    }
1712
1713    /// Semantic action for non-terminal 'Var'
1714    fn var(&mut self, _arg: &Var) -> Result<()> {
1715        Ok(())
1716    }
1717
1718    /// Semantic action for non-terminal 'DollarIdentifier'
1719    fn dollar_identifier(&mut self, _arg: &DollarIdentifier) -> Result<()> {
1720        Ok(())
1721    }
1722
1723    /// Semantic action for non-terminal 'Identifier'
1724    fn identifier(&mut self, _arg: &Identifier) -> Result<()> {
1725        Ok(())
1726    }
1727
1728    /// Semantic action for non-terminal 'Number'
1729    fn number(&mut self, _arg: &Number) -> Result<()> {
1730        Ok(())
1731    }
1732
1733    /// Semantic action for non-terminal 'IntegralNumber'
1734    fn integral_number(&mut self, _arg: &IntegralNumber) -> Result<()> {
1735        Ok(())
1736    }
1737
1738    /// Semantic action for non-terminal 'RealNumber'
1739    fn real_number(&mut self, _arg: &RealNumber) -> Result<()> {
1740        Ok(())
1741    }
1742
1743    /// Semantic action for non-terminal 'HierarchicalIdentifier'
1744    fn hierarchical_identifier(&mut self, _arg: &HierarchicalIdentifier) -> Result<()> {
1745        Ok(())
1746    }
1747
1748    /// Semantic action for non-terminal 'ScopedIdentifier'
1749    fn scoped_identifier(&mut self, _arg: &ScopedIdentifier) -> Result<()> {
1750        Ok(())
1751    }
1752
1753    /// Semantic action for non-terminal 'ExpressionIdentifier'
1754    fn expression_identifier(&mut self, _arg: &ExpressionIdentifier) -> Result<()> {
1755        Ok(())
1756    }
1757
1758    /// Semantic action for non-terminal 'Expression'
1759    fn expression(&mut self, _arg: &Expression) -> Result<()> {
1760        Ok(())
1761    }
1762
1763    /// Semantic action for non-terminal 'Expression01'
1764    fn expression01(&mut self, _arg: &Expression01) -> Result<()> {
1765        Ok(())
1766    }
1767
1768    /// Semantic action for non-terminal 'Expression02'
1769    fn expression02(&mut self, _arg: &Expression02) -> Result<()> {
1770        Ok(())
1771    }
1772
1773    /// Semantic action for non-terminal 'Expression03'
1774    fn expression03(&mut self, _arg: &Expression03) -> Result<()> {
1775        Ok(())
1776    }
1777
1778    /// Semantic action for non-terminal 'Expression04'
1779    fn expression04(&mut self, _arg: &Expression04) -> Result<()> {
1780        Ok(())
1781    }
1782
1783    /// Semantic action for non-terminal 'Expression05'
1784    fn expression05(&mut self, _arg: &Expression05) -> Result<()> {
1785        Ok(())
1786    }
1787
1788    /// Semantic action for non-terminal 'Expression06'
1789    fn expression06(&mut self, _arg: &Expression06) -> Result<()> {
1790        Ok(())
1791    }
1792
1793    /// Semantic action for non-terminal 'Expression07'
1794    fn expression07(&mut self, _arg: &Expression07) -> Result<()> {
1795        Ok(())
1796    }
1797
1798    /// Semantic action for non-terminal 'Expression08'
1799    fn expression08(&mut self, _arg: &Expression08) -> Result<()> {
1800        Ok(())
1801    }
1802
1803    /// Semantic action for non-terminal 'Expression09'
1804    fn expression09(&mut self, _arg: &Expression09) -> Result<()> {
1805        Ok(())
1806    }
1807
1808    /// Semantic action for non-terminal 'Expression10'
1809    fn expression10(&mut self, _arg: &Expression10) -> Result<()> {
1810        Ok(())
1811    }
1812
1813    /// Semantic action for non-terminal 'Expression11'
1814    fn expression11(&mut self, _arg: &Expression11) -> Result<()> {
1815        Ok(())
1816    }
1817
1818    /// Semantic action for non-terminal 'Expression12'
1819    fn expression12(&mut self, _arg: &Expression12) -> Result<()> {
1820        Ok(())
1821    }
1822
1823    /// Semantic action for non-terminal 'Factor'
1824    fn factor(&mut self, _arg: &Factor) -> Result<()> {
1825        Ok(())
1826    }
1827
1828    /// Semantic action for non-terminal 'IdentifierFactor'
1829    fn identifier_factor(&mut self, _arg: &IdentifierFactor) -> Result<()> {
1830        Ok(())
1831    }
1832
1833    /// Semantic action for non-terminal 'FactorTypeFactor'
1834    fn factor_type_factor(&mut self, _arg: &FactorTypeFactor) -> Result<()> {
1835        Ok(())
1836    }
1837
1838    /// Semantic action for non-terminal 'FunctionCall'
1839    fn function_call(&mut self, _arg: &FunctionCall) -> Result<()> {
1840        Ok(())
1841    }
1842
1843    /// Semantic action for non-terminal 'ArgumentList'
1844    fn argument_list(&mut self, _arg: &ArgumentList) -> Result<()> {
1845        Ok(())
1846    }
1847
1848    /// Semantic action for non-terminal 'ArgumentItem'
1849    fn argument_item(&mut self, _arg: &ArgumentItem) -> Result<()> {
1850        Ok(())
1851    }
1852
1853    /// Semantic action for non-terminal 'ConcatenationList'
1854    fn concatenation_list(&mut self, _arg: &ConcatenationList) -> Result<()> {
1855        Ok(())
1856    }
1857
1858    /// Semantic action for non-terminal 'ConcatenationItem'
1859    fn concatenation_item(&mut self, _arg: &ConcatenationItem) -> Result<()> {
1860        Ok(())
1861    }
1862
1863    /// Semantic action for non-terminal 'ArrayLiteralList'
1864    fn array_literal_list(&mut self, _arg: &ArrayLiteralList) -> Result<()> {
1865        Ok(())
1866    }
1867
1868    /// Semantic action for non-terminal 'ArrayLiteralItem'
1869    fn array_literal_item(&mut self, _arg: &ArrayLiteralItem) -> Result<()> {
1870        Ok(())
1871    }
1872
1873    /// Semantic action for non-terminal 'IfExpression'
1874    fn if_expression(&mut self, _arg: &IfExpression) -> Result<()> {
1875        Ok(())
1876    }
1877
1878    /// Semantic action for non-terminal 'CaseExpression'
1879    fn case_expression(&mut self, _arg: &CaseExpression) -> Result<()> {
1880        Ok(())
1881    }
1882
1883    /// Semantic action for non-terminal 'SwitchExpression'
1884    fn switch_expression(&mut self, _arg: &SwitchExpression) -> Result<()> {
1885        Ok(())
1886    }
1887
1888    /// Semantic action for non-terminal 'TypeExpression'
1889    fn type_expression(&mut self, _arg: &TypeExpression) -> Result<()> {
1890        Ok(())
1891    }
1892
1893    /// Semantic action for non-terminal 'InsideExpression'
1894    fn inside_expression(&mut self, _arg: &InsideExpression) -> Result<()> {
1895        Ok(())
1896    }
1897
1898    /// Semantic action for non-terminal 'OutsideExpression'
1899    fn outside_expression(&mut self, _arg: &OutsideExpression) -> Result<()> {
1900        Ok(())
1901    }
1902
1903    /// Semantic action for non-terminal 'RangeList'
1904    fn range_list(&mut self, _arg: &RangeList) -> Result<()> {
1905        Ok(())
1906    }
1907
1908    /// Semantic action for non-terminal 'RangeItem'
1909    fn range_item(&mut self, _arg: &RangeItem) -> Result<()> {
1910        Ok(())
1911    }
1912
1913    /// Semantic action for non-terminal 'Select'
1914    fn select(&mut self, _arg: &Select) -> Result<()> {
1915        Ok(())
1916    }
1917
1918    /// Semantic action for non-terminal 'SelectOperator'
1919    fn select_operator(&mut self, _arg: &SelectOperator) -> Result<()> {
1920        Ok(())
1921    }
1922
1923    /// Semantic action for non-terminal 'Width'
1924    fn width(&mut self, _arg: &Width) -> Result<()> {
1925        Ok(())
1926    }
1927
1928    /// Semantic action for non-terminal 'Array'
1929    fn array(&mut self, _arg: &Array) -> Result<()> {
1930        Ok(())
1931    }
1932
1933    /// Semantic action for non-terminal 'Range'
1934    fn range(&mut self, _arg: &Range) -> Result<()> {
1935        Ok(())
1936    }
1937
1938    /// Semantic action for non-terminal 'RangeOperator'
1939    fn range_operator(&mut self, _arg: &RangeOperator) -> Result<()> {
1940        Ok(())
1941    }
1942
1943    /// Semantic action for non-terminal 'FixedType'
1944    fn fixed_type(&mut self, _arg: &FixedType) -> Result<()> {
1945        Ok(())
1946    }
1947
1948    /// Semantic action for non-terminal 'VariableType'
1949    fn variable_type(&mut self, _arg: &VariableType) -> Result<()> {
1950        Ok(())
1951    }
1952
1953    /// Semantic action for non-terminal 'UserDefinedType'
1954    fn user_defined_type(&mut self, _arg: &UserDefinedType) -> Result<()> {
1955        Ok(())
1956    }
1957
1958    /// Semantic action for non-terminal 'TypeModifier'
1959    fn type_modifier(&mut self, _arg: &TypeModifier) -> Result<()> {
1960        Ok(())
1961    }
1962
1963    /// Semantic action for non-terminal 'FactorType'
1964    fn factor_type(&mut self, _arg: &FactorType) -> Result<()> {
1965        Ok(())
1966    }
1967
1968    /// Semantic action for non-terminal 'ScalarType'
1969    fn scalar_type(&mut self, _arg: &ScalarType) -> Result<()> {
1970        Ok(())
1971    }
1972
1973    /// Semantic action for non-terminal 'ArrayType'
1974    fn array_type(&mut self, _arg: &ArrayType) -> Result<()> {
1975        Ok(())
1976    }
1977
1978    /// Semantic action for non-terminal 'CastingType'
1979    fn casting_type(&mut self, _arg: &CastingType) -> Result<()> {
1980        Ok(())
1981    }
1982
1983    /// Semantic action for non-terminal 'ClockDomain'
1984    fn clock_domain(&mut self, _arg: &ClockDomain) -> Result<()> {
1985        Ok(())
1986    }
1987
1988    /// Semantic action for non-terminal 'StatementBlock'
1989    fn statement_block(&mut self, _arg: &StatementBlock) -> Result<()> {
1990        Ok(())
1991    }
1992
1993    /// Semantic action for non-terminal 'StatementBlockGroup'
1994    fn statement_block_group(&mut self, _arg: &StatementBlockGroup) -> Result<()> {
1995        Ok(())
1996    }
1997
1998    /// Semantic action for non-terminal 'StatementBlockItem'
1999    fn statement_block_item(&mut self, _arg: &StatementBlockItem) -> Result<()> {
2000        Ok(())
2001    }
2002
2003    /// Semantic action for non-terminal 'Statement'
2004    fn statement(&mut self, _arg: &Statement) -> Result<()> {
2005        Ok(())
2006    }
2007
2008    /// Semantic action for non-terminal 'LetStatement'
2009    fn let_statement(&mut self, _arg: &LetStatement) -> Result<()> {
2010        Ok(())
2011    }
2012
2013    /// Semantic action for non-terminal 'IdentifierStatement'
2014    fn identifier_statement(&mut self, _arg: &IdentifierStatement) -> Result<()> {
2015        Ok(())
2016    }
2017
2018    /// Semantic action for non-terminal 'Assignment'
2019    fn assignment(&mut self, _arg: &Assignment) -> Result<()> {
2020        Ok(())
2021    }
2022
2023    /// Semantic action for non-terminal 'IfStatement'
2024    fn if_statement(&mut self, _arg: &IfStatement) -> Result<()> {
2025        Ok(())
2026    }
2027
2028    /// Semantic action for non-terminal 'IfResetStatement'
2029    fn if_reset_statement(&mut self, _arg: &IfResetStatement) -> Result<()> {
2030        Ok(())
2031    }
2032
2033    /// Semantic action for non-terminal 'ReturnStatement'
2034    fn return_statement(&mut self, _arg: &ReturnStatement) -> Result<()> {
2035        Ok(())
2036    }
2037
2038    /// Semantic action for non-terminal 'BreakStatement'
2039    fn break_statement(&mut self, _arg: &BreakStatement) -> Result<()> {
2040        Ok(())
2041    }
2042
2043    /// Semantic action for non-terminal 'ForStatement'
2044    fn for_statement(&mut self, _arg: &ForStatement) -> Result<()> {
2045        Ok(())
2046    }
2047
2048    /// Semantic action for non-terminal 'CaseStatement'
2049    fn case_statement(&mut self, _arg: &CaseStatement) -> Result<()> {
2050        Ok(())
2051    }
2052
2053    /// Semantic action for non-terminal 'CaseItem'
2054    fn case_item(&mut self, _arg: &CaseItem) -> Result<()> {
2055        Ok(())
2056    }
2057
2058    /// Semantic action for non-terminal 'CaseCondition'
2059    fn case_condition(&mut self, _arg: &CaseCondition) -> Result<()> {
2060        Ok(())
2061    }
2062
2063    /// Semantic action for non-terminal 'SwitchStatement'
2064    fn switch_statement(&mut self, _arg: &SwitchStatement) -> Result<()> {
2065        Ok(())
2066    }
2067
2068    /// Semantic action for non-terminal 'SwitchItem'
2069    fn switch_item(&mut self, _arg: &SwitchItem) -> Result<()> {
2070        Ok(())
2071    }
2072
2073    /// Semantic action for non-terminal 'SwitchCondition'
2074    fn switch_condition(&mut self, _arg: &SwitchCondition) -> Result<()> {
2075        Ok(())
2076    }
2077
2078    /// Semantic action for non-terminal 'Attribute'
2079    fn attribute(&mut self, _arg: &Attribute) -> Result<()> {
2080        Ok(())
2081    }
2082
2083    /// Semantic action for non-terminal 'AttributeList'
2084    fn attribute_list(&mut self, _arg: &AttributeList) -> Result<()> {
2085        Ok(())
2086    }
2087
2088    /// Semantic action for non-terminal 'AttributeItem'
2089    fn attribute_item(&mut self, _arg: &AttributeItem) -> Result<()> {
2090        Ok(())
2091    }
2092
2093    /// Semantic action for non-terminal 'LetDeclaration'
2094    fn let_declaration(&mut self, _arg: &LetDeclaration) -> Result<()> {
2095        Ok(())
2096    }
2097
2098    /// Semantic action for non-terminal 'VarDeclaration'
2099    fn var_declaration(&mut self, _arg: &VarDeclaration) -> Result<()> {
2100        Ok(())
2101    }
2102
2103    /// Semantic action for non-terminal 'ConstDeclaration'
2104    fn const_declaration(&mut self, _arg: &ConstDeclaration) -> Result<()> {
2105        Ok(())
2106    }
2107
2108    /// Semantic action for non-terminal 'TypeDefDeclaration'
2109    fn type_def_declaration(&mut self, _arg: &TypeDefDeclaration) -> Result<()> {
2110        Ok(())
2111    }
2112
2113    /// Semantic action for non-terminal 'AlwaysFfDeclaration'
2114    fn always_ff_declaration(&mut self, _arg: &AlwaysFfDeclaration) -> Result<()> {
2115        Ok(())
2116    }
2117
2118    /// Semantic action for non-terminal 'AlwaysFfEventList'
2119    fn always_ff_event_list(&mut self, _arg: &AlwaysFfEventList) -> Result<()> {
2120        Ok(())
2121    }
2122
2123    /// Semantic action for non-terminal 'AlwaysFfClock'
2124    fn always_ff_clock(&mut self, _arg: &AlwaysFfClock) -> Result<()> {
2125        Ok(())
2126    }
2127
2128    /// Semantic action for non-terminal 'AlwaysFfReset'
2129    fn always_ff_reset(&mut self, _arg: &AlwaysFfReset) -> Result<()> {
2130        Ok(())
2131    }
2132
2133    /// Semantic action for non-terminal 'AlwaysCombDeclaration'
2134    fn always_comb_declaration(&mut self, _arg: &AlwaysCombDeclaration) -> Result<()> {
2135        Ok(())
2136    }
2137
2138    /// Semantic action for non-terminal 'AssignDeclaration'
2139    fn assign_declaration(&mut self, _arg: &AssignDeclaration) -> Result<()> {
2140        Ok(())
2141    }
2142
2143    /// Semantic action for non-terminal 'AssignDestination'
2144    fn assign_destination(&mut self, _arg: &AssignDestination) -> Result<()> {
2145        Ok(())
2146    }
2147
2148    /// Semantic action for non-terminal 'AssignConcatenationList'
2149    fn assign_concatenation_list(&mut self, _arg: &AssignConcatenationList) -> Result<()> {
2150        Ok(())
2151    }
2152
2153    /// Semantic action for non-terminal 'AssignConcatenationItem'
2154    fn assign_concatenation_item(&mut self, _arg: &AssignConcatenationItem) -> Result<()> {
2155        Ok(())
2156    }
2157
2158    /// Semantic action for non-terminal 'ModportDeclaration'
2159    fn modport_declaration(&mut self, _arg: &ModportDeclaration) -> Result<()> {
2160        Ok(())
2161    }
2162
2163    /// Semantic action for non-terminal 'ModportList'
2164    fn modport_list(&mut self, _arg: &ModportList) -> Result<()> {
2165        Ok(())
2166    }
2167
2168    /// Semantic action for non-terminal 'ModportGroup'
2169    fn modport_group(&mut self, _arg: &ModportGroup) -> Result<()> {
2170        Ok(())
2171    }
2172
2173    /// Semantic action for non-terminal 'ModportItem'
2174    fn modport_item(&mut self, _arg: &ModportItem) -> Result<()> {
2175        Ok(())
2176    }
2177
2178    /// Semantic action for non-terminal 'ModportDefault'
2179    fn modport_default(&mut self, _arg: &ModportDefault) -> Result<()> {
2180        Ok(())
2181    }
2182
2183    /// Semantic action for non-terminal 'EnumDeclaration'
2184    fn enum_declaration(&mut self, _arg: &EnumDeclaration) -> Result<()> {
2185        Ok(())
2186    }
2187
2188    /// Semantic action for non-terminal 'EnumList'
2189    fn enum_list(&mut self, _arg: &EnumList) -> Result<()> {
2190        Ok(())
2191    }
2192
2193    /// Semantic action for non-terminal 'EnumGroup'
2194    fn enum_group(&mut self, _arg: &EnumGroup) -> Result<()> {
2195        Ok(())
2196    }
2197
2198    /// Semantic action for non-terminal 'EnumItem'
2199    fn enum_item(&mut self, _arg: &EnumItem) -> Result<()> {
2200        Ok(())
2201    }
2202
2203    /// Semantic action for non-terminal 'StructUnion'
2204    fn struct_union(&mut self, _arg: &StructUnion) -> Result<()> {
2205        Ok(())
2206    }
2207
2208    /// Semantic action for non-terminal 'StructUnionDeclaration'
2209    fn struct_union_declaration(&mut self, _arg: &StructUnionDeclaration) -> Result<()> {
2210        Ok(())
2211    }
2212
2213    /// Semantic action for non-terminal 'StructUnionList'
2214    fn struct_union_list(&mut self, _arg: &StructUnionList) -> Result<()> {
2215        Ok(())
2216    }
2217
2218    /// Semantic action for non-terminal 'StructUnionGroup'
2219    fn struct_union_group(&mut self, _arg: &StructUnionGroup) -> Result<()> {
2220        Ok(())
2221    }
2222
2223    /// Semantic action for non-terminal 'StructUnionItem'
2224    fn struct_union_item(&mut self, _arg: &StructUnionItem) -> Result<()> {
2225        Ok(())
2226    }
2227
2228    /// Semantic action for non-terminal 'InitialDeclaration'
2229    fn initial_declaration(&mut self, _arg: &InitialDeclaration) -> Result<()> {
2230        Ok(())
2231    }
2232
2233    /// Semantic action for non-terminal 'FinalDeclaration'
2234    fn final_declaration(&mut self, _arg: &FinalDeclaration) -> Result<()> {
2235        Ok(())
2236    }
2237
2238    /// Semantic action for non-terminal 'InstDeclaration'
2239    fn inst_declaration(&mut self, _arg: &InstDeclaration) -> Result<()> {
2240        Ok(())
2241    }
2242
2243    /// Semantic action for non-terminal 'InstParameter'
2244    fn inst_parameter(&mut self, _arg: &InstParameter) -> Result<()> {
2245        Ok(())
2246    }
2247
2248    /// Semantic action for non-terminal 'InstParameterList'
2249    fn inst_parameter_list(&mut self, _arg: &InstParameterList) -> Result<()> {
2250        Ok(())
2251    }
2252
2253    /// Semantic action for non-terminal 'InstParameterGroup'
2254    fn inst_parameter_group(&mut self, _arg: &InstParameterGroup) -> Result<()> {
2255        Ok(())
2256    }
2257
2258    /// Semantic action for non-terminal 'InstParameterItem'
2259    fn inst_parameter_item(&mut self, _arg: &InstParameterItem) -> Result<()> {
2260        Ok(())
2261    }
2262
2263    /// Semantic action for non-terminal 'InstPortList'
2264    fn inst_port_list(&mut self, _arg: &InstPortList) -> Result<()> {
2265        Ok(())
2266    }
2267
2268    /// Semantic action for non-terminal 'InstPortGroup'
2269    fn inst_port_group(&mut self, _arg: &InstPortGroup) -> Result<()> {
2270        Ok(())
2271    }
2272
2273    /// Semantic action for non-terminal 'InstPortItem'
2274    fn inst_port_item(&mut self, _arg: &InstPortItem) -> Result<()> {
2275        Ok(())
2276    }
2277
2278    /// Semantic action for non-terminal 'WithParameter'
2279    fn with_parameter(&mut self, _arg: &WithParameter) -> Result<()> {
2280        Ok(())
2281    }
2282
2283    /// Semantic action for non-terminal 'WithParameterList'
2284    fn with_parameter_list(&mut self, _arg: &WithParameterList) -> Result<()> {
2285        Ok(())
2286    }
2287
2288    /// Semantic action for non-terminal 'WithParameterGroup'
2289    fn with_parameter_group(&mut self, _arg: &WithParameterGroup) -> Result<()> {
2290        Ok(())
2291    }
2292
2293    /// Semantic action for non-terminal 'WithParameterItem'
2294    fn with_parameter_item(&mut self, _arg: &WithParameterItem) -> Result<()> {
2295        Ok(())
2296    }
2297
2298    /// Semantic action for non-terminal 'GenericBound'
2299    fn generic_bound(&mut self, _arg: &GenericBound) -> Result<()> {
2300        Ok(())
2301    }
2302
2303    /// Semantic action for non-terminal 'WithGenericParameter'
2304    fn with_generic_parameter(&mut self, _arg: &WithGenericParameter) -> Result<()> {
2305        Ok(())
2306    }
2307
2308    /// Semantic action for non-terminal 'WithGenericParameterList'
2309    fn with_generic_parameter_list(&mut self, _arg: &WithGenericParameterList) -> Result<()> {
2310        Ok(())
2311    }
2312
2313    /// Semantic action for non-terminal 'WithGenericParameterItem'
2314    fn with_generic_parameter_item(&mut self, _arg: &WithGenericParameterItem) -> Result<()> {
2315        Ok(())
2316    }
2317
2318    /// Semantic action for non-terminal 'WithGenericArgument'
2319    fn with_generic_argument(&mut self, _arg: &WithGenericArgument) -> Result<()> {
2320        Ok(())
2321    }
2322
2323    /// Semantic action for non-terminal 'WithGenericArgumentList'
2324    fn with_generic_argument_list(&mut self, _arg: &WithGenericArgumentList) -> Result<()> {
2325        Ok(())
2326    }
2327
2328    /// Semantic action for non-terminal 'WithGenericArgumentItem'
2329    fn with_generic_argument_item(&mut self, _arg: &WithGenericArgumentItem) -> Result<()> {
2330        Ok(())
2331    }
2332
2333    /// Semantic action for non-terminal 'PortDeclaration'
2334    fn port_declaration(&mut self, _arg: &PortDeclaration) -> Result<()> {
2335        Ok(())
2336    }
2337
2338    /// Semantic action for non-terminal 'PortDeclarationList'
2339    fn port_declaration_list(&mut self, _arg: &PortDeclarationList) -> Result<()> {
2340        Ok(())
2341    }
2342
2343    /// Semantic action for non-terminal 'PortDeclarationGroup'
2344    fn port_declaration_group(&mut self, _arg: &PortDeclarationGroup) -> Result<()> {
2345        Ok(())
2346    }
2347
2348    /// Semantic action for non-terminal 'PortDeclarationItem'
2349    fn port_declaration_item(&mut self, _arg: &PortDeclarationItem) -> Result<()> {
2350        Ok(())
2351    }
2352
2353    /// Semantic action for non-terminal 'PortTypeConcrete'
2354    fn port_type_concrete(&mut self, _arg: &PortTypeConcrete) -> Result<()> {
2355        Ok(())
2356    }
2357
2358    /// Semantic action for non-terminal 'PortDefaultValue'
2359    fn port_default_value(&mut self, _arg: &PortDefaultValue) -> Result<()> {
2360        Ok(())
2361    }
2362
2363    /// Semantic action for non-terminal 'PortTypeAbstract'
2364    fn port_type_abstract(&mut self, _arg: &PortTypeAbstract) -> Result<()> {
2365        Ok(())
2366    }
2367
2368    /// Semantic action for non-terminal 'Direction'
2369    fn direction(&mut self, _arg: &Direction) -> Result<()> {
2370        Ok(())
2371    }
2372
2373    /// Semantic action for non-terminal 'FunctionDeclaration'
2374    fn function_declaration(&mut self, _arg: &FunctionDeclaration) -> Result<()> {
2375        Ok(())
2376    }
2377
2378    /// Semantic action for non-terminal 'ImportDeclaration'
2379    fn import_declaration(&mut self, _arg: &ImportDeclaration) -> Result<()> {
2380        Ok(())
2381    }
2382
2383    /// Semantic action for non-terminal 'ExportDeclaration'
2384    fn export_declaration(&mut self, _arg: &ExportDeclaration) -> Result<()> {
2385        Ok(())
2386    }
2387
2388    /// Semantic action for non-terminal 'UnsafeBlock'
2389    fn unsafe_block(&mut self, _arg: &UnsafeBlock) -> Result<()> {
2390        Ok(())
2391    }
2392
2393    /// Semantic action for non-terminal 'ModuleDeclaration'
2394    fn module_declaration(&mut self, _arg: &ModuleDeclaration) -> Result<()> {
2395        Ok(())
2396    }
2397
2398    /// Semantic action for non-terminal 'ModuleGroup'
2399    fn module_group(&mut self, _arg: &ModuleGroup) -> Result<()> {
2400        Ok(())
2401    }
2402
2403    /// Semantic action for non-terminal 'ModuleItem'
2404    fn module_item(&mut self, _arg: &ModuleItem) -> Result<()> {
2405        Ok(())
2406    }
2407
2408    /// Semantic action for non-terminal 'InterfaceDeclaration'
2409    fn interface_declaration(&mut self, _arg: &InterfaceDeclaration) -> Result<()> {
2410        Ok(())
2411    }
2412
2413    /// Semantic action for non-terminal 'InterfaceGroup'
2414    fn interface_group(&mut self, _arg: &InterfaceGroup) -> Result<()> {
2415        Ok(())
2416    }
2417
2418    /// Semantic action for non-terminal 'InterfaceItem'
2419    fn interface_item(&mut self, _arg: &InterfaceItem) -> Result<()> {
2420        Ok(())
2421    }
2422
2423    /// Semantic action for non-terminal 'GenerateIfDeclaration'
2424    fn generate_if_declaration(&mut self, _arg: &GenerateIfDeclaration) -> Result<()> {
2425        Ok(())
2426    }
2427
2428    /// Semantic action for non-terminal 'GenerateForDeclaration'
2429    fn generate_for_declaration(&mut self, _arg: &GenerateForDeclaration) -> Result<()> {
2430        Ok(())
2431    }
2432
2433    /// Semantic action for non-terminal 'GenerateBlockDeclaration'
2434    fn generate_block_declaration(&mut self, _arg: &GenerateBlockDeclaration) -> Result<()> {
2435        Ok(())
2436    }
2437
2438    /// Semantic action for non-terminal 'GenerateNamedBlock'
2439    fn generate_named_block(&mut self, _arg: &GenerateNamedBlock) -> Result<()> {
2440        Ok(())
2441    }
2442
2443    /// Semantic action for non-terminal 'GenerateOptionalNamedBlock'
2444    fn generate_optional_named_block(&mut self, _arg: &GenerateOptionalNamedBlock) -> Result<()> {
2445        Ok(())
2446    }
2447
2448    /// Semantic action for non-terminal 'GenerateGroup'
2449    fn generate_group(&mut self, _arg: &GenerateGroup) -> Result<()> {
2450        Ok(())
2451    }
2452
2453    /// Semantic action for non-terminal 'GenerateItem'
2454    fn generate_item(&mut self, _arg: &GenerateItem) -> Result<()> {
2455        Ok(())
2456    }
2457
2458    /// Semantic action for non-terminal 'PackageDeclaration'
2459    fn package_declaration(&mut self, _arg: &PackageDeclaration) -> Result<()> {
2460        Ok(())
2461    }
2462
2463    /// Semantic action for non-terminal 'PackageGroup'
2464    fn package_group(&mut self, _arg: &PackageGroup) -> Result<()> {
2465        Ok(())
2466    }
2467
2468    /// Semantic action for non-terminal 'PackageItem'
2469    fn package_item(&mut self, _arg: &PackageItem) -> Result<()> {
2470        Ok(())
2471    }
2472
2473    /// Semantic action for non-terminal 'ProtoModuleDeclaration'
2474    fn proto_module_declaration(&mut self, _arg: &ProtoModuleDeclaration) -> Result<()> {
2475        Ok(())
2476    }
2477
2478    /// Semantic action for non-terminal 'EmbedDeclaration'
2479    fn embed_declaration(&mut self, _arg: &EmbedDeclaration) -> Result<()> {
2480        Ok(())
2481    }
2482
2483    /// Semantic action for non-terminal 'EmbedContent'
2484    fn embed_content(&mut self, _arg: &EmbedContent) -> Result<()> {
2485        Ok(())
2486    }
2487
2488    /// Semantic action for non-terminal 'EmbedContentToken'
2489    fn embed_content_token(&mut self, _arg: &EmbedContentToken) -> Result<()> {
2490        Ok(())
2491    }
2492
2493    /// Semantic action for non-terminal 'EmbedItem'
2494    fn embed_item(&mut self, _arg: &EmbedItem) -> Result<()> {
2495        Ok(())
2496    }
2497
2498    /// Semantic action for non-terminal 'IncludeDeclaration'
2499    fn include_declaration(&mut self, _arg: &IncludeDeclaration) -> Result<()> {
2500        Ok(())
2501    }
2502
2503    /// Semantic action for non-terminal 'DescriptionGroup'
2504    fn description_group(&mut self, _arg: &DescriptionGroup) -> Result<()> {
2505        Ok(())
2506    }
2507
2508    /// Semantic action for non-terminal 'DescriptionItem'
2509    fn description_item(&mut self, _arg: &DescriptionItem) -> Result<()> {
2510        Ok(())
2511    }
2512
2513    /// Semantic action for non-terminal 'PublicDescriptionItem'
2514    fn public_description_item(&mut self, _arg: &PublicDescriptionItem) -> Result<()> {
2515        Ok(())
2516    }
2517
2518    /// Semantic action for non-terminal 'Veryl'
2519    fn veryl(&mut self, _arg: &Veryl) -> Result<()> {
2520        Ok(())
2521    }
2522
2523    /// This method provides skipped language comments.
2524    /// If you need comments please provide your own implementation of this method.
2525    fn on_comment(&mut self, _token: Token<'_>) {}
2526}
2527
2528// -------------------------------------------------------------------------------------------------
2529//
2530// Output Types of productions deduced from the structure of the transformed grammar
2531//
2532
2533///
2534/// Type derived for production 343
2535///
2536/// `Number: IntegralNumber;`
2537///
2538#[allow(dead_code)]
2539#[derive(Builder, Debug, Clone)]
2540#[builder(crate = "parol_runtime::derive_builder")]
2541pub struct NumberIntegralNumber {
2542    pub integral_number: Box<IntegralNumber>,
2543}
2544
2545///
2546/// Type derived for production 344
2547///
2548/// `Number: RealNumber;`
2549///
2550#[allow(dead_code)]
2551#[derive(Builder, Debug, Clone)]
2552#[builder(crate = "parol_runtime::derive_builder")]
2553pub struct NumberRealNumber {
2554    pub real_number: Box<RealNumber>,
2555}
2556
2557///
2558/// Type derived for production 345
2559///
2560/// `IntegralNumber: Based;`
2561///
2562#[allow(dead_code)]
2563#[derive(Builder, Debug, Clone)]
2564#[builder(crate = "parol_runtime::derive_builder")]
2565pub struct IntegralNumberBased {
2566    pub based: Box<Based>,
2567}
2568
2569///
2570/// Type derived for production 346
2571///
2572/// `IntegralNumber: BaseLess;`
2573///
2574#[allow(dead_code)]
2575#[derive(Builder, Debug, Clone)]
2576#[builder(crate = "parol_runtime::derive_builder")]
2577pub struct IntegralNumberBaseLess {
2578    pub base_less: Box<BaseLess>,
2579}
2580
2581///
2582/// Type derived for production 347
2583///
2584/// `IntegralNumber: AllBit;`
2585///
2586#[allow(dead_code)]
2587#[derive(Builder, Debug, Clone)]
2588#[builder(crate = "parol_runtime::derive_builder")]
2589pub struct IntegralNumberAllBit {
2590    pub all_bit: Box<AllBit>,
2591}
2592
2593///
2594/// Type derived for production 348
2595///
2596/// `RealNumber: FixedPoint;`
2597///
2598#[allow(dead_code)]
2599#[derive(Builder, Debug, Clone)]
2600#[builder(crate = "parol_runtime::derive_builder")]
2601pub struct RealNumberFixedPoint {
2602    pub fixed_point: Box<FixedPoint>,
2603}
2604
2605///
2606/// Type derived for production 349
2607///
2608/// `RealNumber: Exponent;`
2609///
2610#[allow(dead_code)]
2611#[derive(Builder, Debug, Clone)]
2612#[builder(crate = "parol_runtime::derive_builder")]
2613pub struct RealNumberExponent {
2614    pub exponent: Box<Exponent>,
2615}
2616
2617///
2618/// Type derived for production 358
2619///
2620/// `ScopedIdentifierGroup: DollarIdentifier;`
2621///
2622#[allow(dead_code)]
2623#[derive(Builder, Debug, Clone)]
2624#[builder(crate = "parol_runtime::derive_builder")]
2625pub struct ScopedIdentifierGroupDollarIdentifier {
2626    pub dollar_identifier: Box<DollarIdentifier>,
2627}
2628
2629///
2630/// Type derived for production 359
2631///
2632/// `ScopedIdentifierGroup: Identifier ScopedIdentifierOpt /* Option */;`
2633///
2634#[allow(dead_code)]
2635#[derive(Builder, Debug, Clone)]
2636#[builder(crate = "parol_runtime::derive_builder")]
2637pub struct ScopedIdentifierGroupIdentifierScopedIdentifierOpt {
2638    pub identifier: Box<Identifier>,
2639    pub scoped_identifier_opt: Option<ScopedIdentifierOpt>,
2640}
2641
2642///
2643/// Type derived for production 404
2644///
2645/// `Expression09ListGroup: Operator10;`
2646///
2647#[allow(dead_code)]
2648#[derive(Builder, Debug, Clone)]
2649#[builder(crate = "parol_runtime::derive_builder")]
2650pub struct Expression09ListGroupOperator10 {
2651    pub operator10: Box<Operator10>,
2652}
2653
2654///
2655/// Type derived for production 405
2656///
2657/// `Expression09ListGroup: Star;`
2658///
2659#[allow(dead_code)]
2660#[derive(Builder, Debug, Clone)]
2661#[builder(crate = "parol_runtime::derive_builder")]
2662pub struct Expression09ListGroupStar {
2663    pub star: Box<Star>,
2664}
2665
2666///
2667/// Type derived for production 415
2668///
2669/// `Expression12ListGroup: UnaryOperator;`
2670///
2671#[allow(dead_code)]
2672#[derive(Builder, Debug, Clone)]
2673#[builder(crate = "parol_runtime::derive_builder")]
2674pub struct Expression12ListGroupUnaryOperator {
2675    pub unary_operator: Box<UnaryOperator>,
2676}
2677
2678///
2679/// Type derived for production 416
2680///
2681/// `Expression12ListGroup: Operator09;`
2682///
2683#[allow(dead_code)]
2684#[derive(Builder, Debug, Clone)]
2685#[builder(crate = "parol_runtime::derive_builder")]
2686pub struct Expression12ListGroupOperator09 {
2687    pub operator09: Box<Operator09>,
2688}
2689
2690///
2691/// Type derived for production 417
2692///
2693/// `Expression12ListGroup: Operator05;`
2694///
2695#[allow(dead_code)]
2696#[derive(Builder, Debug, Clone)]
2697#[builder(crate = "parol_runtime::derive_builder")]
2698pub struct Expression12ListGroupOperator05 {
2699    pub operator05: Box<Operator05>,
2700}
2701
2702///
2703/// Type derived for production 418
2704///
2705/// `Expression12ListGroup: Operator03;`
2706///
2707#[allow(dead_code)]
2708#[derive(Builder, Debug, Clone)]
2709#[builder(crate = "parol_runtime::derive_builder")]
2710pub struct Expression12ListGroupOperator03 {
2711    pub operator03: Box<Operator03>,
2712}
2713
2714///
2715/// Type derived for production 419
2716///
2717/// `Expression12ListGroup: Operator04;`
2718///
2719#[allow(dead_code)]
2720#[derive(Builder, Debug, Clone)]
2721#[builder(crate = "parol_runtime::derive_builder")]
2722pub struct Expression12ListGroupOperator04 {
2723    pub operator04: Box<Operator04>,
2724}
2725
2726///
2727/// Type derived for production 421
2728///
2729/// `Factor: Number;`
2730///
2731#[allow(dead_code)]
2732#[derive(Builder, Debug, Clone)]
2733#[builder(crate = "parol_runtime::derive_builder")]
2734pub struct FactorNumber {
2735    pub number: Box<Number>,
2736}
2737
2738///
2739/// Type derived for production 422
2740///
2741/// `Factor: IdentifierFactor;`
2742///
2743#[allow(dead_code)]
2744#[derive(Builder, Debug, Clone)]
2745#[builder(crate = "parol_runtime::derive_builder")]
2746pub struct FactorIdentifierFactor {
2747    pub identifier_factor: Box<IdentifierFactor>,
2748}
2749
2750///
2751/// Type derived for production 423
2752///
2753/// `Factor: LParen Expression RParen;`
2754///
2755#[allow(dead_code)]
2756#[derive(Builder, Debug, Clone)]
2757#[builder(crate = "parol_runtime::derive_builder")]
2758pub struct FactorLParenExpressionRParen {
2759    pub l_paren: Box<LParen>,
2760    pub expression: Box<Expression>,
2761    pub r_paren: Box<RParen>,
2762}
2763
2764///
2765/// Type derived for production 424
2766///
2767/// `Factor: LBrace ConcatenationList RBrace;`
2768///
2769#[allow(dead_code)]
2770#[derive(Builder, Debug, Clone)]
2771#[builder(crate = "parol_runtime::derive_builder")]
2772pub struct FactorLBraceConcatenationListRBrace {
2773    pub l_brace: Box<LBrace>,
2774    pub concatenation_list: Box<ConcatenationList>,
2775    pub r_brace: Box<RBrace>,
2776}
2777
2778///
2779/// Type derived for production 425
2780///
2781/// `Factor: QuoteLBrace ArrayLiteralList RBrace;`
2782///
2783#[allow(dead_code)]
2784#[derive(Builder, Debug, Clone)]
2785#[builder(crate = "parol_runtime::derive_builder")]
2786pub struct FactorQuoteLBraceArrayLiteralListRBrace {
2787    pub quote_l_brace: Box<QuoteLBrace>,
2788    pub array_literal_list: Box<ArrayLiteralList>,
2789    pub r_brace: Box<RBrace>,
2790}
2791
2792///
2793/// Type derived for production 426
2794///
2795/// `Factor: IfExpression;`
2796///
2797#[allow(dead_code)]
2798#[derive(Builder, Debug, Clone)]
2799#[builder(crate = "parol_runtime::derive_builder")]
2800pub struct FactorIfExpression {
2801    pub if_expression: Box<IfExpression>,
2802}
2803
2804///
2805/// Type derived for production 427
2806///
2807/// `Factor: CaseExpression;`
2808///
2809#[allow(dead_code)]
2810#[derive(Builder, Debug, Clone)]
2811#[builder(crate = "parol_runtime::derive_builder")]
2812pub struct FactorCaseExpression {
2813    pub case_expression: Box<CaseExpression>,
2814}
2815
2816///
2817/// Type derived for production 428
2818///
2819/// `Factor: SwitchExpression;`
2820///
2821#[allow(dead_code)]
2822#[derive(Builder, Debug, Clone)]
2823#[builder(crate = "parol_runtime::derive_builder")]
2824pub struct FactorSwitchExpression {
2825    pub switch_expression: Box<SwitchExpression>,
2826}
2827
2828///
2829/// Type derived for production 429
2830///
2831/// `Factor: StringLiteral;`
2832///
2833#[allow(dead_code)]
2834#[derive(Builder, Debug, Clone)]
2835#[builder(crate = "parol_runtime::derive_builder")]
2836pub struct FactorStringLiteral {
2837    pub string_literal: Box<StringLiteral>,
2838}
2839
2840///
2841/// Type derived for production 430
2842///
2843/// `Factor: FactorGroup;`
2844///
2845#[allow(dead_code)]
2846#[derive(Builder, Debug, Clone)]
2847#[builder(crate = "parol_runtime::derive_builder")]
2848pub struct FactorFactorGroup {
2849    pub factor_group: Box<FactorGroup>,
2850}
2851
2852///
2853/// Type derived for production 431
2854///
2855/// `FactorGroup: Msb;`
2856///
2857#[allow(dead_code)]
2858#[derive(Builder, Debug, Clone)]
2859#[builder(crate = "parol_runtime::derive_builder")]
2860pub struct FactorGroupMsb {
2861    pub msb: Box<Msb>,
2862}
2863
2864///
2865/// Type derived for production 432
2866///
2867/// `FactorGroup: Lsb;`
2868///
2869#[allow(dead_code)]
2870#[derive(Builder, Debug, Clone)]
2871#[builder(crate = "parol_runtime::derive_builder")]
2872pub struct FactorGroupLsb {
2873    pub lsb: Box<Lsb>,
2874}
2875
2876///
2877/// Type derived for production 433
2878///
2879/// `Factor: InsideExpression;`
2880///
2881#[allow(dead_code)]
2882#[derive(Builder, Debug, Clone)]
2883#[builder(crate = "parol_runtime::derive_builder")]
2884pub struct FactorInsideExpression {
2885    pub inside_expression: Box<InsideExpression>,
2886}
2887
2888///
2889/// Type derived for production 434
2890///
2891/// `Factor: OutsideExpression;`
2892///
2893#[allow(dead_code)]
2894#[derive(Builder, Debug, Clone)]
2895#[builder(crate = "parol_runtime::derive_builder")]
2896pub struct FactorOutsideExpression {
2897    pub outside_expression: Box<OutsideExpression>,
2898}
2899
2900///
2901/// Type derived for production 435
2902///
2903/// `Factor: TypeExpression;`
2904///
2905#[allow(dead_code)]
2906#[derive(Builder, Debug, Clone)]
2907#[builder(crate = "parol_runtime::derive_builder")]
2908pub struct FactorTypeExpression {
2909    pub type_expression: Box<TypeExpression>,
2910}
2911
2912///
2913/// Type derived for production 436
2914///
2915/// `Factor: FactorTypeFactor;`
2916///
2917#[allow(dead_code)]
2918#[derive(Builder, Debug, Clone)]
2919#[builder(crate = "parol_runtime::derive_builder")]
2920pub struct FactorFactorTypeFactor {
2921    pub factor_type_factor: Box<FactorTypeFactor>,
2922}
2923
2924///
2925/// Type derived for production 466
2926///
2927/// `ArrayLiteralItemGroup: Expression ArrayLiteralItemOpt /* Option */;`
2928///
2929#[allow(dead_code)]
2930#[derive(Builder, Debug, Clone)]
2931#[builder(crate = "parol_runtime::derive_builder")]
2932pub struct ArrayLiteralItemGroupExpressionArrayLiteralItemOpt {
2933    pub expression: Box<Expression>,
2934    pub array_literal_item_opt: Option<ArrayLiteralItemOpt>,
2935}
2936
2937///
2938/// Type derived for production 467
2939///
2940/// `ArrayLiteralItemGroup: Defaul Colon Expression;`
2941///
2942#[allow(dead_code)]
2943#[derive(Builder, Debug, Clone)]
2944#[builder(crate = "parol_runtime::derive_builder")]
2945pub struct ArrayLiteralItemGroupDefaulColonExpression {
2946    pub defaul: Box<Defaul>,
2947    pub colon: Box<Colon>,
2948    pub expression: Box<Expression>,
2949}
2950
2951///
2952/// Type derived for production 495
2953///
2954/// `SelectOperator: Colon;`
2955///
2956#[allow(dead_code)]
2957#[derive(Builder, Debug, Clone)]
2958#[builder(crate = "parol_runtime::derive_builder")]
2959pub struct SelectOperatorColon {
2960    pub colon: Box<Colon>,
2961}
2962
2963///
2964/// Type derived for production 496
2965///
2966/// `SelectOperator: PlusColon;`
2967///
2968#[allow(dead_code)]
2969#[derive(Builder, Debug, Clone)]
2970#[builder(crate = "parol_runtime::derive_builder")]
2971pub struct SelectOperatorPlusColon {
2972    pub plus_colon: Box<PlusColon>,
2973}
2974
2975///
2976/// Type derived for production 497
2977///
2978/// `SelectOperator: MinusColon;`
2979///
2980#[allow(dead_code)]
2981#[derive(Builder, Debug, Clone)]
2982#[builder(crate = "parol_runtime::derive_builder")]
2983pub struct SelectOperatorMinusColon {
2984    pub minus_colon: Box<MinusColon>,
2985}
2986
2987///
2988/// Type derived for production 498
2989///
2990/// `SelectOperator: Step;`
2991///
2992#[allow(dead_code)]
2993#[derive(Builder, Debug, Clone)]
2994#[builder(crate = "parol_runtime::derive_builder")]
2995pub struct SelectOperatorStep {
2996    pub step: Box<Step>,
2997}
2998
2999///
3000/// Type derived for production 508
3001///
3002/// `RangeOperator: DotDot;`
3003///
3004#[allow(dead_code)]
3005#[derive(Builder, Debug, Clone)]
3006#[builder(crate = "parol_runtime::derive_builder")]
3007pub struct RangeOperatorDotDot {
3008    pub dot_dot: Box<DotDot>,
3009}
3010
3011///
3012/// Type derived for production 509
3013///
3014/// `RangeOperator: DotDotEqu;`
3015///
3016#[allow(dead_code)]
3017#[derive(Builder, Debug, Clone)]
3018#[builder(crate = "parol_runtime::derive_builder")]
3019pub struct RangeOperatorDotDotEqu {
3020    pub dot_dot_equ: Box<DotDotEqu>,
3021}
3022
3023///
3024/// Type derived for production 510
3025///
3026/// `FixedType: U32;`
3027///
3028#[allow(dead_code)]
3029#[derive(Builder, Debug, Clone)]
3030#[builder(crate = "parol_runtime::derive_builder")]
3031pub struct FixedTypeU32 {
3032    pub u32: Box<U32>,
3033}
3034
3035///
3036/// Type derived for production 511
3037///
3038/// `FixedType: U64;`
3039///
3040#[allow(dead_code)]
3041#[derive(Builder, Debug, Clone)]
3042#[builder(crate = "parol_runtime::derive_builder")]
3043pub struct FixedTypeU64 {
3044    pub u64: Box<U64>,
3045}
3046
3047///
3048/// Type derived for production 512
3049///
3050/// `FixedType: I32;`
3051///
3052#[allow(dead_code)]
3053#[derive(Builder, Debug, Clone)]
3054#[builder(crate = "parol_runtime::derive_builder")]
3055pub struct FixedTypeI32 {
3056    pub i32: Box<I32>,
3057}
3058
3059///
3060/// Type derived for production 513
3061///
3062/// `FixedType: I64;`
3063///
3064#[allow(dead_code)]
3065#[derive(Builder, Debug, Clone)]
3066#[builder(crate = "parol_runtime::derive_builder")]
3067pub struct FixedTypeI64 {
3068    pub i64: Box<I64>,
3069}
3070
3071///
3072/// Type derived for production 514
3073///
3074/// `FixedType: F32;`
3075///
3076#[allow(dead_code)]
3077#[derive(Builder, Debug, Clone)]
3078#[builder(crate = "parol_runtime::derive_builder")]
3079pub struct FixedTypeF32 {
3080    pub f32: Box<F32>,
3081}
3082
3083///
3084/// Type derived for production 515
3085///
3086/// `FixedType: F64;`
3087///
3088#[allow(dead_code)]
3089#[derive(Builder, Debug, Clone)]
3090#[builder(crate = "parol_runtime::derive_builder")]
3091pub struct FixedTypeF64 {
3092    pub f64: Box<F64>,
3093}
3094
3095///
3096/// Type derived for production 516
3097///
3098/// `FixedType: Strin;`
3099///
3100#[allow(dead_code)]
3101#[derive(Builder, Debug, Clone)]
3102#[builder(crate = "parol_runtime::derive_builder")]
3103pub struct FixedTypeStrin {
3104    pub strin: Box<Strin>,
3105}
3106
3107///
3108/// Type derived for production 517
3109///
3110/// `VariableType: Clock;`
3111///
3112#[allow(dead_code)]
3113#[derive(Builder, Debug, Clone)]
3114#[builder(crate = "parol_runtime::derive_builder")]
3115pub struct VariableTypeClock {
3116    pub clock: Box<Clock>,
3117}
3118
3119///
3120/// Type derived for production 518
3121///
3122/// `VariableType: ClockPosedge;`
3123///
3124#[allow(dead_code)]
3125#[derive(Builder, Debug, Clone)]
3126#[builder(crate = "parol_runtime::derive_builder")]
3127pub struct VariableTypeClockPosedge {
3128    pub clock_posedge: Box<ClockPosedge>,
3129}
3130
3131///
3132/// Type derived for production 519
3133///
3134/// `VariableType: ClockNegedge;`
3135///
3136#[allow(dead_code)]
3137#[derive(Builder, Debug, Clone)]
3138#[builder(crate = "parol_runtime::derive_builder")]
3139pub struct VariableTypeClockNegedge {
3140    pub clock_negedge: Box<ClockNegedge>,
3141}
3142
3143///
3144/// Type derived for production 520
3145///
3146/// `VariableType: Reset;`
3147///
3148#[allow(dead_code)]
3149#[derive(Builder, Debug, Clone)]
3150#[builder(crate = "parol_runtime::derive_builder")]
3151pub struct VariableTypeReset {
3152    pub reset: Box<Reset>,
3153}
3154
3155///
3156/// Type derived for production 521
3157///
3158/// `VariableType: ResetAsyncHigh;`
3159///
3160#[allow(dead_code)]
3161#[derive(Builder, Debug, Clone)]
3162#[builder(crate = "parol_runtime::derive_builder")]
3163pub struct VariableTypeResetAsyncHigh {
3164    pub reset_async_high: Box<ResetAsyncHigh>,
3165}
3166
3167///
3168/// Type derived for production 522
3169///
3170/// `VariableType: ResetAsyncLow;`
3171///
3172#[allow(dead_code)]
3173#[derive(Builder, Debug, Clone)]
3174#[builder(crate = "parol_runtime::derive_builder")]
3175pub struct VariableTypeResetAsyncLow {
3176    pub reset_async_low: Box<ResetAsyncLow>,
3177}
3178
3179///
3180/// Type derived for production 523
3181///
3182/// `VariableType: ResetSyncHigh;`
3183///
3184#[allow(dead_code)]
3185#[derive(Builder, Debug, Clone)]
3186#[builder(crate = "parol_runtime::derive_builder")]
3187pub struct VariableTypeResetSyncHigh {
3188    pub reset_sync_high: Box<ResetSyncHigh>,
3189}
3190
3191///
3192/// Type derived for production 524
3193///
3194/// `VariableType: ResetSyncLow;`
3195///
3196#[allow(dead_code)]
3197#[derive(Builder, Debug, Clone)]
3198#[builder(crate = "parol_runtime::derive_builder")]
3199pub struct VariableTypeResetSyncLow {
3200    pub reset_sync_low: Box<ResetSyncLow>,
3201}
3202
3203///
3204/// Type derived for production 525
3205///
3206/// `VariableType: Logic;`
3207///
3208#[allow(dead_code)]
3209#[derive(Builder, Debug, Clone)]
3210#[builder(crate = "parol_runtime::derive_builder")]
3211pub struct VariableTypeLogic {
3212    pub logic: Box<Logic>,
3213}
3214
3215///
3216/// Type derived for production 526
3217///
3218/// `VariableType: Bit;`
3219///
3220#[allow(dead_code)]
3221#[derive(Builder, Debug, Clone)]
3222#[builder(crate = "parol_runtime::derive_builder")]
3223pub struct VariableTypeBit {
3224    pub bit: Box<Bit>,
3225}
3226
3227///
3228/// Type derived for production 528
3229///
3230/// `TypeModifier: Tri;`
3231///
3232#[allow(dead_code)]
3233#[derive(Builder, Debug, Clone)]
3234#[builder(crate = "parol_runtime::derive_builder")]
3235pub struct TypeModifierTri {
3236    pub tri: Box<Tri>,
3237}
3238
3239///
3240/// Type derived for production 529
3241///
3242/// `TypeModifier: Signed;`
3243///
3244#[allow(dead_code)]
3245#[derive(Builder, Debug, Clone)]
3246#[builder(crate = "parol_runtime::derive_builder")]
3247pub struct TypeModifierSigned {
3248    pub signed: Box<Signed>,
3249}
3250
3251///
3252/// Type derived for production 531
3253///
3254/// `FactorTypeGroup: VariableType FactorTypeOpt /* Option */;`
3255///
3256#[allow(dead_code)]
3257#[derive(Builder, Debug, Clone)]
3258#[builder(crate = "parol_runtime::derive_builder")]
3259pub struct FactorTypeGroupVariableTypeFactorTypeOpt {
3260    pub variable_type: Box<VariableType>,
3261    pub factor_type_opt: Option<FactorTypeOpt>,
3262}
3263
3264///
3265/// Type derived for production 532
3266///
3267/// `FactorTypeGroup: FixedType;`
3268///
3269#[allow(dead_code)]
3270#[derive(Builder, Debug, Clone)]
3271#[builder(crate = "parol_runtime::derive_builder")]
3272pub struct FactorTypeGroupFixedType {
3273    pub fixed_type: Box<FixedType>,
3274}
3275
3276///
3277/// Type derived for production 536
3278///
3279/// `ScalarTypeGroup: UserDefinedType ScalarTypeOpt /* Option */;`
3280///
3281#[allow(dead_code)]
3282#[derive(Builder, Debug, Clone)]
3283#[builder(crate = "parol_runtime::derive_builder")]
3284pub struct ScalarTypeGroupUserDefinedTypeScalarTypeOpt {
3285    pub user_defined_type: Box<UserDefinedType>,
3286    pub scalar_type_opt: Option<ScalarTypeOpt>,
3287}
3288
3289///
3290/// Type derived for production 537
3291///
3292/// `ScalarTypeGroup: FactorType;`
3293///
3294#[allow(dead_code)]
3295#[derive(Builder, Debug, Clone)]
3296#[builder(crate = "parol_runtime::derive_builder")]
3297pub struct ScalarTypeGroupFactorType {
3298    pub factor_type: Box<FactorType>,
3299}
3300
3301///
3302/// Type derived for production 545
3303///
3304/// `CastingType: U32;`
3305///
3306#[allow(dead_code)]
3307#[derive(Builder, Debug, Clone)]
3308#[builder(crate = "parol_runtime::derive_builder")]
3309pub struct CastingTypeU32 {
3310    pub u32: Box<U32>,
3311}
3312
3313///
3314/// Type derived for production 546
3315///
3316/// `CastingType: U64;`
3317///
3318#[allow(dead_code)]
3319#[derive(Builder, Debug, Clone)]
3320#[builder(crate = "parol_runtime::derive_builder")]
3321pub struct CastingTypeU64 {
3322    pub u64: Box<U64>,
3323}
3324
3325///
3326/// Type derived for production 547
3327///
3328/// `CastingType: I32;`
3329///
3330#[allow(dead_code)]
3331#[derive(Builder, Debug, Clone)]
3332#[builder(crate = "parol_runtime::derive_builder")]
3333pub struct CastingTypeI32 {
3334    pub i32: Box<I32>,
3335}
3336
3337///
3338/// Type derived for production 548
3339///
3340/// `CastingType: I64;`
3341///
3342#[allow(dead_code)]
3343#[derive(Builder, Debug, Clone)]
3344#[builder(crate = "parol_runtime::derive_builder")]
3345pub struct CastingTypeI64 {
3346    pub i64: Box<I64>,
3347}
3348
3349///
3350/// Type derived for production 549
3351///
3352/// `CastingType: F32;`
3353///
3354#[allow(dead_code)]
3355#[derive(Builder, Debug, Clone)]
3356#[builder(crate = "parol_runtime::derive_builder")]
3357pub struct CastingTypeF32 {
3358    pub f32: Box<F32>,
3359}
3360
3361///
3362/// Type derived for production 550
3363///
3364/// `CastingType: F64;`
3365///
3366#[allow(dead_code)]
3367#[derive(Builder, Debug, Clone)]
3368#[builder(crate = "parol_runtime::derive_builder")]
3369pub struct CastingTypeF64 {
3370    pub f64: Box<F64>,
3371}
3372
3373///
3374/// Type derived for production 551
3375///
3376/// `CastingType: Clock;`
3377///
3378#[allow(dead_code)]
3379#[derive(Builder, Debug, Clone)]
3380#[builder(crate = "parol_runtime::derive_builder")]
3381pub struct CastingTypeClock {
3382    pub clock: Box<Clock>,
3383}
3384
3385///
3386/// Type derived for production 552
3387///
3388/// `CastingType: ClockPosedge;`
3389///
3390#[allow(dead_code)]
3391#[derive(Builder, Debug, Clone)]
3392#[builder(crate = "parol_runtime::derive_builder")]
3393pub struct CastingTypeClockPosedge {
3394    pub clock_posedge: Box<ClockPosedge>,
3395}
3396
3397///
3398/// Type derived for production 553
3399///
3400/// `CastingType: ClockNegedge;`
3401///
3402#[allow(dead_code)]
3403#[derive(Builder, Debug, Clone)]
3404#[builder(crate = "parol_runtime::derive_builder")]
3405pub struct CastingTypeClockNegedge {
3406    pub clock_negedge: Box<ClockNegedge>,
3407}
3408
3409///
3410/// Type derived for production 554
3411///
3412/// `CastingType: Reset;`
3413///
3414#[allow(dead_code)]
3415#[derive(Builder, Debug, Clone)]
3416#[builder(crate = "parol_runtime::derive_builder")]
3417pub struct CastingTypeReset {
3418    pub reset: Box<Reset>,
3419}
3420
3421///
3422/// Type derived for production 555
3423///
3424/// `CastingType: ResetAsyncHigh;`
3425///
3426#[allow(dead_code)]
3427#[derive(Builder, Debug, Clone)]
3428#[builder(crate = "parol_runtime::derive_builder")]
3429pub struct CastingTypeResetAsyncHigh {
3430    pub reset_async_high: Box<ResetAsyncHigh>,
3431}
3432
3433///
3434/// Type derived for production 556
3435///
3436/// `CastingType: ResetAsyncLow;`
3437///
3438#[allow(dead_code)]
3439#[derive(Builder, Debug, Clone)]
3440#[builder(crate = "parol_runtime::derive_builder")]
3441pub struct CastingTypeResetAsyncLow {
3442    pub reset_async_low: Box<ResetAsyncLow>,
3443}
3444
3445///
3446/// Type derived for production 557
3447///
3448/// `CastingType: ResetSyncHigh;`
3449///
3450#[allow(dead_code)]
3451#[derive(Builder, Debug, Clone)]
3452#[builder(crate = "parol_runtime::derive_builder")]
3453pub struct CastingTypeResetSyncHigh {
3454    pub reset_sync_high: Box<ResetSyncHigh>,
3455}
3456
3457///
3458/// Type derived for production 558
3459///
3460/// `CastingType: ResetSyncLow;`
3461///
3462#[allow(dead_code)]
3463#[derive(Builder, Debug, Clone)]
3464#[builder(crate = "parol_runtime::derive_builder")]
3465pub struct CastingTypeResetSyncLow {
3466    pub reset_sync_low: Box<ResetSyncLow>,
3467}
3468
3469///
3470/// Type derived for production 559
3471///
3472/// `CastingType: UserDefinedType;`
3473///
3474#[allow(dead_code)]
3475#[derive(Builder, Debug, Clone)]
3476#[builder(crate = "parol_runtime::derive_builder")]
3477pub struct CastingTypeUserDefinedType {
3478    pub user_defined_type: Box<UserDefinedType>,
3479}
3480
3481///
3482/// Type derived for production 560
3483///
3484/// `CastingType: Based;`
3485///
3486#[allow(dead_code)]
3487#[derive(Builder, Debug, Clone)]
3488#[builder(crate = "parol_runtime::derive_builder")]
3489pub struct CastingTypeBased {
3490    pub based: Box<Based>,
3491}
3492
3493///
3494/// Type derived for production 561
3495///
3496/// `CastingType: BaseLess;`
3497///
3498#[allow(dead_code)]
3499#[derive(Builder, Debug, Clone)]
3500#[builder(crate = "parol_runtime::derive_builder")]
3501pub struct CastingTypeBaseLess {
3502    pub base_less: Box<BaseLess>,
3503}
3504
3505///
3506/// Type derived for production 567
3507///
3508/// `StatementBlockGroupGroup: LBrace StatementBlockGroupGroupList /* Vec */ RBrace;`
3509///
3510#[allow(dead_code)]
3511#[derive(Builder, Debug, Clone)]
3512#[builder(crate = "parol_runtime::derive_builder")]
3513pub struct StatementBlockGroupGroupLBraceStatementBlockGroupGroupListRBrace {
3514    pub l_brace: Box<LBrace>,
3515    pub statement_block_group_group_list: Vec<StatementBlockGroupGroupList>,
3516    pub r_brace: Box<RBrace>,
3517}
3518
3519///
3520/// Type derived for production 570
3521///
3522/// `StatementBlockGroupGroup: StatementBlockItem;`
3523///
3524#[allow(dead_code)]
3525#[derive(Builder, Debug, Clone)]
3526#[builder(crate = "parol_runtime::derive_builder")]
3527pub struct StatementBlockGroupGroupStatementBlockItem {
3528    pub statement_block_item: Box<StatementBlockItem>,
3529}
3530
3531///
3532/// Type derived for production 573
3533///
3534/// `StatementBlockItem: VarDeclaration;`
3535///
3536#[allow(dead_code)]
3537#[derive(Builder, Debug, Clone)]
3538#[builder(crate = "parol_runtime::derive_builder")]
3539pub struct StatementBlockItemVarDeclaration {
3540    pub var_declaration: Box<VarDeclaration>,
3541}
3542
3543///
3544/// Type derived for production 574
3545///
3546/// `StatementBlockItem: LetStatement;`
3547///
3548#[allow(dead_code)]
3549#[derive(Builder, Debug, Clone)]
3550#[builder(crate = "parol_runtime::derive_builder")]
3551pub struct StatementBlockItemLetStatement {
3552    pub let_statement: Box<LetStatement>,
3553}
3554
3555///
3556/// Type derived for production 575
3557///
3558/// `StatementBlockItem: Statement;`
3559///
3560#[allow(dead_code)]
3561#[derive(Builder, Debug, Clone)]
3562#[builder(crate = "parol_runtime::derive_builder")]
3563pub struct StatementBlockItemStatement {
3564    pub statement: Box<Statement>,
3565}
3566
3567///
3568/// Type derived for production 576
3569///
3570/// `Statement: IdentifierStatement;`
3571///
3572#[allow(dead_code)]
3573#[derive(Builder, Debug, Clone)]
3574#[builder(crate = "parol_runtime::derive_builder")]
3575pub struct StatementIdentifierStatement {
3576    pub identifier_statement: Box<IdentifierStatement>,
3577}
3578
3579///
3580/// Type derived for production 577
3581///
3582/// `Statement: IfStatement;`
3583///
3584#[allow(dead_code)]
3585#[derive(Builder, Debug, Clone)]
3586#[builder(crate = "parol_runtime::derive_builder")]
3587pub struct StatementIfStatement {
3588    pub if_statement: Box<IfStatement>,
3589}
3590
3591///
3592/// Type derived for production 578
3593///
3594/// `Statement: IfResetStatement;`
3595///
3596#[allow(dead_code)]
3597#[derive(Builder, Debug, Clone)]
3598#[builder(crate = "parol_runtime::derive_builder")]
3599pub struct StatementIfResetStatement {
3600    pub if_reset_statement: Box<IfResetStatement>,
3601}
3602
3603///
3604/// Type derived for production 579
3605///
3606/// `Statement: ReturnStatement;`
3607///
3608#[allow(dead_code)]
3609#[derive(Builder, Debug, Clone)]
3610#[builder(crate = "parol_runtime::derive_builder")]
3611pub struct StatementReturnStatement {
3612    pub return_statement: Box<ReturnStatement>,
3613}
3614
3615///
3616/// Type derived for production 580
3617///
3618/// `Statement: BreakStatement;`
3619///
3620#[allow(dead_code)]
3621#[derive(Builder, Debug, Clone)]
3622#[builder(crate = "parol_runtime::derive_builder")]
3623pub struct StatementBreakStatement {
3624    pub break_statement: Box<BreakStatement>,
3625}
3626
3627///
3628/// Type derived for production 581
3629///
3630/// `Statement: ForStatement;`
3631///
3632#[allow(dead_code)]
3633#[derive(Builder, Debug, Clone)]
3634#[builder(crate = "parol_runtime::derive_builder")]
3635pub struct StatementForStatement {
3636    pub for_statement: Box<ForStatement>,
3637}
3638
3639///
3640/// Type derived for production 582
3641///
3642/// `Statement: CaseStatement;`
3643///
3644#[allow(dead_code)]
3645#[derive(Builder, Debug, Clone)]
3646#[builder(crate = "parol_runtime::derive_builder")]
3647pub struct StatementCaseStatement {
3648    pub case_statement: Box<CaseStatement>,
3649}
3650
3651///
3652/// Type derived for production 583
3653///
3654/// `Statement: SwitchStatement;`
3655///
3656#[allow(dead_code)]
3657#[derive(Builder, Debug, Clone)]
3658#[builder(crate = "parol_runtime::derive_builder")]
3659pub struct StatementSwitchStatement {
3660    pub switch_statement: Box<SwitchStatement>,
3661}
3662
3663///
3664/// Type derived for production 588
3665///
3666/// `IdentifierStatementGroup: FunctionCall;`
3667///
3668#[allow(dead_code)]
3669#[derive(Builder, Debug, Clone)]
3670#[builder(crate = "parol_runtime::derive_builder")]
3671pub struct IdentifierStatementGroupFunctionCall {
3672    pub function_call: Box<FunctionCall>,
3673}
3674
3675///
3676/// Type derived for production 589
3677///
3678/// `IdentifierStatementGroup: Assignment;`
3679///
3680#[allow(dead_code)]
3681#[derive(Builder, Debug, Clone)]
3682#[builder(crate = "parol_runtime::derive_builder")]
3683pub struct IdentifierStatementGroupAssignment {
3684    pub assignment: Box<Assignment>,
3685}
3686
3687///
3688/// Type derived for production 591
3689///
3690/// `AssignmentGroup: Equ;`
3691///
3692#[allow(dead_code)]
3693#[derive(Builder, Debug, Clone)]
3694#[builder(crate = "parol_runtime::derive_builder")]
3695pub struct AssignmentGroupEqu {
3696    pub equ: Box<Equ>,
3697}
3698
3699///
3700/// Type derived for production 592
3701///
3702/// `AssignmentGroup: AssignmentOperator;`
3703///
3704#[allow(dead_code)]
3705#[derive(Builder, Debug, Clone)]
3706#[builder(crate = "parol_runtime::derive_builder")]
3707pub struct AssignmentGroupAssignmentOperator {
3708    pub assignment_operator: Box<AssignmentOperator>,
3709}
3710
3711///
3712/// Type derived for production 612
3713///
3714/// `CaseItemGroup0: Statement;`
3715///
3716#[allow(dead_code)]
3717#[derive(Builder, Debug, Clone)]
3718#[builder(crate = "parol_runtime::derive_builder")]
3719pub struct CaseItemGroup0Statement {
3720    pub statement: Box<Statement>,
3721}
3722
3723///
3724/// Type derived for production 613
3725///
3726/// `CaseItemGroup0: StatementBlock;`
3727///
3728#[allow(dead_code)]
3729#[derive(Builder, Debug, Clone)]
3730#[builder(crate = "parol_runtime::derive_builder")]
3731pub struct CaseItemGroup0StatementBlock {
3732    pub statement_block: Box<StatementBlock>,
3733}
3734
3735///
3736/// Type derived for production 614
3737///
3738/// `CaseItemGroup: CaseCondition;`
3739///
3740#[allow(dead_code)]
3741#[derive(Builder, Debug, Clone)]
3742#[builder(crate = "parol_runtime::derive_builder")]
3743pub struct CaseItemGroupCaseCondition {
3744    pub case_condition: Box<CaseCondition>,
3745}
3746
3747///
3748/// Type derived for production 615
3749///
3750/// `CaseItemGroup: Defaul;`
3751///
3752#[allow(dead_code)]
3753#[derive(Builder, Debug, Clone)]
3754#[builder(crate = "parol_runtime::derive_builder")]
3755pub struct CaseItemGroupDefaul {
3756    pub defaul: Box<Defaul>,
3757}
3758
3759///
3760/// Type derived for production 623
3761///
3762/// `SwitchItemGroup0: Statement;`
3763///
3764#[allow(dead_code)]
3765#[derive(Builder, Debug, Clone)]
3766#[builder(crate = "parol_runtime::derive_builder")]
3767pub struct SwitchItemGroup0Statement {
3768    pub statement: Box<Statement>,
3769}
3770
3771///
3772/// Type derived for production 624
3773///
3774/// `SwitchItemGroup0: StatementBlock;`
3775///
3776#[allow(dead_code)]
3777#[derive(Builder, Debug, Clone)]
3778#[builder(crate = "parol_runtime::derive_builder")]
3779pub struct SwitchItemGroup0StatementBlock {
3780    pub statement_block: Box<StatementBlock>,
3781}
3782
3783///
3784/// Type derived for production 625
3785///
3786/// `SwitchItemGroup: SwitchCondition;`
3787///
3788#[allow(dead_code)]
3789#[derive(Builder, Debug, Clone)]
3790#[builder(crate = "parol_runtime::derive_builder")]
3791pub struct SwitchItemGroupSwitchCondition {
3792    pub switch_condition: Box<SwitchCondition>,
3793}
3794
3795///
3796/// Type derived for production 626
3797///
3798/// `SwitchItemGroup: Defaul;`
3799///
3800#[allow(dead_code)]
3801#[derive(Builder, Debug, Clone)]
3802#[builder(crate = "parol_runtime::derive_builder")]
3803pub struct SwitchItemGroupDefaul {
3804    pub defaul: Box<Defaul>,
3805}
3806
3807///
3808/// Type derived for production 638
3809///
3810/// `AttributeItem: Identifier;`
3811///
3812#[allow(dead_code)]
3813#[derive(Builder, Debug, Clone)]
3814#[builder(crate = "parol_runtime::derive_builder")]
3815pub struct AttributeItemIdentifier {
3816    pub identifier: Box<Identifier>,
3817}
3818
3819///
3820/// Type derived for production 639
3821///
3822/// `AttributeItem: StringLiteral;`
3823///
3824#[allow(dead_code)]
3825#[derive(Builder, Debug, Clone)]
3826#[builder(crate = "parol_runtime::derive_builder")]
3827pub struct AttributeItemStringLiteral {
3828    pub string_literal: Box<StringLiteral>,
3829}
3830
3831///
3832/// Type derived for production 647
3833///
3834/// `ConstDeclarationGroup: ArrayType;`
3835///
3836#[allow(dead_code)]
3837#[derive(Builder, Debug, Clone)]
3838#[builder(crate = "parol_runtime::derive_builder")]
3839pub struct ConstDeclarationGroupArrayType {
3840    pub array_type: Box<ArrayType>,
3841}
3842
3843///
3844/// Type derived for production 648
3845///
3846/// `ConstDeclarationGroup: Type;`
3847///
3848#[allow(dead_code)]
3849#[derive(Builder, Debug, Clone)]
3850#[builder(crate = "parol_runtime::derive_builder")]
3851pub struct ConstDeclarationGroupType {
3852    pub r#type: Box<Type>,
3853}
3854
3855///
3856/// Type derived for production 660
3857///
3858/// `AssignDestination: HierarchicalIdentifier;`
3859///
3860#[allow(dead_code)]
3861#[derive(Builder, Debug, Clone)]
3862#[builder(crate = "parol_runtime::derive_builder")]
3863pub struct AssignDestinationHierarchicalIdentifier {
3864    pub hierarchical_identifier: Box<HierarchicalIdentifier>,
3865}
3866
3867///
3868/// Type derived for production 661
3869///
3870/// `AssignDestination: LBrace AssignConcatenationList RBrace;`
3871///
3872#[allow(dead_code)]
3873#[derive(Builder, Debug, Clone)]
3874#[builder(crate = "parol_runtime::derive_builder")]
3875pub struct AssignDestinationLBraceAssignConcatenationListRBrace {
3876    pub l_brace: Box<LBrace>,
3877    pub assign_concatenation_list: Box<AssignConcatenationList>,
3878    pub r_brace: Box<RBrace>,
3879}
3880
3881///
3882/// Type derived for production 679
3883///
3884/// `ModportGroupGroup: LBrace ModportList RBrace;`
3885///
3886#[allow(dead_code)]
3887#[derive(Builder, Debug, Clone)]
3888#[builder(crate = "parol_runtime::derive_builder")]
3889pub struct ModportGroupGroupLBraceModportListRBrace {
3890    pub l_brace: Box<LBrace>,
3891    pub modport_list: Box<ModportList>,
3892    pub r_brace: Box<RBrace>,
3893}
3894
3895///
3896/// Type derived for production 680
3897///
3898/// `ModportGroupGroup: ModportItem;`
3899///
3900#[allow(dead_code)]
3901#[derive(Builder, Debug, Clone)]
3902#[builder(crate = "parol_runtime::derive_builder")]
3903pub struct ModportGroupGroupModportItem {
3904    pub modport_item: Box<ModportItem>,
3905}
3906
3907///
3908/// Type derived for production 684
3909///
3910/// `ModportDefault: Input;`
3911///
3912#[allow(dead_code)]
3913#[derive(Builder, Debug, Clone)]
3914#[builder(crate = "parol_runtime::derive_builder")]
3915pub struct ModportDefaultInput {
3916    pub input: Box<Input>,
3917}
3918
3919///
3920/// Type derived for production 685
3921///
3922/// `ModportDefault: Output;`
3923///
3924#[allow(dead_code)]
3925#[derive(Builder, Debug, Clone)]
3926#[builder(crate = "parol_runtime::derive_builder")]
3927pub struct ModportDefaultOutput {
3928    pub output: Box<Output>,
3929}
3930
3931///
3932/// Type derived for production 686
3933///
3934/// `ModportDefault: Converse LParen Identifier RParen;`
3935///
3936#[allow(dead_code)]
3937#[derive(Builder, Debug, Clone)]
3938#[builder(crate = "parol_runtime::derive_builder")]
3939pub struct ModportDefaultConverseLParenIdentifierRParen {
3940    pub converse: Box<Converse>,
3941    pub l_paren: Box<LParen>,
3942    pub identifier: Box<Identifier>,
3943    pub r_paren: Box<RParen>,
3944}
3945
3946///
3947/// Type derived for production 696
3948///
3949/// `EnumGroupGroup: LBrace EnumList RBrace;`
3950///
3951#[allow(dead_code)]
3952#[derive(Builder, Debug, Clone)]
3953#[builder(crate = "parol_runtime::derive_builder")]
3954pub struct EnumGroupGroupLBraceEnumListRBrace {
3955    pub l_brace: Box<LBrace>,
3956    pub enum_list: Box<EnumList>,
3957    pub r_brace: Box<RBrace>,
3958}
3959
3960///
3961/// Type derived for production 697
3962///
3963/// `EnumGroupGroup: EnumItem;`
3964///
3965#[allow(dead_code)]
3966#[derive(Builder, Debug, Clone)]
3967#[builder(crate = "parol_runtime::derive_builder")]
3968pub struct EnumGroupGroupEnumItem {
3969    pub enum_item: Box<EnumItem>,
3970}
3971
3972///
3973/// Type derived for production 703
3974///
3975/// `StructUnion: Struct;`
3976///
3977#[allow(dead_code)]
3978#[derive(Builder, Debug, Clone)]
3979#[builder(crate = "parol_runtime::derive_builder")]
3980pub struct StructUnionStruct {
3981    pub r#struct: Box<Struct>,
3982}
3983
3984///
3985/// Type derived for production 704
3986///
3987/// `StructUnion: Union;`
3988///
3989#[allow(dead_code)]
3990#[derive(Builder, Debug, Clone)]
3991#[builder(crate = "parol_runtime::derive_builder")]
3992pub struct StructUnionUnion {
3993    pub r#union: Box<Union>,
3994}
3995
3996///
3997/// Type derived for production 714
3998///
3999/// `StructUnionGroupGroup: LBrace StructUnionList RBrace;`
4000///
4001#[allow(dead_code)]
4002#[derive(Builder, Debug, Clone)]
4003#[builder(crate = "parol_runtime::derive_builder")]
4004pub struct StructUnionGroupGroupLBraceStructUnionListRBrace {
4005    pub l_brace: Box<LBrace>,
4006    pub struct_union_list: Box<StructUnionList>,
4007    pub r_brace: Box<RBrace>,
4008}
4009
4010///
4011/// Type derived for production 715
4012///
4013/// `StructUnionGroupGroup: StructUnionItem;`
4014///
4015#[allow(dead_code)]
4016#[derive(Builder, Debug, Clone)]
4017#[builder(crate = "parol_runtime::derive_builder")]
4018pub struct StructUnionGroupGroupStructUnionItem {
4019    pub struct_union_item: Box<StructUnionItem>,
4020}
4021
4022///
4023/// Type derived for production 741
4024///
4025/// `InstParameterGroupGroup: LBrace InstParameterList RBrace;`
4026///
4027#[allow(dead_code)]
4028#[derive(Builder, Debug, Clone)]
4029#[builder(crate = "parol_runtime::derive_builder")]
4030pub struct InstParameterGroupGroupLBraceInstParameterListRBrace {
4031    pub l_brace: Box<LBrace>,
4032    pub inst_parameter_list: Box<InstParameterList>,
4033    pub r_brace: Box<RBrace>,
4034}
4035
4036///
4037/// Type derived for production 742
4038///
4039/// `InstParameterGroupGroup: InstParameterItem;`
4040///
4041#[allow(dead_code)]
4042#[derive(Builder, Debug, Clone)]
4043#[builder(crate = "parol_runtime::derive_builder")]
4044pub struct InstParameterGroupGroupInstParameterItem {
4045    pub inst_parameter_item: Box<InstParameterItem>,
4046}
4047
4048///
4049/// Type derived for production 754
4050///
4051/// `InstPortGroupGroup: LBrace InstPortList RBrace;`
4052///
4053#[allow(dead_code)]
4054#[derive(Builder, Debug, Clone)]
4055#[builder(crate = "parol_runtime::derive_builder")]
4056pub struct InstPortGroupGroupLBraceInstPortListRBrace {
4057    pub l_brace: Box<LBrace>,
4058    pub inst_port_list: Box<InstPortList>,
4059    pub r_brace: Box<RBrace>,
4060}
4061
4062///
4063/// Type derived for production 755
4064///
4065/// `InstPortGroupGroup: InstPortItem;`
4066///
4067#[allow(dead_code)]
4068#[derive(Builder, Debug, Clone)]
4069#[builder(crate = "parol_runtime::derive_builder")]
4070pub struct InstPortGroupGroupInstPortItem {
4071    pub inst_port_item: Box<InstPortItem>,
4072}
4073
4074///
4075/// Type derived for production 770
4076///
4077/// `WithParameterGroupGroup: LBrace WithParameterList RBrace;`
4078///
4079#[allow(dead_code)]
4080#[derive(Builder, Debug, Clone)]
4081#[builder(crate = "parol_runtime::derive_builder")]
4082pub struct WithParameterGroupGroupLBraceWithParameterListRBrace {
4083    pub l_brace: Box<LBrace>,
4084    pub with_parameter_list: Box<WithParameterList>,
4085    pub r_brace: Box<RBrace>,
4086}
4087
4088///
4089/// Type derived for production 771
4090///
4091/// `WithParameterGroupGroup: WithParameterItem;`
4092///
4093#[allow(dead_code)]
4094#[derive(Builder, Debug, Clone)]
4095#[builder(crate = "parol_runtime::derive_builder")]
4096pub struct WithParameterGroupGroupWithParameterItem {
4097    pub with_parameter_item: Box<WithParameterItem>,
4098}
4099
4100///
4101/// Type derived for production 775
4102///
4103/// `WithParameterItemGroup0: ArrayType;`
4104///
4105#[allow(dead_code)]
4106#[derive(Builder, Debug, Clone)]
4107#[builder(crate = "parol_runtime::derive_builder")]
4108pub struct WithParameterItemGroup0ArrayType {
4109    pub array_type: Box<ArrayType>,
4110}
4111
4112///
4113/// Type derived for production 776
4114///
4115/// `WithParameterItemGroup0: Type;`
4116///
4117#[allow(dead_code)]
4118#[derive(Builder, Debug, Clone)]
4119#[builder(crate = "parol_runtime::derive_builder")]
4120pub struct WithParameterItemGroup0Type {
4121    pub r#type: Box<Type>,
4122}
4123
4124///
4125/// Type derived for production 777
4126///
4127/// `WithParameterItemGroup: Param;`
4128///
4129#[allow(dead_code)]
4130#[derive(Builder, Debug, Clone)]
4131#[builder(crate = "parol_runtime::derive_builder")]
4132pub struct WithParameterItemGroupParam {
4133    pub param: Box<Param>,
4134}
4135
4136///
4137/// Type derived for production 778
4138///
4139/// `WithParameterItemGroup: Const;`
4140///
4141#[allow(dead_code)]
4142#[derive(Builder, Debug, Clone)]
4143#[builder(crate = "parol_runtime::derive_builder")]
4144pub struct WithParameterItemGroupConst {
4145    pub r#const: Box<Const>,
4146}
4147
4148///
4149/// Type derived for production 779
4150///
4151/// `GenericBound: Const;`
4152///
4153#[allow(dead_code)]
4154#[derive(Builder, Debug, Clone)]
4155#[builder(crate = "parol_runtime::derive_builder")]
4156pub struct GenericBoundConst {
4157    pub r#const: Box<Const>,
4158}
4159
4160///
4161/// Type derived for production 780
4162///
4163/// `GenericBound: Type;`
4164///
4165#[allow(dead_code)]
4166#[derive(Builder, Debug, Clone)]
4167#[builder(crate = "parol_runtime::derive_builder")]
4168pub struct GenericBoundType {
4169    pub r#type: Box<Type>,
4170}
4171
4172///
4173/// Type derived for production 781
4174///
4175/// `GenericBound: Inst ScopedIdentifier;`
4176///
4177#[allow(dead_code)]
4178#[derive(Builder, Debug, Clone)]
4179#[builder(crate = "parol_runtime::derive_builder")]
4180pub struct GenericBoundInstScopedIdentifier {
4181    pub inst: Box<Inst>,
4182    pub scoped_identifier: Box<ScopedIdentifier>,
4183}
4184
4185///
4186/// Type derived for production 782
4187///
4188/// `GenericBound: ScopedIdentifier;`
4189///
4190#[allow(dead_code)]
4191#[derive(Builder, Debug, Clone)]
4192#[builder(crate = "parol_runtime::derive_builder")]
4193pub struct GenericBoundScopedIdentifier {
4194    pub scoped_identifier: Box<ScopedIdentifier>,
4195}
4196
4197///
4198/// Type derived for production 800
4199///
4200/// `WithGenericArgumentItem: ScopedIdentifier;`
4201///
4202#[allow(dead_code)]
4203#[derive(Builder, Debug, Clone)]
4204#[builder(crate = "parol_runtime::derive_builder")]
4205pub struct WithGenericArgumentItemScopedIdentifier {
4206    pub scoped_identifier: Box<ScopedIdentifier>,
4207}
4208
4209///
4210/// Type derived for production 801
4211///
4212/// `WithGenericArgumentItem: Number;`
4213///
4214#[allow(dead_code)]
4215#[derive(Builder, Debug, Clone)]
4216#[builder(crate = "parol_runtime::derive_builder")]
4217pub struct WithGenericArgumentItemNumber {
4218    pub number: Box<Number>,
4219}
4220
4221///
4222/// Type derived for production 811
4223///
4224/// `PortDeclarationGroupGroup: LBrace PortDeclarationList RBrace;`
4225///
4226#[allow(dead_code)]
4227#[derive(Builder, Debug, Clone)]
4228#[builder(crate = "parol_runtime::derive_builder")]
4229pub struct PortDeclarationGroupGroupLBracePortDeclarationListRBrace {
4230    pub l_brace: Box<LBrace>,
4231    pub port_declaration_list: Box<PortDeclarationList>,
4232    pub r_brace: Box<RBrace>,
4233}
4234
4235///
4236/// Type derived for production 812
4237///
4238/// `PortDeclarationGroupGroup: PortDeclarationItem;`
4239///
4240#[allow(dead_code)]
4241#[derive(Builder, Debug, Clone)]
4242#[builder(crate = "parol_runtime::derive_builder")]
4243pub struct PortDeclarationGroupGroupPortDeclarationItem {
4244    pub port_declaration_item: Box<PortDeclarationItem>,
4245}
4246
4247///
4248/// Type derived for production 816
4249///
4250/// `PortDeclarationItemGroup: PortTypeConcrete;`
4251///
4252#[allow(dead_code)]
4253#[derive(Builder, Debug, Clone)]
4254#[builder(crate = "parol_runtime::derive_builder")]
4255pub struct PortDeclarationItemGroupPortTypeConcrete {
4256    pub port_type_concrete: Box<PortTypeConcrete>,
4257}
4258
4259///
4260/// Type derived for production 817
4261///
4262/// `PortDeclarationItemGroup: PortTypeAbstract;`
4263///
4264#[allow(dead_code)]
4265#[derive(Builder, Debug, Clone)]
4266#[builder(crate = "parol_runtime::derive_builder")]
4267pub struct PortDeclarationItemGroupPortTypeAbstract {
4268    pub port_type_abstract: Box<PortTypeAbstract>,
4269}
4270
4271///
4272/// Type derived for production 831
4273///
4274/// `Direction: Input;`
4275///
4276#[allow(dead_code)]
4277#[derive(Builder, Debug, Clone)]
4278#[builder(crate = "parol_runtime::derive_builder")]
4279pub struct DirectionInput {
4280    pub input: Box<Input>,
4281}
4282
4283///
4284/// Type derived for production 832
4285///
4286/// `Direction: Output;`
4287///
4288#[allow(dead_code)]
4289#[derive(Builder, Debug, Clone)]
4290#[builder(crate = "parol_runtime::derive_builder")]
4291pub struct DirectionOutput {
4292    pub output: Box<Output>,
4293}
4294
4295///
4296/// Type derived for production 833
4297///
4298/// `Direction: Inout;`
4299///
4300#[allow(dead_code)]
4301#[derive(Builder, Debug, Clone)]
4302#[builder(crate = "parol_runtime::derive_builder")]
4303pub struct DirectionInout {
4304    pub inout: Box<Inout>,
4305}
4306
4307///
4308/// Type derived for production 834
4309///
4310/// `Direction: Ref;`
4311///
4312#[allow(dead_code)]
4313#[derive(Builder, Debug, Clone)]
4314#[builder(crate = "parol_runtime::derive_builder")]
4315pub struct DirectionRef {
4316    pub r#ref: Box<Ref>,
4317}
4318
4319///
4320/// Type derived for production 835
4321///
4322/// `Direction: Modport;`
4323///
4324#[allow(dead_code)]
4325#[derive(Builder, Debug, Clone)]
4326#[builder(crate = "parol_runtime::derive_builder")]
4327pub struct DirectionModport {
4328    pub modport: Box<Modport>,
4329}
4330
4331///
4332/// Type derived for production 836
4333///
4334/// `Direction: Import;`
4335///
4336#[allow(dead_code)]
4337#[derive(Builder, Debug, Clone)]
4338#[builder(crate = "parol_runtime::derive_builder")]
4339pub struct DirectionImport {
4340    pub import: Box<Import>,
4341}
4342
4343///
4344/// Type derived for production 848
4345///
4346/// `ExportDeclarationGroup: Star;`
4347///
4348#[allow(dead_code)]
4349#[derive(Builder, Debug, Clone)]
4350#[builder(crate = "parol_runtime::derive_builder")]
4351pub struct ExportDeclarationGroupStar {
4352    pub star: Box<Star>,
4353}
4354
4355///
4356/// Type derived for production 849
4357///
4358/// `ExportDeclarationGroup: ScopedIdentifier ExportDeclarationOpt /* Option */;`
4359///
4360#[allow(dead_code)]
4361#[derive(Builder, Debug, Clone)]
4362#[builder(crate = "parol_runtime::derive_builder")]
4363pub struct ExportDeclarationGroupScopedIdentifierExportDeclarationOpt {
4364    pub scoped_identifier: Box<ScopedIdentifier>,
4365    pub export_declaration_opt: Option<ExportDeclarationOpt>,
4366}
4367
4368///
4369/// Type derived for production 867
4370///
4371/// `ModuleGroupGroup: LBrace ModuleGroupGroupList /* Vec */ RBrace;`
4372///
4373#[allow(dead_code)]
4374#[derive(Builder, Debug, Clone)]
4375#[builder(crate = "parol_runtime::derive_builder")]
4376pub struct ModuleGroupGroupLBraceModuleGroupGroupListRBrace {
4377    pub l_brace: Box<LBrace>,
4378    pub module_group_group_list: Vec<ModuleGroupGroupList>,
4379    pub r_brace: Box<RBrace>,
4380}
4381
4382///
4383/// Type derived for production 870
4384///
4385/// `ModuleGroupGroup: ModuleItem;`
4386///
4387#[allow(dead_code)]
4388#[derive(Builder, Debug, Clone)]
4389#[builder(crate = "parol_runtime::derive_builder")]
4390pub struct ModuleGroupGroupModuleItem {
4391    pub module_item: Box<ModuleItem>,
4392}
4393
4394///
4395/// Type derived for production 882
4396///
4397/// `InterfaceGroupGroup: LBrace InterfaceGroupGroupList /* Vec */ RBrace;`
4398///
4399#[allow(dead_code)]
4400#[derive(Builder, Debug, Clone)]
4401#[builder(crate = "parol_runtime::derive_builder")]
4402pub struct InterfaceGroupGroupLBraceInterfaceGroupGroupListRBrace {
4403    pub l_brace: Box<LBrace>,
4404    pub interface_group_group_list: Vec<InterfaceGroupGroupList>,
4405    pub r_brace: Box<RBrace>,
4406}
4407
4408///
4409/// Type derived for production 885
4410///
4411/// `InterfaceGroupGroup: InterfaceItem;`
4412///
4413#[allow(dead_code)]
4414#[derive(Builder, Debug, Clone)]
4415#[builder(crate = "parol_runtime::derive_builder")]
4416pub struct InterfaceGroupGroupInterfaceItem {
4417    pub interface_item: Box<InterfaceItem>,
4418}
4419
4420///
4421/// Type derived for production 888
4422///
4423/// `InterfaceItem: GenerateItem;`
4424///
4425#[allow(dead_code)]
4426#[derive(Builder, Debug, Clone)]
4427#[builder(crate = "parol_runtime::derive_builder")]
4428pub struct InterfaceItemGenerateItem {
4429    pub generate_item: Box<GenerateItem>,
4430}
4431
4432///
4433/// Type derived for production 889
4434///
4435/// `InterfaceItem: ModportDeclaration;`
4436///
4437#[allow(dead_code)]
4438#[derive(Builder, Debug, Clone)]
4439#[builder(crate = "parol_runtime::derive_builder")]
4440pub struct InterfaceItemModportDeclaration {
4441    pub modport_declaration: Box<ModportDeclaration>,
4442}
4443
4444///
4445/// Type derived for production 908
4446///
4447/// `GenerateGroupGroup: LBrace GenerateGroupGroupList /* Vec */ RBrace;`
4448///
4449#[allow(dead_code)]
4450#[derive(Builder, Debug, Clone)]
4451#[builder(crate = "parol_runtime::derive_builder")]
4452pub struct GenerateGroupGroupLBraceGenerateGroupGroupListRBrace {
4453    pub l_brace: Box<LBrace>,
4454    pub generate_group_group_list: Vec<GenerateGroupGroupList>,
4455    pub r_brace: Box<RBrace>,
4456}
4457
4458///
4459/// Type derived for production 911
4460///
4461/// `GenerateGroupGroup: GenerateItem;`
4462///
4463#[allow(dead_code)]
4464#[derive(Builder, Debug, Clone)]
4465#[builder(crate = "parol_runtime::derive_builder")]
4466pub struct GenerateGroupGroupGenerateItem {
4467    pub generate_item: Box<GenerateItem>,
4468}
4469
4470///
4471/// Type derived for production 914
4472///
4473/// `GenerateItem: LetDeclaration;`
4474///
4475#[allow(dead_code)]
4476#[derive(Builder, Debug, Clone)]
4477#[builder(crate = "parol_runtime::derive_builder")]
4478pub struct GenerateItemLetDeclaration {
4479    pub let_declaration: Box<LetDeclaration>,
4480}
4481
4482///
4483/// Type derived for production 915
4484///
4485/// `GenerateItem: VarDeclaration;`
4486///
4487#[allow(dead_code)]
4488#[derive(Builder, Debug, Clone)]
4489#[builder(crate = "parol_runtime::derive_builder")]
4490pub struct GenerateItemVarDeclaration {
4491    pub var_declaration: Box<VarDeclaration>,
4492}
4493
4494///
4495/// Type derived for production 916
4496///
4497/// `GenerateItem: InstDeclaration;`
4498///
4499#[allow(dead_code)]
4500#[derive(Builder, Debug, Clone)]
4501#[builder(crate = "parol_runtime::derive_builder")]
4502pub struct GenerateItemInstDeclaration {
4503    pub inst_declaration: Box<InstDeclaration>,
4504}
4505
4506///
4507/// Type derived for production 917
4508///
4509/// `GenerateItem: ConstDeclaration;`
4510///
4511#[allow(dead_code)]
4512#[derive(Builder, Debug, Clone)]
4513#[builder(crate = "parol_runtime::derive_builder")]
4514pub struct GenerateItemConstDeclaration {
4515    pub const_declaration: Box<ConstDeclaration>,
4516}
4517
4518///
4519/// Type derived for production 918
4520///
4521/// `GenerateItem: AlwaysFfDeclaration;`
4522///
4523#[allow(dead_code)]
4524#[derive(Builder, Debug, Clone)]
4525#[builder(crate = "parol_runtime::derive_builder")]
4526pub struct GenerateItemAlwaysFfDeclaration {
4527    pub always_ff_declaration: Box<AlwaysFfDeclaration>,
4528}
4529
4530///
4531/// Type derived for production 919
4532///
4533/// `GenerateItem: AlwaysCombDeclaration;`
4534///
4535#[allow(dead_code)]
4536#[derive(Builder, Debug, Clone)]
4537#[builder(crate = "parol_runtime::derive_builder")]
4538pub struct GenerateItemAlwaysCombDeclaration {
4539    pub always_comb_declaration: Box<AlwaysCombDeclaration>,
4540}
4541
4542///
4543/// Type derived for production 920
4544///
4545/// `GenerateItem: AssignDeclaration;`
4546///
4547#[allow(dead_code)]
4548#[derive(Builder, Debug, Clone)]
4549#[builder(crate = "parol_runtime::derive_builder")]
4550pub struct GenerateItemAssignDeclaration {
4551    pub assign_declaration: Box<AssignDeclaration>,
4552}
4553
4554///
4555/// Type derived for production 921
4556///
4557/// `GenerateItem: FunctionDeclaration;`
4558///
4559#[allow(dead_code)]
4560#[derive(Builder, Debug, Clone)]
4561#[builder(crate = "parol_runtime::derive_builder")]
4562pub struct GenerateItemFunctionDeclaration {
4563    pub function_declaration: Box<FunctionDeclaration>,
4564}
4565
4566///
4567/// Type derived for production 922
4568///
4569/// `GenerateItem: GenerateIfDeclaration;`
4570///
4571#[allow(dead_code)]
4572#[derive(Builder, Debug, Clone)]
4573#[builder(crate = "parol_runtime::derive_builder")]
4574pub struct GenerateItemGenerateIfDeclaration {
4575    pub generate_if_declaration: Box<GenerateIfDeclaration>,
4576}
4577
4578///
4579/// Type derived for production 923
4580///
4581/// `GenerateItem: GenerateForDeclaration;`
4582///
4583#[allow(dead_code)]
4584#[derive(Builder, Debug, Clone)]
4585#[builder(crate = "parol_runtime::derive_builder")]
4586pub struct GenerateItemGenerateForDeclaration {
4587    pub generate_for_declaration: Box<GenerateForDeclaration>,
4588}
4589
4590///
4591/// Type derived for production 924
4592///
4593/// `GenerateItem: GenerateBlockDeclaration;`
4594///
4595#[allow(dead_code)]
4596#[derive(Builder, Debug, Clone)]
4597#[builder(crate = "parol_runtime::derive_builder")]
4598pub struct GenerateItemGenerateBlockDeclaration {
4599    pub generate_block_declaration: Box<GenerateBlockDeclaration>,
4600}
4601
4602///
4603/// Type derived for production 925
4604///
4605/// `GenerateItem: TypeDefDeclaration;`
4606///
4607#[allow(dead_code)]
4608#[derive(Builder, Debug, Clone)]
4609#[builder(crate = "parol_runtime::derive_builder")]
4610pub struct GenerateItemTypeDefDeclaration {
4611    pub type_def_declaration: Box<TypeDefDeclaration>,
4612}
4613
4614///
4615/// Type derived for production 926
4616///
4617/// `GenerateItem: EnumDeclaration;`
4618///
4619#[allow(dead_code)]
4620#[derive(Builder, Debug, Clone)]
4621#[builder(crate = "parol_runtime::derive_builder")]
4622pub struct GenerateItemEnumDeclaration {
4623    pub enum_declaration: Box<EnumDeclaration>,
4624}
4625
4626///
4627/// Type derived for production 927
4628///
4629/// `GenerateItem: StructUnionDeclaration;`
4630///
4631#[allow(dead_code)]
4632#[derive(Builder, Debug, Clone)]
4633#[builder(crate = "parol_runtime::derive_builder")]
4634pub struct GenerateItemStructUnionDeclaration {
4635    pub struct_union_declaration: Box<StructUnionDeclaration>,
4636}
4637
4638///
4639/// Type derived for production 928
4640///
4641/// `GenerateItem: ImportDeclaration;`
4642///
4643#[allow(dead_code)]
4644#[derive(Builder, Debug, Clone)]
4645#[builder(crate = "parol_runtime::derive_builder")]
4646pub struct GenerateItemImportDeclaration {
4647    pub import_declaration: Box<ImportDeclaration>,
4648}
4649
4650///
4651/// Type derived for production 929
4652///
4653/// `GenerateItem: InitialDeclaration;`
4654///
4655#[allow(dead_code)]
4656#[derive(Builder, Debug, Clone)]
4657#[builder(crate = "parol_runtime::derive_builder")]
4658pub struct GenerateItemInitialDeclaration {
4659    pub initial_declaration: Box<InitialDeclaration>,
4660}
4661
4662///
4663/// Type derived for production 930
4664///
4665/// `GenerateItem: FinalDeclaration;`
4666///
4667#[allow(dead_code)]
4668#[derive(Builder, Debug, Clone)]
4669#[builder(crate = "parol_runtime::derive_builder")]
4670pub struct GenerateItemFinalDeclaration {
4671    pub final_declaration: Box<FinalDeclaration>,
4672}
4673
4674///
4675/// Type derived for production 931
4676///
4677/// `GenerateItem: UnsafeBlock;`
4678///
4679#[allow(dead_code)]
4680#[derive(Builder, Debug, Clone)]
4681#[builder(crate = "parol_runtime::derive_builder")]
4682pub struct GenerateItemUnsafeBlock {
4683    pub unsafe_block: Box<UnsafeBlock>,
4684}
4685
4686///
4687/// Type derived for production 938
4688///
4689/// `PackageGroupGroup: LBrace PackageGroupGroupList /* Vec */ RBrace;`
4690///
4691#[allow(dead_code)]
4692#[derive(Builder, Debug, Clone)]
4693#[builder(crate = "parol_runtime::derive_builder")]
4694pub struct PackageGroupGroupLBracePackageGroupGroupListRBrace {
4695    pub l_brace: Box<LBrace>,
4696    pub package_group_group_list: Vec<PackageGroupGroupList>,
4697    pub r_brace: Box<RBrace>,
4698}
4699
4700///
4701/// Type derived for production 941
4702///
4703/// `PackageGroupGroup: PackageItem;`
4704///
4705#[allow(dead_code)]
4706#[derive(Builder, Debug, Clone)]
4707#[builder(crate = "parol_runtime::derive_builder")]
4708pub struct PackageGroupGroupPackageItem {
4709    pub package_item: Box<PackageItem>,
4710}
4711
4712///
4713/// Type derived for production 944
4714///
4715/// `PackageItem: ConstDeclaration;`
4716///
4717#[allow(dead_code)]
4718#[derive(Builder, Debug, Clone)]
4719#[builder(crate = "parol_runtime::derive_builder")]
4720pub struct PackageItemConstDeclaration {
4721    pub const_declaration: Box<ConstDeclaration>,
4722}
4723
4724///
4725/// Type derived for production 945
4726///
4727/// `PackageItem: TypeDefDeclaration;`
4728///
4729#[allow(dead_code)]
4730#[derive(Builder, Debug, Clone)]
4731#[builder(crate = "parol_runtime::derive_builder")]
4732pub struct PackageItemTypeDefDeclaration {
4733    pub type_def_declaration: Box<TypeDefDeclaration>,
4734}
4735
4736///
4737/// Type derived for production 946
4738///
4739/// `PackageItem: EnumDeclaration;`
4740///
4741#[allow(dead_code)]
4742#[derive(Builder, Debug, Clone)]
4743#[builder(crate = "parol_runtime::derive_builder")]
4744pub struct PackageItemEnumDeclaration {
4745    pub enum_declaration: Box<EnumDeclaration>,
4746}
4747
4748///
4749/// Type derived for production 947
4750///
4751/// `PackageItem: StructUnionDeclaration;`
4752///
4753#[allow(dead_code)]
4754#[derive(Builder, Debug, Clone)]
4755#[builder(crate = "parol_runtime::derive_builder")]
4756pub struct PackageItemStructUnionDeclaration {
4757    pub struct_union_declaration: Box<StructUnionDeclaration>,
4758}
4759
4760///
4761/// Type derived for production 948
4762///
4763/// `PackageItem: FunctionDeclaration;`
4764///
4765#[allow(dead_code)]
4766#[derive(Builder, Debug, Clone)]
4767#[builder(crate = "parol_runtime::derive_builder")]
4768pub struct PackageItemFunctionDeclaration {
4769    pub function_declaration: Box<FunctionDeclaration>,
4770}
4771
4772///
4773/// Type derived for production 949
4774///
4775/// `PackageItem: ImportDeclaration;`
4776///
4777#[allow(dead_code)]
4778#[derive(Builder, Debug, Clone)]
4779#[builder(crate = "parol_runtime::derive_builder")]
4780pub struct PackageItemImportDeclaration {
4781    pub import_declaration: Box<ImportDeclaration>,
4782}
4783
4784///
4785/// Type derived for production 950
4786///
4787/// `PackageItem: ExportDeclaration;`
4788///
4789#[allow(dead_code)]
4790#[derive(Builder, Debug, Clone)]
4791#[builder(crate = "parol_runtime::derive_builder")]
4792pub struct PackageItemExportDeclaration {
4793    pub export_declaration: Box<ExportDeclaration>,
4794}
4795
4796///
4797/// Type derived for production 961
4798///
4799/// `EmbedItem: LBraceTerm EmbedItemList /* Vec */ RBraceTerm;`
4800///
4801#[allow(dead_code)]
4802#[derive(Builder, Debug, Clone)]
4803#[builder(crate = "parol_runtime::derive_builder")]
4804pub struct EmbedItemLBraceTermEmbedItemListRBraceTerm {
4805    pub l_brace_term: Box<LBraceTerm>,
4806    pub embed_item_list: Vec<EmbedItemList>,
4807    pub r_brace_term: Box<RBraceTerm>,
4808}
4809
4810///
4811/// Type derived for production 964
4812///
4813/// `EmbedItem: AnyTerm;`
4814///
4815#[allow(dead_code)]
4816#[derive(Builder, Debug, Clone)]
4817#[builder(crate = "parol_runtime::derive_builder")]
4818pub struct EmbedItemAnyTerm {
4819    pub any_term: Box<AnyTerm>,
4820}
4821
4822///
4823/// Type derived for production 967
4824///
4825/// `DescriptionGroupGroup: LBrace DescriptionGroupGroupList /* Vec */ RBrace;`
4826///
4827#[allow(dead_code)]
4828#[derive(Builder, Debug, Clone)]
4829#[builder(crate = "parol_runtime::derive_builder")]
4830pub struct DescriptionGroupGroupLBraceDescriptionGroupGroupListRBrace {
4831    pub l_brace: Box<LBrace>,
4832    pub description_group_group_list: Vec<DescriptionGroupGroupList>,
4833    pub r_brace: Box<RBrace>,
4834}
4835
4836///
4837/// Type derived for production 970
4838///
4839/// `DescriptionGroupGroup: DescriptionItem;`
4840///
4841#[allow(dead_code)]
4842#[derive(Builder, Debug, Clone)]
4843#[builder(crate = "parol_runtime::derive_builder")]
4844pub struct DescriptionGroupGroupDescriptionItem {
4845    pub description_item: Box<DescriptionItem>,
4846}
4847
4848///
4849/// Type derived for production 973
4850///
4851/// `DescriptionItem: DescriptionItemOpt /* Option */ PublicDescriptionItem;`
4852///
4853#[allow(dead_code)]
4854#[derive(Builder, Debug, Clone)]
4855#[builder(crate = "parol_runtime::derive_builder")]
4856pub struct DescriptionItemDescriptionItemOptPublicDescriptionItem {
4857    pub description_item_opt: Option<DescriptionItemOpt>,
4858    pub public_description_item: Box<PublicDescriptionItem>,
4859}
4860
4861///
4862/// Type derived for production 974
4863///
4864/// `DescriptionItem: ImportDeclaration;`
4865///
4866#[allow(dead_code)]
4867#[derive(Builder, Debug, Clone)]
4868#[builder(crate = "parol_runtime::derive_builder")]
4869pub struct DescriptionItemImportDeclaration {
4870    pub import_declaration: Box<ImportDeclaration>,
4871}
4872
4873///
4874/// Type derived for production 975
4875///
4876/// `DescriptionItem: EmbedDeclaration;`
4877///
4878#[allow(dead_code)]
4879#[derive(Builder, Debug, Clone)]
4880#[builder(crate = "parol_runtime::derive_builder")]
4881pub struct DescriptionItemEmbedDeclaration {
4882    pub embed_declaration: Box<EmbedDeclaration>,
4883}
4884
4885///
4886/// Type derived for production 976
4887///
4888/// `DescriptionItem: IncludeDeclaration;`
4889///
4890#[allow(dead_code)]
4891#[derive(Builder, Debug, Clone)]
4892#[builder(crate = "parol_runtime::derive_builder")]
4893pub struct DescriptionItemIncludeDeclaration {
4894    pub include_declaration: Box<IncludeDeclaration>,
4895}
4896
4897///
4898/// Type derived for production 979
4899///
4900/// `PublicDescriptionItem: ModuleDeclaration;`
4901///
4902#[allow(dead_code)]
4903#[derive(Builder, Debug, Clone)]
4904#[builder(crate = "parol_runtime::derive_builder")]
4905pub struct PublicDescriptionItemModuleDeclaration {
4906    pub module_declaration: Box<ModuleDeclaration>,
4907}
4908
4909///
4910/// Type derived for production 980
4911///
4912/// `PublicDescriptionItem: InterfaceDeclaration;`
4913///
4914#[allow(dead_code)]
4915#[derive(Builder, Debug, Clone)]
4916#[builder(crate = "parol_runtime::derive_builder")]
4917pub struct PublicDescriptionItemInterfaceDeclaration {
4918    pub interface_declaration: Box<InterfaceDeclaration>,
4919}
4920
4921///
4922/// Type derived for production 981
4923///
4924/// `PublicDescriptionItem: PackageDeclaration;`
4925///
4926#[allow(dead_code)]
4927#[derive(Builder, Debug, Clone)]
4928#[builder(crate = "parol_runtime::derive_builder")]
4929pub struct PublicDescriptionItemPackageDeclaration {
4930    pub package_declaration: Box<PackageDeclaration>,
4931}
4932
4933///
4934/// Type derived for production 982
4935///
4936/// `PublicDescriptionItem: ProtoModuleDeclaration;`
4937///
4938#[allow(dead_code)]
4939#[derive(Builder, Debug, Clone)]
4940#[builder(crate = "parol_runtime::derive_builder")]
4941pub struct PublicDescriptionItemProtoModuleDeclaration {
4942    pub proto_module_declaration: Box<ProtoModuleDeclaration>,
4943}
4944
4945// -------------------------------------------------------------------------------------------------
4946//
4947// Types of non-terminals deduced from the structure of the transformed grammar
4948//
4949
4950///
4951/// Type derived for non-terminal AllBit
4952///
4953#[allow(dead_code)]
4954#[derive(Builder, Debug, Clone)]
4955#[builder(crate = "parol_runtime::derive_builder")]
4956pub struct AllBit {
4957    pub all_bit_token: crate::veryl_token::VerylToken,
4958}
4959
4960///
4961/// Type derived for non-terminal AllBitTerm
4962///
4963#[allow(dead_code)]
4964#[derive(Builder, Debug, Clone)]
4965#[builder(crate = "parol_runtime::derive_builder")]
4966pub struct AllBitTerm {
4967    pub all_bit_term: crate::veryl_token::Token, /* (?:[0-9]+(?:_[0-9]+)*)?'[01xzXZ] */
4968}
4969
4970///
4971/// Type derived for non-terminal AllBitToken
4972///
4973#[allow(dead_code)]
4974#[derive(Builder, Debug, Clone)]
4975#[builder(crate = "parol_runtime::derive_builder")]
4976pub struct AllBitToken {
4977    pub all_bit_term: crate::veryl_token::Token,
4978    pub comments: Box<Comments>,
4979}
4980
4981///
4982/// Type derived for non-terminal AlwaysComb
4983///
4984#[allow(dead_code)]
4985#[derive(Builder, Debug, Clone)]
4986#[builder(crate = "parol_runtime::derive_builder")]
4987pub struct AlwaysComb {
4988    pub always_comb_token: crate::veryl_token::VerylToken,
4989}
4990
4991///
4992/// Type derived for non-terminal AlwaysCombDeclaration
4993///
4994#[allow(dead_code)]
4995#[derive(Builder, Debug, Clone)]
4996#[builder(crate = "parol_runtime::derive_builder")]
4997pub struct AlwaysCombDeclaration {
4998    pub always_comb: Box<AlwaysComb>,
4999    pub statement_block: Box<StatementBlock>,
5000}
5001
5002///
5003/// Type derived for non-terminal AlwaysCombTerm
5004///
5005#[allow(dead_code)]
5006#[derive(Builder, Debug, Clone)]
5007#[builder(crate = "parol_runtime::derive_builder")]
5008pub struct AlwaysCombTerm {
5009    pub always_comb_term: crate::veryl_token::Token, /* (?-u:\b)always_comb(?-u:\b) */
5010}
5011
5012///
5013/// Type derived for non-terminal AlwaysCombToken
5014///
5015#[allow(dead_code)]
5016#[derive(Builder, Debug, Clone)]
5017#[builder(crate = "parol_runtime::derive_builder")]
5018pub struct AlwaysCombToken {
5019    pub always_comb_term: crate::veryl_token::Token,
5020    pub comments: Box<Comments>,
5021}
5022
5023///
5024/// Type derived for non-terminal AlwaysFf
5025///
5026#[allow(dead_code)]
5027#[derive(Builder, Debug, Clone)]
5028#[builder(crate = "parol_runtime::derive_builder")]
5029pub struct AlwaysFf {
5030    pub always_ff_token: crate::veryl_token::VerylToken,
5031}
5032
5033///
5034/// Type derived for non-terminal AlwaysFfClock
5035///
5036#[allow(dead_code)]
5037#[derive(Builder, Debug, Clone)]
5038#[builder(crate = "parol_runtime::derive_builder")]
5039pub struct AlwaysFfClock {
5040    pub hierarchical_identifier: Box<HierarchicalIdentifier>,
5041}
5042
5043///
5044/// Type derived for non-terminal AlwaysFfDeclaration
5045///
5046#[allow(dead_code)]
5047#[derive(Builder, Debug, Clone)]
5048#[builder(crate = "parol_runtime::derive_builder")]
5049pub struct AlwaysFfDeclaration {
5050    pub always_ff: Box<AlwaysFf>,
5051    pub always_ff_declaration_opt: Option<AlwaysFfDeclarationOpt>,
5052    pub statement_block: Box<StatementBlock>,
5053}
5054
5055///
5056/// Type derived for non-terminal AlwaysFfDeclarationOpt
5057///
5058#[allow(dead_code)]
5059#[derive(Builder, Debug, Clone)]
5060#[builder(crate = "parol_runtime::derive_builder")]
5061pub struct AlwaysFfDeclarationOpt {
5062    pub always_ff_event_list: Box<AlwaysFfEventList>,
5063}
5064
5065///
5066/// Type derived for non-terminal AlwaysFfEventList
5067///
5068#[allow(dead_code)]
5069#[derive(Builder, Debug, Clone)]
5070#[builder(crate = "parol_runtime::derive_builder")]
5071pub struct AlwaysFfEventList {
5072    pub l_paren: Box<LParen>,
5073    pub always_ff_clock: Box<AlwaysFfClock>,
5074    pub always_ff_event_list_opt: Option<AlwaysFfEventListOpt>,
5075    pub r_paren: Box<RParen>,
5076}
5077
5078///
5079/// Type derived for non-terminal AlwaysFfEventListOpt
5080///
5081#[allow(dead_code)]
5082#[derive(Builder, Debug, Clone)]
5083#[builder(crate = "parol_runtime::derive_builder")]
5084pub struct AlwaysFfEventListOpt {
5085    pub comma: Box<Comma>,
5086    pub always_ff_reset: Box<AlwaysFfReset>,
5087}
5088
5089///
5090/// Type derived for non-terminal AlwaysFfReset
5091///
5092#[allow(dead_code)]
5093#[derive(Builder, Debug, Clone)]
5094#[builder(crate = "parol_runtime::derive_builder")]
5095pub struct AlwaysFfReset {
5096    pub hierarchical_identifier: Box<HierarchicalIdentifier>,
5097}
5098
5099///
5100/// Type derived for non-terminal AlwaysFfTerm
5101///
5102#[allow(dead_code)]
5103#[derive(Builder, Debug, Clone)]
5104#[builder(crate = "parol_runtime::derive_builder")]
5105pub struct AlwaysFfTerm {
5106    pub always_ff_term: crate::veryl_token::Token, /* (?-u:\b)always_ff(?-u:\b) */
5107}
5108
5109///
5110/// Type derived for non-terminal AlwaysFfToken
5111///
5112#[allow(dead_code)]
5113#[derive(Builder, Debug, Clone)]
5114#[builder(crate = "parol_runtime::derive_builder")]
5115pub struct AlwaysFfToken {
5116    pub always_ff_term: crate::veryl_token::Token,
5117    pub comments: Box<Comments>,
5118}
5119
5120///
5121/// Type derived for non-terminal AnyTerm
5122///
5123#[allow(dead_code)]
5124#[derive(Builder, Debug, Clone)]
5125#[builder(crate = "parol_runtime::derive_builder")]
5126pub struct AnyTerm {
5127    pub any_term: crate::veryl_token::Token, /* [^{}]+ */
5128}
5129
5130///
5131/// Type derived for non-terminal ArgumentItem
5132///
5133#[allow(dead_code)]
5134#[derive(Builder, Debug, Clone)]
5135#[builder(crate = "parol_runtime::derive_builder")]
5136pub struct ArgumentItem {
5137    pub expression: Box<Expression>,
5138}
5139
5140///
5141/// Type derived for non-terminal ArgumentList
5142///
5143#[allow(dead_code)]
5144#[derive(Builder, Debug, Clone)]
5145#[builder(crate = "parol_runtime::derive_builder")]
5146pub struct ArgumentList {
5147    pub argument_item: Box<ArgumentItem>,
5148    pub argument_list_list: Vec<ArgumentListList>,
5149    pub argument_list_opt: Option<ArgumentListOpt>,
5150}
5151
5152///
5153/// Type derived for non-terminal ArgumentListList
5154///
5155#[allow(dead_code)]
5156#[derive(Builder, Debug, Clone)]
5157#[builder(crate = "parol_runtime::derive_builder")]
5158pub struct ArgumentListList {
5159    pub comma: Box<Comma>,
5160    pub argument_item: Box<ArgumentItem>,
5161}
5162
5163///
5164/// Type derived for non-terminal ArgumentListOpt
5165///
5166#[allow(dead_code)]
5167#[derive(Builder, Debug, Clone)]
5168#[builder(crate = "parol_runtime::derive_builder")]
5169pub struct ArgumentListOpt {
5170    pub comma: Box<Comma>,
5171}
5172
5173///
5174/// Type derived for non-terminal Array
5175///
5176#[allow(dead_code)]
5177#[derive(Builder, Debug, Clone)]
5178#[builder(crate = "parol_runtime::derive_builder")]
5179pub struct Array {
5180    pub l_bracket: Box<LBracket>,
5181    pub expression: Box<Expression>,
5182    pub array_list: Vec<ArrayList>,
5183    pub r_bracket: Box<RBracket>,
5184}
5185
5186///
5187/// Type derived for non-terminal ArrayList
5188///
5189#[allow(dead_code)]
5190#[derive(Builder, Debug, Clone)]
5191#[builder(crate = "parol_runtime::derive_builder")]
5192pub struct ArrayList {
5193    pub comma: Box<Comma>,
5194    pub expression: Box<Expression>,
5195}
5196
5197///
5198/// Type derived for non-terminal ArrayLiteralItem
5199///
5200#[allow(dead_code)]
5201#[derive(Builder, Debug, Clone)]
5202#[builder(crate = "parol_runtime::derive_builder")]
5203pub struct ArrayLiteralItem {
5204    pub array_literal_item_group: Box<ArrayLiteralItemGroup>,
5205}
5206
5207///
5208/// Type derived for non-terminal ArrayLiteralItemGroup
5209///
5210#[allow(dead_code)]
5211#[derive(Debug, Clone)]
5212pub enum ArrayLiteralItemGroup {
5213    ExpressionArrayLiteralItemOpt(ArrayLiteralItemGroupExpressionArrayLiteralItemOpt),
5214    DefaulColonExpression(ArrayLiteralItemGroupDefaulColonExpression),
5215}
5216
5217///
5218/// Type derived for non-terminal ArrayLiteralItemOpt
5219///
5220#[allow(dead_code)]
5221#[derive(Builder, Debug, Clone)]
5222#[builder(crate = "parol_runtime::derive_builder")]
5223pub struct ArrayLiteralItemOpt {
5224    pub repeat: Box<Repeat>,
5225    pub expression: Box<Expression>,
5226}
5227
5228///
5229/// Type derived for non-terminal ArrayLiteralList
5230///
5231#[allow(dead_code)]
5232#[derive(Builder, Debug, Clone)]
5233#[builder(crate = "parol_runtime::derive_builder")]
5234pub struct ArrayLiteralList {
5235    pub array_literal_item: Box<ArrayLiteralItem>,
5236    pub array_literal_list_list: Vec<ArrayLiteralListList>,
5237    pub array_literal_list_opt: Option<ArrayLiteralListOpt>,
5238}
5239
5240///
5241/// Type derived for non-terminal ArrayLiteralListList
5242///
5243#[allow(dead_code)]
5244#[derive(Builder, Debug, Clone)]
5245#[builder(crate = "parol_runtime::derive_builder")]
5246pub struct ArrayLiteralListList {
5247    pub comma: Box<Comma>,
5248    pub array_literal_item: Box<ArrayLiteralItem>,
5249}
5250
5251///
5252/// Type derived for non-terminal ArrayLiteralListOpt
5253///
5254#[allow(dead_code)]
5255#[derive(Builder, Debug, Clone)]
5256#[builder(crate = "parol_runtime::derive_builder")]
5257pub struct ArrayLiteralListOpt {
5258    pub comma: Box<Comma>,
5259}
5260
5261///
5262/// Type derived for non-terminal ArrayType
5263///
5264#[allow(dead_code)]
5265#[derive(Builder, Debug, Clone)]
5266#[builder(crate = "parol_runtime::derive_builder")]
5267pub struct ArrayType {
5268    pub scalar_type: Box<ScalarType>,
5269    pub array_type_opt: Option<ArrayTypeOpt>,
5270}
5271
5272///
5273/// Type derived for non-terminal ArrayTypeOpt
5274///
5275#[allow(dead_code)]
5276#[derive(Builder, Debug, Clone)]
5277#[builder(crate = "parol_runtime::derive_builder")]
5278pub struct ArrayTypeOpt {
5279    pub array: Box<Array>,
5280}
5281
5282///
5283/// Type derived for non-terminal As
5284///
5285#[allow(dead_code)]
5286#[derive(Builder, Debug, Clone)]
5287#[builder(crate = "parol_runtime::derive_builder")]
5288pub struct As {
5289    pub as_token: crate::veryl_token::VerylToken,
5290}
5291
5292///
5293/// Type derived for non-terminal AsTerm
5294///
5295#[allow(dead_code)]
5296#[derive(Builder, Debug, Clone)]
5297#[builder(crate = "parol_runtime::derive_builder")]
5298pub struct AsTerm {
5299    pub as_term: crate::veryl_token::Token, /* (?-u:\b)as(?-u:\b) */
5300}
5301
5302///
5303/// Type derived for non-terminal AsToken
5304///
5305#[allow(dead_code)]
5306#[derive(Builder, Debug, Clone)]
5307#[builder(crate = "parol_runtime::derive_builder")]
5308pub struct AsToken {
5309    pub as_term: crate::veryl_token::Token,
5310    pub comments: Box<Comments>,
5311}
5312
5313///
5314/// Type derived for non-terminal Assign
5315///
5316#[allow(dead_code)]
5317#[derive(Builder, Debug, Clone)]
5318#[builder(crate = "parol_runtime::derive_builder")]
5319pub struct Assign {
5320    pub assign_token: crate::veryl_token::VerylToken,
5321}
5322
5323///
5324/// Type derived for non-terminal AssignConcatenationItem
5325///
5326#[allow(dead_code)]
5327#[derive(Builder, Debug, Clone)]
5328#[builder(crate = "parol_runtime::derive_builder")]
5329pub struct AssignConcatenationItem {
5330    pub hierarchical_identifier: Box<HierarchicalIdentifier>,
5331}
5332
5333///
5334/// Type derived for non-terminal AssignConcatenationList
5335///
5336#[allow(dead_code)]
5337#[derive(Builder, Debug, Clone)]
5338#[builder(crate = "parol_runtime::derive_builder")]
5339pub struct AssignConcatenationList {
5340    pub assign_concatenation_item: Box<AssignConcatenationItem>,
5341    pub assign_concatenation_list_list: Vec<AssignConcatenationListList>,
5342    pub assign_concatenation_list_opt: Option<AssignConcatenationListOpt>,
5343}
5344
5345///
5346/// Type derived for non-terminal AssignConcatenationListList
5347///
5348#[allow(dead_code)]
5349#[derive(Builder, Debug, Clone)]
5350#[builder(crate = "parol_runtime::derive_builder")]
5351pub struct AssignConcatenationListList {
5352    pub comma: Box<Comma>,
5353    pub assign_concatenation_item: Box<AssignConcatenationItem>,
5354}
5355
5356///
5357/// Type derived for non-terminal AssignConcatenationListOpt
5358///
5359#[allow(dead_code)]
5360#[derive(Builder, Debug, Clone)]
5361#[builder(crate = "parol_runtime::derive_builder")]
5362pub struct AssignConcatenationListOpt {
5363    pub comma: Box<Comma>,
5364}
5365
5366///
5367/// Type derived for non-terminal AssignDeclaration
5368///
5369#[allow(dead_code)]
5370#[derive(Builder, Debug, Clone)]
5371#[builder(crate = "parol_runtime::derive_builder")]
5372pub struct AssignDeclaration {
5373    pub assign: Box<Assign>,
5374    pub assign_destination: Box<AssignDestination>,
5375    pub equ: Box<Equ>,
5376    pub expression: Box<Expression>,
5377    pub semicolon: Box<Semicolon>,
5378}
5379
5380///
5381/// Type derived for non-terminal AssignDestination
5382///
5383#[allow(dead_code)]
5384#[derive(Debug, Clone)]
5385pub enum AssignDestination {
5386    HierarchicalIdentifier(AssignDestinationHierarchicalIdentifier),
5387    LBraceAssignConcatenationListRBrace(AssignDestinationLBraceAssignConcatenationListRBrace),
5388}
5389
5390///
5391/// Type derived for non-terminal AssignTerm
5392///
5393#[allow(dead_code)]
5394#[derive(Builder, Debug, Clone)]
5395#[builder(crate = "parol_runtime::derive_builder")]
5396pub struct AssignTerm {
5397    pub assign_term: crate::veryl_token::Token, /* (?-u:\b)assign(?-u:\b) */
5398}
5399
5400///
5401/// Type derived for non-terminal AssignToken
5402///
5403#[allow(dead_code)]
5404#[derive(Builder, Debug, Clone)]
5405#[builder(crate = "parol_runtime::derive_builder")]
5406pub struct AssignToken {
5407    pub assign_term: crate::veryl_token::Token,
5408    pub comments: Box<Comments>,
5409}
5410
5411///
5412/// Type derived for non-terminal Assignment
5413///
5414#[allow(dead_code)]
5415#[derive(Builder, Debug, Clone)]
5416#[builder(crate = "parol_runtime::derive_builder")]
5417pub struct Assignment {
5418    pub assignment_group: Box<AssignmentGroup>,
5419    pub expression: Box<Expression>,
5420}
5421
5422///
5423/// Type derived for non-terminal AssignmentGroup
5424///
5425#[allow(dead_code)]
5426#[derive(Debug, Clone)]
5427pub enum AssignmentGroup {
5428    Equ(AssignmentGroupEqu),
5429    AssignmentOperator(AssignmentGroupAssignmentOperator),
5430}
5431
5432///
5433/// Type derived for non-terminal AssignmentOperator
5434///
5435#[allow(dead_code)]
5436#[derive(Builder, Debug, Clone)]
5437#[builder(crate = "parol_runtime::derive_builder")]
5438pub struct AssignmentOperator {
5439    pub assignment_operator_token: crate::veryl_token::VerylToken,
5440}
5441
5442///
5443/// Type derived for non-terminal AssignmentOperatorTerm
5444///
5445#[allow(dead_code)]
5446#[derive(Builder, Debug, Clone)]
5447#[builder(crate = "parol_runtime::derive_builder")]
5448pub struct AssignmentOperatorTerm {
5449    pub assignment_operator_term: crate::veryl_token::Token, /* \+=|-=|\*=|/=|%=|&=|\|=|\^=|<<=|>>=|<<<=|>>>= */
5450}
5451
5452///
5453/// Type derived for non-terminal AssignmentOperatorToken
5454///
5455#[allow(dead_code)]
5456#[derive(Builder, Debug, Clone)]
5457#[builder(crate = "parol_runtime::derive_builder")]
5458pub struct AssignmentOperatorToken {
5459    pub assignment_operator_term: crate::veryl_token::Token,
5460    pub comments: Box<Comments>,
5461}
5462
5463///
5464/// Type derived for non-terminal Attribute
5465///
5466#[allow(dead_code)]
5467#[derive(Builder, Debug, Clone)]
5468#[builder(crate = "parol_runtime::derive_builder")]
5469pub struct Attribute {
5470    pub hash: Box<Hash>,
5471    pub l_bracket: Box<LBracket>,
5472    pub identifier: Box<Identifier>,
5473    pub attribute_opt: Option<AttributeOpt>,
5474    pub r_bracket: Box<RBracket>,
5475}
5476
5477///
5478/// Type derived for non-terminal AttributeItem
5479///
5480#[allow(dead_code)]
5481#[derive(Debug, Clone)]
5482pub enum AttributeItem {
5483    Identifier(AttributeItemIdentifier),
5484    StringLiteral(AttributeItemStringLiteral),
5485}
5486
5487///
5488/// Type derived for non-terminal AttributeList
5489///
5490#[allow(dead_code)]
5491#[derive(Builder, Debug, Clone)]
5492#[builder(crate = "parol_runtime::derive_builder")]
5493pub struct AttributeList {
5494    pub attribute_item: Box<AttributeItem>,
5495    pub attribute_list_list: Vec<AttributeListList>,
5496    pub attribute_list_opt: Option<AttributeListOpt>,
5497}
5498
5499///
5500/// Type derived for non-terminal AttributeListList
5501///
5502#[allow(dead_code)]
5503#[derive(Builder, Debug, Clone)]
5504#[builder(crate = "parol_runtime::derive_builder")]
5505pub struct AttributeListList {
5506    pub comma: Box<Comma>,
5507    pub attribute_item: Box<AttributeItem>,
5508}
5509
5510///
5511/// Type derived for non-terminal AttributeListOpt
5512///
5513#[allow(dead_code)]
5514#[derive(Builder, Debug, Clone)]
5515#[builder(crate = "parol_runtime::derive_builder")]
5516pub struct AttributeListOpt {
5517    pub comma: Box<Comma>,
5518}
5519
5520///
5521/// Type derived for non-terminal AttributeOpt
5522///
5523#[allow(dead_code)]
5524#[derive(Builder, Debug, Clone)]
5525#[builder(crate = "parol_runtime::derive_builder")]
5526pub struct AttributeOpt {
5527    pub l_paren: Box<LParen>,
5528    pub attribute_list: Box<AttributeList>,
5529    pub r_paren: Box<RParen>,
5530}
5531
5532///
5533/// Type derived for non-terminal BackQuote
5534///
5535#[allow(dead_code)]
5536#[derive(Builder, Debug, Clone)]
5537#[builder(crate = "parol_runtime::derive_builder")]
5538pub struct BackQuote {
5539    pub back_quote_token: crate::veryl_token::VerylToken,
5540}
5541
5542///
5543/// Type derived for non-terminal BackQuoteTerm
5544///
5545#[allow(dead_code)]
5546#[derive(Builder, Debug, Clone)]
5547#[builder(crate = "parol_runtime::derive_builder")]
5548pub struct BackQuoteTerm {
5549    pub back_quote_term: crate::veryl_token::Token, /* ` */
5550}
5551
5552///
5553/// Type derived for non-terminal BackQuoteToken
5554///
5555#[allow(dead_code)]
5556#[derive(Builder, Debug, Clone)]
5557#[builder(crate = "parol_runtime::derive_builder")]
5558pub struct BackQuoteToken {
5559    pub back_quote_term: crate::veryl_token::Token,
5560    pub comments: Box<Comments>,
5561}
5562
5563///
5564/// Type derived for non-terminal BaseLess
5565///
5566#[allow(dead_code)]
5567#[derive(Builder, Debug, Clone)]
5568#[builder(crate = "parol_runtime::derive_builder")]
5569pub struct BaseLess {
5570    pub base_less_token: crate::veryl_token::VerylToken,
5571}
5572
5573///
5574/// Type derived for non-terminal BaseLessTerm
5575///
5576#[allow(dead_code)]
5577#[derive(Builder, Debug, Clone)]
5578#[builder(crate = "parol_runtime::derive_builder")]
5579pub struct BaseLessTerm {
5580    pub base_less_term: crate::veryl_token::Token, /* [0-9]+(?:_[0-9]+)* */
5581}
5582
5583///
5584/// Type derived for non-terminal BaseLessToken
5585///
5586#[allow(dead_code)]
5587#[derive(Builder, Debug, Clone)]
5588#[builder(crate = "parol_runtime::derive_builder")]
5589pub struct BaseLessToken {
5590    pub base_less_term: crate::veryl_token::Token,
5591    pub comments: Box<Comments>,
5592}
5593
5594///
5595/// Type derived for non-terminal Based
5596///
5597#[allow(dead_code)]
5598#[derive(Builder, Debug, Clone)]
5599#[builder(crate = "parol_runtime::derive_builder")]
5600pub struct Based {
5601    pub based_token: crate::veryl_token::VerylToken,
5602}
5603
5604///
5605/// Type derived for non-terminal BasedTerm
5606///
5607#[allow(dead_code)]
5608#[derive(Builder, Debug, Clone)]
5609#[builder(crate = "parol_runtime::derive_builder")]
5610pub struct BasedTerm {
5611    pub based_term: crate::veryl_token::Token, /* (?:[0-9]+(?:_[0-9]+)*)?'s?[bodh][0-9a-fA-FxzXZ]+(?:_[0-9a-fA-FxzXZ]+)* */
5612}
5613
5614///
5615/// Type derived for non-terminal BasedToken
5616///
5617#[allow(dead_code)]
5618#[derive(Builder, Debug, Clone)]
5619#[builder(crate = "parol_runtime::derive_builder")]
5620pub struct BasedToken {
5621    pub based_term: crate::veryl_token::Token,
5622    pub comments: Box<Comments>,
5623}
5624
5625///
5626/// Type derived for non-terminal Bit
5627///
5628#[allow(dead_code)]
5629#[derive(Builder, Debug, Clone)]
5630#[builder(crate = "parol_runtime::derive_builder")]
5631pub struct Bit {
5632    pub bit_token: crate::veryl_token::VerylToken,
5633}
5634
5635///
5636/// Type derived for non-terminal BitTerm
5637///
5638#[allow(dead_code)]
5639#[derive(Builder, Debug, Clone)]
5640#[builder(crate = "parol_runtime::derive_builder")]
5641pub struct BitTerm {
5642    pub bit_term: crate::veryl_token::Token, /* (?-u:\b)bit(?-u:\b) */
5643}
5644
5645///
5646/// Type derived for non-terminal BitToken
5647///
5648#[allow(dead_code)]
5649#[derive(Builder, Debug, Clone)]
5650#[builder(crate = "parol_runtime::derive_builder")]
5651pub struct BitToken {
5652    pub bit_term: crate::veryl_token::Token,
5653    pub comments: Box<Comments>,
5654}
5655
5656///
5657/// Type derived for non-terminal Break
5658///
5659#[allow(dead_code)]
5660#[derive(Builder, Debug, Clone)]
5661#[builder(crate = "parol_runtime::derive_builder")]
5662pub struct Break {
5663    pub break_token: crate::veryl_token::VerylToken,
5664}
5665
5666///
5667/// Type derived for non-terminal BreakStatement
5668///
5669#[allow(dead_code)]
5670#[derive(Builder, Debug, Clone)]
5671#[builder(crate = "parol_runtime::derive_builder")]
5672pub struct BreakStatement {
5673    pub r#break: Box<Break>,
5674    pub semicolon: Box<Semicolon>,
5675}
5676
5677///
5678/// Type derived for non-terminal BreakTerm
5679///
5680#[allow(dead_code)]
5681#[derive(Builder, Debug, Clone)]
5682#[builder(crate = "parol_runtime::derive_builder")]
5683pub struct BreakTerm {
5684    pub break_term: crate::veryl_token::Token, /* (?-u:\b)break(?-u:\b) */
5685}
5686
5687///
5688/// Type derived for non-terminal BreakToken
5689///
5690#[allow(dead_code)]
5691#[derive(Builder, Debug, Clone)]
5692#[builder(crate = "parol_runtime::derive_builder")]
5693pub struct BreakToken {
5694    pub break_term: crate::veryl_token::Token,
5695    pub comments: Box<Comments>,
5696}
5697
5698///
5699/// Type derived for non-terminal Case
5700///
5701#[allow(dead_code)]
5702#[derive(Builder, Debug, Clone)]
5703#[builder(crate = "parol_runtime::derive_builder")]
5704pub struct Case {
5705    pub case_token: crate::veryl_token::VerylToken,
5706}
5707
5708///
5709/// Type derived for non-terminal CaseCondition
5710///
5711#[allow(dead_code)]
5712#[derive(Builder, Debug, Clone)]
5713#[builder(crate = "parol_runtime::derive_builder")]
5714pub struct CaseCondition {
5715    pub range_item: Box<RangeItem>,
5716    pub case_condition_list: Vec<CaseConditionList>,
5717}
5718
5719///
5720/// Type derived for non-terminal CaseConditionList
5721///
5722#[allow(dead_code)]
5723#[derive(Builder, Debug, Clone)]
5724#[builder(crate = "parol_runtime::derive_builder")]
5725pub struct CaseConditionList {
5726    pub comma: Box<Comma>,
5727    pub range_item: Box<RangeItem>,
5728}
5729
5730///
5731/// Type derived for non-terminal CaseExpression
5732///
5733#[allow(dead_code)]
5734#[derive(Builder, Debug, Clone)]
5735#[builder(crate = "parol_runtime::derive_builder")]
5736pub struct CaseExpression {
5737    pub case: Box<Case>,
5738    pub expression: Box<Expression>,
5739    pub l_brace: Box<LBrace>,
5740    pub case_condition: Box<CaseCondition>,
5741    pub colon: Box<Colon>,
5742    pub expression0: Box<Expression>,
5743    pub comma: Box<Comma>,
5744    pub case_expression_list: Vec<CaseExpressionList>,
5745    pub defaul: Box<Defaul>,
5746    pub colon0: Box<Colon>,
5747    pub expression1: Box<Expression>,
5748    pub case_expression_opt: Option<CaseExpressionOpt>,
5749    pub r_brace: Box<RBrace>,
5750}
5751
5752///
5753/// Type derived for non-terminal CaseExpressionList
5754///
5755#[allow(dead_code)]
5756#[derive(Builder, Debug, Clone)]
5757#[builder(crate = "parol_runtime::derive_builder")]
5758pub struct CaseExpressionList {
5759    pub case_condition: Box<CaseCondition>,
5760    pub colon: Box<Colon>,
5761    pub expression: Box<Expression>,
5762    pub comma: Box<Comma>,
5763}
5764
5765///
5766/// Type derived for non-terminal CaseExpressionOpt
5767///
5768#[allow(dead_code)]
5769#[derive(Builder, Debug, Clone)]
5770#[builder(crate = "parol_runtime::derive_builder")]
5771pub struct CaseExpressionOpt {
5772    pub comma: Box<Comma>,
5773}
5774
5775///
5776/// Type derived for non-terminal CaseItem
5777///
5778#[allow(dead_code)]
5779#[derive(Builder, Debug, Clone)]
5780#[builder(crate = "parol_runtime::derive_builder")]
5781pub struct CaseItem {
5782    pub case_item_group: Box<CaseItemGroup>,
5783    pub colon: Box<Colon>,
5784    pub case_item_group0: Box<CaseItemGroup0>,
5785}
5786
5787///
5788/// Type derived for non-terminal CaseItemGroup
5789///
5790#[allow(dead_code)]
5791#[derive(Debug, Clone)]
5792pub enum CaseItemGroup {
5793    CaseCondition(CaseItemGroupCaseCondition),
5794    Defaul(CaseItemGroupDefaul),
5795}
5796
5797///
5798/// Type derived for non-terminal CaseItemGroup0
5799///
5800#[allow(dead_code)]
5801#[derive(Debug, Clone)]
5802pub enum CaseItemGroup0 {
5803    Statement(CaseItemGroup0Statement),
5804    StatementBlock(CaseItemGroup0StatementBlock),
5805}
5806
5807///
5808/// Type derived for non-terminal CaseStatement
5809///
5810#[allow(dead_code)]
5811#[derive(Builder, Debug, Clone)]
5812#[builder(crate = "parol_runtime::derive_builder")]
5813pub struct CaseStatement {
5814    pub case: Box<Case>,
5815    pub expression: Box<Expression>,
5816    pub l_brace: Box<LBrace>,
5817    pub case_statement_list: Vec<CaseStatementList>,
5818    pub r_brace: Box<RBrace>,
5819}
5820
5821///
5822/// Type derived for non-terminal CaseStatementList
5823///
5824#[allow(dead_code)]
5825#[derive(Builder, Debug, Clone)]
5826#[builder(crate = "parol_runtime::derive_builder")]
5827pub struct CaseStatementList {
5828    pub case_item: Box<CaseItem>,
5829}
5830
5831///
5832/// Type derived for non-terminal CaseTerm
5833///
5834#[allow(dead_code)]
5835#[derive(Builder, Debug, Clone)]
5836#[builder(crate = "parol_runtime::derive_builder")]
5837pub struct CaseTerm {
5838    pub case_term: crate::veryl_token::Token, /* (?-u:\b)case(?-u:\b) */
5839}
5840
5841///
5842/// Type derived for non-terminal CaseToken
5843///
5844#[allow(dead_code)]
5845#[derive(Builder, Debug, Clone)]
5846#[builder(crate = "parol_runtime::derive_builder")]
5847pub struct CaseToken {
5848    pub case_term: crate::veryl_token::Token,
5849    pub comments: Box<Comments>,
5850}
5851
5852///
5853/// Type derived for non-terminal CastingType
5854///
5855#[allow(dead_code)]
5856#[derive(Debug, Clone)]
5857pub enum CastingType {
5858    U32(CastingTypeU32),
5859    U64(CastingTypeU64),
5860    I32(CastingTypeI32),
5861    I64(CastingTypeI64),
5862    F32(CastingTypeF32),
5863    F64(CastingTypeF64),
5864    Clock(CastingTypeClock),
5865    ClockPosedge(CastingTypeClockPosedge),
5866    ClockNegedge(CastingTypeClockNegedge),
5867    Reset(CastingTypeReset),
5868    ResetAsyncHigh(CastingTypeResetAsyncHigh),
5869    ResetAsyncLow(CastingTypeResetAsyncLow),
5870    ResetSyncHigh(CastingTypeResetSyncHigh),
5871    ResetSyncLow(CastingTypeResetSyncLow),
5872    UserDefinedType(CastingTypeUserDefinedType),
5873    Based(CastingTypeBased),
5874    BaseLess(CastingTypeBaseLess),
5875}
5876
5877///
5878/// Type derived for non-terminal Clock
5879///
5880#[allow(dead_code)]
5881#[derive(Builder, Debug, Clone)]
5882#[builder(crate = "parol_runtime::derive_builder")]
5883pub struct Clock {
5884    pub clock_token: crate::veryl_token::VerylToken,
5885}
5886
5887///
5888/// Type derived for non-terminal ClockDomain
5889///
5890#[allow(dead_code)]
5891#[derive(Builder, Debug, Clone)]
5892#[builder(crate = "parol_runtime::derive_builder")]
5893pub struct ClockDomain {
5894    pub back_quote: Box<BackQuote>,
5895    pub identifier: Box<Identifier>,
5896}
5897
5898///
5899/// Type derived for non-terminal ClockNegedge
5900///
5901#[allow(dead_code)]
5902#[derive(Builder, Debug, Clone)]
5903#[builder(crate = "parol_runtime::derive_builder")]
5904pub struct ClockNegedge {
5905    pub clock_negedge_token: crate::veryl_token::VerylToken,
5906}
5907
5908///
5909/// Type derived for non-terminal ClockNegedgeTerm
5910///
5911#[allow(dead_code)]
5912#[derive(Builder, Debug, Clone)]
5913#[builder(crate = "parol_runtime::derive_builder")]
5914pub struct ClockNegedgeTerm {
5915    pub clock_negedge_term: crate::veryl_token::Token, /* (?-u:\b)clock_negedge(?-u:\b) */
5916}
5917
5918///
5919/// Type derived for non-terminal ClockNegedgeToken
5920///
5921#[allow(dead_code)]
5922#[derive(Builder, Debug, Clone)]
5923#[builder(crate = "parol_runtime::derive_builder")]
5924pub struct ClockNegedgeToken {
5925    pub clock_negedge_term: crate::veryl_token::Token,
5926    pub comments: Box<Comments>,
5927}
5928
5929///
5930/// Type derived for non-terminal ClockPosedge
5931///
5932#[allow(dead_code)]
5933#[derive(Builder, Debug, Clone)]
5934#[builder(crate = "parol_runtime::derive_builder")]
5935pub struct ClockPosedge {
5936    pub clock_posedge_token: crate::veryl_token::VerylToken,
5937}
5938
5939///
5940/// Type derived for non-terminal ClockPosedgeTerm
5941///
5942#[allow(dead_code)]
5943#[derive(Builder, Debug, Clone)]
5944#[builder(crate = "parol_runtime::derive_builder")]
5945pub struct ClockPosedgeTerm {
5946    pub clock_posedge_term: crate::veryl_token::Token, /* (?-u:\b)clock_posedge(?-u:\b) */
5947}
5948
5949///
5950/// Type derived for non-terminal ClockPosedgeToken
5951///
5952#[allow(dead_code)]
5953#[derive(Builder, Debug, Clone)]
5954#[builder(crate = "parol_runtime::derive_builder")]
5955pub struct ClockPosedgeToken {
5956    pub clock_posedge_term: crate::veryl_token::Token,
5957    pub comments: Box<Comments>,
5958}
5959
5960///
5961/// Type derived for non-terminal ClockTerm
5962///
5963#[allow(dead_code)]
5964#[derive(Builder, Debug, Clone)]
5965#[builder(crate = "parol_runtime::derive_builder")]
5966pub struct ClockTerm {
5967    pub clock_term: crate::veryl_token::Token, /* (?-u:\b)clock(?-u:\b) */
5968}
5969
5970///
5971/// Type derived for non-terminal ClockToken
5972///
5973#[allow(dead_code)]
5974#[derive(Builder, Debug, Clone)]
5975#[builder(crate = "parol_runtime::derive_builder")]
5976pub struct ClockToken {
5977    pub clock_term: crate::veryl_token::Token,
5978    pub comments: Box<Comments>,
5979}
5980
5981///
5982/// Type derived for non-terminal Colon
5983///
5984#[allow(dead_code)]
5985#[derive(Builder, Debug, Clone)]
5986#[builder(crate = "parol_runtime::derive_builder")]
5987pub struct Colon {
5988    pub colon_token: crate::veryl_token::VerylToken,
5989}
5990
5991///
5992/// Type derived for non-terminal ColonColon
5993///
5994#[allow(dead_code)]
5995#[derive(Builder, Debug, Clone)]
5996#[builder(crate = "parol_runtime::derive_builder")]
5997pub struct ColonColon {
5998    pub colon_colon_token: crate::veryl_token::VerylToken,
5999}
6000
6001///
6002/// Type derived for non-terminal ColonColonLAngle
6003///
6004#[allow(dead_code)]
6005#[derive(Builder, Debug, Clone)]
6006#[builder(crate = "parol_runtime::derive_builder")]
6007pub struct ColonColonLAngle {
6008    pub colon_colon_l_angle_token: crate::veryl_token::VerylToken,
6009}
6010
6011///
6012/// Type derived for non-terminal ColonColonLAngleTerm
6013///
6014#[allow(dead_code)]
6015#[derive(Builder, Debug, Clone)]
6016#[builder(crate = "parol_runtime::derive_builder")]
6017pub struct ColonColonLAngleTerm {
6018    pub colon_colon_l_angle_term: crate::veryl_token::Token, /* ::< */
6019}
6020
6021///
6022/// Type derived for non-terminal ColonColonLAngleToken
6023///
6024#[allow(dead_code)]
6025#[derive(Builder, Debug, Clone)]
6026#[builder(crate = "parol_runtime::derive_builder")]
6027pub struct ColonColonLAngleToken {
6028    pub colon_colon_l_angle_term: crate::veryl_token::Token,
6029    pub comments: Box<Comments>,
6030}
6031
6032///
6033/// Type derived for non-terminal ColonColonTerm
6034///
6035#[allow(dead_code)]
6036#[derive(Builder, Debug, Clone)]
6037#[builder(crate = "parol_runtime::derive_builder")]
6038pub struct ColonColonTerm {
6039    pub colon_colon_term: crate::veryl_token::Token, /* :: */
6040}
6041
6042///
6043/// Type derived for non-terminal ColonColonToken
6044///
6045#[allow(dead_code)]
6046#[derive(Builder, Debug, Clone)]
6047#[builder(crate = "parol_runtime::derive_builder")]
6048pub struct ColonColonToken {
6049    pub colon_colon_term: crate::veryl_token::Token,
6050    pub comments: Box<Comments>,
6051}
6052
6053///
6054/// Type derived for non-terminal ColonTerm
6055///
6056#[allow(dead_code)]
6057#[derive(Builder, Debug, Clone)]
6058#[builder(crate = "parol_runtime::derive_builder")]
6059pub struct ColonTerm {
6060    pub colon_term: crate::veryl_token::Token, /* : */
6061}
6062
6063///
6064/// Type derived for non-terminal ColonToken
6065///
6066#[allow(dead_code)]
6067#[derive(Builder, Debug, Clone)]
6068#[builder(crate = "parol_runtime::derive_builder")]
6069pub struct ColonToken {
6070    pub colon_term: crate::veryl_token::Token,
6071    pub comments: Box<Comments>,
6072}
6073
6074///
6075/// Type derived for non-terminal Comma
6076///
6077#[allow(dead_code)]
6078#[derive(Builder, Debug, Clone)]
6079#[builder(crate = "parol_runtime::derive_builder")]
6080pub struct Comma {
6081    pub comma_token: crate::veryl_token::VerylToken,
6082}
6083
6084///
6085/// Type derived for non-terminal CommaTerm
6086///
6087#[allow(dead_code)]
6088#[derive(Builder, Debug, Clone)]
6089#[builder(crate = "parol_runtime::derive_builder")]
6090pub struct CommaTerm {
6091    pub comma_term: crate::veryl_token::Token, /* , */
6092}
6093
6094///
6095/// Type derived for non-terminal CommaToken
6096///
6097#[allow(dead_code)]
6098#[derive(Builder, Debug, Clone)]
6099#[builder(crate = "parol_runtime::derive_builder")]
6100pub struct CommaToken {
6101    pub comma_term: crate::veryl_token::Token,
6102    pub comments: Box<Comments>,
6103}
6104
6105///
6106/// Type derived for non-terminal Comments
6107///
6108#[allow(dead_code)]
6109#[derive(Builder, Debug, Clone)]
6110#[builder(crate = "parol_runtime::derive_builder")]
6111pub struct Comments {
6112    pub comments_opt: Option<CommentsOpt>,
6113}
6114
6115///
6116/// Type derived for non-terminal CommentsOpt
6117///
6118#[allow(dead_code)]
6119#[derive(Builder, Debug, Clone)]
6120#[builder(crate = "parol_runtime::derive_builder")]
6121pub struct CommentsOpt {
6122    pub comments_term: Box<CommentsTerm>,
6123}
6124
6125///
6126/// Type derived for non-terminal CommentsTerm
6127///
6128#[allow(dead_code)]
6129#[derive(Builder, Debug, Clone)]
6130#[builder(crate = "parol_runtime::derive_builder")]
6131pub struct CommentsTerm {
6132    pub comments_term: crate::veryl_token::Token, /* (?:(?:(?://.*(?:\r\n|\r|\n|$))|(?:(?ms)/\u{2a}.*?\u{2a}/))\s*)+ */
6133}
6134
6135///
6136/// Type derived for non-terminal ConcatenationItem
6137///
6138#[allow(dead_code)]
6139#[derive(Builder, Debug, Clone)]
6140#[builder(crate = "parol_runtime::derive_builder")]
6141pub struct ConcatenationItem {
6142    pub expression: Box<Expression>,
6143    pub concatenation_item_opt: Option<ConcatenationItemOpt>,
6144}
6145
6146///
6147/// Type derived for non-terminal ConcatenationItemOpt
6148///
6149#[allow(dead_code)]
6150#[derive(Builder, Debug, Clone)]
6151#[builder(crate = "parol_runtime::derive_builder")]
6152pub struct ConcatenationItemOpt {
6153    pub repeat: Box<Repeat>,
6154    pub expression: Box<Expression>,
6155}
6156
6157///
6158/// Type derived for non-terminal ConcatenationList
6159///
6160#[allow(dead_code)]
6161#[derive(Builder, Debug, Clone)]
6162#[builder(crate = "parol_runtime::derive_builder")]
6163pub struct ConcatenationList {
6164    pub concatenation_item: Box<ConcatenationItem>,
6165    pub concatenation_list_list: Vec<ConcatenationListList>,
6166    pub concatenation_list_opt: Option<ConcatenationListOpt>,
6167}
6168
6169///
6170/// Type derived for non-terminal ConcatenationListList
6171///
6172#[allow(dead_code)]
6173#[derive(Builder, Debug, Clone)]
6174#[builder(crate = "parol_runtime::derive_builder")]
6175pub struct ConcatenationListList {
6176    pub comma: Box<Comma>,
6177    pub concatenation_item: Box<ConcatenationItem>,
6178}
6179
6180///
6181/// Type derived for non-terminal ConcatenationListOpt
6182///
6183#[allow(dead_code)]
6184#[derive(Builder, Debug, Clone)]
6185#[builder(crate = "parol_runtime::derive_builder")]
6186pub struct ConcatenationListOpt {
6187    pub comma: Box<Comma>,
6188}
6189
6190///
6191/// Type derived for non-terminal Const
6192///
6193#[allow(dead_code)]
6194#[derive(Builder, Debug, Clone)]
6195#[builder(crate = "parol_runtime::derive_builder")]
6196pub struct Const {
6197    pub const_token: crate::veryl_token::VerylToken,
6198}
6199
6200///
6201/// Type derived for non-terminal ConstDeclaration
6202///
6203#[allow(dead_code)]
6204#[derive(Builder, Debug, Clone)]
6205#[builder(crate = "parol_runtime::derive_builder")]
6206pub struct ConstDeclaration {
6207    pub r#const: Box<Const>,
6208    pub identifier: Box<Identifier>,
6209    pub colon: Box<Colon>,
6210    pub const_declaration_group: Box<ConstDeclarationGroup>,
6211    pub equ: Box<Equ>,
6212    pub expression: Box<Expression>,
6213    pub semicolon: Box<Semicolon>,
6214}
6215
6216///
6217/// Type derived for non-terminal ConstDeclarationGroup
6218///
6219#[allow(dead_code)]
6220#[derive(Debug, Clone)]
6221pub enum ConstDeclarationGroup {
6222    ArrayType(ConstDeclarationGroupArrayType),
6223    Type(ConstDeclarationGroupType),
6224}
6225
6226///
6227/// Type derived for non-terminal ConstTerm
6228///
6229#[allow(dead_code)]
6230#[derive(Builder, Debug, Clone)]
6231#[builder(crate = "parol_runtime::derive_builder")]
6232pub struct ConstTerm {
6233    pub const_term: crate::veryl_token::Token, /* (?-u:\b)const(?-u:\b) */
6234}
6235
6236///
6237/// Type derived for non-terminal ConstToken
6238///
6239#[allow(dead_code)]
6240#[derive(Builder, Debug, Clone)]
6241#[builder(crate = "parol_runtime::derive_builder")]
6242pub struct ConstToken {
6243    pub const_term: crate::veryl_token::Token,
6244    pub comments: Box<Comments>,
6245}
6246
6247///
6248/// Type derived for non-terminal Converse
6249///
6250#[allow(dead_code)]
6251#[derive(Builder, Debug, Clone)]
6252#[builder(crate = "parol_runtime::derive_builder")]
6253pub struct Converse {
6254    pub converse_token: crate::veryl_token::VerylToken,
6255}
6256
6257///
6258/// Type derived for non-terminal ConverseTerm
6259///
6260#[allow(dead_code)]
6261#[derive(Builder, Debug, Clone)]
6262#[builder(crate = "parol_runtime::derive_builder")]
6263pub struct ConverseTerm {
6264    pub converse_term: crate::veryl_token::Token, /* (?-u:\b)converse(?-u:\b) */
6265}
6266
6267///
6268/// Type derived for non-terminal ConverseToken
6269///
6270#[allow(dead_code)]
6271#[derive(Builder, Debug, Clone)]
6272#[builder(crate = "parol_runtime::derive_builder")]
6273pub struct ConverseToken {
6274    pub converse_term: crate::veryl_token::Token,
6275    pub comments: Box<Comments>,
6276}
6277
6278///
6279/// Type derived for non-terminal Defaul
6280///
6281#[allow(dead_code)]
6282#[derive(Builder, Debug, Clone)]
6283#[builder(crate = "parol_runtime::derive_builder")]
6284pub struct Defaul {
6285    pub default_token: crate::veryl_token::VerylToken,
6286}
6287
6288///
6289/// Type derived for non-terminal DefaultTerm
6290///
6291#[allow(dead_code)]
6292#[derive(Builder, Debug, Clone)]
6293#[builder(crate = "parol_runtime::derive_builder")]
6294pub struct DefaultTerm {
6295    pub default_term: crate::veryl_token::Token, /* (?-u:\b)default(?-u:\b) */
6296}
6297
6298///
6299/// Type derived for non-terminal DefaultToken
6300///
6301#[allow(dead_code)]
6302#[derive(Builder, Debug, Clone)]
6303#[builder(crate = "parol_runtime::derive_builder")]
6304pub struct DefaultToken {
6305    pub default_term: crate::veryl_token::Token,
6306    pub comments: Box<Comments>,
6307}
6308
6309///
6310/// Type derived for non-terminal DescriptionGroup
6311///
6312#[allow(dead_code)]
6313#[derive(Builder, Debug, Clone)]
6314#[builder(crate = "parol_runtime::derive_builder")]
6315pub struct DescriptionGroup {
6316    pub description_group_list: Vec<DescriptionGroupList>,
6317    pub description_group_group: Box<DescriptionGroupGroup>,
6318}
6319
6320///
6321/// Type derived for non-terminal DescriptionGroupGroup
6322///
6323#[allow(dead_code)]
6324#[derive(Debug, Clone)]
6325pub enum DescriptionGroupGroup {
6326    LBraceDescriptionGroupGroupListRBrace(
6327        DescriptionGroupGroupLBraceDescriptionGroupGroupListRBrace,
6328    ),
6329    DescriptionItem(DescriptionGroupGroupDescriptionItem),
6330}
6331
6332///
6333/// Type derived for non-terminal DescriptionGroupGroupList
6334///
6335#[allow(dead_code)]
6336#[derive(Builder, Debug, Clone)]
6337#[builder(crate = "parol_runtime::derive_builder")]
6338pub struct DescriptionGroupGroupList {
6339    pub description_group: Box<DescriptionGroup>,
6340}
6341
6342///
6343/// Type derived for non-terminal DescriptionGroupList
6344///
6345#[allow(dead_code)]
6346#[derive(Builder, Debug, Clone)]
6347#[builder(crate = "parol_runtime::derive_builder")]
6348pub struct DescriptionGroupList {
6349    pub attribute: Box<Attribute>,
6350}
6351
6352///
6353/// Type derived for non-terminal DescriptionItem
6354///
6355#[allow(dead_code)]
6356#[derive(Debug, Clone)]
6357pub enum DescriptionItem {
6358    DescriptionItemOptPublicDescriptionItem(DescriptionItemDescriptionItemOptPublicDescriptionItem),
6359    ImportDeclaration(DescriptionItemImportDeclaration),
6360    EmbedDeclaration(DescriptionItemEmbedDeclaration),
6361    IncludeDeclaration(DescriptionItemIncludeDeclaration),
6362}
6363
6364///
6365/// Type derived for non-terminal DescriptionItemOpt
6366///
6367#[allow(dead_code)]
6368#[derive(Builder, Debug, Clone)]
6369#[builder(crate = "parol_runtime::derive_builder")]
6370pub struct DescriptionItemOpt {
6371    pub r#pub: Box<Pub>,
6372}
6373
6374///
6375/// Type derived for non-terminal Direction
6376///
6377#[allow(dead_code)]
6378#[derive(Debug, Clone)]
6379pub enum Direction {
6380    Input(DirectionInput),
6381    Output(DirectionOutput),
6382    Inout(DirectionInout),
6383    Ref(DirectionRef),
6384    Modport(DirectionModport),
6385    Import(DirectionImport),
6386}
6387
6388///
6389/// Type derived for non-terminal DollarIdentifier
6390///
6391#[allow(dead_code)]
6392#[derive(Builder, Debug, Clone)]
6393#[builder(crate = "parol_runtime::derive_builder")]
6394pub struct DollarIdentifier {
6395    pub dollar_identifier_token: crate::veryl_token::VerylToken,
6396}
6397
6398///
6399/// Type derived for non-terminal DollarIdentifierTerm
6400///
6401#[allow(dead_code)]
6402#[derive(Builder, Debug, Clone)]
6403#[builder(crate = "parol_runtime::derive_builder")]
6404pub struct DollarIdentifierTerm {
6405    pub dollar_identifier_term: crate::veryl_token::Token, /* \$[a-zA-Z_][0-9a-zA-Z_$]* */
6406}
6407
6408///
6409/// Type derived for non-terminal DollarIdentifierToken
6410///
6411#[allow(dead_code)]
6412#[derive(Builder, Debug, Clone)]
6413#[builder(crate = "parol_runtime::derive_builder")]
6414pub struct DollarIdentifierToken {
6415    pub dollar_identifier_term: crate::veryl_token::Token,
6416    pub comments: Box<Comments>,
6417}
6418
6419///
6420/// Type derived for non-terminal Dot
6421///
6422#[allow(dead_code)]
6423#[derive(Builder, Debug, Clone)]
6424#[builder(crate = "parol_runtime::derive_builder")]
6425pub struct Dot {
6426    pub dot_token: crate::veryl_token::VerylToken,
6427}
6428
6429///
6430/// Type derived for non-terminal DotDot
6431///
6432#[allow(dead_code)]
6433#[derive(Builder, Debug, Clone)]
6434#[builder(crate = "parol_runtime::derive_builder")]
6435pub struct DotDot {
6436    pub dot_dot_token: crate::veryl_token::VerylToken,
6437}
6438
6439///
6440/// Type derived for non-terminal DotDotEqu
6441///
6442#[allow(dead_code)]
6443#[derive(Builder, Debug, Clone)]
6444#[builder(crate = "parol_runtime::derive_builder")]
6445pub struct DotDotEqu {
6446    pub dot_dot_equ_token: crate::veryl_token::VerylToken,
6447}
6448
6449///
6450/// Type derived for non-terminal DotDotEquTerm
6451///
6452#[allow(dead_code)]
6453#[derive(Builder, Debug, Clone)]
6454#[builder(crate = "parol_runtime::derive_builder")]
6455pub struct DotDotEquTerm {
6456    pub dot_dot_equ_term: crate::veryl_token::Token, /* ..= */
6457}
6458
6459///
6460/// Type derived for non-terminal DotDotEquToken
6461///
6462#[allow(dead_code)]
6463#[derive(Builder, Debug, Clone)]
6464#[builder(crate = "parol_runtime::derive_builder")]
6465pub struct DotDotEquToken {
6466    pub dot_dot_equ_term: crate::veryl_token::Token,
6467    pub comments: Box<Comments>,
6468}
6469
6470///
6471/// Type derived for non-terminal DotDotTerm
6472///
6473#[allow(dead_code)]
6474#[derive(Builder, Debug, Clone)]
6475#[builder(crate = "parol_runtime::derive_builder")]
6476pub struct DotDotTerm {
6477    pub dot_dot_term: crate::veryl_token::Token, /* .. */
6478}
6479
6480///
6481/// Type derived for non-terminal DotDotToken
6482///
6483#[allow(dead_code)]
6484#[derive(Builder, Debug, Clone)]
6485#[builder(crate = "parol_runtime::derive_builder")]
6486pub struct DotDotToken {
6487    pub dot_dot_term: crate::veryl_token::Token,
6488    pub comments: Box<Comments>,
6489}
6490
6491///
6492/// Type derived for non-terminal DotTerm
6493///
6494#[allow(dead_code)]
6495#[derive(Builder, Debug, Clone)]
6496#[builder(crate = "parol_runtime::derive_builder")]
6497pub struct DotTerm {
6498    pub dot_term: crate::veryl_token::Token, /* . */
6499}
6500
6501///
6502/// Type derived for non-terminal DotToken
6503///
6504#[allow(dead_code)]
6505#[derive(Builder, Debug, Clone)]
6506#[builder(crate = "parol_runtime::derive_builder")]
6507pub struct DotToken {
6508    pub dot_term: crate::veryl_token::Token,
6509    pub comments: Box<Comments>,
6510}
6511
6512///
6513/// Type derived for non-terminal Else
6514///
6515#[allow(dead_code)]
6516#[derive(Builder, Debug, Clone)]
6517#[builder(crate = "parol_runtime::derive_builder")]
6518pub struct Else {
6519    pub else_token: crate::veryl_token::VerylToken,
6520}
6521
6522///
6523/// Type derived for non-terminal ElseTerm
6524///
6525#[allow(dead_code)]
6526#[derive(Builder, Debug, Clone)]
6527#[builder(crate = "parol_runtime::derive_builder")]
6528pub struct ElseTerm {
6529    pub else_term: crate::veryl_token::Token, /* (?-u:\b)else(?-u:\b) */
6530}
6531
6532///
6533/// Type derived for non-terminal ElseToken
6534///
6535#[allow(dead_code)]
6536#[derive(Builder, Debug, Clone)]
6537#[builder(crate = "parol_runtime::derive_builder")]
6538pub struct ElseToken {
6539    pub else_term: crate::veryl_token::Token,
6540    pub comments: Box<Comments>,
6541}
6542
6543///
6544/// Type derived for non-terminal Embed
6545///
6546#[allow(dead_code)]
6547#[derive(Builder, Debug, Clone)]
6548#[builder(crate = "parol_runtime::derive_builder")]
6549pub struct Embed {
6550    pub embed_token: crate::veryl_token::VerylToken,
6551}
6552
6553///
6554/// Type derived for non-terminal EmbedContent
6555///
6556#[allow(dead_code)]
6557#[derive(Builder, Debug, Clone)]
6558#[builder(crate = "parol_runtime::derive_builder")]
6559pub struct EmbedContent {
6560    pub embed_content_token: crate::veryl_token::VerylToken,
6561}
6562
6563///
6564/// Type derived for non-terminal EmbedContentToken
6565///
6566#[allow(dead_code)]
6567#[derive(Builder, Debug, Clone)]
6568#[builder(crate = "parol_runtime::derive_builder")]
6569pub struct EmbedContentToken {
6570    pub l_brace_term: Box<LBraceTerm>,
6571    pub l_brace_term0: Box<LBraceTerm>,
6572    pub l_brace_term1: Box<LBraceTerm>,
6573    pub embed_content_token_list: Vec<EmbedContentTokenList>,
6574    pub r_brace_term: Box<RBraceTerm>,
6575    pub r_brace_term0: Box<RBraceTerm>,
6576    pub r_brace_term1: Box<RBraceTerm>,
6577    pub comments: Box<Comments>,
6578}
6579
6580///
6581/// Type derived for non-terminal EmbedContentTokenList
6582///
6583#[allow(dead_code)]
6584#[derive(Builder, Debug, Clone)]
6585#[builder(crate = "parol_runtime::derive_builder")]
6586pub struct EmbedContentTokenList {
6587    pub embed_item: Box<EmbedItem>,
6588}
6589
6590///
6591/// Type derived for non-terminal EmbedDeclaration
6592///
6593#[allow(dead_code)]
6594#[derive(Builder, Debug, Clone)]
6595#[builder(crate = "parol_runtime::derive_builder")]
6596pub struct EmbedDeclaration {
6597    pub embed: Box<Embed>,
6598    pub l_paren: Box<LParen>,
6599    pub identifier: Box<Identifier>,
6600    pub r_paren: Box<RParen>,
6601    pub identifier0: Box<Identifier>,
6602    pub embed_content: Box<EmbedContent>,
6603}
6604
6605///
6606/// Type derived for non-terminal EmbedItem
6607///
6608#[allow(dead_code)]
6609#[derive(Debug, Clone)]
6610pub enum EmbedItem {
6611    LBraceTermEmbedItemListRBraceTerm(EmbedItemLBraceTermEmbedItemListRBraceTerm),
6612    AnyTerm(EmbedItemAnyTerm),
6613}
6614
6615///
6616/// Type derived for non-terminal EmbedItemList
6617///
6618#[allow(dead_code)]
6619#[derive(Builder, Debug, Clone)]
6620#[builder(crate = "parol_runtime::derive_builder")]
6621pub struct EmbedItemList {
6622    pub embed_item: Box<EmbedItem>,
6623}
6624
6625///
6626/// Type derived for non-terminal EmbedTerm
6627///
6628#[allow(dead_code)]
6629#[derive(Builder, Debug, Clone)]
6630#[builder(crate = "parol_runtime::derive_builder")]
6631pub struct EmbedTerm {
6632    pub embed_term: crate::veryl_token::Token, /* (?-u:\b)embed(?-u:\b) */
6633}
6634
6635///
6636/// Type derived for non-terminal EmbedToken
6637///
6638#[allow(dead_code)]
6639#[derive(Builder, Debug, Clone)]
6640#[builder(crate = "parol_runtime::derive_builder")]
6641pub struct EmbedToken {
6642    pub embed_term: crate::veryl_token::Token,
6643    pub comments: Box<Comments>,
6644}
6645
6646///
6647/// Type derived for non-terminal Enum
6648///
6649#[allow(dead_code)]
6650#[derive(Builder, Debug, Clone)]
6651#[builder(crate = "parol_runtime::derive_builder")]
6652pub struct Enum {
6653    pub enum_token: crate::veryl_token::VerylToken,
6654}
6655
6656///
6657/// Type derived for non-terminal EnumDeclaration
6658///
6659#[allow(dead_code)]
6660#[derive(Builder, Debug, Clone)]
6661#[builder(crate = "parol_runtime::derive_builder")]
6662pub struct EnumDeclaration {
6663    pub r#enum: Box<Enum>,
6664    pub identifier: Box<Identifier>,
6665    pub enum_declaration_opt: Option<EnumDeclarationOpt>,
6666    pub l_brace: Box<LBrace>,
6667    pub enum_list: Box<EnumList>,
6668    pub r_brace: Box<RBrace>,
6669}
6670
6671///
6672/// Type derived for non-terminal EnumDeclarationOpt
6673///
6674#[allow(dead_code)]
6675#[derive(Builder, Debug, Clone)]
6676#[builder(crate = "parol_runtime::derive_builder")]
6677pub struct EnumDeclarationOpt {
6678    pub colon: Box<Colon>,
6679    pub scalar_type: Box<ScalarType>,
6680}
6681
6682///
6683/// Type derived for non-terminal EnumGroup
6684///
6685#[allow(dead_code)]
6686#[derive(Builder, Debug, Clone)]
6687#[builder(crate = "parol_runtime::derive_builder")]
6688pub struct EnumGroup {
6689    pub enum_group_list: Vec<EnumGroupList>,
6690    pub enum_group_group: Box<EnumGroupGroup>,
6691}
6692
6693///
6694/// Type derived for non-terminal EnumGroupGroup
6695///
6696#[allow(dead_code)]
6697#[derive(Debug, Clone)]
6698pub enum EnumGroupGroup {
6699    LBraceEnumListRBrace(EnumGroupGroupLBraceEnumListRBrace),
6700    EnumItem(EnumGroupGroupEnumItem),
6701}
6702
6703///
6704/// Type derived for non-terminal EnumGroupList
6705///
6706#[allow(dead_code)]
6707#[derive(Builder, Debug, Clone)]
6708#[builder(crate = "parol_runtime::derive_builder")]
6709pub struct EnumGroupList {
6710    pub attribute: Box<Attribute>,
6711}
6712
6713///
6714/// Type derived for non-terminal EnumItem
6715///
6716#[allow(dead_code)]
6717#[derive(Builder, Debug, Clone)]
6718#[builder(crate = "parol_runtime::derive_builder")]
6719pub struct EnumItem {
6720    pub identifier: Box<Identifier>,
6721    pub enum_item_opt: Option<EnumItemOpt>,
6722}
6723
6724///
6725/// Type derived for non-terminal EnumItemOpt
6726///
6727#[allow(dead_code)]
6728#[derive(Builder, Debug, Clone)]
6729#[builder(crate = "parol_runtime::derive_builder")]
6730pub struct EnumItemOpt {
6731    pub equ: Box<Equ>,
6732    pub expression: Box<Expression>,
6733}
6734
6735///
6736/// Type derived for non-terminal EnumList
6737///
6738#[allow(dead_code)]
6739#[derive(Builder, Debug, Clone)]
6740#[builder(crate = "parol_runtime::derive_builder")]
6741pub struct EnumList {
6742    pub enum_group: Box<EnumGroup>,
6743    pub enum_list_list: Vec<EnumListList>,
6744    pub enum_list_opt: Option<EnumListOpt>,
6745}
6746
6747///
6748/// Type derived for non-terminal EnumListList
6749///
6750#[allow(dead_code)]
6751#[derive(Builder, Debug, Clone)]
6752#[builder(crate = "parol_runtime::derive_builder")]
6753pub struct EnumListList {
6754    pub comma: Box<Comma>,
6755    pub enum_group: Box<EnumGroup>,
6756}
6757
6758///
6759/// Type derived for non-terminal EnumListOpt
6760///
6761#[allow(dead_code)]
6762#[derive(Builder, Debug, Clone)]
6763#[builder(crate = "parol_runtime::derive_builder")]
6764pub struct EnumListOpt {
6765    pub comma: Box<Comma>,
6766}
6767
6768///
6769/// Type derived for non-terminal EnumTerm
6770///
6771#[allow(dead_code)]
6772#[derive(Builder, Debug, Clone)]
6773#[builder(crate = "parol_runtime::derive_builder")]
6774pub struct EnumTerm {
6775    pub enum_term: crate::veryl_token::Token, /* (?-u:\b)enum(?-u:\b) */
6776}
6777
6778///
6779/// Type derived for non-terminal EnumToken
6780///
6781#[allow(dead_code)]
6782#[derive(Builder, Debug, Clone)]
6783#[builder(crate = "parol_runtime::derive_builder")]
6784pub struct EnumToken {
6785    pub enum_term: crate::veryl_token::Token,
6786    pub comments: Box<Comments>,
6787}
6788
6789///
6790/// Type derived for non-terminal Equ
6791///
6792#[allow(dead_code)]
6793#[derive(Builder, Debug, Clone)]
6794#[builder(crate = "parol_runtime::derive_builder")]
6795pub struct Equ {
6796    pub equ_token: crate::veryl_token::VerylToken,
6797}
6798
6799///
6800/// Type derived for non-terminal EquTerm
6801///
6802#[allow(dead_code)]
6803#[derive(Builder, Debug, Clone)]
6804#[builder(crate = "parol_runtime::derive_builder")]
6805pub struct EquTerm {
6806    pub equ_term: crate::veryl_token::Token, /* = */
6807}
6808
6809///
6810/// Type derived for non-terminal EquToken
6811///
6812#[allow(dead_code)]
6813#[derive(Builder, Debug, Clone)]
6814#[builder(crate = "parol_runtime::derive_builder")]
6815pub struct EquToken {
6816    pub equ_term: crate::veryl_token::Token,
6817    pub comments: Box<Comments>,
6818}
6819
6820///
6821/// Type derived for non-terminal Exponent
6822///
6823#[allow(dead_code)]
6824#[derive(Builder, Debug, Clone)]
6825#[builder(crate = "parol_runtime::derive_builder")]
6826pub struct Exponent {
6827    pub exponent_token: crate::veryl_token::VerylToken,
6828}
6829
6830///
6831/// Type derived for non-terminal ExponentTerm
6832///
6833#[allow(dead_code)]
6834#[derive(Builder, Debug, Clone)]
6835#[builder(crate = "parol_runtime::derive_builder")]
6836pub struct ExponentTerm {
6837    pub exponent_term: crate::veryl_token::Token, /* [0-9]+(?:_[0-9]+)*\.[0-9]+(?:_[0-9]+)*[eE][+-]?[0-9]+(?:_[0-9]+)* */
6838}
6839
6840///
6841/// Type derived for non-terminal ExponentToken
6842///
6843#[allow(dead_code)]
6844#[derive(Builder, Debug, Clone)]
6845#[builder(crate = "parol_runtime::derive_builder")]
6846pub struct ExponentToken {
6847    pub exponent_term: crate::veryl_token::Token,
6848    pub comments: Box<Comments>,
6849}
6850
6851///
6852/// Type derived for non-terminal Export
6853///
6854#[allow(dead_code)]
6855#[derive(Builder, Debug, Clone)]
6856#[builder(crate = "parol_runtime::derive_builder")]
6857pub struct Export {
6858    pub export_token: crate::veryl_token::VerylToken,
6859}
6860
6861///
6862/// Type derived for non-terminal ExportDeclaration
6863///
6864#[allow(dead_code)]
6865#[derive(Builder, Debug, Clone)]
6866#[builder(crate = "parol_runtime::derive_builder")]
6867pub struct ExportDeclaration {
6868    pub export: Box<Export>,
6869    pub export_declaration_group: Box<ExportDeclarationGroup>,
6870    pub semicolon: Box<Semicolon>,
6871}
6872
6873///
6874/// Type derived for non-terminal ExportDeclarationGroup
6875///
6876#[allow(dead_code)]
6877#[derive(Debug, Clone)]
6878pub enum ExportDeclarationGroup {
6879    Star(ExportDeclarationGroupStar),
6880    ScopedIdentifierExportDeclarationOpt(
6881        ExportDeclarationGroupScopedIdentifierExportDeclarationOpt,
6882    ),
6883}
6884
6885///
6886/// Type derived for non-terminal ExportDeclarationOpt
6887///
6888#[allow(dead_code)]
6889#[derive(Builder, Debug, Clone)]
6890#[builder(crate = "parol_runtime::derive_builder")]
6891pub struct ExportDeclarationOpt {
6892    pub colon_colon: Box<ColonColon>,
6893    pub star: Box<Star>,
6894}
6895
6896///
6897/// Type derived for non-terminal ExportTerm
6898///
6899#[allow(dead_code)]
6900#[derive(Builder, Debug, Clone)]
6901#[builder(crate = "parol_runtime::derive_builder")]
6902pub struct ExportTerm {
6903    pub export_term: crate::veryl_token::Token, /* (?-u:\b)export(?-u:\b) */
6904}
6905
6906///
6907/// Type derived for non-terminal ExportToken
6908///
6909#[allow(dead_code)]
6910#[derive(Builder, Debug, Clone)]
6911#[builder(crate = "parol_runtime::derive_builder")]
6912pub struct ExportToken {
6913    pub export_term: crate::veryl_token::Token,
6914    pub comments: Box<Comments>,
6915}
6916
6917///
6918/// Type derived for non-terminal Expression
6919///
6920#[allow(dead_code)]
6921#[derive(Builder, Debug, Clone)]
6922#[builder(crate = "parol_runtime::derive_builder")]
6923pub struct Expression {
6924    pub expression01: Box<Expression01>,
6925    pub expression_list: Vec<ExpressionList>,
6926}
6927
6928///
6929/// Type derived for non-terminal Expression01
6930///
6931#[allow(dead_code)]
6932#[derive(Builder, Debug, Clone)]
6933#[builder(crate = "parol_runtime::derive_builder")]
6934pub struct Expression01 {
6935    pub expression02: Box<Expression02>,
6936    pub expression01_list: Vec<Expression01List>,
6937}
6938
6939///
6940/// Type derived for non-terminal Expression01List
6941///
6942#[allow(dead_code)]
6943#[derive(Builder, Debug, Clone)]
6944#[builder(crate = "parol_runtime::derive_builder")]
6945pub struct Expression01List {
6946    pub operator02: Box<Operator02>,
6947    pub expression02: Box<Expression02>,
6948}
6949
6950///
6951/// Type derived for non-terminal Expression02
6952///
6953#[allow(dead_code)]
6954#[derive(Builder, Debug, Clone)]
6955#[builder(crate = "parol_runtime::derive_builder")]
6956pub struct Expression02 {
6957    pub expression03: Box<Expression03>,
6958    pub expression02_list: Vec<Expression02List>,
6959}
6960
6961///
6962/// Type derived for non-terminal Expression02List
6963///
6964#[allow(dead_code)]
6965#[derive(Builder, Debug, Clone)]
6966#[builder(crate = "parol_runtime::derive_builder")]
6967pub struct Expression02List {
6968    pub operator03: Box<Operator03>,
6969    pub expression03: Box<Expression03>,
6970}
6971
6972///
6973/// Type derived for non-terminal Expression03
6974///
6975#[allow(dead_code)]
6976#[derive(Builder, Debug, Clone)]
6977#[builder(crate = "parol_runtime::derive_builder")]
6978pub struct Expression03 {
6979    pub expression04: Box<Expression04>,
6980    pub expression03_list: Vec<Expression03List>,
6981}
6982
6983///
6984/// Type derived for non-terminal Expression03List
6985///
6986#[allow(dead_code)]
6987#[derive(Builder, Debug, Clone)]
6988#[builder(crate = "parol_runtime::derive_builder")]
6989pub struct Expression03List {
6990    pub operator04: Box<Operator04>,
6991    pub expression04: Box<Expression04>,
6992}
6993
6994///
6995/// Type derived for non-terminal Expression04
6996///
6997#[allow(dead_code)]
6998#[derive(Builder, Debug, Clone)]
6999#[builder(crate = "parol_runtime::derive_builder")]
7000pub struct Expression04 {
7001    pub expression05: Box<Expression05>,
7002    pub expression04_list: Vec<Expression04List>,
7003}
7004
7005///
7006/// Type derived for non-terminal Expression04List
7007///
7008#[allow(dead_code)]
7009#[derive(Builder, Debug, Clone)]
7010#[builder(crate = "parol_runtime::derive_builder")]
7011pub struct Expression04List {
7012    pub operator05: Box<Operator05>,
7013    pub expression05: Box<Expression05>,
7014}
7015
7016///
7017/// Type derived for non-terminal Expression05
7018///
7019#[allow(dead_code)]
7020#[derive(Builder, Debug, Clone)]
7021#[builder(crate = "parol_runtime::derive_builder")]
7022pub struct Expression05 {
7023    pub expression06: Box<Expression06>,
7024    pub expression05_list: Vec<Expression05List>,
7025}
7026
7027///
7028/// Type derived for non-terminal Expression05List
7029///
7030#[allow(dead_code)]
7031#[derive(Builder, Debug, Clone)]
7032#[builder(crate = "parol_runtime::derive_builder")]
7033pub struct Expression05List {
7034    pub operator06: Box<Operator06>,
7035    pub expression06: Box<Expression06>,
7036}
7037
7038///
7039/// Type derived for non-terminal Expression06
7040///
7041#[allow(dead_code)]
7042#[derive(Builder, Debug, Clone)]
7043#[builder(crate = "parol_runtime::derive_builder")]
7044pub struct Expression06 {
7045    pub expression07: Box<Expression07>,
7046    pub expression06_list: Vec<Expression06List>,
7047}
7048
7049///
7050/// Type derived for non-terminal Expression06List
7051///
7052#[allow(dead_code)]
7053#[derive(Builder, Debug, Clone)]
7054#[builder(crate = "parol_runtime::derive_builder")]
7055pub struct Expression06List {
7056    pub operator07: Box<Operator07>,
7057    pub expression07: Box<Expression07>,
7058}
7059
7060///
7061/// Type derived for non-terminal Expression07
7062///
7063#[allow(dead_code)]
7064#[derive(Builder, Debug, Clone)]
7065#[builder(crate = "parol_runtime::derive_builder")]
7066pub struct Expression07 {
7067    pub expression08: Box<Expression08>,
7068    pub expression07_list: Vec<Expression07List>,
7069}
7070
7071///
7072/// Type derived for non-terminal Expression07List
7073///
7074#[allow(dead_code)]
7075#[derive(Builder, Debug, Clone)]
7076#[builder(crate = "parol_runtime::derive_builder")]
7077pub struct Expression07List {
7078    pub operator08: Box<Operator08>,
7079    pub expression08: Box<Expression08>,
7080}
7081
7082///
7083/// Type derived for non-terminal Expression08
7084///
7085#[allow(dead_code)]
7086#[derive(Builder, Debug, Clone)]
7087#[builder(crate = "parol_runtime::derive_builder")]
7088pub struct Expression08 {
7089    pub expression09: Box<Expression09>,
7090    pub expression08_list: Vec<Expression08List>,
7091}
7092
7093///
7094/// Type derived for non-terminal Expression08List
7095///
7096#[allow(dead_code)]
7097#[derive(Builder, Debug, Clone)]
7098#[builder(crate = "parol_runtime::derive_builder")]
7099pub struct Expression08List {
7100    pub operator09: Box<Operator09>,
7101    pub expression09: Box<Expression09>,
7102}
7103
7104///
7105/// Type derived for non-terminal Expression09
7106///
7107#[allow(dead_code)]
7108#[derive(Builder, Debug, Clone)]
7109#[builder(crate = "parol_runtime::derive_builder")]
7110pub struct Expression09 {
7111    pub expression10: Box<Expression10>,
7112    pub expression09_list: Vec<Expression09List>,
7113}
7114
7115///
7116/// Type derived for non-terminal Expression09List
7117///
7118#[allow(dead_code)]
7119#[derive(Builder, Debug, Clone)]
7120#[builder(crate = "parol_runtime::derive_builder")]
7121pub struct Expression09List {
7122    pub expression09_list_group: Box<Expression09ListGroup>,
7123    pub expression10: Box<Expression10>,
7124}
7125
7126///
7127/// Type derived for non-terminal Expression09ListGroup
7128///
7129#[allow(dead_code)]
7130#[derive(Debug, Clone)]
7131pub enum Expression09ListGroup {
7132    Operator10(Expression09ListGroupOperator10),
7133    Star(Expression09ListGroupStar),
7134}
7135
7136///
7137/// Type derived for non-terminal Expression10
7138///
7139#[allow(dead_code)]
7140#[derive(Builder, Debug, Clone)]
7141#[builder(crate = "parol_runtime::derive_builder")]
7142pub struct Expression10 {
7143    pub expression11: Box<Expression11>,
7144    pub expression10_list: Vec<Expression10List>,
7145}
7146
7147///
7148/// Type derived for non-terminal Expression10List
7149///
7150#[allow(dead_code)]
7151#[derive(Builder, Debug, Clone)]
7152#[builder(crate = "parol_runtime::derive_builder")]
7153pub struct Expression10List {
7154    pub operator11: Box<Operator11>,
7155    pub expression11: Box<Expression11>,
7156}
7157
7158///
7159/// Type derived for non-terminal Expression11
7160///
7161#[allow(dead_code)]
7162#[derive(Builder, Debug, Clone)]
7163#[builder(crate = "parol_runtime::derive_builder")]
7164pub struct Expression11 {
7165    pub expression12: Box<Expression12>,
7166    pub expression11_opt: Option<Expression11Opt>,
7167}
7168
7169///
7170/// Type derived for non-terminal Expression11Opt
7171///
7172#[allow(dead_code)]
7173#[derive(Builder, Debug, Clone)]
7174#[builder(crate = "parol_runtime::derive_builder")]
7175pub struct Expression11Opt {
7176    pub r#as: Box<As>,
7177    pub casting_type: Box<CastingType>,
7178}
7179
7180///
7181/// Type derived for non-terminal Expression12
7182///
7183#[allow(dead_code)]
7184#[derive(Builder, Debug, Clone)]
7185#[builder(crate = "parol_runtime::derive_builder")]
7186pub struct Expression12 {
7187    pub expression12_list: Vec<Expression12List>,
7188    pub factor: Box<Factor>,
7189}
7190
7191///
7192/// Type derived for non-terminal Expression12List
7193///
7194#[allow(dead_code)]
7195#[derive(Builder, Debug, Clone)]
7196#[builder(crate = "parol_runtime::derive_builder")]
7197pub struct Expression12List {
7198    pub expression12_list_group: Box<Expression12ListGroup>,
7199}
7200
7201///
7202/// Type derived for non-terminal Expression12ListGroup
7203///
7204#[allow(dead_code)]
7205#[derive(Debug, Clone)]
7206pub enum Expression12ListGroup {
7207    UnaryOperator(Expression12ListGroupUnaryOperator),
7208    Operator09(Expression12ListGroupOperator09),
7209    Operator05(Expression12ListGroupOperator05),
7210    Operator03(Expression12ListGroupOperator03),
7211    Operator04(Expression12ListGroupOperator04),
7212}
7213
7214///
7215/// Type derived for non-terminal ExpressionIdentifier
7216///
7217#[allow(dead_code)]
7218#[derive(Builder, Debug, Clone)]
7219#[builder(crate = "parol_runtime::derive_builder")]
7220pub struct ExpressionIdentifier {
7221    pub scoped_identifier: Box<ScopedIdentifier>,
7222    pub expression_identifier_opt: Option<ExpressionIdentifierOpt>,
7223    pub expression_identifier_list: Vec<ExpressionIdentifierList>,
7224    pub expression_identifier_list0: Vec<ExpressionIdentifierList0>,
7225}
7226
7227///
7228/// Type derived for non-terminal ExpressionIdentifierList
7229///
7230#[allow(dead_code)]
7231#[derive(Builder, Debug, Clone)]
7232#[builder(crate = "parol_runtime::derive_builder")]
7233pub struct ExpressionIdentifierList {
7234    pub select: Box<Select>,
7235}
7236
7237///
7238/// Type derived for non-terminal ExpressionIdentifierList0
7239///
7240#[allow(dead_code)]
7241#[derive(Builder, Debug, Clone)]
7242#[builder(crate = "parol_runtime::derive_builder")]
7243pub struct ExpressionIdentifierList0 {
7244    pub dot: Box<Dot>,
7245    pub identifier: Box<Identifier>,
7246    pub expression_identifier_list0_list: Vec<ExpressionIdentifierList0List>,
7247}
7248
7249///
7250/// Type derived for non-terminal ExpressionIdentifierList0List
7251///
7252#[allow(dead_code)]
7253#[derive(Builder, Debug, Clone)]
7254#[builder(crate = "parol_runtime::derive_builder")]
7255pub struct ExpressionIdentifierList0List {
7256    pub select: Box<Select>,
7257}
7258
7259///
7260/// Type derived for non-terminal ExpressionIdentifierOpt
7261///
7262#[allow(dead_code)]
7263#[derive(Builder, Debug, Clone)]
7264#[builder(crate = "parol_runtime::derive_builder")]
7265pub struct ExpressionIdentifierOpt {
7266    pub width: Box<Width>,
7267}
7268
7269///
7270/// Type derived for non-terminal ExpressionList
7271///
7272#[allow(dead_code)]
7273#[derive(Builder, Debug, Clone)]
7274#[builder(crate = "parol_runtime::derive_builder")]
7275pub struct ExpressionList {
7276    pub operator01: Box<Operator01>,
7277    pub expression01: Box<Expression01>,
7278}
7279
7280///
7281/// Type derived for non-terminal F32
7282///
7283#[allow(dead_code)]
7284#[derive(Builder, Debug, Clone)]
7285#[builder(crate = "parol_runtime::derive_builder")]
7286pub struct F32 {
7287    pub f32_token: crate::veryl_token::VerylToken,
7288}
7289
7290///
7291/// Type derived for non-terminal F32Term
7292///
7293#[allow(dead_code)]
7294#[derive(Builder, Debug, Clone)]
7295#[builder(crate = "parol_runtime::derive_builder")]
7296pub struct F32Term {
7297    pub f32_term: crate::veryl_token::Token, /* (?-u:\b)f32(?-u:\b) */
7298}
7299
7300///
7301/// Type derived for non-terminal F32Token
7302///
7303#[allow(dead_code)]
7304#[derive(Builder, Debug, Clone)]
7305#[builder(crate = "parol_runtime::derive_builder")]
7306pub struct F32Token {
7307    pub f32_term: crate::veryl_token::Token,
7308    pub comments: Box<Comments>,
7309}
7310
7311///
7312/// Type derived for non-terminal F64
7313///
7314#[allow(dead_code)]
7315#[derive(Builder, Debug, Clone)]
7316#[builder(crate = "parol_runtime::derive_builder")]
7317pub struct F64 {
7318    pub f64_token: crate::veryl_token::VerylToken,
7319}
7320
7321///
7322/// Type derived for non-terminal F64Term
7323///
7324#[allow(dead_code)]
7325#[derive(Builder, Debug, Clone)]
7326#[builder(crate = "parol_runtime::derive_builder")]
7327pub struct F64Term {
7328    pub f64_term: crate::veryl_token::Token, /* (?-u:\b)f64(?-u:\b) */
7329}
7330
7331///
7332/// Type derived for non-terminal F64Token
7333///
7334#[allow(dead_code)]
7335#[derive(Builder, Debug, Clone)]
7336#[builder(crate = "parol_runtime::derive_builder")]
7337pub struct F64Token {
7338    pub f64_term: crate::veryl_token::Token,
7339    pub comments: Box<Comments>,
7340}
7341
7342///
7343/// Type derived for non-terminal Factor
7344///
7345#[allow(dead_code)]
7346#[derive(Debug, Clone)]
7347pub enum Factor {
7348    Number(FactorNumber),
7349    IdentifierFactor(FactorIdentifierFactor),
7350    LParenExpressionRParen(FactorLParenExpressionRParen),
7351    LBraceConcatenationListRBrace(FactorLBraceConcatenationListRBrace),
7352    QuoteLBraceArrayLiteralListRBrace(FactorQuoteLBraceArrayLiteralListRBrace),
7353    IfExpression(FactorIfExpression),
7354    CaseExpression(FactorCaseExpression),
7355    SwitchExpression(FactorSwitchExpression),
7356    StringLiteral(FactorStringLiteral),
7357    FactorGroup(FactorFactorGroup),
7358    InsideExpression(FactorInsideExpression),
7359    OutsideExpression(FactorOutsideExpression),
7360    TypeExpression(FactorTypeExpression),
7361    FactorTypeFactor(FactorFactorTypeFactor),
7362}
7363
7364///
7365/// Type derived for non-terminal FactorGroup
7366///
7367#[allow(dead_code)]
7368#[derive(Debug, Clone)]
7369pub enum FactorGroup {
7370    Msb(FactorGroupMsb),
7371    Lsb(FactorGroupLsb),
7372}
7373
7374///
7375/// Type derived for non-terminal FactorType
7376///
7377#[allow(dead_code)]
7378#[derive(Builder, Debug, Clone)]
7379#[builder(crate = "parol_runtime::derive_builder")]
7380pub struct FactorType {
7381    pub factor_type_group: Box<FactorTypeGroup>,
7382}
7383
7384///
7385/// Type derived for non-terminal FactorTypeFactor
7386///
7387#[allow(dead_code)]
7388#[derive(Builder, Debug, Clone)]
7389#[builder(crate = "parol_runtime::derive_builder")]
7390pub struct FactorTypeFactor {
7391    pub factor_type_factor_list: Vec<FactorTypeFactorList>,
7392    pub factor_type: Box<FactorType>,
7393}
7394
7395///
7396/// Type derived for non-terminal FactorTypeFactorList
7397///
7398#[allow(dead_code)]
7399#[derive(Builder, Debug, Clone)]
7400#[builder(crate = "parol_runtime::derive_builder")]
7401pub struct FactorTypeFactorList {
7402    pub type_modifier: Box<TypeModifier>,
7403}
7404
7405///
7406/// Type derived for non-terminal FactorTypeGroup
7407///
7408#[allow(dead_code)]
7409#[derive(Debug, Clone)]
7410pub enum FactorTypeGroup {
7411    VariableTypeFactorTypeOpt(FactorTypeGroupVariableTypeFactorTypeOpt),
7412    FixedType(FactorTypeGroupFixedType),
7413}
7414
7415///
7416/// Type derived for non-terminal FactorTypeOpt
7417///
7418#[allow(dead_code)]
7419#[derive(Builder, Debug, Clone)]
7420#[builder(crate = "parol_runtime::derive_builder")]
7421pub struct FactorTypeOpt {
7422    pub width: Box<Width>,
7423}
7424
7425///
7426/// Type derived for non-terminal Final
7427///
7428#[allow(dead_code)]
7429#[derive(Builder, Debug, Clone)]
7430#[builder(crate = "parol_runtime::derive_builder")]
7431pub struct Final {
7432    pub final_token: crate::veryl_token::VerylToken,
7433}
7434
7435///
7436/// Type derived for non-terminal FinalDeclaration
7437///
7438#[allow(dead_code)]
7439#[derive(Builder, Debug, Clone)]
7440#[builder(crate = "parol_runtime::derive_builder")]
7441pub struct FinalDeclaration {
7442    pub r#final: Box<Final>,
7443    pub statement_block: Box<StatementBlock>,
7444}
7445
7446///
7447/// Type derived for non-terminal FinalTerm
7448///
7449#[allow(dead_code)]
7450#[derive(Builder, Debug, Clone)]
7451#[builder(crate = "parol_runtime::derive_builder")]
7452pub struct FinalTerm {
7453    pub final_term: crate::veryl_token::Token, /* (?-u:\b)final(?-u:\b) */
7454}
7455
7456///
7457/// Type derived for non-terminal FinalToken
7458///
7459#[allow(dead_code)]
7460#[derive(Builder, Debug, Clone)]
7461#[builder(crate = "parol_runtime::derive_builder")]
7462pub struct FinalToken {
7463    pub final_term: crate::veryl_token::Token,
7464    pub comments: Box<Comments>,
7465}
7466
7467///
7468/// Type derived for non-terminal FixedPoint
7469///
7470#[allow(dead_code)]
7471#[derive(Builder, Debug, Clone)]
7472#[builder(crate = "parol_runtime::derive_builder")]
7473pub struct FixedPoint {
7474    pub fixed_point_token: crate::veryl_token::VerylToken,
7475}
7476
7477///
7478/// Type derived for non-terminal FixedPointTerm
7479///
7480#[allow(dead_code)]
7481#[derive(Builder, Debug, Clone)]
7482#[builder(crate = "parol_runtime::derive_builder")]
7483pub struct FixedPointTerm {
7484    pub fixed_point_term: crate::veryl_token::Token, /* [0-9]+(?:_[0-9]+)*\.[0-9]+(?:_[0-9]+)* */
7485}
7486
7487///
7488/// Type derived for non-terminal FixedPointToken
7489///
7490#[allow(dead_code)]
7491#[derive(Builder, Debug, Clone)]
7492#[builder(crate = "parol_runtime::derive_builder")]
7493pub struct FixedPointToken {
7494    pub fixed_point_term: crate::veryl_token::Token,
7495    pub comments: Box<Comments>,
7496}
7497
7498///
7499/// Type derived for non-terminal FixedType
7500///
7501#[allow(dead_code)]
7502#[derive(Debug, Clone)]
7503pub enum FixedType {
7504    U32(FixedTypeU32),
7505    U64(FixedTypeU64),
7506    I32(FixedTypeI32),
7507    I64(FixedTypeI64),
7508    F32(FixedTypeF32),
7509    F64(FixedTypeF64),
7510    Strin(FixedTypeStrin),
7511}
7512
7513///
7514/// Type derived for non-terminal For
7515///
7516#[allow(dead_code)]
7517#[derive(Builder, Debug, Clone)]
7518#[builder(crate = "parol_runtime::derive_builder")]
7519pub struct For {
7520    pub for_token: crate::veryl_token::VerylToken,
7521}
7522
7523///
7524/// Type derived for non-terminal ForStatement
7525///
7526#[allow(dead_code)]
7527#[derive(Builder, Debug, Clone)]
7528#[builder(crate = "parol_runtime::derive_builder")]
7529pub struct ForStatement {
7530    pub r#for: Box<For>,
7531    pub identifier: Box<Identifier>,
7532    pub colon: Box<Colon>,
7533    pub scalar_type: Box<ScalarType>,
7534    pub r#in: Box<In>,
7535    pub range: Box<Range>,
7536    pub for_statement_opt: Option<ForStatementOpt>,
7537    pub statement_block: Box<StatementBlock>,
7538}
7539
7540///
7541/// Type derived for non-terminal ForStatementOpt
7542///
7543#[allow(dead_code)]
7544#[derive(Builder, Debug, Clone)]
7545#[builder(crate = "parol_runtime::derive_builder")]
7546pub struct ForStatementOpt {
7547    pub step: Box<Step>,
7548    pub assignment_operator: Box<AssignmentOperator>,
7549    pub expression: Box<Expression>,
7550}
7551
7552///
7553/// Type derived for non-terminal ForTerm
7554///
7555#[allow(dead_code)]
7556#[derive(Builder, Debug, Clone)]
7557#[builder(crate = "parol_runtime::derive_builder")]
7558pub struct ForTerm {
7559    pub for_term: crate::veryl_token::Token, /* (?-u:\b)for(?-u:\b) */
7560}
7561
7562///
7563/// Type derived for non-terminal ForToken
7564///
7565#[allow(dead_code)]
7566#[derive(Builder, Debug, Clone)]
7567#[builder(crate = "parol_runtime::derive_builder")]
7568pub struct ForToken {
7569    pub for_term: crate::veryl_token::Token,
7570    pub comments: Box<Comments>,
7571}
7572
7573///
7574/// Type derived for non-terminal Function
7575///
7576#[allow(dead_code)]
7577#[derive(Builder, Debug, Clone)]
7578#[builder(crate = "parol_runtime::derive_builder")]
7579pub struct Function {
7580    pub function_token: crate::veryl_token::VerylToken,
7581}
7582
7583///
7584/// Type derived for non-terminal FunctionCall
7585///
7586#[allow(dead_code)]
7587#[derive(Builder, Debug, Clone)]
7588#[builder(crate = "parol_runtime::derive_builder")]
7589pub struct FunctionCall {
7590    pub l_paren: Box<LParen>,
7591    pub function_call_opt: Option<FunctionCallOpt>,
7592    pub r_paren: Box<RParen>,
7593}
7594
7595///
7596/// Type derived for non-terminal FunctionCallOpt
7597///
7598#[allow(dead_code)]
7599#[derive(Builder, Debug, Clone)]
7600#[builder(crate = "parol_runtime::derive_builder")]
7601pub struct FunctionCallOpt {
7602    pub argument_list: Box<ArgumentList>,
7603}
7604
7605///
7606/// Type derived for non-terminal FunctionDeclaration
7607///
7608#[allow(dead_code)]
7609#[derive(Builder, Debug, Clone)]
7610#[builder(crate = "parol_runtime::derive_builder")]
7611pub struct FunctionDeclaration {
7612    pub function: Box<Function>,
7613    pub identifier: Box<Identifier>,
7614    pub function_declaration_opt: Option<FunctionDeclarationOpt>,
7615    pub function_declaration_opt0: Option<FunctionDeclarationOpt0>,
7616    pub function_declaration_opt1: Option<FunctionDeclarationOpt1>,
7617    pub statement_block: Box<StatementBlock>,
7618}
7619
7620///
7621/// Type derived for non-terminal FunctionDeclarationOpt
7622///
7623#[allow(dead_code)]
7624#[derive(Builder, Debug, Clone)]
7625#[builder(crate = "parol_runtime::derive_builder")]
7626pub struct FunctionDeclarationOpt {
7627    pub with_generic_parameter: Box<WithGenericParameter>,
7628}
7629
7630///
7631/// Type derived for non-terminal FunctionDeclarationOpt0
7632///
7633#[allow(dead_code)]
7634#[derive(Builder, Debug, Clone)]
7635#[builder(crate = "parol_runtime::derive_builder")]
7636pub struct FunctionDeclarationOpt0 {
7637    pub port_declaration: Box<PortDeclaration>,
7638}
7639
7640///
7641/// Type derived for non-terminal FunctionDeclarationOpt1
7642///
7643#[allow(dead_code)]
7644#[derive(Builder, Debug, Clone)]
7645#[builder(crate = "parol_runtime::derive_builder")]
7646pub struct FunctionDeclarationOpt1 {
7647    pub minus_g_t: Box<MinusGT>,
7648    pub scalar_type: Box<ScalarType>,
7649}
7650
7651///
7652/// Type derived for non-terminal FunctionTerm
7653///
7654#[allow(dead_code)]
7655#[derive(Builder, Debug, Clone)]
7656#[builder(crate = "parol_runtime::derive_builder")]
7657pub struct FunctionTerm {
7658    pub function_term: crate::veryl_token::Token, /* (?-u:\b)function(?-u:\b) */
7659}
7660
7661///
7662/// Type derived for non-terminal FunctionToken
7663///
7664#[allow(dead_code)]
7665#[derive(Builder, Debug, Clone)]
7666#[builder(crate = "parol_runtime::derive_builder")]
7667pub struct FunctionToken {
7668    pub function_term: crate::veryl_token::Token,
7669    pub comments: Box<Comments>,
7670}
7671
7672///
7673/// Type derived for non-terminal GenerateBlockDeclaration
7674///
7675#[allow(dead_code)]
7676#[derive(Builder, Debug, Clone)]
7677#[builder(crate = "parol_runtime::derive_builder")]
7678pub struct GenerateBlockDeclaration {
7679    pub generate_named_block: Box<GenerateNamedBlock>,
7680}
7681
7682///
7683/// Type derived for non-terminal GenerateForDeclaration
7684///
7685#[allow(dead_code)]
7686#[derive(Builder, Debug, Clone)]
7687#[builder(crate = "parol_runtime::derive_builder")]
7688pub struct GenerateForDeclaration {
7689    pub r#for: Box<For>,
7690    pub identifier: Box<Identifier>,
7691    pub r#in: Box<In>,
7692    pub range: Box<Range>,
7693    pub generate_for_declaration_opt: Option<GenerateForDeclarationOpt>,
7694    pub generate_named_block: Box<GenerateNamedBlock>,
7695}
7696
7697///
7698/// Type derived for non-terminal GenerateForDeclarationOpt
7699///
7700#[allow(dead_code)]
7701#[derive(Builder, Debug, Clone)]
7702#[builder(crate = "parol_runtime::derive_builder")]
7703pub struct GenerateForDeclarationOpt {
7704    pub step: Box<Step>,
7705    pub assignment_operator: Box<AssignmentOperator>,
7706    pub expression: Box<Expression>,
7707}
7708
7709///
7710/// Type derived for non-terminal GenerateGroup
7711///
7712#[allow(dead_code)]
7713#[derive(Builder, Debug, Clone)]
7714#[builder(crate = "parol_runtime::derive_builder")]
7715pub struct GenerateGroup {
7716    pub generate_group_list: Vec<GenerateGroupList>,
7717    pub generate_group_group: Box<GenerateGroupGroup>,
7718}
7719
7720///
7721/// Type derived for non-terminal GenerateGroupGroup
7722///
7723#[allow(dead_code)]
7724#[derive(Debug, Clone)]
7725pub enum GenerateGroupGroup {
7726    LBraceGenerateGroupGroupListRBrace(GenerateGroupGroupLBraceGenerateGroupGroupListRBrace),
7727    GenerateItem(GenerateGroupGroupGenerateItem),
7728}
7729
7730///
7731/// Type derived for non-terminal GenerateGroupGroupList
7732///
7733#[allow(dead_code)]
7734#[derive(Builder, Debug, Clone)]
7735#[builder(crate = "parol_runtime::derive_builder")]
7736pub struct GenerateGroupGroupList {
7737    pub generate_group: Box<GenerateGroup>,
7738}
7739
7740///
7741/// Type derived for non-terminal GenerateGroupList
7742///
7743#[allow(dead_code)]
7744#[derive(Builder, Debug, Clone)]
7745#[builder(crate = "parol_runtime::derive_builder")]
7746pub struct GenerateGroupList {
7747    pub attribute: Box<Attribute>,
7748}
7749
7750///
7751/// Type derived for non-terminal GenerateIfDeclaration
7752///
7753#[allow(dead_code)]
7754#[derive(Builder, Debug, Clone)]
7755#[builder(crate = "parol_runtime::derive_builder")]
7756pub struct GenerateIfDeclaration {
7757    pub r#if: Box<If>,
7758    pub expression: Box<Expression>,
7759    pub generate_named_block: Box<GenerateNamedBlock>,
7760    pub generate_if_declaration_list: Vec<GenerateIfDeclarationList>,
7761    pub generate_if_declaration_opt: Option<GenerateIfDeclarationOpt>,
7762}
7763
7764///
7765/// Type derived for non-terminal GenerateIfDeclarationList
7766///
7767#[allow(dead_code)]
7768#[derive(Builder, Debug, Clone)]
7769#[builder(crate = "parol_runtime::derive_builder")]
7770pub struct GenerateIfDeclarationList {
7771    pub r#else: Box<Else>,
7772    pub r#if: Box<If>,
7773    pub expression: Box<Expression>,
7774    pub generate_optional_named_block: Box<GenerateOptionalNamedBlock>,
7775}
7776
7777///
7778/// Type derived for non-terminal GenerateIfDeclarationOpt
7779///
7780#[allow(dead_code)]
7781#[derive(Builder, Debug, Clone)]
7782#[builder(crate = "parol_runtime::derive_builder")]
7783pub struct GenerateIfDeclarationOpt {
7784    pub r#else: Box<Else>,
7785    pub generate_optional_named_block: Box<GenerateOptionalNamedBlock>,
7786}
7787
7788///
7789/// Type derived for non-terminal GenerateItem
7790///
7791#[allow(dead_code)]
7792#[derive(Debug, Clone)]
7793pub enum GenerateItem {
7794    LetDeclaration(GenerateItemLetDeclaration),
7795    VarDeclaration(GenerateItemVarDeclaration),
7796    InstDeclaration(GenerateItemInstDeclaration),
7797    ConstDeclaration(GenerateItemConstDeclaration),
7798    AlwaysFfDeclaration(GenerateItemAlwaysFfDeclaration),
7799    AlwaysCombDeclaration(GenerateItemAlwaysCombDeclaration),
7800    AssignDeclaration(GenerateItemAssignDeclaration),
7801    FunctionDeclaration(GenerateItemFunctionDeclaration),
7802    GenerateIfDeclaration(GenerateItemGenerateIfDeclaration),
7803    GenerateForDeclaration(GenerateItemGenerateForDeclaration),
7804    GenerateBlockDeclaration(GenerateItemGenerateBlockDeclaration),
7805    TypeDefDeclaration(GenerateItemTypeDefDeclaration),
7806    EnumDeclaration(GenerateItemEnumDeclaration),
7807    StructUnionDeclaration(GenerateItemStructUnionDeclaration),
7808    ImportDeclaration(GenerateItemImportDeclaration),
7809    InitialDeclaration(GenerateItemInitialDeclaration),
7810    FinalDeclaration(GenerateItemFinalDeclaration),
7811    UnsafeBlock(GenerateItemUnsafeBlock),
7812}
7813
7814///
7815/// Type derived for non-terminal GenerateNamedBlock
7816///
7817#[allow(dead_code)]
7818#[derive(Builder, Debug, Clone)]
7819#[builder(crate = "parol_runtime::derive_builder")]
7820pub struct GenerateNamedBlock {
7821    pub colon: Box<Colon>,
7822    pub identifier: Box<Identifier>,
7823    pub l_brace: Box<LBrace>,
7824    pub generate_named_block_list: Vec<GenerateNamedBlockList>,
7825    pub r_brace: Box<RBrace>,
7826}
7827
7828///
7829/// Type derived for non-terminal GenerateNamedBlockList
7830///
7831#[allow(dead_code)]
7832#[derive(Builder, Debug, Clone)]
7833#[builder(crate = "parol_runtime::derive_builder")]
7834pub struct GenerateNamedBlockList {
7835    pub generate_group: Box<GenerateGroup>,
7836}
7837
7838///
7839/// Type derived for non-terminal GenerateOptionalNamedBlock
7840///
7841#[allow(dead_code)]
7842#[derive(Builder, Debug, Clone)]
7843#[builder(crate = "parol_runtime::derive_builder")]
7844pub struct GenerateOptionalNamedBlock {
7845    pub generate_optional_named_block_opt: Option<GenerateOptionalNamedBlockOpt>,
7846    pub l_brace: Box<LBrace>,
7847    pub generate_optional_named_block_list: Vec<GenerateOptionalNamedBlockList>,
7848    pub r_brace: Box<RBrace>,
7849}
7850
7851///
7852/// Type derived for non-terminal GenerateOptionalNamedBlockList
7853///
7854#[allow(dead_code)]
7855#[derive(Builder, Debug, Clone)]
7856#[builder(crate = "parol_runtime::derive_builder")]
7857pub struct GenerateOptionalNamedBlockList {
7858    pub generate_group: Box<GenerateGroup>,
7859}
7860
7861///
7862/// Type derived for non-terminal GenerateOptionalNamedBlockOpt
7863///
7864#[allow(dead_code)]
7865#[derive(Builder, Debug, Clone)]
7866#[builder(crate = "parol_runtime::derive_builder")]
7867pub struct GenerateOptionalNamedBlockOpt {
7868    pub colon: Box<Colon>,
7869    pub identifier: Box<Identifier>,
7870}
7871
7872///
7873/// Type derived for non-terminal GenericBound
7874///
7875#[allow(dead_code)]
7876#[derive(Debug, Clone)]
7877pub enum GenericBound {
7878    Const(GenericBoundConst),
7879    Type(GenericBoundType),
7880    InstScopedIdentifier(GenericBoundInstScopedIdentifier),
7881    ScopedIdentifier(GenericBoundScopedIdentifier),
7882}
7883
7884///
7885/// Type derived for non-terminal Hash
7886///
7887#[allow(dead_code)]
7888#[derive(Builder, Debug, Clone)]
7889#[builder(crate = "parol_runtime::derive_builder")]
7890pub struct Hash {
7891    pub hash_token: crate::veryl_token::VerylToken,
7892}
7893
7894///
7895/// Type derived for non-terminal HashTerm
7896///
7897#[allow(dead_code)]
7898#[derive(Builder, Debug, Clone)]
7899#[builder(crate = "parol_runtime::derive_builder")]
7900pub struct HashTerm {
7901    pub hash_term: crate::veryl_token::Token, /* # */
7902}
7903
7904///
7905/// Type derived for non-terminal HashToken
7906///
7907#[allow(dead_code)]
7908#[derive(Builder, Debug, Clone)]
7909#[builder(crate = "parol_runtime::derive_builder")]
7910pub struct HashToken {
7911    pub hash_term: crate::veryl_token::Token,
7912    pub comments: Box<Comments>,
7913}
7914
7915///
7916/// Type derived for non-terminal HierarchicalIdentifier
7917///
7918#[allow(dead_code)]
7919#[derive(Builder, Debug, Clone)]
7920#[builder(crate = "parol_runtime::derive_builder")]
7921pub struct HierarchicalIdentifier {
7922    pub identifier: Box<Identifier>,
7923    pub hierarchical_identifier_list: Vec<HierarchicalIdentifierList>,
7924    pub hierarchical_identifier_list0: Vec<HierarchicalIdentifierList0>,
7925}
7926
7927///
7928/// Type derived for non-terminal HierarchicalIdentifierList
7929///
7930#[allow(dead_code)]
7931#[derive(Builder, Debug, Clone)]
7932#[builder(crate = "parol_runtime::derive_builder")]
7933pub struct HierarchicalIdentifierList {
7934    pub select: Box<Select>,
7935}
7936
7937///
7938/// Type derived for non-terminal HierarchicalIdentifierList0
7939///
7940#[allow(dead_code)]
7941#[derive(Builder, Debug, Clone)]
7942#[builder(crate = "parol_runtime::derive_builder")]
7943pub struct HierarchicalIdentifierList0 {
7944    pub dot: Box<Dot>,
7945    pub identifier: Box<Identifier>,
7946    pub hierarchical_identifier_list0_list: Vec<HierarchicalIdentifierList0List>,
7947}
7948
7949///
7950/// Type derived for non-terminal HierarchicalIdentifierList0List
7951///
7952#[allow(dead_code)]
7953#[derive(Builder, Debug, Clone)]
7954#[builder(crate = "parol_runtime::derive_builder")]
7955pub struct HierarchicalIdentifierList0List {
7956    pub select: Box<Select>,
7957}
7958
7959///
7960/// Type derived for non-terminal I32
7961///
7962#[allow(dead_code)]
7963#[derive(Builder, Debug, Clone)]
7964#[builder(crate = "parol_runtime::derive_builder")]
7965pub struct I32 {
7966    pub i32_token: crate::veryl_token::VerylToken,
7967}
7968
7969///
7970/// Type derived for non-terminal I32Term
7971///
7972#[allow(dead_code)]
7973#[derive(Builder, Debug, Clone)]
7974#[builder(crate = "parol_runtime::derive_builder")]
7975pub struct I32Term {
7976    pub i32_term: crate::veryl_token::Token, /* (?-u:\b)i32(?-u:\b) */
7977}
7978
7979///
7980/// Type derived for non-terminal I32Token
7981///
7982#[allow(dead_code)]
7983#[derive(Builder, Debug, Clone)]
7984#[builder(crate = "parol_runtime::derive_builder")]
7985pub struct I32Token {
7986    pub i32_term: crate::veryl_token::Token,
7987    pub comments: Box<Comments>,
7988}
7989
7990///
7991/// Type derived for non-terminal I64
7992///
7993#[allow(dead_code)]
7994#[derive(Builder, Debug, Clone)]
7995#[builder(crate = "parol_runtime::derive_builder")]
7996pub struct I64 {
7997    pub i64_token: crate::veryl_token::VerylToken,
7998}
7999
8000///
8001/// Type derived for non-terminal I64Term
8002///
8003#[allow(dead_code)]
8004#[derive(Builder, Debug, Clone)]
8005#[builder(crate = "parol_runtime::derive_builder")]
8006pub struct I64Term {
8007    pub i64_term: crate::veryl_token::Token, /* (?-u:\b)i64(?-u:\b) */
8008}
8009
8010///
8011/// Type derived for non-terminal I64Token
8012///
8013#[allow(dead_code)]
8014#[derive(Builder, Debug, Clone)]
8015#[builder(crate = "parol_runtime::derive_builder")]
8016pub struct I64Token {
8017    pub i64_term: crate::veryl_token::Token,
8018    pub comments: Box<Comments>,
8019}
8020
8021///
8022/// Type derived for non-terminal Identifier
8023///
8024#[allow(dead_code)]
8025#[derive(Builder, Debug, Clone)]
8026#[builder(crate = "parol_runtime::derive_builder")]
8027pub struct Identifier {
8028    pub identifier_token: crate::veryl_token::VerylToken,
8029}
8030
8031///
8032/// Type derived for non-terminal IdentifierFactor
8033///
8034#[allow(dead_code)]
8035#[derive(Builder, Debug, Clone)]
8036#[builder(crate = "parol_runtime::derive_builder")]
8037pub struct IdentifierFactor {
8038    pub expression_identifier: Box<ExpressionIdentifier>,
8039    pub identifier_factor_opt: Option<IdentifierFactorOpt>,
8040}
8041
8042///
8043/// Type derived for non-terminal IdentifierFactorOpt
8044///
8045#[allow(dead_code)]
8046#[derive(Builder, Debug, Clone)]
8047#[builder(crate = "parol_runtime::derive_builder")]
8048pub struct IdentifierFactorOpt {
8049    pub function_call: Box<FunctionCall>,
8050}
8051
8052///
8053/// Type derived for non-terminal IdentifierStatement
8054///
8055#[allow(dead_code)]
8056#[derive(Builder, Debug, Clone)]
8057#[builder(crate = "parol_runtime::derive_builder")]
8058pub struct IdentifierStatement {
8059    pub expression_identifier: Box<ExpressionIdentifier>,
8060    pub identifier_statement_group: Box<IdentifierStatementGroup>,
8061    pub semicolon: Box<Semicolon>,
8062}
8063
8064///
8065/// Type derived for non-terminal IdentifierStatementGroup
8066///
8067#[allow(dead_code)]
8068#[derive(Debug, Clone)]
8069pub enum IdentifierStatementGroup {
8070    FunctionCall(IdentifierStatementGroupFunctionCall),
8071    Assignment(IdentifierStatementGroupAssignment),
8072}
8073
8074///
8075/// Type derived for non-terminal IdentifierTerm
8076///
8077#[allow(dead_code)]
8078#[derive(Builder, Debug, Clone)]
8079#[builder(crate = "parol_runtime::derive_builder")]
8080pub struct IdentifierTerm {
8081    pub identifier_term: crate::veryl_token::Token, /* (?:r#)?[a-zA-Z_][0-9a-zA-Z_$]* */
8082}
8083
8084///
8085/// Type derived for non-terminal IdentifierToken
8086///
8087#[allow(dead_code)]
8088#[derive(Builder, Debug, Clone)]
8089#[builder(crate = "parol_runtime::derive_builder")]
8090pub struct IdentifierToken {
8091    pub identifier_term: crate::veryl_token::Token,
8092    pub comments: Box<Comments>,
8093}
8094
8095///
8096/// Type derived for non-terminal If
8097///
8098#[allow(dead_code)]
8099#[derive(Builder, Debug, Clone)]
8100#[builder(crate = "parol_runtime::derive_builder")]
8101pub struct If {
8102    pub if_token: crate::veryl_token::VerylToken,
8103}
8104
8105///
8106/// Type derived for non-terminal IfExpression
8107///
8108#[allow(dead_code)]
8109#[derive(Builder, Debug, Clone)]
8110#[builder(crate = "parol_runtime::derive_builder")]
8111pub struct IfExpression {
8112    pub r#if: Box<If>,
8113    pub expression: Box<Expression>,
8114    pub l_brace: Box<LBrace>,
8115    pub expression0: Box<Expression>,
8116    pub r_brace: Box<RBrace>,
8117    pub if_expression_list: Vec<IfExpressionList>,
8118    pub r#else: Box<Else>,
8119    pub l_brace0: Box<LBrace>,
8120    pub expression1: Box<Expression>,
8121    pub r_brace0: Box<RBrace>,
8122}
8123
8124///
8125/// Type derived for non-terminal IfExpressionList
8126///
8127#[allow(dead_code)]
8128#[derive(Builder, Debug, Clone)]
8129#[builder(crate = "parol_runtime::derive_builder")]
8130pub struct IfExpressionList {
8131    pub r#else: Box<Else>,
8132    pub r#if: Box<If>,
8133    pub expression: Box<Expression>,
8134    pub l_brace: Box<LBrace>,
8135    pub expression0: Box<Expression>,
8136    pub r_brace: Box<RBrace>,
8137}
8138
8139///
8140/// Type derived for non-terminal IfReset
8141///
8142#[allow(dead_code)]
8143#[derive(Builder, Debug, Clone)]
8144#[builder(crate = "parol_runtime::derive_builder")]
8145pub struct IfReset {
8146    pub if_reset_token: crate::veryl_token::VerylToken,
8147}
8148
8149///
8150/// Type derived for non-terminal IfResetStatement
8151///
8152#[allow(dead_code)]
8153#[derive(Builder, Debug, Clone)]
8154#[builder(crate = "parol_runtime::derive_builder")]
8155pub struct IfResetStatement {
8156    pub if_reset: Box<IfReset>,
8157    pub statement_block: Box<StatementBlock>,
8158    pub if_reset_statement_list: Vec<IfResetStatementList>,
8159    pub if_reset_statement_opt: Option<IfResetStatementOpt>,
8160}
8161
8162///
8163/// Type derived for non-terminal IfResetStatementList
8164///
8165#[allow(dead_code)]
8166#[derive(Builder, Debug, Clone)]
8167#[builder(crate = "parol_runtime::derive_builder")]
8168pub struct IfResetStatementList {
8169    pub r#else: Box<Else>,
8170    pub r#if: Box<If>,
8171    pub expression: Box<Expression>,
8172    pub statement_block: Box<StatementBlock>,
8173}
8174
8175///
8176/// Type derived for non-terminal IfResetStatementOpt
8177///
8178#[allow(dead_code)]
8179#[derive(Builder, Debug, Clone)]
8180#[builder(crate = "parol_runtime::derive_builder")]
8181pub struct IfResetStatementOpt {
8182    pub r#else: Box<Else>,
8183    pub statement_block: Box<StatementBlock>,
8184}
8185
8186///
8187/// Type derived for non-terminal IfResetTerm
8188///
8189#[allow(dead_code)]
8190#[derive(Builder, Debug, Clone)]
8191#[builder(crate = "parol_runtime::derive_builder")]
8192pub struct IfResetTerm {
8193    pub if_reset_term: crate::veryl_token::Token, /* (?-u:\b)if_reset(?-u:\b) */
8194}
8195
8196///
8197/// Type derived for non-terminal IfResetToken
8198///
8199#[allow(dead_code)]
8200#[derive(Builder, Debug, Clone)]
8201#[builder(crate = "parol_runtime::derive_builder")]
8202pub struct IfResetToken {
8203    pub if_reset_term: crate::veryl_token::Token,
8204    pub comments: Box<Comments>,
8205}
8206
8207///
8208/// Type derived for non-terminal IfStatement
8209///
8210#[allow(dead_code)]
8211#[derive(Builder, Debug, Clone)]
8212#[builder(crate = "parol_runtime::derive_builder")]
8213pub struct IfStatement {
8214    pub r#if: Box<If>,
8215    pub expression: Box<Expression>,
8216    pub statement_block: Box<StatementBlock>,
8217    pub if_statement_list: Vec<IfStatementList>,
8218    pub if_statement_opt: Option<IfStatementOpt>,
8219}
8220
8221///
8222/// Type derived for non-terminal IfStatementList
8223///
8224#[allow(dead_code)]
8225#[derive(Builder, Debug, Clone)]
8226#[builder(crate = "parol_runtime::derive_builder")]
8227pub struct IfStatementList {
8228    pub r#else: Box<Else>,
8229    pub r#if: Box<If>,
8230    pub expression: Box<Expression>,
8231    pub statement_block: Box<StatementBlock>,
8232}
8233
8234///
8235/// Type derived for non-terminal IfStatementOpt
8236///
8237#[allow(dead_code)]
8238#[derive(Builder, Debug, Clone)]
8239#[builder(crate = "parol_runtime::derive_builder")]
8240pub struct IfStatementOpt {
8241    pub r#else: Box<Else>,
8242    pub statement_block: Box<StatementBlock>,
8243}
8244
8245///
8246/// Type derived for non-terminal IfTerm
8247///
8248#[allow(dead_code)]
8249#[derive(Builder, Debug, Clone)]
8250#[builder(crate = "parol_runtime::derive_builder")]
8251pub struct IfTerm {
8252    pub if_term: crate::veryl_token::Token, /* (?-u:\b)if(?-u:\b) */
8253}
8254
8255///
8256/// Type derived for non-terminal IfToken
8257///
8258#[allow(dead_code)]
8259#[derive(Builder, Debug, Clone)]
8260#[builder(crate = "parol_runtime::derive_builder")]
8261pub struct IfToken {
8262    pub if_term: crate::veryl_token::Token,
8263    pub comments: Box<Comments>,
8264}
8265
8266///
8267/// Type derived for non-terminal Import
8268///
8269#[allow(dead_code)]
8270#[derive(Builder, Debug, Clone)]
8271#[builder(crate = "parol_runtime::derive_builder")]
8272pub struct Import {
8273    pub import_token: crate::veryl_token::VerylToken,
8274}
8275
8276///
8277/// Type derived for non-terminal ImportDeclaration
8278///
8279#[allow(dead_code)]
8280#[derive(Builder, Debug, Clone)]
8281#[builder(crate = "parol_runtime::derive_builder")]
8282pub struct ImportDeclaration {
8283    pub import: Box<Import>,
8284    pub scoped_identifier: Box<ScopedIdentifier>,
8285    pub import_declaration_opt: Option<ImportDeclarationOpt>,
8286    pub semicolon: Box<Semicolon>,
8287}
8288
8289///
8290/// Type derived for non-terminal ImportDeclarationOpt
8291///
8292#[allow(dead_code)]
8293#[derive(Builder, Debug, Clone)]
8294#[builder(crate = "parol_runtime::derive_builder")]
8295pub struct ImportDeclarationOpt {
8296    pub colon_colon: Box<ColonColon>,
8297    pub star: Box<Star>,
8298}
8299
8300///
8301/// Type derived for non-terminal ImportTerm
8302///
8303#[allow(dead_code)]
8304#[derive(Builder, Debug, Clone)]
8305#[builder(crate = "parol_runtime::derive_builder")]
8306pub struct ImportTerm {
8307    pub import_term: crate::veryl_token::Token, /* (?-u:\b)import(?-u:\b) */
8308}
8309
8310///
8311/// Type derived for non-terminal ImportToken
8312///
8313#[allow(dead_code)]
8314#[derive(Builder, Debug, Clone)]
8315#[builder(crate = "parol_runtime::derive_builder")]
8316pub struct ImportToken {
8317    pub import_term: crate::veryl_token::Token,
8318    pub comments: Box<Comments>,
8319}
8320
8321///
8322/// Type derived for non-terminal In
8323///
8324#[allow(dead_code)]
8325#[derive(Builder, Debug, Clone)]
8326#[builder(crate = "parol_runtime::derive_builder")]
8327pub struct In {
8328    pub in_token: crate::veryl_token::VerylToken,
8329}
8330
8331///
8332/// Type derived for non-terminal InTerm
8333///
8334#[allow(dead_code)]
8335#[derive(Builder, Debug, Clone)]
8336#[builder(crate = "parol_runtime::derive_builder")]
8337pub struct InTerm {
8338    pub in_term: crate::veryl_token::Token, /* (?-u:\b)in(?-u:\b) */
8339}
8340
8341///
8342/// Type derived for non-terminal InToken
8343///
8344#[allow(dead_code)]
8345#[derive(Builder, Debug, Clone)]
8346#[builder(crate = "parol_runtime::derive_builder")]
8347pub struct InToken {
8348    pub in_term: crate::veryl_token::Token,
8349    pub comments: Box<Comments>,
8350}
8351
8352///
8353/// Type derived for non-terminal Include
8354///
8355#[allow(dead_code)]
8356#[derive(Builder, Debug, Clone)]
8357#[builder(crate = "parol_runtime::derive_builder")]
8358pub struct Include {
8359    pub include_token: crate::veryl_token::VerylToken,
8360}
8361
8362///
8363/// Type derived for non-terminal IncludeDeclaration
8364///
8365#[allow(dead_code)]
8366#[derive(Builder, Debug, Clone)]
8367#[builder(crate = "parol_runtime::derive_builder")]
8368pub struct IncludeDeclaration {
8369    pub include: Box<Include>,
8370    pub l_paren: Box<LParen>,
8371    pub identifier: Box<Identifier>,
8372    pub comma: Box<Comma>,
8373    pub string_literal: Box<StringLiteral>,
8374    pub r_paren: Box<RParen>,
8375    pub semicolon: Box<Semicolon>,
8376}
8377
8378///
8379/// Type derived for non-terminal IncludeTerm
8380///
8381#[allow(dead_code)]
8382#[derive(Builder, Debug, Clone)]
8383#[builder(crate = "parol_runtime::derive_builder")]
8384pub struct IncludeTerm {
8385    pub include_term: crate::veryl_token::Token, /* (?-u:\b)include(?-u:\b) */
8386}
8387
8388///
8389/// Type derived for non-terminal IncludeToken
8390///
8391#[allow(dead_code)]
8392#[derive(Builder, Debug, Clone)]
8393#[builder(crate = "parol_runtime::derive_builder")]
8394pub struct IncludeToken {
8395    pub include_term: crate::veryl_token::Token,
8396    pub comments: Box<Comments>,
8397}
8398
8399///
8400/// Type derived for non-terminal Initial
8401///
8402#[allow(dead_code)]
8403#[derive(Builder, Debug, Clone)]
8404#[builder(crate = "parol_runtime::derive_builder")]
8405pub struct Initial {
8406    pub initial_token: crate::veryl_token::VerylToken,
8407}
8408
8409///
8410/// Type derived for non-terminal InitialDeclaration
8411///
8412#[allow(dead_code)]
8413#[derive(Builder, Debug, Clone)]
8414#[builder(crate = "parol_runtime::derive_builder")]
8415pub struct InitialDeclaration {
8416    pub initial: Box<Initial>,
8417    pub statement_block: Box<StatementBlock>,
8418}
8419
8420///
8421/// Type derived for non-terminal InitialTerm
8422///
8423#[allow(dead_code)]
8424#[derive(Builder, Debug, Clone)]
8425#[builder(crate = "parol_runtime::derive_builder")]
8426pub struct InitialTerm {
8427    pub initial_term: crate::veryl_token::Token, /* (?-u:\b)initial(?-u:\b) */
8428}
8429
8430///
8431/// Type derived for non-terminal InitialToken
8432///
8433#[allow(dead_code)]
8434#[derive(Builder, Debug, Clone)]
8435#[builder(crate = "parol_runtime::derive_builder")]
8436pub struct InitialToken {
8437    pub initial_term: crate::veryl_token::Token,
8438    pub comments: Box<Comments>,
8439}
8440
8441///
8442/// Type derived for non-terminal Inout
8443///
8444#[allow(dead_code)]
8445#[derive(Builder, Debug, Clone)]
8446#[builder(crate = "parol_runtime::derive_builder")]
8447pub struct Inout {
8448    pub inout_token: crate::veryl_token::VerylToken,
8449}
8450
8451///
8452/// Type derived for non-terminal InoutTerm
8453///
8454#[allow(dead_code)]
8455#[derive(Builder, Debug, Clone)]
8456#[builder(crate = "parol_runtime::derive_builder")]
8457pub struct InoutTerm {
8458    pub inout_term: crate::veryl_token::Token, /* (?-u:\b)inout(?-u:\b) */
8459}
8460
8461///
8462/// Type derived for non-terminal InoutToken
8463///
8464#[allow(dead_code)]
8465#[derive(Builder, Debug, Clone)]
8466#[builder(crate = "parol_runtime::derive_builder")]
8467pub struct InoutToken {
8468    pub inout_term: crate::veryl_token::Token,
8469    pub comments: Box<Comments>,
8470}
8471
8472///
8473/// Type derived for non-terminal Input
8474///
8475#[allow(dead_code)]
8476#[derive(Builder, Debug, Clone)]
8477#[builder(crate = "parol_runtime::derive_builder")]
8478pub struct Input {
8479    pub input_token: crate::veryl_token::VerylToken,
8480}
8481
8482///
8483/// Type derived for non-terminal InputTerm
8484///
8485#[allow(dead_code)]
8486#[derive(Builder, Debug, Clone)]
8487#[builder(crate = "parol_runtime::derive_builder")]
8488pub struct InputTerm {
8489    pub input_term: crate::veryl_token::Token, /* (?-u:\b)input(?-u:\b) */
8490}
8491
8492///
8493/// Type derived for non-terminal InputToken
8494///
8495#[allow(dead_code)]
8496#[derive(Builder, Debug, Clone)]
8497#[builder(crate = "parol_runtime::derive_builder")]
8498pub struct InputToken {
8499    pub input_term: crate::veryl_token::Token,
8500    pub comments: Box<Comments>,
8501}
8502
8503///
8504/// Type derived for non-terminal Inside
8505///
8506#[allow(dead_code)]
8507#[derive(Builder, Debug, Clone)]
8508#[builder(crate = "parol_runtime::derive_builder")]
8509pub struct Inside {
8510    pub inside_token: crate::veryl_token::VerylToken,
8511}
8512
8513///
8514/// Type derived for non-terminal InsideExpression
8515///
8516#[allow(dead_code)]
8517#[derive(Builder, Debug, Clone)]
8518#[builder(crate = "parol_runtime::derive_builder")]
8519pub struct InsideExpression {
8520    pub inside: Box<Inside>,
8521    pub expression: Box<Expression>,
8522    pub l_brace: Box<LBrace>,
8523    pub range_list: Box<RangeList>,
8524    pub r_brace: Box<RBrace>,
8525}
8526
8527///
8528/// Type derived for non-terminal InsideTerm
8529///
8530#[allow(dead_code)]
8531#[derive(Builder, Debug, Clone)]
8532#[builder(crate = "parol_runtime::derive_builder")]
8533pub struct InsideTerm {
8534    pub inside_term: crate::veryl_token::Token, /* (?-u:\b)inside(?-u:\b) */
8535}
8536
8537///
8538/// Type derived for non-terminal InsideToken
8539///
8540#[allow(dead_code)]
8541#[derive(Builder, Debug, Clone)]
8542#[builder(crate = "parol_runtime::derive_builder")]
8543pub struct InsideToken {
8544    pub inside_term: crate::veryl_token::Token,
8545    pub comments: Box<Comments>,
8546}
8547
8548///
8549/// Type derived for non-terminal Inst
8550///
8551#[allow(dead_code)]
8552#[derive(Builder, Debug, Clone)]
8553#[builder(crate = "parol_runtime::derive_builder")]
8554pub struct Inst {
8555    pub inst_token: crate::veryl_token::VerylToken,
8556}
8557
8558///
8559/// Type derived for non-terminal InstDeclaration
8560///
8561#[allow(dead_code)]
8562#[derive(Builder, Debug, Clone)]
8563#[builder(crate = "parol_runtime::derive_builder")]
8564pub struct InstDeclaration {
8565    pub inst: Box<Inst>,
8566    pub identifier: Box<Identifier>,
8567    pub colon: Box<Colon>,
8568    pub inst_declaration_opt: Option<InstDeclarationOpt>,
8569    pub scoped_identifier: Box<ScopedIdentifier>,
8570    pub inst_declaration_opt0: Option<InstDeclarationOpt0>,
8571    pub inst_declaration_opt1: Option<InstDeclarationOpt1>,
8572    pub inst_declaration_opt2: Option<InstDeclarationOpt2>,
8573    pub semicolon: Box<Semicolon>,
8574}
8575
8576///
8577/// Type derived for non-terminal InstDeclarationOpt
8578///
8579#[allow(dead_code)]
8580#[derive(Builder, Debug, Clone)]
8581#[builder(crate = "parol_runtime::derive_builder")]
8582pub struct InstDeclarationOpt {
8583    pub clock_domain: Box<ClockDomain>,
8584}
8585
8586///
8587/// Type derived for non-terminal InstDeclarationOpt0
8588///
8589#[allow(dead_code)]
8590#[derive(Builder, Debug, Clone)]
8591#[builder(crate = "parol_runtime::derive_builder")]
8592pub struct InstDeclarationOpt0 {
8593    pub array: Box<Array>,
8594}
8595
8596///
8597/// Type derived for non-terminal InstDeclarationOpt1
8598///
8599#[allow(dead_code)]
8600#[derive(Builder, Debug, Clone)]
8601#[builder(crate = "parol_runtime::derive_builder")]
8602pub struct InstDeclarationOpt1 {
8603    pub inst_parameter: Box<InstParameter>,
8604}
8605
8606///
8607/// Type derived for non-terminal InstDeclarationOpt2
8608///
8609#[allow(dead_code)]
8610#[derive(Builder, Debug, Clone)]
8611#[builder(crate = "parol_runtime::derive_builder")]
8612pub struct InstDeclarationOpt2 {
8613    pub l_paren: Box<LParen>,
8614    pub inst_declaration_opt3: Option<InstDeclarationOpt3>,
8615    pub r_paren: Box<RParen>,
8616}
8617
8618///
8619/// Type derived for non-terminal InstDeclarationOpt3
8620///
8621#[allow(dead_code)]
8622#[derive(Builder, Debug, Clone)]
8623#[builder(crate = "parol_runtime::derive_builder")]
8624pub struct InstDeclarationOpt3 {
8625    pub inst_port_list: Box<InstPortList>,
8626}
8627
8628///
8629/// Type derived for non-terminal InstParameter
8630///
8631#[allow(dead_code)]
8632#[derive(Builder, Debug, Clone)]
8633#[builder(crate = "parol_runtime::derive_builder")]
8634pub struct InstParameter {
8635    pub hash: Box<Hash>,
8636    pub l_paren: Box<LParen>,
8637    pub inst_parameter_opt: Option<InstParameterOpt>,
8638    pub r_paren: Box<RParen>,
8639}
8640
8641///
8642/// Type derived for non-terminal InstParameterGroup
8643///
8644#[allow(dead_code)]
8645#[derive(Builder, Debug, Clone)]
8646#[builder(crate = "parol_runtime::derive_builder")]
8647pub struct InstParameterGroup {
8648    pub inst_parameter_group_list: Vec<InstParameterGroupList>,
8649    pub inst_parameter_group_group: Box<InstParameterGroupGroup>,
8650}
8651
8652///
8653/// Type derived for non-terminal InstParameterGroupGroup
8654///
8655#[allow(dead_code)]
8656#[derive(Debug, Clone)]
8657pub enum InstParameterGroupGroup {
8658    LBraceInstParameterListRBrace(InstParameterGroupGroupLBraceInstParameterListRBrace),
8659    InstParameterItem(InstParameterGroupGroupInstParameterItem),
8660}
8661
8662///
8663/// Type derived for non-terminal InstParameterGroupList
8664///
8665#[allow(dead_code)]
8666#[derive(Builder, Debug, Clone)]
8667#[builder(crate = "parol_runtime::derive_builder")]
8668pub struct InstParameterGroupList {
8669    pub attribute: Box<Attribute>,
8670}
8671
8672///
8673/// Type derived for non-terminal InstParameterItem
8674///
8675#[allow(dead_code)]
8676#[derive(Builder, Debug, Clone)]
8677#[builder(crate = "parol_runtime::derive_builder")]
8678pub struct InstParameterItem {
8679    pub identifier: Box<Identifier>,
8680    pub inst_parameter_item_opt: Option<InstParameterItemOpt>,
8681}
8682
8683///
8684/// Type derived for non-terminal InstParameterItemOpt
8685///
8686#[allow(dead_code)]
8687#[derive(Builder, Debug, Clone)]
8688#[builder(crate = "parol_runtime::derive_builder")]
8689pub struct InstParameterItemOpt {
8690    pub colon: Box<Colon>,
8691    pub expression: Box<Expression>,
8692}
8693
8694///
8695/// Type derived for non-terminal InstParameterList
8696///
8697#[allow(dead_code)]
8698#[derive(Builder, Debug, Clone)]
8699#[builder(crate = "parol_runtime::derive_builder")]
8700pub struct InstParameterList {
8701    pub inst_parameter_group: Box<InstParameterGroup>,
8702    pub inst_parameter_list_list: Vec<InstParameterListList>,
8703    pub inst_parameter_list_opt: Option<InstParameterListOpt>,
8704}
8705
8706///
8707/// Type derived for non-terminal InstParameterListList
8708///
8709#[allow(dead_code)]
8710#[derive(Builder, Debug, Clone)]
8711#[builder(crate = "parol_runtime::derive_builder")]
8712pub struct InstParameterListList {
8713    pub comma: Box<Comma>,
8714    pub inst_parameter_group: Box<InstParameterGroup>,
8715}
8716
8717///
8718/// Type derived for non-terminal InstParameterListOpt
8719///
8720#[allow(dead_code)]
8721#[derive(Builder, Debug, Clone)]
8722#[builder(crate = "parol_runtime::derive_builder")]
8723pub struct InstParameterListOpt {
8724    pub comma: Box<Comma>,
8725}
8726
8727///
8728/// Type derived for non-terminal InstParameterOpt
8729///
8730#[allow(dead_code)]
8731#[derive(Builder, Debug, Clone)]
8732#[builder(crate = "parol_runtime::derive_builder")]
8733pub struct InstParameterOpt {
8734    pub inst_parameter_list: Box<InstParameterList>,
8735}
8736
8737///
8738/// Type derived for non-terminal InstPortGroup
8739///
8740#[allow(dead_code)]
8741#[derive(Builder, Debug, Clone)]
8742#[builder(crate = "parol_runtime::derive_builder")]
8743pub struct InstPortGroup {
8744    pub inst_port_group_list: Vec<InstPortGroupList>,
8745    pub inst_port_group_group: Box<InstPortGroupGroup>,
8746}
8747
8748///
8749/// Type derived for non-terminal InstPortGroupGroup
8750///
8751#[allow(dead_code)]
8752#[derive(Debug, Clone)]
8753pub enum InstPortGroupGroup {
8754    LBraceInstPortListRBrace(InstPortGroupGroupLBraceInstPortListRBrace),
8755    InstPortItem(InstPortGroupGroupInstPortItem),
8756}
8757
8758///
8759/// Type derived for non-terminal InstPortGroupList
8760///
8761#[allow(dead_code)]
8762#[derive(Builder, Debug, Clone)]
8763#[builder(crate = "parol_runtime::derive_builder")]
8764pub struct InstPortGroupList {
8765    pub attribute: Box<Attribute>,
8766}
8767
8768///
8769/// Type derived for non-terminal InstPortItem
8770///
8771#[allow(dead_code)]
8772#[derive(Builder, Debug, Clone)]
8773#[builder(crate = "parol_runtime::derive_builder")]
8774pub struct InstPortItem {
8775    pub identifier: Box<Identifier>,
8776    pub inst_port_item_opt: Option<InstPortItemOpt>,
8777}
8778
8779///
8780/// Type derived for non-terminal InstPortItemOpt
8781///
8782#[allow(dead_code)]
8783#[derive(Builder, Debug, Clone)]
8784#[builder(crate = "parol_runtime::derive_builder")]
8785pub struct InstPortItemOpt {
8786    pub colon: Box<Colon>,
8787    pub expression: Box<Expression>,
8788}
8789
8790///
8791/// Type derived for non-terminal InstPortList
8792///
8793#[allow(dead_code)]
8794#[derive(Builder, Debug, Clone)]
8795#[builder(crate = "parol_runtime::derive_builder")]
8796pub struct InstPortList {
8797    pub inst_port_group: Box<InstPortGroup>,
8798    pub inst_port_list_list: Vec<InstPortListList>,
8799    pub inst_port_list_opt: Option<InstPortListOpt>,
8800}
8801
8802///
8803/// Type derived for non-terminal InstPortListList
8804///
8805#[allow(dead_code)]
8806#[derive(Builder, Debug, Clone)]
8807#[builder(crate = "parol_runtime::derive_builder")]
8808pub struct InstPortListList {
8809    pub comma: Box<Comma>,
8810    pub inst_port_group: Box<InstPortGroup>,
8811}
8812
8813///
8814/// Type derived for non-terminal InstPortListOpt
8815///
8816#[allow(dead_code)]
8817#[derive(Builder, Debug, Clone)]
8818#[builder(crate = "parol_runtime::derive_builder")]
8819pub struct InstPortListOpt {
8820    pub comma: Box<Comma>,
8821}
8822
8823///
8824/// Type derived for non-terminal InstTerm
8825///
8826#[allow(dead_code)]
8827#[derive(Builder, Debug, Clone)]
8828#[builder(crate = "parol_runtime::derive_builder")]
8829pub struct InstTerm {
8830    pub inst_term: crate::veryl_token::Token, /* (?-u:\b)inst(?-u:\b) */
8831}
8832
8833///
8834/// Type derived for non-terminal InstToken
8835///
8836#[allow(dead_code)]
8837#[derive(Builder, Debug, Clone)]
8838#[builder(crate = "parol_runtime::derive_builder")]
8839pub struct InstToken {
8840    pub inst_term: crate::veryl_token::Token,
8841    pub comments: Box<Comments>,
8842}
8843
8844///
8845/// Type derived for non-terminal IntegralNumber
8846///
8847#[allow(dead_code)]
8848#[derive(Debug, Clone)]
8849pub enum IntegralNumber {
8850    Based(IntegralNumberBased),
8851    BaseLess(IntegralNumberBaseLess),
8852    AllBit(IntegralNumberAllBit),
8853}
8854
8855///
8856/// Type derived for non-terminal Interface
8857///
8858#[allow(dead_code)]
8859#[derive(Builder, Debug, Clone)]
8860#[builder(crate = "parol_runtime::derive_builder")]
8861pub struct Interface {
8862    pub interface_token: crate::veryl_token::VerylToken,
8863}
8864
8865///
8866/// Type derived for non-terminal InterfaceDeclaration
8867///
8868#[allow(dead_code)]
8869#[derive(Builder, Debug, Clone)]
8870#[builder(crate = "parol_runtime::derive_builder")]
8871pub struct InterfaceDeclaration {
8872    pub interface: Box<Interface>,
8873    pub identifier: Box<Identifier>,
8874    pub interface_declaration_opt: Option<InterfaceDeclarationOpt>,
8875    pub interface_declaration_opt0: Option<InterfaceDeclarationOpt0>,
8876    pub l_brace: Box<LBrace>,
8877    pub interface_declaration_list: Vec<InterfaceDeclarationList>,
8878    pub r_brace: Box<RBrace>,
8879}
8880
8881///
8882/// Type derived for non-terminal InterfaceDeclarationList
8883///
8884#[allow(dead_code)]
8885#[derive(Builder, Debug, Clone)]
8886#[builder(crate = "parol_runtime::derive_builder")]
8887pub struct InterfaceDeclarationList {
8888    pub interface_group: Box<InterfaceGroup>,
8889}
8890
8891///
8892/// Type derived for non-terminal InterfaceDeclarationOpt
8893///
8894#[allow(dead_code)]
8895#[derive(Builder, Debug, Clone)]
8896#[builder(crate = "parol_runtime::derive_builder")]
8897pub struct InterfaceDeclarationOpt {
8898    pub with_generic_parameter: Box<WithGenericParameter>,
8899}
8900
8901///
8902/// Type derived for non-terminal InterfaceDeclarationOpt0
8903///
8904#[allow(dead_code)]
8905#[derive(Builder, Debug, Clone)]
8906#[builder(crate = "parol_runtime::derive_builder")]
8907pub struct InterfaceDeclarationOpt0 {
8908    pub with_parameter: Box<WithParameter>,
8909}
8910
8911///
8912/// Type derived for non-terminal InterfaceGroup
8913///
8914#[allow(dead_code)]
8915#[derive(Builder, Debug, Clone)]
8916#[builder(crate = "parol_runtime::derive_builder")]
8917pub struct InterfaceGroup {
8918    pub interface_group_list: Vec<InterfaceGroupList>,
8919    pub interface_group_group: Box<InterfaceGroupGroup>,
8920}
8921
8922///
8923/// Type derived for non-terminal InterfaceGroupGroup
8924///
8925#[allow(dead_code)]
8926#[derive(Debug, Clone)]
8927pub enum InterfaceGroupGroup {
8928    LBraceInterfaceGroupGroupListRBrace(InterfaceGroupGroupLBraceInterfaceGroupGroupListRBrace),
8929    InterfaceItem(InterfaceGroupGroupInterfaceItem),
8930}
8931
8932///
8933/// Type derived for non-terminal InterfaceGroupGroupList
8934///
8935#[allow(dead_code)]
8936#[derive(Builder, Debug, Clone)]
8937#[builder(crate = "parol_runtime::derive_builder")]
8938pub struct InterfaceGroupGroupList {
8939    pub interface_group: Box<InterfaceGroup>,
8940}
8941
8942///
8943/// Type derived for non-terminal InterfaceGroupList
8944///
8945#[allow(dead_code)]
8946#[derive(Builder, Debug, Clone)]
8947#[builder(crate = "parol_runtime::derive_builder")]
8948pub struct InterfaceGroupList {
8949    pub attribute: Box<Attribute>,
8950}
8951
8952///
8953/// Type derived for non-terminal InterfaceItem
8954///
8955#[allow(dead_code)]
8956#[derive(Debug, Clone)]
8957pub enum InterfaceItem {
8958    GenerateItem(InterfaceItemGenerateItem),
8959    ModportDeclaration(InterfaceItemModportDeclaration),
8960}
8961
8962///
8963/// Type derived for non-terminal InterfaceTerm
8964///
8965#[allow(dead_code)]
8966#[derive(Builder, Debug, Clone)]
8967#[builder(crate = "parol_runtime::derive_builder")]
8968pub struct InterfaceTerm {
8969    pub interface_term: crate::veryl_token::Token, /* (?-u:\b)interface(?-u:\b) */
8970}
8971
8972///
8973/// Type derived for non-terminal InterfaceToken
8974///
8975#[allow(dead_code)]
8976#[derive(Builder, Debug, Clone)]
8977#[builder(crate = "parol_runtime::derive_builder")]
8978pub struct InterfaceToken {
8979    pub interface_term: crate::veryl_token::Token,
8980    pub comments: Box<Comments>,
8981}
8982
8983///
8984/// Type derived for non-terminal LAngle
8985///
8986#[allow(dead_code)]
8987#[derive(Builder, Debug, Clone)]
8988#[builder(crate = "parol_runtime::derive_builder")]
8989pub struct LAngle {
8990    pub l_angle_token: crate::veryl_token::VerylToken,
8991}
8992
8993///
8994/// Type derived for non-terminal LAngleTerm
8995///
8996#[allow(dead_code)]
8997#[derive(Builder, Debug, Clone)]
8998#[builder(crate = "parol_runtime::derive_builder")]
8999pub struct LAngleTerm {
9000    pub l_angle_term: crate::veryl_token::Token, /* < */
9001}
9002
9003///
9004/// Type derived for non-terminal LAngleToken
9005///
9006#[allow(dead_code)]
9007#[derive(Builder, Debug, Clone)]
9008#[builder(crate = "parol_runtime::derive_builder")]
9009pub struct LAngleToken {
9010    pub l_angle_term: crate::veryl_token::Token,
9011    pub comments: Box<Comments>,
9012}
9013
9014///
9015/// Type derived for non-terminal LBrace
9016///
9017#[allow(dead_code)]
9018#[derive(Builder, Debug, Clone)]
9019#[builder(crate = "parol_runtime::derive_builder")]
9020pub struct LBrace {
9021    pub l_brace_token: crate::veryl_token::VerylToken,
9022}
9023
9024///
9025/// Type derived for non-terminal LBraceTerm
9026///
9027#[allow(dead_code)]
9028#[derive(Builder, Debug, Clone)]
9029#[builder(crate = "parol_runtime::derive_builder")]
9030pub struct LBraceTerm {
9031    pub l_brace_term: crate::veryl_token::Token, /* { */
9032}
9033
9034///
9035/// Type derived for non-terminal LBraceToken
9036///
9037#[allow(dead_code)]
9038#[derive(Builder, Debug, Clone)]
9039#[builder(crate = "parol_runtime::derive_builder")]
9040pub struct LBraceToken {
9041    pub l_brace_term: crate::veryl_token::Token,
9042    pub comments: Box<Comments>,
9043}
9044
9045///
9046/// Type derived for non-terminal LBracket
9047///
9048#[allow(dead_code)]
9049#[derive(Builder, Debug, Clone)]
9050#[builder(crate = "parol_runtime::derive_builder")]
9051pub struct LBracket {
9052    pub l_bracket_token: crate::veryl_token::VerylToken,
9053}
9054
9055///
9056/// Type derived for non-terminal LBracketTerm
9057///
9058#[allow(dead_code)]
9059#[derive(Builder, Debug, Clone)]
9060#[builder(crate = "parol_runtime::derive_builder")]
9061pub struct LBracketTerm {
9062    pub l_bracket_term: crate::veryl_token::Token, /* [ */
9063}
9064
9065///
9066/// Type derived for non-terminal LBracketToken
9067///
9068#[allow(dead_code)]
9069#[derive(Builder, Debug, Clone)]
9070#[builder(crate = "parol_runtime::derive_builder")]
9071pub struct LBracketToken {
9072    pub l_bracket_term: crate::veryl_token::Token,
9073    pub comments: Box<Comments>,
9074}
9075
9076///
9077/// Type derived for non-terminal LParen
9078///
9079#[allow(dead_code)]
9080#[derive(Builder, Debug, Clone)]
9081#[builder(crate = "parol_runtime::derive_builder")]
9082pub struct LParen {
9083    pub l_paren_token: crate::veryl_token::VerylToken,
9084}
9085
9086///
9087/// Type derived for non-terminal LParenTerm
9088///
9089#[allow(dead_code)]
9090#[derive(Builder, Debug, Clone)]
9091#[builder(crate = "parol_runtime::derive_builder")]
9092pub struct LParenTerm {
9093    pub l_paren_term: crate::veryl_token::Token, /* ( */
9094}
9095
9096///
9097/// Type derived for non-terminal LParenToken
9098///
9099#[allow(dead_code)]
9100#[derive(Builder, Debug, Clone)]
9101#[builder(crate = "parol_runtime::derive_builder")]
9102pub struct LParenToken {
9103    pub l_paren_term: crate::veryl_token::Token,
9104    pub comments: Box<Comments>,
9105}
9106
9107///
9108/// Type derived for non-terminal Let
9109///
9110#[allow(dead_code)]
9111#[derive(Builder, Debug, Clone)]
9112#[builder(crate = "parol_runtime::derive_builder")]
9113pub struct Let {
9114    pub let_token: crate::veryl_token::VerylToken,
9115}
9116
9117///
9118/// Type derived for non-terminal LetDeclaration
9119///
9120#[allow(dead_code)]
9121#[derive(Builder, Debug, Clone)]
9122#[builder(crate = "parol_runtime::derive_builder")]
9123pub struct LetDeclaration {
9124    pub r#let: Box<Let>,
9125    pub identifier: Box<Identifier>,
9126    pub colon: Box<Colon>,
9127    pub let_declaration_opt: Option<LetDeclarationOpt>,
9128    pub array_type: Box<ArrayType>,
9129    pub equ: Box<Equ>,
9130    pub expression: Box<Expression>,
9131    pub semicolon: Box<Semicolon>,
9132}
9133
9134///
9135/// Type derived for non-terminal LetDeclarationOpt
9136///
9137#[allow(dead_code)]
9138#[derive(Builder, Debug, Clone)]
9139#[builder(crate = "parol_runtime::derive_builder")]
9140pub struct LetDeclarationOpt {
9141    pub clock_domain: Box<ClockDomain>,
9142}
9143
9144///
9145/// Type derived for non-terminal LetStatement
9146///
9147#[allow(dead_code)]
9148#[derive(Builder, Debug, Clone)]
9149#[builder(crate = "parol_runtime::derive_builder")]
9150pub struct LetStatement {
9151    pub r#let: Box<Let>,
9152    pub identifier: Box<Identifier>,
9153    pub colon: Box<Colon>,
9154    pub let_statement_opt: Option<LetStatementOpt>,
9155    pub array_type: Box<ArrayType>,
9156    pub equ: Box<Equ>,
9157    pub expression: Box<Expression>,
9158    pub semicolon: Box<Semicolon>,
9159}
9160
9161///
9162/// Type derived for non-terminal LetStatementOpt
9163///
9164#[allow(dead_code)]
9165#[derive(Builder, Debug, Clone)]
9166#[builder(crate = "parol_runtime::derive_builder")]
9167pub struct LetStatementOpt {
9168    pub clock_domain: Box<ClockDomain>,
9169}
9170
9171///
9172/// Type derived for non-terminal LetTerm
9173///
9174#[allow(dead_code)]
9175#[derive(Builder, Debug, Clone)]
9176#[builder(crate = "parol_runtime::derive_builder")]
9177pub struct LetTerm {
9178    pub let_term: crate::veryl_token::Token, /* (?-u:\b)let(?-u:\b) */
9179}
9180
9181///
9182/// Type derived for non-terminal LetToken
9183///
9184#[allow(dead_code)]
9185#[derive(Builder, Debug, Clone)]
9186#[builder(crate = "parol_runtime::derive_builder")]
9187pub struct LetToken {
9188    pub let_term: crate::veryl_token::Token,
9189    pub comments: Box<Comments>,
9190}
9191
9192///
9193/// Type derived for non-terminal Logic
9194///
9195#[allow(dead_code)]
9196#[derive(Builder, Debug, Clone)]
9197#[builder(crate = "parol_runtime::derive_builder")]
9198pub struct Logic {
9199    pub logic_token: crate::veryl_token::VerylToken,
9200}
9201
9202///
9203/// Type derived for non-terminal LogicTerm
9204///
9205#[allow(dead_code)]
9206#[derive(Builder, Debug, Clone)]
9207#[builder(crate = "parol_runtime::derive_builder")]
9208pub struct LogicTerm {
9209    pub logic_term: crate::veryl_token::Token, /* (?-u:\b)logic(?-u:\b) */
9210}
9211
9212///
9213/// Type derived for non-terminal LogicToken
9214///
9215#[allow(dead_code)]
9216#[derive(Builder, Debug, Clone)]
9217#[builder(crate = "parol_runtime::derive_builder")]
9218pub struct LogicToken {
9219    pub logic_term: crate::veryl_token::Token,
9220    pub comments: Box<Comments>,
9221}
9222
9223///
9224/// Type derived for non-terminal Lsb
9225///
9226#[allow(dead_code)]
9227#[derive(Builder, Debug, Clone)]
9228#[builder(crate = "parol_runtime::derive_builder")]
9229pub struct Lsb {
9230    pub lsb_token: crate::veryl_token::VerylToken,
9231}
9232
9233///
9234/// Type derived for non-terminal LsbTerm
9235///
9236#[allow(dead_code)]
9237#[derive(Builder, Debug, Clone)]
9238#[builder(crate = "parol_runtime::derive_builder")]
9239pub struct LsbTerm {
9240    pub lsb_term: crate::veryl_token::Token, /* (?-u:\b)lsb(?-u:\b) */
9241}
9242
9243///
9244/// Type derived for non-terminal LsbToken
9245///
9246#[allow(dead_code)]
9247#[derive(Builder, Debug, Clone)]
9248#[builder(crate = "parol_runtime::derive_builder")]
9249pub struct LsbToken {
9250    pub lsb_term: crate::veryl_token::Token,
9251    pub comments: Box<Comments>,
9252}
9253
9254///
9255/// Type derived for non-terminal MinusColon
9256///
9257#[allow(dead_code)]
9258#[derive(Builder, Debug, Clone)]
9259#[builder(crate = "parol_runtime::derive_builder")]
9260pub struct MinusColon {
9261    pub minus_colon_token: crate::veryl_token::VerylToken,
9262}
9263
9264///
9265/// Type derived for non-terminal MinusColonTerm
9266///
9267#[allow(dead_code)]
9268#[derive(Builder, Debug, Clone)]
9269#[builder(crate = "parol_runtime::derive_builder")]
9270pub struct MinusColonTerm {
9271    pub minus_colon_term: crate::veryl_token::Token, /* -: */
9272}
9273
9274///
9275/// Type derived for non-terminal MinusColonToken
9276///
9277#[allow(dead_code)]
9278#[derive(Builder, Debug, Clone)]
9279#[builder(crate = "parol_runtime::derive_builder")]
9280pub struct MinusColonToken {
9281    pub minus_colon_term: crate::veryl_token::Token,
9282    pub comments: Box<Comments>,
9283}
9284
9285///
9286/// Type derived for non-terminal MinusGT
9287///
9288#[allow(dead_code)]
9289#[derive(Builder, Debug, Clone)]
9290#[builder(crate = "parol_runtime::derive_builder")]
9291pub struct MinusGT {
9292    pub minus_g_t_token: crate::veryl_token::VerylToken,
9293}
9294
9295///
9296/// Type derived for non-terminal MinusGTTerm
9297///
9298#[allow(dead_code)]
9299#[derive(Builder, Debug, Clone)]
9300#[builder(crate = "parol_runtime::derive_builder")]
9301pub struct MinusGTTerm {
9302    pub minus_g_t_term: crate::veryl_token::Token, /* -> */
9303}
9304
9305///
9306/// Type derived for non-terminal MinusGTToken
9307///
9308#[allow(dead_code)]
9309#[derive(Builder, Debug, Clone)]
9310#[builder(crate = "parol_runtime::derive_builder")]
9311pub struct MinusGTToken {
9312    pub minus_g_t_term: crate::veryl_token::Token,
9313    pub comments: Box<Comments>,
9314}
9315
9316///
9317/// Type derived for non-terminal Modport
9318///
9319#[allow(dead_code)]
9320#[derive(Builder, Debug, Clone)]
9321#[builder(crate = "parol_runtime::derive_builder")]
9322pub struct Modport {
9323    pub modport_token: crate::veryl_token::VerylToken,
9324}
9325
9326///
9327/// Type derived for non-terminal ModportDeclaration
9328///
9329#[allow(dead_code)]
9330#[derive(Builder, Debug, Clone)]
9331#[builder(crate = "parol_runtime::derive_builder")]
9332pub struct ModportDeclaration {
9333    pub modport: Box<Modport>,
9334    pub identifier: Box<Identifier>,
9335    pub l_brace: Box<LBrace>,
9336    pub modport_declaration_opt: Option<ModportDeclarationOpt>,
9337    pub modport_declaration_opt0: Option<ModportDeclarationOpt0>,
9338    pub r_brace: Box<RBrace>,
9339}
9340
9341///
9342/// Type derived for non-terminal ModportDeclarationOpt
9343///
9344#[allow(dead_code)]
9345#[derive(Builder, Debug, Clone)]
9346#[builder(crate = "parol_runtime::derive_builder")]
9347pub struct ModportDeclarationOpt {
9348    pub modport_list: Box<ModportList>,
9349}
9350
9351///
9352/// Type derived for non-terminal ModportDeclarationOpt0
9353///
9354#[allow(dead_code)]
9355#[derive(Builder, Debug, Clone)]
9356#[builder(crate = "parol_runtime::derive_builder")]
9357pub struct ModportDeclarationOpt0 {
9358    pub dot_dot: Box<DotDot>,
9359    pub modport_default: Box<ModportDefault>,
9360}
9361
9362///
9363/// Type derived for non-terminal ModportDefault
9364///
9365#[allow(dead_code)]
9366#[derive(Debug, Clone)]
9367pub enum ModportDefault {
9368    Input(ModportDefaultInput),
9369    Output(ModportDefaultOutput),
9370    ConverseLParenIdentifierRParen(ModportDefaultConverseLParenIdentifierRParen),
9371}
9372
9373///
9374/// Type derived for non-terminal ModportGroup
9375///
9376#[allow(dead_code)]
9377#[derive(Builder, Debug, Clone)]
9378#[builder(crate = "parol_runtime::derive_builder")]
9379pub struct ModportGroup {
9380    pub modport_group_list: Vec<ModportGroupList>,
9381    pub modport_group_group: Box<ModportGroupGroup>,
9382}
9383
9384///
9385/// Type derived for non-terminal ModportGroupGroup
9386///
9387#[allow(dead_code)]
9388#[derive(Debug, Clone)]
9389pub enum ModportGroupGroup {
9390    LBraceModportListRBrace(ModportGroupGroupLBraceModportListRBrace),
9391    ModportItem(ModportGroupGroupModportItem),
9392}
9393
9394///
9395/// Type derived for non-terminal ModportGroupList
9396///
9397#[allow(dead_code)]
9398#[derive(Builder, Debug, Clone)]
9399#[builder(crate = "parol_runtime::derive_builder")]
9400pub struct ModportGroupList {
9401    pub attribute: Box<Attribute>,
9402}
9403
9404///
9405/// Type derived for non-terminal ModportItem
9406///
9407#[allow(dead_code)]
9408#[derive(Builder, Debug, Clone)]
9409#[builder(crate = "parol_runtime::derive_builder")]
9410pub struct ModportItem {
9411    pub identifier: Box<Identifier>,
9412    pub colon: Box<Colon>,
9413    pub direction: Box<Direction>,
9414}
9415
9416///
9417/// Type derived for non-terminal ModportList
9418///
9419#[allow(dead_code)]
9420#[derive(Builder, Debug, Clone)]
9421#[builder(crate = "parol_runtime::derive_builder")]
9422pub struct ModportList {
9423    pub modport_group: Box<ModportGroup>,
9424    pub modport_list_list: Vec<ModportListList>,
9425    pub modport_list_opt: Option<ModportListOpt>,
9426}
9427
9428///
9429/// Type derived for non-terminal ModportListList
9430///
9431#[allow(dead_code)]
9432#[derive(Builder, Debug, Clone)]
9433#[builder(crate = "parol_runtime::derive_builder")]
9434pub struct ModportListList {
9435    pub comma: Box<Comma>,
9436    pub modport_group: Box<ModportGroup>,
9437}
9438
9439///
9440/// Type derived for non-terminal ModportListOpt
9441///
9442#[allow(dead_code)]
9443#[derive(Builder, Debug, Clone)]
9444#[builder(crate = "parol_runtime::derive_builder")]
9445pub struct ModportListOpt {
9446    pub comma: Box<Comma>,
9447}
9448
9449///
9450/// Type derived for non-terminal ModportTerm
9451///
9452#[allow(dead_code)]
9453#[derive(Builder, Debug, Clone)]
9454#[builder(crate = "parol_runtime::derive_builder")]
9455pub struct ModportTerm {
9456    pub modport_term: crate::veryl_token::Token, /* (?-u:\b)modport(?-u:\b) */
9457}
9458
9459///
9460/// Type derived for non-terminal ModportToken
9461///
9462#[allow(dead_code)]
9463#[derive(Builder, Debug, Clone)]
9464#[builder(crate = "parol_runtime::derive_builder")]
9465pub struct ModportToken {
9466    pub modport_term: crate::veryl_token::Token,
9467    pub comments: Box<Comments>,
9468}
9469
9470///
9471/// Type derived for non-terminal Module
9472///
9473#[allow(dead_code)]
9474#[derive(Builder, Debug, Clone)]
9475#[builder(crate = "parol_runtime::derive_builder")]
9476pub struct Module {
9477    pub module_token: crate::veryl_token::VerylToken,
9478}
9479
9480///
9481/// Type derived for non-terminal ModuleDeclaration
9482///
9483#[allow(dead_code)]
9484#[derive(Builder, Debug, Clone)]
9485#[builder(crate = "parol_runtime::derive_builder")]
9486pub struct ModuleDeclaration {
9487    pub module: Box<Module>,
9488    pub identifier: Box<Identifier>,
9489    pub module_declaration_opt: Option<ModuleDeclarationOpt>,
9490    pub module_declaration_opt0: Option<ModuleDeclarationOpt0>,
9491    pub module_declaration_opt1: Option<ModuleDeclarationOpt1>,
9492    pub module_declaration_opt2: Option<ModuleDeclarationOpt2>,
9493    pub l_brace: Box<LBrace>,
9494    pub module_declaration_list: Vec<ModuleDeclarationList>,
9495    pub r_brace: Box<RBrace>,
9496}
9497
9498///
9499/// Type derived for non-terminal ModuleDeclarationList
9500///
9501#[allow(dead_code)]
9502#[derive(Builder, Debug, Clone)]
9503#[builder(crate = "parol_runtime::derive_builder")]
9504pub struct ModuleDeclarationList {
9505    pub module_group: Box<ModuleGroup>,
9506}
9507
9508///
9509/// Type derived for non-terminal ModuleDeclarationOpt
9510///
9511#[allow(dead_code)]
9512#[derive(Builder, Debug, Clone)]
9513#[builder(crate = "parol_runtime::derive_builder")]
9514pub struct ModuleDeclarationOpt {
9515    pub with_generic_parameter: Box<WithGenericParameter>,
9516}
9517
9518///
9519/// Type derived for non-terminal ModuleDeclarationOpt0
9520///
9521#[allow(dead_code)]
9522#[derive(Builder, Debug, Clone)]
9523#[builder(crate = "parol_runtime::derive_builder")]
9524pub struct ModuleDeclarationOpt0 {
9525    pub r#for: Box<For>,
9526    pub scoped_identifier: Box<ScopedIdentifier>,
9527}
9528
9529///
9530/// Type derived for non-terminal ModuleDeclarationOpt1
9531///
9532#[allow(dead_code)]
9533#[derive(Builder, Debug, Clone)]
9534#[builder(crate = "parol_runtime::derive_builder")]
9535pub struct ModuleDeclarationOpt1 {
9536    pub with_parameter: Box<WithParameter>,
9537}
9538
9539///
9540/// Type derived for non-terminal ModuleDeclarationOpt2
9541///
9542#[allow(dead_code)]
9543#[derive(Builder, Debug, Clone)]
9544#[builder(crate = "parol_runtime::derive_builder")]
9545pub struct ModuleDeclarationOpt2 {
9546    pub port_declaration: Box<PortDeclaration>,
9547}
9548
9549///
9550/// Type derived for non-terminal ModuleGroup
9551///
9552#[allow(dead_code)]
9553#[derive(Builder, Debug, Clone)]
9554#[builder(crate = "parol_runtime::derive_builder")]
9555pub struct ModuleGroup {
9556    pub module_group_list: Vec<ModuleGroupList>,
9557    pub module_group_group: Box<ModuleGroupGroup>,
9558}
9559
9560///
9561/// Type derived for non-terminal ModuleGroupGroup
9562///
9563#[allow(dead_code)]
9564#[derive(Debug, Clone)]
9565pub enum ModuleGroupGroup {
9566    LBraceModuleGroupGroupListRBrace(ModuleGroupGroupLBraceModuleGroupGroupListRBrace),
9567    ModuleItem(ModuleGroupGroupModuleItem),
9568}
9569
9570///
9571/// Type derived for non-terminal ModuleGroupGroupList
9572///
9573#[allow(dead_code)]
9574#[derive(Builder, Debug, Clone)]
9575#[builder(crate = "parol_runtime::derive_builder")]
9576pub struct ModuleGroupGroupList {
9577    pub module_group: Box<ModuleGroup>,
9578}
9579
9580///
9581/// Type derived for non-terminal ModuleGroupList
9582///
9583#[allow(dead_code)]
9584#[derive(Builder, Debug, Clone)]
9585#[builder(crate = "parol_runtime::derive_builder")]
9586pub struct ModuleGroupList {
9587    pub attribute: Box<Attribute>,
9588}
9589
9590///
9591/// Type derived for non-terminal ModuleItem
9592///
9593#[allow(dead_code)]
9594#[derive(Builder, Debug, Clone)]
9595#[builder(crate = "parol_runtime::derive_builder")]
9596pub struct ModuleItem {
9597    pub generate_item: Box<GenerateItem>,
9598}
9599
9600///
9601/// Type derived for non-terminal ModuleTerm
9602///
9603#[allow(dead_code)]
9604#[derive(Builder, Debug, Clone)]
9605#[builder(crate = "parol_runtime::derive_builder")]
9606pub struct ModuleTerm {
9607    pub module_term: crate::veryl_token::Token, /* (?-u:\b)module(?-u:\b) */
9608}
9609
9610///
9611/// Type derived for non-terminal ModuleToken
9612///
9613#[allow(dead_code)]
9614#[derive(Builder, Debug, Clone)]
9615#[builder(crate = "parol_runtime::derive_builder")]
9616pub struct ModuleToken {
9617    pub module_term: crate::veryl_token::Token,
9618    pub comments: Box<Comments>,
9619}
9620
9621///
9622/// Type derived for non-terminal Msb
9623///
9624#[allow(dead_code)]
9625#[derive(Builder, Debug, Clone)]
9626#[builder(crate = "parol_runtime::derive_builder")]
9627pub struct Msb {
9628    pub msb_token: crate::veryl_token::VerylToken,
9629}
9630
9631///
9632/// Type derived for non-terminal MsbTerm
9633///
9634#[allow(dead_code)]
9635#[derive(Builder, Debug, Clone)]
9636#[builder(crate = "parol_runtime::derive_builder")]
9637pub struct MsbTerm {
9638    pub msb_term: crate::veryl_token::Token, /* (?-u:\b)msb(?-u:\b) */
9639}
9640
9641///
9642/// Type derived for non-terminal MsbToken
9643///
9644#[allow(dead_code)]
9645#[derive(Builder, Debug, Clone)]
9646#[builder(crate = "parol_runtime::derive_builder")]
9647pub struct MsbToken {
9648    pub msb_term: crate::veryl_token::Token,
9649    pub comments: Box<Comments>,
9650}
9651
9652///
9653/// Type derived for non-terminal Number
9654///
9655#[allow(dead_code)]
9656#[derive(Debug, Clone)]
9657pub enum Number {
9658    IntegralNumber(NumberIntegralNumber),
9659    RealNumber(NumberRealNumber),
9660}
9661
9662///
9663/// Type derived for non-terminal Operator01
9664///
9665#[allow(dead_code)]
9666#[derive(Builder, Debug, Clone)]
9667#[builder(crate = "parol_runtime::derive_builder")]
9668pub struct Operator01 {
9669    pub operator01_token: crate::veryl_token::VerylToken,
9670}
9671
9672///
9673/// Type derived for non-terminal Operator01Term
9674///
9675#[allow(dead_code)]
9676#[derive(Builder, Debug, Clone)]
9677#[builder(crate = "parol_runtime::derive_builder")]
9678pub struct Operator01Term {
9679    pub operator01_term: crate::veryl_token::Token, /* \|\| */
9680}
9681
9682///
9683/// Type derived for non-terminal Operator01Token
9684///
9685#[allow(dead_code)]
9686#[derive(Builder, Debug, Clone)]
9687#[builder(crate = "parol_runtime::derive_builder")]
9688pub struct Operator01Token {
9689    pub operator01_term: crate::veryl_token::Token,
9690    pub comments: Box<Comments>,
9691}
9692
9693///
9694/// Type derived for non-terminal Operator02
9695///
9696#[allow(dead_code)]
9697#[derive(Builder, Debug, Clone)]
9698#[builder(crate = "parol_runtime::derive_builder")]
9699pub struct Operator02 {
9700    pub operator02_token: crate::veryl_token::VerylToken,
9701}
9702
9703///
9704/// Type derived for non-terminal Operator02Term
9705///
9706#[allow(dead_code)]
9707#[derive(Builder, Debug, Clone)]
9708#[builder(crate = "parol_runtime::derive_builder")]
9709pub struct Operator02Term {
9710    pub operator02_term: crate::veryl_token::Token, /* && */
9711}
9712
9713///
9714/// Type derived for non-terminal Operator02Token
9715///
9716#[allow(dead_code)]
9717#[derive(Builder, Debug, Clone)]
9718#[builder(crate = "parol_runtime::derive_builder")]
9719pub struct Operator02Token {
9720    pub operator02_term: crate::veryl_token::Token,
9721    pub comments: Box<Comments>,
9722}
9723
9724///
9725/// Type derived for non-terminal Operator03
9726///
9727#[allow(dead_code)]
9728#[derive(Builder, Debug, Clone)]
9729#[builder(crate = "parol_runtime::derive_builder")]
9730pub struct Operator03 {
9731    pub operator03_token: crate::veryl_token::VerylToken,
9732}
9733
9734///
9735/// Type derived for non-terminal Operator03Term
9736///
9737#[allow(dead_code)]
9738#[derive(Builder, Debug, Clone)]
9739#[builder(crate = "parol_runtime::derive_builder")]
9740pub struct Operator03Term {
9741    pub operator03_term: crate::veryl_token::Token, /* \| */
9742}
9743
9744///
9745/// Type derived for non-terminal Operator03Token
9746///
9747#[allow(dead_code)]
9748#[derive(Builder, Debug, Clone)]
9749#[builder(crate = "parol_runtime::derive_builder")]
9750pub struct Operator03Token {
9751    pub operator03_term: crate::veryl_token::Token,
9752    pub comments: Box<Comments>,
9753}
9754
9755///
9756/// Type derived for non-terminal Operator04
9757///
9758#[allow(dead_code)]
9759#[derive(Builder, Debug, Clone)]
9760#[builder(crate = "parol_runtime::derive_builder")]
9761pub struct Operator04 {
9762    pub operator04_token: crate::veryl_token::VerylToken,
9763}
9764
9765///
9766/// Type derived for non-terminal Operator04Term
9767///
9768#[allow(dead_code)]
9769#[derive(Builder, Debug, Clone)]
9770#[builder(crate = "parol_runtime::derive_builder")]
9771pub struct Operator04Term {
9772    pub operator04_term: crate::veryl_token::Token, /* \^~|\^|~\^ */
9773}
9774
9775///
9776/// Type derived for non-terminal Operator04Token
9777///
9778#[allow(dead_code)]
9779#[derive(Builder, Debug, Clone)]
9780#[builder(crate = "parol_runtime::derive_builder")]
9781pub struct Operator04Token {
9782    pub operator04_term: crate::veryl_token::Token,
9783    pub comments: Box<Comments>,
9784}
9785
9786///
9787/// Type derived for non-terminal Operator05
9788///
9789#[allow(dead_code)]
9790#[derive(Builder, Debug, Clone)]
9791#[builder(crate = "parol_runtime::derive_builder")]
9792pub struct Operator05 {
9793    pub operator05_token: crate::veryl_token::VerylToken,
9794}
9795
9796///
9797/// Type derived for non-terminal Operator05Term
9798///
9799#[allow(dead_code)]
9800#[derive(Builder, Debug, Clone)]
9801#[builder(crate = "parol_runtime::derive_builder")]
9802pub struct Operator05Term {
9803    pub operator05_term: crate::veryl_token::Token, /* & */
9804}
9805
9806///
9807/// Type derived for non-terminal Operator05Token
9808///
9809#[allow(dead_code)]
9810#[derive(Builder, Debug, Clone)]
9811#[builder(crate = "parol_runtime::derive_builder")]
9812pub struct Operator05Token {
9813    pub operator05_term: crate::veryl_token::Token,
9814    pub comments: Box<Comments>,
9815}
9816
9817///
9818/// Type derived for non-terminal Operator06
9819///
9820#[allow(dead_code)]
9821#[derive(Builder, Debug, Clone)]
9822#[builder(crate = "parol_runtime::derive_builder")]
9823pub struct Operator06 {
9824    pub operator06_token: crate::veryl_token::VerylToken,
9825}
9826
9827///
9828/// Type derived for non-terminal Operator06Term
9829///
9830#[allow(dead_code)]
9831#[derive(Builder, Debug, Clone)]
9832#[builder(crate = "parol_runtime::derive_builder")]
9833pub struct Operator06Term {
9834    pub operator06_term: crate::veryl_token::Token, /* ===|==\?|!==|!=\?|==|!= */
9835}
9836
9837///
9838/// Type derived for non-terminal Operator06Token
9839///
9840#[allow(dead_code)]
9841#[derive(Builder, Debug, Clone)]
9842#[builder(crate = "parol_runtime::derive_builder")]
9843pub struct Operator06Token {
9844    pub operator06_term: crate::veryl_token::Token,
9845    pub comments: Box<Comments>,
9846}
9847
9848///
9849/// Type derived for non-terminal Operator07
9850///
9851#[allow(dead_code)]
9852#[derive(Builder, Debug, Clone)]
9853#[builder(crate = "parol_runtime::derive_builder")]
9854pub struct Operator07 {
9855    pub operator07_token: crate::veryl_token::VerylToken,
9856}
9857
9858///
9859/// Type derived for non-terminal Operator07Term
9860///
9861#[allow(dead_code)]
9862#[derive(Builder, Debug, Clone)]
9863#[builder(crate = "parol_runtime::derive_builder")]
9864pub struct Operator07Term {
9865    pub operator07_term: crate::veryl_token::Token, /* <=|>=|<:|>: */
9866}
9867
9868///
9869/// Type derived for non-terminal Operator07Token
9870///
9871#[allow(dead_code)]
9872#[derive(Builder, Debug, Clone)]
9873#[builder(crate = "parol_runtime::derive_builder")]
9874pub struct Operator07Token {
9875    pub operator07_term: crate::veryl_token::Token,
9876    pub comments: Box<Comments>,
9877}
9878
9879///
9880/// Type derived for non-terminal Operator08
9881///
9882#[allow(dead_code)]
9883#[derive(Builder, Debug, Clone)]
9884#[builder(crate = "parol_runtime::derive_builder")]
9885pub struct Operator08 {
9886    pub operator08_token: crate::veryl_token::VerylToken,
9887}
9888
9889///
9890/// Type derived for non-terminal Operator08Term
9891///
9892#[allow(dead_code)]
9893#[derive(Builder, Debug, Clone)]
9894#[builder(crate = "parol_runtime::derive_builder")]
9895pub struct Operator08Term {
9896    pub operator08_term: crate::veryl_token::Token, /* <<<|>>>|<<|>> */
9897}
9898
9899///
9900/// Type derived for non-terminal Operator08Token
9901///
9902#[allow(dead_code)]
9903#[derive(Builder, Debug, Clone)]
9904#[builder(crate = "parol_runtime::derive_builder")]
9905pub struct Operator08Token {
9906    pub operator08_term: crate::veryl_token::Token,
9907    pub comments: Box<Comments>,
9908}
9909
9910///
9911/// Type derived for non-terminal Operator09
9912///
9913#[allow(dead_code)]
9914#[derive(Builder, Debug, Clone)]
9915#[builder(crate = "parol_runtime::derive_builder")]
9916pub struct Operator09 {
9917    pub operator09_token: crate::veryl_token::VerylToken,
9918}
9919
9920///
9921/// Type derived for non-terminal Operator09Term
9922///
9923#[allow(dead_code)]
9924#[derive(Builder, Debug, Clone)]
9925#[builder(crate = "parol_runtime::derive_builder")]
9926pub struct Operator09Term {
9927    pub operator09_term: crate::veryl_token::Token, /* \+|- */
9928}
9929
9930///
9931/// Type derived for non-terminal Operator09Token
9932///
9933#[allow(dead_code)]
9934#[derive(Builder, Debug, Clone)]
9935#[builder(crate = "parol_runtime::derive_builder")]
9936pub struct Operator09Token {
9937    pub operator09_term: crate::veryl_token::Token,
9938    pub comments: Box<Comments>,
9939}
9940
9941///
9942/// Type derived for non-terminal Operator10
9943///
9944#[allow(dead_code)]
9945#[derive(Builder, Debug, Clone)]
9946#[builder(crate = "parol_runtime::derive_builder")]
9947pub struct Operator10 {
9948    pub operator10_token: crate::veryl_token::VerylToken,
9949}
9950
9951///
9952/// Type derived for non-terminal Operator10Term
9953///
9954#[allow(dead_code)]
9955#[derive(Builder, Debug, Clone)]
9956#[builder(crate = "parol_runtime::derive_builder")]
9957pub struct Operator10Term {
9958    pub operator10_term: crate::veryl_token::Token, /* /|% */
9959}
9960
9961///
9962/// Type derived for non-terminal Operator10Token
9963///
9964#[allow(dead_code)]
9965#[derive(Builder, Debug, Clone)]
9966#[builder(crate = "parol_runtime::derive_builder")]
9967pub struct Operator10Token {
9968    pub operator10_term: crate::veryl_token::Token,
9969    pub comments: Box<Comments>,
9970}
9971
9972///
9973/// Type derived for non-terminal Operator11
9974///
9975#[allow(dead_code)]
9976#[derive(Builder, Debug, Clone)]
9977#[builder(crate = "parol_runtime::derive_builder")]
9978pub struct Operator11 {
9979    pub operator11_token: crate::veryl_token::VerylToken,
9980}
9981
9982///
9983/// Type derived for non-terminal Operator11Term
9984///
9985#[allow(dead_code)]
9986#[derive(Builder, Debug, Clone)]
9987#[builder(crate = "parol_runtime::derive_builder")]
9988pub struct Operator11Term {
9989    pub operator11_term: crate::veryl_token::Token, /* \*\* */
9990}
9991
9992///
9993/// Type derived for non-terminal Operator11Token
9994///
9995#[allow(dead_code)]
9996#[derive(Builder, Debug, Clone)]
9997#[builder(crate = "parol_runtime::derive_builder")]
9998pub struct Operator11Token {
9999    pub operator11_term: crate::veryl_token::Token,
10000    pub comments: Box<Comments>,
10001}
10002
10003///
10004/// Type derived for non-terminal Output
10005///
10006#[allow(dead_code)]
10007#[derive(Builder, Debug, Clone)]
10008#[builder(crate = "parol_runtime::derive_builder")]
10009pub struct Output {
10010    pub output_token: crate::veryl_token::VerylToken,
10011}
10012
10013///
10014/// Type derived for non-terminal OutputTerm
10015///
10016#[allow(dead_code)]
10017#[derive(Builder, Debug, Clone)]
10018#[builder(crate = "parol_runtime::derive_builder")]
10019pub struct OutputTerm {
10020    pub output_term: crate::veryl_token::Token, /* (?-u:\b)output(?-u:\b) */
10021}
10022
10023///
10024/// Type derived for non-terminal OutputToken
10025///
10026#[allow(dead_code)]
10027#[derive(Builder, Debug, Clone)]
10028#[builder(crate = "parol_runtime::derive_builder")]
10029pub struct OutputToken {
10030    pub output_term: crate::veryl_token::Token,
10031    pub comments: Box<Comments>,
10032}
10033
10034///
10035/// Type derived for non-terminal Outside
10036///
10037#[allow(dead_code)]
10038#[derive(Builder, Debug, Clone)]
10039#[builder(crate = "parol_runtime::derive_builder")]
10040pub struct Outside {
10041    pub outside_token: crate::veryl_token::VerylToken,
10042}
10043
10044///
10045/// Type derived for non-terminal OutsideExpression
10046///
10047#[allow(dead_code)]
10048#[derive(Builder, Debug, Clone)]
10049#[builder(crate = "parol_runtime::derive_builder")]
10050pub struct OutsideExpression {
10051    pub outside: Box<Outside>,
10052    pub expression: Box<Expression>,
10053    pub l_brace: Box<LBrace>,
10054    pub range_list: Box<RangeList>,
10055    pub r_brace: Box<RBrace>,
10056}
10057
10058///
10059/// Type derived for non-terminal OutsideTerm
10060///
10061#[allow(dead_code)]
10062#[derive(Builder, Debug, Clone)]
10063#[builder(crate = "parol_runtime::derive_builder")]
10064pub struct OutsideTerm {
10065    pub outside_term: crate::veryl_token::Token, /* (?-u:\b)outside(?-u:\b) */
10066}
10067
10068///
10069/// Type derived for non-terminal OutsideToken
10070///
10071#[allow(dead_code)]
10072#[derive(Builder, Debug, Clone)]
10073#[builder(crate = "parol_runtime::derive_builder")]
10074pub struct OutsideToken {
10075    pub outside_term: crate::veryl_token::Token,
10076    pub comments: Box<Comments>,
10077}
10078
10079///
10080/// Type derived for non-terminal Package
10081///
10082#[allow(dead_code)]
10083#[derive(Builder, Debug, Clone)]
10084#[builder(crate = "parol_runtime::derive_builder")]
10085pub struct Package {
10086    pub package_token: crate::veryl_token::VerylToken,
10087}
10088
10089///
10090/// Type derived for non-terminal PackageDeclaration
10091///
10092#[allow(dead_code)]
10093#[derive(Builder, Debug, Clone)]
10094#[builder(crate = "parol_runtime::derive_builder")]
10095pub struct PackageDeclaration {
10096    pub package: Box<Package>,
10097    pub identifier: Box<Identifier>,
10098    pub package_declaration_opt: Option<PackageDeclarationOpt>,
10099    pub l_brace: Box<LBrace>,
10100    pub package_declaration_list: Vec<PackageDeclarationList>,
10101    pub r_brace: Box<RBrace>,
10102}
10103
10104///
10105/// Type derived for non-terminal PackageDeclarationList
10106///
10107#[allow(dead_code)]
10108#[derive(Builder, Debug, Clone)]
10109#[builder(crate = "parol_runtime::derive_builder")]
10110pub struct PackageDeclarationList {
10111    pub package_group: Box<PackageGroup>,
10112}
10113
10114///
10115/// Type derived for non-terminal PackageDeclarationOpt
10116///
10117#[allow(dead_code)]
10118#[derive(Builder, Debug, Clone)]
10119#[builder(crate = "parol_runtime::derive_builder")]
10120pub struct PackageDeclarationOpt {
10121    pub with_generic_parameter: Box<WithGenericParameter>,
10122}
10123
10124///
10125/// Type derived for non-terminal PackageGroup
10126///
10127#[allow(dead_code)]
10128#[derive(Builder, Debug, Clone)]
10129#[builder(crate = "parol_runtime::derive_builder")]
10130pub struct PackageGroup {
10131    pub package_group_list: Vec<PackageGroupList>,
10132    pub package_group_group: Box<PackageGroupGroup>,
10133}
10134
10135///
10136/// Type derived for non-terminal PackageGroupGroup
10137///
10138#[allow(dead_code)]
10139#[derive(Debug, Clone)]
10140pub enum PackageGroupGroup {
10141    LBracePackageGroupGroupListRBrace(PackageGroupGroupLBracePackageGroupGroupListRBrace),
10142    PackageItem(PackageGroupGroupPackageItem),
10143}
10144
10145///
10146/// Type derived for non-terminal PackageGroupGroupList
10147///
10148#[allow(dead_code)]
10149#[derive(Builder, Debug, Clone)]
10150#[builder(crate = "parol_runtime::derive_builder")]
10151pub struct PackageGroupGroupList {
10152    pub package_group: Box<PackageGroup>,
10153}
10154
10155///
10156/// Type derived for non-terminal PackageGroupList
10157///
10158#[allow(dead_code)]
10159#[derive(Builder, Debug, Clone)]
10160#[builder(crate = "parol_runtime::derive_builder")]
10161pub struct PackageGroupList {
10162    pub attribute: Box<Attribute>,
10163}
10164
10165///
10166/// Type derived for non-terminal PackageItem
10167///
10168#[allow(dead_code)]
10169#[derive(Debug, Clone)]
10170pub enum PackageItem {
10171    ConstDeclaration(PackageItemConstDeclaration),
10172    TypeDefDeclaration(PackageItemTypeDefDeclaration),
10173    EnumDeclaration(PackageItemEnumDeclaration),
10174    StructUnionDeclaration(PackageItemStructUnionDeclaration),
10175    FunctionDeclaration(PackageItemFunctionDeclaration),
10176    ImportDeclaration(PackageItemImportDeclaration),
10177    ExportDeclaration(PackageItemExportDeclaration),
10178}
10179
10180///
10181/// Type derived for non-terminal PackageTerm
10182///
10183#[allow(dead_code)]
10184#[derive(Builder, Debug, Clone)]
10185#[builder(crate = "parol_runtime::derive_builder")]
10186pub struct PackageTerm {
10187    pub package_term: crate::veryl_token::Token, /* (?-u:\b)package(?-u:\b) */
10188}
10189
10190///
10191/// Type derived for non-terminal PackageToken
10192///
10193#[allow(dead_code)]
10194#[derive(Builder, Debug, Clone)]
10195#[builder(crate = "parol_runtime::derive_builder")]
10196pub struct PackageToken {
10197    pub package_term: crate::veryl_token::Token,
10198    pub comments: Box<Comments>,
10199}
10200
10201///
10202/// Type derived for non-terminal Param
10203///
10204#[allow(dead_code)]
10205#[derive(Builder, Debug, Clone)]
10206#[builder(crate = "parol_runtime::derive_builder")]
10207pub struct Param {
10208    pub param_token: crate::veryl_token::VerylToken,
10209}
10210
10211///
10212/// Type derived for non-terminal ParamTerm
10213///
10214#[allow(dead_code)]
10215#[derive(Builder, Debug, Clone)]
10216#[builder(crate = "parol_runtime::derive_builder")]
10217pub struct ParamTerm {
10218    pub param_term: crate::veryl_token::Token, /* (?-u:\b)param(?-u:\b) */
10219}
10220
10221///
10222/// Type derived for non-terminal ParamToken
10223///
10224#[allow(dead_code)]
10225#[derive(Builder, Debug, Clone)]
10226#[builder(crate = "parol_runtime::derive_builder")]
10227pub struct ParamToken {
10228    pub param_term: crate::veryl_token::Token,
10229    pub comments: Box<Comments>,
10230}
10231
10232///
10233/// Type derived for non-terminal PlusColon
10234///
10235#[allow(dead_code)]
10236#[derive(Builder, Debug, Clone)]
10237#[builder(crate = "parol_runtime::derive_builder")]
10238pub struct PlusColon {
10239    pub plus_colon_token: crate::veryl_token::VerylToken,
10240}
10241
10242///
10243/// Type derived for non-terminal PlusColonTerm
10244///
10245#[allow(dead_code)]
10246#[derive(Builder, Debug, Clone)]
10247#[builder(crate = "parol_runtime::derive_builder")]
10248pub struct PlusColonTerm {
10249    pub plus_colon_term: crate::veryl_token::Token, /* +: */
10250}
10251
10252///
10253/// Type derived for non-terminal PlusColonToken
10254///
10255#[allow(dead_code)]
10256#[derive(Builder, Debug, Clone)]
10257#[builder(crate = "parol_runtime::derive_builder")]
10258pub struct PlusColonToken {
10259    pub plus_colon_term: crate::veryl_token::Token,
10260    pub comments: Box<Comments>,
10261}
10262
10263///
10264/// Type derived for non-terminal PortDeclaration
10265///
10266#[allow(dead_code)]
10267#[derive(Builder, Debug, Clone)]
10268#[builder(crate = "parol_runtime::derive_builder")]
10269pub struct PortDeclaration {
10270    pub l_paren: Box<LParen>,
10271    pub port_declaration_opt: Option<PortDeclarationOpt>,
10272    pub r_paren: Box<RParen>,
10273}
10274
10275///
10276/// Type derived for non-terminal PortDeclarationGroup
10277///
10278#[allow(dead_code)]
10279#[derive(Builder, Debug, Clone)]
10280#[builder(crate = "parol_runtime::derive_builder")]
10281pub struct PortDeclarationGroup {
10282    pub port_declaration_group_list: Vec<PortDeclarationGroupList>,
10283    pub port_declaration_group_group: Box<PortDeclarationGroupGroup>,
10284}
10285
10286///
10287/// Type derived for non-terminal PortDeclarationGroupGroup
10288///
10289#[allow(dead_code)]
10290#[derive(Debug, Clone)]
10291pub enum PortDeclarationGroupGroup {
10292    LBracePortDeclarationListRBrace(PortDeclarationGroupGroupLBracePortDeclarationListRBrace),
10293    PortDeclarationItem(PortDeclarationGroupGroupPortDeclarationItem),
10294}
10295
10296///
10297/// Type derived for non-terminal PortDeclarationGroupList
10298///
10299#[allow(dead_code)]
10300#[derive(Builder, Debug, Clone)]
10301#[builder(crate = "parol_runtime::derive_builder")]
10302pub struct PortDeclarationGroupList {
10303    pub attribute: Box<Attribute>,
10304}
10305
10306///
10307/// Type derived for non-terminal PortDeclarationItem
10308///
10309#[allow(dead_code)]
10310#[derive(Builder, Debug, Clone)]
10311#[builder(crate = "parol_runtime::derive_builder")]
10312pub struct PortDeclarationItem {
10313    pub identifier: Box<Identifier>,
10314    pub colon: Box<Colon>,
10315    pub port_declaration_item_group: Box<PortDeclarationItemGroup>,
10316}
10317
10318///
10319/// Type derived for non-terminal PortDeclarationItemGroup
10320///
10321#[allow(dead_code)]
10322#[derive(Debug, Clone)]
10323pub enum PortDeclarationItemGroup {
10324    PortTypeConcrete(PortDeclarationItemGroupPortTypeConcrete),
10325    PortTypeAbstract(PortDeclarationItemGroupPortTypeAbstract),
10326}
10327
10328///
10329/// Type derived for non-terminal PortDeclarationList
10330///
10331#[allow(dead_code)]
10332#[derive(Builder, Debug, Clone)]
10333#[builder(crate = "parol_runtime::derive_builder")]
10334pub struct PortDeclarationList {
10335    pub port_declaration_group: Box<PortDeclarationGroup>,
10336    pub port_declaration_list_list: Vec<PortDeclarationListList>,
10337    pub port_declaration_list_opt: Option<PortDeclarationListOpt>,
10338}
10339
10340///
10341/// Type derived for non-terminal PortDeclarationListList
10342///
10343#[allow(dead_code)]
10344#[derive(Builder, Debug, Clone)]
10345#[builder(crate = "parol_runtime::derive_builder")]
10346pub struct PortDeclarationListList {
10347    pub comma: Box<Comma>,
10348    pub port_declaration_group: Box<PortDeclarationGroup>,
10349}
10350
10351///
10352/// Type derived for non-terminal PortDeclarationListOpt
10353///
10354#[allow(dead_code)]
10355#[derive(Builder, Debug, Clone)]
10356#[builder(crate = "parol_runtime::derive_builder")]
10357pub struct PortDeclarationListOpt {
10358    pub comma: Box<Comma>,
10359}
10360
10361///
10362/// Type derived for non-terminal PortDeclarationOpt
10363///
10364#[allow(dead_code)]
10365#[derive(Builder, Debug, Clone)]
10366#[builder(crate = "parol_runtime::derive_builder")]
10367pub struct PortDeclarationOpt {
10368    pub port_declaration_list: Box<PortDeclarationList>,
10369}
10370
10371///
10372/// Type derived for non-terminal PortDefaultValue
10373///
10374#[allow(dead_code)]
10375#[derive(Builder, Debug, Clone)]
10376#[builder(crate = "parol_runtime::derive_builder")]
10377pub struct PortDefaultValue {
10378    pub expression: Box<Expression>,
10379}
10380
10381///
10382/// Type derived for non-terminal PortTypeAbstract
10383///
10384#[allow(dead_code)]
10385#[derive(Builder, Debug, Clone)]
10386#[builder(crate = "parol_runtime::derive_builder")]
10387pub struct PortTypeAbstract {
10388    pub port_type_abstract_opt: Option<PortTypeAbstractOpt>,
10389    pub interface: Box<Interface>,
10390    pub port_type_abstract_opt0: Option<PortTypeAbstractOpt0>,
10391    pub port_type_abstract_opt1: Option<PortTypeAbstractOpt1>,
10392}
10393
10394///
10395/// Type derived for non-terminal PortTypeAbstractOpt
10396///
10397#[allow(dead_code)]
10398#[derive(Builder, Debug, Clone)]
10399#[builder(crate = "parol_runtime::derive_builder")]
10400pub struct PortTypeAbstractOpt {
10401    pub clock_domain: Box<ClockDomain>,
10402}
10403
10404///
10405/// Type derived for non-terminal PortTypeAbstractOpt0
10406///
10407#[allow(dead_code)]
10408#[derive(Builder, Debug, Clone)]
10409#[builder(crate = "parol_runtime::derive_builder")]
10410pub struct PortTypeAbstractOpt0 {
10411    pub colon_colon: Box<ColonColon>,
10412    pub identifier: Box<Identifier>,
10413}
10414
10415///
10416/// Type derived for non-terminal PortTypeAbstractOpt1
10417///
10418#[allow(dead_code)]
10419#[derive(Builder, Debug, Clone)]
10420#[builder(crate = "parol_runtime::derive_builder")]
10421pub struct PortTypeAbstractOpt1 {
10422    pub array: Box<Array>,
10423}
10424
10425///
10426/// Type derived for non-terminal PortTypeConcrete
10427///
10428#[allow(dead_code)]
10429#[derive(Builder, Debug, Clone)]
10430#[builder(crate = "parol_runtime::derive_builder")]
10431pub struct PortTypeConcrete {
10432    pub direction: Box<Direction>,
10433    pub port_type_concrete_opt: Option<PortTypeConcreteOpt>,
10434    pub array_type: Box<ArrayType>,
10435    pub port_type_concrete_opt0: Option<PortTypeConcreteOpt0>,
10436}
10437
10438///
10439/// Type derived for non-terminal PortTypeConcreteOpt
10440///
10441#[allow(dead_code)]
10442#[derive(Builder, Debug, Clone)]
10443#[builder(crate = "parol_runtime::derive_builder")]
10444pub struct PortTypeConcreteOpt {
10445    pub clock_domain: Box<ClockDomain>,
10446}
10447
10448///
10449/// Type derived for non-terminal PortTypeConcreteOpt0
10450///
10451#[allow(dead_code)]
10452#[derive(Builder, Debug, Clone)]
10453#[builder(crate = "parol_runtime::derive_builder")]
10454pub struct PortTypeConcreteOpt0 {
10455    pub equ: Box<Equ>,
10456    pub port_default_value: Box<PortDefaultValue>,
10457}
10458
10459///
10460/// Type derived for non-terminal Proto
10461///
10462#[allow(dead_code)]
10463#[derive(Builder, Debug, Clone)]
10464#[builder(crate = "parol_runtime::derive_builder")]
10465pub struct Proto {
10466    pub proto_token: crate::veryl_token::VerylToken,
10467}
10468
10469///
10470/// Type derived for non-terminal ProtoModuleDeclaration
10471///
10472#[allow(dead_code)]
10473#[derive(Builder, Debug, Clone)]
10474#[builder(crate = "parol_runtime::derive_builder")]
10475pub struct ProtoModuleDeclaration {
10476    pub proto: Box<Proto>,
10477    pub module: Box<Module>,
10478    pub identifier: Box<Identifier>,
10479    pub proto_module_declaration_opt: Option<ProtoModuleDeclarationOpt>,
10480    pub proto_module_declaration_opt0: Option<ProtoModuleDeclarationOpt0>,
10481    pub semicolon: Box<Semicolon>,
10482}
10483
10484///
10485/// Type derived for non-terminal ProtoModuleDeclarationOpt
10486///
10487#[allow(dead_code)]
10488#[derive(Builder, Debug, Clone)]
10489#[builder(crate = "parol_runtime::derive_builder")]
10490pub struct ProtoModuleDeclarationOpt {
10491    pub with_parameter: Box<WithParameter>,
10492}
10493
10494///
10495/// Type derived for non-terminal ProtoModuleDeclarationOpt0
10496///
10497#[allow(dead_code)]
10498#[derive(Builder, Debug, Clone)]
10499#[builder(crate = "parol_runtime::derive_builder")]
10500pub struct ProtoModuleDeclarationOpt0 {
10501    pub port_declaration: Box<PortDeclaration>,
10502}
10503
10504///
10505/// Type derived for non-terminal ProtoTerm
10506///
10507#[allow(dead_code)]
10508#[derive(Builder, Debug, Clone)]
10509#[builder(crate = "parol_runtime::derive_builder")]
10510pub struct ProtoTerm {
10511    pub proto_term: crate::veryl_token::Token, /* (?-u:\b)proto(?-u:\b) */
10512}
10513
10514///
10515/// Type derived for non-terminal ProtoToken
10516///
10517#[allow(dead_code)]
10518#[derive(Builder, Debug, Clone)]
10519#[builder(crate = "parol_runtime::derive_builder")]
10520pub struct ProtoToken {
10521    pub proto_term: crate::veryl_token::Token,
10522    pub comments: Box<Comments>,
10523}
10524
10525///
10526/// Type derived for non-terminal Pub
10527///
10528#[allow(dead_code)]
10529#[derive(Builder, Debug, Clone)]
10530#[builder(crate = "parol_runtime::derive_builder")]
10531pub struct Pub {
10532    pub pub_token: crate::veryl_token::VerylToken,
10533}
10534
10535///
10536/// Type derived for non-terminal PubTerm
10537///
10538#[allow(dead_code)]
10539#[derive(Builder, Debug, Clone)]
10540#[builder(crate = "parol_runtime::derive_builder")]
10541pub struct PubTerm {
10542    pub pub_term: crate::veryl_token::Token, /* (?-u:\b)pub(?-u:\b) */
10543}
10544
10545///
10546/// Type derived for non-terminal PubToken
10547///
10548#[allow(dead_code)]
10549#[derive(Builder, Debug, Clone)]
10550#[builder(crate = "parol_runtime::derive_builder")]
10551pub struct PubToken {
10552    pub pub_term: crate::veryl_token::Token,
10553    pub comments: Box<Comments>,
10554}
10555
10556///
10557/// Type derived for non-terminal PublicDescriptionItem
10558///
10559#[allow(dead_code)]
10560#[derive(Debug, Clone)]
10561pub enum PublicDescriptionItem {
10562    ModuleDeclaration(PublicDescriptionItemModuleDeclaration),
10563    InterfaceDeclaration(PublicDescriptionItemInterfaceDeclaration),
10564    PackageDeclaration(PublicDescriptionItemPackageDeclaration),
10565    ProtoModuleDeclaration(PublicDescriptionItemProtoModuleDeclaration),
10566}
10567
10568///
10569/// Type derived for non-terminal QuoteLBrace
10570///
10571#[allow(dead_code)]
10572#[derive(Builder, Debug, Clone)]
10573#[builder(crate = "parol_runtime::derive_builder")]
10574pub struct QuoteLBrace {
10575    pub quote_l_brace_token: crate::veryl_token::VerylToken,
10576}
10577
10578///
10579/// Type derived for non-terminal QuoteLBraceTerm
10580///
10581#[allow(dead_code)]
10582#[derive(Builder, Debug, Clone)]
10583#[builder(crate = "parol_runtime::derive_builder")]
10584pub struct QuoteLBraceTerm {
10585    pub quote_l_brace_term: crate::veryl_token::Token, /* '\{ */
10586}
10587
10588///
10589/// Type derived for non-terminal QuoteLBraceToken
10590///
10591#[allow(dead_code)]
10592#[derive(Builder, Debug, Clone)]
10593#[builder(crate = "parol_runtime::derive_builder")]
10594pub struct QuoteLBraceToken {
10595    pub quote_l_brace_term: crate::veryl_token::Token,
10596    pub comments: Box<Comments>,
10597}
10598
10599///
10600/// Type derived for non-terminal RAngle
10601///
10602#[allow(dead_code)]
10603#[derive(Builder, Debug, Clone)]
10604#[builder(crate = "parol_runtime::derive_builder")]
10605pub struct RAngle {
10606    pub r_angle_token: crate::veryl_token::VerylToken,
10607}
10608
10609///
10610/// Type derived for non-terminal RAngleTerm
10611///
10612#[allow(dead_code)]
10613#[derive(Builder, Debug, Clone)]
10614#[builder(crate = "parol_runtime::derive_builder")]
10615pub struct RAngleTerm {
10616    pub r_angle_term: crate::veryl_token::Token, /* > */
10617}
10618
10619///
10620/// Type derived for non-terminal RAngleToken
10621///
10622#[allow(dead_code)]
10623#[derive(Builder, Debug, Clone)]
10624#[builder(crate = "parol_runtime::derive_builder")]
10625pub struct RAngleToken {
10626    pub r_angle_term: crate::veryl_token::Token,
10627    pub comments: Box<Comments>,
10628}
10629
10630///
10631/// Type derived for non-terminal RBrace
10632///
10633#[allow(dead_code)]
10634#[derive(Builder, Debug, Clone)]
10635#[builder(crate = "parol_runtime::derive_builder")]
10636pub struct RBrace {
10637    pub r_brace_token: crate::veryl_token::VerylToken,
10638}
10639
10640///
10641/// Type derived for non-terminal RBraceTerm
10642///
10643#[allow(dead_code)]
10644#[derive(Builder, Debug, Clone)]
10645#[builder(crate = "parol_runtime::derive_builder")]
10646pub struct RBraceTerm {
10647    pub r_brace_term: crate::veryl_token::Token, /* } */
10648}
10649
10650///
10651/// Type derived for non-terminal RBraceToken
10652///
10653#[allow(dead_code)]
10654#[derive(Builder, Debug, Clone)]
10655#[builder(crate = "parol_runtime::derive_builder")]
10656pub struct RBraceToken {
10657    pub r_brace_term: crate::veryl_token::Token,
10658    pub comments: Box<Comments>,
10659}
10660
10661///
10662/// Type derived for non-terminal RBracket
10663///
10664#[allow(dead_code)]
10665#[derive(Builder, Debug, Clone)]
10666#[builder(crate = "parol_runtime::derive_builder")]
10667pub struct RBracket {
10668    pub r_bracket_token: crate::veryl_token::VerylToken,
10669}
10670
10671///
10672/// Type derived for non-terminal RBracketTerm
10673///
10674#[allow(dead_code)]
10675#[derive(Builder, Debug, Clone)]
10676#[builder(crate = "parol_runtime::derive_builder")]
10677pub struct RBracketTerm {
10678    pub r_bracket_term: crate::veryl_token::Token, /* ] */
10679}
10680
10681///
10682/// Type derived for non-terminal RBracketToken
10683///
10684#[allow(dead_code)]
10685#[derive(Builder, Debug, Clone)]
10686#[builder(crate = "parol_runtime::derive_builder")]
10687pub struct RBracketToken {
10688    pub r_bracket_term: crate::veryl_token::Token,
10689    pub comments: Box<Comments>,
10690}
10691
10692///
10693/// Type derived for non-terminal RParen
10694///
10695#[allow(dead_code)]
10696#[derive(Builder, Debug, Clone)]
10697#[builder(crate = "parol_runtime::derive_builder")]
10698pub struct RParen {
10699    pub r_paren_token: crate::veryl_token::VerylToken,
10700}
10701
10702///
10703/// Type derived for non-terminal RParenTerm
10704///
10705#[allow(dead_code)]
10706#[derive(Builder, Debug, Clone)]
10707#[builder(crate = "parol_runtime::derive_builder")]
10708pub struct RParenTerm {
10709    pub r_paren_term: crate::veryl_token::Token, /* ) */
10710}
10711
10712///
10713/// Type derived for non-terminal RParenToken
10714///
10715#[allow(dead_code)]
10716#[derive(Builder, Debug, Clone)]
10717#[builder(crate = "parol_runtime::derive_builder")]
10718pub struct RParenToken {
10719    pub r_paren_term: crate::veryl_token::Token,
10720    pub comments: Box<Comments>,
10721}
10722
10723///
10724/// Type derived for non-terminal Range
10725///
10726#[allow(dead_code)]
10727#[derive(Builder, Debug, Clone)]
10728#[builder(crate = "parol_runtime::derive_builder")]
10729pub struct Range {
10730    pub expression: Box<Expression>,
10731    pub range_opt: Option<RangeOpt>,
10732}
10733
10734///
10735/// Type derived for non-terminal RangeItem
10736///
10737#[allow(dead_code)]
10738#[derive(Builder, Debug, Clone)]
10739#[builder(crate = "parol_runtime::derive_builder")]
10740pub struct RangeItem {
10741    pub range: Box<Range>,
10742}
10743
10744///
10745/// Type derived for non-terminal RangeList
10746///
10747#[allow(dead_code)]
10748#[derive(Builder, Debug, Clone)]
10749#[builder(crate = "parol_runtime::derive_builder")]
10750pub struct RangeList {
10751    pub range_item: Box<RangeItem>,
10752    pub range_list_list: Vec<RangeListList>,
10753    pub range_list_opt: Option<RangeListOpt>,
10754}
10755
10756///
10757/// Type derived for non-terminal RangeListList
10758///
10759#[allow(dead_code)]
10760#[derive(Builder, Debug, Clone)]
10761#[builder(crate = "parol_runtime::derive_builder")]
10762pub struct RangeListList {
10763    pub comma: Box<Comma>,
10764    pub range_item: Box<RangeItem>,
10765}
10766
10767///
10768/// Type derived for non-terminal RangeListOpt
10769///
10770#[allow(dead_code)]
10771#[derive(Builder, Debug, Clone)]
10772#[builder(crate = "parol_runtime::derive_builder")]
10773pub struct RangeListOpt {
10774    pub comma: Box<Comma>,
10775}
10776
10777///
10778/// Type derived for non-terminal RangeOperator
10779///
10780#[allow(dead_code)]
10781#[derive(Debug, Clone)]
10782pub enum RangeOperator {
10783    DotDot(RangeOperatorDotDot),
10784    DotDotEqu(RangeOperatorDotDotEqu),
10785}
10786
10787///
10788/// Type derived for non-terminal RangeOpt
10789///
10790#[allow(dead_code)]
10791#[derive(Builder, Debug, Clone)]
10792#[builder(crate = "parol_runtime::derive_builder")]
10793pub struct RangeOpt {
10794    pub range_operator: Box<RangeOperator>,
10795    pub expression: Box<Expression>,
10796}
10797
10798///
10799/// Type derived for non-terminal RealNumber
10800///
10801#[allow(dead_code)]
10802#[derive(Debug, Clone)]
10803pub enum RealNumber {
10804    FixedPoint(RealNumberFixedPoint),
10805    Exponent(RealNumberExponent),
10806}
10807
10808///
10809/// Type derived for non-terminal Ref
10810///
10811#[allow(dead_code)]
10812#[derive(Builder, Debug, Clone)]
10813#[builder(crate = "parol_runtime::derive_builder")]
10814pub struct Ref {
10815    pub ref_token: crate::veryl_token::VerylToken,
10816}
10817
10818///
10819/// Type derived for non-terminal RefTerm
10820///
10821#[allow(dead_code)]
10822#[derive(Builder, Debug, Clone)]
10823#[builder(crate = "parol_runtime::derive_builder")]
10824pub struct RefTerm {
10825    pub ref_term: crate::veryl_token::Token, /* (?-u:\b)ref(?-u:\b) */
10826}
10827
10828///
10829/// Type derived for non-terminal RefToken
10830///
10831#[allow(dead_code)]
10832#[derive(Builder, Debug, Clone)]
10833#[builder(crate = "parol_runtime::derive_builder")]
10834pub struct RefToken {
10835    pub ref_term: crate::veryl_token::Token,
10836    pub comments: Box<Comments>,
10837}
10838
10839///
10840/// Type derived for non-terminal Repeat
10841///
10842#[allow(dead_code)]
10843#[derive(Builder, Debug, Clone)]
10844#[builder(crate = "parol_runtime::derive_builder")]
10845pub struct Repeat {
10846    pub repeat_token: crate::veryl_token::VerylToken,
10847}
10848
10849///
10850/// Type derived for non-terminal RepeatTerm
10851///
10852#[allow(dead_code)]
10853#[derive(Builder, Debug, Clone)]
10854#[builder(crate = "parol_runtime::derive_builder")]
10855pub struct RepeatTerm {
10856    pub repeat_term: crate::veryl_token::Token, /* (?-u:\b)repeat(?-u:\b) */
10857}
10858
10859///
10860/// Type derived for non-terminal RepeatToken
10861///
10862#[allow(dead_code)]
10863#[derive(Builder, Debug, Clone)]
10864#[builder(crate = "parol_runtime::derive_builder")]
10865pub struct RepeatToken {
10866    pub repeat_term: crate::veryl_token::Token,
10867    pub comments: Box<Comments>,
10868}
10869
10870///
10871/// Type derived for non-terminal Reset
10872///
10873#[allow(dead_code)]
10874#[derive(Builder, Debug, Clone)]
10875#[builder(crate = "parol_runtime::derive_builder")]
10876pub struct Reset {
10877    pub reset_token: crate::veryl_token::VerylToken,
10878}
10879
10880///
10881/// Type derived for non-terminal ResetAsyncHigh
10882///
10883#[allow(dead_code)]
10884#[derive(Builder, Debug, Clone)]
10885#[builder(crate = "parol_runtime::derive_builder")]
10886pub struct ResetAsyncHigh {
10887    pub reset_async_high_token: crate::veryl_token::VerylToken,
10888}
10889
10890///
10891/// Type derived for non-terminal ResetAsyncHighTerm
10892///
10893#[allow(dead_code)]
10894#[derive(Builder, Debug, Clone)]
10895#[builder(crate = "parol_runtime::derive_builder")]
10896pub struct ResetAsyncHighTerm {
10897    pub reset_async_high_term: crate::veryl_token::Token, /* (?-u:\b)reset_async_high(?-u:\b) */
10898}
10899
10900///
10901/// Type derived for non-terminal ResetAsyncHighToken
10902///
10903#[allow(dead_code)]
10904#[derive(Builder, Debug, Clone)]
10905#[builder(crate = "parol_runtime::derive_builder")]
10906pub struct ResetAsyncHighToken {
10907    pub reset_async_high_term: crate::veryl_token::Token,
10908    pub comments: Box<Comments>,
10909}
10910
10911///
10912/// Type derived for non-terminal ResetAsyncLow
10913///
10914#[allow(dead_code)]
10915#[derive(Builder, Debug, Clone)]
10916#[builder(crate = "parol_runtime::derive_builder")]
10917pub struct ResetAsyncLow {
10918    pub reset_async_low_token: crate::veryl_token::VerylToken,
10919}
10920
10921///
10922/// Type derived for non-terminal ResetAsyncLowTerm
10923///
10924#[allow(dead_code)]
10925#[derive(Builder, Debug, Clone)]
10926#[builder(crate = "parol_runtime::derive_builder")]
10927pub struct ResetAsyncLowTerm {
10928    pub reset_async_low_term: crate::veryl_token::Token, /* (?-u:\b)reset_async_low(?-u:\b) */
10929}
10930
10931///
10932/// Type derived for non-terminal ResetAsyncLowToken
10933///
10934#[allow(dead_code)]
10935#[derive(Builder, Debug, Clone)]
10936#[builder(crate = "parol_runtime::derive_builder")]
10937pub struct ResetAsyncLowToken {
10938    pub reset_async_low_term: crate::veryl_token::Token,
10939    pub comments: Box<Comments>,
10940}
10941
10942///
10943/// Type derived for non-terminal ResetSyncHigh
10944///
10945#[allow(dead_code)]
10946#[derive(Builder, Debug, Clone)]
10947#[builder(crate = "parol_runtime::derive_builder")]
10948pub struct ResetSyncHigh {
10949    pub reset_sync_high_token: crate::veryl_token::VerylToken,
10950}
10951
10952///
10953/// Type derived for non-terminal ResetSyncHighTerm
10954///
10955#[allow(dead_code)]
10956#[derive(Builder, Debug, Clone)]
10957#[builder(crate = "parol_runtime::derive_builder")]
10958pub struct ResetSyncHighTerm {
10959    pub reset_sync_high_term: crate::veryl_token::Token, /* (?-u:\b)reset_sync_high(?-u:\b) */
10960}
10961
10962///
10963/// Type derived for non-terminal ResetSyncHighToken
10964///
10965#[allow(dead_code)]
10966#[derive(Builder, Debug, Clone)]
10967#[builder(crate = "parol_runtime::derive_builder")]
10968pub struct ResetSyncHighToken {
10969    pub reset_sync_high_term: crate::veryl_token::Token,
10970    pub comments: Box<Comments>,
10971}
10972
10973///
10974/// Type derived for non-terminal ResetSyncLow
10975///
10976#[allow(dead_code)]
10977#[derive(Builder, Debug, Clone)]
10978#[builder(crate = "parol_runtime::derive_builder")]
10979pub struct ResetSyncLow {
10980    pub reset_sync_low_token: crate::veryl_token::VerylToken,
10981}
10982
10983///
10984/// Type derived for non-terminal ResetSyncLowTerm
10985///
10986#[allow(dead_code)]
10987#[derive(Builder, Debug, Clone)]
10988#[builder(crate = "parol_runtime::derive_builder")]
10989pub struct ResetSyncLowTerm {
10990    pub reset_sync_low_term: crate::veryl_token::Token, /* (?-u:\b)reset_sync_low(?-u:\b) */
10991}
10992
10993///
10994/// Type derived for non-terminal ResetSyncLowToken
10995///
10996#[allow(dead_code)]
10997#[derive(Builder, Debug, Clone)]
10998#[builder(crate = "parol_runtime::derive_builder")]
10999pub struct ResetSyncLowToken {
11000    pub reset_sync_low_term: crate::veryl_token::Token,
11001    pub comments: Box<Comments>,
11002}
11003
11004///
11005/// Type derived for non-terminal ResetTerm
11006///
11007#[allow(dead_code)]
11008#[derive(Builder, Debug, Clone)]
11009#[builder(crate = "parol_runtime::derive_builder")]
11010pub struct ResetTerm {
11011    pub reset_term: crate::veryl_token::Token, /* (?-u:\b)reset(?-u:\b) */
11012}
11013
11014///
11015/// Type derived for non-terminal ResetToken
11016///
11017#[allow(dead_code)]
11018#[derive(Builder, Debug, Clone)]
11019#[builder(crate = "parol_runtime::derive_builder")]
11020pub struct ResetToken {
11021    pub reset_term: crate::veryl_token::Token,
11022    pub comments: Box<Comments>,
11023}
11024
11025///
11026/// Type derived for non-terminal Return
11027///
11028#[allow(dead_code)]
11029#[derive(Builder, Debug, Clone)]
11030#[builder(crate = "parol_runtime::derive_builder")]
11031pub struct Return {
11032    pub return_token: crate::veryl_token::VerylToken,
11033}
11034
11035///
11036/// Type derived for non-terminal ReturnStatement
11037///
11038#[allow(dead_code)]
11039#[derive(Builder, Debug, Clone)]
11040#[builder(crate = "parol_runtime::derive_builder")]
11041pub struct ReturnStatement {
11042    pub r#return: Box<Return>,
11043    pub expression: Box<Expression>,
11044    pub semicolon: Box<Semicolon>,
11045}
11046
11047///
11048/// Type derived for non-terminal ReturnTerm
11049///
11050#[allow(dead_code)]
11051#[derive(Builder, Debug, Clone)]
11052#[builder(crate = "parol_runtime::derive_builder")]
11053pub struct ReturnTerm {
11054    pub return_term: crate::veryl_token::Token, /* (?-u:\b)return(?-u:\b) */
11055}
11056
11057///
11058/// Type derived for non-terminal ReturnToken
11059///
11060#[allow(dead_code)]
11061#[derive(Builder, Debug, Clone)]
11062#[builder(crate = "parol_runtime::derive_builder")]
11063pub struct ReturnToken {
11064    pub return_term: crate::veryl_token::Token,
11065    pub comments: Box<Comments>,
11066}
11067
11068///
11069/// Type derived for non-terminal ScalarType
11070///
11071#[allow(dead_code)]
11072#[derive(Builder, Debug, Clone)]
11073#[builder(crate = "parol_runtime::derive_builder")]
11074pub struct ScalarType {
11075    pub scalar_type_list: Vec<ScalarTypeList>,
11076    pub scalar_type_group: Box<ScalarTypeGroup>,
11077}
11078
11079///
11080/// Type derived for non-terminal ScalarTypeGroup
11081///
11082#[allow(dead_code)]
11083#[derive(Debug, Clone)]
11084pub enum ScalarTypeGroup {
11085    UserDefinedTypeScalarTypeOpt(ScalarTypeGroupUserDefinedTypeScalarTypeOpt),
11086    FactorType(ScalarTypeGroupFactorType),
11087}
11088
11089///
11090/// Type derived for non-terminal ScalarTypeList
11091///
11092#[allow(dead_code)]
11093#[derive(Builder, Debug, Clone)]
11094#[builder(crate = "parol_runtime::derive_builder")]
11095pub struct ScalarTypeList {
11096    pub type_modifier: Box<TypeModifier>,
11097}
11098
11099///
11100/// Type derived for non-terminal ScalarTypeOpt
11101///
11102#[allow(dead_code)]
11103#[derive(Builder, Debug, Clone)]
11104#[builder(crate = "parol_runtime::derive_builder")]
11105pub struct ScalarTypeOpt {
11106    pub width: Box<Width>,
11107}
11108
11109///
11110/// Type derived for non-terminal ScopedIdentifier
11111///
11112#[allow(dead_code)]
11113#[derive(Builder, Debug, Clone)]
11114#[builder(crate = "parol_runtime::derive_builder")]
11115pub struct ScopedIdentifier {
11116    pub scoped_identifier_group: Box<ScopedIdentifierGroup>,
11117    pub scoped_identifier_list: Vec<ScopedIdentifierList>,
11118}
11119
11120///
11121/// Type derived for non-terminal ScopedIdentifierGroup
11122///
11123#[allow(dead_code)]
11124#[derive(Debug, Clone)]
11125pub enum ScopedIdentifierGroup {
11126    DollarIdentifier(ScopedIdentifierGroupDollarIdentifier),
11127    IdentifierScopedIdentifierOpt(ScopedIdentifierGroupIdentifierScopedIdentifierOpt),
11128}
11129
11130///
11131/// Type derived for non-terminal ScopedIdentifierList
11132///
11133#[allow(dead_code)]
11134#[derive(Builder, Debug, Clone)]
11135#[builder(crate = "parol_runtime::derive_builder")]
11136pub struct ScopedIdentifierList {
11137    pub colon_colon: Box<ColonColon>,
11138    pub identifier: Box<Identifier>,
11139    pub scoped_identifier_opt0: Option<ScopedIdentifierOpt0>,
11140}
11141
11142///
11143/// Type derived for non-terminal ScopedIdentifierOpt
11144///
11145#[allow(dead_code)]
11146#[derive(Builder, Debug, Clone)]
11147#[builder(crate = "parol_runtime::derive_builder")]
11148pub struct ScopedIdentifierOpt {
11149    pub with_generic_argument: Box<WithGenericArgument>,
11150}
11151
11152///
11153/// Type derived for non-terminal ScopedIdentifierOpt0
11154///
11155#[allow(dead_code)]
11156#[derive(Builder, Debug, Clone)]
11157#[builder(crate = "parol_runtime::derive_builder")]
11158pub struct ScopedIdentifierOpt0 {
11159    pub with_generic_argument: Box<WithGenericArgument>,
11160}
11161
11162///
11163/// Type derived for non-terminal Select
11164///
11165#[allow(dead_code)]
11166#[derive(Builder, Debug, Clone)]
11167#[builder(crate = "parol_runtime::derive_builder")]
11168pub struct Select {
11169    pub l_bracket: Box<LBracket>,
11170    pub expression: Box<Expression>,
11171    pub select_opt: Option<SelectOpt>,
11172    pub r_bracket: Box<RBracket>,
11173}
11174
11175///
11176/// Type derived for non-terminal SelectOperator
11177///
11178#[allow(dead_code)]
11179#[derive(Debug, Clone)]
11180pub enum SelectOperator {
11181    Colon(SelectOperatorColon),
11182    PlusColon(SelectOperatorPlusColon),
11183    MinusColon(SelectOperatorMinusColon),
11184    Step(SelectOperatorStep),
11185}
11186
11187///
11188/// Type derived for non-terminal SelectOpt
11189///
11190#[allow(dead_code)]
11191#[derive(Builder, Debug, Clone)]
11192#[builder(crate = "parol_runtime::derive_builder")]
11193pub struct SelectOpt {
11194    pub select_operator: Box<SelectOperator>,
11195    pub expression: Box<Expression>,
11196}
11197
11198///
11199/// Type derived for non-terminal Semicolon
11200///
11201#[allow(dead_code)]
11202#[derive(Builder, Debug, Clone)]
11203#[builder(crate = "parol_runtime::derive_builder")]
11204pub struct Semicolon {
11205    pub semicolon_token: crate::veryl_token::VerylToken,
11206}
11207
11208///
11209/// Type derived for non-terminal SemicolonTerm
11210///
11211#[allow(dead_code)]
11212#[derive(Builder, Debug, Clone)]
11213#[builder(crate = "parol_runtime::derive_builder")]
11214pub struct SemicolonTerm {
11215    pub semicolon_term: crate::veryl_token::Token, /* ; */
11216}
11217
11218///
11219/// Type derived for non-terminal SemicolonToken
11220///
11221#[allow(dead_code)]
11222#[derive(Builder, Debug, Clone)]
11223#[builder(crate = "parol_runtime::derive_builder")]
11224pub struct SemicolonToken {
11225    pub semicolon_term: crate::veryl_token::Token,
11226    pub comments: Box<Comments>,
11227}
11228
11229///
11230/// Type derived for non-terminal Signed
11231///
11232#[allow(dead_code)]
11233#[derive(Builder, Debug, Clone)]
11234#[builder(crate = "parol_runtime::derive_builder")]
11235pub struct Signed {
11236    pub signed_token: crate::veryl_token::VerylToken,
11237}
11238
11239///
11240/// Type derived for non-terminal SignedTerm
11241///
11242#[allow(dead_code)]
11243#[derive(Builder, Debug, Clone)]
11244#[builder(crate = "parol_runtime::derive_builder")]
11245pub struct SignedTerm {
11246    pub signed_term: crate::veryl_token::Token, /* (?-u:\b)signed(?-u:\b) */
11247}
11248
11249///
11250/// Type derived for non-terminal SignedToken
11251///
11252#[allow(dead_code)]
11253#[derive(Builder, Debug, Clone)]
11254#[builder(crate = "parol_runtime::derive_builder")]
11255pub struct SignedToken {
11256    pub signed_term: crate::veryl_token::Token,
11257    pub comments: Box<Comments>,
11258}
11259
11260///
11261/// Type derived for non-terminal Star
11262///
11263#[allow(dead_code)]
11264#[derive(Builder, Debug, Clone)]
11265#[builder(crate = "parol_runtime::derive_builder")]
11266pub struct Star {
11267    pub star_token: crate::veryl_token::VerylToken,
11268}
11269
11270///
11271/// Type derived for non-terminal StarTerm
11272///
11273#[allow(dead_code)]
11274#[derive(Builder, Debug, Clone)]
11275#[builder(crate = "parol_runtime::derive_builder")]
11276pub struct StarTerm {
11277    pub star_term: crate::veryl_token::Token, /* * */
11278}
11279
11280///
11281/// Type derived for non-terminal StarToken
11282///
11283#[allow(dead_code)]
11284#[derive(Builder, Debug, Clone)]
11285#[builder(crate = "parol_runtime::derive_builder")]
11286pub struct StarToken {
11287    pub star_term: crate::veryl_token::Token,
11288    pub comments: Box<Comments>,
11289}
11290
11291///
11292/// Type derived for non-terminal Start
11293///
11294#[allow(dead_code)]
11295#[derive(Builder, Debug, Clone)]
11296#[builder(crate = "parol_runtime::derive_builder")]
11297pub struct Start {
11298    pub start_token: crate::veryl_token::VerylToken,
11299}
11300
11301///
11302/// Type derived for non-terminal StartToken
11303///
11304#[allow(dead_code)]
11305#[derive(Builder, Debug, Clone)]
11306#[builder(crate = "parol_runtime::derive_builder")]
11307pub struct StartToken {
11308    pub comments: Box<Comments>,
11309}
11310
11311///
11312/// Type derived for non-terminal Statement
11313///
11314#[allow(dead_code)]
11315#[derive(Debug, Clone)]
11316pub enum Statement {
11317    IdentifierStatement(StatementIdentifierStatement),
11318    IfStatement(StatementIfStatement),
11319    IfResetStatement(StatementIfResetStatement),
11320    ReturnStatement(StatementReturnStatement),
11321    BreakStatement(StatementBreakStatement),
11322    ForStatement(StatementForStatement),
11323    CaseStatement(StatementCaseStatement),
11324    SwitchStatement(StatementSwitchStatement),
11325}
11326
11327///
11328/// Type derived for non-terminal StatementBlock
11329///
11330#[allow(dead_code)]
11331#[derive(Builder, Debug, Clone)]
11332#[builder(crate = "parol_runtime::derive_builder")]
11333pub struct StatementBlock {
11334    pub l_brace: Box<LBrace>,
11335    pub statement_block_list: Vec<StatementBlockList>,
11336    pub r_brace: Box<RBrace>,
11337}
11338
11339///
11340/// Type derived for non-terminal StatementBlockGroup
11341///
11342#[allow(dead_code)]
11343#[derive(Builder, Debug, Clone)]
11344#[builder(crate = "parol_runtime::derive_builder")]
11345pub struct StatementBlockGroup {
11346    pub statement_block_group_list: Vec<StatementBlockGroupList>,
11347    pub statement_block_group_group: Box<StatementBlockGroupGroup>,
11348}
11349
11350///
11351/// Type derived for non-terminal StatementBlockGroupGroup
11352///
11353#[allow(dead_code)]
11354#[derive(Debug, Clone)]
11355pub enum StatementBlockGroupGroup {
11356    LBraceStatementBlockGroupGroupListRBrace(
11357        StatementBlockGroupGroupLBraceStatementBlockGroupGroupListRBrace,
11358    ),
11359    StatementBlockItem(StatementBlockGroupGroupStatementBlockItem),
11360}
11361
11362///
11363/// Type derived for non-terminal StatementBlockGroupGroupList
11364///
11365#[allow(dead_code)]
11366#[derive(Builder, Debug, Clone)]
11367#[builder(crate = "parol_runtime::derive_builder")]
11368pub struct StatementBlockGroupGroupList {
11369    pub statement_block_group: Box<StatementBlockGroup>,
11370}
11371
11372///
11373/// Type derived for non-terminal StatementBlockGroupList
11374///
11375#[allow(dead_code)]
11376#[derive(Builder, Debug, Clone)]
11377#[builder(crate = "parol_runtime::derive_builder")]
11378pub struct StatementBlockGroupList {
11379    pub attribute: Box<Attribute>,
11380}
11381
11382///
11383/// Type derived for non-terminal StatementBlockItem
11384///
11385#[allow(dead_code)]
11386#[derive(Debug, Clone)]
11387pub enum StatementBlockItem {
11388    VarDeclaration(StatementBlockItemVarDeclaration),
11389    LetStatement(StatementBlockItemLetStatement),
11390    Statement(StatementBlockItemStatement),
11391}
11392
11393///
11394/// Type derived for non-terminal StatementBlockList
11395///
11396#[allow(dead_code)]
11397#[derive(Builder, Debug, Clone)]
11398#[builder(crate = "parol_runtime::derive_builder")]
11399pub struct StatementBlockList {
11400    pub statement_block_group: Box<StatementBlockGroup>,
11401}
11402
11403///
11404/// Type derived for non-terminal Step
11405///
11406#[allow(dead_code)]
11407#[derive(Builder, Debug, Clone)]
11408#[builder(crate = "parol_runtime::derive_builder")]
11409pub struct Step {
11410    pub step_token: crate::veryl_token::VerylToken,
11411}
11412
11413///
11414/// Type derived for non-terminal StepTerm
11415///
11416#[allow(dead_code)]
11417#[derive(Builder, Debug, Clone)]
11418#[builder(crate = "parol_runtime::derive_builder")]
11419pub struct StepTerm {
11420    pub step_term: crate::veryl_token::Token, /* (?-u:\b)step(?-u:\b) */
11421}
11422
11423///
11424/// Type derived for non-terminal StepToken
11425///
11426#[allow(dead_code)]
11427#[derive(Builder, Debug, Clone)]
11428#[builder(crate = "parol_runtime::derive_builder")]
11429pub struct StepToken {
11430    pub step_term: crate::veryl_token::Token,
11431    pub comments: Box<Comments>,
11432}
11433
11434///
11435/// Type derived for non-terminal Strin
11436///
11437#[allow(dead_code)]
11438#[derive(Builder, Debug, Clone)]
11439#[builder(crate = "parol_runtime::derive_builder")]
11440pub struct Strin {
11441    pub string_token: crate::veryl_token::VerylToken,
11442}
11443
11444///
11445/// Type derived for non-terminal StringLiteral
11446///
11447#[allow(dead_code)]
11448#[derive(Builder, Debug, Clone)]
11449#[builder(crate = "parol_runtime::derive_builder")]
11450pub struct StringLiteral {
11451    pub string_literal_token: crate::veryl_token::VerylToken,
11452}
11453
11454///
11455/// Type derived for non-terminal StringLiteralTerm
11456///
11457#[allow(dead_code)]
11458#[derive(Builder, Debug, Clone)]
11459#[builder(crate = "parol_runtime::derive_builder")]
11460pub struct StringLiteralTerm {
11461    pub string_literal_term: crate::veryl_token::Token, /* \u{0022}(?:\\[\u{0022}\\/bfnrt]|u[0-9a-fA-F]{4}|[^\u{0022}\\\u0000-\u001F])*\u{0022} */
11462}
11463
11464///
11465/// Type derived for non-terminal StringLiteralToken
11466///
11467#[allow(dead_code)]
11468#[derive(Builder, Debug, Clone)]
11469#[builder(crate = "parol_runtime::derive_builder")]
11470pub struct StringLiteralToken {
11471    pub string_literal_term: crate::veryl_token::Token,
11472    pub comments: Box<Comments>,
11473}
11474
11475///
11476/// Type derived for non-terminal StringTerm
11477///
11478#[allow(dead_code)]
11479#[derive(Builder, Debug, Clone)]
11480#[builder(crate = "parol_runtime::derive_builder")]
11481pub struct StringTerm {
11482    pub string_term: crate::veryl_token::Token, /* (?-u:\b)string(?-u:\b) */
11483}
11484
11485///
11486/// Type derived for non-terminal StringToken
11487///
11488#[allow(dead_code)]
11489#[derive(Builder, Debug, Clone)]
11490#[builder(crate = "parol_runtime::derive_builder")]
11491pub struct StringToken {
11492    pub string_term: crate::veryl_token::Token,
11493    pub comments: Box<Comments>,
11494}
11495
11496///
11497/// Type derived for non-terminal Struct
11498///
11499#[allow(dead_code)]
11500#[derive(Builder, Debug, Clone)]
11501#[builder(crate = "parol_runtime::derive_builder")]
11502pub struct Struct {
11503    pub struct_token: crate::veryl_token::VerylToken,
11504}
11505
11506///
11507/// Type derived for non-terminal StructTerm
11508///
11509#[allow(dead_code)]
11510#[derive(Builder, Debug, Clone)]
11511#[builder(crate = "parol_runtime::derive_builder")]
11512pub struct StructTerm {
11513    pub struct_term: crate::veryl_token::Token, /* (?-u:\b)struct(?-u:\b) */
11514}
11515
11516///
11517/// Type derived for non-terminal StructToken
11518///
11519#[allow(dead_code)]
11520#[derive(Builder, Debug, Clone)]
11521#[builder(crate = "parol_runtime::derive_builder")]
11522pub struct StructToken {
11523    pub struct_term: crate::veryl_token::Token,
11524    pub comments: Box<Comments>,
11525}
11526
11527///
11528/// Type derived for non-terminal StructUnion
11529///
11530#[allow(dead_code)]
11531#[derive(Debug, Clone)]
11532pub enum StructUnion {
11533    Struct(StructUnionStruct),
11534    Union(StructUnionUnion),
11535}
11536
11537///
11538/// Type derived for non-terminal StructUnionDeclaration
11539///
11540#[allow(dead_code)]
11541#[derive(Builder, Debug, Clone)]
11542#[builder(crate = "parol_runtime::derive_builder")]
11543pub struct StructUnionDeclaration {
11544    pub struct_union: Box<StructUnion>,
11545    pub identifier: Box<Identifier>,
11546    pub struct_union_declaration_opt: Option<StructUnionDeclarationOpt>,
11547    pub l_brace: Box<LBrace>,
11548    pub struct_union_list: Box<StructUnionList>,
11549    pub r_brace: Box<RBrace>,
11550}
11551
11552///
11553/// Type derived for non-terminal StructUnionDeclarationOpt
11554///
11555#[allow(dead_code)]
11556#[derive(Builder, Debug, Clone)]
11557#[builder(crate = "parol_runtime::derive_builder")]
11558pub struct StructUnionDeclarationOpt {
11559    pub with_generic_parameter: Box<WithGenericParameter>,
11560}
11561
11562///
11563/// Type derived for non-terminal StructUnionGroup
11564///
11565#[allow(dead_code)]
11566#[derive(Builder, Debug, Clone)]
11567#[builder(crate = "parol_runtime::derive_builder")]
11568pub struct StructUnionGroup {
11569    pub struct_union_group_list: Vec<StructUnionGroupList>,
11570    pub struct_union_group_group: Box<StructUnionGroupGroup>,
11571}
11572
11573///
11574/// Type derived for non-terminal StructUnionGroupGroup
11575///
11576#[allow(dead_code)]
11577#[derive(Debug, Clone)]
11578pub enum StructUnionGroupGroup {
11579    LBraceStructUnionListRBrace(StructUnionGroupGroupLBraceStructUnionListRBrace),
11580    StructUnionItem(StructUnionGroupGroupStructUnionItem),
11581}
11582
11583///
11584/// Type derived for non-terminal StructUnionGroupList
11585///
11586#[allow(dead_code)]
11587#[derive(Builder, Debug, Clone)]
11588#[builder(crate = "parol_runtime::derive_builder")]
11589pub struct StructUnionGroupList {
11590    pub attribute: Box<Attribute>,
11591}
11592
11593///
11594/// Type derived for non-terminal StructUnionItem
11595///
11596#[allow(dead_code)]
11597#[derive(Builder, Debug, Clone)]
11598#[builder(crate = "parol_runtime::derive_builder")]
11599pub struct StructUnionItem {
11600    pub identifier: Box<Identifier>,
11601    pub colon: Box<Colon>,
11602    pub scalar_type: Box<ScalarType>,
11603}
11604
11605///
11606/// Type derived for non-terminal StructUnionList
11607///
11608#[allow(dead_code)]
11609#[derive(Builder, Debug, Clone)]
11610#[builder(crate = "parol_runtime::derive_builder")]
11611pub struct StructUnionList {
11612    pub struct_union_group: Box<StructUnionGroup>,
11613    pub struct_union_list_list: Vec<StructUnionListList>,
11614    pub struct_union_list_opt: Option<StructUnionListOpt>,
11615}
11616
11617///
11618/// Type derived for non-terminal StructUnionListList
11619///
11620#[allow(dead_code)]
11621#[derive(Builder, Debug, Clone)]
11622#[builder(crate = "parol_runtime::derive_builder")]
11623pub struct StructUnionListList {
11624    pub comma: Box<Comma>,
11625    pub struct_union_group: Box<StructUnionGroup>,
11626}
11627
11628///
11629/// Type derived for non-terminal StructUnionListOpt
11630///
11631#[allow(dead_code)]
11632#[derive(Builder, Debug, Clone)]
11633#[builder(crate = "parol_runtime::derive_builder")]
11634pub struct StructUnionListOpt {
11635    pub comma: Box<Comma>,
11636}
11637
11638///
11639/// Type derived for non-terminal Switch
11640///
11641#[allow(dead_code)]
11642#[derive(Builder, Debug, Clone)]
11643#[builder(crate = "parol_runtime::derive_builder")]
11644pub struct Switch {
11645    pub switch_token: crate::veryl_token::VerylToken,
11646}
11647
11648///
11649/// Type derived for non-terminal SwitchCondition
11650///
11651#[allow(dead_code)]
11652#[derive(Builder, Debug, Clone)]
11653#[builder(crate = "parol_runtime::derive_builder")]
11654pub struct SwitchCondition {
11655    pub expression: Box<Expression>,
11656    pub switch_condition_list: Vec<SwitchConditionList>,
11657}
11658
11659///
11660/// Type derived for non-terminal SwitchConditionList
11661///
11662#[allow(dead_code)]
11663#[derive(Builder, Debug, Clone)]
11664#[builder(crate = "parol_runtime::derive_builder")]
11665pub struct SwitchConditionList {
11666    pub comma: Box<Comma>,
11667    pub expression: Box<Expression>,
11668}
11669
11670///
11671/// Type derived for non-terminal SwitchExpression
11672///
11673#[allow(dead_code)]
11674#[derive(Builder, Debug, Clone)]
11675#[builder(crate = "parol_runtime::derive_builder")]
11676pub struct SwitchExpression {
11677    pub switch: Box<Switch>,
11678    pub l_brace: Box<LBrace>,
11679    pub switch_condition: Box<SwitchCondition>,
11680    pub colon: Box<Colon>,
11681    pub expression: Box<Expression>,
11682    pub comma: Box<Comma>,
11683    pub switch_expression_list: Vec<SwitchExpressionList>,
11684    pub defaul: Box<Defaul>,
11685    pub colon0: Box<Colon>,
11686    pub expression0: Box<Expression>,
11687    pub switch_expression_opt: Option<SwitchExpressionOpt>,
11688    pub r_brace: Box<RBrace>,
11689}
11690
11691///
11692/// Type derived for non-terminal SwitchExpressionList
11693///
11694#[allow(dead_code)]
11695#[derive(Builder, Debug, Clone)]
11696#[builder(crate = "parol_runtime::derive_builder")]
11697pub struct SwitchExpressionList {
11698    pub switch_condition: Box<SwitchCondition>,
11699    pub colon: Box<Colon>,
11700    pub expression: Box<Expression>,
11701    pub comma: Box<Comma>,
11702}
11703
11704///
11705/// Type derived for non-terminal SwitchExpressionOpt
11706///
11707#[allow(dead_code)]
11708#[derive(Builder, Debug, Clone)]
11709#[builder(crate = "parol_runtime::derive_builder")]
11710pub struct SwitchExpressionOpt {
11711    pub comma: Box<Comma>,
11712}
11713
11714///
11715/// Type derived for non-terminal SwitchItem
11716///
11717#[allow(dead_code)]
11718#[derive(Builder, Debug, Clone)]
11719#[builder(crate = "parol_runtime::derive_builder")]
11720pub struct SwitchItem {
11721    pub switch_item_group: Box<SwitchItemGroup>,
11722    pub colon: Box<Colon>,
11723    pub switch_item_group0: Box<SwitchItemGroup0>,
11724}
11725
11726///
11727/// Type derived for non-terminal SwitchItemGroup
11728///
11729#[allow(dead_code)]
11730#[derive(Debug, Clone)]
11731pub enum SwitchItemGroup {
11732    SwitchCondition(SwitchItemGroupSwitchCondition),
11733    Defaul(SwitchItemGroupDefaul),
11734}
11735
11736///
11737/// Type derived for non-terminal SwitchItemGroup0
11738///
11739#[allow(dead_code)]
11740#[derive(Debug, Clone)]
11741pub enum SwitchItemGroup0 {
11742    Statement(SwitchItemGroup0Statement),
11743    StatementBlock(SwitchItemGroup0StatementBlock),
11744}
11745
11746///
11747/// Type derived for non-terminal SwitchStatement
11748///
11749#[allow(dead_code)]
11750#[derive(Builder, Debug, Clone)]
11751#[builder(crate = "parol_runtime::derive_builder")]
11752pub struct SwitchStatement {
11753    pub switch: Box<Switch>,
11754    pub l_brace: Box<LBrace>,
11755    pub switch_statement_list: Vec<SwitchStatementList>,
11756    pub r_brace: Box<RBrace>,
11757}
11758
11759///
11760/// Type derived for non-terminal SwitchStatementList
11761///
11762#[allow(dead_code)]
11763#[derive(Builder, Debug, Clone)]
11764#[builder(crate = "parol_runtime::derive_builder")]
11765pub struct SwitchStatementList {
11766    pub switch_item: Box<SwitchItem>,
11767}
11768
11769///
11770/// Type derived for non-terminal SwitchTerm
11771///
11772#[allow(dead_code)]
11773#[derive(Builder, Debug, Clone)]
11774#[builder(crate = "parol_runtime::derive_builder")]
11775pub struct SwitchTerm {
11776    pub switch_term: crate::veryl_token::Token, /* (?-u:\b)switch(?-u:\b) */
11777}
11778
11779///
11780/// Type derived for non-terminal SwitchToken
11781///
11782#[allow(dead_code)]
11783#[derive(Builder, Debug, Clone)]
11784#[builder(crate = "parol_runtime::derive_builder")]
11785pub struct SwitchToken {
11786    pub switch_term: crate::veryl_token::Token,
11787    pub comments: Box<Comments>,
11788}
11789
11790///
11791/// Type derived for non-terminal Tri
11792///
11793#[allow(dead_code)]
11794#[derive(Builder, Debug, Clone)]
11795#[builder(crate = "parol_runtime::derive_builder")]
11796pub struct Tri {
11797    pub tri_token: crate::veryl_token::VerylToken,
11798}
11799
11800///
11801/// Type derived for non-terminal TriTerm
11802///
11803#[allow(dead_code)]
11804#[derive(Builder, Debug, Clone)]
11805#[builder(crate = "parol_runtime::derive_builder")]
11806pub struct TriTerm {
11807    pub tri_term: crate::veryl_token::Token, /* (?-u:\b)tri(?-u:\b) */
11808}
11809
11810///
11811/// Type derived for non-terminal TriToken
11812///
11813#[allow(dead_code)]
11814#[derive(Builder, Debug, Clone)]
11815#[builder(crate = "parol_runtime::derive_builder")]
11816pub struct TriToken {
11817    pub tri_term: crate::veryl_token::Token,
11818    pub comments: Box<Comments>,
11819}
11820
11821///
11822/// Type derived for non-terminal Type
11823///
11824#[allow(dead_code)]
11825#[derive(Builder, Debug, Clone)]
11826#[builder(crate = "parol_runtime::derive_builder")]
11827pub struct Type {
11828    pub type_token: crate::veryl_token::VerylToken,
11829}
11830
11831///
11832/// Type derived for non-terminal TypeDefDeclaration
11833///
11834#[allow(dead_code)]
11835#[derive(Builder, Debug, Clone)]
11836#[builder(crate = "parol_runtime::derive_builder")]
11837pub struct TypeDefDeclaration {
11838    pub r#type: Box<Type>,
11839    pub identifier: Box<Identifier>,
11840    pub equ: Box<Equ>,
11841    pub array_type: Box<ArrayType>,
11842    pub semicolon: Box<Semicolon>,
11843}
11844
11845///
11846/// Type derived for non-terminal TypeExpression
11847///
11848#[allow(dead_code)]
11849#[derive(Builder, Debug, Clone)]
11850#[builder(crate = "parol_runtime::derive_builder")]
11851pub struct TypeExpression {
11852    pub r#type: Box<Type>,
11853    pub l_paren: Box<LParen>,
11854    pub expression: Box<Expression>,
11855    pub r_paren: Box<RParen>,
11856}
11857
11858///
11859/// Type derived for non-terminal TypeModifier
11860///
11861#[allow(dead_code)]
11862#[derive(Debug, Clone)]
11863pub enum TypeModifier {
11864    Tri(TypeModifierTri),
11865    Signed(TypeModifierSigned),
11866}
11867
11868///
11869/// Type derived for non-terminal TypeTerm
11870///
11871#[allow(dead_code)]
11872#[derive(Builder, Debug, Clone)]
11873#[builder(crate = "parol_runtime::derive_builder")]
11874pub struct TypeTerm {
11875    pub type_term: crate::veryl_token::Token, /* (?-u:\b)type(?-u:\b) */
11876}
11877
11878///
11879/// Type derived for non-terminal TypeToken
11880///
11881#[allow(dead_code)]
11882#[derive(Builder, Debug, Clone)]
11883#[builder(crate = "parol_runtime::derive_builder")]
11884pub struct TypeToken {
11885    pub type_term: crate::veryl_token::Token,
11886    pub comments: Box<Comments>,
11887}
11888
11889///
11890/// Type derived for non-terminal U32
11891///
11892#[allow(dead_code)]
11893#[derive(Builder, Debug, Clone)]
11894#[builder(crate = "parol_runtime::derive_builder")]
11895pub struct U32 {
11896    pub u32_token: crate::veryl_token::VerylToken,
11897}
11898
11899///
11900/// Type derived for non-terminal U32Term
11901///
11902#[allow(dead_code)]
11903#[derive(Builder, Debug, Clone)]
11904#[builder(crate = "parol_runtime::derive_builder")]
11905pub struct U32Term {
11906    pub u32_term: crate::veryl_token::Token, /* (?-u:\b)u32(?-u:\b) */
11907}
11908
11909///
11910/// Type derived for non-terminal U32Token
11911///
11912#[allow(dead_code)]
11913#[derive(Builder, Debug, Clone)]
11914#[builder(crate = "parol_runtime::derive_builder")]
11915pub struct U32Token {
11916    pub u32_term: crate::veryl_token::Token,
11917    pub comments: Box<Comments>,
11918}
11919
11920///
11921/// Type derived for non-terminal U64
11922///
11923#[allow(dead_code)]
11924#[derive(Builder, Debug, Clone)]
11925#[builder(crate = "parol_runtime::derive_builder")]
11926pub struct U64 {
11927    pub u64_token: crate::veryl_token::VerylToken,
11928}
11929
11930///
11931/// Type derived for non-terminal U64Term
11932///
11933#[allow(dead_code)]
11934#[derive(Builder, Debug, Clone)]
11935#[builder(crate = "parol_runtime::derive_builder")]
11936pub struct U64Term {
11937    pub u64_term: crate::veryl_token::Token, /* (?-u:\b)u64(?-u:\b) */
11938}
11939
11940///
11941/// Type derived for non-terminal U64Token
11942///
11943#[allow(dead_code)]
11944#[derive(Builder, Debug, Clone)]
11945#[builder(crate = "parol_runtime::derive_builder")]
11946pub struct U64Token {
11947    pub u64_term: crate::veryl_token::Token,
11948    pub comments: Box<Comments>,
11949}
11950
11951///
11952/// Type derived for non-terminal UnaryOperator
11953///
11954#[allow(dead_code)]
11955#[derive(Builder, Debug, Clone)]
11956#[builder(crate = "parol_runtime::derive_builder")]
11957pub struct UnaryOperator {
11958    pub unary_operator_token: crate::veryl_token::VerylToken,
11959}
11960
11961///
11962/// Type derived for non-terminal UnaryOperatorTerm
11963///
11964#[allow(dead_code)]
11965#[derive(Builder, Debug, Clone)]
11966#[builder(crate = "parol_runtime::derive_builder")]
11967pub struct UnaryOperatorTerm {
11968    pub unary_operator_term: crate::veryl_token::Token, /* ~&|~\||!|~ */
11969}
11970
11971///
11972/// Type derived for non-terminal UnaryOperatorToken
11973///
11974#[allow(dead_code)]
11975#[derive(Builder, Debug, Clone)]
11976#[builder(crate = "parol_runtime::derive_builder")]
11977pub struct UnaryOperatorToken {
11978    pub unary_operator_term: crate::veryl_token::Token,
11979    pub comments: Box<Comments>,
11980}
11981
11982///
11983/// Type derived for non-terminal Union
11984///
11985#[allow(dead_code)]
11986#[derive(Builder, Debug, Clone)]
11987#[builder(crate = "parol_runtime::derive_builder")]
11988pub struct Union {
11989    pub union_token: crate::veryl_token::VerylToken,
11990}
11991
11992///
11993/// Type derived for non-terminal UnionTerm
11994///
11995#[allow(dead_code)]
11996#[derive(Builder, Debug, Clone)]
11997#[builder(crate = "parol_runtime::derive_builder")]
11998pub struct UnionTerm {
11999    pub union_term: crate::veryl_token::Token, /* (?-u:\b)union(?-u:\b) */
12000}
12001
12002///
12003/// Type derived for non-terminal UnionToken
12004///
12005#[allow(dead_code)]
12006#[derive(Builder, Debug, Clone)]
12007#[builder(crate = "parol_runtime::derive_builder")]
12008pub struct UnionToken {
12009    pub union_term: crate::veryl_token::Token,
12010    pub comments: Box<Comments>,
12011}
12012
12013///
12014/// Type derived for non-terminal Unsafe
12015///
12016#[allow(dead_code)]
12017#[derive(Builder, Debug, Clone)]
12018#[builder(crate = "parol_runtime::derive_builder")]
12019pub struct Unsafe {
12020    pub unsafe_token: crate::veryl_token::VerylToken,
12021}
12022
12023///
12024/// Type derived for non-terminal UnsafeBlock
12025///
12026#[allow(dead_code)]
12027#[derive(Builder, Debug, Clone)]
12028#[builder(crate = "parol_runtime::derive_builder")]
12029pub struct UnsafeBlock {
12030    pub r#unsafe: Box<Unsafe>,
12031    pub l_paren: Box<LParen>,
12032    pub identifier: Box<Identifier>,
12033    pub r_paren: Box<RParen>,
12034    pub l_brace: Box<LBrace>,
12035    pub unsafe_block_list: Vec<UnsafeBlockList>,
12036    pub r_brace: Box<RBrace>,
12037}
12038
12039///
12040/// Type derived for non-terminal UnsafeBlockList
12041///
12042#[allow(dead_code)]
12043#[derive(Builder, Debug, Clone)]
12044#[builder(crate = "parol_runtime::derive_builder")]
12045pub struct UnsafeBlockList {
12046    pub generate_group: Box<GenerateGroup>,
12047}
12048
12049///
12050/// Type derived for non-terminal UnsafeTerm
12051///
12052#[allow(dead_code)]
12053#[derive(Builder, Debug, Clone)]
12054#[builder(crate = "parol_runtime::derive_builder")]
12055pub struct UnsafeTerm {
12056    pub unsafe_term: crate::veryl_token::Token, /* (?-u:\b)unsafe(?-u:\b) */
12057}
12058
12059///
12060/// Type derived for non-terminal UnsafeToken
12061///
12062#[allow(dead_code)]
12063#[derive(Builder, Debug, Clone)]
12064#[builder(crate = "parol_runtime::derive_builder")]
12065pub struct UnsafeToken {
12066    pub unsafe_term: crate::veryl_token::Token,
12067    pub comments: Box<Comments>,
12068}
12069
12070///
12071/// Type derived for non-terminal UserDefinedType
12072///
12073#[allow(dead_code)]
12074#[derive(Builder, Debug, Clone)]
12075#[builder(crate = "parol_runtime::derive_builder")]
12076pub struct UserDefinedType {
12077    pub scoped_identifier: Box<ScopedIdentifier>,
12078}
12079
12080///
12081/// Type derived for non-terminal Var
12082///
12083#[allow(dead_code)]
12084#[derive(Builder, Debug, Clone)]
12085#[builder(crate = "parol_runtime::derive_builder")]
12086pub struct Var {
12087    pub var_token: crate::veryl_token::VerylToken,
12088}
12089
12090///
12091/// Type derived for non-terminal VarDeclaration
12092///
12093#[allow(dead_code)]
12094#[derive(Builder, Debug, Clone)]
12095#[builder(crate = "parol_runtime::derive_builder")]
12096pub struct VarDeclaration {
12097    pub var: Box<Var>,
12098    pub identifier: Box<Identifier>,
12099    pub colon: Box<Colon>,
12100    pub var_declaration_opt: Option<VarDeclarationOpt>,
12101    pub array_type: Box<ArrayType>,
12102    pub semicolon: Box<Semicolon>,
12103}
12104
12105///
12106/// Type derived for non-terminal VarDeclarationOpt
12107///
12108#[allow(dead_code)]
12109#[derive(Builder, Debug, Clone)]
12110#[builder(crate = "parol_runtime::derive_builder")]
12111pub struct VarDeclarationOpt {
12112    pub clock_domain: Box<ClockDomain>,
12113}
12114
12115///
12116/// Type derived for non-terminal VarTerm
12117///
12118#[allow(dead_code)]
12119#[derive(Builder, Debug, Clone)]
12120#[builder(crate = "parol_runtime::derive_builder")]
12121pub struct VarTerm {
12122    pub var_term: crate::veryl_token::Token, /* (?-u:\b)var(?-u:\b) */
12123}
12124
12125///
12126/// Type derived for non-terminal VarToken
12127///
12128#[allow(dead_code)]
12129#[derive(Builder, Debug, Clone)]
12130#[builder(crate = "parol_runtime::derive_builder")]
12131pub struct VarToken {
12132    pub var_term: crate::veryl_token::Token,
12133    pub comments: Box<Comments>,
12134}
12135
12136///
12137/// Type derived for non-terminal VariableType
12138///
12139#[allow(dead_code)]
12140#[derive(Debug, Clone)]
12141pub enum VariableType {
12142    Clock(VariableTypeClock),
12143    ClockPosedge(VariableTypeClockPosedge),
12144    ClockNegedge(VariableTypeClockNegedge),
12145    Reset(VariableTypeReset),
12146    ResetAsyncHigh(VariableTypeResetAsyncHigh),
12147    ResetAsyncLow(VariableTypeResetAsyncLow),
12148    ResetSyncHigh(VariableTypeResetSyncHigh),
12149    ResetSyncLow(VariableTypeResetSyncLow),
12150    Logic(VariableTypeLogic),
12151    Bit(VariableTypeBit),
12152}
12153
12154///
12155/// Type derived for non-terminal Veryl
12156///
12157#[allow(dead_code)]
12158#[derive(Builder, Debug, Clone)]
12159#[builder(crate = "parol_runtime::derive_builder")]
12160pub struct Veryl {
12161    pub start: Box<Start>,
12162    pub veryl_list: Vec<VerylList>,
12163}
12164
12165///
12166/// Type derived for non-terminal VerylList
12167///
12168#[allow(dead_code)]
12169#[derive(Builder, Debug, Clone)]
12170#[builder(crate = "parol_runtime::derive_builder")]
12171pub struct VerylList {
12172    pub description_group: Box<DescriptionGroup>,
12173}
12174
12175///
12176/// Type derived for non-terminal Width
12177///
12178#[allow(dead_code)]
12179#[derive(Builder, Debug, Clone)]
12180#[builder(crate = "parol_runtime::derive_builder")]
12181pub struct Width {
12182    pub l_angle: Box<LAngle>,
12183    pub expression: Box<Expression>,
12184    pub width_list: Vec<WidthList>,
12185    pub r_angle: Box<RAngle>,
12186}
12187
12188///
12189/// Type derived for non-terminal WidthList
12190///
12191#[allow(dead_code)]
12192#[derive(Builder, Debug, Clone)]
12193#[builder(crate = "parol_runtime::derive_builder")]
12194pub struct WidthList {
12195    pub comma: Box<Comma>,
12196    pub expression: Box<Expression>,
12197}
12198
12199///
12200/// Type derived for non-terminal WithGenericArgument
12201///
12202#[allow(dead_code)]
12203#[derive(Builder, Debug, Clone)]
12204#[builder(crate = "parol_runtime::derive_builder")]
12205pub struct WithGenericArgument {
12206    pub colon_colon_l_angle: Box<ColonColonLAngle>,
12207    pub with_generic_argument_opt: Option<WithGenericArgumentOpt>,
12208    pub r_angle: Box<RAngle>,
12209}
12210
12211///
12212/// Type derived for non-terminal WithGenericArgumentItem
12213///
12214#[allow(dead_code)]
12215#[derive(Debug, Clone)]
12216pub enum WithGenericArgumentItem {
12217    ScopedIdentifier(WithGenericArgumentItemScopedIdentifier),
12218    Number(WithGenericArgumentItemNumber),
12219}
12220
12221///
12222/// Type derived for non-terminal WithGenericArgumentList
12223///
12224#[allow(dead_code)]
12225#[derive(Builder, Debug, Clone)]
12226#[builder(crate = "parol_runtime::derive_builder")]
12227pub struct WithGenericArgumentList {
12228    pub with_generic_argument_item: Box<WithGenericArgumentItem>,
12229    pub with_generic_argument_list_list: Vec<WithGenericArgumentListList>,
12230    pub with_generic_argument_list_opt: Option<WithGenericArgumentListOpt>,
12231}
12232
12233///
12234/// Type derived for non-terminal WithGenericArgumentListList
12235///
12236#[allow(dead_code)]
12237#[derive(Builder, Debug, Clone)]
12238#[builder(crate = "parol_runtime::derive_builder")]
12239pub struct WithGenericArgumentListList {
12240    pub comma: Box<Comma>,
12241    pub with_generic_argument_item: Box<WithGenericArgumentItem>,
12242}
12243
12244///
12245/// Type derived for non-terminal WithGenericArgumentListOpt
12246///
12247#[allow(dead_code)]
12248#[derive(Builder, Debug, Clone)]
12249#[builder(crate = "parol_runtime::derive_builder")]
12250pub struct WithGenericArgumentListOpt {
12251    pub comma: Box<Comma>,
12252}
12253
12254///
12255/// Type derived for non-terminal WithGenericArgumentOpt
12256///
12257#[allow(dead_code)]
12258#[derive(Builder, Debug, Clone)]
12259#[builder(crate = "parol_runtime::derive_builder")]
12260pub struct WithGenericArgumentOpt {
12261    pub with_generic_argument_list: Box<WithGenericArgumentList>,
12262}
12263
12264///
12265/// Type derived for non-terminal WithGenericParameter
12266///
12267#[allow(dead_code)]
12268#[derive(Builder, Debug, Clone)]
12269#[builder(crate = "parol_runtime::derive_builder")]
12270pub struct WithGenericParameter {
12271    pub colon_colon_l_angle: Box<ColonColonLAngle>,
12272    pub with_generic_parameter_list: Box<WithGenericParameterList>,
12273    pub r_angle: Box<RAngle>,
12274}
12275
12276///
12277/// Type derived for non-terminal WithGenericParameterItem
12278///
12279#[allow(dead_code)]
12280#[derive(Builder, Debug, Clone)]
12281#[builder(crate = "parol_runtime::derive_builder")]
12282pub struct WithGenericParameterItem {
12283    pub identifier: Box<Identifier>,
12284    pub colon: Box<Colon>,
12285    pub generic_bound: Box<GenericBound>,
12286    pub with_generic_parameter_item_opt: Option<WithGenericParameterItemOpt>,
12287}
12288
12289///
12290/// Type derived for non-terminal WithGenericParameterItemOpt
12291///
12292#[allow(dead_code)]
12293#[derive(Builder, Debug, Clone)]
12294#[builder(crate = "parol_runtime::derive_builder")]
12295pub struct WithGenericParameterItemOpt {
12296    pub equ: Box<Equ>,
12297    pub with_generic_argument_item: Box<WithGenericArgumentItem>,
12298}
12299
12300///
12301/// Type derived for non-terminal WithGenericParameterList
12302///
12303#[allow(dead_code)]
12304#[derive(Builder, Debug, Clone)]
12305#[builder(crate = "parol_runtime::derive_builder")]
12306pub struct WithGenericParameterList {
12307    pub with_generic_parameter_item: Box<WithGenericParameterItem>,
12308    pub with_generic_parameter_list_list: Vec<WithGenericParameterListList>,
12309    pub with_generic_parameter_list_opt: Option<WithGenericParameterListOpt>,
12310}
12311
12312///
12313/// Type derived for non-terminal WithGenericParameterListList
12314///
12315#[allow(dead_code)]
12316#[derive(Builder, Debug, Clone)]
12317#[builder(crate = "parol_runtime::derive_builder")]
12318pub struct WithGenericParameterListList {
12319    pub comma: Box<Comma>,
12320    pub with_generic_parameter_item: Box<WithGenericParameterItem>,
12321}
12322
12323///
12324/// Type derived for non-terminal WithGenericParameterListOpt
12325///
12326#[allow(dead_code)]
12327#[derive(Builder, Debug, Clone)]
12328#[builder(crate = "parol_runtime::derive_builder")]
12329pub struct WithGenericParameterListOpt {
12330    pub comma: Box<Comma>,
12331}
12332
12333///
12334/// Type derived for non-terminal WithParameter
12335///
12336#[allow(dead_code)]
12337#[derive(Builder, Debug, Clone)]
12338#[builder(crate = "parol_runtime::derive_builder")]
12339pub struct WithParameter {
12340    pub hash: Box<Hash>,
12341    pub l_paren: Box<LParen>,
12342    pub with_parameter_opt: Option<WithParameterOpt>,
12343    pub r_paren: Box<RParen>,
12344}
12345
12346///
12347/// Type derived for non-terminal WithParameterGroup
12348///
12349#[allow(dead_code)]
12350#[derive(Builder, Debug, Clone)]
12351#[builder(crate = "parol_runtime::derive_builder")]
12352pub struct WithParameterGroup {
12353    pub with_parameter_group_list: Vec<WithParameterGroupList>,
12354    pub with_parameter_group_group: Box<WithParameterGroupGroup>,
12355}
12356
12357///
12358/// Type derived for non-terminal WithParameterGroupGroup
12359///
12360#[allow(dead_code)]
12361#[derive(Debug, Clone)]
12362pub enum WithParameterGroupGroup {
12363    LBraceWithParameterListRBrace(WithParameterGroupGroupLBraceWithParameterListRBrace),
12364    WithParameterItem(WithParameterGroupGroupWithParameterItem),
12365}
12366
12367///
12368/// Type derived for non-terminal WithParameterGroupList
12369///
12370#[allow(dead_code)]
12371#[derive(Builder, Debug, Clone)]
12372#[builder(crate = "parol_runtime::derive_builder")]
12373pub struct WithParameterGroupList {
12374    pub attribute: Box<Attribute>,
12375}
12376
12377///
12378/// Type derived for non-terminal WithParameterItem
12379///
12380#[allow(dead_code)]
12381#[derive(Builder, Debug, Clone)]
12382#[builder(crate = "parol_runtime::derive_builder")]
12383pub struct WithParameterItem {
12384    pub with_parameter_item_group: Box<WithParameterItemGroup>,
12385    pub identifier: Box<Identifier>,
12386    pub colon: Box<Colon>,
12387    pub with_parameter_item_group0: Box<WithParameterItemGroup0>,
12388    pub equ: Box<Equ>,
12389    pub expression: Box<Expression>,
12390}
12391
12392///
12393/// Type derived for non-terminal WithParameterItemGroup
12394///
12395#[allow(dead_code)]
12396#[derive(Debug, Clone)]
12397pub enum WithParameterItemGroup {
12398    Param(WithParameterItemGroupParam),
12399    Const(WithParameterItemGroupConst),
12400}
12401
12402///
12403/// Type derived for non-terminal WithParameterItemGroup0
12404///
12405#[allow(dead_code)]
12406#[derive(Debug, Clone)]
12407pub enum WithParameterItemGroup0 {
12408    ArrayType(WithParameterItemGroup0ArrayType),
12409    Type(WithParameterItemGroup0Type),
12410}
12411
12412///
12413/// Type derived for non-terminal WithParameterList
12414///
12415#[allow(dead_code)]
12416#[derive(Builder, Debug, Clone)]
12417#[builder(crate = "parol_runtime::derive_builder")]
12418pub struct WithParameterList {
12419    pub with_parameter_group: Box<WithParameterGroup>,
12420    pub with_parameter_list_list: Vec<WithParameterListList>,
12421    pub with_parameter_list_opt: Option<WithParameterListOpt>,
12422}
12423
12424///
12425/// Type derived for non-terminal WithParameterListList
12426///
12427#[allow(dead_code)]
12428#[derive(Builder, Debug, Clone)]
12429#[builder(crate = "parol_runtime::derive_builder")]
12430pub struct WithParameterListList {
12431    pub comma: Box<Comma>,
12432    pub with_parameter_group: Box<WithParameterGroup>,
12433}
12434
12435///
12436/// Type derived for non-terminal WithParameterListOpt
12437///
12438#[allow(dead_code)]
12439#[derive(Builder, Debug, Clone)]
12440#[builder(crate = "parol_runtime::derive_builder")]
12441pub struct WithParameterListOpt {
12442    pub comma: Box<Comma>,
12443}
12444
12445///
12446/// Type derived for non-terminal WithParameterOpt
12447///
12448#[allow(dead_code)]
12449#[derive(Builder, Debug, Clone)]
12450#[builder(crate = "parol_runtime::derive_builder")]
12451pub struct WithParameterOpt {
12452    pub with_parameter_list: Box<WithParameterList>,
12453}
12454
12455// -------------------------------------------------------------------------------------------------
12456
12457///
12458/// Deduced ASTType of expanded grammar
12459///
12460#[allow(dead_code)]
12461#[derive(Debug, Clone)]
12462pub enum ASTType {
12463    AllBit(AllBit),
12464    AllBitTerm(AllBitTerm),
12465    AllBitToken(AllBitToken),
12466    AlwaysComb(AlwaysComb),
12467    AlwaysCombDeclaration(AlwaysCombDeclaration),
12468    AlwaysCombTerm(AlwaysCombTerm),
12469    AlwaysCombToken(AlwaysCombToken),
12470    AlwaysFf(AlwaysFf),
12471    AlwaysFfClock(AlwaysFfClock),
12472    AlwaysFfDeclaration(AlwaysFfDeclaration),
12473    AlwaysFfDeclarationOpt(Option<AlwaysFfDeclarationOpt>),
12474    AlwaysFfEventList(AlwaysFfEventList),
12475    AlwaysFfEventListOpt(Option<AlwaysFfEventListOpt>),
12476    AlwaysFfReset(AlwaysFfReset),
12477    AlwaysFfTerm(AlwaysFfTerm),
12478    AlwaysFfToken(AlwaysFfToken),
12479    AnyTerm(AnyTerm),
12480    ArgumentItem(ArgumentItem),
12481    ArgumentList(ArgumentList),
12482    ArgumentListList(Vec<ArgumentListList>),
12483    ArgumentListOpt(Option<ArgumentListOpt>),
12484    Array(Array),
12485    ArrayList(Vec<ArrayList>),
12486    ArrayLiteralItem(ArrayLiteralItem),
12487    ArrayLiteralItemGroup(ArrayLiteralItemGroup),
12488    ArrayLiteralItemOpt(Option<ArrayLiteralItemOpt>),
12489    ArrayLiteralList(ArrayLiteralList),
12490    ArrayLiteralListList(Vec<ArrayLiteralListList>),
12491    ArrayLiteralListOpt(Option<ArrayLiteralListOpt>),
12492    ArrayType(ArrayType),
12493    ArrayTypeOpt(Option<ArrayTypeOpt>),
12494    As(As),
12495    AsTerm(AsTerm),
12496    AsToken(AsToken),
12497    Assign(Assign),
12498    AssignConcatenationItem(AssignConcatenationItem),
12499    AssignConcatenationList(AssignConcatenationList),
12500    AssignConcatenationListList(Vec<AssignConcatenationListList>),
12501    AssignConcatenationListOpt(Option<AssignConcatenationListOpt>),
12502    AssignDeclaration(AssignDeclaration),
12503    AssignDestination(AssignDestination),
12504    AssignTerm(AssignTerm),
12505    AssignToken(AssignToken),
12506    Assignment(Assignment),
12507    AssignmentGroup(AssignmentGroup),
12508    AssignmentOperator(AssignmentOperator),
12509    AssignmentOperatorTerm(AssignmentOperatorTerm),
12510    AssignmentOperatorToken(AssignmentOperatorToken),
12511    Attribute(Attribute),
12512    AttributeItem(AttributeItem),
12513    AttributeList(AttributeList),
12514    AttributeListList(Vec<AttributeListList>),
12515    AttributeListOpt(Option<AttributeListOpt>),
12516    AttributeOpt(Option<AttributeOpt>),
12517    BackQuote(BackQuote),
12518    BackQuoteTerm(BackQuoteTerm),
12519    BackQuoteToken(BackQuoteToken),
12520    BaseLess(BaseLess),
12521    BaseLessTerm(BaseLessTerm),
12522    BaseLessToken(BaseLessToken),
12523    Based(Based),
12524    BasedTerm(BasedTerm),
12525    BasedToken(BasedToken),
12526    Bit(Bit),
12527    BitTerm(BitTerm),
12528    BitToken(BitToken),
12529    Break(Break),
12530    BreakStatement(BreakStatement),
12531    BreakTerm(BreakTerm),
12532    BreakToken(BreakToken),
12533    Case(Case),
12534    CaseCondition(CaseCondition),
12535    CaseConditionList(Vec<CaseConditionList>),
12536    CaseExpression(CaseExpression),
12537    CaseExpressionList(Vec<CaseExpressionList>),
12538    CaseExpressionOpt(Option<CaseExpressionOpt>),
12539    CaseItem(CaseItem),
12540    CaseItemGroup(CaseItemGroup),
12541    CaseItemGroup0(CaseItemGroup0),
12542    CaseStatement(CaseStatement),
12543    CaseStatementList(Vec<CaseStatementList>),
12544    CaseTerm(CaseTerm),
12545    CaseToken(CaseToken),
12546    CastingType(CastingType),
12547    Clock(Clock),
12548    ClockDomain(ClockDomain),
12549    ClockNegedge(ClockNegedge),
12550    ClockNegedgeTerm(ClockNegedgeTerm),
12551    ClockNegedgeToken(ClockNegedgeToken),
12552    ClockPosedge(ClockPosedge),
12553    ClockPosedgeTerm(ClockPosedgeTerm),
12554    ClockPosedgeToken(ClockPosedgeToken),
12555    ClockTerm(ClockTerm),
12556    ClockToken(ClockToken),
12557    Colon(Colon),
12558    ColonColon(ColonColon),
12559    ColonColonLAngle(ColonColonLAngle),
12560    ColonColonLAngleTerm(ColonColonLAngleTerm),
12561    ColonColonLAngleToken(ColonColonLAngleToken),
12562    ColonColonTerm(ColonColonTerm),
12563    ColonColonToken(ColonColonToken),
12564    ColonTerm(ColonTerm),
12565    ColonToken(ColonToken),
12566    Comma(Comma),
12567    CommaTerm(CommaTerm),
12568    CommaToken(CommaToken),
12569    Comments(Comments),
12570    CommentsOpt(Option<CommentsOpt>),
12571    CommentsTerm(CommentsTerm),
12572    ConcatenationItem(ConcatenationItem),
12573    ConcatenationItemOpt(Option<ConcatenationItemOpt>),
12574    ConcatenationList(ConcatenationList),
12575    ConcatenationListList(Vec<ConcatenationListList>),
12576    ConcatenationListOpt(Option<ConcatenationListOpt>),
12577    Const(Const),
12578    ConstDeclaration(ConstDeclaration),
12579    ConstDeclarationGroup(ConstDeclarationGroup),
12580    ConstTerm(ConstTerm),
12581    ConstToken(ConstToken),
12582    Converse(Converse),
12583    ConverseTerm(ConverseTerm),
12584    ConverseToken(ConverseToken),
12585    Defaul(Defaul),
12586    DefaultTerm(DefaultTerm),
12587    DefaultToken(DefaultToken),
12588    DescriptionGroup(DescriptionGroup),
12589    DescriptionGroupGroup(DescriptionGroupGroup),
12590    DescriptionGroupGroupList(Vec<DescriptionGroupGroupList>),
12591    DescriptionGroupList(Vec<DescriptionGroupList>),
12592    DescriptionItem(DescriptionItem),
12593    DescriptionItemOpt(Option<DescriptionItemOpt>),
12594    Direction(Direction),
12595    DollarIdentifier(DollarIdentifier),
12596    DollarIdentifierTerm(DollarIdentifierTerm),
12597    DollarIdentifierToken(DollarIdentifierToken),
12598    Dot(Dot),
12599    DotDot(DotDot),
12600    DotDotEqu(DotDotEqu),
12601    DotDotEquTerm(DotDotEquTerm),
12602    DotDotEquToken(DotDotEquToken),
12603    DotDotTerm(DotDotTerm),
12604    DotDotToken(DotDotToken),
12605    DotTerm(DotTerm),
12606    DotToken(DotToken),
12607    Else(Else),
12608    ElseTerm(ElseTerm),
12609    ElseToken(ElseToken),
12610    Embed(Embed),
12611    EmbedContent(EmbedContent),
12612    EmbedContentToken(EmbedContentToken),
12613    EmbedContentTokenList(Vec<EmbedContentTokenList>),
12614    EmbedDeclaration(EmbedDeclaration),
12615    EmbedItem(EmbedItem),
12616    EmbedItemList(Vec<EmbedItemList>),
12617    EmbedTerm(EmbedTerm),
12618    EmbedToken(EmbedToken),
12619    Enum(Enum),
12620    EnumDeclaration(EnumDeclaration),
12621    EnumDeclarationOpt(Option<EnumDeclarationOpt>),
12622    EnumGroup(EnumGroup),
12623    EnumGroupGroup(EnumGroupGroup),
12624    EnumGroupList(Vec<EnumGroupList>),
12625    EnumItem(EnumItem),
12626    EnumItemOpt(Option<EnumItemOpt>),
12627    EnumList(EnumList),
12628    EnumListList(Vec<EnumListList>),
12629    EnumListOpt(Option<EnumListOpt>),
12630    EnumTerm(EnumTerm),
12631    EnumToken(EnumToken),
12632    Equ(Equ),
12633    EquTerm(EquTerm),
12634    EquToken(EquToken),
12635    Exponent(Exponent),
12636    ExponentTerm(ExponentTerm),
12637    ExponentToken(ExponentToken),
12638    Export(Export),
12639    ExportDeclaration(ExportDeclaration),
12640    ExportDeclarationGroup(ExportDeclarationGroup),
12641    ExportDeclarationOpt(Option<ExportDeclarationOpt>),
12642    ExportTerm(ExportTerm),
12643    ExportToken(ExportToken),
12644    Expression(Expression),
12645    Expression01(Expression01),
12646    Expression01List(Vec<Expression01List>),
12647    Expression02(Expression02),
12648    Expression02List(Vec<Expression02List>),
12649    Expression03(Expression03),
12650    Expression03List(Vec<Expression03List>),
12651    Expression04(Expression04),
12652    Expression04List(Vec<Expression04List>),
12653    Expression05(Expression05),
12654    Expression05List(Vec<Expression05List>),
12655    Expression06(Expression06),
12656    Expression06List(Vec<Expression06List>),
12657    Expression07(Expression07),
12658    Expression07List(Vec<Expression07List>),
12659    Expression08(Expression08),
12660    Expression08List(Vec<Expression08List>),
12661    Expression09(Expression09),
12662    Expression09List(Vec<Expression09List>),
12663    Expression09ListGroup(Expression09ListGroup),
12664    Expression10(Expression10),
12665    Expression10List(Vec<Expression10List>),
12666    Expression11(Expression11),
12667    Expression11Opt(Option<Expression11Opt>),
12668    Expression12(Expression12),
12669    Expression12List(Vec<Expression12List>),
12670    Expression12ListGroup(Expression12ListGroup),
12671    ExpressionIdentifier(ExpressionIdentifier),
12672    ExpressionIdentifierList(Vec<ExpressionIdentifierList>),
12673    ExpressionIdentifierList0(Vec<ExpressionIdentifierList0>),
12674    ExpressionIdentifierList0List(Vec<ExpressionIdentifierList0List>),
12675    ExpressionIdentifierOpt(Option<ExpressionIdentifierOpt>),
12676    ExpressionList(Vec<ExpressionList>),
12677    F32(F32),
12678    F32Term(F32Term),
12679    F32Token(F32Token),
12680    F64(F64),
12681    F64Term(F64Term),
12682    F64Token(F64Token),
12683    Factor(Factor),
12684    FactorGroup(FactorGroup),
12685    FactorType(FactorType),
12686    FactorTypeFactor(FactorTypeFactor),
12687    FactorTypeFactorList(Vec<FactorTypeFactorList>),
12688    FactorTypeGroup(FactorTypeGroup),
12689    FactorTypeOpt(Option<FactorTypeOpt>),
12690    Final(Final),
12691    FinalDeclaration(FinalDeclaration),
12692    FinalTerm(FinalTerm),
12693    FinalToken(FinalToken),
12694    FixedPoint(FixedPoint),
12695    FixedPointTerm(FixedPointTerm),
12696    FixedPointToken(FixedPointToken),
12697    FixedType(FixedType),
12698    For(For),
12699    ForStatement(ForStatement),
12700    ForStatementOpt(Option<ForStatementOpt>),
12701    ForTerm(ForTerm),
12702    ForToken(ForToken),
12703    Function(Function),
12704    FunctionCall(FunctionCall),
12705    FunctionCallOpt(Option<FunctionCallOpt>),
12706    FunctionDeclaration(FunctionDeclaration),
12707    FunctionDeclarationOpt(Option<FunctionDeclarationOpt>),
12708    FunctionDeclarationOpt0(Option<FunctionDeclarationOpt0>),
12709    FunctionDeclarationOpt1(Option<FunctionDeclarationOpt1>),
12710    FunctionTerm(FunctionTerm),
12711    FunctionToken(FunctionToken),
12712    GenerateBlockDeclaration(GenerateBlockDeclaration),
12713    GenerateForDeclaration(GenerateForDeclaration),
12714    GenerateForDeclarationOpt(Option<GenerateForDeclarationOpt>),
12715    GenerateGroup(GenerateGroup),
12716    GenerateGroupGroup(GenerateGroupGroup),
12717    GenerateGroupGroupList(Vec<GenerateGroupGroupList>),
12718    GenerateGroupList(Vec<GenerateGroupList>),
12719    GenerateIfDeclaration(GenerateIfDeclaration),
12720    GenerateIfDeclarationList(Vec<GenerateIfDeclarationList>),
12721    GenerateIfDeclarationOpt(Option<GenerateIfDeclarationOpt>),
12722    GenerateItem(GenerateItem),
12723    GenerateNamedBlock(GenerateNamedBlock),
12724    GenerateNamedBlockList(Vec<GenerateNamedBlockList>),
12725    GenerateOptionalNamedBlock(GenerateOptionalNamedBlock),
12726    GenerateOptionalNamedBlockList(Vec<GenerateOptionalNamedBlockList>),
12727    GenerateOptionalNamedBlockOpt(Option<GenerateOptionalNamedBlockOpt>),
12728    GenericBound(GenericBound),
12729    Hash(Hash),
12730    HashTerm(HashTerm),
12731    HashToken(HashToken),
12732    HierarchicalIdentifier(HierarchicalIdentifier),
12733    HierarchicalIdentifierList(Vec<HierarchicalIdentifierList>),
12734    HierarchicalIdentifierList0(Vec<HierarchicalIdentifierList0>),
12735    HierarchicalIdentifierList0List(Vec<HierarchicalIdentifierList0List>),
12736    I32(I32),
12737    I32Term(I32Term),
12738    I32Token(I32Token),
12739    I64(I64),
12740    I64Term(I64Term),
12741    I64Token(I64Token),
12742    Identifier(Identifier),
12743    IdentifierFactor(IdentifierFactor),
12744    IdentifierFactorOpt(Option<IdentifierFactorOpt>),
12745    IdentifierStatement(IdentifierStatement),
12746    IdentifierStatementGroup(IdentifierStatementGroup),
12747    IdentifierTerm(IdentifierTerm),
12748    IdentifierToken(IdentifierToken),
12749    If(If),
12750    IfExpression(IfExpression),
12751    IfExpressionList(Vec<IfExpressionList>),
12752    IfReset(IfReset),
12753    IfResetStatement(IfResetStatement),
12754    IfResetStatementList(Vec<IfResetStatementList>),
12755    IfResetStatementOpt(Option<IfResetStatementOpt>),
12756    IfResetTerm(IfResetTerm),
12757    IfResetToken(IfResetToken),
12758    IfStatement(IfStatement),
12759    IfStatementList(Vec<IfStatementList>),
12760    IfStatementOpt(Option<IfStatementOpt>),
12761    IfTerm(IfTerm),
12762    IfToken(IfToken),
12763    Import(Import),
12764    ImportDeclaration(ImportDeclaration),
12765    ImportDeclarationOpt(Option<ImportDeclarationOpt>),
12766    ImportTerm(ImportTerm),
12767    ImportToken(ImportToken),
12768    In(In),
12769    InTerm(InTerm),
12770    InToken(InToken),
12771    Include(Include),
12772    IncludeDeclaration(IncludeDeclaration),
12773    IncludeTerm(IncludeTerm),
12774    IncludeToken(IncludeToken),
12775    Initial(Initial),
12776    InitialDeclaration(InitialDeclaration),
12777    InitialTerm(InitialTerm),
12778    InitialToken(InitialToken),
12779    Inout(Inout),
12780    InoutTerm(InoutTerm),
12781    InoutToken(InoutToken),
12782    Input(Input),
12783    InputTerm(InputTerm),
12784    InputToken(InputToken),
12785    Inside(Inside),
12786    InsideExpression(InsideExpression),
12787    InsideTerm(InsideTerm),
12788    InsideToken(InsideToken),
12789    Inst(Inst),
12790    InstDeclaration(InstDeclaration),
12791    InstDeclarationOpt(Option<InstDeclarationOpt>),
12792    InstDeclarationOpt0(Option<InstDeclarationOpt0>),
12793    InstDeclarationOpt1(Option<InstDeclarationOpt1>),
12794    InstDeclarationOpt2(Option<InstDeclarationOpt2>),
12795    InstDeclarationOpt3(Option<InstDeclarationOpt3>),
12796    InstParameter(InstParameter),
12797    InstParameterGroup(InstParameterGroup),
12798    InstParameterGroupGroup(InstParameterGroupGroup),
12799    InstParameterGroupList(Vec<InstParameterGroupList>),
12800    InstParameterItem(InstParameterItem),
12801    InstParameterItemOpt(Option<InstParameterItemOpt>),
12802    InstParameterList(InstParameterList),
12803    InstParameterListList(Vec<InstParameterListList>),
12804    InstParameterListOpt(Option<InstParameterListOpt>),
12805    InstParameterOpt(Option<InstParameterOpt>),
12806    InstPortGroup(InstPortGroup),
12807    InstPortGroupGroup(InstPortGroupGroup),
12808    InstPortGroupList(Vec<InstPortGroupList>),
12809    InstPortItem(InstPortItem),
12810    InstPortItemOpt(Option<InstPortItemOpt>),
12811    InstPortList(InstPortList),
12812    InstPortListList(Vec<InstPortListList>),
12813    InstPortListOpt(Option<InstPortListOpt>),
12814    InstTerm(InstTerm),
12815    InstToken(InstToken),
12816    IntegralNumber(IntegralNumber),
12817    Interface(Interface),
12818    InterfaceDeclaration(InterfaceDeclaration),
12819    InterfaceDeclarationList(Vec<InterfaceDeclarationList>),
12820    InterfaceDeclarationOpt(Option<InterfaceDeclarationOpt>),
12821    InterfaceDeclarationOpt0(Option<InterfaceDeclarationOpt0>),
12822    InterfaceGroup(InterfaceGroup),
12823    InterfaceGroupGroup(InterfaceGroupGroup),
12824    InterfaceGroupGroupList(Vec<InterfaceGroupGroupList>),
12825    InterfaceGroupList(Vec<InterfaceGroupList>),
12826    InterfaceItem(InterfaceItem),
12827    InterfaceTerm(InterfaceTerm),
12828    InterfaceToken(InterfaceToken),
12829    LAngle(LAngle),
12830    LAngleTerm(LAngleTerm),
12831    LAngleToken(LAngleToken),
12832    LBrace(LBrace),
12833    LBraceTerm(LBraceTerm),
12834    LBraceToken(LBraceToken),
12835    LBracket(LBracket),
12836    LBracketTerm(LBracketTerm),
12837    LBracketToken(LBracketToken),
12838    LParen(LParen),
12839    LParenTerm(LParenTerm),
12840    LParenToken(LParenToken),
12841    Let(Let),
12842    LetDeclaration(LetDeclaration),
12843    LetDeclarationOpt(Option<LetDeclarationOpt>),
12844    LetStatement(LetStatement),
12845    LetStatementOpt(Option<LetStatementOpt>),
12846    LetTerm(LetTerm),
12847    LetToken(LetToken),
12848    Logic(Logic),
12849    LogicTerm(LogicTerm),
12850    LogicToken(LogicToken),
12851    Lsb(Lsb),
12852    LsbTerm(LsbTerm),
12853    LsbToken(LsbToken),
12854    MinusColon(MinusColon),
12855    MinusColonTerm(MinusColonTerm),
12856    MinusColonToken(MinusColonToken),
12857    MinusGT(MinusGT),
12858    MinusGTTerm(MinusGTTerm),
12859    MinusGTToken(MinusGTToken),
12860    Modport(Modport),
12861    ModportDeclaration(ModportDeclaration),
12862    ModportDeclarationOpt(Option<ModportDeclarationOpt>),
12863    ModportDeclarationOpt0(Option<ModportDeclarationOpt0>),
12864    ModportDefault(ModportDefault),
12865    ModportGroup(ModportGroup),
12866    ModportGroupGroup(ModportGroupGroup),
12867    ModportGroupList(Vec<ModportGroupList>),
12868    ModportItem(ModportItem),
12869    ModportList(ModportList),
12870    ModportListList(Vec<ModportListList>),
12871    ModportListOpt(Option<ModportListOpt>),
12872    ModportTerm(ModportTerm),
12873    ModportToken(ModportToken),
12874    Module(Module),
12875    ModuleDeclaration(ModuleDeclaration),
12876    ModuleDeclarationList(Vec<ModuleDeclarationList>),
12877    ModuleDeclarationOpt(Option<ModuleDeclarationOpt>),
12878    ModuleDeclarationOpt0(Option<ModuleDeclarationOpt0>),
12879    ModuleDeclarationOpt1(Option<ModuleDeclarationOpt1>),
12880    ModuleDeclarationOpt2(Option<ModuleDeclarationOpt2>),
12881    ModuleGroup(ModuleGroup),
12882    ModuleGroupGroup(ModuleGroupGroup),
12883    ModuleGroupGroupList(Vec<ModuleGroupGroupList>),
12884    ModuleGroupList(Vec<ModuleGroupList>),
12885    ModuleItem(ModuleItem),
12886    ModuleTerm(ModuleTerm),
12887    ModuleToken(ModuleToken),
12888    Msb(Msb),
12889    MsbTerm(MsbTerm),
12890    MsbToken(MsbToken),
12891    Number(Number),
12892    Operator01(Operator01),
12893    Operator01Term(Operator01Term),
12894    Operator01Token(Operator01Token),
12895    Operator02(Operator02),
12896    Operator02Term(Operator02Term),
12897    Operator02Token(Operator02Token),
12898    Operator03(Operator03),
12899    Operator03Term(Operator03Term),
12900    Operator03Token(Operator03Token),
12901    Operator04(Operator04),
12902    Operator04Term(Operator04Term),
12903    Operator04Token(Operator04Token),
12904    Operator05(Operator05),
12905    Operator05Term(Operator05Term),
12906    Operator05Token(Operator05Token),
12907    Operator06(Operator06),
12908    Operator06Term(Operator06Term),
12909    Operator06Token(Operator06Token),
12910    Operator07(Operator07),
12911    Operator07Term(Operator07Term),
12912    Operator07Token(Operator07Token),
12913    Operator08(Operator08),
12914    Operator08Term(Operator08Term),
12915    Operator08Token(Operator08Token),
12916    Operator09(Operator09),
12917    Operator09Term(Operator09Term),
12918    Operator09Token(Operator09Token),
12919    Operator10(Operator10),
12920    Operator10Term(Operator10Term),
12921    Operator10Token(Operator10Token),
12922    Operator11(Operator11),
12923    Operator11Term(Operator11Term),
12924    Operator11Token(Operator11Token),
12925    Output(Output),
12926    OutputTerm(OutputTerm),
12927    OutputToken(OutputToken),
12928    Outside(Outside),
12929    OutsideExpression(OutsideExpression),
12930    OutsideTerm(OutsideTerm),
12931    OutsideToken(OutsideToken),
12932    Package(Package),
12933    PackageDeclaration(PackageDeclaration),
12934    PackageDeclarationList(Vec<PackageDeclarationList>),
12935    PackageDeclarationOpt(Option<PackageDeclarationOpt>),
12936    PackageGroup(PackageGroup),
12937    PackageGroupGroup(PackageGroupGroup),
12938    PackageGroupGroupList(Vec<PackageGroupGroupList>),
12939    PackageGroupList(Vec<PackageGroupList>),
12940    PackageItem(PackageItem),
12941    PackageTerm(PackageTerm),
12942    PackageToken(PackageToken),
12943    Param(Param),
12944    ParamTerm(ParamTerm),
12945    ParamToken(ParamToken),
12946    PlusColon(PlusColon),
12947    PlusColonTerm(PlusColonTerm),
12948    PlusColonToken(PlusColonToken),
12949    PortDeclaration(PortDeclaration),
12950    PortDeclarationGroup(PortDeclarationGroup),
12951    PortDeclarationGroupGroup(PortDeclarationGroupGroup),
12952    PortDeclarationGroupList(Vec<PortDeclarationGroupList>),
12953    PortDeclarationItem(PortDeclarationItem),
12954    PortDeclarationItemGroup(PortDeclarationItemGroup),
12955    PortDeclarationList(PortDeclarationList),
12956    PortDeclarationListList(Vec<PortDeclarationListList>),
12957    PortDeclarationListOpt(Option<PortDeclarationListOpt>),
12958    PortDeclarationOpt(Option<PortDeclarationOpt>),
12959    PortDefaultValue(PortDefaultValue),
12960    PortTypeAbstract(PortTypeAbstract),
12961    PortTypeAbstractOpt(Option<PortTypeAbstractOpt>),
12962    PortTypeAbstractOpt0(Option<PortTypeAbstractOpt0>),
12963    PortTypeAbstractOpt1(Option<PortTypeAbstractOpt1>),
12964    PortTypeConcrete(PortTypeConcrete),
12965    PortTypeConcreteOpt(Option<PortTypeConcreteOpt>),
12966    PortTypeConcreteOpt0(Option<PortTypeConcreteOpt0>),
12967    Proto(Proto),
12968    ProtoModuleDeclaration(ProtoModuleDeclaration),
12969    ProtoModuleDeclarationOpt(Option<ProtoModuleDeclarationOpt>),
12970    ProtoModuleDeclarationOpt0(Option<ProtoModuleDeclarationOpt0>),
12971    ProtoTerm(ProtoTerm),
12972    ProtoToken(ProtoToken),
12973    Pub(Pub),
12974    PubTerm(PubTerm),
12975    PubToken(PubToken),
12976    PublicDescriptionItem(PublicDescriptionItem),
12977    QuoteLBrace(QuoteLBrace),
12978    QuoteLBraceTerm(QuoteLBraceTerm),
12979    QuoteLBraceToken(QuoteLBraceToken),
12980    RAngle(RAngle),
12981    RAngleTerm(RAngleTerm),
12982    RAngleToken(RAngleToken),
12983    RBrace(RBrace),
12984    RBraceTerm(RBraceTerm),
12985    RBraceToken(RBraceToken),
12986    RBracket(RBracket),
12987    RBracketTerm(RBracketTerm),
12988    RBracketToken(RBracketToken),
12989    RParen(RParen),
12990    RParenTerm(RParenTerm),
12991    RParenToken(RParenToken),
12992    Range(Range),
12993    RangeItem(RangeItem),
12994    RangeList(RangeList),
12995    RangeListList(Vec<RangeListList>),
12996    RangeListOpt(Option<RangeListOpt>),
12997    RangeOperator(RangeOperator),
12998    RangeOpt(Option<RangeOpt>),
12999    RealNumber(RealNumber),
13000    Ref(Ref),
13001    RefTerm(RefTerm),
13002    RefToken(RefToken),
13003    Repeat(Repeat),
13004    RepeatTerm(RepeatTerm),
13005    RepeatToken(RepeatToken),
13006    Reset(Reset),
13007    ResetAsyncHigh(ResetAsyncHigh),
13008    ResetAsyncHighTerm(ResetAsyncHighTerm),
13009    ResetAsyncHighToken(ResetAsyncHighToken),
13010    ResetAsyncLow(ResetAsyncLow),
13011    ResetAsyncLowTerm(ResetAsyncLowTerm),
13012    ResetAsyncLowToken(ResetAsyncLowToken),
13013    ResetSyncHigh(ResetSyncHigh),
13014    ResetSyncHighTerm(ResetSyncHighTerm),
13015    ResetSyncHighToken(ResetSyncHighToken),
13016    ResetSyncLow(ResetSyncLow),
13017    ResetSyncLowTerm(ResetSyncLowTerm),
13018    ResetSyncLowToken(ResetSyncLowToken),
13019    ResetTerm(ResetTerm),
13020    ResetToken(ResetToken),
13021    Return(Return),
13022    ReturnStatement(ReturnStatement),
13023    ReturnTerm(ReturnTerm),
13024    ReturnToken(ReturnToken),
13025    ScalarType(ScalarType),
13026    ScalarTypeGroup(ScalarTypeGroup),
13027    ScalarTypeList(Vec<ScalarTypeList>),
13028    ScalarTypeOpt(Option<ScalarTypeOpt>),
13029    ScopedIdentifier(ScopedIdentifier),
13030    ScopedIdentifierGroup(ScopedIdentifierGroup),
13031    ScopedIdentifierList(Vec<ScopedIdentifierList>),
13032    ScopedIdentifierOpt(Option<ScopedIdentifierOpt>),
13033    ScopedIdentifierOpt0(Option<ScopedIdentifierOpt0>),
13034    Select(Select),
13035    SelectOperator(SelectOperator),
13036    SelectOpt(Option<SelectOpt>),
13037    Semicolon(Semicolon),
13038    SemicolonTerm(SemicolonTerm),
13039    SemicolonToken(SemicolonToken),
13040    Signed(Signed),
13041    SignedTerm(SignedTerm),
13042    SignedToken(SignedToken),
13043    Star(Star),
13044    StarTerm(StarTerm),
13045    StarToken(StarToken),
13046    Start(Start),
13047    StartToken(StartToken),
13048    Statement(Statement),
13049    StatementBlock(StatementBlock),
13050    StatementBlockGroup(StatementBlockGroup),
13051    StatementBlockGroupGroup(StatementBlockGroupGroup),
13052    StatementBlockGroupGroupList(Vec<StatementBlockGroupGroupList>),
13053    StatementBlockGroupList(Vec<StatementBlockGroupList>),
13054    StatementBlockItem(StatementBlockItem),
13055    StatementBlockList(Vec<StatementBlockList>),
13056    Step(Step),
13057    StepTerm(StepTerm),
13058    StepToken(StepToken),
13059    Strin(Strin),
13060    StringLiteral(StringLiteral),
13061    StringLiteralTerm(StringLiteralTerm),
13062    StringLiteralToken(StringLiteralToken),
13063    StringTerm(StringTerm),
13064    StringToken(StringToken),
13065    Struct(Struct),
13066    StructTerm(StructTerm),
13067    StructToken(StructToken),
13068    StructUnion(StructUnion),
13069    StructUnionDeclaration(StructUnionDeclaration),
13070    StructUnionDeclarationOpt(Option<StructUnionDeclarationOpt>),
13071    StructUnionGroup(StructUnionGroup),
13072    StructUnionGroupGroup(StructUnionGroupGroup),
13073    StructUnionGroupList(Vec<StructUnionGroupList>),
13074    StructUnionItem(StructUnionItem),
13075    StructUnionList(StructUnionList),
13076    StructUnionListList(Vec<StructUnionListList>),
13077    StructUnionListOpt(Option<StructUnionListOpt>),
13078    Switch(Switch),
13079    SwitchCondition(SwitchCondition),
13080    SwitchConditionList(Vec<SwitchConditionList>),
13081    SwitchExpression(SwitchExpression),
13082    SwitchExpressionList(Vec<SwitchExpressionList>),
13083    SwitchExpressionOpt(Option<SwitchExpressionOpt>),
13084    SwitchItem(SwitchItem),
13085    SwitchItemGroup(SwitchItemGroup),
13086    SwitchItemGroup0(SwitchItemGroup0),
13087    SwitchStatement(SwitchStatement),
13088    SwitchStatementList(Vec<SwitchStatementList>),
13089    SwitchTerm(SwitchTerm),
13090    SwitchToken(SwitchToken),
13091    Tri(Tri),
13092    TriTerm(TriTerm),
13093    TriToken(TriToken),
13094    Type(Type),
13095    TypeDefDeclaration(TypeDefDeclaration),
13096    TypeExpression(TypeExpression),
13097    TypeModifier(TypeModifier),
13098    TypeTerm(TypeTerm),
13099    TypeToken(TypeToken),
13100    U32(U32),
13101    U32Term(U32Term),
13102    U32Token(U32Token),
13103    U64(U64),
13104    U64Term(U64Term),
13105    U64Token(U64Token),
13106    UnaryOperator(UnaryOperator),
13107    UnaryOperatorTerm(UnaryOperatorTerm),
13108    UnaryOperatorToken(UnaryOperatorToken),
13109    Union(Union),
13110    UnionTerm(UnionTerm),
13111    UnionToken(UnionToken),
13112    Unsafe(Unsafe),
13113    UnsafeBlock(UnsafeBlock),
13114    UnsafeBlockList(Vec<UnsafeBlockList>),
13115    UnsafeTerm(UnsafeTerm),
13116    UnsafeToken(UnsafeToken),
13117    UserDefinedType(UserDefinedType),
13118    Var(Var),
13119    VarDeclaration(VarDeclaration),
13120    VarDeclarationOpt(Option<VarDeclarationOpt>),
13121    VarTerm(VarTerm),
13122    VarToken(VarToken),
13123    VariableType(VariableType),
13124    Veryl(Veryl),
13125    VerylList(Vec<VerylList>),
13126    Width(Width),
13127    WidthList(Vec<WidthList>),
13128    WithGenericArgument(WithGenericArgument),
13129    WithGenericArgumentItem(WithGenericArgumentItem),
13130    WithGenericArgumentList(WithGenericArgumentList),
13131    WithGenericArgumentListList(Vec<WithGenericArgumentListList>),
13132    WithGenericArgumentListOpt(Option<WithGenericArgumentListOpt>),
13133    WithGenericArgumentOpt(Option<WithGenericArgumentOpt>),
13134    WithGenericParameter(WithGenericParameter),
13135    WithGenericParameterItem(WithGenericParameterItem),
13136    WithGenericParameterItemOpt(Option<WithGenericParameterItemOpt>),
13137    WithGenericParameterList(WithGenericParameterList),
13138    WithGenericParameterListList(Vec<WithGenericParameterListList>),
13139    WithGenericParameterListOpt(Option<WithGenericParameterListOpt>),
13140    WithParameter(WithParameter),
13141    WithParameterGroup(WithParameterGroup),
13142    WithParameterGroupGroup(WithParameterGroupGroup),
13143    WithParameterGroupList(Vec<WithParameterGroupList>),
13144    WithParameterItem(WithParameterItem),
13145    WithParameterItemGroup(WithParameterItemGroup),
13146    WithParameterItemGroup0(WithParameterItemGroup0),
13147    WithParameterList(WithParameterList),
13148    WithParameterListList(Vec<WithParameterListList>),
13149    WithParameterListOpt(Option<WithParameterListOpt>),
13150    WithParameterOpt(Option<WithParameterOpt>),
13151}
13152
13153/// Auto-implemented adapter grammar
13154///
13155/// The lifetime parameter `'t` refers to the lifetime of the scanned text.
13156/// The lifetime parameter `'u` refers to the lifetime of user grammar object.
13157///
13158#[allow(dead_code)]
13159pub struct VerylGrammarAuto<'t, 'u>
13160where
13161    't: 'u,
13162{
13163    // Mutable reference of the actual user grammar to be able to call the semantic actions on it
13164    user_grammar: &'u mut dyn VerylGrammarTrait,
13165    // Stack to construct the AST on it
13166    item_stack: Vec<ASTType>,
13167    // Just to hold the lifetime generated by parol
13168    phantom: PhantomData<&'t str>,
13169}
13170
13171///
13172/// The `VerylGrammarAuto` impl is automatically generated for the
13173/// given grammar.
13174///
13175impl<'t, 'u> VerylGrammarAuto<'t, 'u> {
13176    pub fn new(user_grammar: &'u mut dyn VerylGrammarTrait) -> Self {
13177        Self {
13178            user_grammar,
13179            item_stack: Vec::new(),
13180            phantom: PhantomData,
13181        }
13182    }
13183
13184    #[allow(dead_code)]
13185    fn push(&mut self, item: ASTType, context: &str) {
13186        trace!("push    {}: {:?}", context, item);
13187        self.item_stack.push(item)
13188    }
13189
13190    #[allow(dead_code)]
13191    fn pop(&mut self, context: &str) -> Option<ASTType> {
13192        let item = self.item_stack.pop();
13193        if let Some(ref item) = item {
13194            trace!("pop     {}: {:?}", context, item);
13195        }
13196        item
13197    }
13198
13199    #[allow(dead_code)]
13200    // Use this function for debugging purposes:
13201    // trace!("{}", self.trace_item_stack(context));
13202    fn trace_item_stack(&self, context: &str) -> std::string::String {
13203        format!(
13204            "Item stack at {}:\n{}",
13205            context,
13206            self.item_stack
13207                .iter()
13208                .rev()
13209                .map(|s| format!("  {:?}", s))
13210                .collect::<Vec<std::string::String>>()
13211                .join("\n")
13212        )
13213    }
13214
13215    /// Semantic action for production 0:
13216    ///
13217    /// `CommentsTerm: <INITIAL, Generic>"(?:(?:(?://.*(?:\r\n|\r|\n|$))|(?:(?ms)/\u{2a}.*?\u{2a}/))\s*)+" : Token;`
13218    ///
13219    #[parol_runtime::function_name::named]
13220    fn comments_term(&mut self, comments_term: &ParseTreeType<'t>) -> Result<()> {
13221        let context = function_name!();
13222        trace!("{}", self.trace_item_stack(context));
13223        let comments_term = comments_term
13224            .token()?
13225            .try_into()
13226            .map_err(parol_runtime::ParolError::UserError)?;
13227        let comments_term_built = CommentsTerm { comments_term };
13228        // Calling user action here
13229        self.user_grammar.comments_term(&comments_term_built)?;
13230        self.push(ASTType::CommentsTerm(comments_term_built), context);
13231        Ok(())
13232    }
13233
13234    /// Semantic action for production 1:
13235    ///
13236    /// `StringLiteralTerm: <INITIAL, Generic>"\u{0022}(?:\\[\u{0022}\\/bfnrt]|u[0-9a-fA-F]{4}|[^\u{0022}\\\u0000-\u001F])*\u{0022}" : Token;`
13237    ///
13238    #[parol_runtime::function_name::named]
13239    fn string_literal_term(&mut self, string_literal_term: &ParseTreeType<'t>) -> Result<()> {
13240        let context = function_name!();
13241        trace!("{}", self.trace_item_stack(context));
13242        let string_literal_term = string_literal_term
13243            .token()?
13244            .try_into()
13245            .map_err(parol_runtime::ParolError::UserError)?;
13246        let string_literal_term_built = StringLiteralTerm {
13247            string_literal_term,
13248        };
13249        // Calling user action here
13250        self.user_grammar
13251            .string_literal_term(&string_literal_term_built)?;
13252        self.push(
13253            ASTType::StringLiteralTerm(string_literal_term_built),
13254            context,
13255        );
13256        Ok(())
13257    }
13258
13259    /// Semantic action for production 2:
13260    ///
13261    /// `ExponentTerm: <INITIAL, Generic>/[0-9]+(?:_[0-9]+)*\.[0-9]+(?:_[0-9]+)*[eE][+-]?[0-9]+(?:_[0-9]+)*/ : Token;`
13262    ///
13263    #[parol_runtime::function_name::named]
13264    fn exponent_term(&mut self, exponent_term: &ParseTreeType<'t>) -> Result<()> {
13265        let context = function_name!();
13266        trace!("{}", self.trace_item_stack(context));
13267        let exponent_term = exponent_term
13268            .token()?
13269            .try_into()
13270            .map_err(parol_runtime::ParolError::UserError)?;
13271        let exponent_term_built = ExponentTerm { exponent_term };
13272        // Calling user action here
13273        self.user_grammar.exponent_term(&exponent_term_built)?;
13274        self.push(ASTType::ExponentTerm(exponent_term_built), context);
13275        Ok(())
13276    }
13277
13278    /// Semantic action for production 3:
13279    ///
13280    /// `FixedPointTerm: <INITIAL, Generic>/[0-9]+(?:_[0-9]+)*\.[0-9]+(?:_[0-9]+)*/ : Token;`
13281    ///
13282    #[parol_runtime::function_name::named]
13283    fn fixed_point_term(&mut self, fixed_point_term: &ParseTreeType<'t>) -> Result<()> {
13284        let context = function_name!();
13285        trace!("{}", self.trace_item_stack(context));
13286        let fixed_point_term = fixed_point_term
13287            .token()?
13288            .try_into()
13289            .map_err(parol_runtime::ParolError::UserError)?;
13290        let fixed_point_term_built = FixedPointTerm { fixed_point_term };
13291        // Calling user action here
13292        self.user_grammar
13293            .fixed_point_term(&fixed_point_term_built)?;
13294        self.push(ASTType::FixedPointTerm(fixed_point_term_built), context);
13295        Ok(())
13296    }
13297
13298    /// Semantic action for production 4:
13299    ///
13300    /// `BasedTerm: <INITIAL, Generic>/(?:[0-9]+(?:_[0-9]+)*)?'s?[bodh][0-9a-fA-FxzXZ]+(?:_[0-9a-fA-FxzXZ]+)*/ : Token;`
13301    ///
13302    #[parol_runtime::function_name::named]
13303    fn based_term(&mut self, based_term: &ParseTreeType<'t>) -> Result<()> {
13304        let context = function_name!();
13305        trace!("{}", self.trace_item_stack(context));
13306        let based_term = based_term
13307            .token()?
13308            .try_into()
13309            .map_err(parol_runtime::ParolError::UserError)?;
13310        let based_term_built = BasedTerm { based_term };
13311        // Calling user action here
13312        self.user_grammar.based_term(&based_term_built)?;
13313        self.push(ASTType::BasedTerm(based_term_built), context);
13314        Ok(())
13315    }
13316
13317    /// Semantic action for production 5:
13318    ///
13319    /// `AllBitTerm: <INITIAL, Generic>/(?:[0-9]+(?:_[0-9]+)*)?'[01xzXZ]/ : Token;`
13320    ///
13321    #[parol_runtime::function_name::named]
13322    fn all_bit_term(&mut self, all_bit_term: &ParseTreeType<'t>) -> Result<()> {
13323        let context = function_name!();
13324        trace!("{}", self.trace_item_stack(context));
13325        let all_bit_term = all_bit_term
13326            .token()?
13327            .try_into()
13328            .map_err(parol_runtime::ParolError::UserError)?;
13329        let all_bit_term_built = AllBitTerm { all_bit_term };
13330        // Calling user action here
13331        self.user_grammar.all_bit_term(&all_bit_term_built)?;
13332        self.push(ASTType::AllBitTerm(all_bit_term_built), context);
13333        Ok(())
13334    }
13335
13336    /// Semantic action for production 6:
13337    ///
13338    /// `BaseLessTerm: <INITIAL, Generic>/[0-9]+(?:_[0-9]+)*/ : Token;`
13339    ///
13340    #[parol_runtime::function_name::named]
13341    fn base_less_term(&mut self, base_less_term: &ParseTreeType<'t>) -> Result<()> {
13342        let context = function_name!();
13343        trace!("{}", self.trace_item_stack(context));
13344        let base_less_term = base_less_term
13345            .token()?
13346            .try_into()
13347            .map_err(parol_runtime::ParolError::UserError)?;
13348        let base_less_term_built = BaseLessTerm { base_less_term };
13349        // Calling user action here
13350        self.user_grammar.base_less_term(&base_less_term_built)?;
13351        self.push(ASTType::BaseLessTerm(base_less_term_built), context);
13352        Ok(())
13353    }
13354
13355    /// Semantic action for production 7:
13356    ///
13357    /// `MinusColonTerm: '-:' : Token;`
13358    ///
13359    #[parol_runtime::function_name::named]
13360    fn minus_colon_term(&mut self, minus_colon_term: &ParseTreeType<'t>) -> Result<()> {
13361        let context = function_name!();
13362        trace!("{}", self.trace_item_stack(context));
13363        let minus_colon_term = minus_colon_term
13364            .token()?
13365            .try_into()
13366            .map_err(parol_runtime::ParolError::UserError)?;
13367        let minus_colon_term_built = MinusColonTerm { minus_colon_term };
13368        // Calling user action here
13369        self.user_grammar
13370            .minus_colon_term(&minus_colon_term_built)?;
13371        self.push(ASTType::MinusColonTerm(minus_colon_term_built), context);
13372        Ok(())
13373    }
13374
13375    /// Semantic action for production 8:
13376    ///
13377    /// `MinusGTTerm: '->' : Token;`
13378    ///
13379    #[parol_runtime::function_name::named]
13380    fn minus_g_t_term(&mut self, minus_g_t_term: &ParseTreeType<'t>) -> Result<()> {
13381        let context = function_name!();
13382        trace!("{}", self.trace_item_stack(context));
13383        let minus_g_t_term = minus_g_t_term
13384            .token()?
13385            .try_into()
13386            .map_err(parol_runtime::ParolError::UserError)?;
13387        let minus_g_t_term_built = MinusGTTerm { minus_g_t_term };
13388        // Calling user action here
13389        self.user_grammar.minus_g_t_term(&minus_g_t_term_built)?;
13390        self.push(ASTType::MinusGTTerm(minus_g_t_term_built), context);
13391        Ok(())
13392    }
13393
13394    /// Semantic action for production 9:
13395    ///
13396    /// `PlusColonTerm: '+:' : Token;`
13397    ///
13398    #[parol_runtime::function_name::named]
13399    fn plus_colon_term(&mut self, plus_colon_term: &ParseTreeType<'t>) -> Result<()> {
13400        let context = function_name!();
13401        trace!("{}", self.trace_item_stack(context));
13402        let plus_colon_term = plus_colon_term
13403            .token()?
13404            .try_into()
13405            .map_err(parol_runtime::ParolError::UserError)?;
13406        let plus_colon_term_built = PlusColonTerm { plus_colon_term };
13407        // Calling user action here
13408        self.user_grammar.plus_colon_term(&plus_colon_term_built)?;
13409        self.push(ASTType::PlusColonTerm(plus_colon_term_built), context);
13410        Ok(())
13411    }
13412
13413    /// Semantic action for production 10:
13414    ///
13415    /// `AssignmentOperatorTerm: "\+=|-=|\*=|/=|%=|&=|\|=|\^=|<<=|>>=|<<<=|>>>=" : Token;`
13416    ///
13417    #[parol_runtime::function_name::named]
13418    fn assignment_operator_term(
13419        &mut self,
13420        assignment_operator_term: &ParseTreeType<'t>,
13421    ) -> Result<()> {
13422        let context = function_name!();
13423        trace!("{}", self.trace_item_stack(context));
13424        let assignment_operator_term = assignment_operator_term
13425            .token()?
13426            .try_into()
13427            .map_err(parol_runtime::ParolError::UserError)?;
13428        let assignment_operator_term_built = AssignmentOperatorTerm {
13429            assignment_operator_term,
13430        };
13431        // Calling user action here
13432        self.user_grammar
13433            .assignment_operator_term(&assignment_operator_term_built)?;
13434        self.push(
13435            ASTType::AssignmentOperatorTerm(assignment_operator_term_built),
13436            context,
13437        );
13438        Ok(())
13439    }
13440
13441    /// Semantic action for production 11:
13442    ///
13443    /// `Operator11Term: "\*\*" : Token;`
13444    ///
13445    #[parol_runtime::function_name::named]
13446    fn operator11_term(&mut self, operator11_term: &ParseTreeType<'t>) -> Result<()> {
13447        let context = function_name!();
13448        trace!("{}", self.trace_item_stack(context));
13449        let operator11_term = operator11_term
13450            .token()?
13451            .try_into()
13452            .map_err(parol_runtime::ParolError::UserError)?;
13453        let operator11_term_built = Operator11Term { operator11_term };
13454        // Calling user action here
13455        self.user_grammar.operator11_term(&operator11_term_built)?;
13456        self.push(ASTType::Operator11Term(operator11_term_built), context);
13457        Ok(())
13458    }
13459
13460    /// Semantic action for production 12:
13461    ///
13462    /// `Operator10Term: "/|%" : Token;`
13463    ///
13464    #[parol_runtime::function_name::named]
13465    fn operator10_term(&mut self, operator10_term: &ParseTreeType<'t>) -> Result<()> {
13466        let context = function_name!();
13467        trace!("{}", self.trace_item_stack(context));
13468        let operator10_term = operator10_term
13469            .token()?
13470            .try_into()
13471            .map_err(parol_runtime::ParolError::UserError)?;
13472        let operator10_term_built = Operator10Term { operator10_term };
13473        // Calling user action here
13474        self.user_grammar.operator10_term(&operator10_term_built)?;
13475        self.push(ASTType::Operator10Term(operator10_term_built), context);
13476        Ok(())
13477    }
13478
13479    /// Semantic action for production 13:
13480    ///
13481    /// `Operator09Term: "\+|-" : Token;`
13482    ///
13483    #[parol_runtime::function_name::named]
13484    fn operator09_term(&mut self, operator09_term: &ParseTreeType<'t>) -> Result<()> {
13485        let context = function_name!();
13486        trace!("{}", self.trace_item_stack(context));
13487        let operator09_term = operator09_term
13488            .token()?
13489            .try_into()
13490            .map_err(parol_runtime::ParolError::UserError)?;
13491        let operator09_term_built = Operator09Term { operator09_term };
13492        // Calling user action here
13493        self.user_grammar.operator09_term(&operator09_term_built)?;
13494        self.push(ASTType::Operator09Term(operator09_term_built), context);
13495        Ok(())
13496    }
13497
13498    /// Semantic action for production 14:
13499    ///
13500    /// `Operator08Term: "<<<|>>>|<<|>>" : Token;`
13501    ///
13502    #[parol_runtime::function_name::named]
13503    fn operator08_term(&mut self, operator08_term: &ParseTreeType<'t>) -> Result<()> {
13504        let context = function_name!();
13505        trace!("{}", self.trace_item_stack(context));
13506        let operator08_term = operator08_term
13507            .token()?
13508            .try_into()
13509            .map_err(parol_runtime::ParolError::UserError)?;
13510        let operator08_term_built = Operator08Term { operator08_term };
13511        // Calling user action here
13512        self.user_grammar.operator08_term(&operator08_term_built)?;
13513        self.push(ASTType::Operator08Term(operator08_term_built), context);
13514        Ok(())
13515    }
13516
13517    /// Semantic action for production 15:
13518    ///
13519    /// `Operator07Term: "<=|>=|<:|>:" : Token;`
13520    ///
13521    #[parol_runtime::function_name::named]
13522    fn operator07_term(&mut self, operator07_term: &ParseTreeType<'t>) -> Result<()> {
13523        let context = function_name!();
13524        trace!("{}", self.trace_item_stack(context));
13525        let operator07_term = operator07_term
13526            .token()?
13527            .try_into()
13528            .map_err(parol_runtime::ParolError::UserError)?;
13529        let operator07_term_built = Operator07Term { operator07_term };
13530        // Calling user action here
13531        self.user_grammar.operator07_term(&operator07_term_built)?;
13532        self.push(ASTType::Operator07Term(operator07_term_built), context);
13533        Ok(())
13534    }
13535
13536    /// Semantic action for production 16:
13537    ///
13538    /// `Operator06Term: "===|==\?|!==|!=\?|==|!=" : Token;`
13539    ///
13540    #[parol_runtime::function_name::named]
13541    fn operator06_term(&mut self, operator06_term: &ParseTreeType<'t>) -> Result<()> {
13542        let context = function_name!();
13543        trace!("{}", self.trace_item_stack(context));
13544        let operator06_term = operator06_term
13545            .token()?
13546            .try_into()
13547            .map_err(parol_runtime::ParolError::UserError)?;
13548        let operator06_term_built = Operator06Term { operator06_term };
13549        // Calling user action here
13550        self.user_grammar.operator06_term(&operator06_term_built)?;
13551        self.push(ASTType::Operator06Term(operator06_term_built), context);
13552        Ok(())
13553    }
13554
13555    /// Semantic action for production 17:
13556    ///
13557    /// `Operator02Term: "&&" : Token;`
13558    ///
13559    #[parol_runtime::function_name::named]
13560    fn operator02_term(&mut self, operator02_term: &ParseTreeType<'t>) -> Result<()> {
13561        let context = function_name!();
13562        trace!("{}", self.trace_item_stack(context));
13563        let operator02_term = operator02_term
13564            .token()?
13565            .try_into()
13566            .map_err(parol_runtime::ParolError::UserError)?;
13567        let operator02_term_built = Operator02Term { operator02_term };
13568        // Calling user action here
13569        self.user_grammar.operator02_term(&operator02_term_built)?;
13570        self.push(ASTType::Operator02Term(operator02_term_built), context);
13571        Ok(())
13572    }
13573
13574    /// Semantic action for production 18:
13575    ///
13576    /// `Operator01Term: "\|\|" : Token;`
13577    ///
13578    #[parol_runtime::function_name::named]
13579    fn operator01_term(&mut self, operator01_term: &ParseTreeType<'t>) -> Result<()> {
13580        let context = function_name!();
13581        trace!("{}", self.trace_item_stack(context));
13582        let operator01_term = operator01_term
13583            .token()?
13584            .try_into()
13585            .map_err(parol_runtime::ParolError::UserError)?;
13586        let operator01_term_built = Operator01Term { operator01_term };
13587        // Calling user action here
13588        self.user_grammar.operator01_term(&operator01_term_built)?;
13589        self.push(ASTType::Operator01Term(operator01_term_built), context);
13590        Ok(())
13591    }
13592
13593    /// Semantic action for production 19:
13594    ///
13595    /// `Operator05Term: "&" : Token;`
13596    ///
13597    #[parol_runtime::function_name::named]
13598    fn operator05_term(&mut self, operator05_term: &ParseTreeType<'t>) -> Result<()> {
13599        let context = function_name!();
13600        trace!("{}", self.trace_item_stack(context));
13601        let operator05_term = operator05_term
13602            .token()?
13603            .try_into()
13604            .map_err(parol_runtime::ParolError::UserError)?;
13605        let operator05_term_built = Operator05Term { operator05_term };
13606        // Calling user action here
13607        self.user_grammar.operator05_term(&operator05_term_built)?;
13608        self.push(ASTType::Operator05Term(operator05_term_built), context);
13609        Ok(())
13610    }
13611
13612    /// Semantic action for production 20:
13613    ///
13614    /// `Operator04Term: "\^~|\^|~\^" : Token;`
13615    ///
13616    #[parol_runtime::function_name::named]
13617    fn operator04_term(&mut self, operator04_term: &ParseTreeType<'t>) -> Result<()> {
13618        let context = function_name!();
13619        trace!("{}", self.trace_item_stack(context));
13620        let operator04_term = operator04_term
13621            .token()?
13622            .try_into()
13623            .map_err(parol_runtime::ParolError::UserError)?;
13624        let operator04_term_built = Operator04Term { operator04_term };
13625        // Calling user action here
13626        self.user_grammar.operator04_term(&operator04_term_built)?;
13627        self.push(ASTType::Operator04Term(operator04_term_built), context);
13628        Ok(())
13629    }
13630
13631    /// Semantic action for production 21:
13632    ///
13633    /// `Operator03Term: "\|" : Token;`
13634    ///
13635    #[parol_runtime::function_name::named]
13636    fn operator03_term(&mut self, operator03_term: &ParseTreeType<'t>) -> Result<()> {
13637        let context = function_name!();
13638        trace!("{}", self.trace_item_stack(context));
13639        let operator03_term = operator03_term
13640            .token()?
13641            .try_into()
13642            .map_err(parol_runtime::ParolError::UserError)?;
13643        let operator03_term_built = Operator03Term { operator03_term };
13644        // Calling user action here
13645        self.user_grammar.operator03_term(&operator03_term_built)?;
13646        self.push(ASTType::Operator03Term(operator03_term_built), context);
13647        Ok(())
13648    }
13649
13650    /// Semantic action for production 22:
13651    ///
13652    /// `UnaryOperatorTerm: "~&|~\||!|~" : Token;`
13653    ///
13654    #[parol_runtime::function_name::named]
13655    fn unary_operator_term(&mut self, unary_operator_term: &ParseTreeType<'t>) -> Result<()> {
13656        let context = function_name!();
13657        trace!("{}", self.trace_item_stack(context));
13658        let unary_operator_term = unary_operator_term
13659            .token()?
13660            .try_into()
13661            .map_err(parol_runtime::ParolError::UserError)?;
13662        let unary_operator_term_built = UnaryOperatorTerm {
13663            unary_operator_term,
13664        };
13665        // Calling user action here
13666        self.user_grammar
13667            .unary_operator_term(&unary_operator_term_built)?;
13668        self.push(
13669            ASTType::UnaryOperatorTerm(unary_operator_term_built),
13670            context,
13671        );
13672        Ok(())
13673    }
13674
13675    /// Semantic action for production 23:
13676    ///
13677    /// `BackQuoteTerm: <INITIAL, Generic>"`" : Token;`
13678    ///
13679    #[parol_runtime::function_name::named]
13680    fn back_quote_term(&mut self, back_quote_term: &ParseTreeType<'t>) -> Result<()> {
13681        let context = function_name!();
13682        trace!("{}", self.trace_item_stack(context));
13683        let back_quote_term = back_quote_term
13684            .token()?
13685            .try_into()
13686            .map_err(parol_runtime::ParolError::UserError)?;
13687        let back_quote_term_built = BackQuoteTerm { back_quote_term };
13688        // Calling user action here
13689        self.user_grammar.back_quote_term(&back_quote_term_built)?;
13690        self.push(ASTType::BackQuoteTerm(back_quote_term_built), context);
13691        Ok(())
13692    }
13693
13694    /// Semantic action for production 24:
13695    ///
13696    /// `ColonColonLAngleTerm: <INITIAL, Generic>'::<' : Token;`
13697    ///
13698    #[parol_runtime::function_name::named]
13699    fn colon_colon_l_angle_term(
13700        &mut self,
13701        colon_colon_l_angle_term: &ParseTreeType<'t>,
13702    ) -> Result<()> {
13703        let context = function_name!();
13704        trace!("{}", self.trace_item_stack(context));
13705        let colon_colon_l_angle_term = colon_colon_l_angle_term
13706            .token()?
13707            .try_into()
13708            .map_err(parol_runtime::ParolError::UserError)?;
13709        let colon_colon_l_angle_term_built = ColonColonLAngleTerm {
13710            colon_colon_l_angle_term,
13711        };
13712        // Calling user action here
13713        self.user_grammar
13714            .colon_colon_l_angle_term(&colon_colon_l_angle_term_built)?;
13715        self.push(
13716            ASTType::ColonColonLAngleTerm(colon_colon_l_angle_term_built),
13717            context,
13718        );
13719        Ok(())
13720    }
13721
13722    /// Semantic action for production 25:
13723    ///
13724    /// `ColonColonTerm: <INITIAL, Generic>'::' : Token;`
13725    ///
13726    #[parol_runtime::function_name::named]
13727    fn colon_colon_term(&mut self, colon_colon_term: &ParseTreeType<'t>) -> Result<()> {
13728        let context = function_name!();
13729        trace!("{}", self.trace_item_stack(context));
13730        let colon_colon_term = colon_colon_term
13731            .token()?
13732            .try_into()
13733            .map_err(parol_runtime::ParolError::UserError)?;
13734        let colon_colon_term_built = ColonColonTerm { colon_colon_term };
13735        // Calling user action here
13736        self.user_grammar
13737            .colon_colon_term(&colon_colon_term_built)?;
13738        self.push(ASTType::ColonColonTerm(colon_colon_term_built), context);
13739        Ok(())
13740    }
13741
13742    /// Semantic action for production 26:
13743    ///
13744    /// `ColonTerm: <INITIAL, Generic>':' : Token;`
13745    ///
13746    #[parol_runtime::function_name::named]
13747    fn colon_term(&mut self, colon_term: &ParseTreeType<'t>) -> Result<()> {
13748        let context = function_name!();
13749        trace!("{}", self.trace_item_stack(context));
13750        let colon_term = colon_term
13751            .token()?
13752            .try_into()
13753            .map_err(parol_runtime::ParolError::UserError)?;
13754        let colon_term_built = ColonTerm { colon_term };
13755        // Calling user action here
13756        self.user_grammar.colon_term(&colon_term_built)?;
13757        self.push(ASTType::ColonTerm(colon_term_built), context);
13758        Ok(())
13759    }
13760
13761    /// Semantic action for production 27:
13762    ///
13763    /// `CommaTerm: <INITIAL, Generic>',' : Token;`
13764    ///
13765    #[parol_runtime::function_name::named]
13766    fn comma_term(&mut self, comma_term: &ParseTreeType<'t>) -> Result<()> {
13767        let context = function_name!();
13768        trace!("{}", self.trace_item_stack(context));
13769        let comma_term = comma_term
13770            .token()?
13771            .try_into()
13772            .map_err(parol_runtime::ParolError::UserError)?;
13773        let comma_term_built = CommaTerm { comma_term };
13774        // Calling user action here
13775        self.user_grammar.comma_term(&comma_term_built)?;
13776        self.push(ASTType::CommaTerm(comma_term_built), context);
13777        Ok(())
13778    }
13779
13780    /// Semantic action for production 28:
13781    ///
13782    /// `DotDotEquTerm: <INITIAL, Generic>'..=' : Token;`
13783    ///
13784    #[parol_runtime::function_name::named]
13785    fn dot_dot_equ_term(&mut self, dot_dot_equ_term: &ParseTreeType<'t>) -> Result<()> {
13786        let context = function_name!();
13787        trace!("{}", self.trace_item_stack(context));
13788        let dot_dot_equ_term = dot_dot_equ_term
13789            .token()?
13790            .try_into()
13791            .map_err(parol_runtime::ParolError::UserError)?;
13792        let dot_dot_equ_term_built = DotDotEquTerm { dot_dot_equ_term };
13793        // Calling user action here
13794        self.user_grammar
13795            .dot_dot_equ_term(&dot_dot_equ_term_built)?;
13796        self.push(ASTType::DotDotEquTerm(dot_dot_equ_term_built), context);
13797        Ok(())
13798    }
13799
13800    /// Semantic action for production 29:
13801    ///
13802    /// `DotDotTerm: <INITIAL, Generic>'..' : Token;`
13803    ///
13804    #[parol_runtime::function_name::named]
13805    fn dot_dot_term(&mut self, dot_dot_term: &ParseTreeType<'t>) -> Result<()> {
13806        let context = function_name!();
13807        trace!("{}", self.trace_item_stack(context));
13808        let dot_dot_term = dot_dot_term
13809            .token()?
13810            .try_into()
13811            .map_err(parol_runtime::ParolError::UserError)?;
13812        let dot_dot_term_built = DotDotTerm { dot_dot_term };
13813        // Calling user action here
13814        self.user_grammar.dot_dot_term(&dot_dot_term_built)?;
13815        self.push(ASTType::DotDotTerm(dot_dot_term_built), context);
13816        Ok(())
13817    }
13818
13819    /// Semantic action for production 30:
13820    ///
13821    /// `DotTerm: <INITIAL, Generic>'.' : Token;`
13822    ///
13823    #[parol_runtime::function_name::named]
13824    fn dot_term(&mut self, dot_term: &ParseTreeType<'t>) -> Result<()> {
13825        let context = function_name!();
13826        trace!("{}", self.trace_item_stack(context));
13827        let dot_term = dot_term
13828            .token()?
13829            .try_into()
13830            .map_err(parol_runtime::ParolError::UserError)?;
13831        let dot_term_built = DotTerm { dot_term };
13832        // Calling user action here
13833        self.user_grammar.dot_term(&dot_term_built)?;
13834        self.push(ASTType::DotTerm(dot_term_built), context);
13835        Ok(())
13836    }
13837
13838    /// Semantic action for production 31:
13839    ///
13840    /// `EquTerm: <INITIAL, Generic>'=' : Token;`
13841    ///
13842    #[parol_runtime::function_name::named]
13843    fn equ_term(&mut self, equ_term: &ParseTreeType<'t>) -> Result<()> {
13844        let context = function_name!();
13845        trace!("{}", self.trace_item_stack(context));
13846        let equ_term = equ_term
13847            .token()?
13848            .try_into()
13849            .map_err(parol_runtime::ParolError::UserError)?;
13850        let equ_term_built = EquTerm { equ_term };
13851        // Calling user action here
13852        self.user_grammar.equ_term(&equ_term_built)?;
13853        self.push(ASTType::EquTerm(equ_term_built), context);
13854        Ok(())
13855    }
13856
13857    /// Semantic action for production 32:
13858    ///
13859    /// `HashTerm: <INITIAL, Generic>'#' : Token;`
13860    ///
13861    #[parol_runtime::function_name::named]
13862    fn hash_term(&mut self, hash_term: &ParseTreeType<'t>) -> Result<()> {
13863        let context = function_name!();
13864        trace!("{}", self.trace_item_stack(context));
13865        let hash_term = hash_term
13866            .token()?
13867            .try_into()
13868            .map_err(parol_runtime::ParolError::UserError)?;
13869        let hash_term_built = HashTerm { hash_term };
13870        // Calling user action here
13871        self.user_grammar.hash_term(&hash_term_built)?;
13872        self.push(ASTType::HashTerm(hash_term_built), context);
13873        Ok(())
13874    }
13875
13876    /// Semantic action for production 33:
13877    ///
13878    /// `LAngleTerm: <INITIAL, Generic>'<' : Token;`
13879    ///
13880    #[parol_runtime::function_name::named]
13881    fn l_angle_term(&mut self, l_angle_term: &ParseTreeType<'t>) -> Result<()> {
13882        let context = function_name!();
13883        trace!("{}", self.trace_item_stack(context));
13884        let l_angle_term = l_angle_term
13885            .token()?
13886            .try_into()
13887            .map_err(parol_runtime::ParolError::UserError)?;
13888        let l_angle_term_built = LAngleTerm { l_angle_term };
13889        // Calling user action here
13890        self.user_grammar.l_angle_term(&l_angle_term_built)?;
13891        self.push(ASTType::LAngleTerm(l_angle_term_built), context);
13892        Ok(())
13893    }
13894
13895    /// Semantic action for production 34:
13896    ///
13897    /// `QuoteLBraceTerm: <INITIAL, Generic>"'\{" : Token;`
13898    ///
13899    #[parol_runtime::function_name::named]
13900    fn quote_l_brace_term(&mut self, quote_l_brace_term: &ParseTreeType<'t>) -> Result<()> {
13901        let context = function_name!();
13902        trace!("{}", self.trace_item_stack(context));
13903        let quote_l_brace_term = quote_l_brace_term
13904            .token()?
13905            .try_into()
13906            .map_err(parol_runtime::ParolError::UserError)?;
13907        let quote_l_brace_term_built = QuoteLBraceTerm { quote_l_brace_term };
13908        // Calling user action here
13909        self.user_grammar
13910            .quote_l_brace_term(&quote_l_brace_term_built)?;
13911        self.push(ASTType::QuoteLBraceTerm(quote_l_brace_term_built), context);
13912        Ok(())
13913    }
13914
13915    /// Semantic action for production 35:
13916    ///
13917    /// `LBraceTerm: <INITIAL, Embed, Generic>'{' : Token;`
13918    ///
13919    #[parol_runtime::function_name::named]
13920    fn l_brace_term(&mut self, l_brace_term: &ParseTreeType<'t>) -> Result<()> {
13921        let context = function_name!();
13922        trace!("{}", self.trace_item_stack(context));
13923        let l_brace_term = l_brace_term
13924            .token()?
13925            .try_into()
13926            .map_err(parol_runtime::ParolError::UserError)?;
13927        let l_brace_term_built = LBraceTerm { l_brace_term };
13928        // Calling user action here
13929        self.user_grammar.l_brace_term(&l_brace_term_built)?;
13930        self.push(ASTType::LBraceTerm(l_brace_term_built), context);
13931        Ok(())
13932    }
13933
13934    /// Semantic action for production 36:
13935    ///
13936    /// `LBracketTerm: <INITIAL, Generic>'[' : Token;`
13937    ///
13938    #[parol_runtime::function_name::named]
13939    fn l_bracket_term(&mut self, l_bracket_term: &ParseTreeType<'t>) -> Result<()> {
13940        let context = function_name!();
13941        trace!("{}", self.trace_item_stack(context));
13942        let l_bracket_term = l_bracket_term
13943            .token()?
13944            .try_into()
13945            .map_err(parol_runtime::ParolError::UserError)?;
13946        let l_bracket_term_built = LBracketTerm { l_bracket_term };
13947        // Calling user action here
13948        self.user_grammar.l_bracket_term(&l_bracket_term_built)?;
13949        self.push(ASTType::LBracketTerm(l_bracket_term_built), context);
13950        Ok(())
13951    }
13952
13953    /// Semantic action for production 37:
13954    ///
13955    /// `LParenTerm: <INITIAL, Generic>'(' : Token;`
13956    ///
13957    #[parol_runtime::function_name::named]
13958    fn l_paren_term(&mut self, l_paren_term: &ParseTreeType<'t>) -> Result<()> {
13959        let context = function_name!();
13960        trace!("{}", self.trace_item_stack(context));
13961        let l_paren_term = l_paren_term
13962            .token()?
13963            .try_into()
13964            .map_err(parol_runtime::ParolError::UserError)?;
13965        let l_paren_term_built = LParenTerm { l_paren_term };
13966        // Calling user action here
13967        self.user_grammar.l_paren_term(&l_paren_term_built)?;
13968        self.push(ASTType::LParenTerm(l_paren_term_built), context);
13969        Ok(())
13970    }
13971
13972    /// Semantic action for production 38:
13973    ///
13974    /// `RAngleTerm: <INITIAL, Generic>'>' : Token;`
13975    ///
13976    #[parol_runtime::function_name::named]
13977    fn r_angle_term(&mut self, r_angle_term: &ParseTreeType<'t>) -> Result<()> {
13978        let context = function_name!();
13979        trace!("{}", self.trace_item_stack(context));
13980        let r_angle_term = r_angle_term
13981            .token()?
13982            .try_into()
13983            .map_err(parol_runtime::ParolError::UserError)?;
13984        let r_angle_term_built = RAngleTerm { r_angle_term };
13985        // Calling user action here
13986        self.user_grammar.r_angle_term(&r_angle_term_built)?;
13987        self.push(ASTType::RAngleTerm(r_angle_term_built), context);
13988        Ok(())
13989    }
13990
13991    /// Semantic action for production 39:
13992    ///
13993    /// `RBraceTerm: <INITIAL, Embed, Generic>'}' : Token;`
13994    ///
13995    #[parol_runtime::function_name::named]
13996    fn r_brace_term(&mut self, r_brace_term: &ParseTreeType<'t>) -> Result<()> {
13997        let context = function_name!();
13998        trace!("{}", self.trace_item_stack(context));
13999        let r_brace_term = r_brace_term
14000            .token()?
14001            .try_into()
14002            .map_err(parol_runtime::ParolError::UserError)?;
14003        let r_brace_term_built = RBraceTerm { r_brace_term };
14004        // Calling user action here
14005        self.user_grammar.r_brace_term(&r_brace_term_built)?;
14006        self.push(ASTType::RBraceTerm(r_brace_term_built), context);
14007        Ok(())
14008    }
14009
14010    /// Semantic action for production 40:
14011    ///
14012    /// `RBracketTerm: <INITIAL, Generic>']' : Token;`
14013    ///
14014    #[parol_runtime::function_name::named]
14015    fn r_bracket_term(&mut self, r_bracket_term: &ParseTreeType<'t>) -> Result<()> {
14016        let context = function_name!();
14017        trace!("{}", self.trace_item_stack(context));
14018        let r_bracket_term = r_bracket_term
14019            .token()?
14020            .try_into()
14021            .map_err(parol_runtime::ParolError::UserError)?;
14022        let r_bracket_term_built = RBracketTerm { r_bracket_term };
14023        // Calling user action here
14024        self.user_grammar.r_bracket_term(&r_bracket_term_built)?;
14025        self.push(ASTType::RBracketTerm(r_bracket_term_built), context);
14026        Ok(())
14027    }
14028
14029    /// Semantic action for production 41:
14030    ///
14031    /// `RParenTerm: <INITIAL, Generic>')' : Token;`
14032    ///
14033    #[parol_runtime::function_name::named]
14034    fn r_paren_term(&mut self, r_paren_term: &ParseTreeType<'t>) -> Result<()> {
14035        let context = function_name!();
14036        trace!("{}", self.trace_item_stack(context));
14037        let r_paren_term = r_paren_term
14038            .token()?
14039            .try_into()
14040            .map_err(parol_runtime::ParolError::UserError)?;
14041        let r_paren_term_built = RParenTerm { r_paren_term };
14042        // Calling user action here
14043        self.user_grammar.r_paren_term(&r_paren_term_built)?;
14044        self.push(ASTType::RParenTerm(r_paren_term_built), context);
14045        Ok(())
14046    }
14047
14048    /// Semantic action for production 42:
14049    ///
14050    /// `SemicolonTerm: <INITIAL, Generic>';' : Token;`
14051    ///
14052    #[parol_runtime::function_name::named]
14053    fn semicolon_term(&mut self, semicolon_term: &ParseTreeType<'t>) -> Result<()> {
14054        let context = function_name!();
14055        trace!("{}", self.trace_item_stack(context));
14056        let semicolon_term = semicolon_term
14057            .token()?
14058            .try_into()
14059            .map_err(parol_runtime::ParolError::UserError)?;
14060        let semicolon_term_built = SemicolonTerm { semicolon_term };
14061        // Calling user action here
14062        self.user_grammar.semicolon_term(&semicolon_term_built)?;
14063        self.push(ASTType::SemicolonTerm(semicolon_term_built), context);
14064        Ok(())
14065    }
14066
14067    /// Semantic action for production 43:
14068    ///
14069    /// `StarTerm: <INITIAL, Generic>'*' : Token;`
14070    ///
14071    #[parol_runtime::function_name::named]
14072    fn star_term(&mut self, star_term: &ParseTreeType<'t>) -> Result<()> {
14073        let context = function_name!();
14074        trace!("{}", self.trace_item_stack(context));
14075        let star_term = star_term
14076            .token()?
14077            .try_into()
14078            .map_err(parol_runtime::ParolError::UserError)?;
14079        let star_term_built = StarTerm { star_term };
14080        // Calling user action here
14081        self.user_grammar.star_term(&star_term_built)?;
14082        self.push(ASTType::StarTerm(star_term_built), context);
14083        Ok(())
14084    }
14085
14086    /// Semantic action for production 44:
14087    ///
14088    /// `AlwaysCombTerm: <INITIAL, Generic>/(?-u:\b)always_comb(?-u:\b)/ : Token;`
14089    ///
14090    #[parol_runtime::function_name::named]
14091    fn always_comb_term(&mut self, always_comb_term: &ParseTreeType<'t>) -> Result<()> {
14092        let context = function_name!();
14093        trace!("{}", self.trace_item_stack(context));
14094        let always_comb_term = always_comb_term
14095            .token()?
14096            .try_into()
14097            .map_err(parol_runtime::ParolError::UserError)?;
14098        let always_comb_term_built = AlwaysCombTerm { always_comb_term };
14099        // Calling user action here
14100        self.user_grammar
14101            .always_comb_term(&always_comb_term_built)?;
14102        self.push(ASTType::AlwaysCombTerm(always_comb_term_built), context);
14103        Ok(())
14104    }
14105
14106    /// Semantic action for production 45:
14107    ///
14108    /// `AlwaysFfTerm: <INITIAL, Generic>/(?-u:\b)always_ff(?-u:\b)/ : Token;`
14109    ///
14110    #[parol_runtime::function_name::named]
14111    fn always_ff_term(&mut self, always_ff_term: &ParseTreeType<'t>) -> Result<()> {
14112        let context = function_name!();
14113        trace!("{}", self.trace_item_stack(context));
14114        let always_ff_term = always_ff_term
14115            .token()?
14116            .try_into()
14117            .map_err(parol_runtime::ParolError::UserError)?;
14118        let always_ff_term_built = AlwaysFfTerm { always_ff_term };
14119        // Calling user action here
14120        self.user_grammar.always_ff_term(&always_ff_term_built)?;
14121        self.push(ASTType::AlwaysFfTerm(always_ff_term_built), context);
14122        Ok(())
14123    }
14124
14125    /// Semantic action for production 46:
14126    ///
14127    /// `AssignTerm: <INITIAL, Generic>/(?-u:\b)assign(?-u:\b)/ : Token;`
14128    ///
14129    #[parol_runtime::function_name::named]
14130    fn assign_term(&mut self, assign_term: &ParseTreeType<'t>) -> Result<()> {
14131        let context = function_name!();
14132        trace!("{}", self.trace_item_stack(context));
14133        let assign_term = assign_term
14134            .token()?
14135            .try_into()
14136            .map_err(parol_runtime::ParolError::UserError)?;
14137        let assign_term_built = AssignTerm { assign_term };
14138        // Calling user action here
14139        self.user_grammar.assign_term(&assign_term_built)?;
14140        self.push(ASTType::AssignTerm(assign_term_built), context);
14141        Ok(())
14142    }
14143
14144    /// Semantic action for production 47:
14145    ///
14146    /// `AsTerm: <INITIAL, Generic>/(?-u:\b)as(?-u:\b)/ : Token;`
14147    ///
14148    #[parol_runtime::function_name::named]
14149    fn as_term(&mut self, as_term: &ParseTreeType<'t>) -> Result<()> {
14150        let context = function_name!();
14151        trace!("{}", self.trace_item_stack(context));
14152        let as_term = as_term
14153            .token()?
14154            .try_into()
14155            .map_err(parol_runtime::ParolError::UserError)?;
14156        let as_term_built = AsTerm { as_term };
14157        // Calling user action here
14158        self.user_grammar.as_term(&as_term_built)?;
14159        self.push(ASTType::AsTerm(as_term_built), context);
14160        Ok(())
14161    }
14162
14163    /// Semantic action for production 48:
14164    ///
14165    /// `BitTerm: <INITIAL, Generic>/(?-u:\b)bit(?-u:\b)/ : Token;`
14166    ///
14167    #[parol_runtime::function_name::named]
14168    fn bit_term(&mut self, bit_term: &ParseTreeType<'t>) -> Result<()> {
14169        let context = function_name!();
14170        trace!("{}", self.trace_item_stack(context));
14171        let bit_term = bit_term
14172            .token()?
14173            .try_into()
14174            .map_err(parol_runtime::ParolError::UserError)?;
14175        let bit_term_built = BitTerm { bit_term };
14176        // Calling user action here
14177        self.user_grammar.bit_term(&bit_term_built)?;
14178        self.push(ASTType::BitTerm(bit_term_built), context);
14179        Ok(())
14180    }
14181
14182    /// Semantic action for production 49:
14183    ///
14184    /// `CaseTerm: <INITIAL, Generic>/(?-u:\b)case(?-u:\b)/ : Token;`
14185    ///
14186    #[parol_runtime::function_name::named]
14187    fn case_term(&mut self, case_term: &ParseTreeType<'t>) -> Result<()> {
14188        let context = function_name!();
14189        trace!("{}", self.trace_item_stack(context));
14190        let case_term = case_term
14191            .token()?
14192            .try_into()
14193            .map_err(parol_runtime::ParolError::UserError)?;
14194        let case_term_built = CaseTerm { case_term };
14195        // Calling user action here
14196        self.user_grammar.case_term(&case_term_built)?;
14197        self.push(ASTType::CaseTerm(case_term_built), context);
14198        Ok(())
14199    }
14200
14201    /// Semantic action for production 50:
14202    ///
14203    /// `ClockTerm: <INITIAL, Generic>/(?-u:\b)clock(?-u:\b)/ : Token;`
14204    ///
14205    #[parol_runtime::function_name::named]
14206    fn clock_term(&mut self, clock_term: &ParseTreeType<'t>) -> Result<()> {
14207        let context = function_name!();
14208        trace!("{}", self.trace_item_stack(context));
14209        let clock_term = clock_term
14210            .token()?
14211            .try_into()
14212            .map_err(parol_runtime::ParolError::UserError)?;
14213        let clock_term_built = ClockTerm { clock_term };
14214        // Calling user action here
14215        self.user_grammar.clock_term(&clock_term_built)?;
14216        self.push(ASTType::ClockTerm(clock_term_built), context);
14217        Ok(())
14218    }
14219
14220    /// Semantic action for production 51:
14221    ///
14222    /// `ClockPosedgeTerm: <INITIAL, Generic>/(?-u:\b)clock_posedge(?-u:\b)/ : Token;`
14223    ///
14224    #[parol_runtime::function_name::named]
14225    fn clock_posedge_term(&mut self, clock_posedge_term: &ParseTreeType<'t>) -> Result<()> {
14226        let context = function_name!();
14227        trace!("{}", self.trace_item_stack(context));
14228        let clock_posedge_term = clock_posedge_term
14229            .token()?
14230            .try_into()
14231            .map_err(parol_runtime::ParolError::UserError)?;
14232        let clock_posedge_term_built = ClockPosedgeTerm { clock_posedge_term };
14233        // Calling user action here
14234        self.user_grammar
14235            .clock_posedge_term(&clock_posedge_term_built)?;
14236        self.push(ASTType::ClockPosedgeTerm(clock_posedge_term_built), context);
14237        Ok(())
14238    }
14239
14240    /// Semantic action for production 52:
14241    ///
14242    /// `ClockNegedgeTerm: <INITIAL, Generic>/(?-u:\b)clock_negedge(?-u:\b)/ : Token;`
14243    ///
14244    #[parol_runtime::function_name::named]
14245    fn clock_negedge_term(&mut self, clock_negedge_term: &ParseTreeType<'t>) -> Result<()> {
14246        let context = function_name!();
14247        trace!("{}", self.trace_item_stack(context));
14248        let clock_negedge_term = clock_negedge_term
14249            .token()?
14250            .try_into()
14251            .map_err(parol_runtime::ParolError::UserError)?;
14252        let clock_negedge_term_built = ClockNegedgeTerm { clock_negedge_term };
14253        // Calling user action here
14254        self.user_grammar
14255            .clock_negedge_term(&clock_negedge_term_built)?;
14256        self.push(ASTType::ClockNegedgeTerm(clock_negedge_term_built), context);
14257        Ok(())
14258    }
14259
14260    /// Semantic action for production 53:
14261    ///
14262    /// `ConstTerm: <INITIAL, Generic>/(?-u:\b)const(?-u:\b)/ : Token;`
14263    ///
14264    #[parol_runtime::function_name::named]
14265    fn const_term(&mut self, const_term: &ParseTreeType<'t>) -> Result<()> {
14266        let context = function_name!();
14267        trace!("{}", self.trace_item_stack(context));
14268        let const_term = const_term
14269            .token()?
14270            .try_into()
14271            .map_err(parol_runtime::ParolError::UserError)?;
14272        let const_term_built = ConstTerm { const_term };
14273        // Calling user action here
14274        self.user_grammar.const_term(&const_term_built)?;
14275        self.push(ASTType::ConstTerm(const_term_built), context);
14276        Ok(())
14277    }
14278
14279    /// Semantic action for production 54:
14280    ///
14281    /// `ConverseTerm: <INITIAL, Generic>/(?-u:\b)converse(?-u:\b)/ : Token;`
14282    ///
14283    #[parol_runtime::function_name::named]
14284    fn converse_term(&mut self, converse_term: &ParseTreeType<'t>) -> Result<()> {
14285        let context = function_name!();
14286        trace!("{}", self.trace_item_stack(context));
14287        let converse_term = converse_term
14288            .token()?
14289            .try_into()
14290            .map_err(parol_runtime::ParolError::UserError)?;
14291        let converse_term_built = ConverseTerm { converse_term };
14292        // Calling user action here
14293        self.user_grammar.converse_term(&converse_term_built)?;
14294        self.push(ASTType::ConverseTerm(converse_term_built), context);
14295        Ok(())
14296    }
14297
14298    /// Semantic action for production 55:
14299    ///
14300    /// `DefaultTerm: <INITIAL, Generic>/(?-u:\b)default(?-u:\b)/ : Token;`
14301    ///
14302    #[parol_runtime::function_name::named]
14303    fn default_term(&mut self, default_term: &ParseTreeType<'t>) -> Result<()> {
14304        let context = function_name!();
14305        trace!("{}", self.trace_item_stack(context));
14306        let default_term = default_term
14307            .token()?
14308            .try_into()
14309            .map_err(parol_runtime::ParolError::UserError)?;
14310        let default_term_built = DefaultTerm { default_term };
14311        // Calling user action here
14312        self.user_grammar.default_term(&default_term_built)?;
14313        self.push(ASTType::DefaultTerm(default_term_built), context);
14314        Ok(())
14315    }
14316
14317    /// Semantic action for production 56:
14318    ///
14319    /// `ElseTerm: <INITIAL, Generic>/(?-u:\b)else(?-u:\b)/ : Token;`
14320    ///
14321    #[parol_runtime::function_name::named]
14322    fn else_term(&mut self, else_term: &ParseTreeType<'t>) -> Result<()> {
14323        let context = function_name!();
14324        trace!("{}", self.trace_item_stack(context));
14325        let else_term = else_term
14326            .token()?
14327            .try_into()
14328            .map_err(parol_runtime::ParolError::UserError)?;
14329        let else_term_built = ElseTerm { else_term };
14330        // Calling user action here
14331        self.user_grammar.else_term(&else_term_built)?;
14332        self.push(ASTType::ElseTerm(else_term_built), context);
14333        Ok(())
14334    }
14335
14336    /// Semantic action for production 57:
14337    ///
14338    /// `EmbedTerm: <INITIAL, Generic>/(?-u:\b)embed(?-u:\b)/ : Token;`
14339    ///
14340    #[parol_runtime::function_name::named]
14341    fn embed_term(&mut self, embed_term: &ParseTreeType<'t>) -> Result<()> {
14342        let context = function_name!();
14343        trace!("{}", self.trace_item_stack(context));
14344        let embed_term = embed_term
14345            .token()?
14346            .try_into()
14347            .map_err(parol_runtime::ParolError::UserError)?;
14348        let embed_term_built = EmbedTerm { embed_term };
14349        // Calling user action here
14350        self.user_grammar.embed_term(&embed_term_built)?;
14351        self.push(ASTType::EmbedTerm(embed_term_built), context);
14352        Ok(())
14353    }
14354
14355    /// Semantic action for production 58:
14356    ///
14357    /// `EnumTerm: <INITIAL, Generic>/(?-u:\b)enum(?-u:\b)/ : Token;`
14358    ///
14359    #[parol_runtime::function_name::named]
14360    fn enum_term(&mut self, enum_term: &ParseTreeType<'t>) -> Result<()> {
14361        let context = function_name!();
14362        trace!("{}", self.trace_item_stack(context));
14363        let enum_term = enum_term
14364            .token()?
14365            .try_into()
14366            .map_err(parol_runtime::ParolError::UserError)?;
14367        let enum_term_built = EnumTerm { enum_term };
14368        // Calling user action here
14369        self.user_grammar.enum_term(&enum_term_built)?;
14370        self.push(ASTType::EnumTerm(enum_term_built), context);
14371        Ok(())
14372    }
14373
14374    /// Semantic action for production 59:
14375    ///
14376    /// `ExportTerm: <INITIAL, Generic>/(?-u:\b)export(?-u:\b)/ : Token;`
14377    ///
14378    #[parol_runtime::function_name::named]
14379    fn export_term(&mut self, export_term: &ParseTreeType<'t>) -> Result<()> {
14380        let context = function_name!();
14381        trace!("{}", self.trace_item_stack(context));
14382        let export_term = export_term
14383            .token()?
14384            .try_into()
14385            .map_err(parol_runtime::ParolError::UserError)?;
14386        let export_term_built = ExportTerm { export_term };
14387        // Calling user action here
14388        self.user_grammar.export_term(&export_term_built)?;
14389        self.push(ASTType::ExportTerm(export_term_built), context);
14390        Ok(())
14391    }
14392
14393    /// Semantic action for production 60:
14394    ///
14395    /// `F32Term: <INITIAL, Generic>/(?-u:\b)f32(?-u:\b)/ : Token;`
14396    ///
14397    #[parol_runtime::function_name::named]
14398    fn f32_term(&mut self, f32_term: &ParseTreeType<'t>) -> Result<()> {
14399        let context = function_name!();
14400        trace!("{}", self.trace_item_stack(context));
14401        let f32_term = f32_term
14402            .token()?
14403            .try_into()
14404            .map_err(parol_runtime::ParolError::UserError)?;
14405        let f32_term_built = F32Term { f32_term };
14406        // Calling user action here
14407        self.user_grammar.f32_term(&f32_term_built)?;
14408        self.push(ASTType::F32Term(f32_term_built), context);
14409        Ok(())
14410    }
14411
14412    /// Semantic action for production 61:
14413    ///
14414    /// `F64Term: <INITIAL, Generic>/(?-u:\b)f64(?-u:\b)/ : Token;`
14415    ///
14416    #[parol_runtime::function_name::named]
14417    fn f64_term(&mut self, f64_term: &ParseTreeType<'t>) -> Result<()> {
14418        let context = function_name!();
14419        trace!("{}", self.trace_item_stack(context));
14420        let f64_term = f64_term
14421            .token()?
14422            .try_into()
14423            .map_err(parol_runtime::ParolError::UserError)?;
14424        let f64_term_built = F64Term { f64_term };
14425        // Calling user action here
14426        self.user_grammar.f64_term(&f64_term_built)?;
14427        self.push(ASTType::F64Term(f64_term_built), context);
14428        Ok(())
14429    }
14430
14431    /// Semantic action for production 62:
14432    ///
14433    /// `FinalTerm: <INITIAL, Generic>/(?-u:\b)final(?-u:\b)/ : Token;`
14434    ///
14435    #[parol_runtime::function_name::named]
14436    fn final_term(&mut self, final_term: &ParseTreeType<'t>) -> Result<()> {
14437        let context = function_name!();
14438        trace!("{}", self.trace_item_stack(context));
14439        let final_term = final_term
14440            .token()?
14441            .try_into()
14442            .map_err(parol_runtime::ParolError::UserError)?;
14443        let final_term_built = FinalTerm { final_term };
14444        // Calling user action here
14445        self.user_grammar.final_term(&final_term_built)?;
14446        self.push(ASTType::FinalTerm(final_term_built), context);
14447        Ok(())
14448    }
14449
14450    /// Semantic action for production 63:
14451    ///
14452    /// `ForTerm: <INITIAL, Generic>/(?-u:\b)for(?-u:\b)/ : Token;`
14453    ///
14454    #[parol_runtime::function_name::named]
14455    fn for_term(&mut self, for_term: &ParseTreeType<'t>) -> Result<()> {
14456        let context = function_name!();
14457        trace!("{}", self.trace_item_stack(context));
14458        let for_term = for_term
14459            .token()?
14460            .try_into()
14461            .map_err(parol_runtime::ParolError::UserError)?;
14462        let for_term_built = ForTerm { for_term };
14463        // Calling user action here
14464        self.user_grammar.for_term(&for_term_built)?;
14465        self.push(ASTType::ForTerm(for_term_built), context);
14466        Ok(())
14467    }
14468
14469    /// Semantic action for production 64:
14470    ///
14471    /// `FunctionTerm: <INITIAL, Generic>/(?-u:\b)function(?-u:\b)/ : Token;`
14472    ///
14473    #[parol_runtime::function_name::named]
14474    fn function_term(&mut self, function_term: &ParseTreeType<'t>) -> Result<()> {
14475        let context = function_name!();
14476        trace!("{}", self.trace_item_stack(context));
14477        let function_term = function_term
14478            .token()?
14479            .try_into()
14480            .map_err(parol_runtime::ParolError::UserError)?;
14481        let function_term_built = FunctionTerm { function_term };
14482        // Calling user action here
14483        self.user_grammar.function_term(&function_term_built)?;
14484        self.push(ASTType::FunctionTerm(function_term_built), context);
14485        Ok(())
14486    }
14487
14488    /// Semantic action for production 65:
14489    ///
14490    /// `I32Term: <INITIAL, Generic>/(?-u:\b)i32(?-u:\b)/ : Token;`
14491    ///
14492    #[parol_runtime::function_name::named]
14493    fn i32_term(&mut self, i32_term: &ParseTreeType<'t>) -> Result<()> {
14494        let context = function_name!();
14495        trace!("{}", self.trace_item_stack(context));
14496        let i32_term = i32_term
14497            .token()?
14498            .try_into()
14499            .map_err(parol_runtime::ParolError::UserError)?;
14500        let i32_term_built = I32Term { i32_term };
14501        // Calling user action here
14502        self.user_grammar.i32_term(&i32_term_built)?;
14503        self.push(ASTType::I32Term(i32_term_built), context);
14504        Ok(())
14505    }
14506
14507    /// Semantic action for production 66:
14508    ///
14509    /// `I64Term: <INITIAL, Generic>/(?-u:\b)i64(?-u:\b)/ : Token;`
14510    ///
14511    #[parol_runtime::function_name::named]
14512    fn i64_term(&mut self, i64_term: &ParseTreeType<'t>) -> Result<()> {
14513        let context = function_name!();
14514        trace!("{}", self.trace_item_stack(context));
14515        let i64_term = i64_term
14516            .token()?
14517            .try_into()
14518            .map_err(parol_runtime::ParolError::UserError)?;
14519        let i64_term_built = I64Term { i64_term };
14520        // Calling user action here
14521        self.user_grammar.i64_term(&i64_term_built)?;
14522        self.push(ASTType::I64Term(i64_term_built), context);
14523        Ok(())
14524    }
14525
14526    /// Semantic action for production 67:
14527    ///
14528    /// `IfResetTerm: <INITIAL, Generic>/(?-u:\b)if_reset(?-u:\b)/ : Token;`
14529    ///
14530    #[parol_runtime::function_name::named]
14531    fn if_reset_term(&mut self, if_reset_term: &ParseTreeType<'t>) -> Result<()> {
14532        let context = function_name!();
14533        trace!("{}", self.trace_item_stack(context));
14534        let if_reset_term = if_reset_term
14535            .token()?
14536            .try_into()
14537            .map_err(parol_runtime::ParolError::UserError)?;
14538        let if_reset_term_built = IfResetTerm { if_reset_term };
14539        // Calling user action here
14540        self.user_grammar.if_reset_term(&if_reset_term_built)?;
14541        self.push(ASTType::IfResetTerm(if_reset_term_built), context);
14542        Ok(())
14543    }
14544
14545    /// Semantic action for production 68:
14546    ///
14547    /// `IfTerm: <INITIAL, Generic>/(?-u:\b)if(?-u:\b)/ : Token;`
14548    ///
14549    #[parol_runtime::function_name::named]
14550    fn if_term(&mut self, if_term: &ParseTreeType<'t>) -> Result<()> {
14551        let context = function_name!();
14552        trace!("{}", self.trace_item_stack(context));
14553        let if_term = if_term
14554            .token()?
14555            .try_into()
14556            .map_err(parol_runtime::ParolError::UserError)?;
14557        let if_term_built = IfTerm { if_term };
14558        // Calling user action here
14559        self.user_grammar.if_term(&if_term_built)?;
14560        self.push(ASTType::IfTerm(if_term_built), context);
14561        Ok(())
14562    }
14563
14564    /// Semantic action for production 69:
14565    ///
14566    /// `ImportTerm: <INITIAL, Generic>/(?-u:\b)import(?-u:\b)/ : Token;`
14567    ///
14568    #[parol_runtime::function_name::named]
14569    fn import_term(&mut self, import_term: &ParseTreeType<'t>) -> Result<()> {
14570        let context = function_name!();
14571        trace!("{}", self.trace_item_stack(context));
14572        let import_term = import_term
14573            .token()?
14574            .try_into()
14575            .map_err(parol_runtime::ParolError::UserError)?;
14576        let import_term_built = ImportTerm { import_term };
14577        // Calling user action here
14578        self.user_grammar.import_term(&import_term_built)?;
14579        self.push(ASTType::ImportTerm(import_term_built), context);
14580        Ok(())
14581    }
14582
14583    /// Semantic action for production 70:
14584    ///
14585    /// `IncludeTerm: <INITIAL, Generic>/(?-u:\b)include(?-u:\b)/ : Token;`
14586    ///
14587    #[parol_runtime::function_name::named]
14588    fn include_term(&mut self, include_term: &ParseTreeType<'t>) -> Result<()> {
14589        let context = function_name!();
14590        trace!("{}", self.trace_item_stack(context));
14591        let include_term = include_term
14592            .token()?
14593            .try_into()
14594            .map_err(parol_runtime::ParolError::UserError)?;
14595        let include_term_built = IncludeTerm { include_term };
14596        // Calling user action here
14597        self.user_grammar.include_term(&include_term_built)?;
14598        self.push(ASTType::IncludeTerm(include_term_built), context);
14599        Ok(())
14600    }
14601
14602    /// Semantic action for production 71:
14603    ///
14604    /// `InitialTerm: <INITIAL, Generic>/(?-u:\b)initial(?-u:\b)/ : Token;`
14605    ///
14606    #[parol_runtime::function_name::named]
14607    fn initial_term(&mut self, initial_term: &ParseTreeType<'t>) -> Result<()> {
14608        let context = function_name!();
14609        trace!("{}", self.trace_item_stack(context));
14610        let initial_term = initial_term
14611            .token()?
14612            .try_into()
14613            .map_err(parol_runtime::ParolError::UserError)?;
14614        let initial_term_built = InitialTerm { initial_term };
14615        // Calling user action here
14616        self.user_grammar.initial_term(&initial_term_built)?;
14617        self.push(ASTType::InitialTerm(initial_term_built), context);
14618        Ok(())
14619    }
14620
14621    /// Semantic action for production 72:
14622    ///
14623    /// `InoutTerm: <INITIAL, Generic>/(?-u:\b)inout(?-u:\b)/ : Token;`
14624    ///
14625    #[parol_runtime::function_name::named]
14626    fn inout_term(&mut self, inout_term: &ParseTreeType<'t>) -> Result<()> {
14627        let context = function_name!();
14628        trace!("{}", self.trace_item_stack(context));
14629        let inout_term = inout_term
14630            .token()?
14631            .try_into()
14632            .map_err(parol_runtime::ParolError::UserError)?;
14633        let inout_term_built = InoutTerm { inout_term };
14634        // Calling user action here
14635        self.user_grammar.inout_term(&inout_term_built)?;
14636        self.push(ASTType::InoutTerm(inout_term_built), context);
14637        Ok(())
14638    }
14639
14640    /// Semantic action for production 73:
14641    ///
14642    /// `InputTerm: <INITIAL, Generic>/(?-u:\b)input(?-u:\b)/ : Token;`
14643    ///
14644    #[parol_runtime::function_name::named]
14645    fn input_term(&mut self, input_term: &ParseTreeType<'t>) -> Result<()> {
14646        let context = function_name!();
14647        trace!("{}", self.trace_item_stack(context));
14648        let input_term = input_term
14649            .token()?
14650            .try_into()
14651            .map_err(parol_runtime::ParolError::UserError)?;
14652        let input_term_built = InputTerm { input_term };
14653        // Calling user action here
14654        self.user_grammar.input_term(&input_term_built)?;
14655        self.push(ASTType::InputTerm(input_term_built), context);
14656        Ok(())
14657    }
14658
14659    /// Semantic action for production 74:
14660    ///
14661    /// `InsideTerm: <INITIAL, Generic>/(?-u:\b)inside(?-u:\b)/ : Token;`
14662    ///
14663    #[parol_runtime::function_name::named]
14664    fn inside_term(&mut self, inside_term: &ParseTreeType<'t>) -> Result<()> {
14665        let context = function_name!();
14666        trace!("{}", self.trace_item_stack(context));
14667        let inside_term = inside_term
14668            .token()?
14669            .try_into()
14670            .map_err(parol_runtime::ParolError::UserError)?;
14671        let inside_term_built = InsideTerm { inside_term };
14672        // Calling user action here
14673        self.user_grammar.inside_term(&inside_term_built)?;
14674        self.push(ASTType::InsideTerm(inside_term_built), context);
14675        Ok(())
14676    }
14677
14678    /// Semantic action for production 75:
14679    ///
14680    /// `InstTerm: <INITIAL, Generic>/(?-u:\b)inst(?-u:\b)/ : Token;`
14681    ///
14682    #[parol_runtime::function_name::named]
14683    fn inst_term(&mut self, inst_term: &ParseTreeType<'t>) -> Result<()> {
14684        let context = function_name!();
14685        trace!("{}", self.trace_item_stack(context));
14686        let inst_term = inst_term
14687            .token()?
14688            .try_into()
14689            .map_err(parol_runtime::ParolError::UserError)?;
14690        let inst_term_built = InstTerm { inst_term };
14691        // Calling user action here
14692        self.user_grammar.inst_term(&inst_term_built)?;
14693        self.push(ASTType::InstTerm(inst_term_built), context);
14694        Ok(())
14695    }
14696
14697    /// Semantic action for production 76:
14698    ///
14699    /// `InterfaceTerm: <INITIAL, Generic>/(?-u:\b)interface(?-u:\b)/ : Token;`
14700    ///
14701    #[parol_runtime::function_name::named]
14702    fn interface_term(&mut self, interface_term: &ParseTreeType<'t>) -> Result<()> {
14703        let context = function_name!();
14704        trace!("{}", self.trace_item_stack(context));
14705        let interface_term = interface_term
14706            .token()?
14707            .try_into()
14708            .map_err(parol_runtime::ParolError::UserError)?;
14709        let interface_term_built = InterfaceTerm { interface_term };
14710        // Calling user action here
14711        self.user_grammar.interface_term(&interface_term_built)?;
14712        self.push(ASTType::InterfaceTerm(interface_term_built), context);
14713        Ok(())
14714    }
14715
14716    /// Semantic action for production 77:
14717    ///
14718    /// `InTerm: <INITIAL, Generic>/(?-u:\b)in(?-u:\b)/ : Token;`
14719    ///
14720    #[parol_runtime::function_name::named]
14721    fn in_term(&mut self, in_term: &ParseTreeType<'t>) -> Result<()> {
14722        let context = function_name!();
14723        trace!("{}", self.trace_item_stack(context));
14724        let in_term = in_term
14725            .token()?
14726            .try_into()
14727            .map_err(parol_runtime::ParolError::UserError)?;
14728        let in_term_built = InTerm { in_term };
14729        // Calling user action here
14730        self.user_grammar.in_term(&in_term_built)?;
14731        self.push(ASTType::InTerm(in_term_built), context);
14732        Ok(())
14733    }
14734
14735    /// Semantic action for production 78:
14736    ///
14737    /// `LetTerm: <INITIAL, Generic>/(?-u:\b)let(?-u:\b)/ : Token;`
14738    ///
14739    #[parol_runtime::function_name::named]
14740    fn let_term(&mut self, let_term: &ParseTreeType<'t>) -> Result<()> {
14741        let context = function_name!();
14742        trace!("{}", self.trace_item_stack(context));
14743        let let_term = let_term
14744            .token()?
14745            .try_into()
14746            .map_err(parol_runtime::ParolError::UserError)?;
14747        let let_term_built = LetTerm { let_term };
14748        // Calling user action here
14749        self.user_grammar.let_term(&let_term_built)?;
14750        self.push(ASTType::LetTerm(let_term_built), context);
14751        Ok(())
14752    }
14753
14754    /// Semantic action for production 79:
14755    ///
14756    /// `LogicTerm: <INITIAL, Generic>/(?-u:\b)logic(?-u:\b)/ : Token;`
14757    ///
14758    #[parol_runtime::function_name::named]
14759    fn logic_term(&mut self, logic_term: &ParseTreeType<'t>) -> Result<()> {
14760        let context = function_name!();
14761        trace!("{}", self.trace_item_stack(context));
14762        let logic_term = logic_term
14763            .token()?
14764            .try_into()
14765            .map_err(parol_runtime::ParolError::UserError)?;
14766        let logic_term_built = LogicTerm { logic_term };
14767        // Calling user action here
14768        self.user_grammar.logic_term(&logic_term_built)?;
14769        self.push(ASTType::LogicTerm(logic_term_built), context);
14770        Ok(())
14771    }
14772
14773    /// Semantic action for production 80:
14774    ///
14775    /// `LsbTerm: <INITIAL, Generic>/(?-u:\b)lsb(?-u:\b)/ : Token;`
14776    ///
14777    #[parol_runtime::function_name::named]
14778    fn lsb_term(&mut self, lsb_term: &ParseTreeType<'t>) -> Result<()> {
14779        let context = function_name!();
14780        trace!("{}", self.trace_item_stack(context));
14781        let lsb_term = lsb_term
14782            .token()?
14783            .try_into()
14784            .map_err(parol_runtime::ParolError::UserError)?;
14785        let lsb_term_built = LsbTerm { lsb_term };
14786        // Calling user action here
14787        self.user_grammar.lsb_term(&lsb_term_built)?;
14788        self.push(ASTType::LsbTerm(lsb_term_built), context);
14789        Ok(())
14790    }
14791
14792    /// Semantic action for production 81:
14793    ///
14794    /// `ModportTerm: <INITIAL, Generic>/(?-u:\b)modport(?-u:\b)/ : Token;`
14795    ///
14796    #[parol_runtime::function_name::named]
14797    fn modport_term(&mut self, modport_term: &ParseTreeType<'t>) -> Result<()> {
14798        let context = function_name!();
14799        trace!("{}", self.trace_item_stack(context));
14800        let modport_term = modport_term
14801            .token()?
14802            .try_into()
14803            .map_err(parol_runtime::ParolError::UserError)?;
14804        let modport_term_built = ModportTerm { modport_term };
14805        // Calling user action here
14806        self.user_grammar.modport_term(&modport_term_built)?;
14807        self.push(ASTType::ModportTerm(modport_term_built), context);
14808        Ok(())
14809    }
14810
14811    /// Semantic action for production 82:
14812    ///
14813    /// `ModuleTerm: <INITIAL, Generic>/(?-u:\b)module(?-u:\b)/ : Token;`
14814    ///
14815    #[parol_runtime::function_name::named]
14816    fn module_term(&mut self, module_term: &ParseTreeType<'t>) -> Result<()> {
14817        let context = function_name!();
14818        trace!("{}", self.trace_item_stack(context));
14819        let module_term = module_term
14820            .token()?
14821            .try_into()
14822            .map_err(parol_runtime::ParolError::UserError)?;
14823        let module_term_built = ModuleTerm { module_term };
14824        // Calling user action here
14825        self.user_grammar.module_term(&module_term_built)?;
14826        self.push(ASTType::ModuleTerm(module_term_built), context);
14827        Ok(())
14828    }
14829
14830    /// Semantic action for production 83:
14831    ///
14832    /// `MsbTerm: <INITIAL, Generic>/(?-u:\b)msb(?-u:\b)/ : Token;`
14833    ///
14834    #[parol_runtime::function_name::named]
14835    fn msb_term(&mut self, msb_term: &ParseTreeType<'t>) -> Result<()> {
14836        let context = function_name!();
14837        trace!("{}", self.trace_item_stack(context));
14838        let msb_term = msb_term
14839            .token()?
14840            .try_into()
14841            .map_err(parol_runtime::ParolError::UserError)?;
14842        let msb_term_built = MsbTerm { msb_term };
14843        // Calling user action here
14844        self.user_grammar.msb_term(&msb_term_built)?;
14845        self.push(ASTType::MsbTerm(msb_term_built), context);
14846        Ok(())
14847    }
14848
14849    /// Semantic action for production 84:
14850    ///
14851    /// `OutputTerm: <INITIAL, Generic>/(?-u:\b)output(?-u:\b)/ : Token;`
14852    ///
14853    #[parol_runtime::function_name::named]
14854    fn output_term(&mut self, output_term: &ParseTreeType<'t>) -> Result<()> {
14855        let context = function_name!();
14856        trace!("{}", self.trace_item_stack(context));
14857        let output_term = output_term
14858            .token()?
14859            .try_into()
14860            .map_err(parol_runtime::ParolError::UserError)?;
14861        let output_term_built = OutputTerm { output_term };
14862        // Calling user action here
14863        self.user_grammar.output_term(&output_term_built)?;
14864        self.push(ASTType::OutputTerm(output_term_built), context);
14865        Ok(())
14866    }
14867
14868    /// Semantic action for production 85:
14869    ///
14870    /// `OutsideTerm: <INITIAL, Generic>/(?-u:\b)outside(?-u:\b)/ : Token;`
14871    ///
14872    #[parol_runtime::function_name::named]
14873    fn outside_term(&mut self, outside_term: &ParseTreeType<'t>) -> Result<()> {
14874        let context = function_name!();
14875        trace!("{}", self.trace_item_stack(context));
14876        let outside_term = outside_term
14877            .token()?
14878            .try_into()
14879            .map_err(parol_runtime::ParolError::UserError)?;
14880        let outside_term_built = OutsideTerm { outside_term };
14881        // Calling user action here
14882        self.user_grammar.outside_term(&outside_term_built)?;
14883        self.push(ASTType::OutsideTerm(outside_term_built), context);
14884        Ok(())
14885    }
14886
14887    /// Semantic action for production 86:
14888    ///
14889    /// `PackageTerm: <INITIAL, Generic>/(?-u:\b)package(?-u:\b)/ : Token;`
14890    ///
14891    #[parol_runtime::function_name::named]
14892    fn package_term(&mut self, package_term: &ParseTreeType<'t>) -> Result<()> {
14893        let context = function_name!();
14894        trace!("{}", self.trace_item_stack(context));
14895        let package_term = package_term
14896            .token()?
14897            .try_into()
14898            .map_err(parol_runtime::ParolError::UserError)?;
14899        let package_term_built = PackageTerm { package_term };
14900        // Calling user action here
14901        self.user_grammar.package_term(&package_term_built)?;
14902        self.push(ASTType::PackageTerm(package_term_built), context);
14903        Ok(())
14904    }
14905
14906    /// Semantic action for production 87:
14907    ///
14908    /// `ParamTerm: <INITIAL, Generic>/(?-u:\b)param(?-u:\b)/ : Token;`
14909    ///
14910    #[parol_runtime::function_name::named]
14911    fn param_term(&mut self, param_term: &ParseTreeType<'t>) -> Result<()> {
14912        let context = function_name!();
14913        trace!("{}", self.trace_item_stack(context));
14914        let param_term = param_term
14915            .token()?
14916            .try_into()
14917            .map_err(parol_runtime::ParolError::UserError)?;
14918        let param_term_built = ParamTerm { param_term };
14919        // Calling user action here
14920        self.user_grammar.param_term(&param_term_built)?;
14921        self.push(ASTType::ParamTerm(param_term_built), context);
14922        Ok(())
14923    }
14924
14925    /// Semantic action for production 88:
14926    ///
14927    /// `ProtoTerm: <INITIAL, Generic>/(?-u:\b)proto(?-u:\b)/ : Token;`
14928    ///
14929    #[parol_runtime::function_name::named]
14930    fn proto_term(&mut self, proto_term: &ParseTreeType<'t>) -> Result<()> {
14931        let context = function_name!();
14932        trace!("{}", self.trace_item_stack(context));
14933        let proto_term = proto_term
14934            .token()?
14935            .try_into()
14936            .map_err(parol_runtime::ParolError::UserError)?;
14937        let proto_term_built = ProtoTerm { proto_term };
14938        // Calling user action here
14939        self.user_grammar.proto_term(&proto_term_built)?;
14940        self.push(ASTType::ProtoTerm(proto_term_built), context);
14941        Ok(())
14942    }
14943
14944    /// Semantic action for production 89:
14945    ///
14946    /// `PubTerm: <INITIAL, Generic>/(?-u:\b)pub(?-u:\b)/ : Token;`
14947    ///
14948    #[parol_runtime::function_name::named]
14949    fn pub_term(&mut self, pub_term: &ParseTreeType<'t>) -> Result<()> {
14950        let context = function_name!();
14951        trace!("{}", self.trace_item_stack(context));
14952        let pub_term = pub_term
14953            .token()?
14954            .try_into()
14955            .map_err(parol_runtime::ParolError::UserError)?;
14956        let pub_term_built = PubTerm { pub_term };
14957        // Calling user action here
14958        self.user_grammar.pub_term(&pub_term_built)?;
14959        self.push(ASTType::PubTerm(pub_term_built), context);
14960        Ok(())
14961    }
14962
14963    /// Semantic action for production 90:
14964    ///
14965    /// `RefTerm: <INITIAL, Generic>/(?-u:\b)ref(?-u:\b)/ : Token;`
14966    ///
14967    #[parol_runtime::function_name::named]
14968    fn ref_term(&mut self, ref_term: &ParseTreeType<'t>) -> Result<()> {
14969        let context = function_name!();
14970        trace!("{}", self.trace_item_stack(context));
14971        let ref_term = ref_term
14972            .token()?
14973            .try_into()
14974            .map_err(parol_runtime::ParolError::UserError)?;
14975        let ref_term_built = RefTerm { ref_term };
14976        // Calling user action here
14977        self.user_grammar.ref_term(&ref_term_built)?;
14978        self.push(ASTType::RefTerm(ref_term_built), context);
14979        Ok(())
14980    }
14981
14982    /// Semantic action for production 91:
14983    ///
14984    /// `RepeatTerm: <INITIAL, Generic>/(?-u:\b)repeat(?-u:\b)/ : Token;`
14985    ///
14986    #[parol_runtime::function_name::named]
14987    fn repeat_term(&mut self, repeat_term: &ParseTreeType<'t>) -> Result<()> {
14988        let context = function_name!();
14989        trace!("{}", self.trace_item_stack(context));
14990        let repeat_term = repeat_term
14991            .token()?
14992            .try_into()
14993            .map_err(parol_runtime::ParolError::UserError)?;
14994        let repeat_term_built = RepeatTerm { repeat_term };
14995        // Calling user action here
14996        self.user_grammar.repeat_term(&repeat_term_built)?;
14997        self.push(ASTType::RepeatTerm(repeat_term_built), context);
14998        Ok(())
14999    }
15000
15001    /// Semantic action for production 92:
15002    ///
15003    /// `ResetTerm: <INITIAL, Generic>/(?-u:\b)reset(?-u:\b)/ : Token;`
15004    ///
15005    #[parol_runtime::function_name::named]
15006    fn reset_term(&mut self, reset_term: &ParseTreeType<'t>) -> Result<()> {
15007        let context = function_name!();
15008        trace!("{}", self.trace_item_stack(context));
15009        let reset_term = reset_term
15010            .token()?
15011            .try_into()
15012            .map_err(parol_runtime::ParolError::UserError)?;
15013        let reset_term_built = ResetTerm { reset_term };
15014        // Calling user action here
15015        self.user_grammar.reset_term(&reset_term_built)?;
15016        self.push(ASTType::ResetTerm(reset_term_built), context);
15017        Ok(())
15018    }
15019
15020    /// Semantic action for production 93:
15021    ///
15022    /// `ResetAsyncHighTerm: <INITIAL, Generic>/(?-u:\b)reset_async_high(?-u:\b)/ : Token;`
15023    ///
15024    #[parol_runtime::function_name::named]
15025    fn reset_async_high_term(&mut self, reset_async_high_term: &ParseTreeType<'t>) -> Result<()> {
15026        let context = function_name!();
15027        trace!("{}", self.trace_item_stack(context));
15028        let reset_async_high_term = reset_async_high_term
15029            .token()?
15030            .try_into()
15031            .map_err(parol_runtime::ParolError::UserError)?;
15032        let reset_async_high_term_built = ResetAsyncHighTerm {
15033            reset_async_high_term,
15034        };
15035        // Calling user action here
15036        self.user_grammar
15037            .reset_async_high_term(&reset_async_high_term_built)?;
15038        self.push(
15039            ASTType::ResetAsyncHighTerm(reset_async_high_term_built),
15040            context,
15041        );
15042        Ok(())
15043    }
15044
15045    /// Semantic action for production 94:
15046    ///
15047    /// `ResetAsyncLowTerm: <INITIAL, Generic>/(?-u:\b)reset_async_low(?-u:\b)/ : Token;`
15048    ///
15049    #[parol_runtime::function_name::named]
15050    fn reset_async_low_term(&mut self, reset_async_low_term: &ParseTreeType<'t>) -> Result<()> {
15051        let context = function_name!();
15052        trace!("{}", self.trace_item_stack(context));
15053        let reset_async_low_term = reset_async_low_term
15054            .token()?
15055            .try_into()
15056            .map_err(parol_runtime::ParolError::UserError)?;
15057        let reset_async_low_term_built = ResetAsyncLowTerm {
15058            reset_async_low_term,
15059        };
15060        // Calling user action here
15061        self.user_grammar
15062            .reset_async_low_term(&reset_async_low_term_built)?;
15063        self.push(
15064            ASTType::ResetAsyncLowTerm(reset_async_low_term_built),
15065            context,
15066        );
15067        Ok(())
15068    }
15069
15070    /// Semantic action for production 95:
15071    ///
15072    /// `ResetSyncHighTerm: <INITIAL, Generic>/(?-u:\b)reset_sync_high(?-u:\b)/ : Token;`
15073    ///
15074    #[parol_runtime::function_name::named]
15075    fn reset_sync_high_term(&mut self, reset_sync_high_term: &ParseTreeType<'t>) -> Result<()> {
15076        let context = function_name!();
15077        trace!("{}", self.trace_item_stack(context));
15078        let reset_sync_high_term = reset_sync_high_term
15079            .token()?
15080            .try_into()
15081            .map_err(parol_runtime::ParolError::UserError)?;
15082        let reset_sync_high_term_built = ResetSyncHighTerm {
15083            reset_sync_high_term,
15084        };
15085        // Calling user action here
15086        self.user_grammar
15087            .reset_sync_high_term(&reset_sync_high_term_built)?;
15088        self.push(
15089            ASTType::ResetSyncHighTerm(reset_sync_high_term_built),
15090            context,
15091        );
15092        Ok(())
15093    }
15094
15095    /// Semantic action for production 96:
15096    ///
15097    /// `ResetSyncLowTerm: <INITIAL, Generic>/(?-u:\b)reset_sync_low(?-u:\b)/ : Token;`
15098    ///
15099    #[parol_runtime::function_name::named]
15100    fn reset_sync_low_term(&mut self, reset_sync_low_term: &ParseTreeType<'t>) -> Result<()> {
15101        let context = function_name!();
15102        trace!("{}", self.trace_item_stack(context));
15103        let reset_sync_low_term = reset_sync_low_term
15104            .token()?
15105            .try_into()
15106            .map_err(parol_runtime::ParolError::UserError)?;
15107        let reset_sync_low_term_built = ResetSyncLowTerm {
15108            reset_sync_low_term,
15109        };
15110        // Calling user action here
15111        self.user_grammar
15112            .reset_sync_low_term(&reset_sync_low_term_built)?;
15113        self.push(
15114            ASTType::ResetSyncLowTerm(reset_sync_low_term_built),
15115            context,
15116        );
15117        Ok(())
15118    }
15119
15120    /// Semantic action for production 97:
15121    ///
15122    /// `ReturnTerm: <INITIAL, Generic>/(?-u:\b)return(?-u:\b)/ : Token;`
15123    ///
15124    #[parol_runtime::function_name::named]
15125    fn return_term(&mut self, return_term: &ParseTreeType<'t>) -> Result<()> {
15126        let context = function_name!();
15127        trace!("{}", self.trace_item_stack(context));
15128        let return_term = return_term
15129            .token()?
15130            .try_into()
15131            .map_err(parol_runtime::ParolError::UserError)?;
15132        let return_term_built = ReturnTerm { return_term };
15133        // Calling user action here
15134        self.user_grammar.return_term(&return_term_built)?;
15135        self.push(ASTType::ReturnTerm(return_term_built), context);
15136        Ok(())
15137    }
15138
15139    /// Semantic action for production 98:
15140    ///
15141    /// `BreakTerm: <INITIAL, Generic>/(?-u:\b)break(?-u:\b)/ : Token;`
15142    ///
15143    #[parol_runtime::function_name::named]
15144    fn break_term(&mut self, break_term: &ParseTreeType<'t>) -> Result<()> {
15145        let context = function_name!();
15146        trace!("{}", self.trace_item_stack(context));
15147        let break_term = break_term
15148            .token()?
15149            .try_into()
15150            .map_err(parol_runtime::ParolError::UserError)?;
15151        let break_term_built = BreakTerm { break_term };
15152        // Calling user action here
15153        self.user_grammar.break_term(&break_term_built)?;
15154        self.push(ASTType::BreakTerm(break_term_built), context);
15155        Ok(())
15156    }
15157
15158    /// Semantic action for production 99:
15159    ///
15160    /// `SignedTerm: <INITIAL, Generic>/(?-u:\b)signed(?-u:\b)/ : Token;`
15161    ///
15162    #[parol_runtime::function_name::named]
15163    fn signed_term(&mut self, signed_term: &ParseTreeType<'t>) -> Result<()> {
15164        let context = function_name!();
15165        trace!("{}", self.trace_item_stack(context));
15166        let signed_term = signed_term
15167            .token()?
15168            .try_into()
15169            .map_err(parol_runtime::ParolError::UserError)?;
15170        let signed_term_built = SignedTerm { signed_term };
15171        // Calling user action here
15172        self.user_grammar.signed_term(&signed_term_built)?;
15173        self.push(ASTType::SignedTerm(signed_term_built), context);
15174        Ok(())
15175    }
15176
15177    /// Semantic action for production 100:
15178    ///
15179    /// `StepTerm: <INITIAL, Generic>/(?-u:\b)step(?-u:\b)/ : Token;`
15180    ///
15181    #[parol_runtime::function_name::named]
15182    fn step_term(&mut self, step_term: &ParseTreeType<'t>) -> Result<()> {
15183        let context = function_name!();
15184        trace!("{}", self.trace_item_stack(context));
15185        let step_term = step_term
15186            .token()?
15187            .try_into()
15188            .map_err(parol_runtime::ParolError::UserError)?;
15189        let step_term_built = StepTerm { step_term };
15190        // Calling user action here
15191        self.user_grammar.step_term(&step_term_built)?;
15192        self.push(ASTType::StepTerm(step_term_built), context);
15193        Ok(())
15194    }
15195
15196    /// Semantic action for production 101:
15197    ///
15198    /// `StringTerm: <INITIAL, Generic>/(?-u:\b)string(?-u:\b)/ : Token;`
15199    ///
15200    #[parol_runtime::function_name::named]
15201    fn string_term(&mut self, string_term: &ParseTreeType<'t>) -> Result<()> {
15202        let context = function_name!();
15203        trace!("{}", self.trace_item_stack(context));
15204        let string_term = string_term
15205            .token()?
15206            .try_into()
15207            .map_err(parol_runtime::ParolError::UserError)?;
15208        let string_term_built = StringTerm { string_term };
15209        // Calling user action here
15210        self.user_grammar.string_term(&string_term_built)?;
15211        self.push(ASTType::StringTerm(string_term_built), context);
15212        Ok(())
15213    }
15214
15215    /// Semantic action for production 102:
15216    ///
15217    /// `StructTerm: <INITIAL, Generic>/(?-u:\b)struct(?-u:\b)/ : Token;`
15218    ///
15219    #[parol_runtime::function_name::named]
15220    fn struct_term(&mut self, struct_term: &ParseTreeType<'t>) -> Result<()> {
15221        let context = function_name!();
15222        trace!("{}", self.trace_item_stack(context));
15223        let struct_term = struct_term
15224            .token()?
15225            .try_into()
15226            .map_err(parol_runtime::ParolError::UserError)?;
15227        let struct_term_built = StructTerm { struct_term };
15228        // Calling user action here
15229        self.user_grammar.struct_term(&struct_term_built)?;
15230        self.push(ASTType::StructTerm(struct_term_built), context);
15231        Ok(())
15232    }
15233
15234    /// Semantic action for production 103:
15235    ///
15236    /// `SwitchTerm: <INITIAL, Generic>/(?-u:\b)switch(?-u:\b)/ : Token;`
15237    ///
15238    #[parol_runtime::function_name::named]
15239    fn switch_term(&mut self, switch_term: &ParseTreeType<'t>) -> Result<()> {
15240        let context = function_name!();
15241        trace!("{}", self.trace_item_stack(context));
15242        let switch_term = switch_term
15243            .token()?
15244            .try_into()
15245            .map_err(parol_runtime::ParolError::UserError)?;
15246        let switch_term_built = SwitchTerm { switch_term };
15247        // Calling user action here
15248        self.user_grammar.switch_term(&switch_term_built)?;
15249        self.push(ASTType::SwitchTerm(switch_term_built), context);
15250        Ok(())
15251    }
15252
15253    /// Semantic action for production 104:
15254    ///
15255    /// `TriTerm: <INITIAL, Generic>/(?-u:\b)tri(?-u:\b)/ : Token;`
15256    ///
15257    #[parol_runtime::function_name::named]
15258    fn tri_term(&mut self, tri_term: &ParseTreeType<'t>) -> Result<()> {
15259        let context = function_name!();
15260        trace!("{}", self.trace_item_stack(context));
15261        let tri_term = tri_term
15262            .token()?
15263            .try_into()
15264            .map_err(parol_runtime::ParolError::UserError)?;
15265        let tri_term_built = TriTerm { tri_term };
15266        // Calling user action here
15267        self.user_grammar.tri_term(&tri_term_built)?;
15268        self.push(ASTType::TriTerm(tri_term_built), context);
15269        Ok(())
15270    }
15271
15272    /// Semantic action for production 105:
15273    ///
15274    /// `TypeTerm: <INITIAL, Generic>/(?-u:\b)type(?-u:\b)/ : Token;`
15275    ///
15276    #[parol_runtime::function_name::named]
15277    fn type_term(&mut self, type_term: &ParseTreeType<'t>) -> Result<()> {
15278        let context = function_name!();
15279        trace!("{}", self.trace_item_stack(context));
15280        let type_term = type_term
15281            .token()?
15282            .try_into()
15283            .map_err(parol_runtime::ParolError::UserError)?;
15284        let type_term_built = TypeTerm { type_term };
15285        // Calling user action here
15286        self.user_grammar.type_term(&type_term_built)?;
15287        self.push(ASTType::TypeTerm(type_term_built), context);
15288        Ok(())
15289    }
15290
15291    /// Semantic action for production 106:
15292    ///
15293    /// `U32Term: <INITIAL, Generic>/(?-u:\b)u32(?-u:\b)/ : Token;`
15294    ///
15295    #[parol_runtime::function_name::named]
15296    fn u32_term(&mut self, u32_term: &ParseTreeType<'t>) -> Result<()> {
15297        let context = function_name!();
15298        trace!("{}", self.trace_item_stack(context));
15299        let u32_term = u32_term
15300            .token()?
15301            .try_into()
15302            .map_err(parol_runtime::ParolError::UserError)?;
15303        let u32_term_built = U32Term { u32_term };
15304        // Calling user action here
15305        self.user_grammar.u32_term(&u32_term_built)?;
15306        self.push(ASTType::U32Term(u32_term_built), context);
15307        Ok(())
15308    }
15309
15310    /// Semantic action for production 107:
15311    ///
15312    /// `U64Term: <INITIAL, Generic>/(?-u:\b)u64(?-u:\b)/ : Token;`
15313    ///
15314    #[parol_runtime::function_name::named]
15315    fn u64_term(&mut self, u64_term: &ParseTreeType<'t>) -> Result<()> {
15316        let context = function_name!();
15317        trace!("{}", self.trace_item_stack(context));
15318        let u64_term = u64_term
15319            .token()?
15320            .try_into()
15321            .map_err(parol_runtime::ParolError::UserError)?;
15322        let u64_term_built = U64Term { u64_term };
15323        // Calling user action here
15324        self.user_grammar.u64_term(&u64_term_built)?;
15325        self.push(ASTType::U64Term(u64_term_built), context);
15326        Ok(())
15327    }
15328
15329    /// Semantic action for production 108:
15330    ///
15331    /// `UnionTerm: <INITIAL, Generic>/(?-u:\b)union(?-u:\b)/ : Token;`
15332    ///
15333    #[parol_runtime::function_name::named]
15334    fn union_term(&mut self, union_term: &ParseTreeType<'t>) -> Result<()> {
15335        let context = function_name!();
15336        trace!("{}", self.trace_item_stack(context));
15337        let union_term = union_term
15338            .token()?
15339            .try_into()
15340            .map_err(parol_runtime::ParolError::UserError)?;
15341        let union_term_built = UnionTerm { union_term };
15342        // Calling user action here
15343        self.user_grammar.union_term(&union_term_built)?;
15344        self.push(ASTType::UnionTerm(union_term_built), context);
15345        Ok(())
15346    }
15347
15348    /// Semantic action for production 109:
15349    ///
15350    /// `UnsafeTerm: <INITIAL, Generic>/(?-u:\b)unsafe(?-u:\b)/ : Token;`
15351    ///
15352    #[parol_runtime::function_name::named]
15353    fn unsafe_term(&mut self, unsafe_term: &ParseTreeType<'t>) -> Result<()> {
15354        let context = function_name!();
15355        trace!("{}", self.trace_item_stack(context));
15356        let unsafe_term = unsafe_term
15357            .token()?
15358            .try_into()
15359            .map_err(parol_runtime::ParolError::UserError)?;
15360        let unsafe_term_built = UnsafeTerm { unsafe_term };
15361        // Calling user action here
15362        self.user_grammar.unsafe_term(&unsafe_term_built)?;
15363        self.push(ASTType::UnsafeTerm(unsafe_term_built), context);
15364        Ok(())
15365    }
15366
15367    /// Semantic action for production 110:
15368    ///
15369    /// `VarTerm: <INITIAL, Generic>/(?-u:\b)var(?-u:\b)/ : Token;`
15370    ///
15371    #[parol_runtime::function_name::named]
15372    fn var_term(&mut self, var_term: &ParseTreeType<'t>) -> Result<()> {
15373        let context = function_name!();
15374        trace!("{}", self.trace_item_stack(context));
15375        let var_term = var_term
15376            .token()?
15377            .try_into()
15378            .map_err(parol_runtime::ParolError::UserError)?;
15379        let var_term_built = VarTerm { var_term };
15380        // Calling user action here
15381        self.user_grammar.var_term(&var_term_built)?;
15382        self.push(ASTType::VarTerm(var_term_built), context);
15383        Ok(())
15384    }
15385
15386    /// Semantic action for production 111:
15387    ///
15388    /// `DollarIdentifierTerm: <INITIAL, Generic>/\$[a-zA-Z_][0-9a-zA-Z_$]*/ : Token;`
15389    ///
15390    #[parol_runtime::function_name::named]
15391    fn dollar_identifier_term(&mut self, dollar_identifier_term: &ParseTreeType<'t>) -> Result<()> {
15392        let context = function_name!();
15393        trace!("{}", self.trace_item_stack(context));
15394        let dollar_identifier_term = dollar_identifier_term
15395            .token()?
15396            .try_into()
15397            .map_err(parol_runtime::ParolError::UserError)?;
15398        let dollar_identifier_term_built = DollarIdentifierTerm {
15399            dollar_identifier_term,
15400        };
15401        // Calling user action here
15402        self.user_grammar
15403            .dollar_identifier_term(&dollar_identifier_term_built)?;
15404        self.push(
15405            ASTType::DollarIdentifierTerm(dollar_identifier_term_built),
15406            context,
15407        );
15408        Ok(())
15409    }
15410
15411    /// Semantic action for production 112:
15412    ///
15413    /// `IdentifierTerm: <INITIAL, Generic>/(?:r#)?[a-zA-Z_][0-9a-zA-Z_$]*/ : Token;`
15414    ///
15415    #[parol_runtime::function_name::named]
15416    fn identifier_term(&mut self, identifier_term: &ParseTreeType<'t>) -> Result<()> {
15417        let context = function_name!();
15418        trace!("{}", self.trace_item_stack(context));
15419        let identifier_term = identifier_term
15420            .token()?
15421            .try_into()
15422            .map_err(parol_runtime::ParolError::UserError)?;
15423        let identifier_term_built = IdentifierTerm { identifier_term };
15424        // Calling user action here
15425        self.user_grammar.identifier_term(&identifier_term_built)?;
15426        self.push(ASTType::IdentifierTerm(identifier_term_built), context);
15427        Ok(())
15428    }
15429
15430    /// Semantic action for production 113:
15431    ///
15432    /// `AnyTerm: <Embed>/[^{}]+/ : Token;`
15433    ///
15434    #[parol_runtime::function_name::named]
15435    fn any_term(&mut self, any_term: &ParseTreeType<'t>) -> Result<()> {
15436        let context = function_name!();
15437        trace!("{}", self.trace_item_stack(context));
15438        let any_term = any_term
15439            .token()?
15440            .try_into()
15441            .map_err(parol_runtime::ParolError::UserError)?;
15442        let any_term_built = AnyTerm { any_term };
15443        // Calling user action here
15444        self.user_grammar.any_term(&any_term_built)?;
15445        self.push(ASTType::AnyTerm(any_term_built), context);
15446        Ok(())
15447    }
15448
15449    /// Semantic action for production 114:
15450    ///
15451    /// `Comments: CommentsOpt /* Option */;`
15452    ///
15453    #[parol_runtime::function_name::named]
15454    fn comments(&mut self, _comments_opt: &ParseTreeType<'t>) -> Result<()> {
15455        let context = function_name!();
15456        trace!("{}", self.trace_item_stack(context));
15457        let comments_opt = pop_item!(self, comments_opt, CommentsOpt, context);
15458        let comments_built = Comments { comments_opt };
15459        // Calling user action here
15460        self.user_grammar.comments(&comments_built)?;
15461        self.push(ASTType::Comments(comments_built), context);
15462        Ok(())
15463    }
15464
15465    /// Semantic action for production 115:
15466    ///
15467    /// `CommentsOpt /* Option<T>::Some */: CommentsTerm;`
15468    ///
15469    #[parol_runtime::function_name::named]
15470    fn comments_opt_0(&mut self, _comments_term: &ParseTreeType<'t>) -> Result<()> {
15471        let context = function_name!();
15472        trace!("{}", self.trace_item_stack(context));
15473        let comments_term = pop_item!(self, comments_term, CommentsTerm, context);
15474        let comments_opt_0_built = CommentsOpt {
15475            comments_term: Box::new(comments_term),
15476        };
15477        self.push(ASTType::CommentsOpt(Some(comments_opt_0_built)), context);
15478        Ok(())
15479    }
15480
15481    /// Semantic action for production 116:
15482    ///
15483    /// `CommentsOpt /* Option<T>::None */: ;`
15484    ///
15485    #[parol_runtime::function_name::named]
15486    fn comments_opt_1(&mut self) -> Result<()> {
15487        let context = function_name!();
15488        trace!("{}", self.trace_item_stack(context));
15489        self.push(ASTType::CommentsOpt(None), context);
15490        Ok(())
15491    }
15492
15493    /// Semantic action for production 117:
15494    ///
15495    /// `StartToken: Comments;`
15496    ///
15497    #[parol_runtime::function_name::named]
15498    fn start_token(&mut self, _comments: &ParseTreeType<'t>) -> Result<()> {
15499        let context = function_name!();
15500        trace!("{}", self.trace_item_stack(context));
15501        let comments = pop_item!(self, comments, Comments, context);
15502        let start_token_built = StartToken {
15503            comments: Box::new(comments),
15504        };
15505        // Calling user action here
15506        self.user_grammar.start_token(&start_token_built)?;
15507        self.push(ASTType::StartToken(start_token_built), context);
15508        Ok(())
15509    }
15510
15511    /// Semantic action for production 118:
15512    ///
15513    /// `StringLiteralToken: StringLiteralTerm : Token Comments;`
15514    ///
15515    #[parol_runtime::function_name::named]
15516    fn string_literal_token(
15517        &mut self,
15518        _string_literal_term: &ParseTreeType<'t>,
15519        _comments: &ParseTreeType<'t>,
15520    ) -> Result<()> {
15521        let context = function_name!();
15522        trace!("{}", self.trace_item_stack(context));
15523        let comments = pop_item!(self, comments, Comments, context);
15524        let string_literal_term = pop_item!(self, string_literal_term, StringLiteralTerm, context);
15525        let string_literal_token_built = StringLiteralToken {
15526            string_literal_term: (&string_literal_term)
15527                .try_into()
15528                .map_err(parol_runtime::ParolError::UserError)?,
15529            comments: Box::new(comments),
15530        };
15531        // Calling user action here
15532        self.user_grammar
15533            .string_literal_token(&string_literal_token_built)?;
15534        self.push(
15535            ASTType::StringLiteralToken(string_literal_token_built),
15536            context,
15537        );
15538        Ok(())
15539    }
15540
15541    /// Semantic action for production 119:
15542    ///
15543    /// `ExponentToken: ExponentTerm : Token Comments;`
15544    ///
15545    #[parol_runtime::function_name::named]
15546    fn exponent_token(
15547        &mut self,
15548        _exponent_term: &ParseTreeType<'t>,
15549        _comments: &ParseTreeType<'t>,
15550    ) -> Result<()> {
15551        let context = function_name!();
15552        trace!("{}", self.trace_item_stack(context));
15553        let comments = pop_item!(self, comments, Comments, context);
15554        let exponent_term = pop_item!(self, exponent_term, ExponentTerm, context);
15555        let exponent_token_built = ExponentToken {
15556            exponent_term: (&exponent_term)
15557                .try_into()
15558                .map_err(parol_runtime::ParolError::UserError)?,
15559            comments: Box::new(comments),
15560        };
15561        // Calling user action here
15562        self.user_grammar.exponent_token(&exponent_token_built)?;
15563        self.push(ASTType::ExponentToken(exponent_token_built), context);
15564        Ok(())
15565    }
15566
15567    /// Semantic action for production 120:
15568    ///
15569    /// `FixedPointToken: FixedPointTerm : Token Comments;`
15570    ///
15571    #[parol_runtime::function_name::named]
15572    fn fixed_point_token(
15573        &mut self,
15574        _fixed_point_term: &ParseTreeType<'t>,
15575        _comments: &ParseTreeType<'t>,
15576    ) -> Result<()> {
15577        let context = function_name!();
15578        trace!("{}", self.trace_item_stack(context));
15579        let comments = pop_item!(self, comments, Comments, context);
15580        let fixed_point_term = pop_item!(self, fixed_point_term, FixedPointTerm, context);
15581        let fixed_point_token_built = FixedPointToken {
15582            fixed_point_term: (&fixed_point_term)
15583                .try_into()
15584                .map_err(parol_runtime::ParolError::UserError)?,
15585            comments: Box::new(comments),
15586        };
15587        // Calling user action here
15588        self.user_grammar
15589            .fixed_point_token(&fixed_point_token_built)?;
15590        self.push(ASTType::FixedPointToken(fixed_point_token_built), context);
15591        Ok(())
15592    }
15593
15594    /// Semantic action for production 121:
15595    ///
15596    /// `BasedToken: BasedTerm : Token Comments;`
15597    ///
15598    #[parol_runtime::function_name::named]
15599    fn based_token(
15600        &mut self,
15601        _based_term: &ParseTreeType<'t>,
15602        _comments: &ParseTreeType<'t>,
15603    ) -> Result<()> {
15604        let context = function_name!();
15605        trace!("{}", self.trace_item_stack(context));
15606        let comments = pop_item!(self, comments, Comments, context);
15607        let based_term = pop_item!(self, based_term, BasedTerm, context);
15608        let based_token_built = BasedToken {
15609            based_term: (&based_term)
15610                .try_into()
15611                .map_err(parol_runtime::ParolError::UserError)?,
15612            comments: Box::new(comments),
15613        };
15614        // Calling user action here
15615        self.user_grammar.based_token(&based_token_built)?;
15616        self.push(ASTType::BasedToken(based_token_built), context);
15617        Ok(())
15618    }
15619
15620    /// Semantic action for production 122:
15621    ///
15622    /// `BaseLessToken: BaseLessTerm : Token Comments;`
15623    ///
15624    #[parol_runtime::function_name::named]
15625    fn base_less_token(
15626        &mut self,
15627        _base_less_term: &ParseTreeType<'t>,
15628        _comments: &ParseTreeType<'t>,
15629    ) -> Result<()> {
15630        let context = function_name!();
15631        trace!("{}", self.trace_item_stack(context));
15632        let comments = pop_item!(self, comments, Comments, context);
15633        let base_less_term = pop_item!(self, base_less_term, BaseLessTerm, context);
15634        let base_less_token_built = BaseLessToken {
15635            base_less_term: (&base_less_term)
15636                .try_into()
15637                .map_err(parol_runtime::ParolError::UserError)?,
15638            comments: Box::new(comments),
15639        };
15640        // Calling user action here
15641        self.user_grammar.base_less_token(&base_less_token_built)?;
15642        self.push(ASTType::BaseLessToken(base_less_token_built), context);
15643        Ok(())
15644    }
15645
15646    /// Semantic action for production 123:
15647    ///
15648    /// `AllBitToken: AllBitTerm : Token Comments;`
15649    ///
15650    #[parol_runtime::function_name::named]
15651    fn all_bit_token(
15652        &mut self,
15653        _all_bit_term: &ParseTreeType<'t>,
15654        _comments: &ParseTreeType<'t>,
15655    ) -> Result<()> {
15656        let context = function_name!();
15657        trace!("{}", self.trace_item_stack(context));
15658        let comments = pop_item!(self, comments, Comments, context);
15659        let all_bit_term = pop_item!(self, all_bit_term, AllBitTerm, context);
15660        let all_bit_token_built = AllBitToken {
15661            all_bit_term: (&all_bit_term)
15662                .try_into()
15663                .map_err(parol_runtime::ParolError::UserError)?,
15664            comments: Box::new(comments),
15665        };
15666        // Calling user action here
15667        self.user_grammar.all_bit_token(&all_bit_token_built)?;
15668        self.push(ASTType::AllBitToken(all_bit_token_built), context);
15669        Ok(())
15670    }
15671
15672    /// Semantic action for production 124:
15673    ///
15674    /// `AssignmentOperatorToken: AssignmentOperatorTerm : Token Comments;`
15675    ///
15676    #[parol_runtime::function_name::named]
15677    fn assignment_operator_token(
15678        &mut self,
15679        _assignment_operator_term: &ParseTreeType<'t>,
15680        _comments: &ParseTreeType<'t>,
15681    ) -> Result<()> {
15682        let context = function_name!();
15683        trace!("{}", self.trace_item_stack(context));
15684        let comments = pop_item!(self, comments, Comments, context);
15685        let assignment_operator_term = pop_item!(
15686            self,
15687            assignment_operator_term,
15688            AssignmentOperatorTerm,
15689            context
15690        );
15691        let assignment_operator_token_built = AssignmentOperatorToken {
15692            assignment_operator_term: (&assignment_operator_term)
15693                .try_into()
15694                .map_err(parol_runtime::ParolError::UserError)?,
15695            comments: Box::new(comments),
15696        };
15697        // Calling user action here
15698        self.user_grammar
15699            .assignment_operator_token(&assignment_operator_token_built)?;
15700        self.push(
15701            ASTType::AssignmentOperatorToken(assignment_operator_token_built),
15702            context,
15703        );
15704        Ok(())
15705    }
15706
15707    /// Semantic action for production 125:
15708    ///
15709    /// `Operator01Token: Operator01Term : Token Comments;`
15710    ///
15711    #[parol_runtime::function_name::named]
15712    fn operator01_token(
15713        &mut self,
15714        _operator01_term: &ParseTreeType<'t>,
15715        _comments: &ParseTreeType<'t>,
15716    ) -> Result<()> {
15717        let context = function_name!();
15718        trace!("{}", self.trace_item_stack(context));
15719        let comments = pop_item!(self, comments, Comments, context);
15720        let operator01_term = pop_item!(self, operator01_term, Operator01Term, context);
15721        let operator01_token_built = Operator01Token {
15722            operator01_term: (&operator01_term)
15723                .try_into()
15724                .map_err(parol_runtime::ParolError::UserError)?,
15725            comments: Box::new(comments),
15726        };
15727        // Calling user action here
15728        self.user_grammar
15729            .operator01_token(&operator01_token_built)?;
15730        self.push(ASTType::Operator01Token(operator01_token_built), context);
15731        Ok(())
15732    }
15733
15734    /// Semantic action for production 126:
15735    ///
15736    /// `Operator02Token: Operator02Term : Token Comments;`
15737    ///
15738    #[parol_runtime::function_name::named]
15739    fn operator02_token(
15740        &mut self,
15741        _operator02_term: &ParseTreeType<'t>,
15742        _comments: &ParseTreeType<'t>,
15743    ) -> Result<()> {
15744        let context = function_name!();
15745        trace!("{}", self.trace_item_stack(context));
15746        let comments = pop_item!(self, comments, Comments, context);
15747        let operator02_term = pop_item!(self, operator02_term, Operator02Term, context);
15748        let operator02_token_built = Operator02Token {
15749            operator02_term: (&operator02_term)
15750                .try_into()
15751                .map_err(parol_runtime::ParolError::UserError)?,
15752            comments: Box::new(comments),
15753        };
15754        // Calling user action here
15755        self.user_grammar
15756            .operator02_token(&operator02_token_built)?;
15757        self.push(ASTType::Operator02Token(operator02_token_built), context);
15758        Ok(())
15759    }
15760
15761    /// Semantic action for production 127:
15762    ///
15763    /// `Operator03Token: Operator03Term : Token Comments;`
15764    ///
15765    #[parol_runtime::function_name::named]
15766    fn operator03_token(
15767        &mut self,
15768        _operator03_term: &ParseTreeType<'t>,
15769        _comments: &ParseTreeType<'t>,
15770    ) -> Result<()> {
15771        let context = function_name!();
15772        trace!("{}", self.trace_item_stack(context));
15773        let comments = pop_item!(self, comments, Comments, context);
15774        let operator03_term = pop_item!(self, operator03_term, Operator03Term, context);
15775        let operator03_token_built = Operator03Token {
15776            operator03_term: (&operator03_term)
15777                .try_into()
15778                .map_err(parol_runtime::ParolError::UserError)?,
15779            comments: Box::new(comments),
15780        };
15781        // Calling user action here
15782        self.user_grammar
15783            .operator03_token(&operator03_token_built)?;
15784        self.push(ASTType::Operator03Token(operator03_token_built), context);
15785        Ok(())
15786    }
15787
15788    /// Semantic action for production 128:
15789    ///
15790    /// `Operator04Token: Operator04Term : Token Comments;`
15791    ///
15792    #[parol_runtime::function_name::named]
15793    fn operator04_token(
15794        &mut self,
15795        _operator04_term: &ParseTreeType<'t>,
15796        _comments: &ParseTreeType<'t>,
15797    ) -> Result<()> {
15798        let context = function_name!();
15799        trace!("{}", self.trace_item_stack(context));
15800        let comments = pop_item!(self, comments, Comments, context);
15801        let operator04_term = pop_item!(self, operator04_term, Operator04Term, context);
15802        let operator04_token_built = Operator04Token {
15803            operator04_term: (&operator04_term)
15804                .try_into()
15805                .map_err(parol_runtime::ParolError::UserError)?,
15806            comments: Box::new(comments),
15807        };
15808        // Calling user action here
15809        self.user_grammar
15810            .operator04_token(&operator04_token_built)?;
15811        self.push(ASTType::Operator04Token(operator04_token_built), context);
15812        Ok(())
15813    }
15814
15815    /// Semantic action for production 129:
15816    ///
15817    /// `Operator05Token: Operator05Term : Token Comments;`
15818    ///
15819    #[parol_runtime::function_name::named]
15820    fn operator05_token(
15821        &mut self,
15822        _operator05_term: &ParseTreeType<'t>,
15823        _comments: &ParseTreeType<'t>,
15824    ) -> Result<()> {
15825        let context = function_name!();
15826        trace!("{}", self.trace_item_stack(context));
15827        let comments = pop_item!(self, comments, Comments, context);
15828        let operator05_term = pop_item!(self, operator05_term, Operator05Term, context);
15829        let operator05_token_built = Operator05Token {
15830            operator05_term: (&operator05_term)
15831                .try_into()
15832                .map_err(parol_runtime::ParolError::UserError)?,
15833            comments: Box::new(comments),
15834        };
15835        // Calling user action here
15836        self.user_grammar
15837            .operator05_token(&operator05_token_built)?;
15838        self.push(ASTType::Operator05Token(operator05_token_built), context);
15839        Ok(())
15840    }
15841
15842    /// Semantic action for production 130:
15843    ///
15844    /// `Operator06Token: Operator06Term : Token Comments;`
15845    ///
15846    #[parol_runtime::function_name::named]
15847    fn operator06_token(
15848        &mut self,
15849        _operator06_term: &ParseTreeType<'t>,
15850        _comments: &ParseTreeType<'t>,
15851    ) -> Result<()> {
15852        let context = function_name!();
15853        trace!("{}", self.trace_item_stack(context));
15854        let comments = pop_item!(self, comments, Comments, context);
15855        let operator06_term = pop_item!(self, operator06_term, Operator06Term, context);
15856        let operator06_token_built = Operator06Token {
15857            operator06_term: (&operator06_term)
15858                .try_into()
15859                .map_err(parol_runtime::ParolError::UserError)?,
15860            comments: Box::new(comments),
15861        };
15862        // Calling user action here
15863        self.user_grammar
15864            .operator06_token(&operator06_token_built)?;
15865        self.push(ASTType::Operator06Token(operator06_token_built), context);
15866        Ok(())
15867    }
15868
15869    /// Semantic action for production 131:
15870    ///
15871    /// `Operator07Token: Operator07Term : Token Comments;`
15872    ///
15873    #[parol_runtime::function_name::named]
15874    fn operator07_token(
15875        &mut self,
15876        _operator07_term: &ParseTreeType<'t>,
15877        _comments: &ParseTreeType<'t>,
15878    ) -> Result<()> {
15879        let context = function_name!();
15880        trace!("{}", self.trace_item_stack(context));
15881        let comments = pop_item!(self, comments, Comments, context);
15882        let operator07_term = pop_item!(self, operator07_term, Operator07Term, context);
15883        let operator07_token_built = Operator07Token {
15884            operator07_term: (&operator07_term)
15885                .try_into()
15886                .map_err(parol_runtime::ParolError::UserError)?,
15887            comments: Box::new(comments),
15888        };
15889        // Calling user action here
15890        self.user_grammar
15891            .operator07_token(&operator07_token_built)?;
15892        self.push(ASTType::Operator07Token(operator07_token_built), context);
15893        Ok(())
15894    }
15895
15896    /// Semantic action for production 132:
15897    ///
15898    /// `Operator08Token: Operator08Term : Token Comments;`
15899    ///
15900    #[parol_runtime::function_name::named]
15901    fn operator08_token(
15902        &mut self,
15903        _operator08_term: &ParseTreeType<'t>,
15904        _comments: &ParseTreeType<'t>,
15905    ) -> Result<()> {
15906        let context = function_name!();
15907        trace!("{}", self.trace_item_stack(context));
15908        let comments = pop_item!(self, comments, Comments, context);
15909        let operator08_term = pop_item!(self, operator08_term, Operator08Term, context);
15910        let operator08_token_built = Operator08Token {
15911            operator08_term: (&operator08_term)
15912                .try_into()
15913                .map_err(parol_runtime::ParolError::UserError)?,
15914            comments: Box::new(comments),
15915        };
15916        // Calling user action here
15917        self.user_grammar
15918            .operator08_token(&operator08_token_built)?;
15919        self.push(ASTType::Operator08Token(operator08_token_built), context);
15920        Ok(())
15921    }
15922
15923    /// Semantic action for production 133:
15924    ///
15925    /// `Operator09Token: Operator09Term : Token Comments;`
15926    ///
15927    #[parol_runtime::function_name::named]
15928    fn operator09_token(
15929        &mut self,
15930        _operator09_term: &ParseTreeType<'t>,
15931        _comments: &ParseTreeType<'t>,
15932    ) -> Result<()> {
15933        let context = function_name!();
15934        trace!("{}", self.trace_item_stack(context));
15935        let comments = pop_item!(self, comments, Comments, context);
15936        let operator09_term = pop_item!(self, operator09_term, Operator09Term, context);
15937        let operator09_token_built = Operator09Token {
15938            operator09_term: (&operator09_term)
15939                .try_into()
15940                .map_err(parol_runtime::ParolError::UserError)?,
15941            comments: Box::new(comments),
15942        };
15943        // Calling user action here
15944        self.user_grammar
15945            .operator09_token(&operator09_token_built)?;
15946        self.push(ASTType::Operator09Token(operator09_token_built), context);
15947        Ok(())
15948    }
15949
15950    /// Semantic action for production 134:
15951    ///
15952    /// `Operator10Token: Operator10Term : Token Comments;`
15953    ///
15954    #[parol_runtime::function_name::named]
15955    fn operator10_token(
15956        &mut self,
15957        _operator10_term: &ParseTreeType<'t>,
15958        _comments: &ParseTreeType<'t>,
15959    ) -> Result<()> {
15960        let context = function_name!();
15961        trace!("{}", self.trace_item_stack(context));
15962        let comments = pop_item!(self, comments, Comments, context);
15963        let operator10_term = pop_item!(self, operator10_term, Operator10Term, context);
15964        let operator10_token_built = Operator10Token {
15965            operator10_term: (&operator10_term)
15966                .try_into()
15967                .map_err(parol_runtime::ParolError::UserError)?,
15968            comments: Box::new(comments),
15969        };
15970        // Calling user action here
15971        self.user_grammar
15972            .operator10_token(&operator10_token_built)?;
15973        self.push(ASTType::Operator10Token(operator10_token_built), context);
15974        Ok(())
15975    }
15976
15977    /// Semantic action for production 135:
15978    ///
15979    /// `Operator11Token: Operator11Term : Token Comments;`
15980    ///
15981    #[parol_runtime::function_name::named]
15982    fn operator11_token(
15983        &mut self,
15984        _operator11_term: &ParseTreeType<'t>,
15985        _comments: &ParseTreeType<'t>,
15986    ) -> Result<()> {
15987        let context = function_name!();
15988        trace!("{}", self.trace_item_stack(context));
15989        let comments = pop_item!(self, comments, Comments, context);
15990        let operator11_term = pop_item!(self, operator11_term, Operator11Term, context);
15991        let operator11_token_built = Operator11Token {
15992            operator11_term: (&operator11_term)
15993                .try_into()
15994                .map_err(parol_runtime::ParolError::UserError)?,
15995            comments: Box::new(comments),
15996        };
15997        // Calling user action here
15998        self.user_grammar
15999            .operator11_token(&operator11_token_built)?;
16000        self.push(ASTType::Operator11Token(operator11_token_built), context);
16001        Ok(())
16002    }
16003
16004    /// Semantic action for production 136:
16005    ///
16006    /// `UnaryOperatorToken: UnaryOperatorTerm : Token Comments;`
16007    ///
16008    #[parol_runtime::function_name::named]
16009    fn unary_operator_token(
16010        &mut self,
16011        _unary_operator_term: &ParseTreeType<'t>,
16012        _comments: &ParseTreeType<'t>,
16013    ) -> Result<()> {
16014        let context = function_name!();
16015        trace!("{}", self.trace_item_stack(context));
16016        let comments = pop_item!(self, comments, Comments, context);
16017        let unary_operator_term = pop_item!(self, unary_operator_term, UnaryOperatorTerm, context);
16018        let unary_operator_token_built = UnaryOperatorToken {
16019            unary_operator_term: (&unary_operator_term)
16020                .try_into()
16021                .map_err(parol_runtime::ParolError::UserError)?,
16022            comments: Box::new(comments),
16023        };
16024        // Calling user action here
16025        self.user_grammar
16026            .unary_operator_token(&unary_operator_token_built)?;
16027        self.push(
16028            ASTType::UnaryOperatorToken(unary_operator_token_built),
16029            context,
16030        );
16031        Ok(())
16032    }
16033
16034    /// Semantic action for production 137:
16035    ///
16036    /// `BackQuoteToken: BackQuoteTerm : Token Comments;`
16037    ///
16038    #[parol_runtime::function_name::named]
16039    fn back_quote_token(
16040        &mut self,
16041        _back_quote_term: &ParseTreeType<'t>,
16042        _comments: &ParseTreeType<'t>,
16043    ) -> Result<()> {
16044        let context = function_name!();
16045        trace!("{}", self.trace_item_stack(context));
16046        let comments = pop_item!(self, comments, Comments, context);
16047        let back_quote_term = pop_item!(self, back_quote_term, BackQuoteTerm, context);
16048        let back_quote_token_built = BackQuoteToken {
16049            back_quote_term: (&back_quote_term)
16050                .try_into()
16051                .map_err(parol_runtime::ParolError::UserError)?,
16052            comments: Box::new(comments),
16053        };
16054        // Calling user action here
16055        self.user_grammar
16056            .back_quote_token(&back_quote_token_built)?;
16057        self.push(ASTType::BackQuoteToken(back_quote_token_built), context);
16058        Ok(())
16059    }
16060
16061    /// Semantic action for production 138:
16062    ///
16063    /// `ColonToken: ColonTerm : Token Comments;`
16064    ///
16065    #[parol_runtime::function_name::named]
16066    fn colon_token(
16067        &mut self,
16068        _colon_term: &ParseTreeType<'t>,
16069        _comments: &ParseTreeType<'t>,
16070    ) -> Result<()> {
16071        let context = function_name!();
16072        trace!("{}", self.trace_item_stack(context));
16073        let comments = pop_item!(self, comments, Comments, context);
16074        let colon_term = pop_item!(self, colon_term, ColonTerm, context);
16075        let colon_token_built = ColonToken {
16076            colon_term: (&colon_term)
16077                .try_into()
16078                .map_err(parol_runtime::ParolError::UserError)?,
16079            comments: Box::new(comments),
16080        };
16081        // Calling user action here
16082        self.user_grammar.colon_token(&colon_token_built)?;
16083        self.push(ASTType::ColonToken(colon_token_built), context);
16084        Ok(())
16085    }
16086
16087    /// Semantic action for production 139:
16088    ///
16089    /// `ColonColonLAngleToken: ColonColonLAngleTerm : Token Comments;`
16090    ///
16091    #[parol_runtime::function_name::named]
16092    fn colon_colon_l_angle_token(
16093        &mut self,
16094        _colon_colon_l_angle_term: &ParseTreeType<'t>,
16095        _comments: &ParseTreeType<'t>,
16096    ) -> Result<()> {
16097        let context = function_name!();
16098        trace!("{}", self.trace_item_stack(context));
16099        let comments = pop_item!(self, comments, Comments, context);
16100        let colon_colon_l_angle_term = pop_item!(
16101            self,
16102            colon_colon_l_angle_term,
16103            ColonColonLAngleTerm,
16104            context
16105        );
16106        let colon_colon_l_angle_token_built = ColonColonLAngleToken {
16107            colon_colon_l_angle_term: (&colon_colon_l_angle_term)
16108                .try_into()
16109                .map_err(parol_runtime::ParolError::UserError)?,
16110            comments: Box::new(comments),
16111        };
16112        // Calling user action here
16113        self.user_grammar
16114            .colon_colon_l_angle_token(&colon_colon_l_angle_token_built)?;
16115        self.push(
16116            ASTType::ColonColonLAngleToken(colon_colon_l_angle_token_built),
16117            context,
16118        );
16119        Ok(())
16120    }
16121
16122    /// Semantic action for production 140:
16123    ///
16124    /// `ColonColonToken: ColonColonTerm : Token Comments;`
16125    ///
16126    #[parol_runtime::function_name::named]
16127    fn colon_colon_token(
16128        &mut self,
16129        _colon_colon_term: &ParseTreeType<'t>,
16130        _comments: &ParseTreeType<'t>,
16131    ) -> Result<()> {
16132        let context = function_name!();
16133        trace!("{}", self.trace_item_stack(context));
16134        let comments = pop_item!(self, comments, Comments, context);
16135        let colon_colon_term = pop_item!(self, colon_colon_term, ColonColonTerm, context);
16136        let colon_colon_token_built = ColonColonToken {
16137            colon_colon_term: (&colon_colon_term)
16138                .try_into()
16139                .map_err(parol_runtime::ParolError::UserError)?,
16140            comments: Box::new(comments),
16141        };
16142        // Calling user action here
16143        self.user_grammar
16144            .colon_colon_token(&colon_colon_token_built)?;
16145        self.push(ASTType::ColonColonToken(colon_colon_token_built), context);
16146        Ok(())
16147    }
16148
16149    /// Semantic action for production 141:
16150    ///
16151    /// `CommaToken: CommaTerm : Token Comments;`
16152    ///
16153    #[parol_runtime::function_name::named]
16154    fn comma_token(
16155        &mut self,
16156        _comma_term: &ParseTreeType<'t>,
16157        _comments: &ParseTreeType<'t>,
16158    ) -> Result<()> {
16159        let context = function_name!();
16160        trace!("{}", self.trace_item_stack(context));
16161        let comments = pop_item!(self, comments, Comments, context);
16162        let comma_term = pop_item!(self, comma_term, CommaTerm, context);
16163        let comma_token_built = CommaToken {
16164            comma_term: (&comma_term)
16165                .try_into()
16166                .map_err(parol_runtime::ParolError::UserError)?,
16167            comments: Box::new(comments),
16168        };
16169        // Calling user action here
16170        self.user_grammar.comma_token(&comma_token_built)?;
16171        self.push(ASTType::CommaToken(comma_token_built), context);
16172        Ok(())
16173    }
16174
16175    /// Semantic action for production 142:
16176    ///
16177    /// `DotDotToken: DotDotTerm : Token Comments;`
16178    ///
16179    #[parol_runtime::function_name::named]
16180    fn dot_dot_token(
16181        &mut self,
16182        _dot_dot_term: &ParseTreeType<'t>,
16183        _comments: &ParseTreeType<'t>,
16184    ) -> Result<()> {
16185        let context = function_name!();
16186        trace!("{}", self.trace_item_stack(context));
16187        let comments = pop_item!(self, comments, Comments, context);
16188        let dot_dot_term = pop_item!(self, dot_dot_term, DotDotTerm, context);
16189        let dot_dot_token_built = DotDotToken {
16190            dot_dot_term: (&dot_dot_term)
16191                .try_into()
16192                .map_err(parol_runtime::ParolError::UserError)?,
16193            comments: Box::new(comments),
16194        };
16195        // Calling user action here
16196        self.user_grammar.dot_dot_token(&dot_dot_token_built)?;
16197        self.push(ASTType::DotDotToken(dot_dot_token_built), context);
16198        Ok(())
16199    }
16200
16201    /// Semantic action for production 143:
16202    ///
16203    /// `DotDotEquToken: DotDotEquTerm : Token Comments;`
16204    ///
16205    #[parol_runtime::function_name::named]
16206    fn dot_dot_equ_token(
16207        &mut self,
16208        _dot_dot_equ_term: &ParseTreeType<'t>,
16209        _comments: &ParseTreeType<'t>,
16210    ) -> Result<()> {
16211        let context = function_name!();
16212        trace!("{}", self.trace_item_stack(context));
16213        let comments = pop_item!(self, comments, Comments, context);
16214        let dot_dot_equ_term = pop_item!(self, dot_dot_equ_term, DotDotEquTerm, context);
16215        let dot_dot_equ_token_built = DotDotEquToken {
16216            dot_dot_equ_term: (&dot_dot_equ_term)
16217                .try_into()
16218                .map_err(parol_runtime::ParolError::UserError)?,
16219            comments: Box::new(comments),
16220        };
16221        // Calling user action here
16222        self.user_grammar
16223            .dot_dot_equ_token(&dot_dot_equ_token_built)?;
16224        self.push(ASTType::DotDotEquToken(dot_dot_equ_token_built), context);
16225        Ok(())
16226    }
16227
16228    /// Semantic action for production 144:
16229    ///
16230    /// `DotToken: DotTerm : Token Comments;`
16231    ///
16232    #[parol_runtime::function_name::named]
16233    fn dot_token(
16234        &mut self,
16235        _dot_term: &ParseTreeType<'t>,
16236        _comments: &ParseTreeType<'t>,
16237    ) -> Result<()> {
16238        let context = function_name!();
16239        trace!("{}", self.trace_item_stack(context));
16240        let comments = pop_item!(self, comments, Comments, context);
16241        let dot_term = pop_item!(self, dot_term, DotTerm, context);
16242        let dot_token_built = DotToken {
16243            dot_term: (&dot_term)
16244                .try_into()
16245                .map_err(parol_runtime::ParolError::UserError)?,
16246            comments: Box::new(comments),
16247        };
16248        // Calling user action here
16249        self.user_grammar.dot_token(&dot_token_built)?;
16250        self.push(ASTType::DotToken(dot_token_built), context);
16251        Ok(())
16252    }
16253
16254    /// Semantic action for production 145:
16255    ///
16256    /// `EquToken: EquTerm : Token Comments;`
16257    ///
16258    #[parol_runtime::function_name::named]
16259    fn equ_token(
16260        &mut self,
16261        _equ_term: &ParseTreeType<'t>,
16262        _comments: &ParseTreeType<'t>,
16263    ) -> Result<()> {
16264        let context = function_name!();
16265        trace!("{}", self.trace_item_stack(context));
16266        let comments = pop_item!(self, comments, Comments, context);
16267        let equ_term = pop_item!(self, equ_term, EquTerm, context);
16268        let equ_token_built = EquToken {
16269            equ_term: (&equ_term)
16270                .try_into()
16271                .map_err(parol_runtime::ParolError::UserError)?,
16272            comments: Box::new(comments),
16273        };
16274        // Calling user action here
16275        self.user_grammar.equ_token(&equ_token_built)?;
16276        self.push(ASTType::EquToken(equ_token_built), context);
16277        Ok(())
16278    }
16279
16280    /// Semantic action for production 146:
16281    ///
16282    /// `HashToken: HashTerm : Token Comments;`
16283    ///
16284    #[parol_runtime::function_name::named]
16285    fn hash_token(
16286        &mut self,
16287        _hash_term: &ParseTreeType<'t>,
16288        _comments: &ParseTreeType<'t>,
16289    ) -> Result<()> {
16290        let context = function_name!();
16291        trace!("{}", self.trace_item_stack(context));
16292        let comments = pop_item!(self, comments, Comments, context);
16293        let hash_term = pop_item!(self, hash_term, HashTerm, context);
16294        let hash_token_built = HashToken {
16295            hash_term: (&hash_term)
16296                .try_into()
16297                .map_err(parol_runtime::ParolError::UserError)?,
16298            comments: Box::new(comments),
16299        };
16300        // Calling user action here
16301        self.user_grammar.hash_token(&hash_token_built)?;
16302        self.push(ASTType::HashToken(hash_token_built), context);
16303        Ok(())
16304    }
16305
16306    /// Semantic action for production 147:
16307    ///
16308    /// `QuoteLBraceToken: QuoteLBraceTerm : Token Comments;`
16309    ///
16310    #[parol_runtime::function_name::named]
16311    fn quote_l_brace_token(
16312        &mut self,
16313        _quote_l_brace_term: &ParseTreeType<'t>,
16314        _comments: &ParseTreeType<'t>,
16315    ) -> Result<()> {
16316        let context = function_name!();
16317        trace!("{}", self.trace_item_stack(context));
16318        let comments = pop_item!(self, comments, Comments, context);
16319        let quote_l_brace_term = pop_item!(self, quote_l_brace_term, QuoteLBraceTerm, context);
16320        let quote_l_brace_token_built = QuoteLBraceToken {
16321            quote_l_brace_term: (&quote_l_brace_term)
16322                .try_into()
16323                .map_err(parol_runtime::ParolError::UserError)?,
16324            comments: Box::new(comments),
16325        };
16326        // Calling user action here
16327        self.user_grammar
16328            .quote_l_brace_token(&quote_l_brace_token_built)?;
16329        self.push(
16330            ASTType::QuoteLBraceToken(quote_l_brace_token_built),
16331            context,
16332        );
16333        Ok(())
16334    }
16335
16336    /// Semantic action for production 148:
16337    ///
16338    /// `LAngleToken: LAngleTerm : Token Comments;`
16339    ///
16340    #[parol_runtime::function_name::named]
16341    fn l_angle_token(
16342        &mut self,
16343        _l_angle_term: &ParseTreeType<'t>,
16344        _comments: &ParseTreeType<'t>,
16345    ) -> Result<()> {
16346        let context = function_name!();
16347        trace!("{}", self.trace_item_stack(context));
16348        let comments = pop_item!(self, comments, Comments, context);
16349        let l_angle_term = pop_item!(self, l_angle_term, LAngleTerm, context);
16350        let l_angle_token_built = LAngleToken {
16351            l_angle_term: (&l_angle_term)
16352                .try_into()
16353                .map_err(parol_runtime::ParolError::UserError)?,
16354            comments: Box::new(comments),
16355        };
16356        // Calling user action here
16357        self.user_grammar.l_angle_token(&l_angle_token_built)?;
16358        self.push(ASTType::LAngleToken(l_angle_token_built), context);
16359        Ok(())
16360    }
16361
16362    /// Semantic action for production 149:
16363    ///
16364    /// `LBraceToken: LBraceTerm : Token Comments;`
16365    ///
16366    #[parol_runtime::function_name::named]
16367    fn l_brace_token(
16368        &mut self,
16369        _l_brace_term: &ParseTreeType<'t>,
16370        _comments: &ParseTreeType<'t>,
16371    ) -> Result<()> {
16372        let context = function_name!();
16373        trace!("{}", self.trace_item_stack(context));
16374        let comments = pop_item!(self, comments, Comments, context);
16375        let l_brace_term = pop_item!(self, l_brace_term, LBraceTerm, context);
16376        let l_brace_token_built = LBraceToken {
16377            l_brace_term: (&l_brace_term)
16378                .try_into()
16379                .map_err(parol_runtime::ParolError::UserError)?,
16380            comments: Box::new(comments),
16381        };
16382        // Calling user action here
16383        self.user_grammar.l_brace_token(&l_brace_token_built)?;
16384        self.push(ASTType::LBraceToken(l_brace_token_built), context);
16385        Ok(())
16386    }
16387
16388    /// Semantic action for production 150:
16389    ///
16390    /// `LBracketToken: LBracketTerm : Token Comments;`
16391    ///
16392    #[parol_runtime::function_name::named]
16393    fn l_bracket_token(
16394        &mut self,
16395        _l_bracket_term: &ParseTreeType<'t>,
16396        _comments: &ParseTreeType<'t>,
16397    ) -> Result<()> {
16398        let context = function_name!();
16399        trace!("{}", self.trace_item_stack(context));
16400        let comments = pop_item!(self, comments, Comments, context);
16401        let l_bracket_term = pop_item!(self, l_bracket_term, LBracketTerm, context);
16402        let l_bracket_token_built = LBracketToken {
16403            l_bracket_term: (&l_bracket_term)
16404                .try_into()
16405                .map_err(parol_runtime::ParolError::UserError)?,
16406            comments: Box::new(comments),
16407        };
16408        // Calling user action here
16409        self.user_grammar.l_bracket_token(&l_bracket_token_built)?;
16410        self.push(ASTType::LBracketToken(l_bracket_token_built), context);
16411        Ok(())
16412    }
16413
16414    /// Semantic action for production 151:
16415    ///
16416    /// `LParenToken: LParenTerm : Token Comments;`
16417    ///
16418    #[parol_runtime::function_name::named]
16419    fn l_paren_token(
16420        &mut self,
16421        _l_paren_term: &ParseTreeType<'t>,
16422        _comments: &ParseTreeType<'t>,
16423    ) -> Result<()> {
16424        let context = function_name!();
16425        trace!("{}", self.trace_item_stack(context));
16426        let comments = pop_item!(self, comments, Comments, context);
16427        let l_paren_term = pop_item!(self, l_paren_term, LParenTerm, context);
16428        let l_paren_token_built = LParenToken {
16429            l_paren_term: (&l_paren_term)
16430                .try_into()
16431                .map_err(parol_runtime::ParolError::UserError)?,
16432            comments: Box::new(comments),
16433        };
16434        // Calling user action here
16435        self.user_grammar.l_paren_token(&l_paren_token_built)?;
16436        self.push(ASTType::LParenToken(l_paren_token_built), context);
16437        Ok(())
16438    }
16439
16440    /// Semantic action for production 152:
16441    ///
16442    /// `MinusColonToken: MinusColonTerm : Token Comments;`
16443    ///
16444    #[parol_runtime::function_name::named]
16445    fn minus_colon_token(
16446        &mut self,
16447        _minus_colon_term: &ParseTreeType<'t>,
16448        _comments: &ParseTreeType<'t>,
16449    ) -> Result<()> {
16450        let context = function_name!();
16451        trace!("{}", self.trace_item_stack(context));
16452        let comments = pop_item!(self, comments, Comments, context);
16453        let minus_colon_term = pop_item!(self, minus_colon_term, MinusColonTerm, context);
16454        let minus_colon_token_built = MinusColonToken {
16455            minus_colon_term: (&minus_colon_term)
16456                .try_into()
16457                .map_err(parol_runtime::ParolError::UserError)?,
16458            comments: Box::new(comments),
16459        };
16460        // Calling user action here
16461        self.user_grammar
16462            .minus_colon_token(&minus_colon_token_built)?;
16463        self.push(ASTType::MinusColonToken(minus_colon_token_built), context);
16464        Ok(())
16465    }
16466
16467    /// Semantic action for production 153:
16468    ///
16469    /// `MinusGTToken: MinusGTTerm : Token Comments;`
16470    ///
16471    #[parol_runtime::function_name::named]
16472    fn minus_g_t_token(
16473        &mut self,
16474        _minus_g_t_term: &ParseTreeType<'t>,
16475        _comments: &ParseTreeType<'t>,
16476    ) -> Result<()> {
16477        let context = function_name!();
16478        trace!("{}", self.trace_item_stack(context));
16479        let comments = pop_item!(self, comments, Comments, context);
16480        let minus_g_t_term = pop_item!(self, minus_g_t_term, MinusGTTerm, context);
16481        let minus_g_t_token_built = MinusGTToken {
16482            minus_g_t_term: (&minus_g_t_term)
16483                .try_into()
16484                .map_err(parol_runtime::ParolError::UserError)?,
16485            comments: Box::new(comments),
16486        };
16487        // Calling user action here
16488        self.user_grammar.minus_g_t_token(&minus_g_t_token_built)?;
16489        self.push(ASTType::MinusGTToken(minus_g_t_token_built), context);
16490        Ok(())
16491    }
16492
16493    /// Semantic action for production 154:
16494    ///
16495    /// `PlusColonToken: PlusColonTerm : Token Comments;`
16496    ///
16497    #[parol_runtime::function_name::named]
16498    fn plus_colon_token(
16499        &mut self,
16500        _plus_colon_term: &ParseTreeType<'t>,
16501        _comments: &ParseTreeType<'t>,
16502    ) -> Result<()> {
16503        let context = function_name!();
16504        trace!("{}", self.trace_item_stack(context));
16505        let comments = pop_item!(self, comments, Comments, context);
16506        let plus_colon_term = pop_item!(self, plus_colon_term, PlusColonTerm, context);
16507        let plus_colon_token_built = PlusColonToken {
16508            plus_colon_term: (&plus_colon_term)
16509                .try_into()
16510                .map_err(parol_runtime::ParolError::UserError)?,
16511            comments: Box::new(comments),
16512        };
16513        // Calling user action here
16514        self.user_grammar
16515            .plus_colon_token(&plus_colon_token_built)?;
16516        self.push(ASTType::PlusColonToken(plus_colon_token_built), context);
16517        Ok(())
16518    }
16519
16520    /// Semantic action for production 155:
16521    ///
16522    /// `RAngleToken: RAngleTerm : Token Comments;`
16523    ///
16524    #[parol_runtime::function_name::named]
16525    fn r_angle_token(
16526        &mut self,
16527        _r_angle_term: &ParseTreeType<'t>,
16528        _comments: &ParseTreeType<'t>,
16529    ) -> Result<()> {
16530        let context = function_name!();
16531        trace!("{}", self.trace_item_stack(context));
16532        let comments = pop_item!(self, comments, Comments, context);
16533        let r_angle_term = pop_item!(self, r_angle_term, RAngleTerm, context);
16534        let r_angle_token_built = RAngleToken {
16535            r_angle_term: (&r_angle_term)
16536                .try_into()
16537                .map_err(parol_runtime::ParolError::UserError)?,
16538            comments: Box::new(comments),
16539        };
16540        // Calling user action here
16541        self.user_grammar.r_angle_token(&r_angle_token_built)?;
16542        self.push(ASTType::RAngleToken(r_angle_token_built), context);
16543        Ok(())
16544    }
16545
16546    /// Semantic action for production 156:
16547    ///
16548    /// `RBraceToken: RBraceTerm : Token Comments;`
16549    ///
16550    #[parol_runtime::function_name::named]
16551    fn r_brace_token(
16552        &mut self,
16553        _r_brace_term: &ParseTreeType<'t>,
16554        _comments: &ParseTreeType<'t>,
16555    ) -> Result<()> {
16556        let context = function_name!();
16557        trace!("{}", self.trace_item_stack(context));
16558        let comments = pop_item!(self, comments, Comments, context);
16559        let r_brace_term = pop_item!(self, r_brace_term, RBraceTerm, context);
16560        let r_brace_token_built = RBraceToken {
16561            r_brace_term: (&r_brace_term)
16562                .try_into()
16563                .map_err(parol_runtime::ParolError::UserError)?,
16564            comments: Box::new(comments),
16565        };
16566        // Calling user action here
16567        self.user_grammar.r_brace_token(&r_brace_token_built)?;
16568        self.push(ASTType::RBraceToken(r_brace_token_built), context);
16569        Ok(())
16570    }
16571
16572    /// Semantic action for production 157:
16573    ///
16574    /// `RBracketToken: RBracketTerm : Token Comments;`
16575    ///
16576    #[parol_runtime::function_name::named]
16577    fn r_bracket_token(
16578        &mut self,
16579        _r_bracket_term: &ParseTreeType<'t>,
16580        _comments: &ParseTreeType<'t>,
16581    ) -> Result<()> {
16582        let context = function_name!();
16583        trace!("{}", self.trace_item_stack(context));
16584        let comments = pop_item!(self, comments, Comments, context);
16585        let r_bracket_term = pop_item!(self, r_bracket_term, RBracketTerm, context);
16586        let r_bracket_token_built = RBracketToken {
16587            r_bracket_term: (&r_bracket_term)
16588                .try_into()
16589                .map_err(parol_runtime::ParolError::UserError)?,
16590            comments: Box::new(comments),
16591        };
16592        // Calling user action here
16593        self.user_grammar.r_bracket_token(&r_bracket_token_built)?;
16594        self.push(ASTType::RBracketToken(r_bracket_token_built), context);
16595        Ok(())
16596    }
16597
16598    /// Semantic action for production 158:
16599    ///
16600    /// `RParenToken: RParenTerm : Token Comments;`
16601    ///
16602    #[parol_runtime::function_name::named]
16603    fn r_paren_token(
16604        &mut self,
16605        _r_paren_term: &ParseTreeType<'t>,
16606        _comments: &ParseTreeType<'t>,
16607    ) -> Result<()> {
16608        let context = function_name!();
16609        trace!("{}", self.trace_item_stack(context));
16610        let comments = pop_item!(self, comments, Comments, context);
16611        let r_paren_term = pop_item!(self, r_paren_term, RParenTerm, context);
16612        let r_paren_token_built = RParenToken {
16613            r_paren_term: (&r_paren_term)
16614                .try_into()
16615                .map_err(parol_runtime::ParolError::UserError)?,
16616            comments: Box::new(comments),
16617        };
16618        // Calling user action here
16619        self.user_grammar.r_paren_token(&r_paren_token_built)?;
16620        self.push(ASTType::RParenToken(r_paren_token_built), context);
16621        Ok(())
16622    }
16623
16624    /// Semantic action for production 159:
16625    ///
16626    /// `SemicolonToken: SemicolonTerm : Token Comments;`
16627    ///
16628    #[parol_runtime::function_name::named]
16629    fn semicolon_token(
16630        &mut self,
16631        _semicolon_term: &ParseTreeType<'t>,
16632        _comments: &ParseTreeType<'t>,
16633    ) -> Result<()> {
16634        let context = function_name!();
16635        trace!("{}", self.trace_item_stack(context));
16636        let comments = pop_item!(self, comments, Comments, context);
16637        let semicolon_term = pop_item!(self, semicolon_term, SemicolonTerm, context);
16638        let semicolon_token_built = SemicolonToken {
16639            semicolon_term: (&semicolon_term)
16640                .try_into()
16641                .map_err(parol_runtime::ParolError::UserError)?,
16642            comments: Box::new(comments),
16643        };
16644        // Calling user action here
16645        self.user_grammar.semicolon_token(&semicolon_token_built)?;
16646        self.push(ASTType::SemicolonToken(semicolon_token_built), context);
16647        Ok(())
16648    }
16649
16650    /// Semantic action for production 160:
16651    ///
16652    /// `StarToken: StarTerm : Token Comments;`
16653    ///
16654    #[parol_runtime::function_name::named]
16655    fn star_token(
16656        &mut self,
16657        _star_term: &ParseTreeType<'t>,
16658        _comments: &ParseTreeType<'t>,
16659    ) -> Result<()> {
16660        let context = function_name!();
16661        trace!("{}", self.trace_item_stack(context));
16662        let comments = pop_item!(self, comments, Comments, context);
16663        let star_term = pop_item!(self, star_term, StarTerm, context);
16664        let star_token_built = StarToken {
16665            star_term: (&star_term)
16666                .try_into()
16667                .map_err(parol_runtime::ParolError::UserError)?,
16668            comments: Box::new(comments),
16669        };
16670        // Calling user action here
16671        self.user_grammar.star_token(&star_token_built)?;
16672        self.push(ASTType::StarToken(star_token_built), context);
16673        Ok(())
16674    }
16675
16676    /// Semantic action for production 161:
16677    ///
16678    /// `AlwaysCombToken: AlwaysCombTerm : Token Comments;`
16679    ///
16680    #[parol_runtime::function_name::named]
16681    fn always_comb_token(
16682        &mut self,
16683        _always_comb_term: &ParseTreeType<'t>,
16684        _comments: &ParseTreeType<'t>,
16685    ) -> Result<()> {
16686        let context = function_name!();
16687        trace!("{}", self.trace_item_stack(context));
16688        let comments = pop_item!(self, comments, Comments, context);
16689        let always_comb_term = pop_item!(self, always_comb_term, AlwaysCombTerm, context);
16690        let always_comb_token_built = AlwaysCombToken {
16691            always_comb_term: (&always_comb_term)
16692                .try_into()
16693                .map_err(parol_runtime::ParolError::UserError)?,
16694            comments: Box::new(comments),
16695        };
16696        // Calling user action here
16697        self.user_grammar
16698            .always_comb_token(&always_comb_token_built)?;
16699        self.push(ASTType::AlwaysCombToken(always_comb_token_built), context);
16700        Ok(())
16701    }
16702
16703    /// Semantic action for production 162:
16704    ///
16705    /// `AlwaysFfToken: AlwaysFfTerm : Token Comments;`
16706    ///
16707    #[parol_runtime::function_name::named]
16708    fn always_ff_token(
16709        &mut self,
16710        _always_ff_term: &ParseTreeType<'t>,
16711        _comments: &ParseTreeType<'t>,
16712    ) -> Result<()> {
16713        let context = function_name!();
16714        trace!("{}", self.trace_item_stack(context));
16715        let comments = pop_item!(self, comments, Comments, context);
16716        let always_ff_term = pop_item!(self, always_ff_term, AlwaysFfTerm, context);
16717        let always_ff_token_built = AlwaysFfToken {
16718            always_ff_term: (&always_ff_term)
16719                .try_into()
16720                .map_err(parol_runtime::ParolError::UserError)?,
16721            comments: Box::new(comments),
16722        };
16723        // Calling user action here
16724        self.user_grammar.always_ff_token(&always_ff_token_built)?;
16725        self.push(ASTType::AlwaysFfToken(always_ff_token_built), context);
16726        Ok(())
16727    }
16728
16729    /// Semantic action for production 163:
16730    ///
16731    /// `AsToken: AsTerm : Token Comments;`
16732    ///
16733    #[parol_runtime::function_name::named]
16734    fn as_token(
16735        &mut self,
16736        _as_term: &ParseTreeType<'t>,
16737        _comments: &ParseTreeType<'t>,
16738    ) -> Result<()> {
16739        let context = function_name!();
16740        trace!("{}", self.trace_item_stack(context));
16741        let comments = pop_item!(self, comments, Comments, context);
16742        let as_term = pop_item!(self, as_term, AsTerm, context);
16743        let as_token_built = AsToken {
16744            as_term: (&as_term)
16745                .try_into()
16746                .map_err(parol_runtime::ParolError::UserError)?,
16747            comments: Box::new(comments),
16748        };
16749        // Calling user action here
16750        self.user_grammar.as_token(&as_token_built)?;
16751        self.push(ASTType::AsToken(as_token_built), context);
16752        Ok(())
16753    }
16754
16755    /// Semantic action for production 164:
16756    ///
16757    /// `AssignToken: AssignTerm : Token Comments;`
16758    ///
16759    #[parol_runtime::function_name::named]
16760    fn assign_token(
16761        &mut self,
16762        _assign_term: &ParseTreeType<'t>,
16763        _comments: &ParseTreeType<'t>,
16764    ) -> Result<()> {
16765        let context = function_name!();
16766        trace!("{}", self.trace_item_stack(context));
16767        let comments = pop_item!(self, comments, Comments, context);
16768        let assign_term = pop_item!(self, assign_term, AssignTerm, context);
16769        let assign_token_built = AssignToken {
16770            assign_term: (&assign_term)
16771                .try_into()
16772                .map_err(parol_runtime::ParolError::UserError)?,
16773            comments: Box::new(comments),
16774        };
16775        // Calling user action here
16776        self.user_grammar.assign_token(&assign_token_built)?;
16777        self.push(ASTType::AssignToken(assign_token_built), context);
16778        Ok(())
16779    }
16780
16781    /// Semantic action for production 165:
16782    ///
16783    /// `BitToken: BitTerm : Token Comments;`
16784    ///
16785    #[parol_runtime::function_name::named]
16786    fn bit_token(
16787        &mut self,
16788        _bit_term: &ParseTreeType<'t>,
16789        _comments: &ParseTreeType<'t>,
16790    ) -> Result<()> {
16791        let context = function_name!();
16792        trace!("{}", self.trace_item_stack(context));
16793        let comments = pop_item!(self, comments, Comments, context);
16794        let bit_term = pop_item!(self, bit_term, BitTerm, context);
16795        let bit_token_built = BitToken {
16796            bit_term: (&bit_term)
16797                .try_into()
16798                .map_err(parol_runtime::ParolError::UserError)?,
16799            comments: Box::new(comments),
16800        };
16801        // Calling user action here
16802        self.user_grammar.bit_token(&bit_token_built)?;
16803        self.push(ASTType::BitToken(bit_token_built), context);
16804        Ok(())
16805    }
16806
16807    /// Semantic action for production 166:
16808    ///
16809    /// `CaseToken: CaseTerm : Token Comments;`
16810    ///
16811    #[parol_runtime::function_name::named]
16812    fn case_token(
16813        &mut self,
16814        _case_term: &ParseTreeType<'t>,
16815        _comments: &ParseTreeType<'t>,
16816    ) -> Result<()> {
16817        let context = function_name!();
16818        trace!("{}", self.trace_item_stack(context));
16819        let comments = pop_item!(self, comments, Comments, context);
16820        let case_term = pop_item!(self, case_term, CaseTerm, context);
16821        let case_token_built = CaseToken {
16822            case_term: (&case_term)
16823                .try_into()
16824                .map_err(parol_runtime::ParolError::UserError)?,
16825            comments: Box::new(comments),
16826        };
16827        // Calling user action here
16828        self.user_grammar.case_token(&case_token_built)?;
16829        self.push(ASTType::CaseToken(case_token_built), context);
16830        Ok(())
16831    }
16832
16833    /// Semantic action for production 167:
16834    ///
16835    /// `ClockToken: ClockTerm : Token Comments;`
16836    ///
16837    #[parol_runtime::function_name::named]
16838    fn clock_token(
16839        &mut self,
16840        _clock_term: &ParseTreeType<'t>,
16841        _comments: &ParseTreeType<'t>,
16842    ) -> Result<()> {
16843        let context = function_name!();
16844        trace!("{}", self.trace_item_stack(context));
16845        let comments = pop_item!(self, comments, Comments, context);
16846        let clock_term = pop_item!(self, clock_term, ClockTerm, context);
16847        let clock_token_built = ClockToken {
16848            clock_term: (&clock_term)
16849                .try_into()
16850                .map_err(parol_runtime::ParolError::UserError)?,
16851            comments: Box::new(comments),
16852        };
16853        // Calling user action here
16854        self.user_grammar.clock_token(&clock_token_built)?;
16855        self.push(ASTType::ClockToken(clock_token_built), context);
16856        Ok(())
16857    }
16858
16859    /// Semantic action for production 168:
16860    ///
16861    /// `ClockPosedgeToken: ClockPosedgeTerm : Token Comments;`
16862    ///
16863    #[parol_runtime::function_name::named]
16864    fn clock_posedge_token(
16865        &mut self,
16866        _clock_posedge_term: &ParseTreeType<'t>,
16867        _comments: &ParseTreeType<'t>,
16868    ) -> Result<()> {
16869        let context = function_name!();
16870        trace!("{}", self.trace_item_stack(context));
16871        let comments = pop_item!(self, comments, Comments, context);
16872        let clock_posedge_term = pop_item!(self, clock_posedge_term, ClockPosedgeTerm, context);
16873        let clock_posedge_token_built = ClockPosedgeToken {
16874            clock_posedge_term: (&clock_posedge_term)
16875                .try_into()
16876                .map_err(parol_runtime::ParolError::UserError)?,
16877            comments: Box::new(comments),
16878        };
16879        // Calling user action here
16880        self.user_grammar
16881            .clock_posedge_token(&clock_posedge_token_built)?;
16882        self.push(
16883            ASTType::ClockPosedgeToken(clock_posedge_token_built),
16884            context,
16885        );
16886        Ok(())
16887    }
16888
16889    /// Semantic action for production 169:
16890    ///
16891    /// `ClockNegedgeToken: ClockNegedgeTerm : Token Comments;`
16892    ///
16893    #[parol_runtime::function_name::named]
16894    fn clock_negedge_token(
16895        &mut self,
16896        _clock_negedge_term: &ParseTreeType<'t>,
16897        _comments: &ParseTreeType<'t>,
16898    ) -> Result<()> {
16899        let context = function_name!();
16900        trace!("{}", self.trace_item_stack(context));
16901        let comments = pop_item!(self, comments, Comments, context);
16902        let clock_negedge_term = pop_item!(self, clock_negedge_term, ClockNegedgeTerm, context);
16903        let clock_negedge_token_built = ClockNegedgeToken {
16904            clock_negedge_term: (&clock_negedge_term)
16905                .try_into()
16906                .map_err(parol_runtime::ParolError::UserError)?,
16907            comments: Box::new(comments),
16908        };
16909        // Calling user action here
16910        self.user_grammar
16911            .clock_negedge_token(&clock_negedge_token_built)?;
16912        self.push(
16913            ASTType::ClockNegedgeToken(clock_negedge_token_built),
16914            context,
16915        );
16916        Ok(())
16917    }
16918
16919    /// Semantic action for production 170:
16920    ///
16921    /// `ConstToken: ConstTerm : Token Comments;`
16922    ///
16923    #[parol_runtime::function_name::named]
16924    fn const_token(
16925        &mut self,
16926        _const_term: &ParseTreeType<'t>,
16927        _comments: &ParseTreeType<'t>,
16928    ) -> Result<()> {
16929        let context = function_name!();
16930        trace!("{}", self.trace_item_stack(context));
16931        let comments = pop_item!(self, comments, Comments, context);
16932        let const_term = pop_item!(self, const_term, ConstTerm, context);
16933        let const_token_built = ConstToken {
16934            const_term: (&const_term)
16935                .try_into()
16936                .map_err(parol_runtime::ParolError::UserError)?,
16937            comments: Box::new(comments),
16938        };
16939        // Calling user action here
16940        self.user_grammar.const_token(&const_token_built)?;
16941        self.push(ASTType::ConstToken(const_token_built), context);
16942        Ok(())
16943    }
16944
16945    /// Semantic action for production 171:
16946    ///
16947    /// `ConverseToken: ConverseTerm : Token Comments;`
16948    ///
16949    #[parol_runtime::function_name::named]
16950    fn converse_token(
16951        &mut self,
16952        _converse_term: &ParseTreeType<'t>,
16953        _comments: &ParseTreeType<'t>,
16954    ) -> Result<()> {
16955        let context = function_name!();
16956        trace!("{}", self.trace_item_stack(context));
16957        let comments = pop_item!(self, comments, Comments, context);
16958        let converse_term = pop_item!(self, converse_term, ConverseTerm, context);
16959        let converse_token_built = ConverseToken {
16960            converse_term: (&converse_term)
16961                .try_into()
16962                .map_err(parol_runtime::ParolError::UserError)?,
16963            comments: Box::new(comments),
16964        };
16965        // Calling user action here
16966        self.user_grammar.converse_token(&converse_token_built)?;
16967        self.push(ASTType::ConverseToken(converse_token_built), context);
16968        Ok(())
16969    }
16970
16971    /// Semantic action for production 172:
16972    ///
16973    /// `DefaultToken: DefaultTerm : Token Comments;`
16974    ///
16975    #[parol_runtime::function_name::named]
16976    fn default_token(
16977        &mut self,
16978        _default_term: &ParseTreeType<'t>,
16979        _comments: &ParseTreeType<'t>,
16980    ) -> Result<()> {
16981        let context = function_name!();
16982        trace!("{}", self.trace_item_stack(context));
16983        let comments = pop_item!(self, comments, Comments, context);
16984        let default_term = pop_item!(self, default_term, DefaultTerm, context);
16985        let default_token_built = DefaultToken {
16986            default_term: (&default_term)
16987                .try_into()
16988                .map_err(parol_runtime::ParolError::UserError)?,
16989            comments: Box::new(comments),
16990        };
16991        // Calling user action here
16992        self.user_grammar.default_token(&default_token_built)?;
16993        self.push(ASTType::DefaultToken(default_token_built), context);
16994        Ok(())
16995    }
16996
16997    /// Semantic action for production 173:
16998    ///
16999    /// `ElseToken: ElseTerm : Token Comments;`
17000    ///
17001    #[parol_runtime::function_name::named]
17002    fn else_token(
17003        &mut self,
17004        _else_term: &ParseTreeType<'t>,
17005        _comments: &ParseTreeType<'t>,
17006    ) -> Result<()> {
17007        let context = function_name!();
17008        trace!("{}", self.trace_item_stack(context));
17009        let comments = pop_item!(self, comments, Comments, context);
17010        let else_term = pop_item!(self, else_term, ElseTerm, context);
17011        let else_token_built = ElseToken {
17012            else_term: (&else_term)
17013                .try_into()
17014                .map_err(parol_runtime::ParolError::UserError)?,
17015            comments: Box::new(comments),
17016        };
17017        // Calling user action here
17018        self.user_grammar.else_token(&else_token_built)?;
17019        self.push(ASTType::ElseToken(else_token_built), context);
17020        Ok(())
17021    }
17022
17023    /// Semantic action for production 174:
17024    ///
17025    /// `EmbedToken: EmbedTerm : Token Comments;`
17026    ///
17027    #[parol_runtime::function_name::named]
17028    fn embed_token(
17029        &mut self,
17030        _embed_term: &ParseTreeType<'t>,
17031        _comments: &ParseTreeType<'t>,
17032    ) -> Result<()> {
17033        let context = function_name!();
17034        trace!("{}", self.trace_item_stack(context));
17035        let comments = pop_item!(self, comments, Comments, context);
17036        let embed_term = pop_item!(self, embed_term, EmbedTerm, context);
17037        let embed_token_built = EmbedToken {
17038            embed_term: (&embed_term)
17039                .try_into()
17040                .map_err(parol_runtime::ParolError::UserError)?,
17041            comments: Box::new(comments),
17042        };
17043        // Calling user action here
17044        self.user_grammar.embed_token(&embed_token_built)?;
17045        self.push(ASTType::EmbedToken(embed_token_built), context);
17046        Ok(())
17047    }
17048
17049    /// Semantic action for production 175:
17050    ///
17051    /// `EnumToken: EnumTerm : Token Comments;`
17052    ///
17053    #[parol_runtime::function_name::named]
17054    fn enum_token(
17055        &mut self,
17056        _enum_term: &ParseTreeType<'t>,
17057        _comments: &ParseTreeType<'t>,
17058    ) -> Result<()> {
17059        let context = function_name!();
17060        trace!("{}", self.trace_item_stack(context));
17061        let comments = pop_item!(self, comments, Comments, context);
17062        let enum_term = pop_item!(self, enum_term, EnumTerm, context);
17063        let enum_token_built = EnumToken {
17064            enum_term: (&enum_term)
17065                .try_into()
17066                .map_err(parol_runtime::ParolError::UserError)?,
17067            comments: Box::new(comments),
17068        };
17069        // Calling user action here
17070        self.user_grammar.enum_token(&enum_token_built)?;
17071        self.push(ASTType::EnumToken(enum_token_built), context);
17072        Ok(())
17073    }
17074
17075    /// Semantic action for production 176:
17076    ///
17077    /// `ExportToken: ExportTerm : Token Comments;`
17078    ///
17079    #[parol_runtime::function_name::named]
17080    fn export_token(
17081        &mut self,
17082        _export_term: &ParseTreeType<'t>,
17083        _comments: &ParseTreeType<'t>,
17084    ) -> Result<()> {
17085        let context = function_name!();
17086        trace!("{}", self.trace_item_stack(context));
17087        let comments = pop_item!(self, comments, Comments, context);
17088        let export_term = pop_item!(self, export_term, ExportTerm, context);
17089        let export_token_built = ExportToken {
17090            export_term: (&export_term)
17091                .try_into()
17092                .map_err(parol_runtime::ParolError::UserError)?,
17093            comments: Box::new(comments),
17094        };
17095        // Calling user action here
17096        self.user_grammar.export_token(&export_token_built)?;
17097        self.push(ASTType::ExportToken(export_token_built), context);
17098        Ok(())
17099    }
17100
17101    /// Semantic action for production 177:
17102    ///
17103    /// `F32Token: F32Term : Token Comments;`
17104    ///
17105    #[parol_runtime::function_name::named]
17106    fn f32_token(
17107        &mut self,
17108        _f32_term: &ParseTreeType<'t>,
17109        _comments: &ParseTreeType<'t>,
17110    ) -> Result<()> {
17111        let context = function_name!();
17112        trace!("{}", self.trace_item_stack(context));
17113        let comments = pop_item!(self, comments, Comments, context);
17114        let f32_term = pop_item!(self, f32_term, F32Term, context);
17115        let f32_token_built = F32Token {
17116            f32_term: (&f32_term)
17117                .try_into()
17118                .map_err(parol_runtime::ParolError::UserError)?,
17119            comments: Box::new(comments),
17120        };
17121        // Calling user action here
17122        self.user_grammar.f32_token(&f32_token_built)?;
17123        self.push(ASTType::F32Token(f32_token_built), context);
17124        Ok(())
17125    }
17126
17127    /// Semantic action for production 178:
17128    ///
17129    /// `F64Token: F64Term : Token Comments;`
17130    ///
17131    #[parol_runtime::function_name::named]
17132    fn f64_token(
17133        &mut self,
17134        _f64_term: &ParseTreeType<'t>,
17135        _comments: &ParseTreeType<'t>,
17136    ) -> Result<()> {
17137        let context = function_name!();
17138        trace!("{}", self.trace_item_stack(context));
17139        let comments = pop_item!(self, comments, Comments, context);
17140        let f64_term = pop_item!(self, f64_term, F64Term, context);
17141        let f64_token_built = F64Token {
17142            f64_term: (&f64_term)
17143                .try_into()
17144                .map_err(parol_runtime::ParolError::UserError)?,
17145            comments: Box::new(comments),
17146        };
17147        // Calling user action here
17148        self.user_grammar.f64_token(&f64_token_built)?;
17149        self.push(ASTType::F64Token(f64_token_built), context);
17150        Ok(())
17151    }
17152
17153    /// Semantic action for production 179:
17154    ///
17155    /// `FinalToken: FinalTerm : Token Comments;`
17156    ///
17157    #[parol_runtime::function_name::named]
17158    fn final_token(
17159        &mut self,
17160        _final_term: &ParseTreeType<'t>,
17161        _comments: &ParseTreeType<'t>,
17162    ) -> Result<()> {
17163        let context = function_name!();
17164        trace!("{}", self.trace_item_stack(context));
17165        let comments = pop_item!(self, comments, Comments, context);
17166        let final_term = pop_item!(self, final_term, FinalTerm, context);
17167        let final_token_built = FinalToken {
17168            final_term: (&final_term)
17169                .try_into()
17170                .map_err(parol_runtime::ParolError::UserError)?,
17171            comments: Box::new(comments),
17172        };
17173        // Calling user action here
17174        self.user_grammar.final_token(&final_token_built)?;
17175        self.push(ASTType::FinalToken(final_token_built), context);
17176        Ok(())
17177    }
17178
17179    /// Semantic action for production 180:
17180    ///
17181    /// `ForToken: ForTerm : Token Comments;`
17182    ///
17183    #[parol_runtime::function_name::named]
17184    fn for_token(
17185        &mut self,
17186        _for_term: &ParseTreeType<'t>,
17187        _comments: &ParseTreeType<'t>,
17188    ) -> Result<()> {
17189        let context = function_name!();
17190        trace!("{}", self.trace_item_stack(context));
17191        let comments = pop_item!(self, comments, Comments, context);
17192        let for_term = pop_item!(self, for_term, ForTerm, context);
17193        let for_token_built = ForToken {
17194            for_term: (&for_term)
17195                .try_into()
17196                .map_err(parol_runtime::ParolError::UserError)?,
17197            comments: Box::new(comments),
17198        };
17199        // Calling user action here
17200        self.user_grammar.for_token(&for_token_built)?;
17201        self.push(ASTType::ForToken(for_token_built), context);
17202        Ok(())
17203    }
17204
17205    /// Semantic action for production 181:
17206    ///
17207    /// `FunctionToken: FunctionTerm : Token Comments;`
17208    ///
17209    #[parol_runtime::function_name::named]
17210    fn function_token(
17211        &mut self,
17212        _function_term: &ParseTreeType<'t>,
17213        _comments: &ParseTreeType<'t>,
17214    ) -> Result<()> {
17215        let context = function_name!();
17216        trace!("{}", self.trace_item_stack(context));
17217        let comments = pop_item!(self, comments, Comments, context);
17218        let function_term = pop_item!(self, function_term, FunctionTerm, context);
17219        let function_token_built = FunctionToken {
17220            function_term: (&function_term)
17221                .try_into()
17222                .map_err(parol_runtime::ParolError::UserError)?,
17223            comments: Box::new(comments),
17224        };
17225        // Calling user action here
17226        self.user_grammar.function_token(&function_token_built)?;
17227        self.push(ASTType::FunctionToken(function_token_built), context);
17228        Ok(())
17229    }
17230
17231    /// Semantic action for production 182:
17232    ///
17233    /// `I32Token: I32Term : Token Comments;`
17234    ///
17235    #[parol_runtime::function_name::named]
17236    fn i32_token(
17237        &mut self,
17238        _i32_term: &ParseTreeType<'t>,
17239        _comments: &ParseTreeType<'t>,
17240    ) -> Result<()> {
17241        let context = function_name!();
17242        trace!("{}", self.trace_item_stack(context));
17243        let comments = pop_item!(self, comments, Comments, context);
17244        let i32_term = pop_item!(self, i32_term, I32Term, context);
17245        let i32_token_built = I32Token {
17246            i32_term: (&i32_term)
17247                .try_into()
17248                .map_err(parol_runtime::ParolError::UserError)?,
17249            comments: Box::new(comments),
17250        };
17251        // Calling user action here
17252        self.user_grammar.i32_token(&i32_token_built)?;
17253        self.push(ASTType::I32Token(i32_token_built), context);
17254        Ok(())
17255    }
17256
17257    /// Semantic action for production 183:
17258    ///
17259    /// `I64Token: I64Term : Token Comments;`
17260    ///
17261    #[parol_runtime::function_name::named]
17262    fn i64_token(
17263        &mut self,
17264        _i64_term: &ParseTreeType<'t>,
17265        _comments: &ParseTreeType<'t>,
17266    ) -> Result<()> {
17267        let context = function_name!();
17268        trace!("{}", self.trace_item_stack(context));
17269        let comments = pop_item!(self, comments, Comments, context);
17270        let i64_term = pop_item!(self, i64_term, I64Term, context);
17271        let i64_token_built = I64Token {
17272            i64_term: (&i64_term)
17273                .try_into()
17274                .map_err(parol_runtime::ParolError::UserError)?,
17275            comments: Box::new(comments),
17276        };
17277        // Calling user action here
17278        self.user_grammar.i64_token(&i64_token_built)?;
17279        self.push(ASTType::I64Token(i64_token_built), context);
17280        Ok(())
17281    }
17282
17283    /// Semantic action for production 184:
17284    ///
17285    /// `IfResetToken: IfResetTerm : Token Comments;`
17286    ///
17287    #[parol_runtime::function_name::named]
17288    fn if_reset_token(
17289        &mut self,
17290        _if_reset_term: &ParseTreeType<'t>,
17291        _comments: &ParseTreeType<'t>,
17292    ) -> Result<()> {
17293        let context = function_name!();
17294        trace!("{}", self.trace_item_stack(context));
17295        let comments = pop_item!(self, comments, Comments, context);
17296        let if_reset_term = pop_item!(self, if_reset_term, IfResetTerm, context);
17297        let if_reset_token_built = IfResetToken {
17298            if_reset_term: (&if_reset_term)
17299                .try_into()
17300                .map_err(parol_runtime::ParolError::UserError)?,
17301            comments: Box::new(comments),
17302        };
17303        // Calling user action here
17304        self.user_grammar.if_reset_token(&if_reset_token_built)?;
17305        self.push(ASTType::IfResetToken(if_reset_token_built), context);
17306        Ok(())
17307    }
17308
17309    /// Semantic action for production 185:
17310    ///
17311    /// `IfToken: IfTerm : Token Comments;`
17312    ///
17313    #[parol_runtime::function_name::named]
17314    fn if_token(
17315        &mut self,
17316        _if_term: &ParseTreeType<'t>,
17317        _comments: &ParseTreeType<'t>,
17318    ) -> Result<()> {
17319        let context = function_name!();
17320        trace!("{}", self.trace_item_stack(context));
17321        let comments = pop_item!(self, comments, Comments, context);
17322        let if_term = pop_item!(self, if_term, IfTerm, context);
17323        let if_token_built = IfToken {
17324            if_term: (&if_term)
17325                .try_into()
17326                .map_err(parol_runtime::ParolError::UserError)?,
17327            comments: Box::new(comments),
17328        };
17329        // Calling user action here
17330        self.user_grammar.if_token(&if_token_built)?;
17331        self.push(ASTType::IfToken(if_token_built), context);
17332        Ok(())
17333    }
17334
17335    /// Semantic action for production 186:
17336    ///
17337    /// `ImportToken: ImportTerm : Token Comments;`
17338    ///
17339    #[parol_runtime::function_name::named]
17340    fn import_token(
17341        &mut self,
17342        _import_term: &ParseTreeType<'t>,
17343        _comments: &ParseTreeType<'t>,
17344    ) -> Result<()> {
17345        let context = function_name!();
17346        trace!("{}", self.trace_item_stack(context));
17347        let comments = pop_item!(self, comments, Comments, context);
17348        let import_term = pop_item!(self, import_term, ImportTerm, context);
17349        let import_token_built = ImportToken {
17350            import_term: (&import_term)
17351                .try_into()
17352                .map_err(parol_runtime::ParolError::UserError)?,
17353            comments: Box::new(comments),
17354        };
17355        // Calling user action here
17356        self.user_grammar.import_token(&import_token_built)?;
17357        self.push(ASTType::ImportToken(import_token_built), context);
17358        Ok(())
17359    }
17360
17361    /// Semantic action for production 187:
17362    ///
17363    /// `IncludeToken: IncludeTerm : Token Comments;`
17364    ///
17365    #[parol_runtime::function_name::named]
17366    fn include_token(
17367        &mut self,
17368        _include_term: &ParseTreeType<'t>,
17369        _comments: &ParseTreeType<'t>,
17370    ) -> Result<()> {
17371        let context = function_name!();
17372        trace!("{}", self.trace_item_stack(context));
17373        let comments = pop_item!(self, comments, Comments, context);
17374        let include_term = pop_item!(self, include_term, IncludeTerm, context);
17375        let include_token_built = IncludeToken {
17376            include_term: (&include_term)
17377                .try_into()
17378                .map_err(parol_runtime::ParolError::UserError)?,
17379            comments: Box::new(comments),
17380        };
17381        // Calling user action here
17382        self.user_grammar.include_token(&include_token_built)?;
17383        self.push(ASTType::IncludeToken(include_token_built), context);
17384        Ok(())
17385    }
17386
17387    /// Semantic action for production 188:
17388    ///
17389    /// `InitialToken: InitialTerm : Token Comments;`
17390    ///
17391    #[parol_runtime::function_name::named]
17392    fn initial_token(
17393        &mut self,
17394        _initial_term: &ParseTreeType<'t>,
17395        _comments: &ParseTreeType<'t>,
17396    ) -> Result<()> {
17397        let context = function_name!();
17398        trace!("{}", self.trace_item_stack(context));
17399        let comments = pop_item!(self, comments, Comments, context);
17400        let initial_term = pop_item!(self, initial_term, InitialTerm, context);
17401        let initial_token_built = InitialToken {
17402            initial_term: (&initial_term)
17403                .try_into()
17404                .map_err(parol_runtime::ParolError::UserError)?,
17405            comments: Box::new(comments),
17406        };
17407        // Calling user action here
17408        self.user_grammar.initial_token(&initial_token_built)?;
17409        self.push(ASTType::InitialToken(initial_token_built), context);
17410        Ok(())
17411    }
17412
17413    /// Semantic action for production 189:
17414    ///
17415    /// `InoutToken: InoutTerm : Token Comments;`
17416    ///
17417    #[parol_runtime::function_name::named]
17418    fn inout_token(
17419        &mut self,
17420        _inout_term: &ParseTreeType<'t>,
17421        _comments: &ParseTreeType<'t>,
17422    ) -> Result<()> {
17423        let context = function_name!();
17424        trace!("{}", self.trace_item_stack(context));
17425        let comments = pop_item!(self, comments, Comments, context);
17426        let inout_term = pop_item!(self, inout_term, InoutTerm, context);
17427        let inout_token_built = InoutToken {
17428            inout_term: (&inout_term)
17429                .try_into()
17430                .map_err(parol_runtime::ParolError::UserError)?,
17431            comments: Box::new(comments),
17432        };
17433        // Calling user action here
17434        self.user_grammar.inout_token(&inout_token_built)?;
17435        self.push(ASTType::InoutToken(inout_token_built), context);
17436        Ok(())
17437    }
17438
17439    /// Semantic action for production 190:
17440    ///
17441    /// `InputToken: InputTerm : Token Comments;`
17442    ///
17443    #[parol_runtime::function_name::named]
17444    fn input_token(
17445        &mut self,
17446        _input_term: &ParseTreeType<'t>,
17447        _comments: &ParseTreeType<'t>,
17448    ) -> Result<()> {
17449        let context = function_name!();
17450        trace!("{}", self.trace_item_stack(context));
17451        let comments = pop_item!(self, comments, Comments, context);
17452        let input_term = pop_item!(self, input_term, InputTerm, context);
17453        let input_token_built = InputToken {
17454            input_term: (&input_term)
17455                .try_into()
17456                .map_err(parol_runtime::ParolError::UserError)?,
17457            comments: Box::new(comments),
17458        };
17459        // Calling user action here
17460        self.user_grammar.input_token(&input_token_built)?;
17461        self.push(ASTType::InputToken(input_token_built), context);
17462        Ok(())
17463    }
17464
17465    /// Semantic action for production 191:
17466    ///
17467    /// `InsideToken: InsideTerm : Token Comments;`
17468    ///
17469    #[parol_runtime::function_name::named]
17470    fn inside_token(
17471        &mut self,
17472        _inside_term: &ParseTreeType<'t>,
17473        _comments: &ParseTreeType<'t>,
17474    ) -> Result<()> {
17475        let context = function_name!();
17476        trace!("{}", self.trace_item_stack(context));
17477        let comments = pop_item!(self, comments, Comments, context);
17478        let inside_term = pop_item!(self, inside_term, InsideTerm, context);
17479        let inside_token_built = InsideToken {
17480            inside_term: (&inside_term)
17481                .try_into()
17482                .map_err(parol_runtime::ParolError::UserError)?,
17483            comments: Box::new(comments),
17484        };
17485        // Calling user action here
17486        self.user_grammar.inside_token(&inside_token_built)?;
17487        self.push(ASTType::InsideToken(inside_token_built), context);
17488        Ok(())
17489    }
17490
17491    /// Semantic action for production 192:
17492    ///
17493    /// `InstToken: InstTerm : Token Comments;`
17494    ///
17495    #[parol_runtime::function_name::named]
17496    fn inst_token(
17497        &mut self,
17498        _inst_term: &ParseTreeType<'t>,
17499        _comments: &ParseTreeType<'t>,
17500    ) -> Result<()> {
17501        let context = function_name!();
17502        trace!("{}", self.trace_item_stack(context));
17503        let comments = pop_item!(self, comments, Comments, context);
17504        let inst_term = pop_item!(self, inst_term, InstTerm, context);
17505        let inst_token_built = InstToken {
17506            inst_term: (&inst_term)
17507                .try_into()
17508                .map_err(parol_runtime::ParolError::UserError)?,
17509            comments: Box::new(comments),
17510        };
17511        // Calling user action here
17512        self.user_grammar.inst_token(&inst_token_built)?;
17513        self.push(ASTType::InstToken(inst_token_built), context);
17514        Ok(())
17515    }
17516
17517    /// Semantic action for production 193:
17518    ///
17519    /// `InterfaceToken: InterfaceTerm : Token Comments;`
17520    ///
17521    #[parol_runtime::function_name::named]
17522    fn interface_token(
17523        &mut self,
17524        _interface_term: &ParseTreeType<'t>,
17525        _comments: &ParseTreeType<'t>,
17526    ) -> Result<()> {
17527        let context = function_name!();
17528        trace!("{}", self.trace_item_stack(context));
17529        let comments = pop_item!(self, comments, Comments, context);
17530        let interface_term = pop_item!(self, interface_term, InterfaceTerm, context);
17531        let interface_token_built = InterfaceToken {
17532            interface_term: (&interface_term)
17533                .try_into()
17534                .map_err(parol_runtime::ParolError::UserError)?,
17535            comments: Box::new(comments),
17536        };
17537        // Calling user action here
17538        self.user_grammar.interface_token(&interface_token_built)?;
17539        self.push(ASTType::InterfaceToken(interface_token_built), context);
17540        Ok(())
17541    }
17542
17543    /// Semantic action for production 194:
17544    ///
17545    /// `InToken: InTerm : Token Comments;`
17546    ///
17547    #[parol_runtime::function_name::named]
17548    fn in_token(
17549        &mut self,
17550        _in_term: &ParseTreeType<'t>,
17551        _comments: &ParseTreeType<'t>,
17552    ) -> Result<()> {
17553        let context = function_name!();
17554        trace!("{}", self.trace_item_stack(context));
17555        let comments = pop_item!(self, comments, Comments, context);
17556        let in_term = pop_item!(self, in_term, InTerm, context);
17557        let in_token_built = InToken {
17558            in_term: (&in_term)
17559                .try_into()
17560                .map_err(parol_runtime::ParolError::UserError)?,
17561            comments: Box::new(comments),
17562        };
17563        // Calling user action here
17564        self.user_grammar.in_token(&in_token_built)?;
17565        self.push(ASTType::InToken(in_token_built), context);
17566        Ok(())
17567    }
17568
17569    /// Semantic action for production 195:
17570    ///
17571    /// `LetToken: LetTerm : Token Comments;`
17572    ///
17573    #[parol_runtime::function_name::named]
17574    fn let_token(
17575        &mut self,
17576        _let_term: &ParseTreeType<'t>,
17577        _comments: &ParseTreeType<'t>,
17578    ) -> Result<()> {
17579        let context = function_name!();
17580        trace!("{}", self.trace_item_stack(context));
17581        let comments = pop_item!(self, comments, Comments, context);
17582        let let_term = pop_item!(self, let_term, LetTerm, context);
17583        let let_token_built = LetToken {
17584            let_term: (&let_term)
17585                .try_into()
17586                .map_err(parol_runtime::ParolError::UserError)?,
17587            comments: Box::new(comments),
17588        };
17589        // Calling user action here
17590        self.user_grammar.let_token(&let_token_built)?;
17591        self.push(ASTType::LetToken(let_token_built), context);
17592        Ok(())
17593    }
17594
17595    /// Semantic action for production 196:
17596    ///
17597    /// `LogicToken: LogicTerm : Token Comments;`
17598    ///
17599    #[parol_runtime::function_name::named]
17600    fn logic_token(
17601        &mut self,
17602        _logic_term: &ParseTreeType<'t>,
17603        _comments: &ParseTreeType<'t>,
17604    ) -> Result<()> {
17605        let context = function_name!();
17606        trace!("{}", self.trace_item_stack(context));
17607        let comments = pop_item!(self, comments, Comments, context);
17608        let logic_term = pop_item!(self, logic_term, LogicTerm, context);
17609        let logic_token_built = LogicToken {
17610            logic_term: (&logic_term)
17611                .try_into()
17612                .map_err(parol_runtime::ParolError::UserError)?,
17613            comments: Box::new(comments),
17614        };
17615        // Calling user action here
17616        self.user_grammar.logic_token(&logic_token_built)?;
17617        self.push(ASTType::LogicToken(logic_token_built), context);
17618        Ok(())
17619    }
17620
17621    /// Semantic action for production 197:
17622    ///
17623    /// `LsbToken: LsbTerm : Token Comments;`
17624    ///
17625    #[parol_runtime::function_name::named]
17626    fn lsb_token(
17627        &mut self,
17628        _lsb_term: &ParseTreeType<'t>,
17629        _comments: &ParseTreeType<'t>,
17630    ) -> Result<()> {
17631        let context = function_name!();
17632        trace!("{}", self.trace_item_stack(context));
17633        let comments = pop_item!(self, comments, Comments, context);
17634        let lsb_term = pop_item!(self, lsb_term, LsbTerm, context);
17635        let lsb_token_built = LsbToken {
17636            lsb_term: (&lsb_term)
17637                .try_into()
17638                .map_err(parol_runtime::ParolError::UserError)?,
17639            comments: Box::new(comments),
17640        };
17641        // Calling user action here
17642        self.user_grammar.lsb_token(&lsb_token_built)?;
17643        self.push(ASTType::LsbToken(lsb_token_built), context);
17644        Ok(())
17645    }
17646
17647    /// Semantic action for production 198:
17648    ///
17649    /// `ModportToken: ModportTerm : Token Comments;`
17650    ///
17651    #[parol_runtime::function_name::named]
17652    fn modport_token(
17653        &mut self,
17654        _modport_term: &ParseTreeType<'t>,
17655        _comments: &ParseTreeType<'t>,
17656    ) -> Result<()> {
17657        let context = function_name!();
17658        trace!("{}", self.trace_item_stack(context));
17659        let comments = pop_item!(self, comments, Comments, context);
17660        let modport_term = pop_item!(self, modport_term, ModportTerm, context);
17661        let modport_token_built = ModportToken {
17662            modport_term: (&modport_term)
17663                .try_into()
17664                .map_err(parol_runtime::ParolError::UserError)?,
17665            comments: Box::new(comments),
17666        };
17667        // Calling user action here
17668        self.user_grammar.modport_token(&modport_token_built)?;
17669        self.push(ASTType::ModportToken(modport_token_built), context);
17670        Ok(())
17671    }
17672
17673    /// Semantic action for production 199:
17674    ///
17675    /// `ModuleToken: ModuleTerm : Token Comments;`
17676    ///
17677    #[parol_runtime::function_name::named]
17678    fn module_token(
17679        &mut self,
17680        _module_term: &ParseTreeType<'t>,
17681        _comments: &ParseTreeType<'t>,
17682    ) -> Result<()> {
17683        let context = function_name!();
17684        trace!("{}", self.trace_item_stack(context));
17685        let comments = pop_item!(self, comments, Comments, context);
17686        let module_term = pop_item!(self, module_term, ModuleTerm, context);
17687        let module_token_built = ModuleToken {
17688            module_term: (&module_term)
17689                .try_into()
17690                .map_err(parol_runtime::ParolError::UserError)?,
17691            comments: Box::new(comments),
17692        };
17693        // Calling user action here
17694        self.user_grammar.module_token(&module_token_built)?;
17695        self.push(ASTType::ModuleToken(module_token_built), context);
17696        Ok(())
17697    }
17698
17699    /// Semantic action for production 200:
17700    ///
17701    /// `MsbToken: MsbTerm : Token Comments;`
17702    ///
17703    #[parol_runtime::function_name::named]
17704    fn msb_token(
17705        &mut self,
17706        _msb_term: &ParseTreeType<'t>,
17707        _comments: &ParseTreeType<'t>,
17708    ) -> Result<()> {
17709        let context = function_name!();
17710        trace!("{}", self.trace_item_stack(context));
17711        let comments = pop_item!(self, comments, Comments, context);
17712        let msb_term = pop_item!(self, msb_term, MsbTerm, context);
17713        let msb_token_built = MsbToken {
17714            msb_term: (&msb_term)
17715                .try_into()
17716                .map_err(parol_runtime::ParolError::UserError)?,
17717            comments: Box::new(comments),
17718        };
17719        // Calling user action here
17720        self.user_grammar.msb_token(&msb_token_built)?;
17721        self.push(ASTType::MsbToken(msb_token_built), context);
17722        Ok(())
17723    }
17724
17725    /// Semantic action for production 201:
17726    ///
17727    /// `OutputToken: OutputTerm : Token Comments;`
17728    ///
17729    #[parol_runtime::function_name::named]
17730    fn output_token(
17731        &mut self,
17732        _output_term: &ParseTreeType<'t>,
17733        _comments: &ParseTreeType<'t>,
17734    ) -> Result<()> {
17735        let context = function_name!();
17736        trace!("{}", self.trace_item_stack(context));
17737        let comments = pop_item!(self, comments, Comments, context);
17738        let output_term = pop_item!(self, output_term, OutputTerm, context);
17739        let output_token_built = OutputToken {
17740            output_term: (&output_term)
17741                .try_into()
17742                .map_err(parol_runtime::ParolError::UserError)?,
17743            comments: Box::new(comments),
17744        };
17745        // Calling user action here
17746        self.user_grammar.output_token(&output_token_built)?;
17747        self.push(ASTType::OutputToken(output_token_built), context);
17748        Ok(())
17749    }
17750
17751    /// Semantic action for production 202:
17752    ///
17753    /// `OutsideToken: OutsideTerm : Token Comments;`
17754    ///
17755    #[parol_runtime::function_name::named]
17756    fn outside_token(
17757        &mut self,
17758        _outside_term: &ParseTreeType<'t>,
17759        _comments: &ParseTreeType<'t>,
17760    ) -> Result<()> {
17761        let context = function_name!();
17762        trace!("{}", self.trace_item_stack(context));
17763        let comments = pop_item!(self, comments, Comments, context);
17764        let outside_term = pop_item!(self, outside_term, OutsideTerm, context);
17765        let outside_token_built = OutsideToken {
17766            outside_term: (&outside_term)
17767                .try_into()
17768                .map_err(parol_runtime::ParolError::UserError)?,
17769            comments: Box::new(comments),
17770        };
17771        // Calling user action here
17772        self.user_grammar.outside_token(&outside_token_built)?;
17773        self.push(ASTType::OutsideToken(outside_token_built), context);
17774        Ok(())
17775    }
17776
17777    /// Semantic action for production 203:
17778    ///
17779    /// `PackageToken: PackageTerm : Token Comments;`
17780    ///
17781    #[parol_runtime::function_name::named]
17782    fn package_token(
17783        &mut self,
17784        _package_term: &ParseTreeType<'t>,
17785        _comments: &ParseTreeType<'t>,
17786    ) -> Result<()> {
17787        let context = function_name!();
17788        trace!("{}", self.trace_item_stack(context));
17789        let comments = pop_item!(self, comments, Comments, context);
17790        let package_term = pop_item!(self, package_term, PackageTerm, context);
17791        let package_token_built = PackageToken {
17792            package_term: (&package_term)
17793                .try_into()
17794                .map_err(parol_runtime::ParolError::UserError)?,
17795            comments: Box::new(comments),
17796        };
17797        // Calling user action here
17798        self.user_grammar.package_token(&package_token_built)?;
17799        self.push(ASTType::PackageToken(package_token_built), context);
17800        Ok(())
17801    }
17802
17803    /// Semantic action for production 204:
17804    ///
17805    /// `ParamToken: ParamTerm : Token Comments;`
17806    ///
17807    #[parol_runtime::function_name::named]
17808    fn param_token(
17809        &mut self,
17810        _param_term: &ParseTreeType<'t>,
17811        _comments: &ParseTreeType<'t>,
17812    ) -> Result<()> {
17813        let context = function_name!();
17814        trace!("{}", self.trace_item_stack(context));
17815        let comments = pop_item!(self, comments, Comments, context);
17816        let param_term = pop_item!(self, param_term, ParamTerm, context);
17817        let param_token_built = ParamToken {
17818            param_term: (&param_term)
17819                .try_into()
17820                .map_err(parol_runtime::ParolError::UserError)?,
17821            comments: Box::new(comments),
17822        };
17823        // Calling user action here
17824        self.user_grammar.param_token(&param_token_built)?;
17825        self.push(ASTType::ParamToken(param_token_built), context);
17826        Ok(())
17827    }
17828
17829    /// Semantic action for production 205:
17830    ///
17831    /// `ProtoToken: ProtoTerm : Token Comments;`
17832    ///
17833    #[parol_runtime::function_name::named]
17834    fn proto_token(
17835        &mut self,
17836        _proto_term: &ParseTreeType<'t>,
17837        _comments: &ParseTreeType<'t>,
17838    ) -> Result<()> {
17839        let context = function_name!();
17840        trace!("{}", self.trace_item_stack(context));
17841        let comments = pop_item!(self, comments, Comments, context);
17842        let proto_term = pop_item!(self, proto_term, ProtoTerm, context);
17843        let proto_token_built = ProtoToken {
17844            proto_term: (&proto_term)
17845                .try_into()
17846                .map_err(parol_runtime::ParolError::UserError)?,
17847            comments: Box::new(comments),
17848        };
17849        // Calling user action here
17850        self.user_grammar.proto_token(&proto_token_built)?;
17851        self.push(ASTType::ProtoToken(proto_token_built), context);
17852        Ok(())
17853    }
17854
17855    /// Semantic action for production 206:
17856    ///
17857    /// `PubToken: PubTerm : Token Comments;`
17858    ///
17859    #[parol_runtime::function_name::named]
17860    fn pub_token(
17861        &mut self,
17862        _pub_term: &ParseTreeType<'t>,
17863        _comments: &ParseTreeType<'t>,
17864    ) -> Result<()> {
17865        let context = function_name!();
17866        trace!("{}", self.trace_item_stack(context));
17867        let comments = pop_item!(self, comments, Comments, context);
17868        let pub_term = pop_item!(self, pub_term, PubTerm, context);
17869        let pub_token_built = PubToken {
17870            pub_term: (&pub_term)
17871                .try_into()
17872                .map_err(parol_runtime::ParolError::UserError)?,
17873            comments: Box::new(comments),
17874        };
17875        // Calling user action here
17876        self.user_grammar.pub_token(&pub_token_built)?;
17877        self.push(ASTType::PubToken(pub_token_built), context);
17878        Ok(())
17879    }
17880
17881    /// Semantic action for production 207:
17882    ///
17883    /// `RefToken: RefTerm : Token Comments;`
17884    ///
17885    #[parol_runtime::function_name::named]
17886    fn ref_token(
17887        &mut self,
17888        _ref_term: &ParseTreeType<'t>,
17889        _comments: &ParseTreeType<'t>,
17890    ) -> Result<()> {
17891        let context = function_name!();
17892        trace!("{}", self.trace_item_stack(context));
17893        let comments = pop_item!(self, comments, Comments, context);
17894        let ref_term = pop_item!(self, ref_term, RefTerm, context);
17895        let ref_token_built = RefToken {
17896            ref_term: (&ref_term)
17897                .try_into()
17898                .map_err(parol_runtime::ParolError::UserError)?,
17899            comments: Box::new(comments),
17900        };
17901        // Calling user action here
17902        self.user_grammar.ref_token(&ref_token_built)?;
17903        self.push(ASTType::RefToken(ref_token_built), context);
17904        Ok(())
17905    }
17906
17907    /// Semantic action for production 208:
17908    ///
17909    /// `RepeatToken: RepeatTerm : Token Comments;`
17910    ///
17911    #[parol_runtime::function_name::named]
17912    fn repeat_token(
17913        &mut self,
17914        _repeat_term: &ParseTreeType<'t>,
17915        _comments: &ParseTreeType<'t>,
17916    ) -> Result<()> {
17917        let context = function_name!();
17918        trace!("{}", self.trace_item_stack(context));
17919        let comments = pop_item!(self, comments, Comments, context);
17920        let repeat_term = pop_item!(self, repeat_term, RepeatTerm, context);
17921        let repeat_token_built = RepeatToken {
17922            repeat_term: (&repeat_term)
17923                .try_into()
17924                .map_err(parol_runtime::ParolError::UserError)?,
17925            comments: Box::new(comments),
17926        };
17927        // Calling user action here
17928        self.user_grammar.repeat_token(&repeat_token_built)?;
17929        self.push(ASTType::RepeatToken(repeat_token_built), context);
17930        Ok(())
17931    }
17932
17933    /// Semantic action for production 209:
17934    ///
17935    /// `ResetToken: ResetTerm : Token Comments;`
17936    ///
17937    #[parol_runtime::function_name::named]
17938    fn reset_token(
17939        &mut self,
17940        _reset_term: &ParseTreeType<'t>,
17941        _comments: &ParseTreeType<'t>,
17942    ) -> Result<()> {
17943        let context = function_name!();
17944        trace!("{}", self.trace_item_stack(context));
17945        let comments = pop_item!(self, comments, Comments, context);
17946        let reset_term = pop_item!(self, reset_term, ResetTerm, context);
17947        let reset_token_built = ResetToken {
17948            reset_term: (&reset_term)
17949                .try_into()
17950                .map_err(parol_runtime::ParolError::UserError)?,
17951            comments: Box::new(comments),
17952        };
17953        // Calling user action here
17954        self.user_grammar.reset_token(&reset_token_built)?;
17955        self.push(ASTType::ResetToken(reset_token_built), context);
17956        Ok(())
17957    }
17958
17959    /// Semantic action for production 210:
17960    ///
17961    /// `ResetAsyncHighToken: ResetAsyncHighTerm : Token Comments;`
17962    ///
17963    #[parol_runtime::function_name::named]
17964    fn reset_async_high_token(
17965        &mut self,
17966        _reset_async_high_term: &ParseTreeType<'t>,
17967        _comments: &ParseTreeType<'t>,
17968    ) -> Result<()> {
17969        let context = function_name!();
17970        trace!("{}", self.trace_item_stack(context));
17971        let comments = pop_item!(self, comments, Comments, context);
17972        let reset_async_high_term =
17973            pop_item!(self, reset_async_high_term, ResetAsyncHighTerm, context);
17974        let reset_async_high_token_built = ResetAsyncHighToken {
17975            reset_async_high_term: (&reset_async_high_term)
17976                .try_into()
17977                .map_err(parol_runtime::ParolError::UserError)?,
17978            comments: Box::new(comments),
17979        };
17980        // Calling user action here
17981        self.user_grammar
17982            .reset_async_high_token(&reset_async_high_token_built)?;
17983        self.push(
17984            ASTType::ResetAsyncHighToken(reset_async_high_token_built),
17985            context,
17986        );
17987        Ok(())
17988    }
17989
17990    /// Semantic action for production 211:
17991    ///
17992    /// `ResetAsyncLowToken: ResetAsyncLowTerm : Token Comments;`
17993    ///
17994    #[parol_runtime::function_name::named]
17995    fn reset_async_low_token(
17996        &mut self,
17997        _reset_async_low_term: &ParseTreeType<'t>,
17998        _comments: &ParseTreeType<'t>,
17999    ) -> Result<()> {
18000        let context = function_name!();
18001        trace!("{}", self.trace_item_stack(context));
18002        let comments = pop_item!(self, comments, Comments, context);
18003        let reset_async_low_term =
18004            pop_item!(self, reset_async_low_term, ResetAsyncLowTerm, context);
18005        let reset_async_low_token_built = ResetAsyncLowToken {
18006            reset_async_low_term: (&reset_async_low_term)
18007                .try_into()
18008                .map_err(parol_runtime::ParolError::UserError)?,
18009            comments: Box::new(comments),
18010        };
18011        // Calling user action here
18012        self.user_grammar
18013            .reset_async_low_token(&reset_async_low_token_built)?;
18014        self.push(
18015            ASTType::ResetAsyncLowToken(reset_async_low_token_built),
18016            context,
18017        );
18018        Ok(())
18019    }
18020
18021    /// Semantic action for production 212:
18022    ///
18023    /// `ResetSyncHighToken: ResetSyncHighTerm : Token Comments;`
18024    ///
18025    #[parol_runtime::function_name::named]
18026    fn reset_sync_high_token(
18027        &mut self,
18028        _reset_sync_high_term: &ParseTreeType<'t>,
18029        _comments: &ParseTreeType<'t>,
18030    ) -> Result<()> {
18031        let context = function_name!();
18032        trace!("{}", self.trace_item_stack(context));
18033        let comments = pop_item!(self, comments, Comments, context);
18034        let reset_sync_high_term =
18035            pop_item!(self, reset_sync_high_term, ResetSyncHighTerm, context);
18036        let reset_sync_high_token_built = ResetSyncHighToken {
18037            reset_sync_high_term: (&reset_sync_high_term)
18038                .try_into()
18039                .map_err(parol_runtime::ParolError::UserError)?,
18040            comments: Box::new(comments),
18041        };
18042        // Calling user action here
18043        self.user_grammar
18044            .reset_sync_high_token(&reset_sync_high_token_built)?;
18045        self.push(
18046            ASTType::ResetSyncHighToken(reset_sync_high_token_built),
18047            context,
18048        );
18049        Ok(())
18050    }
18051
18052    /// Semantic action for production 213:
18053    ///
18054    /// `ResetSyncLowToken: ResetSyncLowTerm : Token Comments;`
18055    ///
18056    #[parol_runtime::function_name::named]
18057    fn reset_sync_low_token(
18058        &mut self,
18059        _reset_sync_low_term: &ParseTreeType<'t>,
18060        _comments: &ParseTreeType<'t>,
18061    ) -> Result<()> {
18062        let context = function_name!();
18063        trace!("{}", self.trace_item_stack(context));
18064        let comments = pop_item!(self, comments, Comments, context);
18065        let reset_sync_low_term = pop_item!(self, reset_sync_low_term, ResetSyncLowTerm, context);
18066        let reset_sync_low_token_built = ResetSyncLowToken {
18067            reset_sync_low_term: (&reset_sync_low_term)
18068                .try_into()
18069                .map_err(parol_runtime::ParolError::UserError)?,
18070            comments: Box::new(comments),
18071        };
18072        // Calling user action here
18073        self.user_grammar
18074            .reset_sync_low_token(&reset_sync_low_token_built)?;
18075        self.push(
18076            ASTType::ResetSyncLowToken(reset_sync_low_token_built),
18077            context,
18078        );
18079        Ok(())
18080    }
18081
18082    /// Semantic action for production 214:
18083    ///
18084    /// `ReturnToken: ReturnTerm : Token Comments;`
18085    ///
18086    #[parol_runtime::function_name::named]
18087    fn return_token(
18088        &mut self,
18089        _return_term: &ParseTreeType<'t>,
18090        _comments: &ParseTreeType<'t>,
18091    ) -> Result<()> {
18092        let context = function_name!();
18093        trace!("{}", self.trace_item_stack(context));
18094        let comments = pop_item!(self, comments, Comments, context);
18095        let return_term = pop_item!(self, return_term, ReturnTerm, context);
18096        let return_token_built = ReturnToken {
18097            return_term: (&return_term)
18098                .try_into()
18099                .map_err(parol_runtime::ParolError::UserError)?,
18100            comments: Box::new(comments),
18101        };
18102        // Calling user action here
18103        self.user_grammar.return_token(&return_token_built)?;
18104        self.push(ASTType::ReturnToken(return_token_built), context);
18105        Ok(())
18106    }
18107
18108    /// Semantic action for production 215:
18109    ///
18110    /// `BreakToken: BreakTerm : Token Comments;`
18111    ///
18112    #[parol_runtime::function_name::named]
18113    fn break_token(
18114        &mut self,
18115        _break_term: &ParseTreeType<'t>,
18116        _comments: &ParseTreeType<'t>,
18117    ) -> Result<()> {
18118        let context = function_name!();
18119        trace!("{}", self.trace_item_stack(context));
18120        let comments = pop_item!(self, comments, Comments, context);
18121        let break_term = pop_item!(self, break_term, BreakTerm, context);
18122        let break_token_built = BreakToken {
18123            break_term: (&break_term)
18124                .try_into()
18125                .map_err(parol_runtime::ParolError::UserError)?,
18126            comments: Box::new(comments),
18127        };
18128        // Calling user action here
18129        self.user_grammar.break_token(&break_token_built)?;
18130        self.push(ASTType::BreakToken(break_token_built), context);
18131        Ok(())
18132    }
18133
18134    /// Semantic action for production 216:
18135    ///
18136    /// `SignedToken: SignedTerm : Token Comments;`
18137    ///
18138    #[parol_runtime::function_name::named]
18139    fn signed_token(
18140        &mut self,
18141        _signed_term: &ParseTreeType<'t>,
18142        _comments: &ParseTreeType<'t>,
18143    ) -> Result<()> {
18144        let context = function_name!();
18145        trace!("{}", self.trace_item_stack(context));
18146        let comments = pop_item!(self, comments, Comments, context);
18147        let signed_term = pop_item!(self, signed_term, SignedTerm, context);
18148        let signed_token_built = SignedToken {
18149            signed_term: (&signed_term)
18150                .try_into()
18151                .map_err(parol_runtime::ParolError::UserError)?,
18152            comments: Box::new(comments),
18153        };
18154        // Calling user action here
18155        self.user_grammar.signed_token(&signed_token_built)?;
18156        self.push(ASTType::SignedToken(signed_token_built), context);
18157        Ok(())
18158    }
18159
18160    /// Semantic action for production 217:
18161    ///
18162    /// `StepToken: StepTerm : Token Comments;`
18163    ///
18164    #[parol_runtime::function_name::named]
18165    fn step_token(
18166        &mut self,
18167        _step_term: &ParseTreeType<'t>,
18168        _comments: &ParseTreeType<'t>,
18169    ) -> Result<()> {
18170        let context = function_name!();
18171        trace!("{}", self.trace_item_stack(context));
18172        let comments = pop_item!(self, comments, Comments, context);
18173        let step_term = pop_item!(self, step_term, StepTerm, context);
18174        let step_token_built = StepToken {
18175            step_term: (&step_term)
18176                .try_into()
18177                .map_err(parol_runtime::ParolError::UserError)?,
18178            comments: Box::new(comments),
18179        };
18180        // Calling user action here
18181        self.user_grammar.step_token(&step_token_built)?;
18182        self.push(ASTType::StepToken(step_token_built), context);
18183        Ok(())
18184    }
18185
18186    /// Semantic action for production 218:
18187    ///
18188    /// `StringToken: StringTerm : Token Comments;`
18189    ///
18190    #[parol_runtime::function_name::named]
18191    fn string_token(
18192        &mut self,
18193        _string_term: &ParseTreeType<'t>,
18194        _comments: &ParseTreeType<'t>,
18195    ) -> Result<()> {
18196        let context = function_name!();
18197        trace!("{}", self.trace_item_stack(context));
18198        let comments = pop_item!(self, comments, Comments, context);
18199        let string_term = pop_item!(self, string_term, StringTerm, context);
18200        let string_token_built = StringToken {
18201            string_term: (&string_term)
18202                .try_into()
18203                .map_err(parol_runtime::ParolError::UserError)?,
18204            comments: Box::new(comments),
18205        };
18206        // Calling user action here
18207        self.user_grammar.string_token(&string_token_built)?;
18208        self.push(ASTType::StringToken(string_token_built), context);
18209        Ok(())
18210    }
18211
18212    /// Semantic action for production 219:
18213    ///
18214    /// `StructToken: StructTerm : Token Comments;`
18215    ///
18216    #[parol_runtime::function_name::named]
18217    fn struct_token(
18218        &mut self,
18219        _struct_term: &ParseTreeType<'t>,
18220        _comments: &ParseTreeType<'t>,
18221    ) -> Result<()> {
18222        let context = function_name!();
18223        trace!("{}", self.trace_item_stack(context));
18224        let comments = pop_item!(self, comments, Comments, context);
18225        let struct_term = pop_item!(self, struct_term, StructTerm, context);
18226        let struct_token_built = StructToken {
18227            struct_term: (&struct_term)
18228                .try_into()
18229                .map_err(parol_runtime::ParolError::UserError)?,
18230            comments: Box::new(comments),
18231        };
18232        // Calling user action here
18233        self.user_grammar.struct_token(&struct_token_built)?;
18234        self.push(ASTType::StructToken(struct_token_built), context);
18235        Ok(())
18236    }
18237
18238    /// Semantic action for production 220:
18239    ///
18240    /// `SwitchToken: SwitchTerm : Token Comments;`
18241    ///
18242    #[parol_runtime::function_name::named]
18243    fn switch_token(
18244        &mut self,
18245        _switch_term: &ParseTreeType<'t>,
18246        _comments: &ParseTreeType<'t>,
18247    ) -> Result<()> {
18248        let context = function_name!();
18249        trace!("{}", self.trace_item_stack(context));
18250        let comments = pop_item!(self, comments, Comments, context);
18251        let switch_term = pop_item!(self, switch_term, SwitchTerm, context);
18252        let switch_token_built = SwitchToken {
18253            switch_term: (&switch_term)
18254                .try_into()
18255                .map_err(parol_runtime::ParolError::UserError)?,
18256            comments: Box::new(comments),
18257        };
18258        // Calling user action here
18259        self.user_grammar.switch_token(&switch_token_built)?;
18260        self.push(ASTType::SwitchToken(switch_token_built), context);
18261        Ok(())
18262    }
18263
18264    /// Semantic action for production 221:
18265    ///
18266    /// `TriToken: TriTerm : Token Comments;`
18267    ///
18268    #[parol_runtime::function_name::named]
18269    fn tri_token(
18270        &mut self,
18271        _tri_term: &ParseTreeType<'t>,
18272        _comments: &ParseTreeType<'t>,
18273    ) -> Result<()> {
18274        let context = function_name!();
18275        trace!("{}", self.trace_item_stack(context));
18276        let comments = pop_item!(self, comments, Comments, context);
18277        let tri_term = pop_item!(self, tri_term, TriTerm, context);
18278        let tri_token_built = TriToken {
18279            tri_term: (&tri_term)
18280                .try_into()
18281                .map_err(parol_runtime::ParolError::UserError)?,
18282            comments: Box::new(comments),
18283        };
18284        // Calling user action here
18285        self.user_grammar.tri_token(&tri_token_built)?;
18286        self.push(ASTType::TriToken(tri_token_built), context);
18287        Ok(())
18288    }
18289
18290    /// Semantic action for production 222:
18291    ///
18292    /// `TypeToken: TypeTerm : Token Comments;`
18293    ///
18294    #[parol_runtime::function_name::named]
18295    fn type_token(
18296        &mut self,
18297        _type_term: &ParseTreeType<'t>,
18298        _comments: &ParseTreeType<'t>,
18299    ) -> Result<()> {
18300        let context = function_name!();
18301        trace!("{}", self.trace_item_stack(context));
18302        let comments = pop_item!(self, comments, Comments, context);
18303        let type_term = pop_item!(self, type_term, TypeTerm, context);
18304        let type_token_built = TypeToken {
18305            type_term: (&type_term)
18306                .try_into()
18307                .map_err(parol_runtime::ParolError::UserError)?,
18308            comments: Box::new(comments),
18309        };
18310        // Calling user action here
18311        self.user_grammar.type_token(&type_token_built)?;
18312        self.push(ASTType::TypeToken(type_token_built), context);
18313        Ok(())
18314    }
18315
18316    /// Semantic action for production 223:
18317    ///
18318    /// `U32Token: U32Term : Token Comments;`
18319    ///
18320    #[parol_runtime::function_name::named]
18321    fn u32_token(
18322        &mut self,
18323        _u32_term: &ParseTreeType<'t>,
18324        _comments: &ParseTreeType<'t>,
18325    ) -> Result<()> {
18326        let context = function_name!();
18327        trace!("{}", self.trace_item_stack(context));
18328        let comments = pop_item!(self, comments, Comments, context);
18329        let u32_term = pop_item!(self, u32_term, U32Term, context);
18330        let u32_token_built = U32Token {
18331            u32_term: (&u32_term)
18332                .try_into()
18333                .map_err(parol_runtime::ParolError::UserError)?,
18334            comments: Box::new(comments),
18335        };
18336        // Calling user action here
18337        self.user_grammar.u32_token(&u32_token_built)?;
18338        self.push(ASTType::U32Token(u32_token_built), context);
18339        Ok(())
18340    }
18341
18342    /// Semantic action for production 224:
18343    ///
18344    /// `U64Token: U64Term : Token Comments;`
18345    ///
18346    #[parol_runtime::function_name::named]
18347    fn u64_token(
18348        &mut self,
18349        _u64_term: &ParseTreeType<'t>,
18350        _comments: &ParseTreeType<'t>,
18351    ) -> Result<()> {
18352        let context = function_name!();
18353        trace!("{}", self.trace_item_stack(context));
18354        let comments = pop_item!(self, comments, Comments, context);
18355        let u64_term = pop_item!(self, u64_term, U64Term, context);
18356        let u64_token_built = U64Token {
18357            u64_term: (&u64_term)
18358                .try_into()
18359                .map_err(parol_runtime::ParolError::UserError)?,
18360            comments: Box::new(comments),
18361        };
18362        // Calling user action here
18363        self.user_grammar.u64_token(&u64_token_built)?;
18364        self.push(ASTType::U64Token(u64_token_built), context);
18365        Ok(())
18366    }
18367
18368    /// Semantic action for production 225:
18369    ///
18370    /// `UnionToken: UnionTerm : Token Comments;`
18371    ///
18372    #[parol_runtime::function_name::named]
18373    fn union_token(
18374        &mut self,
18375        _union_term: &ParseTreeType<'t>,
18376        _comments: &ParseTreeType<'t>,
18377    ) -> Result<()> {
18378        let context = function_name!();
18379        trace!("{}", self.trace_item_stack(context));
18380        let comments = pop_item!(self, comments, Comments, context);
18381        let union_term = pop_item!(self, union_term, UnionTerm, context);
18382        let union_token_built = UnionToken {
18383            union_term: (&union_term)
18384                .try_into()
18385                .map_err(parol_runtime::ParolError::UserError)?,
18386            comments: Box::new(comments),
18387        };
18388        // Calling user action here
18389        self.user_grammar.union_token(&union_token_built)?;
18390        self.push(ASTType::UnionToken(union_token_built), context);
18391        Ok(())
18392    }
18393
18394    /// Semantic action for production 226:
18395    ///
18396    /// `UnsafeToken: UnsafeTerm : Token Comments;`
18397    ///
18398    #[parol_runtime::function_name::named]
18399    fn unsafe_token(
18400        &mut self,
18401        _unsafe_term: &ParseTreeType<'t>,
18402        _comments: &ParseTreeType<'t>,
18403    ) -> Result<()> {
18404        let context = function_name!();
18405        trace!("{}", self.trace_item_stack(context));
18406        let comments = pop_item!(self, comments, Comments, context);
18407        let unsafe_term = pop_item!(self, unsafe_term, UnsafeTerm, context);
18408        let unsafe_token_built = UnsafeToken {
18409            unsafe_term: (&unsafe_term)
18410                .try_into()
18411                .map_err(parol_runtime::ParolError::UserError)?,
18412            comments: Box::new(comments),
18413        };
18414        // Calling user action here
18415        self.user_grammar.unsafe_token(&unsafe_token_built)?;
18416        self.push(ASTType::UnsafeToken(unsafe_token_built), context);
18417        Ok(())
18418    }
18419
18420    /// Semantic action for production 227:
18421    ///
18422    /// `VarToken: VarTerm : Token Comments;`
18423    ///
18424    #[parol_runtime::function_name::named]
18425    fn var_token(
18426        &mut self,
18427        _var_term: &ParseTreeType<'t>,
18428        _comments: &ParseTreeType<'t>,
18429    ) -> Result<()> {
18430        let context = function_name!();
18431        trace!("{}", self.trace_item_stack(context));
18432        let comments = pop_item!(self, comments, Comments, context);
18433        let var_term = pop_item!(self, var_term, VarTerm, context);
18434        let var_token_built = VarToken {
18435            var_term: (&var_term)
18436                .try_into()
18437                .map_err(parol_runtime::ParolError::UserError)?,
18438            comments: Box::new(comments),
18439        };
18440        // Calling user action here
18441        self.user_grammar.var_token(&var_token_built)?;
18442        self.push(ASTType::VarToken(var_token_built), context);
18443        Ok(())
18444    }
18445
18446    /// Semantic action for production 228:
18447    ///
18448    /// `DollarIdentifierToken: DollarIdentifierTerm : Token Comments;`
18449    ///
18450    #[parol_runtime::function_name::named]
18451    fn dollar_identifier_token(
18452        &mut self,
18453        _dollar_identifier_term: &ParseTreeType<'t>,
18454        _comments: &ParseTreeType<'t>,
18455    ) -> Result<()> {
18456        let context = function_name!();
18457        trace!("{}", self.trace_item_stack(context));
18458        let comments = pop_item!(self, comments, Comments, context);
18459        let dollar_identifier_term =
18460            pop_item!(self, dollar_identifier_term, DollarIdentifierTerm, context);
18461        let dollar_identifier_token_built = DollarIdentifierToken {
18462            dollar_identifier_term: (&dollar_identifier_term)
18463                .try_into()
18464                .map_err(parol_runtime::ParolError::UserError)?,
18465            comments: Box::new(comments),
18466        };
18467        // Calling user action here
18468        self.user_grammar
18469            .dollar_identifier_token(&dollar_identifier_token_built)?;
18470        self.push(
18471            ASTType::DollarIdentifierToken(dollar_identifier_token_built),
18472            context,
18473        );
18474        Ok(())
18475    }
18476
18477    /// Semantic action for production 229:
18478    ///
18479    /// `IdentifierToken: IdentifierTerm : Token Comments;`
18480    ///
18481    #[parol_runtime::function_name::named]
18482    fn identifier_token(
18483        &mut self,
18484        _identifier_term: &ParseTreeType<'t>,
18485        _comments: &ParseTreeType<'t>,
18486    ) -> Result<()> {
18487        let context = function_name!();
18488        trace!("{}", self.trace_item_stack(context));
18489        let comments = pop_item!(self, comments, Comments, context);
18490        let identifier_term = pop_item!(self, identifier_term, IdentifierTerm, context);
18491        let identifier_token_built = IdentifierToken {
18492            identifier_term: (&identifier_term)
18493                .try_into()
18494                .map_err(parol_runtime::ParolError::UserError)?,
18495            comments: Box::new(comments),
18496        };
18497        // Calling user action here
18498        self.user_grammar
18499            .identifier_token(&identifier_token_built)?;
18500        self.push(ASTType::IdentifierToken(identifier_token_built), context);
18501        Ok(())
18502    }
18503
18504    /// Semantic action for production 230:
18505    ///
18506    /// `Start: StartToken : VerylToken;`
18507    ///
18508    #[parol_runtime::function_name::named]
18509    fn start(&mut self, _start_token: &ParseTreeType<'t>) -> Result<()> {
18510        let context = function_name!();
18511        trace!("{}", self.trace_item_stack(context));
18512        let start_token = pop_item!(self, start_token, StartToken, context);
18513        let start_built = Start {
18514            start_token: (&start_token)
18515                .try_into()
18516                .map_err(parol_runtime::ParolError::UserError)?,
18517        };
18518        // Calling user action here
18519        self.user_grammar.start(&start_built)?;
18520        self.push(ASTType::Start(start_built), context);
18521        Ok(())
18522    }
18523
18524    /// Semantic action for production 231:
18525    ///
18526    /// `StringLiteral: StringLiteralToken : VerylToken;`
18527    ///
18528    #[parol_runtime::function_name::named]
18529    fn string_literal(&mut self, _string_literal_token: &ParseTreeType<'t>) -> Result<()> {
18530        let context = function_name!();
18531        trace!("{}", self.trace_item_stack(context));
18532        let string_literal_token =
18533            pop_item!(self, string_literal_token, StringLiteralToken, context);
18534        let string_literal_built = StringLiteral {
18535            string_literal_token: (&string_literal_token)
18536                .try_into()
18537                .map_err(parol_runtime::ParolError::UserError)?,
18538        };
18539        // Calling user action here
18540        self.user_grammar.string_literal(&string_literal_built)?;
18541        self.push(ASTType::StringLiteral(string_literal_built), context);
18542        Ok(())
18543    }
18544
18545    /// Semantic action for production 232:
18546    ///
18547    /// `Exponent: ExponentToken : VerylToken;`
18548    ///
18549    #[parol_runtime::function_name::named]
18550    fn exponent(&mut self, _exponent_token: &ParseTreeType<'t>) -> Result<()> {
18551        let context = function_name!();
18552        trace!("{}", self.trace_item_stack(context));
18553        let exponent_token = pop_item!(self, exponent_token, ExponentToken, context);
18554        let exponent_built = Exponent {
18555            exponent_token: (&exponent_token)
18556                .try_into()
18557                .map_err(parol_runtime::ParolError::UserError)?,
18558        };
18559        // Calling user action here
18560        self.user_grammar.exponent(&exponent_built)?;
18561        self.push(ASTType::Exponent(exponent_built), context);
18562        Ok(())
18563    }
18564
18565    /// Semantic action for production 233:
18566    ///
18567    /// `FixedPoint: FixedPointToken : VerylToken;`
18568    ///
18569    #[parol_runtime::function_name::named]
18570    fn fixed_point(&mut self, _fixed_point_token: &ParseTreeType<'t>) -> Result<()> {
18571        let context = function_name!();
18572        trace!("{}", self.trace_item_stack(context));
18573        let fixed_point_token = pop_item!(self, fixed_point_token, FixedPointToken, context);
18574        let fixed_point_built = FixedPoint {
18575            fixed_point_token: (&fixed_point_token)
18576                .try_into()
18577                .map_err(parol_runtime::ParolError::UserError)?,
18578        };
18579        // Calling user action here
18580        self.user_grammar.fixed_point(&fixed_point_built)?;
18581        self.push(ASTType::FixedPoint(fixed_point_built), context);
18582        Ok(())
18583    }
18584
18585    /// Semantic action for production 234:
18586    ///
18587    /// `Based: BasedToken : VerylToken;`
18588    ///
18589    #[parol_runtime::function_name::named]
18590    fn based(&mut self, _based_token: &ParseTreeType<'t>) -> Result<()> {
18591        let context = function_name!();
18592        trace!("{}", self.trace_item_stack(context));
18593        let based_token = pop_item!(self, based_token, BasedToken, context);
18594        let based_built = Based {
18595            based_token: (&based_token)
18596                .try_into()
18597                .map_err(parol_runtime::ParolError::UserError)?,
18598        };
18599        // Calling user action here
18600        self.user_grammar.based(&based_built)?;
18601        self.push(ASTType::Based(based_built), context);
18602        Ok(())
18603    }
18604
18605    /// Semantic action for production 235:
18606    ///
18607    /// `BaseLess: BaseLessToken : VerylToken;`
18608    ///
18609    #[parol_runtime::function_name::named]
18610    fn base_less(&mut self, _base_less_token: &ParseTreeType<'t>) -> Result<()> {
18611        let context = function_name!();
18612        trace!("{}", self.trace_item_stack(context));
18613        let base_less_token = pop_item!(self, base_less_token, BaseLessToken, context);
18614        let base_less_built = BaseLess {
18615            base_less_token: (&base_less_token)
18616                .try_into()
18617                .map_err(parol_runtime::ParolError::UserError)?,
18618        };
18619        // Calling user action here
18620        self.user_grammar.base_less(&base_less_built)?;
18621        self.push(ASTType::BaseLess(base_less_built), context);
18622        Ok(())
18623    }
18624
18625    /// Semantic action for production 236:
18626    ///
18627    /// `AllBit: AllBitToken : VerylToken;`
18628    ///
18629    #[parol_runtime::function_name::named]
18630    fn all_bit(&mut self, _all_bit_token: &ParseTreeType<'t>) -> Result<()> {
18631        let context = function_name!();
18632        trace!("{}", self.trace_item_stack(context));
18633        let all_bit_token = pop_item!(self, all_bit_token, AllBitToken, context);
18634        let all_bit_built = AllBit {
18635            all_bit_token: (&all_bit_token)
18636                .try_into()
18637                .map_err(parol_runtime::ParolError::UserError)?,
18638        };
18639        // Calling user action here
18640        self.user_grammar.all_bit(&all_bit_built)?;
18641        self.push(ASTType::AllBit(all_bit_built), context);
18642        Ok(())
18643    }
18644
18645    /// Semantic action for production 237:
18646    ///
18647    /// `AssignmentOperator: AssignmentOperatorToken : VerylToken;`
18648    ///
18649    #[parol_runtime::function_name::named]
18650    fn assignment_operator(
18651        &mut self,
18652        _assignment_operator_token: &ParseTreeType<'t>,
18653    ) -> Result<()> {
18654        let context = function_name!();
18655        trace!("{}", self.trace_item_stack(context));
18656        let assignment_operator_token = pop_item!(
18657            self,
18658            assignment_operator_token,
18659            AssignmentOperatorToken,
18660            context
18661        );
18662        let assignment_operator_built = AssignmentOperator {
18663            assignment_operator_token: (&assignment_operator_token)
18664                .try_into()
18665                .map_err(parol_runtime::ParolError::UserError)?,
18666        };
18667        // Calling user action here
18668        self.user_grammar
18669            .assignment_operator(&assignment_operator_built)?;
18670        self.push(
18671            ASTType::AssignmentOperator(assignment_operator_built),
18672            context,
18673        );
18674        Ok(())
18675    }
18676
18677    /// Semantic action for production 238:
18678    ///
18679    /// `Operator01: Operator01Token : VerylToken;`
18680    ///
18681    #[parol_runtime::function_name::named]
18682    fn operator01(&mut self, _operator01_token: &ParseTreeType<'t>) -> Result<()> {
18683        let context = function_name!();
18684        trace!("{}", self.trace_item_stack(context));
18685        let operator01_token = pop_item!(self, operator01_token, Operator01Token, context);
18686        let operator01_built = Operator01 {
18687            operator01_token: (&operator01_token)
18688                .try_into()
18689                .map_err(parol_runtime::ParolError::UserError)?,
18690        };
18691        // Calling user action here
18692        self.user_grammar.operator01(&operator01_built)?;
18693        self.push(ASTType::Operator01(operator01_built), context);
18694        Ok(())
18695    }
18696
18697    /// Semantic action for production 239:
18698    ///
18699    /// `Operator02: Operator02Token : VerylToken;`
18700    ///
18701    #[parol_runtime::function_name::named]
18702    fn operator02(&mut self, _operator02_token: &ParseTreeType<'t>) -> Result<()> {
18703        let context = function_name!();
18704        trace!("{}", self.trace_item_stack(context));
18705        let operator02_token = pop_item!(self, operator02_token, Operator02Token, context);
18706        let operator02_built = Operator02 {
18707            operator02_token: (&operator02_token)
18708                .try_into()
18709                .map_err(parol_runtime::ParolError::UserError)?,
18710        };
18711        // Calling user action here
18712        self.user_grammar.operator02(&operator02_built)?;
18713        self.push(ASTType::Operator02(operator02_built), context);
18714        Ok(())
18715    }
18716
18717    /// Semantic action for production 240:
18718    ///
18719    /// `Operator03: Operator03Token : VerylToken;`
18720    ///
18721    #[parol_runtime::function_name::named]
18722    fn operator03(&mut self, _operator03_token: &ParseTreeType<'t>) -> Result<()> {
18723        let context = function_name!();
18724        trace!("{}", self.trace_item_stack(context));
18725        let operator03_token = pop_item!(self, operator03_token, Operator03Token, context);
18726        let operator03_built = Operator03 {
18727            operator03_token: (&operator03_token)
18728                .try_into()
18729                .map_err(parol_runtime::ParolError::UserError)?,
18730        };
18731        // Calling user action here
18732        self.user_grammar.operator03(&operator03_built)?;
18733        self.push(ASTType::Operator03(operator03_built), context);
18734        Ok(())
18735    }
18736
18737    /// Semantic action for production 241:
18738    ///
18739    /// `Operator04: Operator04Token : VerylToken;`
18740    ///
18741    #[parol_runtime::function_name::named]
18742    fn operator04(&mut self, _operator04_token: &ParseTreeType<'t>) -> Result<()> {
18743        let context = function_name!();
18744        trace!("{}", self.trace_item_stack(context));
18745        let operator04_token = pop_item!(self, operator04_token, Operator04Token, context);
18746        let operator04_built = Operator04 {
18747            operator04_token: (&operator04_token)
18748                .try_into()
18749                .map_err(parol_runtime::ParolError::UserError)?,
18750        };
18751        // Calling user action here
18752        self.user_grammar.operator04(&operator04_built)?;
18753        self.push(ASTType::Operator04(operator04_built), context);
18754        Ok(())
18755    }
18756
18757    /// Semantic action for production 242:
18758    ///
18759    /// `Operator05: Operator05Token : VerylToken;`
18760    ///
18761    #[parol_runtime::function_name::named]
18762    fn operator05(&mut self, _operator05_token: &ParseTreeType<'t>) -> Result<()> {
18763        let context = function_name!();
18764        trace!("{}", self.trace_item_stack(context));
18765        let operator05_token = pop_item!(self, operator05_token, Operator05Token, context);
18766        let operator05_built = Operator05 {
18767            operator05_token: (&operator05_token)
18768                .try_into()
18769                .map_err(parol_runtime::ParolError::UserError)?,
18770        };
18771        // Calling user action here
18772        self.user_grammar.operator05(&operator05_built)?;
18773        self.push(ASTType::Operator05(operator05_built), context);
18774        Ok(())
18775    }
18776
18777    /// Semantic action for production 243:
18778    ///
18779    /// `Operator06: Operator06Token : VerylToken;`
18780    ///
18781    #[parol_runtime::function_name::named]
18782    fn operator06(&mut self, _operator06_token: &ParseTreeType<'t>) -> Result<()> {
18783        let context = function_name!();
18784        trace!("{}", self.trace_item_stack(context));
18785        let operator06_token = pop_item!(self, operator06_token, Operator06Token, context);
18786        let operator06_built = Operator06 {
18787            operator06_token: (&operator06_token)
18788                .try_into()
18789                .map_err(parol_runtime::ParolError::UserError)?,
18790        };
18791        // Calling user action here
18792        self.user_grammar.operator06(&operator06_built)?;
18793        self.push(ASTType::Operator06(operator06_built), context);
18794        Ok(())
18795    }
18796
18797    /// Semantic action for production 244:
18798    ///
18799    /// `Operator07: Operator07Token : VerylToken;`
18800    ///
18801    #[parol_runtime::function_name::named]
18802    fn operator07(&mut self, _operator07_token: &ParseTreeType<'t>) -> Result<()> {
18803        let context = function_name!();
18804        trace!("{}", self.trace_item_stack(context));
18805        let operator07_token = pop_item!(self, operator07_token, Operator07Token, context);
18806        let operator07_built = Operator07 {
18807            operator07_token: (&operator07_token)
18808                .try_into()
18809                .map_err(parol_runtime::ParolError::UserError)?,
18810        };
18811        // Calling user action here
18812        self.user_grammar.operator07(&operator07_built)?;
18813        self.push(ASTType::Operator07(operator07_built), context);
18814        Ok(())
18815    }
18816
18817    /// Semantic action for production 245:
18818    ///
18819    /// `Operator08: Operator08Token : VerylToken;`
18820    ///
18821    #[parol_runtime::function_name::named]
18822    fn operator08(&mut self, _operator08_token: &ParseTreeType<'t>) -> Result<()> {
18823        let context = function_name!();
18824        trace!("{}", self.trace_item_stack(context));
18825        let operator08_token = pop_item!(self, operator08_token, Operator08Token, context);
18826        let operator08_built = Operator08 {
18827            operator08_token: (&operator08_token)
18828                .try_into()
18829                .map_err(parol_runtime::ParolError::UserError)?,
18830        };
18831        // Calling user action here
18832        self.user_grammar.operator08(&operator08_built)?;
18833        self.push(ASTType::Operator08(operator08_built), context);
18834        Ok(())
18835    }
18836
18837    /// Semantic action for production 246:
18838    ///
18839    /// `Operator09: Operator09Token : VerylToken;`
18840    ///
18841    #[parol_runtime::function_name::named]
18842    fn operator09(&mut self, _operator09_token: &ParseTreeType<'t>) -> Result<()> {
18843        let context = function_name!();
18844        trace!("{}", self.trace_item_stack(context));
18845        let operator09_token = pop_item!(self, operator09_token, Operator09Token, context);
18846        let operator09_built = Operator09 {
18847            operator09_token: (&operator09_token)
18848                .try_into()
18849                .map_err(parol_runtime::ParolError::UserError)?,
18850        };
18851        // Calling user action here
18852        self.user_grammar.operator09(&operator09_built)?;
18853        self.push(ASTType::Operator09(operator09_built), context);
18854        Ok(())
18855    }
18856
18857    /// Semantic action for production 247:
18858    ///
18859    /// `Operator10: Operator10Token : VerylToken;`
18860    ///
18861    #[parol_runtime::function_name::named]
18862    fn operator10(&mut self, _operator10_token: &ParseTreeType<'t>) -> Result<()> {
18863        let context = function_name!();
18864        trace!("{}", self.trace_item_stack(context));
18865        let operator10_token = pop_item!(self, operator10_token, Operator10Token, context);
18866        let operator10_built = Operator10 {
18867            operator10_token: (&operator10_token)
18868                .try_into()
18869                .map_err(parol_runtime::ParolError::UserError)?,
18870        };
18871        // Calling user action here
18872        self.user_grammar.operator10(&operator10_built)?;
18873        self.push(ASTType::Operator10(operator10_built), context);
18874        Ok(())
18875    }
18876
18877    /// Semantic action for production 248:
18878    ///
18879    /// `Operator11: Operator11Token : VerylToken;`
18880    ///
18881    #[parol_runtime::function_name::named]
18882    fn operator11(&mut self, _operator11_token: &ParseTreeType<'t>) -> Result<()> {
18883        let context = function_name!();
18884        trace!("{}", self.trace_item_stack(context));
18885        let operator11_token = pop_item!(self, operator11_token, Operator11Token, context);
18886        let operator11_built = Operator11 {
18887            operator11_token: (&operator11_token)
18888                .try_into()
18889                .map_err(parol_runtime::ParolError::UserError)?,
18890        };
18891        // Calling user action here
18892        self.user_grammar.operator11(&operator11_built)?;
18893        self.push(ASTType::Operator11(operator11_built), context);
18894        Ok(())
18895    }
18896
18897    /// Semantic action for production 249:
18898    ///
18899    /// `UnaryOperator: UnaryOperatorToken : VerylToken;`
18900    ///
18901    #[parol_runtime::function_name::named]
18902    fn unary_operator(&mut self, _unary_operator_token: &ParseTreeType<'t>) -> Result<()> {
18903        let context = function_name!();
18904        trace!("{}", self.trace_item_stack(context));
18905        let unary_operator_token =
18906            pop_item!(self, unary_operator_token, UnaryOperatorToken, context);
18907        let unary_operator_built = UnaryOperator {
18908            unary_operator_token: (&unary_operator_token)
18909                .try_into()
18910                .map_err(parol_runtime::ParolError::UserError)?,
18911        };
18912        // Calling user action here
18913        self.user_grammar.unary_operator(&unary_operator_built)?;
18914        self.push(ASTType::UnaryOperator(unary_operator_built), context);
18915        Ok(())
18916    }
18917
18918    /// Semantic action for production 250:
18919    ///
18920    /// `BackQuote: BackQuoteToken : VerylToken;`
18921    ///
18922    #[parol_runtime::function_name::named]
18923    fn back_quote(&mut self, _back_quote_token: &ParseTreeType<'t>) -> Result<()> {
18924        let context = function_name!();
18925        trace!("{}", self.trace_item_stack(context));
18926        let back_quote_token = pop_item!(self, back_quote_token, BackQuoteToken, context);
18927        let back_quote_built = BackQuote {
18928            back_quote_token: (&back_quote_token)
18929                .try_into()
18930                .map_err(parol_runtime::ParolError::UserError)?,
18931        };
18932        // Calling user action here
18933        self.user_grammar.back_quote(&back_quote_built)?;
18934        self.push(ASTType::BackQuote(back_quote_built), context);
18935        Ok(())
18936    }
18937
18938    /// Semantic action for production 251:
18939    ///
18940    /// `Colon: ColonToken : VerylToken;`
18941    ///
18942    #[parol_runtime::function_name::named]
18943    fn colon(&mut self, _colon_token: &ParseTreeType<'t>) -> Result<()> {
18944        let context = function_name!();
18945        trace!("{}", self.trace_item_stack(context));
18946        let colon_token = pop_item!(self, colon_token, ColonToken, context);
18947        let colon_built = Colon {
18948            colon_token: (&colon_token)
18949                .try_into()
18950                .map_err(parol_runtime::ParolError::UserError)?,
18951        };
18952        // Calling user action here
18953        self.user_grammar.colon(&colon_built)?;
18954        self.push(ASTType::Colon(colon_built), context);
18955        Ok(())
18956    }
18957
18958    /// Semantic action for production 252:
18959    ///
18960    /// `ColonColonLAngle: ColonColonLAngleToken : VerylToken;`
18961    ///
18962    #[parol_runtime::function_name::named]
18963    fn colon_colon_l_angle(
18964        &mut self,
18965        _colon_colon_l_angle_token: &ParseTreeType<'t>,
18966    ) -> Result<()> {
18967        let context = function_name!();
18968        trace!("{}", self.trace_item_stack(context));
18969        let colon_colon_l_angle_token = pop_item!(
18970            self,
18971            colon_colon_l_angle_token,
18972            ColonColonLAngleToken,
18973            context
18974        );
18975        let colon_colon_l_angle_built = ColonColonLAngle {
18976            colon_colon_l_angle_token: (&colon_colon_l_angle_token)
18977                .try_into()
18978                .map_err(parol_runtime::ParolError::UserError)?,
18979        };
18980        // Calling user action here
18981        self.user_grammar
18982            .colon_colon_l_angle(&colon_colon_l_angle_built)?;
18983        self.push(
18984            ASTType::ColonColonLAngle(colon_colon_l_angle_built),
18985            context,
18986        );
18987        Ok(())
18988    }
18989
18990    /// Semantic action for production 253:
18991    ///
18992    /// `ColonColon: ColonColonToken : VerylToken;`
18993    ///
18994    #[parol_runtime::function_name::named]
18995    fn colon_colon(&mut self, _colon_colon_token: &ParseTreeType<'t>) -> Result<()> {
18996        let context = function_name!();
18997        trace!("{}", self.trace_item_stack(context));
18998        let colon_colon_token = pop_item!(self, colon_colon_token, ColonColonToken, context);
18999        let colon_colon_built = ColonColon {
19000            colon_colon_token: (&colon_colon_token)
19001                .try_into()
19002                .map_err(parol_runtime::ParolError::UserError)?,
19003        };
19004        // Calling user action here
19005        self.user_grammar.colon_colon(&colon_colon_built)?;
19006        self.push(ASTType::ColonColon(colon_colon_built), context);
19007        Ok(())
19008    }
19009
19010    /// Semantic action for production 254:
19011    ///
19012    /// `Comma: CommaToken : VerylToken;`
19013    ///
19014    #[parol_runtime::function_name::named]
19015    fn comma(&mut self, _comma_token: &ParseTreeType<'t>) -> Result<()> {
19016        let context = function_name!();
19017        trace!("{}", self.trace_item_stack(context));
19018        let comma_token = pop_item!(self, comma_token, CommaToken, context);
19019        let comma_built = Comma {
19020            comma_token: (&comma_token)
19021                .try_into()
19022                .map_err(parol_runtime::ParolError::UserError)?,
19023        };
19024        // Calling user action here
19025        self.user_grammar.comma(&comma_built)?;
19026        self.push(ASTType::Comma(comma_built), context);
19027        Ok(())
19028    }
19029
19030    /// Semantic action for production 255:
19031    ///
19032    /// `DotDot: DotDotToken : VerylToken;`
19033    ///
19034    #[parol_runtime::function_name::named]
19035    fn dot_dot(&mut self, _dot_dot_token: &ParseTreeType<'t>) -> Result<()> {
19036        let context = function_name!();
19037        trace!("{}", self.trace_item_stack(context));
19038        let dot_dot_token = pop_item!(self, dot_dot_token, DotDotToken, context);
19039        let dot_dot_built = DotDot {
19040            dot_dot_token: (&dot_dot_token)
19041                .try_into()
19042                .map_err(parol_runtime::ParolError::UserError)?,
19043        };
19044        // Calling user action here
19045        self.user_grammar.dot_dot(&dot_dot_built)?;
19046        self.push(ASTType::DotDot(dot_dot_built), context);
19047        Ok(())
19048    }
19049
19050    /// Semantic action for production 256:
19051    ///
19052    /// `DotDotEqu: DotDotEquToken : VerylToken;`
19053    ///
19054    #[parol_runtime::function_name::named]
19055    fn dot_dot_equ(&mut self, _dot_dot_equ_token: &ParseTreeType<'t>) -> Result<()> {
19056        let context = function_name!();
19057        trace!("{}", self.trace_item_stack(context));
19058        let dot_dot_equ_token = pop_item!(self, dot_dot_equ_token, DotDotEquToken, context);
19059        let dot_dot_equ_built = DotDotEqu {
19060            dot_dot_equ_token: (&dot_dot_equ_token)
19061                .try_into()
19062                .map_err(parol_runtime::ParolError::UserError)?,
19063        };
19064        // Calling user action here
19065        self.user_grammar.dot_dot_equ(&dot_dot_equ_built)?;
19066        self.push(ASTType::DotDotEqu(dot_dot_equ_built), context);
19067        Ok(())
19068    }
19069
19070    /// Semantic action for production 257:
19071    ///
19072    /// `Dot: DotToken : VerylToken;`
19073    ///
19074    #[parol_runtime::function_name::named]
19075    fn dot(&mut self, _dot_token: &ParseTreeType<'t>) -> Result<()> {
19076        let context = function_name!();
19077        trace!("{}", self.trace_item_stack(context));
19078        let dot_token = pop_item!(self, dot_token, DotToken, context);
19079        let dot_built = Dot {
19080            dot_token: (&dot_token)
19081                .try_into()
19082                .map_err(parol_runtime::ParolError::UserError)?,
19083        };
19084        // Calling user action here
19085        self.user_grammar.dot(&dot_built)?;
19086        self.push(ASTType::Dot(dot_built), context);
19087        Ok(())
19088    }
19089
19090    /// Semantic action for production 258:
19091    ///
19092    /// `Equ: EquToken : VerylToken;`
19093    ///
19094    #[parol_runtime::function_name::named]
19095    fn equ(&mut self, _equ_token: &ParseTreeType<'t>) -> Result<()> {
19096        let context = function_name!();
19097        trace!("{}", self.trace_item_stack(context));
19098        let equ_token = pop_item!(self, equ_token, EquToken, context);
19099        let equ_built = Equ {
19100            equ_token: (&equ_token)
19101                .try_into()
19102                .map_err(parol_runtime::ParolError::UserError)?,
19103        };
19104        // Calling user action here
19105        self.user_grammar.equ(&equ_built)?;
19106        self.push(ASTType::Equ(equ_built), context);
19107        Ok(())
19108    }
19109
19110    /// Semantic action for production 259:
19111    ///
19112    /// `Hash: HashToken : VerylToken;`
19113    ///
19114    #[parol_runtime::function_name::named]
19115    fn hash(&mut self, _hash_token: &ParseTreeType<'t>) -> Result<()> {
19116        let context = function_name!();
19117        trace!("{}", self.trace_item_stack(context));
19118        let hash_token = pop_item!(self, hash_token, HashToken, context);
19119        let hash_built = Hash {
19120            hash_token: (&hash_token)
19121                .try_into()
19122                .map_err(parol_runtime::ParolError::UserError)?,
19123        };
19124        // Calling user action here
19125        self.user_grammar.hash(&hash_built)?;
19126        self.push(ASTType::Hash(hash_built), context);
19127        Ok(())
19128    }
19129
19130    /// Semantic action for production 260:
19131    ///
19132    /// `QuoteLBrace: QuoteLBraceToken : VerylToken;`
19133    ///
19134    #[parol_runtime::function_name::named]
19135    fn quote_l_brace(&mut self, _quote_l_brace_token: &ParseTreeType<'t>) -> Result<()> {
19136        let context = function_name!();
19137        trace!("{}", self.trace_item_stack(context));
19138        let quote_l_brace_token = pop_item!(self, quote_l_brace_token, QuoteLBraceToken, context);
19139        let quote_l_brace_built = QuoteLBrace {
19140            quote_l_brace_token: (&quote_l_brace_token)
19141                .try_into()
19142                .map_err(parol_runtime::ParolError::UserError)?,
19143        };
19144        // Calling user action here
19145        self.user_grammar.quote_l_brace(&quote_l_brace_built)?;
19146        self.push(ASTType::QuoteLBrace(quote_l_brace_built), context);
19147        Ok(())
19148    }
19149
19150    /// Semantic action for production 261:
19151    ///
19152    /// `LAngle: LAngleToken : VerylToken;`
19153    ///
19154    #[parol_runtime::function_name::named]
19155    fn l_angle(&mut self, _l_angle_token: &ParseTreeType<'t>) -> Result<()> {
19156        let context = function_name!();
19157        trace!("{}", self.trace_item_stack(context));
19158        let l_angle_token = pop_item!(self, l_angle_token, LAngleToken, context);
19159        let l_angle_built = LAngle {
19160            l_angle_token: (&l_angle_token)
19161                .try_into()
19162                .map_err(parol_runtime::ParolError::UserError)?,
19163        };
19164        // Calling user action here
19165        self.user_grammar.l_angle(&l_angle_built)?;
19166        self.push(ASTType::LAngle(l_angle_built), context);
19167        Ok(())
19168    }
19169
19170    /// Semantic action for production 262:
19171    ///
19172    /// `LBrace: LBraceToken : VerylToken;`
19173    ///
19174    #[parol_runtime::function_name::named]
19175    fn l_brace(&mut self, _l_brace_token: &ParseTreeType<'t>) -> Result<()> {
19176        let context = function_name!();
19177        trace!("{}", self.trace_item_stack(context));
19178        let l_brace_token = pop_item!(self, l_brace_token, LBraceToken, context);
19179        let l_brace_built = LBrace {
19180            l_brace_token: (&l_brace_token)
19181                .try_into()
19182                .map_err(parol_runtime::ParolError::UserError)?,
19183        };
19184        // Calling user action here
19185        self.user_grammar.l_brace(&l_brace_built)?;
19186        self.push(ASTType::LBrace(l_brace_built), context);
19187        Ok(())
19188    }
19189
19190    /// Semantic action for production 263:
19191    ///
19192    /// `LBracket: LBracketToken : VerylToken;`
19193    ///
19194    #[parol_runtime::function_name::named]
19195    fn l_bracket(&mut self, _l_bracket_token: &ParseTreeType<'t>) -> Result<()> {
19196        let context = function_name!();
19197        trace!("{}", self.trace_item_stack(context));
19198        let l_bracket_token = pop_item!(self, l_bracket_token, LBracketToken, context);
19199        let l_bracket_built = LBracket {
19200            l_bracket_token: (&l_bracket_token)
19201                .try_into()
19202                .map_err(parol_runtime::ParolError::UserError)?,
19203        };
19204        // Calling user action here
19205        self.user_grammar.l_bracket(&l_bracket_built)?;
19206        self.push(ASTType::LBracket(l_bracket_built), context);
19207        Ok(())
19208    }
19209
19210    /// Semantic action for production 264:
19211    ///
19212    /// `LParen: LParenToken : VerylToken;`
19213    ///
19214    #[parol_runtime::function_name::named]
19215    fn l_paren(&mut self, _l_paren_token: &ParseTreeType<'t>) -> Result<()> {
19216        let context = function_name!();
19217        trace!("{}", self.trace_item_stack(context));
19218        let l_paren_token = pop_item!(self, l_paren_token, LParenToken, context);
19219        let l_paren_built = LParen {
19220            l_paren_token: (&l_paren_token)
19221                .try_into()
19222                .map_err(parol_runtime::ParolError::UserError)?,
19223        };
19224        // Calling user action here
19225        self.user_grammar.l_paren(&l_paren_built)?;
19226        self.push(ASTType::LParen(l_paren_built), context);
19227        Ok(())
19228    }
19229
19230    /// Semantic action for production 265:
19231    ///
19232    /// `MinusColon: MinusColonToken : VerylToken;`
19233    ///
19234    #[parol_runtime::function_name::named]
19235    fn minus_colon(&mut self, _minus_colon_token: &ParseTreeType<'t>) -> Result<()> {
19236        let context = function_name!();
19237        trace!("{}", self.trace_item_stack(context));
19238        let minus_colon_token = pop_item!(self, minus_colon_token, MinusColonToken, context);
19239        let minus_colon_built = MinusColon {
19240            minus_colon_token: (&minus_colon_token)
19241                .try_into()
19242                .map_err(parol_runtime::ParolError::UserError)?,
19243        };
19244        // Calling user action here
19245        self.user_grammar.minus_colon(&minus_colon_built)?;
19246        self.push(ASTType::MinusColon(minus_colon_built), context);
19247        Ok(())
19248    }
19249
19250    /// Semantic action for production 266:
19251    ///
19252    /// `MinusGT: MinusGTToken : VerylToken;`
19253    ///
19254    #[parol_runtime::function_name::named]
19255    fn minus_g_t(&mut self, _minus_g_t_token: &ParseTreeType<'t>) -> Result<()> {
19256        let context = function_name!();
19257        trace!("{}", self.trace_item_stack(context));
19258        let minus_g_t_token = pop_item!(self, minus_g_t_token, MinusGTToken, context);
19259        let minus_g_t_built = MinusGT {
19260            minus_g_t_token: (&minus_g_t_token)
19261                .try_into()
19262                .map_err(parol_runtime::ParolError::UserError)?,
19263        };
19264        // Calling user action here
19265        self.user_grammar.minus_g_t(&minus_g_t_built)?;
19266        self.push(ASTType::MinusGT(minus_g_t_built), context);
19267        Ok(())
19268    }
19269
19270    /// Semantic action for production 267:
19271    ///
19272    /// `PlusColon: PlusColonToken : VerylToken;`
19273    ///
19274    #[parol_runtime::function_name::named]
19275    fn plus_colon(&mut self, _plus_colon_token: &ParseTreeType<'t>) -> Result<()> {
19276        let context = function_name!();
19277        trace!("{}", self.trace_item_stack(context));
19278        let plus_colon_token = pop_item!(self, plus_colon_token, PlusColonToken, context);
19279        let plus_colon_built = PlusColon {
19280            plus_colon_token: (&plus_colon_token)
19281                .try_into()
19282                .map_err(parol_runtime::ParolError::UserError)?,
19283        };
19284        // Calling user action here
19285        self.user_grammar.plus_colon(&plus_colon_built)?;
19286        self.push(ASTType::PlusColon(plus_colon_built), context);
19287        Ok(())
19288    }
19289
19290    /// Semantic action for production 268:
19291    ///
19292    /// `RAngle: RAngleToken : VerylToken;`
19293    ///
19294    #[parol_runtime::function_name::named]
19295    fn r_angle(&mut self, _r_angle_token: &ParseTreeType<'t>) -> Result<()> {
19296        let context = function_name!();
19297        trace!("{}", self.trace_item_stack(context));
19298        let r_angle_token = pop_item!(self, r_angle_token, RAngleToken, context);
19299        let r_angle_built = RAngle {
19300            r_angle_token: (&r_angle_token)
19301                .try_into()
19302                .map_err(parol_runtime::ParolError::UserError)?,
19303        };
19304        // Calling user action here
19305        self.user_grammar.r_angle(&r_angle_built)?;
19306        self.push(ASTType::RAngle(r_angle_built), context);
19307        Ok(())
19308    }
19309
19310    /// Semantic action for production 269:
19311    ///
19312    /// `RBrace: RBraceToken : VerylToken;`
19313    ///
19314    #[parol_runtime::function_name::named]
19315    fn r_brace(&mut self, _r_brace_token: &ParseTreeType<'t>) -> Result<()> {
19316        let context = function_name!();
19317        trace!("{}", self.trace_item_stack(context));
19318        let r_brace_token = pop_item!(self, r_brace_token, RBraceToken, context);
19319        let r_brace_built = RBrace {
19320            r_brace_token: (&r_brace_token)
19321                .try_into()
19322                .map_err(parol_runtime::ParolError::UserError)?,
19323        };
19324        // Calling user action here
19325        self.user_grammar.r_brace(&r_brace_built)?;
19326        self.push(ASTType::RBrace(r_brace_built), context);
19327        Ok(())
19328    }
19329
19330    /// Semantic action for production 270:
19331    ///
19332    /// `RBracket: RBracketToken : VerylToken;`
19333    ///
19334    #[parol_runtime::function_name::named]
19335    fn r_bracket(&mut self, _r_bracket_token: &ParseTreeType<'t>) -> Result<()> {
19336        let context = function_name!();
19337        trace!("{}", self.trace_item_stack(context));
19338        let r_bracket_token = pop_item!(self, r_bracket_token, RBracketToken, context);
19339        let r_bracket_built = RBracket {
19340            r_bracket_token: (&r_bracket_token)
19341                .try_into()
19342                .map_err(parol_runtime::ParolError::UserError)?,
19343        };
19344        // Calling user action here
19345        self.user_grammar.r_bracket(&r_bracket_built)?;
19346        self.push(ASTType::RBracket(r_bracket_built), context);
19347        Ok(())
19348    }
19349
19350    /// Semantic action for production 271:
19351    ///
19352    /// `RParen: RParenToken : VerylToken;`
19353    ///
19354    #[parol_runtime::function_name::named]
19355    fn r_paren(&mut self, _r_paren_token: &ParseTreeType<'t>) -> Result<()> {
19356        let context = function_name!();
19357        trace!("{}", self.trace_item_stack(context));
19358        let r_paren_token = pop_item!(self, r_paren_token, RParenToken, context);
19359        let r_paren_built = RParen {
19360            r_paren_token: (&r_paren_token)
19361                .try_into()
19362                .map_err(parol_runtime::ParolError::UserError)?,
19363        };
19364        // Calling user action here
19365        self.user_grammar.r_paren(&r_paren_built)?;
19366        self.push(ASTType::RParen(r_paren_built), context);
19367        Ok(())
19368    }
19369
19370    /// Semantic action for production 272:
19371    ///
19372    /// `Semicolon: SemicolonToken : VerylToken;`
19373    ///
19374    #[parol_runtime::function_name::named]
19375    fn semicolon(&mut self, _semicolon_token: &ParseTreeType<'t>) -> Result<()> {
19376        let context = function_name!();
19377        trace!("{}", self.trace_item_stack(context));
19378        let semicolon_token = pop_item!(self, semicolon_token, SemicolonToken, context);
19379        let semicolon_built = Semicolon {
19380            semicolon_token: (&semicolon_token)
19381                .try_into()
19382                .map_err(parol_runtime::ParolError::UserError)?,
19383        };
19384        // Calling user action here
19385        self.user_grammar.semicolon(&semicolon_built)?;
19386        self.push(ASTType::Semicolon(semicolon_built), context);
19387        Ok(())
19388    }
19389
19390    /// Semantic action for production 273:
19391    ///
19392    /// `Star: StarToken : VerylToken;`
19393    ///
19394    #[parol_runtime::function_name::named]
19395    fn star(&mut self, _star_token: &ParseTreeType<'t>) -> Result<()> {
19396        let context = function_name!();
19397        trace!("{}", self.trace_item_stack(context));
19398        let star_token = pop_item!(self, star_token, StarToken, context);
19399        let star_built = Star {
19400            star_token: (&star_token)
19401                .try_into()
19402                .map_err(parol_runtime::ParolError::UserError)?,
19403        };
19404        // Calling user action here
19405        self.user_grammar.star(&star_built)?;
19406        self.push(ASTType::Star(star_built), context);
19407        Ok(())
19408    }
19409
19410    /// Semantic action for production 274:
19411    ///
19412    /// `AlwaysComb: AlwaysCombToken : VerylToken;`
19413    ///
19414    #[parol_runtime::function_name::named]
19415    fn always_comb(&mut self, _always_comb_token: &ParseTreeType<'t>) -> Result<()> {
19416        let context = function_name!();
19417        trace!("{}", self.trace_item_stack(context));
19418        let always_comb_token = pop_item!(self, always_comb_token, AlwaysCombToken, context);
19419        let always_comb_built = AlwaysComb {
19420            always_comb_token: (&always_comb_token)
19421                .try_into()
19422                .map_err(parol_runtime::ParolError::UserError)?,
19423        };
19424        // Calling user action here
19425        self.user_grammar.always_comb(&always_comb_built)?;
19426        self.push(ASTType::AlwaysComb(always_comb_built), context);
19427        Ok(())
19428    }
19429
19430    /// Semantic action for production 275:
19431    ///
19432    /// `AlwaysFf: AlwaysFfToken : VerylToken;`
19433    ///
19434    #[parol_runtime::function_name::named]
19435    fn always_ff(&mut self, _always_ff_token: &ParseTreeType<'t>) -> Result<()> {
19436        let context = function_name!();
19437        trace!("{}", self.trace_item_stack(context));
19438        let always_ff_token = pop_item!(self, always_ff_token, AlwaysFfToken, context);
19439        let always_ff_built = AlwaysFf {
19440            always_ff_token: (&always_ff_token)
19441                .try_into()
19442                .map_err(parol_runtime::ParolError::UserError)?,
19443        };
19444        // Calling user action here
19445        self.user_grammar.always_ff(&always_ff_built)?;
19446        self.push(ASTType::AlwaysFf(always_ff_built), context);
19447        Ok(())
19448    }
19449
19450    /// Semantic action for production 276:
19451    ///
19452    /// `As: AsToken : VerylToken;`
19453    ///
19454    #[parol_runtime::function_name::named]
19455    fn r#as(&mut self, _as_token: &ParseTreeType<'t>) -> Result<()> {
19456        let context = function_name!();
19457        trace!("{}", self.trace_item_stack(context));
19458        let as_token = pop_item!(self, as_token, AsToken, context);
19459        let r#as_built = As {
19460            as_token: (&as_token)
19461                .try_into()
19462                .map_err(parol_runtime::ParolError::UserError)?,
19463        };
19464        // Calling user action here
19465        self.user_grammar.r#as(&r#as_built)?;
19466        self.push(ASTType::As(r#as_built), context);
19467        Ok(())
19468    }
19469
19470    /// Semantic action for production 277:
19471    ///
19472    /// `Assign: AssignToken : VerylToken;`
19473    ///
19474    #[parol_runtime::function_name::named]
19475    fn assign(&mut self, _assign_token: &ParseTreeType<'t>) -> Result<()> {
19476        let context = function_name!();
19477        trace!("{}", self.trace_item_stack(context));
19478        let assign_token = pop_item!(self, assign_token, AssignToken, context);
19479        let assign_built = Assign {
19480            assign_token: (&assign_token)
19481                .try_into()
19482                .map_err(parol_runtime::ParolError::UserError)?,
19483        };
19484        // Calling user action here
19485        self.user_grammar.assign(&assign_built)?;
19486        self.push(ASTType::Assign(assign_built), context);
19487        Ok(())
19488    }
19489
19490    /// Semantic action for production 278:
19491    ///
19492    /// `Bit: BitToken : VerylToken;`
19493    ///
19494    #[parol_runtime::function_name::named]
19495    fn bit(&mut self, _bit_token: &ParseTreeType<'t>) -> Result<()> {
19496        let context = function_name!();
19497        trace!("{}", self.trace_item_stack(context));
19498        let bit_token = pop_item!(self, bit_token, BitToken, context);
19499        let bit_built = Bit {
19500            bit_token: (&bit_token)
19501                .try_into()
19502                .map_err(parol_runtime::ParolError::UserError)?,
19503        };
19504        // Calling user action here
19505        self.user_grammar.bit(&bit_built)?;
19506        self.push(ASTType::Bit(bit_built), context);
19507        Ok(())
19508    }
19509
19510    /// Semantic action for production 279:
19511    ///
19512    /// `Break: BreakToken : VerylToken;`
19513    ///
19514    #[parol_runtime::function_name::named]
19515    fn r#break(&mut self, _break_token: &ParseTreeType<'t>) -> Result<()> {
19516        let context = function_name!();
19517        trace!("{}", self.trace_item_stack(context));
19518        let break_token = pop_item!(self, break_token, BreakToken, context);
19519        let r#break_built = Break {
19520            break_token: (&break_token)
19521                .try_into()
19522                .map_err(parol_runtime::ParolError::UserError)?,
19523        };
19524        // Calling user action here
19525        self.user_grammar.r#break(&r#break_built)?;
19526        self.push(ASTType::Break(r#break_built), context);
19527        Ok(())
19528    }
19529
19530    /// Semantic action for production 280:
19531    ///
19532    /// `Case: CaseToken : VerylToken;`
19533    ///
19534    #[parol_runtime::function_name::named]
19535    fn case(&mut self, _case_token: &ParseTreeType<'t>) -> Result<()> {
19536        let context = function_name!();
19537        trace!("{}", self.trace_item_stack(context));
19538        let case_token = pop_item!(self, case_token, CaseToken, context);
19539        let case_built = Case {
19540            case_token: (&case_token)
19541                .try_into()
19542                .map_err(parol_runtime::ParolError::UserError)?,
19543        };
19544        // Calling user action here
19545        self.user_grammar.case(&case_built)?;
19546        self.push(ASTType::Case(case_built), context);
19547        Ok(())
19548    }
19549
19550    /// Semantic action for production 281:
19551    ///
19552    /// `Clock: ClockToken : VerylToken;`
19553    ///
19554    #[parol_runtime::function_name::named]
19555    fn clock(&mut self, _clock_token: &ParseTreeType<'t>) -> Result<()> {
19556        let context = function_name!();
19557        trace!("{}", self.trace_item_stack(context));
19558        let clock_token = pop_item!(self, clock_token, ClockToken, context);
19559        let clock_built = Clock {
19560            clock_token: (&clock_token)
19561                .try_into()
19562                .map_err(parol_runtime::ParolError::UserError)?,
19563        };
19564        // Calling user action here
19565        self.user_grammar.clock(&clock_built)?;
19566        self.push(ASTType::Clock(clock_built), context);
19567        Ok(())
19568    }
19569
19570    /// Semantic action for production 282:
19571    ///
19572    /// `ClockPosedge: ClockPosedgeToken : VerylToken;`
19573    ///
19574    #[parol_runtime::function_name::named]
19575    fn clock_posedge(&mut self, _clock_posedge_token: &ParseTreeType<'t>) -> Result<()> {
19576        let context = function_name!();
19577        trace!("{}", self.trace_item_stack(context));
19578        let clock_posedge_token = pop_item!(self, clock_posedge_token, ClockPosedgeToken, context);
19579        let clock_posedge_built = ClockPosedge {
19580            clock_posedge_token: (&clock_posedge_token)
19581                .try_into()
19582                .map_err(parol_runtime::ParolError::UserError)?,
19583        };
19584        // Calling user action here
19585        self.user_grammar.clock_posedge(&clock_posedge_built)?;
19586        self.push(ASTType::ClockPosedge(clock_posedge_built), context);
19587        Ok(())
19588    }
19589
19590    /// Semantic action for production 283:
19591    ///
19592    /// `ClockNegedge: ClockNegedgeToken : VerylToken;`
19593    ///
19594    #[parol_runtime::function_name::named]
19595    fn clock_negedge(&mut self, _clock_negedge_token: &ParseTreeType<'t>) -> Result<()> {
19596        let context = function_name!();
19597        trace!("{}", self.trace_item_stack(context));
19598        let clock_negedge_token = pop_item!(self, clock_negedge_token, ClockNegedgeToken, context);
19599        let clock_negedge_built = ClockNegedge {
19600            clock_negedge_token: (&clock_negedge_token)
19601                .try_into()
19602                .map_err(parol_runtime::ParolError::UserError)?,
19603        };
19604        // Calling user action here
19605        self.user_grammar.clock_negedge(&clock_negedge_built)?;
19606        self.push(ASTType::ClockNegedge(clock_negedge_built), context);
19607        Ok(())
19608    }
19609
19610    /// Semantic action for production 284:
19611    ///
19612    /// `Const: ConstToken : VerylToken;`
19613    ///
19614    #[parol_runtime::function_name::named]
19615    fn r#const(&mut self, _const_token: &ParseTreeType<'t>) -> Result<()> {
19616        let context = function_name!();
19617        trace!("{}", self.trace_item_stack(context));
19618        let const_token = pop_item!(self, const_token, ConstToken, context);
19619        let r#const_built = Const {
19620            const_token: (&const_token)
19621                .try_into()
19622                .map_err(parol_runtime::ParolError::UserError)?,
19623        };
19624        // Calling user action here
19625        self.user_grammar.r#const(&r#const_built)?;
19626        self.push(ASTType::Const(r#const_built), context);
19627        Ok(())
19628    }
19629
19630    /// Semantic action for production 285:
19631    ///
19632    /// `Converse: ConverseToken : VerylToken;`
19633    ///
19634    #[parol_runtime::function_name::named]
19635    fn converse(&mut self, _converse_token: &ParseTreeType<'t>) -> Result<()> {
19636        let context = function_name!();
19637        trace!("{}", self.trace_item_stack(context));
19638        let converse_token = pop_item!(self, converse_token, ConverseToken, context);
19639        let converse_built = Converse {
19640            converse_token: (&converse_token)
19641                .try_into()
19642                .map_err(parol_runtime::ParolError::UserError)?,
19643        };
19644        // Calling user action here
19645        self.user_grammar.converse(&converse_built)?;
19646        self.push(ASTType::Converse(converse_built), context);
19647        Ok(())
19648    }
19649
19650    /// Semantic action for production 286:
19651    ///
19652    /// `Defaul: DefaultToken : VerylToken;`
19653    ///
19654    #[parol_runtime::function_name::named]
19655    fn defaul(&mut self, _default_token: &ParseTreeType<'t>) -> Result<()> {
19656        let context = function_name!();
19657        trace!("{}", self.trace_item_stack(context));
19658        let default_token = pop_item!(self, default_token, DefaultToken, context);
19659        let defaul_built = Defaul {
19660            default_token: (&default_token)
19661                .try_into()
19662                .map_err(parol_runtime::ParolError::UserError)?,
19663        };
19664        // Calling user action here
19665        self.user_grammar.defaul(&defaul_built)?;
19666        self.push(ASTType::Defaul(defaul_built), context);
19667        Ok(())
19668    }
19669
19670    /// Semantic action for production 287:
19671    ///
19672    /// `Else: ElseToken : VerylToken;`
19673    ///
19674    #[parol_runtime::function_name::named]
19675    fn r#else(&mut self, _else_token: &ParseTreeType<'t>) -> Result<()> {
19676        let context = function_name!();
19677        trace!("{}", self.trace_item_stack(context));
19678        let else_token = pop_item!(self, else_token, ElseToken, context);
19679        let r#else_built = Else {
19680            else_token: (&else_token)
19681                .try_into()
19682                .map_err(parol_runtime::ParolError::UserError)?,
19683        };
19684        // Calling user action here
19685        self.user_grammar.r#else(&r#else_built)?;
19686        self.push(ASTType::Else(r#else_built), context);
19687        Ok(())
19688    }
19689
19690    /// Semantic action for production 288:
19691    ///
19692    /// `Embed: EmbedToken : VerylToken;`
19693    ///
19694    #[parol_runtime::function_name::named]
19695    fn embed(&mut self, _embed_token: &ParseTreeType<'t>) -> Result<()> {
19696        let context = function_name!();
19697        trace!("{}", self.trace_item_stack(context));
19698        let embed_token = pop_item!(self, embed_token, EmbedToken, context);
19699        let embed_built = Embed {
19700            embed_token: (&embed_token)
19701                .try_into()
19702                .map_err(parol_runtime::ParolError::UserError)?,
19703        };
19704        // Calling user action here
19705        self.user_grammar.embed(&embed_built)?;
19706        self.push(ASTType::Embed(embed_built), context);
19707        Ok(())
19708    }
19709
19710    /// Semantic action for production 289:
19711    ///
19712    /// `Enum: EnumToken : VerylToken;`
19713    ///
19714    #[parol_runtime::function_name::named]
19715    fn r#enum(&mut self, _enum_token: &ParseTreeType<'t>) -> Result<()> {
19716        let context = function_name!();
19717        trace!("{}", self.trace_item_stack(context));
19718        let enum_token = pop_item!(self, enum_token, EnumToken, context);
19719        let r#enum_built = Enum {
19720            enum_token: (&enum_token)
19721                .try_into()
19722                .map_err(parol_runtime::ParolError::UserError)?,
19723        };
19724        // Calling user action here
19725        self.user_grammar.r#enum(&r#enum_built)?;
19726        self.push(ASTType::Enum(r#enum_built), context);
19727        Ok(())
19728    }
19729
19730    /// Semantic action for production 290:
19731    ///
19732    /// `Export: ExportToken : VerylToken;`
19733    ///
19734    #[parol_runtime::function_name::named]
19735    fn export(&mut self, _export_token: &ParseTreeType<'t>) -> Result<()> {
19736        let context = function_name!();
19737        trace!("{}", self.trace_item_stack(context));
19738        let export_token = pop_item!(self, export_token, ExportToken, context);
19739        let export_built = Export {
19740            export_token: (&export_token)
19741                .try_into()
19742                .map_err(parol_runtime::ParolError::UserError)?,
19743        };
19744        // Calling user action here
19745        self.user_grammar.export(&export_built)?;
19746        self.push(ASTType::Export(export_built), context);
19747        Ok(())
19748    }
19749
19750    /// Semantic action for production 291:
19751    ///
19752    /// `F32: F32Token : VerylToken;`
19753    ///
19754    #[parol_runtime::function_name::named]
19755    fn f32(&mut self, _f32_token: &ParseTreeType<'t>) -> Result<()> {
19756        let context = function_name!();
19757        trace!("{}", self.trace_item_stack(context));
19758        let f32_token = pop_item!(self, f32_token, F32Token, context);
19759        let f32_built = F32 {
19760            f32_token: (&f32_token)
19761                .try_into()
19762                .map_err(parol_runtime::ParolError::UserError)?,
19763        };
19764        // Calling user action here
19765        self.user_grammar.f32(&f32_built)?;
19766        self.push(ASTType::F32(f32_built), context);
19767        Ok(())
19768    }
19769
19770    /// Semantic action for production 292:
19771    ///
19772    /// `F64: F64Token : VerylToken;`
19773    ///
19774    #[parol_runtime::function_name::named]
19775    fn f64(&mut self, _f64_token: &ParseTreeType<'t>) -> Result<()> {
19776        let context = function_name!();
19777        trace!("{}", self.trace_item_stack(context));
19778        let f64_token = pop_item!(self, f64_token, F64Token, context);
19779        let f64_built = F64 {
19780            f64_token: (&f64_token)
19781                .try_into()
19782                .map_err(parol_runtime::ParolError::UserError)?,
19783        };
19784        // Calling user action here
19785        self.user_grammar.f64(&f64_built)?;
19786        self.push(ASTType::F64(f64_built), context);
19787        Ok(())
19788    }
19789
19790    /// Semantic action for production 293:
19791    ///
19792    /// `Final: FinalToken : VerylToken;`
19793    ///
19794    #[parol_runtime::function_name::named]
19795    fn r#final(&mut self, _final_token: &ParseTreeType<'t>) -> Result<()> {
19796        let context = function_name!();
19797        trace!("{}", self.trace_item_stack(context));
19798        let final_token = pop_item!(self, final_token, FinalToken, context);
19799        let r#final_built = Final {
19800            final_token: (&final_token)
19801                .try_into()
19802                .map_err(parol_runtime::ParolError::UserError)?,
19803        };
19804        // Calling user action here
19805        self.user_grammar.r#final(&r#final_built)?;
19806        self.push(ASTType::Final(r#final_built), context);
19807        Ok(())
19808    }
19809
19810    /// Semantic action for production 294:
19811    ///
19812    /// `For: ForToken : VerylToken;`
19813    ///
19814    #[parol_runtime::function_name::named]
19815    fn r#for(&mut self, _for_token: &ParseTreeType<'t>) -> Result<()> {
19816        let context = function_name!();
19817        trace!("{}", self.trace_item_stack(context));
19818        let for_token = pop_item!(self, for_token, ForToken, context);
19819        let r#for_built = For {
19820            for_token: (&for_token)
19821                .try_into()
19822                .map_err(parol_runtime::ParolError::UserError)?,
19823        };
19824        // Calling user action here
19825        self.user_grammar.r#for(&r#for_built)?;
19826        self.push(ASTType::For(r#for_built), context);
19827        Ok(())
19828    }
19829
19830    /// Semantic action for production 295:
19831    ///
19832    /// `Function: FunctionToken : VerylToken;`
19833    ///
19834    #[parol_runtime::function_name::named]
19835    fn function(&mut self, _function_token: &ParseTreeType<'t>) -> Result<()> {
19836        let context = function_name!();
19837        trace!("{}", self.trace_item_stack(context));
19838        let function_token = pop_item!(self, function_token, FunctionToken, context);
19839        let function_built = Function {
19840            function_token: (&function_token)
19841                .try_into()
19842                .map_err(parol_runtime::ParolError::UserError)?,
19843        };
19844        // Calling user action here
19845        self.user_grammar.function(&function_built)?;
19846        self.push(ASTType::Function(function_built), context);
19847        Ok(())
19848    }
19849
19850    /// Semantic action for production 296:
19851    ///
19852    /// `I32: I32Token : VerylToken;`
19853    ///
19854    #[parol_runtime::function_name::named]
19855    fn i32(&mut self, _i32_token: &ParseTreeType<'t>) -> Result<()> {
19856        let context = function_name!();
19857        trace!("{}", self.trace_item_stack(context));
19858        let i32_token = pop_item!(self, i32_token, I32Token, context);
19859        let i32_built = I32 {
19860            i32_token: (&i32_token)
19861                .try_into()
19862                .map_err(parol_runtime::ParolError::UserError)?,
19863        };
19864        // Calling user action here
19865        self.user_grammar.i32(&i32_built)?;
19866        self.push(ASTType::I32(i32_built), context);
19867        Ok(())
19868    }
19869
19870    /// Semantic action for production 297:
19871    ///
19872    /// `I64: I64Token : VerylToken;`
19873    ///
19874    #[parol_runtime::function_name::named]
19875    fn i64(&mut self, _i64_token: &ParseTreeType<'t>) -> Result<()> {
19876        let context = function_name!();
19877        trace!("{}", self.trace_item_stack(context));
19878        let i64_token = pop_item!(self, i64_token, I64Token, context);
19879        let i64_built = I64 {
19880            i64_token: (&i64_token)
19881                .try_into()
19882                .map_err(parol_runtime::ParolError::UserError)?,
19883        };
19884        // Calling user action here
19885        self.user_grammar.i64(&i64_built)?;
19886        self.push(ASTType::I64(i64_built), context);
19887        Ok(())
19888    }
19889
19890    /// Semantic action for production 298:
19891    ///
19892    /// `If: IfToken : VerylToken;`
19893    ///
19894    #[parol_runtime::function_name::named]
19895    fn r#if(&mut self, _if_token: &ParseTreeType<'t>) -> Result<()> {
19896        let context = function_name!();
19897        trace!("{}", self.trace_item_stack(context));
19898        let if_token = pop_item!(self, if_token, IfToken, context);
19899        let r#if_built = If {
19900            if_token: (&if_token)
19901                .try_into()
19902                .map_err(parol_runtime::ParolError::UserError)?,
19903        };
19904        // Calling user action here
19905        self.user_grammar.r#if(&r#if_built)?;
19906        self.push(ASTType::If(r#if_built), context);
19907        Ok(())
19908    }
19909
19910    /// Semantic action for production 299:
19911    ///
19912    /// `IfReset: IfResetToken : VerylToken;`
19913    ///
19914    #[parol_runtime::function_name::named]
19915    fn if_reset(&mut self, _if_reset_token: &ParseTreeType<'t>) -> Result<()> {
19916        let context = function_name!();
19917        trace!("{}", self.trace_item_stack(context));
19918        let if_reset_token = pop_item!(self, if_reset_token, IfResetToken, context);
19919        let if_reset_built = IfReset {
19920            if_reset_token: (&if_reset_token)
19921                .try_into()
19922                .map_err(parol_runtime::ParolError::UserError)?,
19923        };
19924        // Calling user action here
19925        self.user_grammar.if_reset(&if_reset_built)?;
19926        self.push(ASTType::IfReset(if_reset_built), context);
19927        Ok(())
19928    }
19929
19930    /// Semantic action for production 300:
19931    ///
19932    /// `Import: ImportToken : VerylToken;`
19933    ///
19934    #[parol_runtime::function_name::named]
19935    fn import(&mut self, _import_token: &ParseTreeType<'t>) -> Result<()> {
19936        let context = function_name!();
19937        trace!("{}", self.trace_item_stack(context));
19938        let import_token = pop_item!(self, import_token, ImportToken, context);
19939        let import_built = Import {
19940            import_token: (&import_token)
19941                .try_into()
19942                .map_err(parol_runtime::ParolError::UserError)?,
19943        };
19944        // Calling user action here
19945        self.user_grammar.import(&import_built)?;
19946        self.push(ASTType::Import(import_built), context);
19947        Ok(())
19948    }
19949
19950    /// Semantic action for production 301:
19951    ///
19952    /// `In: InToken : VerylToken;`
19953    ///
19954    #[parol_runtime::function_name::named]
19955    fn r#in(&mut self, _in_token: &ParseTreeType<'t>) -> Result<()> {
19956        let context = function_name!();
19957        trace!("{}", self.trace_item_stack(context));
19958        let in_token = pop_item!(self, in_token, InToken, context);
19959        let r#in_built = In {
19960            in_token: (&in_token)
19961                .try_into()
19962                .map_err(parol_runtime::ParolError::UserError)?,
19963        };
19964        // Calling user action here
19965        self.user_grammar.r#in(&r#in_built)?;
19966        self.push(ASTType::In(r#in_built), context);
19967        Ok(())
19968    }
19969
19970    /// Semantic action for production 302:
19971    ///
19972    /// `Include: IncludeToken : VerylToken;`
19973    ///
19974    #[parol_runtime::function_name::named]
19975    fn include(&mut self, _include_token: &ParseTreeType<'t>) -> Result<()> {
19976        let context = function_name!();
19977        trace!("{}", self.trace_item_stack(context));
19978        let include_token = pop_item!(self, include_token, IncludeToken, context);
19979        let include_built = Include {
19980            include_token: (&include_token)
19981                .try_into()
19982                .map_err(parol_runtime::ParolError::UserError)?,
19983        };
19984        // Calling user action here
19985        self.user_grammar.include(&include_built)?;
19986        self.push(ASTType::Include(include_built), context);
19987        Ok(())
19988    }
19989
19990    /// Semantic action for production 303:
19991    ///
19992    /// `Initial: InitialToken : VerylToken;`
19993    ///
19994    #[parol_runtime::function_name::named]
19995    fn initial(&mut self, _initial_token: &ParseTreeType<'t>) -> Result<()> {
19996        let context = function_name!();
19997        trace!("{}", self.trace_item_stack(context));
19998        let initial_token = pop_item!(self, initial_token, InitialToken, context);
19999        let initial_built = Initial {
20000            initial_token: (&initial_token)
20001                .try_into()
20002                .map_err(parol_runtime::ParolError::UserError)?,
20003        };
20004        // Calling user action here
20005        self.user_grammar.initial(&initial_built)?;
20006        self.push(ASTType::Initial(initial_built), context);
20007        Ok(())
20008    }
20009
20010    /// Semantic action for production 304:
20011    ///
20012    /// `Inout: InoutToken : VerylToken;`
20013    ///
20014    #[parol_runtime::function_name::named]
20015    fn inout(&mut self, _inout_token: &ParseTreeType<'t>) -> Result<()> {
20016        let context = function_name!();
20017        trace!("{}", self.trace_item_stack(context));
20018        let inout_token = pop_item!(self, inout_token, InoutToken, context);
20019        let inout_built = Inout {
20020            inout_token: (&inout_token)
20021                .try_into()
20022                .map_err(parol_runtime::ParolError::UserError)?,
20023        };
20024        // Calling user action here
20025        self.user_grammar.inout(&inout_built)?;
20026        self.push(ASTType::Inout(inout_built), context);
20027        Ok(())
20028    }
20029
20030    /// Semantic action for production 305:
20031    ///
20032    /// `Input: InputToken : VerylToken;`
20033    ///
20034    #[parol_runtime::function_name::named]
20035    fn input(&mut self, _input_token: &ParseTreeType<'t>) -> Result<()> {
20036        let context = function_name!();
20037        trace!("{}", self.trace_item_stack(context));
20038        let input_token = pop_item!(self, input_token, InputToken, context);
20039        let input_built = Input {
20040            input_token: (&input_token)
20041                .try_into()
20042                .map_err(parol_runtime::ParolError::UserError)?,
20043        };
20044        // Calling user action here
20045        self.user_grammar.input(&input_built)?;
20046        self.push(ASTType::Input(input_built), context);
20047        Ok(())
20048    }
20049
20050    /// Semantic action for production 306:
20051    ///
20052    /// `Inside: InsideToken : VerylToken;`
20053    ///
20054    #[parol_runtime::function_name::named]
20055    fn inside(&mut self, _inside_token: &ParseTreeType<'t>) -> Result<()> {
20056        let context = function_name!();
20057        trace!("{}", self.trace_item_stack(context));
20058        let inside_token = pop_item!(self, inside_token, InsideToken, context);
20059        let inside_built = Inside {
20060            inside_token: (&inside_token)
20061                .try_into()
20062                .map_err(parol_runtime::ParolError::UserError)?,
20063        };
20064        // Calling user action here
20065        self.user_grammar.inside(&inside_built)?;
20066        self.push(ASTType::Inside(inside_built), context);
20067        Ok(())
20068    }
20069
20070    /// Semantic action for production 307:
20071    ///
20072    /// `Inst: InstToken : VerylToken;`
20073    ///
20074    #[parol_runtime::function_name::named]
20075    fn inst(&mut self, _inst_token: &ParseTreeType<'t>) -> Result<()> {
20076        let context = function_name!();
20077        trace!("{}", self.trace_item_stack(context));
20078        let inst_token = pop_item!(self, inst_token, InstToken, context);
20079        let inst_built = Inst {
20080            inst_token: (&inst_token)
20081                .try_into()
20082                .map_err(parol_runtime::ParolError::UserError)?,
20083        };
20084        // Calling user action here
20085        self.user_grammar.inst(&inst_built)?;
20086        self.push(ASTType::Inst(inst_built), context);
20087        Ok(())
20088    }
20089
20090    /// Semantic action for production 308:
20091    ///
20092    /// `Interface: InterfaceToken : VerylToken;`
20093    ///
20094    #[parol_runtime::function_name::named]
20095    fn interface(&mut self, _interface_token: &ParseTreeType<'t>) -> Result<()> {
20096        let context = function_name!();
20097        trace!("{}", self.trace_item_stack(context));
20098        let interface_token = pop_item!(self, interface_token, InterfaceToken, context);
20099        let interface_built = Interface {
20100            interface_token: (&interface_token)
20101                .try_into()
20102                .map_err(parol_runtime::ParolError::UserError)?,
20103        };
20104        // Calling user action here
20105        self.user_grammar.interface(&interface_built)?;
20106        self.push(ASTType::Interface(interface_built), context);
20107        Ok(())
20108    }
20109
20110    /// Semantic action for production 309:
20111    ///
20112    /// `Let: LetToken : VerylToken;`
20113    ///
20114    #[parol_runtime::function_name::named]
20115    fn r#let(&mut self, _let_token: &ParseTreeType<'t>) -> Result<()> {
20116        let context = function_name!();
20117        trace!("{}", self.trace_item_stack(context));
20118        let let_token = pop_item!(self, let_token, LetToken, context);
20119        let r#let_built = Let {
20120            let_token: (&let_token)
20121                .try_into()
20122                .map_err(parol_runtime::ParolError::UserError)?,
20123        };
20124        // Calling user action here
20125        self.user_grammar.r#let(&r#let_built)?;
20126        self.push(ASTType::Let(r#let_built), context);
20127        Ok(())
20128    }
20129
20130    /// Semantic action for production 310:
20131    ///
20132    /// `Logic: LogicToken : VerylToken;`
20133    ///
20134    #[parol_runtime::function_name::named]
20135    fn logic(&mut self, _logic_token: &ParseTreeType<'t>) -> Result<()> {
20136        let context = function_name!();
20137        trace!("{}", self.trace_item_stack(context));
20138        let logic_token = pop_item!(self, logic_token, LogicToken, context);
20139        let logic_built = Logic {
20140            logic_token: (&logic_token)
20141                .try_into()
20142                .map_err(parol_runtime::ParolError::UserError)?,
20143        };
20144        // Calling user action here
20145        self.user_grammar.logic(&logic_built)?;
20146        self.push(ASTType::Logic(logic_built), context);
20147        Ok(())
20148    }
20149
20150    /// Semantic action for production 311:
20151    ///
20152    /// `Lsb: LsbToken : VerylToken;`
20153    ///
20154    #[parol_runtime::function_name::named]
20155    fn lsb(&mut self, _lsb_token: &ParseTreeType<'t>) -> Result<()> {
20156        let context = function_name!();
20157        trace!("{}", self.trace_item_stack(context));
20158        let lsb_token = pop_item!(self, lsb_token, LsbToken, context);
20159        let lsb_built = Lsb {
20160            lsb_token: (&lsb_token)
20161                .try_into()
20162                .map_err(parol_runtime::ParolError::UserError)?,
20163        };
20164        // Calling user action here
20165        self.user_grammar.lsb(&lsb_built)?;
20166        self.push(ASTType::Lsb(lsb_built), context);
20167        Ok(())
20168    }
20169
20170    /// Semantic action for production 312:
20171    ///
20172    /// `Modport: ModportToken : VerylToken;`
20173    ///
20174    #[parol_runtime::function_name::named]
20175    fn modport(&mut self, _modport_token: &ParseTreeType<'t>) -> Result<()> {
20176        let context = function_name!();
20177        trace!("{}", self.trace_item_stack(context));
20178        let modport_token = pop_item!(self, modport_token, ModportToken, context);
20179        let modport_built = Modport {
20180            modport_token: (&modport_token)
20181                .try_into()
20182                .map_err(parol_runtime::ParolError::UserError)?,
20183        };
20184        // Calling user action here
20185        self.user_grammar.modport(&modport_built)?;
20186        self.push(ASTType::Modport(modport_built), context);
20187        Ok(())
20188    }
20189
20190    /// Semantic action for production 313:
20191    ///
20192    /// `Module: ModuleToken : VerylToken;`
20193    ///
20194    #[parol_runtime::function_name::named]
20195    fn module(&mut self, _module_token: &ParseTreeType<'t>) -> Result<()> {
20196        let context = function_name!();
20197        trace!("{}", self.trace_item_stack(context));
20198        let module_token = pop_item!(self, module_token, ModuleToken, context);
20199        let module_built = Module {
20200            module_token: (&module_token)
20201                .try_into()
20202                .map_err(parol_runtime::ParolError::UserError)?,
20203        };
20204        // Calling user action here
20205        self.user_grammar.module(&module_built)?;
20206        self.push(ASTType::Module(module_built), context);
20207        Ok(())
20208    }
20209
20210    /// Semantic action for production 314:
20211    ///
20212    /// `Msb: MsbToken : VerylToken;`
20213    ///
20214    #[parol_runtime::function_name::named]
20215    fn msb(&mut self, _msb_token: &ParseTreeType<'t>) -> Result<()> {
20216        let context = function_name!();
20217        trace!("{}", self.trace_item_stack(context));
20218        let msb_token = pop_item!(self, msb_token, MsbToken, context);
20219        let msb_built = Msb {
20220            msb_token: (&msb_token)
20221                .try_into()
20222                .map_err(parol_runtime::ParolError::UserError)?,
20223        };
20224        // Calling user action here
20225        self.user_grammar.msb(&msb_built)?;
20226        self.push(ASTType::Msb(msb_built), context);
20227        Ok(())
20228    }
20229
20230    /// Semantic action for production 315:
20231    ///
20232    /// `Output: OutputToken : VerylToken;`
20233    ///
20234    #[parol_runtime::function_name::named]
20235    fn output(&mut self, _output_token: &ParseTreeType<'t>) -> Result<()> {
20236        let context = function_name!();
20237        trace!("{}", self.trace_item_stack(context));
20238        let output_token = pop_item!(self, output_token, OutputToken, context);
20239        let output_built = Output {
20240            output_token: (&output_token)
20241                .try_into()
20242                .map_err(parol_runtime::ParolError::UserError)?,
20243        };
20244        // Calling user action here
20245        self.user_grammar.output(&output_built)?;
20246        self.push(ASTType::Output(output_built), context);
20247        Ok(())
20248    }
20249
20250    /// Semantic action for production 316:
20251    ///
20252    /// `Outside: OutsideToken : VerylToken;`
20253    ///
20254    #[parol_runtime::function_name::named]
20255    fn outside(&mut self, _outside_token: &ParseTreeType<'t>) -> Result<()> {
20256        let context = function_name!();
20257        trace!("{}", self.trace_item_stack(context));
20258        let outside_token = pop_item!(self, outside_token, OutsideToken, context);
20259        let outside_built = Outside {
20260            outside_token: (&outside_token)
20261                .try_into()
20262                .map_err(parol_runtime::ParolError::UserError)?,
20263        };
20264        // Calling user action here
20265        self.user_grammar.outside(&outside_built)?;
20266        self.push(ASTType::Outside(outside_built), context);
20267        Ok(())
20268    }
20269
20270    /// Semantic action for production 317:
20271    ///
20272    /// `Package: PackageToken : VerylToken;`
20273    ///
20274    #[parol_runtime::function_name::named]
20275    fn package(&mut self, _package_token: &ParseTreeType<'t>) -> Result<()> {
20276        let context = function_name!();
20277        trace!("{}", self.trace_item_stack(context));
20278        let package_token = pop_item!(self, package_token, PackageToken, context);
20279        let package_built = Package {
20280            package_token: (&package_token)
20281                .try_into()
20282                .map_err(parol_runtime::ParolError::UserError)?,
20283        };
20284        // Calling user action here
20285        self.user_grammar.package(&package_built)?;
20286        self.push(ASTType::Package(package_built), context);
20287        Ok(())
20288    }
20289
20290    /// Semantic action for production 318:
20291    ///
20292    /// `Param: ParamToken : VerylToken;`
20293    ///
20294    #[parol_runtime::function_name::named]
20295    fn param(&mut self, _param_token: &ParseTreeType<'t>) -> Result<()> {
20296        let context = function_name!();
20297        trace!("{}", self.trace_item_stack(context));
20298        let param_token = pop_item!(self, param_token, ParamToken, context);
20299        let param_built = Param {
20300            param_token: (&param_token)
20301                .try_into()
20302                .map_err(parol_runtime::ParolError::UserError)?,
20303        };
20304        // Calling user action here
20305        self.user_grammar.param(&param_built)?;
20306        self.push(ASTType::Param(param_built), context);
20307        Ok(())
20308    }
20309
20310    /// Semantic action for production 319:
20311    ///
20312    /// `Proto: ProtoToken : VerylToken;`
20313    ///
20314    #[parol_runtime::function_name::named]
20315    fn proto(&mut self, _proto_token: &ParseTreeType<'t>) -> Result<()> {
20316        let context = function_name!();
20317        trace!("{}", self.trace_item_stack(context));
20318        let proto_token = pop_item!(self, proto_token, ProtoToken, context);
20319        let proto_built = Proto {
20320            proto_token: (&proto_token)
20321                .try_into()
20322                .map_err(parol_runtime::ParolError::UserError)?,
20323        };
20324        // Calling user action here
20325        self.user_grammar.proto(&proto_built)?;
20326        self.push(ASTType::Proto(proto_built), context);
20327        Ok(())
20328    }
20329
20330    /// Semantic action for production 320:
20331    ///
20332    /// `Pub: PubToken : VerylToken;`
20333    ///
20334    #[parol_runtime::function_name::named]
20335    fn r#pub(&mut self, _pub_token: &ParseTreeType<'t>) -> Result<()> {
20336        let context = function_name!();
20337        trace!("{}", self.trace_item_stack(context));
20338        let pub_token = pop_item!(self, pub_token, PubToken, context);
20339        let r#pub_built = Pub {
20340            pub_token: (&pub_token)
20341                .try_into()
20342                .map_err(parol_runtime::ParolError::UserError)?,
20343        };
20344        // Calling user action here
20345        self.user_grammar.r#pub(&r#pub_built)?;
20346        self.push(ASTType::Pub(r#pub_built), context);
20347        Ok(())
20348    }
20349
20350    /// Semantic action for production 321:
20351    ///
20352    /// `Ref: RefToken : VerylToken;`
20353    ///
20354    #[parol_runtime::function_name::named]
20355    fn r#ref(&mut self, _ref_token: &ParseTreeType<'t>) -> Result<()> {
20356        let context = function_name!();
20357        trace!("{}", self.trace_item_stack(context));
20358        let ref_token = pop_item!(self, ref_token, RefToken, context);
20359        let r#ref_built = Ref {
20360            ref_token: (&ref_token)
20361                .try_into()
20362                .map_err(parol_runtime::ParolError::UserError)?,
20363        };
20364        // Calling user action here
20365        self.user_grammar.r#ref(&r#ref_built)?;
20366        self.push(ASTType::Ref(r#ref_built), context);
20367        Ok(())
20368    }
20369
20370    /// Semantic action for production 322:
20371    ///
20372    /// `Repeat: RepeatToken : VerylToken;`
20373    ///
20374    #[parol_runtime::function_name::named]
20375    fn repeat(&mut self, _repeat_token: &ParseTreeType<'t>) -> Result<()> {
20376        let context = function_name!();
20377        trace!("{}", self.trace_item_stack(context));
20378        let repeat_token = pop_item!(self, repeat_token, RepeatToken, context);
20379        let repeat_built = Repeat {
20380            repeat_token: (&repeat_token)
20381                .try_into()
20382                .map_err(parol_runtime::ParolError::UserError)?,
20383        };
20384        // Calling user action here
20385        self.user_grammar.repeat(&repeat_built)?;
20386        self.push(ASTType::Repeat(repeat_built), context);
20387        Ok(())
20388    }
20389
20390    /// Semantic action for production 323:
20391    ///
20392    /// `Reset: ResetToken : VerylToken;`
20393    ///
20394    #[parol_runtime::function_name::named]
20395    fn reset(&mut self, _reset_token: &ParseTreeType<'t>) -> Result<()> {
20396        let context = function_name!();
20397        trace!("{}", self.trace_item_stack(context));
20398        let reset_token = pop_item!(self, reset_token, ResetToken, context);
20399        let reset_built = Reset {
20400            reset_token: (&reset_token)
20401                .try_into()
20402                .map_err(parol_runtime::ParolError::UserError)?,
20403        };
20404        // Calling user action here
20405        self.user_grammar.reset(&reset_built)?;
20406        self.push(ASTType::Reset(reset_built), context);
20407        Ok(())
20408    }
20409
20410    /// Semantic action for production 324:
20411    ///
20412    /// `ResetAsyncHigh: ResetAsyncHighToken : VerylToken;`
20413    ///
20414    #[parol_runtime::function_name::named]
20415    fn reset_async_high(&mut self, _reset_async_high_token: &ParseTreeType<'t>) -> Result<()> {
20416        let context = function_name!();
20417        trace!("{}", self.trace_item_stack(context));
20418        let reset_async_high_token =
20419            pop_item!(self, reset_async_high_token, ResetAsyncHighToken, context);
20420        let reset_async_high_built = ResetAsyncHigh {
20421            reset_async_high_token: (&reset_async_high_token)
20422                .try_into()
20423                .map_err(parol_runtime::ParolError::UserError)?,
20424        };
20425        // Calling user action here
20426        self.user_grammar
20427            .reset_async_high(&reset_async_high_built)?;
20428        self.push(ASTType::ResetAsyncHigh(reset_async_high_built), context);
20429        Ok(())
20430    }
20431
20432    /// Semantic action for production 325:
20433    ///
20434    /// `ResetAsyncLow: ResetAsyncLowToken : VerylToken;`
20435    ///
20436    #[parol_runtime::function_name::named]
20437    fn reset_async_low(&mut self, _reset_async_low_token: &ParseTreeType<'t>) -> Result<()> {
20438        let context = function_name!();
20439        trace!("{}", self.trace_item_stack(context));
20440        let reset_async_low_token =
20441            pop_item!(self, reset_async_low_token, ResetAsyncLowToken, context);
20442        let reset_async_low_built = ResetAsyncLow {
20443            reset_async_low_token: (&reset_async_low_token)
20444                .try_into()
20445                .map_err(parol_runtime::ParolError::UserError)?,
20446        };
20447        // Calling user action here
20448        self.user_grammar.reset_async_low(&reset_async_low_built)?;
20449        self.push(ASTType::ResetAsyncLow(reset_async_low_built), context);
20450        Ok(())
20451    }
20452
20453    /// Semantic action for production 326:
20454    ///
20455    /// `ResetSyncHigh: ResetSyncHighToken : VerylToken;`
20456    ///
20457    #[parol_runtime::function_name::named]
20458    fn reset_sync_high(&mut self, _reset_sync_high_token: &ParseTreeType<'t>) -> Result<()> {
20459        let context = function_name!();
20460        trace!("{}", self.trace_item_stack(context));
20461        let reset_sync_high_token =
20462            pop_item!(self, reset_sync_high_token, ResetSyncHighToken, context);
20463        let reset_sync_high_built = ResetSyncHigh {
20464            reset_sync_high_token: (&reset_sync_high_token)
20465                .try_into()
20466                .map_err(parol_runtime::ParolError::UserError)?,
20467        };
20468        // Calling user action here
20469        self.user_grammar.reset_sync_high(&reset_sync_high_built)?;
20470        self.push(ASTType::ResetSyncHigh(reset_sync_high_built), context);
20471        Ok(())
20472    }
20473
20474    /// Semantic action for production 327:
20475    ///
20476    /// `ResetSyncLow: ResetSyncLowToken : VerylToken;`
20477    ///
20478    #[parol_runtime::function_name::named]
20479    fn reset_sync_low(&mut self, _reset_sync_low_token: &ParseTreeType<'t>) -> Result<()> {
20480        let context = function_name!();
20481        trace!("{}", self.trace_item_stack(context));
20482        let reset_sync_low_token =
20483            pop_item!(self, reset_sync_low_token, ResetSyncLowToken, context);
20484        let reset_sync_low_built = ResetSyncLow {
20485            reset_sync_low_token: (&reset_sync_low_token)
20486                .try_into()
20487                .map_err(parol_runtime::ParolError::UserError)?,
20488        };
20489        // Calling user action here
20490        self.user_grammar.reset_sync_low(&reset_sync_low_built)?;
20491        self.push(ASTType::ResetSyncLow(reset_sync_low_built), context);
20492        Ok(())
20493    }
20494
20495    /// Semantic action for production 328:
20496    ///
20497    /// `Return: ReturnToken : VerylToken;`
20498    ///
20499    #[parol_runtime::function_name::named]
20500    fn r#return(&mut self, _return_token: &ParseTreeType<'t>) -> Result<()> {
20501        let context = function_name!();
20502        trace!("{}", self.trace_item_stack(context));
20503        let return_token = pop_item!(self, return_token, ReturnToken, context);
20504        let r#return_built = Return {
20505            return_token: (&return_token)
20506                .try_into()
20507                .map_err(parol_runtime::ParolError::UserError)?,
20508        };
20509        // Calling user action here
20510        self.user_grammar.r#return(&r#return_built)?;
20511        self.push(ASTType::Return(r#return_built), context);
20512        Ok(())
20513    }
20514
20515    /// Semantic action for production 329:
20516    ///
20517    /// `Signed: SignedToken : VerylToken;`
20518    ///
20519    #[parol_runtime::function_name::named]
20520    fn signed(&mut self, _signed_token: &ParseTreeType<'t>) -> Result<()> {
20521        let context = function_name!();
20522        trace!("{}", self.trace_item_stack(context));
20523        let signed_token = pop_item!(self, signed_token, SignedToken, context);
20524        let signed_built = Signed {
20525            signed_token: (&signed_token)
20526                .try_into()
20527                .map_err(parol_runtime::ParolError::UserError)?,
20528        };
20529        // Calling user action here
20530        self.user_grammar.signed(&signed_built)?;
20531        self.push(ASTType::Signed(signed_built), context);
20532        Ok(())
20533    }
20534
20535    /// Semantic action for production 330:
20536    ///
20537    /// `Step: StepToken : VerylToken;`
20538    ///
20539    #[parol_runtime::function_name::named]
20540    fn step(&mut self, _step_token: &ParseTreeType<'t>) -> Result<()> {
20541        let context = function_name!();
20542        trace!("{}", self.trace_item_stack(context));
20543        let step_token = pop_item!(self, step_token, StepToken, context);
20544        let step_built = Step {
20545            step_token: (&step_token)
20546                .try_into()
20547                .map_err(parol_runtime::ParolError::UserError)?,
20548        };
20549        // Calling user action here
20550        self.user_grammar.step(&step_built)?;
20551        self.push(ASTType::Step(step_built), context);
20552        Ok(())
20553    }
20554
20555    /// Semantic action for production 331:
20556    ///
20557    /// `Strin: StringToken : VerylToken;`
20558    ///
20559    #[parol_runtime::function_name::named]
20560    fn strin(&mut self, _string_token: &ParseTreeType<'t>) -> Result<()> {
20561        let context = function_name!();
20562        trace!("{}", self.trace_item_stack(context));
20563        let string_token = pop_item!(self, string_token, StringToken, context);
20564        let strin_built = Strin {
20565            string_token: (&string_token)
20566                .try_into()
20567                .map_err(parol_runtime::ParolError::UserError)?,
20568        };
20569        // Calling user action here
20570        self.user_grammar.strin(&strin_built)?;
20571        self.push(ASTType::Strin(strin_built), context);
20572        Ok(())
20573    }
20574
20575    /// Semantic action for production 332:
20576    ///
20577    /// `Struct: StructToken : VerylToken;`
20578    ///
20579    #[parol_runtime::function_name::named]
20580    fn r#struct(&mut self, _struct_token: &ParseTreeType<'t>) -> Result<()> {
20581        let context = function_name!();
20582        trace!("{}", self.trace_item_stack(context));
20583        let struct_token = pop_item!(self, struct_token, StructToken, context);
20584        let r#struct_built = Struct {
20585            struct_token: (&struct_token)
20586                .try_into()
20587                .map_err(parol_runtime::ParolError::UserError)?,
20588        };
20589        // Calling user action here
20590        self.user_grammar.r#struct(&r#struct_built)?;
20591        self.push(ASTType::Struct(r#struct_built), context);
20592        Ok(())
20593    }
20594
20595    /// Semantic action for production 333:
20596    ///
20597    /// `Switch: SwitchToken : VerylToken;`
20598    ///
20599    #[parol_runtime::function_name::named]
20600    fn switch(&mut self, _switch_token: &ParseTreeType<'t>) -> Result<()> {
20601        let context = function_name!();
20602        trace!("{}", self.trace_item_stack(context));
20603        let switch_token = pop_item!(self, switch_token, SwitchToken, context);
20604        let switch_built = Switch {
20605            switch_token: (&switch_token)
20606                .try_into()
20607                .map_err(parol_runtime::ParolError::UserError)?,
20608        };
20609        // Calling user action here
20610        self.user_grammar.switch(&switch_built)?;
20611        self.push(ASTType::Switch(switch_built), context);
20612        Ok(())
20613    }
20614
20615    /// Semantic action for production 334:
20616    ///
20617    /// `Tri: TriToken : VerylToken;`
20618    ///
20619    #[parol_runtime::function_name::named]
20620    fn tri(&mut self, _tri_token: &ParseTreeType<'t>) -> Result<()> {
20621        let context = function_name!();
20622        trace!("{}", self.trace_item_stack(context));
20623        let tri_token = pop_item!(self, tri_token, TriToken, context);
20624        let tri_built = Tri {
20625            tri_token: (&tri_token)
20626                .try_into()
20627                .map_err(parol_runtime::ParolError::UserError)?,
20628        };
20629        // Calling user action here
20630        self.user_grammar.tri(&tri_built)?;
20631        self.push(ASTType::Tri(tri_built), context);
20632        Ok(())
20633    }
20634
20635    /// Semantic action for production 335:
20636    ///
20637    /// `Type: TypeToken : VerylToken;`
20638    ///
20639    #[parol_runtime::function_name::named]
20640    fn r#type(&mut self, _type_token: &ParseTreeType<'t>) -> Result<()> {
20641        let context = function_name!();
20642        trace!("{}", self.trace_item_stack(context));
20643        let type_token = pop_item!(self, type_token, TypeToken, context);
20644        let r#type_built = Type {
20645            type_token: (&type_token)
20646                .try_into()
20647                .map_err(parol_runtime::ParolError::UserError)?,
20648        };
20649        // Calling user action here
20650        self.user_grammar.r#type(&r#type_built)?;
20651        self.push(ASTType::Type(r#type_built), context);
20652        Ok(())
20653    }
20654
20655    /// Semantic action for production 336:
20656    ///
20657    /// `U32: U32Token : VerylToken;`
20658    ///
20659    #[parol_runtime::function_name::named]
20660    fn u32(&mut self, _u32_token: &ParseTreeType<'t>) -> Result<()> {
20661        let context = function_name!();
20662        trace!("{}", self.trace_item_stack(context));
20663        let u32_token = pop_item!(self, u32_token, U32Token, context);
20664        let u32_built = U32 {
20665            u32_token: (&u32_token)
20666                .try_into()
20667                .map_err(parol_runtime::ParolError::UserError)?,
20668        };
20669        // Calling user action here
20670        self.user_grammar.u32(&u32_built)?;
20671        self.push(ASTType::U32(u32_built), context);
20672        Ok(())
20673    }
20674
20675    /// Semantic action for production 337:
20676    ///
20677    /// `U64: U64Token : VerylToken;`
20678    ///
20679    #[parol_runtime::function_name::named]
20680    fn u64(&mut self, _u64_token: &ParseTreeType<'t>) -> Result<()> {
20681        let context = function_name!();
20682        trace!("{}", self.trace_item_stack(context));
20683        let u64_token = pop_item!(self, u64_token, U64Token, context);
20684        let u64_built = U64 {
20685            u64_token: (&u64_token)
20686                .try_into()
20687                .map_err(parol_runtime::ParolError::UserError)?,
20688        };
20689        // Calling user action here
20690        self.user_grammar.u64(&u64_built)?;
20691        self.push(ASTType::U64(u64_built), context);
20692        Ok(())
20693    }
20694
20695    /// Semantic action for production 338:
20696    ///
20697    /// `Union: UnionToken : VerylToken;`
20698    ///
20699    #[parol_runtime::function_name::named]
20700    fn r#union(&mut self, _union_token: &ParseTreeType<'t>) -> Result<()> {
20701        let context = function_name!();
20702        trace!("{}", self.trace_item_stack(context));
20703        let union_token = pop_item!(self, union_token, UnionToken, context);
20704        let r#union_built = Union {
20705            union_token: (&union_token)
20706                .try_into()
20707                .map_err(parol_runtime::ParolError::UserError)?,
20708        };
20709        // Calling user action here
20710        self.user_grammar.r#union(&r#union_built)?;
20711        self.push(ASTType::Union(r#union_built), context);
20712        Ok(())
20713    }
20714
20715    /// Semantic action for production 339:
20716    ///
20717    /// `Unsafe: UnsafeToken : VerylToken;`
20718    ///
20719    #[parol_runtime::function_name::named]
20720    fn r#unsafe(&mut self, _unsafe_token: &ParseTreeType<'t>) -> Result<()> {
20721        let context = function_name!();
20722        trace!("{}", self.trace_item_stack(context));
20723        let unsafe_token = pop_item!(self, unsafe_token, UnsafeToken, context);
20724        let r#unsafe_built = Unsafe {
20725            unsafe_token: (&unsafe_token)
20726                .try_into()
20727                .map_err(parol_runtime::ParolError::UserError)?,
20728        };
20729        // Calling user action here
20730        self.user_grammar.r#unsafe(&r#unsafe_built)?;
20731        self.push(ASTType::Unsafe(r#unsafe_built), context);
20732        Ok(())
20733    }
20734
20735    /// Semantic action for production 340:
20736    ///
20737    /// `Var: VarToken : VerylToken;`
20738    ///
20739    #[parol_runtime::function_name::named]
20740    fn var(&mut self, _var_token: &ParseTreeType<'t>) -> Result<()> {
20741        let context = function_name!();
20742        trace!("{}", self.trace_item_stack(context));
20743        let var_token = pop_item!(self, var_token, VarToken, context);
20744        let var_built = Var {
20745            var_token: (&var_token)
20746                .try_into()
20747                .map_err(parol_runtime::ParolError::UserError)?,
20748        };
20749        // Calling user action here
20750        self.user_grammar.var(&var_built)?;
20751        self.push(ASTType::Var(var_built), context);
20752        Ok(())
20753    }
20754
20755    /// Semantic action for production 341:
20756    ///
20757    /// `DollarIdentifier: DollarIdentifierToken : VerylToken;`
20758    ///
20759    #[parol_runtime::function_name::named]
20760    fn dollar_identifier(&mut self, _dollar_identifier_token: &ParseTreeType<'t>) -> Result<()> {
20761        let context = function_name!();
20762        trace!("{}", self.trace_item_stack(context));
20763        let dollar_identifier_token = pop_item!(
20764            self,
20765            dollar_identifier_token,
20766            DollarIdentifierToken,
20767            context
20768        );
20769        let dollar_identifier_built = DollarIdentifier {
20770            dollar_identifier_token: (&dollar_identifier_token)
20771                .try_into()
20772                .map_err(parol_runtime::ParolError::UserError)?,
20773        };
20774        // Calling user action here
20775        self.user_grammar
20776            .dollar_identifier(&dollar_identifier_built)?;
20777        self.push(ASTType::DollarIdentifier(dollar_identifier_built), context);
20778        Ok(())
20779    }
20780
20781    /// Semantic action for production 342:
20782    ///
20783    /// `Identifier: IdentifierToken : VerylToken;`
20784    ///
20785    #[parol_runtime::function_name::named]
20786    fn identifier(&mut self, _identifier_token: &ParseTreeType<'t>) -> Result<()> {
20787        let context = function_name!();
20788        trace!("{}", self.trace_item_stack(context));
20789        let identifier_token = pop_item!(self, identifier_token, IdentifierToken, context);
20790        let identifier_built = Identifier {
20791            identifier_token: (&identifier_token)
20792                .try_into()
20793                .map_err(parol_runtime::ParolError::UserError)?,
20794        };
20795        // Calling user action here
20796        self.user_grammar.identifier(&identifier_built)?;
20797        self.push(ASTType::Identifier(identifier_built), context);
20798        Ok(())
20799    }
20800
20801    /// Semantic action for production 343:
20802    ///
20803    /// `Number: IntegralNumber;`
20804    ///
20805    #[parol_runtime::function_name::named]
20806    fn number_0(&mut self, _integral_number: &ParseTreeType<'t>) -> Result<()> {
20807        let context = function_name!();
20808        trace!("{}", self.trace_item_stack(context));
20809        let integral_number = pop_item!(self, integral_number, IntegralNumber, context);
20810        let number_0_built = NumberIntegralNumber {
20811            integral_number: Box::new(integral_number),
20812        };
20813        let number_0_built = Number::IntegralNumber(number_0_built);
20814        // Calling user action here
20815        self.user_grammar.number(&number_0_built)?;
20816        self.push(ASTType::Number(number_0_built), context);
20817        Ok(())
20818    }
20819
20820    /// Semantic action for production 344:
20821    ///
20822    /// `Number: RealNumber;`
20823    ///
20824    #[parol_runtime::function_name::named]
20825    fn number_1(&mut self, _real_number: &ParseTreeType<'t>) -> Result<()> {
20826        let context = function_name!();
20827        trace!("{}", self.trace_item_stack(context));
20828        let real_number = pop_item!(self, real_number, RealNumber, context);
20829        let number_1_built = NumberRealNumber {
20830            real_number: Box::new(real_number),
20831        };
20832        let number_1_built = Number::RealNumber(number_1_built);
20833        // Calling user action here
20834        self.user_grammar.number(&number_1_built)?;
20835        self.push(ASTType::Number(number_1_built), context);
20836        Ok(())
20837    }
20838
20839    /// Semantic action for production 345:
20840    ///
20841    /// `IntegralNumber: Based;`
20842    ///
20843    #[parol_runtime::function_name::named]
20844    fn integral_number_0(&mut self, _based: &ParseTreeType<'t>) -> Result<()> {
20845        let context = function_name!();
20846        trace!("{}", self.trace_item_stack(context));
20847        let based = pop_item!(self, based, Based, context);
20848        let integral_number_0_built = IntegralNumberBased {
20849            based: Box::new(based),
20850        };
20851        let integral_number_0_built = IntegralNumber::Based(integral_number_0_built);
20852        // Calling user action here
20853        self.user_grammar
20854            .integral_number(&integral_number_0_built)?;
20855        self.push(ASTType::IntegralNumber(integral_number_0_built), context);
20856        Ok(())
20857    }
20858
20859    /// Semantic action for production 346:
20860    ///
20861    /// `IntegralNumber: BaseLess;`
20862    ///
20863    #[parol_runtime::function_name::named]
20864    fn integral_number_1(&mut self, _base_less: &ParseTreeType<'t>) -> Result<()> {
20865        let context = function_name!();
20866        trace!("{}", self.trace_item_stack(context));
20867        let base_less = pop_item!(self, base_less, BaseLess, context);
20868        let integral_number_1_built = IntegralNumberBaseLess {
20869            base_less: Box::new(base_less),
20870        };
20871        let integral_number_1_built = IntegralNumber::BaseLess(integral_number_1_built);
20872        // Calling user action here
20873        self.user_grammar
20874            .integral_number(&integral_number_1_built)?;
20875        self.push(ASTType::IntegralNumber(integral_number_1_built), context);
20876        Ok(())
20877    }
20878
20879    /// Semantic action for production 347:
20880    ///
20881    /// `IntegralNumber: AllBit;`
20882    ///
20883    #[parol_runtime::function_name::named]
20884    fn integral_number_2(&mut self, _all_bit: &ParseTreeType<'t>) -> Result<()> {
20885        let context = function_name!();
20886        trace!("{}", self.trace_item_stack(context));
20887        let all_bit = pop_item!(self, all_bit, AllBit, context);
20888        let integral_number_2_built = IntegralNumberAllBit {
20889            all_bit: Box::new(all_bit),
20890        };
20891        let integral_number_2_built = IntegralNumber::AllBit(integral_number_2_built);
20892        // Calling user action here
20893        self.user_grammar
20894            .integral_number(&integral_number_2_built)?;
20895        self.push(ASTType::IntegralNumber(integral_number_2_built), context);
20896        Ok(())
20897    }
20898
20899    /// Semantic action for production 348:
20900    ///
20901    /// `RealNumber: FixedPoint;`
20902    ///
20903    #[parol_runtime::function_name::named]
20904    fn real_number_0(&mut self, _fixed_point: &ParseTreeType<'t>) -> Result<()> {
20905        let context = function_name!();
20906        trace!("{}", self.trace_item_stack(context));
20907        let fixed_point = pop_item!(self, fixed_point, FixedPoint, context);
20908        let real_number_0_built = RealNumberFixedPoint {
20909            fixed_point: Box::new(fixed_point),
20910        };
20911        let real_number_0_built = RealNumber::FixedPoint(real_number_0_built);
20912        // Calling user action here
20913        self.user_grammar.real_number(&real_number_0_built)?;
20914        self.push(ASTType::RealNumber(real_number_0_built), context);
20915        Ok(())
20916    }
20917
20918    /// Semantic action for production 349:
20919    ///
20920    /// `RealNumber: Exponent;`
20921    ///
20922    #[parol_runtime::function_name::named]
20923    fn real_number_1(&mut self, _exponent: &ParseTreeType<'t>) -> Result<()> {
20924        let context = function_name!();
20925        trace!("{}", self.trace_item_stack(context));
20926        let exponent = pop_item!(self, exponent, Exponent, context);
20927        let real_number_1_built = RealNumberExponent {
20928            exponent: Box::new(exponent),
20929        };
20930        let real_number_1_built = RealNumber::Exponent(real_number_1_built);
20931        // Calling user action here
20932        self.user_grammar.real_number(&real_number_1_built)?;
20933        self.push(ASTType::RealNumber(real_number_1_built), context);
20934        Ok(())
20935    }
20936
20937    /// Semantic action for production 350:
20938    ///
20939    /// `HierarchicalIdentifier: Identifier HierarchicalIdentifierList /* Vec */ HierarchicalIdentifierList0 /* Vec */;`
20940    ///
20941    #[parol_runtime::function_name::named]
20942    fn hierarchical_identifier(
20943        &mut self,
20944        _identifier: &ParseTreeType<'t>,
20945        _hierarchical_identifier_list: &ParseTreeType<'t>,
20946        _hierarchical_identifier_list0: &ParseTreeType<'t>,
20947    ) -> Result<()> {
20948        let context = function_name!();
20949        trace!("{}", self.trace_item_stack(context));
20950        let hierarchical_identifier_list0 = pop_and_reverse_item!(
20951            self,
20952            hierarchical_identifier_list0,
20953            HierarchicalIdentifierList0,
20954            context
20955        );
20956        let hierarchical_identifier_list = pop_and_reverse_item!(
20957            self,
20958            hierarchical_identifier_list,
20959            HierarchicalIdentifierList,
20960            context
20961        );
20962        let identifier = pop_item!(self, identifier, Identifier, context);
20963        let hierarchical_identifier_built = HierarchicalIdentifier {
20964            identifier: Box::new(identifier),
20965            hierarchical_identifier_list,
20966            hierarchical_identifier_list0,
20967        };
20968        // Calling user action here
20969        self.user_grammar
20970            .hierarchical_identifier(&hierarchical_identifier_built)?;
20971        self.push(
20972            ASTType::HierarchicalIdentifier(hierarchical_identifier_built),
20973            context,
20974        );
20975        Ok(())
20976    }
20977
20978    /// Semantic action for production 351:
20979    ///
20980    /// `HierarchicalIdentifierList0 /* Vec<T>::Push */: Dot Identifier HierarchicalIdentifierList0List /* Vec */ HierarchicalIdentifierList0;`
20981    ///
20982    #[parol_runtime::function_name::named]
20983    fn hierarchical_identifier_list0_0(
20984        &mut self,
20985        _dot: &ParseTreeType<'t>,
20986        _identifier: &ParseTreeType<'t>,
20987        _hierarchical_identifier_list0_list: &ParseTreeType<'t>,
20988        _hierarchical_identifier_list0: &ParseTreeType<'t>,
20989    ) -> Result<()> {
20990        let context = function_name!();
20991        trace!("{}", self.trace_item_stack(context));
20992        let mut hierarchical_identifier_list0 = pop_item!(
20993            self,
20994            hierarchical_identifier_list0,
20995            HierarchicalIdentifierList0,
20996            context
20997        );
20998        let hierarchical_identifier_list0_list = pop_and_reverse_item!(
20999            self,
21000            hierarchical_identifier_list0_list,
21001            HierarchicalIdentifierList0List,
21002            context
21003        );
21004        let identifier = pop_item!(self, identifier, Identifier, context);
21005        let dot = pop_item!(self, dot, Dot, context);
21006        let hierarchical_identifier_list0_0_built = HierarchicalIdentifierList0 {
21007            hierarchical_identifier_list0_list,
21008            identifier: Box::new(identifier),
21009            dot: Box::new(dot),
21010        };
21011        // Add an element to the vector
21012        hierarchical_identifier_list0.push(hierarchical_identifier_list0_0_built);
21013        self.push(
21014            ASTType::HierarchicalIdentifierList0(hierarchical_identifier_list0),
21015            context,
21016        );
21017        Ok(())
21018    }
21019
21020    /// Semantic action for production 352:
21021    ///
21022    /// `HierarchicalIdentifierList0List /* Vec<T>::Push */: Select HierarchicalIdentifierList0List;`
21023    ///
21024    #[parol_runtime::function_name::named]
21025    fn hierarchical_identifier_list0_list_0(
21026        &mut self,
21027        _select: &ParseTreeType<'t>,
21028        _hierarchical_identifier_list0_list: &ParseTreeType<'t>,
21029    ) -> Result<()> {
21030        let context = function_name!();
21031        trace!("{}", self.trace_item_stack(context));
21032        let mut hierarchical_identifier_list0_list = pop_item!(
21033            self,
21034            hierarchical_identifier_list0_list,
21035            HierarchicalIdentifierList0List,
21036            context
21037        );
21038        let select = pop_item!(self, select, Select, context);
21039        let hierarchical_identifier_list0_list_0_built = HierarchicalIdentifierList0List {
21040            select: Box::new(select),
21041        };
21042        // Add an element to the vector
21043        hierarchical_identifier_list0_list.push(hierarchical_identifier_list0_list_0_built);
21044        self.push(
21045            ASTType::HierarchicalIdentifierList0List(hierarchical_identifier_list0_list),
21046            context,
21047        );
21048        Ok(())
21049    }
21050
21051    /// Semantic action for production 353:
21052    ///
21053    /// `HierarchicalIdentifierList0List /* Vec<T>::New */: ;`
21054    ///
21055    #[parol_runtime::function_name::named]
21056    fn hierarchical_identifier_list0_list_1(&mut self) -> Result<()> {
21057        let context = function_name!();
21058        trace!("{}", self.trace_item_stack(context));
21059        let hierarchical_identifier_list0_list_1_built = Vec::new();
21060        self.push(
21061            ASTType::HierarchicalIdentifierList0List(hierarchical_identifier_list0_list_1_built),
21062            context,
21063        );
21064        Ok(())
21065    }
21066
21067    /// Semantic action for production 354:
21068    ///
21069    /// `HierarchicalIdentifierList0 /* Vec<T>::New */: ;`
21070    ///
21071    #[parol_runtime::function_name::named]
21072    fn hierarchical_identifier_list0_1(&mut self) -> Result<()> {
21073        let context = function_name!();
21074        trace!("{}", self.trace_item_stack(context));
21075        let hierarchical_identifier_list0_1_built = Vec::new();
21076        self.push(
21077            ASTType::HierarchicalIdentifierList0(hierarchical_identifier_list0_1_built),
21078            context,
21079        );
21080        Ok(())
21081    }
21082
21083    /// Semantic action for production 355:
21084    ///
21085    /// `HierarchicalIdentifierList /* Vec<T>::Push */: Select HierarchicalIdentifierList;`
21086    ///
21087    #[parol_runtime::function_name::named]
21088    fn hierarchical_identifier_list_0(
21089        &mut self,
21090        _select: &ParseTreeType<'t>,
21091        _hierarchical_identifier_list: &ParseTreeType<'t>,
21092    ) -> Result<()> {
21093        let context = function_name!();
21094        trace!("{}", self.trace_item_stack(context));
21095        let mut hierarchical_identifier_list = pop_item!(
21096            self,
21097            hierarchical_identifier_list,
21098            HierarchicalIdentifierList,
21099            context
21100        );
21101        let select = pop_item!(self, select, Select, context);
21102        let hierarchical_identifier_list_0_built = HierarchicalIdentifierList {
21103            select: Box::new(select),
21104        };
21105        // Add an element to the vector
21106        hierarchical_identifier_list.push(hierarchical_identifier_list_0_built);
21107        self.push(
21108            ASTType::HierarchicalIdentifierList(hierarchical_identifier_list),
21109            context,
21110        );
21111        Ok(())
21112    }
21113
21114    /// Semantic action for production 356:
21115    ///
21116    /// `HierarchicalIdentifierList /* Vec<T>::New */: ;`
21117    ///
21118    #[parol_runtime::function_name::named]
21119    fn hierarchical_identifier_list_1(&mut self) -> Result<()> {
21120        let context = function_name!();
21121        trace!("{}", self.trace_item_stack(context));
21122        let hierarchical_identifier_list_1_built = Vec::new();
21123        self.push(
21124            ASTType::HierarchicalIdentifierList(hierarchical_identifier_list_1_built),
21125            context,
21126        );
21127        Ok(())
21128    }
21129
21130    /// Semantic action for production 357:
21131    ///
21132    /// `ScopedIdentifier: ScopedIdentifierGroup ScopedIdentifierList /* Vec */;`
21133    ///
21134    #[parol_runtime::function_name::named]
21135    fn scoped_identifier(
21136        &mut self,
21137        _scoped_identifier_group: &ParseTreeType<'t>,
21138        _scoped_identifier_list: &ParseTreeType<'t>,
21139    ) -> Result<()> {
21140        let context = function_name!();
21141        trace!("{}", self.trace_item_stack(context));
21142        let scoped_identifier_list =
21143            pop_and_reverse_item!(self, scoped_identifier_list, ScopedIdentifierList, context);
21144        let scoped_identifier_group = pop_item!(
21145            self,
21146            scoped_identifier_group,
21147            ScopedIdentifierGroup,
21148            context
21149        );
21150        let scoped_identifier_built = ScopedIdentifier {
21151            scoped_identifier_group: Box::new(scoped_identifier_group),
21152            scoped_identifier_list,
21153        };
21154        // Calling user action here
21155        self.user_grammar
21156            .scoped_identifier(&scoped_identifier_built)?;
21157        self.push(ASTType::ScopedIdentifier(scoped_identifier_built), context);
21158        Ok(())
21159    }
21160
21161    /// Semantic action for production 358:
21162    ///
21163    /// `ScopedIdentifierGroup: DollarIdentifier;`
21164    ///
21165    #[parol_runtime::function_name::named]
21166    fn scoped_identifier_group_0(&mut self, _dollar_identifier: &ParseTreeType<'t>) -> Result<()> {
21167        let context = function_name!();
21168        trace!("{}", self.trace_item_stack(context));
21169        let dollar_identifier = pop_item!(self, dollar_identifier, DollarIdentifier, context);
21170        let scoped_identifier_group_0_built = ScopedIdentifierGroupDollarIdentifier {
21171            dollar_identifier: Box::new(dollar_identifier),
21172        };
21173        let scoped_identifier_group_0_built =
21174            ScopedIdentifierGroup::DollarIdentifier(scoped_identifier_group_0_built);
21175        self.push(
21176            ASTType::ScopedIdentifierGroup(scoped_identifier_group_0_built),
21177            context,
21178        );
21179        Ok(())
21180    }
21181
21182    /// Semantic action for production 359:
21183    ///
21184    /// `ScopedIdentifierGroup: Identifier ScopedIdentifierOpt /* Option */;`
21185    ///
21186    #[parol_runtime::function_name::named]
21187    fn scoped_identifier_group_1(
21188        &mut self,
21189        _identifier: &ParseTreeType<'t>,
21190        _scoped_identifier_opt: &ParseTreeType<'t>,
21191    ) -> Result<()> {
21192        let context = function_name!();
21193        trace!("{}", self.trace_item_stack(context));
21194        let scoped_identifier_opt =
21195            pop_item!(self, scoped_identifier_opt, ScopedIdentifierOpt, context);
21196        let identifier = pop_item!(self, identifier, Identifier, context);
21197        let scoped_identifier_group_1_built = ScopedIdentifierGroupIdentifierScopedIdentifierOpt {
21198            identifier: Box::new(identifier),
21199            scoped_identifier_opt,
21200        };
21201        let scoped_identifier_group_1_built =
21202            ScopedIdentifierGroup::IdentifierScopedIdentifierOpt(scoped_identifier_group_1_built);
21203        self.push(
21204            ASTType::ScopedIdentifierGroup(scoped_identifier_group_1_built),
21205            context,
21206        );
21207        Ok(())
21208    }
21209
21210    /// Semantic action for production 360:
21211    ///
21212    /// `ScopedIdentifierList /* Vec<T>::Push */: ColonColon Identifier ScopedIdentifierOpt0 /* Option */ ScopedIdentifierList;`
21213    ///
21214    #[parol_runtime::function_name::named]
21215    fn scoped_identifier_list_0(
21216        &mut self,
21217        _colon_colon: &ParseTreeType<'t>,
21218        _identifier: &ParseTreeType<'t>,
21219        _scoped_identifier_opt0: &ParseTreeType<'t>,
21220        _scoped_identifier_list: &ParseTreeType<'t>,
21221    ) -> Result<()> {
21222        let context = function_name!();
21223        trace!("{}", self.trace_item_stack(context));
21224        let mut scoped_identifier_list =
21225            pop_item!(self, scoped_identifier_list, ScopedIdentifierList, context);
21226        let scoped_identifier_opt0 =
21227            pop_item!(self, scoped_identifier_opt0, ScopedIdentifierOpt0, context);
21228        let identifier = pop_item!(self, identifier, Identifier, context);
21229        let colon_colon = pop_item!(self, colon_colon, ColonColon, context);
21230        let scoped_identifier_list_0_built = ScopedIdentifierList {
21231            scoped_identifier_opt0,
21232            identifier: Box::new(identifier),
21233            colon_colon: Box::new(colon_colon),
21234        };
21235        // Add an element to the vector
21236        scoped_identifier_list.push(scoped_identifier_list_0_built);
21237        self.push(
21238            ASTType::ScopedIdentifierList(scoped_identifier_list),
21239            context,
21240        );
21241        Ok(())
21242    }
21243
21244    /// Semantic action for production 361:
21245    ///
21246    /// `ScopedIdentifierList /* Vec<T>::New */: ;`
21247    ///
21248    #[parol_runtime::function_name::named]
21249    fn scoped_identifier_list_1(&mut self) -> Result<()> {
21250        let context = function_name!();
21251        trace!("{}", self.trace_item_stack(context));
21252        let scoped_identifier_list_1_built = Vec::new();
21253        self.push(
21254            ASTType::ScopedIdentifierList(scoped_identifier_list_1_built),
21255            context,
21256        );
21257        Ok(())
21258    }
21259
21260    /// Semantic action for production 362:
21261    ///
21262    /// `ScopedIdentifierOpt0 /* Option<T>::Some */: WithGenericArgument;`
21263    ///
21264    #[parol_runtime::function_name::named]
21265    fn scoped_identifier_opt0_0(
21266        &mut self,
21267        _with_generic_argument: &ParseTreeType<'t>,
21268    ) -> Result<()> {
21269        let context = function_name!();
21270        trace!("{}", self.trace_item_stack(context));
21271        let with_generic_argument =
21272            pop_item!(self, with_generic_argument, WithGenericArgument, context);
21273        let scoped_identifier_opt0_0_built = ScopedIdentifierOpt0 {
21274            with_generic_argument: Box::new(with_generic_argument),
21275        };
21276        self.push(
21277            ASTType::ScopedIdentifierOpt0(Some(scoped_identifier_opt0_0_built)),
21278            context,
21279        );
21280        Ok(())
21281    }
21282
21283    /// Semantic action for production 363:
21284    ///
21285    /// `ScopedIdentifierOpt0 /* Option<T>::None */: ;`
21286    ///
21287    #[parol_runtime::function_name::named]
21288    fn scoped_identifier_opt0_1(&mut self) -> Result<()> {
21289        let context = function_name!();
21290        trace!("{}", self.trace_item_stack(context));
21291        self.push(ASTType::ScopedIdentifierOpt0(None), context);
21292        Ok(())
21293    }
21294
21295    /// Semantic action for production 364:
21296    ///
21297    /// `ScopedIdentifierOpt /* Option<T>::Some */: WithGenericArgument;`
21298    ///
21299    #[parol_runtime::function_name::named]
21300    fn scoped_identifier_opt_0(
21301        &mut self,
21302        _with_generic_argument: &ParseTreeType<'t>,
21303    ) -> Result<()> {
21304        let context = function_name!();
21305        trace!("{}", self.trace_item_stack(context));
21306        let with_generic_argument =
21307            pop_item!(self, with_generic_argument, WithGenericArgument, context);
21308        let scoped_identifier_opt_0_built = ScopedIdentifierOpt {
21309            with_generic_argument: Box::new(with_generic_argument),
21310        };
21311        self.push(
21312            ASTType::ScopedIdentifierOpt(Some(scoped_identifier_opt_0_built)),
21313            context,
21314        );
21315        Ok(())
21316    }
21317
21318    /// Semantic action for production 365:
21319    ///
21320    /// `ScopedIdentifierOpt /* Option<T>::None */: ;`
21321    ///
21322    #[parol_runtime::function_name::named]
21323    fn scoped_identifier_opt_1(&mut self) -> Result<()> {
21324        let context = function_name!();
21325        trace!("{}", self.trace_item_stack(context));
21326        self.push(ASTType::ScopedIdentifierOpt(None), context);
21327        Ok(())
21328    }
21329
21330    /// Semantic action for production 366:
21331    ///
21332    /// `ExpressionIdentifier: ScopedIdentifier ExpressionIdentifierOpt /* Option */ ExpressionIdentifierList /* Vec */ ExpressionIdentifierList0 /* Vec */;`
21333    ///
21334    #[parol_runtime::function_name::named]
21335    fn expression_identifier(
21336        &mut self,
21337        _scoped_identifier: &ParseTreeType<'t>,
21338        _expression_identifier_opt: &ParseTreeType<'t>,
21339        _expression_identifier_list: &ParseTreeType<'t>,
21340        _expression_identifier_list0: &ParseTreeType<'t>,
21341    ) -> Result<()> {
21342        let context = function_name!();
21343        trace!("{}", self.trace_item_stack(context));
21344        let expression_identifier_list0 = pop_and_reverse_item!(
21345            self,
21346            expression_identifier_list0,
21347            ExpressionIdentifierList0,
21348            context
21349        );
21350        let expression_identifier_list = pop_and_reverse_item!(
21351            self,
21352            expression_identifier_list,
21353            ExpressionIdentifierList,
21354            context
21355        );
21356        let expression_identifier_opt = pop_item!(
21357            self,
21358            expression_identifier_opt,
21359            ExpressionIdentifierOpt,
21360            context
21361        );
21362        let scoped_identifier = pop_item!(self, scoped_identifier, ScopedIdentifier, context);
21363        let expression_identifier_built = ExpressionIdentifier {
21364            scoped_identifier: Box::new(scoped_identifier),
21365            expression_identifier_opt,
21366            expression_identifier_list,
21367            expression_identifier_list0,
21368        };
21369        // Calling user action here
21370        self.user_grammar
21371            .expression_identifier(&expression_identifier_built)?;
21372        self.push(
21373            ASTType::ExpressionIdentifier(expression_identifier_built),
21374            context,
21375        );
21376        Ok(())
21377    }
21378
21379    /// Semantic action for production 367:
21380    ///
21381    /// `ExpressionIdentifierList0 /* Vec<T>::Push */: Dot Identifier ExpressionIdentifierList0List /* Vec */ ExpressionIdentifierList0;`
21382    ///
21383    #[parol_runtime::function_name::named]
21384    fn expression_identifier_list0_0(
21385        &mut self,
21386        _dot: &ParseTreeType<'t>,
21387        _identifier: &ParseTreeType<'t>,
21388        _expression_identifier_list0_list: &ParseTreeType<'t>,
21389        _expression_identifier_list0: &ParseTreeType<'t>,
21390    ) -> Result<()> {
21391        let context = function_name!();
21392        trace!("{}", self.trace_item_stack(context));
21393        let mut expression_identifier_list0 = pop_item!(
21394            self,
21395            expression_identifier_list0,
21396            ExpressionIdentifierList0,
21397            context
21398        );
21399        let expression_identifier_list0_list = pop_and_reverse_item!(
21400            self,
21401            expression_identifier_list0_list,
21402            ExpressionIdentifierList0List,
21403            context
21404        );
21405        let identifier = pop_item!(self, identifier, Identifier, context);
21406        let dot = pop_item!(self, dot, Dot, context);
21407        let expression_identifier_list0_0_built = ExpressionIdentifierList0 {
21408            expression_identifier_list0_list,
21409            identifier: Box::new(identifier),
21410            dot: Box::new(dot),
21411        };
21412        // Add an element to the vector
21413        expression_identifier_list0.push(expression_identifier_list0_0_built);
21414        self.push(
21415            ASTType::ExpressionIdentifierList0(expression_identifier_list0),
21416            context,
21417        );
21418        Ok(())
21419    }
21420
21421    /// Semantic action for production 368:
21422    ///
21423    /// `ExpressionIdentifierList0List /* Vec<T>::Push */: Select ExpressionIdentifierList0List;`
21424    ///
21425    #[parol_runtime::function_name::named]
21426    fn expression_identifier_list0_list_0(
21427        &mut self,
21428        _select: &ParseTreeType<'t>,
21429        _expression_identifier_list0_list: &ParseTreeType<'t>,
21430    ) -> Result<()> {
21431        let context = function_name!();
21432        trace!("{}", self.trace_item_stack(context));
21433        let mut expression_identifier_list0_list = pop_item!(
21434            self,
21435            expression_identifier_list0_list,
21436            ExpressionIdentifierList0List,
21437            context
21438        );
21439        let select = pop_item!(self, select, Select, context);
21440        let expression_identifier_list0_list_0_built = ExpressionIdentifierList0List {
21441            select: Box::new(select),
21442        };
21443        // Add an element to the vector
21444        expression_identifier_list0_list.push(expression_identifier_list0_list_0_built);
21445        self.push(
21446            ASTType::ExpressionIdentifierList0List(expression_identifier_list0_list),
21447            context,
21448        );
21449        Ok(())
21450    }
21451
21452    /// Semantic action for production 369:
21453    ///
21454    /// `ExpressionIdentifierList0List /* Vec<T>::New */: ;`
21455    ///
21456    #[parol_runtime::function_name::named]
21457    fn expression_identifier_list0_list_1(&mut self) -> Result<()> {
21458        let context = function_name!();
21459        trace!("{}", self.trace_item_stack(context));
21460        let expression_identifier_list0_list_1_built = Vec::new();
21461        self.push(
21462            ASTType::ExpressionIdentifierList0List(expression_identifier_list0_list_1_built),
21463            context,
21464        );
21465        Ok(())
21466    }
21467
21468    /// Semantic action for production 370:
21469    ///
21470    /// `ExpressionIdentifierList0 /* Vec<T>::New */: ;`
21471    ///
21472    #[parol_runtime::function_name::named]
21473    fn expression_identifier_list0_1(&mut self) -> Result<()> {
21474        let context = function_name!();
21475        trace!("{}", self.trace_item_stack(context));
21476        let expression_identifier_list0_1_built = Vec::new();
21477        self.push(
21478            ASTType::ExpressionIdentifierList0(expression_identifier_list0_1_built),
21479            context,
21480        );
21481        Ok(())
21482    }
21483
21484    /// Semantic action for production 371:
21485    ///
21486    /// `ExpressionIdentifierList /* Vec<T>::Push */: Select ExpressionIdentifierList;`
21487    ///
21488    #[parol_runtime::function_name::named]
21489    fn expression_identifier_list_0(
21490        &mut self,
21491        _select: &ParseTreeType<'t>,
21492        _expression_identifier_list: &ParseTreeType<'t>,
21493    ) -> Result<()> {
21494        let context = function_name!();
21495        trace!("{}", self.trace_item_stack(context));
21496        let mut expression_identifier_list = pop_item!(
21497            self,
21498            expression_identifier_list,
21499            ExpressionIdentifierList,
21500            context
21501        );
21502        let select = pop_item!(self, select, Select, context);
21503        let expression_identifier_list_0_built = ExpressionIdentifierList {
21504            select: Box::new(select),
21505        };
21506        // Add an element to the vector
21507        expression_identifier_list.push(expression_identifier_list_0_built);
21508        self.push(
21509            ASTType::ExpressionIdentifierList(expression_identifier_list),
21510            context,
21511        );
21512        Ok(())
21513    }
21514
21515    /// Semantic action for production 372:
21516    ///
21517    /// `ExpressionIdentifierList /* Vec<T>::New */: ;`
21518    ///
21519    #[parol_runtime::function_name::named]
21520    fn expression_identifier_list_1(&mut self) -> Result<()> {
21521        let context = function_name!();
21522        trace!("{}", self.trace_item_stack(context));
21523        let expression_identifier_list_1_built = Vec::new();
21524        self.push(
21525            ASTType::ExpressionIdentifierList(expression_identifier_list_1_built),
21526            context,
21527        );
21528        Ok(())
21529    }
21530
21531    /// Semantic action for production 373:
21532    ///
21533    /// `ExpressionIdentifierOpt /* Option<T>::Some */: Width;`
21534    ///
21535    #[parol_runtime::function_name::named]
21536    fn expression_identifier_opt_0(&mut self, _width: &ParseTreeType<'t>) -> Result<()> {
21537        let context = function_name!();
21538        trace!("{}", self.trace_item_stack(context));
21539        let width = pop_item!(self, width, Width, context);
21540        let expression_identifier_opt_0_built = ExpressionIdentifierOpt {
21541            width: Box::new(width),
21542        };
21543        self.push(
21544            ASTType::ExpressionIdentifierOpt(Some(expression_identifier_opt_0_built)),
21545            context,
21546        );
21547        Ok(())
21548    }
21549
21550    /// Semantic action for production 374:
21551    ///
21552    /// `ExpressionIdentifierOpt /* Option<T>::None */: ;`
21553    ///
21554    #[parol_runtime::function_name::named]
21555    fn expression_identifier_opt_1(&mut self) -> Result<()> {
21556        let context = function_name!();
21557        trace!("{}", self.trace_item_stack(context));
21558        self.push(ASTType::ExpressionIdentifierOpt(None), context);
21559        Ok(())
21560    }
21561
21562    /// Semantic action for production 375:
21563    ///
21564    /// `Expression: Expression01 ExpressionList /* Vec */;`
21565    ///
21566    #[parol_runtime::function_name::named]
21567    fn expression(
21568        &mut self,
21569        _expression01: &ParseTreeType<'t>,
21570        _expression_list: &ParseTreeType<'t>,
21571    ) -> Result<()> {
21572        let context = function_name!();
21573        trace!("{}", self.trace_item_stack(context));
21574        let expression_list = pop_and_reverse_item!(self, expression_list, ExpressionList, context);
21575        let expression01 = pop_item!(self, expression01, Expression01, context);
21576        let expression_built = Expression {
21577            expression01: Box::new(expression01),
21578            expression_list,
21579        };
21580        // Calling user action here
21581        self.user_grammar.expression(&expression_built)?;
21582        self.push(ASTType::Expression(expression_built), context);
21583        Ok(())
21584    }
21585
21586    /// Semantic action for production 376:
21587    ///
21588    /// `ExpressionList /* Vec<T>::Push */: Operator01 Expression01 ExpressionList;`
21589    ///
21590    #[parol_runtime::function_name::named]
21591    fn expression_list_0(
21592        &mut self,
21593        _operator01: &ParseTreeType<'t>,
21594        _expression01: &ParseTreeType<'t>,
21595        _expression_list: &ParseTreeType<'t>,
21596    ) -> Result<()> {
21597        let context = function_name!();
21598        trace!("{}", self.trace_item_stack(context));
21599        let mut expression_list = pop_item!(self, expression_list, ExpressionList, context);
21600        let expression01 = pop_item!(self, expression01, Expression01, context);
21601        let operator01 = pop_item!(self, operator01, Operator01, context);
21602        let expression_list_0_built = ExpressionList {
21603            expression01: Box::new(expression01),
21604            operator01: Box::new(operator01),
21605        };
21606        // Add an element to the vector
21607        expression_list.push(expression_list_0_built);
21608        self.push(ASTType::ExpressionList(expression_list), context);
21609        Ok(())
21610    }
21611
21612    /// Semantic action for production 377:
21613    ///
21614    /// `ExpressionList /* Vec<T>::New */: ;`
21615    ///
21616    #[parol_runtime::function_name::named]
21617    fn expression_list_1(&mut self) -> Result<()> {
21618        let context = function_name!();
21619        trace!("{}", self.trace_item_stack(context));
21620        let expression_list_1_built = Vec::new();
21621        self.push(ASTType::ExpressionList(expression_list_1_built), context);
21622        Ok(())
21623    }
21624
21625    /// Semantic action for production 378:
21626    ///
21627    /// `Expression01: Expression02 Expression01List /* Vec */;`
21628    ///
21629    #[parol_runtime::function_name::named]
21630    fn expression01(
21631        &mut self,
21632        _expression02: &ParseTreeType<'t>,
21633        _expression01_list: &ParseTreeType<'t>,
21634    ) -> Result<()> {
21635        let context = function_name!();
21636        trace!("{}", self.trace_item_stack(context));
21637        let expression01_list =
21638            pop_and_reverse_item!(self, expression01_list, Expression01List, context);
21639        let expression02 = pop_item!(self, expression02, Expression02, context);
21640        let expression01_built = Expression01 {
21641            expression02: Box::new(expression02),
21642            expression01_list,
21643        };
21644        // Calling user action here
21645        self.user_grammar.expression01(&expression01_built)?;
21646        self.push(ASTType::Expression01(expression01_built), context);
21647        Ok(())
21648    }
21649
21650    /// Semantic action for production 379:
21651    ///
21652    /// `Expression01List /* Vec<T>::Push */: Operator02 Expression02 Expression01List;`
21653    ///
21654    #[parol_runtime::function_name::named]
21655    fn expression01_list_0(
21656        &mut self,
21657        _operator02: &ParseTreeType<'t>,
21658        _expression02: &ParseTreeType<'t>,
21659        _expression01_list: &ParseTreeType<'t>,
21660    ) -> Result<()> {
21661        let context = function_name!();
21662        trace!("{}", self.trace_item_stack(context));
21663        let mut expression01_list = pop_item!(self, expression01_list, Expression01List, context);
21664        let expression02 = pop_item!(self, expression02, Expression02, context);
21665        let operator02 = pop_item!(self, operator02, Operator02, context);
21666        let expression01_list_0_built = Expression01List {
21667            expression02: Box::new(expression02),
21668            operator02: Box::new(operator02),
21669        };
21670        // Add an element to the vector
21671        expression01_list.push(expression01_list_0_built);
21672        self.push(ASTType::Expression01List(expression01_list), context);
21673        Ok(())
21674    }
21675
21676    /// Semantic action for production 380:
21677    ///
21678    /// `Expression01List /* Vec<T>::New */: ;`
21679    ///
21680    #[parol_runtime::function_name::named]
21681    fn expression01_list_1(&mut self) -> Result<()> {
21682        let context = function_name!();
21683        trace!("{}", self.trace_item_stack(context));
21684        let expression01_list_1_built = Vec::new();
21685        self.push(
21686            ASTType::Expression01List(expression01_list_1_built),
21687            context,
21688        );
21689        Ok(())
21690    }
21691
21692    /// Semantic action for production 381:
21693    ///
21694    /// `Expression02: Expression03 Expression02List /* Vec */;`
21695    ///
21696    #[parol_runtime::function_name::named]
21697    fn expression02(
21698        &mut self,
21699        _expression03: &ParseTreeType<'t>,
21700        _expression02_list: &ParseTreeType<'t>,
21701    ) -> Result<()> {
21702        let context = function_name!();
21703        trace!("{}", self.trace_item_stack(context));
21704        let expression02_list =
21705            pop_and_reverse_item!(self, expression02_list, Expression02List, context);
21706        let expression03 = pop_item!(self, expression03, Expression03, context);
21707        let expression02_built = Expression02 {
21708            expression03: Box::new(expression03),
21709            expression02_list,
21710        };
21711        // Calling user action here
21712        self.user_grammar.expression02(&expression02_built)?;
21713        self.push(ASTType::Expression02(expression02_built), context);
21714        Ok(())
21715    }
21716
21717    /// Semantic action for production 382:
21718    ///
21719    /// `Expression02List /* Vec<T>::Push */: Operator03 Expression03 Expression02List;`
21720    ///
21721    #[parol_runtime::function_name::named]
21722    fn expression02_list_0(
21723        &mut self,
21724        _operator03: &ParseTreeType<'t>,
21725        _expression03: &ParseTreeType<'t>,
21726        _expression02_list: &ParseTreeType<'t>,
21727    ) -> Result<()> {
21728        let context = function_name!();
21729        trace!("{}", self.trace_item_stack(context));
21730        let mut expression02_list = pop_item!(self, expression02_list, Expression02List, context);
21731        let expression03 = pop_item!(self, expression03, Expression03, context);
21732        let operator03 = pop_item!(self, operator03, Operator03, context);
21733        let expression02_list_0_built = Expression02List {
21734            expression03: Box::new(expression03),
21735            operator03: Box::new(operator03),
21736        };
21737        // Add an element to the vector
21738        expression02_list.push(expression02_list_0_built);
21739        self.push(ASTType::Expression02List(expression02_list), context);
21740        Ok(())
21741    }
21742
21743    /// Semantic action for production 383:
21744    ///
21745    /// `Expression02List /* Vec<T>::New */: ;`
21746    ///
21747    #[parol_runtime::function_name::named]
21748    fn expression02_list_1(&mut self) -> Result<()> {
21749        let context = function_name!();
21750        trace!("{}", self.trace_item_stack(context));
21751        let expression02_list_1_built = Vec::new();
21752        self.push(
21753            ASTType::Expression02List(expression02_list_1_built),
21754            context,
21755        );
21756        Ok(())
21757    }
21758
21759    /// Semantic action for production 384:
21760    ///
21761    /// `Expression03: Expression04 Expression03List /* Vec */;`
21762    ///
21763    #[parol_runtime::function_name::named]
21764    fn expression03(
21765        &mut self,
21766        _expression04: &ParseTreeType<'t>,
21767        _expression03_list: &ParseTreeType<'t>,
21768    ) -> Result<()> {
21769        let context = function_name!();
21770        trace!("{}", self.trace_item_stack(context));
21771        let expression03_list =
21772            pop_and_reverse_item!(self, expression03_list, Expression03List, context);
21773        let expression04 = pop_item!(self, expression04, Expression04, context);
21774        let expression03_built = Expression03 {
21775            expression04: Box::new(expression04),
21776            expression03_list,
21777        };
21778        // Calling user action here
21779        self.user_grammar.expression03(&expression03_built)?;
21780        self.push(ASTType::Expression03(expression03_built), context);
21781        Ok(())
21782    }
21783
21784    /// Semantic action for production 385:
21785    ///
21786    /// `Expression03List /* Vec<T>::Push */: Operator04 Expression04 Expression03List;`
21787    ///
21788    #[parol_runtime::function_name::named]
21789    fn expression03_list_0(
21790        &mut self,
21791        _operator04: &ParseTreeType<'t>,
21792        _expression04: &ParseTreeType<'t>,
21793        _expression03_list: &ParseTreeType<'t>,
21794    ) -> Result<()> {
21795        let context = function_name!();
21796        trace!("{}", self.trace_item_stack(context));
21797        let mut expression03_list = pop_item!(self, expression03_list, Expression03List, context);
21798        let expression04 = pop_item!(self, expression04, Expression04, context);
21799        let operator04 = pop_item!(self, operator04, Operator04, context);
21800        let expression03_list_0_built = Expression03List {
21801            expression04: Box::new(expression04),
21802            operator04: Box::new(operator04),
21803        };
21804        // Add an element to the vector
21805        expression03_list.push(expression03_list_0_built);
21806        self.push(ASTType::Expression03List(expression03_list), context);
21807        Ok(())
21808    }
21809
21810    /// Semantic action for production 386:
21811    ///
21812    /// `Expression03List /* Vec<T>::New */: ;`
21813    ///
21814    #[parol_runtime::function_name::named]
21815    fn expression03_list_1(&mut self) -> Result<()> {
21816        let context = function_name!();
21817        trace!("{}", self.trace_item_stack(context));
21818        let expression03_list_1_built = Vec::new();
21819        self.push(
21820            ASTType::Expression03List(expression03_list_1_built),
21821            context,
21822        );
21823        Ok(())
21824    }
21825
21826    /// Semantic action for production 387:
21827    ///
21828    /// `Expression04: Expression05 Expression04List /* Vec */;`
21829    ///
21830    #[parol_runtime::function_name::named]
21831    fn expression04(
21832        &mut self,
21833        _expression05: &ParseTreeType<'t>,
21834        _expression04_list: &ParseTreeType<'t>,
21835    ) -> Result<()> {
21836        let context = function_name!();
21837        trace!("{}", self.trace_item_stack(context));
21838        let expression04_list =
21839            pop_and_reverse_item!(self, expression04_list, Expression04List, context);
21840        let expression05 = pop_item!(self, expression05, Expression05, context);
21841        let expression04_built = Expression04 {
21842            expression05: Box::new(expression05),
21843            expression04_list,
21844        };
21845        // Calling user action here
21846        self.user_grammar.expression04(&expression04_built)?;
21847        self.push(ASTType::Expression04(expression04_built), context);
21848        Ok(())
21849    }
21850
21851    /// Semantic action for production 388:
21852    ///
21853    /// `Expression04List /* Vec<T>::Push */: Operator05 Expression05 Expression04List;`
21854    ///
21855    #[parol_runtime::function_name::named]
21856    fn expression04_list_0(
21857        &mut self,
21858        _operator05: &ParseTreeType<'t>,
21859        _expression05: &ParseTreeType<'t>,
21860        _expression04_list: &ParseTreeType<'t>,
21861    ) -> Result<()> {
21862        let context = function_name!();
21863        trace!("{}", self.trace_item_stack(context));
21864        let mut expression04_list = pop_item!(self, expression04_list, Expression04List, context);
21865        let expression05 = pop_item!(self, expression05, Expression05, context);
21866        let operator05 = pop_item!(self, operator05, Operator05, context);
21867        let expression04_list_0_built = Expression04List {
21868            expression05: Box::new(expression05),
21869            operator05: Box::new(operator05),
21870        };
21871        // Add an element to the vector
21872        expression04_list.push(expression04_list_0_built);
21873        self.push(ASTType::Expression04List(expression04_list), context);
21874        Ok(())
21875    }
21876
21877    /// Semantic action for production 389:
21878    ///
21879    /// `Expression04List /* Vec<T>::New */: ;`
21880    ///
21881    #[parol_runtime::function_name::named]
21882    fn expression04_list_1(&mut self) -> Result<()> {
21883        let context = function_name!();
21884        trace!("{}", self.trace_item_stack(context));
21885        let expression04_list_1_built = Vec::new();
21886        self.push(
21887            ASTType::Expression04List(expression04_list_1_built),
21888            context,
21889        );
21890        Ok(())
21891    }
21892
21893    /// Semantic action for production 390:
21894    ///
21895    /// `Expression05: Expression06 Expression05List /* Vec */;`
21896    ///
21897    #[parol_runtime::function_name::named]
21898    fn expression05(
21899        &mut self,
21900        _expression06: &ParseTreeType<'t>,
21901        _expression05_list: &ParseTreeType<'t>,
21902    ) -> Result<()> {
21903        let context = function_name!();
21904        trace!("{}", self.trace_item_stack(context));
21905        let expression05_list =
21906            pop_and_reverse_item!(self, expression05_list, Expression05List, context);
21907        let expression06 = pop_item!(self, expression06, Expression06, context);
21908        let expression05_built = Expression05 {
21909            expression06: Box::new(expression06),
21910            expression05_list,
21911        };
21912        // Calling user action here
21913        self.user_grammar.expression05(&expression05_built)?;
21914        self.push(ASTType::Expression05(expression05_built), context);
21915        Ok(())
21916    }
21917
21918    /// Semantic action for production 391:
21919    ///
21920    /// `Expression05List /* Vec<T>::Push */: Operator06 Expression06 Expression05List;`
21921    ///
21922    #[parol_runtime::function_name::named]
21923    fn expression05_list_0(
21924        &mut self,
21925        _operator06: &ParseTreeType<'t>,
21926        _expression06: &ParseTreeType<'t>,
21927        _expression05_list: &ParseTreeType<'t>,
21928    ) -> Result<()> {
21929        let context = function_name!();
21930        trace!("{}", self.trace_item_stack(context));
21931        let mut expression05_list = pop_item!(self, expression05_list, Expression05List, context);
21932        let expression06 = pop_item!(self, expression06, Expression06, context);
21933        let operator06 = pop_item!(self, operator06, Operator06, context);
21934        let expression05_list_0_built = Expression05List {
21935            expression06: Box::new(expression06),
21936            operator06: Box::new(operator06),
21937        };
21938        // Add an element to the vector
21939        expression05_list.push(expression05_list_0_built);
21940        self.push(ASTType::Expression05List(expression05_list), context);
21941        Ok(())
21942    }
21943
21944    /// Semantic action for production 392:
21945    ///
21946    /// `Expression05List /* Vec<T>::New */: ;`
21947    ///
21948    #[parol_runtime::function_name::named]
21949    fn expression05_list_1(&mut self) -> Result<()> {
21950        let context = function_name!();
21951        trace!("{}", self.trace_item_stack(context));
21952        let expression05_list_1_built = Vec::new();
21953        self.push(
21954            ASTType::Expression05List(expression05_list_1_built),
21955            context,
21956        );
21957        Ok(())
21958    }
21959
21960    /// Semantic action for production 393:
21961    ///
21962    /// `Expression06: Expression07 Expression06List /* Vec */;`
21963    ///
21964    #[parol_runtime::function_name::named]
21965    fn expression06(
21966        &mut self,
21967        _expression07: &ParseTreeType<'t>,
21968        _expression06_list: &ParseTreeType<'t>,
21969    ) -> Result<()> {
21970        let context = function_name!();
21971        trace!("{}", self.trace_item_stack(context));
21972        let expression06_list =
21973            pop_and_reverse_item!(self, expression06_list, Expression06List, context);
21974        let expression07 = pop_item!(self, expression07, Expression07, context);
21975        let expression06_built = Expression06 {
21976            expression07: Box::new(expression07),
21977            expression06_list,
21978        };
21979        // Calling user action here
21980        self.user_grammar.expression06(&expression06_built)?;
21981        self.push(ASTType::Expression06(expression06_built), context);
21982        Ok(())
21983    }
21984
21985    /// Semantic action for production 394:
21986    ///
21987    /// `Expression06List /* Vec<T>::Push */: Operator07 Expression07 Expression06List;`
21988    ///
21989    #[parol_runtime::function_name::named]
21990    fn expression06_list_0(
21991        &mut self,
21992        _operator07: &ParseTreeType<'t>,
21993        _expression07: &ParseTreeType<'t>,
21994        _expression06_list: &ParseTreeType<'t>,
21995    ) -> Result<()> {
21996        let context = function_name!();
21997        trace!("{}", self.trace_item_stack(context));
21998        let mut expression06_list = pop_item!(self, expression06_list, Expression06List, context);
21999        let expression07 = pop_item!(self, expression07, Expression07, context);
22000        let operator07 = pop_item!(self, operator07, Operator07, context);
22001        let expression06_list_0_built = Expression06List {
22002            expression07: Box::new(expression07),
22003            operator07: Box::new(operator07),
22004        };
22005        // Add an element to the vector
22006        expression06_list.push(expression06_list_0_built);
22007        self.push(ASTType::Expression06List(expression06_list), context);
22008        Ok(())
22009    }
22010
22011    /// Semantic action for production 395:
22012    ///
22013    /// `Expression06List /* Vec<T>::New */: ;`
22014    ///
22015    #[parol_runtime::function_name::named]
22016    fn expression06_list_1(&mut self) -> Result<()> {
22017        let context = function_name!();
22018        trace!("{}", self.trace_item_stack(context));
22019        let expression06_list_1_built = Vec::new();
22020        self.push(
22021            ASTType::Expression06List(expression06_list_1_built),
22022            context,
22023        );
22024        Ok(())
22025    }
22026
22027    /// Semantic action for production 396:
22028    ///
22029    /// `Expression07: Expression08 Expression07List /* Vec */;`
22030    ///
22031    #[parol_runtime::function_name::named]
22032    fn expression07(
22033        &mut self,
22034        _expression08: &ParseTreeType<'t>,
22035        _expression07_list: &ParseTreeType<'t>,
22036    ) -> Result<()> {
22037        let context = function_name!();
22038        trace!("{}", self.trace_item_stack(context));
22039        let expression07_list =
22040            pop_and_reverse_item!(self, expression07_list, Expression07List, context);
22041        let expression08 = pop_item!(self, expression08, Expression08, context);
22042        let expression07_built = Expression07 {
22043            expression08: Box::new(expression08),
22044            expression07_list,
22045        };
22046        // Calling user action here
22047        self.user_grammar.expression07(&expression07_built)?;
22048        self.push(ASTType::Expression07(expression07_built), context);
22049        Ok(())
22050    }
22051
22052    /// Semantic action for production 397:
22053    ///
22054    /// `Expression07List /* Vec<T>::Push */: Operator08 Expression08 Expression07List;`
22055    ///
22056    #[parol_runtime::function_name::named]
22057    fn expression07_list_0(
22058        &mut self,
22059        _operator08: &ParseTreeType<'t>,
22060        _expression08: &ParseTreeType<'t>,
22061        _expression07_list: &ParseTreeType<'t>,
22062    ) -> Result<()> {
22063        let context = function_name!();
22064        trace!("{}", self.trace_item_stack(context));
22065        let mut expression07_list = pop_item!(self, expression07_list, Expression07List, context);
22066        let expression08 = pop_item!(self, expression08, Expression08, context);
22067        let operator08 = pop_item!(self, operator08, Operator08, context);
22068        let expression07_list_0_built = Expression07List {
22069            expression08: Box::new(expression08),
22070            operator08: Box::new(operator08),
22071        };
22072        // Add an element to the vector
22073        expression07_list.push(expression07_list_0_built);
22074        self.push(ASTType::Expression07List(expression07_list), context);
22075        Ok(())
22076    }
22077
22078    /// Semantic action for production 398:
22079    ///
22080    /// `Expression07List /* Vec<T>::New */: ;`
22081    ///
22082    #[parol_runtime::function_name::named]
22083    fn expression07_list_1(&mut self) -> Result<()> {
22084        let context = function_name!();
22085        trace!("{}", self.trace_item_stack(context));
22086        let expression07_list_1_built = Vec::new();
22087        self.push(
22088            ASTType::Expression07List(expression07_list_1_built),
22089            context,
22090        );
22091        Ok(())
22092    }
22093
22094    /// Semantic action for production 399:
22095    ///
22096    /// `Expression08: Expression09 Expression08List /* Vec */;`
22097    ///
22098    #[parol_runtime::function_name::named]
22099    fn expression08(
22100        &mut self,
22101        _expression09: &ParseTreeType<'t>,
22102        _expression08_list: &ParseTreeType<'t>,
22103    ) -> Result<()> {
22104        let context = function_name!();
22105        trace!("{}", self.trace_item_stack(context));
22106        let expression08_list =
22107            pop_and_reverse_item!(self, expression08_list, Expression08List, context);
22108        let expression09 = pop_item!(self, expression09, Expression09, context);
22109        let expression08_built = Expression08 {
22110            expression09: Box::new(expression09),
22111            expression08_list,
22112        };
22113        // Calling user action here
22114        self.user_grammar.expression08(&expression08_built)?;
22115        self.push(ASTType::Expression08(expression08_built), context);
22116        Ok(())
22117    }
22118
22119    /// Semantic action for production 400:
22120    ///
22121    /// `Expression08List /* Vec<T>::Push */: Operator09 Expression09 Expression08List;`
22122    ///
22123    #[parol_runtime::function_name::named]
22124    fn expression08_list_0(
22125        &mut self,
22126        _operator09: &ParseTreeType<'t>,
22127        _expression09: &ParseTreeType<'t>,
22128        _expression08_list: &ParseTreeType<'t>,
22129    ) -> Result<()> {
22130        let context = function_name!();
22131        trace!("{}", self.trace_item_stack(context));
22132        let mut expression08_list = pop_item!(self, expression08_list, Expression08List, context);
22133        let expression09 = pop_item!(self, expression09, Expression09, context);
22134        let operator09 = pop_item!(self, operator09, Operator09, context);
22135        let expression08_list_0_built = Expression08List {
22136            expression09: Box::new(expression09),
22137            operator09: Box::new(operator09),
22138        };
22139        // Add an element to the vector
22140        expression08_list.push(expression08_list_0_built);
22141        self.push(ASTType::Expression08List(expression08_list), context);
22142        Ok(())
22143    }
22144
22145    /// Semantic action for production 401:
22146    ///
22147    /// `Expression08List /* Vec<T>::New */: ;`
22148    ///
22149    #[parol_runtime::function_name::named]
22150    fn expression08_list_1(&mut self) -> Result<()> {
22151        let context = function_name!();
22152        trace!("{}", self.trace_item_stack(context));
22153        let expression08_list_1_built = Vec::new();
22154        self.push(
22155            ASTType::Expression08List(expression08_list_1_built),
22156            context,
22157        );
22158        Ok(())
22159    }
22160
22161    /// Semantic action for production 402:
22162    ///
22163    /// `Expression09: Expression10 Expression09List /* Vec */;`
22164    ///
22165    #[parol_runtime::function_name::named]
22166    fn expression09(
22167        &mut self,
22168        _expression10: &ParseTreeType<'t>,
22169        _expression09_list: &ParseTreeType<'t>,
22170    ) -> Result<()> {
22171        let context = function_name!();
22172        trace!("{}", self.trace_item_stack(context));
22173        let expression09_list =
22174            pop_and_reverse_item!(self, expression09_list, Expression09List, context);
22175        let expression10 = pop_item!(self, expression10, Expression10, context);
22176        let expression09_built = Expression09 {
22177            expression10: Box::new(expression10),
22178            expression09_list,
22179        };
22180        // Calling user action here
22181        self.user_grammar.expression09(&expression09_built)?;
22182        self.push(ASTType::Expression09(expression09_built), context);
22183        Ok(())
22184    }
22185
22186    /// Semantic action for production 403:
22187    ///
22188    /// `Expression09List /* Vec<T>::Push */: Expression09ListGroup Expression10 Expression09List;`
22189    ///
22190    #[parol_runtime::function_name::named]
22191    fn expression09_list_0(
22192        &mut self,
22193        _expression09_list_group: &ParseTreeType<'t>,
22194        _expression10: &ParseTreeType<'t>,
22195        _expression09_list: &ParseTreeType<'t>,
22196    ) -> Result<()> {
22197        let context = function_name!();
22198        trace!("{}", self.trace_item_stack(context));
22199        let mut expression09_list = pop_item!(self, expression09_list, Expression09List, context);
22200        let expression10 = pop_item!(self, expression10, Expression10, context);
22201        let expression09_list_group = pop_item!(
22202            self,
22203            expression09_list_group,
22204            Expression09ListGroup,
22205            context
22206        );
22207        let expression09_list_0_built = Expression09List {
22208            expression10: Box::new(expression10),
22209            expression09_list_group: Box::new(expression09_list_group),
22210        };
22211        // Add an element to the vector
22212        expression09_list.push(expression09_list_0_built);
22213        self.push(ASTType::Expression09List(expression09_list), context);
22214        Ok(())
22215    }
22216
22217    /// Semantic action for production 404:
22218    ///
22219    /// `Expression09ListGroup: Operator10;`
22220    ///
22221    #[parol_runtime::function_name::named]
22222    fn expression09_list_group_0(&mut self, _operator10: &ParseTreeType<'t>) -> Result<()> {
22223        let context = function_name!();
22224        trace!("{}", self.trace_item_stack(context));
22225        let operator10 = pop_item!(self, operator10, Operator10, context);
22226        let expression09_list_group_0_built = Expression09ListGroupOperator10 {
22227            operator10: Box::new(operator10),
22228        };
22229        let expression09_list_group_0_built =
22230            Expression09ListGroup::Operator10(expression09_list_group_0_built);
22231        self.push(
22232            ASTType::Expression09ListGroup(expression09_list_group_0_built),
22233            context,
22234        );
22235        Ok(())
22236    }
22237
22238    /// Semantic action for production 405:
22239    ///
22240    /// `Expression09ListGroup: Star;`
22241    ///
22242    #[parol_runtime::function_name::named]
22243    fn expression09_list_group_1(&mut self, _star: &ParseTreeType<'t>) -> Result<()> {
22244        let context = function_name!();
22245        trace!("{}", self.trace_item_stack(context));
22246        let star = pop_item!(self, star, Star, context);
22247        let expression09_list_group_1_built = Expression09ListGroupStar {
22248            star: Box::new(star),
22249        };
22250        let expression09_list_group_1_built =
22251            Expression09ListGroup::Star(expression09_list_group_1_built);
22252        self.push(
22253            ASTType::Expression09ListGroup(expression09_list_group_1_built),
22254            context,
22255        );
22256        Ok(())
22257    }
22258
22259    /// Semantic action for production 406:
22260    ///
22261    /// `Expression09List /* Vec<T>::New */: ;`
22262    ///
22263    #[parol_runtime::function_name::named]
22264    fn expression09_list_1(&mut self) -> Result<()> {
22265        let context = function_name!();
22266        trace!("{}", self.trace_item_stack(context));
22267        let expression09_list_1_built = Vec::new();
22268        self.push(
22269            ASTType::Expression09List(expression09_list_1_built),
22270            context,
22271        );
22272        Ok(())
22273    }
22274
22275    /// Semantic action for production 407:
22276    ///
22277    /// `Expression10: Expression11 Expression10List /* Vec */;`
22278    ///
22279    #[parol_runtime::function_name::named]
22280    fn expression10(
22281        &mut self,
22282        _expression11: &ParseTreeType<'t>,
22283        _expression10_list: &ParseTreeType<'t>,
22284    ) -> Result<()> {
22285        let context = function_name!();
22286        trace!("{}", self.trace_item_stack(context));
22287        let expression10_list =
22288            pop_and_reverse_item!(self, expression10_list, Expression10List, context);
22289        let expression11 = pop_item!(self, expression11, Expression11, context);
22290        let expression10_built = Expression10 {
22291            expression11: Box::new(expression11),
22292            expression10_list,
22293        };
22294        // Calling user action here
22295        self.user_grammar.expression10(&expression10_built)?;
22296        self.push(ASTType::Expression10(expression10_built), context);
22297        Ok(())
22298    }
22299
22300    /// Semantic action for production 408:
22301    ///
22302    /// `Expression10List /* Vec<T>::Push */: Operator11 Expression11 Expression10List;`
22303    ///
22304    #[parol_runtime::function_name::named]
22305    fn expression10_list_0(
22306        &mut self,
22307        _operator11: &ParseTreeType<'t>,
22308        _expression11: &ParseTreeType<'t>,
22309        _expression10_list: &ParseTreeType<'t>,
22310    ) -> Result<()> {
22311        let context = function_name!();
22312        trace!("{}", self.trace_item_stack(context));
22313        let mut expression10_list = pop_item!(self, expression10_list, Expression10List, context);
22314        let expression11 = pop_item!(self, expression11, Expression11, context);
22315        let operator11 = pop_item!(self, operator11, Operator11, context);
22316        let expression10_list_0_built = Expression10List {
22317            expression11: Box::new(expression11),
22318            operator11: Box::new(operator11),
22319        };
22320        // Add an element to the vector
22321        expression10_list.push(expression10_list_0_built);
22322        self.push(ASTType::Expression10List(expression10_list), context);
22323        Ok(())
22324    }
22325
22326    /// Semantic action for production 409:
22327    ///
22328    /// `Expression10List /* Vec<T>::New */: ;`
22329    ///
22330    #[parol_runtime::function_name::named]
22331    fn expression10_list_1(&mut self) -> Result<()> {
22332        let context = function_name!();
22333        trace!("{}", self.trace_item_stack(context));
22334        let expression10_list_1_built = Vec::new();
22335        self.push(
22336            ASTType::Expression10List(expression10_list_1_built),
22337            context,
22338        );
22339        Ok(())
22340    }
22341
22342    /// Semantic action for production 410:
22343    ///
22344    /// `Expression11: Expression12 Expression11Opt /* Option */;`
22345    ///
22346    #[parol_runtime::function_name::named]
22347    fn expression11(
22348        &mut self,
22349        _expression12: &ParseTreeType<'t>,
22350        _expression11_opt: &ParseTreeType<'t>,
22351    ) -> Result<()> {
22352        let context = function_name!();
22353        trace!("{}", self.trace_item_stack(context));
22354        let expression11_opt = pop_item!(self, expression11_opt, Expression11Opt, context);
22355        let expression12 = pop_item!(self, expression12, Expression12, context);
22356        let expression11_built = Expression11 {
22357            expression12: Box::new(expression12),
22358            expression11_opt,
22359        };
22360        // Calling user action here
22361        self.user_grammar.expression11(&expression11_built)?;
22362        self.push(ASTType::Expression11(expression11_built), context);
22363        Ok(())
22364    }
22365
22366    /// Semantic action for production 411:
22367    ///
22368    /// `Expression11Opt /* Option<T>::Some */: As CastingType;`
22369    ///
22370    #[parol_runtime::function_name::named]
22371    fn expression11_opt_0(
22372        &mut self,
22373        _as: &ParseTreeType<'t>,
22374        _casting_type: &ParseTreeType<'t>,
22375    ) -> Result<()> {
22376        let context = function_name!();
22377        trace!("{}", self.trace_item_stack(context));
22378        let casting_type = pop_item!(self, casting_type, CastingType, context);
22379        let r#as = pop_item!(self, r#as, As, context);
22380        let expression11_opt_0_built = Expression11Opt {
22381            r#as: Box::new(r#as),
22382            casting_type: Box::new(casting_type),
22383        };
22384        self.push(
22385            ASTType::Expression11Opt(Some(expression11_opt_0_built)),
22386            context,
22387        );
22388        Ok(())
22389    }
22390
22391    /// Semantic action for production 412:
22392    ///
22393    /// `Expression11Opt /* Option<T>::None */: ;`
22394    ///
22395    #[parol_runtime::function_name::named]
22396    fn expression11_opt_1(&mut self) -> Result<()> {
22397        let context = function_name!();
22398        trace!("{}", self.trace_item_stack(context));
22399        self.push(ASTType::Expression11Opt(None), context);
22400        Ok(())
22401    }
22402
22403    /// Semantic action for production 413:
22404    ///
22405    /// `Expression12: Expression12List /* Vec */ Factor;`
22406    ///
22407    #[parol_runtime::function_name::named]
22408    fn expression12(
22409        &mut self,
22410        _expression12_list: &ParseTreeType<'t>,
22411        _factor: &ParseTreeType<'t>,
22412    ) -> Result<()> {
22413        let context = function_name!();
22414        trace!("{}", self.trace_item_stack(context));
22415        let factor = pop_item!(self, factor, Factor, context);
22416        let expression12_list =
22417            pop_and_reverse_item!(self, expression12_list, Expression12List, context);
22418        let expression12_built = Expression12 {
22419            expression12_list,
22420            factor: Box::new(factor),
22421        };
22422        // Calling user action here
22423        self.user_grammar.expression12(&expression12_built)?;
22424        self.push(ASTType::Expression12(expression12_built), context);
22425        Ok(())
22426    }
22427
22428    /// Semantic action for production 414:
22429    ///
22430    /// `Expression12List /* Vec<T>::Push */: Expression12ListGroup Expression12List;`
22431    ///
22432    #[parol_runtime::function_name::named]
22433    fn expression12_list_0(
22434        &mut self,
22435        _expression12_list_group: &ParseTreeType<'t>,
22436        _expression12_list: &ParseTreeType<'t>,
22437    ) -> Result<()> {
22438        let context = function_name!();
22439        trace!("{}", self.trace_item_stack(context));
22440        let mut expression12_list = pop_item!(self, expression12_list, Expression12List, context);
22441        let expression12_list_group = pop_item!(
22442            self,
22443            expression12_list_group,
22444            Expression12ListGroup,
22445            context
22446        );
22447        let expression12_list_0_built = Expression12List {
22448            expression12_list_group: Box::new(expression12_list_group),
22449        };
22450        // Add an element to the vector
22451        expression12_list.push(expression12_list_0_built);
22452        self.push(ASTType::Expression12List(expression12_list), context);
22453        Ok(())
22454    }
22455
22456    /// Semantic action for production 415:
22457    ///
22458    /// `Expression12ListGroup: UnaryOperator;`
22459    ///
22460    #[parol_runtime::function_name::named]
22461    fn expression12_list_group_0(&mut self, _unary_operator: &ParseTreeType<'t>) -> Result<()> {
22462        let context = function_name!();
22463        trace!("{}", self.trace_item_stack(context));
22464        let unary_operator = pop_item!(self, unary_operator, UnaryOperator, context);
22465        let expression12_list_group_0_built = Expression12ListGroupUnaryOperator {
22466            unary_operator: Box::new(unary_operator),
22467        };
22468        let expression12_list_group_0_built =
22469            Expression12ListGroup::UnaryOperator(expression12_list_group_0_built);
22470        self.push(
22471            ASTType::Expression12ListGroup(expression12_list_group_0_built),
22472            context,
22473        );
22474        Ok(())
22475    }
22476
22477    /// Semantic action for production 416:
22478    ///
22479    /// `Expression12ListGroup: Operator09;`
22480    ///
22481    #[parol_runtime::function_name::named]
22482    fn expression12_list_group_1(&mut self, _operator09: &ParseTreeType<'t>) -> Result<()> {
22483        let context = function_name!();
22484        trace!("{}", self.trace_item_stack(context));
22485        let operator09 = pop_item!(self, operator09, Operator09, context);
22486        let expression12_list_group_1_built = Expression12ListGroupOperator09 {
22487            operator09: Box::new(operator09),
22488        };
22489        let expression12_list_group_1_built =
22490            Expression12ListGroup::Operator09(expression12_list_group_1_built);
22491        self.push(
22492            ASTType::Expression12ListGroup(expression12_list_group_1_built),
22493            context,
22494        );
22495        Ok(())
22496    }
22497
22498    /// Semantic action for production 417:
22499    ///
22500    /// `Expression12ListGroup: Operator05;`
22501    ///
22502    #[parol_runtime::function_name::named]
22503    fn expression12_list_group_2(&mut self, _operator05: &ParseTreeType<'t>) -> Result<()> {
22504        let context = function_name!();
22505        trace!("{}", self.trace_item_stack(context));
22506        let operator05 = pop_item!(self, operator05, Operator05, context);
22507        let expression12_list_group_2_built = Expression12ListGroupOperator05 {
22508            operator05: Box::new(operator05),
22509        };
22510        let expression12_list_group_2_built =
22511            Expression12ListGroup::Operator05(expression12_list_group_2_built);
22512        self.push(
22513            ASTType::Expression12ListGroup(expression12_list_group_2_built),
22514            context,
22515        );
22516        Ok(())
22517    }
22518
22519    /// Semantic action for production 418:
22520    ///
22521    /// `Expression12ListGroup: Operator03;`
22522    ///
22523    #[parol_runtime::function_name::named]
22524    fn expression12_list_group_3(&mut self, _operator03: &ParseTreeType<'t>) -> Result<()> {
22525        let context = function_name!();
22526        trace!("{}", self.trace_item_stack(context));
22527        let operator03 = pop_item!(self, operator03, Operator03, context);
22528        let expression12_list_group_3_built = Expression12ListGroupOperator03 {
22529            operator03: Box::new(operator03),
22530        };
22531        let expression12_list_group_3_built =
22532            Expression12ListGroup::Operator03(expression12_list_group_3_built);
22533        self.push(
22534            ASTType::Expression12ListGroup(expression12_list_group_3_built),
22535            context,
22536        );
22537        Ok(())
22538    }
22539
22540    /// Semantic action for production 419:
22541    ///
22542    /// `Expression12ListGroup: Operator04;`
22543    ///
22544    #[parol_runtime::function_name::named]
22545    fn expression12_list_group_4(&mut self, _operator04: &ParseTreeType<'t>) -> Result<()> {
22546        let context = function_name!();
22547        trace!("{}", self.trace_item_stack(context));
22548        let operator04 = pop_item!(self, operator04, Operator04, context);
22549        let expression12_list_group_4_built = Expression12ListGroupOperator04 {
22550            operator04: Box::new(operator04),
22551        };
22552        let expression12_list_group_4_built =
22553            Expression12ListGroup::Operator04(expression12_list_group_4_built);
22554        self.push(
22555            ASTType::Expression12ListGroup(expression12_list_group_4_built),
22556            context,
22557        );
22558        Ok(())
22559    }
22560
22561    /// Semantic action for production 420:
22562    ///
22563    /// `Expression12List /* Vec<T>::New */: ;`
22564    ///
22565    #[parol_runtime::function_name::named]
22566    fn expression12_list_1(&mut self) -> Result<()> {
22567        let context = function_name!();
22568        trace!("{}", self.trace_item_stack(context));
22569        let expression12_list_1_built = Vec::new();
22570        self.push(
22571            ASTType::Expression12List(expression12_list_1_built),
22572            context,
22573        );
22574        Ok(())
22575    }
22576
22577    /// Semantic action for production 421:
22578    ///
22579    /// `Factor: Number;`
22580    ///
22581    #[parol_runtime::function_name::named]
22582    fn factor_0(&mut self, _number: &ParseTreeType<'t>) -> Result<()> {
22583        let context = function_name!();
22584        trace!("{}", self.trace_item_stack(context));
22585        let number = pop_item!(self, number, Number, context);
22586        let factor_0_built = FactorNumber {
22587            number: Box::new(number),
22588        };
22589        let factor_0_built = Factor::Number(factor_0_built);
22590        // Calling user action here
22591        self.user_grammar.factor(&factor_0_built)?;
22592        self.push(ASTType::Factor(factor_0_built), context);
22593        Ok(())
22594    }
22595
22596    /// Semantic action for production 422:
22597    ///
22598    /// `Factor: IdentifierFactor;`
22599    ///
22600    #[parol_runtime::function_name::named]
22601    fn factor_1(&mut self, _identifier_factor: &ParseTreeType<'t>) -> Result<()> {
22602        let context = function_name!();
22603        trace!("{}", self.trace_item_stack(context));
22604        let identifier_factor = pop_item!(self, identifier_factor, IdentifierFactor, context);
22605        let factor_1_built = FactorIdentifierFactor {
22606            identifier_factor: Box::new(identifier_factor),
22607        };
22608        let factor_1_built = Factor::IdentifierFactor(factor_1_built);
22609        // Calling user action here
22610        self.user_grammar.factor(&factor_1_built)?;
22611        self.push(ASTType::Factor(factor_1_built), context);
22612        Ok(())
22613    }
22614
22615    /// Semantic action for production 423:
22616    ///
22617    /// `Factor: LParen Expression RParen;`
22618    ///
22619    #[parol_runtime::function_name::named]
22620    fn factor_2(
22621        &mut self,
22622        _l_paren: &ParseTreeType<'t>,
22623        _expression: &ParseTreeType<'t>,
22624        _r_paren: &ParseTreeType<'t>,
22625    ) -> Result<()> {
22626        let context = function_name!();
22627        trace!("{}", self.trace_item_stack(context));
22628        let r_paren = pop_item!(self, r_paren, RParen, context);
22629        let expression = pop_item!(self, expression, Expression, context);
22630        let l_paren = pop_item!(self, l_paren, LParen, context);
22631        let factor_2_built = FactorLParenExpressionRParen {
22632            l_paren: Box::new(l_paren),
22633            expression: Box::new(expression),
22634            r_paren: Box::new(r_paren),
22635        };
22636        let factor_2_built = Factor::LParenExpressionRParen(factor_2_built);
22637        // Calling user action here
22638        self.user_grammar.factor(&factor_2_built)?;
22639        self.push(ASTType::Factor(factor_2_built), context);
22640        Ok(())
22641    }
22642
22643    /// Semantic action for production 424:
22644    ///
22645    /// `Factor: LBrace ConcatenationList RBrace;`
22646    ///
22647    #[parol_runtime::function_name::named]
22648    fn factor_3(
22649        &mut self,
22650        _l_brace: &ParseTreeType<'t>,
22651        _concatenation_list: &ParseTreeType<'t>,
22652        _r_brace: &ParseTreeType<'t>,
22653    ) -> Result<()> {
22654        let context = function_name!();
22655        trace!("{}", self.trace_item_stack(context));
22656        let r_brace = pop_item!(self, r_brace, RBrace, context);
22657        let concatenation_list = pop_item!(self, concatenation_list, ConcatenationList, context);
22658        let l_brace = pop_item!(self, l_brace, LBrace, context);
22659        let factor_3_built = FactorLBraceConcatenationListRBrace {
22660            l_brace: Box::new(l_brace),
22661            concatenation_list: Box::new(concatenation_list),
22662            r_brace: Box::new(r_brace),
22663        };
22664        let factor_3_built = Factor::LBraceConcatenationListRBrace(factor_3_built);
22665        // Calling user action here
22666        self.user_grammar.factor(&factor_3_built)?;
22667        self.push(ASTType::Factor(factor_3_built), context);
22668        Ok(())
22669    }
22670
22671    /// Semantic action for production 425:
22672    ///
22673    /// `Factor: QuoteLBrace ArrayLiteralList RBrace;`
22674    ///
22675    #[parol_runtime::function_name::named]
22676    fn factor_4(
22677        &mut self,
22678        _quote_l_brace: &ParseTreeType<'t>,
22679        _array_literal_list: &ParseTreeType<'t>,
22680        _r_brace: &ParseTreeType<'t>,
22681    ) -> Result<()> {
22682        let context = function_name!();
22683        trace!("{}", self.trace_item_stack(context));
22684        let r_brace = pop_item!(self, r_brace, RBrace, context);
22685        let array_literal_list = pop_item!(self, array_literal_list, ArrayLiteralList, context);
22686        let quote_l_brace = pop_item!(self, quote_l_brace, QuoteLBrace, context);
22687        let factor_4_built = FactorQuoteLBraceArrayLiteralListRBrace {
22688            quote_l_brace: Box::new(quote_l_brace),
22689            array_literal_list: Box::new(array_literal_list),
22690            r_brace: Box::new(r_brace),
22691        };
22692        let factor_4_built = Factor::QuoteLBraceArrayLiteralListRBrace(factor_4_built);
22693        // Calling user action here
22694        self.user_grammar.factor(&factor_4_built)?;
22695        self.push(ASTType::Factor(factor_4_built), context);
22696        Ok(())
22697    }
22698
22699    /// Semantic action for production 426:
22700    ///
22701    /// `Factor: IfExpression;`
22702    ///
22703    #[parol_runtime::function_name::named]
22704    fn factor_5(&mut self, _if_expression: &ParseTreeType<'t>) -> Result<()> {
22705        let context = function_name!();
22706        trace!("{}", self.trace_item_stack(context));
22707        let if_expression = pop_item!(self, if_expression, IfExpression, context);
22708        let factor_5_built = FactorIfExpression {
22709            if_expression: Box::new(if_expression),
22710        };
22711        let factor_5_built = Factor::IfExpression(factor_5_built);
22712        // Calling user action here
22713        self.user_grammar.factor(&factor_5_built)?;
22714        self.push(ASTType::Factor(factor_5_built), context);
22715        Ok(())
22716    }
22717
22718    /// Semantic action for production 427:
22719    ///
22720    /// `Factor: CaseExpression;`
22721    ///
22722    #[parol_runtime::function_name::named]
22723    fn factor_6(&mut self, _case_expression: &ParseTreeType<'t>) -> Result<()> {
22724        let context = function_name!();
22725        trace!("{}", self.trace_item_stack(context));
22726        let case_expression = pop_item!(self, case_expression, CaseExpression, context);
22727        let factor_6_built = FactorCaseExpression {
22728            case_expression: Box::new(case_expression),
22729        };
22730        let factor_6_built = Factor::CaseExpression(factor_6_built);
22731        // Calling user action here
22732        self.user_grammar.factor(&factor_6_built)?;
22733        self.push(ASTType::Factor(factor_6_built), context);
22734        Ok(())
22735    }
22736
22737    /// Semantic action for production 428:
22738    ///
22739    /// `Factor: SwitchExpression;`
22740    ///
22741    #[parol_runtime::function_name::named]
22742    fn factor_7(&mut self, _switch_expression: &ParseTreeType<'t>) -> Result<()> {
22743        let context = function_name!();
22744        trace!("{}", self.trace_item_stack(context));
22745        let switch_expression = pop_item!(self, switch_expression, SwitchExpression, context);
22746        let factor_7_built = FactorSwitchExpression {
22747            switch_expression: Box::new(switch_expression),
22748        };
22749        let factor_7_built = Factor::SwitchExpression(factor_7_built);
22750        // Calling user action here
22751        self.user_grammar.factor(&factor_7_built)?;
22752        self.push(ASTType::Factor(factor_7_built), context);
22753        Ok(())
22754    }
22755
22756    /// Semantic action for production 429:
22757    ///
22758    /// `Factor: StringLiteral;`
22759    ///
22760    #[parol_runtime::function_name::named]
22761    fn factor_8(&mut self, _string_literal: &ParseTreeType<'t>) -> Result<()> {
22762        let context = function_name!();
22763        trace!("{}", self.trace_item_stack(context));
22764        let string_literal = pop_item!(self, string_literal, StringLiteral, context);
22765        let factor_8_built = FactorStringLiteral {
22766            string_literal: Box::new(string_literal),
22767        };
22768        let factor_8_built = Factor::StringLiteral(factor_8_built);
22769        // Calling user action here
22770        self.user_grammar.factor(&factor_8_built)?;
22771        self.push(ASTType::Factor(factor_8_built), context);
22772        Ok(())
22773    }
22774
22775    /// Semantic action for production 430:
22776    ///
22777    /// `Factor: FactorGroup;`
22778    ///
22779    #[parol_runtime::function_name::named]
22780    fn factor_9(&mut self, _factor_group: &ParseTreeType<'t>) -> Result<()> {
22781        let context = function_name!();
22782        trace!("{}", self.trace_item_stack(context));
22783        let factor_group = pop_item!(self, factor_group, FactorGroup, context);
22784        let factor_9_built = FactorFactorGroup {
22785            factor_group: Box::new(factor_group),
22786        };
22787        let factor_9_built = Factor::FactorGroup(factor_9_built);
22788        // Calling user action here
22789        self.user_grammar.factor(&factor_9_built)?;
22790        self.push(ASTType::Factor(factor_9_built), context);
22791        Ok(())
22792    }
22793
22794    /// Semantic action for production 431:
22795    ///
22796    /// `FactorGroup: Msb;`
22797    ///
22798    #[parol_runtime::function_name::named]
22799    fn factor_group_0(&mut self, _msb: &ParseTreeType<'t>) -> Result<()> {
22800        let context = function_name!();
22801        trace!("{}", self.trace_item_stack(context));
22802        let msb = pop_item!(self, msb, Msb, context);
22803        let factor_group_0_built = FactorGroupMsb { msb: Box::new(msb) };
22804        let factor_group_0_built = FactorGroup::Msb(factor_group_0_built);
22805        self.push(ASTType::FactorGroup(factor_group_0_built), context);
22806        Ok(())
22807    }
22808
22809    /// Semantic action for production 432:
22810    ///
22811    /// `FactorGroup: Lsb;`
22812    ///
22813    #[parol_runtime::function_name::named]
22814    fn factor_group_1(&mut self, _lsb: &ParseTreeType<'t>) -> Result<()> {
22815        let context = function_name!();
22816        trace!("{}", self.trace_item_stack(context));
22817        let lsb = pop_item!(self, lsb, Lsb, context);
22818        let factor_group_1_built = FactorGroupLsb { lsb: Box::new(lsb) };
22819        let factor_group_1_built = FactorGroup::Lsb(factor_group_1_built);
22820        self.push(ASTType::FactorGroup(factor_group_1_built), context);
22821        Ok(())
22822    }
22823
22824    /// Semantic action for production 433:
22825    ///
22826    /// `Factor: InsideExpression;`
22827    ///
22828    #[parol_runtime::function_name::named]
22829    fn factor_10(&mut self, _inside_expression: &ParseTreeType<'t>) -> Result<()> {
22830        let context = function_name!();
22831        trace!("{}", self.trace_item_stack(context));
22832        let inside_expression = pop_item!(self, inside_expression, InsideExpression, context);
22833        let factor_10_built = FactorInsideExpression {
22834            inside_expression: Box::new(inside_expression),
22835        };
22836        let factor_10_built = Factor::InsideExpression(factor_10_built);
22837        // Calling user action here
22838        self.user_grammar.factor(&factor_10_built)?;
22839        self.push(ASTType::Factor(factor_10_built), context);
22840        Ok(())
22841    }
22842
22843    /// Semantic action for production 434:
22844    ///
22845    /// `Factor: OutsideExpression;`
22846    ///
22847    #[parol_runtime::function_name::named]
22848    fn factor_11(&mut self, _outside_expression: &ParseTreeType<'t>) -> Result<()> {
22849        let context = function_name!();
22850        trace!("{}", self.trace_item_stack(context));
22851        let outside_expression = pop_item!(self, outside_expression, OutsideExpression, context);
22852        let factor_11_built = FactorOutsideExpression {
22853            outside_expression: Box::new(outside_expression),
22854        };
22855        let factor_11_built = Factor::OutsideExpression(factor_11_built);
22856        // Calling user action here
22857        self.user_grammar.factor(&factor_11_built)?;
22858        self.push(ASTType::Factor(factor_11_built), context);
22859        Ok(())
22860    }
22861
22862    /// Semantic action for production 435:
22863    ///
22864    /// `Factor: TypeExpression;`
22865    ///
22866    #[parol_runtime::function_name::named]
22867    fn factor_12(&mut self, _type_expression: &ParseTreeType<'t>) -> Result<()> {
22868        let context = function_name!();
22869        trace!("{}", self.trace_item_stack(context));
22870        let type_expression = pop_item!(self, type_expression, TypeExpression, context);
22871        let factor_12_built = FactorTypeExpression {
22872            type_expression: Box::new(type_expression),
22873        };
22874        let factor_12_built = Factor::TypeExpression(factor_12_built);
22875        // Calling user action here
22876        self.user_grammar.factor(&factor_12_built)?;
22877        self.push(ASTType::Factor(factor_12_built), context);
22878        Ok(())
22879    }
22880
22881    /// Semantic action for production 436:
22882    ///
22883    /// `Factor: FactorTypeFactor;`
22884    ///
22885    #[parol_runtime::function_name::named]
22886    fn factor_13(&mut self, _factor_type_factor: &ParseTreeType<'t>) -> Result<()> {
22887        let context = function_name!();
22888        trace!("{}", self.trace_item_stack(context));
22889        let factor_type_factor = pop_item!(self, factor_type_factor, FactorTypeFactor, context);
22890        let factor_13_built = FactorFactorTypeFactor {
22891            factor_type_factor: Box::new(factor_type_factor),
22892        };
22893        let factor_13_built = Factor::FactorTypeFactor(factor_13_built);
22894        // Calling user action here
22895        self.user_grammar.factor(&factor_13_built)?;
22896        self.push(ASTType::Factor(factor_13_built), context);
22897        Ok(())
22898    }
22899
22900    /// Semantic action for production 437:
22901    ///
22902    /// `IdentifierFactor: ExpressionIdentifier IdentifierFactorOpt /* Option */;`
22903    ///
22904    #[parol_runtime::function_name::named]
22905    fn identifier_factor(
22906        &mut self,
22907        _expression_identifier: &ParseTreeType<'t>,
22908        _identifier_factor_opt: &ParseTreeType<'t>,
22909    ) -> Result<()> {
22910        let context = function_name!();
22911        trace!("{}", self.trace_item_stack(context));
22912        let identifier_factor_opt =
22913            pop_item!(self, identifier_factor_opt, IdentifierFactorOpt, context);
22914        let expression_identifier =
22915            pop_item!(self, expression_identifier, ExpressionIdentifier, context);
22916        let identifier_factor_built = IdentifierFactor {
22917            expression_identifier: Box::new(expression_identifier),
22918            identifier_factor_opt,
22919        };
22920        // Calling user action here
22921        self.user_grammar
22922            .identifier_factor(&identifier_factor_built)?;
22923        self.push(ASTType::IdentifierFactor(identifier_factor_built), context);
22924        Ok(())
22925    }
22926
22927    /// Semantic action for production 438:
22928    ///
22929    /// `IdentifierFactorOpt /* Option<T>::Some */: FunctionCall;`
22930    ///
22931    #[parol_runtime::function_name::named]
22932    fn identifier_factor_opt_0(&mut self, _function_call: &ParseTreeType<'t>) -> Result<()> {
22933        let context = function_name!();
22934        trace!("{}", self.trace_item_stack(context));
22935        let function_call = pop_item!(self, function_call, FunctionCall, context);
22936        let identifier_factor_opt_0_built = IdentifierFactorOpt {
22937            function_call: Box::new(function_call),
22938        };
22939        self.push(
22940            ASTType::IdentifierFactorOpt(Some(identifier_factor_opt_0_built)),
22941            context,
22942        );
22943        Ok(())
22944    }
22945
22946    /// Semantic action for production 439:
22947    ///
22948    /// `IdentifierFactorOpt /* Option<T>::None */: ;`
22949    ///
22950    #[parol_runtime::function_name::named]
22951    fn identifier_factor_opt_1(&mut self) -> Result<()> {
22952        let context = function_name!();
22953        trace!("{}", self.trace_item_stack(context));
22954        self.push(ASTType::IdentifierFactorOpt(None), context);
22955        Ok(())
22956    }
22957
22958    /// Semantic action for production 440:
22959    ///
22960    /// `FactorTypeFactor: FactorTypeFactorList /* Vec */ FactorType;`
22961    ///
22962    #[parol_runtime::function_name::named]
22963    fn factor_type_factor(
22964        &mut self,
22965        _factor_type_factor_list: &ParseTreeType<'t>,
22966        _factor_type: &ParseTreeType<'t>,
22967    ) -> Result<()> {
22968        let context = function_name!();
22969        trace!("{}", self.trace_item_stack(context));
22970        let factor_type = pop_item!(self, factor_type, FactorType, context);
22971        let factor_type_factor_list =
22972            pop_and_reverse_item!(self, factor_type_factor_list, FactorTypeFactorList, context);
22973        let factor_type_factor_built = FactorTypeFactor {
22974            factor_type_factor_list,
22975            factor_type: Box::new(factor_type),
22976        };
22977        // Calling user action here
22978        self.user_grammar
22979            .factor_type_factor(&factor_type_factor_built)?;
22980        self.push(ASTType::FactorTypeFactor(factor_type_factor_built), context);
22981        Ok(())
22982    }
22983
22984    /// Semantic action for production 441:
22985    ///
22986    /// `FactorTypeFactorList /* Vec<T>::Push */: TypeModifier FactorTypeFactorList;`
22987    ///
22988    #[parol_runtime::function_name::named]
22989    fn factor_type_factor_list_0(
22990        &mut self,
22991        _type_modifier: &ParseTreeType<'t>,
22992        _factor_type_factor_list: &ParseTreeType<'t>,
22993    ) -> Result<()> {
22994        let context = function_name!();
22995        trace!("{}", self.trace_item_stack(context));
22996        let mut factor_type_factor_list =
22997            pop_item!(self, factor_type_factor_list, FactorTypeFactorList, context);
22998        let type_modifier = pop_item!(self, type_modifier, TypeModifier, context);
22999        let factor_type_factor_list_0_built = FactorTypeFactorList {
23000            type_modifier: Box::new(type_modifier),
23001        };
23002        // Add an element to the vector
23003        factor_type_factor_list.push(factor_type_factor_list_0_built);
23004        self.push(
23005            ASTType::FactorTypeFactorList(factor_type_factor_list),
23006            context,
23007        );
23008        Ok(())
23009    }
23010
23011    /// Semantic action for production 442:
23012    ///
23013    /// `FactorTypeFactorList /* Vec<T>::New */: ;`
23014    ///
23015    #[parol_runtime::function_name::named]
23016    fn factor_type_factor_list_1(&mut self) -> Result<()> {
23017        let context = function_name!();
23018        trace!("{}", self.trace_item_stack(context));
23019        let factor_type_factor_list_1_built = Vec::new();
23020        self.push(
23021            ASTType::FactorTypeFactorList(factor_type_factor_list_1_built),
23022            context,
23023        );
23024        Ok(())
23025    }
23026
23027    /// Semantic action for production 443:
23028    ///
23029    /// `FunctionCall: LParen FunctionCallOpt /* Option */ RParen;`
23030    ///
23031    #[parol_runtime::function_name::named]
23032    fn function_call(
23033        &mut self,
23034        _l_paren: &ParseTreeType<'t>,
23035        _function_call_opt: &ParseTreeType<'t>,
23036        _r_paren: &ParseTreeType<'t>,
23037    ) -> Result<()> {
23038        let context = function_name!();
23039        trace!("{}", self.trace_item_stack(context));
23040        let r_paren = pop_item!(self, r_paren, RParen, context);
23041        let function_call_opt = pop_item!(self, function_call_opt, FunctionCallOpt, context);
23042        let l_paren = pop_item!(self, l_paren, LParen, context);
23043        let function_call_built = FunctionCall {
23044            l_paren: Box::new(l_paren),
23045            function_call_opt,
23046            r_paren: Box::new(r_paren),
23047        };
23048        // Calling user action here
23049        self.user_grammar.function_call(&function_call_built)?;
23050        self.push(ASTType::FunctionCall(function_call_built), context);
23051        Ok(())
23052    }
23053
23054    /// Semantic action for production 444:
23055    ///
23056    /// `FunctionCallOpt /* Option<T>::Some */: ArgumentList;`
23057    ///
23058    #[parol_runtime::function_name::named]
23059    fn function_call_opt_0(&mut self, _argument_list: &ParseTreeType<'t>) -> Result<()> {
23060        let context = function_name!();
23061        trace!("{}", self.trace_item_stack(context));
23062        let argument_list = pop_item!(self, argument_list, ArgumentList, context);
23063        let function_call_opt_0_built = FunctionCallOpt {
23064            argument_list: Box::new(argument_list),
23065        };
23066        self.push(
23067            ASTType::FunctionCallOpt(Some(function_call_opt_0_built)),
23068            context,
23069        );
23070        Ok(())
23071    }
23072
23073    /// Semantic action for production 445:
23074    ///
23075    /// `FunctionCallOpt /* Option<T>::None */: ;`
23076    ///
23077    #[parol_runtime::function_name::named]
23078    fn function_call_opt_1(&mut self) -> Result<()> {
23079        let context = function_name!();
23080        trace!("{}", self.trace_item_stack(context));
23081        self.push(ASTType::FunctionCallOpt(None), context);
23082        Ok(())
23083    }
23084
23085    /// Semantic action for production 446:
23086    ///
23087    /// `ArgumentList: ArgumentItem ArgumentListList /* Vec */ ArgumentListOpt /* Option */;`
23088    ///
23089    #[parol_runtime::function_name::named]
23090    fn argument_list(
23091        &mut self,
23092        _argument_item: &ParseTreeType<'t>,
23093        _argument_list_list: &ParseTreeType<'t>,
23094        _argument_list_opt: &ParseTreeType<'t>,
23095    ) -> Result<()> {
23096        let context = function_name!();
23097        trace!("{}", self.trace_item_stack(context));
23098        let argument_list_opt = pop_item!(self, argument_list_opt, ArgumentListOpt, context);
23099        let argument_list_list =
23100            pop_and_reverse_item!(self, argument_list_list, ArgumentListList, context);
23101        let argument_item = pop_item!(self, argument_item, ArgumentItem, context);
23102        let argument_list_built = ArgumentList {
23103            argument_item: Box::new(argument_item),
23104            argument_list_list,
23105            argument_list_opt,
23106        };
23107        // Calling user action here
23108        self.user_grammar.argument_list(&argument_list_built)?;
23109        self.push(ASTType::ArgumentList(argument_list_built), context);
23110        Ok(())
23111    }
23112
23113    /// Semantic action for production 447:
23114    ///
23115    /// `ArgumentListList /* Vec<T>::Push */: Comma ArgumentItem ArgumentListList;`
23116    ///
23117    #[parol_runtime::function_name::named]
23118    fn argument_list_list_0(
23119        &mut self,
23120        _comma: &ParseTreeType<'t>,
23121        _argument_item: &ParseTreeType<'t>,
23122        _argument_list_list: &ParseTreeType<'t>,
23123    ) -> Result<()> {
23124        let context = function_name!();
23125        trace!("{}", self.trace_item_stack(context));
23126        let mut argument_list_list = pop_item!(self, argument_list_list, ArgumentListList, context);
23127        let argument_item = pop_item!(self, argument_item, ArgumentItem, context);
23128        let comma = pop_item!(self, comma, Comma, context);
23129        let argument_list_list_0_built = ArgumentListList {
23130            argument_item: Box::new(argument_item),
23131            comma: Box::new(comma),
23132        };
23133        // Add an element to the vector
23134        argument_list_list.push(argument_list_list_0_built);
23135        self.push(ASTType::ArgumentListList(argument_list_list), context);
23136        Ok(())
23137    }
23138
23139    /// Semantic action for production 448:
23140    ///
23141    /// `ArgumentListList /* Vec<T>::New */: ;`
23142    ///
23143    #[parol_runtime::function_name::named]
23144    fn argument_list_list_1(&mut self) -> Result<()> {
23145        let context = function_name!();
23146        trace!("{}", self.trace_item_stack(context));
23147        let argument_list_list_1_built = Vec::new();
23148        self.push(
23149            ASTType::ArgumentListList(argument_list_list_1_built),
23150            context,
23151        );
23152        Ok(())
23153    }
23154
23155    /// Semantic action for production 449:
23156    ///
23157    /// `ArgumentListOpt /* Option<T>::Some */: Comma;`
23158    ///
23159    #[parol_runtime::function_name::named]
23160    fn argument_list_opt_0(&mut self, _comma: &ParseTreeType<'t>) -> Result<()> {
23161        let context = function_name!();
23162        trace!("{}", self.trace_item_stack(context));
23163        let comma = pop_item!(self, comma, Comma, context);
23164        let argument_list_opt_0_built = ArgumentListOpt {
23165            comma: Box::new(comma),
23166        };
23167        self.push(
23168            ASTType::ArgumentListOpt(Some(argument_list_opt_0_built)),
23169            context,
23170        );
23171        Ok(())
23172    }
23173
23174    /// Semantic action for production 450:
23175    ///
23176    /// `ArgumentListOpt /* Option<T>::None */: ;`
23177    ///
23178    #[parol_runtime::function_name::named]
23179    fn argument_list_opt_1(&mut self) -> Result<()> {
23180        let context = function_name!();
23181        trace!("{}", self.trace_item_stack(context));
23182        self.push(ASTType::ArgumentListOpt(None), context);
23183        Ok(())
23184    }
23185
23186    /// Semantic action for production 451:
23187    ///
23188    /// `ArgumentItem: Expression;`
23189    ///
23190    #[parol_runtime::function_name::named]
23191    fn argument_item(&mut self, _expression: &ParseTreeType<'t>) -> Result<()> {
23192        let context = function_name!();
23193        trace!("{}", self.trace_item_stack(context));
23194        let expression = pop_item!(self, expression, Expression, context);
23195        let argument_item_built = ArgumentItem {
23196            expression: Box::new(expression),
23197        };
23198        // Calling user action here
23199        self.user_grammar.argument_item(&argument_item_built)?;
23200        self.push(ASTType::ArgumentItem(argument_item_built), context);
23201        Ok(())
23202    }
23203
23204    /// Semantic action for production 452:
23205    ///
23206    /// `ConcatenationList: ConcatenationItem ConcatenationListList /* Vec */ ConcatenationListOpt /* Option */;`
23207    ///
23208    #[parol_runtime::function_name::named]
23209    fn concatenation_list(
23210        &mut self,
23211        _concatenation_item: &ParseTreeType<'t>,
23212        _concatenation_list_list: &ParseTreeType<'t>,
23213        _concatenation_list_opt: &ParseTreeType<'t>,
23214    ) -> Result<()> {
23215        let context = function_name!();
23216        trace!("{}", self.trace_item_stack(context));
23217        let concatenation_list_opt =
23218            pop_item!(self, concatenation_list_opt, ConcatenationListOpt, context);
23219        let concatenation_list_list = pop_and_reverse_item!(
23220            self,
23221            concatenation_list_list,
23222            ConcatenationListList,
23223            context
23224        );
23225        let concatenation_item = pop_item!(self, concatenation_item, ConcatenationItem, context);
23226        let concatenation_list_built = ConcatenationList {
23227            concatenation_item: Box::new(concatenation_item),
23228            concatenation_list_list,
23229            concatenation_list_opt,
23230        };
23231        // Calling user action here
23232        self.user_grammar
23233            .concatenation_list(&concatenation_list_built)?;
23234        self.push(
23235            ASTType::ConcatenationList(concatenation_list_built),
23236            context,
23237        );
23238        Ok(())
23239    }
23240
23241    /// Semantic action for production 453:
23242    ///
23243    /// `ConcatenationListList /* Vec<T>::Push */: Comma ConcatenationItem ConcatenationListList;`
23244    ///
23245    #[parol_runtime::function_name::named]
23246    fn concatenation_list_list_0(
23247        &mut self,
23248        _comma: &ParseTreeType<'t>,
23249        _concatenation_item: &ParseTreeType<'t>,
23250        _concatenation_list_list: &ParseTreeType<'t>,
23251    ) -> Result<()> {
23252        let context = function_name!();
23253        trace!("{}", self.trace_item_stack(context));
23254        let mut concatenation_list_list = pop_item!(
23255            self,
23256            concatenation_list_list,
23257            ConcatenationListList,
23258            context
23259        );
23260        let concatenation_item = pop_item!(self, concatenation_item, ConcatenationItem, context);
23261        let comma = pop_item!(self, comma, Comma, context);
23262        let concatenation_list_list_0_built = ConcatenationListList {
23263            concatenation_item: Box::new(concatenation_item),
23264            comma: Box::new(comma),
23265        };
23266        // Add an element to the vector
23267        concatenation_list_list.push(concatenation_list_list_0_built);
23268        self.push(
23269            ASTType::ConcatenationListList(concatenation_list_list),
23270            context,
23271        );
23272        Ok(())
23273    }
23274
23275    /// Semantic action for production 454:
23276    ///
23277    /// `ConcatenationListList /* Vec<T>::New */: ;`
23278    ///
23279    #[parol_runtime::function_name::named]
23280    fn concatenation_list_list_1(&mut self) -> Result<()> {
23281        let context = function_name!();
23282        trace!("{}", self.trace_item_stack(context));
23283        let concatenation_list_list_1_built = Vec::new();
23284        self.push(
23285            ASTType::ConcatenationListList(concatenation_list_list_1_built),
23286            context,
23287        );
23288        Ok(())
23289    }
23290
23291    /// Semantic action for production 455:
23292    ///
23293    /// `ConcatenationListOpt /* Option<T>::Some */: Comma;`
23294    ///
23295    #[parol_runtime::function_name::named]
23296    fn concatenation_list_opt_0(&mut self, _comma: &ParseTreeType<'t>) -> Result<()> {
23297        let context = function_name!();
23298        trace!("{}", self.trace_item_stack(context));
23299        let comma = pop_item!(self, comma, Comma, context);
23300        let concatenation_list_opt_0_built = ConcatenationListOpt {
23301            comma: Box::new(comma),
23302        };
23303        self.push(
23304            ASTType::ConcatenationListOpt(Some(concatenation_list_opt_0_built)),
23305            context,
23306        );
23307        Ok(())
23308    }
23309
23310    /// Semantic action for production 456:
23311    ///
23312    /// `ConcatenationListOpt /* Option<T>::None */: ;`
23313    ///
23314    #[parol_runtime::function_name::named]
23315    fn concatenation_list_opt_1(&mut self) -> Result<()> {
23316        let context = function_name!();
23317        trace!("{}", self.trace_item_stack(context));
23318        self.push(ASTType::ConcatenationListOpt(None), context);
23319        Ok(())
23320    }
23321
23322    /// Semantic action for production 457:
23323    ///
23324    /// `ConcatenationItem: Expression ConcatenationItemOpt /* Option */;`
23325    ///
23326    #[parol_runtime::function_name::named]
23327    fn concatenation_item(
23328        &mut self,
23329        _expression: &ParseTreeType<'t>,
23330        _concatenation_item_opt: &ParseTreeType<'t>,
23331    ) -> Result<()> {
23332        let context = function_name!();
23333        trace!("{}", self.trace_item_stack(context));
23334        let concatenation_item_opt =
23335            pop_item!(self, concatenation_item_opt, ConcatenationItemOpt, context);
23336        let expression = pop_item!(self, expression, Expression, context);
23337        let concatenation_item_built = ConcatenationItem {
23338            expression: Box::new(expression),
23339            concatenation_item_opt,
23340        };
23341        // Calling user action here
23342        self.user_grammar
23343            .concatenation_item(&concatenation_item_built)?;
23344        self.push(
23345            ASTType::ConcatenationItem(concatenation_item_built),
23346            context,
23347        );
23348        Ok(())
23349    }
23350
23351    /// Semantic action for production 458:
23352    ///
23353    /// `ConcatenationItemOpt /* Option<T>::Some */: Repeat Expression;`
23354    ///
23355    #[parol_runtime::function_name::named]
23356    fn concatenation_item_opt_0(
23357        &mut self,
23358        _repeat: &ParseTreeType<'t>,
23359        _expression: &ParseTreeType<'t>,
23360    ) -> Result<()> {
23361        let context = function_name!();
23362        trace!("{}", self.trace_item_stack(context));
23363        let expression = pop_item!(self, expression, Expression, context);
23364        let repeat = pop_item!(self, repeat, Repeat, context);
23365        let concatenation_item_opt_0_built = ConcatenationItemOpt {
23366            repeat: Box::new(repeat),
23367            expression: Box::new(expression),
23368        };
23369        self.push(
23370            ASTType::ConcatenationItemOpt(Some(concatenation_item_opt_0_built)),
23371            context,
23372        );
23373        Ok(())
23374    }
23375
23376    /// Semantic action for production 459:
23377    ///
23378    /// `ConcatenationItemOpt /* Option<T>::None */: ;`
23379    ///
23380    #[parol_runtime::function_name::named]
23381    fn concatenation_item_opt_1(&mut self) -> Result<()> {
23382        let context = function_name!();
23383        trace!("{}", self.trace_item_stack(context));
23384        self.push(ASTType::ConcatenationItemOpt(None), context);
23385        Ok(())
23386    }
23387
23388    /// Semantic action for production 460:
23389    ///
23390    /// `ArrayLiteralList: ArrayLiteralItem ArrayLiteralListList /* Vec */ ArrayLiteralListOpt /* Option */;`
23391    ///
23392    #[parol_runtime::function_name::named]
23393    fn array_literal_list(
23394        &mut self,
23395        _array_literal_item: &ParseTreeType<'t>,
23396        _array_literal_list_list: &ParseTreeType<'t>,
23397        _array_literal_list_opt: &ParseTreeType<'t>,
23398    ) -> Result<()> {
23399        let context = function_name!();
23400        trace!("{}", self.trace_item_stack(context));
23401        let array_literal_list_opt =
23402            pop_item!(self, array_literal_list_opt, ArrayLiteralListOpt, context);
23403        let array_literal_list_list =
23404            pop_and_reverse_item!(self, array_literal_list_list, ArrayLiteralListList, context);
23405        let array_literal_item = pop_item!(self, array_literal_item, ArrayLiteralItem, context);
23406        let array_literal_list_built = ArrayLiteralList {
23407            array_literal_item: Box::new(array_literal_item),
23408            array_literal_list_list,
23409            array_literal_list_opt,
23410        };
23411        // Calling user action here
23412        self.user_grammar
23413            .array_literal_list(&array_literal_list_built)?;
23414        self.push(ASTType::ArrayLiteralList(array_literal_list_built), context);
23415        Ok(())
23416    }
23417
23418    /// Semantic action for production 461:
23419    ///
23420    /// `ArrayLiteralListList /* Vec<T>::Push */: Comma ArrayLiteralItem ArrayLiteralListList;`
23421    ///
23422    #[parol_runtime::function_name::named]
23423    fn array_literal_list_list_0(
23424        &mut self,
23425        _comma: &ParseTreeType<'t>,
23426        _array_literal_item: &ParseTreeType<'t>,
23427        _array_literal_list_list: &ParseTreeType<'t>,
23428    ) -> Result<()> {
23429        let context = function_name!();
23430        trace!("{}", self.trace_item_stack(context));
23431        let mut array_literal_list_list =
23432            pop_item!(self, array_literal_list_list, ArrayLiteralListList, context);
23433        let array_literal_item = pop_item!(self, array_literal_item, ArrayLiteralItem, context);
23434        let comma = pop_item!(self, comma, Comma, context);
23435        let array_literal_list_list_0_built = ArrayLiteralListList {
23436            array_literal_item: Box::new(array_literal_item),
23437            comma: Box::new(comma),
23438        };
23439        // Add an element to the vector
23440        array_literal_list_list.push(array_literal_list_list_0_built);
23441        self.push(
23442            ASTType::ArrayLiteralListList(array_literal_list_list),
23443            context,
23444        );
23445        Ok(())
23446    }
23447
23448    /// Semantic action for production 462:
23449    ///
23450    /// `ArrayLiteralListList /* Vec<T>::New */: ;`
23451    ///
23452    #[parol_runtime::function_name::named]
23453    fn array_literal_list_list_1(&mut self) -> Result<()> {
23454        let context = function_name!();
23455        trace!("{}", self.trace_item_stack(context));
23456        let array_literal_list_list_1_built = Vec::new();
23457        self.push(
23458            ASTType::ArrayLiteralListList(array_literal_list_list_1_built),
23459            context,
23460        );
23461        Ok(())
23462    }
23463
23464    /// Semantic action for production 463:
23465    ///
23466    /// `ArrayLiteralListOpt /* Option<T>::Some */: Comma;`
23467    ///
23468    #[parol_runtime::function_name::named]
23469    fn array_literal_list_opt_0(&mut self, _comma: &ParseTreeType<'t>) -> Result<()> {
23470        let context = function_name!();
23471        trace!("{}", self.trace_item_stack(context));
23472        let comma = pop_item!(self, comma, Comma, context);
23473        let array_literal_list_opt_0_built = ArrayLiteralListOpt {
23474            comma: Box::new(comma),
23475        };
23476        self.push(
23477            ASTType::ArrayLiteralListOpt(Some(array_literal_list_opt_0_built)),
23478            context,
23479        );
23480        Ok(())
23481    }
23482
23483    /// Semantic action for production 464:
23484    ///
23485    /// `ArrayLiteralListOpt /* Option<T>::None */: ;`
23486    ///
23487    #[parol_runtime::function_name::named]
23488    fn array_literal_list_opt_1(&mut self) -> Result<()> {
23489        let context = function_name!();
23490        trace!("{}", self.trace_item_stack(context));
23491        self.push(ASTType::ArrayLiteralListOpt(None), context);
23492        Ok(())
23493    }
23494
23495    /// Semantic action for production 465:
23496    ///
23497    /// `ArrayLiteralItem: ArrayLiteralItemGroup;`
23498    ///
23499    #[parol_runtime::function_name::named]
23500    fn array_literal_item(&mut self, _array_literal_item_group: &ParseTreeType<'t>) -> Result<()> {
23501        let context = function_name!();
23502        trace!("{}", self.trace_item_stack(context));
23503        let array_literal_item_group = pop_item!(
23504            self,
23505            array_literal_item_group,
23506            ArrayLiteralItemGroup,
23507            context
23508        );
23509        let array_literal_item_built = ArrayLiteralItem {
23510            array_literal_item_group: Box::new(array_literal_item_group),
23511        };
23512        // Calling user action here
23513        self.user_grammar
23514            .array_literal_item(&array_literal_item_built)?;
23515        self.push(ASTType::ArrayLiteralItem(array_literal_item_built), context);
23516        Ok(())
23517    }
23518
23519    /// Semantic action for production 466:
23520    ///
23521    /// `ArrayLiteralItemGroup: Expression ArrayLiteralItemOpt /* Option */;`
23522    ///
23523    #[parol_runtime::function_name::named]
23524    fn array_literal_item_group_0(
23525        &mut self,
23526        _expression: &ParseTreeType<'t>,
23527        _array_literal_item_opt: &ParseTreeType<'t>,
23528    ) -> Result<()> {
23529        let context = function_name!();
23530        trace!("{}", self.trace_item_stack(context));
23531        let array_literal_item_opt =
23532            pop_item!(self, array_literal_item_opt, ArrayLiteralItemOpt, context);
23533        let expression = pop_item!(self, expression, Expression, context);
23534        let array_literal_item_group_0_built = ArrayLiteralItemGroupExpressionArrayLiteralItemOpt {
23535            expression: Box::new(expression),
23536            array_literal_item_opt,
23537        };
23538        let array_literal_item_group_0_built =
23539            ArrayLiteralItemGroup::ExpressionArrayLiteralItemOpt(array_literal_item_group_0_built);
23540        self.push(
23541            ASTType::ArrayLiteralItemGroup(array_literal_item_group_0_built),
23542            context,
23543        );
23544        Ok(())
23545    }
23546
23547    /// Semantic action for production 467:
23548    ///
23549    /// `ArrayLiteralItemGroup: Defaul Colon Expression;`
23550    ///
23551    #[parol_runtime::function_name::named]
23552    fn array_literal_item_group_1(
23553        &mut self,
23554        _defaul: &ParseTreeType<'t>,
23555        _colon: &ParseTreeType<'t>,
23556        _expression: &ParseTreeType<'t>,
23557    ) -> Result<()> {
23558        let context = function_name!();
23559        trace!("{}", self.trace_item_stack(context));
23560        let expression = pop_item!(self, expression, Expression, context);
23561        let colon = pop_item!(self, colon, Colon, context);
23562        let defaul = pop_item!(self, defaul, Defaul, context);
23563        let array_literal_item_group_1_built = ArrayLiteralItemGroupDefaulColonExpression {
23564            defaul: Box::new(defaul),
23565            colon: Box::new(colon),
23566            expression: Box::new(expression),
23567        };
23568        let array_literal_item_group_1_built =
23569            ArrayLiteralItemGroup::DefaulColonExpression(array_literal_item_group_1_built);
23570        self.push(
23571            ASTType::ArrayLiteralItemGroup(array_literal_item_group_1_built),
23572            context,
23573        );
23574        Ok(())
23575    }
23576
23577    /// Semantic action for production 468:
23578    ///
23579    /// `ArrayLiteralItemOpt /* Option<T>::Some */: Repeat Expression;`
23580    ///
23581    #[parol_runtime::function_name::named]
23582    fn array_literal_item_opt_0(
23583        &mut self,
23584        _repeat: &ParseTreeType<'t>,
23585        _expression: &ParseTreeType<'t>,
23586    ) -> Result<()> {
23587        let context = function_name!();
23588        trace!("{}", self.trace_item_stack(context));
23589        let expression = pop_item!(self, expression, Expression, context);
23590        let repeat = pop_item!(self, repeat, Repeat, context);
23591        let array_literal_item_opt_0_built = ArrayLiteralItemOpt {
23592            repeat: Box::new(repeat),
23593            expression: Box::new(expression),
23594        };
23595        self.push(
23596            ASTType::ArrayLiteralItemOpt(Some(array_literal_item_opt_0_built)),
23597            context,
23598        );
23599        Ok(())
23600    }
23601
23602    /// Semantic action for production 469:
23603    ///
23604    /// `ArrayLiteralItemOpt /* Option<T>::None */: ;`
23605    ///
23606    #[parol_runtime::function_name::named]
23607    fn array_literal_item_opt_1(&mut self) -> Result<()> {
23608        let context = function_name!();
23609        trace!("{}", self.trace_item_stack(context));
23610        self.push(ASTType::ArrayLiteralItemOpt(None), context);
23611        Ok(())
23612    }
23613
23614    /// Semantic action for production 470:
23615    ///
23616    /// `IfExpression: If Expression LBrace Expression RBrace IfExpressionList /* Vec */ Else LBrace Expression RBrace;`
23617    ///
23618    #[parol_runtime::function_name::named]
23619    fn if_expression(
23620        &mut self,
23621        _if: &ParseTreeType<'t>,
23622        _expression: &ParseTreeType<'t>,
23623        _l_brace: &ParseTreeType<'t>,
23624        _expression0: &ParseTreeType<'t>,
23625        _r_brace: &ParseTreeType<'t>,
23626        _if_expression_list: &ParseTreeType<'t>,
23627        _else: &ParseTreeType<'t>,
23628        _l_brace0: &ParseTreeType<'t>,
23629        _expression1: &ParseTreeType<'t>,
23630        _r_brace0: &ParseTreeType<'t>,
23631    ) -> Result<()> {
23632        let context = function_name!();
23633        trace!("{}", self.trace_item_stack(context));
23634        let r_brace0 = pop_item!(self, r_brace0, RBrace, context);
23635        let expression1 = pop_item!(self, expression1, Expression, context);
23636        let l_brace0 = pop_item!(self, l_brace0, LBrace, context);
23637        let r#else = pop_item!(self, r#else, Else, context);
23638        let if_expression_list =
23639            pop_and_reverse_item!(self, if_expression_list, IfExpressionList, context);
23640        let r_brace = pop_item!(self, r_brace, RBrace, context);
23641        let expression0 = pop_item!(self, expression0, Expression, context);
23642        let l_brace = pop_item!(self, l_brace, LBrace, context);
23643        let expression = pop_item!(self, expression, Expression, context);
23644        let r#if = pop_item!(self, r#if, If, context);
23645        let if_expression_built = IfExpression {
23646            r#if: Box::new(r#if),
23647            expression: Box::new(expression),
23648            l_brace: Box::new(l_brace),
23649            expression0: Box::new(expression0),
23650            r_brace: Box::new(r_brace),
23651            if_expression_list,
23652            r#else: Box::new(r#else),
23653            l_brace0: Box::new(l_brace0),
23654            expression1: Box::new(expression1),
23655            r_brace0: Box::new(r_brace0),
23656        };
23657        // Calling user action here
23658        self.user_grammar.if_expression(&if_expression_built)?;
23659        self.push(ASTType::IfExpression(if_expression_built), context);
23660        Ok(())
23661    }
23662
23663    /// Semantic action for production 471:
23664    ///
23665    /// `IfExpressionList /* Vec<T>::Push */: Else If Expression LBrace Expression RBrace IfExpressionList;`
23666    ///
23667    #[parol_runtime::function_name::named]
23668    fn if_expression_list_0(
23669        &mut self,
23670        _else: &ParseTreeType<'t>,
23671        _if: &ParseTreeType<'t>,
23672        _expression: &ParseTreeType<'t>,
23673        _l_brace: &ParseTreeType<'t>,
23674        _expression0: &ParseTreeType<'t>,
23675        _r_brace: &ParseTreeType<'t>,
23676        _if_expression_list: &ParseTreeType<'t>,
23677    ) -> Result<()> {
23678        let context = function_name!();
23679        trace!("{}", self.trace_item_stack(context));
23680        let mut if_expression_list = pop_item!(self, if_expression_list, IfExpressionList, context);
23681        let r_brace = pop_item!(self, r_brace, RBrace, context);
23682        let expression0 = pop_item!(self, expression0, Expression, context);
23683        let l_brace = pop_item!(self, l_brace, LBrace, context);
23684        let expression = pop_item!(self, expression, Expression, context);
23685        let r#if = pop_item!(self, r#if, If, context);
23686        let r#else = pop_item!(self, r#else, Else, context);
23687        let if_expression_list_0_built = IfExpressionList {
23688            r_brace: Box::new(r_brace),
23689            expression0: Box::new(expression0),
23690            l_brace: Box::new(l_brace),
23691            expression: Box::new(expression),
23692            r#if: Box::new(r#if),
23693            r#else: Box::new(r#else),
23694        };
23695        // Add an element to the vector
23696        if_expression_list.push(if_expression_list_0_built);
23697        self.push(ASTType::IfExpressionList(if_expression_list), context);
23698        Ok(())
23699    }
23700
23701    /// Semantic action for production 472:
23702    ///
23703    /// `IfExpressionList /* Vec<T>::New */: ;`
23704    ///
23705    #[parol_runtime::function_name::named]
23706    fn if_expression_list_1(&mut self) -> Result<()> {
23707        let context = function_name!();
23708        trace!("{}", self.trace_item_stack(context));
23709        let if_expression_list_1_built = Vec::new();
23710        self.push(
23711            ASTType::IfExpressionList(if_expression_list_1_built),
23712            context,
23713        );
23714        Ok(())
23715    }
23716
23717    /// Semantic action for production 473:
23718    ///
23719    /// `CaseExpression: Case Expression LBrace CaseCondition Colon Expression Comma CaseExpressionList /* Vec */ Defaul Colon Expression CaseExpressionOpt /* Option */ RBrace;`
23720    ///
23721    #[parol_runtime::function_name::named]
23722    fn case_expression(
23723        &mut self,
23724        _case: &ParseTreeType<'t>,
23725        _expression: &ParseTreeType<'t>,
23726        _l_brace: &ParseTreeType<'t>,
23727        _case_condition: &ParseTreeType<'t>,
23728        _colon: &ParseTreeType<'t>,
23729        _expression0: &ParseTreeType<'t>,
23730        _comma: &ParseTreeType<'t>,
23731        _case_expression_list: &ParseTreeType<'t>,
23732        _defaul: &ParseTreeType<'t>,
23733        _colon0: &ParseTreeType<'t>,
23734        _expression1: &ParseTreeType<'t>,
23735        _case_expression_opt: &ParseTreeType<'t>,
23736        _r_brace: &ParseTreeType<'t>,
23737    ) -> Result<()> {
23738        let context = function_name!();
23739        trace!("{}", self.trace_item_stack(context));
23740        let r_brace = pop_item!(self, r_brace, RBrace, context);
23741        let case_expression_opt = pop_item!(self, case_expression_opt, CaseExpressionOpt, context);
23742        let expression1 = pop_item!(self, expression1, Expression, context);
23743        let colon0 = pop_item!(self, colon0, Colon, context);
23744        let defaul = pop_item!(self, defaul, Defaul, context);
23745        let case_expression_list =
23746            pop_and_reverse_item!(self, case_expression_list, CaseExpressionList, context);
23747        let comma = pop_item!(self, comma, Comma, context);
23748        let expression0 = pop_item!(self, expression0, Expression, context);
23749        let colon = pop_item!(self, colon, Colon, context);
23750        let case_condition = pop_item!(self, case_condition, CaseCondition, context);
23751        let l_brace = pop_item!(self, l_brace, LBrace, context);
23752        let expression = pop_item!(self, expression, Expression, context);
23753        let case = pop_item!(self, case, Case, context);
23754        let case_expression_built = CaseExpression {
23755            case: Box::new(case),
23756            expression: Box::new(expression),
23757            l_brace: Box::new(l_brace),
23758            case_condition: Box::new(case_condition),
23759            colon: Box::new(colon),
23760            expression0: Box::new(expression0),
23761            comma: Box::new(comma),
23762            case_expression_list,
23763            defaul: Box::new(defaul),
23764            colon0: Box::new(colon0),
23765            expression1: Box::new(expression1),
23766            case_expression_opt,
23767            r_brace: Box::new(r_brace),
23768        };
23769        // Calling user action here
23770        self.user_grammar.case_expression(&case_expression_built)?;
23771        self.push(ASTType::CaseExpression(case_expression_built), context);
23772        Ok(())
23773    }
23774
23775    /// Semantic action for production 474:
23776    ///
23777    /// `CaseExpressionList /* Vec<T>::Push */: CaseCondition Colon Expression Comma CaseExpressionList;`
23778    ///
23779    #[parol_runtime::function_name::named]
23780    fn case_expression_list_0(
23781        &mut self,
23782        _case_condition: &ParseTreeType<'t>,
23783        _colon: &ParseTreeType<'t>,
23784        _expression: &ParseTreeType<'t>,
23785        _comma: &ParseTreeType<'t>,
23786        _case_expression_list: &ParseTreeType<'t>,
23787    ) -> Result<()> {
23788        let context = function_name!();
23789        trace!("{}", self.trace_item_stack(context));
23790        let mut case_expression_list =
23791            pop_item!(self, case_expression_list, CaseExpressionList, context);
23792        let comma = pop_item!(self, comma, Comma, context);
23793        let expression = pop_item!(self, expression, Expression, context);
23794        let colon = pop_item!(self, colon, Colon, context);
23795        let case_condition = pop_item!(self, case_condition, CaseCondition, context);
23796        let case_expression_list_0_built = CaseExpressionList {
23797            comma: Box::new(comma),
23798            expression: Box::new(expression),
23799            colon: Box::new(colon),
23800            case_condition: Box::new(case_condition),
23801        };
23802        // Add an element to the vector
23803        case_expression_list.push(case_expression_list_0_built);
23804        self.push(ASTType::CaseExpressionList(case_expression_list), context);
23805        Ok(())
23806    }
23807
23808    /// Semantic action for production 475:
23809    ///
23810    /// `CaseExpressionList /* Vec<T>::New */: ;`
23811    ///
23812    #[parol_runtime::function_name::named]
23813    fn case_expression_list_1(&mut self) -> Result<()> {
23814        let context = function_name!();
23815        trace!("{}", self.trace_item_stack(context));
23816        let case_expression_list_1_built = Vec::new();
23817        self.push(
23818            ASTType::CaseExpressionList(case_expression_list_1_built),
23819            context,
23820        );
23821        Ok(())
23822    }
23823
23824    /// Semantic action for production 476:
23825    ///
23826    /// `CaseExpressionOpt /* Option<T>::Some */: Comma;`
23827    ///
23828    #[parol_runtime::function_name::named]
23829    fn case_expression_opt_0(&mut self, _comma: &ParseTreeType<'t>) -> Result<()> {
23830        let context = function_name!();
23831        trace!("{}", self.trace_item_stack(context));
23832        let comma = pop_item!(self, comma, Comma, context);
23833        let case_expression_opt_0_built = CaseExpressionOpt {
23834            comma: Box::new(comma),
23835        };
23836        self.push(
23837            ASTType::CaseExpressionOpt(Some(case_expression_opt_0_built)),
23838            context,
23839        );
23840        Ok(())
23841    }
23842
23843    /// Semantic action for production 477:
23844    ///
23845    /// `CaseExpressionOpt /* Option<T>::None */: ;`
23846    ///
23847    #[parol_runtime::function_name::named]
23848    fn case_expression_opt_1(&mut self) -> Result<()> {
23849        let context = function_name!();
23850        trace!("{}", self.trace_item_stack(context));
23851        self.push(ASTType::CaseExpressionOpt(None), context);
23852        Ok(())
23853    }
23854
23855    /// Semantic action for production 478:
23856    ///
23857    /// `SwitchExpression: Switch LBrace SwitchCondition Colon Expression Comma SwitchExpressionList /* Vec */ Defaul Colon Expression SwitchExpressionOpt /* Option */ RBrace;`
23858    ///
23859    #[parol_runtime::function_name::named]
23860    fn switch_expression(
23861        &mut self,
23862        _switch: &ParseTreeType<'t>,
23863        _l_brace: &ParseTreeType<'t>,
23864        _switch_condition: &ParseTreeType<'t>,
23865        _colon: &ParseTreeType<'t>,
23866        _expression: &ParseTreeType<'t>,
23867        _comma: &ParseTreeType<'t>,
23868        _switch_expression_list: &ParseTreeType<'t>,
23869        _defaul: &ParseTreeType<'t>,
23870        _colon0: &ParseTreeType<'t>,
23871        _expression0: &ParseTreeType<'t>,
23872        _switch_expression_opt: &ParseTreeType<'t>,
23873        _r_brace: &ParseTreeType<'t>,
23874    ) -> Result<()> {
23875        let context = function_name!();
23876        trace!("{}", self.trace_item_stack(context));
23877        let r_brace = pop_item!(self, r_brace, RBrace, context);
23878        let switch_expression_opt =
23879            pop_item!(self, switch_expression_opt, SwitchExpressionOpt, context);
23880        let expression0 = pop_item!(self, expression0, Expression, context);
23881        let colon0 = pop_item!(self, colon0, Colon, context);
23882        let defaul = pop_item!(self, defaul, Defaul, context);
23883        let switch_expression_list =
23884            pop_and_reverse_item!(self, switch_expression_list, SwitchExpressionList, context);
23885        let comma = pop_item!(self, comma, Comma, context);
23886        let expression = pop_item!(self, expression, Expression, context);
23887        let colon = pop_item!(self, colon, Colon, context);
23888        let switch_condition = pop_item!(self, switch_condition, SwitchCondition, context);
23889        let l_brace = pop_item!(self, l_brace, LBrace, context);
23890        let switch = pop_item!(self, switch, Switch, context);
23891        let switch_expression_built = SwitchExpression {
23892            switch: Box::new(switch),
23893            l_brace: Box::new(l_brace),
23894            switch_condition: Box::new(switch_condition),
23895            colon: Box::new(colon),
23896            expression: Box::new(expression),
23897            comma: Box::new(comma),
23898            switch_expression_list,
23899            defaul: Box::new(defaul),
23900            colon0: Box::new(colon0),
23901            expression0: Box::new(expression0),
23902            switch_expression_opt,
23903            r_brace: Box::new(r_brace),
23904        };
23905        // Calling user action here
23906        self.user_grammar
23907            .switch_expression(&switch_expression_built)?;
23908        self.push(ASTType::SwitchExpression(switch_expression_built), context);
23909        Ok(())
23910    }
23911
23912    /// Semantic action for production 479:
23913    ///
23914    /// `SwitchExpressionList /* Vec<T>::Push */: SwitchCondition Colon Expression Comma SwitchExpressionList;`
23915    ///
23916    #[parol_runtime::function_name::named]
23917    fn switch_expression_list_0(
23918        &mut self,
23919        _switch_condition: &ParseTreeType<'t>,
23920        _colon: &ParseTreeType<'t>,
23921        _expression: &ParseTreeType<'t>,
23922        _comma: &ParseTreeType<'t>,
23923        _switch_expression_list: &ParseTreeType<'t>,
23924    ) -> Result<()> {
23925        let context = function_name!();
23926        trace!("{}", self.trace_item_stack(context));
23927        let mut switch_expression_list =
23928            pop_item!(self, switch_expression_list, SwitchExpressionList, context);
23929        let comma = pop_item!(self, comma, Comma, context);
23930        let expression = pop_item!(self, expression, Expression, context);
23931        let colon = pop_item!(self, colon, Colon, context);
23932        let switch_condition = pop_item!(self, switch_condition, SwitchCondition, context);
23933        let switch_expression_list_0_built = SwitchExpressionList {
23934            comma: Box::new(comma),
23935            expression: Box::new(expression),
23936            colon: Box::new(colon),
23937            switch_condition: Box::new(switch_condition),
23938        };
23939        // Add an element to the vector
23940        switch_expression_list.push(switch_expression_list_0_built);
23941        self.push(
23942            ASTType::SwitchExpressionList(switch_expression_list),
23943            context,
23944        );
23945        Ok(())
23946    }
23947
23948    /// Semantic action for production 480:
23949    ///
23950    /// `SwitchExpressionList /* Vec<T>::New */: ;`
23951    ///
23952    #[parol_runtime::function_name::named]
23953    fn switch_expression_list_1(&mut self) -> Result<()> {
23954        let context = function_name!();
23955        trace!("{}", self.trace_item_stack(context));
23956        let switch_expression_list_1_built = Vec::new();
23957        self.push(
23958            ASTType::SwitchExpressionList(switch_expression_list_1_built),
23959            context,
23960        );
23961        Ok(())
23962    }
23963
23964    /// Semantic action for production 481:
23965    ///
23966    /// `SwitchExpressionOpt /* Option<T>::Some */: Comma;`
23967    ///
23968    #[parol_runtime::function_name::named]
23969    fn switch_expression_opt_0(&mut self, _comma: &ParseTreeType<'t>) -> Result<()> {
23970        let context = function_name!();
23971        trace!("{}", self.trace_item_stack(context));
23972        let comma = pop_item!(self, comma, Comma, context);
23973        let switch_expression_opt_0_built = SwitchExpressionOpt {
23974            comma: Box::new(comma),
23975        };
23976        self.push(
23977            ASTType::SwitchExpressionOpt(Some(switch_expression_opt_0_built)),
23978            context,
23979        );
23980        Ok(())
23981    }
23982
23983    /// Semantic action for production 482:
23984    ///
23985    /// `SwitchExpressionOpt /* Option<T>::None */: ;`
23986    ///
23987    #[parol_runtime::function_name::named]
23988    fn switch_expression_opt_1(&mut self) -> Result<()> {
23989        let context = function_name!();
23990        trace!("{}", self.trace_item_stack(context));
23991        self.push(ASTType::SwitchExpressionOpt(None), context);
23992        Ok(())
23993    }
23994
23995    /// Semantic action for production 483:
23996    ///
23997    /// `TypeExpression: Type LParen Expression RParen;`
23998    ///
23999    #[parol_runtime::function_name::named]
24000    fn type_expression(
24001        &mut self,
24002        _type: &ParseTreeType<'t>,
24003        _l_paren: &ParseTreeType<'t>,
24004        _expression: &ParseTreeType<'t>,
24005        _r_paren: &ParseTreeType<'t>,
24006    ) -> Result<()> {
24007        let context = function_name!();
24008        trace!("{}", self.trace_item_stack(context));
24009        let r_paren = pop_item!(self, r_paren, RParen, context);
24010        let expression = pop_item!(self, expression, Expression, context);
24011        let l_paren = pop_item!(self, l_paren, LParen, context);
24012        let r#type = pop_item!(self, r#type, Type, context);
24013        let type_expression_built = TypeExpression {
24014            r#type: Box::new(r#type),
24015            l_paren: Box::new(l_paren),
24016            expression: Box::new(expression),
24017            r_paren: Box::new(r_paren),
24018        };
24019        // Calling user action here
24020        self.user_grammar.type_expression(&type_expression_built)?;
24021        self.push(ASTType::TypeExpression(type_expression_built), context);
24022        Ok(())
24023    }
24024
24025    /// Semantic action for production 484:
24026    ///
24027    /// `InsideExpression: Inside Expression LBrace RangeList RBrace;`
24028    ///
24029    #[parol_runtime::function_name::named]
24030    fn inside_expression(
24031        &mut self,
24032        _inside: &ParseTreeType<'t>,
24033        _expression: &ParseTreeType<'t>,
24034        _l_brace: &ParseTreeType<'t>,
24035        _range_list: &ParseTreeType<'t>,
24036        _r_brace: &ParseTreeType<'t>,
24037    ) -> Result<()> {
24038        let context = function_name!();
24039        trace!("{}", self.trace_item_stack(context));
24040        let r_brace = pop_item!(self, r_brace, RBrace, context);
24041        let range_list = pop_item!(self, range_list, RangeList, context);
24042        let l_brace = pop_item!(self, l_brace, LBrace, context);
24043        let expression = pop_item!(self, expression, Expression, context);
24044        let inside = pop_item!(self, inside, Inside, context);
24045        let inside_expression_built = InsideExpression {
24046            inside: Box::new(inside),
24047            expression: Box::new(expression),
24048            l_brace: Box::new(l_brace),
24049            range_list: Box::new(range_list),
24050            r_brace: Box::new(r_brace),
24051        };
24052        // Calling user action here
24053        self.user_grammar
24054            .inside_expression(&inside_expression_built)?;
24055        self.push(ASTType::InsideExpression(inside_expression_built), context);
24056        Ok(())
24057    }
24058
24059    /// Semantic action for production 485:
24060    ///
24061    /// `OutsideExpression: Outside Expression LBrace RangeList RBrace;`
24062    ///
24063    #[parol_runtime::function_name::named]
24064    fn outside_expression(
24065        &mut self,
24066        _outside: &ParseTreeType<'t>,
24067        _expression: &ParseTreeType<'t>,
24068        _l_brace: &ParseTreeType<'t>,
24069        _range_list: &ParseTreeType<'t>,
24070        _r_brace: &ParseTreeType<'t>,
24071    ) -> Result<()> {
24072        let context = function_name!();
24073        trace!("{}", self.trace_item_stack(context));
24074        let r_brace = pop_item!(self, r_brace, RBrace, context);
24075        let range_list = pop_item!(self, range_list, RangeList, context);
24076        let l_brace = pop_item!(self, l_brace, LBrace, context);
24077        let expression = pop_item!(self, expression, Expression, context);
24078        let outside = pop_item!(self, outside, Outside, context);
24079        let outside_expression_built = OutsideExpression {
24080            outside: Box::new(outside),
24081            expression: Box::new(expression),
24082            l_brace: Box::new(l_brace),
24083            range_list: Box::new(range_list),
24084            r_brace: Box::new(r_brace),
24085        };
24086        // Calling user action here
24087        self.user_grammar
24088            .outside_expression(&outside_expression_built)?;
24089        self.push(
24090            ASTType::OutsideExpression(outside_expression_built),
24091            context,
24092        );
24093        Ok(())
24094    }
24095
24096    /// Semantic action for production 486:
24097    ///
24098    /// `RangeList: RangeItem RangeListList /* Vec */ RangeListOpt /* Option */;`
24099    ///
24100    #[parol_runtime::function_name::named]
24101    fn range_list(
24102        &mut self,
24103        _range_item: &ParseTreeType<'t>,
24104        _range_list_list: &ParseTreeType<'t>,
24105        _range_list_opt: &ParseTreeType<'t>,
24106    ) -> Result<()> {
24107        let context = function_name!();
24108        trace!("{}", self.trace_item_stack(context));
24109        let range_list_opt = pop_item!(self, range_list_opt, RangeListOpt, context);
24110        let range_list_list = pop_and_reverse_item!(self, range_list_list, RangeListList, context);
24111        let range_item = pop_item!(self, range_item, RangeItem, context);
24112        let range_list_built = RangeList {
24113            range_item: Box::new(range_item),
24114            range_list_list,
24115            range_list_opt,
24116        };
24117        // Calling user action here
24118        self.user_grammar.range_list(&range_list_built)?;
24119        self.push(ASTType::RangeList(range_list_built), context);
24120        Ok(())
24121    }
24122
24123    /// Semantic action for production 487:
24124    ///
24125    /// `RangeListList /* Vec<T>::Push */: Comma RangeItem RangeListList;`
24126    ///
24127    #[parol_runtime::function_name::named]
24128    fn range_list_list_0(
24129        &mut self,
24130        _comma: &ParseTreeType<'t>,
24131        _range_item: &ParseTreeType<'t>,
24132        _range_list_list: &ParseTreeType<'t>,
24133    ) -> Result<()> {
24134        let context = function_name!();
24135        trace!("{}", self.trace_item_stack(context));
24136        let mut range_list_list = pop_item!(self, range_list_list, RangeListList, context);
24137        let range_item = pop_item!(self, range_item, RangeItem, context);
24138        let comma = pop_item!(self, comma, Comma, context);
24139        let range_list_list_0_built = RangeListList {
24140            range_item: Box::new(range_item),
24141            comma: Box::new(comma),
24142        };
24143        // Add an element to the vector
24144        range_list_list.push(range_list_list_0_built);
24145        self.push(ASTType::RangeListList(range_list_list), context);
24146        Ok(())
24147    }
24148
24149    /// Semantic action for production 488:
24150    ///
24151    /// `RangeListList /* Vec<T>::New */: ;`
24152    ///
24153    #[parol_runtime::function_name::named]
24154    fn range_list_list_1(&mut self) -> Result<()> {
24155        let context = function_name!();
24156        trace!("{}", self.trace_item_stack(context));
24157        let range_list_list_1_built = Vec::new();
24158        self.push(ASTType::RangeListList(range_list_list_1_built), context);
24159        Ok(())
24160    }
24161
24162    /// Semantic action for production 489:
24163    ///
24164    /// `RangeListOpt /* Option<T>::Some */: Comma;`
24165    ///
24166    #[parol_runtime::function_name::named]
24167    fn range_list_opt_0(&mut self, _comma: &ParseTreeType<'t>) -> Result<()> {
24168        let context = function_name!();
24169        trace!("{}", self.trace_item_stack(context));
24170        let comma = pop_item!(self, comma, Comma, context);
24171        let range_list_opt_0_built = RangeListOpt {
24172            comma: Box::new(comma),
24173        };
24174        self.push(ASTType::RangeListOpt(Some(range_list_opt_0_built)), context);
24175        Ok(())
24176    }
24177
24178    /// Semantic action for production 490:
24179    ///
24180    /// `RangeListOpt /* Option<T>::None */: ;`
24181    ///
24182    #[parol_runtime::function_name::named]
24183    fn range_list_opt_1(&mut self) -> Result<()> {
24184        let context = function_name!();
24185        trace!("{}", self.trace_item_stack(context));
24186        self.push(ASTType::RangeListOpt(None), context);
24187        Ok(())
24188    }
24189
24190    /// Semantic action for production 491:
24191    ///
24192    /// `RangeItem: Range;`
24193    ///
24194    #[parol_runtime::function_name::named]
24195    fn range_item(&mut self, _range: &ParseTreeType<'t>) -> Result<()> {
24196        let context = function_name!();
24197        trace!("{}", self.trace_item_stack(context));
24198        let range = pop_item!(self, range, Range, context);
24199        let range_item_built = RangeItem {
24200            range: Box::new(range),
24201        };
24202        // Calling user action here
24203        self.user_grammar.range_item(&range_item_built)?;
24204        self.push(ASTType::RangeItem(range_item_built), context);
24205        Ok(())
24206    }
24207
24208    /// Semantic action for production 492:
24209    ///
24210    /// `Select: LBracket Expression SelectOpt /* Option */ RBracket;`
24211    ///
24212    #[parol_runtime::function_name::named]
24213    fn select(
24214        &mut self,
24215        _l_bracket: &ParseTreeType<'t>,
24216        _expression: &ParseTreeType<'t>,
24217        _select_opt: &ParseTreeType<'t>,
24218        _r_bracket: &ParseTreeType<'t>,
24219    ) -> Result<()> {
24220        let context = function_name!();
24221        trace!("{}", self.trace_item_stack(context));
24222        let r_bracket = pop_item!(self, r_bracket, RBracket, context);
24223        let select_opt = pop_item!(self, select_opt, SelectOpt, context);
24224        let expression = pop_item!(self, expression, Expression, context);
24225        let l_bracket = pop_item!(self, l_bracket, LBracket, context);
24226        let select_built = Select {
24227            l_bracket: Box::new(l_bracket),
24228            expression: Box::new(expression),
24229            select_opt,
24230            r_bracket: Box::new(r_bracket),
24231        };
24232        // Calling user action here
24233        self.user_grammar.select(&select_built)?;
24234        self.push(ASTType::Select(select_built), context);
24235        Ok(())
24236    }
24237
24238    /// Semantic action for production 493:
24239    ///
24240    /// `SelectOpt /* Option<T>::Some */: SelectOperator Expression;`
24241    ///
24242    #[parol_runtime::function_name::named]
24243    fn select_opt_0(
24244        &mut self,
24245        _select_operator: &ParseTreeType<'t>,
24246        _expression: &ParseTreeType<'t>,
24247    ) -> Result<()> {
24248        let context = function_name!();
24249        trace!("{}", self.trace_item_stack(context));
24250        let expression = pop_item!(self, expression, Expression, context);
24251        let select_operator = pop_item!(self, select_operator, SelectOperator, context);
24252        let select_opt_0_built = SelectOpt {
24253            select_operator: Box::new(select_operator),
24254            expression: Box::new(expression),
24255        };
24256        self.push(ASTType::SelectOpt(Some(select_opt_0_built)), context);
24257        Ok(())
24258    }
24259
24260    /// Semantic action for production 494:
24261    ///
24262    /// `SelectOpt /* Option<T>::None */: ;`
24263    ///
24264    #[parol_runtime::function_name::named]
24265    fn select_opt_1(&mut self) -> Result<()> {
24266        let context = function_name!();
24267        trace!("{}", self.trace_item_stack(context));
24268        self.push(ASTType::SelectOpt(None), context);
24269        Ok(())
24270    }
24271
24272    /// Semantic action for production 495:
24273    ///
24274    /// `SelectOperator: Colon;`
24275    ///
24276    #[parol_runtime::function_name::named]
24277    fn select_operator_0(&mut self, _colon: &ParseTreeType<'t>) -> Result<()> {
24278        let context = function_name!();
24279        trace!("{}", self.trace_item_stack(context));
24280        let colon = pop_item!(self, colon, Colon, context);
24281        let select_operator_0_built = SelectOperatorColon {
24282            colon: Box::new(colon),
24283        };
24284        let select_operator_0_built = SelectOperator::Colon(select_operator_0_built);
24285        // Calling user action here
24286        self.user_grammar
24287            .select_operator(&select_operator_0_built)?;
24288        self.push(ASTType::SelectOperator(select_operator_0_built), context);
24289        Ok(())
24290    }
24291
24292    /// Semantic action for production 496:
24293    ///
24294    /// `SelectOperator: PlusColon;`
24295    ///
24296    #[parol_runtime::function_name::named]
24297    fn select_operator_1(&mut self, _plus_colon: &ParseTreeType<'t>) -> Result<()> {
24298        let context = function_name!();
24299        trace!("{}", self.trace_item_stack(context));
24300        let plus_colon = pop_item!(self, plus_colon, PlusColon, context);
24301        let select_operator_1_built = SelectOperatorPlusColon {
24302            plus_colon: Box::new(plus_colon),
24303        };
24304        let select_operator_1_built = SelectOperator::PlusColon(select_operator_1_built);
24305        // Calling user action here
24306        self.user_grammar
24307            .select_operator(&select_operator_1_built)?;
24308        self.push(ASTType::SelectOperator(select_operator_1_built), context);
24309        Ok(())
24310    }
24311
24312    /// Semantic action for production 497:
24313    ///
24314    /// `SelectOperator: MinusColon;`
24315    ///
24316    #[parol_runtime::function_name::named]
24317    fn select_operator_2(&mut self, _minus_colon: &ParseTreeType<'t>) -> Result<()> {
24318        let context = function_name!();
24319        trace!("{}", self.trace_item_stack(context));
24320        let minus_colon = pop_item!(self, minus_colon, MinusColon, context);
24321        let select_operator_2_built = SelectOperatorMinusColon {
24322            minus_colon: Box::new(minus_colon),
24323        };
24324        let select_operator_2_built = SelectOperator::MinusColon(select_operator_2_built);
24325        // Calling user action here
24326        self.user_grammar
24327            .select_operator(&select_operator_2_built)?;
24328        self.push(ASTType::SelectOperator(select_operator_2_built), context);
24329        Ok(())
24330    }
24331
24332    /// Semantic action for production 498:
24333    ///
24334    /// `SelectOperator: Step;`
24335    ///
24336    #[parol_runtime::function_name::named]
24337    fn select_operator_3(&mut self, _step: &ParseTreeType<'t>) -> Result<()> {
24338        let context = function_name!();
24339        trace!("{}", self.trace_item_stack(context));
24340        let step = pop_item!(self, step, Step, context);
24341        let select_operator_3_built = SelectOperatorStep {
24342            step: Box::new(step),
24343        };
24344        let select_operator_3_built = SelectOperator::Step(select_operator_3_built);
24345        // Calling user action here
24346        self.user_grammar
24347            .select_operator(&select_operator_3_built)?;
24348        self.push(ASTType::SelectOperator(select_operator_3_built), context);
24349        Ok(())
24350    }
24351
24352    /// Semantic action for production 499:
24353    ///
24354    /// `Width: LAngle Expression WidthList /* Vec */ RAngle;`
24355    ///
24356    #[parol_runtime::function_name::named]
24357    fn width(
24358        &mut self,
24359        _l_angle: &ParseTreeType<'t>,
24360        _expression: &ParseTreeType<'t>,
24361        _width_list: &ParseTreeType<'t>,
24362        _r_angle: &ParseTreeType<'t>,
24363    ) -> Result<()> {
24364        let context = function_name!();
24365        trace!("{}", self.trace_item_stack(context));
24366        let r_angle = pop_item!(self, r_angle, RAngle, context);
24367        let width_list = pop_and_reverse_item!(self, width_list, WidthList, context);
24368        let expression = pop_item!(self, expression, Expression, context);
24369        let l_angle = pop_item!(self, l_angle, LAngle, context);
24370        let width_built = Width {
24371            l_angle: Box::new(l_angle),
24372            expression: Box::new(expression),
24373            width_list,
24374            r_angle: Box::new(r_angle),
24375        };
24376        // Calling user action here
24377        self.user_grammar.width(&width_built)?;
24378        self.push(ASTType::Width(width_built), context);
24379        Ok(())
24380    }
24381
24382    /// Semantic action for production 500:
24383    ///
24384    /// `WidthList /* Vec<T>::Push */: Comma Expression WidthList;`
24385    ///
24386    #[parol_runtime::function_name::named]
24387    fn width_list_0(
24388        &mut self,
24389        _comma: &ParseTreeType<'t>,
24390        _expression: &ParseTreeType<'t>,
24391        _width_list: &ParseTreeType<'t>,
24392    ) -> Result<()> {
24393        let context = function_name!();
24394        trace!("{}", self.trace_item_stack(context));
24395        let mut width_list = pop_item!(self, width_list, WidthList, context);
24396        let expression = pop_item!(self, expression, Expression, context);
24397        let comma = pop_item!(self, comma, Comma, context);
24398        let width_list_0_built = WidthList {
24399            expression: Box::new(expression),
24400            comma: Box::new(comma),
24401        };
24402        // Add an element to the vector
24403        width_list.push(width_list_0_built);
24404        self.push(ASTType::WidthList(width_list), context);
24405        Ok(())
24406    }
24407
24408    /// Semantic action for production 501:
24409    ///
24410    /// `WidthList /* Vec<T>::New */: ;`
24411    ///
24412    #[parol_runtime::function_name::named]
24413    fn width_list_1(&mut self) -> Result<()> {
24414        let context = function_name!();
24415        trace!("{}", self.trace_item_stack(context));
24416        let width_list_1_built = Vec::new();
24417        self.push(ASTType::WidthList(width_list_1_built), context);
24418        Ok(())
24419    }
24420
24421    /// Semantic action for production 502:
24422    ///
24423    /// `Array: LBracket Expression ArrayList /* Vec */ RBracket;`
24424    ///
24425    #[parol_runtime::function_name::named]
24426    fn array(
24427        &mut self,
24428        _l_bracket: &ParseTreeType<'t>,
24429        _expression: &ParseTreeType<'t>,
24430        _array_list: &ParseTreeType<'t>,
24431        _r_bracket: &ParseTreeType<'t>,
24432    ) -> Result<()> {
24433        let context = function_name!();
24434        trace!("{}", self.trace_item_stack(context));
24435        let r_bracket = pop_item!(self, r_bracket, RBracket, context);
24436        let array_list = pop_and_reverse_item!(self, array_list, ArrayList, context);
24437        let expression = pop_item!(self, expression, Expression, context);
24438        let l_bracket = pop_item!(self, l_bracket, LBracket, context);
24439        let array_built = Array {
24440            l_bracket: Box::new(l_bracket),
24441            expression: Box::new(expression),
24442            array_list,
24443            r_bracket: Box::new(r_bracket),
24444        };
24445        // Calling user action here
24446        self.user_grammar.array(&array_built)?;
24447        self.push(ASTType::Array(array_built), context);
24448        Ok(())
24449    }
24450
24451    /// Semantic action for production 503:
24452    ///
24453    /// `ArrayList /* Vec<T>::Push */: Comma Expression ArrayList;`
24454    ///
24455    #[parol_runtime::function_name::named]
24456    fn array_list_0(
24457        &mut self,
24458        _comma: &ParseTreeType<'t>,
24459        _expression: &ParseTreeType<'t>,
24460        _array_list: &ParseTreeType<'t>,
24461    ) -> Result<()> {
24462        let context = function_name!();
24463        trace!("{}", self.trace_item_stack(context));
24464        let mut array_list = pop_item!(self, array_list, ArrayList, context);
24465        let expression = pop_item!(self, expression, Expression, context);
24466        let comma = pop_item!(self, comma, Comma, context);
24467        let array_list_0_built = ArrayList {
24468            expression: Box::new(expression),
24469            comma: Box::new(comma),
24470        };
24471        // Add an element to the vector
24472        array_list.push(array_list_0_built);
24473        self.push(ASTType::ArrayList(array_list), context);
24474        Ok(())
24475    }
24476
24477    /// Semantic action for production 504:
24478    ///
24479    /// `ArrayList /* Vec<T>::New */: ;`
24480    ///
24481    #[parol_runtime::function_name::named]
24482    fn array_list_1(&mut self) -> Result<()> {
24483        let context = function_name!();
24484        trace!("{}", self.trace_item_stack(context));
24485        let array_list_1_built = Vec::new();
24486        self.push(ASTType::ArrayList(array_list_1_built), context);
24487        Ok(())
24488    }
24489
24490    /// Semantic action for production 505:
24491    ///
24492    /// `Range: Expression RangeOpt /* Option */;`
24493    ///
24494    #[parol_runtime::function_name::named]
24495    fn range(
24496        &mut self,
24497        _expression: &ParseTreeType<'t>,
24498        _range_opt: &ParseTreeType<'t>,
24499    ) -> Result<()> {
24500        let context = function_name!();
24501        trace!("{}", self.trace_item_stack(context));
24502        let range_opt = pop_item!(self, range_opt, RangeOpt, context);
24503        let expression = pop_item!(self, expression, Expression, context);
24504        let range_built = Range {
24505            expression: Box::new(expression),
24506            range_opt,
24507        };
24508        // Calling user action here
24509        self.user_grammar.range(&range_built)?;
24510        self.push(ASTType::Range(range_built), context);
24511        Ok(())
24512    }
24513
24514    /// Semantic action for production 506:
24515    ///
24516    /// `RangeOpt /* Option<T>::Some */: RangeOperator Expression;`
24517    ///
24518    #[parol_runtime::function_name::named]
24519    fn range_opt_0(
24520        &mut self,
24521        _range_operator: &ParseTreeType<'t>,
24522        _expression: &ParseTreeType<'t>,
24523    ) -> Result<()> {
24524        let context = function_name!();
24525        trace!("{}", self.trace_item_stack(context));
24526        let expression = pop_item!(self, expression, Expression, context);
24527        let range_operator = pop_item!(self, range_operator, RangeOperator, context);
24528        let range_opt_0_built = RangeOpt {
24529            range_operator: Box::new(range_operator),
24530            expression: Box::new(expression),
24531        };
24532        self.push(ASTType::RangeOpt(Some(range_opt_0_built)), context);
24533        Ok(())
24534    }
24535
24536    /// Semantic action for production 507:
24537    ///
24538    /// `RangeOpt /* Option<T>::None */: ;`
24539    ///
24540    #[parol_runtime::function_name::named]
24541    fn range_opt_1(&mut self) -> Result<()> {
24542        let context = function_name!();
24543        trace!("{}", self.trace_item_stack(context));
24544        self.push(ASTType::RangeOpt(None), context);
24545        Ok(())
24546    }
24547
24548    /// Semantic action for production 508:
24549    ///
24550    /// `RangeOperator: DotDot;`
24551    ///
24552    #[parol_runtime::function_name::named]
24553    fn range_operator_0(&mut self, _dot_dot: &ParseTreeType<'t>) -> Result<()> {
24554        let context = function_name!();
24555        trace!("{}", self.trace_item_stack(context));
24556        let dot_dot = pop_item!(self, dot_dot, DotDot, context);
24557        let range_operator_0_built = RangeOperatorDotDot {
24558            dot_dot: Box::new(dot_dot),
24559        };
24560        let range_operator_0_built = RangeOperator::DotDot(range_operator_0_built);
24561        // Calling user action here
24562        self.user_grammar.range_operator(&range_operator_0_built)?;
24563        self.push(ASTType::RangeOperator(range_operator_0_built), context);
24564        Ok(())
24565    }
24566
24567    /// Semantic action for production 509:
24568    ///
24569    /// `RangeOperator: DotDotEqu;`
24570    ///
24571    #[parol_runtime::function_name::named]
24572    fn range_operator_1(&mut self, _dot_dot_equ: &ParseTreeType<'t>) -> Result<()> {
24573        let context = function_name!();
24574        trace!("{}", self.trace_item_stack(context));
24575        let dot_dot_equ = pop_item!(self, dot_dot_equ, DotDotEqu, context);
24576        let range_operator_1_built = RangeOperatorDotDotEqu {
24577            dot_dot_equ: Box::new(dot_dot_equ),
24578        };
24579        let range_operator_1_built = RangeOperator::DotDotEqu(range_operator_1_built);
24580        // Calling user action here
24581        self.user_grammar.range_operator(&range_operator_1_built)?;
24582        self.push(ASTType::RangeOperator(range_operator_1_built), context);
24583        Ok(())
24584    }
24585
24586    /// Semantic action for production 510:
24587    ///
24588    /// `FixedType: U32;`
24589    ///
24590    #[parol_runtime::function_name::named]
24591    fn fixed_type_0(&mut self, _u32: &ParseTreeType<'t>) -> Result<()> {
24592        let context = function_name!();
24593        trace!("{}", self.trace_item_stack(context));
24594        let u32 = pop_item!(self, u32, U32, context);
24595        let fixed_type_0_built = FixedTypeU32 { u32: Box::new(u32) };
24596        let fixed_type_0_built = FixedType::U32(fixed_type_0_built);
24597        // Calling user action here
24598        self.user_grammar.fixed_type(&fixed_type_0_built)?;
24599        self.push(ASTType::FixedType(fixed_type_0_built), context);
24600        Ok(())
24601    }
24602
24603    /// Semantic action for production 511:
24604    ///
24605    /// `FixedType: U64;`
24606    ///
24607    #[parol_runtime::function_name::named]
24608    fn fixed_type_1(&mut self, _u64: &ParseTreeType<'t>) -> Result<()> {
24609        let context = function_name!();
24610        trace!("{}", self.trace_item_stack(context));
24611        let u64 = pop_item!(self, u64, U64, context);
24612        let fixed_type_1_built = FixedTypeU64 { u64: Box::new(u64) };
24613        let fixed_type_1_built = FixedType::U64(fixed_type_1_built);
24614        // Calling user action here
24615        self.user_grammar.fixed_type(&fixed_type_1_built)?;
24616        self.push(ASTType::FixedType(fixed_type_1_built), context);
24617        Ok(())
24618    }
24619
24620    /// Semantic action for production 512:
24621    ///
24622    /// `FixedType: I32;`
24623    ///
24624    #[parol_runtime::function_name::named]
24625    fn fixed_type_2(&mut self, _i32: &ParseTreeType<'t>) -> Result<()> {
24626        let context = function_name!();
24627        trace!("{}", self.trace_item_stack(context));
24628        let i32 = pop_item!(self, i32, I32, context);
24629        let fixed_type_2_built = FixedTypeI32 { i32: Box::new(i32) };
24630        let fixed_type_2_built = FixedType::I32(fixed_type_2_built);
24631        // Calling user action here
24632        self.user_grammar.fixed_type(&fixed_type_2_built)?;
24633        self.push(ASTType::FixedType(fixed_type_2_built), context);
24634        Ok(())
24635    }
24636
24637    /// Semantic action for production 513:
24638    ///
24639    /// `FixedType: I64;`
24640    ///
24641    #[parol_runtime::function_name::named]
24642    fn fixed_type_3(&mut self, _i64: &ParseTreeType<'t>) -> Result<()> {
24643        let context = function_name!();
24644        trace!("{}", self.trace_item_stack(context));
24645        let i64 = pop_item!(self, i64, I64, context);
24646        let fixed_type_3_built = FixedTypeI64 { i64: Box::new(i64) };
24647        let fixed_type_3_built = FixedType::I64(fixed_type_3_built);
24648        // Calling user action here
24649        self.user_grammar.fixed_type(&fixed_type_3_built)?;
24650        self.push(ASTType::FixedType(fixed_type_3_built), context);
24651        Ok(())
24652    }
24653
24654    /// Semantic action for production 514:
24655    ///
24656    /// `FixedType: F32;`
24657    ///
24658    #[parol_runtime::function_name::named]
24659    fn fixed_type_4(&mut self, _f32: &ParseTreeType<'t>) -> Result<()> {
24660        let context = function_name!();
24661        trace!("{}", self.trace_item_stack(context));
24662        let f32 = pop_item!(self, f32, F32, context);
24663        let fixed_type_4_built = FixedTypeF32 { f32: Box::new(f32) };
24664        let fixed_type_4_built = FixedType::F32(fixed_type_4_built);
24665        // Calling user action here
24666        self.user_grammar.fixed_type(&fixed_type_4_built)?;
24667        self.push(ASTType::FixedType(fixed_type_4_built), context);
24668        Ok(())
24669    }
24670
24671    /// Semantic action for production 515:
24672    ///
24673    /// `FixedType: F64;`
24674    ///
24675    #[parol_runtime::function_name::named]
24676    fn fixed_type_5(&mut self, _f64: &ParseTreeType<'t>) -> Result<()> {
24677        let context = function_name!();
24678        trace!("{}", self.trace_item_stack(context));
24679        let f64 = pop_item!(self, f64, F64, context);
24680        let fixed_type_5_built = FixedTypeF64 { f64: Box::new(f64) };
24681        let fixed_type_5_built = FixedType::F64(fixed_type_5_built);
24682        // Calling user action here
24683        self.user_grammar.fixed_type(&fixed_type_5_built)?;
24684        self.push(ASTType::FixedType(fixed_type_5_built), context);
24685        Ok(())
24686    }
24687
24688    /// Semantic action for production 516:
24689    ///
24690    /// `FixedType: Strin;`
24691    ///
24692    #[parol_runtime::function_name::named]
24693    fn fixed_type_6(&mut self, _strin: &ParseTreeType<'t>) -> Result<()> {
24694        let context = function_name!();
24695        trace!("{}", self.trace_item_stack(context));
24696        let strin = pop_item!(self, strin, Strin, context);
24697        let fixed_type_6_built = FixedTypeStrin {
24698            strin: Box::new(strin),
24699        };
24700        let fixed_type_6_built = FixedType::Strin(fixed_type_6_built);
24701        // Calling user action here
24702        self.user_grammar.fixed_type(&fixed_type_6_built)?;
24703        self.push(ASTType::FixedType(fixed_type_6_built), context);
24704        Ok(())
24705    }
24706
24707    /// Semantic action for production 517:
24708    ///
24709    /// `VariableType: Clock;`
24710    ///
24711    #[parol_runtime::function_name::named]
24712    fn variable_type_0(&mut self, _clock: &ParseTreeType<'t>) -> Result<()> {
24713        let context = function_name!();
24714        trace!("{}", self.trace_item_stack(context));
24715        let clock = pop_item!(self, clock, Clock, context);
24716        let variable_type_0_built = VariableTypeClock {
24717            clock: Box::new(clock),
24718        };
24719        let variable_type_0_built = VariableType::Clock(variable_type_0_built);
24720        // Calling user action here
24721        self.user_grammar.variable_type(&variable_type_0_built)?;
24722        self.push(ASTType::VariableType(variable_type_0_built), context);
24723        Ok(())
24724    }
24725
24726    /// Semantic action for production 518:
24727    ///
24728    /// `VariableType: ClockPosedge;`
24729    ///
24730    #[parol_runtime::function_name::named]
24731    fn variable_type_1(&mut self, _clock_posedge: &ParseTreeType<'t>) -> Result<()> {
24732        let context = function_name!();
24733        trace!("{}", self.trace_item_stack(context));
24734        let clock_posedge = pop_item!(self, clock_posedge, ClockPosedge, context);
24735        let variable_type_1_built = VariableTypeClockPosedge {
24736            clock_posedge: Box::new(clock_posedge),
24737        };
24738        let variable_type_1_built = VariableType::ClockPosedge(variable_type_1_built);
24739        // Calling user action here
24740        self.user_grammar.variable_type(&variable_type_1_built)?;
24741        self.push(ASTType::VariableType(variable_type_1_built), context);
24742        Ok(())
24743    }
24744
24745    /// Semantic action for production 519:
24746    ///
24747    /// `VariableType: ClockNegedge;`
24748    ///
24749    #[parol_runtime::function_name::named]
24750    fn variable_type_2(&mut self, _clock_negedge: &ParseTreeType<'t>) -> Result<()> {
24751        let context = function_name!();
24752        trace!("{}", self.trace_item_stack(context));
24753        let clock_negedge = pop_item!(self, clock_negedge, ClockNegedge, context);
24754        let variable_type_2_built = VariableTypeClockNegedge {
24755            clock_negedge: Box::new(clock_negedge),
24756        };
24757        let variable_type_2_built = VariableType::ClockNegedge(variable_type_2_built);
24758        // Calling user action here
24759        self.user_grammar.variable_type(&variable_type_2_built)?;
24760        self.push(ASTType::VariableType(variable_type_2_built), context);
24761        Ok(())
24762    }
24763
24764    /// Semantic action for production 520:
24765    ///
24766    /// `VariableType: Reset;`
24767    ///
24768    #[parol_runtime::function_name::named]
24769    fn variable_type_3(&mut self, _reset: &ParseTreeType<'t>) -> Result<()> {
24770        let context = function_name!();
24771        trace!("{}", self.trace_item_stack(context));
24772        let reset = pop_item!(self, reset, Reset, context);
24773        let variable_type_3_built = VariableTypeReset {
24774            reset: Box::new(reset),
24775        };
24776        let variable_type_3_built = VariableType::Reset(variable_type_3_built);
24777        // Calling user action here
24778        self.user_grammar.variable_type(&variable_type_3_built)?;
24779        self.push(ASTType::VariableType(variable_type_3_built), context);
24780        Ok(())
24781    }
24782
24783    /// Semantic action for production 521:
24784    ///
24785    /// `VariableType: ResetAsyncHigh;`
24786    ///
24787    #[parol_runtime::function_name::named]
24788    fn variable_type_4(&mut self, _reset_async_high: &ParseTreeType<'t>) -> Result<()> {
24789        let context = function_name!();
24790        trace!("{}", self.trace_item_stack(context));
24791        let reset_async_high = pop_item!(self, reset_async_high, ResetAsyncHigh, context);
24792        let variable_type_4_built = VariableTypeResetAsyncHigh {
24793            reset_async_high: Box::new(reset_async_high),
24794        };
24795        let variable_type_4_built = VariableType::ResetAsyncHigh(variable_type_4_built);
24796        // Calling user action here
24797        self.user_grammar.variable_type(&variable_type_4_built)?;
24798        self.push(ASTType::VariableType(variable_type_4_built), context);
24799        Ok(())
24800    }
24801
24802    /// Semantic action for production 522:
24803    ///
24804    /// `VariableType: ResetAsyncLow;`
24805    ///
24806    #[parol_runtime::function_name::named]
24807    fn variable_type_5(&mut self, _reset_async_low: &ParseTreeType<'t>) -> Result<()> {
24808        let context = function_name!();
24809        trace!("{}", self.trace_item_stack(context));
24810        let reset_async_low = pop_item!(self, reset_async_low, ResetAsyncLow, context);
24811        let variable_type_5_built = VariableTypeResetAsyncLow {
24812            reset_async_low: Box::new(reset_async_low),
24813        };
24814        let variable_type_5_built = VariableType::ResetAsyncLow(variable_type_5_built);
24815        // Calling user action here
24816        self.user_grammar.variable_type(&variable_type_5_built)?;
24817        self.push(ASTType::VariableType(variable_type_5_built), context);
24818        Ok(())
24819    }
24820
24821    /// Semantic action for production 523:
24822    ///
24823    /// `VariableType: ResetSyncHigh;`
24824    ///
24825    #[parol_runtime::function_name::named]
24826    fn variable_type_6(&mut self, _reset_sync_high: &ParseTreeType<'t>) -> Result<()> {
24827        let context = function_name!();
24828        trace!("{}", self.trace_item_stack(context));
24829        let reset_sync_high = pop_item!(self, reset_sync_high, ResetSyncHigh, context);
24830        let variable_type_6_built = VariableTypeResetSyncHigh {
24831            reset_sync_high: Box::new(reset_sync_high),
24832        };
24833        let variable_type_6_built = VariableType::ResetSyncHigh(variable_type_6_built);
24834        // Calling user action here
24835        self.user_grammar.variable_type(&variable_type_6_built)?;
24836        self.push(ASTType::VariableType(variable_type_6_built), context);
24837        Ok(())
24838    }
24839
24840    /// Semantic action for production 524:
24841    ///
24842    /// `VariableType: ResetSyncLow;`
24843    ///
24844    #[parol_runtime::function_name::named]
24845    fn variable_type_7(&mut self, _reset_sync_low: &ParseTreeType<'t>) -> Result<()> {
24846        let context = function_name!();
24847        trace!("{}", self.trace_item_stack(context));
24848        let reset_sync_low = pop_item!(self, reset_sync_low, ResetSyncLow, context);
24849        let variable_type_7_built = VariableTypeResetSyncLow {
24850            reset_sync_low: Box::new(reset_sync_low),
24851        };
24852        let variable_type_7_built = VariableType::ResetSyncLow(variable_type_7_built);
24853        // Calling user action here
24854        self.user_grammar.variable_type(&variable_type_7_built)?;
24855        self.push(ASTType::VariableType(variable_type_7_built), context);
24856        Ok(())
24857    }
24858
24859    /// Semantic action for production 525:
24860    ///
24861    /// `VariableType: Logic;`
24862    ///
24863    #[parol_runtime::function_name::named]
24864    fn variable_type_8(&mut self, _logic: &ParseTreeType<'t>) -> Result<()> {
24865        let context = function_name!();
24866        trace!("{}", self.trace_item_stack(context));
24867        let logic = pop_item!(self, logic, Logic, context);
24868        let variable_type_8_built = VariableTypeLogic {
24869            logic: Box::new(logic),
24870        };
24871        let variable_type_8_built = VariableType::Logic(variable_type_8_built);
24872        // Calling user action here
24873        self.user_grammar.variable_type(&variable_type_8_built)?;
24874        self.push(ASTType::VariableType(variable_type_8_built), context);
24875        Ok(())
24876    }
24877
24878    /// Semantic action for production 526:
24879    ///
24880    /// `VariableType: Bit;`
24881    ///
24882    #[parol_runtime::function_name::named]
24883    fn variable_type_9(&mut self, _bit: &ParseTreeType<'t>) -> Result<()> {
24884        let context = function_name!();
24885        trace!("{}", self.trace_item_stack(context));
24886        let bit = pop_item!(self, bit, Bit, context);
24887        let variable_type_9_built = VariableTypeBit { bit: Box::new(bit) };
24888        let variable_type_9_built = VariableType::Bit(variable_type_9_built);
24889        // Calling user action here
24890        self.user_grammar.variable_type(&variable_type_9_built)?;
24891        self.push(ASTType::VariableType(variable_type_9_built), context);
24892        Ok(())
24893    }
24894
24895    /// Semantic action for production 527:
24896    ///
24897    /// `UserDefinedType: ScopedIdentifier;`
24898    ///
24899    #[parol_runtime::function_name::named]
24900    fn user_defined_type(&mut self, _scoped_identifier: &ParseTreeType<'t>) -> Result<()> {
24901        let context = function_name!();
24902        trace!("{}", self.trace_item_stack(context));
24903        let scoped_identifier = pop_item!(self, scoped_identifier, ScopedIdentifier, context);
24904        let user_defined_type_built = UserDefinedType {
24905            scoped_identifier: Box::new(scoped_identifier),
24906        };
24907        // Calling user action here
24908        self.user_grammar
24909            .user_defined_type(&user_defined_type_built)?;
24910        self.push(ASTType::UserDefinedType(user_defined_type_built), context);
24911        Ok(())
24912    }
24913
24914    /// Semantic action for production 528:
24915    ///
24916    /// `TypeModifier: Tri;`
24917    ///
24918    #[parol_runtime::function_name::named]
24919    fn type_modifier_0(&mut self, _tri: &ParseTreeType<'t>) -> Result<()> {
24920        let context = function_name!();
24921        trace!("{}", self.trace_item_stack(context));
24922        let tri = pop_item!(self, tri, Tri, context);
24923        let type_modifier_0_built = TypeModifierTri { tri: Box::new(tri) };
24924        let type_modifier_0_built = TypeModifier::Tri(type_modifier_0_built);
24925        // Calling user action here
24926        self.user_grammar.type_modifier(&type_modifier_0_built)?;
24927        self.push(ASTType::TypeModifier(type_modifier_0_built), context);
24928        Ok(())
24929    }
24930
24931    /// Semantic action for production 529:
24932    ///
24933    /// `TypeModifier: Signed;`
24934    ///
24935    #[parol_runtime::function_name::named]
24936    fn type_modifier_1(&mut self, _signed: &ParseTreeType<'t>) -> Result<()> {
24937        let context = function_name!();
24938        trace!("{}", self.trace_item_stack(context));
24939        let signed = pop_item!(self, signed, Signed, context);
24940        let type_modifier_1_built = TypeModifierSigned {
24941            signed: Box::new(signed),
24942        };
24943        let type_modifier_1_built = TypeModifier::Signed(type_modifier_1_built);
24944        // Calling user action here
24945        self.user_grammar.type_modifier(&type_modifier_1_built)?;
24946        self.push(ASTType::TypeModifier(type_modifier_1_built), context);
24947        Ok(())
24948    }
24949
24950    /// Semantic action for production 530:
24951    ///
24952    /// `FactorType: FactorTypeGroup;`
24953    ///
24954    #[parol_runtime::function_name::named]
24955    fn factor_type(&mut self, _factor_type_group: &ParseTreeType<'t>) -> Result<()> {
24956        let context = function_name!();
24957        trace!("{}", self.trace_item_stack(context));
24958        let factor_type_group = pop_item!(self, factor_type_group, FactorTypeGroup, context);
24959        let factor_type_built = FactorType {
24960            factor_type_group: Box::new(factor_type_group),
24961        };
24962        // Calling user action here
24963        self.user_grammar.factor_type(&factor_type_built)?;
24964        self.push(ASTType::FactorType(factor_type_built), context);
24965        Ok(())
24966    }
24967
24968    /// Semantic action for production 531:
24969    ///
24970    /// `FactorTypeGroup: VariableType FactorTypeOpt /* Option */;`
24971    ///
24972    #[parol_runtime::function_name::named]
24973    fn factor_type_group_0(
24974        &mut self,
24975        _variable_type: &ParseTreeType<'t>,
24976        _factor_type_opt: &ParseTreeType<'t>,
24977    ) -> Result<()> {
24978        let context = function_name!();
24979        trace!("{}", self.trace_item_stack(context));
24980        let factor_type_opt = pop_item!(self, factor_type_opt, FactorTypeOpt, context);
24981        let variable_type = pop_item!(self, variable_type, VariableType, context);
24982        let factor_type_group_0_built = FactorTypeGroupVariableTypeFactorTypeOpt {
24983            variable_type: Box::new(variable_type),
24984            factor_type_opt,
24985        };
24986        let factor_type_group_0_built =
24987            FactorTypeGroup::VariableTypeFactorTypeOpt(factor_type_group_0_built);
24988        self.push(ASTType::FactorTypeGroup(factor_type_group_0_built), context);
24989        Ok(())
24990    }
24991
24992    /// Semantic action for production 532:
24993    ///
24994    /// `FactorTypeGroup: FixedType;`
24995    ///
24996    #[parol_runtime::function_name::named]
24997    fn factor_type_group_1(&mut self, _fixed_type: &ParseTreeType<'t>) -> Result<()> {
24998        let context = function_name!();
24999        trace!("{}", self.trace_item_stack(context));
25000        let fixed_type = pop_item!(self, fixed_type, FixedType, context);
25001        let factor_type_group_1_built = FactorTypeGroupFixedType {
25002            fixed_type: Box::new(fixed_type),
25003        };
25004        let factor_type_group_1_built = FactorTypeGroup::FixedType(factor_type_group_1_built);
25005        self.push(ASTType::FactorTypeGroup(factor_type_group_1_built), context);
25006        Ok(())
25007    }
25008
25009    /// Semantic action for production 533:
25010    ///
25011    /// `FactorTypeOpt /* Option<T>::Some */: Width;`
25012    ///
25013    #[parol_runtime::function_name::named]
25014    fn factor_type_opt_0(&mut self, _width: &ParseTreeType<'t>) -> Result<()> {
25015        let context = function_name!();
25016        trace!("{}", self.trace_item_stack(context));
25017        let width = pop_item!(self, width, Width, context);
25018        let factor_type_opt_0_built = FactorTypeOpt {
25019            width: Box::new(width),
25020        };
25021        self.push(
25022            ASTType::FactorTypeOpt(Some(factor_type_opt_0_built)),
25023            context,
25024        );
25025        Ok(())
25026    }
25027
25028    /// Semantic action for production 534:
25029    ///
25030    /// `FactorTypeOpt /* Option<T>::None */: ;`
25031    ///
25032    #[parol_runtime::function_name::named]
25033    fn factor_type_opt_1(&mut self) -> Result<()> {
25034        let context = function_name!();
25035        trace!("{}", self.trace_item_stack(context));
25036        self.push(ASTType::FactorTypeOpt(None), context);
25037        Ok(())
25038    }
25039
25040    /// Semantic action for production 535:
25041    ///
25042    /// `ScalarType: ScalarTypeList /* Vec */ ScalarTypeGroup;`
25043    ///
25044    #[parol_runtime::function_name::named]
25045    fn scalar_type(
25046        &mut self,
25047        _scalar_type_list: &ParseTreeType<'t>,
25048        _scalar_type_group: &ParseTreeType<'t>,
25049    ) -> Result<()> {
25050        let context = function_name!();
25051        trace!("{}", self.trace_item_stack(context));
25052        let scalar_type_group = pop_item!(self, scalar_type_group, ScalarTypeGroup, context);
25053        let scalar_type_list =
25054            pop_and_reverse_item!(self, scalar_type_list, ScalarTypeList, context);
25055        let scalar_type_built = ScalarType {
25056            scalar_type_list,
25057            scalar_type_group: Box::new(scalar_type_group),
25058        };
25059        // Calling user action here
25060        self.user_grammar.scalar_type(&scalar_type_built)?;
25061        self.push(ASTType::ScalarType(scalar_type_built), context);
25062        Ok(())
25063    }
25064
25065    /// Semantic action for production 536:
25066    ///
25067    /// `ScalarTypeGroup: UserDefinedType ScalarTypeOpt /* Option */;`
25068    ///
25069    #[parol_runtime::function_name::named]
25070    fn scalar_type_group_0(
25071        &mut self,
25072        _user_defined_type: &ParseTreeType<'t>,
25073        _scalar_type_opt: &ParseTreeType<'t>,
25074    ) -> Result<()> {
25075        let context = function_name!();
25076        trace!("{}", self.trace_item_stack(context));
25077        let scalar_type_opt = pop_item!(self, scalar_type_opt, ScalarTypeOpt, context);
25078        let user_defined_type = pop_item!(self, user_defined_type, UserDefinedType, context);
25079        let scalar_type_group_0_built = ScalarTypeGroupUserDefinedTypeScalarTypeOpt {
25080            user_defined_type: Box::new(user_defined_type),
25081            scalar_type_opt,
25082        };
25083        let scalar_type_group_0_built =
25084            ScalarTypeGroup::UserDefinedTypeScalarTypeOpt(scalar_type_group_0_built);
25085        self.push(ASTType::ScalarTypeGroup(scalar_type_group_0_built), context);
25086        Ok(())
25087    }
25088
25089    /// Semantic action for production 537:
25090    ///
25091    /// `ScalarTypeGroup: FactorType;`
25092    ///
25093    #[parol_runtime::function_name::named]
25094    fn scalar_type_group_1(&mut self, _factor_type: &ParseTreeType<'t>) -> Result<()> {
25095        let context = function_name!();
25096        trace!("{}", self.trace_item_stack(context));
25097        let factor_type = pop_item!(self, factor_type, FactorType, context);
25098        let scalar_type_group_1_built = ScalarTypeGroupFactorType {
25099            factor_type: Box::new(factor_type),
25100        };
25101        let scalar_type_group_1_built = ScalarTypeGroup::FactorType(scalar_type_group_1_built);
25102        self.push(ASTType::ScalarTypeGroup(scalar_type_group_1_built), context);
25103        Ok(())
25104    }
25105
25106    /// Semantic action for production 538:
25107    ///
25108    /// `ScalarTypeList /* Vec<T>::Push */: TypeModifier ScalarTypeList;`
25109    ///
25110    #[parol_runtime::function_name::named]
25111    fn scalar_type_list_0(
25112        &mut self,
25113        _type_modifier: &ParseTreeType<'t>,
25114        _scalar_type_list: &ParseTreeType<'t>,
25115    ) -> Result<()> {
25116        let context = function_name!();
25117        trace!("{}", self.trace_item_stack(context));
25118        let mut scalar_type_list = pop_item!(self, scalar_type_list, ScalarTypeList, context);
25119        let type_modifier = pop_item!(self, type_modifier, TypeModifier, context);
25120        let scalar_type_list_0_built = ScalarTypeList {
25121            type_modifier: Box::new(type_modifier),
25122        };
25123        // Add an element to the vector
25124        scalar_type_list.push(scalar_type_list_0_built);
25125        self.push(ASTType::ScalarTypeList(scalar_type_list), context);
25126        Ok(())
25127    }
25128
25129    /// Semantic action for production 539:
25130    ///
25131    /// `ScalarTypeList /* Vec<T>::New */: ;`
25132    ///
25133    #[parol_runtime::function_name::named]
25134    fn scalar_type_list_1(&mut self) -> Result<()> {
25135        let context = function_name!();
25136        trace!("{}", self.trace_item_stack(context));
25137        let scalar_type_list_1_built = Vec::new();
25138        self.push(ASTType::ScalarTypeList(scalar_type_list_1_built), context);
25139        Ok(())
25140    }
25141
25142    /// Semantic action for production 540:
25143    ///
25144    /// `ScalarTypeOpt /* Option<T>::Some */: Width;`
25145    ///
25146    #[parol_runtime::function_name::named]
25147    fn scalar_type_opt_0(&mut self, _width: &ParseTreeType<'t>) -> Result<()> {
25148        let context = function_name!();
25149        trace!("{}", self.trace_item_stack(context));
25150        let width = pop_item!(self, width, Width, context);
25151        let scalar_type_opt_0_built = ScalarTypeOpt {
25152            width: Box::new(width),
25153        };
25154        self.push(
25155            ASTType::ScalarTypeOpt(Some(scalar_type_opt_0_built)),
25156            context,
25157        );
25158        Ok(())
25159    }
25160
25161    /// Semantic action for production 541:
25162    ///
25163    /// `ScalarTypeOpt /* Option<T>::None */: ;`
25164    ///
25165    #[parol_runtime::function_name::named]
25166    fn scalar_type_opt_1(&mut self) -> Result<()> {
25167        let context = function_name!();
25168        trace!("{}", self.trace_item_stack(context));
25169        self.push(ASTType::ScalarTypeOpt(None), context);
25170        Ok(())
25171    }
25172
25173    /// Semantic action for production 542:
25174    ///
25175    /// `ArrayType: ScalarType ArrayTypeOpt /* Option */;`
25176    ///
25177    #[parol_runtime::function_name::named]
25178    fn array_type(
25179        &mut self,
25180        _scalar_type: &ParseTreeType<'t>,
25181        _array_type_opt: &ParseTreeType<'t>,
25182    ) -> Result<()> {
25183        let context = function_name!();
25184        trace!("{}", self.trace_item_stack(context));
25185        let array_type_opt = pop_item!(self, array_type_opt, ArrayTypeOpt, context);
25186        let scalar_type = pop_item!(self, scalar_type, ScalarType, context);
25187        let array_type_built = ArrayType {
25188            scalar_type: Box::new(scalar_type),
25189            array_type_opt,
25190        };
25191        // Calling user action here
25192        self.user_grammar.array_type(&array_type_built)?;
25193        self.push(ASTType::ArrayType(array_type_built), context);
25194        Ok(())
25195    }
25196
25197    /// Semantic action for production 543:
25198    ///
25199    /// `ArrayTypeOpt /* Option<T>::Some */: Array;`
25200    ///
25201    #[parol_runtime::function_name::named]
25202    fn array_type_opt_0(&mut self, _array: &ParseTreeType<'t>) -> Result<()> {
25203        let context = function_name!();
25204        trace!("{}", self.trace_item_stack(context));
25205        let array = pop_item!(self, array, Array, context);
25206        let array_type_opt_0_built = ArrayTypeOpt {
25207            array: Box::new(array),
25208        };
25209        self.push(ASTType::ArrayTypeOpt(Some(array_type_opt_0_built)), context);
25210        Ok(())
25211    }
25212
25213    /// Semantic action for production 544:
25214    ///
25215    /// `ArrayTypeOpt /* Option<T>::None */: ;`
25216    ///
25217    #[parol_runtime::function_name::named]
25218    fn array_type_opt_1(&mut self) -> Result<()> {
25219        let context = function_name!();
25220        trace!("{}", self.trace_item_stack(context));
25221        self.push(ASTType::ArrayTypeOpt(None), context);
25222        Ok(())
25223    }
25224
25225    /// Semantic action for production 545:
25226    ///
25227    /// `CastingType: U32;`
25228    ///
25229    #[parol_runtime::function_name::named]
25230    fn casting_type_0(&mut self, _u32: &ParseTreeType<'t>) -> Result<()> {
25231        let context = function_name!();
25232        trace!("{}", self.trace_item_stack(context));
25233        let u32 = pop_item!(self, u32, U32, context);
25234        let casting_type_0_built = CastingTypeU32 { u32: Box::new(u32) };
25235        let casting_type_0_built = CastingType::U32(casting_type_0_built);
25236        // Calling user action here
25237        self.user_grammar.casting_type(&casting_type_0_built)?;
25238        self.push(ASTType::CastingType(casting_type_0_built), context);
25239        Ok(())
25240    }
25241
25242    /// Semantic action for production 546:
25243    ///
25244    /// `CastingType: U64;`
25245    ///
25246    #[parol_runtime::function_name::named]
25247    fn casting_type_1(&mut self, _u64: &ParseTreeType<'t>) -> Result<()> {
25248        let context = function_name!();
25249        trace!("{}", self.trace_item_stack(context));
25250        let u64 = pop_item!(self, u64, U64, context);
25251        let casting_type_1_built = CastingTypeU64 { u64: Box::new(u64) };
25252        let casting_type_1_built = CastingType::U64(casting_type_1_built);
25253        // Calling user action here
25254        self.user_grammar.casting_type(&casting_type_1_built)?;
25255        self.push(ASTType::CastingType(casting_type_1_built), context);
25256        Ok(())
25257    }
25258
25259    /// Semantic action for production 547:
25260    ///
25261    /// `CastingType: I32;`
25262    ///
25263    #[parol_runtime::function_name::named]
25264    fn casting_type_2(&mut self, _i32: &ParseTreeType<'t>) -> Result<()> {
25265        let context = function_name!();
25266        trace!("{}", self.trace_item_stack(context));
25267        let i32 = pop_item!(self, i32, I32, context);
25268        let casting_type_2_built = CastingTypeI32 { i32: Box::new(i32) };
25269        let casting_type_2_built = CastingType::I32(casting_type_2_built);
25270        // Calling user action here
25271        self.user_grammar.casting_type(&casting_type_2_built)?;
25272        self.push(ASTType::CastingType(casting_type_2_built), context);
25273        Ok(())
25274    }
25275
25276    /// Semantic action for production 548:
25277    ///
25278    /// `CastingType: I64;`
25279    ///
25280    #[parol_runtime::function_name::named]
25281    fn casting_type_3(&mut self, _i64: &ParseTreeType<'t>) -> Result<()> {
25282        let context = function_name!();
25283        trace!("{}", self.trace_item_stack(context));
25284        let i64 = pop_item!(self, i64, I64, context);
25285        let casting_type_3_built = CastingTypeI64 { i64: Box::new(i64) };
25286        let casting_type_3_built = CastingType::I64(casting_type_3_built);
25287        // Calling user action here
25288        self.user_grammar.casting_type(&casting_type_3_built)?;
25289        self.push(ASTType::CastingType(casting_type_3_built), context);
25290        Ok(())
25291    }
25292
25293    /// Semantic action for production 549:
25294    ///
25295    /// `CastingType: F32;`
25296    ///
25297    #[parol_runtime::function_name::named]
25298    fn casting_type_4(&mut self, _f32: &ParseTreeType<'t>) -> Result<()> {
25299        let context = function_name!();
25300        trace!("{}", self.trace_item_stack(context));
25301        let f32 = pop_item!(self, f32, F32, context);
25302        let casting_type_4_built = CastingTypeF32 { f32: Box::new(f32) };
25303        let casting_type_4_built = CastingType::F32(casting_type_4_built);
25304        // Calling user action here
25305        self.user_grammar.casting_type(&casting_type_4_built)?;
25306        self.push(ASTType::CastingType(casting_type_4_built), context);
25307        Ok(())
25308    }
25309
25310    /// Semantic action for production 550:
25311    ///
25312    /// `CastingType: F64;`
25313    ///
25314    #[parol_runtime::function_name::named]
25315    fn casting_type_5(&mut self, _f64: &ParseTreeType<'t>) -> Result<()> {
25316        let context = function_name!();
25317        trace!("{}", self.trace_item_stack(context));
25318        let f64 = pop_item!(self, f64, F64, context);
25319        let casting_type_5_built = CastingTypeF64 { f64: Box::new(f64) };
25320        let casting_type_5_built = CastingType::F64(casting_type_5_built);
25321        // Calling user action here
25322        self.user_grammar.casting_type(&casting_type_5_built)?;
25323        self.push(ASTType::CastingType(casting_type_5_built), context);
25324        Ok(())
25325    }
25326
25327    /// Semantic action for production 551:
25328    ///
25329    /// `CastingType: Clock;`
25330    ///
25331    #[parol_runtime::function_name::named]
25332    fn casting_type_6(&mut self, _clock: &ParseTreeType<'t>) -> Result<()> {
25333        let context = function_name!();
25334        trace!("{}", self.trace_item_stack(context));
25335        let clock = pop_item!(self, clock, Clock, context);
25336        let casting_type_6_built = CastingTypeClock {
25337            clock: Box::new(clock),
25338        };
25339        let casting_type_6_built = CastingType::Clock(casting_type_6_built);
25340        // Calling user action here
25341        self.user_grammar.casting_type(&casting_type_6_built)?;
25342        self.push(ASTType::CastingType(casting_type_6_built), context);
25343        Ok(())
25344    }
25345
25346    /// Semantic action for production 552:
25347    ///
25348    /// `CastingType: ClockPosedge;`
25349    ///
25350    #[parol_runtime::function_name::named]
25351    fn casting_type_7(&mut self, _clock_posedge: &ParseTreeType<'t>) -> Result<()> {
25352        let context = function_name!();
25353        trace!("{}", self.trace_item_stack(context));
25354        let clock_posedge = pop_item!(self, clock_posedge, ClockPosedge, context);
25355        let casting_type_7_built = CastingTypeClockPosedge {
25356            clock_posedge: Box::new(clock_posedge),
25357        };
25358        let casting_type_7_built = CastingType::ClockPosedge(casting_type_7_built);
25359        // Calling user action here
25360        self.user_grammar.casting_type(&casting_type_7_built)?;
25361        self.push(ASTType::CastingType(casting_type_7_built), context);
25362        Ok(())
25363    }
25364
25365    /// Semantic action for production 553:
25366    ///
25367    /// `CastingType: ClockNegedge;`
25368    ///
25369    #[parol_runtime::function_name::named]
25370    fn casting_type_8(&mut self, _clock_negedge: &ParseTreeType<'t>) -> Result<()> {
25371        let context = function_name!();
25372        trace!("{}", self.trace_item_stack(context));
25373        let clock_negedge = pop_item!(self, clock_negedge, ClockNegedge, context);
25374        let casting_type_8_built = CastingTypeClockNegedge {
25375            clock_negedge: Box::new(clock_negedge),
25376        };
25377        let casting_type_8_built = CastingType::ClockNegedge(casting_type_8_built);
25378        // Calling user action here
25379        self.user_grammar.casting_type(&casting_type_8_built)?;
25380        self.push(ASTType::CastingType(casting_type_8_built), context);
25381        Ok(())
25382    }
25383
25384    /// Semantic action for production 554:
25385    ///
25386    /// `CastingType: Reset;`
25387    ///
25388    #[parol_runtime::function_name::named]
25389    fn casting_type_9(&mut self, _reset: &ParseTreeType<'t>) -> Result<()> {
25390        let context = function_name!();
25391        trace!("{}", self.trace_item_stack(context));
25392        let reset = pop_item!(self, reset, Reset, context);
25393        let casting_type_9_built = CastingTypeReset {
25394            reset: Box::new(reset),
25395        };
25396        let casting_type_9_built = CastingType::Reset(casting_type_9_built);
25397        // Calling user action here
25398        self.user_grammar.casting_type(&casting_type_9_built)?;
25399        self.push(ASTType::CastingType(casting_type_9_built), context);
25400        Ok(())
25401    }
25402
25403    /// Semantic action for production 555:
25404    ///
25405    /// `CastingType: ResetAsyncHigh;`
25406    ///
25407    #[parol_runtime::function_name::named]
25408    fn casting_type_10(&mut self, _reset_async_high: &ParseTreeType<'t>) -> Result<()> {
25409        let context = function_name!();
25410        trace!("{}", self.trace_item_stack(context));
25411        let reset_async_high = pop_item!(self, reset_async_high, ResetAsyncHigh, context);
25412        let casting_type_10_built = CastingTypeResetAsyncHigh {
25413            reset_async_high: Box::new(reset_async_high),
25414        };
25415        let casting_type_10_built = CastingType::ResetAsyncHigh(casting_type_10_built);
25416        // Calling user action here
25417        self.user_grammar.casting_type(&casting_type_10_built)?;
25418        self.push(ASTType::CastingType(casting_type_10_built), context);
25419        Ok(())
25420    }
25421
25422    /// Semantic action for production 556:
25423    ///
25424    /// `CastingType: ResetAsyncLow;`
25425    ///
25426    #[parol_runtime::function_name::named]
25427    fn casting_type_11(&mut self, _reset_async_low: &ParseTreeType<'t>) -> Result<()> {
25428        let context = function_name!();
25429        trace!("{}", self.trace_item_stack(context));
25430        let reset_async_low = pop_item!(self, reset_async_low, ResetAsyncLow, context);
25431        let casting_type_11_built = CastingTypeResetAsyncLow {
25432            reset_async_low: Box::new(reset_async_low),
25433        };
25434        let casting_type_11_built = CastingType::ResetAsyncLow(casting_type_11_built);
25435        // Calling user action here
25436        self.user_grammar.casting_type(&casting_type_11_built)?;
25437        self.push(ASTType::CastingType(casting_type_11_built), context);
25438        Ok(())
25439    }
25440
25441    /// Semantic action for production 557:
25442    ///
25443    /// `CastingType: ResetSyncHigh;`
25444    ///
25445    #[parol_runtime::function_name::named]
25446    fn casting_type_12(&mut self, _reset_sync_high: &ParseTreeType<'t>) -> Result<()> {
25447        let context = function_name!();
25448        trace!("{}", self.trace_item_stack(context));
25449        let reset_sync_high = pop_item!(self, reset_sync_high, ResetSyncHigh, context);
25450        let casting_type_12_built = CastingTypeResetSyncHigh {
25451            reset_sync_high: Box::new(reset_sync_high),
25452        };
25453        let casting_type_12_built = CastingType::ResetSyncHigh(casting_type_12_built);
25454        // Calling user action here
25455        self.user_grammar.casting_type(&casting_type_12_built)?;
25456        self.push(ASTType::CastingType(casting_type_12_built), context);
25457        Ok(())
25458    }
25459
25460    /// Semantic action for production 558:
25461    ///
25462    /// `CastingType: ResetSyncLow;`
25463    ///
25464    #[parol_runtime::function_name::named]
25465    fn casting_type_13(&mut self, _reset_sync_low: &ParseTreeType<'t>) -> Result<()> {
25466        let context = function_name!();
25467        trace!("{}", self.trace_item_stack(context));
25468        let reset_sync_low = pop_item!(self, reset_sync_low, ResetSyncLow, context);
25469        let casting_type_13_built = CastingTypeResetSyncLow {
25470            reset_sync_low: Box::new(reset_sync_low),
25471        };
25472        let casting_type_13_built = CastingType::ResetSyncLow(casting_type_13_built);
25473        // Calling user action here
25474        self.user_grammar.casting_type(&casting_type_13_built)?;
25475        self.push(ASTType::CastingType(casting_type_13_built), context);
25476        Ok(())
25477    }
25478
25479    /// Semantic action for production 559:
25480    ///
25481    /// `CastingType: UserDefinedType;`
25482    ///
25483    #[parol_runtime::function_name::named]
25484    fn casting_type_14(&mut self, _user_defined_type: &ParseTreeType<'t>) -> Result<()> {
25485        let context = function_name!();
25486        trace!("{}", self.trace_item_stack(context));
25487        let user_defined_type = pop_item!(self, user_defined_type, UserDefinedType, context);
25488        let casting_type_14_built = CastingTypeUserDefinedType {
25489            user_defined_type: Box::new(user_defined_type),
25490        };
25491        let casting_type_14_built = CastingType::UserDefinedType(casting_type_14_built);
25492        // Calling user action here
25493        self.user_grammar.casting_type(&casting_type_14_built)?;
25494        self.push(ASTType::CastingType(casting_type_14_built), context);
25495        Ok(())
25496    }
25497
25498    /// Semantic action for production 560:
25499    ///
25500    /// `CastingType: Based;`
25501    ///
25502    #[parol_runtime::function_name::named]
25503    fn casting_type_15(&mut self, _based: &ParseTreeType<'t>) -> Result<()> {
25504        let context = function_name!();
25505        trace!("{}", self.trace_item_stack(context));
25506        let based = pop_item!(self, based, Based, context);
25507        let casting_type_15_built = CastingTypeBased {
25508            based: Box::new(based),
25509        };
25510        let casting_type_15_built = CastingType::Based(casting_type_15_built);
25511        // Calling user action here
25512        self.user_grammar.casting_type(&casting_type_15_built)?;
25513        self.push(ASTType::CastingType(casting_type_15_built), context);
25514        Ok(())
25515    }
25516
25517    /// Semantic action for production 561:
25518    ///
25519    /// `CastingType: BaseLess;`
25520    ///
25521    #[parol_runtime::function_name::named]
25522    fn casting_type_16(&mut self, _base_less: &ParseTreeType<'t>) -> Result<()> {
25523        let context = function_name!();
25524        trace!("{}", self.trace_item_stack(context));
25525        let base_less = pop_item!(self, base_less, BaseLess, context);
25526        let casting_type_16_built = CastingTypeBaseLess {
25527            base_less: Box::new(base_less),
25528        };
25529        let casting_type_16_built = CastingType::BaseLess(casting_type_16_built);
25530        // Calling user action here
25531        self.user_grammar.casting_type(&casting_type_16_built)?;
25532        self.push(ASTType::CastingType(casting_type_16_built), context);
25533        Ok(())
25534    }
25535
25536    /// Semantic action for production 562:
25537    ///
25538    /// `ClockDomain: BackQuote Identifier;`
25539    ///
25540    #[parol_runtime::function_name::named]
25541    fn clock_domain(
25542        &mut self,
25543        _back_quote: &ParseTreeType<'t>,
25544        _identifier: &ParseTreeType<'t>,
25545    ) -> Result<()> {
25546        let context = function_name!();
25547        trace!("{}", self.trace_item_stack(context));
25548        let identifier = pop_item!(self, identifier, Identifier, context);
25549        let back_quote = pop_item!(self, back_quote, BackQuote, context);
25550        let clock_domain_built = ClockDomain {
25551            back_quote: Box::new(back_quote),
25552            identifier: Box::new(identifier),
25553        };
25554        // Calling user action here
25555        self.user_grammar.clock_domain(&clock_domain_built)?;
25556        self.push(ASTType::ClockDomain(clock_domain_built), context);
25557        Ok(())
25558    }
25559
25560    /// Semantic action for production 563:
25561    ///
25562    /// `StatementBlock: LBrace StatementBlockList /* Vec */ RBrace;`
25563    ///
25564    #[parol_runtime::function_name::named]
25565    fn statement_block(
25566        &mut self,
25567        _l_brace: &ParseTreeType<'t>,
25568        _statement_block_list: &ParseTreeType<'t>,
25569        _r_brace: &ParseTreeType<'t>,
25570    ) -> Result<()> {
25571        let context = function_name!();
25572        trace!("{}", self.trace_item_stack(context));
25573        let r_brace = pop_item!(self, r_brace, RBrace, context);
25574        let statement_block_list =
25575            pop_and_reverse_item!(self, statement_block_list, StatementBlockList, context);
25576        let l_brace = pop_item!(self, l_brace, LBrace, context);
25577        let statement_block_built = StatementBlock {
25578            l_brace: Box::new(l_brace),
25579            statement_block_list,
25580            r_brace: Box::new(r_brace),
25581        };
25582        // Calling user action here
25583        self.user_grammar.statement_block(&statement_block_built)?;
25584        self.push(ASTType::StatementBlock(statement_block_built), context);
25585        Ok(())
25586    }
25587
25588    /// Semantic action for production 564:
25589    ///
25590    /// `StatementBlockList /* Vec<T>::Push */: StatementBlockGroup StatementBlockList;`
25591    ///
25592    #[parol_runtime::function_name::named]
25593    fn statement_block_list_0(
25594        &mut self,
25595        _statement_block_group: &ParseTreeType<'t>,
25596        _statement_block_list: &ParseTreeType<'t>,
25597    ) -> Result<()> {
25598        let context = function_name!();
25599        trace!("{}", self.trace_item_stack(context));
25600        let mut statement_block_list =
25601            pop_item!(self, statement_block_list, StatementBlockList, context);
25602        let statement_block_group =
25603            pop_item!(self, statement_block_group, StatementBlockGroup, context);
25604        let statement_block_list_0_built = StatementBlockList {
25605            statement_block_group: Box::new(statement_block_group),
25606        };
25607        // Add an element to the vector
25608        statement_block_list.push(statement_block_list_0_built);
25609        self.push(ASTType::StatementBlockList(statement_block_list), context);
25610        Ok(())
25611    }
25612
25613    /// Semantic action for production 565:
25614    ///
25615    /// `StatementBlockList /* Vec<T>::New */: ;`
25616    ///
25617    #[parol_runtime::function_name::named]
25618    fn statement_block_list_1(&mut self) -> Result<()> {
25619        let context = function_name!();
25620        trace!("{}", self.trace_item_stack(context));
25621        let statement_block_list_1_built = Vec::new();
25622        self.push(
25623            ASTType::StatementBlockList(statement_block_list_1_built),
25624            context,
25625        );
25626        Ok(())
25627    }
25628
25629    /// Semantic action for production 566:
25630    ///
25631    /// `StatementBlockGroup: StatementBlockGroupList /* Vec */ StatementBlockGroupGroup;`
25632    ///
25633    #[parol_runtime::function_name::named]
25634    fn statement_block_group(
25635        &mut self,
25636        _statement_block_group_list: &ParseTreeType<'t>,
25637        _statement_block_group_group: &ParseTreeType<'t>,
25638    ) -> Result<()> {
25639        let context = function_name!();
25640        trace!("{}", self.trace_item_stack(context));
25641        let statement_block_group_group = pop_item!(
25642            self,
25643            statement_block_group_group,
25644            StatementBlockGroupGroup,
25645            context
25646        );
25647        let statement_block_group_list = pop_and_reverse_item!(
25648            self,
25649            statement_block_group_list,
25650            StatementBlockGroupList,
25651            context
25652        );
25653        let statement_block_group_built = StatementBlockGroup {
25654            statement_block_group_list,
25655            statement_block_group_group: Box::new(statement_block_group_group),
25656        };
25657        // Calling user action here
25658        self.user_grammar
25659            .statement_block_group(&statement_block_group_built)?;
25660        self.push(
25661            ASTType::StatementBlockGroup(statement_block_group_built),
25662            context,
25663        );
25664        Ok(())
25665    }
25666
25667    /// Semantic action for production 567:
25668    ///
25669    /// `StatementBlockGroupGroup: LBrace StatementBlockGroupGroupList /* Vec */ RBrace;`
25670    ///
25671    #[parol_runtime::function_name::named]
25672    fn statement_block_group_group_0(
25673        &mut self,
25674        _l_brace: &ParseTreeType<'t>,
25675        _statement_block_group_group_list: &ParseTreeType<'t>,
25676        _r_brace: &ParseTreeType<'t>,
25677    ) -> Result<()> {
25678        let context = function_name!();
25679        trace!("{}", self.trace_item_stack(context));
25680        let r_brace = pop_item!(self, r_brace, RBrace, context);
25681        let statement_block_group_group_list = pop_and_reverse_item!(
25682            self,
25683            statement_block_group_group_list,
25684            StatementBlockGroupGroupList,
25685            context
25686        );
25687        let l_brace = pop_item!(self, l_brace, LBrace, context);
25688        let statement_block_group_group_0_built =
25689            StatementBlockGroupGroupLBraceStatementBlockGroupGroupListRBrace {
25690                l_brace: Box::new(l_brace),
25691                statement_block_group_group_list,
25692                r_brace: Box::new(r_brace),
25693            };
25694        let statement_block_group_group_0_built =
25695            StatementBlockGroupGroup::LBraceStatementBlockGroupGroupListRBrace(
25696                statement_block_group_group_0_built,
25697            );
25698        self.push(
25699            ASTType::StatementBlockGroupGroup(statement_block_group_group_0_built),
25700            context,
25701        );
25702        Ok(())
25703    }
25704
25705    /// Semantic action for production 568:
25706    ///
25707    /// `StatementBlockGroupGroupList /* Vec<T>::Push */: StatementBlockGroup StatementBlockGroupGroupList;`
25708    ///
25709    #[parol_runtime::function_name::named]
25710    fn statement_block_group_group_list_0(
25711        &mut self,
25712        _statement_block_group: &ParseTreeType<'t>,
25713        _statement_block_group_group_list: &ParseTreeType<'t>,
25714    ) -> Result<()> {
25715        let context = function_name!();
25716        trace!("{}", self.trace_item_stack(context));
25717        let mut statement_block_group_group_list = pop_item!(
25718            self,
25719            statement_block_group_group_list,
25720            StatementBlockGroupGroupList,
25721            context
25722        );
25723        let statement_block_group =
25724            pop_item!(self, statement_block_group, StatementBlockGroup, context);
25725        let statement_block_group_group_list_0_built = StatementBlockGroupGroupList {
25726            statement_block_group: Box::new(statement_block_group),
25727        };
25728        // Add an element to the vector
25729        statement_block_group_group_list.push(statement_block_group_group_list_0_built);
25730        self.push(
25731            ASTType::StatementBlockGroupGroupList(statement_block_group_group_list),
25732            context,
25733        );
25734        Ok(())
25735    }
25736
25737    /// Semantic action for production 569:
25738    ///
25739    /// `StatementBlockGroupGroupList /* Vec<T>::New */: ;`
25740    ///
25741    #[parol_runtime::function_name::named]
25742    fn statement_block_group_group_list_1(&mut self) -> Result<()> {
25743        let context = function_name!();
25744        trace!("{}", self.trace_item_stack(context));
25745        let statement_block_group_group_list_1_built = Vec::new();
25746        self.push(
25747            ASTType::StatementBlockGroupGroupList(statement_block_group_group_list_1_built),
25748            context,
25749        );
25750        Ok(())
25751    }
25752
25753    /// Semantic action for production 570:
25754    ///
25755    /// `StatementBlockGroupGroup: StatementBlockItem;`
25756    ///
25757    #[parol_runtime::function_name::named]
25758    fn statement_block_group_group_1(
25759        &mut self,
25760        _statement_block_item: &ParseTreeType<'t>,
25761    ) -> Result<()> {
25762        let context = function_name!();
25763        trace!("{}", self.trace_item_stack(context));
25764        let statement_block_item =
25765            pop_item!(self, statement_block_item, StatementBlockItem, context);
25766        let statement_block_group_group_1_built = StatementBlockGroupGroupStatementBlockItem {
25767            statement_block_item: Box::new(statement_block_item),
25768        };
25769        let statement_block_group_group_1_built =
25770            StatementBlockGroupGroup::StatementBlockItem(statement_block_group_group_1_built);
25771        self.push(
25772            ASTType::StatementBlockGroupGroup(statement_block_group_group_1_built),
25773            context,
25774        );
25775        Ok(())
25776    }
25777
25778    /// Semantic action for production 571:
25779    ///
25780    /// `StatementBlockGroupList /* Vec<T>::Push */: Attribute StatementBlockGroupList;`
25781    ///
25782    #[parol_runtime::function_name::named]
25783    fn statement_block_group_list_0(
25784        &mut self,
25785        _attribute: &ParseTreeType<'t>,
25786        _statement_block_group_list: &ParseTreeType<'t>,
25787    ) -> Result<()> {
25788        let context = function_name!();
25789        trace!("{}", self.trace_item_stack(context));
25790        let mut statement_block_group_list = pop_item!(
25791            self,
25792            statement_block_group_list,
25793            StatementBlockGroupList,
25794            context
25795        );
25796        let attribute = pop_item!(self, attribute, Attribute, context);
25797        let statement_block_group_list_0_built = StatementBlockGroupList {
25798            attribute: Box::new(attribute),
25799        };
25800        // Add an element to the vector
25801        statement_block_group_list.push(statement_block_group_list_0_built);
25802        self.push(
25803            ASTType::StatementBlockGroupList(statement_block_group_list),
25804            context,
25805        );
25806        Ok(())
25807    }
25808
25809    /// Semantic action for production 572:
25810    ///
25811    /// `StatementBlockGroupList /* Vec<T>::New */: ;`
25812    ///
25813    #[parol_runtime::function_name::named]
25814    fn statement_block_group_list_1(&mut self) -> Result<()> {
25815        let context = function_name!();
25816        trace!("{}", self.trace_item_stack(context));
25817        let statement_block_group_list_1_built = Vec::new();
25818        self.push(
25819            ASTType::StatementBlockGroupList(statement_block_group_list_1_built),
25820            context,
25821        );
25822        Ok(())
25823    }
25824
25825    /// Semantic action for production 573:
25826    ///
25827    /// `StatementBlockItem: VarDeclaration;`
25828    ///
25829    #[parol_runtime::function_name::named]
25830    fn statement_block_item_0(&mut self, _var_declaration: &ParseTreeType<'t>) -> Result<()> {
25831        let context = function_name!();
25832        trace!("{}", self.trace_item_stack(context));
25833        let var_declaration = pop_item!(self, var_declaration, VarDeclaration, context);
25834        let statement_block_item_0_built = StatementBlockItemVarDeclaration {
25835            var_declaration: Box::new(var_declaration),
25836        };
25837        let statement_block_item_0_built =
25838            StatementBlockItem::VarDeclaration(statement_block_item_0_built);
25839        // Calling user action here
25840        self.user_grammar
25841            .statement_block_item(&statement_block_item_0_built)?;
25842        self.push(
25843            ASTType::StatementBlockItem(statement_block_item_0_built),
25844            context,
25845        );
25846        Ok(())
25847    }
25848
25849    /// Semantic action for production 574:
25850    ///
25851    /// `StatementBlockItem: LetStatement;`
25852    ///
25853    #[parol_runtime::function_name::named]
25854    fn statement_block_item_1(&mut self, _let_statement: &ParseTreeType<'t>) -> Result<()> {
25855        let context = function_name!();
25856        trace!("{}", self.trace_item_stack(context));
25857        let let_statement = pop_item!(self, let_statement, LetStatement, context);
25858        let statement_block_item_1_built = StatementBlockItemLetStatement {
25859            let_statement: Box::new(let_statement),
25860        };
25861        let statement_block_item_1_built =
25862            StatementBlockItem::LetStatement(statement_block_item_1_built);
25863        // Calling user action here
25864        self.user_grammar
25865            .statement_block_item(&statement_block_item_1_built)?;
25866        self.push(
25867            ASTType::StatementBlockItem(statement_block_item_1_built),
25868            context,
25869        );
25870        Ok(())
25871    }
25872
25873    /// Semantic action for production 575:
25874    ///
25875    /// `StatementBlockItem: Statement;`
25876    ///
25877    #[parol_runtime::function_name::named]
25878    fn statement_block_item_2(&mut self, _statement: &ParseTreeType<'t>) -> Result<()> {
25879        let context = function_name!();
25880        trace!("{}", self.trace_item_stack(context));
25881        let statement = pop_item!(self, statement, Statement, context);
25882        let statement_block_item_2_built = StatementBlockItemStatement {
25883            statement: Box::new(statement),
25884        };
25885        let statement_block_item_2_built =
25886            StatementBlockItem::Statement(statement_block_item_2_built);
25887        // Calling user action here
25888        self.user_grammar
25889            .statement_block_item(&statement_block_item_2_built)?;
25890        self.push(
25891            ASTType::StatementBlockItem(statement_block_item_2_built),
25892            context,
25893        );
25894        Ok(())
25895    }
25896
25897    /// Semantic action for production 576:
25898    ///
25899    /// `Statement: IdentifierStatement;`
25900    ///
25901    #[parol_runtime::function_name::named]
25902    fn statement_0(&mut self, _identifier_statement: &ParseTreeType<'t>) -> Result<()> {
25903        let context = function_name!();
25904        trace!("{}", self.trace_item_stack(context));
25905        let identifier_statement =
25906            pop_item!(self, identifier_statement, IdentifierStatement, context);
25907        let statement_0_built = StatementIdentifierStatement {
25908            identifier_statement: Box::new(identifier_statement),
25909        };
25910        let statement_0_built = Statement::IdentifierStatement(statement_0_built);
25911        // Calling user action here
25912        self.user_grammar.statement(&statement_0_built)?;
25913        self.push(ASTType::Statement(statement_0_built), context);
25914        Ok(())
25915    }
25916
25917    /// Semantic action for production 577:
25918    ///
25919    /// `Statement: IfStatement;`
25920    ///
25921    #[parol_runtime::function_name::named]
25922    fn statement_1(&mut self, _if_statement: &ParseTreeType<'t>) -> Result<()> {
25923        let context = function_name!();
25924        trace!("{}", self.trace_item_stack(context));
25925        let if_statement = pop_item!(self, if_statement, IfStatement, context);
25926        let statement_1_built = StatementIfStatement {
25927            if_statement: Box::new(if_statement),
25928        };
25929        let statement_1_built = Statement::IfStatement(statement_1_built);
25930        // Calling user action here
25931        self.user_grammar.statement(&statement_1_built)?;
25932        self.push(ASTType::Statement(statement_1_built), context);
25933        Ok(())
25934    }
25935
25936    /// Semantic action for production 578:
25937    ///
25938    /// `Statement: IfResetStatement;`
25939    ///
25940    #[parol_runtime::function_name::named]
25941    fn statement_2(&mut self, _if_reset_statement: &ParseTreeType<'t>) -> Result<()> {
25942        let context = function_name!();
25943        trace!("{}", self.trace_item_stack(context));
25944        let if_reset_statement = pop_item!(self, if_reset_statement, IfResetStatement, context);
25945        let statement_2_built = StatementIfResetStatement {
25946            if_reset_statement: Box::new(if_reset_statement),
25947        };
25948        let statement_2_built = Statement::IfResetStatement(statement_2_built);
25949        // Calling user action here
25950        self.user_grammar.statement(&statement_2_built)?;
25951        self.push(ASTType::Statement(statement_2_built), context);
25952        Ok(())
25953    }
25954
25955    /// Semantic action for production 579:
25956    ///
25957    /// `Statement: ReturnStatement;`
25958    ///
25959    #[parol_runtime::function_name::named]
25960    fn statement_3(&mut self, _return_statement: &ParseTreeType<'t>) -> Result<()> {
25961        let context = function_name!();
25962        trace!("{}", self.trace_item_stack(context));
25963        let return_statement = pop_item!(self, return_statement, ReturnStatement, context);
25964        let statement_3_built = StatementReturnStatement {
25965            return_statement: Box::new(return_statement),
25966        };
25967        let statement_3_built = Statement::ReturnStatement(statement_3_built);
25968        // Calling user action here
25969        self.user_grammar.statement(&statement_3_built)?;
25970        self.push(ASTType::Statement(statement_3_built), context);
25971        Ok(())
25972    }
25973
25974    /// Semantic action for production 580:
25975    ///
25976    /// `Statement: BreakStatement;`
25977    ///
25978    #[parol_runtime::function_name::named]
25979    fn statement_4(&mut self, _break_statement: &ParseTreeType<'t>) -> Result<()> {
25980        let context = function_name!();
25981        trace!("{}", self.trace_item_stack(context));
25982        let break_statement = pop_item!(self, break_statement, BreakStatement, context);
25983        let statement_4_built = StatementBreakStatement {
25984            break_statement: Box::new(break_statement),
25985        };
25986        let statement_4_built = Statement::BreakStatement(statement_4_built);
25987        // Calling user action here
25988        self.user_grammar.statement(&statement_4_built)?;
25989        self.push(ASTType::Statement(statement_4_built), context);
25990        Ok(())
25991    }
25992
25993    /// Semantic action for production 581:
25994    ///
25995    /// `Statement: ForStatement;`
25996    ///
25997    #[parol_runtime::function_name::named]
25998    fn statement_5(&mut self, _for_statement: &ParseTreeType<'t>) -> Result<()> {
25999        let context = function_name!();
26000        trace!("{}", self.trace_item_stack(context));
26001        let for_statement = pop_item!(self, for_statement, ForStatement, context);
26002        let statement_5_built = StatementForStatement {
26003            for_statement: Box::new(for_statement),
26004        };
26005        let statement_5_built = Statement::ForStatement(statement_5_built);
26006        // Calling user action here
26007        self.user_grammar.statement(&statement_5_built)?;
26008        self.push(ASTType::Statement(statement_5_built), context);
26009        Ok(())
26010    }
26011
26012    /// Semantic action for production 582:
26013    ///
26014    /// `Statement: CaseStatement;`
26015    ///
26016    #[parol_runtime::function_name::named]
26017    fn statement_6(&mut self, _case_statement: &ParseTreeType<'t>) -> Result<()> {
26018        let context = function_name!();
26019        trace!("{}", self.trace_item_stack(context));
26020        let case_statement = pop_item!(self, case_statement, CaseStatement, context);
26021        let statement_6_built = StatementCaseStatement {
26022            case_statement: Box::new(case_statement),
26023        };
26024        let statement_6_built = Statement::CaseStatement(statement_6_built);
26025        // Calling user action here
26026        self.user_grammar.statement(&statement_6_built)?;
26027        self.push(ASTType::Statement(statement_6_built), context);
26028        Ok(())
26029    }
26030
26031    /// Semantic action for production 583:
26032    ///
26033    /// `Statement: SwitchStatement;`
26034    ///
26035    #[parol_runtime::function_name::named]
26036    fn statement_7(&mut self, _switch_statement: &ParseTreeType<'t>) -> Result<()> {
26037        let context = function_name!();
26038        trace!("{}", self.trace_item_stack(context));
26039        let switch_statement = pop_item!(self, switch_statement, SwitchStatement, context);
26040        let statement_7_built = StatementSwitchStatement {
26041            switch_statement: Box::new(switch_statement),
26042        };
26043        let statement_7_built = Statement::SwitchStatement(statement_7_built);
26044        // Calling user action here
26045        self.user_grammar.statement(&statement_7_built)?;
26046        self.push(ASTType::Statement(statement_7_built), context);
26047        Ok(())
26048    }
26049
26050    /// Semantic action for production 584:
26051    ///
26052    /// `LetStatement: Let Identifier Colon LetStatementOpt /* Option */ ArrayType Equ Expression Semicolon;`
26053    ///
26054    #[parol_runtime::function_name::named]
26055    fn let_statement(
26056        &mut self,
26057        _let: &ParseTreeType<'t>,
26058        _identifier: &ParseTreeType<'t>,
26059        _colon: &ParseTreeType<'t>,
26060        _let_statement_opt: &ParseTreeType<'t>,
26061        _array_type: &ParseTreeType<'t>,
26062        _equ: &ParseTreeType<'t>,
26063        _expression: &ParseTreeType<'t>,
26064        _semicolon: &ParseTreeType<'t>,
26065    ) -> Result<()> {
26066        let context = function_name!();
26067        trace!("{}", self.trace_item_stack(context));
26068        let semicolon = pop_item!(self, semicolon, Semicolon, context);
26069        let expression = pop_item!(self, expression, Expression, context);
26070        let equ = pop_item!(self, equ, Equ, context);
26071        let array_type = pop_item!(self, array_type, ArrayType, context);
26072        let let_statement_opt = pop_item!(self, let_statement_opt, LetStatementOpt, context);
26073        let colon = pop_item!(self, colon, Colon, context);
26074        let identifier = pop_item!(self, identifier, Identifier, context);
26075        let r#let = pop_item!(self, r#let, Let, context);
26076        let let_statement_built = LetStatement {
26077            r#let: Box::new(r#let),
26078            identifier: Box::new(identifier),
26079            colon: Box::new(colon),
26080            let_statement_opt,
26081            array_type: Box::new(array_type),
26082            equ: Box::new(equ),
26083            expression: Box::new(expression),
26084            semicolon: Box::new(semicolon),
26085        };
26086        // Calling user action here
26087        self.user_grammar.let_statement(&let_statement_built)?;
26088        self.push(ASTType::LetStatement(let_statement_built), context);
26089        Ok(())
26090    }
26091
26092    /// Semantic action for production 585:
26093    ///
26094    /// `LetStatementOpt /* Option<T>::Some */: ClockDomain;`
26095    ///
26096    #[parol_runtime::function_name::named]
26097    fn let_statement_opt_0(&mut self, _clock_domain: &ParseTreeType<'t>) -> Result<()> {
26098        let context = function_name!();
26099        trace!("{}", self.trace_item_stack(context));
26100        let clock_domain = pop_item!(self, clock_domain, ClockDomain, context);
26101        let let_statement_opt_0_built = LetStatementOpt {
26102            clock_domain: Box::new(clock_domain),
26103        };
26104        self.push(
26105            ASTType::LetStatementOpt(Some(let_statement_opt_0_built)),
26106            context,
26107        );
26108        Ok(())
26109    }
26110
26111    /// Semantic action for production 586:
26112    ///
26113    /// `LetStatementOpt /* Option<T>::None */: ;`
26114    ///
26115    #[parol_runtime::function_name::named]
26116    fn let_statement_opt_1(&mut self) -> Result<()> {
26117        let context = function_name!();
26118        trace!("{}", self.trace_item_stack(context));
26119        self.push(ASTType::LetStatementOpt(None), context);
26120        Ok(())
26121    }
26122
26123    /// Semantic action for production 587:
26124    ///
26125    /// `IdentifierStatement: ExpressionIdentifier IdentifierStatementGroup Semicolon;`
26126    ///
26127    #[parol_runtime::function_name::named]
26128    fn identifier_statement(
26129        &mut self,
26130        _expression_identifier: &ParseTreeType<'t>,
26131        _identifier_statement_group: &ParseTreeType<'t>,
26132        _semicolon: &ParseTreeType<'t>,
26133    ) -> Result<()> {
26134        let context = function_name!();
26135        trace!("{}", self.trace_item_stack(context));
26136        let semicolon = pop_item!(self, semicolon, Semicolon, context);
26137        let identifier_statement_group = pop_item!(
26138            self,
26139            identifier_statement_group,
26140            IdentifierStatementGroup,
26141            context
26142        );
26143        let expression_identifier =
26144            pop_item!(self, expression_identifier, ExpressionIdentifier, context);
26145        let identifier_statement_built = IdentifierStatement {
26146            expression_identifier: Box::new(expression_identifier),
26147            identifier_statement_group: Box::new(identifier_statement_group),
26148            semicolon: Box::new(semicolon),
26149        };
26150        // Calling user action here
26151        self.user_grammar
26152            .identifier_statement(&identifier_statement_built)?;
26153        self.push(
26154            ASTType::IdentifierStatement(identifier_statement_built),
26155            context,
26156        );
26157        Ok(())
26158    }
26159
26160    /// Semantic action for production 588:
26161    ///
26162    /// `IdentifierStatementGroup: FunctionCall;`
26163    ///
26164    #[parol_runtime::function_name::named]
26165    fn identifier_statement_group_0(&mut self, _function_call: &ParseTreeType<'t>) -> Result<()> {
26166        let context = function_name!();
26167        trace!("{}", self.trace_item_stack(context));
26168        let function_call = pop_item!(self, function_call, FunctionCall, context);
26169        let identifier_statement_group_0_built = IdentifierStatementGroupFunctionCall {
26170            function_call: Box::new(function_call),
26171        };
26172        let identifier_statement_group_0_built =
26173            IdentifierStatementGroup::FunctionCall(identifier_statement_group_0_built);
26174        self.push(
26175            ASTType::IdentifierStatementGroup(identifier_statement_group_0_built),
26176            context,
26177        );
26178        Ok(())
26179    }
26180
26181    /// Semantic action for production 589:
26182    ///
26183    /// `IdentifierStatementGroup: Assignment;`
26184    ///
26185    #[parol_runtime::function_name::named]
26186    fn identifier_statement_group_1(&mut self, _assignment: &ParseTreeType<'t>) -> Result<()> {
26187        let context = function_name!();
26188        trace!("{}", self.trace_item_stack(context));
26189        let assignment = pop_item!(self, assignment, Assignment, context);
26190        let identifier_statement_group_1_built = IdentifierStatementGroupAssignment {
26191            assignment: Box::new(assignment),
26192        };
26193        let identifier_statement_group_1_built =
26194            IdentifierStatementGroup::Assignment(identifier_statement_group_1_built);
26195        self.push(
26196            ASTType::IdentifierStatementGroup(identifier_statement_group_1_built),
26197            context,
26198        );
26199        Ok(())
26200    }
26201
26202    /// Semantic action for production 590:
26203    ///
26204    /// `Assignment: AssignmentGroup Expression;`
26205    ///
26206    #[parol_runtime::function_name::named]
26207    fn assignment(
26208        &mut self,
26209        _assignment_group: &ParseTreeType<'t>,
26210        _expression: &ParseTreeType<'t>,
26211    ) -> Result<()> {
26212        let context = function_name!();
26213        trace!("{}", self.trace_item_stack(context));
26214        let expression = pop_item!(self, expression, Expression, context);
26215        let assignment_group = pop_item!(self, assignment_group, AssignmentGroup, context);
26216        let assignment_built = Assignment {
26217            assignment_group: Box::new(assignment_group),
26218            expression: Box::new(expression),
26219        };
26220        // Calling user action here
26221        self.user_grammar.assignment(&assignment_built)?;
26222        self.push(ASTType::Assignment(assignment_built), context);
26223        Ok(())
26224    }
26225
26226    /// Semantic action for production 591:
26227    ///
26228    /// `AssignmentGroup: Equ;`
26229    ///
26230    #[parol_runtime::function_name::named]
26231    fn assignment_group_0(&mut self, _equ: &ParseTreeType<'t>) -> Result<()> {
26232        let context = function_name!();
26233        trace!("{}", self.trace_item_stack(context));
26234        let equ = pop_item!(self, equ, Equ, context);
26235        let assignment_group_0_built = AssignmentGroupEqu { equ: Box::new(equ) };
26236        let assignment_group_0_built = AssignmentGroup::Equ(assignment_group_0_built);
26237        self.push(ASTType::AssignmentGroup(assignment_group_0_built), context);
26238        Ok(())
26239    }
26240
26241    /// Semantic action for production 592:
26242    ///
26243    /// `AssignmentGroup: AssignmentOperator;`
26244    ///
26245    #[parol_runtime::function_name::named]
26246    fn assignment_group_1(&mut self, _assignment_operator: &ParseTreeType<'t>) -> Result<()> {
26247        let context = function_name!();
26248        trace!("{}", self.trace_item_stack(context));
26249        let assignment_operator = pop_item!(self, assignment_operator, AssignmentOperator, context);
26250        let assignment_group_1_built = AssignmentGroupAssignmentOperator {
26251            assignment_operator: Box::new(assignment_operator),
26252        };
26253        let assignment_group_1_built =
26254            AssignmentGroup::AssignmentOperator(assignment_group_1_built);
26255        self.push(ASTType::AssignmentGroup(assignment_group_1_built), context);
26256        Ok(())
26257    }
26258
26259    /// Semantic action for production 593:
26260    ///
26261    /// `IfStatement: If Expression StatementBlock IfStatementList /* Vec */ IfStatementOpt /* Option */;`
26262    ///
26263    #[parol_runtime::function_name::named]
26264    fn if_statement(
26265        &mut self,
26266        _if: &ParseTreeType<'t>,
26267        _expression: &ParseTreeType<'t>,
26268        _statement_block: &ParseTreeType<'t>,
26269        _if_statement_list: &ParseTreeType<'t>,
26270        _if_statement_opt: &ParseTreeType<'t>,
26271    ) -> Result<()> {
26272        let context = function_name!();
26273        trace!("{}", self.trace_item_stack(context));
26274        let if_statement_opt = pop_item!(self, if_statement_opt, IfStatementOpt, context);
26275        let if_statement_list =
26276            pop_and_reverse_item!(self, if_statement_list, IfStatementList, context);
26277        let statement_block = pop_item!(self, statement_block, StatementBlock, context);
26278        let expression = pop_item!(self, expression, Expression, context);
26279        let r#if = pop_item!(self, r#if, If, context);
26280        let if_statement_built = IfStatement {
26281            r#if: Box::new(r#if),
26282            expression: Box::new(expression),
26283            statement_block: Box::new(statement_block),
26284            if_statement_list,
26285            if_statement_opt,
26286        };
26287        // Calling user action here
26288        self.user_grammar.if_statement(&if_statement_built)?;
26289        self.push(ASTType::IfStatement(if_statement_built), context);
26290        Ok(())
26291    }
26292
26293    /// Semantic action for production 594:
26294    ///
26295    /// `IfStatementList /* Vec<T>::Push */: Else If Expression StatementBlock IfStatementList;`
26296    ///
26297    #[parol_runtime::function_name::named]
26298    fn if_statement_list_0(
26299        &mut self,
26300        _else: &ParseTreeType<'t>,
26301        _if: &ParseTreeType<'t>,
26302        _expression: &ParseTreeType<'t>,
26303        _statement_block: &ParseTreeType<'t>,
26304        _if_statement_list: &ParseTreeType<'t>,
26305    ) -> Result<()> {
26306        let context = function_name!();
26307        trace!("{}", self.trace_item_stack(context));
26308        let mut if_statement_list = pop_item!(self, if_statement_list, IfStatementList, context);
26309        let statement_block = pop_item!(self, statement_block, StatementBlock, context);
26310        let expression = pop_item!(self, expression, Expression, context);
26311        let r#if = pop_item!(self, r#if, If, context);
26312        let r#else = pop_item!(self, r#else, Else, context);
26313        let if_statement_list_0_built = IfStatementList {
26314            statement_block: Box::new(statement_block),
26315            expression: Box::new(expression),
26316            r#if: Box::new(r#if),
26317            r#else: Box::new(r#else),
26318        };
26319        // Add an element to the vector
26320        if_statement_list.push(if_statement_list_0_built);
26321        self.push(ASTType::IfStatementList(if_statement_list), context);
26322        Ok(())
26323    }
26324
26325    /// Semantic action for production 595:
26326    ///
26327    /// `IfStatementList /* Vec<T>::New */: ;`
26328    ///
26329    #[parol_runtime::function_name::named]
26330    fn if_statement_list_1(&mut self) -> Result<()> {
26331        let context = function_name!();
26332        trace!("{}", self.trace_item_stack(context));
26333        let if_statement_list_1_built = Vec::new();
26334        self.push(ASTType::IfStatementList(if_statement_list_1_built), context);
26335        Ok(())
26336    }
26337
26338    /// Semantic action for production 596:
26339    ///
26340    /// `IfStatementOpt /* Option<T>::Some */: Else StatementBlock;`
26341    ///
26342    #[parol_runtime::function_name::named]
26343    fn if_statement_opt_0(
26344        &mut self,
26345        _else: &ParseTreeType<'t>,
26346        _statement_block: &ParseTreeType<'t>,
26347    ) -> Result<()> {
26348        let context = function_name!();
26349        trace!("{}", self.trace_item_stack(context));
26350        let statement_block = pop_item!(self, statement_block, StatementBlock, context);
26351        let r#else = pop_item!(self, r#else, Else, context);
26352        let if_statement_opt_0_built = IfStatementOpt {
26353            r#else: Box::new(r#else),
26354            statement_block: Box::new(statement_block),
26355        };
26356        self.push(
26357            ASTType::IfStatementOpt(Some(if_statement_opt_0_built)),
26358            context,
26359        );
26360        Ok(())
26361    }
26362
26363    /// Semantic action for production 597:
26364    ///
26365    /// `IfStatementOpt /* Option<T>::None */: ;`
26366    ///
26367    #[parol_runtime::function_name::named]
26368    fn if_statement_opt_1(&mut self) -> Result<()> {
26369        let context = function_name!();
26370        trace!("{}", self.trace_item_stack(context));
26371        self.push(ASTType::IfStatementOpt(None), context);
26372        Ok(())
26373    }
26374
26375    /// Semantic action for production 598:
26376    ///
26377    /// `IfResetStatement: IfReset StatementBlock IfResetStatementList /* Vec */ IfResetStatementOpt /* Option */;`
26378    ///
26379    #[parol_runtime::function_name::named]
26380    fn if_reset_statement(
26381        &mut self,
26382        _if_reset: &ParseTreeType<'t>,
26383        _statement_block: &ParseTreeType<'t>,
26384        _if_reset_statement_list: &ParseTreeType<'t>,
26385        _if_reset_statement_opt: &ParseTreeType<'t>,
26386    ) -> Result<()> {
26387        let context = function_name!();
26388        trace!("{}", self.trace_item_stack(context));
26389        let if_reset_statement_opt =
26390            pop_item!(self, if_reset_statement_opt, IfResetStatementOpt, context);
26391        let if_reset_statement_list =
26392            pop_and_reverse_item!(self, if_reset_statement_list, IfResetStatementList, context);
26393        let statement_block = pop_item!(self, statement_block, StatementBlock, context);
26394        let if_reset = pop_item!(self, if_reset, IfReset, context);
26395        let if_reset_statement_built = IfResetStatement {
26396            if_reset: Box::new(if_reset),
26397            statement_block: Box::new(statement_block),
26398            if_reset_statement_list,
26399            if_reset_statement_opt,
26400        };
26401        // Calling user action here
26402        self.user_grammar
26403            .if_reset_statement(&if_reset_statement_built)?;
26404        self.push(ASTType::IfResetStatement(if_reset_statement_built), context);
26405        Ok(())
26406    }
26407
26408    /// Semantic action for production 599:
26409    ///
26410    /// `IfResetStatementList /* Vec<T>::Push */: Else If Expression StatementBlock IfResetStatementList;`
26411    ///
26412    #[parol_runtime::function_name::named]
26413    fn if_reset_statement_list_0(
26414        &mut self,
26415        _else: &ParseTreeType<'t>,
26416        _if: &ParseTreeType<'t>,
26417        _expression: &ParseTreeType<'t>,
26418        _statement_block: &ParseTreeType<'t>,
26419        _if_reset_statement_list: &ParseTreeType<'t>,
26420    ) -> Result<()> {
26421        let context = function_name!();
26422        trace!("{}", self.trace_item_stack(context));
26423        let mut if_reset_statement_list =
26424            pop_item!(self, if_reset_statement_list, IfResetStatementList, context);
26425        let statement_block = pop_item!(self, statement_block, StatementBlock, context);
26426        let expression = pop_item!(self, expression, Expression, context);
26427        let r#if = pop_item!(self, r#if, If, context);
26428        let r#else = pop_item!(self, r#else, Else, context);
26429        let if_reset_statement_list_0_built = IfResetStatementList {
26430            statement_block: Box::new(statement_block),
26431            expression: Box::new(expression),
26432            r#if: Box::new(r#if),
26433            r#else: Box::new(r#else),
26434        };
26435        // Add an element to the vector
26436        if_reset_statement_list.push(if_reset_statement_list_0_built);
26437        self.push(
26438            ASTType::IfResetStatementList(if_reset_statement_list),
26439            context,
26440        );
26441        Ok(())
26442    }
26443
26444    /// Semantic action for production 600:
26445    ///
26446    /// `IfResetStatementList /* Vec<T>::New */: ;`
26447    ///
26448    #[parol_runtime::function_name::named]
26449    fn if_reset_statement_list_1(&mut self) -> Result<()> {
26450        let context = function_name!();
26451        trace!("{}", self.trace_item_stack(context));
26452        let if_reset_statement_list_1_built = Vec::new();
26453        self.push(
26454            ASTType::IfResetStatementList(if_reset_statement_list_1_built),
26455            context,
26456        );
26457        Ok(())
26458    }
26459
26460    /// Semantic action for production 601:
26461    ///
26462    /// `IfResetStatementOpt /* Option<T>::Some */: Else StatementBlock;`
26463    ///
26464    #[parol_runtime::function_name::named]
26465    fn if_reset_statement_opt_0(
26466        &mut self,
26467        _else: &ParseTreeType<'t>,
26468        _statement_block: &ParseTreeType<'t>,
26469    ) -> Result<()> {
26470        let context = function_name!();
26471        trace!("{}", self.trace_item_stack(context));
26472        let statement_block = pop_item!(self, statement_block, StatementBlock, context);
26473        let r#else = pop_item!(self, r#else, Else, context);
26474        let if_reset_statement_opt_0_built = IfResetStatementOpt {
26475            r#else: Box::new(r#else),
26476            statement_block: Box::new(statement_block),
26477        };
26478        self.push(
26479            ASTType::IfResetStatementOpt(Some(if_reset_statement_opt_0_built)),
26480            context,
26481        );
26482        Ok(())
26483    }
26484
26485    /// Semantic action for production 602:
26486    ///
26487    /// `IfResetStatementOpt /* Option<T>::None */: ;`
26488    ///
26489    #[parol_runtime::function_name::named]
26490    fn if_reset_statement_opt_1(&mut self) -> Result<()> {
26491        let context = function_name!();
26492        trace!("{}", self.trace_item_stack(context));
26493        self.push(ASTType::IfResetStatementOpt(None), context);
26494        Ok(())
26495    }
26496
26497    /// Semantic action for production 603:
26498    ///
26499    /// `ReturnStatement: Return Expression Semicolon;`
26500    ///
26501    #[parol_runtime::function_name::named]
26502    fn return_statement(
26503        &mut self,
26504        _return: &ParseTreeType<'t>,
26505        _expression: &ParseTreeType<'t>,
26506        _semicolon: &ParseTreeType<'t>,
26507    ) -> Result<()> {
26508        let context = function_name!();
26509        trace!("{}", self.trace_item_stack(context));
26510        let semicolon = pop_item!(self, semicolon, Semicolon, context);
26511        let expression = pop_item!(self, expression, Expression, context);
26512        let r#return = pop_item!(self, r#return, Return, context);
26513        let return_statement_built = ReturnStatement {
26514            r#return: Box::new(r#return),
26515            expression: Box::new(expression),
26516            semicolon: Box::new(semicolon),
26517        };
26518        // Calling user action here
26519        self.user_grammar
26520            .return_statement(&return_statement_built)?;
26521        self.push(ASTType::ReturnStatement(return_statement_built), context);
26522        Ok(())
26523    }
26524
26525    /// Semantic action for production 604:
26526    ///
26527    /// `BreakStatement: Break Semicolon;`
26528    ///
26529    #[parol_runtime::function_name::named]
26530    fn break_statement(
26531        &mut self,
26532        _break: &ParseTreeType<'t>,
26533        _semicolon: &ParseTreeType<'t>,
26534    ) -> Result<()> {
26535        let context = function_name!();
26536        trace!("{}", self.trace_item_stack(context));
26537        let semicolon = pop_item!(self, semicolon, Semicolon, context);
26538        let r#break = pop_item!(self, r#break, Break, context);
26539        let break_statement_built = BreakStatement {
26540            r#break: Box::new(r#break),
26541            semicolon: Box::new(semicolon),
26542        };
26543        // Calling user action here
26544        self.user_grammar.break_statement(&break_statement_built)?;
26545        self.push(ASTType::BreakStatement(break_statement_built), context);
26546        Ok(())
26547    }
26548
26549    /// Semantic action for production 605:
26550    ///
26551    /// `ForStatement: For Identifier Colon ScalarType In Range ForStatementOpt /* Option */ StatementBlock;`
26552    ///
26553    #[parol_runtime::function_name::named]
26554    fn for_statement(
26555        &mut self,
26556        _for: &ParseTreeType<'t>,
26557        _identifier: &ParseTreeType<'t>,
26558        _colon: &ParseTreeType<'t>,
26559        _scalar_type: &ParseTreeType<'t>,
26560        _in: &ParseTreeType<'t>,
26561        _range: &ParseTreeType<'t>,
26562        _for_statement_opt: &ParseTreeType<'t>,
26563        _statement_block: &ParseTreeType<'t>,
26564    ) -> Result<()> {
26565        let context = function_name!();
26566        trace!("{}", self.trace_item_stack(context));
26567        let statement_block = pop_item!(self, statement_block, StatementBlock, context);
26568        let for_statement_opt = pop_item!(self, for_statement_opt, ForStatementOpt, context);
26569        let range = pop_item!(self, range, Range, context);
26570        let r#in = pop_item!(self, r#in, In, context);
26571        let scalar_type = pop_item!(self, scalar_type, ScalarType, context);
26572        let colon = pop_item!(self, colon, Colon, context);
26573        let identifier = pop_item!(self, identifier, Identifier, context);
26574        let r#for = pop_item!(self, r#for, For, context);
26575        let for_statement_built = ForStatement {
26576            r#for: Box::new(r#for),
26577            identifier: Box::new(identifier),
26578            colon: Box::new(colon),
26579            scalar_type: Box::new(scalar_type),
26580            r#in: Box::new(r#in),
26581            range: Box::new(range),
26582            for_statement_opt,
26583            statement_block: Box::new(statement_block),
26584        };
26585        // Calling user action here
26586        self.user_grammar.for_statement(&for_statement_built)?;
26587        self.push(ASTType::ForStatement(for_statement_built), context);
26588        Ok(())
26589    }
26590
26591    /// Semantic action for production 606:
26592    ///
26593    /// `ForStatementOpt /* Option<T>::Some */: Step AssignmentOperator Expression;`
26594    ///
26595    #[parol_runtime::function_name::named]
26596    fn for_statement_opt_0(
26597        &mut self,
26598        _step: &ParseTreeType<'t>,
26599        _assignment_operator: &ParseTreeType<'t>,
26600        _expression: &ParseTreeType<'t>,
26601    ) -> Result<()> {
26602        let context = function_name!();
26603        trace!("{}", self.trace_item_stack(context));
26604        let expression = pop_item!(self, expression, Expression, context);
26605        let assignment_operator = pop_item!(self, assignment_operator, AssignmentOperator, context);
26606        let step = pop_item!(self, step, Step, context);
26607        let for_statement_opt_0_built = ForStatementOpt {
26608            step: Box::new(step),
26609            assignment_operator: Box::new(assignment_operator),
26610            expression: Box::new(expression),
26611        };
26612        self.push(
26613            ASTType::ForStatementOpt(Some(for_statement_opt_0_built)),
26614            context,
26615        );
26616        Ok(())
26617    }
26618
26619    /// Semantic action for production 607:
26620    ///
26621    /// `ForStatementOpt /* Option<T>::None */: ;`
26622    ///
26623    #[parol_runtime::function_name::named]
26624    fn for_statement_opt_1(&mut self) -> Result<()> {
26625        let context = function_name!();
26626        trace!("{}", self.trace_item_stack(context));
26627        self.push(ASTType::ForStatementOpt(None), context);
26628        Ok(())
26629    }
26630
26631    /// Semantic action for production 608:
26632    ///
26633    /// `CaseStatement: Case Expression LBrace CaseStatementList /* Vec */ RBrace;`
26634    ///
26635    #[parol_runtime::function_name::named]
26636    fn case_statement(
26637        &mut self,
26638        _case: &ParseTreeType<'t>,
26639        _expression: &ParseTreeType<'t>,
26640        _l_brace: &ParseTreeType<'t>,
26641        _case_statement_list: &ParseTreeType<'t>,
26642        _r_brace: &ParseTreeType<'t>,
26643    ) -> Result<()> {
26644        let context = function_name!();
26645        trace!("{}", self.trace_item_stack(context));
26646        let r_brace = pop_item!(self, r_brace, RBrace, context);
26647        let case_statement_list =
26648            pop_and_reverse_item!(self, case_statement_list, CaseStatementList, context);
26649        let l_brace = pop_item!(self, l_brace, LBrace, context);
26650        let expression = pop_item!(self, expression, Expression, context);
26651        let case = pop_item!(self, case, Case, context);
26652        let case_statement_built = CaseStatement {
26653            case: Box::new(case),
26654            expression: Box::new(expression),
26655            l_brace: Box::new(l_brace),
26656            case_statement_list,
26657            r_brace: Box::new(r_brace),
26658        };
26659        // Calling user action here
26660        self.user_grammar.case_statement(&case_statement_built)?;
26661        self.push(ASTType::CaseStatement(case_statement_built), context);
26662        Ok(())
26663    }
26664
26665    /// Semantic action for production 609:
26666    ///
26667    /// `CaseStatementList /* Vec<T>::Push */: CaseItem CaseStatementList;`
26668    ///
26669    #[parol_runtime::function_name::named]
26670    fn case_statement_list_0(
26671        &mut self,
26672        _case_item: &ParseTreeType<'t>,
26673        _case_statement_list: &ParseTreeType<'t>,
26674    ) -> Result<()> {
26675        let context = function_name!();
26676        trace!("{}", self.trace_item_stack(context));
26677        let mut case_statement_list =
26678            pop_item!(self, case_statement_list, CaseStatementList, context);
26679        let case_item = pop_item!(self, case_item, CaseItem, context);
26680        let case_statement_list_0_built = CaseStatementList {
26681            case_item: Box::new(case_item),
26682        };
26683        // Add an element to the vector
26684        case_statement_list.push(case_statement_list_0_built);
26685        self.push(ASTType::CaseStatementList(case_statement_list), context);
26686        Ok(())
26687    }
26688
26689    /// Semantic action for production 610:
26690    ///
26691    /// `CaseStatementList /* Vec<T>::New */: ;`
26692    ///
26693    #[parol_runtime::function_name::named]
26694    fn case_statement_list_1(&mut self) -> Result<()> {
26695        let context = function_name!();
26696        trace!("{}", self.trace_item_stack(context));
26697        let case_statement_list_1_built = Vec::new();
26698        self.push(
26699            ASTType::CaseStatementList(case_statement_list_1_built),
26700            context,
26701        );
26702        Ok(())
26703    }
26704
26705    /// Semantic action for production 611:
26706    ///
26707    /// `CaseItem: CaseItemGroup Colon CaseItemGroup0;`
26708    ///
26709    #[parol_runtime::function_name::named]
26710    fn case_item(
26711        &mut self,
26712        _case_item_group: &ParseTreeType<'t>,
26713        _colon: &ParseTreeType<'t>,
26714        _case_item_group0: &ParseTreeType<'t>,
26715    ) -> Result<()> {
26716        let context = function_name!();
26717        trace!("{}", self.trace_item_stack(context));
26718        let case_item_group0 = pop_item!(self, case_item_group0, CaseItemGroup0, context);
26719        let colon = pop_item!(self, colon, Colon, context);
26720        let case_item_group = pop_item!(self, case_item_group, CaseItemGroup, context);
26721        let case_item_built = CaseItem {
26722            case_item_group: Box::new(case_item_group),
26723            colon: Box::new(colon),
26724            case_item_group0: Box::new(case_item_group0),
26725        };
26726        // Calling user action here
26727        self.user_grammar.case_item(&case_item_built)?;
26728        self.push(ASTType::CaseItem(case_item_built), context);
26729        Ok(())
26730    }
26731
26732    /// Semantic action for production 612:
26733    ///
26734    /// `CaseItemGroup0: Statement;`
26735    ///
26736    #[parol_runtime::function_name::named]
26737    fn case_item_group0_0(&mut self, _statement: &ParseTreeType<'t>) -> Result<()> {
26738        let context = function_name!();
26739        trace!("{}", self.trace_item_stack(context));
26740        let statement = pop_item!(self, statement, Statement, context);
26741        let case_item_group0_0_built = CaseItemGroup0Statement {
26742            statement: Box::new(statement),
26743        };
26744        let case_item_group0_0_built = CaseItemGroup0::Statement(case_item_group0_0_built);
26745        self.push(ASTType::CaseItemGroup0(case_item_group0_0_built), context);
26746        Ok(())
26747    }
26748
26749    /// Semantic action for production 613:
26750    ///
26751    /// `CaseItemGroup0: StatementBlock;`
26752    ///
26753    #[parol_runtime::function_name::named]
26754    fn case_item_group0_1(&mut self, _statement_block: &ParseTreeType<'t>) -> Result<()> {
26755        let context = function_name!();
26756        trace!("{}", self.trace_item_stack(context));
26757        let statement_block = pop_item!(self, statement_block, StatementBlock, context);
26758        let case_item_group0_1_built = CaseItemGroup0StatementBlock {
26759            statement_block: Box::new(statement_block),
26760        };
26761        let case_item_group0_1_built = CaseItemGroup0::StatementBlock(case_item_group0_1_built);
26762        self.push(ASTType::CaseItemGroup0(case_item_group0_1_built), context);
26763        Ok(())
26764    }
26765
26766    /// Semantic action for production 614:
26767    ///
26768    /// `CaseItemGroup: CaseCondition;`
26769    ///
26770    #[parol_runtime::function_name::named]
26771    fn case_item_group_0(&mut self, _case_condition: &ParseTreeType<'t>) -> Result<()> {
26772        let context = function_name!();
26773        trace!("{}", self.trace_item_stack(context));
26774        let case_condition = pop_item!(self, case_condition, CaseCondition, context);
26775        let case_item_group_0_built = CaseItemGroupCaseCondition {
26776            case_condition: Box::new(case_condition),
26777        };
26778        let case_item_group_0_built = CaseItemGroup::CaseCondition(case_item_group_0_built);
26779        self.push(ASTType::CaseItemGroup(case_item_group_0_built), context);
26780        Ok(())
26781    }
26782
26783    /// Semantic action for production 615:
26784    ///
26785    /// `CaseItemGroup: Defaul;`
26786    ///
26787    #[parol_runtime::function_name::named]
26788    fn case_item_group_1(&mut self, _defaul: &ParseTreeType<'t>) -> Result<()> {
26789        let context = function_name!();
26790        trace!("{}", self.trace_item_stack(context));
26791        let defaul = pop_item!(self, defaul, Defaul, context);
26792        let case_item_group_1_built = CaseItemGroupDefaul {
26793            defaul: Box::new(defaul),
26794        };
26795        let case_item_group_1_built = CaseItemGroup::Defaul(case_item_group_1_built);
26796        self.push(ASTType::CaseItemGroup(case_item_group_1_built), context);
26797        Ok(())
26798    }
26799
26800    /// Semantic action for production 616:
26801    ///
26802    /// `CaseCondition: RangeItem CaseConditionList /* Vec */;`
26803    ///
26804    #[parol_runtime::function_name::named]
26805    fn case_condition(
26806        &mut self,
26807        _range_item: &ParseTreeType<'t>,
26808        _case_condition_list: &ParseTreeType<'t>,
26809    ) -> Result<()> {
26810        let context = function_name!();
26811        trace!("{}", self.trace_item_stack(context));
26812        let case_condition_list =
26813            pop_and_reverse_item!(self, case_condition_list, CaseConditionList, context);
26814        let range_item = pop_item!(self, range_item, RangeItem, context);
26815        let case_condition_built = CaseCondition {
26816            range_item: Box::new(range_item),
26817            case_condition_list,
26818        };
26819        // Calling user action here
26820        self.user_grammar.case_condition(&case_condition_built)?;
26821        self.push(ASTType::CaseCondition(case_condition_built), context);
26822        Ok(())
26823    }
26824
26825    /// Semantic action for production 617:
26826    ///
26827    /// `CaseConditionList /* Vec<T>::Push */: Comma RangeItem CaseConditionList;`
26828    ///
26829    #[parol_runtime::function_name::named]
26830    fn case_condition_list_0(
26831        &mut self,
26832        _comma: &ParseTreeType<'t>,
26833        _range_item: &ParseTreeType<'t>,
26834        _case_condition_list: &ParseTreeType<'t>,
26835    ) -> Result<()> {
26836        let context = function_name!();
26837        trace!("{}", self.trace_item_stack(context));
26838        let mut case_condition_list =
26839            pop_item!(self, case_condition_list, CaseConditionList, context);
26840        let range_item = pop_item!(self, range_item, RangeItem, context);
26841        let comma = pop_item!(self, comma, Comma, context);
26842        let case_condition_list_0_built = CaseConditionList {
26843            range_item: Box::new(range_item),
26844            comma: Box::new(comma),
26845        };
26846        // Add an element to the vector
26847        case_condition_list.push(case_condition_list_0_built);
26848        self.push(ASTType::CaseConditionList(case_condition_list), context);
26849        Ok(())
26850    }
26851
26852    /// Semantic action for production 618:
26853    ///
26854    /// `CaseConditionList /* Vec<T>::New */: ;`
26855    ///
26856    #[parol_runtime::function_name::named]
26857    fn case_condition_list_1(&mut self) -> Result<()> {
26858        let context = function_name!();
26859        trace!("{}", self.trace_item_stack(context));
26860        let case_condition_list_1_built = Vec::new();
26861        self.push(
26862            ASTType::CaseConditionList(case_condition_list_1_built),
26863            context,
26864        );
26865        Ok(())
26866    }
26867
26868    /// Semantic action for production 619:
26869    ///
26870    /// `SwitchStatement: Switch LBrace SwitchStatementList /* Vec */ RBrace;`
26871    ///
26872    #[parol_runtime::function_name::named]
26873    fn switch_statement(
26874        &mut self,
26875        _switch: &ParseTreeType<'t>,
26876        _l_brace: &ParseTreeType<'t>,
26877        _switch_statement_list: &ParseTreeType<'t>,
26878        _r_brace: &ParseTreeType<'t>,
26879    ) -> Result<()> {
26880        let context = function_name!();
26881        trace!("{}", self.trace_item_stack(context));
26882        let r_brace = pop_item!(self, r_brace, RBrace, context);
26883        let switch_statement_list =
26884            pop_and_reverse_item!(self, switch_statement_list, SwitchStatementList, context);
26885        let l_brace = pop_item!(self, l_brace, LBrace, context);
26886        let switch = pop_item!(self, switch, Switch, context);
26887        let switch_statement_built = SwitchStatement {
26888            switch: Box::new(switch),
26889            l_brace: Box::new(l_brace),
26890            switch_statement_list,
26891            r_brace: Box::new(r_brace),
26892        };
26893        // Calling user action here
26894        self.user_grammar
26895            .switch_statement(&switch_statement_built)?;
26896        self.push(ASTType::SwitchStatement(switch_statement_built), context);
26897        Ok(())
26898    }
26899
26900    /// Semantic action for production 620:
26901    ///
26902    /// `SwitchStatementList /* Vec<T>::Push */: SwitchItem SwitchStatementList;`
26903    ///
26904    #[parol_runtime::function_name::named]
26905    fn switch_statement_list_0(
26906        &mut self,
26907        _switch_item: &ParseTreeType<'t>,
26908        _switch_statement_list: &ParseTreeType<'t>,
26909    ) -> Result<()> {
26910        let context = function_name!();
26911        trace!("{}", self.trace_item_stack(context));
26912        let mut switch_statement_list =
26913            pop_item!(self, switch_statement_list, SwitchStatementList, context);
26914        let switch_item = pop_item!(self, switch_item, SwitchItem, context);
26915        let switch_statement_list_0_built = SwitchStatementList {
26916            switch_item: Box::new(switch_item),
26917        };
26918        // Add an element to the vector
26919        switch_statement_list.push(switch_statement_list_0_built);
26920        self.push(ASTType::SwitchStatementList(switch_statement_list), context);
26921        Ok(())
26922    }
26923
26924    /// Semantic action for production 621:
26925    ///
26926    /// `SwitchStatementList /* Vec<T>::New */: ;`
26927    ///
26928    #[parol_runtime::function_name::named]
26929    fn switch_statement_list_1(&mut self) -> Result<()> {
26930        let context = function_name!();
26931        trace!("{}", self.trace_item_stack(context));
26932        let switch_statement_list_1_built = Vec::new();
26933        self.push(
26934            ASTType::SwitchStatementList(switch_statement_list_1_built),
26935            context,
26936        );
26937        Ok(())
26938    }
26939
26940    /// Semantic action for production 622:
26941    ///
26942    /// `SwitchItem: SwitchItemGroup Colon SwitchItemGroup0;`
26943    ///
26944    #[parol_runtime::function_name::named]
26945    fn switch_item(
26946        &mut self,
26947        _switch_item_group: &ParseTreeType<'t>,
26948        _colon: &ParseTreeType<'t>,
26949        _switch_item_group0: &ParseTreeType<'t>,
26950    ) -> Result<()> {
26951        let context = function_name!();
26952        trace!("{}", self.trace_item_stack(context));
26953        let switch_item_group0 = pop_item!(self, switch_item_group0, SwitchItemGroup0, context);
26954        let colon = pop_item!(self, colon, Colon, context);
26955        let switch_item_group = pop_item!(self, switch_item_group, SwitchItemGroup, context);
26956        let switch_item_built = SwitchItem {
26957            switch_item_group: Box::new(switch_item_group),
26958            colon: Box::new(colon),
26959            switch_item_group0: Box::new(switch_item_group0),
26960        };
26961        // Calling user action here
26962        self.user_grammar.switch_item(&switch_item_built)?;
26963        self.push(ASTType::SwitchItem(switch_item_built), context);
26964        Ok(())
26965    }
26966
26967    /// Semantic action for production 623:
26968    ///
26969    /// `SwitchItemGroup0: Statement;`
26970    ///
26971    #[parol_runtime::function_name::named]
26972    fn switch_item_group0_0(&mut self, _statement: &ParseTreeType<'t>) -> Result<()> {
26973        let context = function_name!();
26974        trace!("{}", self.trace_item_stack(context));
26975        let statement = pop_item!(self, statement, Statement, context);
26976        let switch_item_group0_0_built = SwitchItemGroup0Statement {
26977            statement: Box::new(statement),
26978        };
26979        let switch_item_group0_0_built = SwitchItemGroup0::Statement(switch_item_group0_0_built);
26980        self.push(
26981            ASTType::SwitchItemGroup0(switch_item_group0_0_built),
26982            context,
26983        );
26984        Ok(())
26985    }
26986
26987    /// Semantic action for production 624:
26988    ///
26989    /// `SwitchItemGroup0: StatementBlock;`
26990    ///
26991    #[parol_runtime::function_name::named]
26992    fn switch_item_group0_1(&mut self, _statement_block: &ParseTreeType<'t>) -> Result<()> {
26993        let context = function_name!();
26994        trace!("{}", self.trace_item_stack(context));
26995        let statement_block = pop_item!(self, statement_block, StatementBlock, context);
26996        let switch_item_group0_1_built = SwitchItemGroup0StatementBlock {
26997            statement_block: Box::new(statement_block),
26998        };
26999        let switch_item_group0_1_built =
27000            SwitchItemGroup0::StatementBlock(switch_item_group0_1_built);
27001        self.push(
27002            ASTType::SwitchItemGroup0(switch_item_group0_1_built),
27003            context,
27004        );
27005        Ok(())
27006    }
27007
27008    /// Semantic action for production 625:
27009    ///
27010    /// `SwitchItemGroup: SwitchCondition;`
27011    ///
27012    #[parol_runtime::function_name::named]
27013    fn switch_item_group_0(&mut self, _switch_condition: &ParseTreeType<'t>) -> Result<()> {
27014        let context = function_name!();
27015        trace!("{}", self.trace_item_stack(context));
27016        let switch_condition = pop_item!(self, switch_condition, SwitchCondition, context);
27017        let switch_item_group_0_built = SwitchItemGroupSwitchCondition {
27018            switch_condition: Box::new(switch_condition),
27019        };
27020        let switch_item_group_0_built = SwitchItemGroup::SwitchCondition(switch_item_group_0_built);
27021        self.push(ASTType::SwitchItemGroup(switch_item_group_0_built), context);
27022        Ok(())
27023    }
27024
27025    /// Semantic action for production 626:
27026    ///
27027    /// `SwitchItemGroup: Defaul;`
27028    ///
27029    #[parol_runtime::function_name::named]
27030    fn switch_item_group_1(&mut self, _defaul: &ParseTreeType<'t>) -> Result<()> {
27031        let context = function_name!();
27032        trace!("{}", self.trace_item_stack(context));
27033        let defaul = pop_item!(self, defaul, Defaul, context);
27034        let switch_item_group_1_built = SwitchItemGroupDefaul {
27035            defaul: Box::new(defaul),
27036        };
27037        let switch_item_group_1_built = SwitchItemGroup::Defaul(switch_item_group_1_built);
27038        self.push(ASTType::SwitchItemGroup(switch_item_group_1_built), context);
27039        Ok(())
27040    }
27041
27042    /// Semantic action for production 627:
27043    ///
27044    /// `SwitchCondition: Expression SwitchConditionList /* Vec */;`
27045    ///
27046    #[parol_runtime::function_name::named]
27047    fn switch_condition(
27048        &mut self,
27049        _expression: &ParseTreeType<'t>,
27050        _switch_condition_list: &ParseTreeType<'t>,
27051    ) -> Result<()> {
27052        let context = function_name!();
27053        trace!("{}", self.trace_item_stack(context));
27054        let switch_condition_list =
27055            pop_and_reverse_item!(self, switch_condition_list, SwitchConditionList, context);
27056        let expression = pop_item!(self, expression, Expression, context);
27057        let switch_condition_built = SwitchCondition {
27058            expression: Box::new(expression),
27059            switch_condition_list,
27060        };
27061        // Calling user action here
27062        self.user_grammar
27063            .switch_condition(&switch_condition_built)?;
27064        self.push(ASTType::SwitchCondition(switch_condition_built), context);
27065        Ok(())
27066    }
27067
27068    /// Semantic action for production 628:
27069    ///
27070    /// `SwitchConditionList /* Vec<T>::Push */: Comma Expression SwitchConditionList;`
27071    ///
27072    #[parol_runtime::function_name::named]
27073    fn switch_condition_list_0(
27074        &mut self,
27075        _comma: &ParseTreeType<'t>,
27076        _expression: &ParseTreeType<'t>,
27077        _switch_condition_list: &ParseTreeType<'t>,
27078    ) -> Result<()> {
27079        let context = function_name!();
27080        trace!("{}", self.trace_item_stack(context));
27081        let mut switch_condition_list =
27082            pop_item!(self, switch_condition_list, SwitchConditionList, context);
27083        let expression = pop_item!(self, expression, Expression, context);
27084        let comma = pop_item!(self, comma, Comma, context);
27085        let switch_condition_list_0_built = SwitchConditionList {
27086            expression: Box::new(expression),
27087            comma: Box::new(comma),
27088        };
27089        // Add an element to the vector
27090        switch_condition_list.push(switch_condition_list_0_built);
27091        self.push(ASTType::SwitchConditionList(switch_condition_list), context);
27092        Ok(())
27093    }
27094
27095    /// Semantic action for production 629:
27096    ///
27097    /// `SwitchConditionList /* Vec<T>::New */: ;`
27098    ///
27099    #[parol_runtime::function_name::named]
27100    fn switch_condition_list_1(&mut self) -> Result<()> {
27101        let context = function_name!();
27102        trace!("{}", self.trace_item_stack(context));
27103        let switch_condition_list_1_built = Vec::new();
27104        self.push(
27105            ASTType::SwitchConditionList(switch_condition_list_1_built),
27106            context,
27107        );
27108        Ok(())
27109    }
27110
27111    /// Semantic action for production 630:
27112    ///
27113    /// `Attribute: Hash LBracket Identifier AttributeOpt /* Option */ RBracket;`
27114    ///
27115    #[parol_runtime::function_name::named]
27116    fn attribute(
27117        &mut self,
27118        _hash: &ParseTreeType<'t>,
27119        _l_bracket: &ParseTreeType<'t>,
27120        _identifier: &ParseTreeType<'t>,
27121        _attribute_opt: &ParseTreeType<'t>,
27122        _r_bracket: &ParseTreeType<'t>,
27123    ) -> Result<()> {
27124        let context = function_name!();
27125        trace!("{}", self.trace_item_stack(context));
27126        let r_bracket = pop_item!(self, r_bracket, RBracket, context);
27127        let attribute_opt = pop_item!(self, attribute_opt, AttributeOpt, context);
27128        let identifier = pop_item!(self, identifier, Identifier, context);
27129        let l_bracket = pop_item!(self, l_bracket, LBracket, context);
27130        let hash = pop_item!(self, hash, Hash, context);
27131        let attribute_built = Attribute {
27132            hash: Box::new(hash),
27133            l_bracket: Box::new(l_bracket),
27134            identifier: Box::new(identifier),
27135            attribute_opt,
27136            r_bracket: Box::new(r_bracket),
27137        };
27138        // Calling user action here
27139        self.user_grammar.attribute(&attribute_built)?;
27140        self.push(ASTType::Attribute(attribute_built), context);
27141        Ok(())
27142    }
27143
27144    /// Semantic action for production 631:
27145    ///
27146    /// `AttributeOpt /* Option<T>::Some */: LParen AttributeList RParen;`
27147    ///
27148    #[parol_runtime::function_name::named]
27149    fn attribute_opt_0(
27150        &mut self,
27151        _l_paren: &ParseTreeType<'t>,
27152        _attribute_list: &ParseTreeType<'t>,
27153        _r_paren: &ParseTreeType<'t>,
27154    ) -> Result<()> {
27155        let context = function_name!();
27156        trace!("{}", self.trace_item_stack(context));
27157        let r_paren = pop_item!(self, r_paren, RParen, context);
27158        let attribute_list = pop_item!(self, attribute_list, AttributeList, context);
27159        let l_paren = pop_item!(self, l_paren, LParen, context);
27160        let attribute_opt_0_built = AttributeOpt {
27161            l_paren: Box::new(l_paren),
27162            attribute_list: Box::new(attribute_list),
27163            r_paren: Box::new(r_paren),
27164        };
27165        self.push(ASTType::AttributeOpt(Some(attribute_opt_0_built)), context);
27166        Ok(())
27167    }
27168
27169    /// Semantic action for production 632:
27170    ///
27171    /// `AttributeOpt /* Option<T>::None */: ;`
27172    ///
27173    #[parol_runtime::function_name::named]
27174    fn attribute_opt_1(&mut self) -> Result<()> {
27175        let context = function_name!();
27176        trace!("{}", self.trace_item_stack(context));
27177        self.push(ASTType::AttributeOpt(None), context);
27178        Ok(())
27179    }
27180
27181    /// Semantic action for production 633:
27182    ///
27183    /// `AttributeList: AttributeItem AttributeListList /* Vec */ AttributeListOpt /* Option */;`
27184    ///
27185    #[parol_runtime::function_name::named]
27186    fn attribute_list(
27187        &mut self,
27188        _attribute_item: &ParseTreeType<'t>,
27189        _attribute_list_list: &ParseTreeType<'t>,
27190        _attribute_list_opt: &ParseTreeType<'t>,
27191    ) -> Result<()> {
27192        let context = function_name!();
27193        trace!("{}", self.trace_item_stack(context));
27194        let attribute_list_opt = pop_item!(self, attribute_list_opt, AttributeListOpt, context);
27195        let attribute_list_list =
27196            pop_and_reverse_item!(self, attribute_list_list, AttributeListList, context);
27197        let attribute_item = pop_item!(self, attribute_item, AttributeItem, context);
27198        let attribute_list_built = AttributeList {
27199            attribute_item: Box::new(attribute_item),
27200            attribute_list_list,
27201            attribute_list_opt,
27202        };
27203        // Calling user action here
27204        self.user_grammar.attribute_list(&attribute_list_built)?;
27205        self.push(ASTType::AttributeList(attribute_list_built), context);
27206        Ok(())
27207    }
27208
27209    /// Semantic action for production 634:
27210    ///
27211    /// `AttributeListList /* Vec<T>::Push */: Comma AttributeItem AttributeListList;`
27212    ///
27213    #[parol_runtime::function_name::named]
27214    fn attribute_list_list_0(
27215        &mut self,
27216        _comma: &ParseTreeType<'t>,
27217        _attribute_item: &ParseTreeType<'t>,
27218        _attribute_list_list: &ParseTreeType<'t>,
27219    ) -> Result<()> {
27220        let context = function_name!();
27221        trace!("{}", self.trace_item_stack(context));
27222        let mut attribute_list_list =
27223            pop_item!(self, attribute_list_list, AttributeListList, context);
27224        let attribute_item = pop_item!(self, attribute_item, AttributeItem, context);
27225        let comma = pop_item!(self, comma, Comma, context);
27226        let attribute_list_list_0_built = AttributeListList {
27227            attribute_item: Box::new(attribute_item),
27228            comma: Box::new(comma),
27229        };
27230        // Add an element to the vector
27231        attribute_list_list.push(attribute_list_list_0_built);
27232        self.push(ASTType::AttributeListList(attribute_list_list), context);
27233        Ok(())
27234    }
27235
27236    /// Semantic action for production 635:
27237    ///
27238    /// `AttributeListList /* Vec<T>::New */: ;`
27239    ///
27240    #[parol_runtime::function_name::named]
27241    fn attribute_list_list_1(&mut self) -> Result<()> {
27242        let context = function_name!();
27243        trace!("{}", self.trace_item_stack(context));
27244        let attribute_list_list_1_built = Vec::new();
27245        self.push(
27246            ASTType::AttributeListList(attribute_list_list_1_built),
27247            context,
27248        );
27249        Ok(())
27250    }
27251
27252    /// Semantic action for production 636:
27253    ///
27254    /// `AttributeListOpt /* Option<T>::Some */: Comma;`
27255    ///
27256    #[parol_runtime::function_name::named]
27257    fn attribute_list_opt_0(&mut self, _comma: &ParseTreeType<'t>) -> Result<()> {
27258        let context = function_name!();
27259        trace!("{}", self.trace_item_stack(context));
27260        let comma = pop_item!(self, comma, Comma, context);
27261        let attribute_list_opt_0_built = AttributeListOpt {
27262            comma: Box::new(comma),
27263        };
27264        self.push(
27265            ASTType::AttributeListOpt(Some(attribute_list_opt_0_built)),
27266            context,
27267        );
27268        Ok(())
27269    }
27270
27271    /// Semantic action for production 637:
27272    ///
27273    /// `AttributeListOpt /* Option<T>::None */: ;`
27274    ///
27275    #[parol_runtime::function_name::named]
27276    fn attribute_list_opt_1(&mut self) -> Result<()> {
27277        let context = function_name!();
27278        trace!("{}", self.trace_item_stack(context));
27279        self.push(ASTType::AttributeListOpt(None), context);
27280        Ok(())
27281    }
27282
27283    /// Semantic action for production 638:
27284    ///
27285    /// `AttributeItem: Identifier;`
27286    ///
27287    #[parol_runtime::function_name::named]
27288    fn attribute_item_0(&mut self, _identifier: &ParseTreeType<'t>) -> Result<()> {
27289        let context = function_name!();
27290        trace!("{}", self.trace_item_stack(context));
27291        let identifier = pop_item!(self, identifier, Identifier, context);
27292        let attribute_item_0_built = AttributeItemIdentifier {
27293            identifier: Box::new(identifier),
27294        };
27295        let attribute_item_0_built = AttributeItem::Identifier(attribute_item_0_built);
27296        // Calling user action here
27297        self.user_grammar.attribute_item(&attribute_item_0_built)?;
27298        self.push(ASTType::AttributeItem(attribute_item_0_built), context);
27299        Ok(())
27300    }
27301
27302    /// Semantic action for production 639:
27303    ///
27304    /// `AttributeItem: StringLiteral;`
27305    ///
27306    #[parol_runtime::function_name::named]
27307    fn attribute_item_1(&mut self, _string_literal: &ParseTreeType<'t>) -> Result<()> {
27308        let context = function_name!();
27309        trace!("{}", self.trace_item_stack(context));
27310        let string_literal = pop_item!(self, string_literal, StringLiteral, context);
27311        let attribute_item_1_built = AttributeItemStringLiteral {
27312            string_literal: Box::new(string_literal),
27313        };
27314        let attribute_item_1_built = AttributeItem::StringLiteral(attribute_item_1_built);
27315        // Calling user action here
27316        self.user_grammar.attribute_item(&attribute_item_1_built)?;
27317        self.push(ASTType::AttributeItem(attribute_item_1_built), context);
27318        Ok(())
27319    }
27320
27321    /// Semantic action for production 640:
27322    ///
27323    /// `LetDeclaration: Let Identifier Colon LetDeclarationOpt /* Option */ ArrayType Equ Expression Semicolon;`
27324    ///
27325    #[parol_runtime::function_name::named]
27326    fn let_declaration(
27327        &mut self,
27328        _let: &ParseTreeType<'t>,
27329        _identifier: &ParseTreeType<'t>,
27330        _colon: &ParseTreeType<'t>,
27331        _let_declaration_opt: &ParseTreeType<'t>,
27332        _array_type: &ParseTreeType<'t>,
27333        _equ: &ParseTreeType<'t>,
27334        _expression: &ParseTreeType<'t>,
27335        _semicolon: &ParseTreeType<'t>,
27336    ) -> Result<()> {
27337        let context = function_name!();
27338        trace!("{}", self.trace_item_stack(context));
27339        let semicolon = pop_item!(self, semicolon, Semicolon, context);
27340        let expression = pop_item!(self, expression, Expression, context);
27341        let equ = pop_item!(self, equ, Equ, context);
27342        let array_type = pop_item!(self, array_type, ArrayType, context);
27343        let let_declaration_opt = pop_item!(self, let_declaration_opt, LetDeclarationOpt, context);
27344        let colon = pop_item!(self, colon, Colon, context);
27345        let identifier = pop_item!(self, identifier, Identifier, context);
27346        let r#let = pop_item!(self, r#let, Let, context);
27347        let let_declaration_built = LetDeclaration {
27348            r#let: Box::new(r#let),
27349            identifier: Box::new(identifier),
27350            colon: Box::new(colon),
27351            let_declaration_opt,
27352            array_type: Box::new(array_type),
27353            equ: Box::new(equ),
27354            expression: Box::new(expression),
27355            semicolon: Box::new(semicolon),
27356        };
27357        // Calling user action here
27358        self.user_grammar.let_declaration(&let_declaration_built)?;
27359        self.push(ASTType::LetDeclaration(let_declaration_built), context);
27360        Ok(())
27361    }
27362
27363    /// Semantic action for production 641:
27364    ///
27365    /// `LetDeclarationOpt /* Option<T>::Some */: ClockDomain;`
27366    ///
27367    #[parol_runtime::function_name::named]
27368    fn let_declaration_opt_0(&mut self, _clock_domain: &ParseTreeType<'t>) -> Result<()> {
27369        let context = function_name!();
27370        trace!("{}", self.trace_item_stack(context));
27371        let clock_domain = pop_item!(self, clock_domain, ClockDomain, context);
27372        let let_declaration_opt_0_built = LetDeclarationOpt {
27373            clock_domain: Box::new(clock_domain),
27374        };
27375        self.push(
27376            ASTType::LetDeclarationOpt(Some(let_declaration_opt_0_built)),
27377            context,
27378        );
27379        Ok(())
27380    }
27381
27382    /// Semantic action for production 642:
27383    ///
27384    /// `LetDeclarationOpt /* Option<T>::None */: ;`
27385    ///
27386    #[parol_runtime::function_name::named]
27387    fn let_declaration_opt_1(&mut self) -> Result<()> {
27388        let context = function_name!();
27389        trace!("{}", self.trace_item_stack(context));
27390        self.push(ASTType::LetDeclarationOpt(None), context);
27391        Ok(())
27392    }
27393
27394    /// Semantic action for production 643:
27395    ///
27396    /// `VarDeclaration: Var Identifier Colon VarDeclarationOpt /* Option */ ArrayType Semicolon;`
27397    ///
27398    #[parol_runtime::function_name::named]
27399    fn var_declaration(
27400        &mut self,
27401        _var: &ParseTreeType<'t>,
27402        _identifier: &ParseTreeType<'t>,
27403        _colon: &ParseTreeType<'t>,
27404        _var_declaration_opt: &ParseTreeType<'t>,
27405        _array_type: &ParseTreeType<'t>,
27406        _semicolon: &ParseTreeType<'t>,
27407    ) -> Result<()> {
27408        let context = function_name!();
27409        trace!("{}", self.trace_item_stack(context));
27410        let semicolon = pop_item!(self, semicolon, Semicolon, context);
27411        let array_type = pop_item!(self, array_type, ArrayType, context);
27412        let var_declaration_opt = pop_item!(self, var_declaration_opt, VarDeclarationOpt, context);
27413        let colon = pop_item!(self, colon, Colon, context);
27414        let identifier = pop_item!(self, identifier, Identifier, context);
27415        let var = pop_item!(self, var, Var, context);
27416        let var_declaration_built = VarDeclaration {
27417            var: Box::new(var),
27418            identifier: Box::new(identifier),
27419            colon: Box::new(colon),
27420            var_declaration_opt,
27421            array_type: Box::new(array_type),
27422            semicolon: Box::new(semicolon),
27423        };
27424        // Calling user action here
27425        self.user_grammar.var_declaration(&var_declaration_built)?;
27426        self.push(ASTType::VarDeclaration(var_declaration_built), context);
27427        Ok(())
27428    }
27429
27430    /// Semantic action for production 644:
27431    ///
27432    /// `VarDeclarationOpt /* Option<T>::Some */: ClockDomain;`
27433    ///
27434    #[parol_runtime::function_name::named]
27435    fn var_declaration_opt_0(&mut self, _clock_domain: &ParseTreeType<'t>) -> Result<()> {
27436        let context = function_name!();
27437        trace!("{}", self.trace_item_stack(context));
27438        let clock_domain = pop_item!(self, clock_domain, ClockDomain, context);
27439        let var_declaration_opt_0_built = VarDeclarationOpt {
27440            clock_domain: Box::new(clock_domain),
27441        };
27442        self.push(
27443            ASTType::VarDeclarationOpt(Some(var_declaration_opt_0_built)),
27444            context,
27445        );
27446        Ok(())
27447    }
27448
27449    /// Semantic action for production 645:
27450    ///
27451    /// `VarDeclarationOpt /* Option<T>::None */: ;`
27452    ///
27453    #[parol_runtime::function_name::named]
27454    fn var_declaration_opt_1(&mut self) -> Result<()> {
27455        let context = function_name!();
27456        trace!("{}", self.trace_item_stack(context));
27457        self.push(ASTType::VarDeclarationOpt(None), context);
27458        Ok(())
27459    }
27460
27461    /// Semantic action for production 646:
27462    ///
27463    /// `ConstDeclaration: Const Identifier Colon ConstDeclarationGroup Equ Expression Semicolon;`
27464    ///
27465    #[parol_runtime::function_name::named]
27466    fn const_declaration(
27467        &mut self,
27468        _const: &ParseTreeType<'t>,
27469        _identifier: &ParseTreeType<'t>,
27470        _colon: &ParseTreeType<'t>,
27471        _const_declaration_group: &ParseTreeType<'t>,
27472        _equ: &ParseTreeType<'t>,
27473        _expression: &ParseTreeType<'t>,
27474        _semicolon: &ParseTreeType<'t>,
27475    ) -> Result<()> {
27476        let context = function_name!();
27477        trace!("{}", self.trace_item_stack(context));
27478        let semicolon = pop_item!(self, semicolon, Semicolon, context);
27479        let expression = pop_item!(self, expression, Expression, context);
27480        let equ = pop_item!(self, equ, Equ, context);
27481        let const_declaration_group = pop_item!(
27482            self,
27483            const_declaration_group,
27484            ConstDeclarationGroup,
27485            context
27486        );
27487        let colon = pop_item!(self, colon, Colon, context);
27488        let identifier = pop_item!(self, identifier, Identifier, context);
27489        let r#const = pop_item!(self, r#const, Const, context);
27490        let const_declaration_built = ConstDeclaration {
27491            r#const: Box::new(r#const),
27492            identifier: Box::new(identifier),
27493            colon: Box::new(colon),
27494            const_declaration_group: Box::new(const_declaration_group),
27495            equ: Box::new(equ),
27496            expression: Box::new(expression),
27497            semicolon: Box::new(semicolon),
27498        };
27499        // Calling user action here
27500        self.user_grammar
27501            .const_declaration(&const_declaration_built)?;
27502        self.push(ASTType::ConstDeclaration(const_declaration_built), context);
27503        Ok(())
27504    }
27505
27506    /// Semantic action for production 647:
27507    ///
27508    /// `ConstDeclarationGroup: ArrayType;`
27509    ///
27510    #[parol_runtime::function_name::named]
27511    fn const_declaration_group_0(&mut self, _array_type: &ParseTreeType<'t>) -> Result<()> {
27512        let context = function_name!();
27513        trace!("{}", self.trace_item_stack(context));
27514        let array_type = pop_item!(self, array_type, ArrayType, context);
27515        let const_declaration_group_0_built = ConstDeclarationGroupArrayType {
27516            array_type: Box::new(array_type),
27517        };
27518        let const_declaration_group_0_built =
27519            ConstDeclarationGroup::ArrayType(const_declaration_group_0_built);
27520        self.push(
27521            ASTType::ConstDeclarationGroup(const_declaration_group_0_built),
27522            context,
27523        );
27524        Ok(())
27525    }
27526
27527    /// Semantic action for production 648:
27528    ///
27529    /// `ConstDeclarationGroup: Type;`
27530    ///
27531    #[parol_runtime::function_name::named]
27532    fn const_declaration_group_1(&mut self, _type: &ParseTreeType<'t>) -> Result<()> {
27533        let context = function_name!();
27534        trace!("{}", self.trace_item_stack(context));
27535        let r#type = pop_item!(self, r#type, Type, context);
27536        let const_declaration_group_1_built = ConstDeclarationGroupType {
27537            r#type: Box::new(r#type),
27538        };
27539        let const_declaration_group_1_built =
27540            ConstDeclarationGroup::Type(const_declaration_group_1_built);
27541        self.push(
27542            ASTType::ConstDeclarationGroup(const_declaration_group_1_built),
27543            context,
27544        );
27545        Ok(())
27546    }
27547
27548    /// Semantic action for production 649:
27549    ///
27550    /// `TypeDefDeclaration: Type Identifier Equ ArrayType Semicolon;`
27551    ///
27552    #[parol_runtime::function_name::named]
27553    fn type_def_declaration(
27554        &mut self,
27555        _type: &ParseTreeType<'t>,
27556        _identifier: &ParseTreeType<'t>,
27557        _equ: &ParseTreeType<'t>,
27558        _array_type: &ParseTreeType<'t>,
27559        _semicolon: &ParseTreeType<'t>,
27560    ) -> Result<()> {
27561        let context = function_name!();
27562        trace!("{}", self.trace_item_stack(context));
27563        let semicolon = pop_item!(self, semicolon, Semicolon, context);
27564        let array_type = pop_item!(self, array_type, ArrayType, context);
27565        let equ = pop_item!(self, equ, Equ, context);
27566        let identifier = pop_item!(self, identifier, Identifier, context);
27567        let r#type = pop_item!(self, r#type, Type, context);
27568        let type_def_declaration_built = TypeDefDeclaration {
27569            r#type: Box::new(r#type),
27570            identifier: Box::new(identifier),
27571            equ: Box::new(equ),
27572            array_type: Box::new(array_type),
27573            semicolon: Box::new(semicolon),
27574        };
27575        // Calling user action here
27576        self.user_grammar
27577            .type_def_declaration(&type_def_declaration_built)?;
27578        self.push(
27579            ASTType::TypeDefDeclaration(type_def_declaration_built),
27580            context,
27581        );
27582        Ok(())
27583    }
27584
27585    /// Semantic action for production 650:
27586    ///
27587    /// `AlwaysFfDeclaration: AlwaysFf AlwaysFfDeclarationOpt /* Option */ StatementBlock;`
27588    ///
27589    #[parol_runtime::function_name::named]
27590    fn always_ff_declaration(
27591        &mut self,
27592        _always_ff: &ParseTreeType<'t>,
27593        _always_ff_declaration_opt: &ParseTreeType<'t>,
27594        _statement_block: &ParseTreeType<'t>,
27595    ) -> Result<()> {
27596        let context = function_name!();
27597        trace!("{}", self.trace_item_stack(context));
27598        let statement_block = pop_item!(self, statement_block, StatementBlock, context);
27599        let always_ff_declaration_opt = pop_item!(
27600            self,
27601            always_ff_declaration_opt,
27602            AlwaysFfDeclarationOpt,
27603            context
27604        );
27605        let always_ff = pop_item!(self, always_ff, AlwaysFf, context);
27606        let always_ff_declaration_built = AlwaysFfDeclaration {
27607            always_ff: Box::new(always_ff),
27608            always_ff_declaration_opt,
27609            statement_block: Box::new(statement_block),
27610        };
27611        // Calling user action here
27612        self.user_grammar
27613            .always_ff_declaration(&always_ff_declaration_built)?;
27614        self.push(
27615            ASTType::AlwaysFfDeclaration(always_ff_declaration_built),
27616            context,
27617        );
27618        Ok(())
27619    }
27620
27621    /// Semantic action for production 651:
27622    ///
27623    /// `AlwaysFfDeclarationOpt /* Option<T>::Some */: AlwaysFfEventList;`
27624    ///
27625    #[parol_runtime::function_name::named]
27626    fn always_ff_declaration_opt_0(
27627        &mut self,
27628        _always_ff_event_list: &ParseTreeType<'t>,
27629    ) -> Result<()> {
27630        let context = function_name!();
27631        trace!("{}", self.trace_item_stack(context));
27632        let always_ff_event_list =
27633            pop_item!(self, always_ff_event_list, AlwaysFfEventList, context);
27634        let always_ff_declaration_opt_0_built = AlwaysFfDeclarationOpt {
27635            always_ff_event_list: Box::new(always_ff_event_list),
27636        };
27637        self.push(
27638            ASTType::AlwaysFfDeclarationOpt(Some(always_ff_declaration_opt_0_built)),
27639            context,
27640        );
27641        Ok(())
27642    }
27643
27644    /// Semantic action for production 652:
27645    ///
27646    /// `AlwaysFfDeclarationOpt /* Option<T>::None */: ;`
27647    ///
27648    #[parol_runtime::function_name::named]
27649    fn always_ff_declaration_opt_1(&mut self) -> Result<()> {
27650        let context = function_name!();
27651        trace!("{}", self.trace_item_stack(context));
27652        self.push(ASTType::AlwaysFfDeclarationOpt(None), context);
27653        Ok(())
27654    }
27655
27656    /// Semantic action for production 653:
27657    ///
27658    /// `AlwaysFfEventList: LParen AlwaysFfClock AlwaysFfEventListOpt /* Option */ RParen;`
27659    ///
27660    #[parol_runtime::function_name::named]
27661    fn always_ff_event_list(
27662        &mut self,
27663        _l_paren: &ParseTreeType<'t>,
27664        _always_ff_clock: &ParseTreeType<'t>,
27665        _always_ff_event_list_opt: &ParseTreeType<'t>,
27666        _r_paren: &ParseTreeType<'t>,
27667    ) -> Result<()> {
27668        let context = function_name!();
27669        trace!("{}", self.trace_item_stack(context));
27670        let r_paren = pop_item!(self, r_paren, RParen, context);
27671        let always_ff_event_list_opt = pop_item!(
27672            self,
27673            always_ff_event_list_opt,
27674            AlwaysFfEventListOpt,
27675            context
27676        );
27677        let always_ff_clock = pop_item!(self, always_ff_clock, AlwaysFfClock, context);
27678        let l_paren = pop_item!(self, l_paren, LParen, context);
27679        let always_ff_event_list_built = AlwaysFfEventList {
27680            l_paren: Box::new(l_paren),
27681            always_ff_clock: Box::new(always_ff_clock),
27682            always_ff_event_list_opt,
27683            r_paren: Box::new(r_paren),
27684        };
27685        // Calling user action here
27686        self.user_grammar
27687            .always_ff_event_list(&always_ff_event_list_built)?;
27688        self.push(
27689            ASTType::AlwaysFfEventList(always_ff_event_list_built),
27690            context,
27691        );
27692        Ok(())
27693    }
27694
27695    /// Semantic action for production 654:
27696    ///
27697    /// `AlwaysFfEventListOpt /* Option<T>::Some */: Comma AlwaysFfReset;`
27698    ///
27699    #[parol_runtime::function_name::named]
27700    fn always_ff_event_list_opt_0(
27701        &mut self,
27702        _comma: &ParseTreeType<'t>,
27703        _always_ff_reset: &ParseTreeType<'t>,
27704    ) -> Result<()> {
27705        let context = function_name!();
27706        trace!("{}", self.trace_item_stack(context));
27707        let always_ff_reset = pop_item!(self, always_ff_reset, AlwaysFfReset, context);
27708        let comma = pop_item!(self, comma, Comma, context);
27709        let always_ff_event_list_opt_0_built = AlwaysFfEventListOpt {
27710            comma: Box::new(comma),
27711            always_ff_reset: Box::new(always_ff_reset),
27712        };
27713        self.push(
27714            ASTType::AlwaysFfEventListOpt(Some(always_ff_event_list_opt_0_built)),
27715            context,
27716        );
27717        Ok(())
27718    }
27719
27720    /// Semantic action for production 655:
27721    ///
27722    /// `AlwaysFfEventListOpt /* Option<T>::None */: ;`
27723    ///
27724    #[parol_runtime::function_name::named]
27725    fn always_ff_event_list_opt_1(&mut self) -> Result<()> {
27726        let context = function_name!();
27727        trace!("{}", self.trace_item_stack(context));
27728        self.push(ASTType::AlwaysFfEventListOpt(None), context);
27729        Ok(())
27730    }
27731
27732    /// Semantic action for production 656:
27733    ///
27734    /// `AlwaysFfClock: HierarchicalIdentifier;`
27735    ///
27736    #[parol_runtime::function_name::named]
27737    fn always_ff_clock(&mut self, _hierarchical_identifier: &ParseTreeType<'t>) -> Result<()> {
27738        let context = function_name!();
27739        trace!("{}", self.trace_item_stack(context));
27740        let hierarchical_identifier = pop_item!(
27741            self,
27742            hierarchical_identifier,
27743            HierarchicalIdentifier,
27744            context
27745        );
27746        let always_ff_clock_built = AlwaysFfClock {
27747            hierarchical_identifier: Box::new(hierarchical_identifier),
27748        };
27749        // Calling user action here
27750        self.user_grammar.always_ff_clock(&always_ff_clock_built)?;
27751        self.push(ASTType::AlwaysFfClock(always_ff_clock_built), context);
27752        Ok(())
27753    }
27754
27755    /// Semantic action for production 657:
27756    ///
27757    /// `AlwaysFfReset: HierarchicalIdentifier;`
27758    ///
27759    #[parol_runtime::function_name::named]
27760    fn always_ff_reset(&mut self, _hierarchical_identifier: &ParseTreeType<'t>) -> Result<()> {
27761        let context = function_name!();
27762        trace!("{}", self.trace_item_stack(context));
27763        let hierarchical_identifier = pop_item!(
27764            self,
27765            hierarchical_identifier,
27766            HierarchicalIdentifier,
27767            context
27768        );
27769        let always_ff_reset_built = AlwaysFfReset {
27770            hierarchical_identifier: Box::new(hierarchical_identifier),
27771        };
27772        // Calling user action here
27773        self.user_grammar.always_ff_reset(&always_ff_reset_built)?;
27774        self.push(ASTType::AlwaysFfReset(always_ff_reset_built), context);
27775        Ok(())
27776    }
27777
27778    /// Semantic action for production 658:
27779    ///
27780    /// `AlwaysCombDeclaration: AlwaysComb StatementBlock;`
27781    ///
27782    #[parol_runtime::function_name::named]
27783    fn always_comb_declaration(
27784        &mut self,
27785        _always_comb: &ParseTreeType<'t>,
27786        _statement_block: &ParseTreeType<'t>,
27787    ) -> Result<()> {
27788        let context = function_name!();
27789        trace!("{}", self.trace_item_stack(context));
27790        let statement_block = pop_item!(self, statement_block, StatementBlock, context);
27791        let always_comb = pop_item!(self, always_comb, AlwaysComb, context);
27792        let always_comb_declaration_built = AlwaysCombDeclaration {
27793            always_comb: Box::new(always_comb),
27794            statement_block: Box::new(statement_block),
27795        };
27796        // Calling user action here
27797        self.user_grammar
27798            .always_comb_declaration(&always_comb_declaration_built)?;
27799        self.push(
27800            ASTType::AlwaysCombDeclaration(always_comb_declaration_built),
27801            context,
27802        );
27803        Ok(())
27804    }
27805
27806    /// Semantic action for production 659:
27807    ///
27808    /// `AssignDeclaration: Assign AssignDestination Equ Expression Semicolon;`
27809    ///
27810    #[parol_runtime::function_name::named]
27811    fn assign_declaration(
27812        &mut self,
27813        _assign: &ParseTreeType<'t>,
27814        _assign_destination: &ParseTreeType<'t>,
27815        _equ: &ParseTreeType<'t>,
27816        _expression: &ParseTreeType<'t>,
27817        _semicolon: &ParseTreeType<'t>,
27818    ) -> Result<()> {
27819        let context = function_name!();
27820        trace!("{}", self.trace_item_stack(context));
27821        let semicolon = pop_item!(self, semicolon, Semicolon, context);
27822        let expression = pop_item!(self, expression, Expression, context);
27823        let equ = pop_item!(self, equ, Equ, context);
27824        let assign_destination = pop_item!(self, assign_destination, AssignDestination, context);
27825        let assign = pop_item!(self, assign, Assign, context);
27826        let assign_declaration_built = AssignDeclaration {
27827            assign: Box::new(assign),
27828            assign_destination: Box::new(assign_destination),
27829            equ: Box::new(equ),
27830            expression: Box::new(expression),
27831            semicolon: Box::new(semicolon),
27832        };
27833        // Calling user action here
27834        self.user_grammar
27835            .assign_declaration(&assign_declaration_built)?;
27836        self.push(
27837            ASTType::AssignDeclaration(assign_declaration_built),
27838            context,
27839        );
27840        Ok(())
27841    }
27842
27843    /// Semantic action for production 660:
27844    ///
27845    /// `AssignDestination: HierarchicalIdentifier;`
27846    ///
27847    #[parol_runtime::function_name::named]
27848    fn assign_destination_0(&mut self, _hierarchical_identifier: &ParseTreeType<'t>) -> Result<()> {
27849        let context = function_name!();
27850        trace!("{}", self.trace_item_stack(context));
27851        let hierarchical_identifier = pop_item!(
27852            self,
27853            hierarchical_identifier,
27854            HierarchicalIdentifier,
27855            context
27856        );
27857        let assign_destination_0_built = AssignDestinationHierarchicalIdentifier {
27858            hierarchical_identifier: Box::new(hierarchical_identifier),
27859        };
27860        let assign_destination_0_built =
27861            AssignDestination::HierarchicalIdentifier(assign_destination_0_built);
27862        // Calling user action here
27863        self.user_grammar
27864            .assign_destination(&assign_destination_0_built)?;
27865        self.push(
27866            ASTType::AssignDestination(assign_destination_0_built),
27867            context,
27868        );
27869        Ok(())
27870    }
27871
27872    /// Semantic action for production 661:
27873    ///
27874    /// `AssignDestination: LBrace AssignConcatenationList RBrace;`
27875    ///
27876    #[parol_runtime::function_name::named]
27877    fn assign_destination_1(
27878        &mut self,
27879        _l_brace: &ParseTreeType<'t>,
27880        _assign_concatenation_list: &ParseTreeType<'t>,
27881        _r_brace: &ParseTreeType<'t>,
27882    ) -> Result<()> {
27883        let context = function_name!();
27884        trace!("{}", self.trace_item_stack(context));
27885        let r_brace = pop_item!(self, r_brace, RBrace, context);
27886        let assign_concatenation_list = pop_item!(
27887            self,
27888            assign_concatenation_list,
27889            AssignConcatenationList,
27890            context
27891        );
27892        let l_brace = pop_item!(self, l_brace, LBrace, context);
27893        let assign_destination_1_built = AssignDestinationLBraceAssignConcatenationListRBrace {
27894            l_brace: Box::new(l_brace),
27895            assign_concatenation_list: Box::new(assign_concatenation_list),
27896            r_brace: Box::new(r_brace),
27897        };
27898        let assign_destination_1_built =
27899            AssignDestination::LBraceAssignConcatenationListRBrace(assign_destination_1_built);
27900        // Calling user action here
27901        self.user_grammar
27902            .assign_destination(&assign_destination_1_built)?;
27903        self.push(
27904            ASTType::AssignDestination(assign_destination_1_built),
27905            context,
27906        );
27907        Ok(())
27908    }
27909
27910    /// Semantic action for production 662:
27911    ///
27912    /// `AssignConcatenationList: AssignConcatenationItem AssignConcatenationListList /* Vec */ AssignConcatenationListOpt /* Option */;`
27913    ///
27914    #[parol_runtime::function_name::named]
27915    fn assign_concatenation_list(
27916        &mut self,
27917        _assign_concatenation_item: &ParseTreeType<'t>,
27918        _assign_concatenation_list_list: &ParseTreeType<'t>,
27919        _assign_concatenation_list_opt: &ParseTreeType<'t>,
27920    ) -> Result<()> {
27921        let context = function_name!();
27922        trace!("{}", self.trace_item_stack(context));
27923        let assign_concatenation_list_opt = pop_item!(
27924            self,
27925            assign_concatenation_list_opt,
27926            AssignConcatenationListOpt,
27927            context
27928        );
27929        let assign_concatenation_list_list = pop_and_reverse_item!(
27930            self,
27931            assign_concatenation_list_list,
27932            AssignConcatenationListList,
27933            context
27934        );
27935        let assign_concatenation_item = pop_item!(
27936            self,
27937            assign_concatenation_item,
27938            AssignConcatenationItem,
27939            context
27940        );
27941        let assign_concatenation_list_built = AssignConcatenationList {
27942            assign_concatenation_item: Box::new(assign_concatenation_item),
27943            assign_concatenation_list_list,
27944            assign_concatenation_list_opt,
27945        };
27946        // Calling user action here
27947        self.user_grammar
27948            .assign_concatenation_list(&assign_concatenation_list_built)?;
27949        self.push(
27950            ASTType::AssignConcatenationList(assign_concatenation_list_built),
27951            context,
27952        );
27953        Ok(())
27954    }
27955
27956    /// Semantic action for production 663:
27957    ///
27958    /// `AssignConcatenationListList /* Vec<T>::Push */: Comma AssignConcatenationItem AssignConcatenationListList;`
27959    ///
27960    #[parol_runtime::function_name::named]
27961    fn assign_concatenation_list_list_0(
27962        &mut self,
27963        _comma: &ParseTreeType<'t>,
27964        _assign_concatenation_item: &ParseTreeType<'t>,
27965        _assign_concatenation_list_list: &ParseTreeType<'t>,
27966    ) -> Result<()> {
27967        let context = function_name!();
27968        trace!("{}", self.trace_item_stack(context));
27969        let mut assign_concatenation_list_list = pop_item!(
27970            self,
27971            assign_concatenation_list_list,
27972            AssignConcatenationListList,
27973            context
27974        );
27975        let assign_concatenation_item = pop_item!(
27976            self,
27977            assign_concatenation_item,
27978            AssignConcatenationItem,
27979            context
27980        );
27981        let comma = pop_item!(self, comma, Comma, context);
27982        let assign_concatenation_list_list_0_built = AssignConcatenationListList {
27983            assign_concatenation_item: Box::new(assign_concatenation_item),
27984            comma: Box::new(comma),
27985        };
27986        // Add an element to the vector
27987        assign_concatenation_list_list.push(assign_concatenation_list_list_0_built);
27988        self.push(
27989            ASTType::AssignConcatenationListList(assign_concatenation_list_list),
27990            context,
27991        );
27992        Ok(())
27993    }
27994
27995    /// Semantic action for production 664:
27996    ///
27997    /// `AssignConcatenationListList /* Vec<T>::New */: ;`
27998    ///
27999    #[parol_runtime::function_name::named]
28000    fn assign_concatenation_list_list_1(&mut self) -> Result<()> {
28001        let context = function_name!();
28002        trace!("{}", self.trace_item_stack(context));
28003        let assign_concatenation_list_list_1_built = Vec::new();
28004        self.push(
28005            ASTType::AssignConcatenationListList(assign_concatenation_list_list_1_built),
28006            context,
28007        );
28008        Ok(())
28009    }
28010
28011    /// Semantic action for production 665:
28012    ///
28013    /// `AssignConcatenationListOpt /* Option<T>::Some */: Comma;`
28014    ///
28015    #[parol_runtime::function_name::named]
28016    fn assign_concatenation_list_opt_0(&mut self, _comma: &ParseTreeType<'t>) -> Result<()> {
28017        let context = function_name!();
28018        trace!("{}", self.trace_item_stack(context));
28019        let comma = pop_item!(self, comma, Comma, context);
28020        let assign_concatenation_list_opt_0_built = AssignConcatenationListOpt {
28021            comma: Box::new(comma),
28022        };
28023        self.push(
28024            ASTType::AssignConcatenationListOpt(Some(assign_concatenation_list_opt_0_built)),
28025            context,
28026        );
28027        Ok(())
28028    }
28029
28030    /// Semantic action for production 666:
28031    ///
28032    /// `AssignConcatenationListOpt /* Option<T>::None */: ;`
28033    ///
28034    #[parol_runtime::function_name::named]
28035    fn assign_concatenation_list_opt_1(&mut self) -> Result<()> {
28036        let context = function_name!();
28037        trace!("{}", self.trace_item_stack(context));
28038        self.push(ASTType::AssignConcatenationListOpt(None), context);
28039        Ok(())
28040    }
28041
28042    /// Semantic action for production 667:
28043    ///
28044    /// `AssignConcatenationItem: HierarchicalIdentifier;`
28045    ///
28046    #[parol_runtime::function_name::named]
28047    fn assign_concatenation_item(
28048        &mut self,
28049        _hierarchical_identifier: &ParseTreeType<'t>,
28050    ) -> Result<()> {
28051        let context = function_name!();
28052        trace!("{}", self.trace_item_stack(context));
28053        let hierarchical_identifier = pop_item!(
28054            self,
28055            hierarchical_identifier,
28056            HierarchicalIdentifier,
28057            context
28058        );
28059        let assign_concatenation_item_built = AssignConcatenationItem {
28060            hierarchical_identifier: Box::new(hierarchical_identifier),
28061        };
28062        // Calling user action here
28063        self.user_grammar
28064            .assign_concatenation_item(&assign_concatenation_item_built)?;
28065        self.push(
28066            ASTType::AssignConcatenationItem(assign_concatenation_item_built),
28067            context,
28068        );
28069        Ok(())
28070    }
28071
28072    /// Semantic action for production 668:
28073    ///
28074    /// `ModportDeclaration: Modport Identifier LBrace ModportDeclarationOpt /* Option */ ModportDeclarationOpt0 /* Option */ RBrace;`
28075    ///
28076    #[parol_runtime::function_name::named]
28077    fn modport_declaration(
28078        &mut self,
28079        _modport: &ParseTreeType<'t>,
28080        _identifier: &ParseTreeType<'t>,
28081        _l_brace: &ParseTreeType<'t>,
28082        _modport_declaration_opt: &ParseTreeType<'t>,
28083        _modport_declaration_opt0: &ParseTreeType<'t>,
28084        _r_brace: &ParseTreeType<'t>,
28085    ) -> Result<()> {
28086        let context = function_name!();
28087        trace!("{}", self.trace_item_stack(context));
28088        let r_brace = pop_item!(self, r_brace, RBrace, context);
28089        let modport_declaration_opt0 = pop_item!(
28090            self,
28091            modport_declaration_opt0,
28092            ModportDeclarationOpt0,
28093            context
28094        );
28095        let modport_declaration_opt = pop_item!(
28096            self,
28097            modport_declaration_opt,
28098            ModportDeclarationOpt,
28099            context
28100        );
28101        let l_brace = pop_item!(self, l_brace, LBrace, context);
28102        let identifier = pop_item!(self, identifier, Identifier, context);
28103        let modport = pop_item!(self, modport, Modport, context);
28104        let modport_declaration_built = ModportDeclaration {
28105            modport: Box::new(modport),
28106            identifier: Box::new(identifier),
28107            l_brace: Box::new(l_brace),
28108            modport_declaration_opt,
28109            modport_declaration_opt0,
28110            r_brace: Box::new(r_brace),
28111        };
28112        // Calling user action here
28113        self.user_grammar
28114            .modport_declaration(&modport_declaration_built)?;
28115        self.push(
28116            ASTType::ModportDeclaration(modport_declaration_built),
28117            context,
28118        );
28119        Ok(())
28120    }
28121
28122    /// Semantic action for production 669:
28123    ///
28124    /// `ModportDeclarationOpt0 /* Option<T>::Some */: DotDot ModportDefault;`
28125    ///
28126    #[parol_runtime::function_name::named]
28127    fn modport_declaration_opt0_0(
28128        &mut self,
28129        _dot_dot: &ParseTreeType<'t>,
28130        _modport_default: &ParseTreeType<'t>,
28131    ) -> Result<()> {
28132        let context = function_name!();
28133        trace!("{}", self.trace_item_stack(context));
28134        let modport_default = pop_item!(self, modport_default, ModportDefault, context);
28135        let dot_dot = pop_item!(self, dot_dot, DotDot, context);
28136        let modport_declaration_opt0_0_built = ModportDeclarationOpt0 {
28137            dot_dot: Box::new(dot_dot),
28138            modport_default: Box::new(modport_default),
28139        };
28140        self.push(
28141            ASTType::ModportDeclarationOpt0(Some(modport_declaration_opt0_0_built)),
28142            context,
28143        );
28144        Ok(())
28145    }
28146
28147    /// Semantic action for production 670:
28148    ///
28149    /// `ModportDeclarationOpt0 /* Option<T>::None */: ;`
28150    ///
28151    #[parol_runtime::function_name::named]
28152    fn modport_declaration_opt0_1(&mut self) -> Result<()> {
28153        let context = function_name!();
28154        trace!("{}", self.trace_item_stack(context));
28155        self.push(ASTType::ModportDeclarationOpt0(None), context);
28156        Ok(())
28157    }
28158
28159    /// Semantic action for production 671:
28160    ///
28161    /// `ModportDeclarationOpt /* Option<T>::Some */: ModportList;`
28162    ///
28163    #[parol_runtime::function_name::named]
28164    fn modport_declaration_opt_0(&mut self, _modport_list: &ParseTreeType<'t>) -> Result<()> {
28165        let context = function_name!();
28166        trace!("{}", self.trace_item_stack(context));
28167        let modport_list = pop_item!(self, modport_list, ModportList, context);
28168        let modport_declaration_opt_0_built = ModportDeclarationOpt {
28169            modport_list: Box::new(modport_list),
28170        };
28171        self.push(
28172            ASTType::ModportDeclarationOpt(Some(modport_declaration_opt_0_built)),
28173            context,
28174        );
28175        Ok(())
28176    }
28177
28178    /// Semantic action for production 672:
28179    ///
28180    /// `ModportDeclarationOpt /* Option<T>::None */: ;`
28181    ///
28182    #[parol_runtime::function_name::named]
28183    fn modport_declaration_opt_1(&mut self) -> Result<()> {
28184        let context = function_name!();
28185        trace!("{}", self.trace_item_stack(context));
28186        self.push(ASTType::ModportDeclarationOpt(None), context);
28187        Ok(())
28188    }
28189
28190    /// Semantic action for production 673:
28191    ///
28192    /// `ModportList: ModportGroup ModportListList /* Vec */ ModportListOpt /* Option */;`
28193    ///
28194    #[parol_runtime::function_name::named]
28195    fn modport_list(
28196        &mut self,
28197        _modport_group: &ParseTreeType<'t>,
28198        _modport_list_list: &ParseTreeType<'t>,
28199        _modport_list_opt: &ParseTreeType<'t>,
28200    ) -> Result<()> {
28201        let context = function_name!();
28202        trace!("{}", self.trace_item_stack(context));
28203        let modport_list_opt = pop_item!(self, modport_list_opt, ModportListOpt, context);
28204        let modport_list_list =
28205            pop_and_reverse_item!(self, modport_list_list, ModportListList, context);
28206        let modport_group = pop_item!(self, modport_group, ModportGroup, context);
28207        let modport_list_built = ModportList {
28208            modport_group: Box::new(modport_group),
28209            modport_list_list,
28210            modport_list_opt,
28211        };
28212        // Calling user action here
28213        self.user_grammar.modport_list(&modport_list_built)?;
28214        self.push(ASTType::ModportList(modport_list_built), context);
28215        Ok(())
28216    }
28217
28218    /// Semantic action for production 674:
28219    ///
28220    /// `ModportListList /* Vec<T>::Push */: Comma ModportGroup ModportListList;`
28221    ///
28222    #[parol_runtime::function_name::named]
28223    fn modport_list_list_0(
28224        &mut self,
28225        _comma: &ParseTreeType<'t>,
28226        _modport_group: &ParseTreeType<'t>,
28227        _modport_list_list: &ParseTreeType<'t>,
28228    ) -> Result<()> {
28229        let context = function_name!();
28230        trace!("{}", self.trace_item_stack(context));
28231        let mut modport_list_list = pop_item!(self, modport_list_list, ModportListList, context);
28232        let modport_group = pop_item!(self, modport_group, ModportGroup, context);
28233        let comma = pop_item!(self, comma, Comma, context);
28234        let modport_list_list_0_built = ModportListList {
28235            modport_group: Box::new(modport_group),
28236            comma: Box::new(comma),
28237        };
28238        // Add an element to the vector
28239        modport_list_list.push(modport_list_list_0_built);
28240        self.push(ASTType::ModportListList(modport_list_list), context);
28241        Ok(())
28242    }
28243
28244    /// Semantic action for production 675:
28245    ///
28246    /// `ModportListList /* Vec<T>::New */: ;`
28247    ///
28248    #[parol_runtime::function_name::named]
28249    fn modport_list_list_1(&mut self) -> Result<()> {
28250        let context = function_name!();
28251        trace!("{}", self.trace_item_stack(context));
28252        let modport_list_list_1_built = Vec::new();
28253        self.push(ASTType::ModportListList(modport_list_list_1_built), context);
28254        Ok(())
28255    }
28256
28257    /// Semantic action for production 676:
28258    ///
28259    /// `ModportListOpt /* Option<T>::Some */: Comma;`
28260    ///
28261    #[parol_runtime::function_name::named]
28262    fn modport_list_opt_0(&mut self, _comma: &ParseTreeType<'t>) -> Result<()> {
28263        let context = function_name!();
28264        trace!("{}", self.trace_item_stack(context));
28265        let comma = pop_item!(self, comma, Comma, context);
28266        let modport_list_opt_0_built = ModportListOpt {
28267            comma: Box::new(comma),
28268        };
28269        self.push(
28270            ASTType::ModportListOpt(Some(modport_list_opt_0_built)),
28271            context,
28272        );
28273        Ok(())
28274    }
28275
28276    /// Semantic action for production 677:
28277    ///
28278    /// `ModportListOpt /* Option<T>::None */: ;`
28279    ///
28280    #[parol_runtime::function_name::named]
28281    fn modport_list_opt_1(&mut self) -> Result<()> {
28282        let context = function_name!();
28283        trace!("{}", self.trace_item_stack(context));
28284        self.push(ASTType::ModportListOpt(None), context);
28285        Ok(())
28286    }
28287
28288    /// Semantic action for production 678:
28289    ///
28290    /// `ModportGroup: ModportGroupList /* Vec */ ModportGroupGroup;`
28291    ///
28292    #[parol_runtime::function_name::named]
28293    fn modport_group(
28294        &mut self,
28295        _modport_group_list: &ParseTreeType<'t>,
28296        _modport_group_group: &ParseTreeType<'t>,
28297    ) -> Result<()> {
28298        let context = function_name!();
28299        trace!("{}", self.trace_item_stack(context));
28300        let modport_group_group = pop_item!(self, modport_group_group, ModportGroupGroup, context);
28301        let modport_group_list =
28302            pop_and_reverse_item!(self, modport_group_list, ModportGroupList, context);
28303        let modport_group_built = ModportGroup {
28304            modport_group_list,
28305            modport_group_group: Box::new(modport_group_group),
28306        };
28307        // Calling user action here
28308        self.user_grammar.modport_group(&modport_group_built)?;
28309        self.push(ASTType::ModportGroup(modport_group_built), context);
28310        Ok(())
28311    }
28312
28313    /// Semantic action for production 679:
28314    ///
28315    /// `ModportGroupGroup: LBrace ModportList RBrace;`
28316    ///
28317    #[parol_runtime::function_name::named]
28318    fn modport_group_group_0(
28319        &mut self,
28320        _l_brace: &ParseTreeType<'t>,
28321        _modport_list: &ParseTreeType<'t>,
28322        _r_brace: &ParseTreeType<'t>,
28323    ) -> Result<()> {
28324        let context = function_name!();
28325        trace!("{}", self.trace_item_stack(context));
28326        let r_brace = pop_item!(self, r_brace, RBrace, context);
28327        let modport_list = pop_item!(self, modport_list, ModportList, context);
28328        let l_brace = pop_item!(self, l_brace, LBrace, context);
28329        let modport_group_group_0_built = ModportGroupGroupLBraceModportListRBrace {
28330            l_brace: Box::new(l_brace),
28331            modport_list: Box::new(modport_list),
28332            r_brace: Box::new(r_brace),
28333        };
28334        let modport_group_group_0_built =
28335            ModportGroupGroup::LBraceModportListRBrace(modport_group_group_0_built);
28336        self.push(
28337            ASTType::ModportGroupGroup(modport_group_group_0_built),
28338            context,
28339        );
28340        Ok(())
28341    }
28342
28343    /// Semantic action for production 680:
28344    ///
28345    /// `ModportGroupGroup: ModportItem;`
28346    ///
28347    #[parol_runtime::function_name::named]
28348    fn modport_group_group_1(&mut self, _modport_item: &ParseTreeType<'t>) -> Result<()> {
28349        let context = function_name!();
28350        trace!("{}", self.trace_item_stack(context));
28351        let modport_item = pop_item!(self, modport_item, ModportItem, context);
28352        let modport_group_group_1_built = ModportGroupGroupModportItem {
28353            modport_item: Box::new(modport_item),
28354        };
28355        let modport_group_group_1_built =
28356            ModportGroupGroup::ModportItem(modport_group_group_1_built);
28357        self.push(
28358            ASTType::ModportGroupGroup(modport_group_group_1_built),
28359            context,
28360        );
28361        Ok(())
28362    }
28363
28364    /// Semantic action for production 681:
28365    ///
28366    /// `ModportGroupList /* Vec<T>::Push */: Attribute ModportGroupList;`
28367    ///
28368    #[parol_runtime::function_name::named]
28369    fn modport_group_list_0(
28370        &mut self,
28371        _attribute: &ParseTreeType<'t>,
28372        _modport_group_list: &ParseTreeType<'t>,
28373    ) -> Result<()> {
28374        let context = function_name!();
28375        trace!("{}", self.trace_item_stack(context));
28376        let mut modport_group_list = pop_item!(self, modport_group_list, ModportGroupList, context);
28377        let attribute = pop_item!(self, attribute, Attribute, context);
28378        let modport_group_list_0_built = ModportGroupList {
28379            attribute: Box::new(attribute),
28380        };
28381        // Add an element to the vector
28382        modport_group_list.push(modport_group_list_0_built);
28383        self.push(ASTType::ModportGroupList(modport_group_list), context);
28384        Ok(())
28385    }
28386
28387    /// Semantic action for production 682:
28388    ///
28389    /// `ModportGroupList /* Vec<T>::New */: ;`
28390    ///
28391    #[parol_runtime::function_name::named]
28392    fn modport_group_list_1(&mut self) -> Result<()> {
28393        let context = function_name!();
28394        trace!("{}", self.trace_item_stack(context));
28395        let modport_group_list_1_built = Vec::new();
28396        self.push(
28397            ASTType::ModportGroupList(modport_group_list_1_built),
28398            context,
28399        );
28400        Ok(())
28401    }
28402
28403    /// Semantic action for production 683:
28404    ///
28405    /// `ModportItem: Identifier Colon Direction;`
28406    ///
28407    #[parol_runtime::function_name::named]
28408    fn modport_item(
28409        &mut self,
28410        _identifier: &ParseTreeType<'t>,
28411        _colon: &ParseTreeType<'t>,
28412        _direction: &ParseTreeType<'t>,
28413    ) -> Result<()> {
28414        let context = function_name!();
28415        trace!("{}", self.trace_item_stack(context));
28416        let direction = pop_item!(self, direction, Direction, context);
28417        let colon = pop_item!(self, colon, Colon, context);
28418        let identifier = pop_item!(self, identifier, Identifier, context);
28419        let modport_item_built = ModportItem {
28420            identifier: Box::new(identifier),
28421            colon: Box::new(colon),
28422            direction: Box::new(direction),
28423        };
28424        // Calling user action here
28425        self.user_grammar.modport_item(&modport_item_built)?;
28426        self.push(ASTType::ModportItem(modport_item_built), context);
28427        Ok(())
28428    }
28429
28430    /// Semantic action for production 684:
28431    ///
28432    /// `ModportDefault: Input;`
28433    ///
28434    #[parol_runtime::function_name::named]
28435    fn modport_default_0(&mut self, _input: &ParseTreeType<'t>) -> Result<()> {
28436        let context = function_name!();
28437        trace!("{}", self.trace_item_stack(context));
28438        let input = pop_item!(self, input, Input, context);
28439        let modport_default_0_built = ModportDefaultInput {
28440            input: Box::new(input),
28441        };
28442        let modport_default_0_built = ModportDefault::Input(modport_default_0_built);
28443        // Calling user action here
28444        self.user_grammar
28445            .modport_default(&modport_default_0_built)?;
28446        self.push(ASTType::ModportDefault(modport_default_0_built), context);
28447        Ok(())
28448    }
28449
28450    /// Semantic action for production 685:
28451    ///
28452    /// `ModportDefault: Output;`
28453    ///
28454    #[parol_runtime::function_name::named]
28455    fn modport_default_1(&mut self, _output: &ParseTreeType<'t>) -> Result<()> {
28456        let context = function_name!();
28457        trace!("{}", self.trace_item_stack(context));
28458        let output = pop_item!(self, output, Output, context);
28459        let modport_default_1_built = ModportDefaultOutput {
28460            output: Box::new(output),
28461        };
28462        let modport_default_1_built = ModportDefault::Output(modport_default_1_built);
28463        // Calling user action here
28464        self.user_grammar
28465            .modport_default(&modport_default_1_built)?;
28466        self.push(ASTType::ModportDefault(modport_default_1_built), context);
28467        Ok(())
28468    }
28469
28470    /// Semantic action for production 686:
28471    ///
28472    /// `ModportDefault: Converse LParen Identifier RParen;`
28473    ///
28474    #[parol_runtime::function_name::named]
28475    fn modport_default_2(
28476        &mut self,
28477        _converse: &ParseTreeType<'t>,
28478        _l_paren: &ParseTreeType<'t>,
28479        _identifier: &ParseTreeType<'t>,
28480        _r_paren: &ParseTreeType<'t>,
28481    ) -> Result<()> {
28482        let context = function_name!();
28483        trace!("{}", self.trace_item_stack(context));
28484        let r_paren = pop_item!(self, r_paren, RParen, context);
28485        let identifier = pop_item!(self, identifier, Identifier, context);
28486        let l_paren = pop_item!(self, l_paren, LParen, context);
28487        let converse = pop_item!(self, converse, Converse, context);
28488        let modport_default_2_built = ModportDefaultConverseLParenIdentifierRParen {
28489            converse: Box::new(converse),
28490            l_paren: Box::new(l_paren),
28491            identifier: Box::new(identifier),
28492            r_paren: Box::new(r_paren),
28493        };
28494        let modport_default_2_built =
28495            ModportDefault::ConverseLParenIdentifierRParen(modport_default_2_built);
28496        // Calling user action here
28497        self.user_grammar
28498            .modport_default(&modport_default_2_built)?;
28499        self.push(ASTType::ModportDefault(modport_default_2_built), context);
28500        Ok(())
28501    }
28502
28503    /// Semantic action for production 687:
28504    ///
28505    /// `EnumDeclaration: Enum Identifier EnumDeclarationOpt /* Option */ LBrace EnumList RBrace;`
28506    ///
28507    #[parol_runtime::function_name::named]
28508    fn enum_declaration(
28509        &mut self,
28510        _enum: &ParseTreeType<'t>,
28511        _identifier: &ParseTreeType<'t>,
28512        _enum_declaration_opt: &ParseTreeType<'t>,
28513        _l_brace: &ParseTreeType<'t>,
28514        _enum_list: &ParseTreeType<'t>,
28515        _r_brace: &ParseTreeType<'t>,
28516    ) -> Result<()> {
28517        let context = function_name!();
28518        trace!("{}", self.trace_item_stack(context));
28519        let r_brace = pop_item!(self, r_brace, RBrace, context);
28520        let enum_list = pop_item!(self, enum_list, EnumList, context);
28521        let l_brace = pop_item!(self, l_brace, LBrace, context);
28522        let enum_declaration_opt =
28523            pop_item!(self, enum_declaration_opt, EnumDeclarationOpt, context);
28524        let identifier = pop_item!(self, identifier, Identifier, context);
28525        let r#enum = pop_item!(self, r#enum, Enum, context);
28526        let enum_declaration_built = EnumDeclaration {
28527            r#enum: Box::new(r#enum),
28528            identifier: Box::new(identifier),
28529            enum_declaration_opt,
28530            l_brace: Box::new(l_brace),
28531            enum_list: Box::new(enum_list),
28532            r_brace: Box::new(r_brace),
28533        };
28534        // Calling user action here
28535        self.user_grammar
28536            .enum_declaration(&enum_declaration_built)?;
28537        self.push(ASTType::EnumDeclaration(enum_declaration_built), context);
28538        Ok(())
28539    }
28540
28541    /// Semantic action for production 688:
28542    ///
28543    /// `EnumDeclarationOpt /* Option<T>::Some */: Colon ScalarType;`
28544    ///
28545    #[parol_runtime::function_name::named]
28546    fn enum_declaration_opt_0(
28547        &mut self,
28548        _colon: &ParseTreeType<'t>,
28549        _scalar_type: &ParseTreeType<'t>,
28550    ) -> Result<()> {
28551        let context = function_name!();
28552        trace!("{}", self.trace_item_stack(context));
28553        let scalar_type = pop_item!(self, scalar_type, ScalarType, context);
28554        let colon = pop_item!(self, colon, Colon, context);
28555        let enum_declaration_opt_0_built = EnumDeclarationOpt {
28556            colon: Box::new(colon),
28557            scalar_type: Box::new(scalar_type),
28558        };
28559        self.push(
28560            ASTType::EnumDeclarationOpt(Some(enum_declaration_opt_0_built)),
28561            context,
28562        );
28563        Ok(())
28564    }
28565
28566    /// Semantic action for production 689:
28567    ///
28568    /// `EnumDeclarationOpt /* Option<T>::None */: ;`
28569    ///
28570    #[parol_runtime::function_name::named]
28571    fn enum_declaration_opt_1(&mut self) -> Result<()> {
28572        let context = function_name!();
28573        trace!("{}", self.trace_item_stack(context));
28574        self.push(ASTType::EnumDeclarationOpt(None), context);
28575        Ok(())
28576    }
28577
28578    /// Semantic action for production 690:
28579    ///
28580    /// `EnumList: EnumGroup EnumListList /* Vec */ EnumListOpt /* Option */;`
28581    ///
28582    #[parol_runtime::function_name::named]
28583    fn enum_list(
28584        &mut self,
28585        _enum_group: &ParseTreeType<'t>,
28586        _enum_list_list: &ParseTreeType<'t>,
28587        _enum_list_opt: &ParseTreeType<'t>,
28588    ) -> Result<()> {
28589        let context = function_name!();
28590        trace!("{}", self.trace_item_stack(context));
28591        let enum_list_opt = pop_item!(self, enum_list_opt, EnumListOpt, context);
28592        let enum_list_list = pop_and_reverse_item!(self, enum_list_list, EnumListList, context);
28593        let enum_group = pop_item!(self, enum_group, EnumGroup, context);
28594        let enum_list_built = EnumList {
28595            enum_group: Box::new(enum_group),
28596            enum_list_list,
28597            enum_list_opt,
28598        };
28599        // Calling user action here
28600        self.user_grammar.enum_list(&enum_list_built)?;
28601        self.push(ASTType::EnumList(enum_list_built), context);
28602        Ok(())
28603    }
28604
28605    /// Semantic action for production 691:
28606    ///
28607    /// `EnumListList /* Vec<T>::Push */: Comma EnumGroup EnumListList;`
28608    ///
28609    #[parol_runtime::function_name::named]
28610    fn enum_list_list_0(
28611        &mut self,
28612        _comma: &ParseTreeType<'t>,
28613        _enum_group: &ParseTreeType<'t>,
28614        _enum_list_list: &ParseTreeType<'t>,
28615    ) -> Result<()> {
28616        let context = function_name!();
28617        trace!("{}", self.trace_item_stack(context));
28618        let mut enum_list_list = pop_item!(self, enum_list_list, EnumListList, context);
28619        let enum_group = pop_item!(self, enum_group, EnumGroup, context);
28620        let comma = pop_item!(self, comma, Comma, context);
28621        let enum_list_list_0_built = EnumListList {
28622            enum_group: Box::new(enum_group),
28623            comma: Box::new(comma),
28624        };
28625        // Add an element to the vector
28626        enum_list_list.push(enum_list_list_0_built);
28627        self.push(ASTType::EnumListList(enum_list_list), context);
28628        Ok(())
28629    }
28630
28631    /// Semantic action for production 692:
28632    ///
28633    /// `EnumListList /* Vec<T>::New */: ;`
28634    ///
28635    #[parol_runtime::function_name::named]
28636    fn enum_list_list_1(&mut self) -> Result<()> {
28637        let context = function_name!();
28638        trace!("{}", self.trace_item_stack(context));
28639        let enum_list_list_1_built = Vec::new();
28640        self.push(ASTType::EnumListList(enum_list_list_1_built), context);
28641        Ok(())
28642    }
28643
28644    /// Semantic action for production 693:
28645    ///
28646    /// `EnumListOpt /* Option<T>::Some */: Comma;`
28647    ///
28648    #[parol_runtime::function_name::named]
28649    fn enum_list_opt_0(&mut self, _comma: &ParseTreeType<'t>) -> Result<()> {
28650        let context = function_name!();
28651        trace!("{}", self.trace_item_stack(context));
28652        let comma = pop_item!(self, comma, Comma, context);
28653        let enum_list_opt_0_built = EnumListOpt {
28654            comma: Box::new(comma),
28655        };
28656        self.push(ASTType::EnumListOpt(Some(enum_list_opt_0_built)), context);
28657        Ok(())
28658    }
28659
28660    /// Semantic action for production 694:
28661    ///
28662    /// `EnumListOpt /* Option<T>::None */: ;`
28663    ///
28664    #[parol_runtime::function_name::named]
28665    fn enum_list_opt_1(&mut self) -> Result<()> {
28666        let context = function_name!();
28667        trace!("{}", self.trace_item_stack(context));
28668        self.push(ASTType::EnumListOpt(None), context);
28669        Ok(())
28670    }
28671
28672    /// Semantic action for production 695:
28673    ///
28674    /// `EnumGroup: EnumGroupList /* Vec */ EnumGroupGroup;`
28675    ///
28676    #[parol_runtime::function_name::named]
28677    fn enum_group(
28678        &mut self,
28679        _enum_group_list: &ParseTreeType<'t>,
28680        _enum_group_group: &ParseTreeType<'t>,
28681    ) -> Result<()> {
28682        let context = function_name!();
28683        trace!("{}", self.trace_item_stack(context));
28684        let enum_group_group = pop_item!(self, enum_group_group, EnumGroupGroup, context);
28685        let enum_group_list = pop_and_reverse_item!(self, enum_group_list, EnumGroupList, context);
28686        let enum_group_built = EnumGroup {
28687            enum_group_list,
28688            enum_group_group: Box::new(enum_group_group),
28689        };
28690        // Calling user action here
28691        self.user_grammar.enum_group(&enum_group_built)?;
28692        self.push(ASTType::EnumGroup(enum_group_built), context);
28693        Ok(())
28694    }
28695
28696    /// Semantic action for production 696:
28697    ///
28698    /// `EnumGroupGroup: LBrace EnumList RBrace;`
28699    ///
28700    #[parol_runtime::function_name::named]
28701    fn enum_group_group_0(
28702        &mut self,
28703        _l_brace: &ParseTreeType<'t>,
28704        _enum_list: &ParseTreeType<'t>,
28705        _r_brace: &ParseTreeType<'t>,
28706    ) -> Result<()> {
28707        let context = function_name!();
28708        trace!("{}", self.trace_item_stack(context));
28709        let r_brace = pop_item!(self, r_brace, RBrace, context);
28710        let enum_list = pop_item!(self, enum_list, EnumList, context);
28711        let l_brace = pop_item!(self, l_brace, LBrace, context);
28712        let enum_group_group_0_built = EnumGroupGroupLBraceEnumListRBrace {
28713            l_brace: Box::new(l_brace),
28714            enum_list: Box::new(enum_list),
28715            r_brace: Box::new(r_brace),
28716        };
28717        let enum_group_group_0_built =
28718            EnumGroupGroup::LBraceEnumListRBrace(enum_group_group_0_built);
28719        self.push(ASTType::EnumGroupGroup(enum_group_group_0_built), context);
28720        Ok(())
28721    }
28722
28723    /// Semantic action for production 697:
28724    ///
28725    /// `EnumGroupGroup: EnumItem;`
28726    ///
28727    #[parol_runtime::function_name::named]
28728    fn enum_group_group_1(&mut self, _enum_item: &ParseTreeType<'t>) -> Result<()> {
28729        let context = function_name!();
28730        trace!("{}", self.trace_item_stack(context));
28731        let enum_item = pop_item!(self, enum_item, EnumItem, context);
28732        let enum_group_group_1_built = EnumGroupGroupEnumItem {
28733            enum_item: Box::new(enum_item),
28734        };
28735        let enum_group_group_1_built = EnumGroupGroup::EnumItem(enum_group_group_1_built);
28736        self.push(ASTType::EnumGroupGroup(enum_group_group_1_built), context);
28737        Ok(())
28738    }
28739
28740    /// Semantic action for production 698:
28741    ///
28742    /// `EnumGroupList /* Vec<T>::Push */: Attribute EnumGroupList;`
28743    ///
28744    #[parol_runtime::function_name::named]
28745    fn enum_group_list_0(
28746        &mut self,
28747        _attribute: &ParseTreeType<'t>,
28748        _enum_group_list: &ParseTreeType<'t>,
28749    ) -> Result<()> {
28750        let context = function_name!();
28751        trace!("{}", self.trace_item_stack(context));
28752        let mut enum_group_list = pop_item!(self, enum_group_list, EnumGroupList, context);
28753        let attribute = pop_item!(self, attribute, Attribute, context);
28754        let enum_group_list_0_built = EnumGroupList {
28755            attribute: Box::new(attribute),
28756        };
28757        // Add an element to the vector
28758        enum_group_list.push(enum_group_list_0_built);
28759        self.push(ASTType::EnumGroupList(enum_group_list), context);
28760        Ok(())
28761    }
28762
28763    /// Semantic action for production 699:
28764    ///
28765    /// `EnumGroupList /* Vec<T>::New */: ;`
28766    ///
28767    #[parol_runtime::function_name::named]
28768    fn enum_group_list_1(&mut self) -> Result<()> {
28769        let context = function_name!();
28770        trace!("{}", self.trace_item_stack(context));
28771        let enum_group_list_1_built = Vec::new();
28772        self.push(ASTType::EnumGroupList(enum_group_list_1_built), context);
28773        Ok(())
28774    }
28775
28776    /// Semantic action for production 700:
28777    ///
28778    /// `EnumItem: Identifier EnumItemOpt /* Option */;`
28779    ///
28780    #[parol_runtime::function_name::named]
28781    fn enum_item(
28782        &mut self,
28783        _identifier: &ParseTreeType<'t>,
28784        _enum_item_opt: &ParseTreeType<'t>,
28785    ) -> Result<()> {
28786        let context = function_name!();
28787        trace!("{}", self.trace_item_stack(context));
28788        let enum_item_opt = pop_item!(self, enum_item_opt, EnumItemOpt, context);
28789        let identifier = pop_item!(self, identifier, Identifier, context);
28790        let enum_item_built = EnumItem {
28791            identifier: Box::new(identifier),
28792            enum_item_opt,
28793        };
28794        // Calling user action here
28795        self.user_grammar.enum_item(&enum_item_built)?;
28796        self.push(ASTType::EnumItem(enum_item_built), context);
28797        Ok(())
28798    }
28799
28800    /// Semantic action for production 701:
28801    ///
28802    /// `EnumItemOpt /* Option<T>::Some */: Equ Expression;`
28803    ///
28804    #[parol_runtime::function_name::named]
28805    fn enum_item_opt_0(
28806        &mut self,
28807        _equ: &ParseTreeType<'t>,
28808        _expression: &ParseTreeType<'t>,
28809    ) -> Result<()> {
28810        let context = function_name!();
28811        trace!("{}", self.trace_item_stack(context));
28812        let expression = pop_item!(self, expression, Expression, context);
28813        let equ = pop_item!(self, equ, Equ, context);
28814        let enum_item_opt_0_built = EnumItemOpt {
28815            equ: Box::new(equ),
28816            expression: Box::new(expression),
28817        };
28818        self.push(ASTType::EnumItemOpt(Some(enum_item_opt_0_built)), context);
28819        Ok(())
28820    }
28821
28822    /// Semantic action for production 702:
28823    ///
28824    /// `EnumItemOpt /* Option<T>::None */: ;`
28825    ///
28826    #[parol_runtime::function_name::named]
28827    fn enum_item_opt_1(&mut self) -> Result<()> {
28828        let context = function_name!();
28829        trace!("{}", self.trace_item_stack(context));
28830        self.push(ASTType::EnumItemOpt(None), context);
28831        Ok(())
28832    }
28833
28834    /// Semantic action for production 703:
28835    ///
28836    /// `StructUnion: Struct;`
28837    ///
28838    #[parol_runtime::function_name::named]
28839    fn struct_union_0(&mut self, _struct: &ParseTreeType<'t>) -> Result<()> {
28840        let context = function_name!();
28841        trace!("{}", self.trace_item_stack(context));
28842        let r#struct = pop_item!(self, r#struct, Struct, context);
28843        let struct_union_0_built = StructUnionStruct {
28844            r#struct: Box::new(r#struct),
28845        };
28846        let struct_union_0_built = StructUnion::Struct(struct_union_0_built);
28847        // Calling user action here
28848        self.user_grammar.struct_union(&struct_union_0_built)?;
28849        self.push(ASTType::StructUnion(struct_union_0_built), context);
28850        Ok(())
28851    }
28852
28853    /// Semantic action for production 704:
28854    ///
28855    /// `StructUnion: Union;`
28856    ///
28857    #[parol_runtime::function_name::named]
28858    fn struct_union_1(&mut self, _union: &ParseTreeType<'t>) -> Result<()> {
28859        let context = function_name!();
28860        trace!("{}", self.trace_item_stack(context));
28861        let r#union = pop_item!(self, r#union, Union, context);
28862        let struct_union_1_built = StructUnionUnion {
28863            r#union: Box::new(r#union),
28864        };
28865        let struct_union_1_built = StructUnion::Union(struct_union_1_built);
28866        // Calling user action here
28867        self.user_grammar.struct_union(&struct_union_1_built)?;
28868        self.push(ASTType::StructUnion(struct_union_1_built), context);
28869        Ok(())
28870    }
28871
28872    /// Semantic action for production 705:
28873    ///
28874    /// `StructUnionDeclaration: StructUnion Identifier StructUnionDeclarationOpt /* Option */ LBrace StructUnionList RBrace;`
28875    ///
28876    #[parol_runtime::function_name::named]
28877    fn struct_union_declaration(
28878        &mut self,
28879        _struct_union: &ParseTreeType<'t>,
28880        _identifier: &ParseTreeType<'t>,
28881        _struct_union_declaration_opt: &ParseTreeType<'t>,
28882        _l_brace: &ParseTreeType<'t>,
28883        _struct_union_list: &ParseTreeType<'t>,
28884        _r_brace: &ParseTreeType<'t>,
28885    ) -> Result<()> {
28886        let context = function_name!();
28887        trace!("{}", self.trace_item_stack(context));
28888        let r_brace = pop_item!(self, r_brace, RBrace, context);
28889        let struct_union_list = pop_item!(self, struct_union_list, StructUnionList, context);
28890        let l_brace = pop_item!(self, l_brace, LBrace, context);
28891        let struct_union_declaration_opt = pop_item!(
28892            self,
28893            struct_union_declaration_opt,
28894            StructUnionDeclarationOpt,
28895            context
28896        );
28897        let identifier = pop_item!(self, identifier, Identifier, context);
28898        let struct_union = pop_item!(self, struct_union, StructUnion, context);
28899        let struct_union_declaration_built = StructUnionDeclaration {
28900            struct_union: Box::new(struct_union),
28901            identifier: Box::new(identifier),
28902            struct_union_declaration_opt,
28903            l_brace: Box::new(l_brace),
28904            struct_union_list: Box::new(struct_union_list),
28905            r_brace: Box::new(r_brace),
28906        };
28907        // Calling user action here
28908        self.user_grammar
28909            .struct_union_declaration(&struct_union_declaration_built)?;
28910        self.push(
28911            ASTType::StructUnionDeclaration(struct_union_declaration_built),
28912            context,
28913        );
28914        Ok(())
28915    }
28916
28917    /// Semantic action for production 706:
28918    ///
28919    /// `StructUnionDeclarationOpt /* Option<T>::Some */: WithGenericParameter;`
28920    ///
28921    #[parol_runtime::function_name::named]
28922    fn struct_union_declaration_opt_0(
28923        &mut self,
28924        _with_generic_parameter: &ParseTreeType<'t>,
28925    ) -> Result<()> {
28926        let context = function_name!();
28927        trace!("{}", self.trace_item_stack(context));
28928        let with_generic_parameter =
28929            pop_item!(self, with_generic_parameter, WithGenericParameter, context);
28930        let struct_union_declaration_opt_0_built = StructUnionDeclarationOpt {
28931            with_generic_parameter: Box::new(with_generic_parameter),
28932        };
28933        self.push(
28934            ASTType::StructUnionDeclarationOpt(Some(struct_union_declaration_opt_0_built)),
28935            context,
28936        );
28937        Ok(())
28938    }
28939
28940    /// Semantic action for production 707:
28941    ///
28942    /// `StructUnionDeclarationOpt /* Option<T>::None */: ;`
28943    ///
28944    #[parol_runtime::function_name::named]
28945    fn struct_union_declaration_opt_1(&mut self) -> Result<()> {
28946        let context = function_name!();
28947        trace!("{}", self.trace_item_stack(context));
28948        self.push(ASTType::StructUnionDeclarationOpt(None), context);
28949        Ok(())
28950    }
28951
28952    /// Semantic action for production 708:
28953    ///
28954    /// `StructUnionList: StructUnionGroup StructUnionListList /* Vec */ StructUnionListOpt /* Option */;`
28955    ///
28956    #[parol_runtime::function_name::named]
28957    fn struct_union_list(
28958        &mut self,
28959        _struct_union_group: &ParseTreeType<'t>,
28960        _struct_union_list_list: &ParseTreeType<'t>,
28961        _struct_union_list_opt: &ParseTreeType<'t>,
28962    ) -> Result<()> {
28963        let context = function_name!();
28964        trace!("{}", self.trace_item_stack(context));
28965        let struct_union_list_opt =
28966            pop_item!(self, struct_union_list_opt, StructUnionListOpt, context);
28967        let struct_union_list_list =
28968            pop_and_reverse_item!(self, struct_union_list_list, StructUnionListList, context);
28969        let struct_union_group = pop_item!(self, struct_union_group, StructUnionGroup, context);
28970        let struct_union_list_built = StructUnionList {
28971            struct_union_group: Box::new(struct_union_group),
28972            struct_union_list_list,
28973            struct_union_list_opt,
28974        };
28975        // Calling user action here
28976        self.user_grammar
28977            .struct_union_list(&struct_union_list_built)?;
28978        self.push(ASTType::StructUnionList(struct_union_list_built), context);
28979        Ok(())
28980    }
28981
28982    /// Semantic action for production 709:
28983    ///
28984    /// `StructUnionListList /* Vec<T>::Push */: Comma StructUnionGroup StructUnionListList;`
28985    ///
28986    #[parol_runtime::function_name::named]
28987    fn struct_union_list_list_0(
28988        &mut self,
28989        _comma: &ParseTreeType<'t>,
28990        _struct_union_group: &ParseTreeType<'t>,
28991        _struct_union_list_list: &ParseTreeType<'t>,
28992    ) -> Result<()> {
28993        let context = function_name!();
28994        trace!("{}", self.trace_item_stack(context));
28995        let mut struct_union_list_list =
28996            pop_item!(self, struct_union_list_list, StructUnionListList, context);
28997        let struct_union_group = pop_item!(self, struct_union_group, StructUnionGroup, context);
28998        let comma = pop_item!(self, comma, Comma, context);
28999        let struct_union_list_list_0_built = StructUnionListList {
29000            struct_union_group: Box::new(struct_union_group),
29001            comma: Box::new(comma),
29002        };
29003        // Add an element to the vector
29004        struct_union_list_list.push(struct_union_list_list_0_built);
29005        self.push(
29006            ASTType::StructUnionListList(struct_union_list_list),
29007            context,
29008        );
29009        Ok(())
29010    }
29011
29012    /// Semantic action for production 710:
29013    ///
29014    /// `StructUnionListList /* Vec<T>::New */: ;`
29015    ///
29016    #[parol_runtime::function_name::named]
29017    fn struct_union_list_list_1(&mut self) -> Result<()> {
29018        let context = function_name!();
29019        trace!("{}", self.trace_item_stack(context));
29020        let struct_union_list_list_1_built = Vec::new();
29021        self.push(
29022            ASTType::StructUnionListList(struct_union_list_list_1_built),
29023            context,
29024        );
29025        Ok(())
29026    }
29027
29028    /// Semantic action for production 711:
29029    ///
29030    /// `StructUnionListOpt /* Option<T>::Some */: Comma;`
29031    ///
29032    #[parol_runtime::function_name::named]
29033    fn struct_union_list_opt_0(&mut self, _comma: &ParseTreeType<'t>) -> Result<()> {
29034        let context = function_name!();
29035        trace!("{}", self.trace_item_stack(context));
29036        let comma = pop_item!(self, comma, Comma, context);
29037        let struct_union_list_opt_0_built = StructUnionListOpt {
29038            comma: Box::new(comma),
29039        };
29040        self.push(
29041            ASTType::StructUnionListOpt(Some(struct_union_list_opt_0_built)),
29042            context,
29043        );
29044        Ok(())
29045    }
29046
29047    /// Semantic action for production 712:
29048    ///
29049    /// `StructUnionListOpt /* Option<T>::None */: ;`
29050    ///
29051    #[parol_runtime::function_name::named]
29052    fn struct_union_list_opt_1(&mut self) -> Result<()> {
29053        let context = function_name!();
29054        trace!("{}", self.trace_item_stack(context));
29055        self.push(ASTType::StructUnionListOpt(None), context);
29056        Ok(())
29057    }
29058
29059    /// Semantic action for production 713:
29060    ///
29061    /// `StructUnionGroup: StructUnionGroupList /* Vec */ StructUnionGroupGroup;`
29062    ///
29063    #[parol_runtime::function_name::named]
29064    fn struct_union_group(
29065        &mut self,
29066        _struct_union_group_list: &ParseTreeType<'t>,
29067        _struct_union_group_group: &ParseTreeType<'t>,
29068    ) -> Result<()> {
29069        let context = function_name!();
29070        trace!("{}", self.trace_item_stack(context));
29071        let struct_union_group_group = pop_item!(
29072            self,
29073            struct_union_group_group,
29074            StructUnionGroupGroup,
29075            context
29076        );
29077        let struct_union_group_list =
29078            pop_and_reverse_item!(self, struct_union_group_list, StructUnionGroupList, context);
29079        let struct_union_group_built = StructUnionGroup {
29080            struct_union_group_list,
29081            struct_union_group_group: Box::new(struct_union_group_group),
29082        };
29083        // Calling user action here
29084        self.user_grammar
29085            .struct_union_group(&struct_union_group_built)?;
29086        self.push(ASTType::StructUnionGroup(struct_union_group_built), context);
29087        Ok(())
29088    }
29089
29090    /// Semantic action for production 714:
29091    ///
29092    /// `StructUnionGroupGroup: LBrace StructUnionList RBrace;`
29093    ///
29094    #[parol_runtime::function_name::named]
29095    fn struct_union_group_group_0(
29096        &mut self,
29097        _l_brace: &ParseTreeType<'t>,
29098        _struct_union_list: &ParseTreeType<'t>,
29099        _r_brace: &ParseTreeType<'t>,
29100    ) -> Result<()> {
29101        let context = function_name!();
29102        trace!("{}", self.trace_item_stack(context));
29103        let r_brace = pop_item!(self, r_brace, RBrace, context);
29104        let struct_union_list = pop_item!(self, struct_union_list, StructUnionList, context);
29105        let l_brace = pop_item!(self, l_brace, LBrace, context);
29106        let struct_union_group_group_0_built = StructUnionGroupGroupLBraceStructUnionListRBrace {
29107            l_brace: Box::new(l_brace),
29108            struct_union_list: Box::new(struct_union_list),
29109            r_brace: Box::new(r_brace),
29110        };
29111        let struct_union_group_group_0_built =
29112            StructUnionGroupGroup::LBraceStructUnionListRBrace(struct_union_group_group_0_built);
29113        self.push(
29114            ASTType::StructUnionGroupGroup(struct_union_group_group_0_built),
29115            context,
29116        );
29117        Ok(())
29118    }
29119
29120    /// Semantic action for production 715:
29121    ///
29122    /// `StructUnionGroupGroup: StructUnionItem;`
29123    ///
29124    #[parol_runtime::function_name::named]
29125    fn struct_union_group_group_1(&mut self, _struct_union_item: &ParseTreeType<'t>) -> Result<()> {
29126        let context = function_name!();
29127        trace!("{}", self.trace_item_stack(context));
29128        let struct_union_item = pop_item!(self, struct_union_item, StructUnionItem, context);
29129        let struct_union_group_group_1_built = StructUnionGroupGroupStructUnionItem {
29130            struct_union_item: Box::new(struct_union_item),
29131        };
29132        let struct_union_group_group_1_built =
29133            StructUnionGroupGroup::StructUnionItem(struct_union_group_group_1_built);
29134        self.push(
29135            ASTType::StructUnionGroupGroup(struct_union_group_group_1_built),
29136            context,
29137        );
29138        Ok(())
29139    }
29140
29141    /// Semantic action for production 716:
29142    ///
29143    /// `StructUnionGroupList /* Vec<T>::Push */: Attribute StructUnionGroupList;`
29144    ///
29145    #[parol_runtime::function_name::named]
29146    fn struct_union_group_list_0(
29147        &mut self,
29148        _attribute: &ParseTreeType<'t>,
29149        _struct_union_group_list: &ParseTreeType<'t>,
29150    ) -> Result<()> {
29151        let context = function_name!();
29152        trace!("{}", self.trace_item_stack(context));
29153        let mut struct_union_group_list =
29154            pop_item!(self, struct_union_group_list, StructUnionGroupList, context);
29155        let attribute = pop_item!(self, attribute, Attribute, context);
29156        let struct_union_group_list_0_built = StructUnionGroupList {
29157            attribute: Box::new(attribute),
29158        };
29159        // Add an element to the vector
29160        struct_union_group_list.push(struct_union_group_list_0_built);
29161        self.push(
29162            ASTType::StructUnionGroupList(struct_union_group_list),
29163            context,
29164        );
29165        Ok(())
29166    }
29167
29168    /// Semantic action for production 717:
29169    ///
29170    /// `StructUnionGroupList /* Vec<T>::New */: ;`
29171    ///
29172    #[parol_runtime::function_name::named]
29173    fn struct_union_group_list_1(&mut self) -> Result<()> {
29174        let context = function_name!();
29175        trace!("{}", self.trace_item_stack(context));
29176        let struct_union_group_list_1_built = Vec::new();
29177        self.push(
29178            ASTType::StructUnionGroupList(struct_union_group_list_1_built),
29179            context,
29180        );
29181        Ok(())
29182    }
29183
29184    /// Semantic action for production 718:
29185    ///
29186    /// `StructUnionItem: Identifier Colon ScalarType;`
29187    ///
29188    #[parol_runtime::function_name::named]
29189    fn struct_union_item(
29190        &mut self,
29191        _identifier: &ParseTreeType<'t>,
29192        _colon: &ParseTreeType<'t>,
29193        _scalar_type: &ParseTreeType<'t>,
29194    ) -> Result<()> {
29195        let context = function_name!();
29196        trace!("{}", self.trace_item_stack(context));
29197        let scalar_type = pop_item!(self, scalar_type, ScalarType, context);
29198        let colon = pop_item!(self, colon, Colon, context);
29199        let identifier = pop_item!(self, identifier, Identifier, context);
29200        let struct_union_item_built = StructUnionItem {
29201            identifier: Box::new(identifier),
29202            colon: Box::new(colon),
29203            scalar_type: Box::new(scalar_type),
29204        };
29205        // Calling user action here
29206        self.user_grammar
29207            .struct_union_item(&struct_union_item_built)?;
29208        self.push(ASTType::StructUnionItem(struct_union_item_built), context);
29209        Ok(())
29210    }
29211
29212    /// Semantic action for production 719:
29213    ///
29214    /// `InitialDeclaration: Initial StatementBlock;`
29215    ///
29216    #[parol_runtime::function_name::named]
29217    fn initial_declaration(
29218        &mut self,
29219        _initial: &ParseTreeType<'t>,
29220        _statement_block: &ParseTreeType<'t>,
29221    ) -> Result<()> {
29222        let context = function_name!();
29223        trace!("{}", self.trace_item_stack(context));
29224        let statement_block = pop_item!(self, statement_block, StatementBlock, context);
29225        let initial = pop_item!(self, initial, Initial, context);
29226        let initial_declaration_built = InitialDeclaration {
29227            initial: Box::new(initial),
29228            statement_block: Box::new(statement_block),
29229        };
29230        // Calling user action here
29231        self.user_grammar
29232            .initial_declaration(&initial_declaration_built)?;
29233        self.push(
29234            ASTType::InitialDeclaration(initial_declaration_built),
29235            context,
29236        );
29237        Ok(())
29238    }
29239
29240    /// Semantic action for production 720:
29241    ///
29242    /// `FinalDeclaration: Final StatementBlock;`
29243    ///
29244    #[parol_runtime::function_name::named]
29245    fn final_declaration(
29246        &mut self,
29247        _final: &ParseTreeType<'t>,
29248        _statement_block: &ParseTreeType<'t>,
29249    ) -> Result<()> {
29250        let context = function_name!();
29251        trace!("{}", self.trace_item_stack(context));
29252        let statement_block = pop_item!(self, statement_block, StatementBlock, context);
29253        let r#final = pop_item!(self, r#final, Final, context);
29254        let final_declaration_built = FinalDeclaration {
29255            r#final: Box::new(r#final),
29256            statement_block: Box::new(statement_block),
29257        };
29258        // Calling user action here
29259        self.user_grammar
29260            .final_declaration(&final_declaration_built)?;
29261        self.push(ASTType::FinalDeclaration(final_declaration_built), context);
29262        Ok(())
29263    }
29264
29265    /// Semantic action for production 721:
29266    ///
29267    /// `InstDeclaration: Inst Identifier Colon InstDeclarationOpt /* Option */ ScopedIdentifier InstDeclarationOpt0 /* Option */ InstDeclarationOpt1 /* Option */ InstDeclarationOpt2 /* Option */ Semicolon;`
29268    ///
29269    #[parol_runtime::function_name::named]
29270    fn inst_declaration(
29271        &mut self,
29272        _inst: &ParseTreeType<'t>,
29273        _identifier: &ParseTreeType<'t>,
29274        _colon: &ParseTreeType<'t>,
29275        _inst_declaration_opt: &ParseTreeType<'t>,
29276        _scoped_identifier: &ParseTreeType<'t>,
29277        _inst_declaration_opt0: &ParseTreeType<'t>,
29278        _inst_declaration_opt1: &ParseTreeType<'t>,
29279        _inst_declaration_opt2: &ParseTreeType<'t>,
29280        _semicolon: &ParseTreeType<'t>,
29281    ) -> Result<()> {
29282        let context = function_name!();
29283        trace!("{}", self.trace_item_stack(context));
29284        let semicolon = pop_item!(self, semicolon, Semicolon, context);
29285        let inst_declaration_opt2 =
29286            pop_item!(self, inst_declaration_opt2, InstDeclarationOpt2, context);
29287        let inst_declaration_opt1 =
29288            pop_item!(self, inst_declaration_opt1, InstDeclarationOpt1, context);
29289        let inst_declaration_opt0 =
29290            pop_item!(self, inst_declaration_opt0, InstDeclarationOpt0, context);
29291        let scoped_identifier = pop_item!(self, scoped_identifier, ScopedIdentifier, context);
29292        let inst_declaration_opt =
29293            pop_item!(self, inst_declaration_opt, InstDeclarationOpt, context);
29294        let colon = pop_item!(self, colon, Colon, context);
29295        let identifier = pop_item!(self, identifier, Identifier, context);
29296        let inst = pop_item!(self, inst, Inst, context);
29297        let inst_declaration_built = InstDeclaration {
29298            inst: Box::new(inst),
29299            identifier: Box::new(identifier),
29300            colon: Box::new(colon),
29301            inst_declaration_opt,
29302            scoped_identifier: Box::new(scoped_identifier),
29303            inst_declaration_opt0,
29304            inst_declaration_opt1,
29305            inst_declaration_opt2,
29306            semicolon: Box::new(semicolon),
29307        };
29308        // Calling user action here
29309        self.user_grammar
29310            .inst_declaration(&inst_declaration_built)?;
29311        self.push(ASTType::InstDeclaration(inst_declaration_built), context);
29312        Ok(())
29313    }
29314
29315    /// Semantic action for production 722:
29316    ///
29317    /// `InstDeclarationOpt2 /* Option<T>::Some */: LParen InstDeclarationOpt3 /* Option */ RParen;`
29318    ///
29319    #[parol_runtime::function_name::named]
29320    fn inst_declaration_opt2_0(
29321        &mut self,
29322        _l_paren: &ParseTreeType<'t>,
29323        _inst_declaration_opt3: &ParseTreeType<'t>,
29324        _r_paren: &ParseTreeType<'t>,
29325    ) -> Result<()> {
29326        let context = function_name!();
29327        trace!("{}", self.trace_item_stack(context));
29328        let r_paren = pop_item!(self, r_paren, RParen, context);
29329        let inst_declaration_opt3 =
29330            pop_item!(self, inst_declaration_opt3, InstDeclarationOpt3, context);
29331        let l_paren = pop_item!(self, l_paren, LParen, context);
29332        let inst_declaration_opt2_0_built = InstDeclarationOpt2 {
29333            l_paren: Box::new(l_paren),
29334            inst_declaration_opt3,
29335            r_paren: Box::new(r_paren),
29336        };
29337        self.push(
29338            ASTType::InstDeclarationOpt2(Some(inst_declaration_opt2_0_built)),
29339            context,
29340        );
29341        Ok(())
29342    }
29343
29344    /// Semantic action for production 723:
29345    ///
29346    /// `InstDeclarationOpt3 /* Option<T>::Some */: InstPortList;`
29347    ///
29348    #[parol_runtime::function_name::named]
29349    fn inst_declaration_opt3_0(&mut self, _inst_port_list: &ParseTreeType<'t>) -> Result<()> {
29350        let context = function_name!();
29351        trace!("{}", self.trace_item_stack(context));
29352        let inst_port_list = pop_item!(self, inst_port_list, InstPortList, context);
29353        let inst_declaration_opt3_0_built = InstDeclarationOpt3 {
29354            inst_port_list: Box::new(inst_port_list),
29355        };
29356        self.push(
29357            ASTType::InstDeclarationOpt3(Some(inst_declaration_opt3_0_built)),
29358            context,
29359        );
29360        Ok(())
29361    }
29362
29363    /// Semantic action for production 724:
29364    ///
29365    /// `InstDeclarationOpt3 /* Option<T>::None */: ;`
29366    ///
29367    #[parol_runtime::function_name::named]
29368    fn inst_declaration_opt3_1(&mut self) -> Result<()> {
29369        let context = function_name!();
29370        trace!("{}", self.trace_item_stack(context));
29371        self.push(ASTType::InstDeclarationOpt3(None), context);
29372        Ok(())
29373    }
29374
29375    /// Semantic action for production 725:
29376    ///
29377    /// `InstDeclarationOpt2 /* Option<T>::None */: ;`
29378    ///
29379    #[parol_runtime::function_name::named]
29380    fn inst_declaration_opt2_1(&mut self) -> Result<()> {
29381        let context = function_name!();
29382        trace!("{}", self.trace_item_stack(context));
29383        self.push(ASTType::InstDeclarationOpt2(None), context);
29384        Ok(())
29385    }
29386
29387    /// Semantic action for production 726:
29388    ///
29389    /// `InstDeclarationOpt1 /* Option<T>::Some */: InstParameter;`
29390    ///
29391    #[parol_runtime::function_name::named]
29392    fn inst_declaration_opt1_0(&mut self, _inst_parameter: &ParseTreeType<'t>) -> Result<()> {
29393        let context = function_name!();
29394        trace!("{}", self.trace_item_stack(context));
29395        let inst_parameter = pop_item!(self, inst_parameter, InstParameter, context);
29396        let inst_declaration_opt1_0_built = InstDeclarationOpt1 {
29397            inst_parameter: Box::new(inst_parameter),
29398        };
29399        self.push(
29400            ASTType::InstDeclarationOpt1(Some(inst_declaration_opt1_0_built)),
29401            context,
29402        );
29403        Ok(())
29404    }
29405
29406    /// Semantic action for production 727:
29407    ///
29408    /// `InstDeclarationOpt1 /* Option<T>::None */: ;`
29409    ///
29410    #[parol_runtime::function_name::named]
29411    fn inst_declaration_opt1_1(&mut self) -> Result<()> {
29412        let context = function_name!();
29413        trace!("{}", self.trace_item_stack(context));
29414        self.push(ASTType::InstDeclarationOpt1(None), context);
29415        Ok(())
29416    }
29417
29418    /// Semantic action for production 728:
29419    ///
29420    /// `InstDeclarationOpt0 /* Option<T>::Some */: Array;`
29421    ///
29422    #[parol_runtime::function_name::named]
29423    fn inst_declaration_opt0_0(&mut self, _array: &ParseTreeType<'t>) -> Result<()> {
29424        let context = function_name!();
29425        trace!("{}", self.trace_item_stack(context));
29426        let array = pop_item!(self, array, Array, context);
29427        let inst_declaration_opt0_0_built = InstDeclarationOpt0 {
29428            array: Box::new(array),
29429        };
29430        self.push(
29431            ASTType::InstDeclarationOpt0(Some(inst_declaration_opt0_0_built)),
29432            context,
29433        );
29434        Ok(())
29435    }
29436
29437    /// Semantic action for production 729:
29438    ///
29439    /// `InstDeclarationOpt0 /* Option<T>::None */: ;`
29440    ///
29441    #[parol_runtime::function_name::named]
29442    fn inst_declaration_opt0_1(&mut self) -> Result<()> {
29443        let context = function_name!();
29444        trace!("{}", self.trace_item_stack(context));
29445        self.push(ASTType::InstDeclarationOpt0(None), context);
29446        Ok(())
29447    }
29448
29449    /// Semantic action for production 730:
29450    ///
29451    /// `InstDeclarationOpt /* Option<T>::Some */: ClockDomain;`
29452    ///
29453    #[parol_runtime::function_name::named]
29454    fn inst_declaration_opt_0(&mut self, _clock_domain: &ParseTreeType<'t>) -> Result<()> {
29455        let context = function_name!();
29456        trace!("{}", self.trace_item_stack(context));
29457        let clock_domain = pop_item!(self, clock_domain, ClockDomain, context);
29458        let inst_declaration_opt_0_built = InstDeclarationOpt {
29459            clock_domain: Box::new(clock_domain),
29460        };
29461        self.push(
29462            ASTType::InstDeclarationOpt(Some(inst_declaration_opt_0_built)),
29463            context,
29464        );
29465        Ok(())
29466    }
29467
29468    /// Semantic action for production 731:
29469    ///
29470    /// `InstDeclarationOpt /* Option<T>::None */: ;`
29471    ///
29472    #[parol_runtime::function_name::named]
29473    fn inst_declaration_opt_1(&mut self) -> Result<()> {
29474        let context = function_name!();
29475        trace!("{}", self.trace_item_stack(context));
29476        self.push(ASTType::InstDeclarationOpt(None), context);
29477        Ok(())
29478    }
29479
29480    /// Semantic action for production 732:
29481    ///
29482    /// `InstParameter: Hash LParen InstParameterOpt /* Option */ RParen;`
29483    ///
29484    #[parol_runtime::function_name::named]
29485    fn inst_parameter(
29486        &mut self,
29487        _hash: &ParseTreeType<'t>,
29488        _l_paren: &ParseTreeType<'t>,
29489        _inst_parameter_opt: &ParseTreeType<'t>,
29490        _r_paren: &ParseTreeType<'t>,
29491    ) -> Result<()> {
29492        let context = function_name!();
29493        trace!("{}", self.trace_item_stack(context));
29494        let r_paren = pop_item!(self, r_paren, RParen, context);
29495        let inst_parameter_opt = pop_item!(self, inst_parameter_opt, InstParameterOpt, context);
29496        let l_paren = pop_item!(self, l_paren, LParen, context);
29497        let hash = pop_item!(self, hash, Hash, context);
29498        let inst_parameter_built = InstParameter {
29499            hash: Box::new(hash),
29500            l_paren: Box::new(l_paren),
29501            inst_parameter_opt,
29502            r_paren: Box::new(r_paren),
29503        };
29504        // Calling user action here
29505        self.user_grammar.inst_parameter(&inst_parameter_built)?;
29506        self.push(ASTType::InstParameter(inst_parameter_built), context);
29507        Ok(())
29508    }
29509
29510    /// Semantic action for production 733:
29511    ///
29512    /// `InstParameterOpt /* Option<T>::Some */: InstParameterList;`
29513    ///
29514    #[parol_runtime::function_name::named]
29515    fn inst_parameter_opt_0(&mut self, _inst_parameter_list: &ParseTreeType<'t>) -> Result<()> {
29516        let context = function_name!();
29517        trace!("{}", self.trace_item_stack(context));
29518        let inst_parameter_list = pop_item!(self, inst_parameter_list, InstParameterList, context);
29519        let inst_parameter_opt_0_built = InstParameterOpt {
29520            inst_parameter_list: Box::new(inst_parameter_list),
29521        };
29522        self.push(
29523            ASTType::InstParameterOpt(Some(inst_parameter_opt_0_built)),
29524            context,
29525        );
29526        Ok(())
29527    }
29528
29529    /// Semantic action for production 734:
29530    ///
29531    /// `InstParameterOpt /* Option<T>::None */: ;`
29532    ///
29533    #[parol_runtime::function_name::named]
29534    fn inst_parameter_opt_1(&mut self) -> Result<()> {
29535        let context = function_name!();
29536        trace!("{}", self.trace_item_stack(context));
29537        self.push(ASTType::InstParameterOpt(None), context);
29538        Ok(())
29539    }
29540
29541    /// Semantic action for production 735:
29542    ///
29543    /// `InstParameterList: InstParameterGroup InstParameterListList /* Vec */ InstParameterListOpt /* Option */;`
29544    ///
29545    #[parol_runtime::function_name::named]
29546    fn inst_parameter_list(
29547        &mut self,
29548        _inst_parameter_group: &ParseTreeType<'t>,
29549        _inst_parameter_list_list: &ParseTreeType<'t>,
29550        _inst_parameter_list_opt: &ParseTreeType<'t>,
29551    ) -> Result<()> {
29552        let context = function_name!();
29553        trace!("{}", self.trace_item_stack(context));
29554        let inst_parameter_list_opt =
29555            pop_item!(self, inst_parameter_list_opt, InstParameterListOpt, context);
29556        let inst_parameter_list_list = pop_and_reverse_item!(
29557            self,
29558            inst_parameter_list_list,
29559            InstParameterListList,
29560            context
29561        );
29562        let inst_parameter_group =
29563            pop_item!(self, inst_parameter_group, InstParameterGroup, context);
29564        let inst_parameter_list_built = InstParameterList {
29565            inst_parameter_group: Box::new(inst_parameter_group),
29566            inst_parameter_list_list,
29567            inst_parameter_list_opt,
29568        };
29569        // Calling user action here
29570        self.user_grammar
29571            .inst_parameter_list(&inst_parameter_list_built)?;
29572        self.push(
29573            ASTType::InstParameterList(inst_parameter_list_built),
29574            context,
29575        );
29576        Ok(())
29577    }
29578
29579    /// Semantic action for production 736:
29580    ///
29581    /// `InstParameterListList /* Vec<T>::Push */: Comma InstParameterGroup InstParameterListList;`
29582    ///
29583    #[parol_runtime::function_name::named]
29584    fn inst_parameter_list_list_0(
29585        &mut self,
29586        _comma: &ParseTreeType<'t>,
29587        _inst_parameter_group: &ParseTreeType<'t>,
29588        _inst_parameter_list_list: &ParseTreeType<'t>,
29589    ) -> Result<()> {
29590        let context = function_name!();
29591        trace!("{}", self.trace_item_stack(context));
29592        let mut inst_parameter_list_list = pop_item!(
29593            self,
29594            inst_parameter_list_list,
29595            InstParameterListList,
29596            context
29597        );
29598        let inst_parameter_group =
29599            pop_item!(self, inst_parameter_group, InstParameterGroup, context);
29600        let comma = pop_item!(self, comma, Comma, context);
29601        let inst_parameter_list_list_0_built = InstParameterListList {
29602            inst_parameter_group: Box::new(inst_parameter_group),
29603            comma: Box::new(comma),
29604        };
29605        // Add an element to the vector
29606        inst_parameter_list_list.push(inst_parameter_list_list_0_built);
29607        self.push(
29608            ASTType::InstParameterListList(inst_parameter_list_list),
29609            context,
29610        );
29611        Ok(())
29612    }
29613
29614    /// Semantic action for production 737:
29615    ///
29616    /// `InstParameterListList /* Vec<T>::New */: ;`
29617    ///
29618    #[parol_runtime::function_name::named]
29619    fn inst_parameter_list_list_1(&mut self) -> Result<()> {
29620        let context = function_name!();
29621        trace!("{}", self.trace_item_stack(context));
29622        let inst_parameter_list_list_1_built = Vec::new();
29623        self.push(
29624            ASTType::InstParameterListList(inst_parameter_list_list_1_built),
29625            context,
29626        );
29627        Ok(())
29628    }
29629
29630    /// Semantic action for production 738:
29631    ///
29632    /// `InstParameterListOpt /* Option<T>::Some */: Comma;`
29633    ///
29634    #[parol_runtime::function_name::named]
29635    fn inst_parameter_list_opt_0(&mut self, _comma: &ParseTreeType<'t>) -> Result<()> {
29636        let context = function_name!();
29637        trace!("{}", self.trace_item_stack(context));
29638        let comma = pop_item!(self, comma, Comma, context);
29639        let inst_parameter_list_opt_0_built = InstParameterListOpt {
29640            comma: Box::new(comma),
29641        };
29642        self.push(
29643            ASTType::InstParameterListOpt(Some(inst_parameter_list_opt_0_built)),
29644            context,
29645        );
29646        Ok(())
29647    }
29648
29649    /// Semantic action for production 739:
29650    ///
29651    /// `InstParameterListOpt /* Option<T>::None */: ;`
29652    ///
29653    #[parol_runtime::function_name::named]
29654    fn inst_parameter_list_opt_1(&mut self) -> Result<()> {
29655        let context = function_name!();
29656        trace!("{}", self.trace_item_stack(context));
29657        self.push(ASTType::InstParameterListOpt(None), context);
29658        Ok(())
29659    }
29660
29661    /// Semantic action for production 740:
29662    ///
29663    /// `InstParameterGroup: InstParameterGroupList /* Vec */ InstParameterGroupGroup;`
29664    ///
29665    #[parol_runtime::function_name::named]
29666    fn inst_parameter_group(
29667        &mut self,
29668        _inst_parameter_group_list: &ParseTreeType<'t>,
29669        _inst_parameter_group_group: &ParseTreeType<'t>,
29670    ) -> Result<()> {
29671        let context = function_name!();
29672        trace!("{}", self.trace_item_stack(context));
29673        let inst_parameter_group_group = pop_item!(
29674            self,
29675            inst_parameter_group_group,
29676            InstParameterGroupGroup,
29677            context
29678        );
29679        let inst_parameter_group_list = pop_and_reverse_item!(
29680            self,
29681            inst_parameter_group_list,
29682            InstParameterGroupList,
29683            context
29684        );
29685        let inst_parameter_group_built = InstParameterGroup {
29686            inst_parameter_group_list,
29687            inst_parameter_group_group: Box::new(inst_parameter_group_group),
29688        };
29689        // Calling user action here
29690        self.user_grammar
29691            .inst_parameter_group(&inst_parameter_group_built)?;
29692        self.push(
29693            ASTType::InstParameterGroup(inst_parameter_group_built),
29694            context,
29695        );
29696        Ok(())
29697    }
29698
29699    /// Semantic action for production 741:
29700    ///
29701    /// `InstParameterGroupGroup: LBrace InstParameterList RBrace;`
29702    ///
29703    #[parol_runtime::function_name::named]
29704    fn inst_parameter_group_group_0(
29705        &mut self,
29706        _l_brace: &ParseTreeType<'t>,
29707        _inst_parameter_list: &ParseTreeType<'t>,
29708        _r_brace: &ParseTreeType<'t>,
29709    ) -> Result<()> {
29710        let context = function_name!();
29711        trace!("{}", self.trace_item_stack(context));
29712        let r_brace = pop_item!(self, r_brace, RBrace, context);
29713        let inst_parameter_list = pop_item!(self, inst_parameter_list, InstParameterList, context);
29714        let l_brace = pop_item!(self, l_brace, LBrace, context);
29715        let inst_parameter_group_group_0_built =
29716            InstParameterGroupGroupLBraceInstParameterListRBrace {
29717                l_brace: Box::new(l_brace),
29718                inst_parameter_list: Box::new(inst_parameter_list),
29719                r_brace: Box::new(r_brace),
29720            };
29721        let inst_parameter_group_group_0_built =
29722            InstParameterGroupGroup::LBraceInstParameterListRBrace(
29723                inst_parameter_group_group_0_built,
29724            );
29725        self.push(
29726            ASTType::InstParameterGroupGroup(inst_parameter_group_group_0_built),
29727            context,
29728        );
29729        Ok(())
29730    }
29731
29732    /// Semantic action for production 742:
29733    ///
29734    /// `InstParameterGroupGroup: InstParameterItem;`
29735    ///
29736    #[parol_runtime::function_name::named]
29737    fn inst_parameter_group_group_1(
29738        &mut self,
29739        _inst_parameter_item: &ParseTreeType<'t>,
29740    ) -> Result<()> {
29741        let context = function_name!();
29742        trace!("{}", self.trace_item_stack(context));
29743        let inst_parameter_item = pop_item!(self, inst_parameter_item, InstParameterItem, context);
29744        let inst_parameter_group_group_1_built = InstParameterGroupGroupInstParameterItem {
29745            inst_parameter_item: Box::new(inst_parameter_item),
29746        };
29747        let inst_parameter_group_group_1_built =
29748            InstParameterGroupGroup::InstParameterItem(inst_parameter_group_group_1_built);
29749        self.push(
29750            ASTType::InstParameterGroupGroup(inst_parameter_group_group_1_built),
29751            context,
29752        );
29753        Ok(())
29754    }
29755
29756    /// Semantic action for production 743:
29757    ///
29758    /// `InstParameterGroupList /* Vec<T>::Push */: Attribute InstParameterGroupList;`
29759    ///
29760    #[parol_runtime::function_name::named]
29761    fn inst_parameter_group_list_0(
29762        &mut self,
29763        _attribute: &ParseTreeType<'t>,
29764        _inst_parameter_group_list: &ParseTreeType<'t>,
29765    ) -> Result<()> {
29766        let context = function_name!();
29767        trace!("{}", self.trace_item_stack(context));
29768        let mut inst_parameter_group_list = pop_item!(
29769            self,
29770            inst_parameter_group_list,
29771            InstParameterGroupList,
29772            context
29773        );
29774        let attribute = pop_item!(self, attribute, Attribute, context);
29775        let inst_parameter_group_list_0_built = InstParameterGroupList {
29776            attribute: Box::new(attribute),
29777        };
29778        // Add an element to the vector
29779        inst_parameter_group_list.push(inst_parameter_group_list_0_built);
29780        self.push(
29781            ASTType::InstParameterGroupList(inst_parameter_group_list),
29782            context,
29783        );
29784        Ok(())
29785    }
29786
29787    /// Semantic action for production 744:
29788    ///
29789    /// `InstParameterGroupList /* Vec<T>::New */: ;`
29790    ///
29791    #[parol_runtime::function_name::named]
29792    fn inst_parameter_group_list_1(&mut self) -> Result<()> {
29793        let context = function_name!();
29794        trace!("{}", self.trace_item_stack(context));
29795        let inst_parameter_group_list_1_built = Vec::new();
29796        self.push(
29797            ASTType::InstParameterGroupList(inst_parameter_group_list_1_built),
29798            context,
29799        );
29800        Ok(())
29801    }
29802
29803    /// Semantic action for production 745:
29804    ///
29805    /// `InstParameterItem: Identifier InstParameterItemOpt /* Option */;`
29806    ///
29807    #[parol_runtime::function_name::named]
29808    fn inst_parameter_item(
29809        &mut self,
29810        _identifier: &ParseTreeType<'t>,
29811        _inst_parameter_item_opt: &ParseTreeType<'t>,
29812    ) -> Result<()> {
29813        let context = function_name!();
29814        trace!("{}", self.trace_item_stack(context));
29815        let inst_parameter_item_opt =
29816            pop_item!(self, inst_parameter_item_opt, InstParameterItemOpt, context);
29817        let identifier = pop_item!(self, identifier, Identifier, context);
29818        let inst_parameter_item_built = InstParameterItem {
29819            identifier: Box::new(identifier),
29820            inst_parameter_item_opt,
29821        };
29822        // Calling user action here
29823        self.user_grammar
29824            .inst_parameter_item(&inst_parameter_item_built)?;
29825        self.push(
29826            ASTType::InstParameterItem(inst_parameter_item_built),
29827            context,
29828        );
29829        Ok(())
29830    }
29831
29832    /// Semantic action for production 746:
29833    ///
29834    /// `InstParameterItemOpt /* Option<T>::Some */: Colon Expression;`
29835    ///
29836    #[parol_runtime::function_name::named]
29837    fn inst_parameter_item_opt_0(
29838        &mut self,
29839        _colon: &ParseTreeType<'t>,
29840        _expression: &ParseTreeType<'t>,
29841    ) -> Result<()> {
29842        let context = function_name!();
29843        trace!("{}", self.trace_item_stack(context));
29844        let expression = pop_item!(self, expression, Expression, context);
29845        let colon = pop_item!(self, colon, Colon, context);
29846        let inst_parameter_item_opt_0_built = InstParameterItemOpt {
29847            colon: Box::new(colon),
29848            expression: Box::new(expression),
29849        };
29850        self.push(
29851            ASTType::InstParameterItemOpt(Some(inst_parameter_item_opt_0_built)),
29852            context,
29853        );
29854        Ok(())
29855    }
29856
29857    /// Semantic action for production 747:
29858    ///
29859    /// `InstParameterItemOpt /* Option<T>::None */: ;`
29860    ///
29861    #[parol_runtime::function_name::named]
29862    fn inst_parameter_item_opt_1(&mut self) -> Result<()> {
29863        let context = function_name!();
29864        trace!("{}", self.trace_item_stack(context));
29865        self.push(ASTType::InstParameterItemOpt(None), context);
29866        Ok(())
29867    }
29868
29869    /// Semantic action for production 748:
29870    ///
29871    /// `InstPortList: InstPortGroup InstPortListList /* Vec */ InstPortListOpt /* Option */;`
29872    ///
29873    #[parol_runtime::function_name::named]
29874    fn inst_port_list(
29875        &mut self,
29876        _inst_port_group: &ParseTreeType<'t>,
29877        _inst_port_list_list: &ParseTreeType<'t>,
29878        _inst_port_list_opt: &ParseTreeType<'t>,
29879    ) -> Result<()> {
29880        let context = function_name!();
29881        trace!("{}", self.trace_item_stack(context));
29882        let inst_port_list_opt = pop_item!(self, inst_port_list_opt, InstPortListOpt, context);
29883        let inst_port_list_list =
29884            pop_and_reverse_item!(self, inst_port_list_list, InstPortListList, context);
29885        let inst_port_group = pop_item!(self, inst_port_group, InstPortGroup, context);
29886        let inst_port_list_built = InstPortList {
29887            inst_port_group: Box::new(inst_port_group),
29888            inst_port_list_list,
29889            inst_port_list_opt,
29890        };
29891        // Calling user action here
29892        self.user_grammar.inst_port_list(&inst_port_list_built)?;
29893        self.push(ASTType::InstPortList(inst_port_list_built), context);
29894        Ok(())
29895    }
29896
29897    /// Semantic action for production 749:
29898    ///
29899    /// `InstPortListList /* Vec<T>::Push */: Comma InstPortGroup InstPortListList;`
29900    ///
29901    #[parol_runtime::function_name::named]
29902    fn inst_port_list_list_0(
29903        &mut self,
29904        _comma: &ParseTreeType<'t>,
29905        _inst_port_group: &ParseTreeType<'t>,
29906        _inst_port_list_list: &ParseTreeType<'t>,
29907    ) -> Result<()> {
29908        let context = function_name!();
29909        trace!("{}", self.trace_item_stack(context));
29910        let mut inst_port_list_list =
29911            pop_item!(self, inst_port_list_list, InstPortListList, context);
29912        let inst_port_group = pop_item!(self, inst_port_group, InstPortGroup, context);
29913        let comma = pop_item!(self, comma, Comma, context);
29914        let inst_port_list_list_0_built = InstPortListList {
29915            inst_port_group: Box::new(inst_port_group),
29916            comma: Box::new(comma),
29917        };
29918        // Add an element to the vector
29919        inst_port_list_list.push(inst_port_list_list_0_built);
29920        self.push(ASTType::InstPortListList(inst_port_list_list), context);
29921        Ok(())
29922    }
29923
29924    /// Semantic action for production 750:
29925    ///
29926    /// `InstPortListList /* Vec<T>::New */: ;`
29927    ///
29928    #[parol_runtime::function_name::named]
29929    fn inst_port_list_list_1(&mut self) -> Result<()> {
29930        let context = function_name!();
29931        trace!("{}", self.trace_item_stack(context));
29932        let inst_port_list_list_1_built = Vec::new();
29933        self.push(
29934            ASTType::InstPortListList(inst_port_list_list_1_built),
29935            context,
29936        );
29937        Ok(())
29938    }
29939
29940    /// Semantic action for production 751:
29941    ///
29942    /// `InstPortListOpt /* Option<T>::Some */: Comma;`
29943    ///
29944    #[parol_runtime::function_name::named]
29945    fn inst_port_list_opt_0(&mut self, _comma: &ParseTreeType<'t>) -> Result<()> {
29946        let context = function_name!();
29947        trace!("{}", self.trace_item_stack(context));
29948        let comma = pop_item!(self, comma, Comma, context);
29949        let inst_port_list_opt_0_built = InstPortListOpt {
29950            comma: Box::new(comma),
29951        };
29952        self.push(
29953            ASTType::InstPortListOpt(Some(inst_port_list_opt_0_built)),
29954            context,
29955        );
29956        Ok(())
29957    }
29958
29959    /// Semantic action for production 752:
29960    ///
29961    /// `InstPortListOpt /* Option<T>::None */: ;`
29962    ///
29963    #[parol_runtime::function_name::named]
29964    fn inst_port_list_opt_1(&mut self) -> Result<()> {
29965        let context = function_name!();
29966        trace!("{}", self.trace_item_stack(context));
29967        self.push(ASTType::InstPortListOpt(None), context);
29968        Ok(())
29969    }
29970
29971    /// Semantic action for production 753:
29972    ///
29973    /// `InstPortGroup: InstPortGroupList /* Vec */ InstPortGroupGroup;`
29974    ///
29975    #[parol_runtime::function_name::named]
29976    fn inst_port_group(
29977        &mut self,
29978        _inst_port_group_list: &ParseTreeType<'t>,
29979        _inst_port_group_group: &ParseTreeType<'t>,
29980    ) -> Result<()> {
29981        let context = function_name!();
29982        trace!("{}", self.trace_item_stack(context));
29983        let inst_port_group_group =
29984            pop_item!(self, inst_port_group_group, InstPortGroupGroup, context);
29985        let inst_port_group_list =
29986            pop_and_reverse_item!(self, inst_port_group_list, InstPortGroupList, context);
29987        let inst_port_group_built = InstPortGroup {
29988            inst_port_group_list,
29989            inst_port_group_group: Box::new(inst_port_group_group),
29990        };
29991        // Calling user action here
29992        self.user_grammar.inst_port_group(&inst_port_group_built)?;
29993        self.push(ASTType::InstPortGroup(inst_port_group_built), context);
29994        Ok(())
29995    }
29996
29997    /// Semantic action for production 754:
29998    ///
29999    /// `InstPortGroupGroup: LBrace InstPortList RBrace;`
30000    ///
30001    #[parol_runtime::function_name::named]
30002    fn inst_port_group_group_0(
30003        &mut self,
30004        _l_brace: &ParseTreeType<'t>,
30005        _inst_port_list: &ParseTreeType<'t>,
30006        _r_brace: &ParseTreeType<'t>,
30007    ) -> Result<()> {
30008        let context = function_name!();
30009        trace!("{}", self.trace_item_stack(context));
30010        let r_brace = pop_item!(self, r_brace, RBrace, context);
30011        let inst_port_list = pop_item!(self, inst_port_list, InstPortList, context);
30012        let l_brace = pop_item!(self, l_brace, LBrace, context);
30013        let inst_port_group_group_0_built = InstPortGroupGroupLBraceInstPortListRBrace {
30014            l_brace: Box::new(l_brace),
30015            inst_port_list: Box::new(inst_port_list),
30016            r_brace: Box::new(r_brace),
30017        };
30018        let inst_port_group_group_0_built =
30019            InstPortGroupGroup::LBraceInstPortListRBrace(inst_port_group_group_0_built);
30020        self.push(
30021            ASTType::InstPortGroupGroup(inst_port_group_group_0_built),
30022            context,
30023        );
30024        Ok(())
30025    }
30026
30027    /// Semantic action for production 755:
30028    ///
30029    /// `InstPortGroupGroup: InstPortItem;`
30030    ///
30031    #[parol_runtime::function_name::named]
30032    fn inst_port_group_group_1(&mut self, _inst_port_item: &ParseTreeType<'t>) -> Result<()> {
30033        let context = function_name!();
30034        trace!("{}", self.trace_item_stack(context));
30035        let inst_port_item = pop_item!(self, inst_port_item, InstPortItem, context);
30036        let inst_port_group_group_1_built = InstPortGroupGroupInstPortItem {
30037            inst_port_item: Box::new(inst_port_item),
30038        };
30039        let inst_port_group_group_1_built =
30040            InstPortGroupGroup::InstPortItem(inst_port_group_group_1_built);
30041        self.push(
30042            ASTType::InstPortGroupGroup(inst_port_group_group_1_built),
30043            context,
30044        );
30045        Ok(())
30046    }
30047
30048    /// Semantic action for production 756:
30049    ///
30050    /// `InstPortGroupList /* Vec<T>::Push */: Attribute InstPortGroupList;`
30051    ///
30052    #[parol_runtime::function_name::named]
30053    fn inst_port_group_list_0(
30054        &mut self,
30055        _attribute: &ParseTreeType<'t>,
30056        _inst_port_group_list: &ParseTreeType<'t>,
30057    ) -> Result<()> {
30058        let context = function_name!();
30059        trace!("{}", self.trace_item_stack(context));
30060        let mut inst_port_group_list =
30061            pop_item!(self, inst_port_group_list, InstPortGroupList, context);
30062        let attribute = pop_item!(self, attribute, Attribute, context);
30063        let inst_port_group_list_0_built = InstPortGroupList {
30064            attribute: Box::new(attribute),
30065        };
30066        // Add an element to the vector
30067        inst_port_group_list.push(inst_port_group_list_0_built);
30068        self.push(ASTType::InstPortGroupList(inst_port_group_list), context);
30069        Ok(())
30070    }
30071
30072    /// Semantic action for production 757:
30073    ///
30074    /// `InstPortGroupList /* Vec<T>::New */: ;`
30075    ///
30076    #[parol_runtime::function_name::named]
30077    fn inst_port_group_list_1(&mut self) -> Result<()> {
30078        let context = function_name!();
30079        trace!("{}", self.trace_item_stack(context));
30080        let inst_port_group_list_1_built = Vec::new();
30081        self.push(
30082            ASTType::InstPortGroupList(inst_port_group_list_1_built),
30083            context,
30084        );
30085        Ok(())
30086    }
30087
30088    /// Semantic action for production 758:
30089    ///
30090    /// `InstPortItem: Identifier InstPortItemOpt /* Option */;`
30091    ///
30092    #[parol_runtime::function_name::named]
30093    fn inst_port_item(
30094        &mut self,
30095        _identifier: &ParseTreeType<'t>,
30096        _inst_port_item_opt: &ParseTreeType<'t>,
30097    ) -> Result<()> {
30098        let context = function_name!();
30099        trace!("{}", self.trace_item_stack(context));
30100        let inst_port_item_opt = pop_item!(self, inst_port_item_opt, InstPortItemOpt, context);
30101        let identifier = pop_item!(self, identifier, Identifier, context);
30102        let inst_port_item_built = InstPortItem {
30103            identifier: Box::new(identifier),
30104            inst_port_item_opt,
30105        };
30106        // Calling user action here
30107        self.user_grammar.inst_port_item(&inst_port_item_built)?;
30108        self.push(ASTType::InstPortItem(inst_port_item_built), context);
30109        Ok(())
30110    }
30111
30112    /// Semantic action for production 759:
30113    ///
30114    /// `InstPortItemOpt /* Option<T>::Some */: Colon Expression;`
30115    ///
30116    #[parol_runtime::function_name::named]
30117    fn inst_port_item_opt_0(
30118        &mut self,
30119        _colon: &ParseTreeType<'t>,
30120        _expression: &ParseTreeType<'t>,
30121    ) -> Result<()> {
30122        let context = function_name!();
30123        trace!("{}", self.trace_item_stack(context));
30124        let expression = pop_item!(self, expression, Expression, context);
30125        let colon = pop_item!(self, colon, Colon, context);
30126        let inst_port_item_opt_0_built = InstPortItemOpt {
30127            colon: Box::new(colon),
30128            expression: Box::new(expression),
30129        };
30130        self.push(
30131            ASTType::InstPortItemOpt(Some(inst_port_item_opt_0_built)),
30132            context,
30133        );
30134        Ok(())
30135    }
30136
30137    /// Semantic action for production 760:
30138    ///
30139    /// `InstPortItemOpt /* Option<T>::None */: ;`
30140    ///
30141    #[parol_runtime::function_name::named]
30142    fn inst_port_item_opt_1(&mut self) -> Result<()> {
30143        let context = function_name!();
30144        trace!("{}", self.trace_item_stack(context));
30145        self.push(ASTType::InstPortItemOpt(None), context);
30146        Ok(())
30147    }
30148
30149    /// Semantic action for production 761:
30150    ///
30151    /// `WithParameter: Hash LParen WithParameterOpt /* Option */ RParen;`
30152    ///
30153    #[parol_runtime::function_name::named]
30154    fn with_parameter(
30155        &mut self,
30156        _hash: &ParseTreeType<'t>,
30157        _l_paren: &ParseTreeType<'t>,
30158        _with_parameter_opt: &ParseTreeType<'t>,
30159        _r_paren: &ParseTreeType<'t>,
30160    ) -> Result<()> {
30161        let context = function_name!();
30162        trace!("{}", self.trace_item_stack(context));
30163        let r_paren = pop_item!(self, r_paren, RParen, context);
30164        let with_parameter_opt = pop_item!(self, with_parameter_opt, WithParameterOpt, context);
30165        let l_paren = pop_item!(self, l_paren, LParen, context);
30166        let hash = pop_item!(self, hash, Hash, context);
30167        let with_parameter_built = WithParameter {
30168            hash: Box::new(hash),
30169            l_paren: Box::new(l_paren),
30170            with_parameter_opt,
30171            r_paren: Box::new(r_paren),
30172        };
30173        // Calling user action here
30174        self.user_grammar.with_parameter(&with_parameter_built)?;
30175        self.push(ASTType::WithParameter(with_parameter_built), context);
30176        Ok(())
30177    }
30178
30179    /// Semantic action for production 762:
30180    ///
30181    /// `WithParameterOpt /* Option<T>::Some */: WithParameterList;`
30182    ///
30183    #[parol_runtime::function_name::named]
30184    fn with_parameter_opt_0(&mut self, _with_parameter_list: &ParseTreeType<'t>) -> Result<()> {
30185        let context = function_name!();
30186        trace!("{}", self.trace_item_stack(context));
30187        let with_parameter_list = pop_item!(self, with_parameter_list, WithParameterList, context);
30188        let with_parameter_opt_0_built = WithParameterOpt {
30189            with_parameter_list: Box::new(with_parameter_list),
30190        };
30191        self.push(
30192            ASTType::WithParameterOpt(Some(with_parameter_opt_0_built)),
30193            context,
30194        );
30195        Ok(())
30196    }
30197
30198    /// Semantic action for production 763:
30199    ///
30200    /// `WithParameterOpt /* Option<T>::None */: ;`
30201    ///
30202    #[parol_runtime::function_name::named]
30203    fn with_parameter_opt_1(&mut self) -> Result<()> {
30204        let context = function_name!();
30205        trace!("{}", self.trace_item_stack(context));
30206        self.push(ASTType::WithParameterOpt(None), context);
30207        Ok(())
30208    }
30209
30210    /// Semantic action for production 764:
30211    ///
30212    /// `WithParameterList: WithParameterGroup WithParameterListList /* Vec */ WithParameterListOpt /* Option */;`
30213    ///
30214    #[parol_runtime::function_name::named]
30215    fn with_parameter_list(
30216        &mut self,
30217        _with_parameter_group: &ParseTreeType<'t>,
30218        _with_parameter_list_list: &ParseTreeType<'t>,
30219        _with_parameter_list_opt: &ParseTreeType<'t>,
30220    ) -> Result<()> {
30221        let context = function_name!();
30222        trace!("{}", self.trace_item_stack(context));
30223        let with_parameter_list_opt =
30224            pop_item!(self, with_parameter_list_opt, WithParameterListOpt, context);
30225        let with_parameter_list_list = pop_and_reverse_item!(
30226            self,
30227            with_parameter_list_list,
30228            WithParameterListList,
30229            context
30230        );
30231        let with_parameter_group =
30232            pop_item!(self, with_parameter_group, WithParameterGroup, context);
30233        let with_parameter_list_built = WithParameterList {
30234            with_parameter_group: Box::new(with_parameter_group),
30235            with_parameter_list_list,
30236            with_parameter_list_opt,
30237        };
30238        // Calling user action here
30239        self.user_grammar
30240            .with_parameter_list(&with_parameter_list_built)?;
30241        self.push(
30242            ASTType::WithParameterList(with_parameter_list_built),
30243            context,
30244        );
30245        Ok(())
30246    }
30247
30248    /// Semantic action for production 765:
30249    ///
30250    /// `WithParameterListList /* Vec<T>::Push */: Comma WithParameterGroup WithParameterListList;`
30251    ///
30252    #[parol_runtime::function_name::named]
30253    fn with_parameter_list_list_0(
30254        &mut self,
30255        _comma: &ParseTreeType<'t>,
30256        _with_parameter_group: &ParseTreeType<'t>,
30257        _with_parameter_list_list: &ParseTreeType<'t>,
30258    ) -> Result<()> {
30259        let context = function_name!();
30260        trace!("{}", self.trace_item_stack(context));
30261        let mut with_parameter_list_list = pop_item!(
30262            self,
30263            with_parameter_list_list,
30264            WithParameterListList,
30265            context
30266        );
30267        let with_parameter_group =
30268            pop_item!(self, with_parameter_group, WithParameterGroup, context);
30269        let comma = pop_item!(self, comma, Comma, context);
30270        let with_parameter_list_list_0_built = WithParameterListList {
30271            with_parameter_group: Box::new(with_parameter_group),
30272            comma: Box::new(comma),
30273        };
30274        // Add an element to the vector
30275        with_parameter_list_list.push(with_parameter_list_list_0_built);
30276        self.push(
30277            ASTType::WithParameterListList(with_parameter_list_list),
30278            context,
30279        );
30280        Ok(())
30281    }
30282
30283    /// Semantic action for production 766:
30284    ///
30285    /// `WithParameterListList /* Vec<T>::New */: ;`
30286    ///
30287    #[parol_runtime::function_name::named]
30288    fn with_parameter_list_list_1(&mut self) -> Result<()> {
30289        let context = function_name!();
30290        trace!("{}", self.trace_item_stack(context));
30291        let with_parameter_list_list_1_built = Vec::new();
30292        self.push(
30293            ASTType::WithParameterListList(with_parameter_list_list_1_built),
30294            context,
30295        );
30296        Ok(())
30297    }
30298
30299    /// Semantic action for production 767:
30300    ///
30301    /// `WithParameterListOpt /* Option<T>::Some */: Comma;`
30302    ///
30303    #[parol_runtime::function_name::named]
30304    fn with_parameter_list_opt_0(&mut self, _comma: &ParseTreeType<'t>) -> Result<()> {
30305        let context = function_name!();
30306        trace!("{}", self.trace_item_stack(context));
30307        let comma = pop_item!(self, comma, Comma, context);
30308        let with_parameter_list_opt_0_built = WithParameterListOpt {
30309            comma: Box::new(comma),
30310        };
30311        self.push(
30312            ASTType::WithParameterListOpt(Some(with_parameter_list_opt_0_built)),
30313            context,
30314        );
30315        Ok(())
30316    }
30317
30318    /// Semantic action for production 768:
30319    ///
30320    /// `WithParameterListOpt /* Option<T>::None */: ;`
30321    ///
30322    #[parol_runtime::function_name::named]
30323    fn with_parameter_list_opt_1(&mut self) -> Result<()> {
30324        let context = function_name!();
30325        trace!("{}", self.trace_item_stack(context));
30326        self.push(ASTType::WithParameterListOpt(None), context);
30327        Ok(())
30328    }
30329
30330    /// Semantic action for production 769:
30331    ///
30332    /// `WithParameterGroup: WithParameterGroupList /* Vec */ WithParameterGroupGroup;`
30333    ///
30334    #[parol_runtime::function_name::named]
30335    fn with_parameter_group(
30336        &mut self,
30337        _with_parameter_group_list: &ParseTreeType<'t>,
30338        _with_parameter_group_group: &ParseTreeType<'t>,
30339    ) -> Result<()> {
30340        let context = function_name!();
30341        trace!("{}", self.trace_item_stack(context));
30342        let with_parameter_group_group = pop_item!(
30343            self,
30344            with_parameter_group_group,
30345            WithParameterGroupGroup,
30346            context
30347        );
30348        let with_parameter_group_list = pop_and_reverse_item!(
30349            self,
30350            with_parameter_group_list,
30351            WithParameterGroupList,
30352            context
30353        );
30354        let with_parameter_group_built = WithParameterGroup {
30355            with_parameter_group_list,
30356            with_parameter_group_group: Box::new(with_parameter_group_group),
30357        };
30358        // Calling user action here
30359        self.user_grammar
30360            .with_parameter_group(&with_parameter_group_built)?;
30361        self.push(
30362            ASTType::WithParameterGroup(with_parameter_group_built),
30363            context,
30364        );
30365        Ok(())
30366    }
30367
30368    /// Semantic action for production 770:
30369    ///
30370    /// `WithParameterGroupGroup: LBrace WithParameterList RBrace;`
30371    ///
30372    #[parol_runtime::function_name::named]
30373    fn with_parameter_group_group_0(
30374        &mut self,
30375        _l_brace: &ParseTreeType<'t>,
30376        _with_parameter_list: &ParseTreeType<'t>,
30377        _r_brace: &ParseTreeType<'t>,
30378    ) -> Result<()> {
30379        let context = function_name!();
30380        trace!("{}", self.trace_item_stack(context));
30381        let r_brace = pop_item!(self, r_brace, RBrace, context);
30382        let with_parameter_list = pop_item!(self, with_parameter_list, WithParameterList, context);
30383        let l_brace = pop_item!(self, l_brace, LBrace, context);
30384        let with_parameter_group_group_0_built =
30385            WithParameterGroupGroupLBraceWithParameterListRBrace {
30386                l_brace: Box::new(l_brace),
30387                with_parameter_list: Box::new(with_parameter_list),
30388                r_brace: Box::new(r_brace),
30389            };
30390        let with_parameter_group_group_0_built =
30391            WithParameterGroupGroup::LBraceWithParameterListRBrace(
30392                with_parameter_group_group_0_built,
30393            );
30394        self.push(
30395            ASTType::WithParameterGroupGroup(with_parameter_group_group_0_built),
30396            context,
30397        );
30398        Ok(())
30399    }
30400
30401    /// Semantic action for production 771:
30402    ///
30403    /// `WithParameterGroupGroup: WithParameterItem;`
30404    ///
30405    #[parol_runtime::function_name::named]
30406    fn with_parameter_group_group_1(
30407        &mut self,
30408        _with_parameter_item: &ParseTreeType<'t>,
30409    ) -> Result<()> {
30410        let context = function_name!();
30411        trace!("{}", self.trace_item_stack(context));
30412        let with_parameter_item = pop_item!(self, with_parameter_item, WithParameterItem, context);
30413        let with_parameter_group_group_1_built = WithParameterGroupGroupWithParameterItem {
30414            with_parameter_item: Box::new(with_parameter_item),
30415        };
30416        let with_parameter_group_group_1_built =
30417            WithParameterGroupGroup::WithParameterItem(with_parameter_group_group_1_built);
30418        self.push(
30419            ASTType::WithParameterGroupGroup(with_parameter_group_group_1_built),
30420            context,
30421        );
30422        Ok(())
30423    }
30424
30425    /// Semantic action for production 772:
30426    ///
30427    /// `WithParameterGroupList /* Vec<T>::Push */: Attribute WithParameterGroupList;`
30428    ///
30429    #[parol_runtime::function_name::named]
30430    fn with_parameter_group_list_0(
30431        &mut self,
30432        _attribute: &ParseTreeType<'t>,
30433        _with_parameter_group_list: &ParseTreeType<'t>,
30434    ) -> Result<()> {
30435        let context = function_name!();
30436        trace!("{}", self.trace_item_stack(context));
30437        let mut with_parameter_group_list = pop_item!(
30438            self,
30439            with_parameter_group_list,
30440            WithParameterGroupList,
30441            context
30442        );
30443        let attribute = pop_item!(self, attribute, Attribute, context);
30444        let with_parameter_group_list_0_built = WithParameterGroupList {
30445            attribute: Box::new(attribute),
30446        };
30447        // Add an element to the vector
30448        with_parameter_group_list.push(with_parameter_group_list_0_built);
30449        self.push(
30450            ASTType::WithParameterGroupList(with_parameter_group_list),
30451            context,
30452        );
30453        Ok(())
30454    }
30455
30456    /// Semantic action for production 773:
30457    ///
30458    /// `WithParameterGroupList /* Vec<T>::New */: ;`
30459    ///
30460    #[parol_runtime::function_name::named]
30461    fn with_parameter_group_list_1(&mut self) -> Result<()> {
30462        let context = function_name!();
30463        trace!("{}", self.trace_item_stack(context));
30464        let with_parameter_group_list_1_built = Vec::new();
30465        self.push(
30466            ASTType::WithParameterGroupList(with_parameter_group_list_1_built),
30467            context,
30468        );
30469        Ok(())
30470    }
30471
30472    /// Semantic action for production 774:
30473    ///
30474    /// `WithParameterItem: WithParameterItemGroup Identifier Colon WithParameterItemGroup0 Equ Expression;`
30475    ///
30476    #[parol_runtime::function_name::named]
30477    fn with_parameter_item(
30478        &mut self,
30479        _with_parameter_item_group: &ParseTreeType<'t>,
30480        _identifier: &ParseTreeType<'t>,
30481        _colon: &ParseTreeType<'t>,
30482        _with_parameter_item_group0: &ParseTreeType<'t>,
30483        _equ: &ParseTreeType<'t>,
30484        _expression: &ParseTreeType<'t>,
30485    ) -> Result<()> {
30486        let context = function_name!();
30487        trace!("{}", self.trace_item_stack(context));
30488        let expression = pop_item!(self, expression, Expression, context);
30489        let equ = pop_item!(self, equ, Equ, context);
30490        let with_parameter_item_group0 = pop_item!(
30491            self,
30492            with_parameter_item_group0,
30493            WithParameterItemGroup0,
30494            context
30495        );
30496        let colon = pop_item!(self, colon, Colon, context);
30497        let identifier = pop_item!(self, identifier, Identifier, context);
30498        let with_parameter_item_group = pop_item!(
30499            self,
30500            with_parameter_item_group,
30501            WithParameterItemGroup,
30502            context
30503        );
30504        let with_parameter_item_built = WithParameterItem {
30505            with_parameter_item_group: Box::new(with_parameter_item_group),
30506            identifier: Box::new(identifier),
30507            colon: Box::new(colon),
30508            with_parameter_item_group0: Box::new(with_parameter_item_group0),
30509            equ: Box::new(equ),
30510            expression: Box::new(expression),
30511        };
30512        // Calling user action here
30513        self.user_grammar
30514            .with_parameter_item(&with_parameter_item_built)?;
30515        self.push(
30516            ASTType::WithParameterItem(with_parameter_item_built),
30517            context,
30518        );
30519        Ok(())
30520    }
30521
30522    /// Semantic action for production 775:
30523    ///
30524    /// `WithParameterItemGroup0: ArrayType;`
30525    ///
30526    #[parol_runtime::function_name::named]
30527    fn with_parameter_item_group0_0(&mut self, _array_type: &ParseTreeType<'t>) -> Result<()> {
30528        let context = function_name!();
30529        trace!("{}", self.trace_item_stack(context));
30530        let array_type = pop_item!(self, array_type, ArrayType, context);
30531        let with_parameter_item_group0_0_built = WithParameterItemGroup0ArrayType {
30532            array_type: Box::new(array_type),
30533        };
30534        let with_parameter_item_group0_0_built =
30535            WithParameterItemGroup0::ArrayType(with_parameter_item_group0_0_built);
30536        self.push(
30537            ASTType::WithParameterItemGroup0(with_parameter_item_group0_0_built),
30538            context,
30539        );
30540        Ok(())
30541    }
30542
30543    /// Semantic action for production 776:
30544    ///
30545    /// `WithParameterItemGroup0: Type;`
30546    ///
30547    #[parol_runtime::function_name::named]
30548    fn with_parameter_item_group0_1(&mut self, _type: &ParseTreeType<'t>) -> Result<()> {
30549        let context = function_name!();
30550        trace!("{}", self.trace_item_stack(context));
30551        let r#type = pop_item!(self, r#type, Type, context);
30552        let with_parameter_item_group0_1_built = WithParameterItemGroup0Type {
30553            r#type: Box::new(r#type),
30554        };
30555        let with_parameter_item_group0_1_built =
30556            WithParameterItemGroup0::Type(with_parameter_item_group0_1_built);
30557        self.push(
30558            ASTType::WithParameterItemGroup0(with_parameter_item_group0_1_built),
30559            context,
30560        );
30561        Ok(())
30562    }
30563
30564    /// Semantic action for production 777:
30565    ///
30566    /// `WithParameterItemGroup: Param;`
30567    ///
30568    #[parol_runtime::function_name::named]
30569    fn with_parameter_item_group_0(&mut self, _param: &ParseTreeType<'t>) -> Result<()> {
30570        let context = function_name!();
30571        trace!("{}", self.trace_item_stack(context));
30572        let param = pop_item!(self, param, Param, context);
30573        let with_parameter_item_group_0_built = WithParameterItemGroupParam {
30574            param: Box::new(param),
30575        };
30576        let with_parameter_item_group_0_built =
30577            WithParameterItemGroup::Param(with_parameter_item_group_0_built);
30578        self.push(
30579            ASTType::WithParameterItemGroup(with_parameter_item_group_0_built),
30580            context,
30581        );
30582        Ok(())
30583    }
30584
30585    /// Semantic action for production 778:
30586    ///
30587    /// `WithParameterItemGroup: Const;`
30588    ///
30589    #[parol_runtime::function_name::named]
30590    fn with_parameter_item_group_1(&mut self, _const: &ParseTreeType<'t>) -> Result<()> {
30591        let context = function_name!();
30592        trace!("{}", self.trace_item_stack(context));
30593        let r#const = pop_item!(self, r#const, Const, context);
30594        let with_parameter_item_group_1_built = WithParameterItemGroupConst {
30595            r#const: Box::new(r#const),
30596        };
30597        let with_parameter_item_group_1_built =
30598            WithParameterItemGroup::Const(with_parameter_item_group_1_built);
30599        self.push(
30600            ASTType::WithParameterItemGroup(with_parameter_item_group_1_built),
30601            context,
30602        );
30603        Ok(())
30604    }
30605
30606    /// Semantic action for production 779:
30607    ///
30608    /// `GenericBound: Const;`
30609    ///
30610    #[parol_runtime::function_name::named]
30611    fn generic_bound_0(&mut self, _const: &ParseTreeType<'t>) -> Result<()> {
30612        let context = function_name!();
30613        trace!("{}", self.trace_item_stack(context));
30614        let r#const = pop_item!(self, r#const, Const, context);
30615        let generic_bound_0_built = GenericBoundConst {
30616            r#const: Box::new(r#const),
30617        };
30618        let generic_bound_0_built = GenericBound::Const(generic_bound_0_built);
30619        // Calling user action here
30620        self.user_grammar.generic_bound(&generic_bound_0_built)?;
30621        self.push(ASTType::GenericBound(generic_bound_0_built), context);
30622        Ok(())
30623    }
30624
30625    /// Semantic action for production 780:
30626    ///
30627    /// `GenericBound: Type;`
30628    ///
30629    #[parol_runtime::function_name::named]
30630    fn generic_bound_1(&mut self, _type: &ParseTreeType<'t>) -> Result<()> {
30631        let context = function_name!();
30632        trace!("{}", self.trace_item_stack(context));
30633        let r#type = pop_item!(self, r#type, Type, context);
30634        let generic_bound_1_built = GenericBoundType {
30635            r#type: Box::new(r#type),
30636        };
30637        let generic_bound_1_built = GenericBound::Type(generic_bound_1_built);
30638        // Calling user action here
30639        self.user_grammar.generic_bound(&generic_bound_1_built)?;
30640        self.push(ASTType::GenericBound(generic_bound_1_built), context);
30641        Ok(())
30642    }
30643
30644    /// Semantic action for production 781:
30645    ///
30646    /// `GenericBound: Inst ScopedIdentifier;`
30647    ///
30648    #[parol_runtime::function_name::named]
30649    fn generic_bound_2(
30650        &mut self,
30651        _inst: &ParseTreeType<'t>,
30652        _scoped_identifier: &ParseTreeType<'t>,
30653    ) -> Result<()> {
30654        let context = function_name!();
30655        trace!("{}", self.trace_item_stack(context));
30656        let scoped_identifier = pop_item!(self, scoped_identifier, ScopedIdentifier, context);
30657        let inst = pop_item!(self, inst, Inst, context);
30658        let generic_bound_2_built = GenericBoundInstScopedIdentifier {
30659            inst: Box::new(inst),
30660            scoped_identifier: Box::new(scoped_identifier),
30661        };
30662        let generic_bound_2_built = GenericBound::InstScopedIdentifier(generic_bound_2_built);
30663        // Calling user action here
30664        self.user_grammar.generic_bound(&generic_bound_2_built)?;
30665        self.push(ASTType::GenericBound(generic_bound_2_built), context);
30666        Ok(())
30667    }
30668
30669    /// Semantic action for production 782:
30670    ///
30671    /// `GenericBound: ScopedIdentifier;`
30672    ///
30673    #[parol_runtime::function_name::named]
30674    fn generic_bound_3(&mut self, _scoped_identifier: &ParseTreeType<'t>) -> Result<()> {
30675        let context = function_name!();
30676        trace!("{}", self.trace_item_stack(context));
30677        let scoped_identifier = pop_item!(self, scoped_identifier, ScopedIdentifier, context);
30678        let generic_bound_3_built = GenericBoundScopedIdentifier {
30679            scoped_identifier: Box::new(scoped_identifier),
30680        };
30681        let generic_bound_3_built = GenericBound::ScopedIdentifier(generic_bound_3_built);
30682        // Calling user action here
30683        self.user_grammar.generic_bound(&generic_bound_3_built)?;
30684        self.push(ASTType::GenericBound(generic_bound_3_built), context);
30685        Ok(())
30686    }
30687
30688    /// Semantic action for production 783:
30689    ///
30690    /// `WithGenericParameter: ColonColonLAngle WithGenericParameterList RAngle;`
30691    ///
30692    #[parol_runtime::function_name::named]
30693    fn with_generic_parameter(
30694        &mut self,
30695        _colon_colon_l_angle: &ParseTreeType<'t>,
30696        _with_generic_parameter_list: &ParseTreeType<'t>,
30697        _r_angle: &ParseTreeType<'t>,
30698    ) -> Result<()> {
30699        let context = function_name!();
30700        trace!("{}", self.trace_item_stack(context));
30701        let r_angle = pop_item!(self, r_angle, RAngle, context);
30702        let with_generic_parameter_list = pop_item!(
30703            self,
30704            with_generic_parameter_list,
30705            WithGenericParameterList,
30706            context
30707        );
30708        let colon_colon_l_angle = pop_item!(self, colon_colon_l_angle, ColonColonLAngle, context);
30709        let with_generic_parameter_built = WithGenericParameter {
30710            colon_colon_l_angle: Box::new(colon_colon_l_angle),
30711            with_generic_parameter_list: Box::new(with_generic_parameter_list),
30712            r_angle: Box::new(r_angle),
30713        };
30714        // Calling user action here
30715        self.user_grammar
30716            .with_generic_parameter(&with_generic_parameter_built)?;
30717        self.push(
30718            ASTType::WithGenericParameter(with_generic_parameter_built),
30719            context,
30720        );
30721        Ok(())
30722    }
30723
30724    /// Semantic action for production 784:
30725    ///
30726    /// `WithGenericParameterList: WithGenericParameterItem WithGenericParameterListList /* Vec */ WithGenericParameterListOpt /* Option */;`
30727    ///
30728    #[parol_runtime::function_name::named]
30729    fn with_generic_parameter_list(
30730        &mut self,
30731        _with_generic_parameter_item: &ParseTreeType<'t>,
30732        _with_generic_parameter_list_list: &ParseTreeType<'t>,
30733        _with_generic_parameter_list_opt: &ParseTreeType<'t>,
30734    ) -> Result<()> {
30735        let context = function_name!();
30736        trace!("{}", self.trace_item_stack(context));
30737        let with_generic_parameter_list_opt = pop_item!(
30738            self,
30739            with_generic_parameter_list_opt,
30740            WithGenericParameterListOpt,
30741            context
30742        );
30743        let with_generic_parameter_list_list = pop_and_reverse_item!(
30744            self,
30745            with_generic_parameter_list_list,
30746            WithGenericParameterListList,
30747            context
30748        );
30749        let with_generic_parameter_item = pop_item!(
30750            self,
30751            with_generic_parameter_item,
30752            WithGenericParameterItem,
30753            context
30754        );
30755        let with_generic_parameter_list_built = WithGenericParameterList {
30756            with_generic_parameter_item: Box::new(with_generic_parameter_item),
30757            with_generic_parameter_list_list,
30758            with_generic_parameter_list_opt,
30759        };
30760        // Calling user action here
30761        self.user_grammar
30762            .with_generic_parameter_list(&with_generic_parameter_list_built)?;
30763        self.push(
30764            ASTType::WithGenericParameterList(with_generic_parameter_list_built),
30765            context,
30766        );
30767        Ok(())
30768    }
30769
30770    /// Semantic action for production 785:
30771    ///
30772    /// `WithGenericParameterListList /* Vec<T>::Push */: Comma WithGenericParameterItem WithGenericParameterListList;`
30773    ///
30774    #[parol_runtime::function_name::named]
30775    fn with_generic_parameter_list_list_0(
30776        &mut self,
30777        _comma: &ParseTreeType<'t>,
30778        _with_generic_parameter_item: &ParseTreeType<'t>,
30779        _with_generic_parameter_list_list: &ParseTreeType<'t>,
30780    ) -> Result<()> {
30781        let context = function_name!();
30782        trace!("{}", self.trace_item_stack(context));
30783        let mut with_generic_parameter_list_list = pop_item!(
30784            self,
30785            with_generic_parameter_list_list,
30786            WithGenericParameterListList,
30787            context
30788        );
30789        let with_generic_parameter_item = pop_item!(
30790            self,
30791            with_generic_parameter_item,
30792            WithGenericParameterItem,
30793            context
30794        );
30795        let comma = pop_item!(self, comma, Comma, context);
30796        let with_generic_parameter_list_list_0_built = WithGenericParameterListList {
30797            with_generic_parameter_item: Box::new(with_generic_parameter_item),
30798            comma: Box::new(comma),
30799        };
30800        // Add an element to the vector
30801        with_generic_parameter_list_list.push(with_generic_parameter_list_list_0_built);
30802        self.push(
30803            ASTType::WithGenericParameterListList(with_generic_parameter_list_list),
30804            context,
30805        );
30806        Ok(())
30807    }
30808
30809    /// Semantic action for production 786:
30810    ///
30811    /// `WithGenericParameterListList /* Vec<T>::New */: ;`
30812    ///
30813    #[parol_runtime::function_name::named]
30814    fn with_generic_parameter_list_list_1(&mut self) -> Result<()> {
30815        let context = function_name!();
30816        trace!("{}", self.trace_item_stack(context));
30817        let with_generic_parameter_list_list_1_built = Vec::new();
30818        self.push(
30819            ASTType::WithGenericParameterListList(with_generic_parameter_list_list_1_built),
30820            context,
30821        );
30822        Ok(())
30823    }
30824
30825    /// Semantic action for production 787:
30826    ///
30827    /// `WithGenericParameterListOpt /* Option<T>::Some */: Comma;`
30828    ///
30829    #[parol_runtime::function_name::named]
30830    fn with_generic_parameter_list_opt_0(&mut self, _comma: &ParseTreeType<'t>) -> Result<()> {
30831        let context = function_name!();
30832        trace!("{}", self.trace_item_stack(context));
30833        let comma = pop_item!(self, comma, Comma, context);
30834        let with_generic_parameter_list_opt_0_built = WithGenericParameterListOpt {
30835            comma: Box::new(comma),
30836        };
30837        self.push(
30838            ASTType::WithGenericParameterListOpt(Some(with_generic_parameter_list_opt_0_built)),
30839            context,
30840        );
30841        Ok(())
30842    }
30843
30844    /// Semantic action for production 788:
30845    ///
30846    /// `WithGenericParameterListOpt /* Option<T>::None */: ;`
30847    ///
30848    #[parol_runtime::function_name::named]
30849    fn with_generic_parameter_list_opt_1(&mut self) -> Result<()> {
30850        let context = function_name!();
30851        trace!("{}", self.trace_item_stack(context));
30852        self.push(ASTType::WithGenericParameterListOpt(None), context);
30853        Ok(())
30854    }
30855
30856    /// Semantic action for production 789:
30857    ///
30858    /// `WithGenericParameterItem: Identifier Colon GenericBound WithGenericParameterItemOpt /* Option */;`
30859    ///
30860    #[parol_runtime::function_name::named]
30861    fn with_generic_parameter_item(
30862        &mut self,
30863        _identifier: &ParseTreeType<'t>,
30864        _colon: &ParseTreeType<'t>,
30865        _generic_bound: &ParseTreeType<'t>,
30866        _with_generic_parameter_item_opt: &ParseTreeType<'t>,
30867    ) -> Result<()> {
30868        let context = function_name!();
30869        trace!("{}", self.trace_item_stack(context));
30870        let with_generic_parameter_item_opt = pop_item!(
30871            self,
30872            with_generic_parameter_item_opt,
30873            WithGenericParameterItemOpt,
30874            context
30875        );
30876        let generic_bound = pop_item!(self, generic_bound, GenericBound, context);
30877        let colon = pop_item!(self, colon, Colon, context);
30878        let identifier = pop_item!(self, identifier, Identifier, context);
30879        let with_generic_parameter_item_built = WithGenericParameterItem {
30880            identifier: Box::new(identifier),
30881            colon: Box::new(colon),
30882            generic_bound: Box::new(generic_bound),
30883            with_generic_parameter_item_opt,
30884        };
30885        // Calling user action here
30886        self.user_grammar
30887            .with_generic_parameter_item(&with_generic_parameter_item_built)?;
30888        self.push(
30889            ASTType::WithGenericParameterItem(with_generic_parameter_item_built),
30890            context,
30891        );
30892        Ok(())
30893    }
30894
30895    /// Semantic action for production 790:
30896    ///
30897    /// `WithGenericParameterItemOpt /* Option<T>::Some */: Equ WithGenericArgumentItem;`
30898    ///
30899    #[parol_runtime::function_name::named]
30900    fn with_generic_parameter_item_opt_0(
30901        &mut self,
30902        _equ: &ParseTreeType<'t>,
30903        _with_generic_argument_item: &ParseTreeType<'t>,
30904    ) -> Result<()> {
30905        let context = function_name!();
30906        trace!("{}", self.trace_item_stack(context));
30907        let with_generic_argument_item = pop_item!(
30908            self,
30909            with_generic_argument_item,
30910            WithGenericArgumentItem,
30911            context
30912        );
30913        let equ = pop_item!(self, equ, Equ, context);
30914        let with_generic_parameter_item_opt_0_built = WithGenericParameterItemOpt {
30915            equ: Box::new(equ),
30916            with_generic_argument_item: Box::new(with_generic_argument_item),
30917        };
30918        self.push(
30919            ASTType::WithGenericParameterItemOpt(Some(with_generic_parameter_item_opt_0_built)),
30920            context,
30921        );
30922        Ok(())
30923    }
30924
30925    /// Semantic action for production 791:
30926    ///
30927    /// `WithGenericParameterItemOpt /* Option<T>::None */: ;`
30928    ///
30929    #[parol_runtime::function_name::named]
30930    fn with_generic_parameter_item_opt_1(&mut self) -> Result<()> {
30931        let context = function_name!();
30932        trace!("{}", self.trace_item_stack(context));
30933        self.push(ASTType::WithGenericParameterItemOpt(None), context);
30934        Ok(())
30935    }
30936
30937    /// Semantic action for production 792:
30938    ///
30939    /// `WithGenericArgument: ColonColonLAngle %push(Generic) WithGenericArgumentOpt /* Option */ RAngle %pop();`
30940    ///
30941    #[parol_runtime::function_name::named]
30942    fn with_generic_argument(
30943        &mut self,
30944        _colon_colon_l_angle: &ParseTreeType<'t>,
30945        _with_generic_argument_opt: &ParseTreeType<'t>,
30946        _r_angle: &ParseTreeType<'t>,
30947    ) -> Result<()> {
30948        let context = function_name!();
30949        trace!("{}", self.trace_item_stack(context));
30950        let r_angle = pop_item!(self, r_angle, RAngle, context);
30951        let with_generic_argument_opt = pop_item!(
30952            self,
30953            with_generic_argument_opt,
30954            WithGenericArgumentOpt,
30955            context
30956        );
30957        let colon_colon_l_angle = pop_item!(self, colon_colon_l_angle, ColonColonLAngle, context);
30958        let with_generic_argument_built = WithGenericArgument {
30959            colon_colon_l_angle: Box::new(colon_colon_l_angle),
30960            with_generic_argument_opt,
30961            r_angle: Box::new(r_angle),
30962        };
30963        // Calling user action here
30964        self.user_grammar
30965            .with_generic_argument(&with_generic_argument_built)?;
30966        self.push(
30967            ASTType::WithGenericArgument(with_generic_argument_built),
30968            context,
30969        );
30970        Ok(())
30971    }
30972
30973    /// Semantic action for production 793:
30974    ///
30975    /// `WithGenericArgumentOpt /* Option<T>::Some */: WithGenericArgumentList;`
30976    ///
30977    #[parol_runtime::function_name::named]
30978    fn with_generic_argument_opt_0(
30979        &mut self,
30980        _with_generic_argument_list: &ParseTreeType<'t>,
30981    ) -> Result<()> {
30982        let context = function_name!();
30983        trace!("{}", self.trace_item_stack(context));
30984        let with_generic_argument_list = pop_item!(
30985            self,
30986            with_generic_argument_list,
30987            WithGenericArgumentList,
30988            context
30989        );
30990        let with_generic_argument_opt_0_built = WithGenericArgumentOpt {
30991            with_generic_argument_list: Box::new(with_generic_argument_list),
30992        };
30993        self.push(
30994            ASTType::WithGenericArgumentOpt(Some(with_generic_argument_opt_0_built)),
30995            context,
30996        );
30997        Ok(())
30998    }
30999
31000    /// Semantic action for production 794:
31001    ///
31002    /// `WithGenericArgumentOpt /* Option<T>::None */: ;`
31003    ///
31004    #[parol_runtime::function_name::named]
31005    fn with_generic_argument_opt_1(&mut self) -> Result<()> {
31006        let context = function_name!();
31007        trace!("{}", self.trace_item_stack(context));
31008        self.push(ASTType::WithGenericArgumentOpt(None), context);
31009        Ok(())
31010    }
31011
31012    /// Semantic action for production 795:
31013    ///
31014    /// `WithGenericArgumentList: WithGenericArgumentItem WithGenericArgumentListList /* Vec */ WithGenericArgumentListOpt /* Option */;`
31015    ///
31016    #[parol_runtime::function_name::named]
31017    fn with_generic_argument_list(
31018        &mut self,
31019        _with_generic_argument_item: &ParseTreeType<'t>,
31020        _with_generic_argument_list_list: &ParseTreeType<'t>,
31021        _with_generic_argument_list_opt: &ParseTreeType<'t>,
31022    ) -> Result<()> {
31023        let context = function_name!();
31024        trace!("{}", self.trace_item_stack(context));
31025        let with_generic_argument_list_opt = pop_item!(
31026            self,
31027            with_generic_argument_list_opt,
31028            WithGenericArgumentListOpt,
31029            context
31030        );
31031        let with_generic_argument_list_list = pop_and_reverse_item!(
31032            self,
31033            with_generic_argument_list_list,
31034            WithGenericArgumentListList,
31035            context
31036        );
31037        let with_generic_argument_item = pop_item!(
31038            self,
31039            with_generic_argument_item,
31040            WithGenericArgumentItem,
31041            context
31042        );
31043        let with_generic_argument_list_built = WithGenericArgumentList {
31044            with_generic_argument_item: Box::new(with_generic_argument_item),
31045            with_generic_argument_list_list,
31046            with_generic_argument_list_opt,
31047        };
31048        // Calling user action here
31049        self.user_grammar
31050            .with_generic_argument_list(&with_generic_argument_list_built)?;
31051        self.push(
31052            ASTType::WithGenericArgumentList(with_generic_argument_list_built),
31053            context,
31054        );
31055        Ok(())
31056    }
31057
31058    /// Semantic action for production 796:
31059    ///
31060    /// `WithGenericArgumentListList /* Vec<T>::Push */: Comma WithGenericArgumentItem WithGenericArgumentListList;`
31061    ///
31062    #[parol_runtime::function_name::named]
31063    fn with_generic_argument_list_list_0(
31064        &mut self,
31065        _comma: &ParseTreeType<'t>,
31066        _with_generic_argument_item: &ParseTreeType<'t>,
31067        _with_generic_argument_list_list: &ParseTreeType<'t>,
31068    ) -> Result<()> {
31069        let context = function_name!();
31070        trace!("{}", self.trace_item_stack(context));
31071        let mut with_generic_argument_list_list = pop_item!(
31072            self,
31073            with_generic_argument_list_list,
31074            WithGenericArgumentListList,
31075            context
31076        );
31077        let with_generic_argument_item = pop_item!(
31078            self,
31079            with_generic_argument_item,
31080            WithGenericArgumentItem,
31081            context
31082        );
31083        let comma = pop_item!(self, comma, Comma, context);
31084        let with_generic_argument_list_list_0_built = WithGenericArgumentListList {
31085            with_generic_argument_item: Box::new(with_generic_argument_item),
31086            comma: Box::new(comma),
31087        };
31088        // Add an element to the vector
31089        with_generic_argument_list_list.push(with_generic_argument_list_list_0_built);
31090        self.push(
31091            ASTType::WithGenericArgumentListList(with_generic_argument_list_list),
31092            context,
31093        );
31094        Ok(())
31095    }
31096
31097    /// Semantic action for production 797:
31098    ///
31099    /// `WithGenericArgumentListList /* Vec<T>::New */: ;`
31100    ///
31101    #[parol_runtime::function_name::named]
31102    fn with_generic_argument_list_list_1(&mut self) -> Result<()> {
31103        let context = function_name!();
31104        trace!("{}", self.trace_item_stack(context));
31105        let with_generic_argument_list_list_1_built = Vec::new();
31106        self.push(
31107            ASTType::WithGenericArgumentListList(with_generic_argument_list_list_1_built),
31108            context,
31109        );
31110        Ok(())
31111    }
31112
31113    /// Semantic action for production 798:
31114    ///
31115    /// `WithGenericArgumentListOpt /* Option<T>::Some */: Comma;`
31116    ///
31117    #[parol_runtime::function_name::named]
31118    fn with_generic_argument_list_opt_0(&mut self, _comma: &ParseTreeType<'t>) -> Result<()> {
31119        let context = function_name!();
31120        trace!("{}", self.trace_item_stack(context));
31121        let comma = pop_item!(self, comma, Comma, context);
31122        let with_generic_argument_list_opt_0_built = WithGenericArgumentListOpt {
31123            comma: Box::new(comma),
31124        };
31125        self.push(
31126            ASTType::WithGenericArgumentListOpt(Some(with_generic_argument_list_opt_0_built)),
31127            context,
31128        );
31129        Ok(())
31130    }
31131
31132    /// Semantic action for production 799:
31133    ///
31134    /// `WithGenericArgumentListOpt /* Option<T>::None */: ;`
31135    ///
31136    #[parol_runtime::function_name::named]
31137    fn with_generic_argument_list_opt_1(&mut self) -> Result<()> {
31138        let context = function_name!();
31139        trace!("{}", self.trace_item_stack(context));
31140        self.push(ASTType::WithGenericArgumentListOpt(None), context);
31141        Ok(())
31142    }
31143
31144    /// Semantic action for production 800:
31145    ///
31146    /// `WithGenericArgumentItem: ScopedIdentifier;`
31147    ///
31148    #[parol_runtime::function_name::named]
31149    fn with_generic_argument_item_0(
31150        &mut self,
31151        _scoped_identifier: &ParseTreeType<'t>,
31152    ) -> Result<()> {
31153        let context = function_name!();
31154        trace!("{}", self.trace_item_stack(context));
31155        let scoped_identifier = pop_item!(self, scoped_identifier, ScopedIdentifier, context);
31156        let with_generic_argument_item_0_built = WithGenericArgumentItemScopedIdentifier {
31157            scoped_identifier: Box::new(scoped_identifier),
31158        };
31159        let with_generic_argument_item_0_built =
31160            WithGenericArgumentItem::ScopedIdentifier(with_generic_argument_item_0_built);
31161        // Calling user action here
31162        self.user_grammar
31163            .with_generic_argument_item(&with_generic_argument_item_0_built)?;
31164        self.push(
31165            ASTType::WithGenericArgumentItem(with_generic_argument_item_0_built),
31166            context,
31167        );
31168        Ok(())
31169    }
31170
31171    /// Semantic action for production 801:
31172    ///
31173    /// `WithGenericArgumentItem: Number;`
31174    ///
31175    #[parol_runtime::function_name::named]
31176    fn with_generic_argument_item_1(&mut self, _number: &ParseTreeType<'t>) -> Result<()> {
31177        let context = function_name!();
31178        trace!("{}", self.trace_item_stack(context));
31179        let number = pop_item!(self, number, Number, context);
31180        let with_generic_argument_item_1_built = WithGenericArgumentItemNumber {
31181            number: Box::new(number),
31182        };
31183        let with_generic_argument_item_1_built =
31184            WithGenericArgumentItem::Number(with_generic_argument_item_1_built);
31185        // Calling user action here
31186        self.user_grammar
31187            .with_generic_argument_item(&with_generic_argument_item_1_built)?;
31188        self.push(
31189            ASTType::WithGenericArgumentItem(with_generic_argument_item_1_built),
31190            context,
31191        );
31192        Ok(())
31193    }
31194
31195    /// Semantic action for production 802:
31196    ///
31197    /// `PortDeclaration: LParen PortDeclarationOpt /* Option */ RParen;`
31198    ///
31199    #[parol_runtime::function_name::named]
31200    fn port_declaration(
31201        &mut self,
31202        _l_paren: &ParseTreeType<'t>,
31203        _port_declaration_opt: &ParseTreeType<'t>,
31204        _r_paren: &ParseTreeType<'t>,
31205    ) -> Result<()> {
31206        let context = function_name!();
31207        trace!("{}", self.trace_item_stack(context));
31208        let r_paren = pop_item!(self, r_paren, RParen, context);
31209        let port_declaration_opt =
31210            pop_item!(self, port_declaration_opt, PortDeclarationOpt, context);
31211        let l_paren = pop_item!(self, l_paren, LParen, context);
31212        let port_declaration_built = PortDeclaration {
31213            l_paren: Box::new(l_paren),
31214            port_declaration_opt,
31215            r_paren: Box::new(r_paren),
31216        };
31217        // Calling user action here
31218        self.user_grammar
31219            .port_declaration(&port_declaration_built)?;
31220        self.push(ASTType::PortDeclaration(port_declaration_built), context);
31221        Ok(())
31222    }
31223
31224    /// Semantic action for production 803:
31225    ///
31226    /// `PortDeclarationOpt /* Option<T>::Some */: PortDeclarationList;`
31227    ///
31228    #[parol_runtime::function_name::named]
31229    fn port_declaration_opt_0(&mut self, _port_declaration_list: &ParseTreeType<'t>) -> Result<()> {
31230        let context = function_name!();
31231        trace!("{}", self.trace_item_stack(context));
31232        let port_declaration_list =
31233            pop_item!(self, port_declaration_list, PortDeclarationList, context);
31234        let port_declaration_opt_0_built = PortDeclarationOpt {
31235            port_declaration_list: Box::new(port_declaration_list),
31236        };
31237        self.push(
31238            ASTType::PortDeclarationOpt(Some(port_declaration_opt_0_built)),
31239            context,
31240        );
31241        Ok(())
31242    }
31243
31244    /// Semantic action for production 804:
31245    ///
31246    /// `PortDeclarationOpt /* Option<T>::None */: ;`
31247    ///
31248    #[parol_runtime::function_name::named]
31249    fn port_declaration_opt_1(&mut self) -> Result<()> {
31250        let context = function_name!();
31251        trace!("{}", self.trace_item_stack(context));
31252        self.push(ASTType::PortDeclarationOpt(None), context);
31253        Ok(())
31254    }
31255
31256    /// Semantic action for production 805:
31257    ///
31258    /// `PortDeclarationList: PortDeclarationGroup PortDeclarationListList /* Vec */ PortDeclarationListOpt /* Option */;`
31259    ///
31260    #[parol_runtime::function_name::named]
31261    fn port_declaration_list(
31262        &mut self,
31263        _port_declaration_group: &ParseTreeType<'t>,
31264        _port_declaration_list_list: &ParseTreeType<'t>,
31265        _port_declaration_list_opt: &ParseTreeType<'t>,
31266    ) -> Result<()> {
31267        let context = function_name!();
31268        trace!("{}", self.trace_item_stack(context));
31269        let port_declaration_list_opt = pop_item!(
31270            self,
31271            port_declaration_list_opt,
31272            PortDeclarationListOpt,
31273            context
31274        );
31275        let port_declaration_list_list = pop_and_reverse_item!(
31276            self,
31277            port_declaration_list_list,
31278            PortDeclarationListList,
31279            context
31280        );
31281        let port_declaration_group =
31282            pop_item!(self, port_declaration_group, PortDeclarationGroup, context);
31283        let port_declaration_list_built = PortDeclarationList {
31284            port_declaration_group: Box::new(port_declaration_group),
31285            port_declaration_list_list,
31286            port_declaration_list_opt,
31287        };
31288        // Calling user action here
31289        self.user_grammar
31290            .port_declaration_list(&port_declaration_list_built)?;
31291        self.push(
31292            ASTType::PortDeclarationList(port_declaration_list_built),
31293            context,
31294        );
31295        Ok(())
31296    }
31297
31298    /// Semantic action for production 806:
31299    ///
31300    /// `PortDeclarationListList /* Vec<T>::Push */: Comma PortDeclarationGroup PortDeclarationListList;`
31301    ///
31302    #[parol_runtime::function_name::named]
31303    fn port_declaration_list_list_0(
31304        &mut self,
31305        _comma: &ParseTreeType<'t>,
31306        _port_declaration_group: &ParseTreeType<'t>,
31307        _port_declaration_list_list: &ParseTreeType<'t>,
31308    ) -> Result<()> {
31309        let context = function_name!();
31310        trace!("{}", self.trace_item_stack(context));
31311        let mut port_declaration_list_list = pop_item!(
31312            self,
31313            port_declaration_list_list,
31314            PortDeclarationListList,
31315            context
31316        );
31317        let port_declaration_group =
31318            pop_item!(self, port_declaration_group, PortDeclarationGroup, context);
31319        let comma = pop_item!(self, comma, Comma, context);
31320        let port_declaration_list_list_0_built = PortDeclarationListList {
31321            port_declaration_group: Box::new(port_declaration_group),
31322            comma: Box::new(comma),
31323        };
31324        // Add an element to the vector
31325        port_declaration_list_list.push(port_declaration_list_list_0_built);
31326        self.push(
31327            ASTType::PortDeclarationListList(port_declaration_list_list),
31328            context,
31329        );
31330        Ok(())
31331    }
31332
31333    /// Semantic action for production 807:
31334    ///
31335    /// `PortDeclarationListList /* Vec<T>::New */: ;`
31336    ///
31337    #[parol_runtime::function_name::named]
31338    fn port_declaration_list_list_1(&mut self) -> Result<()> {
31339        let context = function_name!();
31340        trace!("{}", self.trace_item_stack(context));
31341        let port_declaration_list_list_1_built = Vec::new();
31342        self.push(
31343            ASTType::PortDeclarationListList(port_declaration_list_list_1_built),
31344            context,
31345        );
31346        Ok(())
31347    }
31348
31349    /// Semantic action for production 808:
31350    ///
31351    /// `PortDeclarationListOpt /* Option<T>::Some */: Comma;`
31352    ///
31353    #[parol_runtime::function_name::named]
31354    fn port_declaration_list_opt_0(&mut self, _comma: &ParseTreeType<'t>) -> Result<()> {
31355        let context = function_name!();
31356        trace!("{}", self.trace_item_stack(context));
31357        let comma = pop_item!(self, comma, Comma, context);
31358        let port_declaration_list_opt_0_built = PortDeclarationListOpt {
31359            comma: Box::new(comma),
31360        };
31361        self.push(
31362            ASTType::PortDeclarationListOpt(Some(port_declaration_list_opt_0_built)),
31363            context,
31364        );
31365        Ok(())
31366    }
31367
31368    /// Semantic action for production 809:
31369    ///
31370    /// `PortDeclarationListOpt /* Option<T>::None */: ;`
31371    ///
31372    #[parol_runtime::function_name::named]
31373    fn port_declaration_list_opt_1(&mut self) -> Result<()> {
31374        let context = function_name!();
31375        trace!("{}", self.trace_item_stack(context));
31376        self.push(ASTType::PortDeclarationListOpt(None), context);
31377        Ok(())
31378    }
31379
31380    /// Semantic action for production 810:
31381    ///
31382    /// `PortDeclarationGroup: PortDeclarationGroupList /* Vec */ PortDeclarationGroupGroup;`
31383    ///
31384    #[parol_runtime::function_name::named]
31385    fn port_declaration_group(
31386        &mut self,
31387        _port_declaration_group_list: &ParseTreeType<'t>,
31388        _port_declaration_group_group: &ParseTreeType<'t>,
31389    ) -> Result<()> {
31390        let context = function_name!();
31391        trace!("{}", self.trace_item_stack(context));
31392        let port_declaration_group_group = pop_item!(
31393            self,
31394            port_declaration_group_group,
31395            PortDeclarationGroupGroup,
31396            context
31397        );
31398        let port_declaration_group_list = pop_and_reverse_item!(
31399            self,
31400            port_declaration_group_list,
31401            PortDeclarationGroupList,
31402            context
31403        );
31404        let port_declaration_group_built = PortDeclarationGroup {
31405            port_declaration_group_list,
31406            port_declaration_group_group: Box::new(port_declaration_group_group),
31407        };
31408        // Calling user action here
31409        self.user_grammar
31410            .port_declaration_group(&port_declaration_group_built)?;
31411        self.push(
31412            ASTType::PortDeclarationGroup(port_declaration_group_built),
31413            context,
31414        );
31415        Ok(())
31416    }
31417
31418    /// Semantic action for production 811:
31419    ///
31420    /// `PortDeclarationGroupGroup: LBrace PortDeclarationList RBrace;`
31421    ///
31422    #[parol_runtime::function_name::named]
31423    fn port_declaration_group_group_0(
31424        &mut self,
31425        _l_brace: &ParseTreeType<'t>,
31426        _port_declaration_list: &ParseTreeType<'t>,
31427        _r_brace: &ParseTreeType<'t>,
31428    ) -> Result<()> {
31429        let context = function_name!();
31430        trace!("{}", self.trace_item_stack(context));
31431        let r_brace = pop_item!(self, r_brace, RBrace, context);
31432        let port_declaration_list =
31433            pop_item!(self, port_declaration_list, PortDeclarationList, context);
31434        let l_brace = pop_item!(self, l_brace, LBrace, context);
31435        let port_declaration_group_group_0_built =
31436            PortDeclarationGroupGroupLBracePortDeclarationListRBrace {
31437                l_brace: Box::new(l_brace),
31438                port_declaration_list: Box::new(port_declaration_list),
31439                r_brace: Box::new(r_brace),
31440            };
31441        let port_declaration_group_group_0_built =
31442            PortDeclarationGroupGroup::LBracePortDeclarationListRBrace(
31443                port_declaration_group_group_0_built,
31444            );
31445        self.push(
31446            ASTType::PortDeclarationGroupGroup(port_declaration_group_group_0_built),
31447            context,
31448        );
31449        Ok(())
31450    }
31451
31452    /// Semantic action for production 812:
31453    ///
31454    /// `PortDeclarationGroupGroup: PortDeclarationItem;`
31455    ///
31456    #[parol_runtime::function_name::named]
31457    fn port_declaration_group_group_1(
31458        &mut self,
31459        _port_declaration_item: &ParseTreeType<'t>,
31460    ) -> Result<()> {
31461        let context = function_name!();
31462        trace!("{}", self.trace_item_stack(context));
31463        let port_declaration_item =
31464            pop_item!(self, port_declaration_item, PortDeclarationItem, context);
31465        let port_declaration_group_group_1_built = PortDeclarationGroupGroupPortDeclarationItem {
31466            port_declaration_item: Box::new(port_declaration_item),
31467        };
31468        let port_declaration_group_group_1_built =
31469            PortDeclarationGroupGroup::PortDeclarationItem(port_declaration_group_group_1_built);
31470        self.push(
31471            ASTType::PortDeclarationGroupGroup(port_declaration_group_group_1_built),
31472            context,
31473        );
31474        Ok(())
31475    }
31476
31477    /// Semantic action for production 813:
31478    ///
31479    /// `PortDeclarationGroupList /* Vec<T>::Push */: Attribute PortDeclarationGroupList;`
31480    ///
31481    #[parol_runtime::function_name::named]
31482    fn port_declaration_group_list_0(
31483        &mut self,
31484        _attribute: &ParseTreeType<'t>,
31485        _port_declaration_group_list: &ParseTreeType<'t>,
31486    ) -> Result<()> {
31487        let context = function_name!();
31488        trace!("{}", self.trace_item_stack(context));
31489        let mut port_declaration_group_list = pop_item!(
31490            self,
31491            port_declaration_group_list,
31492            PortDeclarationGroupList,
31493            context
31494        );
31495        let attribute = pop_item!(self, attribute, Attribute, context);
31496        let port_declaration_group_list_0_built = PortDeclarationGroupList {
31497            attribute: Box::new(attribute),
31498        };
31499        // Add an element to the vector
31500        port_declaration_group_list.push(port_declaration_group_list_0_built);
31501        self.push(
31502            ASTType::PortDeclarationGroupList(port_declaration_group_list),
31503            context,
31504        );
31505        Ok(())
31506    }
31507
31508    /// Semantic action for production 814:
31509    ///
31510    /// `PortDeclarationGroupList /* Vec<T>::New */: ;`
31511    ///
31512    #[parol_runtime::function_name::named]
31513    fn port_declaration_group_list_1(&mut self) -> Result<()> {
31514        let context = function_name!();
31515        trace!("{}", self.trace_item_stack(context));
31516        let port_declaration_group_list_1_built = Vec::new();
31517        self.push(
31518            ASTType::PortDeclarationGroupList(port_declaration_group_list_1_built),
31519            context,
31520        );
31521        Ok(())
31522    }
31523
31524    /// Semantic action for production 815:
31525    ///
31526    /// `PortDeclarationItem: Identifier Colon PortDeclarationItemGroup;`
31527    ///
31528    #[parol_runtime::function_name::named]
31529    fn port_declaration_item(
31530        &mut self,
31531        _identifier: &ParseTreeType<'t>,
31532        _colon: &ParseTreeType<'t>,
31533        _port_declaration_item_group: &ParseTreeType<'t>,
31534    ) -> Result<()> {
31535        let context = function_name!();
31536        trace!("{}", self.trace_item_stack(context));
31537        let port_declaration_item_group = pop_item!(
31538            self,
31539            port_declaration_item_group,
31540            PortDeclarationItemGroup,
31541            context
31542        );
31543        let colon = pop_item!(self, colon, Colon, context);
31544        let identifier = pop_item!(self, identifier, Identifier, context);
31545        let port_declaration_item_built = PortDeclarationItem {
31546            identifier: Box::new(identifier),
31547            colon: Box::new(colon),
31548            port_declaration_item_group: Box::new(port_declaration_item_group),
31549        };
31550        // Calling user action here
31551        self.user_grammar
31552            .port_declaration_item(&port_declaration_item_built)?;
31553        self.push(
31554            ASTType::PortDeclarationItem(port_declaration_item_built),
31555            context,
31556        );
31557        Ok(())
31558    }
31559
31560    /// Semantic action for production 816:
31561    ///
31562    /// `PortDeclarationItemGroup: PortTypeConcrete;`
31563    ///
31564    #[parol_runtime::function_name::named]
31565    fn port_declaration_item_group_0(
31566        &mut self,
31567        _port_type_concrete: &ParseTreeType<'t>,
31568    ) -> Result<()> {
31569        let context = function_name!();
31570        trace!("{}", self.trace_item_stack(context));
31571        let port_type_concrete = pop_item!(self, port_type_concrete, PortTypeConcrete, context);
31572        let port_declaration_item_group_0_built = PortDeclarationItemGroupPortTypeConcrete {
31573            port_type_concrete: Box::new(port_type_concrete),
31574        };
31575        let port_declaration_item_group_0_built =
31576            PortDeclarationItemGroup::PortTypeConcrete(port_declaration_item_group_0_built);
31577        self.push(
31578            ASTType::PortDeclarationItemGroup(port_declaration_item_group_0_built),
31579            context,
31580        );
31581        Ok(())
31582    }
31583
31584    /// Semantic action for production 817:
31585    ///
31586    /// `PortDeclarationItemGroup: PortTypeAbstract;`
31587    ///
31588    #[parol_runtime::function_name::named]
31589    fn port_declaration_item_group_1(
31590        &mut self,
31591        _port_type_abstract: &ParseTreeType<'t>,
31592    ) -> Result<()> {
31593        let context = function_name!();
31594        trace!("{}", self.trace_item_stack(context));
31595        let port_type_abstract = pop_item!(self, port_type_abstract, PortTypeAbstract, context);
31596        let port_declaration_item_group_1_built = PortDeclarationItemGroupPortTypeAbstract {
31597            port_type_abstract: Box::new(port_type_abstract),
31598        };
31599        let port_declaration_item_group_1_built =
31600            PortDeclarationItemGroup::PortTypeAbstract(port_declaration_item_group_1_built);
31601        self.push(
31602            ASTType::PortDeclarationItemGroup(port_declaration_item_group_1_built),
31603            context,
31604        );
31605        Ok(())
31606    }
31607
31608    /// Semantic action for production 818:
31609    ///
31610    /// `PortTypeConcrete: Direction PortTypeConcreteOpt /* Option */ ArrayType PortTypeConcreteOpt0 /* Option */;`
31611    ///
31612    #[parol_runtime::function_name::named]
31613    fn port_type_concrete(
31614        &mut self,
31615        _direction: &ParseTreeType<'t>,
31616        _port_type_concrete_opt: &ParseTreeType<'t>,
31617        _array_type: &ParseTreeType<'t>,
31618        _port_type_concrete_opt0: &ParseTreeType<'t>,
31619    ) -> Result<()> {
31620        let context = function_name!();
31621        trace!("{}", self.trace_item_stack(context));
31622        let port_type_concrete_opt0 =
31623            pop_item!(self, port_type_concrete_opt0, PortTypeConcreteOpt0, context);
31624        let array_type = pop_item!(self, array_type, ArrayType, context);
31625        let port_type_concrete_opt =
31626            pop_item!(self, port_type_concrete_opt, PortTypeConcreteOpt, context);
31627        let direction = pop_item!(self, direction, Direction, context);
31628        let port_type_concrete_built = PortTypeConcrete {
31629            direction: Box::new(direction),
31630            port_type_concrete_opt,
31631            array_type: Box::new(array_type),
31632            port_type_concrete_opt0,
31633        };
31634        // Calling user action here
31635        self.user_grammar
31636            .port_type_concrete(&port_type_concrete_built)?;
31637        self.push(ASTType::PortTypeConcrete(port_type_concrete_built), context);
31638        Ok(())
31639    }
31640
31641    /// Semantic action for production 819:
31642    ///
31643    /// `PortTypeConcreteOpt0 /* Option<T>::Some */: Equ PortDefaultValue;`
31644    ///
31645    #[parol_runtime::function_name::named]
31646    fn port_type_concrete_opt0_0(
31647        &mut self,
31648        _equ: &ParseTreeType<'t>,
31649        _port_default_value: &ParseTreeType<'t>,
31650    ) -> Result<()> {
31651        let context = function_name!();
31652        trace!("{}", self.trace_item_stack(context));
31653        let port_default_value = pop_item!(self, port_default_value, PortDefaultValue, context);
31654        let equ = pop_item!(self, equ, Equ, context);
31655        let port_type_concrete_opt0_0_built = PortTypeConcreteOpt0 {
31656            equ: Box::new(equ),
31657            port_default_value: Box::new(port_default_value),
31658        };
31659        self.push(
31660            ASTType::PortTypeConcreteOpt0(Some(port_type_concrete_opt0_0_built)),
31661            context,
31662        );
31663        Ok(())
31664    }
31665
31666    /// Semantic action for production 820:
31667    ///
31668    /// `PortTypeConcreteOpt0 /* Option<T>::None */: ;`
31669    ///
31670    #[parol_runtime::function_name::named]
31671    fn port_type_concrete_opt0_1(&mut self) -> Result<()> {
31672        let context = function_name!();
31673        trace!("{}", self.trace_item_stack(context));
31674        self.push(ASTType::PortTypeConcreteOpt0(None), context);
31675        Ok(())
31676    }
31677
31678    /// Semantic action for production 821:
31679    ///
31680    /// `PortTypeConcreteOpt /* Option<T>::Some */: ClockDomain;`
31681    ///
31682    #[parol_runtime::function_name::named]
31683    fn port_type_concrete_opt_0(&mut self, _clock_domain: &ParseTreeType<'t>) -> Result<()> {
31684        let context = function_name!();
31685        trace!("{}", self.trace_item_stack(context));
31686        let clock_domain = pop_item!(self, clock_domain, ClockDomain, context);
31687        let port_type_concrete_opt_0_built = PortTypeConcreteOpt {
31688            clock_domain: Box::new(clock_domain),
31689        };
31690        self.push(
31691            ASTType::PortTypeConcreteOpt(Some(port_type_concrete_opt_0_built)),
31692            context,
31693        );
31694        Ok(())
31695    }
31696
31697    /// Semantic action for production 822:
31698    ///
31699    /// `PortTypeConcreteOpt /* Option<T>::None */: ;`
31700    ///
31701    #[parol_runtime::function_name::named]
31702    fn port_type_concrete_opt_1(&mut self) -> Result<()> {
31703        let context = function_name!();
31704        trace!("{}", self.trace_item_stack(context));
31705        self.push(ASTType::PortTypeConcreteOpt(None), context);
31706        Ok(())
31707    }
31708
31709    /// Semantic action for production 823:
31710    ///
31711    /// `PortDefaultValue: Expression;`
31712    ///
31713    #[parol_runtime::function_name::named]
31714    fn port_default_value(&mut self, _expression: &ParseTreeType<'t>) -> Result<()> {
31715        let context = function_name!();
31716        trace!("{}", self.trace_item_stack(context));
31717        let expression = pop_item!(self, expression, Expression, context);
31718        let port_default_value_built = PortDefaultValue {
31719            expression: Box::new(expression),
31720        };
31721        // Calling user action here
31722        self.user_grammar
31723            .port_default_value(&port_default_value_built)?;
31724        self.push(ASTType::PortDefaultValue(port_default_value_built), context);
31725        Ok(())
31726    }
31727
31728    /// Semantic action for production 824:
31729    ///
31730    /// `PortTypeAbstract: PortTypeAbstractOpt /* Option */ Interface PortTypeAbstractOpt0 /* Option */ PortTypeAbstractOpt1 /* Option */;`
31731    ///
31732    #[parol_runtime::function_name::named]
31733    fn port_type_abstract(
31734        &mut self,
31735        _port_type_abstract_opt: &ParseTreeType<'t>,
31736        _interface: &ParseTreeType<'t>,
31737        _port_type_abstract_opt0: &ParseTreeType<'t>,
31738        _port_type_abstract_opt1: &ParseTreeType<'t>,
31739    ) -> Result<()> {
31740        let context = function_name!();
31741        trace!("{}", self.trace_item_stack(context));
31742        let port_type_abstract_opt1 =
31743            pop_item!(self, port_type_abstract_opt1, PortTypeAbstractOpt1, context);
31744        let port_type_abstract_opt0 =
31745            pop_item!(self, port_type_abstract_opt0, PortTypeAbstractOpt0, context);
31746        let interface = pop_item!(self, interface, Interface, context);
31747        let port_type_abstract_opt =
31748            pop_item!(self, port_type_abstract_opt, PortTypeAbstractOpt, context);
31749        let port_type_abstract_built = PortTypeAbstract {
31750            port_type_abstract_opt,
31751            interface: Box::new(interface),
31752            port_type_abstract_opt0,
31753            port_type_abstract_opt1,
31754        };
31755        // Calling user action here
31756        self.user_grammar
31757            .port_type_abstract(&port_type_abstract_built)?;
31758        self.push(ASTType::PortTypeAbstract(port_type_abstract_built), context);
31759        Ok(())
31760    }
31761
31762    /// Semantic action for production 825:
31763    ///
31764    /// `PortTypeAbstractOpt1 /* Option<T>::Some */: Array;`
31765    ///
31766    #[parol_runtime::function_name::named]
31767    fn port_type_abstract_opt1_0(&mut self, _array: &ParseTreeType<'t>) -> Result<()> {
31768        let context = function_name!();
31769        trace!("{}", self.trace_item_stack(context));
31770        let array = pop_item!(self, array, Array, context);
31771        let port_type_abstract_opt1_0_built = PortTypeAbstractOpt1 {
31772            array: Box::new(array),
31773        };
31774        self.push(
31775            ASTType::PortTypeAbstractOpt1(Some(port_type_abstract_opt1_0_built)),
31776            context,
31777        );
31778        Ok(())
31779    }
31780
31781    /// Semantic action for production 826:
31782    ///
31783    /// `PortTypeAbstractOpt1 /* Option<T>::None */: ;`
31784    ///
31785    #[parol_runtime::function_name::named]
31786    fn port_type_abstract_opt1_1(&mut self) -> Result<()> {
31787        let context = function_name!();
31788        trace!("{}", self.trace_item_stack(context));
31789        self.push(ASTType::PortTypeAbstractOpt1(None), context);
31790        Ok(())
31791    }
31792
31793    /// Semantic action for production 827:
31794    ///
31795    /// `PortTypeAbstractOpt0 /* Option<T>::Some */: ColonColon Identifier;`
31796    ///
31797    #[parol_runtime::function_name::named]
31798    fn port_type_abstract_opt0_0(
31799        &mut self,
31800        _colon_colon: &ParseTreeType<'t>,
31801        _identifier: &ParseTreeType<'t>,
31802    ) -> Result<()> {
31803        let context = function_name!();
31804        trace!("{}", self.trace_item_stack(context));
31805        let identifier = pop_item!(self, identifier, Identifier, context);
31806        let colon_colon = pop_item!(self, colon_colon, ColonColon, context);
31807        let port_type_abstract_opt0_0_built = PortTypeAbstractOpt0 {
31808            colon_colon: Box::new(colon_colon),
31809            identifier: Box::new(identifier),
31810        };
31811        self.push(
31812            ASTType::PortTypeAbstractOpt0(Some(port_type_abstract_opt0_0_built)),
31813            context,
31814        );
31815        Ok(())
31816    }
31817
31818    /// Semantic action for production 828:
31819    ///
31820    /// `PortTypeAbstractOpt0 /* Option<T>::None */: ;`
31821    ///
31822    #[parol_runtime::function_name::named]
31823    fn port_type_abstract_opt0_1(&mut self) -> Result<()> {
31824        let context = function_name!();
31825        trace!("{}", self.trace_item_stack(context));
31826        self.push(ASTType::PortTypeAbstractOpt0(None), context);
31827        Ok(())
31828    }
31829
31830    /// Semantic action for production 829:
31831    ///
31832    /// `PortTypeAbstractOpt /* Option<T>::Some */: ClockDomain;`
31833    ///
31834    #[parol_runtime::function_name::named]
31835    fn port_type_abstract_opt_0(&mut self, _clock_domain: &ParseTreeType<'t>) -> Result<()> {
31836        let context = function_name!();
31837        trace!("{}", self.trace_item_stack(context));
31838        let clock_domain = pop_item!(self, clock_domain, ClockDomain, context);
31839        let port_type_abstract_opt_0_built = PortTypeAbstractOpt {
31840            clock_domain: Box::new(clock_domain),
31841        };
31842        self.push(
31843            ASTType::PortTypeAbstractOpt(Some(port_type_abstract_opt_0_built)),
31844            context,
31845        );
31846        Ok(())
31847    }
31848
31849    /// Semantic action for production 830:
31850    ///
31851    /// `PortTypeAbstractOpt /* Option<T>::None */: ;`
31852    ///
31853    #[parol_runtime::function_name::named]
31854    fn port_type_abstract_opt_1(&mut self) -> Result<()> {
31855        let context = function_name!();
31856        trace!("{}", self.trace_item_stack(context));
31857        self.push(ASTType::PortTypeAbstractOpt(None), context);
31858        Ok(())
31859    }
31860
31861    /// Semantic action for production 831:
31862    ///
31863    /// `Direction: Input;`
31864    ///
31865    #[parol_runtime::function_name::named]
31866    fn direction_0(&mut self, _input: &ParseTreeType<'t>) -> Result<()> {
31867        let context = function_name!();
31868        trace!("{}", self.trace_item_stack(context));
31869        let input = pop_item!(self, input, Input, context);
31870        let direction_0_built = DirectionInput {
31871            input: Box::new(input),
31872        };
31873        let direction_0_built = Direction::Input(direction_0_built);
31874        // Calling user action here
31875        self.user_grammar.direction(&direction_0_built)?;
31876        self.push(ASTType::Direction(direction_0_built), context);
31877        Ok(())
31878    }
31879
31880    /// Semantic action for production 832:
31881    ///
31882    /// `Direction: Output;`
31883    ///
31884    #[parol_runtime::function_name::named]
31885    fn direction_1(&mut self, _output: &ParseTreeType<'t>) -> Result<()> {
31886        let context = function_name!();
31887        trace!("{}", self.trace_item_stack(context));
31888        let output = pop_item!(self, output, Output, context);
31889        let direction_1_built = DirectionOutput {
31890            output: Box::new(output),
31891        };
31892        let direction_1_built = Direction::Output(direction_1_built);
31893        // Calling user action here
31894        self.user_grammar.direction(&direction_1_built)?;
31895        self.push(ASTType::Direction(direction_1_built), context);
31896        Ok(())
31897    }
31898
31899    /// Semantic action for production 833:
31900    ///
31901    /// `Direction: Inout;`
31902    ///
31903    #[parol_runtime::function_name::named]
31904    fn direction_2(&mut self, _inout: &ParseTreeType<'t>) -> Result<()> {
31905        let context = function_name!();
31906        trace!("{}", self.trace_item_stack(context));
31907        let inout = pop_item!(self, inout, Inout, context);
31908        let direction_2_built = DirectionInout {
31909            inout: Box::new(inout),
31910        };
31911        let direction_2_built = Direction::Inout(direction_2_built);
31912        // Calling user action here
31913        self.user_grammar.direction(&direction_2_built)?;
31914        self.push(ASTType::Direction(direction_2_built), context);
31915        Ok(())
31916    }
31917
31918    /// Semantic action for production 834:
31919    ///
31920    /// `Direction: Ref;`
31921    ///
31922    #[parol_runtime::function_name::named]
31923    fn direction_3(&mut self, _ref: &ParseTreeType<'t>) -> Result<()> {
31924        let context = function_name!();
31925        trace!("{}", self.trace_item_stack(context));
31926        let r#ref = pop_item!(self, r#ref, Ref, context);
31927        let direction_3_built = DirectionRef {
31928            r#ref: Box::new(r#ref),
31929        };
31930        let direction_3_built = Direction::Ref(direction_3_built);
31931        // Calling user action here
31932        self.user_grammar.direction(&direction_3_built)?;
31933        self.push(ASTType::Direction(direction_3_built), context);
31934        Ok(())
31935    }
31936
31937    /// Semantic action for production 835:
31938    ///
31939    /// `Direction: Modport;`
31940    ///
31941    #[parol_runtime::function_name::named]
31942    fn direction_4(&mut self, _modport: &ParseTreeType<'t>) -> Result<()> {
31943        let context = function_name!();
31944        trace!("{}", self.trace_item_stack(context));
31945        let modport = pop_item!(self, modport, Modport, context);
31946        let direction_4_built = DirectionModport {
31947            modport: Box::new(modport),
31948        };
31949        let direction_4_built = Direction::Modport(direction_4_built);
31950        // Calling user action here
31951        self.user_grammar.direction(&direction_4_built)?;
31952        self.push(ASTType::Direction(direction_4_built), context);
31953        Ok(())
31954    }
31955
31956    /// Semantic action for production 836:
31957    ///
31958    /// `Direction: Import;`
31959    ///
31960    #[parol_runtime::function_name::named]
31961    fn direction_5(&mut self, _import: &ParseTreeType<'t>) -> Result<()> {
31962        let context = function_name!();
31963        trace!("{}", self.trace_item_stack(context));
31964        let import = pop_item!(self, import, Import, context);
31965        let direction_5_built = DirectionImport {
31966            import: Box::new(import),
31967        };
31968        let direction_5_built = Direction::Import(direction_5_built);
31969        // Calling user action here
31970        self.user_grammar.direction(&direction_5_built)?;
31971        self.push(ASTType::Direction(direction_5_built), context);
31972        Ok(())
31973    }
31974
31975    /// Semantic action for production 837:
31976    ///
31977    /// `FunctionDeclaration: Function Identifier FunctionDeclarationOpt /* Option */ FunctionDeclarationOpt0 /* Option */ FunctionDeclarationOpt1 /* Option */ StatementBlock;`
31978    ///
31979    #[parol_runtime::function_name::named]
31980    fn function_declaration(
31981        &mut self,
31982        _function: &ParseTreeType<'t>,
31983        _identifier: &ParseTreeType<'t>,
31984        _function_declaration_opt: &ParseTreeType<'t>,
31985        _function_declaration_opt0: &ParseTreeType<'t>,
31986        _function_declaration_opt1: &ParseTreeType<'t>,
31987        _statement_block: &ParseTreeType<'t>,
31988    ) -> Result<()> {
31989        let context = function_name!();
31990        trace!("{}", self.trace_item_stack(context));
31991        let statement_block = pop_item!(self, statement_block, StatementBlock, context);
31992        let function_declaration_opt1 = pop_item!(
31993            self,
31994            function_declaration_opt1,
31995            FunctionDeclarationOpt1,
31996            context
31997        );
31998        let function_declaration_opt0 = pop_item!(
31999            self,
32000            function_declaration_opt0,
32001            FunctionDeclarationOpt0,
32002            context
32003        );
32004        let function_declaration_opt = pop_item!(
32005            self,
32006            function_declaration_opt,
32007            FunctionDeclarationOpt,
32008            context
32009        );
32010        let identifier = pop_item!(self, identifier, Identifier, context);
32011        let function = pop_item!(self, function, Function, context);
32012        let function_declaration_built = FunctionDeclaration {
32013            function: Box::new(function),
32014            identifier: Box::new(identifier),
32015            function_declaration_opt,
32016            function_declaration_opt0,
32017            function_declaration_opt1,
32018            statement_block: Box::new(statement_block),
32019        };
32020        // Calling user action here
32021        self.user_grammar
32022            .function_declaration(&function_declaration_built)?;
32023        self.push(
32024            ASTType::FunctionDeclaration(function_declaration_built),
32025            context,
32026        );
32027        Ok(())
32028    }
32029
32030    /// Semantic action for production 838:
32031    ///
32032    /// `FunctionDeclarationOpt1 /* Option<T>::Some */: MinusGT ScalarType;`
32033    ///
32034    #[parol_runtime::function_name::named]
32035    fn function_declaration_opt1_0(
32036        &mut self,
32037        _minus_g_t: &ParseTreeType<'t>,
32038        _scalar_type: &ParseTreeType<'t>,
32039    ) -> Result<()> {
32040        let context = function_name!();
32041        trace!("{}", self.trace_item_stack(context));
32042        let scalar_type = pop_item!(self, scalar_type, ScalarType, context);
32043        let minus_g_t = pop_item!(self, minus_g_t, MinusGT, context);
32044        let function_declaration_opt1_0_built = FunctionDeclarationOpt1 {
32045            minus_g_t: Box::new(minus_g_t),
32046            scalar_type: Box::new(scalar_type),
32047        };
32048        self.push(
32049            ASTType::FunctionDeclarationOpt1(Some(function_declaration_opt1_0_built)),
32050            context,
32051        );
32052        Ok(())
32053    }
32054
32055    /// Semantic action for production 839:
32056    ///
32057    /// `FunctionDeclarationOpt1 /* Option<T>::None */: ;`
32058    ///
32059    #[parol_runtime::function_name::named]
32060    fn function_declaration_opt1_1(&mut self) -> Result<()> {
32061        let context = function_name!();
32062        trace!("{}", self.trace_item_stack(context));
32063        self.push(ASTType::FunctionDeclarationOpt1(None), context);
32064        Ok(())
32065    }
32066
32067    /// Semantic action for production 840:
32068    ///
32069    /// `FunctionDeclarationOpt0 /* Option<T>::Some */: PortDeclaration;`
32070    ///
32071    #[parol_runtime::function_name::named]
32072    fn function_declaration_opt0_0(&mut self, _port_declaration: &ParseTreeType<'t>) -> Result<()> {
32073        let context = function_name!();
32074        trace!("{}", self.trace_item_stack(context));
32075        let port_declaration = pop_item!(self, port_declaration, PortDeclaration, context);
32076        let function_declaration_opt0_0_built = FunctionDeclarationOpt0 {
32077            port_declaration: Box::new(port_declaration),
32078        };
32079        self.push(
32080            ASTType::FunctionDeclarationOpt0(Some(function_declaration_opt0_0_built)),
32081            context,
32082        );
32083        Ok(())
32084    }
32085
32086    /// Semantic action for production 841:
32087    ///
32088    /// `FunctionDeclarationOpt0 /* Option<T>::None */: ;`
32089    ///
32090    #[parol_runtime::function_name::named]
32091    fn function_declaration_opt0_1(&mut self) -> Result<()> {
32092        let context = function_name!();
32093        trace!("{}", self.trace_item_stack(context));
32094        self.push(ASTType::FunctionDeclarationOpt0(None), context);
32095        Ok(())
32096    }
32097
32098    /// Semantic action for production 842:
32099    ///
32100    /// `FunctionDeclarationOpt /* Option<T>::Some */: WithGenericParameter;`
32101    ///
32102    #[parol_runtime::function_name::named]
32103    fn function_declaration_opt_0(
32104        &mut self,
32105        _with_generic_parameter: &ParseTreeType<'t>,
32106    ) -> Result<()> {
32107        let context = function_name!();
32108        trace!("{}", self.trace_item_stack(context));
32109        let with_generic_parameter =
32110            pop_item!(self, with_generic_parameter, WithGenericParameter, context);
32111        let function_declaration_opt_0_built = FunctionDeclarationOpt {
32112            with_generic_parameter: Box::new(with_generic_parameter),
32113        };
32114        self.push(
32115            ASTType::FunctionDeclarationOpt(Some(function_declaration_opt_0_built)),
32116            context,
32117        );
32118        Ok(())
32119    }
32120
32121    /// Semantic action for production 843:
32122    ///
32123    /// `FunctionDeclarationOpt /* Option<T>::None */: ;`
32124    ///
32125    #[parol_runtime::function_name::named]
32126    fn function_declaration_opt_1(&mut self) -> Result<()> {
32127        let context = function_name!();
32128        trace!("{}", self.trace_item_stack(context));
32129        self.push(ASTType::FunctionDeclarationOpt(None), context);
32130        Ok(())
32131    }
32132
32133    /// Semantic action for production 844:
32134    ///
32135    /// `ImportDeclaration: Import ScopedIdentifier ImportDeclarationOpt /* Option */ Semicolon;`
32136    ///
32137    #[parol_runtime::function_name::named]
32138    fn import_declaration(
32139        &mut self,
32140        _import: &ParseTreeType<'t>,
32141        _scoped_identifier: &ParseTreeType<'t>,
32142        _import_declaration_opt: &ParseTreeType<'t>,
32143        _semicolon: &ParseTreeType<'t>,
32144    ) -> Result<()> {
32145        let context = function_name!();
32146        trace!("{}", self.trace_item_stack(context));
32147        let semicolon = pop_item!(self, semicolon, Semicolon, context);
32148        let import_declaration_opt =
32149            pop_item!(self, import_declaration_opt, ImportDeclarationOpt, context);
32150        let scoped_identifier = pop_item!(self, scoped_identifier, ScopedIdentifier, context);
32151        let import = pop_item!(self, import, Import, context);
32152        let import_declaration_built = ImportDeclaration {
32153            import: Box::new(import),
32154            scoped_identifier: Box::new(scoped_identifier),
32155            import_declaration_opt,
32156            semicolon: Box::new(semicolon),
32157        };
32158        // Calling user action here
32159        self.user_grammar
32160            .import_declaration(&import_declaration_built)?;
32161        self.push(
32162            ASTType::ImportDeclaration(import_declaration_built),
32163            context,
32164        );
32165        Ok(())
32166    }
32167
32168    /// Semantic action for production 845:
32169    ///
32170    /// `ImportDeclarationOpt /* Option<T>::Some */: ColonColon Star;`
32171    ///
32172    #[parol_runtime::function_name::named]
32173    fn import_declaration_opt_0(
32174        &mut self,
32175        _colon_colon: &ParseTreeType<'t>,
32176        _star: &ParseTreeType<'t>,
32177    ) -> Result<()> {
32178        let context = function_name!();
32179        trace!("{}", self.trace_item_stack(context));
32180        let star = pop_item!(self, star, Star, context);
32181        let colon_colon = pop_item!(self, colon_colon, ColonColon, context);
32182        let import_declaration_opt_0_built = ImportDeclarationOpt {
32183            colon_colon: Box::new(colon_colon),
32184            star: Box::new(star),
32185        };
32186        self.push(
32187            ASTType::ImportDeclarationOpt(Some(import_declaration_opt_0_built)),
32188            context,
32189        );
32190        Ok(())
32191    }
32192
32193    /// Semantic action for production 846:
32194    ///
32195    /// `ImportDeclarationOpt /* Option<T>::None */: ;`
32196    ///
32197    #[parol_runtime::function_name::named]
32198    fn import_declaration_opt_1(&mut self) -> Result<()> {
32199        let context = function_name!();
32200        trace!("{}", self.trace_item_stack(context));
32201        self.push(ASTType::ImportDeclarationOpt(None), context);
32202        Ok(())
32203    }
32204
32205    /// Semantic action for production 847:
32206    ///
32207    /// `ExportDeclaration: Export ExportDeclarationGroup Semicolon;`
32208    ///
32209    #[parol_runtime::function_name::named]
32210    fn export_declaration(
32211        &mut self,
32212        _export: &ParseTreeType<'t>,
32213        _export_declaration_group: &ParseTreeType<'t>,
32214        _semicolon: &ParseTreeType<'t>,
32215    ) -> Result<()> {
32216        let context = function_name!();
32217        trace!("{}", self.trace_item_stack(context));
32218        let semicolon = pop_item!(self, semicolon, Semicolon, context);
32219        let export_declaration_group = pop_item!(
32220            self,
32221            export_declaration_group,
32222            ExportDeclarationGroup,
32223            context
32224        );
32225        let export = pop_item!(self, export, Export, context);
32226        let export_declaration_built = ExportDeclaration {
32227            export: Box::new(export),
32228            export_declaration_group: Box::new(export_declaration_group),
32229            semicolon: Box::new(semicolon),
32230        };
32231        // Calling user action here
32232        self.user_grammar
32233            .export_declaration(&export_declaration_built)?;
32234        self.push(
32235            ASTType::ExportDeclaration(export_declaration_built),
32236            context,
32237        );
32238        Ok(())
32239    }
32240
32241    /// Semantic action for production 848:
32242    ///
32243    /// `ExportDeclarationGroup: Star;`
32244    ///
32245    #[parol_runtime::function_name::named]
32246    fn export_declaration_group_0(&mut self, _star: &ParseTreeType<'t>) -> Result<()> {
32247        let context = function_name!();
32248        trace!("{}", self.trace_item_stack(context));
32249        let star = pop_item!(self, star, Star, context);
32250        let export_declaration_group_0_built = ExportDeclarationGroupStar {
32251            star: Box::new(star),
32252        };
32253        let export_declaration_group_0_built =
32254            ExportDeclarationGroup::Star(export_declaration_group_0_built);
32255        self.push(
32256            ASTType::ExportDeclarationGroup(export_declaration_group_0_built),
32257            context,
32258        );
32259        Ok(())
32260    }
32261
32262    /// Semantic action for production 849:
32263    ///
32264    /// `ExportDeclarationGroup: ScopedIdentifier ExportDeclarationOpt /* Option */;`
32265    ///
32266    #[parol_runtime::function_name::named]
32267    fn export_declaration_group_1(
32268        &mut self,
32269        _scoped_identifier: &ParseTreeType<'t>,
32270        _export_declaration_opt: &ParseTreeType<'t>,
32271    ) -> Result<()> {
32272        let context = function_name!();
32273        trace!("{}", self.trace_item_stack(context));
32274        let export_declaration_opt =
32275            pop_item!(self, export_declaration_opt, ExportDeclarationOpt, context);
32276        let scoped_identifier = pop_item!(self, scoped_identifier, ScopedIdentifier, context);
32277        let export_declaration_group_1_built =
32278            ExportDeclarationGroupScopedIdentifierExportDeclarationOpt {
32279                scoped_identifier: Box::new(scoped_identifier),
32280                export_declaration_opt,
32281            };
32282        let export_declaration_group_1_built =
32283            ExportDeclarationGroup::ScopedIdentifierExportDeclarationOpt(
32284                export_declaration_group_1_built,
32285            );
32286        self.push(
32287            ASTType::ExportDeclarationGroup(export_declaration_group_1_built),
32288            context,
32289        );
32290        Ok(())
32291    }
32292
32293    /// Semantic action for production 850:
32294    ///
32295    /// `ExportDeclarationOpt /* Option<T>::Some */: ColonColon Star;`
32296    ///
32297    #[parol_runtime::function_name::named]
32298    fn export_declaration_opt_0(
32299        &mut self,
32300        _colon_colon: &ParseTreeType<'t>,
32301        _star: &ParseTreeType<'t>,
32302    ) -> Result<()> {
32303        let context = function_name!();
32304        trace!("{}", self.trace_item_stack(context));
32305        let star = pop_item!(self, star, Star, context);
32306        let colon_colon = pop_item!(self, colon_colon, ColonColon, context);
32307        let export_declaration_opt_0_built = ExportDeclarationOpt {
32308            colon_colon: Box::new(colon_colon),
32309            star: Box::new(star),
32310        };
32311        self.push(
32312            ASTType::ExportDeclarationOpt(Some(export_declaration_opt_0_built)),
32313            context,
32314        );
32315        Ok(())
32316    }
32317
32318    /// Semantic action for production 851:
32319    ///
32320    /// `ExportDeclarationOpt /* Option<T>::None */: ;`
32321    ///
32322    #[parol_runtime::function_name::named]
32323    fn export_declaration_opt_1(&mut self) -> Result<()> {
32324        let context = function_name!();
32325        trace!("{}", self.trace_item_stack(context));
32326        self.push(ASTType::ExportDeclarationOpt(None), context);
32327        Ok(())
32328    }
32329
32330    /// Semantic action for production 852:
32331    ///
32332    /// `UnsafeBlock: Unsafe LParen Identifier RParen LBrace UnsafeBlockList /* Vec */ RBrace;`
32333    ///
32334    #[parol_runtime::function_name::named]
32335    fn unsafe_block(
32336        &mut self,
32337        _unsafe: &ParseTreeType<'t>,
32338        _l_paren: &ParseTreeType<'t>,
32339        _identifier: &ParseTreeType<'t>,
32340        _r_paren: &ParseTreeType<'t>,
32341        _l_brace: &ParseTreeType<'t>,
32342        _unsafe_block_list: &ParseTreeType<'t>,
32343        _r_brace: &ParseTreeType<'t>,
32344    ) -> Result<()> {
32345        let context = function_name!();
32346        trace!("{}", self.trace_item_stack(context));
32347        let r_brace = pop_item!(self, r_brace, RBrace, context);
32348        let unsafe_block_list =
32349            pop_and_reverse_item!(self, unsafe_block_list, UnsafeBlockList, context);
32350        let l_brace = pop_item!(self, l_brace, LBrace, context);
32351        let r_paren = pop_item!(self, r_paren, RParen, context);
32352        let identifier = pop_item!(self, identifier, Identifier, context);
32353        let l_paren = pop_item!(self, l_paren, LParen, context);
32354        let r#unsafe = pop_item!(self, r#unsafe, Unsafe, context);
32355        let unsafe_block_built = UnsafeBlock {
32356            r#unsafe: Box::new(r#unsafe),
32357            l_paren: Box::new(l_paren),
32358            identifier: Box::new(identifier),
32359            r_paren: Box::new(r_paren),
32360            l_brace: Box::new(l_brace),
32361            unsafe_block_list,
32362            r_brace: Box::new(r_brace),
32363        };
32364        // Calling user action here
32365        self.user_grammar.unsafe_block(&unsafe_block_built)?;
32366        self.push(ASTType::UnsafeBlock(unsafe_block_built), context);
32367        Ok(())
32368    }
32369
32370    /// Semantic action for production 853:
32371    ///
32372    /// `UnsafeBlockList /* Vec<T>::Push */: GenerateGroup UnsafeBlockList;`
32373    ///
32374    #[parol_runtime::function_name::named]
32375    fn unsafe_block_list_0(
32376        &mut self,
32377        _generate_group: &ParseTreeType<'t>,
32378        _unsafe_block_list: &ParseTreeType<'t>,
32379    ) -> Result<()> {
32380        let context = function_name!();
32381        trace!("{}", self.trace_item_stack(context));
32382        let mut unsafe_block_list = pop_item!(self, unsafe_block_list, UnsafeBlockList, context);
32383        let generate_group = pop_item!(self, generate_group, GenerateGroup, context);
32384        let unsafe_block_list_0_built = UnsafeBlockList {
32385            generate_group: Box::new(generate_group),
32386        };
32387        // Add an element to the vector
32388        unsafe_block_list.push(unsafe_block_list_0_built);
32389        self.push(ASTType::UnsafeBlockList(unsafe_block_list), context);
32390        Ok(())
32391    }
32392
32393    /// Semantic action for production 854:
32394    ///
32395    /// `UnsafeBlockList /* Vec<T>::New */: ;`
32396    ///
32397    #[parol_runtime::function_name::named]
32398    fn unsafe_block_list_1(&mut self) -> Result<()> {
32399        let context = function_name!();
32400        trace!("{}", self.trace_item_stack(context));
32401        let unsafe_block_list_1_built = Vec::new();
32402        self.push(ASTType::UnsafeBlockList(unsafe_block_list_1_built), context);
32403        Ok(())
32404    }
32405
32406    /// Semantic action for production 855:
32407    ///
32408    /// `ModuleDeclaration: Module Identifier ModuleDeclarationOpt /* Option */ ModuleDeclarationOpt0 /* Option */ ModuleDeclarationOpt1 /* Option */ ModuleDeclarationOpt2 /* Option */ LBrace ModuleDeclarationList /* Vec */ RBrace;`
32409    ///
32410    #[parol_runtime::function_name::named]
32411    fn module_declaration(
32412        &mut self,
32413        _module: &ParseTreeType<'t>,
32414        _identifier: &ParseTreeType<'t>,
32415        _module_declaration_opt: &ParseTreeType<'t>,
32416        _module_declaration_opt0: &ParseTreeType<'t>,
32417        _module_declaration_opt1: &ParseTreeType<'t>,
32418        _module_declaration_opt2: &ParseTreeType<'t>,
32419        _l_brace: &ParseTreeType<'t>,
32420        _module_declaration_list: &ParseTreeType<'t>,
32421        _r_brace: &ParseTreeType<'t>,
32422    ) -> Result<()> {
32423        let context = function_name!();
32424        trace!("{}", self.trace_item_stack(context));
32425        let r_brace = pop_item!(self, r_brace, RBrace, context);
32426        let module_declaration_list = pop_and_reverse_item!(
32427            self,
32428            module_declaration_list,
32429            ModuleDeclarationList,
32430            context
32431        );
32432        let l_brace = pop_item!(self, l_brace, LBrace, context);
32433        let module_declaration_opt2 = pop_item!(
32434            self,
32435            module_declaration_opt2,
32436            ModuleDeclarationOpt2,
32437            context
32438        );
32439        let module_declaration_opt1 = pop_item!(
32440            self,
32441            module_declaration_opt1,
32442            ModuleDeclarationOpt1,
32443            context
32444        );
32445        let module_declaration_opt0 = pop_item!(
32446            self,
32447            module_declaration_opt0,
32448            ModuleDeclarationOpt0,
32449            context
32450        );
32451        let module_declaration_opt =
32452            pop_item!(self, module_declaration_opt, ModuleDeclarationOpt, context);
32453        let identifier = pop_item!(self, identifier, Identifier, context);
32454        let module = pop_item!(self, module, Module, context);
32455        let module_declaration_built = ModuleDeclaration {
32456            module: Box::new(module),
32457            identifier: Box::new(identifier),
32458            module_declaration_opt,
32459            module_declaration_opt0,
32460            module_declaration_opt1,
32461            module_declaration_opt2,
32462            l_brace: Box::new(l_brace),
32463            module_declaration_list,
32464            r_brace: Box::new(r_brace),
32465        };
32466        // Calling user action here
32467        self.user_grammar
32468            .module_declaration(&module_declaration_built)?;
32469        self.push(
32470            ASTType::ModuleDeclaration(module_declaration_built),
32471            context,
32472        );
32473        Ok(())
32474    }
32475
32476    /// Semantic action for production 856:
32477    ///
32478    /// `ModuleDeclarationList /* Vec<T>::Push */: ModuleGroup ModuleDeclarationList;`
32479    ///
32480    #[parol_runtime::function_name::named]
32481    fn module_declaration_list_0(
32482        &mut self,
32483        _module_group: &ParseTreeType<'t>,
32484        _module_declaration_list: &ParseTreeType<'t>,
32485    ) -> Result<()> {
32486        let context = function_name!();
32487        trace!("{}", self.trace_item_stack(context));
32488        let mut module_declaration_list = pop_item!(
32489            self,
32490            module_declaration_list,
32491            ModuleDeclarationList,
32492            context
32493        );
32494        let module_group = pop_item!(self, module_group, ModuleGroup, context);
32495        let module_declaration_list_0_built = ModuleDeclarationList {
32496            module_group: Box::new(module_group),
32497        };
32498        // Add an element to the vector
32499        module_declaration_list.push(module_declaration_list_0_built);
32500        self.push(
32501            ASTType::ModuleDeclarationList(module_declaration_list),
32502            context,
32503        );
32504        Ok(())
32505    }
32506
32507    /// Semantic action for production 857:
32508    ///
32509    /// `ModuleDeclarationList /* Vec<T>::New */: ;`
32510    ///
32511    #[parol_runtime::function_name::named]
32512    fn module_declaration_list_1(&mut self) -> Result<()> {
32513        let context = function_name!();
32514        trace!("{}", self.trace_item_stack(context));
32515        let module_declaration_list_1_built = Vec::new();
32516        self.push(
32517            ASTType::ModuleDeclarationList(module_declaration_list_1_built),
32518            context,
32519        );
32520        Ok(())
32521    }
32522
32523    /// Semantic action for production 858:
32524    ///
32525    /// `ModuleDeclarationOpt2 /* Option<T>::Some */: PortDeclaration;`
32526    ///
32527    #[parol_runtime::function_name::named]
32528    fn module_declaration_opt2_0(&mut self, _port_declaration: &ParseTreeType<'t>) -> Result<()> {
32529        let context = function_name!();
32530        trace!("{}", self.trace_item_stack(context));
32531        let port_declaration = pop_item!(self, port_declaration, PortDeclaration, context);
32532        let module_declaration_opt2_0_built = ModuleDeclarationOpt2 {
32533            port_declaration: Box::new(port_declaration),
32534        };
32535        self.push(
32536            ASTType::ModuleDeclarationOpt2(Some(module_declaration_opt2_0_built)),
32537            context,
32538        );
32539        Ok(())
32540    }
32541
32542    /// Semantic action for production 859:
32543    ///
32544    /// `ModuleDeclarationOpt2 /* Option<T>::None */: ;`
32545    ///
32546    #[parol_runtime::function_name::named]
32547    fn module_declaration_opt2_1(&mut self) -> Result<()> {
32548        let context = function_name!();
32549        trace!("{}", self.trace_item_stack(context));
32550        self.push(ASTType::ModuleDeclarationOpt2(None), context);
32551        Ok(())
32552    }
32553
32554    /// Semantic action for production 860:
32555    ///
32556    /// `ModuleDeclarationOpt1 /* Option<T>::Some */: WithParameter;`
32557    ///
32558    #[parol_runtime::function_name::named]
32559    fn module_declaration_opt1_0(&mut self, _with_parameter: &ParseTreeType<'t>) -> Result<()> {
32560        let context = function_name!();
32561        trace!("{}", self.trace_item_stack(context));
32562        let with_parameter = pop_item!(self, with_parameter, WithParameter, context);
32563        let module_declaration_opt1_0_built = ModuleDeclarationOpt1 {
32564            with_parameter: Box::new(with_parameter),
32565        };
32566        self.push(
32567            ASTType::ModuleDeclarationOpt1(Some(module_declaration_opt1_0_built)),
32568            context,
32569        );
32570        Ok(())
32571    }
32572
32573    /// Semantic action for production 861:
32574    ///
32575    /// `ModuleDeclarationOpt1 /* Option<T>::None */: ;`
32576    ///
32577    #[parol_runtime::function_name::named]
32578    fn module_declaration_opt1_1(&mut self) -> Result<()> {
32579        let context = function_name!();
32580        trace!("{}", self.trace_item_stack(context));
32581        self.push(ASTType::ModuleDeclarationOpt1(None), context);
32582        Ok(())
32583    }
32584
32585    /// Semantic action for production 862:
32586    ///
32587    /// `ModuleDeclarationOpt0 /* Option<T>::Some */: For ScopedIdentifier;`
32588    ///
32589    #[parol_runtime::function_name::named]
32590    fn module_declaration_opt0_0(
32591        &mut self,
32592        _for: &ParseTreeType<'t>,
32593        _scoped_identifier: &ParseTreeType<'t>,
32594    ) -> Result<()> {
32595        let context = function_name!();
32596        trace!("{}", self.trace_item_stack(context));
32597        let scoped_identifier = pop_item!(self, scoped_identifier, ScopedIdentifier, context);
32598        let r#for = pop_item!(self, r#for, For, context);
32599        let module_declaration_opt0_0_built = ModuleDeclarationOpt0 {
32600            r#for: Box::new(r#for),
32601            scoped_identifier: Box::new(scoped_identifier),
32602        };
32603        self.push(
32604            ASTType::ModuleDeclarationOpt0(Some(module_declaration_opt0_0_built)),
32605            context,
32606        );
32607        Ok(())
32608    }
32609
32610    /// Semantic action for production 863:
32611    ///
32612    /// `ModuleDeclarationOpt0 /* Option<T>::None */: ;`
32613    ///
32614    #[parol_runtime::function_name::named]
32615    fn module_declaration_opt0_1(&mut self) -> Result<()> {
32616        let context = function_name!();
32617        trace!("{}", self.trace_item_stack(context));
32618        self.push(ASTType::ModuleDeclarationOpt0(None), context);
32619        Ok(())
32620    }
32621
32622    /// Semantic action for production 864:
32623    ///
32624    /// `ModuleDeclarationOpt /* Option<T>::Some */: WithGenericParameter;`
32625    ///
32626    #[parol_runtime::function_name::named]
32627    fn module_declaration_opt_0(
32628        &mut self,
32629        _with_generic_parameter: &ParseTreeType<'t>,
32630    ) -> Result<()> {
32631        let context = function_name!();
32632        trace!("{}", self.trace_item_stack(context));
32633        let with_generic_parameter =
32634            pop_item!(self, with_generic_parameter, WithGenericParameter, context);
32635        let module_declaration_opt_0_built = ModuleDeclarationOpt {
32636            with_generic_parameter: Box::new(with_generic_parameter),
32637        };
32638        self.push(
32639            ASTType::ModuleDeclarationOpt(Some(module_declaration_opt_0_built)),
32640            context,
32641        );
32642        Ok(())
32643    }
32644
32645    /// Semantic action for production 865:
32646    ///
32647    /// `ModuleDeclarationOpt /* Option<T>::None */: ;`
32648    ///
32649    #[parol_runtime::function_name::named]
32650    fn module_declaration_opt_1(&mut self) -> Result<()> {
32651        let context = function_name!();
32652        trace!("{}", self.trace_item_stack(context));
32653        self.push(ASTType::ModuleDeclarationOpt(None), context);
32654        Ok(())
32655    }
32656
32657    /// Semantic action for production 866:
32658    ///
32659    /// `ModuleGroup: ModuleGroupList /* Vec */ ModuleGroupGroup;`
32660    ///
32661    #[parol_runtime::function_name::named]
32662    fn module_group(
32663        &mut self,
32664        _module_group_list: &ParseTreeType<'t>,
32665        _module_group_group: &ParseTreeType<'t>,
32666    ) -> Result<()> {
32667        let context = function_name!();
32668        trace!("{}", self.trace_item_stack(context));
32669        let module_group_group = pop_item!(self, module_group_group, ModuleGroupGroup, context);
32670        let module_group_list =
32671            pop_and_reverse_item!(self, module_group_list, ModuleGroupList, context);
32672        let module_group_built = ModuleGroup {
32673            module_group_list,
32674            module_group_group: Box::new(module_group_group),
32675        };
32676        // Calling user action here
32677        self.user_grammar.module_group(&module_group_built)?;
32678        self.push(ASTType::ModuleGroup(module_group_built), context);
32679        Ok(())
32680    }
32681
32682    /// Semantic action for production 867:
32683    ///
32684    /// `ModuleGroupGroup: LBrace ModuleGroupGroupList /* Vec */ RBrace;`
32685    ///
32686    #[parol_runtime::function_name::named]
32687    fn module_group_group_0(
32688        &mut self,
32689        _l_brace: &ParseTreeType<'t>,
32690        _module_group_group_list: &ParseTreeType<'t>,
32691        _r_brace: &ParseTreeType<'t>,
32692    ) -> Result<()> {
32693        let context = function_name!();
32694        trace!("{}", self.trace_item_stack(context));
32695        let r_brace = pop_item!(self, r_brace, RBrace, context);
32696        let module_group_group_list =
32697            pop_and_reverse_item!(self, module_group_group_list, ModuleGroupGroupList, context);
32698        let l_brace = pop_item!(self, l_brace, LBrace, context);
32699        let module_group_group_0_built = ModuleGroupGroupLBraceModuleGroupGroupListRBrace {
32700            l_brace: Box::new(l_brace),
32701            module_group_group_list,
32702            r_brace: Box::new(r_brace),
32703        };
32704        let module_group_group_0_built =
32705            ModuleGroupGroup::LBraceModuleGroupGroupListRBrace(module_group_group_0_built);
32706        self.push(
32707            ASTType::ModuleGroupGroup(module_group_group_0_built),
32708            context,
32709        );
32710        Ok(())
32711    }
32712
32713    /// Semantic action for production 868:
32714    ///
32715    /// `ModuleGroupGroupList /* Vec<T>::Push */: ModuleGroup ModuleGroupGroupList;`
32716    ///
32717    #[parol_runtime::function_name::named]
32718    fn module_group_group_list_0(
32719        &mut self,
32720        _module_group: &ParseTreeType<'t>,
32721        _module_group_group_list: &ParseTreeType<'t>,
32722    ) -> Result<()> {
32723        let context = function_name!();
32724        trace!("{}", self.trace_item_stack(context));
32725        let mut module_group_group_list =
32726            pop_item!(self, module_group_group_list, ModuleGroupGroupList, context);
32727        let module_group = pop_item!(self, module_group, ModuleGroup, context);
32728        let module_group_group_list_0_built = ModuleGroupGroupList {
32729            module_group: Box::new(module_group),
32730        };
32731        // Add an element to the vector
32732        module_group_group_list.push(module_group_group_list_0_built);
32733        self.push(
32734            ASTType::ModuleGroupGroupList(module_group_group_list),
32735            context,
32736        );
32737        Ok(())
32738    }
32739
32740    /// Semantic action for production 869:
32741    ///
32742    /// `ModuleGroupGroupList /* Vec<T>::New */: ;`
32743    ///
32744    #[parol_runtime::function_name::named]
32745    fn module_group_group_list_1(&mut self) -> Result<()> {
32746        let context = function_name!();
32747        trace!("{}", self.trace_item_stack(context));
32748        let module_group_group_list_1_built = Vec::new();
32749        self.push(
32750            ASTType::ModuleGroupGroupList(module_group_group_list_1_built),
32751            context,
32752        );
32753        Ok(())
32754    }
32755
32756    /// Semantic action for production 870:
32757    ///
32758    /// `ModuleGroupGroup: ModuleItem;`
32759    ///
32760    #[parol_runtime::function_name::named]
32761    fn module_group_group_1(&mut self, _module_item: &ParseTreeType<'t>) -> Result<()> {
32762        let context = function_name!();
32763        trace!("{}", self.trace_item_stack(context));
32764        let module_item = pop_item!(self, module_item, ModuleItem, context);
32765        let module_group_group_1_built = ModuleGroupGroupModuleItem {
32766            module_item: Box::new(module_item),
32767        };
32768        let module_group_group_1_built = ModuleGroupGroup::ModuleItem(module_group_group_1_built);
32769        self.push(
32770            ASTType::ModuleGroupGroup(module_group_group_1_built),
32771            context,
32772        );
32773        Ok(())
32774    }
32775
32776    /// Semantic action for production 871:
32777    ///
32778    /// `ModuleGroupList /* Vec<T>::Push */: Attribute ModuleGroupList;`
32779    ///
32780    #[parol_runtime::function_name::named]
32781    fn module_group_list_0(
32782        &mut self,
32783        _attribute: &ParseTreeType<'t>,
32784        _module_group_list: &ParseTreeType<'t>,
32785    ) -> Result<()> {
32786        let context = function_name!();
32787        trace!("{}", self.trace_item_stack(context));
32788        let mut module_group_list = pop_item!(self, module_group_list, ModuleGroupList, context);
32789        let attribute = pop_item!(self, attribute, Attribute, context);
32790        let module_group_list_0_built = ModuleGroupList {
32791            attribute: Box::new(attribute),
32792        };
32793        // Add an element to the vector
32794        module_group_list.push(module_group_list_0_built);
32795        self.push(ASTType::ModuleGroupList(module_group_list), context);
32796        Ok(())
32797    }
32798
32799    /// Semantic action for production 872:
32800    ///
32801    /// `ModuleGroupList /* Vec<T>::New */: ;`
32802    ///
32803    #[parol_runtime::function_name::named]
32804    fn module_group_list_1(&mut self) -> Result<()> {
32805        let context = function_name!();
32806        trace!("{}", self.trace_item_stack(context));
32807        let module_group_list_1_built = Vec::new();
32808        self.push(ASTType::ModuleGroupList(module_group_list_1_built), context);
32809        Ok(())
32810    }
32811
32812    /// Semantic action for production 873:
32813    ///
32814    /// `ModuleItem: GenerateItem;`
32815    ///
32816    #[parol_runtime::function_name::named]
32817    fn module_item(&mut self, _generate_item: &ParseTreeType<'t>) -> Result<()> {
32818        let context = function_name!();
32819        trace!("{}", self.trace_item_stack(context));
32820        let generate_item = pop_item!(self, generate_item, GenerateItem, context);
32821        let module_item_built = ModuleItem {
32822            generate_item: Box::new(generate_item),
32823        };
32824        // Calling user action here
32825        self.user_grammar.module_item(&module_item_built)?;
32826        self.push(ASTType::ModuleItem(module_item_built), context);
32827        Ok(())
32828    }
32829
32830    /// Semantic action for production 874:
32831    ///
32832    /// `InterfaceDeclaration: Interface Identifier InterfaceDeclarationOpt /* Option */ InterfaceDeclarationOpt0 /* Option */ LBrace InterfaceDeclarationList /* Vec */ RBrace;`
32833    ///
32834    #[parol_runtime::function_name::named]
32835    fn interface_declaration(
32836        &mut self,
32837        _interface: &ParseTreeType<'t>,
32838        _identifier: &ParseTreeType<'t>,
32839        _interface_declaration_opt: &ParseTreeType<'t>,
32840        _interface_declaration_opt0: &ParseTreeType<'t>,
32841        _l_brace: &ParseTreeType<'t>,
32842        _interface_declaration_list: &ParseTreeType<'t>,
32843        _r_brace: &ParseTreeType<'t>,
32844    ) -> Result<()> {
32845        let context = function_name!();
32846        trace!("{}", self.trace_item_stack(context));
32847        let r_brace = pop_item!(self, r_brace, RBrace, context);
32848        let interface_declaration_list = pop_and_reverse_item!(
32849            self,
32850            interface_declaration_list,
32851            InterfaceDeclarationList,
32852            context
32853        );
32854        let l_brace = pop_item!(self, l_brace, LBrace, context);
32855        let interface_declaration_opt0 = pop_item!(
32856            self,
32857            interface_declaration_opt0,
32858            InterfaceDeclarationOpt0,
32859            context
32860        );
32861        let interface_declaration_opt = pop_item!(
32862            self,
32863            interface_declaration_opt,
32864            InterfaceDeclarationOpt,
32865            context
32866        );
32867        let identifier = pop_item!(self, identifier, Identifier, context);
32868        let interface = pop_item!(self, interface, Interface, context);
32869        let interface_declaration_built = InterfaceDeclaration {
32870            interface: Box::new(interface),
32871            identifier: Box::new(identifier),
32872            interface_declaration_opt,
32873            interface_declaration_opt0,
32874            l_brace: Box::new(l_brace),
32875            interface_declaration_list,
32876            r_brace: Box::new(r_brace),
32877        };
32878        // Calling user action here
32879        self.user_grammar
32880            .interface_declaration(&interface_declaration_built)?;
32881        self.push(
32882            ASTType::InterfaceDeclaration(interface_declaration_built),
32883            context,
32884        );
32885        Ok(())
32886    }
32887
32888    /// Semantic action for production 875:
32889    ///
32890    /// `InterfaceDeclarationList /* Vec<T>::Push */: InterfaceGroup InterfaceDeclarationList;`
32891    ///
32892    #[parol_runtime::function_name::named]
32893    fn interface_declaration_list_0(
32894        &mut self,
32895        _interface_group: &ParseTreeType<'t>,
32896        _interface_declaration_list: &ParseTreeType<'t>,
32897    ) -> Result<()> {
32898        let context = function_name!();
32899        trace!("{}", self.trace_item_stack(context));
32900        let mut interface_declaration_list = pop_item!(
32901            self,
32902            interface_declaration_list,
32903            InterfaceDeclarationList,
32904            context
32905        );
32906        let interface_group = pop_item!(self, interface_group, InterfaceGroup, context);
32907        let interface_declaration_list_0_built = InterfaceDeclarationList {
32908            interface_group: Box::new(interface_group),
32909        };
32910        // Add an element to the vector
32911        interface_declaration_list.push(interface_declaration_list_0_built);
32912        self.push(
32913            ASTType::InterfaceDeclarationList(interface_declaration_list),
32914            context,
32915        );
32916        Ok(())
32917    }
32918
32919    /// Semantic action for production 876:
32920    ///
32921    /// `InterfaceDeclarationList /* Vec<T>::New */: ;`
32922    ///
32923    #[parol_runtime::function_name::named]
32924    fn interface_declaration_list_1(&mut self) -> Result<()> {
32925        let context = function_name!();
32926        trace!("{}", self.trace_item_stack(context));
32927        let interface_declaration_list_1_built = Vec::new();
32928        self.push(
32929            ASTType::InterfaceDeclarationList(interface_declaration_list_1_built),
32930            context,
32931        );
32932        Ok(())
32933    }
32934
32935    /// Semantic action for production 877:
32936    ///
32937    /// `InterfaceDeclarationOpt0 /* Option<T>::Some */: WithParameter;`
32938    ///
32939    #[parol_runtime::function_name::named]
32940    fn interface_declaration_opt0_0(&mut self, _with_parameter: &ParseTreeType<'t>) -> Result<()> {
32941        let context = function_name!();
32942        trace!("{}", self.trace_item_stack(context));
32943        let with_parameter = pop_item!(self, with_parameter, WithParameter, context);
32944        let interface_declaration_opt0_0_built = InterfaceDeclarationOpt0 {
32945            with_parameter: Box::new(with_parameter),
32946        };
32947        self.push(
32948            ASTType::InterfaceDeclarationOpt0(Some(interface_declaration_opt0_0_built)),
32949            context,
32950        );
32951        Ok(())
32952    }
32953
32954    /// Semantic action for production 878:
32955    ///
32956    /// `InterfaceDeclarationOpt0 /* Option<T>::None */: ;`
32957    ///
32958    #[parol_runtime::function_name::named]
32959    fn interface_declaration_opt0_1(&mut self) -> Result<()> {
32960        let context = function_name!();
32961        trace!("{}", self.trace_item_stack(context));
32962        self.push(ASTType::InterfaceDeclarationOpt0(None), context);
32963        Ok(())
32964    }
32965
32966    /// Semantic action for production 879:
32967    ///
32968    /// `InterfaceDeclarationOpt /* Option<T>::Some */: WithGenericParameter;`
32969    ///
32970    #[parol_runtime::function_name::named]
32971    fn interface_declaration_opt_0(
32972        &mut self,
32973        _with_generic_parameter: &ParseTreeType<'t>,
32974    ) -> Result<()> {
32975        let context = function_name!();
32976        trace!("{}", self.trace_item_stack(context));
32977        let with_generic_parameter =
32978            pop_item!(self, with_generic_parameter, WithGenericParameter, context);
32979        let interface_declaration_opt_0_built = InterfaceDeclarationOpt {
32980            with_generic_parameter: Box::new(with_generic_parameter),
32981        };
32982        self.push(
32983            ASTType::InterfaceDeclarationOpt(Some(interface_declaration_opt_0_built)),
32984            context,
32985        );
32986        Ok(())
32987    }
32988
32989    /// Semantic action for production 880:
32990    ///
32991    /// `InterfaceDeclarationOpt /* Option<T>::None */: ;`
32992    ///
32993    #[parol_runtime::function_name::named]
32994    fn interface_declaration_opt_1(&mut self) -> Result<()> {
32995        let context = function_name!();
32996        trace!("{}", self.trace_item_stack(context));
32997        self.push(ASTType::InterfaceDeclarationOpt(None), context);
32998        Ok(())
32999    }
33000
33001    /// Semantic action for production 881:
33002    ///
33003    /// `InterfaceGroup: InterfaceGroupList /* Vec */ InterfaceGroupGroup;`
33004    ///
33005    #[parol_runtime::function_name::named]
33006    fn interface_group(
33007        &mut self,
33008        _interface_group_list: &ParseTreeType<'t>,
33009        _interface_group_group: &ParseTreeType<'t>,
33010    ) -> Result<()> {
33011        let context = function_name!();
33012        trace!("{}", self.trace_item_stack(context));
33013        let interface_group_group =
33014            pop_item!(self, interface_group_group, InterfaceGroupGroup, context);
33015        let interface_group_list =
33016            pop_and_reverse_item!(self, interface_group_list, InterfaceGroupList, context);
33017        let interface_group_built = InterfaceGroup {
33018            interface_group_list,
33019            interface_group_group: Box::new(interface_group_group),
33020        };
33021        // Calling user action here
33022        self.user_grammar.interface_group(&interface_group_built)?;
33023        self.push(ASTType::InterfaceGroup(interface_group_built), context);
33024        Ok(())
33025    }
33026
33027    /// Semantic action for production 882:
33028    ///
33029    /// `InterfaceGroupGroup: LBrace InterfaceGroupGroupList /* Vec */ RBrace;`
33030    ///
33031    #[parol_runtime::function_name::named]
33032    fn interface_group_group_0(
33033        &mut self,
33034        _l_brace: &ParseTreeType<'t>,
33035        _interface_group_group_list: &ParseTreeType<'t>,
33036        _r_brace: &ParseTreeType<'t>,
33037    ) -> Result<()> {
33038        let context = function_name!();
33039        trace!("{}", self.trace_item_stack(context));
33040        let r_brace = pop_item!(self, r_brace, RBrace, context);
33041        let interface_group_group_list = pop_and_reverse_item!(
33042            self,
33043            interface_group_group_list,
33044            InterfaceGroupGroupList,
33045            context
33046        );
33047        let l_brace = pop_item!(self, l_brace, LBrace, context);
33048        let interface_group_group_0_built =
33049            InterfaceGroupGroupLBraceInterfaceGroupGroupListRBrace {
33050                l_brace: Box::new(l_brace),
33051                interface_group_group_list,
33052                r_brace: Box::new(r_brace),
33053            };
33054        let interface_group_group_0_built =
33055            InterfaceGroupGroup::LBraceInterfaceGroupGroupListRBrace(interface_group_group_0_built);
33056        self.push(
33057            ASTType::InterfaceGroupGroup(interface_group_group_0_built),
33058            context,
33059        );
33060        Ok(())
33061    }
33062
33063    /// Semantic action for production 883:
33064    ///
33065    /// `InterfaceGroupGroupList /* Vec<T>::Push */: InterfaceGroup InterfaceGroupGroupList;`
33066    ///
33067    #[parol_runtime::function_name::named]
33068    fn interface_group_group_list_0(
33069        &mut self,
33070        _interface_group: &ParseTreeType<'t>,
33071        _interface_group_group_list: &ParseTreeType<'t>,
33072    ) -> Result<()> {
33073        let context = function_name!();
33074        trace!("{}", self.trace_item_stack(context));
33075        let mut interface_group_group_list = pop_item!(
33076            self,
33077            interface_group_group_list,
33078            InterfaceGroupGroupList,
33079            context
33080        );
33081        let interface_group = pop_item!(self, interface_group, InterfaceGroup, context);
33082        let interface_group_group_list_0_built = InterfaceGroupGroupList {
33083            interface_group: Box::new(interface_group),
33084        };
33085        // Add an element to the vector
33086        interface_group_group_list.push(interface_group_group_list_0_built);
33087        self.push(
33088            ASTType::InterfaceGroupGroupList(interface_group_group_list),
33089            context,
33090        );
33091        Ok(())
33092    }
33093
33094    /// Semantic action for production 884:
33095    ///
33096    /// `InterfaceGroupGroupList /* Vec<T>::New */: ;`
33097    ///
33098    #[parol_runtime::function_name::named]
33099    fn interface_group_group_list_1(&mut self) -> Result<()> {
33100        let context = function_name!();
33101        trace!("{}", self.trace_item_stack(context));
33102        let interface_group_group_list_1_built = Vec::new();
33103        self.push(
33104            ASTType::InterfaceGroupGroupList(interface_group_group_list_1_built),
33105            context,
33106        );
33107        Ok(())
33108    }
33109
33110    /// Semantic action for production 885:
33111    ///
33112    /// `InterfaceGroupGroup: InterfaceItem;`
33113    ///
33114    #[parol_runtime::function_name::named]
33115    fn interface_group_group_1(&mut self, _interface_item: &ParseTreeType<'t>) -> Result<()> {
33116        let context = function_name!();
33117        trace!("{}", self.trace_item_stack(context));
33118        let interface_item = pop_item!(self, interface_item, InterfaceItem, context);
33119        let interface_group_group_1_built = InterfaceGroupGroupInterfaceItem {
33120            interface_item: Box::new(interface_item),
33121        };
33122        let interface_group_group_1_built =
33123            InterfaceGroupGroup::InterfaceItem(interface_group_group_1_built);
33124        self.push(
33125            ASTType::InterfaceGroupGroup(interface_group_group_1_built),
33126            context,
33127        );
33128        Ok(())
33129    }
33130
33131    /// Semantic action for production 886:
33132    ///
33133    /// `InterfaceGroupList /* Vec<T>::Push */: Attribute InterfaceGroupList;`
33134    ///
33135    #[parol_runtime::function_name::named]
33136    fn interface_group_list_0(
33137        &mut self,
33138        _attribute: &ParseTreeType<'t>,
33139        _interface_group_list: &ParseTreeType<'t>,
33140    ) -> Result<()> {
33141        let context = function_name!();
33142        trace!("{}", self.trace_item_stack(context));
33143        let mut interface_group_list =
33144            pop_item!(self, interface_group_list, InterfaceGroupList, context);
33145        let attribute = pop_item!(self, attribute, Attribute, context);
33146        let interface_group_list_0_built = InterfaceGroupList {
33147            attribute: Box::new(attribute),
33148        };
33149        // Add an element to the vector
33150        interface_group_list.push(interface_group_list_0_built);
33151        self.push(ASTType::InterfaceGroupList(interface_group_list), context);
33152        Ok(())
33153    }
33154
33155    /// Semantic action for production 887:
33156    ///
33157    /// `InterfaceGroupList /* Vec<T>::New */: ;`
33158    ///
33159    #[parol_runtime::function_name::named]
33160    fn interface_group_list_1(&mut self) -> Result<()> {
33161        let context = function_name!();
33162        trace!("{}", self.trace_item_stack(context));
33163        let interface_group_list_1_built = Vec::new();
33164        self.push(
33165            ASTType::InterfaceGroupList(interface_group_list_1_built),
33166            context,
33167        );
33168        Ok(())
33169    }
33170
33171    /// Semantic action for production 888:
33172    ///
33173    /// `InterfaceItem: GenerateItem;`
33174    ///
33175    #[parol_runtime::function_name::named]
33176    fn interface_item_0(&mut self, _generate_item: &ParseTreeType<'t>) -> Result<()> {
33177        let context = function_name!();
33178        trace!("{}", self.trace_item_stack(context));
33179        let generate_item = pop_item!(self, generate_item, GenerateItem, context);
33180        let interface_item_0_built = InterfaceItemGenerateItem {
33181            generate_item: Box::new(generate_item),
33182        };
33183        let interface_item_0_built = InterfaceItem::GenerateItem(interface_item_0_built);
33184        // Calling user action here
33185        self.user_grammar.interface_item(&interface_item_0_built)?;
33186        self.push(ASTType::InterfaceItem(interface_item_0_built), context);
33187        Ok(())
33188    }
33189
33190    /// Semantic action for production 889:
33191    ///
33192    /// `InterfaceItem: ModportDeclaration;`
33193    ///
33194    #[parol_runtime::function_name::named]
33195    fn interface_item_1(&mut self, _modport_declaration: &ParseTreeType<'t>) -> Result<()> {
33196        let context = function_name!();
33197        trace!("{}", self.trace_item_stack(context));
33198        let modport_declaration = pop_item!(self, modport_declaration, ModportDeclaration, context);
33199        let interface_item_1_built = InterfaceItemModportDeclaration {
33200            modport_declaration: Box::new(modport_declaration),
33201        };
33202        let interface_item_1_built = InterfaceItem::ModportDeclaration(interface_item_1_built);
33203        // Calling user action here
33204        self.user_grammar.interface_item(&interface_item_1_built)?;
33205        self.push(ASTType::InterfaceItem(interface_item_1_built), context);
33206        Ok(())
33207    }
33208
33209    /// Semantic action for production 890:
33210    ///
33211    /// `GenerateIfDeclaration: If Expression GenerateNamedBlock GenerateIfDeclarationList /* Vec */ GenerateIfDeclarationOpt /* Option */;`
33212    ///
33213    #[parol_runtime::function_name::named]
33214    fn generate_if_declaration(
33215        &mut self,
33216        _if: &ParseTreeType<'t>,
33217        _expression: &ParseTreeType<'t>,
33218        _generate_named_block: &ParseTreeType<'t>,
33219        _generate_if_declaration_list: &ParseTreeType<'t>,
33220        _generate_if_declaration_opt: &ParseTreeType<'t>,
33221    ) -> Result<()> {
33222        let context = function_name!();
33223        trace!("{}", self.trace_item_stack(context));
33224        let generate_if_declaration_opt = pop_item!(
33225            self,
33226            generate_if_declaration_opt,
33227            GenerateIfDeclarationOpt,
33228            context
33229        );
33230        let generate_if_declaration_list = pop_and_reverse_item!(
33231            self,
33232            generate_if_declaration_list,
33233            GenerateIfDeclarationList,
33234            context
33235        );
33236        let generate_named_block =
33237            pop_item!(self, generate_named_block, GenerateNamedBlock, context);
33238        let expression = pop_item!(self, expression, Expression, context);
33239        let r#if = pop_item!(self, r#if, If, context);
33240        let generate_if_declaration_built = GenerateIfDeclaration {
33241            r#if: Box::new(r#if),
33242            expression: Box::new(expression),
33243            generate_named_block: Box::new(generate_named_block),
33244            generate_if_declaration_list,
33245            generate_if_declaration_opt,
33246        };
33247        // Calling user action here
33248        self.user_grammar
33249            .generate_if_declaration(&generate_if_declaration_built)?;
33250        self.push(
33251            ASTType::GenerateIfDeclaration(generate_if_declaration_built),
33252            context,
33253        );
33254        Ok(())
33255    }
33256
33257    /// Semantic action for production 891:
33258    ///
33259    /// `GenerateIfDeclarationList /* Vec<T>::Push */: Else If Expression GenerateOptionalNamedBlock GenerateIfDeclarationList;`
33260    ///
33261    #[parol_runtime::function_name::named]
33262    fn generate_if_declaration_list_0(
33263        &mut self,
33264        _else: &ParseTreeType<'t>,
33265        _if: &ParseTreeType<'t>,
33266        _expression: &ParseTreeType<'t>,
33267        _generate_optional_named_block: &ParseTreeType<'t>,
33268        _generate_if_declaration_list: &ParseTreeType<'t>,
33269    ) -> Result<()> {
33270        let context = function_name!();
33271        trace!("{}", self.trace_item_stack(context));
33272        let mut generate_if_declaration_list = pop_item!(
33273            self,
33274            generate_if_declaration_list,
33275            GenerateIfDeclarationList,
33276            context
33277        );
33278        let generate_optional_named_block = pop_item!(
33279            self,
33280            generate_optional_named_block,
33281            GenerateOptionalNamedBlock,
33282            context
33283        );
33284        let expression = pop_item!(self, expression, Expression, context);
33285        let r#if = pop_item!(self, r#if, If, context);
33286        let r#else = pop_item!(self, r#else, Else, context);
33287        let generate_if_declaration_list_0_built = GenerateIfDeclarationList {
33288            generate_optional_named_block: Box::new(generate_optional_named_block),
33289            expression: Box::new(expression),
33290            r#if: Box::new(r#if),
33291            r#else: Box::new(r#else),
33292        };
33293        // Add an element to the vector
33294        generate_if_declaration_list.push(generate_if_declaration_list_0_built);
33295        self.push(
33296            ASTType::GenerateIfDeclarationList(generate_if_declaration_list),
33297            context,
33298        );
33299        Ok(())
33300    }
33301
33302    /// Semantic action for production 892:
33303    ///
33304    /// `GenerateIfDeclarationList /* Vec<T>::New */: ;`
33305    ///
33306    #[parol_runtime::function_name::named]
33307    fn generate_if_declaration_list_1(&mut self) -> Result<()> {
33308        let context = function_name!();
33309        trace!("{}", self.trace_item_stack(context));
33310        let generate_if_declaration_list_1_built = Vec::new();
33311        self.push(
33312            ASTType::GenerateIfDeclarationList(generate_if_declaration_list_1_built),
33313            context,
33314        );
33315        Ok(())
33316    }
33317
33318    /// Semantic action for production 893:
33319    ///
33320    /// `GenerateIfDeclarationOpt /* Option<T>::Some */: Else GenerateOptionalNamedBlock;`
33321    ///
33322    #[parol_runtime::function_name::named]
33323    fn generate_if_declaration_opt_0(
33324        &mut self,
33325        _else: &ParseTreeType<'t>,
33326        _generate_optional_named_block: &ParseTreeType<'t>,
33327    ) -> Result<()> {
33328        let context = function_name!();
33329        trace!("{}", self.trace_item_stack(context));
33330        let generate_optional_named_block = pop_item!(
33331            self,
33332            generate_optional_named_block,
33333            GenerateOptionalNamedBlock,
33334            context
33335        );
33336        let r#else = pop_item!(self, r#else, Else, context);
33337        let generate_if_declaration_opt_0_built = GenerateIfDeclarationOpt {
33338            r#else: Box::new(r#else),
33339            generate_optional_named_block: Box::new(generate_optional_named_block),
33340        };
33341        self.push(
33342            ASTType::GenerateIfDeclarationOpt(Some(generate_if_declaration_opt_0_built)),
33343            context,
33344        );
33345        Ok(())
33346    }
33347
33348    /// Semantic action for production 894:
33349    ///
33350    /// `GenerateIfDeclarationOpt /* Option<T>::None */: ;`
33351    ///
33352    #[parol_runtime::function_name::named]
33353    fn generate_if_declaration_opt_1(&mut self) -> Result<()> {
33354        let context = function_name!();
33355        trace!("{}", self.trace_item_stack(context));
33356        self.push(ASTType::GenerateIfDeclarationOpt(None), context);
33357        Ok(())
33358    }
33359
33360    /// Semantic action for production 895:
33361    ///
33362    /// `GenerateForDeclaration: For Identifier In Range GenerateForDeclarationOpt /* Option */ GenerateNamedBlock;`
33363    ///
33364    #[parol_runtime::function_name::named]
33365    fn generate_for_declaration(
33366        &mut self,
33367        _for: &ParseTreeType<'t>,
33368        _identifier: &ParseTreeType<'t>,
33369        _in: &ParseTreeType<'t>,
33370        _range: &ParseTreeType<'t>,
33371        _generate_for_declaration_opt: &ParseTreeType<'t>,
33372        _generate_named_block: &ParseTreeType<'t>,
33373    ) -> Result<()> {
33374        let context = function_name!();
33375        trace!("{}", self.trace_item_stack(context));
33376        let generate_named_block =
33377            pop_item!(self, generate_named_block, GenerateNamedBlock, context);
33378        let generate_for_declaration_opt = pop_item!(
33379            self,
33380            generate_for_declaration_opt,
33381            GenerateForDeclarationOpt,
33382            context
33383        );
33384        let range = pop_item!(self, range, Range, context);
33385        let r#in = pop_item!(self, r#in, In, context);
33386        let identifier = pop_item!(self, identifier, Identifier, context);
33387        let r#for = pop_item!(self, r#for, For, context);
33388        let generate_for_declaration_built = GenerateForDeclaration {
33389            r#for: Box::new(r#for),
33390            identifier: Box::new(identifier),
33391            r#in: Box::new(r#in),
33392            range: Box::new(range),
33393            generate_for_declaration_opt,
33394            generate_named_block: Box::new(generate_named_block),
33395        };
33396        // Calling user action here
33397        self.user_grammar
33398            .generate_for_declaration(&generate_for_declaration_built)?;
33399        self.push(
33400            ASTType::GenerateForDeclaration(generate_for_declaration_built),
33401            context,
33402        );
33403        Ok(())
33404    }
33405
33406    /// Semantic action for production 896:
33407    ///
33408    /// `GenerateForDeclarationOpt /* Option<T>::Some */: Step AssignmentOperator Expression;`
33409    ///
33410    #[parol_runtime::function_name::named]
33411    fn generate_for_declaration_opt_0(
33412        &mut self,
33413        _step: &ParseTreeType<'t>,
33414        _assignment_operator: &ParseTreeType<'t>,
33415        _expression: &ParseTreeType<'t>,
33416    ) -> Result<()> {
33417        let context = function_name!();
33418        trace!("{}", self.trace_item_stack(context));
33419        let expression = pop_item!(self, expression, Expression, context);
33420        let assignment_operator = pop_item!(self, assignment_operator, AssignmentOperator, context);
33421        let step = pop_item!(self, step, Step, context);
33422        let generate_for_declaration_opt_0_built = GenerateForDeclarationOpt {
33423            step: Box::new(step),
33424            assignment_operator: Box::new(assignment_operator),
33425            expression: Box::new(expression),
33426        };
33427        self.push(
33428            ASTType::GenerateForDeclarationOpt(Some(generate_for_declaration_opt_0_built)),
33429            context,
33430        );
33431        Ok(())
33432    }
33433
33434    /// Semantic action for production 897:
33435    ///
33436    /// `GenerateForDeclarationOpt /* Option<T>::None */: ;`
33437    ///
33438    #[parol_runtime::function_name::named]
33439    fn generate_for_declaration_opt_1(&mut self) -> Result<()> {
33440        let context = function_name!();
33441        trace!("{}", self.trace_item_stack(context));
33442        self.push(ASTType::GenerateForDeclarationOpt(None), context);
33443        Ok(())
33444    }
33445
33446    /// Semantic action for production 898:
33447    ///
33448    /// `GenerateBlockDeclaration: GenerateNamedBlock;`
33449    ///
33450    #[parol_runtime::function_name::named]
33451    fn generate_block_declaration(
33452        &mut self,
33453        _generate_named_block: &ParseTreeType<'t>,
33454    ) -> Result<()> {
33455        let context = function_name!();
33456        trace!("{}", self.trace_item_stack(context));
33457        let generate_named_block =
33458            pop_item!(self, generate_named_block, GenerateNamedBlock, context);
33459        let generate_block_declaration_built = GenerateBlockDeclaration {
33460            generate_named_block: Box::new(generate_named_block),
33461        };
33462        // Calling user action here
33463        self.user_grammar
33464            .generate_block_declaration(&generate_block_declaration_built)?;
33465        self.push(
33466            ASTType::GenerateBlockDeclaration(generate_block_declaration_built),
33467            context,
33468        );
33469        Ok(())
33470    }
33471
33472    /// Semantic action for production 899:
33473    ///
33474    /// `GenerateNamedBlock: Colon Identifier LBrace GenerateNamedBlockList /* Vec */ RBrace;`
33475    ///
33476    #[parol_runtime::function_name::named]
33477    fn generate_named_block(
33478        &mut self,
33479        _colon: &ParseTreeType<'t>,
33480        _identifier: &ParseTreeType<'t>,
33481        _l_brace: &ParseTreeType<'t>,
33482        _generate_named_block_list: &ParseTreeType<'t>,
33483        _r_brace: &ParseTreeType<'t>,
33484    ) -> Result<()> {
33485        let context = function_name!();
33486        trace!("{}", self.trace_item_stack(context));
33487        let r_brace = pop_item!(self, r_brace, RBrace, context);
33488        let generate_named_block_list = pop_and_reverse_item!(
33489            self,
33490            generate_named_block_list,
33491            GenerateNamedBlockList,
33492            context
33493        );
33494        let l_brace = pop_item!(self, l_brace, LBrace, context);
33495        let identifier = pop_item!(self, identifier, Identifier, context);
33496        let colon = pop_item!(self, colon, Colon, context);
33497        let generate_named_block_built = GenerateNamedBlock {
33498            colon: Box::new(colon),
33499            identifier: Box::new(identifier),
33500            l_brace: Box::new(l_brace),
33501            generate_named_block_list,
33502            r_brace: Box::new(r_brace),
33503        };
33504        // Calling user action here
33505        self.user_grammar
33506            .generate_named_block(&generate_named_block_built)?;
33507        self.push(
33508            ASTType::GenerateNamedBlock(generate_named_block_built),
33509            context,
33510        );
33511        Ok(())
33512    }
33513
33514    /// Semantic action for production 900:
33515    ///
33516    /// `GenerateNamedBlockList /* Vec<T>::Push */: GenerateGroup GenerateNamedBlockList;`
33517    ///
33518    #[parol_runtime::function_name::named]
33519    fn generate_named_block_list_0(
33520        &mut self,
33521        _generate_group: &ParseTreeType<'t>,
33522        _generate_named_block_list: &ParseTreeType<'t>,
33523    ) -> Result<()> {
33524        let context = function_name!();
33525        trace!("{}", self.trace_item_stack(context));
33526        let mut generate_named_block_list = pop_item!(
33527            self,
33528            generate_named_block_list,
33529            GenerateNamedBlockList,
33530            context
33531        );
33532        let generate_group = pop_item!(self, generate_group, GenerateGroup, context);
33533        let generate_named_block_list_0_built = GenerateNamedBlockList {
33534            generate_group: Box::new(generate_group),
33535        };
33536        // Add an element to the vector
33537        generate_named_block_list.push(generate_named_block_list_0_built);
33538        self.push(
33539            ASTType::GenerateNamedBlockList(generate_named_block_list),
33540            context,
33541        );
33542        Ok(())
33543    }
33544
33545    /// Semantic action for production 901:
33546    ///
33547    /// `GenerateNamedBlockList /* Vec<T>::New */: ;`
33548    ///
33549    #[parol_runtime::function_name::named]
33550    fn generate_named_block_list_1(&mut self) -> Result<()> {
33551        let context = function_name!();
33552        trace!("{}", self.trace_item_stack(context));
33553        let generate_named_block_list_1_built = Vec::new();
33554        self.push(
33555            ASTType::GenerateNamedBlockList(generate_named_block_list_1_built),
33556            context,
33557        );
33558        Ok(())
33559    }
33560
33561    /// Semantic action for production 902:
33562    ///
33563    /// `GenerateOptionalNamedBlock: GenerateOptionalNamedBlockOpt /* Option */ LBrace GenerateOptionalNamedBlockList /* Vec */ RBrace;`
33564    ///
33565    #[parol_runtime::function_name::named]
33566    fn generate_optional_named_block(
33567        &mut self,
33568        _generate_optional_named_block_opt: &ParseTreeType<'t>,
33569        _l_brace: &ParseTreeType<'t>,
33570        _generate_optional_named_block_list: &ParseTreeType<'t>,
33571        _r_brace: &ParseTreeType<'t>,
33572    ) -> Result<()> {
33573        let context = function_name!();
33574        trace!("{}", self.trace_item_stack(context));
33575        let r_brace = pop_item!(self, r_brace, RBrace, context);
33576        let generate_optional_named_block_list = pop_and_reverse_item!(
33577            self,
33578            generate_optional_named_block_list,
33579            GenerateOptionalNamedBlockList,
33580            context
33581        );
33582        let l_brace = pop_item!(self, l_brace, LBrace, context);
33583        let generate_optional_named_block_opt = pop_item!(
33584            self,
33585            generate_optional_named_block_opt,
33586            GenerateOptionalNamedBlockOpt,
33587            context
33588        );
33589        let generate_optional_named_block_built = GenerateOptionalNamedBlock {
33590            generate_optional_named_block_opt,
33591            l_brace: Box::new(l_brace),
33592            generate_optional_named_block_list,
33593            r_brace: Box::new(r_brace),
33594        };
33595        // Calling user action here
33596        self.user_grammar
33597            .generate_optional_named_block(&generate_optional_named_block_built)?;
33598        self.push(
33599            ASTType::GenerateOptionalNamedBlock(generate_optional_named_block_built),
33600            context,
33601        );
33602        Ok(())
33603    }
33604
33605    /// Semantic action for production 903:
33606    ///
33607    /// `GenerateOptionalNamedBlockList /* Vec<T>::Push */: GenerateGroup GenerateOptionalNamedBlockList;`
33608    ///
33609    #[parol_runtime::function_name::named]
33610    fn generate_optional_named_block_list_0(
33611        &mut self,
33612        _generate_group: &ParseTreeType<'t>,
33613        _generate_optional_named_block_list: &ParseTreeType<'t>,
33614    ) -> Result<()> {
33615        let context = function_name!();
33616        trace!("{}", self.trace_item_stack(context));
33617        let mut generate_optional_named_block_list = pop_item!(
33618            self,
33619            generate_optional_named_block_list,
33620            GenerateOptionalNamedBlockList,
33621            context
33622        );
33623        let generate_group = pop_item!(self, generate_group, GenerateGroup, context);
33624        let generate_optional_named_block_list_0_built = GenerateOptionalNamedBlockList {
33625            generate_group: Box::new(generate_group),
33626        };
33627        // Add an element to the vector
33628        generate_optional_named_block_list.push(generate_optional_named_block_list_0_built);
33629        self.push(
33630            ASTType::GenerateOptionalNamedBlockList(generate_optional_named_block_list),
33631            context,
33632        );
33633        Ok(())
33634    }
33635
33636    /// Semantic action for production 904:
33637    ///
33638    /// `GenerateOptionalNamedBlockList /* Vec<T>::New */: ;`
33639    ///
33640    #[parol_runtime::function_name::named]
33641    fn generate_optional_named_block_list_1(&mut self) -> Result<()> {
33642        let context = function_name!();
33643        trace!("{}", self.trace_item_stack(context));
33644        let generate_optional_named_block_list_1_built = Vec::new();
33645        self.push(
33646            ASTType::GenerateOptionalNamedBlockList(generate_optional_named_block_list_1_built),
33647            context,
33648        );
33649        Ok(())
33650    }
33651
33652    /// Semantic action for production 905:
33653    ///
33654    /// `GenerateOptionalNamedBlockOpt /* Option<T>::Some */: Colon Identifier;`
33655    ///
33656    #[parol_runtime::function_name::named]
33657    fn generate_optional_named_block_opt_0(
33658        &mut self,
33659        _colon: &ParseTreeType<'t>,
33660        _identifier: &ParseTreeType<'t>,
33661    ) -> Result<()> {
33662        let context = function_name!();
33663        trace!("{}", self.trace_item_stack(context));
33664        let identifier = pop_item!(self, identifier, Identifier, context);
33665        let colon = pop_item!(self, colon, Colon, context);
33666        let generate_optional_named_block_opt_0_built = GenerateOptionalNamedBlockOpt {
33667            colon: Box::new(colon),
33668            identifier: Box::new(identifier),
33669        };
33670        self.push(
33671            ASTType::GenerateOptionalNamedBlockOpt(Some(generate_optional_named_block_opt_0_built)),
33672            context,
33673        );
33674        Ok(())
33675    }
33676
33677    /// Semantic action for production 906:
33678    ///
33679    /// `GenerateOptionalNamedBlockOpt /* Option<T>::None */: ;`
33680    ///
33681    #[parol_runtime::function_name::named]
33682    fn generate_optional_named_block_opt_1(&mut self) -> Result<()> {
33683        let context = function_name!();
33684        trace!("{}", self.trace_item_stack(context));
33685        self.push(ASTType::GenerateOptionalNamedBlockOpt(None), context);
33686        Ok(())
33687    }
33688
33689    /// Semantic action for production 907:
33690    ///
33691    /// `GenerateGroup: GenerateGroupList /* Vec */ GenerateGroupGroup;`
33692    ///
33693    #[parol_runtime::function_name::named]
33694    fn generate_group(
33695        &mut self,
33696        _generate_group_list: &ParseTreeType<'t>,
33697        _generate_group_group: &ParseTreeType<'t>,
33698    ) -> Result<()> {
33699        let context = function_name!();
33700        trace!("{}", self.trace_item_stack(context));
33701        let generate_group_group =
33702            pop_item!(self, generate_group_group, GenerateGroupGroup, context);
33703        let generate_group_list =
33704            pop_and_reverse_item!(self, generate_group_list, GenerateGroupList, context);
33705        let generate_group_built = GenerateGroup {
33706            generate_group_list,
33707            generate_group_group: Box::new(generate_group_group),
33708        };
33709        // Calling user action here
33710        self.user_grammar.generate_group(&generate_group_built)?;
33711        self.push(ASTType::GenerateGroup(generate_group_built), context);
33712        Ok(())
33713    }
33714
33715    /// Semantic action for production 908:
33716    ///
33717    /// `GenerateGroupGroup: LBrace GenerateGroupGroupList /* Vec */ RBrace;`
33718    ///
33719    #[parol_runtime::function_name::named]
33720    fn generate_group_group_0(
33721        &mut self,
33722        _l_brace: &ParseTreeType<'t>,
33723        _generate_group_group_list: &ParseTreeType<'t>,
33724        _r_brace: &ParseTreeType<'t>,
33725    ) -> Result<()> {
33726        let context = function_name!();
33727        trace!("{}", self.trace_item_stack(context));
33728        let r_brace = pop_item!(self, r_brace, RBrace, context);
33729        let generate_group_group_list = pop_and_reverse_item!(
33730            self,
33731            generate_group_group_list,
33732            GenerateGroupGroupList,
33733            context
33734        );
33735        let l_brace = pop_item!(self, l_brace, LBrace, context);
33736        let generate_group_group_0_built = GenerateGroupGroupLBraceGenerateGroupGroupListRBrace {
33737            l_brace: Box::new(l_brace),
33738            generate_group_group_list,
33739            r_brace: Box::new(r_brace),
33740        };
33741        let generate_group_group_0_built =
33742            GenerateGroupGroup::LBraceGenerateGroupGroupListRBrace(generate_group_group_0_built);
33743        self.push(
33744            ASTType::GenerateGroupGroup(generate_group_group_0_built),
33745            context,
33746        );
33747        Ok(())
33748    }
33749
33750    /// Semantic action for production 909:
33751    ///
33752    /// `GenerateGroupGroupList /* Vec<T>::Push */: GenerateGroup GenerateGroupGroupList;`
33753    ///
33754    #[parol_runtime::function_name::named]
33755    fn generate_group_group_list_0(
33756        &mut self,
33757        _generate_group: &ParseTreeType<'t>,
33758        _generate_group_group_list: &ParseTreeType<'t>,
33759    ) -> Result<()> {
33760        let context = function_name!();
33761        trace!("{}", self.trace_item_stack(context));
33762        let mut generate_group_group_list = pop_item!(
33763            self,
33764            generate_group_group_list,
33765            GenerateGroupGroupList,
33766            context
33767        );
33768        let generate_group = pop_item!(self, generate_group, GenerateGroup, context);
33769        let generate_group_group_list_0_built = GenerateGroupGroupList {
33770            generate_group: Box::new(generate_group),
33771        };
33772        // Add an element to the vector
33773        generate_group_group_list.push(generate_group_group_list_0_built);
33774        self.push(
33775            ASTType::GenerateGroupGroupList(generate_group_group_list),
33776            context,
33777        );
33778        Ok(())
33779    }
33780
33781    /// Semantic action for production 910:
33782    ///
33783    /// `GenerateGroupGroupList /* Vec<T>::New */: ;`
33784    ///
33785    #[parol_runtime::function_name::named]
33786    fn generate_group_group_list_1(&mut self) -> Result<()> {
33787        let context = function_name!();
33788        trace!("{}", self.trace_item_stack(context));
33789        let generate_group_group_list_1_built = Vec::new();
33790        self.push(
33791            ASTType::GenerateGroupGroupList(generate_group_group_list_1_built),
33792            context,
33793        );
33794        Ok(())
33795    }
33796
33797    /// Semantic action for production 911:
33798    ///
33799    /// `GenerateGroupGroup: GenerateItem;`
33800    ///
33801    #[parol_runtime::function_name::named]
33802    fn generate_group_group_1(&mut self, _generate_item: &ParseTreeType<'t>) -> Result<()> {
33803        let context = function_name!();
33804        trace!("{}", self.trace_item_stack(context));
33805        let generate_item = pop_item!(self, generate_item, GenerateItem, context);
33806        let generate_group_group_1_built = GenerateGroupGroupGenerateItem {
33807            generate_item: Box::new(generate_item),
33808        };
33809        let generate_group_group_1_built =
33810            GenerateGroupGroup::GenerateItem(generate_group_group_1_built);
33811        self.push(
33812            ASTType::GenerateGroupGroup(generate_group_group_1_built),
33813            context,
33814        );
33815        Ok(())
33816    }
33817
33818    /// Semantic action for production 912:
33819    ///
33820    /// `GenerateGroupList /* Vec<T>::Push */: Attribute GenerateGroupList;`
33821    ///
33822    #[parol_runtime::function_name::named]
33823    fn generate_group_list_0(
33824        &mut self,
33825        _attribute: &ParseTreeType<'t>,
33826        _generate_group_list: &ParseTreeType<'t>,
33827    ) -> Result<()> {
33828        let context = function_name!();
33829        trace!("{}", self.trace_item_stack(context));
33830        let mut generate_group_list =
33831            pop_item!(self, generate_group_list, GenerateGroupList, context);
33832        let attribute = pop_item!(self, attribute, Attribute, context);
33833        let generate_group_list_0_built = GenerateGroupList {
33834            attribute: Box::new(attribute),
33835        };
33836        // Add an element to the vector
33837        generate_group_list.push(generate_group_list_0_built);
33838        self.push(ASTType::GenerateGroupList(generate_group_list), context);
33839        Ok(())
33840    }
33841
33842    /// Semantic action for production 913:
33843    ///
33844    /// `GenerateGroupList /* Vec<T>::New */: ;`
33845    ///
33846    #[parol_runtime::function_name::named]
33847    fn generate_group_list_1(&mut self) -> Result<()> {
33848        let context = function_name!();
33849        trace!("{}", self.trace_item_stack(context));
33850        let generate_group_list_1_built = Vec::new();
33851        self.push(
33852            ASTType::GenerateGroupList(generate_group_list_1_built),
33853            context,
33854        );
33855        Ok(())
33856    }
33857
33858    /// Semantic action for production 914:
33859    ///
33860    /// `GenerateItem: LetDeclaration;`
33861    ///
33862    #[parol_runtime::function_name::named]
33863    fn generate_item_0(&mut self, _let_declaration: &ParseTreeType<'t>) -> Result<()> {
33864        let context = function_name!();
33865        trace!("{}", self.trace_item_stack(context));
33866        let let_declaration = pop_item!(self, let_declaration, LetDeclaration, context);
33867        let generate_item_0_built = GenerateItemLetDeclaration {
33868            let_declaration: Box::new(let_declaration),
33869        };
33870        let generate_item_0_built = GenerateItem::LetDeclaration(generate_item_0_built);
33871        // Calling user action here
33872        self.user_grammar.generate_item(&generate_item_0_built)?;
33873        self.push(ASTType::GenerateItem(generate_item_0_built), context);
33874        Ok(())
33875    }
33876
33877    /// Semantic action for production 915:
33878    ///
33879    /// `GenerateItem: VarDeclaration;`
33880    ///
33881    #[parol_runtime::function_name::named]
33882    fn generate_item_1(&mut self, _var_declaration: &ParseTreeType<'t>) -> Result<()> {
33883        let context = function_name!();
33884        trace!("{}", self.trace_item_stack(context));
33885        let var_declaration = pop_item!(self, var_declaration, VarDeclaration, context);
33886        let generate_item_1_built = GenerateItemVarDeclaration {
33887            var_declaration: Box::new(var_declaration),
33888        };
33889        let generate_item_1_built = GenerateItem::VarDeclaration(generate_item_1_built);
33890        // Calling user action here
33891        self.user_grammar.generate_item(&generate_item_1_built)?;
33892        self.push(ASTType::GenerateItem(generate_item_1_built), context);
33893        Ok(())
33894    }
33895
33896    /// Semantic action for production 916:
33897    ///
33898    /// `GenerateItem: InstDeclaration;`
33899    ///
33900    #[parol_runtime::function_name::named]
33901    fn generate_item_2(&mut self, _inst_declaration: &ParseTreeType<'t>) -> Result<()> {
33902        let context = function_name!();
33903        trace!("{}", self.trace_item_stack(context));
33904        let inst_declaration = pop_item!(self, inst_declaration, InstDeclaration, context);
33905        let generate_item_2_built = GenerateItemInstDeclaration {
33906            inst_declaration: Box::new(inst_declaration),
33907        };
33908        let generate_item_2_built = GenerateItem::InstDeclaration(generate_item_2_built);
33909        // Calling user action here
33910        self.user_grammar.generate_item(&generate_item_2_built)?;
33911        self.push(ASTType::GenerateItem(generate_item_2_built), context);
33912        Ok(())
33913    }
33914
33915    /// Semantic action for production 917:
33916    ///
33917    /// `GenerateItem: ConstDeclaration;`
33918    ///
33919    #[parol_runtime::function_name::named]
33920    fn generate_item_3(&mut self, _const_declaration: &ParseTreeType<'t>) -> Result<()> {
33921        let context = function_name!();
33922        trace!("{}", self.trace_item_stack(context));
33923        let const_declaration = pop_item!(self, const_declaration, ConstDeclaration, context);
33924        let generate_item_3_built = GenerateItemConstDeclaration {
33925            const_declaration: Box::new(const_declaration),
33926        };
33927        let generate_item_3_built = GenerateItem::ConstDeclaration(generate_item_3_built);
33928        // Calling user action here
33929        self.user_grammar.generate_item(&generate_item_3_built)?;
33930        self.push(ASTType::GenerateItem(generate_item_3_built), context);
33931        Ok(())
33932    }
33933
33934    /// Semantic action for production 918:
33935    ///
33936    /// `GenerateItem: AlwaysFfDeclaration;`
33937    ///
33938    #[parol_runtime::function_name::named]
33939    fn generate_item_4(&mut self, _always_ff_declaration: &ParseTreeType<'t>) -> Result<()> {
33940        let context = function_name!();
33941        trace!("{}", self.trace_item_stack(context));
33942        let always_ff_declaration =
33943            pop_item!(self, always_ff_declaration, AlwaysFfDeclaration, context);
33944        let generate_item_4_built = GenerateItemAlwaysFfDeclaration {
33945            always_ff_declaration: Box::new(always_ff_declaration),
33946        };
33947        let generate_item_4_built = GenerateItem::AlwaysFfDeclaration(generate_item_4_built);
33948        // Calling user action here
33949        self.user_grammar.generate_item(&generate_item_4_built)?;
33950        self.push(ASTType::GenerateItem(generate_item_4_built), context);
33951        Ok(())
33952    }
33953
33954    /// Semantic action for production 919:
33955    ///
33956    /// `GenerateItem: AlwaysCombDeclaration;`
33957    ///
33958    #[parol_runtime::function_name::named]
33959    fn generate_item_5(&mut self, _always_comb_declaration: &ParseTreeType<'t>) -> Result<()> {
33960        let context = function_name!();
33961        trace!("{}", self.trace_item_stack(context));
33962        let always_comb_declaration = pop_item!(
33963            self,
33964            always_comb_declaration,
33965            AlwaysCombDeclaration,
33966            context
33967        );
33968        let generate_item_5_built = GenerateItemAlwaysCombDeclaration {
33969            always_comb_declaration: Box::new(always_comb_declaration),
33970        };
33971        let generate_item_5_built = GenerateItem::AlwaysCombDeclaration(generate_item_5_built);
33972        // Calling user action here
33973        self.user_grammar.generate_item(&generate_item_5_built)?;
33974        self.push(ASTType::GenerateItem(generate_item_5_built), context);
33975        Ok(())
33976    }
33977
33978    /// Semantic action for production 920:
33979    ///
33980    /// `GenerateItem: AssignDeclaration;`
33981    ///
33982    #[parol_runtime::function_name::named]
33983    fn generate_item_6(&mut self, _assign_declaration: &ParseTreeType<'t>) -> Result<()> {
33984        let context = function_name!();
33985        trace!("{}", self.trace_item_stack(context));
33986        let assign_declaration = pop_item!(self, assign_declaration, AssignDeclaration, context);
33987        let generate_item_6_built = GenerateItemAssignDeclaration {
33988            assign_declaration: Box::new(assign_declaration),
33989        };
33990        let generate_item_6_built = GenerateItem::AssignDeclaration(generate_item_6_built);
33991        // Calling user action here
33992        self.user_grammar.generate_item(&generate_item_6_built)?;
33993        self.push(ASTType::GenerateItem(generate_item_6_built), context);
33994        Ok(())
33995    }
33996
33997    /// Semantic action for production 921:
33998    ///
33999    /// `GenerateItem: FunctionDeclaration;`
34000    ///
34001    #[parol_runtime::function_name::named]
34002    fn generate_item_7(&mut self, _function_declaration: &ParseTreeType<'t>) -> Result<()> {
34003        let context = function_name!();
34004        trace!("{}", self.trace_item_stack(context));
34005        let function_declaration =
34006            pop_item!(self, function_declaration, FunctionDeclaration, context);
34007        let generate_item_7_built = GenerateItemFunctionDeclaration {
34008            function_declaration: Box::new(function_declaration),
34009        };
34010        let generate_item_7_built = GenerateItem::FunctionDeclaration(generate_item_7_built);
34011        // Calling user action here
34012        self.user_grammar.generate_item(&generate_item_7_built)?;
34013        self.push(ASTType::GenerateItem(generate_item_7_built), context);
34014        Ok(())
34015    }
34016
34017    /// Semantic action for production 922:
34018    ///
34019    /// `GenerateItem: GenerateIfDeclaration;`
34020    ///
34021    #[parol_runtime::function_name::named]
34022    fn generate_item_8(&mut self, _generate_if_declaration: &ParseTreeType<'t>) -> Result<()> {
34023        let context = function_name!();
34024        trace!("{}", self.trace_item_stack(context));
34025        let generate_if_declaration = pop_item!(
34026            self,
34027            generate_if_declaration,
34028            GenerateIfDeclaration,
34029            context
34030        );
34031        let generate_item_8_built = GenerateItemGenerateIfDeclaration {
34032            generate_if_declaration: Box::new(generate_if_declaration),
34033        };
34034        let generate_item_8_built = GenerateItem::GenerateIfDeclaration(generate_item_8_built);
34035        // Calling user action here
34036        self.user_grammar.generate_item(&generate_item_8_built)?;
34037        self.push(ASTType::GenerateItem(generate_item_8_built), context);
34038        Ok(())
34039    }
34040
34041    /// Semantic action for production 923:
34042    ///
34043    /// `GenerateItem: GenerateForDeclaration;`
34044    ///
34045    #[parol_runtime::function_name::named]
34046    fn generate_item_9(&mut self, _generate_for_declaration: &ParseTreeType<'t>) -> Result<()> {
34047        let context = function_name!();
34048        trace!("{}", self.trace_item_stack(context));
34049        let generate_for_declaration = pop_item!(
34050            self,
34051            generate_for_declaration,
34052            GenerateForDeclaration,
34053            context
34054        );
34055        let generate_item_9_built = GenerateItemGenerateForDeclaration {
34056            generate_for_declaration: Box::new(generate_for_declaration),
34057        };
34058        let generate_item_9_built = GenerateItem::GenerateForDeclaration(generate_item_9_built);
34059        // Calling user action here
34060        self.user_grammar.generate_item(&generate_item_9_built)?;
34061        self.push(ASTType::GenerateItem(generate_item_9_built), context);
34062        Ok(())
34063    }
34064
34065    /// Semantic action for production 924:
34066    ///
34067    /// `GenerateItem: GenerateBlockDeclaration;`
34068    ///
34069    #[parol_runtime::function_name::named]
34070    fn generate_item_10(&mut self, _generate_block_declaration: &ParseTreeType<'t>) -> Result<()> {
34071        let context = function_name!();
34072        trace!("{}", self.trace_item_stack(context));
34073        let generate_block_declaration = pop_item!(
34074            self,
34075            generate_block_declaration,
34076            GenerateBlockDeclaration,
34077            context
34078        );
34079        let generate_item_10_built = GenerateItemGenerateBlockDeclaration {
34080            generate_block_declaration: Box::new(generate_block_declaration),
34081        };
34082        let generate_item_10_built = GenerateItem::GenerateBlockDeclaration(generate_item_10_built);
34083        // Calling user action here
34084        self.user_grammar.generate_item(&generate_item_10_built)?;
34085        self.push(ASTType::GenerateItem(generate_item_10_built), context);
34086        Ok(())
34087    }
34088
34089    /// Semantic action for production 925:
34090    ///
34091    /// `GenerateItem: TypeDefDeclaration;`
34092    ///
34093    #[parol_runtime::function_name::named]
34094    fn generate_item_11(&mut self, _type_def_declaration: &ParseTreeType<'t>) -> Result<()> {
34095        let context = function_name!();
34096        trace!("{}", self.trace_item_stack(context));
34097        let type_def_declaration =
34098            pop_item!(self, type_def_declaration, TypeDefDeclaration, context);
34099        let generate_item_11_built = GenerateItemTypeDefDeclaration {
34100            type_def_declaration: Box::new(type_def_declaration),
34101        };
34102        let generate_item_11_built = GenerateItem::TypeDefDeclaration(generate_item_11_built);
34103        // Calling user action here
34104        self.user_grammar.generate_item(&generate_item_11_built)?;
34105        self.push(ASTType::GenerateItem(generate_item_11_built), context);
34106        Ok(())
34107    }
34108
34109    /// Semantic action for production 926:
34110    ///
34111    /// `GenerateItem: EnumDeclaration;`
34112    ///
34113    #[parol_runtime::function_name::named]
34114    fn generate_item_12(&mut self, _enum_declaration: &ParseTreeType<'t>) -> Result<()> {
34115        let context = function_name!();
34116        trace!("{}", self.trace_item_stack(context));
34117        let enum_declaration = pop_item!(self, enum_declaration, EnumDeclaration, context);
34118        let generate_item_12_built = GenerateItemEnumDeclaration {
34119            enum_declaration: Box::new(enum_declaration),
34120        };
34121        let generate_item_12_built = GenerateItem::EnumDeclaration(generate_item_12_built);
34122        // Calling user action here
34123        self.user_grammar.generate_item(&generate_item_12_built)?;
34124        self.push(ASTType::GenerateItem(generate_item_12_built), context);
34125        Ok(())
34126    }
34127
34128    /// Semantic action for production 927:
34129    ///
34130    /// `GenerateItem: StructUnionDeclaration;`
34131    ///
34132    #[parol_runtime::function_name::named]
34133    fn generate_item_13(&mut self, _struct_union_declaration: &ParseTreeType<'t>) -> Result<()> {
34134        let context = function_name!();
34135        trace!("{}", self.trace_item_stack(context));
34136        let struct_union_declaration = pop_item!(
34137            self,
34138            struct_union_declaration,
34139            StructUnionDeclaration,
34140            context
34141        );
34142        let generate_item_13_built = GenerateItemStructUnionDeclaration {
34143            struct_union_declaration: Box::new(struct_union_declaration),
34144        };
34145        let generate_item_13_built = GenerateItem::StructUnionDeclaration(generate_item_13_built);
34146        // Calling user action here
34147        self.user_grammar.generate_item(&generate_item_13_built)?;
34148        self.push(ASTType::GenerateItem(generate_item_13_built), context);
34149        Ok(())
34150    }
34151
34152    /// Semantic action for production 928:
34153    ///
34154    /// `GenerateItem: ImportDeclaration;`
34155    ///
34156    #[parol_runtime::function_name::named]
34157    fn generate_item_14(&mut self, _import_declaration: &ParseTreeType<'t>) -> Result<()> {
34158        let context = function_name!();
34159        trace!("{}", self.trace_item_stack(context));
34160        let import_declaration = pop_item!(self, import_declaration, ImportDeclaration, context);
34161        let generate_item_14_built = GenerateItemImportDeclaration {
34162            import_declaration: Box::new(import_declaration),
34163        };
34164        let generate_item_14_built = GenerateItem::ImportDeclaration(generate_item_14_built);
34165        // Calling user action here
34166        self.user_grammar.generate_item(&generate_item_14_built)?;
34167        self.push(ASTType::GenerateItem(generate_item_14_built), context);
34168        Ok(())
34169    }
34170
34171    /// Semantic action for production 929:
34172    ///
34173    /// `GenerateItem: InitialDeclaration;`
34174    ///
34175    #[parol_runtime::function_name::named]
34176    fn generate_item_15(&mut self, _initial_declaration: &ParseTreeType<'t>) -> Result<()> {
34177        let context = function_name!();
34178        trace!("{}", self.trace_item_stack(context));
34179        let initial_declaration = pop_item!(self, initial_declaration, InitialDeclaration, context);
34180        let generate_item_15_built = GenerateItemInitialDeclaration {
34181            initial_declaration: Box::new(initial_declaration),
34182        };
34183        let generate_item_15_built = GenerateItem::InitialDeclaration(generate_item_15_built);
34184        // Calling user action here
34185        self.user_grammar.generate_item(&generate_item_15_built)?;
34186        self.push(ASTType::GenerateItem(generate_item_15_built), context);
34187        Ok(())
34188    }
34189
34190    /// Semantic action for production 930:
34191    ///
34192    /// `GenerateItem: FinalDeclaration;`
34193    ///
34194    #[parol_runtime::function_name::named]
34195    fn generate_item_16(&mut self, _final_declaration: &ParseTreeType<'t>) -> Result<()> {
34196        let context = function_name!();
34197        trace!("{}", self.trace_item_stack(context));
34198        let final_declaration = pop_item!(self, final_declaration, FinalDeclaration, context);
34199        let generate_item_16_built = GenerateItemFinalDeclaration {
34200            final_declaration: Box::new(final_declaration),
34201        };
34202        let generate_item_16_built = GenerateItem::FinalDeclaration(generate_item_16_built);
34203        // Calling user action here
34204        self.user_grammar.generate_item(&generate_item_16_built)?;
34205        self.push(ASTType::GenerateItem(generate_item_16_built), context);
34206        Ok(())
34207    }
34208
34209    /// Semantic action for production 931:
34210    ///
34211    /// `GenerateItem: UnsafeBlock;`
34212    ///
34213    #[parol_runtime::function_name::named]
34214    fn generate_item_17(&mut self, _unsafe_block: &ParseTreeType<'t>) -> Result<()> {
34215        let context = function_name!();
34216        trace!("{}", self.trace_item_stack(context));
34217        let unsafe_block = pop_item!(self, unsafe_block, UnsafeBlock, context);
34218        let generate_item_17_built = GenerateItemUnsafeBlock {
34219            unsafe_block: Box::new(unsafe_block),
34220        };
34221        let generate_item_17_built = GenerateItem::UnsafeBlock(generate_item_17_built);
34222        // Calling user action here
34223        self.user_grammar.generate_item(&generate_item_17_built)?;
34224        self.push(ASTType::GenerateItem(generate_item_17_built), context);
34225        Ok(())
34226    }
34227
34228    /// Semantic action for production 932:
34229    ///
34230    /// `PackageDeclaration: Package Identifier PackageDeclarationOpt /* Option */ LBrace PackageDeclarationList /* Vec */ RBrace;`
34231    ///
34232    #[parol_runtime::function_name::named]
34233    fn package_declaration(
34234        &mut self,
34235        _package: &ParseTreeType<'t>,
34236        _identifier: &ParseTreeType<'t>,
34237        _package_declaration_opt: &ParseTreeType<'t>,
34238        _l_brace: &ParseTreeType<'t>,
34239        _package_declaration_list: &ParseTreeType<'t>,
34240        _r_brace: &ParseTreeType<'t>,
34241    ) -> Result<()> {
34242        let context = function_name!();
34243        trace!("{}", self.trace_item_stack(context));
34244        let r_brace = pop_item!(self, r_brace, RBrace, context);
34245        let package_declaration_list = pop_and_reverse_item!(
34246            self,
34247            package_declaration_list,
34248            PackageDeclarationList,
34249            context
34250        );
34251        let l_brace = pop_item!(self, l_brace, LBrace, context);
34252        let package_declaration_opt = pop_item!(
34253            self,
34254            package_declaration_opt,
34255            PackageDeclarationOpt,
34256            context
34257        );
34258        let identifier = pop_item!(self, identifier, Identifier, context);
34259        let package = pop_item!(self, package, Package, context);
34260        let package_declaration_built = PackageDeclaration {
34261            package: Box::new(package),
34262            identifier: Box::new(identifier),
34263            package_declaration_opt,
34264            l_brace: Box::new(l_brace),
34265            package_declaration_list,
34266            r_brace: Box::new(r_brace),
34267        };
34268        // Calling user action here
34269        self.user_grammar
34270            .package_declaration(&package_declaration_built)?;
34271        self.push(
34272            ASTType::PackageDeclaration(package_declaration_built),
34273            context,
34274        );
34275        Ok(())
34276    }
34277
34278    /// Semantic action for production 933:
34279    ///
34280    /// `PackageDeclarationList /* Vec<T>::Push */: PackageGroup PackageDeclarationList;`
34281    ///
34282    #[parol_runtime::function_name::named]
34283    fn package_declaration_list_0(
34284        &mut self,
34285        _package_group: &ParseTreeType<'t>,
34286        _package_declaration_list: &ParseTreeType<'t>,
34287    ) -> Result<()> {
34288        let context = function_name!();
34289        trace!("{}", self.trace_item_stack(context));
34290        let mut package_declaration_list = pop_item!(
34291            self,
34292            package_declaration_list,
34293            PackageDeclarationList,
34294            context
34295        );
34296        let package_group = pop_item!(self, package_group, PackageGroup, context);
34297        let package_declaration_list_0_built = PackageDeclarationList {
34298            package_group: Box::new(package_group),
34299        };
34300        // Add an element to the vector
34301        package_declaration_list.push(package_declaration_list_0_built);
34302        self.push(
34303            ASTType::PackageDeclarationList(package_declaration_list),
34304            context,
34305        );
34306        Ok(())
34307    }
34308
34309    /// Semantic action for production 934:
34310    ///
34311    /// `PackageDeclarationList /* Vec<T>::New */: ;`
34312    ///
34313    #[parol_runtime::function_name::named]
34314    fn package_declaration_list_1(&mut self) -> Result<()> {
34315        let context = function_name!();
34316        trace!("{}", self.trace_item_stack(context));
34317        let package_declaration_list_1_built = Vec::new();
34318        self.push(
34319            ASTType::PackageDeclarationList(package_declaration_list_1_built),
34320            context,
34321        );
34322        Ok(())
34323    }
34324
34325    /// Semantic action for production 935:
34326    ///
34327    /// `PackageDeclarationOpt /* Option<T>::Some */: WithGenericParameter;`
34328    ///
34329    #[parol_runtime::function_name::named]
34330    fn package_declaration_opt_0(
34331        &mut self,
34332        _with_generic_parameter: &ParseTreeType<'t>,
34333    ) -> Result<()> {
34334        let context = function_name!();
34335        trace!("{}", self.trace_item_stack(context));
34336        let with_generic_parameter =
34337            pop_item!(self, with_generic_parameter, WithGenericParameter, context);
34338        let package_declaration_opt_0_built = PackageDeclarationOpt {
34339            with_generic_parameter: Box::new(with_generic_parameter),
34340        };
34341        self.push(
34342            ASTType::PackageDeclarationOpt(Some(package_declaration_opt_0_built)),
34343            context,
34344        );
34345        Ok(())
34346    }
34347
34348    /// Semantic action for production 936:
34349    ///
34350    /// `PackageDeclarationOpt /* Option<T>::None */: ;`
34351    ///
34352    #[parol_runtime::function_name::named]
34353    fn package_declaration_opt_1(&mut self) -> Result<()> {
34354        let context = function_name!();
34355        trace!("{}", self.trace_item_stack(context));
34356        self.push(ASTType::PackageDeclarationOpt(None), context);
34357        Ok(())
34358    }
34359
34360    /// Semantic action for production 937:
34361    ///
34362    /// `PackageGroup: PackageGroupList /* Vec */ PackageGroupGroup;`
34363    ///
34364    #[parol_runtime::function_name::named]
34365    fn package_group(
34366        &mut self,
34367        _package_group_list: &ParseTreeType<'t>,
34368        _package_group_group: &ParseTreeType<'t>,
34369    ) -> Result<()> {
34370        let context = function_name!();
34371        trace!("{}", self.trace_item_stack(context));
34372        let package_group_group = pop_item!(self, package_group_group, PackageGroupGroup, context);
34373        let package_group_list =
34374            pop_and_reverse_item!(self, package_group_list, PackageGroupList, context);
34375        let package_group_built = PackageGroup {
34376            package_group_list,
34377            package_group_group: Box::new(package_group_group),
34378        };
34379        // Calling user action here
34380        self.user_grammar.package_group(&package_group_built)?;
34381        self.push(ASTType::PackageGroup(package_group_built), context);
34382        Ok(())
34383    }
34384
34385    /// Semantic action for production 938:
34386    ///
34387    /// `PackageGroupGroup: LBrace PackageGroupGroupList /* Vec */ RBrace;`
34388    ///
34389    #[parol_runtime::function_name::named]
34390    fn package_group_group_0(
34391        &mut self,
34392        _l_brace: &ParseTreeType<'t>,
34393        _package_group_group_list: &ParseTreeType<'t>,
34394        _r_brace: &ParseTreeType<'t>,
34395    ) -> Result<()> {
34396        let context = function_name!();
34397        trace!("{}", self.trace_item_stack(context));
34398        let r_brace = pop_item!(self, r_brace, RBrace, context);
34399        let package_group_group_list = pop_and_reverse_item!(
34400            self,
34401            package_group_group_list,
34402            PackageGroupGroupList,
34403            context
34404        );
34405        let l_brace = pop_item!(self, l_brace, LBrace, context);
34406        let package_group_group_0_built = PackageGroupGroupLBracePackageGroupGroupListRBrace {
34407            l_brace: Box::new(l_brace),
34408            package_group_group_list,
34409            r_brace: Box::new(r_brace),
34410        };
34411        let package_group_group_0_built =
34412            PackageGroupGroup::LBracePackageGroupGroupListRBrace(package_group_group_0_built);
34413        self.push(
34414            ASTType::PackageGroupGroup(package_group_group_0_built),
34415            context,
34416        );
34417        Ok(())
34418    }
34419
34420    /// Semantic action for production 939:
34421    ///
34422    /// `PackageGroupGroupList /* Vec<T>::Push */: PackageGroup PackageGroupGroupList;`
34423    ///
34424    #[parol_runtime::function_name::named]
34425    fn package_group_group_list_0(
34426        &mut self,
34427        _package_group: &ParseTreeType<'t>,
34428        _package_group_group_list: &ParseTreeType<'t>,
34429    ) -> Result<()> {
34430        let context = function_name!();
34431        trace!("{}", self.trace_item_stack(context));
34432        let mut package_group_group_list = pop_item!(
34433            self,
34434            package_group_group_list,
34435            PackageGroupGroupList,
34436            context
34437        );
34438        let package_group = pop_item!(self, package_group, PackageGroup, context);
34439        let package_group_group_list_0_built = PackageGroupGroupList {
34440            package_group: Box::new(package_group),
34441        };
34442        // Add an element to the vector
34443        package_group_group_list.push(package_group_group_list_0_built);
34444        self.push(
34445            ASTType::PackageGroupGroupList(package_group_group_list),
34446            context,
34447        );
34448        Ok(())
34449    }
34450
34451    /// Semantic action for production 940:
34452    ///
34453    /// `PackageGroupGroupList /* Vec<T>::New */: ;`
34454    ///
34455    #[parol_runtime::function_name::named]
34456    fn package_group_group_list_1(&mut self) -> Result<()> {
34457        let context = function_name!();
34458        trace!("{}", self.trace_item_stack(context));
34459        let package_group_group_list_1_built = Vec::new();
34460        self.push(
34461            ASTType::PackageGroupGroupList(package_group_group_list_1_built),
34462            context,
34463        );
34464        Ok(())
34465    }
34466
34467    /// Semantic action for production 941:
34468    ///
34469    /// `PackageGroupGroup: PackageItem;`
34470    ///
34471    #[parol_runtime::function_name::named]
34472    fn package_group_group_1(&mut self, _package_item: &ParseTreeType<'t>) -> Result<()> {
34473        let context = function_name!();
34474        trace!("{}", self.trace_item_stack(context));
34475        let package_item = pop_item!(self, package_item, PackageItem, context);
34476        let package_group_group_1_built = PackageGroupGroupPackageItem {
34477            package_item: Box::new(package_item),
34478        };
34479        let package_group_group_1_built =
34480            PackageGroupGroup::PackageItem(package_group_group_1_built);
34481        self.push(
34482            ASTType::PackageGroupGroup(package_group_group_1_built),
34483            context,
34484        );
34485        Ok(())
34486    }
34487
34488    /// Semantic action for production 942:
34489    ///
34490    /// `PackageGroupList /* Vec<T>::Push */: Attribute PackageGroupList;`
34491    ///
34492    #[parol_runtime::function_name::named]
34493    fn package_group_list_0(
34494        &mut self,
34495        _attribute: &ParseTreeType<'t>,
34496        _package_group_list: &ParseTreeType<'t>,
34497    ) -> Result<()> {
34498        let context = function_name!();
34499        trace!("{}", self.trace_item_stack(context));
34500        let mut package_group_list = pop_item!(self, package_group_list, PackageGroupList, context);
34501        let attribute = pop_item!(self, attribute, Attribute, context);
34502        let package_group_list_0_built = PackageGroupList {
34503            attribute: Box::new(attribute),
34504        };
34505        // Add an element to the vector
34506        package_group_list.push(package_group_list_0_built);
34507        self.push(ASTType::PackageGroupList(package_group_list), context);
34508        Ok(())
34509    }
34510
34511    /// Semantic action for production 943:
34512    ///
34513    /// `PackageGroupList /* Vec<T>::New */: ;`
34514    ///
34515    #[parol_runtime::function_name::named]
34516    fn package_group_list_1(&mut self) -> Result<()> {
34517        let context = function_name!();
34518        trace!("{}", self.trace_item_stack(context));
34519        let package_group_list_1_built = Vec::new();
34520        self.push(
34521            ASTType::PackageGroupList(package_group_list_1_built),
34522            context,
34523        );
34524        Ok(())
34525    }
34526
34527    /// Semantic action for production 944:
34528    ///
34529    /// `PackageItem: ConstDeclaration;`
34530    ///
34531    #[parol_runtime::function_name::named]
34532    fn package_item_0(&mut self, _const_declaration: &ParseTreeType<'t>) -> Result<()> {
34533        let context = function_name!();
34534        trace!("{}", self.trace_item_stack(context));
34535        let const_declaration = pop_item!(self, const_declaration, ConstDeclaration, context);
34536        let package_item_0_built = PackageItemConstDeclaration {
34537            const_declaration: Box::new(const_declaration),
34538        };
34539        let package_item_0_built = PackageItem::ConstDeclaration(package_item_0_built);
34540        // Calling user action here
34541        self.user_grammar.package_item(&package_item_0_built)?;
34542        self.push(ASTType::PackageItem(package_item_0_built), context);
34543        Ok(())
34544    }
34545
34546    /// Semantic action for production 945:
34547    ///
34548    /// `PackageItem: TypeDefDeclaration;`
34549    ///
34550    #[parol_runtime::function_name::named]
34551    fn package_item_1(&mut self, _type_def_declaration: &ParseTreeType<'t>) -> Result<()> {
34552        let context = function_name!();
34553        trace!("{}", self.trace_item_stack(context));
34554        let type_def_declaration =
34555            pop_item!(self, type_def_declaration, TypeDefDeclaration, context);
34556        let package_item_1_built = PackageItemTypeDefDeclaration {
34557            type_def_declaration: Box::new(type_def_declaration),
34558        };
34559        let package_item_1_built = PackageItem::TypeDefDeclaration(package_item_1_built);
34560        // Calling user action here
34561        self.user_grammar.package_item(&package_item_1_built)?;
34562        self.push(ASTType::PackageItem(package_item_1_built), context);
34563        Ok(())
34564    }
34565
34566    /// Semantic action for production 946:
34567    ///
34568    /// `PackageItem: EnumDeclaration;`
34569    ///
34570    #[parol_runtime::function_name::named]
34571    fn package_item_2(&mut self, _enum_declaration: &ParseTreeType<'t>) -> Result<()> {
34572        let context = function_name!();
34573        trace!("{}", self.trace_item_stack(context));
34574        let enum_declaration = pop_item!(self, enum_declaration, EnumDeclaration, context);
34575        let package_item_2_built = PackageItemEnumDeclaration {
34576            enum_declaration: Box::new(enum_declaration),
34577        };
34578        let package_item_2_built = PackageItem::EnumDeclaration(package_item_2_built);
34579        // Calling user action here
34580        self.user_grammar.package_item(&package_item_2_built)?;
34581        self.push(ASTType::PackageItem(package_item_2_built), context);
34582        Ok(())
34583    }
34584
34585    /// Semantic action for production 947:
34586    ///
34587    /// `PackageItem: StructUnionDeclaration;`
34588    ///
34589    #[parol_runtime::function_name::named]
34590    fn package_item_3(&mut self, _struct_union_declaration: &ParseTreeType<'t>) -> Result<()> {
34591        let context = function_name!();
34592        trace!("{}", self.trace_item_stack(context));
34593        let struct_union_declaration = pop_item!(
34594            self,
34595            struct_union_declaration,
34596            StructUnionDeclaration,
34597            context
34598        );
34599        let package_item_3_built = PackageItemStructUnionDeclaration {
34600            struct_union_declaration: Box::new(struct_union_declaration),
34601        };
34602        let package_item_3_built = PackageItem::StructUnionDeclaration(package_item_3_built);
34603        // Calling user action here
34604        self.user_grammar.package_item(&package_item_3_built)?;
34605        self.push(ASTType::PackageItem(package_item_3_built), context);
34606        Ok(())
34607    }
34608
34609    /// Semantic action for production 948:
34610    ///
34611    /// `PackageItem: FunctionDeclaration;`
34612    ///
34613    #[parol_runtime::function_name::named]
34614    fn package_item_4(&mut self, _function_declaration: &ParseTreeType<'t>) -> Result<()> {
34615        let context = function_name!();
34616        trace!("{}", self.trace_item_stack(context));
34617        let function_declaration =
34618            pop_item!(self, function_declaration, FunctionDeclaration, context);
34619        let package_item_4_built = PackageItemFunctionDeclaration {
34620            function_declaration: Box::new(function_declaration),
34621        };
34622        let package_item_4_built = PackageItem::FunctionDeclaration(package_item_4_built);
34623        // Calling user action here
34624        self.user_grammar.package_item(&package_item_4_built)?;
34625        self.push(ASTType::PackageItem(package_item_4_built), context);
34626        Ok(())
34627    }
34628
34629    /// Semantic action for production 949:
34630    ///
34631    /// `PackageItem: ImportDeclaration;`
34632    ///
34633    #[parol_runtime::function_name::named]
34634    fn package_item_5(&mut self, _import_declaration: &ParseTreeType<'t>) -> Result<()> {
34635        let context = function_name!();
34636        trace!("{}", self.trace_item_stack(context));
34637        let import_declaration = pop_item!(self, import_declaration, ImportDeclaration, context);
34638        let package_item_5_built = PackageItemImportDeclaration {
34639            import_declaration: Box::new(import_declaration),
34640        };
34641        let package_item_5_built = PackageItem::ImportDeclaration(package_item_5_built);
34642        // Calling user action here
34643        self.user_grammar.package_item(&package_item_5_built)?;
34644        self.push(ASTType::PackageItem(package_item_5_built), context);
34645        Ok(())
34646    }
34647
34648    /// Semantic action for production 950:
34649    ///
34650    /// `PackageItem: ExportDeclaration;`
34651    ///
34652    #[parol_runtime::function_name::named]
34653    fn package_item_6(&mut self, _export_declaration: &ParseTreeType<'t>) -> Result<()> {
34654        let context = function_name!();
34655        trace!("{}", self.trace_item_stack(context));
34656        let export_declaration = pop_item!(self, export_declaration, ExportDeclaration, context);
34657        let package_item_6_built = PackageItemExportDeclaration {
34658            export_declaration: Box::new(export_declaration),
34659        };
34660        let package_item_6_built = PackageItem::ExportDeclaration(package_item_6_built);
34661        // Calling user action here
34662        self.user_grammar.package_item(&package_item_6_built)?;
34663        self.push(ASTType::PackageItem(package_item_6_built), context);
34664        Ok(())
34665    }
34666
34667    /// Semantic action for production 951:
34668    ///
34669    /// `ProtoModuleDeclaration: Proto Module Identifier ProtoModuleDeclarationOpt /* Option */ ProtoModuleDeclarationOpt0 /* Option */ Semicolon;`
34670    ///
34671    #[parol_runtime::function_name::named]
34672    fn proto_module_declaration(
34673        &mut self,
34674        _proto: &ParseTreeType<'t>,
34675        _module: &ParseTreeType<'t>,
34676        _identifier: &ParseTreeType<'t>,
34677        _proto_module_declaration_opt: &ParseTreeType<'t>,
34678        _proto_module_declaration_opt0: &ParseTreeType<'t>,
34679        _semicolon: &ParseTreeType<'t>,
34680    ) -> Result<()> {
34681        let context = function_name!();
34682        trace!("{}", self.trace_item_stack(context));
34683        let semicolon = pop_item!(self, semicolon, Semicolon, context);
34684        let proto_module_declaration_opt0 = pop_item!(
34685            self,
34686            proto_module_declaration_opt0,
34687            ProtoModuleDeclarationOpt0,
34688            context
34689        );
34690        let proto_module_declaration_opt = pop_item!(
34691            self,
34692            proto_module_declaration_opt,
34693            ProtoModuleDeclarationOpt,
34694            context
34695        );
34696        let identifier = pop_item!(self, identifier, Identifier, context);
34697        let module = pop_item!(self, module, Module, context);
34698        let proto = pop_item!(self, proto, Proto, context);
34699        let proto_module_declaration_built = ProtoModuleDeclaration {
34700            proto: Box::new(proto),
34701            module: Box::new(module),
34702            identifier: Box::new(identifier),
34703            proto_module_declaration_opt,
34704            proto_module_declaration_opt0,
34705            semicolon: Box::new(semicolon),
34706        };
34707        // Calling user action here
34708        self.user_grammar
34709            .proto_module_declaration(&proto_module_declaration_built)?;
34710        self.push(
34711            ASTType::ProtoModuleDeclaration(proto_module_declaration_built),
34712            context,
34713        );
34714        Ok(())
34715    }
34716
34717    /// Semantic action for production 952:
34718    ///
34719    /// `ProtoModuleDeclarationOpt0 /* Option<T>::Some */: PortDeclaration;`
34720    ///
34721    #[parol_runtime::function_name::named]
34722    fn proto_module_declaration_opt0_0(
34723        &mut self,
34724        _port_declaration: &ParseTreeType<'t>,
34725    ) -> Result<()> {
34726        let context = function_name!();
34727        trace!("{}", self.trace_item_stack(context));
34728        let port_declaration = pop_item!(self, port_declaration, PortDeclaration, context);
34729        let proto_module_declaration_opt0_0_built = ProtoModuleDeclarationOpt0 {
34730            port_declaration: Box::new(port_declaration),
34731        };
34732        self.push(
34733            ASTType::ProtoModuleDeclarationOpt0(Some(proto_module_declaration_opt0_0_built)),
34734            context,
34735        );
34736        Ok(())
34737    }
34738
34739    /// Semantic action for production 953:
34740    ///
34741    /// `ProtoModuleDeclarationOpt0 /* Option<T>::None */: ;`
34742    ///
34743    #[parol_runtime::function_name::named]
34744    fn proto_module_declaration_opt0_1(&mut self) -> Result<()> {
34745        let context = function_name!();
34746        trace!("{}", self.trace_item_stack(context));
34747        self.push(ASTType::ProtoModuleDeclarationOpt0(None), context);
34748        Ok(())
34749    }
34750
34751    /// Semantic action for production 954:
34752    ///
34753    /// `ProtoModuleDeclarationOpt /* Option<T>::Some */: WithParameter;`
34754    ///
34755    #[parol_runtime::function_name::named]
34756    fn proto_module_declaration_opt_0(
34757        &mut self,
34758        _with_parameter: &ParseTreeType<'t>,
34759    ) -> Result<()> {
34760        let context = function_name!();
34761        trace!("{}", self.trace_item_stack(context));
34762        let with_parameter = pop_item!(self, with_parameter, WithParameter, context);
34763        let proto_module_declaration_opt_0_built = ProtoModuleDeclarationOpt {
34764            with_parameter: Box::new(with_parameter),
34765        };
34766        self.push(
34767            ASTType::ProtoModuleDeclarationOpt(Some(proto_module_declaration_opt_0_built)),
34768            context,
34769        );
34770        Ok(())
34771    }
34772
34773    /// Semantic action for production 955:
34774    ///
34775    /// `ProtoModuleDeclarationOpt /* Option<T>::None */: ;`
34776    ///
34777    #[parol_runtime::function_name::named]
34778    fn proto_module_declaration_opt_1(&mut self) -> Result<()> {
34779        let context = function_name!();
34780        trace!("{}", self.trace_item_stack(context));
34781        self.push(ASTType::ProtoModuleDeclarationOpt(None), context);
34782        Ok(())
34783    }
34784
34785    /// Semantic action for production 956:
34786    ///
34787    /// `EmbedDeclaration: Embed LParen Identifier RParen Identifier EmbedContent;`
34788    ///
34789    #[parol_runtime::function_name::named]
34790    fn embed_declaration(
34791        &mut self,
34792        _embed: &ParseTreeType<'t>,
34793        _l_paren: &ParseTreeType<'t>,
34794        _identifier: &ParseTreeType<'t>,
34795        _r_paren: &ParseTreeType<'t>,
34796        _identifier0: &ParseTreeType<'t>,
34797        _embed_content: &ParseTreeType<'t>,
34798    ) -> Result<()> {
34799        let context = function_name!();
34800        trace!("{}", self.trace_item_stack(context));
34801        let embed_content = pop_item!(self, embed_content, EmbedContent, context);
34802        let identifier0 = pop_item!(self, identifier0, Identifier, context);
34803        let r_paren = pop_item!(self, r_paren, RParen, context);
34804        let identifier = pop_item!(self, identifier, Identifier, context);
34805        let l_paren = pop_item!(self, l_paren, LParen, context);
34806        let embed = pop_item!(self, embed, Embed, context);
34807        let embed_declaration_built = EmbedDeclaration {
34808            embed: Box::new(embed),
34809            l_paren: Box::new(l_paren),
34810            identifier: Box::new(identifier),
34811            r_paren: Box::new(r_paren),
34812            identifier0: Box::new(identifier0),
34813            embed_content: Box::new(embed_content),
34814        };
34815        // Calling user action here
34816        self.user_grammar
34817            .embed_declaration(&embed_declaration_built)?;
34818        self.push(ASTType::EmbedDeclaration(embed_declaration_built), context);
34819        Ok(())
34820    }
34821
34822    /// Semantic action for production 957:
34823    ///
34824    /// `EmbedContent: EmbedContentToken : VerylToken;`
34825    ///
34826    #[parol_runtime::function_name::named]
34827    fn embed_content(&mut self, _embed_content_token: &ParseTreeType<'t>) -> Result<()> {
34828        let context = function_name!();
34829        trace!("{}", self.trace_item_stack(context));
34830        let embed_content_token = pop_item!(self, embed_content_token, EmbedContentToken, context);
34831        let embed_content_built = EmbedContent {
34832            embed_content_token: (&embed_content_token)
34833                .try_into()
34834                .map_err(parol_runtime::ParolError::UserError)?,
34835        };
34836        // Calling user action here
34837        self.user_grammar.embed_content(&embed_content_built)?;
34838        self.push(ASTType::EmbedContent(embed_content_built), context);
34839        Ok(())
34840    }
34841
34842    /// Semantic action for production 958:
34843    ///
34844    /// `EmbedContentToken: LBraceTerm %push(Embed) LBraceTerm LBraceTerm EmbedContentTokenList /* Vec */ RBraceTerm RBraceTerm RBraceTerm %pop() Comments;`
34845    ///
34846    #[parol_runtime::function_name::named]
34847    fn embed_content_token(
34848        &mut self,
34849        _l_brace_term: &ParseTreeType<'t>,
34850        _l_brace_term0: &ParseTreeType<'t>,
34851        _l_brace_term1: &ParseTreeType<'t>,
34852        _embed_content_token_list: &ParseTreeType<'t>,
34853        _r_brace_term: &ParseTreeType<'t>,
34854        _r_brace_term0: &ParseTreeType<'t>,
34855        _r_brace_term1: &ParseTreeType<'t>,
34856        _comments: &ParseTreeType<'t>,
34857    ) -> Result<()> {
34858        let context = function_name!();
34859        trace!("{}", self.trace_item_stack(context));
34860        let comments = pop_item!(self, comments, Comments, context);
34861        let r_brace_term1 = pop_item!(self, r_brace_term1, RBraceTerm, context);
34862        let r_brace_term0 = pop_item!(self, r_brace_term0, RBraceTerm, context);
34863        let r_brace_term = pop_item!(self, r_brace_term, RBraceTerm, context);
34864        let embed_content_token_list = pop_and_reverse_item!(
34865            self,
34866            embed_content_token_list,
34867            EmbedContentTokenList,
34868            context
34869        );
34870        let l_brace_term1 = pop_item!(self, l_brace_term1, LBraceTerm, context);
34871        let l_brace_term0 = pop_item!(self, l_brace_term0, LBraceTerm, context);
34872        let l_brace_term = pop_item!(self, l_brace_term, LBraceTerm, context);
34873        let embed_content_token_built = EmbedContentToken {
34874            l_brace_term: Box::new(l_brace_term),
34875            l_brace_term0: Box::new(l_brace_term0),
34876            l_brace_term1: Box::new(l_brace_term1),
34877            embed_content_token_list,
34878            r_brace_term: Box::new(r_brace_term),
34879            r_brace_term0: Box::new(r_brace_term0),
34880            r_brace_term1: Box::new(r_brace_term1),
34881            comments: Box::new(comments),
34882        };
34883        // Calling user action here
34884        self.user_grammar
34885            .embed_content_token(&embed_content_token_built)?;
34886        self.push(
34887            ASTType::EmbedContentToken(embed_content_token_built),
34888            context,
34889        );
34890        Ok(())
34891    }
34892
34893    /// Semantic action for production 959:
34894    ///
34895    /// `EmbedContentTokenList /* Vec<T>::Push */: EmbedItem EmbedContentTokenList;`
34896    ///
34897    #[parol_runtime::function_name::named]
34898    fn embed_content_token_list_0(
34899        &mut self,
34900        _embed_item: &ParseTreeType<'t>,
34901        _embed_content_token_list: &ParseTreeType<'t>,
34902    ) -> Result<()> {
34903        let context = function_name!();
34904        trace!("{}", self.trace_item_stack(context));
34905        let mut embed_content_token_list = pop_item!(
34906            self,
34907            embed_content_token_list,
34908            EmbedContentTokenList,
34909            context
34910        );
34911        let embed_item = pop_item!(self, embed_item, EmbedItem, context);
34912        let embed_content_token_list_0_built = EmbedContentTokenList {
34913            embed_item: Box::new(embed_item),
34914        };
34915        // Add an element to the vector
34916        embed_content_token_list.push(embed_content_token_list_0_built);
34917        self.push(
34918            ASTType::EmbedContentTokenList(embed_content_token_list),
34919            context,
34920        );
34921        Ok(())
34922    }
34923
34924    /// Semantic action for production 960:
34925    ///
34926    /// `EmbedContentTokenList /* Vec<T>::New */: ;`
34927    ///
34928    #[parol_runtime::function_name::named]
34929    fn embed_content_token_list_1(&mut self) -> Result<()> {
34930        let context = function_name!();
34931        trace!("{}", self.trace_item_stack(context));
34932        let embed_content_token_list_1_built = Vec::new();
34933        self.push(
34934            ASTType::EmbedContentTokenList(embed_content_token_list_1_built),
34935            context,
34936        );
34937        Ok(())
34938    }
34939
34940    /// Semantic action for production 961:
34941    ///
34942    /// `EmbedItem: LBraceTerm EmbedItemList /* Vec */ RBraceTerm;`
34943    ///
34944    #[parol_runtime::function_name::named]
34945    fn embed_item_0(
34946        &mut self,
34947        _l_brace_term: &ParseTreeType<'t>,
34948        _embed_item_list: &ParseTreeType<'t>,
34949        _r_brace_term: &ParseTreeType<'t>,
34950    ) -> Result<()> {
34951        let context = function_name!();
34952        trace!("{}", self.trace_item_stack(context));
34953        let r_brace_term = pop_item!(self, r_brace_term, RBraceTerm, context);
34954        let embed_item_list = pop_and_reverse_item!(self, embed_item_list, EmbedItemList, context);
34955        let l_brace_term = pop_item!(self, l_brace_term, LBraceTerm, context);
34956        let embed_item_0_built = EmbedItemLBraceTermEmbedItemListRBraceTerm {
34957            l_brace_term: Box::new(l_brace_term),
34958            embed_item_list,
34959            r_brace_term: Box::new(r_brace_term),
34960        };
34961        let embed_item_0_built = EmbedItem::LBraceTermEmbedItemListRBraceTerm(embed_item_0_built);
34962        // Calling user action here
34963        self.user_grammar.embed_item(&embed_item_0_built)?;
34964        self.push(ASTType::EmbedItem(embed_item_0_built), context);
34965        Ok(())
34966    }
34967
34968    /// Semantic action for production 962:
34969    ///
34970    /// `EmbedItemList /* Vec<T>::Push */: EmbedItem EmbedItemList;`
34971    ///
34972    #[parol_runtime::function_name::named]
34973    fn embed_item_list_0(
34974        &mut self,
34975        _embed_item: &ParseTreeType<'t>,
34976        _embed_item_list: &ParseTreeType<'t>,
34977    ) -> Result<()> {
34978        let context = function_name!();
34979        trace!("{}", self.trace_item_stack(context));
34980        let mut embed_item_list = pop_item!(self, embed_item_list, EmbedItemList, context);
34981        let embed_item = pop_item!(self, embed_item, EmbedItem, context);
34982        let embed_item_list_0_built = EmbedItemList {
34983            embed_item: Box::new(embed_item),
34984        };
34985        // Add an element to the vector
34986        embed_item_list.push(embed_item_list_0_built);
34987        self.push(ASTType::EmbedItemList(embed_item_list), context);
34988        Ok(())
34989    }
34990
34991    /// Semantic action for production 963:
34992    ///
34993    /// `EmbedItemList /* Vec<T>::New */: ;`
34994    ///
34995    #[parol_runtime::function_name::named]
34996    fn embed_item_list_1(&mut self) -> Result<()> {
34997        let context = function_name!();
34998        trace!("{}", self.trace_item_stack(context));
34999        let embed_item_list_1_built = Vec::new();
35000        self.push(ASTType::EmbedItemList(embed_item_list_1_built), context);
35001        Ok(())
35002    }
35003
35004    /// Semantic action for production 964:
35005    ///
35006    /// `EmbedItem: AnyTerm;`
35007    ///
35008    #[parol_runtime::function_name::named]
35009    fn embed_item_1(&mut self, _any_term: &ParseTreeType<'t>) -> Result<()> {
35010        let context = function_name!();
35011        trace!("{}", self.trace_item_stack(context));
35012        let any_term = pop_item!(self, any_term, AnyTerm, context);
35013        let embed_item_1_built = EmbedItemAnyTerm {
35014            any_term: Box::new(any_term),
35015        };
35016        let embed_item_1_built = EmbedItem::AnyTerm(embed_item_1_built);
35017        // Calling user action here
35018        self.user_grammar.embed_item(&embed_item_1_built)?;
35019        self.push(ASTType::EmbedItem(embed_item_1_built), context);
35020        Ok(())
35021    }
35022
35023    /// Semantic action for production 965:
35024    ///
35025    /// `IncludeDeclaration: Include LParen Identifier Comma StringLiteral RParen Semicolon;`
35026    ///
35027    #[parol_runtime::function_name::named]
35028    fn include_declaration(
35029        &mut self,
35030        _include: &ParseTreeType<'t>,
35031        _l_paren: &ParseTreeType<'t>,
35032        _identifier: &ParseTreeType<'t>,
35033        _comma: &ParseTreeType<'t>,
35034        _string_literal: &ParseTreeType<'t>,
35035        _r_paren: &ParseTreeType<'t>,
35036        _semicolon: &ParseTreeType<'t>,
35037    ) -> Result<()> {
35038        let context = function_name!();
35039        trace!("{}", self.trace_item_stack(context));
35040        let semicolon = pop_item!(self, semicolon, Semicolon, context);
35041        let r_paren = pop_item!(self, r_paren, RParen, context);
35042        let string_literal = pop_item!(self, string_literal, StringLiteral, context);
35043        let comma = pop_item!(self, comma, Comma, context);
35044        let identifier = pop_item!(self, identifier, Identifier, context);
35045        let l_paren = pop_item!(self, l_paren, LParen, context);
35046        let include = pop_item!(self, include, Include, context);
35047        let include_declaration_built = IncludeDeclaration {
35048            include: Box::new(include),
35049            l_paren: Box::new(l_paren),
35050            identifier: Box::new(identifier),
35051            comma: Box::new(comma),
35052            string_literal: Box::new(string_literal),
35053            r_paren: Box::new(r_paren),
35054            semicolon: Box::new(semicolon),
35055        };
35056        // Calling user action here
35057        self.user_grammar
35058            .include_declaration(&include_declaration_built)?;
35059        self.push(
35060            ASTType::IncludeDeclaration(include_declaration_built),
35061            context,
35062        );
35063        Ok(())
35064    }
35065
35066    /// Semantic action for production 966:
35067    ///
35068    /// `DescriptionGroup: DescriptionGroupList /* Vec */ DescriptionGroupGroup;`
35069    ///
35070    #[parol_runtime::function_name::named]
35071    fn description_group(
35072        &mut self,
35073        _description_group_list: &ParseTreeType<'t>,
35074        _description_group_group: &ParseTreeType<'t>,
35075    ) -> Result<()> {
35076        let context = function_name!();
35077        trace!("{}", self.trace_item_stack(context));
35078        let description_group_group = pop_item!(
35079            self,
35080            description_group_group,
35081            DescriptionGroupGroup,
35082            context
35083        );
35084        let description_group_list =
35085            pop_and_reverse_item!(self, description_group_list, DescriptionGroupList, context);
35086        let description_group_built = DescriptionGroup {
35087            description_group_list,
35088            description_group_group: Box::new(description_group_group),
35089        };
35090        // Calling user action here
35091        self.user_grammar
35092            .description_group(&description_group_built)?;
35093        self.push(ASTType::DescriptionGroup(description_group_built), context);
35094        Ok(())
35095    }
35096
35097    /// Semantic action for production 967:
35098    ///
35099    /// `DescriptionGroupGroup: LBrace DescriptionGroupGroupList /* Vec */ RBrace;`
35100    ///
35101    #[parol_runtime::function_name::named]
35102    fn description_group_group_0(
35103        &mut self,
35104        _l_brace: &ParseTreeType<'t>,
35105        _description_group_group_list: &ParseTreeType<'t>,
35106        _r_brace: &ParseTreeType<'t>,
35107    ) -> Result<()> {
35108        let context = function_name!();
35109        trace!("{}", self.trace_item_stack(context));
35110        let r_brace = pop_item!(self, r_brace, RBrace, context);
35111        let description_group_group_list = pop_and_reverse_item!(
35112            self,
35113            description_group_group_list,
35114            DescriptionGroupGroupList,
35115            context
35116        );
35117        let l_brace = pop_item!(self, l_brace, LBrace, context);
35118        let description_group_group_0_built =
35119            DescriptionGroupGroupLBraceDescriptionGroupGroupListRBrace {
35120                l_brace: Box::new(l_brace),
35121                description_group_group_list,
35122                r_brace: Box::new(r_brace),
35123            };
35124        let description_group_group_0_built =
35125            DescriptionGroupGroup::LBraceDescriptionGroupGroupListRBrace(
35126                description_group_group_0_built,
35127            );
35128        self.push(
35129            ASTType::DescriptionGroupGroup(description_group_group_0_built),
35130            context,
35131        );
35132        Ok(())
35133    }
35134
35135    /// Semantic action for production 968:
35136    ///
35137    /// `DescriptionGroupGroupList /* Vec<T>::Push */: DescriptionGroup DescriptionGroupGroupList;`
35138    ///
35139    #[parol_runtime::function_name::named]
35140    fn description_group_group_list_0(
35141        &mut self,
35142        _description_group: &ParseTreeType<'t>,
35143        _description_group_group_list: &ParseTreeType<'t>,
35144    ) -> Result<()> {
35145        let context = function_name!();
35146        trace!("{}", self.trace_item_stack(context));
35147        let mut description_group_group_list = pop_item!(
35148            self,
35149            description_group_group_list,
35150            DescriptionGroupGroupList,
35151            context
35152        );
35153        let description_group = pop_item!(self, description_group, DescriptionGroup, context);
35154        let description_group_group_list_0_built = DescriptionGroupGroupList {
35155            description_group: Box::new(description_group),
35156        };
35157        // Add an element to the vector
35158        description_group_group_list.push(description_group_group_list_0_built);
35159        self.push(
35160            ASTType::DescriptionGroupGroupList(description_group_group_list),
35161            context,
35162        );
35163        Ok(())
35164    }
35165
35166    /// Semantic action for production 969:
35167    ///
35168    /// `DescriptionGroupGroupList /* Vec<T>::New */: ;`
35169    ///
35170    #[parol_runtime::function_name::named]
35171    fn description_group_group_list_1(&mut self) -> Result<()> {
35172        let context = function_name!();
35173        trace!("{}", self.trace_item_stack(context));
35174        let description_group_group_list_1_built = Vec::new();
35175        self.push(
35176            ASTType::DescriptionGroupGroupList(description_group_group_list_1_built),
35177            context,
35178        );
35179        Ok(())
35180    }
35181
35182    /// Semantic action for production 970:
35183    ///
35184    /// `DescriptionGroupGroup: DescriptionItem;`
35185    ///
35186    #[parol_runtime::function_name::named]
35187    fn description_group_group_1(&mut self, _description_item: &ParseTreeType<'t>) -> Result<()> {
35188        let context = function_name!();
35189        trace!("{}", self.trace_item_stack(context));
35190        let description_item = pop_item!(self, description_item, DescriptionItem, context);
35191        let description_group_group_1_built = DescriptionGroupGroupDescriptionItem {
35192            description_item: Box::new(description_item),
35193        };
35194        let description_group_group_1_built =
35195            DescriptionGroupGroup::DescriptionItem(description_group_group_1_built);
35196        self.push(
35197            ASTType::DescriptionGroupGroup(description_group_group_1_built),
35198            context,
35199        );
35200        Ok(())
35201    }
35202
35203    /// Semantic action for production 971:
35204    ///
35205    /// `DescriptionGroupList /* Vec<T>::Push */: Attribute DescriptionGroupList;`
35206    ///
35207    #[parol_runtime::function_name::named]
35208    fn description_group_list_0(
35209        &mut self,
35210        _attribute: &ParseTreeType<'t>,
35211        _description_group_list: &ParseTreeType<'t>,
35212    ) -> Result<()> {
35213        let context = function_name!();
35214        trace!("{}", self.trace_item_stack(context));
35215        let mut description_group_list =
35216            pop_item!(self, description_group_list, DescriptionGroupList, context);
35217        let attribute = pop_item!(self, attribute, Attribute, context);
35218        let description_group_list_0_built = DescriptionGroupList {
35219            attribute: Box::new(attribute),
35220        };
35221        // Add an element to the vector
35222        description_group_list.push(description_group_list_0_built);
35223        self.push(
35224            ASTType::DescriptionGroupList(description_group_list),
35225            context,
35226        );
35227        Ok(())
35228    }
35229
35230    /// Semantic action for production 972:
35231    ///
35232    /// `DescriptionGroupList /* Vec<T>::New */: ;`
35233    ///
35234    #[parol_runtime::function_name::named]
35235    fn description_group_list_1(&mut self) -> Result<()> {
35236        let context = function_name!();
35237        trace!("{}", self.trace_item_stack(context));
35238        let description_group_list_1_built = Vec::new();
35239        self.push(
35240            ASTType::DescriptionGroupList(description_group_list_1_built),
35241            context,
35242        );
35243        Ok(())
35244    }
35245
35246    /// Semantic action for production 973:
35247    ///
35248    /// `DescriptionItem: DescriptionItemOpt /* Option */ PublicDescriptionItem;`
35249    ///
35250    #[parol_runtime::function_name::named]
35251    fn description_item_0(
35252        &mut self,
35253        _description_item_opt: &ParseTreeType<'t>,
35254        _public_description_item: &ParseTreeType<'t>,
35255    ) -> Result<()> {
35256        let context = function_name!();
35257        trace!("{}", self.trace_item_stack(context));
35258        let public_description_item = pop_item!(
35259            self,
35260            public_description_item,
35261            PublicDescriptionItem,
35262            context
35263        );
35264        let description_item_opt =
35265            pop_item!(self, description_item_opt, DescriptionItemOpt, context);
35266        let description_item_0_built = DescriptionItemDescriptionItemOptPublicDescriptionItem {
35267            description_item_opt,
35268            public_description_item: Box::new(public_description_item),
35269        };
35270        let description_item_0_built =
35271            DescriptionItem::DescriptionItemOptPublicDescriptionItem(description_item_0_built);
35272        // Calling user action here
35273        self.user_grammar
35274            .description_item(&description_item_0_built)?;
35275        self.push(ASTType::DescriptionItem(description_item_0_built), context);
35276        Ok(())
35277    }
35278
35279    /// Semantic action for production 974:
35280    ///
35281    /// `DescriptionItem: ImportDeclaration;`
35282    ///
35283    #[parol_runtime::function_name::named]
35284    fn description_item_1(&mut self, _import_declaration: &ParseTreeType<'t>) -> Result<()> {
35285        let context = function_name!();
35286        trace!("{}", self.trace_item_stack(context));
35287        let import_declaration = pop_item!(self, import_declaration, ImportDeclaration, context);
35288        let description_item_1_built = DescriptionItemImportDeclaration {
35289            import_declaration: Box::new(import_declaration),
35290        };
35291        let description_item_1_built = DescriptionItem::ImportDeclaration(description_item_1_built);
35292        // Calling user action here
35293        self.user_grammar
35294            .description_item(&description_item_1_built)?;
35295        self.push(ASTType::DescriptionItem(description_item_1_built), context);
35296        Ok(())
35297    }
35298
35299    /// Semantic action for production 975:
35300    ///
35301    /// `DescriptionItem: EmbedDeclaration;`
35302    ///
35303    #[parol_runtime::function_name::named]
35304    fn description_item_2(&mut self, _embed_declaration: &ParseTreeType<'t>) -> Result<()> {
35305        let context = function_name!();
35306        trace!("{}", self.trace_item_stack(context));
35307        let embed_declaration = pop_item!(self, embed_declaration, EmbedDeclaration, context);
35308        let description_item_2_built = DescriptionItemEmbedDeclaration {
35309            embed_declaration: Box::new(embed_declaration),
35310        };
35311        let description_item_2_built = DescriptionItem::EmbedDeclaration(description_item_2_built);
35312        // Calling user action here
35313        self.user_grammar
35314            .description_item(&description_item_2_built)?;
35315        self.push(ASTType::DescriptionItem(description_item_2_built), context);
35316        Ok(())
35317    }
35318
35319    /// Semantic action for production 976:
35320    ///
35321    /// `DescriptionItem: IncludeDeclaration;`
35322    ///
35323    #[parol_runtime::function_name::named]
35324    fn description_item_3(&mut self, _include_declaration: &ParseTreeType<'t>) -> Result<()> {
35325        let context = function_name!();
35326        trace!("{}", self.trace_item_stack(context));
35327        let include_declaration = pop_item!(self, include_declaration, IncludeDeclaration, context);
35328        let description_item_3_built = DescriptionItemIncludeDeclaration {
35329            include_declaration: Box::new(include_declaration),
35330        };
35331        let description_item_3_built =
35332            DescriptionItem::IncludeDeclaration(description_item_3_built);
35333        // Calling user action here
35334        self.user_grammar
35335            .description_item(&description_item_3_built)?;
35336        self.push(ASTType::DescriptionItem(description_item_3_built), context);
35337        Ok(())
35338    }
35339
35340    /// Semantic action for production 977:
35341    ///
35342    /// `DescriptionItemOpt /* Option<T>::Some */: Pub;`
35343    ///
35344    #[parol_runtime::function_name::named]
35345    fn description_item_opt_0(&mut self, _pub: &ParseTreeType<'t>) -> Result<()> {
35346        let context = function_name!();
35347        trace!("{}", self.trace_item_stack(context));
35348        let r#pub = pop_item!(self, r#pub, Pub, context);
35349        let description_item_opt_0_built = DescriptionItemOpt {
35350            r#pub: Box::new(r#pub),
35351        };
35352        self.push(
35353            ASTType::DescriptionItemOpt(Some(description_item_opt_0_built)),
35354            context,
35355        );
35356        Ok(())
35357    }
35358
35359    /// Semantic action for production 978:
35360    ///
35361    /// `DescriptionItemOpt /* Option<T>::None */: ;`
35362    ///
35363    #[parol_runtime::function_name::named]
35364    fn description_item_opt_1(&mut self) -> Result<()> {
35365        let context = function_name!();
35366        trace!("{}", self.trace_item_stack(context));
35367        self.push(ASTType::DescriptionItemOpt(None), context);
35368        Ok(())
35369    }
35370
35371    /// Semantic action for production 979:
35372    ///
35373    /// `PublicDescriptionItem: ModuleDeclaration;`
35374    ///
35375    #[parol_runtime::function_name::named]
35376    fn public_description_item_0(&mut self, _module_declaration: &ParseTreeType<'t>) -> Result<()> {
35377        let context = function_name!();
35378        trace!("{}", self.trace_item_stack(context));
35379        let module_declaration = pop_item!(self, module_declaration, ModuleDeclaration, context);
35380        let public_description_item_0_built = PublicDescriptionItemModuleDeclaration {
35381            module_declaration: Box::new(module_declaration),
35382        };
35383        let public_description_item_0_built =
35384            PublicDescriptionItem::ModuleDeclaration(public_description_item_0_built);
35385        // Calling user action here
35386        self.user_grammar
35387            .public_description_item(&public_description_item_0_built)?;
35388        self.push(
35389            ASTType::PublicDescriptionItem(public_description_item_0_built),
35390            context,
35391        );
35392        Ok(())
35393    }
35394
35395    /// Semantic action for production 980:
35396    ///
35397    /// `PublicDescriptionItem: InterfaceDeclaration;`
35398    ///
35399    #[parol_runtime::function_name::named]
35400    fn public_description_item_1(
35401        &mut self,
35402        _interface_declaration: &ParseTreeType<'t>,
35403    ) -> Result<()> {
35404        let context = function_name!();
35405        trace!("{}", self.trace_item_stack(context));
35406        let interface_declaration =
35407            pop_item!(self, interface_declaration, InterfaceDeclaration, context);
35408        let public_description_item_1_built = PublicDescriptionItemInterfaceDeclaration {
35409            interface_declaration: Box::new(interface_declaration),
35410        };
35411        let public_description_item_1_built =
35412            PublicDescriptionItem::InterfaceDeclaration(public_description_item_1_built);
35413        // Calling user action here
35414        self.user_grammar
35415            .public_description_item(&public_description_item_1_built)?;
35416        self.push(
35417            ASTType::PublicDescriptionItem(public_description_item_1_built),
35418            context,
35419        );
35420        Ok(())
35421    }
35422
35423    /// Semantic action for production 981:
35424    ///
35425    /// `PublicDescriptionItem: PackageDeclaration;`
35426    ///
35427    #[parol_runtime::function_name::named]
35428    fn public_description_item_2(
35429        &mut self,
35430        _package_declaration: &ParseTreeType<'t>,
35431    ) -> Result<()> {
35432        let context = function_name!();
35433        trace!("{}", self.trace_item_stack(context));
35434        let package_declaration = pop_item!(self, package_declaration, PackageDeclaration, context);
35435        let public_description_item_2_built = PublicDescriptionItemPackageDeclaration {
35436            package_declaration: Box::new(package_declaration),
35437        };
35438        let public_description_item_2_built =
35439            PublicDescriptionItem::PackageDeclaration(public_description_item_2_built);
35440        // Calling user action here
35441        self.user_grammar
35442            .public_description_item(&public_description_item_2_built)?;
35443        self.push(
35444            ASTType::PublicDescriptionItem(public_description_item_2_built),
35445            context,
35446        );
35447        Ok(())
35448    }
35449
35450    /// Semantic action for production 982:
35451    ///
35452    /// `PublicDescriptionItem: ProtoModuleDeclaration;`
35453    ///
35454    #[parol_runtime::function_name::named]
35455    fn public_description_item_3(
35456        &mut self,
35457        _proto_module_declaration: &ParseTreeType<'t>,
35458    ) -> Result<()> {
35459        let context = function_name!();
35460        trace!("{}", self.trace_item_stack(context));
35461        let proto_module_declaration = pop_item!(
35462            self,
35463            proto_module_declaration,
35464            ProtoModuleDeclaration,
35465            context
35466        );
35467        let public_description_item_3_built = PublicDescriptionItemProtoModuleDeclaration {
35468            proto_module_declaration: Box::new(proto_module_declaration),
35469        };
35470        let public_description_item_3_built =
35471            PublicDescriptionItem::ProtoModuleDeclaration(public_description_item_3_built);
35472        // Calling user action here
35473        self.user_grammar
35474            .public_description_item(&public_description_item_3_built)?;
35475        self.push(
35476            ASTType::PublicDescriptionItem(public_description_item_3_built),
35477            context,
35478        );
35479        Ok(())
35480    }
35481
35482    /// Semantic action for production 983:
35483    ///
35484    /// `Veryl: Start VerylList /* Vec */;`
35485    ///
35486    #[parol_runtime::function_name::named]
35487    fn veryl(&mut self, _start: &ParseTreeType<'t>, _veryl_list: &ParseTreeType<'t>) -> Result<()> {
35488        let context = function_name!();
35489        trace!("{}", self.trace_item_stack(context));
35490        let veryl_list = pop_and_reverse_item!(self, veryl_list, VerylList, context);
35491        let start = pop_item!(self, start, Start, context);
35492        let veryl_built = Veryl {
35493            start: Box::new(start),
35494            veryl_list,
35495        };
35496        // Calling user action here
35497        self.user_grammar.veryl(&veryl_built)?;
35498        self.push(ASTType::Veryl(veryl_built), context);
35499        Ok(())
35500    }
35501
35502    /// Semantic action for production 984:
35503    ///
35504    /// `VerylList /* Vec<T>::Push */: DescriptionGroup VerylList;`
35505    ///
35506    #[parol_runtime::function_name::named]
35507    fn veryl_list_0(
35508        &mut self,
35509        _description_group: &ParseTreeType<'t>,
35510        _veryl_list: &ParseTreeType<'t>,
35511    ) -> Result<()> {
35512        let context = function_name!();
35513        trace!("{}", self.trace_item_stack(context));
35514        let mut veryl_list = pop_item!(self, veryl_list, VerylList, context);
35515        let description_group = pop_item!(self, description_group, DescriptionGroup, context);
35516        let veryl_list_0_built = VerylList {
35517            description_group: Box::new(description_group),
35518        };
35519        // Add an element to the vector
35520        veryl_list.push(veryl_list_0_built);
35521        self.push(ASTType::VerylList(veryl_list), context);
35522        Ok(())
35523    }
35524
35525    /// Semantic action for production 985:
35526    ///
35527    /// `VerylList /* Vec<T>::New */: ;`
35528    ///
35529    #[parol_runtime::function_name::named]
35530    fn veryl_list_1(&mut self) -> Result<()> {
35531        let context = function_name!();
35532        trace!("{}", self.trace_item_stack(context));
35533        let veryl_list_1_built = Vec::new();
35534        self.push(ASTType::VerylList(veryl_list_1_built), context);
35535        Ok(())
35536    }
35537}
35538
35539impl<'t> UserActionsTrait<'t> for VerylGrammarAuto<'t, '_> {
35540    ///
35541    /// This function is implemented automatically for the user's item VerylGrammar.
35542    ///
35543    fn call_semantic_action_for_production_number(
35544        &mut self,
35545        prod_num: usize,
35546        children: &[ParseTreeType<'t>],
35547    ) -> Result<()> {
35548        match prod_num {
35549            0 => self.comments_term(&children[0]),
35550            1 => self.string_literal_term(&children[0]),
35551            2 => self.exponent_term(&children[0]),
35552            3 => self.fixed_point_term(&children[0]),
35553            4 => self.based_term(&children[0]),
35554            5 => self.all_bit_term(&children[0]),
35555            6 => self.base_less_term(&children[0]),
35556            7 => self.minus_colon_term(&children[0]),
35557            8 => self.minus_g_t_term(&children[0]),
35558            9 => self.plus_colon_term(&children[0]),
35559            10 => self.assignment_operator_term(&children[0]),
35560            11 => self.operator11_term(&children[0]),
35561            12 => self.operator10_term(&children[0]),
35562            13 => self.operator09_term(&children[0]),
35563            14 => self.operator08_term(&children[0]),
35564            15 => self.operator07_term(&children[0]),
35565            16 => self.operator06_term(&children[0]),
35566            17 => self.operator02_term(&children[0]),
35567            18 => self.operator01_term(&children[0]),
35568            19 => self.operator05_term(&children[0]),
35569            20 => self.operator04_term(&children[0]),
35570            21 => self.operator03_term(&children[0]),
35571            22 => self.unary_operator_term(&children[0]),
35572            23 => self.back_quote_term(&children[0]),
35573            24 => self.colon_colon_l_angle_term(&children[0]),
35574            25 => self.colon_colon_term(&children[0]),
35575            26 => self.colon_term(&children[0]),
35576            27 => self.comma_term(&children[0]),
35577            28 => self.dot_dot_equ_term(&children[0]),
35578            29 => self.dot_dot_term(&children[0]),
35579            30 => self.dot_term(&children[0]),
35580            31 => self.equ_term(&children[0]),
35581            32 => self.hash_term(&children[0]),
35582            33 => self.l_angle_term(&children[0]),
35583            34 => self.quote_l_brace_term(&children[0]),
35584            35 => self.l_brace_term(&children[0]),
35585            36 => self.l_bracket_term(&children[0]),
35586            37 => self.l_paren_term(&children[0]),
35587            38 => self.r_angle_term(&children[0]),
35588            39 => self.r_brace_term(&children[0]),
35589            40 => self.r_bracket_term(&children[0]),
35590            41 => self.r_paren_term(&children[0]),
35591            42 => self.semicolon_term(&children[0]),
35592            43 => self.star_term(&children[0]),
35593            44 => self.always_comb_term(&children[0]),
35594            45 => self.always_ff_term(&children[0]),
35595            46 => self.assign_term(&children[0]),
35596            47 => self.as_term(&children[0]),
35597            48 => self.bit_term(&children[0]),
35598            49 => self.case_term(&children[0]),
35599            50 => self.clock_term(&children[0]),
35600            51 => self.clock_posedge_term(&children[0]),
35601            52 => self.clock_negedge_term(&children[0]),
35602            53 => self.const_term(&children[0]),
35603            54 => self.converse_term(&children[0]),
35604            55 => self.default_term(&children[0]),
35605            56 => self.else_term(&children[0]),
35606            57 => self.embed_term(&children[0]),
35607            58 => self.enum_term(&children[0]),
35608            59 => self.export_term(&children[0]),
35609            60 => self.f32_term(&children[0]),
35610            61 => self.f64_term(&children[0]),
35611            62 => self.final_term(&children[0]),
35612            63 => self.for_term(&children[0]),
35613            64 => self.function_term(&children[0]),
35614            65 => self.i32_term(&children[0]),
35615            66 => self.i64_term(&children[0]),
35616            67 => self.if_reset_term(&children[0]),
35617            68 => self.if_term(&children[0]),
35618            69 => self.import_term(&children[0]),
35619            70 => self.include_term(&children[0]),
35620            71 => self.initial_term(&children[0]),
35621            72 => self.inout_term(&children[0]),
35622            73 => self.input_term(&children[0]),
35623            74 => self.inside_term(&children[0]),
35624            75 => self.inst_term(&children[0]),
35625            76 => self.interface_term(&children[0]),
35626            77 => self.in_term(&children[0]),
35627            78 => self.let_term(&children[0]),
35628            79 => self.logic_term(&children[0]),
35629            80 => self.lsb_term(&children[0]),
35630            81 => self.modport_term(&children[0]),
35631            82 => self.module_term(&children[0]),
35632            83 => self.msb_term(&children[0]),
35633            84 => self.output_term(&children[0]),
35634            85 => self.outside_term(&children[0]),
35635            86 => self.package_term(&children[0]),
35636            87 => self.param_term(&children[0]),
35637            88 => self.proto_term(&children[0]),
35638            89 => self.pub_term(&children[0]),
35639            90 => self.ref_term(&children[0]),
35640            91 => self.repeat_term(&children[0]),
35641            92 => self.reset_term(&children[0]),
35642            93 => self.reset_async_high_term(&children[0]),
35643            94 => self.reset_async_low_term(&children[0]),
35644            95 => self.reset_sync_high_term(&children[0]),
35645            96 => self.reset_sync_low_term(&children[0]),
35646            97 => self.return_term(&children[0]),
35647            98 => self.break_term(&children[0]),
35648            99 => self.signed_term(&children[0]),
35649            100 => self.step_term(&children[0]),
35650            101 => self.string_term(&children[0]),
35651            102 => self.struct_term(&children[0]),
35652            103 => self.switch_term(&children[0]),
35653            104 => self.tri_term(&children[0]),
35654            105 => self.type_term(&children[0]),
35655            106 => self.u32_term(&children[0]),
35656            107 => self.u64_term(&children[0]),
35657            108 => self.union_term(&children[0]),
35658            109 => self.unsafe_term(&children[0]),
35659            110 => self.var_term(&children[0]),
35660            111 => self.dollar_identifier_term(&children[0]),
35661            112 => self.identifier_term(&children[0]),
35662            113 => self.any_term(&children[0]),
35663            114 => self.comments(&children[0]),
35664            115 => self.comments_opt_0(&children[0]),
35665            116 => self.comments_opt_1(),
35666            117 => self.start_token(&children[0]),
35667            118 => self.string_literal_token(&children[0], &children[1]),
35668            119 => self.exponent_token(&children[0], &children[1]),
35669            120 => self.fixed_point_token(&children[0], &children[1]),
35670            121 => self.based_token(&children[0], &children[1]),
35671            122 => self.base_less_token(&children[0], &children[1]),
35672            123 => self.all_bit_token(&children[0], &children[1]),
35673            124 => self.assignment_operator_token(&children[0], &children[1]),
35674            125 => self.operator01_token(&children[0], &children[1]),
35675            126 => self.operator02_token(&children[0], &children[1]),
35676            127 => self.operator03_token(&children[0], &children[1]),
35677            128 => self.operator04_token(&children[0], &children[1]),
35678            129 => self.operator05_token(&children[0], &children[1]),
35679            130 => self.operator06_token(&children[0], &children[1]),
35680            131 => self.operator07_token(&children[0], &children[1]),
35681            132 => self.operator08_token(&children[0], &children[1]),
35682            133 => self.operator09_token(&children[0], &children[1]),
35683            134 => self.operator10_token(&children[0], &children[1]),
35684            135 => self.operator11_token(&children[0], &children[1]),
35685            136 => self.unary_operator_token(&children[0], &children[1]),
35686            137 => self.back_quote_token(&children[0], &children[1]),
35687            138 => self.colon_token(&children[0], &children[1]),
35688            139 => self.colon_colon_l_angle_token(&children[0], &children[1]),
35689            140 => self.colon_colon_token(&children[0], &children[1]),
35690            141 => self.comma_token(&children[0], &children[1]),
35691            142 => self.dot_dot_token(&children[0], &children[1]),
35692            143 => self.dot_dot_equ_token(&children[0], &children[1]),
35693            144 => self.dot_token(&children[0], &children[1]),
35694            145 => self.equ_token(&children[0], &children[1]),
35695            146 => self.hash_token(&children[0], &children[1]),
35696            147 => self.quote_l_brace_token(&children[0], &children[1]),
35697            148 => self.l_angle_token(&children[0], &children[1]),
35698            149 => self.l_brace_token(&children[0], &children[1]),
35699            150 => self.l_bracket_token(&children[0], &children[1]),
35700            151 => self.l_paren_token(&children[0], &children[1]),
35701            152 => self.minus_colon_token(&children[0], &children[1]),
35702            153 => self.minus_g_t_token(&children[0], &children[1]),
35703            154 => self.plus_colon_token(&children[0], &children[1]),
35704            155 => self.r_angle_token(&children[0], &children[1]),
35705            156 => self.r_brace_token(&children[0], &children[1]),
35706            157 => self.r_bracket_token(&children[0], &children[1]),
35707            158 => self.r_paren_token(&children[0], &children[1]),
35708            159 => self.semicolon_token(&children[0], &children[1]),
35709            160 => self.star_token(&children[0], &children[1]),
35710            161 => self.always_comb_token(&children[0], &children[1]),
35711            162 => self.always_ff_token(&children[0], &children[1]),
35712            163 => self.as_token(&children[0], &children[1]),
35713            164 => self.assign_token(&children[0], &children[1]),
35714            165 => self.bit_token(&children[0], &children[1]),
35715            166 => self.case_token(&children[0], &children[1]),
35716            167 => self.clock_token(&children[0], &children[1]),
35717            168 => self.clock_posedge_token(&children[0], &children[1]),
35718            169 => self.clock_negedge_token(&children[0], &children[1]),
35719            170 => self.const_token(&children[0], &children[1]),
35720            171 => self.converse_token(&children[0], &children[1]),
35721            172 => self.default_token(&children[0], &children[1]),
35722            173 => self.else_token(&children[0], &children[1]),
35723            174 => self.embed_token(&children[0], &children[1]),
35724            175 => self.enum_token(&children[0], &children[1]),
35725            176 => self.export_token(&children[0], &children[1]),
35726            177 => self.f32_token(&children[0], &children[1]),
35727            178 => self.f64_token(&children[0], &children[1]),
35728            179 => self.final_token(&children[0], &children[1]),
35729            180 => self.for_token(&children[0], &children[1]),
35730            181 => self.function_token(&children[0], &children[1]),
35731            182 => self.i32_token(&children[0], &children[1]),
35732            183 => self.i64_token(&children[0], &children[1]),
35733            184 => self.if_reset_token(&children[0], &children[1]),
35734            185 => self.if_token(&children[0], &children[1]),
35735            186 => self.import_token(&children[0], &children[1]),
35736            187 => self.include_token(&children[0], &children[1]),
35737            188 => self.initial_token(&children[0], &children[1]),
35738            189 => self.inout_token(&children[0], &children[1]),
35739            190 => self.input_token(&children[0], &children[1]),
35740            191 => self.inside_token(&children[0], &children[1]),
35741            192 => self.inst_token(&children[0], &children[1]),
35742            193 => self.interface_token(&children[0], &children[1]),
35743            194 => self.in_token(&children[0], &children[1]),
35744            195 => self.let_token(&children[0], &children[1]),
35745            196 => self.logic_token(&children[0], &children[1]),
35746            197 => self.lsb_token(&children[0], &children[1]),
35747            198 => self.modport_token(&children[0], &children[1]),
35748            199 => self.module_token(&children[0], &children[1]),
35749            200 => self.msb_token(&children[0], &children[1]),
35750            201 => self.output_token(&children[0], &children[1]),
35751            202 => self.outside_token(&children[0], &children[1]),
35752            203 => self.package_token(&children[0], &children[1]),
35753            204 => self.param_token(&children[0], &children[1]),
35754            205 => self.proto_token(&children[0], &children[1]),
35755            206 => self.pub_token(&children[0], &children[1]),
35756            207 => self.ref_token(&children[0], &children[1]),
35757            208 => self.repeat_token(&children[0], &children[1]),
35758            209 => self.reset_token(&children[0], &children[1]),
35759            210 => self.reset_async_high_token(&children[0], &children[1]),
35760            211 => self.reset_async_low_token(&children[0], &children[1]),
35761            212 => self.reset_sync_high_token(&children[0], &children[1]),
35762            213 => self.reset_sync_low_token(&children[0], &children[1]),
35763            214 => self.return_token(&children[0], &children[1]),
35764            215 => self.break_token(&children[0], &children[1]),
35765            216 => self.signed_token(&children[0], &children[1]),
35766            217 => self.step_token(&children[0], &children[1]),
35767            218 => self.string_token(&children[0], &children[1]),
35768            219 => self.struct_token(&children[0], &children[1]),
35769            220 => self.switch_token(&children[0], &children[1]),
35770            221 => self.tri_token(&children[0], &children[1]),
35771            222 => self.type_token(&children[0], &children[1]),
35772            223 => self.u32_token(&children[0], &children[1]),
35773            224 => self.u64_token(&children[0], &children[1]),
35774            225 => self.union_token(&children[0], &children[1]),
35775            226 => self.unsafe_token(&children[0], &children[1]),
35776            227 => self.var_token(&children[0], &children[1]),
35777            228 => self.dollar_identifier_token(&children[0], &children[1]),
35778            229 => self.identifier_token(&children[0], &children[1]),
35779            230 => self.start(&children[0]),
35780            231 => self.string_literal(&children[0]),
35781            232 => self.exponent(&children[0]),
35782            233 => self.fixed_point(&children[0]),
35783            234 => self.based(&children[0]),
35784            235 => self.base_less(&children[0]),
35785            236 => self.all_bit(&children[0]),
35786            237 => self.assignment_operator(&children[0]),
35787            238 => self.operator01(&children[0]),
35788            239 => self.operator02(&children[0]),
35789            240 => self.operator03(&children[0]),
35790            241 => self.operator04(&children[0]),
35791            242 => self.operator05(&children[0]),
35792            243 => self.operator06(&children[0]),
35793            244 => self.operator07(&children[0]),
35794            245 => self.operator08(&children[0]),
35795            246 => self.operator09(&children[0]),
35796            247 => self.operator10(&children[0]),
35797            248 => self.operator11(&children[0]),
35798            249 => self.unary_operator(&children[0]),
35799            250 => self.back_quote(&children[0]),
35800            251 => self.colon(&children[0]),
35801            252 => self.colon_colon_l_angle(&children[0]),
35802            253 => self.colon_colon(&children[0]),
35803            254 => self.comma(&children[0]),
35804            255 => self.dot_dot(&children[0]),
35805            256 => self.dot_dot_equ(&children[0]),
35806            257 => self.dot(&children[0]),
35807            258 => self.equ(&children[0]),
35808            259 => self.hash(&children[0]),
35809            260 => self.quote_l_brace(&children[0]),
35810            261 => self.l_angle(&children[0]),
35811            262 => self.l_brace(&children[0]),
35812            263 => self.l_bracket(&children[0]),
35813            264 => self.l_paren(&children[0]),
35814            265 => self.minus_colon(&children[0]),
35815            266 => self.minus_g_t(&children[0]),
35816            267 => self.plus_colon(&children[0]),
35817            268 => self.r_angle(&children[0]),
35818            269 => self.r_brace(&children[0]),
35819            270 => self.r_bracket(&children[0]),
35820            271 => self.r_paren(&children[0]),
35821            272 => self.semicolon(&children[0]),
35822            273 => self.star(&children[0]),
35823            274 => self.always_comb(&children[0]),
35824            275 => self.always_ff(&children[0]),
35825            276 => self.r#as(&children[0]),
35826            277 => self.assign(&children[0]),
35827            278 => self.bit(&children[0]),
35828            279 => self.r#break(&children[0]),
35829            280 => self.case(&children[0]),
35830            281 => self.clock(&children[0]),
35831            282 => self.clock_posedge(&children[0]),
35832            283 => self.clock_negedge(&children[0]),
35833            284 => self.r#const(&children[0]),
35834            285 => self.converse(&children[0]),
35835            286 => self.defaul(&children[0]),
35836            287 => self.r#else(&children[0]),
35837            288 => self.embed(&children[0]),
35838            289 => self.r#enum(&children[0]),
35839            290 => self.export(&children[0]),
35840            291 => self.f32(&children[0]),
35841            292 => self.f64(&children[0]),
35842            293 => self.r#final(&children[0]),
35843            294 => self.r#for(&children[0]),
35844            295 => self.function(&children[0]),
35845            296 => self.i32(&children[0]),
35846            297 => self.i64(&children[0]),
35847            298 => self.r#if(&children[0]),
35848            299 => self.if_reset(&children[0]),
35849            300 => self.import(&children[0]),
35850            301 => self.r#in(&children[0]),
35851            302 => self.include(&children[0]),
35852            303 => self.initial(&children[0]),
35853            304 => self.inout(&children[0]),
35854            305 => self.input(&children[0]),
35855            306 => self.inside(&children[0]),
35856            307 => self.inst(&children[0]),
35857            308 => self.interface(&children[0]),
35858            309 => self.r#let(&children[0]),
35859            310 => self.logic(&children[0]),
35860            311 => self.lsb(&children[0]),
35861            312 => self.modport(&children[0]),
35862            313 => self.module(&children[0]),
35863            314 => self.msb(&children[0]),
35864            315 => self.output(&children[0]),
35865            316 => self.outside(&children[0]),
35866            317 => self.package(&children[0]),
35867            318 => self.param(&children[0]),
35868            319 => self.proto(&children[0]),
35869            320 => self.r#pub(&children[0]),
35870            321 => self.r#ref(&children[0]),
35871            322 => self.repeat(&children[0]),
35872            323 => self.reset(&children[0]),
35873            324 => self.reset_async_high(&children[0]),
35874            325 => self.reset_async_low(&children[0]),
35875            326 => self.reset_sync_high(&children[0]),
35876            327 => self.reset_sync_low(&children[0]),
35877            328 => self.r#return(&children[0]),
35878            329 => self.signed(&children[0]),
35879            330 => self.step(&children[0]),
35880            331 => self.strin(&children[0]),
35881            332 => self.r#struct(&children[0]),
35882            333 => self.switch(&children[0]),
35883            334 => self.tri(&children[0]),
35884            335 => self.r#type(&children[0]),
35885            336 => self.u32(&children[0]),
35886            337 => self.u64(&children[0]),
35887            338 => self.r#union(&children[0]),
35888            339 => self.r#unsafe(&children[0]),
35889            340 => self.var(&children[0]),
35890            341 => self.dollar_identifier(&children[0]),
35891            342 => self.identifier(&children[0]),
35892            343 => self.number_0(&children[0]),
35893            344 => self.number_1(&children[0]),
35894            345 => self.integral_number_0(&children[0]),
35895            346 => self.integral_number_1(&children[0]),
35896            347 => self.integral_number_2(&children[0]),
35897            348 => self.real_number_0(&children[0]),
35898            349 => self.real_number_1(&children[0]),
35899            350 => self.hierarchical_identifier(&children[0], &children[1], &children[2]),
35900            351 => self.hierarchical_identifier_list0_0(
35901                &children[0],
35902                &children[1],
35903                &children[2],
35904                &children[3],
35905            ),
35906            352 => self.hierarchical_identifier_list0_list_0(&children[0], &children[1]),
35907            353 => self.hierarchical_identifier_list0_list_1(),
35908            354 => self.hierarchical_identifier_list0_1(),
35909            355 => self.hierarchical_identifier_list_0(&children[0], &children[1]),
35910            356 => self.hierarchical_identifier_list_1(),
35911            357 => self.scoped_identifier(&children[0], &children[1]),
35912            358 => self.scoped_identifier_group_0(&children[0]),
35913            359 => self.scoped_identifier_group_1(&children[0], &children[1]),
35914            360 => self.scoped_identifier_list_0(
35915                &children[0],
35916                &children[1],
35917                &children[2],
35918                &children[3],
35919            ),
35920            361 => self.scoped_identifier_list_1(),
35921            362 => self.scoped_identifier_opt0_0(&children[0]),
35922            363 => self.scoped_identifier_opt0_1(),
35923            364 => self.scoped_identifier_opt_0(&children[0]),
35924            365 => self.scoped_identifier_opt_1(),
35925            366 => {
35926                self.expression_identifier(&children[0], &children[1], &children[2], &children[3])
35927            }
35928            367 => self.expression_identifier_list0_0(
35929                &children[0],
35930                &children[1],
35931                &children[2],
35932                &children[3],
35933            ),
35934            368 => self.expression_identifier_list0_list_0(&children[0], &children[1]),
35935            369 => self.expression_identifier_list0_list_1(),
35936            370 => self.expression_identifier_list0_1(),
35937            371 => self.expression_identifier_list_0(&children[0], &children[1]),
35938            372 => self.expression_identifier_list_1(),
35939            373 => self.expression_identifier_opt_0(&children[0]),
35940            374 => self.expression_identifier_opt_1(),
35941            375 => self.expression(&children[0], &children[1]),
35942            376 => self.expression_list_0(&children[0], &children[1], &children[2]),
35943            377 => self.expression_list_1(),
35944            378 => self.expression01(&children[0], &children[1]),
35945            379 => self.expression01_list_0(&children[0], &children[1], &children[2]),
35946            380 => self.expression01_list_1(),
35947            381 => self.expression02(&children[0], &children[1]),
35948            382 => self.expression02_list_0(&children[0], &children[1], &children[2]),
35949            383 => self.expression02_list_1(),
35950            384 => self.expression03(&children[0], &children[1]),
35951            385 => self.expression03_list_0(&children[0], &children[1], &children[2]),
35952            386 => self.expression03_list_1(),
35953            387 => self.expression04(&children[0], &children[1]),
35954            388 => self.expression04_list_0(&children[0], &children[1], &children[2]),
35955            389 => self.expression04_list_1(),
35956            390 => self.expression05(&children[0], &children[1]),
35957            391 => self.expression05_list_0(&children[0], &children[1], &children[2]),
35958            392 => self.expression05_list_1(),
35959            393 => self.expression06(&children[0], &children[1]),
35960            394 => self.expression06_list_0(&children[0], &children[1], &children[2]),
35961            395 => self.expression06_list_1(),
35962            396 => self.expression07(&children[0], &children[1]),
35963            397 => self.expression07_list_0(&children[0], &children[1], &children[2]),
35964            398 => self.expression07_list_1(),
35965            399 => self.expression08(&children[0], &children[1]),
35966            400 => self.expression08_list_0(&children[0], &children[1], &children[2]),
35967            401 => self.expression08_list_1(),
35968            402 => self.expression09(&children[0], &children[1]),
35969            403 => self.expression09_list_0(&children[0], &children[1], &children[2]),
35970            404 => self.expression09_list_group_0(&children[0]),
35971            405 => self.expression09_list_group_1(&children[0]),
35972            406 => self.expression09_list_1(),
35973            407 => self.expression10(&children[0], &children[1]),
35974            408 => self.expression10_list_0(&children[0], &children[1], &children[2]),
35975            409 => self.expression10_list_1(),
35976            410 => self.expression11(&children[0], &children[1]),
35977            411 => self.expression11_opt_0(&children[0], &children[1]),
35978            412 => self.expression11_opt_1(),
35979            413 => self.expression12(&children[0], &children[1]),
35980            414 => self.expression12_list_0(&children[0], &children[1]),
35981            415 => self.expression12_list_group_0(&children[0]),
35982            416 => self.expression12_list_group_1(&children[0]),
35983            417 => self.expression12_list_group_2(&children[0]),
35984            418 => self.expression12_list_group_3(&children[0]),
35985            419 => self.expression12_list_group_4(&children[0]),
35986            420 => self.expression12_list_1(),
35987            421 => self.factor_0(&children[0]),
35988            422 => self.factor_1(&children[0]),
35989            423 => self.factor_2(&children[0], &children[1], &children[2]),
35990            424 => self.factor_3(&children[0], &children[1], &children[2]),
35991            425 => self.factor_4(&children[0], &children[1], &children[2]),
35992            426 => self.factor_5(&children[0]),
35993            427 => self.factor_6(&children[0]),
35994            428 => self.factor_7(&children[0]),
35995            429 => self.factor_8(&children[0]),
35996            430 => self.factor_9(&children[0]),
35997            431 => self.factor_group_0(&children[0]),
35998            432 => self.factor_group_1(&children[0]),
35999            433 => self.factor_10(&children[0]),
36000            434 => self.factor_11(&children[0]),
36001            435 => self.factor_12(&children[0]),
36002            436 => self.factor_13(&children[0]),
36003            437 => self.identifier_factor(&children[0], &children[1]),
36004            438 => self.identifier_factor_opt_0(&children[0]),
36005            439 => self.identifier_factor_opt_1(),
36006            440 => self.factor_type_factor(&children[0], &children[1]),
36007            441 => self.factor_type_factor_list_0(&children[0], &children[1]),
36008            442 => self.factor_type_factor_list_1(),
36009            443 => self.function_call(&children[0], &children[1], &children[2]),
36010            444 => self.function_call_opt_0(&children[0]),
36011            445 => self.function_call_opt_1(),
36012            446 => self.argument_list(&children[0], &children[1], &children[2]),
36013            447 => self.argument_list_list_0(&children[0], &children[1], &children[2]),
36014            448 => self.argument_list_list_1(),
36015            449 => self.argument_list_opt_0(&children[0]),
36016            450 => self.argument_list_opt_1(),
36017            451 => self.argument_item(&children[0]),
36018            452 => self.concatenation_list(&children[0], &children[1], &children[2]),
36019            453 => self.concatenation_list_list_0(&children[0], &children[1], &children[2]),
36020            454 => self.concatenation_list_list_1(),
36021            455 => self.concatenation_list_opt_0(&children[0]),
36022            456 => self.concatenation_list_opt_1(),
36023            457 => self.concatenation_item(&children[0], &children[1]),
36024            458 => self.concatenation_item_opt_0(&children[0], &children[1]),
36025            459 => self.concatenation_item_opt_1(),
36026            460 => self.array_literal_list(&children[0], &children[1], &children[2]),
36027            461 => self.array_literal_list_list_0(&children[0], &children[1], &children[2]),
36028            462 => self.array_literal_list_list_1(),
36029            463 => self.array_literal_list_opt_0(&children[0]),
36030            464 => self.array_literal_list_opt_1(),
36031            465 => self.array_literal_item(&children[0]),
36032            466 => self.array_literal_item_group_0(&children[0], &children[1]),
36033            467 => self.array_literal_item_group_1(&children[0], &children[1], &children[2]),
36034            468 => self.array_literal_item_opt_0(&children[0], &children[1]),
36035            469 => self.array_literal_item_opt_1(),
36036            470 => self.if_expression(
36037                &children[0],
36038                &children[1],
36039                &children[2],
36040                &children[3],
36041                &children[4],
36042                &children[5],
36043                &children[6],
36044                &children[7],
36045                &children[8],
36046                &children[9],
36047            ),
36048            471 => self.if_expression_list_0(
36049                &children[0],
36050                &children[1],
36051                &children[2],
36052                &children[3],
36053                &children[4],
36054                &children[5],
36055                &children[6],
36056            ),
36057            472 => self.if_expression_list_1(),
36058            473 => self.case_expression(
36059                &children[0],
36060                &children[1],
36061                &children[2],
36062                &children[3],
36063                &children[4],
36064                &children[5],
36065                &children[6],
36066                &children[7],
36067                &children[8],
36068                &children[9],
36069                &children[10],
36070                &children[11],
36071                &children[12],
36072            ),
36073            474 => self.case_expression_list_0(
36074                &children[0],
36075                &children[1],
36076                &children[2],
36077                &children[3],
36078                &children[4],
36079            ),
36080            475 => self.case_expression_list_1(),
36081            476 => self.case_expression_opt_0(&children[0]),
36082            477 => self.case_expression_opt_1(),
36083            478 => self.switch_expression(
36084                &children[0],
36085                &children[1],
36086                &children[2],
36087                &children[3],
36088                &children[4],
36089                &children[5],
36090                &children[6],
36091                &children[7],
36092                &children[8],
36093                &children[9],
36094                &children[10],
36095                &children[11],
36096            ),
36097            479 => self.switch_expression_list_0(
36098                &children[0],
36099                &children[1],
36100                &children[2],
36101                &children[3],
36102                &children[4],
36103            ),
36104            480 => self.switch_expression_list_1(),
36105            481 => self.switch_expression_opt_0(&children[0]),
36106            482 => self.switch_expression_opt_1(),
36107            483 => self.type_expression(&children[0], &children[1], &children[2], &children[3]),
36108            484 => self.inside_expression(
36109                &children[0],
36110                &children[1],
36111                &children[2],
36112                &children[3],
36113                &children[4],
36114            ),
36115            485 => self.outside_expression(
36116                &children[0],
36117                &children[1],
36118                &children[2],
36119                &children[3],
36120                &children[4],
36121            ),
36122            486 => self.range_list(&children[0], &children[1], &children[2]),
36123            487 => self.range_list_list_0(&children[0], &children[1], &children[2]),
36124            488 => self.range_list_list_1(),
36125            489 => self.range_list_opt_0(&children[0]),
36126            490 => self.range_list_opt_1(),
36127            491 => self.range_item(&children[0]),
36128            492 => self.select(&children[0], &children[1], &children[2], &children[3]),
36129            493 => self.select_opt_0(&children[0], &children[1]),
36130            494 => self.select_opt_1(),
36131            495 => self.select_operator_0(&children[0]),
36132            496 => self.select_operator_1(&children[0]),
36133            497 => self.select_operator_2(&children[0]),
36134            498 => self.select_operator_3(&children[0]),
36135            499 => self.width(&children[0], &children[1], &children[2], &children[3]),
36136            500 => self.width_list_0(&children[0], &children[1], &children[2]),
36137            501 => self.width_list_1(),
36138            502 => self.array(&children[0], &children[1], &children[2], &children[3]),
36139            503 => self.array_list_0(&children[0], &children[1], &children[2]),
36140            504 => self.array_list_1(),
36141            505 => self.range(&children[0], &children[1]),
36142            506 => self.range_opt_0(&children[0], &children[1]),
36143            507 => self.range_opt_1(),
36144            508 => self.range_operator_0(&children[0]),
36145            509 => self.range_operator_1(&children[0]),
36146            510 => self.fixed_type_0(&children[0]),
36147            511 => self.fixed_type_1(&children[0]),
36148            512 => self.fixed_type_2(&children[0]),
36149            513 => self.fixed_type_3(&children[0]),
36150            514 => self.fixed_type_4(&children[0]),
36151            515 => self.fixed_type_5(&children[0]),
36152            516 => self.fixed_type_6(&children[0]),
36153            517 => self.variable_type_0(&children[0]),
36154            518 => self.variable_type_1(&children[0]),
36155            519 => self.variable_type_2(&children[0]),
36156            520 => self.variable_type_3(&children[0]),
36157            521 => self.variable_type_4(&children[0]),
36158            522 => self.variable_type_5(&children[0]),
36159            523 => self.variable_type_6(&children[0]),
36160            524 => self.variable_type_7(&children[0]),
36161            525 => self.variable_type_8(&children[0]),
36162            526 => self.variable_type_9(&children[0]),
36163            527 => self.user_defined_type(&children[0]),
36164            528 => self.type_modifier_0(&children[0]),
36165            529 => self.type_modifier_1(&children[0]),
36166            530 => self.factor_type(&children[0]),
36167            531 => self.factor_type_group_0(&children[0], &children[1]),
36168            532 => self.factor_type_group_1(&children[0]),
36169            533 => self.factor_type_opt_0(&children[0]),
36170            534 => self.factor_type_opt_1(),
36171            535 => self.scalar_type(&children[0], &children[1]),
36172            536 => self.scalar_type_group_0(&children[0], &children[1]),
36173            537 => self.scalar_type_group_1(&children[0]),
36174            538 => self.scalar_type_list_0(&children[0], &children[1]),
36175            539 => self.scalar_type_list_1(),
36176            540 => self.scalar_type_opt_0(&children[0]),
36177            541 => self.scalar_type_opt_1(),
36178            542 => self.array_type(&children[0], &children[1]),
36179            543 => self.array_type_opt_0(&children[0]),
36180            544 => self.array_type_opt_1(),
36181            545 => self.casting_type_0(&children[0]),
36182            546 => self.casting_type_1(&children[0]),
36183            547 => self.casting_type_2(&children[0]),
36184            548 => self.casting_type_3(&children[0]),
36185            549 => self.casting_type_4(&children[0]),
36186            550 => self.casting_type_5(&children[0]),
36187            551 => self.casting_type_6(&children[0]),
36188            552 => self.casting_type_7(&children[0]),
36189            553 => self.casting_type_8(&children[0]),
36190            554 => self.casting_type_9(&children[0]),
36191            555 => self.casting_type_10(&children[0]),
36192            556 => self.casting_type_11(&children[0]),
36193            557 => self.casting_type_12(&children[0]),
36194            558 => self.casting_type_13(&children[0]),
36195            559 => self.casting_type_14(&children[0]),
36196            560 => self.casting_type_15(&children[0]),
36197            561 => self.casting_type_16(&children[0]),
36198            562 => self.clock_domain(&children[0], &children[1]),
36199            563 => self.statement_block(&children[0], &children[1], &children[2]),
36200            564 => self.statement_block_list_0(&children[0], &children[1]),
36201            565 => self.statement_block_list_1(),
36202            566 => self.statement_block_group(&children[0], &children[1]),
36203            567 => self.statement_block_group_group_0(&children[0], &children[1], &children[2]),
36204            568 => self.statement_block_group_group_list_0(&children[0], &children[1]),
36205            569 => self.statement_block_group_group_list_1(),
36206            570 => self.statement_block_group_group_1(&children[0]),
36207            571 => self.statement_block_group_list_0(&children[0], &children[1]),
36208            572 => self.statement_block_group_list_1(),
36209            573 => self.statement_block_item_0(&children[0]),
36210            574 => self.statement_block_item_1(&children[0]),
36211            575 => self.statement_block_item_2(&children[0]),
36212            576 => self.statement_0(&children[0]),
36213            577 => self.statement_1(&children[0]),
36214            578 => self.statement_2(&children[0]),
36215            579 => self.statement_3(&children[0]),
36216            580 => self.statement_4(&children[0]),
36217            581 => self.statement_5(&children[0]),
36218            582 => self.statement_6(&children[0]),
36219            583 => self.statement_7(&children[0]),
36220            584 => self.let_statement(
36221                &children[0],
36222                &children[1],
36223                &children[2],
36224                &children[3],
36225                &children[4],
36226                &children[5],
36227                &children[6],
36228                &children[7],
36229            ),
36230            585 => self.let_statement_opt_0(&children[0]),
36231            586 => self.let_statement_opt_1(),
36232            587 => self.identifier_statement(&children[0], &children[1], &children[2]),
36233            588 => self.identifier_statement_group_0(&children[0]),
36234            589 => self.identifier_statement_group_1(&children[0]),
36235            590 => self.assignment(&children[0], &children[1]),
36236            591 => self.assignment_group_0(&children[0]),
36237            592 => self.assignment_group_1(&children[0]),
36238            593 => self.if_statement(
36239                &children[0],
36240                &children[1],
36241                &children[2],
36242                &children[3],
36243                &children[4],
36244            ),
36245            594 => self.if_statement_list_0(
36246                &children[0],
36247                &children[1],
36248                &children[2],
36249                &children[3],
36250                &children[4],
36251            ),
36252            595 => self.if_statement_list_1(),
36253            596 => self.if_statement_opt_0(&children[0], &children[1]),
36254            597 => self.if_statement_opt_1(),
36255            598 => self.if_reset_statement(&children[0], &children[1], &children[2], &children[3]),
36256            599 => self.if_reset_statement_list_0(
36257                &children[0],
36258                &children[1],
36259                &children[2],
36260                &children[3],
36261                &children[4],
36262            ),
36263            600 => self.if_reset_statement_list_1(),
36264            601 => self.if_reset_statement_opt_0(&children[0], &children[1]),
36265            602 => self.if_reset_statement_opt_1(),
36266            603 => self.return_statement(&children[0], &children[1], &children[2]),
36267            604 => self.break_statement(&children[0], &children[1]),
36268            605 => self.for_statement(
36269                &children[0],
36270                &children[1],
36271                &children[2],
36272                &children[3],
36273                &children[4],
36274                &children[5],
36275                &children[6],
36276                &children[7],
36277            ),
36278            606 => self.for_statement_opt_0(&children[0], &children[1], &children[2]),
36279            607 => self.for_statement_opt_1(),
36280            608 => self.case_statement(
36281                &children[0],
36282                &children[1],
36283                &children[2],
36284                &children[3],
36285                &children[4],
36286            ),
36287            609 => self.case_statement_list_0(&children[0], &children[1]),
36288            610 => self.case_statement_list_1(),
36289            611 => self.case_item(&children[0], &children[1], &children[2]),
36290            612 => self.case_item_group0_0(&children[0]),
36291            613 => self.case_item_group0_1(&children[0]),
36292            614 => self.case_item_group_0(&children[0]),
36293            615 => self.case_item_group_1(&children[0]),
36294            616 => self.case_condition(&children[0], &children[1]),
36295            617 => self.case_condition_list_0(&children[0], &children[1], &children[2]),
36296            618 => self.case_condition_list_1(),
36297            619 => self.switch_statement(&children[0], &children[1], &children[2], &children[3]),
36298            620 => self.switch_statement_list_0(&children[0], &children[1]),
36299            621 => self.switch_statement_list_1(),
36300            622 => self.switch_item(&children[0], &children[1], &children[2]),
36301            623 => self.switch_item_group0_0(&children[0]),
36302            624 => self.switch_item_group0_1(&children[0]),
36303            625 => self.switch_item_group_0(&children[0]),
36304            626 => self.switch_item_group_1(&children[0]),
36305            627 => self.switch_condition(&children[0], &children[1]),
36306            628 => self.switch_condition_list_0(&children[0], &children[1], &children[2]),
36307            629 => self.switch_condition_list_1(),
36308            630 => self.attribute(
36309                &children[0],
36310                &children[1],
36311                &children[2],
36312                &children[3],
36313                &children[4],
36314            ),
36315            631 => self.attribute_opt_0(&children[0], &children[1], &children[2]),
36316            632 => self.attribute_opt_1(),
36317            633 => self.attribute_list(&children[0], &children[1], &children[2]),
36318            634 => self.attribute_list_list_0(&children[0], &children[1], &children[2]),
36319            635 => self.attribute_list_list_1(),
36320            636 => self.attribute_list_opt_0(&children[0]),
36321            637 => self.attribute_list_opt_1(),
36322            638 => self.attribute_item_0(&children[0]),
36323            639 => self.attribute_item_1(&children[0]),
36324            640 => self.let_declaration(
36325                &children[0],
36326                &children[1],
36327                &children[2],
36328                &children[3],
36329                &children[4],
36330                &children[5],
36331                &children[6],
36332                &children[7],
36333            ),
36334            641 => self.let_declaration_opt_0(&children[0]),
36335            642 => self.let_declaration_opt_1(),
36336            643 => self.var_declaration(
36337                &children[0],
36338                &children[1],
36339                &children[2],
36340                &children[3],
36341                &children[4],
36342                &children[5],
36343            ),
36344            644 => self.var_declaration_opt_0(&children[0]),
36345            645 => self.var_declaration_opt_1(),
36346            646 => self.const_declaration(
36347                &children[0],
36348                &children[1],
36349                &children[2],
36350                &children[3],
36351                &children[4],
36352                &children[5],
36353                &children[6],
36354            ),
36355            647 => self.const_declaration_group_0(&children[0]),
36356            648 => self.const_declaration_group_1(&children[0]),
36357            649 => self.type_def_declaration(
36358                &children[0],
36359                &children[1],
36360                &children[2],
36361                &children[3],
36362                &children[4],
36363            ),
36364            650 => self.always_ff_declaration(&children[0], &children[1], &children[2]),
36365            651 => self.always_ff_declaration_opt_0(&children[0]),
36366            652 => self.always_ff_declaration_opt_1(),
36367            653 => {
36368                self.always_ff_event_list(&children[0], &children[1], &children[2], &children[3])
36369            }
36370            654 => self.always_ff_event_list_opt_0(&children[0], &children[1]),
36371            655 => self.always_ff_event_list_opt_1(),
36372            656 => self.always_ff_clock(&children[0]),
36373            657 => self.always_ff_reset(&children[0]),
36374            658 => self.always_comb_declaration(&children[0], &children[1]),
36375            659 => self.assign_declaration(
36376                &children[0],
36377                &children[1],
36378                &children[2],
36379                &children[3],
36380                &children[4],
36381            ),
36382            660 => self.assign_destination_0(&children[0]),
36383            661 => self.assign_destination_1(&children[0], &children[1], &children[2]),
36384            662 => self.assign_concatenation_list(&children[0], &children[1], &children[2]),
36385            663 => self.assign_concatenation_list_list_0(&children[0], &children[1], &children[2]),
36386            664 => self.assign_concatenation_list_list_1(),
36387            665 => self.assign_concatenation_list_opt_0(&children[0]),
36388            666 => self.assign_concatenation_list_opt_1(),
36389            667 => self.assign_concatenation_item(&children[0]),
36390            668 => self.modport_declaration(
36391                &children[0],
36392                &children[1],
36393                &children[2],
36394                &children[3],
36395                &children[4],
36396                &children[5],
36397            ),
36398            669 => self.modport_declaration_opt0_0(&children[0], &children[1]),
36399            670 => self.modport_declaration_opt0_1(),
36400            671 => self.modport_declaration_opt_0(&children[0]),
36401            672 => self.modport_declaration_opt_1(),
36402            673 => self.modport_list(&children[0], &children[1], &children[2]),
36403            674 => self.modport_list_list_0(&children[0], &children[1], &children[2]),
36404            675 => self.modport_list_list_1(),
36405            676 => self.modport_list_opt_0(&children[0]),
36406            677 => self.modport_list_opt_1(),
36407            678 => self.modport_group(&children[0], &children[1]),
36408            679 => self.modport_group_group_0(&children[0], &children[1], &children[2]),
36409            680 => self.modport_group_group_1(&children[0]),
36410            681 => self.modport_group_list_0(&children[0], &children[1]),
36411            682 => self.modport_group_list_1(),
36412            683 => self.modport_item(&children[0], &children[1], &children[2]),
36413            684 => self.modport_default_0(&children[0]),
36414            685 => self.modport_default_1(&children[0]),
36415            686 => self.modport_default_2(&children[0], &children[1], &children[2], &children[3]),
36416            687 => self.enum_declaration(
36417                &children[0],
36418                &children[1],
36419                &children[2],
36420                &children[3],
36421                &children[4],
36422                &children[5],
36423            ),
36424            688 => self.enum_declaration_opt_0(&children[0], &children[1]),
36425            689 => self.enum_declaration_opt_1(),
36426            690 => self.enum_list(&children[0], &children[1], &children[2]),
36427            691 => self.enum_list_list_0(&children[0], &children[1], &children[2]),
36428            692 => self.enum_list_list_1(),
36429            693 => self.enum_list_opt_0(&children[0]),
36430            694 => self.enum_list_opt_1(),
36431            695 => self.enum_group(&children[0], &children[1]),
36432            696 => self.enum_group_group_0(&children[0], &children[1], &children[2]),
36433            697 => self.enum_group_group_1(&children[0]),
36434            698 => self.enum_group_list_0(&children[0], &children[1]),
36435            699 => self.enum_group_list_1(),
36436            700 => self.enum_item(&children[0], &children[1]),
36437            701 => self.enum_item_opt_0(&children[0], &children[1]),
36438            702 => self.enum_item_opt_1(),
36439            703 => self.struct_union_0(&children[0]),
36440            704 => self.struct_union_1(&children[0]),
36441            705 => self.struct_union_declaration(
36442                &children[0],
36443                &children[1],
36444                &children[2],
36445                &children[3],
36446                &children[4],
36447                &children[5],
36448            ),
36449            706 => self.struct_union_declaration_opt_0(&children[0]),
36450            707 => self.struct_union_declaration_opt_1(),
36451            708 => self.struct_union_list(&children[0], &children[1], &children[2]),
36452            709 => self.struct_union_list_list_0(&children[0], &children[1], &children[2]),
36453            710 => self.struct_union_list_list_1(),
36454            711 => self.struct_union_list_opt_0(&children[0]),
36455            712 => self.struct_union_list_opt_1(),
36456            713 => self.struct_union_group(&children[0], &children[1]),
36457            714 => self.struct_union_group_group_0(&children[0], &children[1], &children[2]),
36458            715 => self.struct_union_group_group_1(&children[0]),
36459            716 => self.struct_union_group_list_0(&children[0], &children[1]),
36460            717 => self.struct_union_group_list_1(),
36461            718 => self.struct_union_item(&children[0], &children[1], &children[2]),
36462            719 => self.initial_declaration(&children[0], &children[1]),
36463            720 => self.final_declaration(&children[0], &children[1]),
36464            721 => self.inst_declaration(
36465                &children[0],
36466                &children[1],
36467                &children[2],
36468                &children[3],
36469                &children[4],
36470                &children[5],
36471                &children[6],
36472                &children[7],
36473                &children[8],
36474            ),
36475            722 => self.inst_declaration_opt2_0(&children[0], &children[1], &children[2]),
36476            723 => self.inst_declaration_opt3_0(&children[0]),
36477            724 => self.inst_declaration_opt3_1(),
36478            725 => self.inst_declaration_opt2_1(),
36479            726 => self.inst_declaration_opt1_0(&children[0]),
36480            727 => self.inst_declaration_opt1_1(),
36481            728 => self.inst_declaration_opt0_0(&children[0]),
36482            729 => self.inst_declaration_opt0_1(),
36483            730 => self.inst_declaration_opt_0(&children[0]),
36484            731 => self.inst_declaration_opt_1(),
36485            732 => self.inst_parameter(&children[0], &children[1], &children[2], &children[3]),
36486            733 => self.inst_parameter_opt_0(&children[0]),
36487            734 => self.inst_parameter_opt_1(),
36488            735 => self.inst_parameter_list(&children[0], &children[1], &children[2]),
36489            736 => self.inst_parameter_list_list_0(&children[0], &children[1], &children[2]),
36490            737 => self.inst_parameter_list_list_1(),
36491            738 => self.inst_parameter_list_opt_0(&children[0]),
36492            739 => self.inst_parameter_list_opt_1(),
36493            740 => self.inst_parameter_group(&children[0], &children[1]),
36494            741 => self.inst_parameter_group_group_0(&children[0], &children[1], &children[2]),
36495            742 => self.inst_parameter_group_group_1(&children[0]),
36496            743 => self.inst_parameter_group_list_0(&children[0], &children[1]),
36497            744 => self.inst_parameter_group_list_1(),
36498            745 => self.inst_parameter_item(&children[0], &children[1]),
36499            746 => self.inst_parameter_item_opt_0(&children[0], &children[1]),
36500            747 => self.inst_parameter_item_opt_1(),
36501            748 => self.inst_port_list(&children[0], &children[1], &children[2]),
36502            749 => self.inst_port_list_list_0(&children[0], &children[1], &children[2]),
36503            750 => self.inst_port_list_list_1(),
36504            751 => self.inst_port_list_opt_0(&children[0]),
36505            752 => self.inst_port_list_opt_1(),
36506            753 => self.inst_port_group(&children[0], &children[1]),
36507            754 => self.inst_port_group_group_0(&children[0], &children[1], &children[2]),
36508            755 => self.inst_port_group_group_1(&children[0]),
36509            756 => self.inst_port_group_list_0(&children[0], &children[1]),
36510            757 => self.inst_port_group_list_1(),
36511            758 => self.inst_port_item(&children[0], &children[1]),
36512            759 => self.inst_port_item_opt_0(&children[0], &children[1]),
36513            760 => self.inst_port_item_opt_1(),
36514            761 => self.with_parameter(&children[0], &children[1], &children[2], &children[3]),
36515            762 => self.with_parameter_opt_0(&children[0]),
36516            763 => self.with_parameter_opt_1(),
36517            764 => self.with_parameter_list(&children[0], &children[1], &children[2]),
36518            765 => self.with_parameter_list_list_0(&children[0], &children[1], &children[2]),
36519            766 => self.with_parameter_list_list_1(),
36520            767 => self.with_parameter_list_opt_0(&children[0]),
36521            768 => self.with_parameter_list_opt_1(),
36522            769 => self.with_parameter_group(&children[0], &children[1]),
36523            770 => self.with_parameter_group_group_0(&children[0], &children[1], &children[2]),
36524            771 => self.with_parameter_group_group_1(&children[0]),
36525            772 => self.with_parameter_group_list_0(&children[0], &children[1]),
36526            773 => self.with_parameter_group_list_1(),
36527            774 => self.with_parameter_item(
36528                &children[0],
36529                &children[1],
36530                &children[2],
36531                &children[3],
36532                &children[4],
36533                &children[5],
36534            ),
36535            775 => self.with_parameter_item_group0_0(&children[0]),
36536            776 => self.with_parameter_item_group0_1(&children[0]),
36537            777 => self.with_parameter_item_group_0(&children[0]),
36538            778 => self.with_parameter_item_group_1(&children[0]),
36539            779 => self.generic_bound_0(&children[0]),
36540            780 => self.generic_bound_1(&children[0]),
36541            781 => self.generic_bound_2(&children[0], &children[1]),
36542            782 => self.generic_bound_3(&children[0]),
36543            783 => self.with_generic_parameter(&children[0], &children[1], &children[2]),
36544            784 => self.with_generic_parameter_list(&children[0], &children[1], &children[2]),
36545            785 => {
36546                self.with_generic_parameter_list_list_0(&children[0], &children[1], &children[2])
36547            }
36548            786 => self.with_generic_parameter_list_list_1(),
36549            787 => self.with_generic_parameter_list_opt_0(&children[0]),
36550            788 => self.with_generic_parameter_list_opt_1(),
36551            789 => self.with_generic_parameter_item(
36552                &children[0],
36553                &children[1],
36554                &children[2],
36555                &children[3],
36556            ),
36557            790 => self.with_generic_parameter_item_opt_0(&children[0], &children[1]),
36558            791 => self.with_generic_parameter_item_opt_1(),
36559            792 => self.with_generic_argument(&children[0], &children[1], &children[2]),
36560            793 => self.with_generic_argument_opt_0(&children[0]),
36561            794 => self.with_generic_argument_opt_1(),
36562            795 => self.with_generic_argument_list(&children[0], &children[1], &children[2]),
36563            796 => self.with_generic_argument_list_list_0(&children[0], &children[1], &children[2]),
36564            797 => self.with_generic_argument_list_list_1(),
36565            798 => self.with_generic_argument_list_opt_0(&children[0]),
36566            799 => self.with_generic_argument_list_opt_1(),
36567            800 => self.with_generic_argument_item_0(&children[0]),
36568            801 => self.with_generic_argument_item_1(&children[0]),
36569            802 => self.port_declaration(&children[0], &children[1], &children[2]),
36570            803 => self.port_declaration_opt_0(&children[0]),
36571            804 => self.port_declaration_opt_1(),
36572            805 => self.port_declaration_list(&children[0], &children[1], &children[2]),
36573            806 => self.port_declaration_list_list_0(&children[0], &children[1], &children[2]),
36574            807 => self.port_declaration_list_list_1(),
36575            808 => self.port_declaration_list_opt_0(&children[0]),
36576            809 => self.port_declaration_list_opt_1(),
36577            810 => self.port_declaration_group(&children[0], &children[1]),
36578            811 => self.port_declaration_group_group_0(&children[0], &children[1], &children[2]),
36579            812 => self.port_declaration_group_group_1(&children[0]),
36580            813 => self.port_declaration_group_list_0(&children[0], &children[1]),
36581            814 => self.port_declaration_group_list_1(),
36582            815 => self.port_declaration_item(&children[0], &children[1], &children[2]),
36583            816 => self.port_declaration_item_group_0(&children[0]),
36584            817 => self.port_declaration_item_group_1(&children[0]),
36585            818 => self.port_type_concrete(&children[0], &children[1], &children[2], &children[3]),
36586            819 => self.port_type_concrete_opt0_0(&children[0], &children[1]),
36587            820 => self.port_type_concrete_opt0_1(),
36588            821 => self.port_type_concrete_opt_0(&children[0]),
36589            822 => self.port_type_concrete_opt_1(),
36590            823 => self.port_default_value(&children[0]),
36591            824 => self.port_type_abstract(&children[0], &children[1], &children[2], &children[3]),
36592            825 => self.port_type_abstract_opt1_0(&children[0]),
36593            826 => self.port_type_abstract_opt1_1(),
36594            827 => self.port_type_abstract_opt0_0(&children[0], &children[1]),
36595            828 => self.port_type_abstract_opt0_1(),
36596            829 => self.port_type_abstract_opt_0(&children[0]),
36597            830 => self.port_type_abstract_opt_1(),
36598            831 => self.direction_0(&children[0]),
36599            832 => self.direction_1(&children[0]),
36600            833 => self.direction_2(&children[0]),
36601            834 => self.direction_3(&children[0]),
36602            835 => self.direction_4(&children[0]),
36603            836 => self.direction_5(&children[0]),
36604            837 => self.function_declaration(
36605                &children[0],
36606                &children[1],
36607                &children[2],
36608                &children[3],
36609                &children[4],
36610                &children[5],
36611            ),
36612            838 => self.function_declaration_opt1_0(&children[0], &children[1]),
36613            839 => self.function_declaration_opt1_1(),
36614            840 => self.function_declaration_opt0_0(&children[0]),
36615            841 => self.function_declaration_opt0_1(),
36616            842 => self.function_declaration_opt_0(&children[0]),
36617            843 => self.function_declaration_opt_1(),
36618            844 => self.import_declaration(&children[0], &children[1], &children[2], &children[3]),
36619            845 => self.import_declaration_opt_0(&children[0], &children[1]),
36620            846 => self.import_declaration_opt_1(),
36621            847 => self.export_declaration(&children[0], &children[1], &children[2]),
36622            848 => self.export_declaration_group_0(&children[0]),
36623            849 => self.export_declaration_group_1(&children[0], &children[1]),
36624            850 => self.export_declaration_opt_0(&children[0], &children[1]),
36625            851 => self.export_declaration_opt_1(),
36626            852 => self.unsafe_block(
36627                &children[0],
36628                &children[1],
36629                &children[2],
36630                &children[3],
36631                &children[4],
36632                &children[5],
36633                &children[6],
36634            ),
36635            853 => self.unsafe_block_list_0(&children[0], &children[1]),
36636            854 => self.unsafe_block_list_1(),
36637            855 => self.module_declaration(
36638                &children[0],
36639                &children[1],
36640                &children[2],
36641                &children[3],
36642                &children[4],
36643                &children[5],
36644                &children[6],
36645                &children[7],
36646                &children[8],
36647            ),
36648            856 => self.module_declaration_list_0(&children[0], &children[1]),
36649            857 => self.module_declaration_list_1(),
36650            858 => self.module_declaration_opt2_0(&children[0]),
36651            859 => self.module_declaration_opt2_1(),
36652            860 => self.module_declaration_opt1_0(&children[0]),
36653            861 => self.module_declaration_opt1_1(),
36654            862 => self.module_declaration_opt0_0(&children[0], &children[1]),
36655            863 => self.module_declaration_opt0_1(),
36656            864 => self.module_declaration_opt_0(&children[0]),
36657            865 => self.module_declaration_opt_1(),
36658            866 => self.module_group(&children[0], &children[1]),
36659            867 => self.module_group_group_0(&children[0], &children[1], &children[2]),
36660            868 => self.module_group_group_list_0(&children[0], &children[1]),
36661            869 => self.module_group_group_list_1(),
36662            870 => self.module_group_group_1(&children[0]),
36663            871 => self.module_group_list_0(&children[0], &children[1]),
36664            872 => self.module_group_list_1(),
36665            873 => self.module_item(&children[0]),
36666            874 => self.interface_declaration(
36667                &children[0],
36668                &children[1],
36669                &children[2],
36670                &children[3],
36671                &children[4],
36672                &children[5],
36673                &children[6],
36674            ),
36675            875 => self.interface_declaration_list_0(&children[0], &children[1]),
36676            876 => self.interface_declaration_list_1(),
36677            877 => self.interface_declaration_opt0_0(&children[0]),
36678            878 => self.interface_declaration_opt0_1(),
36679            879 => self.interface_declaration_opt_0(&children[0]),
36680            880 => self.interface_declaration_opt_1(),
36681            881 => self.interface_group(&children[0], &children[1]),
36682            882 => self.interface_group_group_0(&children[0], &children[1], &children[2]),
36683            883 => self.interface_group_group_list_0(&children[0], &children[1]),
36684            884 => self.interface_group_group_list_1(),
36685            885 => self.interface_group_group_1(&children[0]),
36686            886 => self.interface_group_list_0(&children[0], &children[1]),
36687            887 => self.interface_group_list_1(),
36688            888 => self.interface_item_0(&children[0]),
36689            889 => self.interface_item_1(&children[0]),
36690            890 => self.generate_if_declaration(
36691                &children[0],
36692                &children[1],
36693                &children[2],
36694                &children[3],
36695                &children[4],
36696            ),
36697            891 => self.generate_if_declaration_list_0(
36698                &children[0],
36699                &children[1],
36700                &children[2],
36701                &children[3],
36702                &children[4],
36703            ),
36704            892 => self.generate_if_declaration_list_1(),
36705            893 => self.generate_if_declaration_opt_0(&children[0], &children[1]),
36706            894 => self.generate_if_declaration_opt_1(),
36707            895 => self.generate_for_declaration(
36708                &children[0],
36709                &children[1],
36710                &children[2],
36711                &children[3],
36712                &children[4],
36713                &children[5],
36714            ),
36715            896 => self.generate_for_declaration_opt_0(&children[0], &children[1], &children[2]),
36716            897 => self.generate_for_declaration_opt_1(),
36717            898 => self.generate_block_declaration(&children[0]),
36718            899 => self.generate_named_block(
36719                &children[0],
36720                &children[1],
36721                &children[2],
36722                &children[3],
36723                &children[4],
36724            ),
36725            900 => self.generate_named_block_list_0(&children[0], &children[1]),
36726            901 => self.generate_named_block_list_1(),
36727            902 => self.generate_optional_named_block(
36728                &children[0],
36729                &children[1],
36730                &children[2],
36731                &children[3],
36732            ),
36733            903 => self.generate_optional_named_block_list_0(&children[0], &children[1]),
36734            904 => self.generate_optional_named_block_list_1(),
36735            905 => self.generate_optional_named_block_opt_0(&children[0], &children[1]),
36736            906 => self.generate_optional_named_block_opt_1(),
36737            907 => self.generate_group(&children[0], &children[1]),
36738            908 => self.generate_group_group_0(&children[0], &children[1], &children[2]),
36739            909 => self.generate_group_group_list_0(&children[0], &children[1]),
36740            910 => self.generate_group_group_list_1(),
36741            911 => self.generate_group_group_1(&children[0]),
36742            912 => self.generate_group_list_0(&children[0], &children[1]),
36743            913 => self.generate_group_list_1(),
36744            914 => self.generate_item_0(&children[0]),
36745            915 => self.generate_item_1(&children[0]),
36746            916 => self.generate_item_2(&children[0]),
36747            917 => self.generate_item_3(&children[0]),
36748            918 => self.generate_item_4(&children[0]),
36749            919 => self.generate_item_5(&children[0]),
36750            920 => self.generate_item_6(&children[0]),
36751            921 => self.generate_item_7(&children[0]),
36752            922 => self.generate_item_8(&children[0]),
36753            923 => self.generate_item_9(&children[0]),
36754            924 => self.generate_item_10(&children[0]),
36755            925 => self.generate_item_11(&children[0]),
36756            926 => self.generate_item_12(&children[0]),
36757            927 => self.generate_item_13(&children[0]),
36758            928 => self.generate_item_14(&children[0]),
36759            929 => self.generate_item_15(&children[0]),
36760            930 => self.generate_item_16(&children[0]),
36761            931 => self.generate_item_17(&children[0]),
36762            932 => self.package_declaration(
36763                &children[0],
36764                &children[1],
36765                &children[2],
36766                &children[3],
36767                &children[4],
36768                &children[5],
36769            ),
36770            933 => self.package_declaration_list_0(&children[0], &children[1]),
36771            934 => self.package_declaration_list_1(),
36772            935 => self.package_declaration_opt_0(&children[0]),
36773            936 => self.package_declaration_opt_1(),
36774            937 => self.package_group(&children[0], &children[1]),
36775            938 => self.package_group_group_0(&children[0], &children[1], &children[2]),
36776            939 => self.package_group_group_list_0(&children[0], &children[1]),
36777            940 => self.package_group_group_list_1(),
36778            941 => self.package_group_group_1(&children[0]),
36779            942 => self.package_group_list_0(&children[0], &children[1]),
36780            943 => self.package_group_list_1(),
36781            944 => self.package_item_0(&children[0]),
36782            945 => self.package_item_1(&children[0]),
36783            946 => self.package_item_2(&children[0]),
36784            947 => self.package_item_3(&children[0]),
36785            948 => self.package_item_4(&children[0]),
36786            949 => self.package_item_5(&children[0]),
36787            950 => self.package_item_6(&children[0]),
36788            951 => self.proto_module_declaration(
36789                &children[0],
36790                &children[1],
36791                &children[2],
36792                &children[3],
36793                &children[4],
36794                &children[5],
36795            ),
36796            952 => self.proto_module_declaration_opt0_0(&children[0]),
36797            953 => self.proto_module_declaration_opt0_1(),
36798            954 => self.proto_module_declaration_opt_0(&children[0]),
36799            955 => self.proto_module_declaration_opt_1(),
36800            956 => self.embed_declaration(
36801                &children[0],
36802                &children[1],
36803                &children[2],
36804                &children[3],
36805                &children[4],
36806                &children[5],
36807            ),
36808            957 => self.embed_content(&children[0]),
36809            958 => self.embed_content_token(
36810                &children[0],
36811                &children[1],
36812                &children[2],
36813                &children[3],
36814                &children[4],
36815                &children[5],
36816                &children[6],
36817                &children[7],
36818            ),
36819            959 => self.embed_content_token_list_0(&children[0], &children[1]),
36820            960 => self.embed_content_token_list_1(),
36821            961 => self.embed_item_0(&children[0], &children[1], &children[2]),
36822            962 => self.embed_item_list_0(&children[0], &children[1]),
36823            963 => self.embed_item_list_1(),
36824            964 => self.embed_item_1(&children[0]),
36825            965 => self.include_declaration(
36826                &children[0],
36827                &children[1],
36828                &children[2],
36829                &children[3],
36830                &children[4],
36831                &children[5],
36832                &children[6],
36833            ),
36834            966 => self.description_group(&children[0], &children[1]),
36835            967 => self.description_group_group_0(&children[0], &children[1], &children[2]),
36836            968 => self.description_group_group_list_0(&children[0], &children[1]),
36837            969 => self.description_group_group_list_1(),
36838            970 => self.description_group_group_1(&children[0]),
36839            971 => self.description_group_list_0(&children[0], &children[1]),
36840            972 => self.description_group_list_1(),
36841            973 => self.description_item_0(&children[0], &children[1]),
36842            974 => self.description_item_1(&children[0]),
36843            975 => self.description_item_2(&children[0]),
36844            976 => self.description_item_3(&children[0]),
36845            977 => self.description_item_opt_0(&children[0]),
36846            978 => self.description_item_opt_1(),
36847            979 => self.public_description_item_0(&children[0]),
36848            980 => self.public_description_item_1(&children[0]),
36849            981 => self.public_description_item_2(&children[0]),
36850            982 => self.public_description_item_3(&children[0]),
36851            983 => self.veryl(&children[0], &children[1]),
36852            984 => self.veryl_list_0(&children[0], &children[1]),
36853            985 => self.veryl_list_1(),
36854            _ => Err(ParserError::InternalError(format!(
36855                "Unhandled production number: {}",
36856                prod_num
36857            ))
36858            .into()),
36859        }
36860    }
36861
36862    fn on_comment(&mut self, token: Token<'t>) {
36863        self.user_grammar.on_comment(token)
36864    }
36865}