Skip to main content

veryl_parser/generated/
veryl_grammar_trait.rs

1// ---------------------------------------------------------
2// This file was generated by parol.
3// Do not edit this file manually.
4// Changes will be overwritten on the next build.
5// ---------------------------------------------------------
6
7// Disable clippy warnings that can result in the way how parol generates code.
8#![allow(clippy::enum_variant_names)]
9#![allow(clippy::large_enum_variant)]
10#![allow(clippy::upper_case_acronyms)]
11
12use parol_runtime::log::trace;
13#[allow(unused_imports)]
14use parol_runtime::parol_macros::{pop_and_reverse_item, pop_item};
15use parol_runtime::parser::{ParseTreeType, UserActionsTrait};
16use parol_runtime::{ParserError, Result, Token};
17use std::marker::PhantomData;
18
19/// Semantic actions trait generated for the user grammar
20/// All functions have default implementations.
21pub trait VerylGrammarTrait {
22    /// Semantic action for non-terminal 'CommentsTerm'
23    fn comments_term(&mut self, _arg: &CommentsTerm) -> Result<()> {
24        Ok(())
25    }
26
27    /// Semantic action for non-terminal 'StringLiteralTerm'
28    fn string_literal_term(&mut self, _arg: &StringLiteralTerm) -> Result<()> {
29        Ok(())
30    }
31
32    /// Semantic action for non-terminal 'ExponentTerm'
33    fn exponent_term(&mut self, _arg: &ExponentTerm) -> Result<()> {
34        Ok(())
35    }
36
37    /// Semantic action for non-terminal 'FixedPointTerm'
38    fn fixed_point_term(&mut self, _arg: &FixedPointTerm) -> Result<()> {
39        Ok(())
40    }
41
42    /// Semantic action for non-terminal 'BasedTerm'
43    fn based_term(&mut self, _arg: &BasedTerm) -> Result<()> {
44        Ok(())
45    }
46
47    /// Semantic action for non-terminal 'AllBitTerm'
48    fn all_bit_term(&mut self, _arg: &AllBitTerm) -> Result<()> {
49        Ok(())
50    }
51
52    /// Semantic action for non-terminal 'BaseLessTerm'
53    fn base_less_term(&mut self, _arg: &BaseLessTerm) -> Result<()> {
54        Ok(())
55    }
56
57    /// Semantic action for non-terminal 'MinusColonTerm'
58    fn minus_colon_term(&mut self, _arg: &MinusColonTerm) -> Result<()> {
59        Ok(())
60    }
61
62    /// Semantic action for non-terminal 'MinusGTTerm'
63    fn minus_g_t_term(&mut self, _arg: &MinusGTTerm) -> Result<()> {
64        Ok(())
65    }
66
67    /// Semantic action for non-terminal 'LTMinusTerm'
68    fn l_t_minus_term(&mut self, _arg: &LTMinusTerm) -> Result<()> {
69        Ok(())
70    }
71
72    /// Semantic action for non-terminal 'PlusColonTerm'
73    fn plus_colon_term(&mut self, _arg: &PlusColonTerm) -> Result<()> {
74        Ok(())
75    }
76
77    /// Semantic action for non-terminal 'AssignmentOperatorTerm'
78    fn assignment_operator_term(&mut self, _arg: &AssignmentOperatorTerm) -> Result<()> {
79        Ok(())
80    }
81
82    /// Semantic action for non-terminal 'DiamondOperatorTerm'
83    fn diamond_operator_term(&mut self, _arg: &DiamondOperatorTerm) -> Result<()> {
84        Ok(())
85    }
86
87    /// Semantic action for non-terminal 'Operator08Term'
88    fn operator08_term(&mut self, _arg: &Operator08Term) -> Result<()> {
89        Ok(())
90    }
91
92    /// Semantic action for non-terminal 'Operator07Term'
93    fn operator07_term(&mut self, _arg: &Operator07Term) -> Result<()> {
94        Ok(())
95    }
96
97    /// Semantic action for non-terminal 'Operator06Term'
98    fn operator06_term(&mut self, _arg: &Operator06Term) -> Result<()> {
99        Ok(())
100    }
101
102    /// Semantic action for non-terminal 'Operator02Term'
103    fn operator02_term(&mut self, _arg: &Operator02Term) -> Result<()> {
104        Ok(())
105    }
106
107    /// Semantic action for non-terminal 'Operator01Term'
108    fn operator01_term(&mut self, _arg: &Operator01Term) -> Result<()> {
109        Ok(())
110    }
111
112    /// Semantic action for non-terminal 'Operator05Term'
113    fn operator05_term(&mut self, _arg: &Operator05Term) -> Result<()> {
114        Ok(())
115    }
116
117    /// Semantic action for non-terminal 'Operator04Term'
118    fn operator04_term(&mut self, _arg: &Operator04Term) -> Result<()> {
119        Ok(())
120    }
121
122    /// Semantic action for non-terminal 'Operator03Term'
123    fn operator03_term(&mut self, _arg: &Operator03Term) -> Result<()> {
124        Ok(())
125    }
126
127    /// Semantic action for non-terminal 'UnaryOperatorTerm'
128    fn unary_operator_term(&mut self, _arg: &UnaryOperatorTerm) -> Result<()> {
129        Ok(())
130    }
131
132    /// Semantic action for non-terminal 'ColonColonLAngleTerm'
133    fn colon_colon_l_angle_term(&mut self, _arg: &ColonColonLAngleTerm) -> Result<()> {
134        Ok(())
135    }
136
137    /// Semantic action for non-terminal 'ColonColonTerm'
138    fn colon_colon_term(&mut self, _arg: &ColonColonTerm) -> Result<()> {
139        Ok(())
140    }
141
142    /// Semantic action for non-terminal 'ColonTerm'
143    fn colon_term(&mut self, _arg: &ColonTerm) -> Result<()> {
144        Ok(())
145    }
146
147    /// Semantic action for non-terminal 'CommaTerm'
148    fn comma_term(&mut self, _arg: &CommaTerm) -> Result<()> {
149        Ok(())
150    }
151
152    /// Semantic action for non-terminal 'DotDotEquTerm'
153    fn dot_dot_equ_term(&mut self, _arg: &DotDotEquTerm) -> Result<()> {
154        Ok(())
155    }
156
157    /// Semantic action for non-terminal 'DotDotTerm'
158    fn dot_dot_term(&mut self, _arg: &DotDotTerm) -> Result<()> {
159        Ok(())
160    }
161
162    /// Semantic action for non-terminal 'DotTerm'
163    fn dot_term(&mut self, _arg: &DotTerm) -> Result<()> {
164        Ok(())
165    }
166
167    /// Semantic action for non-terminal 'EquTerm'
168    fn equ_term(&mut self, _arg: &EquTerm) -> Result<()> {
169        Ok(())
170    }
171
172    /// Semantic action for non-terminal 'HashLBracketTerm'
173    fn hash_l_bracket_term(&mut self, _arg: &HashLBracketTerm) -> Result<()> {
174        Ok(())
175    }
176
177    /// Semantic action for non-terminal 'HashTerm'
178    fn hash_term(&mut self, _arg: &HashTerm) -> Result<()> {
179        Ok(())
180    }
181
182    /// Semantic action for non-terminal 'LAngleTerm'
183    fn l_angle_term(&mut self, _arg: &LAngleTerm) -> Result<()> {
184        Ok(())
185    }
186
187    /// Semantic action for non-terminal 'QuestionTerm'
188    fn question_term(&mut self, _arg: &QuestionTerm) -> Result<()> {
189        Ok(())
190    }
191
192    /// Semantic action for non-terminal 'QuoteLBraceTerm'
193    fn quote_l_brace_term(&mut self, _arg: &QuoteLBraceTerm) -> Result<()> {
194        Ok(())
195    }
196
197    /// Semantic action for non-terminal 'QuoteTerm'
198    fn quote_term(&mut self, _arg: &QuoteTerm) -> Result<()> {
199        Ok(())
200    }
201
202    /// Semantic action for non-terminal 'EscapedLBraceTerm'
203    fn escaped_l_brace_term(&mut self, _arg: &EscapedLBraceTerm) -> Result<()> {
204        Ok(())
205    }
206
207    /// Semantic action for non-terminal 'TripleLBraceTerm'
208    fn triple_l_brace_term(&mut self, _arg: &TripleLBraceTerm) -> Result<()> {
209        Ok(())
210    }
211
212    /// Semantic action for non-terminal 'LBraceTerm'
213    fn l_brace_term(&mut self, _arg: &LBraceTerm) -> Result<()> {
214        Ok(())
215    }
216
217    /// Semantic action for non-terminal 'LBracketTerm'
218    fn l_bracket_term(&mut self, _arg: &LBracketTerm) -> Result<()> {
219        Ok(())
220    }
221
222    /// Semantic action for non-terminal 'LParenTerm'
223    fn l_paren_term(&mut self, _arg: &LParenTerm) -> Result<()> {
224        Ok(())
225    }
226
227    /// Semantic action for non-terminal 'RAngleTerm'
228    fn r_angle_term(&mut self, _arg: &RAngleTerm) -> Result<()> {
229        Ok(())
230    }
231
232    /// Semantic action for non-terminal 'EscapedRBraceTerm'
233    fn escaped_r_brace_term(&mut self, _arg: &EscapedRBraceTerm) -> Result<()> {
234        Ok(())
235    }
236
237    /// Semantic action for non-terminal 'TripleRBraceTerm'
238    fn triple_r_brace_term(&mut self, _arg: &TripleRBraceTerm) -> Result<()> {
239        Ok(())
240    }
241
242    /// Semantic action for non-terminal 'RBraceTerm'
243    fn r_brace_term(&mut self, _arg: &RBraceTerm) -> Result<()> {
244        Ok(())
245    }
246
247    /// Semantic action for non-terminal 'RBracketTerm'
248    fn r_bracket_term(&mut self, _arg: &RBracketTerm) -> Result<()> {
249        Ok(())
250    }
251
252    /// Semantic action for non-terminal 'RParenTerm'
253    fn r_paren_term(&mut self, _arg: &RParenTerm) -> Result<()> {
254        Ok(())
255    }
256
257    /// Semantic action for non-terminal 'SemicolonTerm'
258    fn semicolon_term(&mut self, _arg: &SemicolonTerm) -> Result<()> {
259        Ok(())
260    }
261
262    /// Semantic action for non-terminal 'StarTerm'
263    fn star_term(&mut self, _arg: &StarTerm) -> Result<()> {
264        Ok(())
265    }
266
267    /// Semantic action for non-terminal 'AliasTerm'
268    fn alias_term(&mut self, _arg: &AliasTerm) -> Result<()> {
269        Ok(())
270    }
271
272    /// Semantic action for non-terminal 'AlwaysCombTerm'
273    fn always_comb_term(&mut self, _arg: &AlwaysCombTerm) -> Result<()> {
274        Ok(())
275    }
276
277    /// Semantic action for non-terminal 'AlwaysFfTerm'
278    fn always_ff_term(&mut self, _arg: &AlwaysFfTerm) -> Result<()> {
279        Ok(())
280    }
281
282    /// Semantic action for non-terminal 'AssignTerm'
283    fn assign_term(&mut self, _arg: &AssignTerm) -> Result<()> {
284        Ok(())
285    }
286
287    /// Semantic action for non-terminal 'AsTerm'
288    fn as_term(&mut self, _arg: &AsTerm) -> Result<()> {
289        Ok(())
290    }
291
292    /// Semantic action for non-terminal 'BindTerm'
293    fn bind_term(&mut self, _arg: &BindTerm) -> Result<()> {
294        Ok(())
295    }
296
297    /// Semantic action for non-terminal 'BitTerm'
298    fn bit_term(&mut self, _arg: &BitTerm) -> Result<()> {
299        Ok(())
300    }
301
302    /// Semantic action for non-terminal 'BlockTerm'
303    fn block_term(&mut self, _arg: &BlockTerm) -> Result<()> {
304        Ok(())
305    }
306
307    /// Semantic action for non-terminal 'BBoolTerm'
308    fn b_bool_term(&mut self, _arg: &BBoolTerm) -> Result<()> {
309        Ok(())
310    }
311
312    /// Semantic action for non-terminal 'LBoolTerm'
313    fn l_bool_term(&mut self, _arg: &LBoolTerm) -> Result<()> {
314        Ok(())
315    }
316
317    /// Semantic action for non-terminal 'CaseTerm'
318    fn case_term(&mut self, _arg: &CaseTerm) -> Result<()> {
319        Ok(())
320    }
321
322    /// Semantic action for non-terminal 'ClockTerm'
323    fn clock_term(&mut self, _arg: &ClockTerm) -> Result<()> {
324        Ok(())
325    }
326
327    /// Semantic action for non-terminal 'ClockPosedgeTerm'
328    fn clock_posedge_term(&mut self, _arg: &ClockPosedgeTerm) -> Result<()> {
329        Ok(())
330    }
331
332    /// Semantic action for non-terminal 'ClockNegedgeTerm'
333    fn clock_negedge_term(&mut self, _arg: &ClockNegedgeTerm) -> Result<()> {
334        Ok(())
335    }
336
337    /// Semantic action for non-terminal 'ConnectTerm'
338    fn connect_term(&mut self, _arg: &ConnectTerm) -> Result<()> {
339        Ok(())
340    }
341
342    /// Semantic action for non-terminal 'ConstTerm'
343    fn const_term(&mut self, _arg: &ConstTerm) -> Result<()> {
344        Ok(())
345    }
346
347    /// Semantic action for non-terminal 'ConverseTerm'
348    fn converse_term(&mut self, _arg: &ConverseTerm) -> Result<()> {
349        Ok(())
350    }
351
352    /// Semantic action for non-terminal 'DefaultTerm'
353    fn default_term(&mut self, _arg: &DefaultTerm) -> Result<()> {
354        Ok(())
355    }
356
357    /// Semantic action for non-terminal 'ElseTerm'
358    fn else_term(&mut self, _arg: &ElseTerm) -> Result<()> {
359        Ok(())
360    }
361
362    /// Semantic action for non-terminal 'EmbedTerm'
363    fn embed_term(&mut self, _arg: &EmbedTerm) -> Result<()> {
364        Ok(())
365    }
366
367    /// Semantic action for non-terminal 'EnumTerm'
368    fn enum_term(&mut self, _arg: &EnumTerm) -> Result<()> {
369        Ok(())
370    }
371
372    /// Semantic action for non-terminal 'F32Term'
373    fn f32_term(&mut self, _arg: &F32Term) -> Result<()> {
374        Ok(())
375    }
376
377    /// Semantic action for non-terminal 'F64Term'
378    fn f64_term(&mut self, _arg: &F64Term) -> Result<()> {
379        Ok(())
380    }
381
382    /// Semantic action for non-terminal 'FalseTerm'
383    fn false_term(&mut self, _arg: &FalseTerm) -> Result<()> {
384        Ok(())
385    }
386
387    /// Semantic action for non-terminal 'FinalTerm'
388    fn final_term(&mut self, _arg: &FinalTerm) -> Result<()> {
389        Ok(())
390    }
391
392    /// Semantic action for non-terminal 'ForTerm'
393    fn for_term(&mut self, _arg: &ForTerm) -> Result<()> {
394        Ok(())
395    }
396
397    /// Semantic action for non-terminal 'FunctionTerm'
398    fn function_term(&mut self, _arg: &FunctionTerm) -> Result<()> {
399        Ok(())
400    }
401
402    /// Semantic action for non-terminal 'I8Term'
403    fn i8_term(&mut self, _arg: &I8Term) -> Result<()> {
404        Ok(())
405    }
406
407    /// Semantic action for non-terminal 'I16Term'
408    fn i16_term(&mut self, _arg: &I16Term) -> Result<()> {
409        Ok(())
410    }
411
412    /// Semantic action for non-terminal 'I32Term'
413    fn i32_term(&mut self, _arg: &I32Term) -> Result<()> {
414        Ok(())
415    }
416
417    /// Semantic action for non-terminal 'I64Term'
418    fn i64_term(&mut self, _arg: &I64Term) -> Result<()> {
419        Ok(())
420    }
421
422    /// Semantic action for non-terminal 'IfResetTerm'
423    fn if_reset_term(&mut self, _arg: &IfResetTerm) -> Result<()> {
424        Ok(())
425    }
426
427    /// Semantic action for non-terminal 'IfTerm'
428    fn if_term(&mut self, _arg: &IfTerm) -> Result<()> {
429        Ok(())
430    }
431
432    /// Semantic action for non-terminal 'ImportTerm'
433    fn import_term(&mut self, _arg: &ImportTerm) -> Result<()> {
434        Ok(())
435    }
436
437    /// Semantic action for non-terminal 'IncludeTerm'
438    fn include_term(&mut self, _arg: &IncludeTerm) -> Result<()> {
439        Ok(())
440    }
441
442    /// Semantic action for non-terminal 'InitialTerm'
443    fn initial_term(&mut self, _arg: &InitialTerm) -> Result<()> {
444        Ok(())
445    }
446
447    /// Semantic action for non-terminal 'InoutTerm'
448    fn inout_term(&mut self, _arg: &InoutTerm) -> Result<()> {
449        Ok(())
450    }
451
452    /// Semantic action for non-terminal 'InputTerm'
453    fn input_term(&mut self, _arg: &InputTerm) -> Result<()> {
454        Ok(())
455    }
456
457    /// Semantic action for non-terminal 'InsideTerm'
458    fn inside_term(&mut self, _arg: &InsideTerm) -> Result<()> {
459        Ok(())
460    }
461
462    /// Semantic action for non-terminal 'InstTerm'
463    fn inst_term(&mut self, _arg: &InstTerm) -> Result<()> {
464        Ok(())
465    }
466
467    /// Semantic action for non-terminal 'InterfaceTerm'
468    fn interface_term(&mut self, _arg: &InterfaceTerm) -> Result<()> {
469        Ok(())
470    }
471
472    /// Semantic action for non-terminal 'InTerm'
473    fn in_term(&mut self, _arg: &InTerm) -> Result<()> {
474        Ok(())
475    }
476
477    /// Semantic action for non-terminal 'LetTerm'
478    fn let_term(&mut self, _arg: &LetTerm) -> Result<()> {
479        Ok(())
480    }
481
482    /// Semantic action for non-terminal 'LogicTerm'
483    fn logic_term(&mut self, _arg: &LogicTerm) -> Result<()> {
484        Ok(())
485    }
486
487    /// Semantic action for non-terminal 'LsbTerm'
488    fn lsb_term(&mut self, _arg: &LsbTerm) -> Result<()> {
489        Ok(())
490    }
491
492    /// Semantic action for non-terminal 'ModportTerm'
493    fn modport_term(&mut self, _arg: &ModportTerm) -> Result<()> {
494        Ok(())
495    }
496
497    /// Semantic action for non-terminal 'ModuleTerm'
498    fn module_term(&mut self, _arg: &ModuleTerm) -> Result<()> {
499        Ok(())
500    }
501
502    /// Semantic action for non-terminal 'MsbTerm'
503    fn msb_term(&mut self, _arg: &MsbTerm) -> Result<()> {
504        Ok(())
505    }
506
507    /// Semantic action for non-terminal 'OutputTerm'
508    fn output_term(&mut self, _arg: &OutputTerm) -> Result<()> {
509        Ok(())
510    }
511
512    /// Semantic action for non-terminal 'OutsideTerm'
513    fn outside_term(&mut self, _arg: &OutsideTerm) -> Result<()> {
514        Ok(())
515    }
516
517    /// Semantic action for non-terminal 'PackageTerm'
518    fn package_term(&mut self, _arg: &PackageTerm) -> Result<()> {
519        Ok(())
520    }
521
522    /// Semantic action for non-terminal 'ParamTerm'
523    fn param_term(&mut self, _arg: &ParamTerm) -> Result<()> {
524        Ok(())
525    }
526
527    /// Semantic action for non-terminal 'ProtoTerm'
528    fn proto_term(&mut self, _arg: &ProtoTerm) -> Result<()> {
529        Ok(())
530    }
531
532    /// Semantic action for non-terminal 'PubTerm'
533    fn pub_term(&mut self, _arg: &PubTerm) -> Result<()> {
534        Ok(())
535    }
536
537    /// Semantic action for non-terminal 'RepeatTerm'
538    fn repeat_term(&mut self, _arg: &RepeatTerm) -> Result<()> {
539        Ok(())
540    }
541
542    /// Semantic action for non-terminal 'ResetTerm'
543    fn reset_term(&mut self, _arg: &ResetTerm) -> Result<()> {
544        Ok(())
545    }
546
547    /// Semantic action for non-terminal 'ResetAsyncHighTerm'
548    fn reset_async_high_term(&mut self, _arg: &ResetAsyncHighTerm) -> Result<()> {
549        Ok(())
550    }
551
552    /// Semantic action for non-terminal 'ResetAsyncLowTerm'
553    fn reset_async_low_term(&mut self, _arg: &ResetAsyncLowTerm) -> Result<()> {
554        Ok(())
555    }
556
557    /// Semantic action for non-terminal 'ResetSyncHighTerm'
558    fn reset_sync_high_term(&mut self, _arg: &ResetSyncHighTerm) -> Result<()> {
559        Ok(())
560    }
561
562    /// Semantic action for non-terminal 'ResetSyncLowTerm'
563    fn reset_sync_low_term(&mut self, _arg: &ResetSyncLowTerm) -> Result<()> {
564        Ok(())
565    }
566
567    /// Semantic action for non-terminal 'ReturnTerm'
568    fn return_term(&mut self, _arg: &ReturnTerm) -> Result<()> {
569        Ok(())
570    }
571
572    /// Semantic action for non-terminal 'RevTerm'
573    fn rev_term(&mut self, _arg: &RevTerm) -> Result<()> {
574        Ok(())
575    }
576
577    /// Semantic action for non-terminal 'BreakTerm'
578    fn break_term(&mut self, _arg: &BreakTerm) -> Result<()> {
579        Ok(())
580    }
581
582    /// Semantic action for non-terminal 'SameTerm'
583    fn same_term(&mut self, _arg: &SameTerm) -> Result<()> {
584        Ok(())
585    }
586
587    /// Semantic action for non-terminal 'SignedTerm'
588    fn signed_term(&mut self, _arg: &SignedTerm) -> Result<()> {
589        Ok(())
590    }
591
592    /// Semantic action for non-terminal 'StepTerm'
593    fn step_term(&mut self, _arg: &StepTerm) -> Result<()> {
594        Ok(())
595    }
596
597    /// Semantic action for non-terminal 'StringTerm'
598    fn string_term(&mut self, _arg: &StringTerm) -> Result<()> {
599        Ok(())
600    }
601
602    /// Semantic action for non-terminal 'StructTerm'
603    fn struct_term(&mut self, _arg: &StructTerm) -> Result<()> {
604        Ok(())
605    }
606
607    /// Semantic action for non-terminal 'SwitchTerm'
608    fn switch_term(&mut self, _arg: &SwitchTerm) -> Result<()> {
609        Ok(())
610    }
611
612    /// Semantic action for non-terminal 'TriTerm'
613    fn tri_term(&mut self, _arg: &TriTerm) -> Result<()> {
614        Ok(())
615    }
616
617    /// Semantic action for non-terminal 'TrueTerm'
618    fn true_term(&mut self, _arg: &TrueTerm) -> Result<()> {
619        Ok(())
620    }
621
622    /// Semantic action for non-terminal 'TypeTerm'
623    fn type_term(&mut self, _arg: &TypeTerm) -> Result<()> {
624        Ok(())
625    }
626
627    /// Semantic action for non-terminal 'P8Term'
628    fn p8_term(&mut self, _arg: &P8Term) -> Result<()> {
629        Ok(())
630    }
631
632    /// Semantic action for non-terminal 'P16Term'
633    fn p16_term(&mut self, _arg: &P16Term) -> Result<()> {
634        Ok(())
635    }
636
637    /// Semantic action for non-terminal 'P32Term'
638    fn p32_term(&mut self, _arg: &P32Term) -> Result<()> {
639        Ok(())
640    }
641
642    /// Semantic action for non-terminal 'P64Term'
643    fn p64_term(&mut self, _arg: &P64Term) -> Result<()> {
644        Ok(())
645    }
646
647    /// Semantic action for non-terminal 'U8Term'
648    fn u8_term(&mut self, _arg: &U8Term) -> Result<()> {
649        Ok(())
650    }
651
652    /// Semantic action for non-terminal 'U16Term'
653    fn u16_term(&mut self, _arg: &U16Term) -> Result<()> {
654        Ok(())
655    }
656
657    /// Semantic action for non-terminal 'U32Term'
658    fn u32_term(&mut self, _arg: &U32Term) -> Result<()> {
659        Ok(())
660    }
661
662    /// Semantic action for non-terminal 'U64Term'
663    fn u64_term(&mut self, _arg: &U64Term) -> Result<()> {
664        Ok(())
665    }
666
667    /// Semantic action for non-terminal 'UnionTerm'
668    fn union_term(&mut self, _arg: &UnionTerm) -> Result<()> {
669        Ok(())
670    }
671
672    /// Semantic action for non-terminal 'UnsafeTerm'
673    fn unsafe_term(&mut self, _arg: &UnsafeTerm) -> Result<()> {
674        Ok(())
675    }
676
677    /// Semantic action for non-terminal 'VarTerm'
678    fn var_term(&mut self, _arg: &VarTerm) -> Result<()> {
679        Ok(())
680    }
681
682    /// Semantic action for non-terminal 'DollarIdentifierTerm'
683    fn dollar_identifier_term(&mut self, _arg: &DollarIdentifierTerm) -> Result<()> {
684        Ok(())
685    }
686
687    /// Semantic action for non-terminal 'IdentifierTerm'
688    fn identifier_term(&mut self, _arg: &IdentifierTerm) -> Result<()> {
689        Ok(())
690    }
691
692    /// Semantic action for non-terminal 'AnyTerm'
693    fn any_term(&mut self, _arg: &AnyTerm) -> Result<()> {
694        Ok(())
695    }
696
697    /// Semantic action for non-terminal 'Comments'
698    fn comments(&mut self, _arg: &Comments) -> Result<()> {
699        Ok(())
700    }
701
702    /// Semantic action for non-terminal 'StartToken'
703    fn start_token(&mut self, _arg: &StartToken) -> Result<()> {
704        Ok(())
705    }
706
707    /// Semantic action for non-terminal 'StringLiteralToken'
708    fn string_literal_token(&mut self, _arg: &StringLiteralToken) -> Result<()> {
709        Ok(())
710    }
711
712    /// Semantic action for non-terminal 'ExponentToken'
713    fn exponent_token(&mut self, _arg: &ExponentToken) -> Result<()> {
714        Ok(())
715    }
716
717    /// Semantic action for non-terminal 'FixedPointToken'
718    fn fixed_point_token(&mut self, _arg: &FixedPointToken) -> Result<()> {
719        Ok(())
720    }
721
722    /// Semantic action for non-terminal 'BasedToken'
723    fn based_token(&mut self, _arg: &BasedToken) -> Result<()> {
724        Ok(())
725    }
726
727    /// Semantic action for non-terminal 'BaseLessToken'
728    fn base_less_token(&mut self, _arg: &BaseLessToken) -> Result<()> {
729        Ok(())
730    }
731
732    /// Semantic action for non-terminal 'AllBitToken'
733    fn all_bit_token(&mut self, _arg: &AllBitToken) -> Result<()> {
734        Ok(())
735    }
736
737    /// Semantic action for non-terminal 'AssignmentOperatorToken'
738    fn assignment_operator_token(&mut self, _arg: &AssignmentOperatorToken) -> Result<()> {
739        Ok(())
740    }
741
742    /// Semantic action for non-terminal 'DiamondOperatorToken'
743    fn diamond_operator_token(&mut self, _arg: &DiamondOperatorToken) -> Result<()> {
744        Ok(())
745    }
746
747    /// Semantic action for non-terminal 'Operator01Token'
748    fn operator01_token(&mut self, _arg: &Operator01Token) -> Result<()> {
749        Ok(())
750    }
751
752    /// Semantic action for non-terminal 'Operator02Token'
753    fn operator02_token(&mut self, _arg: &Operator02Token) -> Result<()> {
754        Ok(())
755    }
756
757    /// Semantic action for non-terminal 'Operator03Token'
758    fn operator03_token(&mut self, _arg: &Operator03Token) -> Result<()> {
759        Ok(())
760    }
761
762    /// Semantic action for non-terminal 'Operator04Token'
763    fn operator04_token(&mut self, _arg: &Operator04Token) -> Result<()> {
764        Ok(())
765    }
766
767    /// Semantic action for non-terminal 'Operator05Token'
768    fn operator05_token(&mut self, _arg: &Operator05Token) -> Result<()> {
769        Ok(())
770    }
771
772    /// Semantic action for non-terminal 'Operator06Token'
773    fn operator06_token(&mut self, _arg: &Operator06Token) -> Result<()> {
774        Ok(())
775    }
776
777    /// Semantic action for non-terminal 'Operator07Token'
778    fn operator07_token(&mut self, _arg: &Operator07Token) -> Result<()> {
779        Ok(())
780    }
781
782    /// Semantic action for non-terminal 'Operator08Token'
783    fn operator08_token(&mut self, _arg: &Operator08Token) -> Result<()> {
784        Ok(())
785    }
786
787    /// Semantic action for non-terminal 'UnaryOperatorToken'
788    fn unary_operator_token(&mut self, _arg: &UnaryOperatorToken) -> Result<()> {
789        Ok(())
790    }
791
792    /// Semantic action for non-terminal 'ColonToken'
793    fn colon_token(&mut self, _arg: &ColonToken) -> Result<()> {
794        Ok(())
795    }
796
797    /// Semantic action for non-terminal 'ColonColonLAngleToken'
798    fn colon_colon_l_angle_token(&mut self, _arg: &ColonColonLAngleToken) -> Result<()> {
799        Ok(())
800    }
801
802    /// Semantic action for non-terminal 'ColonColonToken'
803    fn colon_colon_token(&mut self, _arg: &ColonColonToken) -> Result<()> {
804        Ok(())
805    }
806
807    /// Semantic action for non-terminal 'CommaToken'
808    fn comma_token(&mut self, _arg: &CommaToken) -> Result<()> {
809        Ok(())
810    }
811
812    /// Semantic action for non-terminal 'DotDotToken'
813    fn dot_dot_token(&mut self, _arg: &DotDotToken) -> Result<()> {
814        Ok(())
815    }
816
817    /// Semantic action for non-terminal 'DotDotEquToken'
818    fn dot_dot_equ_token(&mut self, _arg: &DotDotEquToken) -> Result<()> {
819        Ok(())
820    }
821
822    /// Semantic action for non-terminal 'DotToken'
823    fn dot_token(&mut self, _arg: &DotToken) -> Result<()> {
824        Ok(())
825    }
826
827    /// Semantic action for non-terminal 'EquToken'
828    fn equ_token(&mut self, _arg: &EquToken) -> Result<()> {
829        Ok(())
830    }
831
832    /// Semantic action for non-terminal 'HashLBracketToken'
833    fn hash_l_bracket_token(&mut self, _arg: &HashLBracketToken) -> Result<()> {
834        Ok(())
835    }
836
837    /// Semantic action for non-terminal 'HashToken'
838    fn hash_token(&mut self, _arg: &HashToken) -> Result<()> {
839        Ok(())
840    }
841
842    /// Semantic action for non-terminal 'QuestionToken'
843    fn question_token(&mut self, _arg: &QuestionToken) -> Result<()> {
844        Ok(())
845    }
846
847    /// Semantic action for non-terminal 'QuoteLBraceToken'
848    fn quote_l_brace_token(&mut self, _arg: &QuoteLBraceToken) -> Result<()> {
849        Ok(())
850    }
851
852    /// Semantic action for non-terminal 'QuoteToken'
853    fn quote_token(&mut self, _arg: &QuoteToken) -> Result<()> {
854        Ok(())
855    }
856
857    /// Semantic action for non-terminal 'LAngleToken'
858    fn l_angle_token(&mut self, _arg: &LAngleToken) -> Result<()> {
859        Ok(())
860    }
861
862    /// Semantic action for non-terminal 'EmbedLBraceToken'
863    fn embed_l_brace_token(&mut self, _arg: &EmbedLBraceToken) -> Result<()> {
864        Ok(())
865    }
866
867    /// Semantic action for non-terminal 'EscapedLBraceToken'
868    fn escaped_l_brace_token(&mut self, _arg: &EscapedLBraceToken) -> Result<()> {
869        Ok(())
870    }
871
872    /// Semantic action for non-terminal 'TripleLBraceToken'
873    fn triple_l_brace_token(&mut self, _arg: &TripleLBraceToken) -> Result<()> {
874        Ok(())
875    }
876
877    /// Semantic action for non-terminal 'LBraceToken'
878    fn l_brace_token(&mut self, _arg: &LBraceToken) -> Result<()> {
879        Ok(())
880    }
881
882    /// Semantic action for non-terminal 'LBracketToken'
883    fn l_bracket_token(&mut self, _arg: &LBracketToken) -> Result<()> {
884        Ok(())
885    }
886
887    /// Semantic action for non-terminal 'LParenToken'
888    fn l_paren_token(&mut self, _arg: &LParenToken) -> Result<()> {
889        Ok(())
890    }
891
892    /// Semantic action for non-terminal 'LTMinusToken'
893    fn l_t_minus_token(&mut self, _arg: &LTMinusToken) -> Result<()> {
894        Ok(())
895    }
896
897    /// Semantic action for non-terminal 'MinusColonToken'
898    fn minus_colon_token(&mut self, _arg: &MinusColonToken) -> Result<()> {
899        Ok(())
900    }
901
902    /// Semantic action for non-terminal 'MinusGTToken'
903    fn minus_g_t_token(&mut self, _arg: &MinusGTToken) -> Result<()> {
904        Ok(())
905    }
906
907    /// Semantic action for non-terminal 'PlusColonToken'
908    fn plus_colon_token(&mut self, _arg: &PlusColonToken) -> Result<()> {
909        Ok(())
910    }
911
912    /// Semantic action for non-terminal 'RAngleToken'
913    fn r_angle_token(&mut self, _arg: &RAngleToken) -> Result<()> {
914        Ok(())
915    }
916
917    /// Semantic action for non-terminal 'EmbedRBraceToken'
918    fn embed_r_brace_token(&mut self, _arg: &EmbedRBraceToken) -> Result<()> {
919        Ok(())
920    }
921
922    /// Semantic action for non-terminal 'EscapedRBraceToken'
923    fn escaped_r_brace_token(&mut self, _arg: &EscapedRBraceToken) -> Result<()> {
924        Ok(())
925    }
926
927    /// Semantic action for non-terminal 'TripleRBraceToken'
928    fn triple_r_brace_token(&mut self, _arg: &TripleRBraceToken) -> Result<()> {
929        Ok(())
930    }
931
932    /// Semantic action for non-terminal 'RBraceToken'
933    fn r_brace_token(&mut self, _arg: &RBraceToken) -> Result<()> {
934        Ok(())
935    }
936
937    /// Semantic action for non-terminal 'RBracketToken'
938    fn r_bracket_token(&mut self, _arg: &RBracketToken) -> Result<()> {
939        Ok(())
940    }
941
942    /// Semantic action for non-terminal 'RParenToken'
943    fn r_paren_token(&mut self, _arg: &RParenToken) -> Result<()> {
944        Ok(())
945    }
946
947    /// Semantic action for non-terminal 'SemicolonToken'
948    fn semicolon_token(&mut self, _arg: &SemicolonToken) -> Result<()> {
949        Ok(())
950    }
951
952    /// Semantic action for non-terminal 'StarToken'
953    fn star_token(&mut self, _arg: &StarToken) -> Result<()> {
954        Ok(())
955    }
956
957    /// Semantic action for non-terminal 'AliasToken'
958    fn alias_token(&mut self, _arg: &AliasToken) -> Result<()> {
959        Ok(())
960    }
961
962    /// Semantic action for non-terminal 'AlwaysCombToken'
963    fn always_comb_token(&mut self, _arg: &AlwaysCombToken) -> Result<()> {
964        Ok(())
965    }
966
967    /// Semantic action for non-terminal 'AlwaysFfToken'
968    fn always_ff_token(&mut self, _arg: &AlwaysFfToken) -> Result<()> {
969        Ok(())
970    }
971
972    /// Semantic action for non-terminal 'AsToken'
973    fn as_token(&mut self, _arg: &AsToken) -> Result<()> {
974        Ok(())
975    }
976
977    /// Semantic action for non-terminal 'AssignToken'
978    fn assign_token(&mut self, _arg: &AssignToken) -> Result<()> {
979        Ok(())
980    }
981
982    /// Semantic action for non-terminal 'BindToken'
983    fn bind_token(&mut self, _arg: &BindToken) -> Result<()> {
984        Ok(())
985    }
986
987    /// Semantic action for non-terminal 'BitToken'
988    fn bit_token(&mut self, _arg: &BitToken) -> Result<()> {
989        Ok(())
990    }
991
992    /// Semantic action for non-terminal 'BlockToken'
993    fn block_token(&mut self, _arg: &BlockToken) -> Result<()> {
994        Ok(())
995    }
996
997    /// Semantic action for non-terminal 'BBoolToken'
998    fn b_bool_token(&mut self, _arg: &BBoolToken) -> Result<()> {
999        Ok(())
1000    }
1001
1002    /// Semantic action for non-terminal 'LBoolToken'
1003    fn l_bool_token(&mut self, _arg: &LBoolToken) -> Result<()> {
1004        Ok(())
1005    }
1006
1007    /// Semantic action for non-terminal 'CaseToken'
1008    fn case_token(&mut self, _arg: &CaseToken) -> Result<()> {
1009        Ok(())
1010    }
1011
1012    /// Semantic action for non-terminal 'ClockToken'
1013    fn clock_token(&mut self, _arg: &ClockToken) -> Result<()> {
1014        Ok(())
1015    }
1016
1017    /// Semantic action for non-terminal 'ClockPosedgeToken'
1018    fn clock_posedge_token(&mut self, _arg: &ClockPosedgeToken) -> Result<()> {
1019        Ok(())
1020    }
1021
1022    /// Semantic action for non-terminal 'ClockNegedgeToken'
1023    fn clock_negedge_token(&mut self, _arg: &ClockNegedgeToken) -> Result<()> {
1024        Ok(())
1025    }
1026
1027    /// Semantic action for non-terminal 'ConnectToken'
1028    fn connect_token(&mut self, _arg: &ConnectToken) -> Result<()> {
1029        Ok(())
1030    }
1031
1032    /// Semantic action for non-terminal 'ConstToken'
1033    fn const_token(&mut self, _arg: &ConstToken) -> Result<()> {
1034        Ok(())
1035    }
1036
1037    /// Semantic action for non-terminal 'ConverseToken'
1038    fn converse_token(&mut self, _arg: &ConverseToken) -> Result<()> {
1039        Ok(())
1040    }
1041
1042    /// Semantic action for non-terminal 'DefaultToken'
1043    fn default_token(&mut self, _arg: &DefaultToken) -> Result<()> {
1044        Ok(())
1045    }
1046
1047    /// Semantic action for non-terminal 'ElseToken'
1048    fn else_token(&mut self, _arg: &ElseToken) -> Result<()> {
1049        Ok(())
1050    }
1051
1052    /// Semantic action for non-terminal 'EmbedToken'
1053    fn embed_token(&mut self, _arg: &EmbedToken) -> Result<()> {
1054        Ok(())
1055    }
1056
1057    /// Semantic action for non-terminal 'EnumToken'
1058    fn enum_token(&mut self, _arg: &EnumToken) -> Result<()> {
1059        Ok(())
1060    }
1061
1062    /// Semantic action for non-terminal 'F32Token'
1063    fn f32_token(&mut self, _arg: &F32Token) -> Result<()> {
1064        Ok(())
1065    }
1066
1067    /// Semantic action for non-terminal 'F64Token'
1068    fn f64_token(&mut self, _arg: &F64Token) -> Result<()> {
1069        Ok(())
1070    }
1071
1072    /// Semantic action for non-terminal 'FalseToken'
1073    fn false_token(&mut self, _arg: &FalseToken) -> Result<()> {
1074        Ok(())
1075    }
1076
1077    /// Semantic action for non-terminal 'FinalToken'
1078    fn final_token(&mut self, _arg: &FinalToken) -> Result<()> {
1079        Ok(())
1080    }
1081
1082    /// Semantic action for non-terminal 'ForToken'
1083    fn for_token(&mut self, _arg: &ForToken) -> Result<()> {
1084        Ok(())
1085    }
1086
1087    /// Semantic action for non-terminal 'FunctionToken'
1088    fn function_token(&mut self, _arg: &FunctionToken) -> Result<()> {
1089        Ok(())
1090    }
1091
1092    /// Semantic action for non-terminal 'I8Token'
1093    fn i8_token(&mut self, _arg: &I8Token) -> Result<()> {
1094        Ok(())
1095    }
1096
1097    /// Semantic action for non-terminal 'I16Token'
1098    fn i16_token(&mut self, _arg: &I16Token) -> Result<()> {
1099        Ok(())
1100    }
1101
1102    /// Semantic action for non-terminal 'I32Token'
1103    fn i32_token(&mut self, _arg: &I32Token) -> Result<()> {
1104        Ok(())
1105    }
1106
1107    /// Semantic action for non-terminal 'I64Token'
1108    fn i64_token(&mut self, _arg: &I64Token) -> Result<()> {
1109        Ok(())
1110    }
1111
1112    /// Semantic action for non-terminal 'IfResetToken'
1113    fn if_reset_token(&mut self, _arg: &IfResetToken) -> Result<()> {
1114        Ok(())
1115    }
1116
1117    /// Semantic action for non-terminal 'IfToken'
1118    fn if_token(&mut self, _arg: &IfToken) -> Result<()> {
1119        Ok(())
1120    }
1121
1122    /// Semantic action for non-terminal 'ImportToken'
1123    fn import_token(&mut self, _arg: &ImportToken) -> Result<()> {
1124        Ok(())
1125    }
1126
1127    /// Semantic action for non-terminal 'IncludeToken'
1128    fn include_token(&mut self, _arg: &IncludeToken) -> Result<()> {
1129        Ok(())
1130    }
1131
1132    /// Semantic action for non-terminal 'InitialToken'
1133    fn initial_token(&mut self, _arg: &InitialToken) -> Result<()> {
1134        Ok(())
1135    }
1136
1137    /// Semantic action for non-terminal 'InoutToken'
1138    fn inout_token(&mut self, _arg: &InoutToken) -> Result<()> {
1139        Ok(())
1140    }
1141
1142    /// Semantic action for non-terminal 'InputToken'
1143    fn input_token(&mut self, _arg: &InputToken) -> Result<()> {
1144        Ok(())
1145    }
1146
1147    /// Semantic action for non-terminal 'InsideToken'
1148    fn inside_token(&mut self, _arg: &InsideToken) -> Result<()> {
1149        Ok(())
1150    }
1151
1152    /// Semantic action for non-terminal 'InstToken'
1153    fn inst_token(&mut self, _arg: &InstToken) -> Result<()> {
1154        Ok(())
1155    }
1156
1157    /// Semantic action for non-terminal 'InterfaceToken'
1158    fn interface_token(&mut self, _arg: &InterfaceToken) -> Result<()> {
1159        Ok(())
1160    }
1161
1162    /// Semantic action for non-terminal 'InToken'
1163    fn in_token(&mut self, _arg: &InToken) -> Result<()> {
1164        Ok(())
1165    }
1166
1167    /// Semantic action for non-terminal 'LetToken'
1168    fn let_token(&mut self, _arg: &LetToken) -> Result<()> {
1169        Ok(())
1170    }
1171
1172    /// Semantic action for non-terminal 'LogicToken'
1173    fn logic_token(&mut self, _arg: &LogicToken) -> Result<()> {
1174        Ok(())
1175    }
1176
1177    /// Semantic action for non-terminal 'LsbToken'
1178    fn lsb_token(&mut self, _arg: &LsbToken) -> Result<()> {
1179        Ok(())
1180    }
1181
1182    /// Semantic action for non-terminal 'ModportToken'
1183    fn modport_token(&mut self, _arg: &ModportToken) -> Result<()> {
1184        Ok(())
1185    }
1186
1187    /// Semantic action for non-terminal 'ModuleToken'
1188    fn module_token(&mut self, _arg: &ModuleToken) -> Result<()> {
1189        Ok(())
1190    }
1191
1192    /// Semantic action for non-terminal 'MsbToken'
1193    fn msb_token(&mut self, _arg: &MsbToken) -> Result<()> {
1194        Ok(())
1195    }
1196
1197    /// Semantic action for non-terminal 'OutputToken'
1198    fn output_token(&mut self, _arg: &OutputToken) -> Result<()> {
1199        Ok(())
1200    }
1201
1202    /// Semantic action for non-terminal 'OutsideToken'
1203    fn outside_token(&mut self, _arg: &OutsideToken) -> Result<()> {
1204        Ok(())
1205    }
1206
1207    /// Semantic action for non-terminal 'PackageToken'
1208    fn package_token(&mut self, _arg: &PackageToken) -> Result<()> {
1209        Ok(())
1210    }
1211
1212    /// Semantic action for non-terminal 'ParamToken'
1213    fn param_token(&mut self, _arg: &ParamToken) -> Result<()> {
1214        Ok(())
1215    }
1216
1217    /// Semantic action for non-terminal 'ProtoToken'
1218    fn proto_token(&mut self, _arg: &ProtoToken) -> Result<()> {
1219        Ok(())
1220    }
1221
1222    /// Semantic action for non-terminal 'PubToken'
1223    fn pub_token(&mut self, _arg: &PubToken) -> Result<()> {
1224        Ok(())
1225    }
1226
1227    /// Semantic action for non-terminal 'RepeatToken'
1228    fn repeat_token(&mut self, _arg: &RepeatToken) -> Result<()> {
1229        Ok(())
1230    }
1231
1232    /// Semantic action for non-terminal 'ResetToken'
1233    fn reset_token(&mut self, _arg: &ResetToken) -> Result<()> {
1234        Ok(())
1235    }
1236
1237    /// Semantic action for non-terminal 'ResetAsyncHighToken'
1238    fn reset_async_high_token(&mut self, _arg: &ResetAsyncHighToken) -> Result<()> {
1239        Ok(())
1240    }
1241
1242    /// Semantic action for non-terminal 'ResetAsyncLowToken'
1243    fn reset_async_low_token(&mut self, _arg: &ResetAsyncLowToken) -> Result<()> {
1244        Ok(())
1245    }
1246
1247    /// Semantic action for non-terminal 'ResetSyncHighToken'
1248    fn reset_sync_high_token(&mut self, _arg: &ResetSyncHighToken) -> Result<()> {
1249        Ok(())
1250    }
1251
1252    /// Semantic action for non-terminal 'ResetSyncLowToken'
1253    fn reset_sync_low_token(&mut self, _arg: &ResetSyncLowToken) -> Result<()> {
1254        Ok(())
1255    }
1256
1257    /// Semantic action for non-terminal 'ReturnToken'
1258    fn return_token(&mut self, _arg: &ReturnToken) -> Result<()> {
1259        Ok(())
1260    }
1261
1262    /// Semantic action for non-terminal 'RevToken'
1263    fn rev_token(&mut self, _arg: &RevToken) -> Result<()> {
1264        Ok(())
1265    }
1266
1267    /// Semantic action for non-terminal 'BreakToken'
1268    fn break_token(&mut self, _arg: &BreakToken) -> Result<()> {
1269        Ok(())
1270    }
1271
1272    /// Semantic action for non-terminal 'SameToken'
1273    fn same_token(&mut self, _arg: &SameToken) -> Result<()> {
1274        Ok(())
1275    }
1276
1277    /// Semantic action for non-terminal 'SignedToken'
1278    fn signed_token(&mut self, _arg: &SignedToken) -> Result<()> {
1279        Ok(())
1280    }
1281
1282    /// Semantic action for non-terminal 'StepToken'
1283    fn step_token(&mut self, _arg: &StepToken) -> Result<()> {
1284        Ok(())
1285    }
1286
1287    /// Semantic action for non-terminal 'StringToken'
1288    fn string_token(&mut self, _arg: &StringToken) -> Result<()> {
1289        Ok(())
1290    }
1291
1292    /// Semantic action for non-terminal 'StructToken'
1293    fn struct_token(&mut self, _arg: &StructToken) -> Result<()> {
1294        Ok(())
1295    }
1296
1297    /// Semantic action for non-terminal 'SwitchToken'
1298    fn switch_token(&mut self, _arg: &SwitchToken) -> Result<()> {
1299        Ok(())
1300    }
1301
1302    /// Semantic action for non-terminal 'TriToken'
1303    fn tri_token(&mut self, _arg: &TriToken) -> Result<()> {
1304        Ok(())
1305    }
1306
1307    /// Semantic action for non-terminal 'TrueToken'
1308    fn true_token(&mut self, _arg: &TrueToken) -> Result<()> {
1309        Ok(())
1310    }
1311
1312    /// Semantic action for non-terminal 'TypeToken'
1313    fn type_token(&mut self, _arg: &TypeToken) -> Result<()> {
1314        Ok(())
1315    }
1316
1317    /// Semantic action for non-terminal 'P8Token'
1318    fn p8_token(&mut self, _arg: &P8Token) -> Result<()> {
1319        Ok(())
1320    }
1321
1322    /// Semantic action for non-terminal 'P16Token'
1323    fn p16_token(&mut self, _arg: &P16Token) -> Result<()> {
1324        Ok(())
1325    }
1326
1327    /// Semantic action for non-terminal 'P32Token'
1328    fn p32_token(&mut self, _arg: &P32Token) -> Result<()> {
1329        Ok(())
1330    }
1331
1332    /// Semantic action for non-terminal 'P64Token'
1333    fn p64_token(&mut self, _arg: &P64Token) -> Result<()> {
1334        Ok(())
1335    }
1336
1337    /// Semantic action for non-terminal 'U8Token'
1338    fn u8_token(&mut self, _arg: &U8Token) -> Result<()> {
1339        Ok(())
1340    }
1341
1342    /// Semantic action for non-terminal 'U16Token'
1343    fn u16_token(&mut self, _arg: &U16Token) -> Result<()> {
1344        Ok(())
1345    }
1346
1347    /// Semantic action for non-terminal 'U32Token'
1348    fn u32_token(&mut self, _arg: &U32Token) -> Result<()> {
1349        Ok(())
1350    }
1351
1352    /// Semantic action for non-terminal 'U64Token'
1353    fn u64_token(&mut self, _arg: &U64Token) -> Result<()> {
1354        Ok(())
1355    }
1356
1357    /// Semantic action for non-terminal 'UnionToken'
1358    fn union_token(&mut self, _arg: &UnionToken) -> Result<()> {
1359        Ok(())
1360    }
1361
1362    /// Semantic action for non-terminal 'UnsafeToken'
1363    fn unsafe_token(&mut self, _arg: &UnsafeToken) -> Result<()> {
1364        Ok(())
1365    }
1366
1367    /// Semantic action for non-terminal 'VarToken'
1368    fn var_token(&mut self, _arg: &VarToken) -> Result<()> {
1369        Ok(())
1370    }
1371
1372    /// Semantic action for non-terminal 'DollarIdentifierToken'
1373    fn dollar_identifier_token(&mut self, _arg: &DollarIdentifierToken) -> Result<()> {
1374        Ok(())
1375    }
1376
1377    /// Semantic action for non-terminal 'IdentifierToken'
1378    fn identifier_token(&mut self, _arg: &IdentifierToken) -> Result<()> {
1379        Ok(())
1380    }
1381
1382    /// Semantic action for non-terminal 'AnyToken'
1383    fn any_token(&mut self, _arg: &AnyToken) -> Result<()> {
1384        Ok(())
1385    }
1386
1387    /// Semantic action for non-terminal 'Start'
1388    fn start(&mut self, _arg: &Start) -> Result<()> {
1389        Ok(())
1390    }
1391
1392    /// Semantic action for non-terminal 'StringLiteral'
1393    fn string_literal(&mut self, _arg: &StringLiteral) -> Result<()> {
1394        Ok(())
1395    }
1396
1397    /// Semantic action for non-terminal 'Exponent'
1398    fn exponent(&mut self, _arg: &Exponent) -> Result<()> {
1399        Ok(())
1400    }
1401
1402    /// Semantic action for non-terminal 'FixedPoint'
1403    fn fixed_point(&mut self, _arg: &FixedPoint) -> Result<()> {
1404        Ok(())
1405    }
1406
1407    /// Semantic action for non-terminal 'Based'
1408    fn based(&mut self, _arg: &Based) -> Result<()> {
1409        Ok(())
1410    }
1411
1412    /// Semantic action for non-terminal 'BaseLess'
1413    fn base_less(&mut self, _arg: &BaseLess) -> Result<()> {
1414        Ok(())
1415    }
1416
1417    /// Semantic action for non-terminal 'AllBit'
1418    fn all_bit(&mut self, _arg: &AllBit) -> Result<()> {
1419        Ok(())
1420    }
1421
1422    /// Semantic action for non-terminal 'AssignmentOperator'
1423    fn assignment_operator(&mut self, _arg: &AssignmentOperator) -> Result<()> {
1424        Ok(())
1425    }
1426
1427    /// Semantic action for non-terminal 'DiamondOperator'
1428    fn diamond_operator(&mut self, _arg: &DiamondOperator) -> Result<()> {
1429        Ok(())
1430    }
1431
1432    /// Semantic action for non-terminal 'Operator01'
1433    fn operator01(&mut self, _arg: &Operator01) -> Result<()> {
1434        Ok(())
1435    }
1436
1437    /// Semantic action for non-terminal 'Operator02'
1438    fn operator02(&mut self, _arg: &Operator02) -> Result<()> {
1439        Ok(())
1440    }
1441
1442    /// Semantic action for non-terminal 'Operator03'
1443    fn operator03(&mut self, _arg: &Operator03) -> Result<()> {
1444        Ok(())
1445    }
1446
1447    /// Semantic action for non-terminal 'Operator04'
1448    fn operator04(&mut self, _arg: &Operator04) -> Result<()> {
1449        Ok(())
1450    }
1451
1452    /// Semantic action for non-terminal 'Operator05'
1453    fn operator05(&mut self, _arg: &Operator05) -> Result<()> {
1454        Ok(())
1455    }
1456
1457    /// Semantic action for non-terminal 'Operator06'
1458    fn operator06(&mut self, _arg: &Operator06) -> Result<()> {
1459        Ok(())
1460    }
1461
1462    /// Semantic action for non-terminal 'Operator07'
1463    fn operator07(&mut self, _arg: &Operator07) -> Result<()> {
1464        Ok(())
1465    }
1466
1467    /// Semantic action for non-terminal 'Operator08'
1468    fn operator08(&mut self, _arg: &Operator08) -> Result<()> {
1469        Ok(())
1470    }
1471
1472    /// Semantic action for non-terminal 'UnaryOperator'
1473    fn unary_operator(&mut self, _arg: &UnaryOperator) -> Result<()> {
1474        Ok(())
1475    }
1476
1477    /// Semantic action for non-terminal 'Colon'
1478    fn colon(&mut self, _arg: &Colon) -> Result<()> {
1479        Ok(())
1480    }
1481
1482    /// Semantic action for non-terminal 'ColonColonLAngle'
1483    fn colon_colon_l_angle(&mut self, _arg: &ColonColonLAngle) -> Result<()> {
1484        Ok(())
1485    }
1486
1487    /// Semantic action for non-terminal 'ColonColon'
1488    fn colon_colon(&mut self, _arg: &ColonColon) -> Result<()> {
1489        Ok(())
1490    }
1491
1492    /// Semantic action for non-terminal 'Comma'
1493    fn comma(&mut self, _arg: &Comma) -> Result<()> {
1494        Ok(())
1495    }
1496
1497    /// Semantic action for non-terminal 'DotDot'
1498    fn dot_dot(&mut self, _arg: &DotDot) -> Result<()> {
1499        Ok(())
1500    }
1501
1502    /// Semantic action for non-terminal 'DotDotEqu'
1503    fn dot_dot_equ(&mut self, _arg: &DotDotEqu) -> Result<()> {
1504        Ok(())
1505    }
1506
1507    /// Semantic action for non-terminal 'Dot'
1508    fn dot(&mut self, _arg: &Dot) -> Result<()> {
1509        Ok(())
1510    }
1511
1512    /// Semantic action for non-terminal 'Equ'
1513    fn equ(&mut self, _arg: &Equ) -> Result<()> {
1514        Ok(())
1515    }
1516
1517    /// Semantic action for non-terminal 'HashLBracket'
1518    fn hash_l_bracket(&mut self, _arg: &HashLBracket) -> Result<()> {
1519        Ok(())
1520    }
1521
1522    /// Semantic action for non-terminal 'Hash'
1523    fn hash(&mut self, _arg: &Hash) -> Result<()> {
1524        Ok(())
1525    }
1526
1527    /// Semantic action for non-terminal 'Question'
1528    fn question(&mut self, _arg: &Question) -> Result<()> {
1529        Ok(())
1530    }
1531
1532    /// Semantic action for non-terminal 'QuoteLBrace'
1533    fn quote_l_brace(&mut self, _arg: &QuoteLBrace) -> Result<()> {
1534        Ok(())
1535    }
1536
1537    /// Semantic action for non-terminal 'Quote'
1538    fn quote(&mut self, _arg: &Quote) -> Result<()> {
1539        Ok(())
1540    }
1541
1542    /// Semantic action for non-terminal 'LAngle'
1543    fn l_angle(&mut self, _arg: &LAngle) -> Result<()> {
1544        Ok(())
1545    }
1546
1547    /// Semantic action for non-terminal 'EmbedLBrace'
1548    fn embed_l_brace(&mut self, _arg: &EmbedLBrace) -> Result<()> {
1549        Ok(())
1550    }
1551
1552    /// Semantic action for non-terminal 'EscapedLBrace'
1553    fn escaped_l_brace(&mut self, _arg: &EscapedLBrace) -> Result<()> {
1554        Ok(())
1555    }
1556
1557    /// Semantic action for non-terminal 'TripleLBrace'
1558    fn triple_l_brace(&mut self, _arg: &TripleLBrace) -> Result<()> {
1559        Ok(())
1560    }
1561
1562    /// Semantic action for non-terminal 'LBrace'
1563    fn l_brace(&mut self, _arg: &LBrace) -> Result<()> {
1564        Ok(())
1565    }
1566
1567    /// Semantic action for non-terminal 'LBracket'
1568    fn l_bracket(&mut self, _arg: &LBracket) -> Result<()> {
1569        Ok(())
1570    }
1571
1572    /// Semantic action for non-terminal 'LParen'
1573    fn l_paren(&mut self, _arg: &LParen) -> Result<()> {
1574        Ok(())
1575    }
1576
1577    /// Semantic action for non-terminal 'LTMinus'
1578    fn l_t_minus(&mut self, _arg: &LTMinus) -> Result<()> {
1579        Ok(())
1580    }
1581
1582    /// Semantic action for non-terminal 'MinusColon'
1583    fn minus_colon(&mut self, _arg: &MinusColon) -> Result<()> {
1584        Ok(())
1585    }
1586
1587    /// Semantic action for non-terminal 'MinusGT'
1588    fn minus_g_t(&mut self, _arg: &MinusGT) -> Result<()> {
1589        Ok(())
1590    }
1591
1592    /// Semantic action for non-terminal 'PlusColon'
1593    fn plus_colon(&mut self, _arg: &PlusColon) -> Result<()> {
1594        Ok(())
1595    }
1596
1597    /// Semantic action for non-terminal 'RAngle'
1598    fn r_angle(&mut self, _arg: &RAngle) -> Result<()> {
1599        Ok(())
1600    }
1601
1602    /// Semantic action for non-terminal 'EmbedRBrace'
1603    fn embed_r_brace(&mut self, _arg: &EmbedRBrace) -> Result<()> {
1604        Ok(())
1605    }
1606
1607    /// Semantic action for non-terminal 'EscapedRBrace'
1608    fn escaped_r_brace(&mut self, _arg: &EscapedRBrace) -> Result<()> {
1609        Ok(())
1610    }
1611
1612    /// Semantic action for non-terminal 'TripleRBrace'
1613    fn triple_r_brace(&mut self, _arg: &TripleRBrace) -> Result<()> {
1614        Ok(())
1615    }
1616
1617    /// Semantic action for non-terminal 'RBrace'
1618    fn r_brace(&mut self, _arg: &RBrace) -> Result<()> {
1619        Ok(())
1620    }
1621
1622    /// Semantic action for non-terminal 'RBracket'
1623    fn r_bracket(&mut self, _arg: &RBracket) -> Result<()> {
1624        Ok(())
1625    }
1626
1627    /// Semantic action for non-terminal 'RParen'
1628    fn r_paren(&mut self, _arg: &RParen) -> Result<()> {
1629        Ok(())
1630    }
1631
1632    /// Semantic action for non-terminal 'Semicolon'
1633    fn semicolon(&mut self, _arg: &Semicolon) -> Result<()> {
1634        Ok(())
1635    }
1636
1637    /// Semantic action for non-terminal 'Star'
1638    fn star(&mut self, _arg: &Star) -> Result<()> {
1639        Ok(())
1640    }
1641
1642    /// Semantic action for non-terminal 'Alias'
1643    fn alias(&mut self, _arg: &Alias) -> Result<()> {
1644        Ok(())
1645    }
1646
1647    /// Semantic action for non-terminal 'AlwaysComb'
1648    fn always_comb(&mut self, _arg: &AlwaysComb) -> Result<()> {
1649        Ok(())
1650    }
1651
1652    /// Semantic action for non-terminal 'AlwaysFf'
1653    fn always_ff(&mut self, _arg: &AlwaysFf) -> Result<()> {
1654        Ok(())
1655    }
1656
1657    /// Semantic action for non-terminal 'As'
1658    fn r#as(&mut self, _arg: &As) -> Result<()> {
1659        Ok(())
1660    }
1661
1662    /// Semantic action for non-terminal 'Assign'
1663    fn assign(&mut self, _arg: &Assign) -> Result<()> {
1664        Ok(())
1665    }
1666
1667    /// Semantic action for non-terminal 'Bind'
1668    fn bind(&mut self, _arg: &Bind) -> Result<()> {
1669        Ok(())
1670    }
1671
1672    /// Semantic action for non-terminal 'Bit'
1673    fn bit(&mut self, _arg: &Bit) -> Result<()> {
1674        Ok(())
1675    }
1676
1677    /// Semantic action for non-terminal 'Block'
1678    fn block(&mut self, _arg: &Block) -> Result<()> {
1679        Ok(())
1680    }
1681
1682    /// Semantic action for non-terminal 'BBool'
1683    fn b_bool(&mut self, _arg: &BBool) -> Result<()> {
1684        Ok(())
1685    }
1686
1687    /// Semantic action for non-terminal 'LBool'
1688    fn l_bool(&mut self, _arg: &LBool) -> Result<()> {
1689        Ok(())
1690    }
1691
1692    /// Semantic action for non-terminal 'Break'
1693    fn r#break(&mut self, _arg: &Break) -> Result<()> {
1694        Ok(())
1695    }
1696
1697    /// Semantic action for non-terminal 'Case'
1698    fn case(&mut self, _arg: &Case) -> Result<()> {
1699        Ok(())
1700    }
1701
1702    /// Semantic action for non-terminal 'Clock'
1703    fn clock(&mut self, _arg: &Clock) -> Result<()> {
1704        Ok(())
1705    }
1706
1707    /// Semantic action for non-terminal 'ClockPosedge'
1708    fn clock_posedge(&mut self, _arg: &ClockPosedge) -> Result<()> {
1709        Ok(())
1710    }
1711
1712    /// Semantic action for non-terminal 'ClockNegedge'
1713    fn clock_negedge(&mut self, _arg: &ClockNegedge) -> Result<()> {
1714        Ok(())
1715    }
1716
1717    /// Semantic action for non-terminal 'Connect'
1718    fn connect(&mut self, _arg: &Connect) -> Result<()> {
1719        Ok(())
1720    }
1721
1722    /// Semantic action for non-terminal 'Const'
1723    fn r#const(&mut self, _arg: &Const) -> Result<()> {
1724        Ok(())
1725    }
1726
1727    /// Semantic action for non-terminal 'Converse'
1728    fn converse(&mut self, _arg: &Converse) -> Result<()> {
1729        Ok(())
1730    }
1731
1732    /// Semantic action for non-terminal 'Defaul'
1733    fn defaul(&mut self, _arg: &Defaul) -> Result<()> {
1734        Ok(())
1735    }
1736
1737    /// Semantic action for non-terminal 'Else'
1738    fn r#else(&mut self, _arg: &Else) -> Result<()> {
1739        Ok(())
1740    }
1741
1742    /// Semantic action for non-terminal 'Embed'
1743    fn embed(&mut self, _arg: &Embed) -> Result<()> {
1744        Ok(())
1745    }
1746
1747    /// Semantic action for non-terminal 'Enum'
1748    fn r#enum(&mut self, _arg: &Enum) -> Result<()> {
1749        Ok(())
1750    }
1751
1752    /// Semantic action for non-terminal 'F32'
1753    fn f32(&mut self, _arg: &F32) -> Result<()> {
1754        Ok(())
1755    }
1756
1757    /// Semantic action for non-terminal 'F64'
1758    fn f64(&mut self, _arg: &F64) -> Result<()> {
1759        Ok(())
1760    }
1761
1762    /// Semantic action for non-terminal 'False'
1763    fn r#false(&mut self, _arg: &False) -> Result<()> {
1764        Ok(())
1765    }
1766
1767    /// Semantic action for non-terminal 'Final'
1768    fn r#final(&mut self, _arg: &Final) -> Result<()> {
1769        Ok(())
1770    }
1771
1772    /// Semantic action for non-terminal 'For'
1773    fn r#for(&mut self, _arg: &For) -> Result<()> {
1774        Ok(())
1775    }
1776
1777    /// Semantic action for non-terminal 'Function'
1778    fn function(&mut self, _arg: &Function) -> Result<()> {
1779        Ok(())
1780    }
1781
1782    /// Semantic action for non-terminal 'I8'
1783    fn i8(&mut self, _arg: &I8) -> Result<()> {
1784        Ok(())
1785    }
1786
1787    /// Semantic action for non-terminal 'I16'
1788    fn i16(&mut self, _arg: &I16) -> Result<()> {
1789        Ok(())
1790    }
1791
1792    /// Semantic action for non-terminal 'I32'
1793    fn i32(&mut self, _arg: &I32) -> Result<()> {
1794        Ok(())
1795    }
1796
1797    /// Semantic action for non-terminal 'I64'
1798    fn i64(&mut self, _arg: &I64) -> Result<()> {
1799        Ok(())
1800    }
1801
1802    /// Semantic action for non-terminal 'If'
1803    fn r#if(&mut self, _arg: &If) -> Result<()> {
1804        Ok(())
1805    }
1806
1807    /// Semantic action for non-terminal 'IfReset'
1808    fn if_reset(&mut self, _arg: &IfReset) -> Result<()> {
1809        Ok(())
1810    }
1811
1812    /// Semantic action for non-terminal 'Import'
1813    fn import(&mut self, _arg: &Import) -> Result<()> {
1814        Ok(())
1815    }
1816
1817    /// Semantic action for non-terminal 'In'
1818    fn r#in(&mut self, _arg: &In) -> Result<()> {
1819        Ok(())
1820    }
1821
1822    /// Semantic action for non-terminal 'Include'
1823    fn include(&mut self, _arg: &Include) -> Result<()> {
1824        Ok(())
1825    }
1826
1827    /// Semantic action for non-terminal 'Initial'
1828    fn initial(&mut self, _arg: &Initial) -> Result<()> {
1829        Ok(())
1830    }
1831
1832    /// Semantic action for non-terminal 'Inout'
1833    fn inout(&mut self, _arg: &Inout) -> Result<()> {
1834        Ok(())
1835    }
1836
1837    /// Semantic action for non-terminal 'Input'
1838    fn input(&mut self, _arg: &Input) -> Result<()> {
1839        Ok(())
1840    }
1841
1842    /// Semantic action for non-terminal 'Inside'
1843    fn inside(&mut self, _arg: &Inside) -> Result<()> {
1844        Ok(())
1845    }
1846
1847    /// Semantic action for non-terminal 'Inst'
1848    fn inst(&mut self, _arg: &Inst) -> Result<()> {
1849        Ok(())
1850    }
1851
1852    /// Semantic action for non-terminal 'Interface'
1853    fn interface(&mut self, _arg: &Interface) -> Result<()> {
1854        Ok(())
1855    }
1856
1857    /// Semantic action for non-terminal 'Let'
1858    fn r#let(&mut self, _arg: &Let) -> Result<()> {
1859        Ok(())
1860    }
1861
1862    /// Semantic action for non-terminal 'Logic'
1863    fn logic(&mut self, _arg: &Logic) -> Result<()> {
1864        Ok(())
1865    }
1866
1867    /// Semantic action for non-terminal 'Lsb'
1868    fn lsb(&mut self, _arg: &Lsb) -> Result<()> {
1869        Ok(())
1870    }
1871
1872    /// Semantic action for non-terminal 'Modport'
1873    fn modport(&mut self, _arg: &Modport) -> Result<()> {
1874        Ok(())
1875    }
1876
1877    /// Semantic action for non-terminal 'Module'
1878    fn module(&mut self, _arg: &Module) -> Result<()> {
1879        Ok(())
1880    }
1881
1882    /// Semantic action for non-terminal 'Msb'
1883    fn msb(&mut self, _arg: &Msb) -> Result<()> {
1884        Ok(())
1885    }
1886
1887    /// Semantic action for non-terminal 'Output'
1888    fn output(&mut self, _arg: &Output) -> Result<()> {
1889        Ok(())
1890    }
1891
1892    /// Semantic action for non-terminal 'Outside'
1893    fn outside(&mut self, _arg: &Outside) -> Result<()> {
1894        Ok(())
1895    }
1896
1897    /// Semantic action for non-terminal 'Package'
1898    fn package(&mut self, _arg: &Package) -> Result<()> {
1899        Ok(())
1900    }
1901
1902    /// Semantic action for non-terminal 'Param'
1903    fn param(&mut self, _arg: &Param) -> Result<()> {
1904        Ok(())
1905    }
1906
1907    /// Semantic action for non-terminal 'Proto'
1908    fn proto(&mut self, _arg: &Proto) -> Result<()> {
1909        Ok(())
1910    }
1911
1912    /// Semantic action for non-terminal 'Pub'
1913    fn r#pub(&mut self, _arg: &Pub) -> Result<()> {
1914        Ok(())
1915    }
1916
1917    /// Semantic action for non-terminal 'Repeat'
1918    fn repeat(&mut self, _arg: &Repeat) -> Result<()> {
1919        Ok(())
1920    }
1921
1922    /// Semantic action for non-terminal 'Reset'
1923    fn reset(&mut self, _arg: &Reset) -> Result<()> {
1924        Ok(())
1925    }
1926
1927    /// Semantic action for non-terminal 'ResetAsyncHigh'
1928    fn reset_async_high(&mut self, _arg: &ResetAsyncHigh) -> Result<()> {
1929        Ok(())
1930    }
1931
1932    /// Semantic action for non-terminal 'ResetAsyncLow'
1933    fn reset_async_low(&mut self, _arg: &ResetAsyncLow) -> Result<()> {
1934        Ok(())
1935    }
1936
1937    /// Semantic action for non-terminal 'ResetSyncHigh'
1938    fn reset_sync_high(&mut self, _arg: &ResetSyncHigh) -> Result<()> {
1939        Ok(())
1940    }
1941
1942    /// Semantic action for non-terminal 'ResetSyncLow'
1943    fn reset_sync_low(&mut self, _arg: &ResetSyncLow) -> Result<()> {
1944        Ok(())
1945    }
1946
1947    /// Semantic action for non-terminal 'Return'
1948    fn r#return(&mut self, _arg: &Return) -> Result<()> {
1949        Ok(())
1950    }
1951
1952    /// Semantic action for non-terminal 'Rev'
1953    fn rev(&mut self, _arg: &Rev) -> Result<()> {
1954        Ok(())
1955    }
1956
1957    /// Semantic action for non-terminal 'Same'
1958    fn same(&mut self, _arg: &Same) -> Result<()> {
1959        Ok(())
1960    }
1961
1962    /// Semantic action for non-terminal 'Signed'
1963    fn signed(&mut self, _arg: &Signed) -> Result<()> {
1964        Ok(())
1965    }
1966
1967    /// Semantic action for non-terminal 'Step'
1968    fn step(&mut self, _arg: &Step) -> Result<()> {
1969        Ok(())
1970    }
1971
1972    /// Semantic action for non-terminal 'Strin'
1973    fn strin(&mut self, _arg: &Strin) -> Result<()> {
1974        Ok(())
1975    }
1976
1977    /// Semantic action for non-terminal 'Struct'
1978    fn r#struct(&mut self, _arg: &Struct) -> Result<()> {
1979        Ok(())
1980    }
1981
1982    /// Semantic action for non-terminal 'Switch'
1983    fn switch(&mut self, _arg: &Switch) -> Result<()> {
1984        Ok(())
1985    }
1986
1987    /// Semantic action for non-terminal 'Tri'
1988    fn tri(&mut self, _arg: &Tri) -> Result<()> {
1989        Ok(())
1990    }
1991
1992    /// Semantic action for non-terminal 'True'
1993    fn r#true(&mut self, _arg: &True) -> Result<()> {
1994        Ok(())
1995    }
1996
1997    /// Semantic action for non-terminal 'Type'
1998    fn r#type(&mut self, _arg: &Type) -> Result<()> {
1999        Ok(())
2000    }
2001
2002    /// Semantic action for non-terminal 'P8'
2003    fn p8(&mut self, _arg: &P8) -> Result<()> {
2004        Ok(())
2005    }
2006
2007    /// Semantic action for non-terminal 'P16'
2008    fn p16(&mut self, _arg: &P16) -> Result<()> {
2009        Ok(())
2010    }
2011
2012    /// Semantic action for non-terminal 'P32'
2013    fn p32(&mut self, _arg: &P32) -> Result<()> {
2014        Ok(())
2015    }
2016
2017    /// Semantic action for non-terminal 'P64'
2018    fn p64(&mut self, _arg: &P64) -> Result<()> {
2019        Ok(())
2020    }
2021
2022    /// Semantic action for non-terminal 'U8'
2023    fn u8(&mut self, _arg: &U8) -> Result<()> {
2024        Ok(())
2025    }
2026
2027    /// Semantic action for non-terminal 'U16'
2028    fn u16(&mut self, _arg: &U16) -> Result<()> {
2029        Ok(())
2030    }
2031
2032    /// Semantic action for non-terminal 'U32'
2033    fn u32(&mut self, _arg: &U32) -> Result<()> {
2034        Ok(())
2035    }
2036
2037    /// Semantic action for non-terminal 'U64'
2038    fn u64(&mut self, _arg: &U64) -> Result<()> {
2039        Ok(())
2040    }
2041
2042    /// Semantic action for non-terminal 'Union'
2043    fn r#union(&mut self, _arg: &Union) -> Result<()> {
2044        Ok(())
2045    }
2046
2047    /// Semantic action for non-terminal 'Unsafe'
2048    fn r#unsafe(&mut self, _arg: &Unsafe) -> Result<()> {
2049        Ok(())
2050    }
2051
2052    /// Semantic action for non-terminal 'Var'
2053    fn var(&mut self, _arg: &Var) -> Result<()> {
2054        Ok(())
2055    }
2056
2057    /// Semantic action for non-terminal 'DollarIdentifier'
2058    fn dollar_identifier(&mut self, _arg: &DollarIdentifier) -> Result<()> {
2059        Ok(())
2060    }
2061
2062    /// Semantic action for non-terminal 'Identifier'
2063    fn identifier(&mut self, _arg: &Identifier) -> Result<()> {
2064        Ok(())
2065    }
2066
2067    /// Semantic action for non-terminal 'Any'
2068    fn any(&mut self, _arg: &Any) -> Result<()> {
2069        Ok(())
2070    }
2071
2072    /// Semantic action for non-terminal 'Number'
2073    fn number(&mut self, _arg: &Number) -> Result<()> {
2074        Ok(())
2075    }
2076
2077    /// Semantic action for non-terminal 'IntegralNumber'
2078    fn integral_number(&mut self, _arg: &IntegralNumber) -> Result<()> {
2079        Ok(())
2080    }
2081
2082    /// Semantic action for non-terminal 'RealNumber'
2083    fn real_number(&mut self, _arg: &RealNumber) -> Result<()> {
2084        Ok(())
2085    }
2086
2087    /// Semantic action for non-terminal 'HierarchicalIdentifier'
2088    fn hierarchical_identifier(&mut self, _arg: &HierarchicalIdentifier) -> Result<()> {
2089        Ok(())
2090    }
2091
2092    /// Semantic action for non-terminal 'ScopedIdentifier'
2093    fn scoped_identifier(&mut self, _arg: &ScopedIdentifier) -> Result<()> {
2094        Ok(())
2095    }
2096
2097    /// Semantic action for non-terminal 'ExpressionIdentifier'
2098    fn expression_identifier(&mut self, _arg: &ExpressionIdentifier) -> Result<()> {
2099        Ok(())
2100    }
2101
2102    /// Semantic action for non-terminal 'GenericArgIdentifier'
2103    fn generic_arg_identifier(&mut self, _arg: &GenericArgIdentifier) -> Result<()> {
2104        Ok(())
2105    }
2106
2107    /// Semantic action for non-terminal 'Expression'
2108    fn expression(&mut self, _arg: &Expression) -> Result<()> {
2109        Ok(())
2110    }
2111
2112    /// Semantic action for non-terminal 'IfExpression'
2113    fn if_expression(&mut self, _arg: &IfExpression) -> Result<()> {
2114        Ok(())
2115    }
2116
2117    /// Semantic action for non-terminal 'Expression01'
2118    fn expression01(&mut self, _arg: &Expression01) -> Result<()> {
2119        Ok(())
2120    }
2121
2122    /// Semantic action for non-terminal 'Expression02'
2123    fn expression02(&mut self, _arg: &Expression02) -> Result<()> {
2124        Ok(())
2125    }
2126
2127    /// Semantic action for non-terminal 'Expression01Op'
2128    fn expression01_op(&mut self, _arg: &Expression01Op) -> Result<()> {
2129        Ok(())
2130    }
2131
2132    /// Semantic action for non-terminal 'Expression02Op'
2133    fn expression02_op(&mut self, _arg: &Expression02Op) -> Result<()> {
2134        Ok(())
2135    }
2136
2137    /// Semantic action for non-terminal 'Factor'
2138    fn factor(&mut self, _arg: &Factor) -> Result<()> {
2139        Ok(())
2140    }
2141
2142    /// Semantic action for non-terminal 'BooleanLiteral'
2143    fn boolean_literal(&mut self, _arg: &BooleanLiteral) -> Result<()> {
2144        Ok(())
2145    }
2146
2147    /// Semantic action for non-terminal 'IdentifierFactor'
2148    fn identifier_factor(&mut self, _arg: &IdentifierFactor) -> Result<()> {
2149        Ok(())
2150    }
2151
2152    /// Semantic action for non-terminal 'FactorTypeFactor'
2153    fn factor_type_factor(&mut self, _arg: &FactorTypeFactor) -> Result<()> {
2154        Ok(())
2155    }
2156
2157    /// Semantic action for non-terminal 'FunctionCall'
2158    fn function_call(&mut self, _arg: &FunctionCall) -> Result<()> {
2159        Ok(())
2160    }
2161
2162    /// Semantic action for non-terminal 'ArgumentList'
2163    fn argument_list(&mut self, _arg: &ArgumentList) -> Result<()> {
2164        Ok(())
2165    }
2166
2167    /// Semantic action for non-terminal 'ArgumentItem'
2168    fn argument_item(&mut self, _arg: &ArgumentItem) -> Result<()> {
2169        Ok(())
2170    }
2171
2172    /// Semantic action for non-terminal 'ArgumentExpression'
2173    fn argument_expression(&mut self, _arg: &ArgumentExpression) -> Result<()> {
2174        Ok(())
2175    }
2176
2177    /// Semantic action for non-terminal 'StructConstructor'
2178    fn struct_constructor(&mut self, _arg: &StructConstructor) -> Result<()> {
2179        Ok(())
2180    }
2181
2182    /// Semantic action for non-terminal 'StructConstructorList'
2183    fn struct_constructor_list(&mut self, _arg: &StructConstructorList) -> Result<()> {
2184        Ok(())
2185    }
2186
2187    /// Semantic action for non-terminal 'StructConstructorItem'
2188    fn struct_constructor_item(&mut self, _arg: &StructConstructorItem) -> Result<()> {
2189        Ok(())
2190    }
2191
2192    /// Semantic action for non-terminal 'ConcatenationList'
2193    fn concatenation_list(&mut self, _arg: &ConcatenationList) -> Result<()> {
2194        Ok(())
2195    }
2196
2197    /// Semantic action for non-terminal 'ConcatenationItem'
2198    fn concatenation_item(&mut self, _arg: &ConcatenationItem) -> Result<()> {
2199        Ok(())
2200    }
2201
2202    /// Semantic action for non-terminal 'ArrayLiteralList'
2203    fn array_literal_list(&mut self, _arg: &ArrayLiteralList) -> Result<()> {
2204        Ok(())
2205    }
2206
2207    /// Semantic action for non-terminal 'ArrayLiteralItem'
2208    fn array_literal_item(&mut self, _arg: &ArrayLiteralItem) -> Result<()> {
2209        Ok(())
2210    }
2211
2212    /// Semantic action for non-terminal 'CaseExpression'
2213    fn case_expression(&mut self, _arg: &CaseExpression) -> Result<()> {
2214        Ok(())
2215    }
2216
2217    /// Semantic action for non-terminal 'SwitchExpression'
2218    fn switch_expression(&mut self, _arg: &SwitchExpression) -> Result<()> {
2219        Ok(())
2220    }
2221
2222    /// Semantic action for non-terminal 'TypeExpression'
2223    fn type_expression(&mut self, _arg: &TypeExpression) -> Result<()> {
2224        Ok(())
2225    }
2226
2227    /// Semantic action for non-terminal 'InsideExpression'
2228    fn inside_expression(&mut self, _arg: &InsideExpression) -> Result<()> {
2229        Ok(())
2230    }
2231
2232    /// Semantic action for non-terminal 'OutsideExpression'
2233    fn outside_expression(&mut self, _arg: &OutsideExpression) -> Result<()> {
2234        Ok(())
2235    }
2236
2237    /// Semantic action for non-terminal 'RangeList'
2238    fn range_list(&mut self, _arg: &RangeList) -> Result<()> {
2239        Ok(())
2240    }
2241
2242    /// Semantic action for non-terminal 'RangeItem'
2243    fn range_item(&mut self, _arg: &RangeItem) -> Result<()> {
2244        Ok(())
2245    }
2246
2247    /// Semantic action for non-terminal 'Select'
2248    fn select(&mut self, _arg: &Select) -> Result<()> {
2249        Ok(())
2250    }
2251
2252    /// Semantic action for non-terminal 'SelectOperator'
2253    fn select_operator(&mut self, _arg: &SelectOperator) -> Result<()> {
2254        Ok(())
2255    }
2256
2257    /// Semantic action for non-terminal 'Width'
2258    fn width(&mut self, _arg: &Width) -> Result<()> {
2259        Ok(())
2260    }
2261
2262    /// Semantic action for non-terminal 'Array'
2263    fn array(&mut self, _arg: &Array) -> Result<()> {
2264        Ok(())
2265    }
2266
2267    /// Semantic action for non-terminal 'Range'
2268    fn range(&mut self, _arg: &Range) -> Result<()> {
2269        Ok(())
2270    }
2271
2272    /// Semantic action for non-terminal 'RangeOperator'
2273    fn range_operator(&mut self, _arg: &RangeOperator) -> Result<()> {
2274        Ok(())
2275    }
2276
2277    /// Semantic action for non-terminal 'FixedType'
2278    fn fixed_type(&mut self, _arg: &FixedType) -> Result<()> {
2279        Ok(())
2280    }
2281
2282    /// Semantic action for non-terminal 'VariableType'
2283    fn variable_type(&mut self, _arg: &VariableType) -> Result<()> {
2284        Ok(())
2285    }
2286
2287    /// Semantic action for non-terminal 'UserDefinedType'
2288    fn user_defined_type(&mut self, _arg: &UserDefinedType) -> Result<()> {
2289        Ok(())
2290    }
2291
2292    /// Semantic action for non-terminal 'TypeModifier'
2293    fn type_modifier(&mut self, _arg: &TypeModifier) -> Result<()> {
2294        Ok(())
2295    }
2296
2297    /// Semantic action for non-terminal 'FactorType'
2298    fn factor_type(&mut self, _arg: &FactorType) -> Result<()> {
2299        Ok(())
2300    }
2301
2302    /// Semantic action for non-terminal 'ScalarType'
2303    fn scalar_type(&mut self, _arg: &ScalarType) -> Result<()> {
2304        Ok(())
2305    }
2306
2307    /// Semantic action for non-terminal 'ArrayType'
2308    fn array_type(&mut self, _arg: &ArrayType) -> Result<()> {
2309        Ok(())
2310    }
2311
2312    /// Semantic action for non-terminal 'CastingType'
2313    fn casting_type(&mut self, _arg: &CastingType) -> Result<()> {
2314        Ok(())
2315    }
2316
2317    /// Semantic action for non-terminal 'ClockDomain'
2318    fn clock_domain(&mut self, _arg: &ClockDomain) -> Result<()> {
2319        Ok(())
2320    }
2321
2322    /// Semantic action for non-terminal 'StatementBlock'
2323    fn statement_block(&mut self, _arg: &StatementBlock) -> Result<()> {
2324        Ok(())
2325    }
2326
2327    /// Semantic action for non-terminal 'StatementBlockGroup'
2328    fn statement_block_group(&mut self, _arg: &StatementBlockGroup) -> Result<()> {
2329        Ok(())
2330    }
2331
2332    /// Semantic action for non-terminal 'StatementBlockItem'
2333    fn statement_block_item(&mut self, _arg: &StatementBlockItem) -> Result<()> {
2334        Ok(())
2335    }
2336
2337    /// Semantic action for non-terminal 'Statement'
2338    fn statement(&mut self, _arg: &Statement) -> Result<()> {
2339        Ok(())
2340    }
2341
2342    /// Semantic action for non-terminal 'LetStatement'
2343    fn let_statement(&mut self, _arg: &LetStatement) -> Result<()> {
2344        Ok(())
2345    }
2346
2347    /// Semantic action for non-terminal 'IdentifierStatement'
2348    fn identifier_statement(&mut self, _arg: &IdentifierStatement) -> Result<()> {
2349        Ok(())
2350    }
2351
2352    /// Semantic action for non-terminal 'ConcatenationAssignment'
2353    fn concatenation_assignment(&mut self, _arg: &ConcatenationAssignment) -> Result<()> {
2354        Ok(())
2355    }
2356
2357    /// Semantic action for non-terminal 'Assignment'
2358    fn assignment(&mut self, _arg: &Assignment) -> Result<()> {
2359        Ok(())
2360    }
2361
2362    /// Semantic action for non-terminal 'IfStatement'
2363    fn if_statement(&mut self, _arg: &IfStatement) -> Result<()> {
2364        Ok(())
2365    }
2366
2367    /// Semantic action for non-terminal 'IfResetStatement'
2368    fn if_reset_statement(&mut self, _arg: &IfResetStatement) -> Result<()> {
2369        Ok(())
2370    }
2371
2372    /// Semantic action for non-terminal 'ReturnStatement'
2373    fn return_statement(&mut self, _arg: &ReturnStatement) -> Result<()> {
2374        Ok(())
2375    }
2376
2377    /// Semantic action for non-terminal 'BreakStatement'
2378    fn break_statement(&mut self, _arg: &BreakStatement) -> Result<()> {
2379        Ok(())
2380    }
2381
2382    /// Semantic action for non-terminal 'ForStatement'
2383    fn for_statement(&mut self, _arg: &ForStatement) -> Result<()> {
2384        Ok(())
2385    }
2386
2387    /// Semantic action for non-terminal 'CaseStatement'
2388    fn case_statement(&mut self, _arg: &CaseStatement) -> Result<()> {
2389        Ok(())
2390    }
2391
2392    /// Semantic action for non-terminal 'CaseItem'
2393    fn case_item(&mut self, _arg: &CaseItem) -> Result<()> {
2394        Ok(())
2395    }
2396
2397    /// Semantic action for non-terminal 'CaseCondition'
2398    fn case_condition(&mut self, _arg: &CaseCondition) -> Result<()> {
2399        Ok(())
2400    }
2401
2402    /// Semantic action for non-terminal 'SwitchStatement'
2403    fn switch_statement(&mut self, _arg: &SwitchStatement) -> Result<()> {
2404        Ok(())
2405    }
2406
2407    /// Semantic action for non-terminal 'SwitchItem'
2408    fn switch_item(&mut self, _arg: &SwitchItem) -> Result<()> {
2409        Ok(())
2410    }
2411
2412    /// Semantic action for non-terminal 'SwitchCondition'
2413    fn switch_condition(&mut self, _arg: &SwitchCondition) -> Result<()> {
2414        Ok(())
2415    }
2416
2417    /// Semantic action for non-terminal 'Attribute'
2418    fn attribute(&mut self, _arg: &Attribute) -> Result<()> {
2419        Ok(())
2420    }
2421
2422    /// Semantic action for non-terminal 'AttributeList'
2423    fn attribute_list(&mut self, _arg: &AttributeList) -> Result<()> {
2424        Ok(())
2425    }
2426
2427    /// Semantic action for non-terminal 'AttributeItem'
2428    fn attribute_item(&mut self, _arg: &AttributeItem) -> Result<()> {
2429        Ok(())
2430    }
2431
2432    /// Semantic action for non-terminal 'LetDeclaration'
2433    fn let_declaration(&mut self, _arg: &LetDeclaration) -> Result<()> {
2434        Ok(())
2435    }
2436
2437    /// Semantic action for non-terminal 'VarDeclaration'
2438    fn var_declaration(&mut self, _arg: &VarDeclaration) -> Result<()> {
2439        Ok(())
2440    }
2441
2442    /// Semantic action for non-terminal 'ConstDeclaration'
2443    fn const_declaration(&mut self, _arg: &ConstDeclaration) -> Result<()> {
2444        Ok(())
2445    }
2446
2447    /// Semantic action for non-terminal 'TypeDefDeclaration'
2448    fn type_def_declaration(&mut self, _arg: &TypeDefDeclaration) -> Result<()> {
2449        Ok(())
2450    }
2451
2452    /// Semantic action for non-terminal 'AlwaysFfDeclaration'
2453    fn always_ff_declaration(&mut self, _arg: &AlwaysFfDeclaration) -> Result<()> {
2454        Ok(())
2455    }
2456
2457    /// Semantic action for non-terminal 'AlwaysFfEventList'
2458    fn always_ff_event_list(&mut self, _arg: &AlwaysFfEventList) -> Result<()> {
2459        Ok(())
2460    }
2461
2462    /// Semantic action for non-terminal 'AlwaysFfClock'
2463    fn always_ff_clock(&mut self, _arg: &AlwaysFfClock) -> Result<()> {
2464        Ok(())
2465    }
2466
2467    /// Semantic action for non-terminal 'AlwaysFfReset'
2468    fn always_ff_reset(&mut self, _arg: &AlwaysFfReset) -> Result<()> {
2469        Ok(())
2470    }
2471
2472    /// Semantic action for non-terminal 'AlwaysCombDeclaration'
2473    fn always_comb_declaration(&mut self, _arg: &AlwaysCombDeclaration) -> Result<()> {
2474        Ok(())
2475    }
2476
2477    /// Semantic action for non-terminal 'AssignDeclaration'
2478    fn assign_declaration(&mut self, _arg: &AssignDeclaration) -> Result<()> {
2479        Ok(())
2480    }
2481
2482    /// Semantic action for non-terminal 'AssignDestination'
2483    fn assign_destination(&mut self, _arg: &AssignDestination) -> Result<()> {
2484        Ok(())
2485    }
2486
2487    /// Semantic action for non-terminal 'AssignConcatenationList'
2488    fn assign_concatenation_list(&mut self, _arg: &AssignConcatenationList) -> Result<()> {
2489        Ok(())
2490    }
2491
2492    /// Semantic action for non-terminal 'AssignConcatenationItem'
2493    fn assign_concatenation_item(&mut self, _arg: &AssignConcatenationItem) -> Result<()> {
2494        Ok(())
2495    }
2496
2497    /// Semantic action for non-terminal 'ConnectDeclaration'
2498    fn connect_declaration(&mut self, _arg: &ConnectDeclaration) -> Result<()> {
2499        Ok(())
2500    }
2501
2502    /// Semantic action for non-terminal 'ModportDeclaration'
2503    fn modport_declaration(&mut self, _arg: &ModportDeclaration) -> Result<()> {
2504        Ok(())
2505    }
2506
2507    /// Semantic action for non-terminal 'ModportList'
2508    fn modport_list(&mut self, _arg: &ModportList) -> Result<()> {
2509        Ok(())
2510    }
2511
2512    /// Semantic action for non-terminal 'ModportGroup'
2513    fn modport_group(&mut self, _arg: &ModportGroup) -> Result<()> {
2514        Ok(())
2515    }
2516
2517    /// Semantic action for non-terminal 'ModportItem'
2518    fn modport_item(&mut self, _arg: &ModportItem) -> Result<()> {
2519        Ok(())
2520    }
2521
2522    /// Semantic action for non-terminal 'ModportDefault'
2523    fn modport_default(&mut self, _arg: &ModportDefault) -> Result<()> {
2524        Ok(())
2525    }
2526
2527    /// Semantic action for non-terminal 'ModportDefaultList'
2528    fn modport_default_list(&mut self, _arg: &ModportDefaultList) -> Result<()> {
2529        Ok(())
2530    }
2531
2532    /// Semantic action for non-terminal 'EnumDeclaration'
2533    fn enum_declaration(&mut self, _arg: &EnumDeclaration) -> Result<()> {
2534        Ok(())
2535    }
2536
2537    /// Semantic action for non-terminal 'EnumList'
2538    fn enum_list(&mut self, _arg: &EnumList) -> Result<()> {
2539        Ok(())
2540    }
2541
2542    /// Semantic action for non-terminal 'EnumGroup'
2543    fn enum_group(&mut self, _arg: &EnumGroup) -> Result<()> {
2544        Ok(())
2545    }
2546
2547    /// Semantic action for non-terminal 'EnumItem'
2548    fn enum_item(&mut self, _arg: &EnumItem) -> Result<()> {
2549        Ok(())
2550    }
2551
2552    /// Semantic action for non-terminal 'StructUnion'
2553    fn struct_union(&mut self, _arg: &StructUnion) -> Result<()> {
2554        Ok(())
2555    }
2556
2557    /// Semantic action for non-terminal 'StructUnionDeclaration'
2558    fn struct_union_declaration(&mut self, _arg: &StructUnionDeclaration) -> Result<()> {
2559        Ok(())
2560    }
2561
2562    /// Semantic action for non-terminal 'StructUnionList'
2563    fn struct_union_list(&mut self, _arg: &StructUnionList) -> Result<()> {
2564        Ok(())
2565    }
2566
2567    /// Semantic action for non-terminal 'StructUnionGroup'
2568    fn struct_union_group(&mut self, _arg: &StructUnionGroup) -> Result<()> {
2569        Ok(())
2570    }
2571
2572    /// Semantic action for non-terminal 'StructUnionItem'
2573    fn struct_union_item(&mut self, _arg: &StructUnionItem) -> Result<()> {
2574        Ok(())
2575    }
2576
2577    /// Semantic action for non-terminal 'InitialDeclaration'
2578    fn initial_declaration(&mut self, _arg: &InitialDeclaration) -> Result<()> {
2579        Ok(())
2580    }
2581
2582    /// Semantic action for non-terminal 'FinalDeclaration'
2583    fn final_declaration(&mut self, _arg: &FinalDeclaration) -> Result<()> {
2584        Ok(())
2585    }
2586
2587    /// Semantic action for non-terminal 'InstDeclaration'
2588    fn inst_declaration(&mut self, _arg: &InstDeclaration) -> Result<()> {
2589        Ok(())
2590    }
2591
2592    /// Semantic action for non-terminal 'BindDeclaration'
2593    fn bind_declaration(&mut self, _arg: &BindDeclaration) -> Result<()> {
2594        Ok(())
2595    }
2596
2597    /// Semantic action for non-terminal 'ComponentInstantiation'
2598    fn component_instantiation(&mut self, _arg: &ComponentInstantiation) -> Result<()> {
2599        Ok(())
2600    }
2601
2602    /// Semantic action for non-terminal 'InstParameter'
2603    fn inst_parameter(&mut self, _arg: &InstParameter) -> Result<()> {
2604        Ok(())
2605    }
2606
2607    /// Semantic action for non-terminal 'InstParameterList'
2608    fn inst_parameter_list(&mut self, _arg: &InstParameterList) -> Result<()> {
2609        Ok(())
2610    }
2611
2612    /// Semantic action for non-terminal 'InstParameterGroup'
2613    fn inst_parameter_group(&mut self, _arg: &InstParameterGroup) -> Result<()> {
2614        Ok(())
2615    }
2616
2617    /// Semantic action for non-terminal 'InstParameterItem'
2618    fn inst_parameter_item(&mut self, _arg: &InstParameterItem) -> Result<()> {
2619        Ok(())
2620    }
2621
2622    /// Semantic action for non-terminal 'InstPort'
2623    fn inst_port(&mut self, _arg: &InstPort) -> Result<()> {
2624        Ok(())
2625    }
2626
2627    /// Semantic action for non-terminal 'InstPortList'
2628    fn inst_port_list(&mut self, _arg: &InstPortList) -> Result<()> {
2629        Ok(())
2630    }
2631
2632    /// Semantic action for non-terminal 'InstPortGroup'
2633    fn inst_port_group(&mut self, _arg: &InstPortGroup) -> Result<()> {
2634        Ok(())
2635    }
2636
2637    /// Semantic action for non-terminal 'InstPortItem'
2638    fn inst_port_item(&mut self, _arg: &InstPortItem) -> Result<()> {
2639        Ok(())
2640    }
2641
2642    /// Semantic action for non-terminal 'WithParameter'
2643    fn with_parameter(&mut self, _arg: &WithParameter) -> Result<()> {
2644        Ok(())
2645    }
2646
2647    /// Semantic action for non-terminal 'WithParameterList'
2648    fn with_parameter_list(&mut self, _arg: &WithParameterList) -> Result<()> {
2649        Ok(())
2650    }
2651
2652    /// Semantic action for non-terminal 'WithParameterGroup'
2653    fn with_parameter_group(&mut self, _arg: &WithParameterGroup) -> Result<()> {
2654        Ok(())
2655    }
2656
2657    /// Semantic action for non-terminal 'WithParameterItem'
2658    fn with_parameter_item(&mut self, _arg: &WithParameterItem) -> Result<()> {
2659        Ok(())
2660    }
2661
2662    /// Semantic action for non-terminal 'GenericBound'
2663    fn generic_bound(&mut self, _arg: &GenericBound) -> Result<()> {
2664        Ok(())
2665    }
2666
2667    /// Semantic action for non-terminal 'WithGenericParameter'
2668    fn with_generic_parameter(&mut self, _arg: &WithGenericParameter) -> Result<()> {
2669        Ok(())
2670    }
2671
2672    /// Semantic action for non-terminal 'WithGenericParameterList'
2673    fn with_generic_parameter_list(&mut self, _arg: &WithGenericParameterList) -> Result<()> {
2674        Ok(())
2675    }
2676
2677    /// Semantic action for non-terminal 'WithGenericParameterItem'
2678    fn with_generic_parameter_item(&mut self, _arg: &WithGenericParameterItem) -> Result<()> {
2679        Ok(())
2680    }
2681
2682    /// Semantic action for non-terminal 'GenericProtoBound'
2683    fn generic_proto_bound(&mut self, _arg: &GenericProtoBound) -> Result<()> {
2684        Ok(())
2685    }
2686
2687    /// Semantic action for non-terminal 'WithGenericArgument'
2688    fn with_generic_argument(&mut self, _arg: &WithGenericArgument) -> Result<()> {
2689        Ok(())
2690    }
2691
2692    /// Semantic action for non-terminal 'WithGenericArgumentList'
2693    fn with_generic_argument_list(&mut self, _arg: &WithGenericArgumentList) -> Result<()> {
2694        Ok(())
2695    }
2696
2697    /// Semantic action for non-terminal 'WithGenericArgumentItem'
2698    fn with_generic_argument_item(&mut self, _arg: &WithGenericArgumentItem) -> Result<()> {
2699        Ok(())
2700    }
2701
2702    /// Semantic action for non-terminal 'PortDeclaration'
2703    fn port_declaration(&mut self, _arg: &PortDeclaration) -> Result<()> {
2704        Ok(())
2705    }
2706
2707    /// Semantic action for non-terminal 'PortDeclarationList'
2708    fn port_declaration_list(&mut self, _arg: &PortDeclarationList) -> Result<()> {
2709        Ok(())
2710    }
2711
2712    /// Semantic action for non-terminal 'PortDeclarationGroup'
2713    fn port_declaration_group(&mut self, _arg: &PortDeclarationGroup) -> Result<()> {
2714        Ok(())
2715    }
2716
2717    /// Semantic action for non-terminal 'PortDeclarationItem'
2718    fn port_declaration_item(&mut self, _arg: &PortDeclarationItem) -> Result<()> {
2719        Ok(())
2720    }
2721
2722    /// Semantic action for non-terminal 'PortTypeConcrete'
2723    fn port_type_concrete(&mut self, _arg: &PortTypeConcrete) -> Result<()> {
2724        Ok(())
2725    }
2726
2727    /// Semantic action for non-terminal 'PortDefaultValue'
2728    fn port_default_value(&mut self, _arg: &PortDefaultValue) -> Result<()> {
2729        Ok(())
2730    }
2731
2732    /// Semantic action for non-terminal 'PortTypeAbstract'
2733    fn port_type_abstract(&mut self, _arg: &PortTypeAbstract) -> Result<()> {
2734        Ok(())
2735    }
2736
2737    /// Semantic action for non-terminal 'Direction'
2738    fn direction(&mut self, _arg: &Direction) -> Result<()> {
2739        Ok(())
2740    }
2741
2742    /// Semantic action for non-terminal 'FunctionDeclaration'
2743    fn function_declaration(&mut self, _arg: &FunctionDeclaration) -> Result<()> {
2744        Ok(())
2745    }
2746
2747    /// Semantic action for non-terminal 'ImportDeclaration'
2748    fn import_declaration(&mut self, _arg: &ImportDeclaration) -> Result<()> {
2749        Ok(())
2750    }
2751
2752    /// Semantic action for non-terminal 'UnsafeBlock'
2753    fn unsafe_block(&mut self, _arg: &UnsafeBlock) -> Result<()> {
2754        Ok(())
2755    }
2756
2757    /// Semantic action for non-terminal 'ModuleDeclaration'
2758    fn module_declaration(&mut self, _arg: &ModuleDeclaration) -> Result<()> {
2759        Ok(())
2760    }
2761
2762    /// Semantic action for non-terminal 'ModuleGroup'
2763    fn module_group(&mut self, _arg: &ModuleGroup) -> Result<()> {
2764        Ok(())
2765    }
2766
2767    /// Semantic action for non-terminal 'ModuleItem'
2768    fn module_item(&mut self, _arg: &ModuleItem) -> Result<()> {
2769        Ok(())
2770    }
2771
2772    /// Semantic action for non-terminal 'InterfaceDeclaration'
2773    fn interface_declaration(&mut self, _arg: &InterfaceDeclaration) -> Result<()> {
2774        Ok(())
2775    }
2776
2777    /// Semantic action for non-terminal 'InterfaceGroup'
2778    fn interface_group(&mut self, _arg: &InterfaceGroup) -> Result<()> {
2779        Ok(())
2780    }
2781
2782    /// Semantic action for non-terminal 'InterfaceItem'
2783    fn interface_item(&mut self, _arg: &InterfaceItem) -> Result<()> {
2784        Ok(())
2785    }
2786
2787    /// Semantic action for non-terminal 'GenerateIfDeclaration'
2788    fn generate_if_declaration(&mut self, _arg: &GenerateIfDeclaration) -> Result<()> {
2789        Ok(())
2790    }
2791
2792    /// Semantic action for non-terminal 'GenerateForDeclaration'
2793    fn generate_for_declaration(&mut self, _arg: &GenerateForDeclaration) -> Result<()> {
2794        Ok(())
2795    }
2796
2797    /// Semantic action for non-terminal 'GenerateBlockDeclaration'
2798    fn generate_block_declaration(&mut self, _arg: &GenerateBlockDeclaration) -> Result<()> {
2799        Ok(())
2800    }
2801
2802    /// Semantic action for non-terminal 'GenerateNamedBlock'
2803    fn generate_named_block(&mut self, _arg: &GenerateNamedBlock) -> Result<()> {
2804        Ok(())
2805    }
2806
2807    /// Semantic action for non-terminal 'GenerateOptionalNamedBlock'
2808    fn generate_optional_named_block(&mut self, _arg: &GenerateOptionalNamedBlock) -> Result<()> {
2809        Ok(())
2810    }
2811
2812    /// Semantic action for non-terminal 'GenerateGroup'
2813    fn generate_group(&mut self, _arg: &GenerateGroup) -> Result<()> {
2814        Ok(())
2815    }
2816
2817    /// Semantic action for non-terminal 'GenerateItem'
2818    fn generate_item(&mut self, _arg: &GenerateItem) -> Result<()> {
2819        Ok(())
2820    }
2821
2822    /// Semantic action for non-terminal 'PackageDeclaration'
2823    fn package_declaration(&mut self, _arg: &PackageDeclaration) -> Result<()> {
2824        Ok(())
2825    }
2826
2827    /// Semantic action for non-terminal 'PackageGroup'
2828    fn package_group(&mut self, _arg: &PackageGroup) -> Result<()> {
2829        Ok(())
2830    }
2831
2832    /// Semantic action for non-terminal 'PackageItem'
2833    fn package_item(&mut self, _arg: &PackageItem) -> Result<()> {
2834        Ok(())
2835    }
2836
2837    /// Semantic action for non-terminal 'AliasDeclaration'
2838    fn alias_declaration(&mut self, _arg: &AliasDeclaration) -> Result<()> {
2839        Ok(())
2840    }
2841
2842    /// Semantic action for non-terminal 'ProtoDeclaration'
2843    fn proto_declaration(&mut self, _arg: &ProtoDeclaration) -> Result<()> {
2844        Ok(())
2845    }
2846
2847    /// Semantic action for non-terminal 'ProtoModuleDeclaration'
2848    fn proto_module_declaration(&mut self, _arg: &ProtoModuleDeclaration) -> Result<()> {
2849        Ok(())
2850    }
2851
2852    /// Semantic action for non-terminal 'ProtoInterfaceDeclaration'
2853    fn proto_interface_declaration(&mut self, _arg: &ProtoInterfaceDeclaration) -> Result<()> {
2854        Ok(())
2855    }
2856
2857    /// Semantic action for non-terminal 'ProtoInterfaceItem'
2858    fn proto_interface_item(&mut self, _arg: &ProtoInterfaceItem) -> Result<()> {
2859        Ok(())
2860    }
2861
2862    /// Semantic action for non-terminal 'ProtoPackageDeclaration'
2863    fn proto_package_declaration(&mut self, _arg: &ProtoPackageDeclaration) -> Result<()> {
2864        Ok(())
2865    }
2866
2867    /// Semantic action for non-terminal 'ProtoPacakgeItem'
2868    fn proto_pacakge_item(&mut self, _arg: &ProtoPacakgeItem) -> Result<()> {
2869        Ok(())
2870    }
2871
2872    /// Semantic action for non-terminal 'ProtoConstDeclaration'
2873    fn proto_const_declaration(&mut self, _arg: &ProtoConstDeclaration) -> Result<()> {
2874        Ok(())
2875    }
2876
2877    /// Semantic action for non-terminal 'ProtoTypeDefDeclaration'
2878    fn proto_type_def_declaration(&mut self, _arg: &ProtoTypeDefDeclaration) -> Result<()> {
2879        Ok(())
2880    }
2881
2882    /// Semantic action for non-terminal 'ProtoFunctionDeclaration'
2883    fn proto_function_declaration(&mut self, _arg: &ProtoFunctionDeclaration) -> Result<()> {
2884        Ok(())
2885    }
2886
2887    /// Semantic action for non-terminal 'ProtoAliasDeclaration'
2888    fn proto_alias_declaration(&mut self, _arg: &ProtoAliasDeclaration) -> Result<()> {
2889        Ok(())
2890    }
2891
2892    /// Semantic action for non-terminal 'EmbedDeclaration'
2893    fn embed_declaration(&mut self, _arg: &EmbedDeclaration) -> Result<()> {
2894        Ok(())
2895    }
2896
2897    /// Semantic action for non-terminal 'EmbedContent'
2898    fn embed_content(&mut self, _arg: &EmbedContent) -> Result<()> {
2899        Ok(())
2900    }
2901
2902    /// Semantic action for non-terminal 'EmbedScopedIdentifier'
2903    fn embed_scoped_identifier(&mut self, _arg: &EmbedScopedIdentifier) -> Result<()> {
2904        Ok(())
2905    }
2906
2907    /// Semantic action for non-terminal 'EmbedItem'
2908    fn embed_item(&mut self, _arg: &EmbedItem) -> Result<()> {
2909        Ok(())
2910    }
2911
2912    /// Semantic action for non-terminal 'IncludeDeclaration'
2913    fn include_declaration(&mut self, _arg: &IncludeDeclaration) -> Result<()> {
2914        Ok(())
2915    }
2916
2917    /// Semantic action for non-terminal 'DescriptionGroup'
2918    fn description_group(&mut self, _arg: &DescriptionGroup) -> Result<()> {
2919        Ok(())
2920    }
2921
2922    /// Semantic action for non-terminal 'DescriptionItem'
2923    fn description_item(&mut self, _arg: &DescriptionItem) -> Result<()> {
2924        Ok(())
2925    }
2926
2927    /// Semantic action for non-terminal 'PublicDescriptionItem'
2928    fn public_description_item(&mut self, _arg: &PublicDescriptionItem) -> Result<()> {
2929        Ok(())
2930    }
2931
2932    /// Semantic action for non-terminal 'Veryl'
2933    fn veryl(&mut self, _arg: &Veryl) -> Result<()> {
2934        Ok(())
2935    }
2936
2937    /// This method provides skipped language comments.
2938    /// If you need comments please provide your own implementation of this method.
2939    fn on_comment(&mut self, _token: Token<'_>) {}
2940}
2941
2942// -------------------------------------------------------------------------------------------------
2943//
2944// Output Types of productions deduced from the structure of the transformed grammar
2945//
2946
2947///
2948/// Type derived for production 412
2949///
2950/// `Number: IntegralNumber;`
2951///
2952#[allow(dead_code)]
2953#[derive(Debug, Clone)]
2954pub struct NumberIntegralNumber {
2955    pub integral_number: Box<IntegralNumber>,
2956}
2957
2958///
2959/// Type derived for production 413
2960///
2961/// `Number: RealNumber;`
2962///
2963#[allow(dead_code)]
2964#[derive(Debug, Clone)]
2965pub struct NumberRealNumber {
2966    pub real_number: Box<RealNumber>,
2967}
2968
2969///
2970/// Type derived for production 414
2971///
2972/// `IntegralNumber: Based;`
2973///
2974#[allow(dead_code)]
2975#[derive(Debug, Clone)]
2976pub struct IntegralNumberBased {
2977    pub based: Box<Based>,
2978}
2979
2980///
2981/// Type derived for production 415
2982///
2983/// `IntegralNumber: BaseLess;`
2984///
2985#[allow(dead_code)]
2986#[derive(Debug, Clone)]
2987pub struct IntegralNumberBaseLess {
2988    pub base_less: Box<BaseLess>,
2989}
2990
2991///
2992/// Type derived for production 416
2993///
2994/// `IntegralNumber: AllBit;`
2995///
2996#[allow(dead_code)]
2997#[derive(Debug, Clone)]
2998pub struct IntegralNumberAllBit {
2999    pub all_bit: Box<AllBit>,
3000}
3001
3002///
3003/// Type derived for production 417
3004///
3005/// `RealNumber: FixedPoint;`
3006///
3007#[allow(dead_code)]
3008#[derive(Debug, Clone)]
3009pub struct RealNumberFixedPoint {
3010    pub fixed_point: Box<FixedPoint>,
3011}
3012
3013///
3014/// Type derived for production 418
3015///
3016/// `RealNumber: Exponent;`
3017///
3018#[allow(dead_code)]
3019#[derive(Debug, Clone)]
3020pub struct RealNumberExponent {
3021    pub exponent: Box<Exponent>,
3022}
3023
3024///
3025/// Type derived for production 427
3026///
3027/// `ScopedIdentifierGroup: DollarIdentifier;`
3028///
3029#[allow(dead_code)]
3030#[derive(Debug, Clone)]
3031pub struct ScopedIdentifierGroupDollarIdentifier {
3032    pub dollar_identifier: Box<DollarIdentifier>,
3033}
3034
3035///
3036/// Type derived for production 428
3037///
3038/// `ScopedIdentifierGroup: Identifier ScopedIdentifierOpt /* Option */;`
3039///
3040#[allow(dead_code)]
3041#[derive(Debug, Clone)]
3042pub struct ScopedIdentifierGroupIdentifierScopedIdentifierOpt {
3043    pub identifier: Box<Identifier>,
3044    pub scoped_identifier_opt: Option<ScopedIdentifierOpt>,
3045}
3046
3047///
3048/// Type derived for production 459
3049///
3050/// `Expression01Op: Operator01;`
3051///
3052#[allow(dead_code)]
3053#[derive(Debug, Clone)]
3054pub struct Expression01OpOperator01 {
3055    pub operator01: Box<Operator01>,
3056}
3057
3058///
3059/// Type derived for production 460
3060///
3061/// `Expression01Op: Operator02;`
3062///
3063#[allow(dead_code)]
3064#[derive(Debug, Clone)]
3065pub struct Expression01OpOperator02 {
3066    pub operator02: Box<Operator02>,
3067}
3068
3069///
3070/// Type derived for production 461
3071///
3072/// `Expression01Op: Operator03;`
3073///
3074#[allow(dead_code)]
3075#[derive(Debug, Clone)]
3076pub struct Expression01OpOperator03 {
3077    pub operator03: Box<Operator03>,
3078}
3079
3080///
3081/// Type derived for production 462
3082///
3083/// `Expression01Op: Operator04;`
3084///
3085#[allow(dead_code)]
3086#[derive(Debug, Clone)]
3087pub struct Expression01OpOperator04 {
3088    pub operator04: Box<Operator04>,
3089}
3090
3091///
3092/// Type derived for production 463
3093///
3094/// `Expression01Op: Operator05;`
3095///
3096#[allow(dead_code)]
3097#[derive(Debug, Clone)]
3098pub struct Expression01OpOperator05 {
3099    pub operator05: Box<Operator05>,
3100}
3101
3102///
3103/// Type derived for production 464
3104///
3105/// `Expression01Op: Operator06;`
3106///
3107#[allow(dead_code)]
3108#[derive(Debug, Clone)]
3109pub struct Expression01OpOperator06 {
3110    pub operator06: Box<Operator06>,
3111}
3112
3113///
3114/// Type derived for production 465
3115///
3116/// `Expression01Op: Operator07;`
3117///
3118#[allow(dead_code)]
3119#[derive(Debug, Clone)]
3120pub struct Expression01OpOperator07 {
3121    pub operator07: Box<Operator07>,
3122}
3123
3124///
3125/// Type derived for production 466
3126///
3127/// `Expression01Op: Star;`
3128///
3129#[allow(dead_code)]
3130#[derive(Debug, Clone)]
3131pub struct Expression01OpStar {
3132    pub star: Box<Star>,
3133}
3134
3135///
3136/// Type derived for production 467
3137///
3138/// `Expression01Op: Operator08;`
3139///
3140#[allow(dead_code)]
3141#[derive(Debug, Clone)]
3142pub struct Expression01OpOperator08 {
3143    pub operator08: Box<Operator08>,
3144}
3145
3146///
3147/// Type derived for production 468
3148///
3149/// `Expression02Op: UnaryOperator;`
3150///
3151#[allow(dead_code)]
3152#[derive(Debug, Clone)]
3153pub struct Expression02OpUnaryOperator {
3154    pub unary_operator: Box<UnaryOperator>,
3155}
3156
3157///
3158/// Type derived for production 469
3159///
3160/// `Expression02Op: Operator06;`
3161///
3162#[allow(dead_code)]
3163#[derive(Debug, Clone)]
3164pub struct Expression02OpOperator06 {
3165    pub operator06: Box<Operator06>,
3166}
3167
3168///
3169/// Type derived for production 470
3170///
3171/// `Expression02Op: Operator05;`
3172///
3173#[allow(dead_code)]
3174#[derive(Debug, Clone)]
3175pub struct Expression02OpOperator05 {
3176    pub operator05: Box<Operator05>,
3177}
3178
3179///
3180/// Type derived for production 471
3181///
3182/// `Expression02Op: Operator03;`
3183///
3184#[allow(dead_code)]
3185#[derive(Debug, Clone)]
3186pub struct Expression02OpOperator03 {
3187    pub operator03: Box<Operator03>,
3188}
3189
3190///
3191/// Type derived for production 472
3192///
3193/// `Expression02Op: Operator04;`
3194///
3195#[allow(dead_code)]
3196#[derive(Debug, Clone)]
3197pub struct Expression02OpOperator04 {
3198    pub operator04: Box<Operator04>,
3199}
3200
3201///
3202/// Type derived for production 473
3203///
3204/// `Factor: Number;`
3205///
3206#[allow(dead_code)]
3207#[derive(Debug, Clone)]
3208pub struct FactorNumber {
3209    pub number: Box<Number>,
3210}
3211
3212///
3213/// Type derived for production 474
3214///
3215/// `Factor: BooleanLiteral;`
3216///
3217#[allow(dead_code)]
3218#[derive(Debug, Clone)]
3219pub struct FactorBooleanLiteral {
3220    pub boolean_literal: Box<BooleanLiteral>,
3221}
3222
3223///
3224/// Type derived for production 475
3225///
3226/// `Factor: IdentifierFactor;`
3227///
3228#[allow(dead_code)]
3229#[derive(Debug, Clone)]
3230pub struct FactorIdentifierFactor {
3231    pub identifier_factor: Box<IdentifierFactor>,
3232}
3233
3234///
3235/// Type derived for production 476
3236///
3237/// `Factor: LParen Expression RParen;`
3238///
3239#[allow(dead_code)]
3240#[derive(Debug, Clone)]
3241pub struct FactorLParenExpressionRParen {
3242    pub l_paren: Box<LParen>,
3243    pub expression: Box<Expression>,
3244    pub r_paren: Box<RParen>,
3245}
3246
3247///
3248/// Type derived for production 477
3249///
3250/// `Factor: LBrace ConcatenationList RBrace;`
3251///
3252#[allow(dead_code)]
3253#[derive(Debug, Clone)]
3254pub struct FactorLBraceConcatenationListRBrace {
3255    pub l_brace: Box<LBrace>,
3256    pub concatenation_list: Box<ConcatenationList>,
3257    pub r_brace: Box<RBrace>,
3258}
3259
3260///
3261/// Type derived for production 478
3262///
3263/// `Factor: QuoteLBrace ArrayLiteralList RBrace;`
3264///
3265#[allow(dead_code)]
3266#[derive(Debug, Clone)]
3267pub struct FactorQuoteLBraceArrayLiteralListRBrace {
3268    pub quote_l_brace: Box<QuoteLBrace>,
3269    pub array_literal_list: Box<ArrayLiteralList>,
3270    pub r_brace: Box<RBrace>,
3271}
3272
3273///
3274/// Type derived for production 479
3275///
3276/// `Factor: CaseExpression;`
3277///
3278#[allow(dead_code)]
3279#[derive(Debug, Clone)]
3280pub struct FactorCaseExpression {
3281    pub case_expression: Box<CaseExpression>,
3282}
3283
3284///
3285/// Type derived for production 480
3286///
3287/// `Factor: SwitchExpression;`
3288///
3289#[allow(dead_code)]
3290#[derive(Debug, Clone)]
3291pub struct FactorSwitchExpression {
3292    pub switch_expression: Box<SwitchExpression>,
3293}
3294
3295///
3296/// Type derived for production 481
3297///
3298/// `Factor: StringLiteral;`
3299///
3300#[allow(dead_code)]
3301#[derive(Debug, Clone)]
3302pub struct FactorStringLiteral {
3303    pub string_literal: Box<StringLiteral>,
3304}
3305
3306///
3307/// Type derived for production 482
3308///
3309/// `Factor: FactorGroup;`
3310///
3311#[allow(dead_code)]
3312#[derive(Debug, Clone)]
3313pub struct FactorFactorGroup {
3314    pub factor_group: Box<FactorGroup>,
3315}
3316
3317///
3318/// Type derived for production 483
3319///
3320/// `FactorGroup: Msb;`
3321///
3322#[allow(dead_code)]
3323#[derive(Debug, Clone)]
3324pub struct FactorGroupMsb {
3325    pub msb: Box<Msb>,
3326}
3327
3328///
3329/// Type derived for production 484
3330///
3331/// `FactorGroup: Lsb;`
3332///
3333#[allow(dead_code)]
3334#[derive(Debug, Clone)]
3335pub struct FactorGroupLsb {
3336    pub lsb: Box<Lsb>,
3337}
3338
3339///
3340/// Type derived for production 485
3341///
3342/// `Factor: InsideExpression;`
3343///
3344#[allow(dead_code)]
3345#[derive(Debug, Clone)]
3346pub struct FactorInsideExpression {
3347    pub inside_expression: Box<InsideExpression>,
3348}
3349
3350///
3351/// Type derived for production 486
3352///
3353/// `Factor: OutsideExpression;`
3354///
3355#[allow(dead_code)]
3356#[derive(Debug, Clone)]
3357pub struct FactorOutsideExpression {
3358    pub outside_expression: Box<OutsideExpression>,
3359}
3360
3361///
3362/// Type derived for production 487
3363///
3364/// `Factor: TypeExpression;`
3365///
3366#[allow(dead_code)]
3367#[derive(Debug, Clone)]
3368pub struct FactorTypeExpression {
3369    pub type_expression: Box<TypeExpression>,
3370}
3371
3372///
3373/// Type derived for production 488
3374///
3375/// `Factor: FactorTypeFactor;`
3376///
3377#[allow(dead_code)]
3378#[derive(Debug, Clone)]
3379pub struct FactorFactorTypeFactor {
3380    pub factor_type_factor: Box<FactorTypeFactor>,
3381}
3382
3383///
3384/// Type derived for production 489
3385///
3386/// `BooleanLiteral: True;`
3387///
3388#[allow(dead_code)]
3389#[derive(Debug, Clone)]
3390pub struct BooleanLiteralTrue {
3391    pub r#true: Box<True>,
3392}
3393
3394///
3395/// Type derived for production 490
3396///
3397/// `BooleanLiteral: False;`
3398///
3399#[allow(dead_code)]
3400#[derive(Debug, Clone)]
3401pub struct BooleanLiteralFalse {
3402    pub r#false: Box<False>,
3403}
3404
3405///
3406/// Type derived for production 493
3407///
3408/// `IdentifierFactorOptGroup: FunctionCall;`
3409///
3410#[allow(dead_code)]
3411#[derive(Debug, Clone)]
3412pub struct IdentifierFactorOptGroupFunctionCall {
3413    pub function_call: Box<FunctionCall>,
3414}
3415
3416///
3417/// Type derived for production 494
3418///
3419/// `IdentifierFactorOptGroup: StructConstructor;`
3420///
3421#[allow(dead_code)]
3422#[derive(Debug, Clone)]
3423pub struct IdentifierFactorOptGroupStructConstructor {
3424    pub struct_constructor: Box<StructConstructor>,
3425}
3426
3427///
3428/// Type derived for production 534
3429///
3430/// `ArrayLiteralItemGroup: Expression ArrayLiteralItemOpt /* Option */;`
3431///
3432#[allow(dead_code)]
3433#[derive(Debug, Clone)]
3434pub struct ArrayLiteralItemGroupExpressionArrayLiteralItemOpt {
3435    pub expression: Box<Expression>,
3436    pub array_literal_item_opt: Option<ArrayLiteralItemOpt>,
3437}
3438
3439///
3440/// Type derived for production 535
3441///
3442/// `ArrayLiteralItemGroup: Defaul Colon Expression;`
3443///
3444#[allow(dead_code)]
3445#[derive(Debug, Clone)]
3446pub struct ArrayLiteralItemGroupDefaulColonExpression {
3447    pub defaul: Box<Defaul>,
3448    pub colon: Box<Colon>,
3449    pub expression: Box<Expression>,
3450}
3451
3452///
3453/// Type derived for production 560
3454///
3455/// `SelectOperator: Colon;`
3456///
3457#[allow(dead_code)]
3458#[derive(Debug, Clone)]
3459pub struct SelectOperatorColon {
3460    pub colon: Box<Colon>,
3461}
3462
3463///
3464/// Type derived for production 561
3465///
3466/// `SelectOperator: PlusColon;`
3467///
3468#[allow(dead_code)]
3469#[derive(Debug, Clone)]
3470pub struct SelectOperatorPlusColon {
3471    pub plus_colon: Box<PlusColon>,
3472}
3473
3474///
3475/// Type derived for production 562
3476///
3477/// `SelectOperator: MinusColon;`
3478///
3479#[allow(dead_code)]
3480#[derive(Debug, Clone)]
3481pub struct SelectOperatorMinusColon {
3482    pub minus_colon: Box<MinusColon>,
3483}
3484
3485///
3486/// Type derived for production 563
3487///
3488/// `SelectOperator: Step;`
3489///
3490#[allow(dead_code)]
3491#[derive(Debug, Clone)]
3492pub struct SelectOperatorStep {
3493    pub step: Box<Step>,
3494}
3495
3496///
3497/// Type derived for production 573
3498///
3499/// `RangeOperator: DotDot;`
3500///
3501#[allow(dead_code)]
3502#[derive(Debug, Clone)]
3503pub struct RangeOperatorDotDot {
3504    pub dot_dot: Box<DotDot>,
3505}
3506
3507///
3508/// Type derived for production 574
3509///
3510/// `RangeOperator: DotDotEqu;`
3511///
3512#[allow(dead_code)]
3513#[derive(Debug, Clone)]
3514pub struct RangeOperatorDotDotEqu {
3515    pub dot_dot_equ: Box<DotDotEqu>,
3516}
3517
3518///
3519/// Type derived for production 575
3520///
3521/// `FixedType: P8;`
3522///
3523#[allow(dead_code)]
3524#[derive(Debug, Clone)]
3525pub struct FixedTypeP8 {
3526    pub p8: Box<P8>,
3527}
3528
3529///
3530/// Type derived for production 576
3531///
3532/// `FixedType: P16;`
3533///
3534#[allow(dead_code)]
3535#[derive(Debug, Clone)]
3536pub struct FixedTypeP16 {
3537    pub p16: Box<P16>,
3538}
3539
3540///
3541/// Type derived for production 577
3542///
3543/// `FixedType: P32;`
3544///
3545#[allow(dead_code)]
3546#[derive(Debug, Clone)]
3547pub struct FixedTypeP32 {
3548    pub p32: Box<P32>,
3549}
3550
3551///
3552/// Type derived for production 578
3553///
3554/// `FixedType: P64;`
3555///
3556#[allow(dead_code)]
3557#[derive(Debug, Clone)]
3558pub struct FixedTypeP64 {
3559    pub p64: Box<P64>,
3560}
3561
3562///
3563/// Type derived for production 579
3564///
3565/// `FixedType: U8;`
3566///
3567#[allow(dead_code)]
3568#[derive(Debug, Clone)]
3569pub struct FixedTypeU8 {
3570    pub u8: Box<U8>,
3571}
3572
3573///
3574/// Type derived for production 580
3575///
3576/// `FixedType: U16;`
3577///
3578#[allow(dead_code)]
3579#[derive(Debug, Clone)]
3580pub struct FixedTypeU16 {
3581    pub u16: Box<U16>,
3582}
3583
3584///
3585/// Type derived for production 581
3586///
3587/// `FixedType: U32;`
3588///
3589#[allow(dead_code)]
3590#[derive(Debug, Clone)]
3591pub struct FixedTypeU32 {
3592    pub u32: Box<U32>,
3593}
3594
3595///
3596/// Type derived for production 582
3597///
3598/// `FixedType: U64;`
3599///
3600#[allow(dead_code)]
3601#[derive(Debug, Clone)]
3602pub struct FixedTypeU64 {
3603    pub u64: Box<U64>,
3604}
3605
3606///
3607/// Type derived for production 583
3608///
3609/// `FixedType: I8;`
3610///
3611#[allow(dead_code)]
3612#[derive(Debug, Clone)]
3613pub struct FixedTypeI8 {
3614    pub i8: Box<I8>,
3615}
3616
3617///
3618/// Type derived for production 584
3619///
3620/// `FixedType: I16;`
3621///
3622#[allow(dead_code)]
3623#[derive(Debug, Clone)]
3624pub struct FixedTypeI16 {
3625    pub i16: Box<I16>,
3626}
3627
3628///
3629/// Type derived for production 585
3630///
3631/// `FixedType: I32;`
3632///
3633#[allow(dead_code)]
3634#[derive(Debug, Clone)]
3635pub struct FixedTypeI32 {
3636    pub i32: Box<I32>,
3637}
3638
3639///
3640/// Type derived for production 586
3641///
3642/// `FixedType: I64;`
3643///
3644#[allow(dead_code)]
3645#[derive(Debug, Clone)]
3646pub struct FixedTypeI64 {
3647    pub i64: Box<I64>,
3648}
3649
3650///
3651/// Type derived for production 587
3652///
3653/// `FixedType: F32;`
3654///
3655#[allow(dead_code)]
3656#[derive(Debug, Clone)]
3657pub struct FixedTypeF32 {
3658    pub f32: Box<F32>,
3659}
3660
3661///
3662/// Type derived for production 588
3663///
3664/// `FixedType: F64;`
3665///
3666#[allow(dead_code)]
3667#[derive(Debug, Clone)]
3668pub struct FixedTypeF64 {
3669    pub f64: Box<F64>,
3670}
3671
3672///
3673/// Type derived for production 589
3674///
3675/// `FixedType: BBool;`
3676///
3677#[allow(dead_code)]
3678#[derive(Debug, Clone)]
3679pub struct FixedTypeBBool {
3680    pub b_bool: Box<BBool>,
3681}
3682
3683///
3684/// Type derived for production 590
3685///
3686/// `FixedType: LBool;`
3687///
3688#[allow(dead_code)]
3689#[derive(Debug, Clone)]
3690pub struct FixedTypeLBool {
3691    pub l_bool: Box<LBool>,
3692}
3693
3694///
3695/// Type derived for production 591
3696///
3697/// `FixedType: Strin;`
3698///
3699#[allow(dead_code)]
3700#[derive(Debug, Clone)]
3701pub struct FixedTypeStrin {
3702    pub strin: Box<Strin>,
3703}
3704
3705///
3706/// Type derived for production 592
3707///
3708/// `VariableType: Clock;`
3709///
3710#[allow(dead_code)]
3711#[derive(Debug, Clone)]
3712pub struct VariableTypeClock {
3713    pub clock: Box<Clock>,
3714}
3715
3716///
3717/// Type derived for production 593
3718///
3719/// `VariableType: ClockPosedge;`
3720///
3721#[allow(dead_code)]
3722#[derive(Debug, Clone)]
3723pub struct VariableTypeClockPosedge {
3724    pub clock_posedge: Box<ClockPosedge>,
3725}
3726
3727///
3728/// Type derived for production 594
3729///
3730/// `VariableType: ClockNegedge;`
3731///
3732#[allow(dead_code)]
3733#[derive(Debug, Clone)]
3734pub struct VariableTypeClockNegedge {
3735    pub clock_negedge: Box<ClockNegedge>,
3736}
3737
3738///
3739/// Type derived for production 595
3740///
3741/// `VariableType: Reset;`
3742///
3743#[allow(dead_code)]
3744#[derive(Debug, Clone)]
3745pub struct VariableTypeReset {
3746    pub reset: Box<Reset>,
3747}
3748
3749///
3750/// Type derived for production 596
3751///
3752/// `VariableType: ResetAsyncHigh;`
3753///
3754#[allow(dead_code)]
3755#[derive(Debug, Clone)]
3756pub struct VariableTypeResetAsyncHigh {
3757    pub reset_async_high: Box<ResetAsyncHigh>,
3758}
3759
3760///
3761/// Type derived for production 597
3762///
3763/// `VariableType: ResetAsyncLow;`
3764///
3765#[allow(dead_code)]
3766#[derive(Debug, Clone)]
3767pub struct VariableTypeResetAsyncLow {
3768    pub reset_async_low: Box<ResetAsyncLow>,
3769}
3770
3771///
3772/// Type derived for production 598
3773///
3774/// `VariableType: ResetSyncHigh;`
3775///
3776#[allow(dead_code)]
3777#[derive(Debug, Clone)]
3778pub struct VariableTypeResetSyncHigh {
3779    pub reset_sync_high: Box<ResetSyncHigh>,
3780}
3781
3782///
3783/// Type derived for production 599
3784///
3785/// `VariableType: ResetSyncLow;`
3786///
3787#[allow(dead_code)]
3788#[derive(Debug, Clone)]
3789pub struct VariableTypeResetSyncLow {
3790    pub reset_sync_low: Box<ResetSyncLow>,
3791}
3792
3793///
3794/// Type derived for production 600
3795///
3796/// `VariableType: Logic;`
3797///
3798#[allow(dead_code)]
3799#[derive(Debug, Clone)]
3800pub struct VariableTypeLogic {
3801    pub logic: Box<Logic>,
3802}
3803
3804///
3805/// Type derived for production 601
3806///
3807/// `VariableType: Bit;`
3808///
3809#[allow(dead_code)]
3810#[derive(Debug, Clone)]
3811pub struct VariableTypeBit {
3812    pub bit: Box<Bit>,
3813}
3814
3815///
3816/// Type derived for production 603
3817///
3818/// `TypeModifier: Tri;`
3819///
3820#[allow(dead_code)]
3821#[derive(Debug, Clone)]
3822pub struct TypeModifierTri {
3823    pub tri: Box<Tri>,
3824}
3825
3826///
3827/// Type derived for production 604
3828///
3829/// `TypeModifier: Signed;`
3830///
3831#[allow(dead_code)]
3832#[derive(Debug, Clone)]
3833pub struct TypeModifierSigned {
3834    pub signed: Box<Signed>,
3835}
3836
3837///
3838/// Type derived for production 605
3839///
3840/// `TypeModifier: Defaul;`
3841///
3842#[allow(dead_code)]
3843#[derive(Debug, Clone)]
3844pub struct TypeModifierDefaul {
3845    pub defaul: Box<Defaul>,
3846}
3847
3848///
3849/// Type derived for production 607
3850///
3851/// `FactorTypeGroup: VariableType FactorTypeOpt /* Option */;`
3852///
3853#[allow(dead_code)]
3854#[derive(Debug, Clone)]
3855pub struct FactorTypeGroupVariableTypeFactorTypeOpt {
3856    pub variable_type: Box<VariableType>,
3857    pub factor_type_opt: Option<FactorTypeOpt>,
3858}
3859
3860///
3861/// Type derived for production 608
3862///
3863/// `FactorTypeGroup: FixedType;`
3864///
3865#[allow(dead_code)]
3866#[derive(Debug, Clone)]
3867pub struct FactorTypeGroupFixedType {
3868    pub fixed_type: Box<FixedType>,
3869}
3870
3871///
3872/// Type derived for production 612
3873///
3874/// `ScalarTypeGroup: UserDefinedType ScalarTypeOpt /* Option */;`
3875///
3876#[allow(dead_code)]
3877#[derive(Debug, Clone)]
3878pub struct ScalarTypeGroupUserDefinedTypeScalarTypeOpt {
3879    pub user_defined_type: Box<UserDefinedType>,
3880    pub scalar_type_opt: Option<ScalarTypeOpt>,
3881}
3882
3883///
3884/// Type derived for production 613
3885///
3886/// `ScalarTypeGroup: FactorType;`
3887///
3888#[allow(dead_code)]
3889#[derive(Debug, Clone)]
3890pub struct ScalarTypeGroupFactorType {
3891    pub factor_type: Box<FactorType>,
3892}
3893
3894///
3895/// Type derived for production 621
3896///
3897/// `CastingType: U8;`
3898///
3899#[allow(dead_code)]
3900#[derive(Debug, Clone)]
3901pub struct CastingTypeU8 {
3902    pub u8: Box<U8>,
3903}
3904
3905///
3906/// Type derived for production 622
3907///
3908/// `CastingType: U16;`
3909///
3910#[allow(dead_code)]
3911#[derive(Debug, Clone)]
3912pub struct CastingTypeU16 {
3913    pub u16: Box<U16>,
3914}
3915
3916///
3917/// Type derived for production 623
3918///
3919/// `CastingType: U32;`
3920///
3921#[allow(dead_code)]
3922#[derive(Debug, Clone)]
3923pub struct CastingTypeU32 {
3924    pub u32: Box<U32>,
3925}
3926
3927///
3928/// Type derived for production 624
3929///
3930/// `CastingType: U64;`
3931///
3932#[allow(dead_code)]
3933#[derive(Debug, Clone)]
3934pub struct CastingTypeU64 {
3935    pub u64: Box<U64>,
3936}
3937
3938///
3939/// Type derived for production 625
3940///
3941/// `CastingType: P8;`
3942///
3943#[allow(dead_code)]
3944#[derive(Debug, Clone)]
3945pub struct CastingTypeP8 {
3946    pub p8: Box<P8>,
3947}
3948
3949///
3950/// Type derived for production 626
3951///
3952/// `CastingType: P16;`
3953///
3954#[allow(dead_code)]
3955#[derive(Debug, Clone)]
3956pub struct CastingTypeP16 {
3957    pub p16: Box<P16>,
3958}
3959
3960///
3961/// Type derived for production 627
3962///
3963/// `CastingType: P32;`
3964///
3965#[allow(dead_code)]
3966#[derive(Debug, Clone)]
3967pub struct CastingTypeP32 {
3968    pub p32: Box<P32>,
3969}
3970
3971///
3972/// Type derived for production 628
3973///
3974/// `CastingType: P64;`
3975///
3976#[allow(dead_code)]
3977#[derive(Debug, Clone)]
3978pub struct CastingTypeP64 {
3979    pub p64: Box<P64>,
3980}
3981
3982///
3983/// Type derived for production 629
3984///
3985/// `CastingType: I8;`
3986///
3987#[allow(dead_code)]
3988#[derive(Debug, Clone)]
3989pub struct CastingTypeI8 {
3990    pub i8: Box<I8>,
3991}
3992
3993///
3994/// Type derived for production 630
3995///
3996/// `CastingType: I16;`
3997///
3998#[allow(dead_code)]
3999#[derive(Debug, Clone)]
4000pub struct CastingTypeI16 {
4001    pub i16: Box<I16>,
4002}
4003
4004///
4005/// Type derived for production 631
4006///
4007/// `CastingType: I32;`
4008///
4009#[allow(dead_code)]
4010#[derive(Debug, Clone)]
4011pub struct CastingTypeI32 {
4012    pub i32: Box<I32>,
4013}
4014
4015///
4016/// Type derived for production 632
4017///
4018/// `CastingType: I64;`
4019///
4020#[allow(dead_code)]
4021#[derive(Debug, Clone)]
4022pub struct CastingTypeI64 {
4023    pub i64: Box<I64>,
4024}
4025
4026///
4027/// Type derived for production 633
4028///
4029/// `CastingType: F32;`
4030///
4031#[allow(dead_code)]
4032#[derive(Debug, Clone)]
4033pub struct CastingTypeF32 {
4034    pub f32: Box<F32>,
4035}
4036
4037///
4038/// Type derived for production 634
4039///
4040/// `CastingType: F64;`
4041///
4042#[allow(dead_code)]
4043#[derive(Debug, Clone)]
4044pub struct CastingTypeF64 {
4045    pub f64: Box<F64>,
4046}
4047
4048///
4049/// Type derived for production 635
4050///
4051/// `CastingType: BBool;`
4052///
4053#[allow(dead_code)]
4054#[derive(Debug, Clone)]
4055pub struct CastingTypeBBool {
4056    pub b_bool: Box<BBool>,
4057}
4058
4059///
4060/// Type derived for production 636
4061///
4062/// `CastingType: LBool;`
4063///
4064#[allow(dead_code)]
4065#[derive(Debug, Clone)]
4066pub struct CastingTypeLBool {
4067    pub l_bool: Box<LBool>,
4068}
4069
4070///
4071/// Type derived for production 637
4072///
4073/// `CastingType: Clock;`
4074///
4075#[allow(dead_code)]
4076#[derive(Debug, Clone)]
4077pub struct CastingTypeClock {
4078    pub clock: Box<Clock>,
4079}
4080
4081///
4082/// Type derived for production 638
4083///
4084/// `CastingType: ClockPosedge;`
4085///
4086#[allow(dead_code)]
4087#[derive(Debug, Clone)]
4088pub struct CastingTypeClockPosedge {
4089    pub clock_posedge: Box<ClockPosedge>,
4090}
4091
4092///
4093/// Type derived for production 639
4094///
4095/// `CastingType: ClockNegedge;`
4096///
4097#[allow(dead_code)]
4098#[derive(Debug, Clone)]
4099pub struct CastingTypeClockNegedge {
4100    pub clock_negedge: Box<ClockNegedge>,
4101}
4102
4103///
4104/// Type derived for production 640
4105///
4106/// `CastingType: Reset;`
4107///
4108#[allow(dead_code)]
4109#[derive(Debug, Clone)]
4110pub struct CastingTypeReset {
4111    pub reset: Box<Reset>,
4112}
4113
4114///
4115/// Type derived for production 641
4116///
4117/// `CastingType: ResetAsyncHigh;`
4118///
4119#[allow(dead_code)]
4120#[derive(Debug, Clone)]
4121pub struct CastingTypeResetAsyncHigh {
4122    pub reset_async_high: Box<ResetAsyncHigh>,
4123}
4124
4125///
4126/// Type derived for production 642
4127///
4128/// `CastingType: ResetAsyncLow;`
4129///
4130#[allow(dead_code)]
4131#[derive(Debug, Clone)]
4132pub struct CastingTypeResetAsyncLow {
4133    pub reset_async_low: Box<ResetAsyncLow>,
4134}
4135
4136///
4137/// Type derived for production 643
4138///
4139/// `CastingType: ResetSyncHigh;`
4140///
4141#[allow(dead_code)]
4142#[derive(Debug, Clone)]
4143pub struct CastingTypeResetSyncHigh {
4144    pub reset_sync_high: Box<ResetSyncHigh>,
4145}
4146
4147///
4148/// Type derived for production 644
4149///
4150/// `CastingType: ResetSyncLow;`
4151///
4152#[allow(dead_code)]
4153#[derive(Debug, Clone)]
4154pub struct CastingTypeResetSyncLow {
4155    pub reset_sync_low: Box<ResetSyncLow>,
4156}
4157
4158///
4159/// Type derived for production 645
4160///
4161/// `CastingType: UserDefinedType;`
4162///
4163#[allow(dead_code)]
4164#[derive(Debug, Clone)]
4165pub struct CastingTypeUserDefinedType {
4166    pub user_defined_type: Box<UserDefinedType>,
4167}
4168
4169///
4170/// Type derived for production 646
4171///
4172/// `CastingType: Based;`
4173///
4174#[allow(dead_code)]
4175#[derive(Debug, Clone)]
4176pub struct CastingTypeBased {
4177    pub based: Box<Based>,
4178}
4179
4180///
4181/// Type derived for production 647
4182///
4183/// `CastingType: BaseLess;`
4184///
4185#[allow(dead_code)]
4186#[derive(Debug, Clone)]
4187pub struct CastingTypeBaseLess {
4188    pub base_less: Box<BaseLess>,
4189}
4190
4191///
4192/// Type derived for production 653
4193///
4194/// `StatementBlockGroupGroup: Block LBrace StatementBlockGroupGroupList /* Vec */ RBrace;`
4195///
4196#[allow(dead_code)]
4197#[derive(Debug, Clone)]
4198pub struct StatementBlockGroupGroupBlockLBraceStatementBlockGroupGroupListRBrace {
4199    pub block: Box<Block>,
4200    pub l_brace: Box<LBrace>,
4201    pub statement_block_group_group_list: Vec<StatementBlockGroupGroupList>,
4202    pub r_brace: Box<RBrace>,
4203}
4204
4205///
4206/// Type derived for production 656
4207///
4208/// `StatementBlockGroupGroup: StatementBlockItem;`
4209///
4210#[allow(dead_code)]
4211#[derive(Debug, Clone)]
4212pub struct StatementBlockGroupGroupStatementBlockItem {
4213    pub statement_block_item: Box<StatementBlockItem>,
4214}
4215
4216///
4217/// Type derived for production 659
4218///
4219/// `StatementBlockItem: VarDeclaration;`
4220///
4221#[allow(dead_code)]
4222#[derive(Debug, Clone)]
4223pub struct StatementBlockItemVarDeclaration {
4224    pub var_declaration: Box<VarDeclaration>,
4225}
4226
4227///
4228/// Type derived for production 660
4229///
4230/// `StatementBlockItem: LetStatement;`
4231///
4232#[allow(dead_code)]
4233#[derive(Debug, Clone)]
4234pub struct StatementBlockItemLetStatement {
4235    pub let_statement: Box<LetStatement>,
4236}
4237
4238///
4239/// Type derived for production 661
4240///
4241/// `StatementBlockItem: ConstDeclaration;`
4242///
4243#[allow(dead_code)]
4244#[derive(Debug, Clone)]
4245pub struct StatementBlockItemConstDeclaration {
4246    pub const_declaration: Box<ConstDeclaration>,
4247}
4248
4249///
4250/// Type derived for production 662
4251///
4252/// `StatementBlockItem: Statement;`
4253///
4254#[allow(dead_code)]
4255#[derive(Debug, Clone)]
4256pub struct StatementBlockItemStatement {
4257    pub statement: Box<Statement>,
4258}
4259
4260///
4261/// Type derived for production 663
4262///
4263/// `StatementBlockItem: ConcatenationAssignment;`
4264///
4265#[allow(dead_code)]
4266#[derive(Debug, Clone)]
4267pub struct StatementBlockItemConcatenationAssignment {
4268    pub concatenation_assignment: Box<ConcatenationAssignment>,
4269}
4270
4271///
4272/// Type derived for production 664
4273///
4274/// `Statement: IdentifierStatement;`
4275///
4276#[allow(dead_code)]
4277#[derive(Debug, Clone)]
4278pub struct StatementIdentifierStatement {
4279    pub identifier_statement: Box<IdentifierStatement>,
4280}
4281
4282///
4283/// Type derived for production 665
4284///
4285/// `Statement: IfStatement;`
4286///
4287#[allow(dead_code)]
4288#[derive(Debug, Clone)]
4289pub struct StatementIfStatement {
4290    pub if_statement: Box<IfStatement>,
4291}
4292
4293///
4294/// Type derived for production 666
4295///
4296/// `Statement: IfResetStatement;`
4297///
4298#[allow(dead_code)]
4299#[derive(Debug, Clone)]
4300pub struct StatementIfResetStatement {
4301    pub if_reset_statement: Box<IfResetStatement>,
4302}
4303
4304///
4305/// Type derived for production 667
4306///
4307/// `Statement: ReturnStatement;`
4308///
4309#[allow(dead_code)]
4310#[derive(Debug, Clone)]
4311pub struct StatementReturnStatement {
4312    pub return_statement: Box<ReturnStatement>,
4313}
4314
4315///
4316/// Type derived for production 668
4317///
4318/// `Statement: BreakStatement;`
4319///
4320#[allow(dead_code)]
4321#[derive(Debug, Clone)]
4322pub struct StatementBreakStatement {
4323    pub break_statement: Box<BreakStatement>,
4324}
4325
4326///
4327/// Type derived for production 669
4328///
4329/// `Statement: ForStatement;`
4330///
4331#[allow(dead_code)]
4332#[derive(Debug, Clone)]
4333pub struct StatementForStatement {
4334    pub for_statement: Box<ForStatement>,
4335}
4336
4337///
4338/// Type derived for production 670
4339///
4340/// `Statement: CaseStatement;`
4341///
4342#[allow(dead_code)]
4343#[derive(Debug, Clone)]
4344pub struct StatementCaseStatement {
4345    pub case_statement: Box<CaseStatement>,
4346}
4347
4348///
4349/// Type derived for production 671
4350///
4351/// `Statement: SwitchStatement;`
4352///
4353#[allow(dead_code)]
4354#[derive(Debug, Clone)]
4355pub struct StatementSwitchStatement {
4356    pub switch_statement: Box<SwitchStatement>,
4357}
4358
4359///
4360/// Type derived for production 676
4361///
4362/// `IdentifierStatementGroup: FunctionCall;`
4363///
4364#[allow(dead_code)]
4365#[derive(Debug, Clone)]
4366pub struct IdentifierStatementGroupFunctionCall {
4367    pub function_call: Box<FunctionCall>,
4368}
4369
4370///
4371/// Type derived for production 677
4372///
4373/// `IdentifierStatementGroup: Assignment;`
4374///
4375#[allow(dead_code)]
4376#[derive(Debug, Clone)]
4377pub struct IdentifierStatementGroupAssignment {
4378    pub assignment: Box<Assignment>,
4379}
4380
4381///
4382/// Type derived for production 680
4383///
4384/// `AssignmentGroup: Equ;`
4385///
4386#[allow(dead_code)]
4387#[derive(Debug, Clone)]
4388pub struct AssignmentGroupEqu {
4389    pub equ: Box<Equ>,
4390}
4391
4392///
4393/// Type derived for production 681
4394///
4395/// `AssignmentGroup: AssignmentOperator;`
4396///
4397#[allow(dead_code)]
4398#[derive(Debug, Clone)]
4399pub struct AssignmentGroupAssignmentOperator {
4400    pub assignment_operator: Box<AssignmentOperator>,
4401}
4402
4403///
4404/// Type derived for production 682
4405///
4406/// `AssignmentGroup: DiamondOperator;`
4407///
4408#[allow(dead_code)]
4409#[derive(Debug, Clone)]
4410pub struct AssignmentGroupDiamondOperator {
4411    pub diamond_operator: Box<DiamondOperator>,
4412}
4413
4414///
4415/// Type derived for production 704
4416///
4417/// `CaseItemGroup0: Statement;`
4418///
4419#[allow(dead_code)]
4420#[derive(Debug, Clone)]
4421pub struct CaseItemGroup0Statement {
4422    pub statement: Box<Statement>,
4423}
4424
4425///
4426/// Type derived for production 705
4427///
4428/// `CaseItemGroup0: StatementBlock;`
4429///
4430#[allow(dead_code)]
4431#[derive(Debug, Clone)]
4432pub struct CaseItemGroup0StatementBlock {
4433    pub statement_block: Box<StatementBlock>,
4434}
4435
4436///
4437/// Type derived for production 706
4438///
4439/// `CaseItemGroup: CaseCondition;`
4440///
4441#[allow(dead_code)]
4442#[derive(Debug, Clone)]
4443pub struct CaseItemGroupCaseCondition {
4444    pub case_condition: Box<CaseCondition>,
4445}
4446
4447///
4448/// Type derived for production 707
4449///
4450/// `CaseItemGroup: Defaul;`
4451///
4452#[allow(dead_code)]
4453#[derive(Debug, Clone)]
4454pub struct CaseItemGroupDefaul {
4455    pub defaul: Box<Defaul>,
4456}
4457
4458///
4459/// Type derived for production 715
4460///
4461/// `SwitchItemGroup0: Statement;`
4462///
4463#[allow(dead_code)]
4464#[derive(Debug, Clone)]
4465pub struct SwitchItemGroup0Statement {
4466    pub statement: Box<Statement>,
4467}
4468
4469///
4470/// Type derived for production 716
4471///
4472/// `SwitchItemGroup0: StatementBlock;`
4473///
4474#[allow(dead_code)]
4475#[derive(Debug, Clone)]
4476pub struct SwitchItemGroup0StatementBlock {
4477    pub statement_block: Box<StatementBlock>,
4478}
4479
4480///
4481/// Type derived for production 717
4482///
4483/// `SwitchItemGroup: SwitchCondition;`
4484///
4485#[allow(dead_code)]
4486#[derive(Debug, Clone)]
4487pub struct SwitchItemGroupSwitchCondition {
4488    pub switch_condition: Box<SwitchCondition>,
4489}
4490
4491///
4492/// Type derived for production 718
4493///
4494/// `SwitchItemGroup: Defaul;`
4495///
4496#[allow(dead_code)]
4497#[derive(Debug, Clone)]
4498pub struct SwitchItemGroupDefaul {
4499    pub defaul: Box<Defaul>,
4500}
4501
4502///
4503/// Type derived for production 730
4504///
4505/// `AttributeItem: Identifier;`
4506///
4507#[allow(dead_code)]
4508#[derive(Debug, Clone)]
4509pub struct AttributeItemIdentifier {
4510    pub identifier: Box<Identifier>,
4511}
4512
4513///
4514/// Type derived for production 731
4515///
4516/// `AttributeItem: StringLiteral;`
4517///
4518#[allow(dead_code)]
4519#[derive(Debug, Clone)]
4520pub struct AttributeItemStringLiteral {
4521    pub string_literal: Box<StringLiteral>,
4522}
4523
4524///
4525/// Type derived for production 739
4526///
4527/// `ConstDeclarationGroup: ArrayType;`
4528///
4529#[allow(dead_code)]
4530#[derive(Debug, Clone)]
4531pub struct ConstDeclarationGroupArrayType {
4532    pub array_type: Box<ArrayType>,
4533}
4534
4535///
4536/// Type derived for production 740
4537///
4538/// `ConstDeclarationGroup: Type;`
4539///
4540#[allow(dead_code)]
4541#[derive(Debug, Clone)]
4542pub struct ConstDeclarationGroupType {
4543    pub r#type: Box<Type>,
4544}
4545
4546///
4547/// Type derived for production 752
4548///
4549/// `AssignDestination: HierarchicalIdentifier;`
4550///
4551#[allow(dead_code)]
4552#[derive(Debug, Clone)]
4553pub struct AssignDestinationHierarchicalIdentifier {
4554    pub hierarchical_identifier: Box<HierarchicalIdentifier>,
4555}
4556
4557///
4558/// Type derived for production 753
4559///
4560/// `AssignDestination: LBrace AssignConcatenationList RBrace;`
4561///
4562#[allow(dead_code)]
4563#[derive(Debug, Clone)]
4564pub struct AssignDestinationLBraceAssignConcatenationListRBrace {
4565    pub l_brace: Box<LBrace>,
4566    pub assign_concatenation_list: Box<AssignConcatenationList>,
4567    pub r_brace: Box<RBrace>,
4568}
4569
4570///
4571/// Type derived for production 772
4572///
4573/// `ModportGroupGroup: LBrace ModportList RBrace;`
4574///
4575#[allow(dead_code)]
4576#[derive(Debug, Clone)]
4577pub struct ModportGroupGroupLBraceModportListRBrace {
4578    pub l_brace: Box<LBrace>,
4579    pub modport_list: Box<ModportList>,
4580    pub r_brace: Box<RBrace>,
4581}
4582
4583///
4584/// Type derived for production 773
4585///
4586/// `ModportGroupGroup: ModportItem;`
4587///
4588#[allow(dead_code)]
4589#[derive(Debug, Clone)]
4590pub struct ModportGroupGroupModportItem {
4591    pub modport_item: Box<ModportItem>,
4592}
4593
4594///
4595/// Type derived for production 777
4596///
4597/// `ModportDefault: Input;`
4598///
4599#[allow(dead_code)]
4600#[derive(Debug, Clone)]
4601pub struct ModportDefaultInput {
4602    pub input: Box<Input>,
4603}
4604
4605///
4606/// Type derived for production 778
4607///
4608/// `ModportDefault: Output;`
4609///
4610#[allow(dead_code)]
4611#[derive(Debug, Clone)]
4612pub struct ModportDefaultOutput {
4613    pub output: Box<Output>,
4614}
4615
4616///
4617/// Type derived for production 779
4618///
4619/// `ModportDefault: Same LParen ModportDefaultList RParen;`
4620///
4621#[allow(dead_code)]
4622#[derive(Debug, Clone)]
4623pub struct ModportDefaultSameLParenModportDefaultListRParen {
4624    pub same: Box<Same>,
4625    pub l_paren: Box<LParen>,
4626    pub modport_default_list: Box<ModportDefaultList>,
4627    pub r_paren: Box<RParen>,
4628}
4629
4630///
4631/// Type derived for production 780
4632///
4633/// `ModportDefault: Converse LParen ModportDefaultList RParen;`
4634///
4635#[allow(dead_code)]
4636#[derive(Debug, Clone)]
4637pub struct ModportDefaultConverseLParenModportDefaultListRParen {
4638    pub converse: Box<Converse>,
4639    pub l_paren: Box<LParen>,
4640    pub modport_default_list: Box<ModportDefaultList>,
4641    pub r_paren: Box<RParen>,
4642}
4643
4644///
4645/// Type derived for production 795
4646///
4647/// `EnumGroupGroup: LBrace EnumList RBrace;`
4648///
4649#[allow(dead_code)]
4650#[derive(Debug, Clone)]
4651pub struct EnumGroupGroupLBraceEnumListRBrace {
4652    pub l_brace: Box<LBrace>,
4653    pub enum_list: Box<EnumList>,
4654    pub r_brace: Box<RBrace>,
4655}
4656
4657///
4658/// Type derived for production 796
4659///
4660/// `EnumGroupGroup: EnumItem;`
4661///
4662#[allow(dead_code)]
4663#[derive(Debug, Clone)]
4664pub struct EnumGroupGroupEnumItem {
4665    pub enum_item: Box<EnumItem>,
4666}
4667
4668///
4669/// Type derived for production 802
4670///
4671/// `StructUnion: Struct;`
4672///
4673#[allow(dead_code)]
4674#[derive(Debug, Clone)]
4675pub struct StructUnionStruct {
4676    pub r#struct: Box<Struct>,
4677}
4678
4679///
4680/// Type derived for production 803
4681///
4682/// `StructUnion: Union;`
4683///
4684#[allow(dead_code)]
4685#[derive(Debug, Clone)]
4686pub struct StructUnionUnion {
4687    pub r#union: Box<Union>,
4688}
4689
4690///
4691/// Type derived for production 813
4692///
4693/// `StructUnionGroupGroup: LBrace StructUnionList RBrace;`
4694///
4695#[allow(dead_code)]
4696#[derive(Debug, Clone)]
4697pub struct StructUnionGroupGroupLBraceStructUnionListRBrace {
4698    pub l_brace: Box<LBrace>,
4699    pub struct_union_list: Box<StructUnionList>,
4700    pub r_brace: Box<RBrace>,
4701}
4702
4703///
4704/// Type derived for production 814
4705///
4706/// `StructUnionGroupGroup: StructUnionItem;`
4707///
4708#[allow(dead_code)]
4709#[derive(Debug, Clone)]
4710pub struct StructUnionGroupGroupStructUnionItem {
4711    pub struct_union_item: Box<StructUnionItem>,
4712}
4713
4714///
4715/// Type derived for production 840
4716///
4717/// `InstParameterGroupGroup: LBrace InstParameterList RBrace;`
4718///
4719#[allow(dead_code)]
4720#[derive(Debug, Clone)]
4721pub struct InstParameterGroupGroupLBraceInstParameterListRBrace {
4722    pub l_brace: Box<LBrace>,
4723    pub inst_parameter_list: Box<InstParameterList>,
4724    pub r_brace: Box<RBrace>,
4725}
4726
4727///
4728/// Type derived for production 841
4729///
4730/// `InstParameterGroupGroup: InstParameterItem;`
4731///
4732#[allow(dead_code)]
4733#[derive(Debug, Clone)]
4734pub struct InstParameterGroupGroupInstParameterItem {
4735    pub inst_parameter_item: Box<InstParameterItem>,
4736}
4737
4738///
4739/// Type derived for production 856
4740///
4741/// `InstPortGroupGroup: LBrace InstPortList RBrace;`
4742///
4743#[allow(dead_code)]
4744#[derive(Debug, Clone)]
4745pub struct InstPortGroupGroupLBraceInstPortListRBrace {
4746    pub l_brace: Box<LBrace>,
4747    pub inst_port_list: Box<InstPortList>,
4748    pub r_brace: Box<RBrace>,
4749}
4750
4751///
4752/// Type derived for production 857
4753///
4754/// `InstPortGroupGroup: InstPortItem;`
4755///
4756#[allow(dead_code)]
4757#[derive(Debug, Clone)]
4758pub struct InstPortGroupGroupInstPortItem {
4759    pub inst_port_item: Box<InstPortItem>,
4760}
4761
4762///
4763/// Type derived for production 872
4764///
4765/// `WithParameterGroupGroup: LBrace WithParameterList RBrace;`
4766///
4767#[allow(dead_code)]
4768#[derive(Debug, Clone)]
4769pub struct WithParameterGroupGroupLBraceWithParameterListRBrace {
4770    pub l_brace: Box<LBrace>,
4771    pub with_parameter_list: Box<WithParameterList>,
4772    pub r_brace: Box<RBrace>,
4773}
4774
4775///
4776/// Type derived for production 873
4777///
4778/// `WithParameterGroupGroup: WithParameterItem;`
4779///
4780#[allow(dead_code)]
4781#[derive(Debug, Clone)]
4782pub struct WithParameterGroupGroupWithParameterItem {
4783    pub with_parameter_item: Box<WithParameterItem>,
4784}
4785
4786///
4787/// Type derived for production 877
4788///
4789/// `WithParameterItemGroup0: ArrayType;`
4790///
4791#[allow(dead_code)]
4792#[derive(Debug, Clone)]
4793pub struct WithParameterItemGroup0ArrayType {
4794    pub array_type: Box<ArrayType>,
4795}
4796
4797///
4798/// Type derived for production 878
4799///
4800/// `WithParameterItemGroup0: Type;`
4801///
4802#[allow(dead_code)]
4803#[derive(Debug, Clone)]
4804pub struct WithParameterItemGroup0Type {
4805    pub r#type: Box<Type>,
4806}
4807
4808///
4809/// Type derived for production 879
4810///
4811/// `WithParameterItemGroup: Param;`
4812///
4813#[allow(dead_code)]
4814#[derive(Debug, Clone)]
4815pub struct WithParameterItemGroupParam {
4816    pub param: Box<Param>,
4817}
4818
4819///
4820/// Type derived for production 880
4821///
4822/// `WithParameterItemGroup: Const;`
4823///
4824#[allow(dead_code)]
4825#[derive(Debug, Clone)]
4826pub struct WithParameterItemGroupConst {
4827    pub r#const: Box<Const>,
4828}
4829
4830///
4831/// Type derived for production 883
4832///
4833/// `GenericBound: Type;`
4834///
4835#[allow(dead_code)]
4836#[derive(Debug, Clone)]
4837pub struct GenericBoundType {
4838    pub r#type: Box<Type>,
4839}
4840
4841///
4842/// Type derived for production 884
4843///
4844/// `GenericBound: Inst ScopedIdentifier;`
4845///
4846#[allow(dead_code)]
4847#[derive(Debug, Clone)]
4848pub struct GenericBoundInstScopedIdentifier {
4849    pub inst: Box<Inst>,
4850    pub scoped_identifier: Box<ScopedIdentifier>,
4851}
4852
4853///
4854/// Type derived for production 885
4855///
4856/// `GenericBound: GenericProtoBound;`
4857///
4858#[allow(dead_code)]
4859#[derive(Debug, Clone)]
4860pub struct GenericBoundGenericProtoBound {
4861    pub generic_proto_bound: Box<GenericProtoBound>,
4862}
4863
4864///
4865/// Type derived for production 895
4866///
4867/// `GenericProtoBound: ScopedIdentifier;`
4868///
4869#[allow(dead_code)]
4870#[derive(Debug, Clone)]
4871pub struct GenericProtoBoundScopedIdentifier {
4872    pub scoped_identifier: Box<ScopedIdentifier>,
4873}
4874
4875///
4876/// Type derived for production 896
4877///
4878/// `GenericProtoBound: FixedType;`
4879///
4880#[allow(dead_code)]
4881#[derive(Debug, Clone)]
4882pub struct GenericProtoBoundFixedType {
4883    pub fixed_type: Box<FixedType>,
4884}
4885
4886///
4887/// Type derived for production 905
4888///
4889/// `WithGenericArgumentItem: GenericArgIdentifier;`
4890///
4891#[allow(dead_code)]
4892#[derive(Debug, Clone)]
4893pub struct WithGenericArgumentItemGenericArgIdentifier {
4894    pub generic_arg_identifier: Box<GenericArgIdentifier>,
4895}
4896
4897///
4898/// Type derived for production 906
4899///
4900/// `WithGenericArgumentItem: FixedType;`
4901///
4902#[allow(dead_code)]
4903#[derive(Debug, Clone)]
4904pub struct WithGenericArgumentItemFixedType {
4905    pub fixed_type: Box<FixedType>,
4906}
4907
4908///
4909/// Type derived for production 907
4910///
4911/// `WithGenericArgumentItem: Number;`
4912///
4913#[allow(dead_code)]
4914#[derive(Debug, Clone)]
4915pub struct WithGenericArgumentItemNumber {
4916    pub number: Box<Number>,
4917}
4918
4919///
4920/// Type derived for production 908
4921///
4922/// `WithGenericArgumentItem: BooleanLiteral;`
4923///
4924#[allow(dead_code)]
4925#[derive(Debug, Clone)]
4926pub struct WithGenericArgumentItemBooleanLiteral {
4927    pub boolean_literal: Box<BooleanLiteral>,
4928}
4929
4930///
4931/// Type derived for production 918
4932///
4933/// `PortDeclarationGroupGroup: LBrace PortDeclarationList RBrace;`
4934///
4935#[allow(dead_code)]
4936#[derive(Debug, Clone)]
4937pub struct PortDeclarationGroupGroupLBracePortDeclarationListRBrace {
4938    pub l_brace: Box<LBrace>,
4939    pub port_declaration_list: Box<PortDeclarationList>,
4940    pub r_brace: Box<RBrace>,
4941}
4942
4943///
4944/// Type derived for production 919
4945///
4946/// `PortDeclarationGroupGroup: PortDeclarationItem;`
4947///
4948#[allow(dead_code)]
4949#[derive(Debug, Clone)]
4950pub struct PortDeclarationGroupGroupPortDeclarationItem {
4951    pub port_declaration_item: Box<PortDeclarationItem>,
4952}
4953
4954///
4955/// Type derived for production 923
4956///
4957/// `PortDeclarationItemGroup: PortTypeConcrete;`
4958///
4959#[allow(dead_code)]
4960#[derive(Debug, Clone)]
4961pub struct PortDeclarationItemGroupPortTypeConcrete {
4962    pub port_type_concrete: Box<PortTypeConcrete>,
4963}
4964
4965///
4966/// Type derived for production 924
4967///
4968/// `PortDeclarationItemGroup: PortTypeAbstract;`
4969///
4970#[allow(dead_code)]
4971#[derive(Debug, Clone)]
4972pub struct PortDeclarationItemGroupPortTypeAbstract {
4973    pub port_type_abstract: Box<PortTypeAbstract>,
4974}
4975
4976///
4977/// Type derived for production 938
4978///
4979/// `Direction: Input;`
4980///
4981#[allow(dead_code)]
4982#[derive(Debug, Clone)]
4983pub struct DirectionInput {
4984    pub input: Box<Input>,
4985}
4986
4987///
4988/// Type derived for production 939
4989///
4990/// `Direction: Output;`
4991///
4992#[allow(dead_code)]
4993#[derive(Debug, Clone)]
4994pub struct DirectionOutput {
4995    pub output: Box<Output>,
4996}
4997
4998///
4999/// Type derived for production 940
5000///
5001/// `Direction: Inout;`
5002///
5003#[allow(dead_code)]
5004#[derive(Debug, Clone)]
5005pub struct DirectionInout {
5006    pub inout: Box<Inout>,
5007}
5008
5009///
5010/// Type derived for production 941
5011///
5012/// `Direction: Modport;`
5013///
5014#[allow(dead_code)]
5015#[derive(Debug, Clone)]
5016pub struct DirectionModport {
5017    pub modport: Box<Modport>,
5018}
5019
5020///
5021/// Type derived for production 942
5022///
5023/// `Direction: Import;`
5024///
5025#[allow(dead_code)]
5026#[derive(Debug, Clone)]
5027pub struct DirectionImport {
5028    pub import: Box<Import>,
5029}
5030
5031///
5032/// Type derived for production 968
5033///
5034/// `ModuleGroupGroup: LBrace ModuleGroupGroupList /* Vec */ RBrace;`
5035///
5036#[allow(dead_code)]
5037#[derive(Debug, Clone)]
5038pub struct ModuleGroupGroupLBraceModuleGroupGroupListRBrace {
5039    pub l_brace: Box<LBrace>,
5040    pub module_group_group_list: Vec<ModuleGroupGroupList>,
5041    pub r_brace: Box<RBrace>,
5042}
5043
5044///
5045/// Type derived for production 971
5046///
5047/// `ModuleGroupGroup: ModuleItem;`
5048///
5049#[allow(dead_code)]
5050#[derive(Debug, Clone)]
5051pub struct ModuleGroupGroupModuleItem {
5052    pub module_item: Box<ModuleItem>,
5053}
5054
5055///
5056/// Type derived for production 985
5057///
5058/// `InterfaceGroupGroup: LBrace InterfaceGroupGroupList /* Vec */ RBrace;`
5059///
5060#[allow(dead_code)]
5061#[derive(Debug, Clone)]
5062pub struct InterfaceGroupGroupLBraceInterfaceGroupGroupListRBrace {
5063    pub l_brace: Box<LBrace>,
5064    pub interface_group_group_list: Vec<InterfaceGroupGroupList>,
5065    pub r_brace: Box<RBrace>,
5066}
5067
5068///
5069/// Type derived for production 988
5070///
5071/// `InterfaceGroupGroup: InterfaceItem;`
5072///
5073#[allow(dead_code)]
5074#[derive(Debug, Clone)]
5075pub struct InterfaceGroupGroupInterfaceItem {
5076    pub interface_item: Box<InterfaceItem>,
5077}
5078
5079///
5080/// Type derived for production 991
5081///
5082/// `InterfaceItem: GenerateItem;`
5083///
5084#[allow(dead_code)]
5085#[derive(Debug, Clone)]
5086pub struct InterfaceItemGenerateItem {
5087    pub generate_item: Box<GenerateItem>,
5088}
5089
5090///
5091/// Type derived for production 992
5092///
5093/// `InterfaceItem: ModportDeclaration;`
5094///
5095#[allow(dead_code)]
5096#[derive(Debug, Clone)]
5097pub struct InterfaceItemModportDeclaration {
5098    pub modport_declaration: Box<ModportDeclaration>,
5099}
5100
5101///
5102/// Type derived for production 1013
5103///
5104/// `GenerateGroupGroup: LBrace GenerateGroupGroupList /* Vec */ RBrace;`
5105///
5106#[allow(dead_code)]
5107#[derive(Debug, Clone)]
5108pub struct GenerateGroupGroupLBraceGenerateGroupGroupListRBrace {
5109    pub l_brace: Box<LBrace>,
5110    pub generate_group_group_list: Vec<GenerateGroupGroupList>,
5111    pub r_brace: Box<RBrace>,
5112}
5113
5114///
5115/// Type derived for production 1016
5116///
5117/// `GenerateGroupGroup: GenerateItem;`
5118///
5119#[allow(dead_code)]
5120#[derive(Debug, Clone)]
5121pub struct GenerateGroupGroupGenerateItem {
5122    pub generate_item: Box<GenerateItem>,
5123}
5124
5125///
5126/// Type derived for production 1019
5127///
5128/// `GenerateItem: LetDeclaration;`
5129///
5130#[allow(dead_code)]
5131#[derive(Debug, Clone)]
5132pub struct GenerateItemLetDeclaration {
5133    pub let_declaration: Box<LetDeclaration>,
5134}
5135
5136///
5137/// Type derived for production 1020
5138///
5139/// `GenerateItem: VarDeclaration;`
5140///
5141#[allow(dead_code)]
5142#[derive(Debug, Clone)]
5143pub struct GenerateItemVarDeclaration {
5144    pub var_declaration: Box<VarDeclaration>,
5145}
5146
5147///
5148/// Type derived for production 1021
5149///
5150/// `GenerateItem: InstDeclaration;`
5151///
5152#[allow(dead_code)]
5153#[derive(Debug, Clone)]
5154pub struct GenerateItemInstDeclaration {
5155    pub inst_declaration: Box<InstDeclaration>,
5156}
5157
5158///
5159/// Type derived for production 1022
5160///
5161/// `GenerateItem: BindDeclaration;`
5162///
5163#[allow(dead_code)]
5164#[derive(Debug, Clone)]
5165pub struct GenerateItemBindDeclaration {
5166    pub bind_declaration: Box<BindDeclaration>,
5167}
5168
5169///
5170/// Type derived for production 1023
5171///
5172/// `GenerateItem: ConstDeclaration;`
5173///
5174#[allow(dead_code)]
5175#[derive(Debug, Clone)]
5176pub struct GenerateItemConstDeclaration {
5177    pub const_declaration: Box<ConstDeclaration>,
5178}
5179
5180///
5181/// Type derived for production 1024
5182///
5183/// `GenerateItem: AlwaysFfDeclaration;`
5184///
5185#[allow(dead_code)]
5186#[derive(Debug, Clone)]
5187pub struct GenerateItemAlwaysFfDeclaration {
5188    pub always_ff_declaration: Box<AlwaysFfDeclaration>,
5189}
5190
5191///
5192/// Type derived for production 1025
5193///
5194/// `GenerateItem: AlwaysCombDeclaration;`
5195///
5196#[allow(dead_code)]
5197#[derive(Debug, Clone)]
5198pub struct GenerateItemAlwaysCombDeclaration {
5199    pub always_comb_declaration: Box<AlwaysCombDeclaration>,
5200}
5201
5202///
5203/// Type derived for production 1026
5204///
5205/// `GenerateItem: AssignDeclaration;`
5206///
5207#[allow(dead_code)]
5208#[derive(Debug, Clone)]
5209pub struct GenerateItemAssignDeclaration {
5210    pub assign_declaration: Box<AssignDeclaration>,
5211}
5212
5213///
5214/// Type derived for production 1027
5215///
5216/// `GenerateItem: ConnectDeclaration;`
5217///
5218#[allow(dead_code)]
5219#[derive(Debug, Clone)]
5220pub struct GenerateItemConnectDeclaration {
5221    pub connect_declaration: Box<ConnectDeclaration>,
5222}
5223
5224///
5225/// Type derived for production 1028
5226///
5227/// `GenerateItem: FunctionDeclaration;`
5228///
5229#[allow(dead_code)]
5230#[derive(Debug, Clone)]
5231pub struct GenerateItemFunctionDeclaration {
5232    pub function_declaration: Box<FunctionDeclaration>,
5233}
5234
5235///
5236/// Type derived for production 1029
5237///
5238/// `GenerateItem: GenerateIfDeclaration;`
5239///
5240#[allow(dead_code)]
5241#[derive(Debug, Clone)]
5242pub struct GenerateItemGenerateIfDeclaration {
5243    pub generate_if_declaration: Box<GenerateIfDeclaration>,
5244}
5245
5246///
5247/// Type derived for production 1030
5248///
5249/// `GenerateItem: GenerateForDeclaration;`
5250///
5251#[allow(dead_code)]
5252#[derive(Debug, Clone)]
5253pub struct GenerateItemGenerateForDeclaration {
5254    pub generate_for_declaration: Box<GenerateForDeclaration>,
5255}
5256
5257///
5258/// Type derived for production 1031
5259///
5260/// `GenerateItem: GenerateBlockDeclaration;`
5261///
5262#[allow(dead_code)]
5263#[derive(Debug, Clone)]
5264pub struct GenerateItemGenerateBlockDeclaration {
5265    pub generate_block_declaration: Box<GenerateBlockDeclaration>,
5266}
5267
5268///
5269/// Type derived for production 1032
5270///
5271/// `GenerateItem: TypeDefDeclaration;`
5272///
5273#[allow(dead_code)]
5274#[derive(Debug, Clone)]
5275pub struct GenerateItemTypeDefDeclaration {
5276    pub type_def_declaration: Box<TypeDefDeclaration>,
5277}
5278
5279///
5280/// Type derived for production 1033
5281///
5282/// `GenerateItem: EnumDeclaration;`
5283///
5284#[allow(dead_code)]
5285#[derive(Debug, Clone)]
5286pub struct GenerateItemEnumDeclaration {
5287    pub enum_declaration: Box<EnumDeclaration>,
5288}
5289
5290///
5291/// Type derived for production 1034
5292///
5293/// `GenerateItem: StructUnionDeclaration;`
5294///
5295#[allow(dead_code)]
5296#[derive(Debug, Clone)]
5297pub struct GenerateItemStructUnionDeclaration {
5298    pub struct_union_declaration: Box<StructUnionDeclaration>,
5299}
5300
5301///
5302/// Type derived for production 1035
5303///
5304/// `GenerateItem: ImportDeclaration;`
5305///
5306#[allow(dead_code)]
5307#[derive(Debug, Clone)]
5308pub struct GenerateItemImportDeclaration {
5309    pub import_declaration: Box<ImportDeclaration>,
5310}
5311
5312///
5313/// Type derived for production 1036
5314///
5315/// `GenerateItem: AliasDeclaration;`
5316///
5317#[allow(dead_code)]
5318#[derive(Debug, Clone)]
5319pub struct GenerateItemAliasDeclaration {
5320    pub alias_declaration: Box<AliasDeclaration>,
5321}
5322
5323///
5324/// Type derived for production 1037
5325///
5326/// `GenerateItem: InitialDeclaration;`
5327///
5328#[allow(dead_code)]
5329#[derive(Debug, Clone)]
5330pub struct GenerateItemInitialDeclaration {
5331    pub initial_declaration: Box<InitialDeclaration>,
5332}
5333
5334///
5335/// Type derived for production 1038
5336///
5337/// `GenerateItem: FinalDeclaration;`
5338///
5339#[allow(dead_code)]
5340#[derive(Debug, Clone)]
5341pub struct GenerateItemFinalDeclaration {
5342    pub final_declaration: Box<FinalDeclaration>,
5343}
5344
5345///
5346/// Type derived for production 1039
5347///
5348/// `GenerateItem: UnsafeBlock;`
5349///
5350#[allow(dead_code)]
5351#[derive(Debug, Clone)]
5352pub struct GenerateItemUnsafeBlock {
5353    pub unsafe_block: Box<UnsafeBlock>,
5354}
5355
5356///
5357/// Type derived for production 1040
5358///
5359/// `GenerateItem: EmbedDeclaration;`
5360///
5361#[allow(dead_code)]
5362#[derive(Debug, Clone)]
5363pub struct GenerateItemEmbedDeclaration {
5364    pub embed_declaration: Box<EmbedDeclaration>,
5365}
5366
5367///
5368/// Type derived for production 1049
5369///
5370/// `PackageGroupGroup: LBrace PackageGroupGroupList /* Vec */ RBrace;`
5371///
5372#[allow(dead_code)]
5373#[derive(Debug, Clone)]
5374pub struct PackageGroupGroupLBracePackageGroupGroupListRBrace {
5375    pub l_brace: Box<LBrace>,
5376    pub package_group_group_list: Vec<PackageGroupGroupList>,
5377    pub r_brace: Box<RBrace>,
5378}
5379
5380///
5381/// Type derived for production 1052
5382///
5383/// `PackageGroupGroup: PackageItem;`
5384///
5385#[allow(dead_code)]
5386#[derive(Debug, Clone)]
5387pub struct PackageGroupGroupPackageItem {
5388    pub package_item: Box<PackageItem>,
5389}
5390
5391///
5392/// Type derived for production 1055
5393///
5394/// `PackageItem: ConstDeclaration;`
5395///
5396#[allow(dead_code)]
5397#[derive(Debug, Clone)]
5398pub struct PackageItemConstDeclaration {
5399    pub const_declaration: Box<ConstDeclaration>,
5400}
5401
5402///
5403/// Type derived for production 1056
5404///
5405/// `PackageItem: TypeDefDeclaration;`
5406///
5407#[allow(dead_code)]
5408#[derive(Debug, Clone)]
5409pub struct PackageItemTypeDefDeclaration {
5410    pub type_def_declaration: Box<TypeDefDeclaration>,
5411}
5412
5413///
5414/// Type derived for production 1057
5415///
5416/// `PackageItem: EnumDeclaration;`
5417///
5418#[allow(dead_code)]
5419#[derive(Debug, Clone)]
5420pub struct PackageItemEnumDeclaration {
5421    pub enum_declaration: Box<EnumDeclaration>,
5422}
5423
5424///
5425/// Type derived for production 1058
5426///
5427/// `PackageItem: StructUnionDeclaration;`
5428///
5429#[allow(dead_code)]
5430#[derive(Debug, Clone)]
5431pub struct PackageItemStructUnionDeclaration {
5432    pub struct_union_declaration: Box<StructUnionDeclaration>,
5433}
5434
5435///
5436/// Type derived for production 1059
5437///
5438/// `PackageItem: FunctionDeclaration;`
5439///
5440#[allow(dead_code)]
5441#[derive(Debug, Clone)]
5442pub struct PackageItemFunctionDeclaration {
5443    pub function_declaration: Box<FunctionDeclaration>,
5444}
5445
5446///
5447/// Type derived for production 1060
5448///
5449/// `PackageItem: ImportDeclaration;`
5450///
5451#[allow(dead_code)]
5452#[derive(Debug, Clone)]
5453pub struct PackageItemImportDeclaration {
5454    pub import_declaration: Box<ImportDeclaration>,
5455}
5456
5457///
5458/// Type derived for production 1061
5459///
5460/// `PackageItem: AliasDeclaration;`
5461///
5462#[allow(dead_code)]
5463#[derive(Debug, Clone)]
5464pub struct PackageItemAliasDeclaration {
5465    pub alias_declaration: Box<AliasDeclaration>,
5466}
5467
5468///
5469/// Type derived for production 1062
5470///
5471/// `PackageItem: EmbedDeclaration;`
5472///
5473#[allow(dead_code)]
5474#[derive(Debug, Clone)]
5475pub struct PackageItemEmbedDeclaration {
5476    pub embed_declaration: Box<EmbedDeclaration>,
5477}
5478
5479///
5480/// Type derived for production 1064
5481///
5482/// `AliasDeclarationGroup: Module;`
5483///
5484#[allow(dead_code)]
5485#[derive(Debug, Clone)]
5486pub struct AliasDeclarationGroupModule {
5487    pub module: Box<Module>,
5488}
5489
5490///
5491/// Type derived for production 1065
5492///
5493/// `AliasDeclarationGroup: Interface;`
5494///
5495#[allow(dead_code)]
5496#[derive(Debug, Clone)]
5497pub struct AliasDeclarationGroupInterface {
5498    pub interface: Box<Interface>,
5499}
5500
5501///
5502/// Type derived for production 1066
5503///
5504/// `AliasDeclarationGroup: Package;`
5505///
5506#[allow(dead_code)]
5507#[derive(Debug, Clone)]
5508pub struct AliasDeclarationGroupPackage {
5509    pub package: Box<Package>,
5510}
5511
5512///
5513/// Type derived for production 1068
5514///
5515/// `ProtoDeclarationGroup: ProtoModuleDeclaration;`
5516///
5517#[allow(dead_code)]
5518#[derive(Debug, Clone)]
5519pub struct ProtoDeclarationGroupProtoModuleDeclaration {
5520    pub proto_module_declaration: Box<ProtoModuleDeclaration>,
5521}
5522
5523///
5524/// Type derived for production 1069
5525///
5526/// `ProtoDeclarationGroup: ProtoInterfaceDeclaration;`
5527///
5528#[allow(dead_code)]
5529#[derive(Debug, Clone)]
5530pub struct ProtoDeclarationGroupProtoInterfaceDeclaration {
5531    pub proto_interface_declaration: Box<ProtoInterfaceDeclaration>,
5532}
5533
5534///
5535/// Type derived for production 1070
5536///
5537/// `ProtoDeclarationGroup: ProtoPackageDeclaration;`
5538///
5539#[allow(dead_code)]
5540#[derive(Debug, Clone)]
5541pub struct ProtoDeclarationGroupProtoPackageDeclaration {
5542    pub proto_package_declaration: Box<ProtoPackageDeclaration>,
5543}
5544
5545///
5546/// Type derived for production 1081
5547///
5548/// `ProtoInterfaceItem: VarDeclaration;`
5549///
5550#[allow(dead_code)]
5551#[derive(Debug, Clone)]
5552pub struct ProtoInterfaceItemVarDeclaration {
5553    pub var_declaration: Box<VarDeclaration>,
5554}
5555
5556///
5557/// Type derived for production 1082
5558///
5559/// `ProtoInterfaceItem: ProtoConstDeclaration;`
5560///
5561#[allow(dead_code)]
5562#[derive(Debug, Clone)]
5563pub struct ProtoInterfaceItemProtoConstDeclaration {
5564    pub proto_const_declaration: Box<ProtoConstDeclaration>,
5565}
5566
5567///
5568/// Type derived for production 1083
5569///
5570/// `ProtoInterfaceItem: ProtoFunctionDeclaration;`
5571///
5572#[allow(dead_code)]
5573#[derive(Debug, Clone)]
5574pub struct ProtoInterfaceItemProtoFunctionDeclaration {
5575    pub proto_function_declaration: Box<ProtoFunctionDeclaration>,
5576}
5577
5578///
5579/// Type derived for production 1084
5580///
5581/// `ProtoInterfaceItem: ProtoTypeDefDeclaration;`
5582///
5583#[allow(dead_code)]
5584#[derive(Debug, Clone)]
5585pub struct ProtoInterfaceItemProtoTypeDefDeclaration {
5586    pub proto_type_def_declaration: Box<ProtoTypeDefDeclaration>,
5587}
5588
5589///
5590/// Type derived for production 1085
5591///
5592/// `ProtoInterfaceItem: ProtoAliasDeclaration;`
5593///
5594#[allow(dead_code)]
5595#[derive(Debug, Clone)]
5596pub struct ProtoInterfaceItemProtoAliasDeclaration {
5597    pub proto_alias_declaration: Box<ProtoAliasDeclaration>,
5598}
5599
5600///
5601/// Type derived for production 1086
5602///
5603/// `ProtoInterfaceItem: ModportDeclaration;`
5604///
5605#[allow(dead_code)]
5606#[derive(Debug, Clone)]
5607pub struct ProtoInterfaceItemModportDeclaration {
5608    pub modport_declaration: Box<ModportDeclaration>,
5609}
5610
5611///
5612/// Type derived for production 1087
5613///
5614/// `ProtoInterfaceItem: ImportDeclaration;`
5615///
5616#[allow(dead_code)]
5617#[derive(Debug, Clone)]
5618pub struct ProtoInterfaceItemImportDeclaration {
5619    pub import_declaration: Box<ImportDeclaration>,
5620}
5621
5622///
5623/// Type derived for production 1091
5624///
5625/// `ProtoPacakgeItem: ProtoConstDeclaration;`
5626///
5627#[allow(dead_code)]
5628#[derive(Debug, Clone)]
5629pub struct ProtoPacakgeItemProtoConstDeclaration {
5630    pub proto_const_declaration: Box<ProtoConstDeclaration>,
5631}
5632
5633///
5634/// Type derived for production 1092
5635///
5636/// `ProtoPacakgeItem: ProtoTypeDefDeclaration;`
5637///
5638#[allow(dead_code)]
5639#[derive(Debug, Clone)]
5640pub struct ProtoPacakgeItemProtoTypeDefDeclaration {
5641    pub proto_type_def_declaration: Box<ProtoTypeDefDeclaration>,
5642}
5643
5644///
5645/// Type derived for production 1093
5646///
5647/// `ProtoPacakgeItem: EnumDeclaration;`
5648///
5649#[allow(dead_code)]
5650#[derive(Debug, Clone)]
5651pub struct ProtoPacakgeItemEnumDeclaration {
5652    pub enum_declaration: Box<EnumDeclaration>,
5653}
5654
5655///
5656/// Type derived for production 1094
5657///
5658/// `ProtoPacakgeItem: StructUnionDeclaration;`
5659///
5660#[allow(dead_code)]
5661#[derive(Debug, Clone)]
5662pub struct ProtoPacakgeItemStructUnionDeclaration {
5663    pub struct_union_declaration: Box<StructUnionDeclaration>,
5664}
5665
5666///
5667/// Type derived for production 1095
5668///
5669/// `ProtoPacakgeItem: ProtoFunctionDeclaration;`
5670///
5671#[allow(dead_code)]
5672#[derive(Debug, Clone)]
5673pub struct ProtoPacakgeItemProtoFunctionDeclaration {
5674    pub proto_function_declaration: Box<ProtoFunctionDeclaration>,
5675}
5676
5677///
5678/// Type derived for production 1096
5679///
5680/// `ProtoPacakgeItem: ProtoAliasDeclaration;`
5681///
5682#[allow(dead_code)]
5683#[derive(Debug, Clone)]
5684pub struct ProtoPacakgeItemProtoAliasDeclaration {
5685    pub proto_alias_declaration: Box<ProtoAliasDeclaration>,
5686}
5687
5688///
5689/// Type derived for production 1097
5690///
5691/// `ProtoPacakgeItem: ImportDeclaration;`
5692///
5693#[allow(dead_code)]
5694#[derive(Debug, Clone)]
5695pub struct ProtoPacakgeItemImportDeclaration {
5696    pub import_declaration: Box<ImportDeclaration>,
5697}
5698
5699///
5700/// Type derived for production 1099
5701///
5702/// `ProtoConstDeclarationGroup: ArrayType;`
5703///
5704#[allow(dead_code)]
5705#[derive(Debug, Clone)]
5706pub struct ProtoConstDeclarationGroupArrayType {
5707    pub array_type: Box<ArrayType>,
5708}
5709
5710///
5711/// Type derived for production 1100
5712///
5713/// `ProtoConstDeclarationGroup: Type;`
5714///
5715#[allow(dead_code)]
5716#[derive(Debug, Clone)]
5717pub struct ProtoConstDeclarationGroupType {
5718    pub r#type: Box<Type>,
5719}
5720
5721///
5722/// Type derived for production 1112
5723///
5724/// `ProtoAliasDeclarationGroup: Module;`
5725///
5726#[allow(dead_code)]
5727#[derive(Debug, Clone)]
5728pub struct ProtoAliasDeclarationGroupModule {
5729    pub module: Box<Module>,
5730}
5731
5732///
5733/// Type derived for production 1113
5734///
5735/// `ProtoAliasDeclarationGroup: Interface;`
5736///
5737#[allow(dead_code)]
5738#[derive(Debug, Clone)]
5739pub struct ProtoAliasDeclarationGroupInterface {
5740    pub interface: Box<Interface>,
5741}
5742
5743///
5744/// Type derived for production 1114
5745///
5746/// `ProtoAliasDeclarationGroup: Package;`
5747///
5748#[allow(dead_code)]
5749#[derive(Debug, Clone)]
5750pub struct ProtoAliasDeclarationGroupPackage {
5751    pub package: Box<Package>,
5752}
5753
5754///
5755/// Type derived for production 1120
5756///
5757/// `EmbedItem: EmbedLBrace EmbedItemList /* Vec */ EmbedRBrace;`
5758///
5759#[allow(dead_code)]
5760#[derive(Debug, Clone)]
5761pub struct EmbedItemEmbedLBraceEmbedItemListEmbedRBrace {
5762    pub embed_l_brace: Box<EmbedLBrace>,
5763    pub embed_item_list: Vec<EmbedItemList>,
5764    pub embed_r_brace: Box<EmbedRBrace>,
5765}
5766
5767///
5768/// Type derived for production 1123
5769///
5770/// `EmbedItem: EmbedScopedIdentifier;`
5771///
5772#[allow(dead_code)]
5773#[derive(Debug, Clone)]
5774pub struct EmbedItemEmbedScopedIdentifier {
5775    pub embed_scoped_identifier: Box<EmbedScopedIdentifier>,
5776}
5777
5778///
5779/// Type derived for production 1124
5780///
5781/// `EmbedItem: Any;`
5782///
5783#[allow(dead_code)]
5784#[derive(Debug, Clone)]
5785pub struct EmbedItemAny {
5786    pub any: Box<Any>,
5787}
5788
5789///
5790/// Type derived for production 1127
5791///
5792/// `DescriptionGroupGroup: LBrace DescriptionGroupGroupList /* Vec */ RBrace;`
5793///
5794#[allow(dead_code)]
5795#[derive(Debug, Clone)]
5796pub struct DescriptionGroupGroupLBraceDescriptionGroupGroupListRBrace {
5797    pub l_brace: Box<LBrace>,
5798    pub description_group_group_list: Vec<DescriptionGroupGroupList>,
5799    pub r_brace: Box<RBrace>,
5800}
5801
5802///
5803/// Type derived for production 1130
5804///
5805/// `DescriptionGroupGroup: DescriptionItem;`
5806///
5807#[allow(dead_code)]
5808#[derive(Debug, Clone)]
5809pub struct DescriptionGroupGroupDescriptionItem {
5810    pub description_item: Box<DescriptionItem>,
5811}
5812
5813///
5814/// Type derived for production 1133
5815///
5816/// `DescriptionItem: DescriptionItemOpt /* Option */ PublicDescriptionItem;`
5817///
5818#[allow(dead_code)]
5819#[derive(Debug, Clone)]
5820pub struct DescriptionItemDescriptionItemOptPublicDescriptionItem {
5821    pub description_item_opt: Option<DescriptionItemOpt>,
5822    pub public_description_item: Box<PublicDescriptionItem>,
5823}
5824
5825///
5826/// Type derived for production 1134
5827///
5828/// `DescriptionItem: ImportDeclaration;`
5829///
5830#[allow(dead_code)]
5831#[derive(Debug, Clone)]
5832pub struct DescriptionItemImportDeclaration {
5833    pub import_declaration: Box<ImportDeclaration>,
5834}
5835
5836///
5837/// Type derived for production 1135
5838///
5839/// `DescriptionItem: BindDeclaration;`
5840///
5841#[allow(dead_code)]
5842#[derive(Debug, Clone)]
5843pub struct DescriptionItemBindDeclaration {
5844    pub bind_declaration: Box<BindDeclaration>,
5845}
5846
5847///
5848/// Type derived for production 1136
5849///
5850/// `DescriptionItem: EmbedDeclaration;`
5851///
5852#[allow(dead_code)]
5853#[derive(Debug, Clone)]
5854pub struct DescriptionItemEmbedDeclaration {
5855    pub embed_declaration: Box<EmbedDeclaration>,
5856}
5857
5858///
5859/// Type derived for production 1137
5860///
5861/// `DescriptionItem: IncludeDeclaration;`
5862///
5863#[allow(dead_code)]
5864#[derive(Debug, Clone)]
5865pub struct DescriptionItemIncludeDeclaration {
5866    pub include_declaration: Box<IncludeDeclaration>,
5867}
5868
5869///
5870/// Type derived for production 1140
5871///
5872/// `PublicDescriptionItem: ModuleDeclaration;`
5873///
5874#[allow(dead_code)]
5875#[derive(Debug, Clone)]
5876pub struct PublicDescriptionItemModuleDeclaration {
5877    pub module_declaration: Box<ModuleDeclaration>,
5878}
5879
5880///
5881/// Type derived for production 1141
5882///
5883/// `PublicDescriptionItem: InterfaceDeclaration;`
5884///
5885#[allow(dead_code)]
5886#[derive(Debug, Clone)]
5887pub struct PublicDescriptionItemInterfaceDeclaration {
5888    pub interface_declaration: Box<InterfaceDeclaration>,
5889}
5890
5891///
5892/// Type derived for production 1142
5893///
5894/// `PublicDescriptionItem: PackageDeclaration;`
5895///
5896#[allow(dead_code)]
5897#[derive(Debug, Clone)]
5898pub struct PublicDescriptionItemPackageDeclaration {
5899    pub package_declaration: Box<PackageDeclaration>,
5900}
5901
5902///
5903/// Type derived for production 1143
5904///
5905/// `PublicDescriptionItem: AliasDeclaration;`
5906///
5907#[allow(dead_code)]
5908#[derive(Debug, Clone)]
5909pub struct PublicDescriptionItemAliasDeclaration {
5910    pub alias_declaration: Box<AliasDeclaration>,
5911}
5912
5913///
5914/// Type derived for production 1144
5915///
5916/// `PublicDescriptionItem: ProtoDeclaration;`
5917///
5918#[allow(dead_code)]
5919#[derive(Debug, Clone)]
5920pub struct PublicDescriptionItemProtoDeclaration {
5921    pub proto_declaration: Box<ProtoDeclaration>,
5922}
5923
5924///
5925/// Type derived for production 1145
5926///
5927/// `PublicDescriptionItem: FunctionDeclaration;`
5928///
5929#[allow(dead_code)]
5930#[derive(Debug, Clone)]
5931pub struct PublicDescriptionItemFunctionDeclaration {
5932    pub function_declaration: Box<FunctionDeclaration>,
5933}
5934
5935// -------------------------------------------------------------------------------------------------
5936//
5937// Types of non-terminals deduced from the structure of the transformed grammar
5938//
5939
5940///
5941/// Type derived for non-terminal Alias
5942///
5943#[allow(dead_code)]
5944#[derive(Debug, Clone)]
5945pub struct Alias {
5946    pub alias_token: crate::veryl_token::VerylToken,
5947}
5948
5949///
5950/// Type derived for non-terminal AliasDeclaration
5951///
5952#[allow(dead_code)]
5953#[derive(Debug, Clone)]
5954pub struct AliasDeclaration {
5955    pub alias: Box<Alias>,
5956    pub alias_declaration_group: Box<AliasDeclarationGroup>,
5957    pub identifier: Box<Identifier>,
5958    pub equ: Box<Equ>,
5959    pub scoped_identifier: Box<ScopedIdentifier>,
5960    pub semicolon: Box<Semicolon>,
5961}
5962
5963///
5964/// Type derived for non-terminal AliasDeclarationGroup
5965///
5966#[allow(dead_code)]
5967#[derive(Debug, Clone)]
5968pub enum AliasDeclarationGroup {
5969    Module(AliasDeclarationGroupModule),
5970    Interface(AliasDeclarationGroupInterface),
5971    Package(AliasDeclarationGroupPackage),
5972}
5973
5974///
5975/// Type derived for non-terminal AliasTerm
5976///
5977#[allow(dead_code)]
5978#[derive(Debug, Clone)]
5979pub struct AliasTerm {
5980    pub alias_term: crate::veryl_token::Token, /* alias */
5981}
5982
5983///
5984/// Type derived for non-terminal AliasToken
5985///
5986#[allow(dead_code)]
5987#[derive(Debug, Clone)]
5988pub struct AliasToken {
5989    pub alias_term: crate::veryl_token::Token,
5990    pub comments: Box<Comments>,
5991}
5992
5993///
5994/// Type derived for non-terminal AllBit
5995///
5996#[allow(dead_code)]
5997#[derive(Debug, Clone)]
5998pub struct AllBit {
5999    pub all_bit_token: crate::veryl_token::VerylToken,
6000}
6001
6002///
6003/// Type derived for non-terminal AllBitTerm
6004///
6005#[allow(dead_code)]
6006#[derive(Debug, Clone)]
6007pub struct AllBitTerm {
6008    pub all_bit_term: crate::veryl_token::Token, /* (?:[0-9]+(?:_[0-9]+)*)?'[01xzXZ] */
6009}
6010
6011///
6012/// Type derived for non-terminal AllBitToken
6013///
6014#[allow(dead_code)]
6015#[derive(Debug, Clone)]
6016pub struct AllBitToken {
6017    pub all_bit_term: crate::veryl_token::Token,
6018    pub comments: Box<Comments>,
6019}
6020
6021///
6022/// Type derived for non-terminal AlwaysComb
6023///
6024#[allow(dead_code)]
6025#[derive(Debug, Clone)]
6026pub struct AlwaysComb {
6027    pub always_comb_token: crate::veryl_token::VerylToken,
6028}
6029
6030///
6031/// Type derived for non-terminal AlwaysCombDeclaration
6032///
6033#[allow(dead_code)]
6034#[derive(Debug, Clone)]
6035pub struct AlwaysCombDeclaration {
6036    pub always_comb: Box<AlwaysComb>,
6037    pub statement_block: Box<StatementBlock>,
6038}
6039
6040///
6041/// Type derived for non-terminal AlwaysCombTerm
6042///
6043#[allow(dead_code)]
6044#[derive(Debug, Clone)]
6045pub struct AlwaysCombTerm {
6046    pub always_comb_term: crate::veryl_token::Token, /* always_comb */
6047}
6048
6049///
6050/// Type derived for non-terminal AlwaysCombToken
6051///
6052#[allow(dead_code)]
6053#[derive(Debug, Clone)]
6054pub struct AlwaysCombToken {
6055    pub always_comb_term: crate::veryl_token::Token,
6056    pub comments: Box<Comments>,
6057}
6058
6059///
6060/// Type derived for non-terminal AlwaysFf
6061///
6062#[allow(dead_code)]
6063#[derive(Debug, Clone)]
6064pub struct AlwaysFf {
6065    pub always_ff_token: crate::veryl_token::VerylToken,
6066}
6067
6068///
6069/// Type derived for non-terminal AlwaysFfClock
6070///
6071#[allow(dead_code)]
6072#[derive(Debug, Clone)]
6073pub struct AlwaysFfClock {
6074    pub hierarchical_identifier: Box<HierarchicalIdentifier>,
6075}
6076
6077///
6078/// Type derived for non-terminal AlwaysFfDeclaration
6079///
6080#[allow(dead_code)]
6081#[derive(Debug, Clone)]
6082pub struct AlwaysFfDeclaration {
6083    pub always_ff: Box<AlwaysFf>,
6084    pub always_ff_declaration_opt: Option<AlwaysFfDeclarationOpt>,
6085    pub statement_block: Box<StatementBlock>,
6086}
6087
6088///
6089/// Type derived for non-terminal AlwaysFfDeclarationOpt
6090///
6091#[allow(dead_code)]
6092#[derive(Debug, Clone)]
6093pub struct AlwaysFfDeclarationOpt {
6094    pub always_ff_event_list: Box<AlwaysFfEventList>,
6095}
6096
6097///
6098/// Type derived for non-terminal AlwaysFfEventList
6099///
6100#[allow(dead_code)]
6101#[derive(Debug, Clone)]
6102pub struct AlwaysFfEventList {
6103    pub l_paren: Box<LParen>,
6104    pub always_ff_clock: Box<AlwaysFfClock>,
6105    pub always_ff_event_list_opt: Option<AlwaysFfEventListOpt>,
6106    pub r_paren: Box<RParen>,
6107}
6108
6109///
6110/// Type derived for non-terminal AlwaysFfEventListOpt
6111///
6112#[allow(dead_code)]
6113#[derive(Debug, Clone)]
6114pub struct AlwaysFfEventListOpt {
6115    pub comma: Box<Comma>,
6116    pub always_ff_reset: Box<AlwaysFfReset>,
6117}
6118
6119///
6120/// Type derived for non-terminal AlwaysFfReset
6121///
6122#[allow(dead_code)]
6123#[derive(Debug, Clone)]
6124pub struct AlwaysFfReset {
6125    pub hierarchical_identifier: Box<HierarchicalIdentifier>,
6126}
6127
6128///
6129/// Type derived for non-terminal AlwaysFfTerm
6130///
6131#[allow(dead_code)]
6132#[derive(Debug, Clone)]
6133pub struct AlwaysFfTerm {
6134    pub always_ff_term: crate::veryl_token::Token, /* always_ff */
6135}
6136
6137///
6138/// Type derived for non-terminal AlwaysFfToken
6139///
6140#[allow(dead_code)]
6141#[derive(Debug, Clone)]
6142pub struct AlwaysFfToken {
6143    pub always_ff_term: crate::veryl_token::Token,
6144    pub comments: Box<Comments>,
6145}
6146
6147///
6148/// Type derived for non-terminal Any
6149///
6150#[allow(dead_code)]
6151#[derive(Debug, Clone)]
6152pub struct Any {
6153    pub any_token: crate::veryl_token::VerylToken,
6154}
6155
6156///
6157/// Type derived for non-terminal AnyTerm
6158///
6159#[allow(dead_code)]
6160#[derive(Debug, Clone)]
6161pub struct AnyTerm {
6162    pub any_term: crate::veryl_token::Token, /* (?:[^{}\\]|\\[^{])+ */
6163}
6164
6165///
6166/// Type derived for non-terminal AnyToken
6167///
6168#[allow(dead_code)]
6169#[derive(Debug, Clone)]
6170pub struct AnyToken {
6171    pub any_term: crate::veryl_token::Token,
6172}
6173
6174///
6175/// Type derived for non-terminal ArgumentExpression
6176///
6177#[allow(dead_code)]
6178#[derive(Debug, Clone)]
6179pub struct ArgumentExpression {
6180    pub expression: Box<Expression>,
6181}
6182
6183///
6184/// Type derived for non-terminal ArgumentItem
6185///
6186#[allow(dead_code)]
6187#[derive(Debug, Clone)]
6188pub struct ArgumentItem {
6189    pub argument_expression: Box<ArgumentExpression>,
6190    pub argument_item_opt: Option<ArgumentItemOpt>,
6191}
6192
6193///
6194/// Type derived for non-terminal ArgumentItemOpt
6195///
6196#[allow(dead_code)]
6197#[derive(Debug, Clone)]
6198pub struct ArgumentItemOpt {
6199    pub colon: Box<Colon>,
6200    pub expression: Box<Expression>,
6201}
6202
6203///
6204/// Type derived for non-terminal ArgumentList
6205///
6206#[allow(dead_code)]
6207#[derive(Debug, Clone)]
6208pub struct ArgumentList {
6209    pub argument_item: Box<ArgumentItem>,
6210    pub argument_list_list: Vec<ArgumentListList>,
6211    pub argument_list_opt: Option<ArgumentListOpt>,
6212}
6213
6214///
6215/// Type derived for non-terminal ArgumentListList
6216///
6217#[allow(dead_code)]
6218#[derive(Debug, Clone)]
6219pub struct ArgumentListList {
6220    pub comma: Box<Comma>,
6221    pub argument_item: Box<ArgumentItem>,
6222}
6223
6224///
6225/// Type derived for non-terminal ArgumentListOpt
6226///
6227#[allow(dead_code)]
6228#[derive(Debug, Clone)]
6229pub struct ArgumentListOpt {
6230    pub comma: Box<Comma>,
6231}
6232
6233///
6234/// Type derived for non-terminal Array
6235///
6236#[allow(dead_code)]
6237#[derive(Debug, Clone)]
6238pub struct Array {
6239    pub l_bracket: Box<LBracket>,
6240    pub expression: Box<Expression>,
6241    pub array_list: Vec<ArrayList>,
6242    pub r_bracket: Box<RBracket>,
6243}
6244
6245///
6246/// Type derived for non-terminal ArrayList
6247///
6248#[allow(dead_code)]
6249#[derive(Debug, Clone)]
6250pub struct ArrayList {
6251    pub comma: Box<Comma>,
6252    pub expression: Box<Expression>,
6253}
6254
6255///
6256/// Type derived for non-terminal ArrayLiteralItem
6257///
6258#[allow(dead_code)]
6259#[derive(Debug, Clone)]
6260pub struct ArrayLiteralItem {
6261    pub array_literal_item_group: Box<ArrayLiteralItemGroup>,
6262}
6263
6264///
6265/// Type derived for non-terminal ArrayLiteralItemGroup
6266///
6267#[allow(dead_code)]
6268#[derive(Debug, Clone)]
6269pub enum ArrayLiteralItemGroup {
6270    ExpressionArrayLiteralItemOpt(ArrayLiteralItemGroupExpressionArrayLiteralItemOpt),
6271    DefaulColonExpression(ArrayLiteralItemGroupDefaulColonExpression),
6272}
6273
6274///
6275/// Type derived for non-terminal ArrayLiteralItemOpt
6276///
6277#[allow(dead_code)]
6278#[derive(Debug, Clone)]
6279pub struct ArrayLiteralItemOpt {
6280    pub repeat: Box<Repeat>,
6281    pub expression: Box<Expression>,
6282}
6283
6284///
6285/// Type derived for non-terminal ArrayLiteralList
6286///
6287#[allow(dead_code)]
6288#[derive(Debug, Clone)]
6289pub struct ArrayLiteralList {
6290    pub array_literal_item: Box<ArrayLiteralItem>,
6291    pub array_literal_list_list: Vec<ArrayLiteralListList>,
6292    pub array_literal_list_opt: Option<ArrayLiteralListOpt>,
6293}
6294
6295///
6296/// Type derived for non-terminal ArrayLiteralListList
6297///
6298#[allow(dead_code)]
6299#[derive(Debug, Clone)]
6300pub struct ArrayLiteralListList {
6301    pub comma: Box<Comma>,
6302    pub array_literal_item: Box<ArrayLiteralItem>,
6303}
6304
6305///
6306/// Type derived for non-terminal ArrayLiteralListOpt
6307///
6308#[allow(dead_code)]
6309#[derive(Debug, Clone)]
6310pub struct ArrayLiteralListOpt {
6311    pub comma: Box<Comma>,
6312}
6313
6314///
6315/// Type derived for non-terminal ArrayType
6316///
6317#[allow(dead_code)]
6318#[derive(Debug, Clone)]
6319pub struct ArrayType {
6320    pub scalar_type: Box<ScalarType>,
6321    pub array_type_opt: Option<ArrayTypeOpt>,
6322}
6323
6324///
6325/// Type derived for non-terminal ArrayTypeOpt
6326///
6327#[allow(dead_code)]
6328#[derive(Debug, Clone)]
6329pub struct ArrayTypeOpt {
6330    pub array: Box<Array>,
6331}
6332
6333///
6334/// Type derived for non-terminal As
6335///
6336#[allow(dead_code)]
6337#[derive(Debug, Clone)]
6338pub struct As {
6339    pub as_token: crate::veryl_token::VerylToken,
6340}
6341
6342///
6343/// Type derived for non-terminal AsTerm
6344///
6345#[allow(dead_code)]
6346#[derive(Debug, Clone)]
6347pub struct AsTerm {
6348    pub as_term: crate::veryl_token::Token, /* as */
6349}
6350
6351///
6352/// Type derived for non-terminal AsToken
6353///
6354#[allow(dead_code)]
6355#[derive(Debug, Clone)]
6356pub struct AsToken {
6357    pub as_term: crate::veryl_token::Token,
6358    pub comments: Box<Comments>,
6359}
6360
6361///
6362/// Type derived for non-terminal Assign
6363///
6364#[allow(dead_code)]
6365#[derive(Debug, Clone)]
6366pub struct Assign {
6367    pub assign_token: crate::veryl_token::VerylToken,
6368}
6369
6370///
6371/// Type derived for non-terminal AssignConcatenationItem
6372///
6373#[allow(dead_code)]
6374#[derive(Debug, Clone)]
6375pub struct AssignConcatenationItem {
6376    pub hierarchical_identifier: Box<HierarchicalIdentifier>,
6377}
6378
6379///
6380/// Type derived for non-terminal AssignConcatenationList
6381///
6382#[allow(dead_code)]
6383#[derive(Debug, Clone)]
6384pub struct AssignConcatenationList {
6385    pub assign_concatenation_item: Box<AssignConcatenationItem>,
6386    pub assign_concatenation_list_list: Vec<AssignConcatenationListList>,
6387    pub assign_concatenation_list_opt: Option<AssignConcatenationListOpt>,
6388}
6389
6390///
6391/// Type derived for non-terminal AssignConcatenationListList
6392///
6393#[allow(dead_code)]
6394#[derive(Debug, Clone)]
6395pub struct AssignConcatenationListList {
6396    pub comma: Box<Comma>,
6397    pub assign_concatenation_item: Box<AssignConcatenationItem>,
6398}
6399
6400///
6401/// Type derived for non-terminal AssignConcatenationListOpt
6402///
6403#[allow(dead_code)]
6404#[derive(Debug, Clone)]
6405pub struct AssignConcatenationListOpt {
6406    pub comma: Box<Comma>,
6407}
6408
6409///
6410/// Type derived for non-terminal AssignDeclaration
6411///
6412#[allow(dead_code)]
6413#[derive(Debug, Clone)]
6414pub struct AssignDeclaration {
6415    pub assign: Box<Assign>,
6416    pub assign_destination: Box<AssignDestination>,
6417    pub equ: Box<Equ>,
6418    pub expression: Box<Expression>,
6419    pub semicolon: Box<Semicolon>,
6420}
6421
6422///
6423/// Type derived for non-terminal AssignDestination
6424///
6425#[allow(dead_code)]
6426#[derive(Debug, Clone)]
6427pub enum AssignDestination {
6428    HierarchicalIdentifier(AssignDestinationHierarchicalIdentifier),
6429    LBraceAssignConcatenationListRBrace(AssignDestinationLBraceAssignConcatenationListRBrace),
6430}
6431
6432///
6433/// Type derived for non-terminal AssignTerm
6434///
6435#[allow(dead_code)]
6436#[derive(Debug, Clone)]
6437pub struct AssignTerm {
6438    pub assign_term: crate::veryl_token::Token, /* assign */
6439}
6440
6441///
6442/// Type derived for non-terminal AssignToken
6443///
6444#[allow(dead_code)]
6445#[derive(Debug, Clone)]
6446pub struct AssignToken {
6447    pub assign_term: crate::veryl_token::Token,
6448    pub comments: Box<Comments>,
6449}
6450
6451///
6452/// Type derived for non-terminal Assignment
6453///
6454#[allow(dead_code)]
6455#[derive(Debug, Clone)]
6456pub struct Assignment {
6457    pub assignment_group: Box<AssignmentGroup>,
6458    pub expression: Box<Expression>,
6459}
6460
6461///
6462/// Type derived for non-terminal AssignmentGroup
6463///
6464#[allow(dead_code)]
6465#[derive(Debug, Clone)]
6466pub enum AssignmentGroup {
6467    Equ(AssignmentGroupEqu),
6468    AssignmentOperator(AssignmentGroupAssignmentOperator),
6469    DiamondOperator(AssignmentGroupDiamondOperator),
6470}
6471
6472///
6473/// Type derived for non-terminal AssignmentOperator
6474///
6475#[allow(dead_code)]
6476#[derive(Debug, Clone)]
6477pub struct AssignmentOperator {
6478    pub assignment_operator_token: crate::veryl_token::VerylToken,
6479}
6480
6481///
6482/// Type derived for non-terminal AssignmentOperatorTerm
6483///
6484#[allow(dead_code)]
6485#[derive(Debug, Clone)]
6486pub struct AssignmentOperatorTerm {
6487    pub assignment_operator_term: crate::veryl_token::Token, /* \+=|-=|\*=|/=|%=|&=|\|=|\^=|<<=|>>=|<<<=|>>>= */
6488}
6489
6490///
6491/// Type derived for non-terminal AssignmentOperatorToken
6492///
6493#[allow(dead_code)]
6494#[derive(Debug, Clone)]
6495pub struct AssignmentOperatorToken {
6496    pub assignment_operator_term: crate::veryl_token::Token,
6497    pub comments: Box<Comments>,
6498}
6499
6500///
6501/// Type derived for non-terminal Attribute
6502///
6503#[allow(dead_code)]
6504#[derive(Debug, Clone)]
6505pub struct Attribute {
6506    pub hash_l_bracket: Box<HashLBracket>,
6507    pub identifier: Box<Identifier>,
6508    pub attribute_opt: Option<AttributeOpt>,
6509    pub r_bracket: Box<RBracket>,
6510}
6511
6512///
6513/// Type derived for non-terminal AttributeItem
6514///
6515#[allow(dead_code)]
6516#[derive(Debug, Clone)]
6517pub enum AttributeItem {
6518    Identifier(AttributeItemIdentifier),
6519    StringLiteral(AttributeItemStringLiteral),
6520}
6521
6522///
6523/// Type derived for non-terminal AttributeList
6524///
6525#[allow(dead_code)]
6526#[derive(Debug, Clone)]
6527pub struct AttributeList {
6528    pub attribute_item: Box<AttributeItem>,
6529    pub attribute_list_list: Vec<AttributeListList>,
6530    pub attribute_list_opt: Option<AttributeListOpt>,
6531}
6532
6533///
6534/// Type derived for non-terminal AttributeListList
6535///
6536#[allow(dead_code)]
6537#[derive(Debug, Clone)]
6538pub struct AttributeListList {
6539    pub comma: Box<Comma>,
6540    pub attribute_item: Box<AttributeItem>,
6541}
6542
6543///
6544/// Type derived for non-terminal AttributeListOpt
6545///
6546#[allow(dead_code)]
6547#[derive(Debug, Clone)]
6548pub struct AttributeListOpt {
6549    pub comma: Box<Comma>,
6550}
6551
6552///
6553/// Type derived for non-terminal AttributeOpt
6554///
6555#[allow(dead_code)]
6556#[derive(Debug, Clone)]
6557pub struct AttributeOpt {
6558    pub l_paren: Box<LParen>,
6559    pub attribute_list: Box<AttributeList>,
6560    pub r_paren: Box<RParen>,
6561}
6562
6563///
6564/// Type derived for non-terminal BBool
6565///
6566#[allow(dead_code)]
6567#[derive(Debug, Clone)]
6568pub struct BBool {
6569    pub b_bool_token: crate::veryl_token::VerylToken,
6570}
6571
6572///
6573/// Type derived for non-terminal BBoolTerm
6574///
6575#[allow(dead_code)]
6576#[derive(Debug, Clone)]
6577pub struct BBoolTerm {
6578    pub b_bool_term: crate::veryl_token::Token, /* bbool */
6579}
6580
6581///
6582/// Type derived for non-terminal BBoolToken
6583///
6584#[allow(dead_code)]
6585#[derive(Debug, Clone)]
6586pub struct BBoolToken {
6587    pub b_bool_term: crate::veryl_token::Token,
6588    pub comments: Box<Comments>,
6589}
6590
6591///
6592/// Type derived for non-terminal BaseLess
6593///
6594#[allow(dead_code)]
6595#[derive(Debug, Clone)]
6596pub struct BaseLess {
6597    pub base_less_token: crate::veryl_token::VerylToken,
6598}
6599
6600///
6601/// Type derived for non-terminal BaseLessTerm
6602///
6603#[allow(dead_code)]
6604#[derive(Debug, Clone)]
6605pub struct BaseLessTerm {
6606    pub base_less_term: crate::veryl_token::Token, /* [0-9]+(?:_[0-9]+)* */
6607}
6608
6609///
6610/// Type derived for non-terminal BaseLessToken
6611///
6612#[allow(dead_code)]
6613#[derive(Debug, Clone)]
6614pub struct BaseLessToken {
6615    pub base_less_term: crate::veryl_token::Token,
6616    pub comments: Box<Comments>,
6617}
6618
6619///
6620/// Type derived for non-terminal Based
6621///
6622#[allow(dead_code)]
6623#[derive(Debug, Clone)]
6624pub struct Based {
6625    pub based_token: crate::veryl_token::VerylToken,
6626}
6627
6628///
6629/// Type derived for non-terminal BasedTerm
6630///
6631#[allow(dead_code)]
6632#[derive(Debug, Clone)]
6633pub struct BasedTerm {
6634    pub based_term: crate::veryl_token::Token, /* (?:[0-9]+(?:_[0-9]+)*)?'s?[bodh][0-9a-fA-FxzXZ]+(?:_[0-9a-fA-FxzXZ]+)* */
6635}
6636
6637///
6638/// Type derived for non-terminal BasedToken
6639///
6640#[allow(dead_code)]
6641#[derive(Debug, Clone)]
6642pub struct BasedToken {
6643    pub based_term: crate::veryl_token::Token,
6644    pub comments: Box<Comments>,
6645}
6646
6647///
6648/// Type derived for non-terminal Bind
6649///
6650#[allow(dead_code)]
6651#[derive(Debug, Clone)]
6652pub struct Bind {
6653    pub bind_token: crate::veryl_token::VerylToken,
6654}
6655
6656///
6657/// Type derived for non-terminal BindDeclaration
6658///
6659#[allow(dead_code)]
6660#[derive(Debug, Clone)]
6661pub struct BindDeclaration {
6662    pub bind: Box<Bind>,
6663    pub scoped_identifier: Box<ScopedIdentifier>,
6664    pub l_t_minus: Box<LTMinus>,
6665    pub component_instantiation: Box<ComponentInstantiation>,
6666    pub semicolon: Box<Semicolon>,
6667}
6668
6669///
6670/// Type derived for non-terminal BindTerm
6671///
6672#[allow(dead_code)]
6673#[derive(Debug, Clone)]
6674pub struct BindTerm {
6675    pub bind_term: crate::veryl_token::Token, /* bind */
6676}
6677
6678///
6679/// Type derived for non-terminal BindToken
6680///
6681#[allow(dead_code)]
6682#[derive(Debug, Clone)]
6683pub struct BindToken {
6684    pub bind_term: crate::veryl_token::Token,
6685    pub comments: Box<Comments>,
6686}
6687
6688///
6689/// Type derived for non-terminal Bit
6690///
6691#[allow(dead_code)]
6692#[derive(Debug, Clone)]
6693pub struct Bit {
6694    pub bit_token: crate::veryl_token::VerylToken,
6695}
6696
6697///
6698/// Type derived for non-terminal BitTerm
6699///
6700#[allow(dead_code)]
6701#[derive(Debug, Clone)]
6702pub struct BitTerm {
6703    pub bit_term: crate::veryl_token::Token, /* bit */
6704}
6705
6706///
6707/// Type derived for non-terminal BitToken
6708///
6709#[allow(dead_code)]
6710#[derive(Debug, Clone)]
6711pub struct BitToken {
6712    pub bit_term: crate::veryl_token::Token,
6713    pub comments: Box<Comments>,
6714}
6715
6716///
6717/// Type derived for non-terminal Block
6718///
6719#[allow(dead_code)]
6720#[derive(Debug, Clone)]
6721pub struct Block {
6722    pub block_token: crate::veryl_token::VerylToken,
6723}
6724
6725///
6726/// Type derived for non-terminal BlockTerm
6727///
6728#[allow(dead_code)]
6729#[derive(Debug, Clone)]
6730pub struct BlockTerm {
6731    pub block_term: crate::veryl_token::Token, /* block */
6732}
6733
6734///
6735/// Type derived for non-terminal BlockToken
6736///
6737#[allow(dead_code)]
6738#[derive(Debug, Clone)]
6739pub struct BlockToken {
6740    pub block_term: crate::veryl_token::Token,
6741    pub comments: Box<Comments>,
6742}
6743
6744///
6745/// Type derived for non-terminal BooleanLiteral
6746///
6747#[allow(dead_code)]
6748#[derive(Debug, Clone)]
6749pub enum BooleanLiteral {
6750    True(BooleanLiteralTrue),
6751    False(BooleanLiteralFalse),
6752}
6753
6754///
6755/// Type derived for non-terminal Break
6756///
6757#[allow(dead_code)]
6758#[derive(Debug, Clone)]
6759pub struct Break {
6760    pub break_token: crate::veryl_token::VerylToken,
6761}
6762
6763///
6764/// Type derived for non-terminal BreakStatement
6765///
6766#[allow(dead_code)]
6767#[derive(Debug, Clone)]
6768pub struct BreakStatement {
6769    pub r#break: Box<Break>,
6770    pub semicolon: Box<Semicolon>,
6771}
6772
6773///
6774/// Type derived for non-terminal BreakTerm
6775///
6776#[allow(dead_code)]
6777#[derive(Debug, Clone)]
6778pub struct BreakTerm {
6779    pub break_term: crate::veryl_token::Token, /* break */
6780}
6781
6782///
6783/// Type derived for non-terminal BreakToken
6784///
6785#[allow(dead_code)]
6786#[derive(Debug, Clone)]
6787pub struct BreakToken {
6788    pub break_term: crate::veryl_token::Token,
6789    pub comments: Box<Comments>,
6790}
6791
6792///
6793/// Type derived for non-terminal Case
6794///
6795#[allow(dead_code)]
6796#[derive(Debug, Clone)]
6797pub struct Case {
6798    pub case_token: crate::veryl_token::VerylToken,
6799}
6800
6801///
6802/// Type derived for non-terminal CaseCondition
6803///
6804#[allow(dead_code)]
6805#[derive(Debug, Clone)]
6806pub struct CaseCondition {
6807    pub range_item: Box<RangeItem>,
6808    pub case_condition_list: Vec<CaseConditionList>,
6809}
6810
6811///
6812/// Type derived for non-terminal CaseConditionList
6813///
6814#[allow(dead_code)]
6815#[derive(Debug, Clone)]
6816pub struct CaseConditionList {
6817    pub comma: Box<Comma>,
6818    pub range_item: Box<RangeItem>,
6819}
6820
6821///
6822/// Type derived for non-terminal CaseExpression
6823///
6824#[allow(dead_code)]
6825#[derive(Debug, Clone)]
6826pub struct CaseExpression {
6827    pub case: Box<Case>,
6828    pub expression: Box<Expression>,
6829    pub l_brace: Box<LBrace>,
6830    pub case_condition: Box<CaseCondition>,
6831    pub colon: Box<Colon>,
6832    pub expression0: Box<Expression>,
6833    pub comma: Box<Comma>,
6834    pub case_expression_list: Vec<CaseExpressionList>,
6835    pub defaul: Box<Defaul>,
6836    pub colon0: Box<Colon>,
6837    pub expression1: Box<Expression>,
6838    pub case_expression_opt: Option<CaseExpressionOpt>,
6839    pub r_brace: Box<RBrace>,
6840}
6841
6842///
6843/// Type derived for non-terminal CaseExpressionList
6844///
6845#[allow(dead_code)]
6846#[derive(Debug, Clone)]
6847pub struct CaseExpressionList {
6848    pub case_condition: Box<CaseCondition>,
6849    pub colon: Box<Colon>,
6850    pub expression: Box<Expression>,
6851    pub comma: Box<Comma>,
6852}
6853
6854///
6855/// Type derived for non-terminal CaseExpressionOpt
6856///
6857#[allow(dead_code)]
6858#[derive(Debug, Clone)]
6859pub struct CaseExpressionOpt {
6860    pub comma: Box<Comma>,
6861}
6862
6863///
6864/// Type derived for non-terminal CaseItem
6865///
6866#[allow(dead_code)]
6867#[derive(Debug, Clone)]
6868pub struct CaseItem {
6869    pub case_item_group: Box<CaseItemGroup>,
6870    pub colon: Box<Colon>,
6871    pub case_item_group0: Box<CaseItemGroup0>,
6872}
6873
6874///
6875/// Type derived for non-terminal CaseItemGroup
6876///
6877#[allow(dead_code)]
6878#[derive(Debug, Clone)]
6879pub enum CaseItemGroup {
6880    CaseCondition(CaseItemGroupCaseCondition),
6881    Defaul(CaseItemGroupDefaul),
6882}
6883
6884///
6885/// Type derived for non-terminal CaseItemGroup0
6886///
6887#[allow(dead_code)]
6888#[derive(Debug, Clone)]
6889pub enum CaseItemGroup0 {
6890    Statement(CaseItemGroup0Statement),
6891    StatementBlock(CaseItemGroup0StatementBlock),
6892}
6893
6894///
6895/// Type derived for non-terminal CaseStatement
6896///
6897#[allow(dead_code)]
6898#[derive(Debug, Clone)]
6899pub struct CaseStatement {
6900    pub case: Box<Case>,
6901    pub expression: Box<Expression>,
6902    pub l_brace: Box<LBrace>,
6903    pub case_statement_list: Vec<CaseStatementList>,
6904    pub r_brace: Box<RBrace>,
6905}
6906
6907///
6908/// Type derived for non-terminal CaseStatementList
6909///
6910#[allow(dead_code)]
6911#[derive(Debug, Clone)]
6912pub struct CaseStatementList {
6913    pub case_item: Box<CaseItem>,
6914}
6915
6916///
6917/// Type derived for non-terminal CaseTerm
6918///
6919#[allow(dead_code)]
6920#[derive(Debug, Clone)]
6921pub struct CaseTerm {
6922    pub case_term: crate::veryl_token::Token, /* case */
6923}
6924
6925///
6926/// Type derived for non-terminal CaseToken
6927///
6928#[allow(dead_code)]
6929#[derive(Debug, Clone)]
6930pub struct CaseToken {
6931    pub case_term: crate::veryl_token::Token,
6932    pub comments: Box<Comments>,
6933}
6934
6935///
6936/// Type derived for non-terminal CastingType
6937///
6938#[allow(dead_code)]
6939#[derive(Debug, Clone)]
6940pub enum CastingType {
6941    U8(CastingTypeU8),
6942    U16(CastingTypeU16),
6943    U32(CastingTypeU32),
6944    U64(CastingTypeU64),
6945    P8(CastingTypeP8),
6946    P16(CastingTypeP16),
6947    P32(CastingTypeP32),
6948    P64(CastingTypeP64),
6949    I8(CastingTypeI8),
6950    I16(CastingTypeI16),
6951    I32(CastingTypeI32),
6952    I64(CastingTypeI64),
6953    F32(CastingTypeF32),
6954    F64(CastingTypeF64),
6955    BBool(CastingTypeBBool),
6956    LBool(CastingTypeLBool),
6957    Clock(CastingTypeClock),
6958    ClockPosedge(CastingTypeClockPosedge),
6959    ClockNegedge(CastingTypeClockNegedge),
6960    Reset(CastingTypeReset),
6961    ResetAsyncHigh(CastingTypeResetAsyncHigh),
6962    ResetAsyncLow(CastingTypeResetAsyncLow),
6963    ResetSyncHigh(CastingTypeResetSyncHigh),
6964    ResetSyncLow(CastingTypeResetSyncLow),
6965    UserDefinedType(CastingTypeUserDefinedType),
6966    Based(CastingTypeBased),
6967    BaseLess(CastingTypeBaseLess),
6968}
6969
6970///
6971/// Type derived for non-terminal Clock
6972///
6973#[allow(dead_code)]
6974#[derive(Debug, Clone)]
6975pub struct Clock {
6976    pub clock_token: crate::veryl_token::VerylToken,
6977}
6978
6979///
6980/// Type derived for non-terminal ClockDomain
6981///
6982#[allow(dead_code)]
6983#[derive(Debug, Clone)]
6984pub struct ClockDomain {
6985    pub quote: Box<Quote>,
6986    pub identifier: Box<Identifier>,
6987}
6988
6989///
6990/// Type derived for non-terminal ClockNegedge
6991///
6992#[allow(dead_code)]
6993#[derive(Debug, Clone)]
6994pub struct ClockNegedge {
6995    pub clock_negedge_token: crate::veryl_token::VerylToken,
6996}
6997
6998///
6999/// Type derived for non-terminal ClockNegedgeTerm
7000///
7001#[allow(dead_code)]
7002#[derive(Debug, Clone)]
7003pub struct ClockNegedgeTerm {
7004    pub clock_negedge_term: crate::veryl_token::Token, /* clock_negedge */
7005}
7006
7007///
7008/// Type derived for non-terminal ClockNegedgeToken
7009///
7010#[allow(dead_code)]
7011#[derive(Debug, Clone)]
7012pub struct ClockNegedgeToken {
7013    pub clock_negedge_term: crate::veryl_token::Token,
7014    pub comments: Box<Comments>,
7015}
7016
7017///
7018/// Type derived for non-terminal ClockPosedge
7019///
7020#[allow(dead_code)]
7021#[derive(Debug, Clone)]
7022pub struct ClockPosedge {
7023    pub clock_posedge_token: crate::veryl_token::VerylToken,
7024}
7025
7026///
7027/// Type derived for non-terminal ClockPosedgeTerm
7028///
7029#[allow(dead_code)]
7030#[derive(Debug, Clone)]
7031pub struct ClockPosedgeTerm {
7032    pub clock_posedge_term: crate::veryl_token::Token, /* clock_posedge */
7033}
7034
7035///
7036/// Type derived for non-terminal ClockPosedgeToken
7037///
7038#[allow(dead_code)]
7039#[derive(Debug, Clone)]
7040pub struct ClockPosedgeToken {
7041    pub clock_posedge_term: crate::veryl_token::Token,
7042    pub comments: Box<Comments>,
7043}
7044
7045///
7046/// Type derived for non-terminal ClockTerm
7047///
7048#[allow(dead_code)]
7049#[derive(Debug, Clone)]
7050pub struct ClockTerm {
7051    pub clock_term: crate::veryl_token::Token, /* clock */
7052}
7053
7054///
7055/// Type derived for non-terminal ClockToken
7056///
7057#[allow(dead_code)]
7058#[derive(Debug, Clone)]
7059pub struct ClockToken {
7060    pub clock_term: crate::veryl_token::Token,
7061    pub comments: Box<Comments>,
7062}
7063
7064///
7065/// Type derived for non-terminal Colon
7066///
7067#[allow(dead_code)]
7068#[derive(Debug, Clone)]
7069pub struct Colon {
7070    pub colon_token: crate::veryl_token::VerylToken,
7071}
7072
7073///
7074/// Type derived for non-terminal ColonColon
7075///
7076#[allow(dead_code)]
7077#[derive(Debug, Clone)]
7078pub struct ColonColon {
7079    pub colon_colon_token: crate::veryl_token::VerylToken,
7080}
7081
7082///
7083/// Type derived for non-terminal ColonColonLAngle
7084///
7085#[allow(dead_code)]
7086#[derive(Debug, Clone)]
7087pub struct ColonColonLAngle {
7088    pub colon_colon_l_angle_token: crate::veryl_token::VerylToken,
7089}
7090
7091///
7092/// Type derived for non-terminal ColonColonLAngleTerm
7093///
7094#[allow(dead_code)]
7095#[derive(Debug, Clone)]
7096pub struct ColonColonLAngleTerm {
7097    pub colon_colon_l_angle_term: crate::veryl_token::Token, /* ::< */
7098}
7099
7100///
7101/// Type derived for non-terminal ColonColonLAngleToken
7102///
7103#[allow(dead_code)]
7104#[derive(Debug, Clone)]
7105pub struct ColonColonLAngleToken {
7106    pub colon_colon_l_angle_term: crate::veryl_token::Token,
7107    pub comments: Box<Comments>,
7108}
7109
7110///
7111/// Type derived for non-terminal ColonColonTerm
7112///
7113#[allow(dead_code)]
7114#[derive(Debug, Clone)]
7115pub struct ColonColonTerm {
7116    pub colon_colon_term: crate::veryl_token::Token, /* :: */
7117}
7118
7119///
7120/// Type derived for non-terminal ColonColonToken
7121///
7122#[allow(dead_code)]
7123#[derive(Debug, Clone)]
7124pub struct ColonColonToken {
7125    pub colon_colon_term: crate::veryl_token::Token,
7126    pub comments: Box<Comments>,
7127}
7128
7129///
7130/// Type derived for non-terminal ColonTerm
7131///
7132#[allow(dead_code)]
7133#[derive(Debug, Clone)]
7134pub struct ColonTerm {
7135    pub colon_term: crate::veryl_token::Token, /* : */
7136}
7137
7138///
7139/// Type derived for non-terminal ColonToken
7140///
7141#[allow(dead_code)]
7142#[derive(Debug, Clone)]
7143pub struct ColonToken {
7144    pub colon_term: crate::veryl_token::Token,
7145    pub comments: Box<Comments>,
7146}
7147
7148///
7149/// Type derived for non-terminal Comma
7150///
7151#[allow(dead_code)]
7152#[derive(Debug, Clone)]
7153pub struct Comma {
7154    pub comma_token: crate::veryl_token::VerylToken,
7155}
7156
7157///
7158/// Type derived for non-terminal CommaTerm
7159///
7160#[allow(dead_code)]
7161#[derive(Debug, Clone)]
7162pub struct CommaTerm {
7163    pub comma_term: crate::veryl_token::Token, /* , */
7164}
7165
7166///
7167/// Type derived for non-terminal CommaToken
7168///
7169#[allow(dead_code)]
7170#[derive(Debug, Clone)]
7171pub struct CommaToken {
7172    pub comma_term: crate::veryl_token::Token,
7173    pub comments: Box<Comments>,
7174}
7175
7176///
7177/// Type derived for non-terminal Comments
7178///
7179#[allow(dead_code)]
7180#[derive(Debug, Clone)]
7181pub struct Comments {
7182    pub comments_opt: Option<CommentsOpt>,
7183}
7184
7185///
7186/// Type derived for non-terminal CommentsOpt
7187///
7188#[allow(dead_code)]
7189#[derive(Debug, Clone)]
7190pub struct CommentsOpt {
7191    pub comments_term: Box<CommentsTerm>,
7192}
7193
7194///
7195/// Type derived for non-terminal CommentsTerm
7196///
7197#[allow(dead_code)]
7198#[derive(Debug, Clone)]
7199pub struct CommentsTerm {
7200    pub comments_term: crate::veryl_token::Token, /* (?:(?:(?://.*(?:\r\n|\r|\n))|(?:(?ms)/\*\/?([^/]|[^*]/)*\*\/))\s*)+ */
7201}
7202
7203///
7204/// Type derived for non-terminal ComponentInstantiation
7205///
7206#[allow(dead_code)]
7207#[derive(Debug, Clone)]
7208pub struct ComponentInstantiation {
7209    pub identifier: Box<Identifier>,
7210    pub colon: Box<Colon>,
7211    pub component_instantiation_opt: Option<ComponentInstantiationOpt>,
7212    pub scoped_identifier: Box<ScopedIdentifier>,
7213    pub component_instantiation_opt0: Option<ComponentInstantiationOpt0>,
7214    pub component_instantiation_opt1: Option<ComponentInstantiationOpt1>,
7215    pub component_instantiation_opt2: Option<ComponentInstantiationOpt2>,
7216}
7217
7218///
7219/// Type derived for non-terminal ComponentInstantiationOpt
7220///
7221#[allow(dead_code)]
7222#[derive(Debug, Clone)]
7223pub struct ComponentInstantiationOpt {
7224    pub clock_domain: Box<ClockDomain>,
7225}
7226
7227///
7228/// Type derived for non-terminal ComponentInstantiationOpt0
7229///
7230#[allow(dead_code)]
7231#[derive(Debug, Clone)]
7232pub struct ComponentInstantiationOpt0 {
7233    pub array: Box<Array>,
7234}
7235
7236///
7237/// Type derived for non-terminal ComponentInstantiationOpt1
7238///
7239#[allow(dead_code)]
7240#[derive(Debug, Clone)]
7241pub struct ComponentInstantiationOpt1 {
7242    pub inst_parameter: Box<InstParameter>,
7243}
7244
7245///
7246/// Type derived for non-terminal ComponentInstantiationOpt2
7247///
7248#[allow(dead_code)]
7249#[derive(Debug, Clone)]
7250pub struct ComponentInstantiationOpt2 {
7251    pub inst_port: Box<InstPort>,
7252}
7253
7254///
7255/// Type derived for non-terminal ConcatenationAssignment
7256///
7257#[allow(dead_code)]
7258#[derive(Debug, Clone)]
7259pub struct ConcatenationAssignment {
7260    pub l_brace: Box<LBrace>,
7261    pub assign_concatenation_list: Box<AssignConcatenationList>,
7262    pub r_brace: Box<RBrace>,
7263    pub equ: Box<Equ>,
7264    pub expression: Box<Expression>,
7265    pub semicolon: Box<Semicolon>,
7266}
7267
7268///
7269/// Type derived for non-terminal ConcatenationItem
7270///
7271#[allow(dead_code)]
7272#[derive(Debug, Clone)]
7273pub struct ConcatenationItem {
7274    pub expression: Box<Expression>,
7275    pub concatenation_item_opt: Option<ConcatenationItemOpt>,
7276}
7277
7278///
7279/// Type derived for non-terminal ConcatenationItemOpt
7280///
7281#[allow(dead_code)]
7282#[derive(Debug, Clone)]
7283pub struct ConcatenationItemOpt {
7284    pub repeat: Box<Repeat>,
7285    pub expression: Box<Expression>,
7286}
7287
7288///
7289/// Type derived for non-terminal ConcatenationList
7290///
7291#[allow(dead_code)]
7292#[derive(Debug, Clone)]
7293pub struct ConcatenationList {
7294    pub concatenation_item: Box<ConcatenationItem>,
7295    pub concatenation_list_list: Vec<ConcatenationListList>,
7296    pub concatenation_list_opt: Option<ConcatenationListOpt>,
7297}
7298
7299///
7300/// Type derived for non-terminal ConcatenationListList
7301///
7302#[allow(dead_code)]
7303#[derive(Debug, Clone)]
7304pub struct ConcatenationListList {
7305    pub comma: Box<Comma>,
7306    pub concatenation_item: Box<ConcatenationItem>,
7307}
7308
7309///
7310/// Type derived for non-terminal ConcatenationListOpt
7311///
7312#[allow(dead_code)]
7313#[derive(Debug, Clone)]
7314pub struct ConcatenationListOpt {
7315    pub comma: Box<Comma>,
7316}
7317
7318///
7319/// Type derived for non-terminal Connect
7320///
7321#[allow(dead_code)]
7322#[derive(Debug, Clone)]
7323pub struct Connect {
7324    pub connect_token: crate::veryl_token::VerylToken,
7325}
7326
7327///
7328/// Type derived for non-terminal ConnectDeclaration
7329///
7330#[allow(dead_code)]
7331#[derive(Debug, Clone)]
7332pub struct ConnectDeclaration {
7333    pub connect: Box<Connect>,
7334    pub hierarchical_identifier: Box<HierarchicalIdentifier>,
7335    pub diamond_operator: Box<DiamondOperator>,
7336    pub expression: Box<Expression>,
7337    pub semicolon: Box<Semicolon>,
7338}
7339
7340///
7341/// Type derived for non-terminal ConnectTerm
7342///
7343#[allow(dead_code)]
7344#[derive(Debug, Clone)]
7345pub struct ConnectTerm {
7346    pub connect_term: crate::veryl_token::Token, /* connect */
7347}
7348
7349///
7350/// Type derived for non-terminal ConnectToken
7351///
7352#[allow(dead_code)]
7353#[derive(Debug, Clone)]
7354pub struct ConnectToken {
7355    pub connect_term: crate::veryl_token::Token,
7356    pub comments: Box<Comments>,
7357}
7358
7359///
7360/// Type derived for non-terminal Const
7361///
7362#[allow(dead_code)]
7363#[derive(Debug, Clone)]
7364pub struct Const {
7365    pub const_token: crate::veryl_token::VerylToken,
7366}
7367
7368///
7369/// Type derived for non-terminal ConstDeclaration
7370///
7371#[allow(dead_code)]
7372#[derive(Debug, Clone)]
7373pub struct ConstDeclaration {
7374    pub r#const: Box<Const>,
7375    pub identifier: Box<Identifier>,
7376    pub colon: Box<Colon>,
7377    pub const_declaration_group: Box<ConstDeclarationGroup>,
7378    pub equ: Box<Equ>,
7379    pub expression: Box<Expression>,
7380    pub semicolon: Box<Semicolon>,
7381}
7382
7383///
7384/// Type derived for non-terminal ConstDeclarationGroup
7385///
7386#[allow(dead_code)]
7387#[derive(Debug, Clone)]
7388pub enum ConstDeclarationGroup {
7389    ArrayType(ConstDeclarationGroupArrayType),
7390    Type(ConstDeclarationGroupType),
7391}
7392
7393///
7394/// Type derived for non-terminal ConstTerm
7395///
7396#[allow(dead_code)]
7397#[derive(Debug, Clone)]
7398pub struct ConstTerm {
7399    pub const_term: crate::veryl_token::Token, /* const */
7400}
7401
7402///
7403/// Type derived for non-terminal ConstToken
7404///
7405#[allow(dead_code)]
7406#[derive(Debug, Clone)]
7407pub struct ConstToken {
7408    pub const_term: crate::veryl_token::Token,
7409    pub comments: Box<Comments>,
7410}
7411
7412///
7413/// Type derived for non-terminal Converse
7414///
7415#[allow(dead_code)]
7416#[derive(Debug, Clone)]
7417pub struct Converse {
7418    pub converse_token: crate::veryl_token::VerylToken,
7419}
7420
7421///
7422/// Type derived for non-terminal ConverseTerm
7423///
7424#[allow(dead_code)]
7425#[derive(Debug, Clone)]
7426pub struct ConverseTerm {
7427    pub converse_term: crate::veryl_token::Token, /* converse */
7428}
7429
7430///
7431/// Type derived for non-terminal ConverseToken
7432///
7433#[allow(dead_code)]
7434#[derive(Debug, Clone)]
7435pub struct ConverseToken {
7436    pub converse_term: crate::veryl_token::Token,
7437    pub comments: Box<Comments>,
7438}
7439
7440///
7441/// Type derived for non-terminal Defaul
7442///
7443#[allow(dead_code)]
7444#[derive(Debug, Clone)]
7445pub struct Defaul {
7446    pub default_token: crate::veryl_token::VerylToken,
7447}
7448
7449///
7450/// Type derived for non-terminal DefaultTerm
7451///
7452#[allow(dead_code)]
7453#[derive(Debug, Clone)]
7454pub struct DefaultTerm {
7455    pub default_term: crate::veryl_token::Token, /* default */
7456}
7457
7458///
7459/// Type derived for non-terminal DefaultToken
7460///
7461#[allow(dead_code)]
7462#[derive(Debug, Clone)]
7463pub struct DefaultToken {
7464    pub default_term: crate::veryl_token::Token,
7465    pub comments: Box<Comments>,
7466}
7467
7468///
7469/// Type derived for non-terminal DescriptionGroup
7470///
7471#[allow(dead_code)]
7472#[derive(Debug, Clone)]
7473pub struct DescriptionGroup {
7474    pub description_group_list: Vec<DescriptionGroupList>,
7475    pub description_group_group: Box<DescriptionGroupGroup>,
7476}
7477
7478///
7479/// Type derived for non-terminal DescriptionGroupGroup
7480///
7481#[allow(dead_code)]
7482#[derive(Debug, Clone)]
7483pub enum DescriptionGroupGroup {
7484    LBraceDescriptionGroupGroupListRBrace(
7485        DescriptionGroupGroupLBraceDescriptionGroupGroupListRBrace,
7486    ),
7487    DescriptionItem(DescriptionGroupGroupDescriptionItem),
7488}
7489
7490///
7491/// Type derived for non-terminal DescriptionGroupGroupList
7492///
7493#[allow(dead_code)]
7494#[derive(Debug, Clone)]
7495pub struct DescriptionGroupGroupList {
7496    pub description_group: Box<DescriptionGroup>,
7497}
7498
7499///
7500/// Type derived for non-terminal DescriptionGroupList
7501///
7502#[allow(dead_code)]
7503#[derive(Debug, Clone)]
7504pub struct DescriptionGroupList {
7505    pub attribute: Box<Attribute>,
7506}
7507
7508///
7509/// Type derived for non-terminal DescriptionItem
7510///
7511#[allow(dead_code)]
7512#[derive(Debug, Clone)]
7513pub enum DescriptionItem {
7514    DescriptionItemOptPublicDescriptionItem(DescriptionItemDescriptionItemOptPublicDescriptionItem),
7515    ImportDeclaration(DescriptionItemImportDeclaration),
7516    BindDeclaration(DescriptionItemBindDeclaration),
7517    EmbedDeclaration(DescriptionItemEmbedDeclaration),
7518    IncludeDeclaration(DescriptionItemIncludeDeclaration),
7519}
7520
7521///
7522/// Type derived for non-terminal DescriptionItemOpt
7523///
7524#[allow(dead_code)]
7525#[derive(Debug, Clone)]
7526pub struct DescriptionItemOpt {
7527    pub r#pub: Box<Pub>,
7528}
7529
7530///
7531/// Type derived for non-terminal DiamondOperator
7532///
7533#[allow(dead_code)]
7534#[derive(Debug, Clone)]
7535pub struct DiamondOperator {
7536    pub diamond_operator_token: crate::veryl_token::VerylToken,
7537}
7538
7539///
7540/// Type derived for non-terminal DiamondOperatorTerm
7541///
7542#[allow(dead_code)]
7543#[derive(Debug, Clone)]
7544pub struct DiamondOperatorTerm {
7545    pub diamond_operator_term: crate::veryl_token::Token, /* <> */
7546}
7547
7548///
7549/// Type derived for non-terminal DiamondOperatorToken
7550///
7551#[allow(dead_code)]
7552#[derive(Debug, Clone)]
7553pub struct DiamondOperatorToken {
7554    pub diamond_operator_term: crate::veryl_token::Token,
7555    pub comments: Box<Comments>,
7556}
7557
7558///
7559/// Type derived for non-terminal Direction
7560///
7561#[allow(dead_code)]
7562#[derive(Debug, Clone)]
7563pub enum Direction {
7564    Input(DirectionInput),
7565    Output(DirectionOutput),
7566    Inout(DirectionInout),
7567    Modport(DirectionModport),
7568    Import(DirectionImport),
7569}
7570
7571///
7572/// Type derived for non-terminal DollarIdentifier
7573///
7574#[allow(dead_code)]
7575#[derive(Debug, Clone)]
7576pub struct DollarIdentifier {
7577    pub dollar_identifier_token: crate::veryl_token::VerylToken,
7578}
7579
7580///
7581/// Type derived for non-terminal DollarIdentifierTerm
7582///
7583#[allow(dead_code)]
7584#[derive(Debug, Clone)]
7585pub struct DollarIdentifierTerm {
7586    pub dollar_identifier_term: crate::veryl_token::Token, /* \$[a-zA-Z_][0-9a-zA-Z_$]* */
7587}
7588
7589///
7590/// Type derived for non-terminal DollarIdentifierToken
7591///
7592#[allow(dead_code)]
7593#[derive(Debug, Clone)]
7594pub struct DollarIdentifierToken {
7595    pub dollar_identifier_term: crate::veryl_token::Token,
7596    pub comments: Box<Comments>,
7597}
7598
7599///
7600/// Type derived for non-terminal Dot
7601///
7602#[allow(dead_code)]
7603#[derive(Debug, Clone)]
7604pub struct Dot {
7605    pub dot_token: crate::veryl_token::VerylToken,
7606}
7607
7608///
7609/// Type derived for non-terminal DotDot
7610///
7611#[allow(dead_code)]
7612#[derive(Debug, Clone)]
7613pub struct DotDot {
7614    pub dot_dot_token: crate::veryl_token::VerylToken,
7615}
7616
7617///
7618/// Type derived for non-terminal DotDotEqu
7619///
7620#[allow(dead_code)]
7621#[derive(Debug, Clone)]
7622pub struct DotDotEqu {
7623    pub dot_dot_equ_token: crate::veryl_token::VerylToken,
7624}
7625
7626///
7627/// Type derived for non-terminal DotDotEquTerm
7628///
7629#[allow(dead_code)]
7630#[derive(Debug, Clone)]
7631pub struct DotDotEquTerm {
7632    pub dot_dot_equ_term: crate::veryl_token::Token, /* ..= */
7633}
7634
7635///
7636/// Type derived for non-terminal DotDotEquToken
7637///
7638#[allow(dead_code)]
7639#[derive(Debug, Clone)]
7640pub struct DotDotEquToken {
7641    pub dot_dot_equ_term: crate::veryl_token::Token,
7642    pub comments: Box<Comments>,
7643}
7644
7645///
7646/// Type derived for non-terminal DotDotTerm
7647///
7648#[allow(dead_code)]
7649#[derive(Debug, Clone)]
7650pub struct DotDotTerm {
7651    pub dot_dot_term: crate::veryl_token::Token, /* .. */
7652}
7653
7654///
7655/// Type derived for non-terminal DotDotToken
7656///
7657#[allow(dead_code)]
7658#[derive(Debug, Clone)]
7659pub struct DotDotToken {
7660    pub dot_dot_term: crate::veryl_token::Token,
7661    pub comments: Box<Comments>,
7662}
7663
7664///
7665/// Type derived for non-terminal DotTerm
7666///
7667#[allow(dead_code)]
7668#[derive(Debug, Clone)]
7669pub struct DotTerm {
7670    pub dot_term: crate::veryl_token::Token, /* . */
7671}
7672
7673///
7674/// Type derived for non-terminal DotToken
7675///
7676#[allow(dead_code)]
7677#[derive(Debug, Clone)]
7678pub struct DotToken {
7679    pub dot_term: crate::veryl_token::Token,
7680    pub comments: Box<Comments>,
7681}
7682
7683///
7684/// Type derived for non-terminal Else
7685///
7686#[allow(dead_code)]
7687#[derive(Debug, Clone)]
7688pub struct Else {
7689    pub else_token: crate::veryl_token::VerylToken,
7690}
7691
7692///
7693/// Type derived for non-terminal ElseTerm
7694///
7695#[allow(dead_code)]
7696#[derive(Debug, Clone)]
7697pub struct ElseTerm {
7698    pub else_term: crate::veryl_token::Token, /* else */
7699}
7700
7701///
7702/// Type derived for non-terminal ElseToken
7703///
7704#[allow(dead_code)]
7705#[derive(Debug, Clone)]
7706pub struct ElseToken {
7707    pub else_term: crate::veryl_token::Token,
7708    pub comments: Box<Comments>,
7709}
7710
7711///
7712/// Type derived for non-terminal Embed
7713///
7714#[allow(dead_code)]
7715#[derive(Debug, Clone)]
7716pub struct Embed {
7717    pub embed_token: crate::veryl_token::VerylToken,
7718}
7719
7720///
7721/// Type derived for non-terminal EmbedContent
7722///
7723#[allow(dead_code)]
7724#[derive(Debug, Clone)]
7725pub struct EmbedContent {
7726    pub triple_l_brace: Box<TripleLBrace>,
7727    pub embed_content_list: Vec<EmbedContentList>,
7728    pub triple_r_brace: Box<TripleRBrace>,
7729}
7730
7731///
7732/// Type derived for non-terminal EmbedContentList
7733///
7734#[allow(dead_code)]
7735#[derive(Debug, Clone)]
7736pub struct EmbedContentList {
7737    pub embed_item: Box<EmbedItem>,
7738}
7739
7740///
7741/// Type derived for non-terminal EmbedDeclaration
7742///
7743#[allow(dead_code)]
7744#[derive(Debug, Clone)]
7745pub struct EmbedDeclaration {
7746    pub embed: Box<Embed>,
7747    pub l_paren: Box<LParen>,
7748    pub identifier: Box<Identifier>,
7749    pub r_paren: Box<RParen>,
7750    pub identifier0: Box<Identifier>,
7751    pub embed_content: Box<EmbedContent>,
7752}
7753
7754///
7755/// Type derived for non-terminal EmbedItem
7756///
7757#[allow(dead_code)]
7758#[derive(Debug, Clone)]
7759pub enum EmbedItem {
7760    EmbedLBraceEmbedItemListEmbedRBrace(EmbedItemEmbedLBraceEmbedItemListEmbedRBrace),
7761    EmbedScopedIdentifier(EmbedItemEmbedScopedIdentifier),
7762    Any(EmbedItemAny),
7763}
7764
7765///
7766/// Type derived for non-terminal EmbedItemList
7767///
7768#[allow(dead_code)]
7769#[derive(Debug, Clone)]
7770pub struct EmbedItemList {
7771    pub embed_item: Box<EmbedItem>,
7772}
7773
7774///
7775/// Type derived for non-terminal EmbedLBrace
7776///
7777#[allow(dead_code)]
7778#[derive(Debug, Clone)]
7779pub struct EmbedLBrace {
7780    pub embed_l_brace_token: crate::veryl_token::VerylToken,
7781}
7782
7783///
7784/// Type derived for non-terminal EmbedLBraceToken
7785///
7786#[allow(dead_code)]
7787#[derive(Debug, Clone)]
7788pub struct EmbedLBraceToken {
7789    pub l_brace_term: crate::veryl_token::Token,
7790}
7791
7792///
7793/// Type derived for non-terminal EmbedRBrace
7794///
7795#[allow(dead_code)]
7796#[derive(Debug, Clone)]
7797pub struct EmbedRBrace {
7798    pub embed_r_brace_token: crate::veryl_token::VerylToken,
7799}
7800
7801///
7802/// Type derived for non-terminal EmbedRBraceToken
7803///
7804#[allow(dead_code)]
7805#[derive(Debug, Clone)]
7806pub struct EmbedRBraceToken {
7807    pub r_brace_term: crate::veryl_token::Token,
7808}
7809
7810///
7811/// Type derived for non-terminal EmbedScopedIdentifier
7812///
7813#[allow(dead_code)]
7814#[derive(Debug, Clone)]
7815pub struct EmbedScopedIdentifier {
7816    pub escaped_l_brace: Box<EscapedLBrace>,
7817    pub scoped_identifier: Box<ScopedIdentifier>,
7818    pub escaped_r_brace: Box<EscapedRBrace>,
7819}
7820
7821///
7822/// Type derived for non-terminal EmbedTerm
7823///
7824#[allow(dead_code)]
7825#[derive(Debug, Clone)]
7826pub struct EmbedTerm {
7827    pub embed_term: crate::veryl_token::Token, /* embed */
7828}
7829
7830///
7831/// Type derived for non-terminal EmbedToken
7832///
7833#[allow(dead_code)]
7834#[derive(Debug, Clone)]
7835pub struct EmbedToken {
7836    pub embed_term: crate::veryl_token::Token,
7837    pub comments: Box<Comments>,
7838}
7839
7840///
7841/// Type derived for non-terminal Enum
7842///
7843#[allow(dead_code)]
7844#[derive(Debug, Clone)]
7845pub struct Enum {
7846    pub enum_token: crate::veryl_token::VerylToken,
7847}
7848
7849///
7850/// Type derived for non-terminal EnumDeclaration
7851///
7852#[allow(dead_code)]
7853#[derive(Debug, Clone)]
7854pub struct EnumDeclaration {
7855    pub r#enum: Box<Enum>,
7856    pub identifier: Box<Identifier>,
7857    pub enum_declaration_opt: Option<EnumDeclarationOpt>,
7858    pub l_brace: Box<LBrace>,
7859    pub enum_list: Box<EnumList>,
7860    pub r_brace: Box<RBrace>,
7861}
7862
7863///
7864/// Type derived for non-terminal EnumDeclarationOpt
7865///
7866#[allow(dead_code)]
7867#[derive(Debug, Clone)]
7868pub struct EnumDeclarationOpt {
7869    pub colon: Box<Colon>,
7870    pub scalar_type: Box<ScalarType>,
7871}
7872
7873///
7874/// Type derived for non-terminal EnumGroup
7875///
7876#[allow(dead_code)]
7877#[derive(Debug, Clone)]
7878pub struct EnumGroup {
7879    pub enum_group_list: Vec<EnumGroupList>,
7880    pub enum_group_group: Box<EnumGroupGroup>,
7881}
7882
7883///
7884/// Type derived for non-terminal EnumGroupGroup
7885///
7886#[allow(dead_code)]
7887#[derive(Debug, Clone)]
7888pub enum EnumGroupGroup {
7889    LBraceEnumListRBrace(EnumGroupGroupLBraceEnumListRBrace),
7890    EnumItem(EnumGroupGroupEnumItem),
7891}
7892
7893///
7894/// Type derived for non-terminal EnumGroupList
7895///
7896#[allow(dead_code)]
7897#[derive(Debug, Clone)]
7898pub struct EnumGroupList {
7899    pub attribute: Box<Attribute>,
7900}
7901
7902///
7903/// Type derived for non-terminal EnumItem
7904///
7905#[allow(dead_code)]
7906#[derive(Debug, Clone)]
7907pub struct EnumItem {
7908    pub identifier: Box<Identifier>,
7909    pub enum_item_opt: Option<EnumItemOpt>,
7910}
7911
7912///
7913/// Type derived for non-terminal EnumItemOpt
7914///
7915#[allow(dead_code)]
7916#[derive(Debug, Clone)]
7917pub struct EnumItemOpt {
7918    pub equ: Box<Equ>,
7919    pub expression: Box<Expression>,
7920}
7921
7922///
7923/// Type derived for non-terminal EnumList
7924///
7925#[allow(dead_code)]
7926#[derive(Debug, Clone)]
7927pub struct EnumList {
7928    pub enum_group: Box<EnumGroup>,
7929    pub enum_list_list: Vec<EnumListList>,
7930    pub enum_list_opt: Option<EnumListOpt>,
7931}
7932
7933///
7934/// Type derived for non-terminal EnumListList
7935///
7936#[allow(dead_code)]
7937#[derive(Debug, Clone)]
7938pub struct EnumListList {
7939    pub comma: Box<Comma>,
7940    pub enum_group: Box<EnumGroup>,
7941}
7942
7943///
7944/// Type derived for non-terminal EnumListOpt
7945///
7946#[allow(dead_code)]
7947#[derive(Debug, Clone)]
7948pub struct EnumListOpt {
7949    pub comma: Box<Comma>,
7950}
7951
7952///
7953/// Type derived for non-terminal EnumTerm
7954///
7955#[allow(dead_code)]
7956#[derive(Debug, Clone)]
7957pub struct EnumTerm {
7958    pub enum_term: crate::veryl_token::Token, /* enum */
7959}
7960
7961///
7962/// Type derived for non-terminal EnumToken
7963///
7964#[allow(dead_code)]
7965#[derive(Debug, Clone)]
7966pub struct EnumToken {
7967    pub enum_term: crate::veryl_token::Token,
7968    pub comments: Box<Comments>,
7969}
7970
7971///
7972/// Type derived for non-terminal Equ
7973///
7974#[allow(dead_code)]
7975#[derive(Debug, Clone)]
7976pub struct Equ {
7977    pub equ_token: crate::veryl_token::VerylToken,
7978}
7979
7980///
7981/// Type derived for non-terminal EquTerm
7982///
7983#[allow(dead_code)]
7984#[derive(Debug, Clone)]
7985pub struct EquTerm {
7986    pub equ_term: crate::veryl_token::Token, /* = */
7987}
7988
7989///
7990/// Type derived for non-terminal EquToken
7991///
7992#[allow(dead_code)]
7993#[derive(Debug, Clone)]
7994pub struct EquToken {
7995    pub equ_term: crate::veryl_token::Token,
7996    pub comments: Box<Comments>,
7997}
7998
7999///
8000/// Type derived for non-terminal EscapedLBrace
8001///
8002#[allow(dead_code)]
8003#[derive(Debug, Clone)]
8004pub struct EscapedLBrace {
8005    pub escaped_l_brace_token: crate::veryl_token::VerylToken,
8006}
8007
8008///
8009/// Type derived for non-terminal EscapedLBraceTerm
8010///
8011#[allow(dead_code)]
8012#[derive(Debug, Clone)]
8013pub struct EscapedLBraceTerm {
8014    pub escaped_l_brace_term: crate::veryl_token::Token, /* \{ */
8015}
8016
8017///
8018/// Type derived for non-terminal EscapedLBraceToken
8019///
8020#[allow(dead_code)]
8021#[derive(Debug, Clone)]
8022pub struct EscapedLBraceToken {
8023    pub escaped_l_brace_term: crate::veryl_token::Token,
8024}
8025
8026///
8027/// Type derived for non-terminal EscapedRBrace
8028///
8029#[allow(dead_code)]
8030#[derive(Debug, Clone)]
8031pub struct EscapedRBrace {
8032    pub escaped_r_brace_token: crate::veryl_token::VerylToken,
8033}
8034
8035///
8036/// Type derived for non-terminal EscapedRBraceTerm
8037///
8038#[allow(dead_code)]
8039#[derive(Debug, Clone)]
8040pub struct EscapedRBraceTerm {
8041    pub escaped_r_brace_term: crate::veryl_token::Token, /* \} */
8042}
8043
8044///
8045/// Type derived for non-terminal EscapedRBraceToken
8046///
8047#[allow(dead_code)]
8048#[derive(Debug, Clone)]
8049pub struct EscapedRBraceToken {
8050    pub escaped_r_brace_term: crate::veryl_token::Token,
8051}
8052
8053///
8054/// Type derived for non-terminal Exponent
8055///
8056#[allow(dead_code)]
8057#[derive(Debug, Clone)]
8058pub struct Exponent {
8059    pub exponent_token: crate::veryl_token::VerylToken,
8060}
8061
8062///
8063/// Type derived for non-terminal ExponentTerm
8064///
8065#[allow(dead_code)]
8066#[derive(Debug, Clone)]
8067pub struct ExponentTerm {
8068    pub exponent_term: crate::veryl_token::Token, /* [0-9]+(?:_[0-9]+)*\.[0-9]+(?:_[0-9]+)*[eE][+-]?[0-9]+(?:_[0-9]+)* */
8069}
8070
8071///
8072/// Type derived for non-terminal ExponentToken
8073///
8074#[allow(dead_code)]
8075#[derive(Debug, Clone)]
8076pub struct ExponentToken {
8077    pub exponent_term: crate::veryl_token::Token,
8078    pub comments: Box<Comments>,
8079}
8080
8081///
8082/// Type derived for non-terminal Expression
8083///
8084#[allow(dead_code)]
8085#[derive(Debug, Clone)]
8086pub struct Expression {
8087    pub if_expression: Box<IfExpression>,
8088}
8089
8090///
8091/// Type derived for non-terminal Expression01
8092///
8093#[allow(dead_code)]
8094#[derive(Debug, Clone)]
8095pub struct Expression01 {
8096    pub expression02: Box<Expression02>,
8097    pub expression01_list: Vec<Expression01List>,
8098}
8099
8100///
8101/// Type derived for non-terminal Expression01List
8102///
8103#[allow(dead_code)]
8104#[derive(Debug, Clone)]
8105pub struct Expression01List {
8106    pub expression01_op: Box<Expression01Op>,
8107    pub expression02: Box<Expression02>,
8108}
8109
8110///
8111/// Type derived for non-terminal Expression01Op
8112///
8113#[allow(dead_code)]
8114#[derive(Debug, Clone)]
8115pub enum Expression01Op {
8116    Operator01(Expression01OpOperator01),
8117    Operator02(Expression01OpOperator02),
8118    Operator03(Expression01OpOperator03),
8119    Operator04(Expression01OpOperator04),
8120    Operator05(Expression01OpOperator05),
8121    Operator06(Expression01OpOperator06),
8122    Operator07(Expression01OpOperator07),
8123    Star(Expression01OpStar),
8124    Operator08(Expression01OpOperator08),
8125}
8126
8127///
8128/// Type derived for non-terminal Expression02
8129///
8130#[allow(dead_code)]
8131#[derive(Debug, Clone)]
8132pub struct Expression02 {
8133    pub expression02_list: Vec<Expression02List>,
8134    pub factor: Box<Factor>,
8135    pub expression02_opt: Option<Expression02Opt>,
8136}
8137
8138///
8139/// Type derived for non-terminal Expression02List
8140///
8141#[allow(dead_code)]
8142#[derive(Debug, Clone)]
8143pub struct Expression02List {
8144    pub expression02_op: Box<Expression02Op>,
8145}
8146
8147///
8148/// Type derived for non-terminal Expression02Op
8149///
8150#[allow(dead_code)]
8151#[derive(Debug, Clone)]
8152pub enum Expression02Op {
8153    UnaryOperator(Expression02OpUnaryOperator),
8154    Operator06(Expression02OpOperator06),
8155    Operator05(Expression02OpOperator05),
8156    Operator03(Expression02OpOperator03),
8157    Operator04(Expression02OpOperator04),
8158}
8159
8160///
8161/// Type derived for non-terminal Expression02Opt
8162///
8163#[allow(dead_code)]
8164#[derive(Debug, Clone)]
8165pub struct Expression02Opt {
8166    pub r#as: Box<As>,
8167    pub casting_type: Box<CastingType>,
8168}
8169
8170///
8171/// Type derived for non-terminal ExpressionIdentifier
8172///
8173#[allow(dead_code)]
8174#[derive(Debug, Clone)]
8175pub struct ExpressionIdentifier {
8176    pub scoped_identifier: Box<ScopedIdentifier>,
8177    pub expression_identifier_opt: Option<ExpressionIdentifierOpt>,
8178    pub expression_identifier_list: Vec<ExpressionIdentifierList>,
8179    pub expression_identifier_list0: Vec<ExpressionIdentifierList0>,
8180}
8181
8182///
8183/// Type derived for non-terminal ExpressionIdentifierList
8184///
8185#[allow(dead_code)]
8186#[derive(Debug, Clone)]
8187pub struct ExpressionIdentifierList {
8188    pub select: Box<Select>,
8189}
8190
8191///
8192/// Type derived for non-terminal ExpressionIdentifierList0
8193///
8194#[allow(dead_code)]
8195#[derive(Debug, Clone)]
8196pub struct ExpressionIdentifierList0 {
8197    pub dot: Box<Dot>,
8198    pub identifier: Box<Identifier>,
8199    pub expression_identifier_list0_list: Vec<ExpressionIdentifierList0List>,
8200}
8201
8202///
8203/// Type derived for non-terminal ExpressionIdentifierList0List
8204///
8205#[allow(dead_code)]
8206#[derive(Debug, Clone)]
8207pub struct ExpressionIdentifierList0List {
8208    pub select: Box<Select>,
8209}
8210
8211///
8212/// Type derived for non-terminal ExpressionIdentifierOpt
8213///
8214#[allow(dead_code)]
8215#[derive(Debug, Clone)]
8216pub struct ExpressionIdentifierOpt {
8217    pub width: Box<Width>,
8218}
8219
8220///
8221/// Type derived for non-terminal F32
8222///
8223#[allow(dead_code)]
8224#[derive(Debug, Clone)]
8225pub struct F32 {
8226    pub f32_token: crate::veryl_token::VerylToken,
8227}
8228
8229///
8230/// Type derived for non-terminal F32Term
8231///
8232#[allow(dead_code)]
8233#[derive(Debug, Clone)]
8234pub struct F32Term {
8235    pub f32_term: crate::veryl_token::Token, /* f32 */
8236}
8237
8238///
8239/// Type derived for non-terminal F32Token
8240///
8241#[allow(dead_code)]
8242#[derive(Debug, Clone)]
8243pub struct F32Token {
8244    pub f32_term: crate::veryl_token::Token,
8245    pub comments: Box<Comments>,
8246}
8247
8248///
8249/// Type derived for non-terminal F64
8250///
8251#[allow(dead_code)]
8252#[derive(Debug, Clone)]
8253pub struct F64 {
8254    pub f64_token: crate::veryl_token::VerylToken,
8255}
8256
8257///
8258/// Type derived for non-terminal F64Term
8259///
8260#[allow(dead_code)]
8261#[derive(Debug, Clone)]
8262pub struct F64Term {
8263    pub f64_term: crate::veryl_token::Token, /* f64 */
8264}
8265
8266///
8267/// Type derived for non-terminal F64Token
8268///
8269#[allow(dead_code)]
8270#[derive(Debug, Clone)]
8271pub struct F64Token {
8272    pub f64_term: crate::veryl_token::Token,
8273    pub comments: Box<Comments>,
8274}
8275
8276///
8277/// Type derived for non-terminal Factor
8278///
8279#[allow(dead_code)]
8280#[derive(Debug, Clone)]
8281pub enum Factor {
8282    Number(FactorNumber),
8283    BooleanLiteral(FactorBooleanLiteral),
8284    IdentifierFactor(FactorIdentifierFactor),
8285    LParenExpressionRParen(FactorLParenExpressionRParen),
8286    LBraceConcatenationListRBrace(FactorLBraceConcatenationListRBrace),
8287    QuoteLBraceArrayLiteralListRBrace(FactorQuoteLBraceArrayLiteralListRBrace),
8288    CaseExpression(FactorCaseExpression),
8289    SwitchExpression(FactorSwitchExpression),
8290    StringLiteral(FactorStringLiteral),
8291    FactorGroup(FactorFactorGroup),
8292    InsideExpression(FactorInsideExpression),
8293    OutsideExpression(FactorOutsideExpression),
8294    TypeExpression(FactorTypeExpression),
8295    FactorTypeFactor(FactorFactorTypeFactor),
8296}
8297
8298///
8299/// Type derived for non-terminal FactorGroup
8300///
8301#[allow(dead_code)]
8302#[derive(Debug, Clone)]
8303pub enum FactorGroup {
8304    Msb(FactorGroupMsb),
8305    Lsb(FactorGroupLsb),
8306}
8307
8308///
8309/// Type derived for non-terminal FactorType
8310///
8311#[allow(dead_code)]
8312#[derive(Debug, Clone)]
8313pub struct FactorType {
8314    pub factor_type_group: Box<FactorTypeGroup>,
8315}
8316
8317///
8318/// Type derived for non-terminal FactorTypeFactor
8319///
8320#[allow(dead_code)]
8321#[derive(Debug, Clone)]
8322pub struct FactorTypeFactor {
8323    pub factor_type_factor_list: Vec<FactorTypeFactorList>,
8324    pub factor_type: Box<FactorType>,
8325}
8326
8327///
8328/// Type derived for non-terminal FactorTypeFactorList
8329///
8330#[allow(dead_code)]
8331#[derive(Debug, Clone)]
8332pub struct FactorTypeFactorList {
8333    pub type_modifier: Box<TypeModifier>,
8334}
8335
8336///
8337/// Type derived for non-terminal FactorTypeGroup
8338///
8339#[allow(dead_code)]
8340#[derive(Debug, Clone)]
8341pub enum FactorTypeGroup {
8342    VariableTypeFactorTypeOpt(FactorTypeGroupVariableTypeFactorTypeOpt),
8343    FixedType(FactorTypeGroupFixedType),
8344}
8345
8346///
8347/// Type derived for non-terminal FactorTypeOpt
8348///
8349#[allow(dead_code)]
8350#[derive(Debug, Clone)]
8351pub struct FactorTypeOpt {
8352    pub width: Box<Width>,
8353}
8354
8355///
8356/// Type derived for non-terminal False
8357///
8358#[allow(dead_code)]
8359#[derive(Debug, Clone)]
8360pub struct False {
8361    pub false_token: crate::veryl_token::VerylToken,
8362}
8363
8364///
8365/// Type derived for non-terminal FalseTerm
8366///
8367#[allow(dead_code)]
8368#[derive(Debug, Clone)]
8369pub struct FalseTerm {
8370    pub false_term: crate::veryl_token::Token, /* false */
8371}
8372
8373///
8374/// Type derived for non-terminal FalseToken
8375///
8376#[allow(dead_code)]
8377#[derive(Debug, Clone)]
8378pub struct FalseToken {
8379    pub false_term: crate::veryl_token::Token,
8380    pub comments: Box<Comments>,
8381}
8382
8383///
8384/// Type derived for non-terminal Final
8385///
8386#[allow(dead_code)]
8387#[derive(Debug, Clone)]
8388pub struct Final {
8389    pub final_token: crate::veryl_token::VerylToken,
8390}
8391
8392///
8393/// Type derived for non-terminal FinalDeclaration
8394///
8395#[allow(dead_code)]
8396#[derive(Debug, Clone)]
8397pub struct FinalDeclaration {
8398    pub r#final: Box<Final>,
8399    pub statement_block: Box<StatementBlock>,
8400}
8401
8402///
8403/// Type derived for non-terminal FinalTerm
8404///
8405#[allow(dead_code)]
8406#[derive(Debug, Clone)]
8407pub struct FinalTerm {
8408    pub final_term: crate::veryl_token::Token, /* final */
8409}
8410
8411///
8412/// Type derived for non-terminal FinalToken
8413///
8414#[allow(dead_code)]
8415#[derive(Debug, Clone)]
8416pub struct FinalToken {
8417    pub final_term: crate::veryl_token::Token,
8418    pub comments: Box<Comments>,
8419}
8420
8421///
8422/// Type derived for non-terminal FixedPoint
8423///
8424#[allow(dead_code)]
8425#[derive(Debug, Clone)]
8426pub struct FixedPoint {
8427    pub fixed_point_token: crate::veryl_token::VerylToken,
8428}
8429
8430///
8431/// Type derived for non-terminal FixedPointTerm
8432///
8433#[allow(dead_code)]
8434#[derive(Debug, Clone)]
8435pub struct FixedPointTerm {
8436    pub fixed_point_term: crate::veryl_token::Token, /* [0-9]+(?:_[0-9]+)*\.[0-9]+(?:_[0-9]+)* */
8437}
8438
8439///
8440/// Type derived for non-terminal FixedPointToken
8441///
8442#[allow(dead_code)]
8443#[derive(Debug, Clone)]
8444pub struct FixedPointToken {
8445    pub fixed_point_term: crate::veryl_token::Token,
8446    pub comments: Box<Comments>,
8447}
8448
8449///
8450/// Type derived for non-terminal FixedType
8451///
8452#[allow(dead_code)]
8453#[derive(Debug, Clone)]
8454pub enum FixedType {
8455    P8(FixedTypeP8),
8456    P16(FixedTypeP16),
8457    P32(FixedTypeP32),
8458    P64(FixedTypeP64),
8459    U8(FixedTypeU8),
8460    U16(FixedTypeU16),
8461    U32(FixedTypeU32),
8462    U64(FixedTypeU64),
8463    I8(FixedTypeI8),
8464    I16(FixedTypeI16),
8465    I32(FixedTypeI32),
8466    I64(FixedTypeI64),
8467    F32(FixedTypeF32),
8468    F64(FixedTypeF64),
8469    BBool(FixedTypeBBool),
8470    LBool(FixedTypeLBool),
8471    Strin(FixedTypeStrin),
8472}
8473
8474///
8475/// Type derived for non-terminal For
8476///
8477#[allow(dead_code)]
8478#[derive(Debug, Clone)]
8479pub struct For {
8480    pub for_token: crate::veryl_token::VerylToken,
8481}
8482
8483///
8484/// Type derived for non-terminal ForStatement
8485///
8486#[allow(dead_code)]
8487#[derive(Debug, Clone)]
8488pub struct ForStatement {
8489    pub r#for: Box<For>,
8490    pub identifier: Box<Identifier>,
8491    pub colon: Box<Colon>,
8492    pub scalar_type: Box<ScalarType>,
8493    pub r#in: Box<In>,
8494    pub for_statement_opt: Option<ForStatementOpt>,
8495    pub range: Box<Range>,
8496    pub for_statement_opt0: Option<ForStatementOpt0>,
8497    pub statement_block: Box<StatementBlock>,
8498}
8499
8500///
8501/// Type derived for non-terminal ForStatementOpt
8502///
8503#[allow(dead_code)]
8504#[derive(Debug, Clone)]
8505pub struct ForStatementOpt {
8506    pub rev: Box<Rev>,
8507}
8508
8509///
8510/// Type derived for non-terminal ForStatementOpt0
8511///
8512#[allow(dead_code)]
8513#[derive(Debug, Clone)]
8514pub struct ForStatementOpt0 {
8515    pub step: Box<Step>,
8516    pub assignment_operator: Box<AssignmentOperator>,
8517    pub expression: Box<Expression>,
8518}
8519
8520///
8521/// Type derived for non-terminal ForTerm
8522///
8523#[allow(dead_code)]
8524#[derive(Debug, Clone)]
8525pub struct ForTerm {
8526    pub for_term: crate::veryl_token::Token, /* for */
8527}
8528
8529///
8530/// Type derived for non-terminal ForToken
8531///
8532#[allow(dead_code)]
8533#[derive(Debug, Clone)]
8534pub struct ForToken {
8535    pub for_term: crate::veryl_token::Token,
8536    pub comments: Box<Comments>,
8537}
8538
8539///
8540/// Type derived for non-terminal Function
8541///
8542#[allow(dead_code)]
8543#[derive(Debug, Clone)]
8544pub struct Function {
8545    pub function_token: crate::veryl_token::VerylToken,
8546}
8547
8548///
8549/// Type derived for non-terminal FunctionCall
8550///
8551#[allow(dead_code)]
8552#[derive(Debug, Clone)]
8553pub struct FunctionCall {
8554    pub l_paren: Box<LParen>,
8555    pub function_call_opt: Option<FunctionCallOpt>,
8556    pub r_paren: Box<RParen>,
8557}
8558
8559///
8560/// Type derived for non-terminal FunctionCallOpt
8561///
8562#[allow(dead_code)]
8563#[derive(Debug, Clone)]
8564pub struct FunctionCallOpt {
8565    pub argument_list: Box<ArgumentList>,
8566}
8567
8568///
8569/// Type derived for non-terminal FunctionDeclaration
8570///
8571#[allow(dead_code)]
8572#[derive(Debug, Clone)]
8573pub struct FunctionDeclaration {
8574    pub function: Box<Function>,
8575    pub identifier: Box<Identifier>,
8576    pub function_declaration_opt: Option<FunctionDeclarationOpt>,
8577    pub function_declaration_opt0: Option<FunctionDeclarationOpt0>,
8578    pub function_declaration_opt1: Option<FunctionDeclarationOpt1>,
8579    pub statement_block: Box<StatementBlock>,
8580}
8581
8582///
8583/// Type derived for non-terminal FunctionDeclarationOpt
8584///
8585#[allow(dead_code)]
8586#[derive(Debug, Clone)]
8587pub struct FunctionDeclarationOpt {
8588    pub with_generic_parameter: Box<WithGenericParameter>,
8589}
8590
8591///
8592/// Type derived for non-terminal FunctionDeclarationOpt0
8593///
8594#[allow(dead_code)]
8595#[derive(Debug, Clone)]
8596pub struct FunctionDeclarationOpt0 {
8597    pub port_declaration: Box<PortDeclaration>,
8598}
8599
8600///
8601/// Type derived for non-terminal FunctionDeclarationOpt1
8602///
8603#[allow(dead_code)]
8604#[derive(Debug, Clone)]
8605pub struct FunctionDeclarationOpt1 {
8606    pub minus_g_t: Box<MinusGT>,
8607    pub scalar_type: Box<ScalarType>,
8608}
8609
8610///
8611/// Type derived for non-terminal FunctionTerm
8612///
8613#[allow(dead_code)]
8614#[derive(Debug, Clone)]
8615pub struct FunctionTerm {
8616    pub function_term: crate::veryl_token::Token, /* function */
8617}
8618
8619///
8620/// Type derived for non-terminal FunctionToken
8621///
8622#[allow(dead_code)]
8623#[derive(Debug, Clone)]
8624pub struct FunctionToken {
8625    pub function_term: crate::veryl_token::Token,
8626    pub comments: Box<Comments>,
8627}
8628
8629///
8630/// Type derived for non-terminal GenerateBlockDeclaration
8631///
8632#[allow(dead_code)]
8633#[derive(Debug, Clone)]
8634pub struct GenerateBlockDeclaration {
8635    pub generate_named_block: Box<GenerateNamedBlock>,
8636}
8637
8638///
8639/// Type derived for non-terminal GenerateForDeclaration
8640///
8641#[allow(dead_code)]
8642#[derive(Debug, Clone)]
8643pub struct GenerateForDeclaration {
8644    pub r#for: Box<For>,
8645    pub identifier: Box<Identifier>,
8646    pub r#in: Box<In>,
8647    pub generate_for_declaration_opt: Option<GenerateForDeclarationOpt>,
8648    pub range: Box<Range>,
8649    pub generate_for_declaration_opt0: Option<GenerateForDeclarationOpt0>,
8650    pub generate_named_block: Box<GenerateNamedBlock>,
8651}
8652
8653///
8654/// Type derived for non-terminal GenerateForDeclarationOpt
8655///
8656#[allow(dead_code)]
8657#[derive(Debug, Clone)]
8658pub struct GenerateForDeclarationOpt {
8659    pub rev: Box<Rev>,
8660}
8661
8662///
8663/// Type derived for non-terminal GenerateForDeclarationOpt0
8664///
8665#[allow(dead_code)]
8666#[derive(Debug, Clone)]
8667pub struct GenerateForDeclarationOpt0 {
8668    pub step: Box<Step>,
8669    pub assignment_operator: Box<AssignmentOperator>,
8670    pub expression: Box<Expression>,
8671}
8672
8673///
8674/// Type derived for non-terminal GenerateGroup
8675///
8676#[allow(dead_code)]
8677#[derive(Debug, Clone)]
8678pub struct GenerateGroup {
8679    pub generate_group_list: Vec<GenerateGroupList>,
8680    pub generate_group_group: Box<GenerateGroupGroup>,
8681}
8682
8683///
8684/// Type derived for non-terminal GenerateGroupGroup
8685///
8686#[allow(dead_code)]
8687#[derive(Debug, Clone)]
8688pub enum GenerateGroupGroup {
8689    LBraceGenerateGroupGroupListRBrace(GenerateGroupGroupLBraceGenerateGroupGroupListRBrace),
8690    GenerateItem(GenerateGroupGroupGenerateItem),
8691}
8692
8693///
8694/// Type derived for non-terminal GenerateGroupGroupList
8695///
8696#[allow(dead_code)]
8697#[derive(Debug, Clone)]
8698pub struct GenerateGroupGroupList {
8699    pub generate_group: Box<GenerateGroup>,
8700}
8701
8702///
8703/// Type derived for non-terminal GenerateGroupList
8704///
8705#[allow(dead_code)]
8706#[derive(Debug, Clone)]
8707pub struct GenerateGroupList {
8708    pub attribute: Box<Attribute>,
8709}
8710
8711///
8712/// Type derived for non-terminal GenerateIfDeclaration
8713///
8714#[allow(dead_code)]
8715#[derive(Debug, Clone)]
8716pub struct GenerateIfDeclaration {
8717    pub r#if: Box<If>,
8718    pub expression: Box<Expression>,
8719    pub generate_named_block: Box<GenerateNamedBlock>,
8720    pub generate_if_declaration_list: Vec<GenerateIfDeclarationList>,
8721    pub generate_if_declaration_opt: Option<GenerateIfDeclarationOpt>,
8722}
8723
8724///
8725/// Type derived for non-terminal GenerateIfDeclarationList
8726///
8727#[allow(dead_code)]
8728#[derive(Debug, Clone)]
8729pub struct GenerateIfDeclarationList {
8730    pub r#else: Box<Else>,
8731    pub r#if: Box<If>,
8732    pub expression: Box<Expression>,
8733    pub generate_optional_named_block: Box<GenerateOptionalNamedBlock>,
8734}
8735
8736///
8737/// Type derived for non-terminal GenerateIfDeclarationOpt
8738///
8739#[allow(dead_code)]
8740#[derive(Debug, Clone)]
8741pub struct GenerateIfDeclarationOpt {
8742    pub r#else: Box<Else>,
8743    pub generate_optional_named_block: Box<GenerateOptionalNamedBlock>,
8744}
8745
8746///
8747/// Type derived for non-terminal GenerateItem
8748///
8749#[allow(dead_code)]
8750#[derive(Debug, Clone)]
8751pub enum GenerateItem {
8752    LetDeclaration(GenerateItemLetDeclaration),
8753    VarDeclaration(GenerateItemVarDeclaration),
8754    InstDeclaration(GenerateItemInstDeclaration),
8755    BindDeclaration(GenerateItemBindDeclaration),
8756    ConstDeclaration(GenerateItemConstDeclaration),
8757    AlwaysFfDeclaration(GenerateItemAlwaysFfDeclaration),
8758    AlwaysCombDeclaration(GenerateItemAlwaysCombDeclaration),
8759    AssignDeclaration(GenerateItemAssignDeclaration),
8760    ConnectDeclaration(GenerateItemConnectDeclaration),
8761    FunctionDeclaration(GenerateItemFunctionDeclaration),
8762    GenerateIfDeclaration(GenerateItemGenerateIfDeclaration),
8763    GenerateForDeclaration(GenerateItemGenerateForDeclaration),
8764    GenerateBlockDeclaration(GenerateItemGenerateBlockDeclaration),
8765    TypeDefDeclaration(GenerateItemTypeDefDeclaration),
8766    EnumDeclaration(GenerateItemEnumDeclaration),
8767    StructUnionDeclaration(GenerateItemStructUnionDeclaration),
8768    ImportDeclaration(GenerateItemImportDeclaration),
8769    AliasDeclaration(GenerateItemAliasDeclaration),
8770    InitialDeclaration(GenerateItemInitialDeclaration),
8771    FinalDeclaration(GenerateItemFinalDeclaration),
8772    UnsafeBlock(GenerateItemUnsafeBlock),
8773    EmbedDeclaration(GenerateItemEmbedDeclaration),
8774}
8775
8776///
8777/// Type derived for non-terminal GenerateNamedBlock
8778///
8779#[allow(dead_code)]
8780#[derive(Debug, Clone)]
8781pub struct GenerateNamedBlock {
8782    pub colon: Box<Colon>,
8783    pub identifier: Box<Identifier>,
8784    pub l_brace: Box<LBrace>,
8785    pub generate_named_block_list: Vec<GenerateNamedBlockList>,
8786    pub r_brace: Box<RBrace>,
8787}
8788
8789///
8790/// Type derived for non-terminal GenerateNamedBlockList
8791///
8792#[allow(dead_code)]
8793#[derive(Debug, Clone)]
8794pub struct GenerateNamedBlockList {
8795    pub generate_group: Box<GenerateGroup>,
8796}
8797
8798///
8799/// Type derived for non-terminal GenerateOptionalNamedBlock
8800///
8801#[allow(dead_code)]
8802#[derive(Debug, Clone)]
8803pub struct GenerateOptionalNamedBlock {
8804    pub generate_optional_named_block_opt: Option<GenerateOptionalNamedBlockOpt>,
8805    pub l_brace: Box<LBrace>,
8806    pub generate_optional_named_block_list: Vec<GenerateOptionalNamedBlockList>,
8807    pub r_brace: Box<RBrace>,
8808}
8809
8810///
8811/// Type derived for non-terminal GenerateOptionalNamedBlockList
8812///
8813#[allow(dead_code)]
8814#[derive(Debug, Clone)]
8815pub struct GenerateOptionalNamedBlockList {
8816    pub generate_group: Box<GenerateGroup>,
8817}
8818
8819///
8820/// Type derived for non-terminal GenerateOptionalNamedBlockOpt
8821///
8822#[allow(dead_code)]
8823#[derive(Debug, Clone)]
8824pub struct GenerateOptionalNamedBlockOpt {
8825    pub colon: Box<Colon>,
8826    pub identifier: Box<Identifier>,
8827}
8828
8829///
8830/// Type derived for non-terminal GenericArgIdentifier
8831///
8832#[allow(dead_code)]
8833#[derive(Debug, Clone)]
8834pub struct GenericArgIdentifier {
8835    pub scoped_identifier: Box<ScopedIdentifier>,
8836    pub generic_arg_identifier_list: Vec<GenericArgIdentifierList>,
8837}
8838
8839///
8840/// Type derived for non-terminal GenericArgIdentifierList
8841///
8842#[allow(dead_code)]
8843#[derive(Debug, Clone)]
8844pub struct GenericArgIdentifierList {
8845    pub dot: Box<Dot>,
8846    pub identifier: Box<Identifier>,
8847}
8848
8849///
8850/// Type derived for non-terminal GenericBound
8851///
8852#[allow(dead_code)]
8853#[derive(Debug, Clone)]
8854pub enum GenericBound {
8855    Type(GenericBoundType),
8856    InstScopedIdentifier(GenericBoundInstScopedIdentifier),
8857    GenericProtoBound(GenericBoundGenericProtoBound),
8858}
8859
8860///
8861/// Type derived for non-terminal GenericProtoBound
8862///
8863#[allow(dead_code)]
8864#[derive(Debug, Clone)]
8865pub enum GenericProtoBound {
8866    ScopedIdentifier(GenericProtoBoundScopedIdentifier),
8867    FixedType(GenericProtoBoundFixedType),
8868}
8869
8870///
8871/// Type derived for non-terminal Hash
8872///
8873#[allow(dead_code)]
8874#[derive(Debug, Clone)]
8875pub struct Hash {
8876    pub hash_token: crate::veryl_token::VerylToken,
8877}
8878
8879///
8880/// Type derived for non-terminal HashLBracket
8881///
8882#[allow(dead_code)]
8883#[derive(Debug, Clone)]
8884pub struct HashLBracket {
8885    pub hash_l_bracket_token: crate::veryl_token::VerylToken,
8886}
8887
8888///
8889/// Type derived for non-terminal HashLBracketTerm
8890///
8891#[allow(dead_code)]
8892#[derive(Debug, Clone)]
8893pub struct HashLBracketTerm {
8894    pub hash_l_bracket_term: crate::veryl_token::Token, /* #[ */
8895}
8896
8897///
8898/// Type derived for non-terminal HashLBracketToken
8899///
8900#[allow(dead_code)]
8901#[derive(Debug, Clone)]
8902pub struct HashLBracketToken {
8903    pub hash_l_bracket_term: crate::veryl_token::Token,
8904    pub comments: Box<Comments>,
8905}
8906
8907///
8908/// Type derived for non-terminal HashTerm
8909///
8910#[allow(dead_code)]
8911#[derive(Debug, Clone)]
8912pub struct HashTerm {
8913    pub hash_term: crate::veryl_token::Token, /* # */
8914}
8915
8916///
8917/// Type derived for non-terminal HashToken
8918///
8919#[allow(dead_code)]
8920#[derive(Debug, Clone)]
8921pub struct HashToken {
8922    pub hash_term: crate::veryl_token::Token,
8923    pub comments: Box<Comments>,
8924}
8925
8926///
8927/// Type derived for non-terminal HierarchicalIdentifier
8928///
8929#[allow(dead_code)]
8930#[derive(Debug, Clone)]
8931pub struct HierarchicalIdentifier {
8932    pub identifier: Box<Identifier>,
8933    pub hierarchical_identifier_list: Vec<HierarchicalIdentifierList>,
8934    pub hierarchical_identifier_list0: Vec<HierarchicalIdentifierList0>,
8935}
8936
8937///
8938/// Type derived for non-terminal HierarchicalIdentifierList
8939///
8940#[allow(dead_code)]
8941#[derive(Debug, Clone)]
8942pub struct HierarchicalIdentifierList {
8943    pub select: Box<Select>,
8944}
8945
8946///
8947/// Type derived for non-terminal HierarchicalIdentifierList0
8948///
8949#[allow(dead_code)]
8950#[derive(Debug, Clone)]
8951pub struct HierarchicalIdentifierList0 {
8952    pub dot: Box<Dot>,
8953    pub identifier: Box<Identifier>,
8954    pub hierarchical_identifier_list0_list: Vec<HierarchicalIdentifierList0List>,
8955}
8956
8957///
8958/// Type derived for non-terminal HierarchicalIdentifierList0List
8959///
8960#[allow(dead_code)]
8961#[derive(Debug, Clone)]
8962pub struct HierarchicalIdentifierList0List {
8963    pub select: Box<Select>,
8964}
8965
8966///
8967/// Type derived for non-terminal I16
8968///
8969#[allow(dead_code)]
8970#[derive(Debug, Clone)]
8971pub struct I16 {
8972    pub i16_token: crate::veryl_token::VerylToken,
8973}
8974
8975///
8976/// Type derived for non-terminal I16Term
8977///
8978#[allow(dead_code)]
8979#[derive(Debug, Clone)]
8980pub struct I16Term {
8981    pub i16_term: crate::veryl_token::Token, /* i16 */
8982}
8983
8984///
8985/// Type derived for non-terminal I16Token
8986///
8987#[allow(dead_code)]
8988#[derive(Debug, Clone)]
8989pub struct I16Token {
8990    pub i16_term: crate::veryl_token::Token,
8991    pub comments: Box<Comments>,
8992}
8993
8994///
8995/// Type derived for non-terminal I32
8996///
8997#[allow(dead_code)]
8998#[derive(Debug, Clone)]
8999pub struct I32 {
9000    pub i32_token: crate::veryl_token::VerylToken,
9001}
9002
9003///
9004/// Type derived for non-terminal I32Term
9005///
9006#[allow(dead_code)]
9007#[derive(Debug, Clone)]
9008pub struct I32Term {
9009    pub i32_term: crate::veryl_token::Token, /* i32 */
9010}
9011
9012///
9013/// Type derived for non-terminal I32Token
9014///
9015#[allow(dead_code)]
9016#[derive(Debug, Clone)]
9017pub struct I32Token {
9018    pub i32_term: crate::veryl_token::Token,
9019    pub comments: Box<Comments>,
9020}
9021
9022///
9023/// Type derived for non-terminal I64
9024///
9025#[allow(dead_code)]
9026#[derive(Debug, Clone)]
9027pub struct I64 {
9028    pub i64_token: crate::veryl_token::VerylToken,
9029}
9030
9031///
9032/// Type derived for non-terminal I64Term
9033///
9034#[allow(dead_code)]
9035#[derive(Debug, Clone)]
9036pub struct I64Term {
9037    pub i64_term: crate::veryl_token::Token, /* i64 */
9038}
9039
9040///
9041/// Type derived for non-terminal I64Token
9042///
9043#[allow(dead_code)]
9044#[derive(Debug, Clone)]
9045pub struct I64Token {
9046    pub i64_term: crate::veryl_token::Token,
9047    pub comments: Box<Comments>,
9048}
9049
9050///
9051/// Type derived for non-terminal I8
9052///
9053#[allow(dead_code)]
9054#[derive(Debug, Clone)]
9055pub struct I8 {
9056    pub i8_token: crate::veryl_token::VerylToken,
9057}
9058
9059///
9060/// Type derived for non-terminal I8Term
9061///
9062#[allow(dead_code)]
9063#[derive(Debug, Clone)]
9064pub struct I8Term {
9065    pub i8_term: crate::veryl_token::Token, /* i8 */
9066}
9067
9068///
9069/// Type derived for non-terminal I8Token
9070///
9071#[allow(dead_code)]
9072#[derive(Debug, Clone)]
9073pub struct I8Token {
9074    pub i8_term: crate::veryl_token::Token,
9075    pub comments: Box<Comments>,
9076}
9077
9078///
9079/// Type derived for non-terminal Identifier
9080///
9081#[allow(dead_code)]
9082#[derive(Debug, Clone)]
9083pub struct Identifier {
9084    pub identifier_token: crate::veryl_token::VerylToken,
9085}
9086
9087///
9088/// Type derived for non-terminal IdentifierFactor
9089///
9090#[allow(dead_code)]
9091#[derive(Debug, Clone)]
9092pub struct IdentifierFactor {
9093    pub expression_identifier: Box<ExpressionIdentifier>,
9094    pub identifier_factor_opt: Option<IdentifierFactorOpt>,
9095}
9096
9097///
9098/// Type derived for non-terminal IdentifierFactorOpt
9099///
9100#[allow(dead_code)]
9101#[derive(Debug, Clone)]
9102pub struct IdentifierFactorOpt {
9103    pub identifier_factor_opt_group: Box<IdentifierFactorOptGroup>,
9104}
9105
9106///
9107/// Type derived for non-terminal IdentifierFactorOptGroup
9108///
9109#[allow(dead_code)]
9110#[derive(Debug, Clone)]
9111pub enum IdentifierFactorOptGroup {
9112    FunctionCall(IdentifierFactorOptGroupFunctionCall),
9113    StructConstructor(IdentifierFactorOptGroupStructConstructor),
9114}
9115
9116///
9117/// Type derived for non-terminal IdentifierStatement
9118///
9119#[allow(dead_code)]
9120#[derive(Debug, Clone)]
9121pub struct IdentifierStatement {
9122    pub expression_identifier: Box<ExpressionIdentifier>,
9123    pub identifier_statement_group: Box<IdentifierStatementGroup>,
9124    pub semicolon: Box<Semicolon>,
9125}
9126
9127///
9128/// Type derived for non-terminal IdentifierStatementGroup
9129///
9130#[allow(dead_code)]
9131#[derive(Debug, Clone)]
9132pub enum IdentifierStatementGroup {
9133    FunctionCall(IdentifierStatementGroupFunctionCall),
9134    Assignment(IdentifierStatementGroupAssignment),
9135}
9136
9137///
9138/// Type derived for non-terminal IdentifierTerm
9139///
9140#[allow(dead_code)]
9141#[derive(Debug, Clone)]
9142pub struct IdentifierTerm {
9143    pub identifier_term: crate::veryl_token::Token, /* (?:r#)?[a-zA-Z_][0-9a-zA-Z_$]* */
9144}
9145
9146///
9147/// Type derived for non-terminal IdentifierToken
9148///
9149#[allow(dead_code)]
9150#[derive(Debug, Clone)]
9151pub struct IdentifierToken {
9152    pub identifier_term: crate::veryl_token::Token,
9153    pub comments: Box<Comments>,
9154}
9155
9156///
9157/// Type derived for non-terminal If
9158///
9159#[allow(dead_code)]
9160#[derive(Debug, Clone)]
9161pub struct If {
9162    pub if_token: crate::veryl_token::VerylToken,
9163}
9164
9165///
9166/// Type derived for non-terminal IfExpression
9167///
9168#[allow(dead_code)]
9169#[derive(Debug, Clone)]
9170pub struct IfExpression {
9171    pub if_expression_list: Vec<IfExpressionList>,
9172    pub expression01: Box<Expression01>,
9173}
9174
9175///
9176/// Type derived for non-terminal IfExpressionList
9177///
9178#[allow(dead_code)]
9179#[derive(Debug, Clone)]
9180pub struct IfExpressionList {
9181    pub r#if: Box<If>,
9182    pub expression: Box<Expression>,
9183    pub question: Box<Question>,
9184    pub expression0: Box<Expression>,
9185    pub colon: Box<Colon>,
9186}
9187
9188///
9189/// Type derived for non-terminal IfReset
9190///
9191#[allow(dead_code)]
9192#[derive(Debug, Clone)]
9193pub struct IfReset {
9194    pub if_reset_token: crate::veryl_token::VerylToken,
9195}
9196
9197///
9198/// Type derived for non-terminal IfResetStatement
9199///
9200#[allow(dead_code)]
9201#[derive(Debug, Clone)]
9202pub struct IfResetStatement {
9203    pub if_reset: Box<IfReset>,
9204    pub statement_block: Box<StatementBlock>,
9205    pub if_reset_statement_list: Vec<IfResetStatementList>,
9206    pub if_reset_statement_opt: Option<IfResetStatementOpt>,
9207}
9208
9209///
9210/// Type derived for non-terminal IfResetStatementList
9211///
9212#[allow(dead_code)]
9213#[derive(Debug, Clone)]
9214pub struct IfResetStatementList {
9215    pub r#else: Box<Else>,
9216    pub r#if: Box<If>,
9217    pub expression: Box<Expression>,
9218    pub statement_block: Box<StatementBlock>,
9219}
9220
9221///
9222/// Type derived for non-terminal IfResetStatementOpt
9223///
9224#[allow(dead_code)]
9225#[derive(Debug, Clone)]
9226pub struct IfResetStatementOpt {
9227    pub r#else: Box<Else>,
9228    pub statement_block: Box<StatementBlock>,
9229}
9230
9231///
9232/// Type derived for non-terminal IfResetTerm
9233///
9234#[allow(dead_code)]
9235#[derive(Debug, Clone)]
9236pub struct IfResetTerm {
9237    pub if_reset_term: crate::veryl_token::Token, /* if_reset */
9238}
9239
9240///
9241/// Type derived for non-terminal IfResetToken
9242///
9243#[allow(dead_code)]
9244#[derive(Debug, Clone)]
9245pub struct IfResetToken {
9246    pub if_reset_term: crate::veryl_token::Token,
9247    pub comments: Box<Comments>,
9248}
9249
9250///
9251/// Type derived for non-terminal IfStatement
9252///
9253#[allow(dead_code)]
9254#[derive(Debug, Clone)]
9255pub struct IfStatement {
9256    pub r#if: Box<If>,
9257    pub expression: Box<Expression>,
9258    pub statement_block: Box<StatementBlock>,
9259    pub if_statement_list: Vec<IfStatementList>,
9260    pub if_statement_opt: Option<IfStatementOpt>,
9261}
9262
9263///
9264/// Type derived for non-terminal IfStatementList
9265///
9266#[allow(dead_code)]
9267#[derive(Debug, Clone)]
9268pub struct IfStatementList {
9269    pub r#else: Box<Else>,
9270    pub r#if: Box<If>,
9271    pub expression: Box<Expression>,
9272    pub statement_block: Box<StatementBlock>,
9273}
9274
9275///
9276/// Type derived for non-terminal IfStatementOpt
9277///
9278#[allow(dead_code)]
9279#[derive(Debug, Clone)]
9280pub struct IfStatementOpt {
9281    pub r#else: Box<Else>,
9282    pub statement_block: Box<StatementBlock>,
9283}
9284
9285///
9286/// Type derived for non-terminal IfTerm
9287///
9288#[allow(dead_code)]
9289#[derive(Debug, Clone)]
9290pub struct IfTerm {
9291    pub if_term: crate::veryl_token::Token, /* if */
9292}
9293
9294///
9295/// Type derived for non-terminal IfToken
9296///
9297#[allow(dead_code)]
9298#[derive(Debug, Clone)]
9299pub struct IfToken {
9300    pub if_term: crate::veryl_token::Token,
9301    pub comments: Box<Comments>,
9302}
9303
9304///
9305/// Type derived for non-terminal Import
9306///
9307#[allow(dead_code)]
9308#[derive(Debug, Clone)]
9309pub struct Import {
9310    pub import_token: crate::veryl_token::VerylToken,
9311}
9312
9313///
9314/// Type derived for non-terminal ImportDeclaration
9315///
9316#[allow(dead_code)]
9317#[derive(Debug, Clone)]
9318pub struct ImportDeclaration {
9319    pub import: Box<Import>,
9320    pub scoped_identifier: Box<ScopedIdentifier>,
9321    pub import_declaration_opt: Option<ImportDeclarationOpt>,
9322    pub semicolon: Box<Semicolon>,
9323}
9324
9325///
9326/// Type derived for non-terminal ImportDeclarationOpt
9327///
9328#[allow(dead_code)]
9329#[derive(Debug, Clone)]
9330pub struct ImportDeclarationOpt {
9331    pub colon_colon: Box<ColonColon>,
9332    pub star: Box<Star>,
9333}
9334
9335///
9336/// Type derived for non-terminal ImportTerm
9337///
9338#[allow(dead_code)]
9339#[derive(Debug, Clone)]
9340pub struct ImportTerm {
9341    pub import_term: crate::veryl_token::Token, /* import */
9342}
9343
9344///
9345/// Type derived for non-terminal ImportToken
9346///
9347#[allow(dead_code)]
9348#[derive(Debug, Clone)]
9349pub struct ImportToken {
9350    pub import_term: crate::veryl_token::Token,
9351    pub comments: Box<Comments>,
9352}
9353
9354///
9355/// Type derived for non-terminal In
9356///
9357#[allow(dead_code)]
9358#[derive(Debug, Clone)]
9359pub struct In {
9360    pub in_token: crate::veryl_token::VerylToken,
9361}
9362
9363///
9364/// Type derived for non-terminal InTerm
9365///
9366#[allow(dead_code)]
9367#[derive(Debug, Clone)]
9368pub struct InTerm {
9369    pub in_term: crate::veryl_token::Token, /* in */
9370}
9371
9372///
9373/// Type derived for non-terminal InToken
9374///
9375#[allow(dead_code)]
9376#[derive(Debug, Clone)]
9377pub struct InToken {
9378    pub in_term: crate::veryl_token::Token,
9379    pub comments: Box<Comments>,
9380}
9381
9382///
9383/// Type derived for non-terminal Include
9384///
9385#[allow(dead_code)]
9386#[derive(Debug, Clone)]
9387pub struct Include {
9388    pub include_token: crate::veryl_token::VerylToken,
9389}
9390
9391///
9392/// Type derived for non-terminal IncludeDeclaration
9393///
9394#[allow(dead_code)]
9395#[derive(Debug, Clone)]
9396pub struct IncludeDeclaration {
9397    pub include: Box<Include>,
9398    pub l_paren: Box<LParen>,
9399    pub identifier: Box<Identifier>,
9400    pub comma: Box<Comma>,
9401    pub string_literal: Box<StringLiteral>,
9402    pub r_paren: Box<RParen>,
9403    pub semicolon: Box<Semicolon>,
9404}
9405
9406///
9407/// Type derived for non-terminal IncludeTerm
9408///
9409#[allow(dead_code)]
9410#[derive(Debug, Clone)]
9411pub struct IncludeTerm {
9412    pub include_term: crate::veryl_token::Token, /* include */
9413}
9414
9415///
9416/// Type derived for non-terminal IncludeToken
9417///
9418#[allow(dead_code)]
9419#[derive(Debug, Clone)]
9420pub struct IncludeToken {
9421    pub include_term: crate::veryl_token::Token,
9422    pub comments: Box<Comments>,
9423}
9424
9425///
9426/// Type derived for non-terminal Initial
9427///
9428#[allow(dead_code)]
9429#[derive(Debug, Clone)]
9430pub struct Initial {
9431    pub initial_token: crate::veryl_token::VerylToken,
9432}
9433
9434///
9435/// Type derived for non-terminal InitialDeclaration
9436///
9437#[allow(dead_code)]
9438#[derive(Debug, Clone)]
9439pub struct InitialDeclaration {
9440    pub initial: Box<Initial>,
9441    pub statement_block: Box<StatementBlock>,
9442}
9443
9444///
9445/// Type derived for non-terminal InitialTerm
9446///
9447#[allow(dead_code)]
9448#[derive(Debug, Clone)]
9449pub struct InitialTerm {
9450    pub initial_term: crate::veryl_token::Token, /* initial */
9451}
9452
9453///
9454/// Type derived for non-terminal InitialToken
9455///
9456#[allow(dead_code)]
9457#[derive(Debug, Clone)]
9458pub struct InitialToken {
9459    pub initial_term: crate::veryl_token::Token,
9460    pub comments: Box<Comments>,
9461}
9462
9463///
9464/// Type derived for non-terminal Inout
9465///
9466#[allow(dead_code)]
9467#[derive(Debug, Clone)]
9468pub struct Inout {
9469    pub inout_token: crate::veryl_token::VerylToken,
9470}
9471
9472///
9473/// Type derived for non-terminal InoutTerm
9474///
9475#[allow(dead_code)]
9476#[derive(Debug, Clone)]
9477pub struct InoutTerm {
9478    pub inout_term: crate::veryl_token::Token, /* inout */
9479}
9480
9481///
9482/// Type derived for non-terminal InoutToken
9483///
9484#[allow(dead_code)]
9485#[derive(Debug, Clone)]
9486pub struct InoutToken {
9487    pub inout_term: crate::veryl_token::Token,
9488    pub comments: Box<Comments>,
9489}
9490
9491///
9492/// Type derived for non-terminal Input
9493///
9494#[allow(dead_code)]
9495#[derive(Debug, Clone)]
9496pub struct Input {
9497    pub input_token: crate::veryl_token::VerylToken,
9498}
9499
9500///
9501/// Type derived for non-terminal InputTerm
9502///
9503#[allow(dead_code)]
9504#[derive(Debug, Clone)]
9505pub struct InputTerm {
9506    pub input_term: crate::veryl_token::Token, /* input */
9507}
9508
9509///
9510/// Type derived for non-terminal InputToken
9511///
9512#[allow(dead_code)]
9513#[derive(Debug, Clone)]
9514pub struct InputToken {
9515    pub input_term: crate::veryl_token::Token,
9516    pub comments: Box<Comments>,
9517}
9518
9519///
9520/// Type derived for non-terminal Inside
9521///
9522#[allow(dead_code)]
9523#[derive(Debug, Clone)]
9524pub struct Inside {
9525    pub inside_token: crate::veryl_token::VerylToken,
9526}
9527
9528///
9529/// Type derived for non-terminal InsideExpression
9530///
9531#[allow(dead_code)]
9532#[derive(Debug, Clone)]
9533pub struct InsideExpression {
9534    pub inside: Box<Inside>,
9535    pub expression: Box<Expression>,
9536    pub l_brace: Box<LBrace>,
9537    pub range_list: Box<RangeList>,
9538    pub r_brace: Box<RBrace>,
9539}
9540
9541///
9542/// Type derived for non-terminal InsideTerm
9543///
9544#[allow(dead_code)]
9545#[derive(Debug, Clone)]
9546pub struct InsideTerm {
9547    pub inside_term: crate::veryl_token::Token, /* inside */
9548}
9549
9550///
9551/// Type derived for non-terminal InsideToken
9552///
9553#[allow(dead_code)]
9554#[derive(Debug, Clone)]
9555pub struct InsideToken {
9556    pub inside_term: crate::veryl_token::Token,
9557    pub comments: Box<Comments>,
9558}
9559
9560///
9561/// Type derived for non-terminal Inst
9562///
9563#[allow(dead_code)]
9564#[derive(Debug, Clone)]
9565pub struct Inst {
9566    pub inst_token: crate::veryl_token::VerylToken,
9567}
9568
9569///
9570/// Type derived for non-terminal InstDeclaration
9571///
9572#[allow(dead_code)]
9573#[derive(Debug, Clone)]
9574pub struct InstDeclaration {
9575    pub inst: Box<Inst>,
9576    pub component_instantiation: Box<ComponentInstantiation>,
9577    pub semicolon: Box<Semicolon>,
9578}
9579
9580///
9581/// Type derived for non-terminal InstParameter
9582///
9583#[allow(dead_code)]
9584#[derive(Debug, Clone)]
9585pub struct InstParameter {
9586    pub hash: Box<Hash>,
9587    pub l_paren: Box<LParen>,
9588    pub inst_parameter_opt: Option<InstParameterOpt>,
9589    pub r_paren: Box<RParen>,
9590}
9591
9592///
9593/// Type derived for non-terminal InstParameterGroup
9594///
9595#[allow(dead_code)]
9596#[derive(Debug, Clone)]
9597pub struct InstParameterGroup {
9598    pub inst_parameter_group_list: Vec<InstParameterGroupList>,
9599    pub inst_parameter_group_group: Box<InstParameterGroupGroup>,
9600}
9601
9602///
9603/// Type derived for non-terminal InstParameterGroupGroup
9604///
9605#[allow(dead_code)]
9606#[derive(Debug, Clone)]
9607pub enum InstParameterGroupGroup {
9608    LBraceInstParameterListRBrace(InstParameterGroupGroupLBraceInstParameterListRBrace),
9609    InstParameterItem(InstParameterGroupGroupInstParameterItem),
9610}
9611
9612///
9613/// Type derived for non-terminal InstParameterGroupList
9614///
9615#[allow(dead_code)]
9616#[derive(Debug, Clone)]
9617pub struct InstParameterGroupList {
9618    pub attribute: Box<Attribute>,
9619}
9620
9621///
9622/// Type derived for non-terminal InstParameterItem
9623///
9624#[allow(dead_code)]
9625#[derive(Debug, Clone)]
9626pub struct InstParameterItem {
9627    pub identifier: Box<Identifier>,
9628    pub inst_parameter_item_opt: Option<InstParameterItemOpt>,
9629}
9630
9631///
9632/// Type derived for non-terminal InstParameterItemOpt
9633///
9634#[allow(dead_code)]
9635#[derive(Debug, Clone)]
9636pub struct InstParameterItemOpt {
9637    pub colon: Box<Colon>,
9638    pub expression: Box<Expression>,
9639}
9640
9641///
9642/// Type derived for non-terminal InstParameterList
9643///
9644#[allow(dead_code)]
9645#[derive(Debug, Clone)]
9646pub struct InstParameterList {
9647    pub inst_parameter_group: Box<InstParameterGroup>,
9648    pub inst_parameter_list_list: Vec<InstParameterListList>,
9649    pub inst_parameter_list_opt: Option<InstParameterListOpt>,
9650}
9651
9652///
9653/// Type derived for non-terminal InstParameterListList
9654///
9655#[allow(dead_code)]
9656#[derive(Debug, Clone)]
9657pub struct InstParameterListList {
9658    pub comma: Box<Comma>,
9659    pub inst_parameter_group: Box<InstParameterGroup>,
9660}
9661
9662///
9663/// Type derived for non-terminal InstParameterListOpt
9664///
9665#[allow(dead_code)]
9666#[derive(Debug, Clone)]
9667pub struct InstParameterListOpt {
9668    pub comma: Box<Comma>,
9669}
9670
9671///
9672/// Type derived for non-terminal InstParameterOpt
9673///
9674#[allow(dead_code)]
9675#[derive(Debug, Clone)]
9676pub struct InstParameterOpt {
9677    pub inst_parameter_list: Box<InstParameterList>,
9678}
9679
9680///
9681/// Type derived for non-terminal InstPort
9682///
9683#[allow(dead_code)]
9684#[derive(Debug, Clone)]
9685pub struct InstPort {
9686    pub l_paren: Box<LParen>,
9687    pub inst_port_opt: Option<InstPortOpt>,
9688    pub r_paren: Box<RParen>,
9689}
9690
9691///
9692/// Type derived for non-terminal InstPortGroup
9693///
9694#[allow(dead_code)]
9695#[derive(Debug, Clone)]
9696pub struct InstPortGroup {
9697    pub inst_port_group_list: Vec<InstPortGroupList>,
9698    pub inst_port_group_group: Box<InstPortGroupGroup>,
9699}
9700
9701///
9702/// Type derived for non-terminal InstPortGroupGroup
9703///
9704#[allow(dead_code)]
9705#[derive(Debug, Clone)]
9706pub enum InstPortGroupGroup {
9707    LBraceInstPortListRBrace(InstPortGroupGroupLBraceInstPortListRBrace),
9708    InstPortItem(InstPortGroupGroupInstPortItem),
9709}
9710
9711///
9712/// Type derived for non-terminal InstPortGroupList
9713///
9714#[allow(dead_code)]
9715#[derive(Debug, Clone)]
9716pub struct InstPortGroupList {
9717    pub attribute: Box<Attribute>,
9718}
9719
9720///
9721/// Type derived for non-terminal InstPortItem
9722///
9723#[allow(dead_code)]
9724#[derive(Debug, Clone)]
9725pub struct InstPortItem {
9726    pub identifier: Box<Identifier>,
9727    pub inst_port_item_opt: Option<InstPortItemOpt>,
9728}
9729
9730///
9731/// Type derived for non-terminal InstPortItemOpt
9732///
9733#[allow(dead_code)]
9734#[derive(Debug, Clone)]
9735pub struct InstPortItemOpt {
9736    pub colon: Box<Colon>,
9737    pub expression: Box<Expression>,
9738}
9739
9740///
9741/// Type derived for non-terminal InstPortList
9742///
9743#[allow(dead_code)]
9744#[derive(Debug, Clone)]
9745pub struct InstPortList {
9746    pub inst_port_group: Box<InstPortGroup>,
9747    pub inst_port_list_list: Vec<InstPortListList>,
9748    pub inst_port_list_opt: Option<InstPortListOpt>,
9749}
9750
9751///
9752/// Type derived for non-terminal InstPortListList
9753///
9754#[allow(dead_code)]
9755#[derive(Debug, Clone)]
9756pub struct InstPortListList {
9757    pub comma: Box<Comma>,
9758    pub inst_port_group: Box<InstPortGroup>,
9759}
9760
9761///
9762/// Type derived for non-terminal InstPortListOpt
9763///
9764#[allow(dead_code)]
9765#[derive(Debug, Clone)]
9766pub struct InstPortListOpt {
9767    pub comma: Box<Comma>,
9768}
9769
9770///
9771/// Type derived for non-terminal InstPortOpt
9772///
9773#[allow(dead_code)]
9774#[derive(Debug, Clone)]
9775pub struct InstPortOpt {
9776    pub inst_port_list: Box<InstPortList>,
9777}
9778
9779///
9780/// Type derived for non-terminal InstTerm
9781///
9782#[allow(dead_code)]
9783#[derive(Debug, Clone)]
9784pub struct InstTerm {
9785    pub inst_term: crate::veryl_token::Token, /* inst */
9786}
9787
9788///
9789/// Type derived for non-terminal InstToken
9790///
9791#[allow(dead_code)]
9792#[derive(Debug, Clone)]
9793pub struct InstToken {
9794    pub inst_term: crate::veryl_token::Token,
9795    pub comments: Box<Comments>,
9796}
9797
9798///
9799/// Type derived for non-terminal IntegralNumber
9800///
9801#[allow(dead_code)]
9802#[derive(Debug, Clone)]
9803pub enum IntegralNumber {
9804    Based(IntegralNumberBased),
9805    BaseLess(IntegralNumberBaseLess),
9806    AllBit(IntegralNumberAllBit),
9807}
9808
9809///
9810/// Type derived for non-terminal Interface
9811///
9812#[allow(dead_code)]
9813#[derive(Debug, Clone)]
9814pub struct Interface {
9815    pub interface_token: crate::veryl_token::VerylToken,
9816}
9817
9818///
9819/// Type derived for non-terminal InterfaceDeclaration
9820///
9821#[allow(dead_code)]
9822#[derive(Debug, Clone)]
9823pub struct InterfaceDeclaration {
9824    pub interface: Box<Interface>,
9825    pub identifier: Box<Identifier>,
9826    pub interface_declaration_opt: Option<InterfaceDeclarationOpt>,
9827    pub interface_declaration_opt0: Option<InterfaceDeclarationOpt0>,
9828    pub interface_declaration_opt1: Option<InterfaceDeclarationOpt1>,
9829    pub l_brace: Box<LBrace>,
9830    pub interface_declaration_list: Vec<InterfaceDeclarationList>,
9831    pub r_brace: Box<RBrace>,
9832}
9833
9834///
9835/// Type derived for non-terminal InterfaceDeclarationList
9836///
9837#[allow(dead_code)]
9838#[derive(Debug, Clone)]
9839pub struct InterfaceDeclarationList {
9840    pub interface_group: Box<InterfaceGroup>,
9841}
9842
9843///
9844/// Type derived for non-terminal InterfaceDeclarationOpt
9845///
9846#[allow(dead_code)]
9847#[derive(Debug, Clone)]
9848pub struct InterfaceDeclarationOpt {
9849    pub with_generic_parameter: Box<WithGenericParameter>,
9850}
9851
9852///
9853/// Type derived for non-terminal InterfaceDeclarationOpt0
9854///
9855#[allow(dead_code)]
9856#[derive(Debug, Clone)]
9857pub struct InterfaceDeclarationOpt0 {
9858    pub r#for: Box<For>,
9859    pub scoped_identifier: Box<ScopedIdentifier>,
9860}
9861
9862///
9863/// Type derived for non-terminal InterfaceDeclarationOpt1
9864///
9865#[allow(dead_code)]
9866#[derive(Debug, Clone)]
9867pub struct InterfaceDeclarationOpt1 {
9868    pub with_parameter: Box<WithParameter>,
9869}
9870
9871///
9872/// Type derived for non-terminal InterfaceGroup
9873///
9874#[allow(dead_code)]
9875#[derive(Debug, Clone)]
9876pub struct InterfaceGroup {
9877    pub interface_group_list: Vec<InterfaceGroupList>,
9878    pub interface_group_group: Box<InterfaceGroupGroup>,
9879}
9880
9881///
9882/// Type derived for non-terminal InterfaceGroupGroup
9883///
9884#[allow(dead_code)]
9885#[derive(Debug, Clone)]
9886pub enum InterfaceGroupGroup {
9887    LBraceInterfaceGroupGroupListRBrace(InterfaceGroupGroupLBraceInterfaceGroupGroupListRBrace),
9888    InterfaceItem(InterfaceGroupGroupInterfaceItem),
9889}
9890
9891///
9892/// Type derived for non-terminal InterfaceGroupGroupList
9893///
9894#[allow(dead_code)]
9895#[derive(Debug, Clone)]
9896pub struct InterfaceGroupGroupList {
9897    pub interface_group: Box<InterfaceGroup>,
9898}
9899
9900///
9901/// Type derived for non-terminal InterfaceGroupList
9902///
9903#[allow(dead_code)]
9904#[derive(Debug, Clone)]
9905pub struct InterfaceGroupList {
9906    pub attribute: Box<Attribute>,
9907}
9908
9909///
9910/// Type derived for non-terminal InterfaceItem
9911///
9912#[allow(dead_code)]
9913#[derive(Debug, Clone)]
9914pub enum InterfaceItem {
9915    GenerateItem(InterfaceItemGenerateItem),
9916    ModportDeclaration(InterfaceItemModportDeclaration),
9917}
9918
9919///
9920/// Type derived for non-terminal InterfaceTerm
9921///
9922#[allow(dead_code)]
9923#[derive(Debug, Clone)]
9924pub struct InterfaceTerm {
9925    pub interface_term: crate::veryl_token::Token, /* interface */
9926}
9927
9928///
9929/// Type derived for non-terminal InterfaceToken
9930///
9931#[allow(dead_code)]
9932#[derive(Debug, Clone)]
9933pub struct InterfaceToken {
9934    pub interface_term: crate::veryl_token::Token,
9935    pub comments: Box<Comments>,
9936}
9937
9938///
9939/// Type derived for non-terminal LAngle
9940///
9941#[allow(dead_code)]
9942#[derive(Debug, Clone)]
9943pub struct LAngle {
9944    pub l_angle_token: crate::veryl_token::VerylToken,
9945}
9946
9947///
9948/// Type derived for non-terminal LAngleTerm
9949///
9950#[allow(dead_code)]
9951#[derive(Debug, Clone)]
9952pub struct LAngleTerm {
9953    pub l_angle_term: crate::veryl_token::Token, /* < */
9954}
9955
9956///
9957/// Type derived for non-terminal LAngleToken
9958///
9959#[allow(dead_code)]
9960#[derive(Debug, Clone)]
9961pub struct LAngleToken {
9962    pub l_angle_term: crate::veryl_token::Token,
9963    pub comments: Box<Comments>,
9964}
9965
9966///
9967/// Type derived for non-terminal LBool
9968///
9969#[allow(dead_code)]
9970#[derive(Debug, Clone)]
9971pub struct LBool {
9972    pub l_bool_token: crate::veryl_token::VerylToken,
9973}
9974
9975///
9976/// Type derived for non-terminal LBoolTerm
9977///
9978#[allow(dead_code)]
9979#[derive(Debug, Clone)]
9980pub struct LBoolTerm {
9981    pub l_bool_term: crate::veryl_token::Token, /* lbool */
9982}
9983
9984///
9985/// Type derived for non-terminal LBoolToken
9986///
9987#[allow(dead_code)]
9988#[derive(Debug, Clone)]
9989pub struct LBoolToken {
9990    pub l_bool_term: crate::veryl_token::Token,
9991    pub comments: Box<Comments>,
9992}
9993
9994///
9995/// Type derived for non-terminal LBrace
9996///
9997#[allow(dead_code)]
9998#[derive(Debug, Clone)]
9999pub struct LBrace {
10000    pub l_brace_token: crate::veryl_token::VerylToken,
10001}
10002
10003///
10004/// Type derived for non-terminal LBraceTerm
10005///
10006#[allow(dead_code)]
10007#[derive(Debug, Clone)]
10008pub struct LBraceTerm {
10009    pub l_brace_term: crate::veryl_token::Token, /* { */
10010}
10011
10012///
10013/// Type derived for non-terminal LBraceToken
10014///
10015#[allow(dead_code)]
10016#[derive(Debug, Clone)]
10017pub struct LBraceToken {
10018    pub l_brace_term: crate::veryl_token::Token,
10019    pub comments: Box<Comments>,
10020}
10021
10022///
10023/// Type derived for non-terminal LBracket
10024///
10025#[allow(dead_code)]
10026#[derive(Debug, Clone)]
10027pub struct LBracket {
10028    pub l_bracket_token: crate::veryl_token::VerylToken,
10029}
10030
10031///
10032/// Type derived for non-terminal LBracketTerm
10033///
10034#[allow(dead_code)]
10035#[derive(Debug, Clone)]
10036pub struct LBracketTerm {
10037    pub l_bracket_term: crate::veryl_token::Token, /* [ */
10038}
10039
10040///
10041/// Type derived for non-terminal LBracketToken
10042///
10043#[allow(dead_code)]
10044#[derive(Debug, Clone)]
10045pub struct LBracketToken {
10046    pub l_bracket_term: crate::veryl_token::Token,
10047    pub comments: Box<Comments>,
10048}
10049
10050///
10051/// Type derived for non-terminal LParen
10052///
10053#[allow(dead_code)]
10054#[derive(Debug, Clone)]
10055pub struct LParen {
10056    pub l_paren_token: crate::veryl_token::VerylToken,
10057}
10058
10059///
10060/// Type derived for non-terminal LParenTerm
10061///
10062#[allow(dead_code)]
10063#[derive(Debug, Clone)]
10064pub struct LParenTerm {
10065    pub l_paren_term: crate::veryl_token::Token, /* ( */
10066}
10067
10068///
10069/// Type derived for non-terminal LParenToken
10070///
10071#[allow(dead_code)]
10072#[derive(Debug, Clone)]
10073pub struct LParenToken {
10074    pub l_paren_term: crate::veryl_token::Token,
10075    pub comments: Box<Comments>,
10076}
10077
10078///
10079/// Type derived for non-terminal LTMinus
10080///
10081#[allow(dead_code)]
10082#[derive(Debug, Clone)]
10083pub struct LTMinus {
10084    pub l_t_minus_token: crate::veryl_token::VerylToken,
10085}
10086
10087///
10088/// Type derived for non-terminal LTMinusTerm
10089///
10090#[allow(dead_code)]
10091#[derive(Debug, Clone)]
10092pub struct LTMinusTerm {
10093    pub l_t_minus_term: crate::veryl_token::Token, /* <- */
10094}
10095
10096///
10097/// Type derived for non-terminal LTMinusToken
10098///
10099#[allow(dead_code)]
10100#[derive(Debug, Clone)]
10101pub struct LTMinusToken {
10102    pub l_t_minus_term: crate::veryl_token::Token,
10103    pub comments: Box<Comments>,
10104}
10105
10106///
10107/// Type derived for non-terminal Let
10108///
10109#[allow(dead_code)]
10110#[derive(Debug, Clone)]
10111pub struct Let {
10112    pub let_token: crate::veryl_token::VerylToken,
10113}
10114
10115///
10116/// Type derived for non-terminal LetDeclaration
10117///
10118#[allow(dead_code)]
10119#[derive(Debug, Clone)]
10120pub struct LetDeclaration {
10121    pub r#let: Box<Let>,
10122    pub identifier: Box<Identifier>,
10123    pub colon: Box<Colon>,
10124    pub let_declaration_opt: Option<LetDeclarationOpt>,
10125    pub array_type: Box<ArrayType>,
10126    pub equ: Box<Equ>,
10127    pub expression: Box<Expression>,
10128    pub semicolon: Box<Semicolon>,
10129}
10130
10131///
10132/// Type derived for non-terminal LetDeclarationOpt
10133///
10134#[allow(dead_code)]
10135#[derive(Debug, Clone)]
10136pub struct LetDeclarationOpt {
10137    pub clock_domain: Box<ClockDomain>,
10138}
10139
10140///
10141/// Type derived for non-terminal LetStatement
10142///
10143#[allow(dead_code)]
10144#[derive(Debug, Clone)]
10145pub struct LetStatement {
10146    pub r#let: Box<Let>,
10147    pub identifier: Box<Identifier>,
10148    pub colon: Box<Colon>,
10149    pub let_statement_opt: Option<LetStatementOpt>,
10150    pub array_type: Box<ArrayType>,
10151    pub equ: Box<Equ>,
10152    pub expression: Box<Expression>,
10153    pub semicolon: Box<Semicolon>,
10154}
10155
10156///
10157/// Type derived for non-terminal LetStatementOpt
10158///
10159#[allow(dead_code)]
10160#[derive(Debug, Clone)]
10161pub struct LetStatementOpt {
10162    pub clock_domain: Box<ClockDomain>,
10163}
10164
10165///
10166/// Type derived for non-terminal LetTerm
10167///
10168#[allow(dead_code)]
10169#[derive(Debug, Clone)]
10170pub struct LetTerm {
10171    pub let_term: crate::veryl_token::Token, /* let */
10172}
10173
10174///
10175/// Type derived for non-terminal LetToken
10176///
10177#[allow(dead_code)]
10178#[derive(Debug, Clone)]
10179pub struct LetToken {
10180    pub let_term: crate::veryl_token::Token,
10181    pub comments: Box<Comments>,
10182}
10183
10184///
10185/// Type derived for non-terminal Logic
10186///
10187#[allow(dead_code)]
10188#[derive(Debug, Clone)]
10189pub struct Logic {
10190    pub logic_token: crate::veryl_token::VerylToken,
10191}
10192
10193///
10194/// Type derived for non-terminal LogicTerm
10195///
10196#[allow(dead_code)]
10197#[derive(Debug, Clone)]
10198pub struct LogicTerm {
10199    pub logic_term: crate::veryl_token::Token, /* logic */
10200}
10201
10202///
10203/// Type derived for non-terminal LogicToken
10204///
10205#[allow(dead_code)]
10206#[derive(Debug, Clone)]
10207pub struct LogicToken {
10208    pub logic_term: crate::veryl_token::Token,
10209    pub comments: Box<Comments>,
10210}
10211
10212///
10213/// Type derived for non-terminal Lsb
10214///
10215#[allow(dead_code)]
10216#[derive(Debug, Clone)]
10217pub struct Lsb {
10218    pub lsb_token: crate::veryl_token::VerylToken,
10219}
10220
10221///
10222/// Type derived for non-terminal LsbTerm
10223///
10224#[allow(dead_code)]
10225#[derive(Debug, Clone)]
10226pub struct LsbTerm {
10227    pub lsb_term: crate::veryl_token::Token, /* lsb */
10228}
10229
10230///
10231/// Type derived for non-terminal LsbToken
10232///
10233#[allow(dead_code)]
10234#[derive(Debug, Clone)]
10235pub struct LsbToken {
10236    pub lsb_term: crate::veryl_token::Token,
10237    pub comments: Box<Comments>,
10238}
10239
10240///
10241/// Type derived for non-terminal MinusColon
10242///
10243#[allow(dead_code)]
10244#[derive(Debug, Clone)]
10245pub struct MinusColon {
10246    pub minus_colon_token: crate::veryl_token::VerylToken,
10247}
10248
10249///
10250/// Type derived for non-terminal MinusColonTerm
10251///
10252#[allow(dead_code)]
10253#[derive(Debug, Clone)]
10254pub struct MinusColonTerm {
10255    pub minus_colon_term: crate::veryl_token::Token, /* -: */
10256}
10257
10258///
10259/// Type derived for non-terminal MinusColonToken
10260///
10261#[allow(dead_code)]
10262#[derive(Debug, Clone)]
10263pub struct MinusColonToken {
10264    pub minus_colon_term: crate::veryl_token::Token,
10265    pub comments: Box<Comments>,
10266}
10267
10268///
10269/// Type derived for non-terminal MinusGT
10270///
10271#[allow(dead_code)]
10272#[derive(Debug, Clone)]
10273pub struct MinusGT {
10274    pub minus_g_t_token: crate::veryl_token::VerylToken,
10275}
10276
10277///
10278/// Type derived for non-terminal MinusGTTerm
10279///
10280#[allow(dead_code)]
10281#[derive(Debug, Clone)]
10282pub struct MinusGTTerm {
10283    pub minus_g_t_term: crate::veryl_token::Token, /* -> */
10284}
10285
10286///
10287/// Type derived for non-terminal MinusGTToken
10288///
10289#[allow(dead_code)]
10290#[derive(Debug, Clone)]
10291pub struct MinusGTToken {
10292    pub minus_g_t_term: crate::veryl_token::Token,
10293    pub comments: Box<Comments>,
10294}
10295
10296///
10297/// Type derived for non-terminal Modport
10298///
10299#[allow(dead_code)]
10300#[derive(Debug, Clone)]
10301pub struct Modport {
10302    pub modport_token: crate::veryl_token::VerylToken,
10303}
10304
10305///
10306/// Type derived for non-terminal ModportDeclaration
10307///
10308#[allow(dead_code)]
10309#[derive(Debug, Clone)]
10310pub struct ModportDeclaration {
10311    pub modport: Box<Modport>,
10312    pub identifier: Box<Identifier>,
10313    pub l_brace: Box<LBrace>,
10314    pub modport_declaration_opt: Option<ModportDeclarationOpt>,
10315    pub modport_declaration_opt0: Option<ModportDeclarationOpt0>,
10316    pub r_brace: Box<RBrace>,
10317}
10318
10319///
10320/// Type derived for non-terminal ModportDeclarationOpt
10321///
10322#[allow(dead_code)]
10323#[derive(Debug, Clone)]
10324pub struct ModportDeclarationOpt {
10325    pub modport_list: Box<ModportList>,
10326}
10327
10328///
10329/// Type derived for non-terminal ModportDeclarationOpt0
10330///
10331#[allow(dead_code)]
10332#[derive(Debug, Clone)]
10333pub struct ModportDeclarationOpt0 {
10334    pub dot_dot: Box<DotDot>,
10335    pub modport_default: Box<ModportDefault>,
10336}
10337
10338///
10339/// Type derived for non-terminal ModportDefault
10340///
10341#[allow(dead_code)]
10342#[derive(Debug, Clone)]
10343pub enum ModportDefault {
10344    Input(ModportDefaultInput),
10345    Output(ModportDefaultOutput),
10346    SameLParenModportDefaultListRParen(ModportDefaultSameLParenModportDefaultListRParen),
10347    ConverseLParenModportDefaultListRParen(ModportDefaultConverseLParenModportDefaultListRParen),
10348}
10349
10350///
10351/// Type derived for non-terminal ModportDefaultList
10352///
10353#[allow(dead_code)]
10354#[derive(Debug, Clone)]
10355pub struct ModportDefaultList {
10356    pub identifier: Box<Identifier>,
10357    pub modport_default_list_list: Vec<ModportDefaultListList>,
10358    pub modport_default_list_opt: Option<ModportDefaultListOpt>,
10359}
10360
10361///
10362/// Type derived for non-terminal ModportDefaultListList
10363///
10364#[allow(dead_code)]
10365#[derive(Debug, Clone)]
10366pub struct ModportDefaultListList {
10367    pub comma: Box<Comma>,
10368    pub identifier: Box<Identifier>,
10369}
10370
10371///
10372/// Type derived for non-terminal ModportDefaultListOpt
10373///
10374#[allow(dead_code)]
10375#[derive(Debug, Clone)]
10376pub struct ModportDefaultListOpt {
10377    pub comma: Box<Comma>,
10378}
10379
10380///
10381/// Type derived for non-terminal ModportGroup
10382///
10383#[allow(dead_code)]
10384#[derive(Debug, Clone)]
10385pub struct ModportGroup {
10386    pub modport_group_list: Vec<ModportGroupList>,
10387    pub modport_group_group: Box<ModportGroupGroup>,
10388}
10389
10390///
10391/// Type derived for non-terminal ModportGroupGroup
10392///
10393#[allow(dead_code)]
10394#[derive(Debug, Clone)]
10395pub enum ModportGroupGroup {
10396    LBraceModportListRBrace(ModportGroupGroupLBraceModportListRBrace),
10397    ModportItem(ModportGroupGroupModportItem),
10398}
10399
10400///
10401/// Type derived for non-terminal ModportGroupList
10402///
10403#[allow(dead_code)]
10404#[derive(Debug, Clone)]
10405pub struct ModportGroupList {
10406    pub attribute: Box<Attribute>,
10407}
10408
10409///
10410/// Type derived for non-terminal ModportItem
10411///
10412#[allow(dead_code)]
10413#[derive(Debug, Clone)]
10414pub struct ModportItem {
10415    pub identifier: Box<Identifier>,
10416    pub colon: Box<Colon>,
10417    pub direction: Box<Direction>,
10418}
10419
10420///
10421/// Type derived for non-terminal ModportList
10422///
10423#[allow(dead_code)]
10424#[derive(Debug, Clone)]
10425pub struct ModportList {
10426    pub modport_group: Box<ModportGroup>,
10427    pub modport_list_list: Vec<ModportListList>,
10428    pub modport_list_opt: Option<ModportListOpt>,
10429}
10430
10431///
10432/// Type derived for non-terminal ModportListList
10433///
10434#[allow(dead_code)]
10435#[derive(Debug, Clone)]
10436pub struct ModportListList {
10437    pub comma: Box<Comma>,
10438    pub modport_group: Box<ModportGroup>,
10439}
10440
10441///
10442/// Type derived for non-terminal ModportListOpt
10443///
10444#[allow(dead_code)]
10445#[derive(Debug, Clone)]
10446pub struct ModportListOpt {
10447    pub comma: Box<Comma>,
10448}
10449
10450///
10451/// Type derived for non-terminal ModportTerm
10452///
10453#[allow(dead_code)]
10454#[derive(Debug, Clone)]
10455pub struct ModportTerm {
10456    pub modport_term: crate::veryl_token::Token, /* modport */
10457}
10458
10459///
10460/// Type derived for non-terminal ModportToken
10461///
10462#[allow(dead_code)]
10463#[derive(Debug, Clone)]
10464pub struct ModportToken {
10465    pub modport_term: crate::veryl_token::Token,
10466    pub comments: Box<Comments>,
10467}
10468
10469///
10470/// Type derived for non-terminal Module
10471///
10472#[allow(dead_code)]
10473#[derive(Debug, Clone)]
10474pub struct Module {
10475    pub module_token: crate::veryl_token::VerylToken,
10476}
10477
10478///
10479/// Type derived for non-terminal ModuleDeclaration
10480///
10481#[allow(dead_code)]
10482#[derive(Debug, Clone)]
10483pub struct ModuleDeclaration {
10484    pub module: Box<Module>,
10485    pub identifier: Box<Identifier>,
10486    pub module_declaration_opt: Option<ModuleDeclarationOpt>,
10487    pub module_declaration_opt0: Option<ModuleDeclarationOpt0>,
10488    pub module_declaration_opt1: Option<ModuleDeclarationOpt1>,
10489    pub module_declaration_opt2: Option<ModuleDeclarationOpt2>,
10490    pub l_brace: Box<LBrace>,
10491    pub module_declaration_list: Vec<ModuleDeclarationList>,
10492    pub r_brace: Box<RBrace>,
10493}
10494
10495///
10496/// Type derived for non-terminal ModuleDeclarationList
10497///
10498#[allow(dead_code)]
10499#[derive(Debug, Clone)]
10500pub struct ModuleDeclarationList {
10501    pub module_group: Box<ModuleGroup>,
10502}
10503
10504///
10505/// Type derived for non-terminal ModuleDeclarationOpt
10506///
10507#[allow(dead_code)]
10508#[derive(Debug, Clone)]
10509pub struct ModuleDeclarationOpt {
10510    pub with_generic_parameter: Box<WithGenericParameter>,
10511}
10512
10513///
10514/// Type derived for non-terminal ModuleDeclarationOpt0
10515///
10516#[allow(dead_code)]
10517#[derive(Debug, Clone)]
10518pub struct ModuleDeclarationOpt0 {
10519    pub r#for: Box<For>,
10520    pub scoped_identifier: Box<ScopedIdentifier>,
10521}
10522
10523///
10524/// Type derived for non-terminal ModuleDeclarationOpt1
10525///
10526#[allow(dead_code)]
10527#[derive(Debug, Clone)]
10528pub struct ModuleDeclarationOpt1 {
10529    pub with_parameter: Box<WithParameter>,
10530}
10531
10532///
10533/// Type derived for non-terminal ModuleDeclarationOpt2
10534///
10535#[allow(dead_code)]
10536#[derive(Debug, Clone)]
10537pub struct ModuleDeclarationOpt2 {
10538    pub port_declaration: Box<PortDeclaration>,
10539}
10540
10541///
10542/// Type derived for non-terminal ModuleGroup
10543///
10544#[allow(dead_code)]
10545#[derive(Debug, Clone)]
10546pub struct ModuleGroup {
10547    pub module_group_list: Vec<ModuleGroupList>,
10548    pub module_group_group: Box<ModuleGroupGroup>,
10549}
10550
10551///
10552/// Type derived for non-terminal ModuleGroupGroup
10553///
10554#[allow(dead_code)]
10555#[derive(Debug, Clone)]
10556pub enum ModuleGroupGroup {
10557    LBraceModuleGroupGroupListRBrace(ModuleGroupGroupLBraceModuleGroupGroupListRBrace),
10558    ModuleItem(ModuleGroupGroupModuleItem),
10559}
10560
10561///
10562/// Type derived for non-terminal ModuleGroupGroupList
10563///
10564#[allow(dead_code)]
10565#[derive(Debug, Clone)]
10566pub struct ModuleGroupGroupList {
10567    pub module_group: Box<ModuleGroup>,
10568}
10569
10570///
10571/// Type derived for non-terminal ModuleGroupList
10572///
10573#[allow(dead_code)]
10574#[derive(Debug, Clone)]
10575pub struct ModuleGroupList {
10576    pub attribute: Box<Attribute>,
10577}
10578
10579///
10580/// Type derived for non-terminal ModuleItem
10581///
10582#[allow(dead_code)]
10583#[derive(Debug, Clone)]
10584pub struct ModuleItem {
10585    pub generate_item: Box<GenerateItem>,
10586}
10587
10588///
10589/// Type derived for non-terminal ModuleTerm
10590///
10591#[allow(dead_code)]
10592#[derive(Debug, Clone)]
10593pub struct ModuleTerm {
10594    pub module_term: crate::veryl_token::Token, /* module */
10595}
10596
10597///
10598/// Type derived for non-terminal ModuleToken
10599///
10600#[allow(dead_code)]
10601#[derive(Debug, Clone)]
10602pub struct ModuleToken {
10603    pub module_term: crate::veryl_token::Token,
10604    pub comments: Box<Comments>,
10605}
10606
10607///
10608/// Type derived for non-terminal Msb
10609///
10610#[allow(dead_code)]
10611#[derive(Debug, Clone)]
10612pub struct Msb {
10613    pub msb_token: crate::veryl_token::VerylToken,
10614}
10615
10616///
10617/// Type derived for non-terminal MsbTerm
10618///
10619#[allow(dead_code)]
10620#[derive(Debug, Clone)]
10621pub struct MsbTerm {
10622    pub msb_term: crate::veryl_token::Token, /* msb */
10623}
10624
10625///
10626/// Type derived for non-terminal MsbToken
10627///
10628#[allow(dead_code)]
10629#[derive(Debug, Clone)]
10630pub struct MsbToken {
10631    pub msb_term: crate::veryl_token::Token,
10632    pub comments: Box<Comments>,
10633}
10634
10635///
10636/// Type derived for non-terminal Number
10637///
10638#[allow(dead_code)]
10639#[derive(Debug, Clone)]
10640pub enum Number {
10641    IntegralNumber(NumberIntegralNumber),
10642    RealNumber(NumberRealNumber),
10643}
10644
10645///
10646/// Type derived for non-terminal Operator01
10647///
10648#[allow(dead_code)]
10649#[derive(Debug, Clone)]
10650pub struct Operator01 {
10651    pub operator01_token: crate::veryl_token::VerylToken,
10652}
10653
10654///
10655/// Type derived for non-terminal Operator01Term
10656///
10657#[allow(dead_code)]
10658#[derive(Debug, Clone)]
10659pub struct Operator01Term {
10660    pub operator01_term: crate::veryl_token::Token, /* \|\||&& */
10661}
10662
10663///
10664/// Type derived for non-terminal Operator01Token
10665///
10666#[allow(dead_code)]
10667#[derive(Debug, Clone)]
10668pub struct Operator01Token {
10669    pub operator01_term: crate::veryl_token::Token,
10670    pub comments: Box<Comments>,
10671}
10672
10673///
10674/// Type derived for non-terminal Operator02
10675///
10676#[allow(dead_code)]
10677#[derive(Debug, Clone)]
10678pub struct Operator02 {
10679    pub operator02_token: crate::veryl_token::VerylToken,
10680}
10681
10682///
10683/// Type derived for non-terminal Operator02Term
10684///
10685#[allow(dead_code)]
10686#[derive(Debug, Clone)]
10687pub struct Operator02Term {
10688    pub operator02_term: crate::veryl_token::Token, /* <<<|>>>|<<|>>|==\?|!=\?|==|!=|<=|>=|<:|>: */
10689}
10690
10691///
10692/// Type derived for non-terminal Operator02Token
10693///
10694#[allow(dead_code)]
10695#[derive(Debug, Clone)]
10696pub struct Operator02Token {
10697    pub operator02_term: crate::veryl_token::Token,
10698    pub comments: Box<Comments>,
10699}
10700
10701///
10702/// Type derived for non-terminal Operator03
10703///
10704#[allow(dead_code)]
10705#[derive(Debug, Clone)]
10706pub struct Operator03 {
10707    pub operator03_token: crate::veryl_token::VerylToken,
10708}
10709
10710///
10711/// Type derived for non-terminal Operator03Term
10712///
10713#[allow(dead_code)]
10714#[derive(Debug, Clone)]
10715pub struct Operator03Term {
10716    pub operator03_term: crate::veryl_token::Token, /* \| */
10717}
10718
10719///
10720/// Type derived for non-terminal Operator03Token
10721///
10722#[allow(dead_code)]
10723#[derive(Debug, Clone)]
10724pub struct Operator03Token {
10725    pub operator03_term: crate::veryl_token::Token,
10726    pub comments: Box<Comments>,
10727}
10728
10729///
10730/// Type derived for non-terminal Operator04
10731///
10732#[allow(dead_code)]
10733#[derive(Debug, Clone)]
10734pub struct Operator04 {
10735    pub operator04_token: crate::veryl_token::VerylToken,
10736}
10737
10738///
10739/// Type derived for non-terminal Operator04Term
10740///
10741#[allow(dead_code)]
10742#[derive(Debug, Clone)]
10743pub struct Operator04Term {
10744    pub operator04_term: crate::veryl_token::Token, /* \^|~\^ */
10745}
10746
10747///
10748/// Type derived for non-terminal Operator04Token
10749///
10750#[allow(dead_code)]
10751#[derive(Debug, Clone)]
10752pub struct Operator04Token {
10753    pub operator04_term: crate::veryl_token::Token,
10754    pub comments: Box<Comments>,
10755}
10756
10757///
10758/// Type derived for non-terminal Operator05
10759///
10760#[allow(dead_code)]
10761#[derive(Debug, Clone)]
10762pub struct Operator05 {
10763    pub operator05_token: crate::veryl_token::VerylToken,
10764}
10765
10766///
10767/// Type derived for non-terminal Operator05Term
10768///
10769#[allow(dead_code)]
10770#[derive(Debug, Clone)]
10771pub struct Operator05Term {
10772    pub operator05_term: crate::veryl_token::Token, /* & */
10773}
10774
10775///
10776/// Type derived for non-terminal Operator05Token
10777///
10778#[allow(dead_code)]
10779#[derive(Debug, Clone)]
10780pub struct Operator05Token {
10781    pub operator05_term: crate::veryl_token::Token,
10782    pub comments: Box<Comments>,
10783}
10784
10785///
10786/// Type derived for non-terminal Operator06
10787///
10788#[allow(dead_code)]
10789#[derive(Debug, Clone)]
10790pub struct Operator06 {
10791    pub operator06_token: crate::veryl_token::VerylToken,
10792}
10793
10794///
10795/// Type derived for non-terminal Operator06Term
10796///
10797#[allow(dead_code)]
10798#[derive(Debug, Clone)]
10799pub struct Operator06Term {
10800    pub operator06_term: crate::veryl_token::Token, /* \+|- */
10801}
10802
10803///
10804/// Type derived for non-terminal Operator06Token
10805///
10806#[allow(dead_code)]
10807#[derive(Debug, Clone)]
10808pub struct Operator06Token {
10809    pub operator06_term: crate::veryl_token::Token,
10810    pub comments: Box<Comments>,
10811}
10812
10813///
10814/// Type derived for non-terminal Operator07
10815///
10816#[allow(dead_code)]
10817#[derive(Debug, Clone)]
10818pub struct Operator07 {
10819    pub operator07_token: crate::veryl_token::VerylToken,
10820}
10821
10822///
10823/// Type derived for non-terminal Operator07Term
10824///
10825#[allow(dead_code)]
10826#[derive(Debug, Clone)]
10827pub struct Operator07Term {
10828    pub operator07_term: crate::veryl_token::Token, /* /|% */
10829}
10830
10831///
10832/// Type derived for non-terminal Operator07Token
10833///
10834#[allow(dead_code)]
10835#[derive(Debug, Clone)]
10836pub struct Operator07Token {
10837    pub operator07_term: crate::veryl_token::Token,
10838    pub comments: Box<Comments>,
10839}
10840
10841///
10842/// Type derived for non-terminal Operator08
10843///
10844#[allow(dead_code)]
10845#[derive(Debug, Clone)]
10846pub struct Operator08 {
10847    pub operator08_token: crate::veryl_token::VerylToken,
10848}
10849
10850///
10851/// Type derived for non-terminal Operator08Term
10852///
10853#[allow(dead_code)]
10854#[derive(Debug, Clone)]
10855pub struct Operator08Term {
10856    pub operator08_term: crate::veryl_token::Token, /* \*\* */
10857}
10858
10859///
10860/// Type derived for non-terminal Operator08Token
10861///
10862#[allow(dead_code)]
10863#[derive(Debug, Clone)]
10864pub struct Operator08Token {
10865    pub operator08_term: crate::veryl_token::Token,
10866    pub comments: Box<Comments>,
10867}
10868
10869///
10870/// Type derived for non-terminal Output
10871///
10872#[allow(dead_code)]
10873#[derive(Debug, Clone)]
10874pub struct Output {
10875    pub output_token: crate::veryl_token::VerylToken,
10876}
10877
10878///
10879/// Type derived for non-terminal OutputTerm
10880///
10881#[allow(dead_code)]
10882#[derive(Debug, Clone)]
10883pub struct OutputTerm {
10884    pub output_term: crate::veryl_token::Token, /* output */
10885}
10886
10887///
10888/// Type derived for non-terminal OutputToken
10889///
10890#[allow(dead_code)]
10891#[derive(Debug, Clone)]
10892pub struct OutputToken {
10893    pub output_term: crate::veryl_token::Token,
10894    pub comments: Box<Comments>,
10895}
10896
10897///
10898/// Type derived for non-terminal Outside
10899///
10900#[allow(dead_code)]
10901#[derive(Debug, Clone)]
10902pub struct Outside {
10903    pub outside_token: crate::veryl_token::VerylToken,
10904}
10905
10906///
10907/// Type derived for non-terminal OutsideExpression
10908///
10909#[allow(dead_code)]
10910#[derive(Debug, Clone)]
10911pub struct OutsideExpression {
10912    pub outside: Box<Outside>,
10913    pub expression: Box<Expression>,
10914    pub l_brace: Box<LBrace>,
10915    pub range_list: Box<RangeList>,
10916    pub r_brace: Box<RBrace>,
10917}
10918
10919///
10920/// Type derived for non-terminal OutsideTerm
10921///
10922#[allow(dead_code)]
10923#[derive(Debug, Clone)]
10924pub struct OutsideTerm {
10925    pub outside_term: crate::veryl_token::Token, /* outside */
10926}
10927
10928///
10929/// Type derived for non-terminal OutsideToken
10930///
10931#[allow(dead_code)]
10932#[derive(Debug, Clone)]
10933pub struct OutsideToken {
10934    pub outside_term: crate::veryl_token::Token,
10935    pub comments: Box<Comments>,
10936}
10937
10938///
10939/// Type derived for non-terminal P16
10940///
10941#[allow(dead_code)]
10942#[derive(Debug, Clone)]
10943pub struct P16 {
10944    pub p16_token: crate::veryl_token::VerylToken,
10945}
10946
10947///
10948/// Type derived for non-terminal P16Term
10949///
10950#[allow(dead_code)]
10951#[derive(Debug, Clone)]
10952pub struct P16Term {
10953    pub p16_term: crate::veryl_token::Token, /* p16 */
10954}
10955
10956///
10957/// Type derived for non-terminal P16Token
10958///
10959#[allow(dead_code)]
10960#[derive(Debug, Clone)]
10961pub struct P16Token {
10962    pub p16_term: crate::veryl_token::Token,
10963    pub comments: Box<Comments>,
10964}
10965
10966///
10967/// Type derived for non-terminal P32
10968///
10969#[allow(dead_code)]
10970#[derive(Debug, Clone)]
10971pub struct P32 {
10972    pub p32_token: crate::veryl_token::VerylToken,
10973}
10974
10975///
10976/// Type derived for non-terminal P32Term
10977///
10978#[allow(dead_code)]
10979#[derive(Debug, Clone)]
10980pub struct P32Term {
10981    pub p32_term: crate::veryl_token::Token, /* p32 */
10982}
10983
10984///
10985/// Type derived for non-terminal P32Token
10986///
10987#[allow(dead_code)]
10988#[derive(Debug, Clone)]
10989pub struct P32Token {
10990    pub p32_term: crate::veryl_token::Token,
10991    pub comments: Box<Comments>,
10992}
10993
10994///
10995/// Type derived for non-terminal P64
10996///
10997#[allow(dead_code)]
10998#[derive(Debug, Clone)]
10999pub struct P64 {
11000    pub p64_token: crate::veryl_token::VerylToken,
11001}
11002
11003///
11004/// Type derived for non-terminal P64Term
11005///
11006#[allow(dead_code)]
11007#[derive(Debug, Clone)]
11008pub struct P64Term {
11009    pub p64_term: crate::veryl_token::Token, /* p64 */
11010}
11011
11012///
11013/// Type derived for non-terminal P64Token
11014///
11015#[allow(dead_code)]
11016#[derive(Debug, Clone)]
11017pub struct P64Token {
11018    pub p64_term: crate::veryl_token::Token,
11019    pub comments: Box<Comments>,
11020}
11021
11022///
11023/// Type derived for non-terminal P8
11024///
11025#[allow(dead_code)]
11026#[derive(Debug, Clone)]
11027pub struct P8 {
11028    pub p8_token: crate::veryl_token::VerylToken,
11029}
11030
11031///
11032/// Type derived for non-terminal P8Term
11033///
11034#[allow(dead_code)]
11035#[derive(Debug, Clone)]
11036pub struct P8Term {
11037    pub p8_term: crate::veryl_token::Token, /* p8 */
11038}
11039
11040///
11041/// Type derived for non-terminal P8Token
11042///
11043#[allow(dead_code)]
11044#[derive(Debug, Clone)]
11045pub struct P8Token {
11046    pub p8_term: crate::veryl_token::Token,
11047    pub comments: Box<Comments>,
11048}
11049
11050///
11051/// Type derived for non-terminal Package
11052///
11053#[allow(dead_code)]
11054#[derive(Debug, Clone)]
11055pub struct Package {
11056    pub package_token: crate::veryl_token::VerylToken,
11057}
11058
11059///
11060/// Type derived for non-terminal PackageDeclaration
11061///
11062#[allow(dead_code)]
11063#[derive(Debug, Clone)]
11064pub struct PackageDeclaration {
11065    pub package: Box<Package>,
11066    pub identifier: Box<Identifier>,
11067    pub package_declaration_opt: Option<PackageDeclarationOpt>,
11068    pub package_declaration_opt0: Option<PackageDeclarationOpt0>,
11069    pub l_brace: Box<LBrace>,
11070    pub package_declaration_list: Vec<PackageDeclarationList>,
11071    pub r_brace: Box<RBrace>,
11072}
11073
11074///
11075/// Type derived for non-terminal PackageDeclarationList
11076///
11077#[allow(dead_code)]
11078#[derive(Debug, Clone)]
11079pub struct PackageDeclarationList {
11080    pub package_group: Box<PackageGroup>,
11081}
11082
11083///
11084/// Type derived for non-terminal PackageDeclarationOpt
11085///
11086#[allow(dead_code)]
11087#[derive(Debug, Clone)]
11088pub struct PackageDeclarationOpt {
11089    pub with_generic_parameter: Box<WithGenericParameter>,
11090}
11091
11092///
11093/// Type derived for non-terminal PackageDeclarationOpt0
11094///
11095#[allow(dead_code)]
11096#[derive(Debug, Clone)]
11097pub struct PackageDeclarationOpt0 {
11098    pub r#for: Box<For>,
11099    pub scoped_identifier: Box<ScopedIdentifier>,
11100}
11101
11102///
11103/// Type derived for non-terminal PackageGroup
11104///
11105#[allow(dead_code)]
11106#[derive(Debug, Clone)]
11107pub struct PackageGroup {
11108    pub package_group_list: Vec<PackageGroupList>,
11109    pub package_group_group: Box<PackageGroupGroup>,
11110}
11111
11112///
11113/// Type derived for non-terminal PackageGroupGroup
11114///
11115#[allow(dead_code)]
11116#[derive(Debug, Clone)]
11117pub enum PackageGroupGroup {
11118    LBracePackageGroupGroupListRBrace(PackageGroupGroupLBracePackageGroupGroupListRBrace),
11119    PackageItem(PackageGroupGroupPackageItem),
11120}
11121
11122///
11123/// Type derived for non-terminal PackageGroupGroupList
11124///
11125#[allow(dead_code)]
11126#[derive(Debug, Clone)]
11127pub struct PackageGroupGroupList {
11128    pub package_group: Box<PackageGroup>,
11129}
11130
11131///
11132/// Type derived for non-terminal PackageGroupList
11133///
11134#[allow(dead_code)]
11135#[derive(Debug, Clone)]
11136pub struct PackageGroupList {
11137    pub attribute: Box<Attribute>,
11138}
11139
11140///
11141/// Type derived for non-terminal PackageItem
11142///
11143#[allow(dead_code)]
11144#[derive(Debug, Clone)]
11145pub enum PackageItem {
11146    ConstDeclaration(PackageItemConstDeclaration),
11147    TypeDefDeclaration(PackageItemTypeDefDeclaration),
11148    EnumDeclaration(PackageItemEnumDeclaration),
11149    StructUnionDeclaration(PackageItemStructUnionDeclaration),
11150    FunctionDeclaration(PackageItemFunctionDeclaration),
11151    ImportDeclaration(PackageItemImportDeclaration),
11152    AliasDeclaration(PackageItemAliasDeclaration),
11153    EmbedDeclaration(PackageItemEmbedDeclaration),
11154}
11155
11156///
11157/// Type derived for non-terminal PackageTerm
11158///
11159#[allow(dead_code)]
11160#[derive(Debug, Clone)]
11161pub struct PackageTerm {
11162    pub package_term: crate::veryl_token::Token, /* package */
11163}
11164
11165///
11166/// Type derived for non-terminal PackageToken
11167///
11168#[allow(dead_code)]
11169#[derive(Debug, Clone)]
11170pub struct PackageToken {
11171    pub package_term: crate::veryl_token::Token,
11172    pub comments: Box<Comments>,
11173}
11174
11175///
11176/// Type derived for non-terminal Param
11177///
11178#[allow(dead_code)]
11179#[derive(Debug, Clone)]
11180pub struct Param {
11181    pub param_token: crate::veryl_token::VerylToken,
11182}
11183
11184///
11185/// Type derived for non-terminal ParamTerm
11186///
11187#[allow(dead_code)]
11188#[derive(Debug, Clone)]
11189pub struct ParamTerm {
11190    pub param_term: crate::veryl_token::Token, /* param */
11191}
11192
11193///
11194/// Type derived for non-terminal ParamToken
11195///
11196#[allow(dead_code)]
11197#[derive(Debug, Clone)]
11198pub struct ParamToken {
11199    pub param_term: crate::veryl_token::Token,
11200    pub comments: Box<Comments>,
11201}
11202
11203///
11204/// Type derived for non-terminal PlusColon
11205///
11206#[allow(dead_code)]
11207#[derive(Debug, Clone)]
11208pub struct PlusColon {
11209    pub plus_colon_token: crate::veryl_token::VerylToken,
11210}
11211
11212///
11213/// Type derived for non-terminal PlusColonTerm
11214///
11215#[allow(dead_code)]
11216#[derive(Debug, Clone)]
11217pub struct PlusColonTerm {
11218    pub plus_colon_term: crate::veryl_token::Token, /* +: */
11219}
11220
11221///
11222/// Type derived for non-terminal PlusColonToken
11223///
11224#[allow(dead_code)]
11225#[derive(Debug, Clone)]
11226pub struct PlusColonToken {
11227    pub plus_colon_term: crate::veryl_token::Token,
11228    pub comments: Box<Comments>,
11229}
11230
11231///
11232/// Type derived for non-terminal PortDeclaration
11233///
11234#[allow(dead_code)]
11235#[derive(Debug, Clone)]
11236pub struct PortDeclaration {
11237    pub l_paren: Box<LParen>,
11238    pub port_declaration_opt: Option<PortDeclarationOpt>,
11239    pub r_paren: Box<RParen>,
11240}
11241
11242///
11243/// Type derived for non-terminal PortDeclarationGroup
11244///
11245#[allow(dead_code)]
11246#[derive(Debug, Clone)]
11247pub struct PortDeclarationGroup {
11248    pub port_declaration_group_list: Vec<PortDeclarationGroupList>,
11249    pub port_declaration_group_group: Box<PortDeclarationGroupGroup>,
11250}
11251
11252///
11253/// Type derived for non-terminal PortDeclarationGroupGroup
11254///
11255#[allow(dead_code)]
11256#[derive(Debug, Clone)]
11257pub enum PortDeclarationGroupGroup {
11258    LBracePortDeclarationListRBrace(PortDeclarationGroupGroupLBracePortDeclarationListRBrace),
11259    PortDeclarationItem(PortDeclarationGroupGroupPortDeclarationItem),
11260}
11261
11262///
11263/// Type derived for non-terminal PortDeclarationGroupList
11264///
11265#[allow(dead_code)]
11266#[derive(Debug, Clone)]
11267pub struct PortDeclarationGroupList {
11268    pub attribute: Box<Attribute>,
11269}
11270
11271///
11272/// Type derived for non-terminal PortDeclarationItem
11273///
11274#[allow(dead_code)]
11275#[derive(Debug, Clone)]
11276pub struct PortDeclarationItem {
11277    pub identifier: Box<Identifier>,
11278    pub colon: Box<Colon>,
11279    pub port_declaration_item_group: Box<PortDeclarationItemGroup>,
11280}
11281
11282///
11283/// Type derived for non-terminal PortDeclarationItemGroup
11284///
11285#[allow(dead_code)]
11286#[derive(Debug, Clone)]
11287pub enum PortDeclarationItemGroup {
11288    PortTypeConcrete(PortDeclarationItemGroupPortTypeConcrete),
11289    PortTypeAbstract(PortDeclarationItemGroupPortTypeAbstract),
11290}
11291
11292///
11293/// Type derived for non-terminal PortDeclarationList
11294///
11295#[allow(dead_code)]
11296#[derive(Debug, Clone)]
11297pub struct PortDeclarationList {
11298    pub port_declaration_group: Box<PortDeclarationGroup>,
11299    pub port_declaration_list_list: Vec<PortDeclarationListList>,
11300    pub port_declaration_list_opt: Option<PortDeclarationListOpt>,
11301}
11302
11303///
11304/// Type derived for non-terminal PortDeclarationListList
11305///
11306#[allow(dead_code)]
11307#[derive(Debug, Clone)]
11308pub struct PortDeclarationListList {
11309    pub comma: Box<Comma>,
11310    pub port_declaration_group: Box<PortDeclarationGroup>,
11311}
11312
11313///
11314/// Type derived for non-terminal PortDeclarationListOpt
11315///
11316#[allow(dead_code)]
11317#[derive(Debug, Clone)]
11318pub struct PortDeclarationListOpt {
11319    pub comma: Box<Comma>,
11320}
11321
11322///
11323/// Type derived for non-terminal PortDeclarationOpt
11324///
11325#[allow(dead_code)]
11326#[derive(Debug, Clone)]
11327pub struct PortDeclarationOpt {
11328    pub port_declaration_list: Box<PortDeclarationList>,
11329}
11330
11331///
11332/// Type derived for non-terminal PortDefaultValue
11333///
11334#[allow(dead_code)]
11335#[derive(Debug, Clone)]
11336pub struct PortDefaultValue {
11337    pub expression: Box<Expression>,
11338}
11339
11340///
11341/// Type derived for non-terminal PortTypeAbstract
11342///
11343#[allow(dead_code)]
11344#[derive(Debug, Clone)]
11345pub struct PortTypeAbstract {
11346    pub port_type_abstract_opt: Option<PortTypeAbstractOpt>,
11347    pub interface: Box<Interface>,
11348    pub port_type_abstract_opt0: Option<PortTypeAbstractOpt0>,
11349    pub port_type_abstract_opt1: Option<PortTypeAbstractOpt1>,
11350}
11351
11352///
11353/// Type derived for non-terminal PortTypeAbstractOpt
11354///
11355#[allow(dead_code)]
11356#[derive(Debug, Clone)]
11357pub struct PortTypeAbstractOpt {
11358    pub clock_domain: Box<ClockDomain>,
11359}
11360
11361///
11362/// Type derived for non-terminal PortTypeAbstractOpt0
11363///
11364#[allow(dead_code)]
11365#[derive(Debug, Clone)]
11366pub struct PortTypeAbstractOpt0 {
11367    pub colon_colon: Box<ColonColon>,
11368    pub identifier: Box<Identifier>,
11369}
11370
11371///
11372/// Type derived for non-terminal PortTypeAbstractOpt1
11373///
11374#[allow(dead_code)]
11375#[derive(Debug, Clone)]
11376pub struct PortTypeAbstractOpt1 {
11377    pub array: Box<Array>,
11378}
11379
11380///
11381/// Type derived for non-terminal PortTypeConcrete
11382///
11383#[allow(dead_code)]
11384#[derive(Debug, Clone)]
11385pub struct PortTypeConcrete {
11386    pub direction: Box<Direction>,
11387    pub port_type_concrete_opt: Option<PortTypeConcreteOpt>,
11388    pub array_type: Box<ArrayType>,
11389    pub port_type_concrete_opt0: Option<PortTypeConcreteOpt0>,
11390}
11391
11392///
11393/// Type derived for non-terminal PortTypeConcreteOpt
11394///
11395#[allow(dead_code)]
11396#[derive(Debug, Clone)]
11397pub struct PortTypeConcreteOpt {
11398    pub clock_domain: Box<ClockDomain>,
11399}
11400
11401///
11402/// Type derived for non-terminal PortTypeConcreteOpt0
11403///
11404#[allow(dead_code)]
11405#[derive(Debug, Clone)]
11406pub struct PortTypeConcreteOpt0 {
11407    pub equ: Box<Equ>,
11408    pub port_default_value: Box<PortDefaultValue>,
11409}
11410
11411///
11412/// Type derived for non-terminal Proto
11413///
11414#[allow(dead_code)]
11415#[derive(Debug, Clone)]
11416pub struct Proto {
11417    pub proto_token: crate::veryl_token::VerylToken,
11418}
11419
11420///
11421/// Type derived for non-terminal ProtoAliasDeclaration
11422///
11423#[allow(dead_code)]
11424#[derive(Debug, Clone)]
11425pub struct ProtoAliasDeclaration {
11426    pub alias: Box<Alias>,
11427    pub proto_alias_declaration_group: Box<ProtoAliasDeclarationGroup>,
11428    pub identifier: Box<Identifier>,
11429    pub colon: Box<Colon>,
11430    pub scoped_identifier: Box<ScopedIdentifier>,
11431    pub semicolon: Box<Semicolon>,
11432}
11433
11434///
11435/// Type derived for non-terminal ProtoAliasDeclarationGroup
11436///
11437#[allow(dead_code)]
11438#[derive(Debug, Clone)]
11439pub enum ProtoAliasDeclarationGroup {
11440    Module(ProtoAliasDeclarationGroupModule),
11441    Interface(ProtoAliasDeclarationGroupInterface),
11442    Package(ProtoAliasDeclarationGroupPackage),
11443}
11444
11445///
11446/// Type derived for non-terminal ProtoConstDeclaration
11447///
11448#[allow(dead_code)]
11449#[derive(Debug, Clone)]
11450pub struct ProtoConstDeclaration {
11451    pub r#const: Box<Const>,
11452    pub identifier: Box<Identifier>,
11453    pub colon: Box<Colon>,
11454    pub proto_const_declaration_group: Box<ProtoConstDeclarationGroup>,
11455    pub semicolon: Box<Semicolon>,
11456}
11457
11458///
11459/// Type derived for non-terminal ProtoConstDeclarationGroup
11460///
11461#[allow(dead_code)]
11462#[derive(Debug, Clone)]
11463pub enum ProtoConstDeclarationGroup {
11464    ArrayType(ProtoConstDeclarationGroupArrayType),
11465    Type(ProtoConstDeclarationGroupType),
11466}
11467
11468///
11469/// Type derived for non-terminal ProtoDeclaration
11470///
11471#[allow(dead_code)]
11472#[derive(Debug, Clone)]
11473pub struct ProtoDeclaration {
11474    pub proto: Box<Proto>,
11475    pub proto_declaration_group: Box<ProtoDeclarationGroup>,
11476}
11477
11478///
11479/// Type derived for non-terminal ProtoDeclarationGroup
11480///
11481#[allow(dead_code)]
11482#[derive(Debug, Clone)]
11483pub enum ProtoDeclarationGroup {
11484    ProtoModuleDeclaration(ProtoDeclarationGroupProtoModuleDeclaration),
11485    ProtoInterfaceDeclaration(ProtoDeclarationGroupProtoInterfaceDeclaration),
11486    ProtoPackageDeclaration(ProtoDeclarationGroupProtoPackageDeclaration),
11487}
11488
11489///
11490/// Type derived for non-terminal ProtoFunctionDeclaration
11491///
11492#[allow(dead_code)]
11493#[derive(Debug, Clone)]
11494pub struct ProtoFunctionDeclaration {
11495    pub function: Box<Function>,
11496    pub identifier: Box<Identifier>,
11497    pub proto_function_declaration_opt: Option<ProtoFunctionDeclarationOpt>,
11498    pub proto_function_declaration_opt0: Option<ProtoFunctionDeclarationOpt0>,
11499    pub proto_function_declaration_opt1: Option<ProtoFunctionDeclarationOpt1>,
11500    pub semicolon: Box<Semicolon>,
11501}
11502
11503///
11504/// Type derived for non-terminal ProtoFunctionDeclarationOpt
11505///
11506#[allow(dead_code)]
11507#[derive(Debug, Clone)]
11508pub struct ProtoFunctionDeclarationOpt {
11509    pub with_generic_parameter: Box<WithGenericParameter>,
11510}
11511
11512///
11513/// Type derived for non-terminal ProtoFunctionDeclarationOpt0
11514///
11515#[allow(dead_code)]
11516#[derive(Debug, Clone)]
11517pub struct ProtoFunctionDeclarationOpt0 {
11518    pub port_declaration: Box<PortDeclaration>,
11519}
11520
11521///
11522/// Type derived for non-terminal ProtoFunctionDeclarationOpt1
11523///
11524#[allow(dead_code)]
11525#[derive(Debug, Clone)]
11526pub struct ProtoFunctionDeclarationOpt1 {
11527    pub minus_g_t: Box<MinusGT>,
11528    pub scalar_type: Box<ScalarType>,
11529}
11530
11531///
11532/// Type derived for non-terminal ProtoInterfaceDeclaration
11533///
11534#[allow(dead_code)]
11535#[derive(Debug, Clone)]
11536pub struct ProtoInterfaceDeclaration {
11537    pub interface: Box<Interface>,
11538    pub identifier: Box<Identifier>,
11539    pub proto_interface_declaration_opt: Option<ProtoInterfaceDeclarationOpt>,
11540    pub l_brace: Box<LBrace>,
11541    pub proto_interface_declaration_list: Vec<ProtoInterfaceDeclarationList>,
11542    pub r_brace: Box<RBrace>,
11543}
11544
11545///
11546/// Type derived for non-terminal ProtoInterfaceDeclarationList
11547///
11548#[allow(dead_code)]
11549#[derive(Debug, Clone)]
11550pub struct ProtoInterfaceDeclarationList {
11551    pub proto_interface_item: Box<ProtoInterfaceItem>,
11552}
11553
11554///
11555/// Type derived for non-terminal ProtoInterfaceDeclarationOpt
11556///
11557#[allow(dead_code)]
11558#[derive(Debug, Clone)]
11559pub struct ProtoInterfaceDeclarationOpt {
11560    pub with_parameter: Box<WithParameter>,
11561}
11562
11563///
11564/// Type derived for non-terminal ProtoInterfaceItem
11565///
11566#[allow(dead_code)]
11567#[derive(Debug, Clone)]
11568pub enum ProtoInterfaceItem {
11569    VarDeclaration(ProtoInterfaceItemVarDeclaration),
11570    ProtoConstDeclaration(ProtoInterfaceItemProtoConstDeclaration),
11571    ProtoFunctionDeclaration(ProtoInterfaceItemProtoFunctionDeclaration),
11572    ProtoTypeDefDeclaration(ProtoInterfaceItemProtoTypeDefDeclaration),
11573    ProtoAliasDeclaration(ProtoInterfaceItemProtoAliasDeclaration),
11574    ModportDeclaration(ProtoInterfaceItemModportDeclaration),
11575    ImportDeclaration(ProtoInterfaceItemImportDeclaration),
11576}
11577
11578///
11579/// Type derived for non-terminal ProtoModuleDeclaration
11580///
11581#[allow(dead_code)]
11582#[derive(Debug, Clone)]
11583pub struct ProtoModuleDeclaration {
11584    pub module: Box<Module>,
11585    pub identifier: Box<Identifier>,
11586    pub proto_module_declaration_opt: Option<ProtoModuleDeclarationOpt>,
11587    pub proto_module_declaration_opt0: Option<ProtoModuleDeclarationOpt0>,
11588    pub semicolon: Box<Semicolon>,
11589}
11590
11591///
11592/// Type derived for non-terminal ProtoModuleDeclarationOpt
11593///
11594#[allow(dead_code)]
11595#[derive(Debug, Clone)]
11596pub struct ProtoModuleDeclarationOpt {
11597    pub with_parameter: Box<WithParameter>,
11598}
11599
11600///
11601/// Type derived for non-terminal ProtoModuleDeclarationOpt0
11602///
11603#[allow(dead_code)]
11604#[derive(Debug, Clone)]
11605pub struct ProtoModuleDeclarationOpt0 {
11606    pub port_declaration: Box<PortDeclaration>,
11607}
11608
11609///
11610/// Type derived for non-terminal ProtoPacakgeItem
11611///
11612#[allow(dead_code)]
11613#[derive(Debug, Clone)]
11614pub enum ProtoPacakgeItem {
11615    ProtoConstDeclaration(ProtoPacakgeItemProtoConstDeclaration),
11616    ProtoTypeDefDeclaration(ProtoPacakgeItemProtoTypeDefDeclaration),
11617    EnumDeclaration(ProtoPacakgeItemEnumDeclaration),
11618    StructUnionDeclaration(ProtoPacakgeItemStructUnionDeclaration),
11619    ProtoFunctionDeclaration(ProtoPacakgeItemProtoFunctionDeclaration),
11620    ProtoAliasDeclaration(ProtoPacakgeItemProtoAliasDeclaration),
11621    ImportDeclaration(ProtoPacakgeItemImportDeclaration),
11622}
11623
11624///
11625/// Type derived for non-terminal ProtoPackageDeclaration
11626///
11627#[allow(dead_code)]
11628#[derive(Debug, Clone)]
11629pub struct ProtoPackageDeclaration {
11630    pub package: Box<Package>,
11631    pub identifier: Box<Identifier>,
11632    pub l_brace: Box<LBrace>,
11633    pub proto_package_declaration_list: Vec<ProtoPackageDeclarationList>,
11634    pub r_brace: Box<RBrace>,
11635}
11636
11637///
11638/// Type derived for non-terminal ProtoPackageDeclarationList
11639///
11640#[allow(dead_code)]
11641#[derive(Debug, Clone)]
11642pub struct ProtoPackageDeclarationList {
11643    pub proto_pacakge_item: Box<ProtoPacakgeItem>,
11644}
11645
11646///
11647/// Type derived for non-terminal ProtoTerm
11648///
11649#[allow(dead_code)]
11650#[derive(Debug, Clone)]
11651pub struct ProtoTerm {
11652    pub proto_term: crate::veryl_token::Token, /* proto */
11653}
11654
11655///
11656/// Type derived for non-terminal ProtoToken
11657///
11658#[allow(dead_code)]
11659#[derive(Debug, Clone)]
11660pub struct ProtoToken {
11661    pub proto_term: crate::veryl_token::Token,
11662    pub comments: Box<Comments>,
11663}
11664
11665///
11666/// Type derived for non-terminal ProtoTypeDefDeclaration
11667///
11668#[allow(dead_code)]
11669#[derive(Debug, Clone)]
11670pub struct ProtoTypeDefDeclaration {
11671    pub r#type: Box<Type>,
11672    pub identifier: Box<Identifier>,
11673    pub proto_type_def_declaration_opt: Option<ProtoTypeDefDeclarationOpt>,
11674    pub semicolon: Box<Semicolon>,
11675}
11676
11677///
11678/// Type derived for non-terminal ProtoTypeDefDeclarationOpt
11679///
11680#[allow(dead_code)]
11681#[derive(Debug, Clone)]
11682pub struct ProtoTypeDefDeclarationOpt {
11683    pub equ: Box<Equ>,
11684    pub array_type: Box<ArrayType>,
11685}
11686
11687///
11688/// Type derived for non-terminal Pub
11689///
11690#[allow(dead_code)]
11691#[derive(Debug, Clone)]
11692pub struct Pub {
11693    pub pub_token: crate::veryl_token::VerylToken,
11694}
11695
11696///
11697/// Type derived for non-terminal PubTerm
11698///
11699#[allow(dead_code)]
11700#[derive(Debug, Clone)]
11701pub struct PubTerm {
11702    pub pub_term: crate::veryl_token::Token, /* pub */
11703}
11704
11705///
11706/// Type derived for non-terminal PubToken
11707///
11708#[allow(dead_code)]
11709#[derive(Debug, Clone)]
11710pub struct PubToken {
11711    pub pub_term: crate::veryl_token::Token,
11712    pub comments: Box<Comments>,
11713}
11714
11715///
11716/// Type derived for non-terminal PublicDescriptionItem
11717///
11718#[allow(dead_code)]
11719#[derive(Debug, Clone)]
11720pub enum PublicDescriptionItem {
11721    ModuleDeclaration(PublicDescriptionItemModuleDeclaration),
11722    InterfaceDeclaration(PublicDescriptionItemInterfaceDeclaration),
11723    PackageDeclaration(PublicDescriptionItemPackageDeclaration),
11724    AliasDeclaration(PublicDescriptionItemAliasDeclaration),
11725    ProtoDeclaration(PublicDescriptionItemProtoDeclaration),
11726    FunctionDeclaration(PublicDescriptionItemFunctionDeclaration),
11727}
11728
11729///
11730/// Type derived for non-terminal Question
11731///
11732#[allow(dead_code)]
11733#[derive(Debug, Clone)]
11734pub struct Question {
11735    pub question_token: crate::veryl_token::VerylToken,
11736}
11737
11738///
11739/// Type derived for non-terminal QuestionTerm
11740///
11741#[allow(dead_code)]
11742#[derive(Debug, Clone)]
11743pub struct QuestionTerm {
11744    pub question_term: crate::veryl_token::Token, /* ? */
11745}
11746
11747///
11748/// Type derived for non-terminal QuestionToken
11749///
11750#[allow(dead_code)]
11751#[derive(Debug, Clone)]
11752pub struct QuestionToken {
11753    pub question_term: crate::veryl_token::Token,
11754    pub comments: Box<Comments>,
11755}
11756
11757///
11758/// Type derived for non-terminal Quote
11759///
11760#[allow(dead_code)]
11761#[derive(Debug, Clone)]
11762pub struct Quote {
11763    pub quote_token: crate::veryl_token::VerylToken,
11764}
11765
11766///
11767/// Type derived for non-terminal QuoteLBrace
11768///
11769#[allow(dead_code)]
11770#[derive(Debug, Clone)]
11771pub struct QuoteLBrace {
11772    pub quote_l_brace_token: crate::veryl_token::VerylToken,
11773}
11774
11775///
11776/// Type derived for non-terminal QuoteLBraceTerm
11777///
11778#[allow(dead_code)]
11779#[derive(Debug, Clone)]
11780pub struct QuoteLBraceTerm {
11781    pub quote_l_brace_term: crate::veryl_token::Token, /* '\{ */
11782}
11783
11784///
11785/// Type derived for non-terminal QuoteLBraceToken
11786///
11787#[allow(dead_code)]
11788#[derive(Debug, Clone)]
11789pub struct QuoteLBraceToken {
11790    pub quote_l_brace_term: crate::veryl_token::Token,
11791    pub comments: Box<Comments>,
11792}
11793
11794///
11795/// Type derived for non-terminal QuoteTerm
11796///
11797#[allow(dead_code)]
11798#[derive(Debug, Clone)]
11799pub struct QuoteTerm {
11800    pub quote_term: crate::veryl_token::Token, /* ' */
11801}
11802
11803///
11804/// Type derived for non-terminal QuoteToken
11805///
11806#[allow(dead_code)]
11807#[derive(Debug, Clone)]
11808pub struct QuoteToken {
11809    pub quote_term: crate::veryl_token::Token,
11810    pub comments: Box<Comments>,
11811}
11812
11813///
11814/// Type derived for non-terminal RAngle
11815///
11816#[allow(dead_code)]
11817#[derive(Debug, Clone)]
11818pub struct RAngle {
11819    pub r_angle_token: crate::veryl_token::VerylToken,
11820}
11821
11822///
11823/// Type derived for non-terminal RAngleTerm
11824///
11825#[allow(dead_code)]
11826#[derive(Debug, Clone)]
11827pub struct RAngleTerm {
11828    pub r_angle_term: crate::veryl_token::Token, /* > */
11829}
11830
11831///
11832/// Type derived for non-terminal RAngleToken
11833///
11834#[allow(dead_code)]
11835#[derive(Debug, Clone)]
11836pub struct RAngleToken {
11837    pub r_angle_term: crate::veryl_token::Token,
11838    pub comments: Box<Comments>,
11839}
11840
11841///
11842/// Type derived for non-terminal RBrace
11843///
11844#[allow(dead_code)]
11845#[derive(Debug, Clone)]
11846pub struct RBrace {
11847    pub r_brace_token: crate::veryl_token::VerylToken,
11848}
11849
11850///
11851/// Type derived for non-terminal RBraceTerm
11852///
11853#[allow(dead_code)]
11854#[derive(Debug, Clone)]
11855pub struct RBraceTerm {
11856    pub r_brace_term: crate::veryl_token::Token, /* } */
11857}
11858
11859///
11860/// Type derived for non-terminal RBraceToken
11861///
11862#[allow(dead_code)]
11863#[derive(Debug, Clone)]
11864pub struct RBraceToken {
11865    pub r_brace_term: crate::veryl_token::Token,
11866    pub comments: Box<Comments>,
11867}
11868
11869///
11870/// Type derived for non-terminal RBracket
11871///
11872#[allow(dead_code)]
11873#[derive(Debug, Clone)]
11874pub struct RBracket {
11875    pub r_bracket_token: crate::veryl_token::VerylToken,
11876}
11877
11878///
11879/// Type derived for non-terminal RBracketTerm
11880///
11881#[allow(dead_code)]
11882#[derive(Debug, Clone)]
11883pub struct RBracketTerm {
11884    pub r_bracket_term: crate::veryl_token::Token, /* ] */
11885}
11886
11887///
11888/// Type derived for non-terminal RBracketToken
11889///
11890#[allow(dead_code)]
11891#[derive(Debug, Clone)]
11892pub struct RBracketToken {
11893    pub r_bracket_term: crate::veryl_token::Token,
11894    pub comments: Box<Comments>,
11895}
11896
11897///
11898/// Type derived for non-terminal RParen
11899///
11900#[allow(dead_code)]
11901#[derive(Debug, Clone)]
11902pub struct RParen {
11903    pub r_paren_token: crate::veryl_token::VerylToken,
11904}
11905
11906///
11907/// Type derived for non-terminal RParenTerm
11908///
11909#[allow(dead_code)]
11910#[derive(Debug, Clone)]
11911pub struct RParenTerm {
11912    pub r_paren_term: crate::veryl_token::Token, /* ) */
11913}
11914
11915///
11916/// Type derived for non-terminal RParenToken
11917///
11918#[allow(dead_code)]
11919#[derive(Debug, Clone)]
11920pub struct RParenToken {
11921    pub r_paren_term: crate::veryl_token::Token,
11922    pub comments: Box<Comments>,
11923}
11924
11925///
11926/// Type derived for non-terminal Range
11927///
11928#[allow(dead_code)]
11929#[derive(Debug, Clone)]
11930pub struct Range {
11931    pub expression: Box<Expression>,
11932    pub range_opt: Option<RangeOpt>,
11933}
11934
11935///
11936/// Type derived for non-terminal RangeItem
11937///
11938#[allow(dead_code)]
11939#[derive(Debug, Clone)]
11940pub struct RangeItem {
11941    pub range: Box<Range>,
11942}
11943
11944///
11945/// Type derived for non-terminal RangeList
11946///
11947#[allow(dead_code)]
11948#[derive(Debug, Clone)]
11949pub struct RangeList {
11950    pub range_item: Box<RangeItem>,
11951    pub range_list_list: Vec<RangeListList>,
11952    pub range_list_opt: Option<RangeListOpt>,
11953}
11954
11955///
11956/// Type derived for non-terminal RangeListList
11957///
11958#[allow(dead_code)]
11959#[derive(Debug, Clone)]
11960pub struct RangeListList {
11961    pub comma: Box<Comma>,
11962    pub range_item: Box<RangeItem>,
11963}
11964
11965///
11966/// Type derived for non-terminal RangeListOpt
11967///
11968#[allow(dead_code)]
11969#[derive(Debug, Clone)]
11970pub struct RangeListOpt {
11971    pub comma: Box<Comma>,
11972}
11973
11974///
11975/// Type derived for non-terminal RangeOperator
11976///
11977#[allow(dead_code)]
11978#[derive(Debug, Clone)]
11979pub enum RangeOperator {
11980    DotDot(RangeOperatorDotDot),
11981    DotDotEqu(RangeOperatorDotDotEqu),
11982}
11983
11984///
11985/// Type derived for non-terminal RangeOpt
11986///
11987#[allow(dead_code)]
11988#[derive(Debug, Clone)]
11989pub struct RangeOpt {
11990    pub range_operator: Box<RangeOperator>,
11991    pub expression: Box<Expression>,
11992}
11993
11994///
11995/// Type derived for non-terminal RealNumber
11996///
11997#[allow(dead_code)]
11998#[derive(Debug, Clone)]
11999pub enum RealNumber {
12000    FixedPoint(RealNumberFixedPoint),
12001    Exponent(RealNumberExponent),
12002}
12003
12004///
12005/// Type derived for non-terminal Repeat
12006///
12007#[allow(dead_code)]
12008#[derive(Debug, Clone)]
12009pub struct Repeat {
12010    pub repeat_token: crate::veryl_token::VerylToken,
12011}
12012
12013///
12014/// Type derived for non-terminal RepeatTerm
12015///
12016#[allow(dead_code)]
12017#[derive(Debug, Clone)]
12018pub struct RepeatTerm {
12019    pub repeat_term: crate::veryl_token::Token, /* repeat */
12020}
12021
12022///
12023/// Type derived for non-terminal RepeatToken
12024///
12025#[allow(dead_code)]
12026#[derive(Debug, Clone)]
12027pub struct RepeatToken {
12028    pub repeat_term: crate::veryl_token::Token,
12029    pub comments: Box<Comments>,
12030}
12031
12032///
12033/// Type derived for non-terminal Reset
12034///
12035#[allow(dead_code)]
12036#[derive(Debug, Clone)]
12037pub struct Reset {
12038    pub reset_token: crate::veryl_token::VerylToken,
12039}
12040
12041///
12042/// Type derived for non-terminal ResetAsyncHigh
12043///
12044#[allow(dead_code)]
12045#[derive(Debug, Clone)]
12046pub struct ResetAsyncHigh {
12047    pub reset_async_high_token: crate::veryl_token::VerylToken,
12048}
12049
12050///
12051/// Type derived for non-terminal ResetAsyncHighTerm
12052///
12053#[allow(dead_code)]
12054#[derive(Debug, Clone)]
12055pub struct ResetAsyncHighTerm {
12056    pub reset_async_high_term: crate::veryl_token::Token, /* reset_async_high */
12057}
12058
12059///
12060/// Type derived for non-terminal ResetAsyncHighToken
12061///
12062#[allow(dead_code)]
12063#[derive(Debug, Clone)]
12064pub struct ResetAsyncHighToken {
12065    pub reset_async_high_term: crate::veryl_token::Token,
12066    pub comments: Box<Comments>,
12067}
12068
12069///
12070/// Type derived for non-terminal ResetAsyncLow
12071///
12072#[allow(dead_code)]
12073#[derive(Debug, Clone)]
12074pub struct ResetAsyncLow {
12075    pub reset_async_low_token: crate::veryl_token::VerylToken,
12076}
12077
12078///
12079/// Type derived for non-terminal ResetAsyncLowTerm
12080///
12081#[allow(dead_code)]
12082#[derive(Debug, Clone)]
12083pub struct ResetAsyncLowTerm {
12084    pub reset_async_low_term: crate::veryl_token::Token, /* reset_async_low */
12085}
12086
12087///
12088/// Type derived for non-terminal ResetAsyncLowToken
12089///
12090#[allow(dead_code)]
12091#[derive(Debug, Clone)]
12092pub struct ResetAsyncLowToken {
12093    pub reset_async_low_term: crate::veryl_token::Token,
12094    pub comments: Box<Comments>,
12095}
12096
12097///
12098/// Type derived for non-terminal ResetSyncHigh
12099///
12100#[allow(dead_code)]
12101#[derive(Debug, Clone)]
12102pub struct ResetSyncHigh {
12103    pub reset_sync_high_token: crate::veryl_token::VerylToken,
12104}
12105
12106///
12107/// Type derived for non-terminal ResetSyncHighTerm
12108///
12109#[allow(dead_code)]
12110#[derive(Debug, Clone)]
12111pub struct ResetSyncHighTerm {
12112    pub reset_sync_high_term: crate::veryl_token::Token, /* reset_sync_high */
12113}
12114
12115///
12116/// Type derived for non-terminal ResetSyncHighToken
12117///
12118#[allow(dead_code)]
12119#[derive(Debug, Clone)]
12120pub struct ResetSyncHighToken {
12121    pub reset_sync_high_term: crate::veryl_token::Token,
12122    pub comments: Box<Comments>,
12123}
12124
12125///
12126/// Type derived for non-terminal ResetSyncLow
12127///
12128#[allow(dead_code)]
12129#[derive(Debug, Clone)]
12130pub struct ResetSyncLow {
12131    pub reset_sync_low_token: crate::veryl_token::VerylToken,
12132}
12133
12134///
12135/// Type derived for non-terminal ResetSyncLowTerm
12136///
12137#[allow(dead_code)]
12138#[derive(Debug, Clone)]
12139pub struct ResetSyncLowTerm {
12140    pub reset_sync_low_term: crate::veryl_token::Token, /* reset_sync_low */
12141}
12142
12143///
12144/// Type derived for non-terminal ResetSyncLowToken
12145///
12146#[allow(dead_code)]
12147#[derive(Debug, Clone)]
12148pub struct ResetSyncLowToken {
12149    pub reset_sync_low_term: crate::veryl_token::Token,
12150    pub comments: Box<Comments>,
12151}
12152
12153///
12154/// Type derived for non-terminal ResetTerm
12155///
12156#[allow(dead_code)]
12157#[derive(Debug, Clone)]
12158pub struct ResetTerm {
12159    pub reset_term: crate::veryl_token::Token, /* reset */
12160}
12161
12162///
12163/// Type derived for non-terminal ResetToken
12164///
12165#[allow(dead_code)]
12166#[derive(Debug, Clone)]
12167pub struct ResetToken {
12168    pub reset_term: crate::veryl_token::Token,
12169    pub comments: Box<Comments>,
12170}
12171
12172///
12173/// Type derived for non-terminal Return
12174///
12175#[allow(dead_code)]
12176#[derive(Debug, Clone)]
12177pub struct Return {
12178    pub return_token: crate::veryl_token::VerylToken,
12179}
12180
12181///
12182/// Type derived for non-terminal ReturnStatement
12183///
12184#[allow(dead_code)]
12185#[derive(Debug, Clone)]
12186pub struct ReturnStatement {
12187    pub r#return: Box<Return>,
12188    pub expression: Box<Expression>,
12189    pub semicolon: Box<Semicolon>,
12190}
12191
12192///
12193/// Type derived for non-terminal ReturnTerm
12194///
12195#[allow(dead_code)]
12196#[derive(Debug, Clone)]
12197pub struct ReturnTerm {
12198    pub return_term: crate::veryl_token::Token, /* return */
12199}
12200
12201///
12202/// Type derived for non-terminal ReturnToken
12203///
12204#[allow(dead_code)]
12205#[derive(Debug, Clone)]
12206pub struct ReturnToken {
12207    pub return_term: crate::veryl_token::Token,
12208    pub comments: Box<Comments>,
12209}
12210
12211///
12212/// Type derived for non-terminal Rev
12213///
12214#[allow(dead_code)]
12215#[derive(Debug, Clone)]
12216pub struct Rev {
12217    pub rev_token: crate::veryl_token::VerylToken,
12218}
12219
12220///
12221/// Type derived for non-terminal RevTerm
12222///
12223#[allow(dead_code)]
12224#[derive(Debug, Clone)]
12225pub struct RevTerm {
12226    pub rev_term: crate::veryl_token::Token, /* rev */
12227}
12228
12229///
12230/// Type derived for non-terminal RevToken
12231///
12232#[allow(dead_code)]
12233#[derive(Debug, Clone)]
12234pub struct RevToken {
12235    pub rev_term: crate::veryl_token::Token,
12236    pub comments: Box<Comments>,
12237}
12238
12239///
12240/// Type derived for non-terminal Same
12241///
12242#[allow(dead_code)]
12243#[derive(Debug, Clone)]
12244pub struct Same {
12245    pub same_token: crate::veryl_token::VerylToken,
12246}
12247
12248///
12249/// Type derived for non-terminal SameTerm
12250///
12251#[allow(dead_code)]
12252#[derive(Debug, Clone)]
12253pub struct SameTerm {
12254    pub same_term: crate::veryl_token::Token, /* same */
12255}
12256
12257///
12258/// Type derived for non-terminal SameToken
12259///
12260#[allow(dead_code)]
12261#[derive(Debug, Clone)]
12262pub struct SameToken {
12263    pub same_term: crate::veryl_token::Token,
12264    pub comments: Box<Comments>,
12265}
12266
12267///
12268/// Type derived for non-terminal ScalarType
12269///
12270#[allow(dead_code)]
12271#[derive(Debug, Clone)]
12272pub struct ScalarType {
12273    pub scalar_type_list: Vec<ScalarTypeList>,
12274    pub scalar_type_group: Box<ScalarTypeGroup>,
12275}
12276
12277///
12278/// Type derived for non-terminal ScalarTypeGroup
12279///
12280#[allow(dead_code)]
12281#[derive(Debug, Clone)]
12282pub enum ScalarTypeGroup {
12283    UserDefinedTypeScalarTypeOpt(ScalarTypeGroupUserDefinedTypeScalarTypeOpt),
12284    FactorType(ScalarTypeGroupFactorType),
12285}
12286
12287///
12288/// Type derived for non-terminal ScalarTypeList
12289///
12290#[allow(dead_code)]
12291#[derive(Debug, Clone)]
12292pub struct ScalarTypeList {
12293    pub type_modifier: Box<TypeModifier>,
12294}
12295
12296///
12297/// Type derived for non-terminal ScalarTypeOpt
12298///
12299#[allow(dead_code)]
12300#[derive(Debug, Clone)]
12301pub struct ScalarTypeOpt {
12302    pub width: Box<Width>,
12303}
12304
12305///
12306/// Type derived for non-terminal ScopedIdentifier
12307///
12308#[allow(dead_code)]
12309#[derive(Debug, Clone)]
12310pub struct ScopedIdentifier {
12311    pub scoped_identifier_group: Box<ScopedIdentifierGroup>,
12312    pub scoped_identifier_list: Vec<ScopedIdentifierList>,
12313}
12314
12315///
12316/// Type derived for non-terminal ScopedIdentifierGroup
12317///
12318#[allow(dead_code)]
12319#[derive(Debug, Clone)]
12320pub enum ScopedIdentifierGroup {
12321    DollarIdentifier(ScopedIdentifierGroupDollarIdentifier),
12322    IdentifierScopedIdentifierOpt(ScopedIdentifierGroupIdentifierScopedIdentifierOpt),
12323}
12324
12325///
12326/// Type derived for non-terminal ScopedIdentifierList
12327///
12328#[allow(dead_code)]
12329#[derive(Debug, Clone)]
12330pub struct ScopedIdentifierList {
12331    pub colon_colon: Box<ColonColon>,
12332    pub identifier: Box<Identifier>,
12333    pub scoped_identifier_opt0: Option<ScopedIdentifierOpt0>,
12334}
12335
12336///
12337/// Type derived for non-terminal ScopedIdentifierOpt
12338///
12339#[allow(dead_code)]
12340#[derive(Debug, Clone)]
12341pub struct ScopedIdentifierOpt {
12342    pub with_generic_argument: Box<WithGenericArgument>,
12343}
12344
12345///
12346/// Type derived for non-terminal ScopedIdentifierOpt0
12347///
12348#[allow(dead_code)]
12349#[derive(Debug, Clone)]
12350pub struct ScopedIdentifierOpt0 {
12351    pub with_generic_argument: Box<WithGenericArgument>,
12352}
12353
12354///
12355/// Type derived for non-terminal Select
12356///
12357#[allow(dead_code)]
12358#[derive(Debug, Clone)]
12359pub struct Select {
12360    pub l_bracket: Box<LBracket>,
12361    pub expression: Box<Expression>,
12362    pub select_opt: Option<SelectOpt>,
12363    pub r_bracket: Box<RBracket>,
12364}
12365
12366///
12367/// Type derived for non-terminal SelectOperator
12368///
12369#[allow(dead_code)]
12370#[derive(Debug, Clone)]
12371pub enum SelectOperator {
12372    Colon(SelectOperatorColon),
12373    PlusColon(SelectOperatorPlusColon),
12374    MinusColon(SelectOperatorMinusColon),
12375    Step(SelectOperatorStep),
12376}
12377
12378///
12379/// Type derived for non-terminal SelectOpt
12380///
12381#[allow(dead_code)]
12382#[derive(Debug, Clone)]
12383pub struct SelectOpt {
12384    pub select_operator: Box<SelectOperator>,
12385    pub expression: Box<Expression>,
12386}
12387
12388///
12389/// Type derived for non-terminal Semicolon
12390///
12391#[allow(dead_code)]
12392#[derive(Debug, Clone)]
12393pub struct Semicolon {
12394    pub semicolon_token: crate::veryl_token::VerylToken,
12395}
12396
12397///
12398/// Type derived for non-terminal SemicolonTerm
12399///
12400#[allow(dead_code)]
12401#[derive(Debug, Clone)]
12402pub struct SemicolonTerm {
12403    pub semicolon_term: crate::veryl_token::Token, /* ; */
12404}
12405
12406///
12407/// Type derived for non-terminal SemicolonToken
12408///
12409#[allow(dead_code)]
12410#[derive(Debug, Clone)]
12411pub struct SemicolonToken {
12412    pub semicolon_term: crate::veryl_token::Token,
12413    pub comments: Box<Comments>,
12414}
12415
12416///
12417/// Type derived for non-terminal Signed
12418///
12419#[allow(dead_code)]
12420#[derive(Debug, Clone)]
12421pub struct Signed {
12422    pub signed_token: crate::veryl_token::VerylToken,
12423}
12424
12425///
12426/// Type derived for non-terminal SignedTerm
12427///
12428#[allow(dead_code)]
12429#[derive(Debug, Clone)]
12430pub struct SignedTerm {
12431    pub signed_term: crate::veryl_token::Token, /* signed */
12432}
12433
12434///
12435/// Type derived for non-terminal SignedToken
12436///
12437#[allow(dead_code)]
12438#[derive(Debug, Clone)]
12439pub struct SignedToken {
12440    pub signed_term: crate::veryl_token::Token,
12441    pub comments: Box<Comments>,
12442}
12443
12444///
12445/// Type derived for non-terminal Star
12446///
12447#[allow(dead_code)]
12448#[derive(Debug, Clone)]
12449pub struct Star {
12450    pub star_token: crate::veryl_token::VerylToken,
12451}
12452
12453///
12454/// Type derived for non-terminal StarTerm
12455///
12456#[allow(dead_code)]
12457#[derive(Debug, Clone)]
12458pub struct StarTerm {
12459    pub star_term: crate::veryl_token::Token, /* * */
12460}
12461
12462///
12463/// Type derived for non-terminal StarToken
12464///
12465#[allow(dead_code)]
12466#[derive(Debug, Clone)]
12467pub struct StarToken {
12468    pub star_term: crate::veryl_token::Token,
12469    pub comments: Box<Comments>,
12470}
12471
12472///
12473/// Type derived for non-terminal Start
12474///
12475#[allow(dead_code)]
12476#[derive(Debug, Clone)]
12477pub struct Start {
12478    pub start_token: crate::veryl_token::VerylToken,
12479}
12480
12481///
12482/// Type derived for non-terminal StartToken
12483///
12484#[allow(dead_code)]
12485#[derive(Debug, Clone)]
12486pub struct StartToken {
12487    pub comments: Box<Comments>,
12488}
12489
12490///
12491/// Type derived for non-terminal Statement
12492///
12493#[allow(dead_code)]
12494#[derive(Debug, Clone)]
12495pub enum Statement {
12496    IdentifierStatement(StatementIdentifierStatement),
12497    IfStatement(StatementIfStatement),
12498    IfResetStatement(StatementIfResetStatement),
12499    ReturnStatement(StatementReturnStatement),
12500    BreakStatement(StatementBreakStatement),
12501    ForStatement(StatementForStatement),
12502    CaseStatement(StatementCaseStatement),
12503    SwitchStatement(StatementSwitchStatement),
12504}
12505
12506///
12507/// Type derived for non-terminal StatementBlock
12508///
12509#[allow(dead_code)]
12510#[derive(Debug, Clone)]
12511pub struct StatementBlock {
12512    pub l_brace: Box<LBrace>,
12513    pub statement_block_list: Vec<StatementBlockList>,
12514    pub r_brace: Box<RBrace>,
12515}
12516
12517///
12518/// Type derived for non-terminal StatementBlockGroup
12519///
12520#[allow(dead_code)]
12521#[derive(Debug, Clone)]
12522pub struct StatementBlockGroup {
12523    pub statement_block_group_list: Vec<StatementBlockGroupList>,
12524    pub statement_block_group_group: Box<StatementBlockGroupGroup>,
12525}
12526
12527///
12528/// Type derived for non-terminal StatementBlockGroupGroup
12529///
12530#[allow(dead_code)]
12531#[derive(Debug, Clone)]
12532pub enum StatementBlockGroupGroup {
12533    BlockLBraceStatementBlockGroupGroupListRBrace(
12534        StatementBlockGroupGroupBlockLBraceStatementBlockGroupGroupListRBrace,
12535    ),
12536    StatementBlockItem(StatementBlockGroupGroupStatementBlockItem),
12537}
12538
12539///
12540/// Type derived for non-terminal StatementBlockGroupGroupList
12541///
12542#[allow(dead_code)]
12543#[derive(Debug, Clone)]
12544pub struct StatementBlockGroupGroupList {
12545    pub statement_block_group: Box<StatementBlockGroup>,
12546}
12547
12548///
12549/// Type derived for non-terminal StatementBlockGroupList
12550///
12551#[allow(dead_code)]
12552#[derive(Debug, Clone)]
12553pub struct StatementBlockGroupList {
12554    pub attribute: Box<Attribute>,
12555}
12556
12557///
12558/// Type derived for non-terminal StatementBlockItem
12559///
12560#[allow(dead_code)]
12561#[derive(Debug, Clone)]
12562pub enum StatementBlockItem {
12563    VarDeclaration(StatementBlockItemVarDeclaration),
12564    LetStatement(StatementBlockItemLetStatement),
12565    ConstDeclaration(StatementBlockItemConstDeclaration),
12566    Statement(StatementBlockItemStatement),
12567    ConcatenationAssignment(StatementBlockItemConcatenationAssignment),
12568}
12569
12570///
12571/// Type derived for non-terminal StatementBlockList
12572///
12573#[allow(dead_code)]
12574#[derive(Debug, Clone)]
12575pub struct StatementBlockList {
12576    pub statement_block_group: Box<StatementBlockGroup>,
12577}
12578
12579///
12580/// Type derived for non-terminal Step
12581///
12582#[allow(dead_code)]
12583#[derive(Debug, Clone)]
12584pub struct Step {
12585    pub step_token: crate::veryl_token::VerylToken,
12586}
12587
12588///
12589/// Type derived for non-terminal StepTerm
12590///
12591#[allow(dead_code)]
12592#[derive(Debug, Clone)]
12593pub struct StepTerm {
12594    pub step_term: crate::veryl_token::Token, /* step */
12595}
12596
12597///
12598/// Type derived for non-terminal StepToken
12599///
12600#[allow(dead_code)]
12601#[derive(Debug, Clone)]
12602pub struct StepToken {
12603    pub step_term: crate::veryl_token::Token,
12604    pub comments: Box<Comments>,
12605}
12606
12607///
12608/// Type derived for non-terminal Strin
12609///
12610#[allow(dead_code)]
12611#[derive(Debug, Clone)]
12612pub struct Strin {
12613    pub string_token: crate::veryl_token::VerylToken,
12614}
12615
12616///
12617/// Type derived for non-terminal StringLiteral
12618///
12619#[allow(dead_code)]
12620#[derive(Debug, Clone)]
12621pub struct StringLiteral {
12622    pub string_literal_token: crate::veryl_token::VerylToken,
12623}
12624
12625///
12626/// Type derived for non-terminal StringLiteralTerm
12627///
12628#[allow(dead_code)]
12629#[derive(Debug, Clone)]
12630pub struct StringLiteralTerm {
12631    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} */
12632}
12633
12634///
12635/// Type derived for non-terminal StringLiteralToken
12636///
12637#[allow(dead_code)]
12638#[derive(Debug, Clone)]
12639pub struct StringLiteralToken {
12640    pub string_literal_term: crate::veryl_token::Token,
12641    pub comments: Box<Comments>,
12642}
12643
12644///
12645/// Type derived for non-terminal StringTerm
12646///
12647#[allow(dead_code)]
12648#[derive(Debug, Clone)]
12649pub struct StringTerm {
12650    pub string_term: crate::veryl_token::Token, /* string */
12651}
12652
12653///
12654/// Type derived for non-terminal StringToken
12655///
12656#[allow(dead_code)]
12657#[derive(Debug, Clone)]
12658pub struct StringToken {
12659    pub string_term: crate::veryl_token::Token,
12660    pub comments: Box<Comments>,
12661}
12662
12663///
12664/// Type derived for non-terminal Struct
12665///
12666#[allow(dead_code)]
12667#[derive(Debug, Clone)]
12668pub struct Struct {
12669    pub struct_token: crate::veryl_token::VerylToken,
12670}
12671
12672///
12673/// Type derived for non-terminal StructConstructor
12674///
12675#[allow(dead_code)]
12676#[derive(Debug, Clone)]
12677pub struct StructConstructor {
12678    pub quote_l_brace: Box<QuoteLBrace>,
12679    pub struct_constructor_list: Box<StructConstructorList>,
12680    pub struct_constructor_opt: Option<StructConstructorOpt>,
12681    pub r_brace: Box<RBrace>,
12682}
12683
12684///
12685/// Type derived for non-terminal StructConstructorItem
12686///
12687#[allow(dead_code)]
12688#[derive(Debug, Clone)]
12689pub struct StructConstructorItem {
12690    pub identifier: Box<Identifier>,
12691    pub colon: Box<Colon>,
12692    pub expression: Box<Expression>,
12693}
12694
12695///
12696/// Type derived for non-terminal StructConstructorList
12697///
12698#[allow(dead_code)]
12699#[derive(Debug, Clone)]
12700pub struct StructConstructorList {
12701    pub struct_constructor_item: Box<StructConstructorItem>,
12702    pub struct_constructor_list_list: Vec<StructConstructorListList>,
12703    pub struct_constructor_list_opt: Option<StructConstructorListOpt>,
12704}
12705
12706///
12707/// Type derived for non-terminal StructConstructorListList
12708///
12709#[allow(dead_code)]
12710#[derive(Debug, Clone)]
12711pub struct StructConstructorListList {
12712    pub comma: Box<Comma>,
12713    pub struct_constructor_item: Box<StructConstructorItem>,
12714}
12715
12716///
12717/// Type derived for non-terminal StructConstructorListOpt
12718///
12719#[allow(dead_code)]
12720#[derive(Debug, Clone)]
12721pub struct StructConstructorListOpt {
12722    pub comma: Box<Comma>,
12723}
12724
12725///
12726/// Type derived for non-terminal StructConstructorOpt
12727///
12728#[allow(dead_code)]
12729#[derive(Debug, Clone)]
12730pub struct StructConstructorOpt {
12731    pub dot_dot: Box<DotDot>,
12732    pub defaul: Box<Defaul>,
12733    pub l_paren: Box<LParen>,
12734    pub expression: Box<Expression>,
12735    pub r_paren: Box<RParen>,
12736}
12737
12738///
12739/// Type derived for non-terminal StructTerm
12740///
12741#[allow(dead_code)]
12742#[derive(Debug, Clone)]
12743pub struct StructTerm {
12744    pub struct_term: crate::veryl_token::Token, /* struct */
12745}
12746
12747///
12748/// Type derived for non-terminal StructToken
12749///
12750#[allow(dead_code)]
12751#[derive(Debug, Clone)]
12752pub struct StructToken {
12753    pub struct_term: crate::veryl_token::Token,
12754    pub comments: Box<Comments>,
12755}
12756
12757///
12758/// Type derived for non-terminal StructUnion
12759///
12760#[allow(dead_code)]
12761#[derive(Debug, Clone)]
12762pub enum StructUnion {
12763    Struct(StructUnionStruct),
12764    Union(StructUnionUnion),
12765}
12766
12767///
12768/// Type derived for non-terminal StructUnionDeclaration
12769///
12770#[allow(dead_code)]
12771#[derive(Debug, Clone)]
12772pub struct StructUnionDeclaration {
12773    pub struct_union: Box<StructUnion>,
12774    pub identifier: Box<Identifier>,
12775    pub struct_union_declaration_opt: Option<StructUnionDeclarationOpt>,
12776    pub l_brace: Box<LBrace>,
12777    pub struct_union_list: Box<StructUnionList>,
12778    pub r_brace: Box<RBrace>,
12779}
12780
12781///
12782/// Type derived for non-terminal StructUnionDeclarationOpt
12783///
12784#[allow(dead_code)]
12785#[derive(Debug, Clone)]
12786pub struct StructUnionDeclarationOpt {
12787    pub with_generic_parameter: Box<WithGenericParameter>,
12788}
12789
12790///
12791/// Type derived for non-terminal StructUnionGroup
12792///
12793#[allow(dead_code)]
12794#[derive(Debug, Clone)]
12795pub struct StructUnionGroup {
12796    pub struct_union_group_list: Vec<StructUnionGroupList>,
12797    pub struct_union_group_group: Box<StructUnionGroupGroup>,
12798}
12799
12800///
12801/// Type derived for non-terminal StructUnionGroupGroup
12802///
12803#[allow(dead_code)]
12804#[derive(Debug, Clone)]
12805pub enum StructUnionGroupGroup {
12806    LBraceStructUnionListRBrace(StructUnionGroupGroupLBraceStructUnionListRBrace),
12807    StructUnionItem(StructUnionGroupGroupStructUnionItem),
12808}
12809
12810///
12811/// Type derived for non-terminal StructUnionGroupList
12812///
12813#[allow(dead_code)]
12814#[derive(Debug, Clone)]
12815pub struct StructUnionGroupList {
12816    pub attribute: Box<Attribute>,
12817}
12818
12819///
12820/// Type derived for non-terminal StructUnionItem
12821///
12822#[allow(dead_code)]
12823#[derive(Debug, Clone)]
12824pub struct StructUnionItem {
12825    pub identifier: Box<Identifier>,
12826    pub colon: Box<Colon>,
12827    pub scalar_type: Box<ScalarType>,
12828}
12829
12830///
12831/// Type derived for non-terminal StructUnionList
12832///
12833#[allow(dead_code)]
12834#[derive(Debug, Clone)]
12835pub struct StructUnionList {
12836    pub struct_union_group: Box<StructUnionGroup>,
12837    pub struct_union_list_list: Vec<StructUnionListList>,
12838    pub struct_union_list_opt: Option<StructUnionListOpt>,
12839}
12840
12841///
12842/// Type derived for non-terminal StructUnionListList
12843///
12844#[allow(dead_code)]
12845#[derive(Debug, Clone)]
12846pub struct StructUnionListList {
12847    pub comma: Box<Comma>,
12848    pub struct_union_group: Box<StructUnionGroup>,
12849}
12850
12851///
12852/// Type derived for non-terminal StructUnionListOpt
12853///
12854#[allow(dead_code)]
12855#[derive(Debug, Clone)]
12856pub struct StructUnionListOpt {
12857    pub comma: Box<Comma>,
12858}
12859
12860///
12861/// Type derived for non-terminal Switch
12862///
12863#[allow(dead_code)]
12864#[derive(Debug, Clone)]
12865pub struct Switch {
12866    pub switch_token: crate::veryl_token::VerylToken,
12867}
12868
12869///
12870/// Type derived for non-terminal SwitchCondition
12871///
12872#[allow(dead_code)]
12873#[derive(Debug, Clone)]
12874pub struct SwitchCondition {
12875    pub expression: Box<Expression>,
12876    pub switch_condition_list: Vec<SwitchConditionList>,
12877}
12878
12879///
12880/// Type derived for non-terminal SwitchConditionList
12881///
12882#[allow(dead_code)]
12883#[derive(Debug, Clone)]
12884pub struct SwitchConditionList {
12885    pub comma: Box<Comma>,
12886    pub expression: Box<Expression>,
12887}
12888
12889///
12890/// Type derived for non-terminal SwitchExpression
12891///
12892#[allow(dead_code)]
12893#[derive(Debug, Clone)]
12894pub struct SwitchExpression {
12895    pub switch: Box<Switch>,
12896    pub l_brace: Box<LBrace>,
12897    pub switch_condition: Box<SwitchCondition>,
12898    pub colon: Box<Colon>,
12899    pub expression: Box<Expression>,
12900    pub comma: Box<Comma>,
12901    pub switch_expression_list: Vec<SwitchExpressionList>,
12902    pub defaul: Box<Defaul>,
12903    pub colon0: Box<Colon>,
12904    pub expression0: Box<Expression>,
12905    pub switch_expression_opt: Option<SwitchExpressionOpt>,
12906    pub r_brace: Box<RBrace>,
12907}
12908
12909///
12910/// Type derived for non-terminal SwitchExpressionList
12911///
12912#[allow(dead_code)]
12913#[derive(Debug, Clone)]
12914pub struct SwitchExpressionList {
12915    pub switch_condition: Box<SwitchCondition>,
12916    pub colon: Box<Colon>,
12917    pub expression: Box<Expression>,
12918    pub comma: Box<Comma>,
12919}
12920
12921///
12922/// Type derived for non-terminal SwitchExpressionOpt
12923///
12924#[allow(dead_code)]
12925#[derive(Debug, Clone)]
12926pub struct SwitchExpressionOpt {
12927    pub comma: Box<Comma>,
12928}
12929
12930///
12931/// Type derived for non-terminal SwitchItem
12932///
12933#[allow(dead_code)]
12934#[derive(Debug, Clone)]
12935pub struct SwitchItem {
12936    pub switch_item_group: Box<SwitchItemGroup>,
12937    pub colon: Box<Colon>,
12938    pub switch_item_group0: Box<SwitchItemGroup0>,
12939}
12940
12941///
12942/// Type derived for non-terminal SwitchItemGroup
12943///
12944#[allow(dead_code)]
12945#[derive(Debug, Clone)]
12946pub enum SwitchItemGroup {
12947    SwitchCondition(SwitchItemGroupSwitchCondition),
12948    Defaul(SwitchItemGroupDefaul),
12949}
12950
12951///
12952/// Type derived for non-terminal SwitchItemGroup0
12953///
12954#[allow(dead_code)]
12955#[derive(Debug, Clone)]
12956pub enum SwitchItemGroup0 {
12957    Statement(SwitchItemGroup0Statement),
12958    StatementBlock(SwitchItemGroup0StatementBlock),
12959}
12960
12961///
12962/// Type derived for non-terminal SwitchStatement
12963///
12964#[allow(dead_code)]
12965#[derive(Debug, Clone)]
12966pub struct SwitchStatement {
12967    pub switch: Box<Switch>,
12968    pub l_brace: Box<LBrace>,
12969    pub switch_statement_list: Vec<SwitchStatementList>,
12970    pub r_brace: Box<RBrace>,
12971}
12972
12973///
12974/// Type derived for non-terminal SwitchStatementList
12975///
12976#[allow(dead_code)]
12977#[derive(Debug, Clone)]
12978pub struct SwitchStatementList {
12979    pub switch_item: Box<SwitchItem>,
12980}
12981
12982///
12983/// Type derived for non-terminal SwitchTerm
12984///
12985#[allow(dead_code)]
12986#[derive(Debug, Clone)]
12987pub struct SwitchTerm {
12988    pub switch_term: crate::veryl_token::Token, /* switch */
12989}
12990
12991///
12992/// Type derived for non-terminal SwitchToken
12993///
12994#[allow(dead_code)]
12995#[derive(Debug, Clone)]
12996pub struct SwitchToken {
12997    pub switch_term: crate::veryl_token::Token,
12998    pub comments: Box<Comments>,
12999}
13000
13001///
13002/// Type derived for non-terminal Tri
13003///
13004#[allow(dead_code)]
13005#[derive(Debug, Clone)]
13006pub struct Tri {
13007    pub tri_token: crate::veryl_token::VerylToken,
13008}
13009
13010///
13011/// Type derived for non-terminal TriTerm
13012///
13013#[allow(dead_code)]
13014#[derive(Debug, Clone)]
13015pub struct TriTerm {
13016    pub tri_term: crate::veryl_token::Token, /* tri */
13017}
13018
13019///
13020/// Type derived for non-terminal TriToken
13021///
13022#[allow(dead_code)]
13023#[derive(Debug, Clone)]
13024pub struct TriToken {
13025    pub tri_term: crate::veryl_token::Token,
13026    pub comments: Box<Comments>,
13027}
13028
13029///
13030/// Type derived for non-terminal TripleLBrace
13031///
13032#[allow(dead_code)]
13033#[derive(Debug, Clone)]
13034pub struct TripleLBrace {
13035    pub triple_l_brace_token: crate::veryl_token::VerylToken,
13036}
13037
13038///
13039/// Type derived for non-terminal TripleLBraceTerm
13040///
13041#[allow(dead_code)]
13042#[derive(Debug, Clone)]
13043pub struct TripleLBraceTerm {
13044    pub triple_l_brace_term: crate::veryl_token::Token, /* {{{ */
13045}
13046
13047///
13048/// Type derived for non-terminal TripleLBraceToken
13049///
13050#[allow(dead_code)]
13051#[derive(Debug, Clone)]
13052pub struct TripleLBraceToken {
13053    pub triple_l_brace_term: crate::veryl_token::Token,
13054}
13055
13056///
13057/// Type derived for non-terminal TripleRBrace
13058///
13059#[allow(dead_code)]
13060#[derive(Debug, Clone)]
13061pub struct TripleRBrace {
13062    pub triple_r_brace_token: crate::veryl_token::VerylToken,
13063}
13064
13065///
13066/// Type derived for non-terminal TripleRBraceTerm
13067///
13068#[allow(dead_code)]
13069#[derive(Debug, Clone)]
13070pub struct TripleRBraceTerm {
13071    pub triple_r_brace_term: crate::veryl_token::Token, /* }}} */
13072}
13073
13074///
13075/// Type derived for non-terminal TripleRBraceToken
13076///
13077#[allow(dead_code)]
13078#[derive(Debug, Clone)]
13079pub struct TripleRBraceToken {
13080    pub triple_r_brace_term: crate::veryl_token::Token,
13081    pub comments: Box<Comments>,
13082}
13083
13084///
13085/// Type derived for non-terminal True
13086///
13087#[allow(dead_code)]
13088#[derive(Debug, Clone)]
13089pub struct True {
13090    pub true_token: crate::veryl_token::VerylToken,
13091}
13092
13093///
13094/// Type derived for non-terminal TrueTerm
13095///
13096#[allow(dead_code)]
13097#[derive(Debug, Clone)]
13098pub struct TrueTerm {
13099    pub true_term: crate::veryl_token::Token, /* true */
13100}
13101
13102///
13103/// Type derived for non-terminal TrueToken
13104///
13105#[allow(dead_code)]
13106#[derive(Debug, Clone)]
13107pub struct TrueToken {
13108    pub true_term: crate::veryl_token::Token,
13109    pub comments: Box<Comments>,
13110}
13111
13112///
13113/// Type derived for non-terminal Type
13114///
13115#[allow(dead_code)]
13116#[derive(Debug, Clone)]
13117pub struct Type {
13118    pub type_token: crate::veryl_token::VerylToken,
13119}
13120
13121///
13122/// Type derived for non-terminal TypeDefDeclaration
13123///
13124#[allow(dead_code)]
13125#[derive(Debug, Clone)]
13126pub struct TypeDefDeclaration {
13127    pub r#type: Box<Type>,
13128    pub identifier: Box<Identifier>,
13129    pub equ: Box<Equ>,
13130    pub array_type: Box<ArrayType>,
13131    pub semicolon: Box<Semicolon>,
13132}
13133
13134///
13135/// Type derived for non-terminal TypeExpression
13136///
13137#[allow(dead_code)]
13138#[derive(Debug, Clone)]
13139pub struct TypeExpression {
13140    pub r#type: Box<Type>,
13141    pub l_paren: Box<LParen>,
13142    pub expression: Box<Expression>,
13143    pub r_paren: Box<RParen>,
13144}
13145
13146///
13147/// Type derived for non-terminal TypeModifier
13148///
13149#[allow(dead_code)]
13150#[derive(Debug, Clone)]
13151pub enum TypeModifier {
13152    Tri(TypeModifierTri),
13153    Signed(TypeModifierSigned),
13154    Defaul(TypeModifierDefaul),
13155}
13156
13157///
13158/// Type derived for non-terminal TypeTerm
13159///
13160#[allow(dead_code)]
13161#[derive(Debug, Clone)]
13162pub struct TypeTerm {
13163    pub type_term: crate::veryl_token::Token, /* type */
13164}
13165
13166///
13167/// Type derived for non-terminal TypeToken
13168///
13169#[allow(dead_code)]
13170#[derive(Debug, Clone)]
13171pub struct TypeToken {
13172    pub type_term: crate::veryl_token::Token,
13173    pub comments: Box<Comments>,
13174}
13175
13176///
13177/// Type derived for non-terminal U16
13178///
13179#[allow(dead_code)]
13180#[derive(Debug, Clone)]
13181pub struct U16 {
13182    pub u16_token: crate::veryl_token::VerylToken,
13183}
13184
13185///
13186/// Type derived for non-terminal U16Term
13187///
13188#[allow(dead_code)]
13189#[derive(Debug, Clone)]
13190pub struct U16Term {
13191    pub u16_term: crate::veryl_token::Token, /* u16 */
13192}
13193
13194///
13195/// Type derived for non-terminal U16Token
13196///
13197#[allow(dead_code)]
13198#[derive(Debug, Clone)]
13199pub struct U16Token {
13200    pub u16_term: crate::veryl_token::Token,
13201    pub comments: Box<Comments>,
13202}
13203
13204///
13205/// Type derived for non-terminal U32
13206///
13207#[allow(dead_code)]
13208#[derive(Debug, Clone)]
13209pub struct U32 {
13210    pub u32_token: crate::veryl_token::VerylToken,
13211}
13212
13213///
13214/// Type derived for non-terminal U32Term
13215///
13216#[allow(dead_code)]
13217#[derive(Debug, Clone)]
13218pub struct U32Term {
13219    pub u32_term: crate::veryl_token::Token, /* u32 */
13220}
13221
13222///
13223/// Type derived for non-terminal U32Token
13224///
13225#[allow(dead_code)]
13226#[derive(Debug, Clone)]
13227pub struct U32Token {
13228    pub u32_term: crate::veryl_token::Token,
13229    pub comments: Box<Comments>,
13230}
13231
13232///
13233/// Type derived for non-terminal U64
13234///
13235#[allow(dead_code)]
13236#[derive(Debug, Clone)]
13237pub struct U64 {
13238    pub u64_token: crate::veryl_token::VerylToken,
13239}
13240
13241///
13242/// Type derived for non-terminal U64Term
13243///
13244#[allow(dead_code)]
13245#[derive(Debug, Clone)]
13246pub struct U64Term {
13247    pub u64_term: crate::veryl_token::Token, /* u64 */
13248}
13249
13250///
13251/// Type derived for non-terminal U64Token
13252///
13253#[allow(dead_code)]
13254#[derive(Debug, Clone)]
13255pub struct U64Token {
13256    pub u64_term: crate::veryl_token::Token,
13257    pub comments: Box<Comments>,
13258}
13259
13260///
13261/// Type derived for non-terminal U8
13262///
13263#[allow(dead_code)]
13264#[derive(Debug, Clone)]
13265pub struct U8 {
13266    pub u8_token: crate::veryl_token::VerylToken,
13267}
13268
13269///
13270/// Type derived for non-terminal U8Term
13271///
13272#[allow(dead_code)]
13273#[derive(Debug, Clone)]
13274pub struct U8Term {
13275    pub u8_term: crate::veryl_token::Token, /* u8 */
13276}
13277
13278///
13279/// Type derived for non-terminal U8Token
13280///
13281#[allow(dead_code)]
13282#[derive(Debug, Clone)]
13283pub struct U8Token {
13284    pub u8_term: crate::veryl_token::Token,
13285    pub comments: Box<Comments>,
13286}
13287
13288///
13289/// Type derived for non-terminal UnaryOperator
13290///
13291#[allow(dead_code)]
13292#[derive(Debug, Clone)]
13293pub struct UnaryOperator {
13294    pub unary_operator_token: crate::veryl_token::VerylToken,
13295}
13296
13297///
13298/// Type derived for non-terminal UnaryOperatorTerm
13299///
13300#[allow(dead_code)]
13301#[derive(Debug, Clone)]
13302pub struct UnaryOperatorTerm {
13303    pub unary_operator_term: crate::veryl_token::Token, /* ~&|~\||!|~ */
13304}
13305
13306///
13307/// Type derived for non-terminal UnaryOperatorToken
13308///
13309#[allow(dead_code)]
13310#[derive(Debug, Clone)]
13311pub struct UnaryOperatorToken {
13312    pub unary_operator_term: crate::veryl_token::Token,
13313    pub comments: Box<Comments>,
13314}
13315
13316///
13317/// Type derived for non-terminal Union
13318///
13319#[allow(dead_code)]
13320#[derive(Debug, Clone)]
13321pub struct Union {
13322    pub union_token: crate::veryl_token::VerylToken,
13323}
13324
13325///
13326/// Type derived for non-terminal UnionTerm
13327///
13328#[allow(dead_code)]
13329#[derive(Debug, Clone)]
13330pub struct UnionTerm {
13331    pub union_term: crate::veryl_token::Token, /* union */
13332}
13333
13334///
13335/// Type derived for non-terminal UnionToken
13336///
13337#[allow(dead_code)]
13338#[derive(Debug, Clone)]
13339pub struct UnionToken {
13340    pub union_term: crate::veryl_token::Token,
13341    pub comments: Box<Comments>,
13342}
13343
13344///
13345/// Type derived for non-terminal Unsafe
13346///
13347#[allow(dead_code)]
13348#[derive(Debug, Clone)]
13349pub struct Unsafe {
13350    pub unsafe_token: crate::veryl_token::VerylToken,
13351}
13352
13353///
13354/// Type derived for non-terminal UnsafeBlock
13355///
13356#[allow(dead_code)]
13357#[derive(Debug, Clone)]
13358pub struct UnsafeBlock {
13359    pub r#unsafe: Box<Unsafe>,
13360    pub l_paren: Box<LParen>,
13361    pub identifier: Box<Identifier>,
13362    pub r_paren: Box<RParen>,
13363    pub l_brace: Box<LBrace>,
13364    pub unsafe_block_list: Vec<UnsafeBlockList>,
13365    pub r_brace: Box<RBrace>,
13366}
13367
13368///
13369/// Type derived for non-terminal UnsafeBlockList
13370///
13371#[allow(dead_code)]
13372#[derive(Debug, Clone)]
13373pub struct UnsafeBlockList {
13374    pub generate_group: Box<GenerateGroup>,
13375}
13376
13377///
13378/// Type derived for non-terminal UnsafeTerm
13379///
13380#[allow(dead_code)]
13381#[derive(Debug, Clone)]
13382pub struct UnsafeTerm {
13383    pub unsafe_term: crate::veryl_token::Token, /* unsafe */
13384}
13385
13386///
13387/// Type derived for non-terminal UnsafeToken
13388///
13389#[allow(dead_code)]
13390#[derive(Debug, Clone)]
13391pub struct UnsafeToken {
13392    pub unsafe_term: crate::veryl_token::Token,
13393    pub comments: Box<Comments>,
13394}
13395
13396///
13397/// Type derived for non-terminal UserDefinedType
13398///
13399#[allow(dead_code)]
13400#[derive(Debug, Clone)]
13401pub struct UserDefinedType {
13402    pub scoped_identifier: Box<ScopedIdentifier>,
13403}
13404
13405///
13406/// Type derived for non-terminal Var
13407///
13408#[allow(dead_code)]
13409#[derive(Debug, Clone)]
13410pub struct Var {
13411    pub var_token: crate::veryl_token::VerylToken,
13412}
13413
13414///
13415/// Type derived for non-terminal VarDeclaration
13416///
13417#[allow(dead_code)]
13418#[derive(Debug, Clone)]
13419pub struct VarDeclaration {
13420    pub var: Box<Var>,
13421    pub identifier: Box<Identifier>,
13422    pub colon: Box<Colon>,
13423    pub var_declaration_opt: Option<VarDeclarationOpt>,
13424    pub array_type: Box<ArrayType>,
13425    pub semicolon: Box<Semicolon>,
13426}
13427
13428///
13429/// Type derived for non-terminal VarDeclarationOpt
13430///
13431#[allow(dead_code)]
13432#[derive(Debug, Clone)]
13433pub struct VarDeclarationOpt {
13434    pub clock_domain: Box<ClockDomain>,
13435}
13436
13437///
13438/// Type derived for non-terminal VarTerm
13439///
13440#[allow(dead_code)]
13441#[derive(Debug, Clone)]
13442pub struct VarTerm {
13443    pub var_term: crate::veryl_token::Token, /* var */
13444}
13445
13446///
13447/// Type derived for non-terminal VarToken
13448///
13449#[allow(dead_code)]
13450#[derive(Debug, Clone)]
13451pub struct VarToken {
13452    pub var_term: crate::veryl_token::Token,
13453    pub comments: Box<Comments>,
13454}
13455
13456///
13457/// Type derived for non-terminal VariableType
13458///
13459#[allow(dead_code)]
13460#[derive(Debug, Clone)]
13461pub enum VariableType {
13462    Clock(VariableTypeClock),
13463    ClockPosedge(VariableTypeClockPosedge),
13464    ClockNegedge(VariableTypeClockNegedge),
13465    Reset(VariableTypeReset),
13466    ResetAsyncHigh(VariableTypeResetAsyncHigh),
13467    ResetAsyncLow(VariableTypeResetAsyncLow),
13468    ResetSyncHigh(VariableTypeResetSyncHigh),
13469    ResetSyncLow(VariableTypeResetSyncLow),
13470    Logic(VariableTypeLogic),
13471    Bit(VariableTypeBit),
13472}
13473
13474///
13475/// Type derived for non-terminal Veryl
13476///
13477#[allow(dead_code)]
13478#[derive(Debug, Clone)]
13479pub struct Veryl {
13480    pub start: Box<Start>,
13481    pub veryl_list: Vec<VerylList>,
13482}
13483
13484///
13485/// Type derived for non-terminal VerylList
13486///
13487#[allow(dead_code)]
13488#[derive(Debug, Clone)]
13489pub struct VerylList {
13490    pub description_group: Box<DescriptionGroup>,
13491}
13492
13493///
13494/// Type derived for non-terminal Width
13495///
13496#[allow(dead_code)]
13497#[derive(Debug, Clone)]
13498pub struct Width {
13499    pub l_angle: Box<LAngle>,
13500    pub expression: Box<Expression>,
13501    pub width_list: Vec<WidthList>,
13502    pub r_angle: Box<RAngle>,
13503}
13504
13505///
13506/// Type derived for non-terminal WidthList
13507///
13508#[allow(dead_code)]
13509#[derive(Debug, Clone)]
13510pub struct WidthList {
13511    pub comma: Box<Comma>,
13512    pub expression: Box<Expression>,
13513}
13514
13515///
13516/// Type derived for non-terminal WithGenericArgument
13517///
13518#[allow(dead_code)]
13519#[derive(Debug, Clone)]
13520pub struct WithGenericArgument {
13521    pub colon_colon_l_angle: Box<ColonColonLAngle>,
13522    pub with_generic_argument_opt: Option<WithGenericArgumentOpt>,
13523    pub r_angle: Box<RAngle>,
13524}
13525
13526///
13527/// Type derived for non-terminal WithGenericArgumentItem
13528///
13529#[allow(dead_code)]
13530#[derive(Debug, Clone)]
13531pub enum WithGenericArgumentItem {
13532    GenericArgIdentifier(WithGenericArgumentItemGenericArgIdentifier),
13533    FixedType(WithGenericArgumentItemFixedType),
13534    Number(WithGenericArgumentItemNumber),
13535    BooleanLiteral(WithGenericArgumentItemBooleanLiteral),
13536}
13537
13538///
13539/// Type derived for non-terminal WithGenericArgumentList
13540///
13541#[allow(dead_code)]
13542#[derive(Debug, Clone)]
13543pub struct WithGenericArgumentList {
13544    pub with_generic_argument_item: Box<WithGenericArgumentItem>,
13545    pub with_generic_argument_list_list: Vec<WithGenericArgumentListList>,
13546    pub with_generic_argument_list_opt: Option<WithGenericArgumentListOpt>,
13547}
13548
13549///
13550/// Type derived for non-terminal WithGenericArgumentListList
13551///
13552#[allow(dead_code)]
13553#[derive(Debug, Clone)]
13554pub struct WithGenericArgumentListList {
13555    pub comma: Box<Comma>,
13556    pub with_generic_argument_item: Box<WithGenericArgumentItem>,
13557}
13558
13559///
13560/// Type derived for non-terminal WithGenericArgumentListOpt
13561///
13562#[allow(dead_code)]
13563#[derive(Debug, Clone)]
13564pub struct WithGenericArgumentListOpt {
13565    pub comma: Box<Comma>,
13566}
13567
13568///
13569/// Type derived for non-terminal WithGenericArgumentOpt
13570///
13571#[allow(dead_code)]
13572#[derive(Debug, Clone)]
13573pub struct WithGenericArgumentOpt {
13574    pub with_generic_argument_list: Box<WithGenericArgumentList>,
13575}
13576
13577///
13578/// Type derived for non-terminal WithGenericParameter
13579///
13580#[allow(dead_code)]
13581#[derive(Debug, Clone)]
13582pub struct WithGenericParameter {
13583    pub colon_colon_l_angle: Box<ColonColonLAngle>,
13584    pub with_generic_parameter_list: Box<WithGenericParameterList>,
13585    pub r_angle: Box<RAngle>,
13586}
13587
13588///
13589/// Type derived for non-terminal WithGenericParameterItem
13590///
13591#[allow(dead_code)]
13592#[derive(Debug, Clone)]
13593pub struct WithGenericParameterItem {
13594    pub identifier: Box<Identifier>,
13595    pub colon: Box<Colon>,
13596    pub generic_bound: Box<GenericBound>,
13597    pub with_generic_parameter_item_opt: Option<WithGenericParameterItemOpt>,
13598}
13599
13600///
13601/// Type derived for non-terminal WithGenericParameterItemOpt
13602///
13603#[allow(dead_code)]
13604#[derive(Debug, Clone)]
13605pub struct WithGenericParameterItemOpt {
13606    pub equ: Box<Equ>,
13607    pub with_generic_argument_item: Box<WithGenericArgumentItem>,
13608}
13609
13610///
13611/// Type derived for non-terminal WithGenericParameterList
13612///
13613#[allow(dead_code)]
13614#[derive(Debug, Clone)]
13615pub struct WithGenericParameterList {
13616    pub with_generic_parameter_item: Box<WithGenericParameterItem>,
13617    pub with_generic_parameter_list_list: Vec<WithGenericParameterListList>,
13618    pub with_generic_parameter_list_opt: Option<WithGenericParameterListOpt>,
13619}
13620
13621///
13622/// Type derived for non-terminal WithGenericParameterListList
13623///
13624#[allow(dead_code)]
13625#[derive(Debug, Clone)]
13626pub struct WithGenericParameterListList {
13627    pub comma: Box<Comma>,
13628    pub with_generic_parameter_item: Box<WithGenericParameterItem>,
13629}
13630
13631///
13632/// Type derived for non-terminal WithGenericParameterListOpt
13633///
13634#[allow(dead_code)]
13635#[derive(Debug, Clone)]
13636pub struct WithGenericParameterListOpt {
13637    pub comma: Box<Comma>,
13638}
13639
13640///
13641/// Type derived for non-terminal WithParameter
13642///
13643#[allow(dead_code)]
13644#[derive(Debug, Clone)]
13645pub struct WithParameter {
13646    pub hash: Box<Hash>,
13647    pub l_paren: Box<LParen>,
13648    pub with_parameter_opt: Option<WithParameterOpt>,
13649    pub r_paren: Box<RParen>,
13650}
13651
13652///
13653/// Type derived for non-terminal WithParameterGroup
13654///
13655#[allow(dead_code)]
13656#[derive(Debug, Clone)]
13657pub struct WithParameterGroup {
13658    pub with_parameter_group_list: Vec<WithParameterGroupList>,
13659    pub with_parameter_group_group: Box<WithParameterGroupGroup>,
13660}
13661
13662///
13663/// Type derived for non-terminal WithParameterGroupGroup
13664///
13665#[allow(dead_code)]
13666#[derive(Debug, Clone)]
13667pub enum WithParameterGroupGroup {
13668    LBraceWithParameterListRBrace(WithParameterGroupGroupLBraceWithParameterListRBrace),
13669    WithParameterItem(WithParameterGroupGroupWithParameterItem),
13670}
13671
13672///
13673/// Type derived for non-terminal WithParameterGroupList
13674///
13675#[allow(dead_code)]
13676#[derive(Debug, Clone)]
13677pub struct WithParameterGroupList {
13678    pub attribute: Box<Attribute>,
13679}
13680
13681///
13682/// Type derived for non-terminal WithParameterItem
13683///
13684#[allow(dead_code)]
13685#[derive(Debug, Clone)]
13686pub struct WithParameterItem {
13687    pub with_parameter_item_group: Box<WithParameterItemGroup>,
13688    pub identifier: Box<Identifier>,
13689    pub colon: Box<Colon>,
13690    pub with_parameter_item_group0: Box<WithParameterItemGroup0>,
13691    pub with_parameter_item_opt: Option<WithParameterItemOpt>,
13692}
13693
13694///
13695/// Type derived for non-terminal WithParameterItemGroup
13696///
13697#[allow(dead_code)]
13698#[derive(Debug, Clone)]
13699pub enum WithParameterItemGroup {
13700    Param(WithParameterItemGroupParam),
13701    Const(WithParameterItemGroupConst),
13702}
13703
13704///
13705/// Type derived for non-terminal WithParameterItemGroup0
13706///
13707#[allow(dead_code)]
13708#[derive(Debug, Clone)]
13709pub enum WithParameterItemGroup0 {
13710    ArrayType(WithParameterItemGroup0ArrayType),
13711    Type(WithParameterItemGroup0Type),
13712}
13713
13714///
13715/// Type derived for non-terminal WithParameterItemOpt
13716///
13717#[allow(dead_code)]
13718#[derive(Debug, Clone)]
13719pub struct WithParameterItemOpt {
13720    pub equ: Box<Equ>,
13721    pub expression: Box<Expression>,
13722}
13723
13724///
13725/// Type derived for non-terminal WithParameterList
13726///
13727#[allow(dead_code)]
13728#[derive(Debug, Clone)]
13729pub struct WithParameterList {
13730    pub with_parameter_group: Box<WithParameterGroup>,
13731    pub with_parameter_list_list: Vec<WithParameterListList>,
13732    pub with_parameter_list_opt: Option<WithParameterListOpt>,
13733}
13734
13735///
13736/// Type derived for non-terminal WithParameterListList
13737///
13738#[allow(dead_code)]
13739#[derive(Debug, Clone)]
13740pub struct WithParameterListList {
13741    pub comma: Box<Comma>,
13742    pub with_parameter_group: Box<WithParameterGroup>,
13743}
13744
13745///
13746/// Type derived for non-terminal WithParameterListOpt
13747///
13748#[allow(dead_code)]
13749#[derive(Debug, Clone)]
13750pub struct WithParameterListOpt {
13751    pub comma: Box<Comma>,
13752}
13753
13754///
13755/// Type derived for non-terminal WithParameterOpt
13756///
13757#[allow(dead_code)]
13758#[derive(Debug, Clone)]
13759pub struct WithParameterOpt {
13760    pub with_parameter_list: Box<WithParameterList>,
13761}
13762
13763// -------------------------------------------------------------------------------------------------
13764
13765///
13766/// Deduced ASTType of expanded grammar
13767///
13768#[allow(dead_code)]
13769#[derive(Debug, Clone)]
13770pub enum ASTType {
13771    Alias(Alias),
13772    AliasDeclaration(AliasDeclaration),
13773    AliasDeclarationGroup(AliasDeclarationGroup),
13774    AliasTerm(AliasTerm),
13775    AliasToken(AliasToken),
13776    AllBit(AllBit),
13777    AllBitTerm(AllBitTerm),
13778    AllBitToken(AllBitToken),
13779    AlwaysComb(AlwaysComb),
13780    AlwaysCombDeclaration(AlwaysCombDeclaration),
13781    AlwaysCombTerm(AlwaysCombTerm),
13782    AlwaysCombToken(AlwaysCombToken),
13783    AlwaysFf(AlwaysFf),
13784    AlwaysFfClock(AlwaysFfClock),
13785    AlwaysFfDeclaration(AlwaysFfDeclaration),
13786    AlwaysFfDeclarationOpt(Option<AlwaysFfDeclarationOpt>),
13787    AlwaysFfEventList(AlwaysFfEventList),
13788    AlwaysFfEventListOpt(Option<AlwaysFfEventListOpt>),
13789    AlwaysFfReset(AlwaysFfReset),
13790    AlwaysFfTerm(AlwaysFfTerm),
13791    AlwaysFfToken(AlwaysFfToken),
13792    Any(Any),
13793    AnyTerm(AnyTerm),
13794    AnyToken(AnyToken),
13795    ArgumentExpression(ArgumentExpression),
13796    ArgumentItem(ArgumentItem),
13797    ArgumentItemOpt(Option<ArgumentItemOpt>),
13798    ArgumentList(ArgumentList),
13799    ArgumentListList(Vec<ArgumentListList>),
13800    ArgumentListOpt(Option<ArgumentListOpt>),
13801    Array(Array),
13802    ArrayList(Vec<ArrayList>),
13803    ArrayLiteralItem(ArrayLiteralItem),
13804    ArrayLiteralItemGroup(ArrayLiteralItemGroup),
13805    ArrayLiteralItemOpt(Option<ArrayLiteralItemOpt>),
13806    ArrayLiteralList(ArrayLiteralList),
13807    ArrayLiteralListList(Vec<ArrayLiteralListList>),
13808    ArrayLiteralListOpt(Option<ArrayLiteralListOpt>),
13809    ArrayType(ArrayType),
13810    ArrayTypeOpt(Option<ArrayTypeOpt>),
13811    As(As),
13812    AsTerm(AsTerm),
13813    AsToken(AsToken),
13814    Assign(Assign),
13815    AssignConcatenationItem(AssignConcatenationItem),
13816    AssignConcatenationList(AssignConcatenationList),
13817    AssignConcatenationListList(Vec<AssignConcatenationListList>),
13818    AssignConcatenationListOpt(Option<AssignConcatenationListOpt>),
13819    AssignDeclaration(AssignDeclaration),
13820    AssignDestination(AssignDestination),
13821    AssignTerm(AssignTerm),
13822    AssignToken(AssignToken),
13823    Assignment(Assignment),
13824    AssignmentGroup(AssignmentGroup),
13825    AssignmentOperator(AssignmentOperator),
13826    AssignmentOperatorTerm(AssignmentOperatorTerm),
13827    AssignmentOperatorToken(AssignmentOperatorToken),
13828    Attribute(Attribute),
13829    AttributeItem(AttributeItem),
13830    AttributeList(AttributeList),
13831    AttributeListList(Vec<AttributeListList>),
13832    AttributeListOpt(Option<AttributeListOpt>),
13833    AttributeOpt(Option<AttributeOpt>),
13834    BBool(BBool),
13835    BBoolTerm(BBoolTerm),
13836    BBoolToken(BBoolToken),
13837    BaseLess(BaseLess),
13838    BaseLessTerm(BaseLessTerm),
13839    BaseLessToken(BaseLessToken),
13840    Based(Based),
13841    BasedTerm(BasedTerm),
13842    BasedToken(BasedToken),
13843    Bind(Bind),
13844    BindDeclaration(BindDeclaration),
13845    BindTerm(BindTerm),
13846    BindToken(BindToken),
13847    Bit(Bit),
13848    BitTerm(BitTerm),
13849    BitToken(BitToken),
13850    Block(Block),
13851    BlockTerm(BlockTerm),
13852    BlockToken(BlockToken),
13853    BooleanLiteral(BooleanLiteral),
13854    Break(Break),
13855    BreakStatement(BreakStatement),
13856    BreakTerm(BreakTerm),
13857    BreakToken(BreakToken),
13858    Case(Case),
13859    CaseCondition(CaseCondition),
13860    CaseConditionList(Vec<CaseConditionList>),
13861    CaseExpression(CaseExpression),
13862    CaseExpressionList(Vec<CaseExpressionList>),
13863    CaseExpressionOpt(Option<CaseExpressionOpt>),
13864    CaseItem(CaseItem),
13865    CaseItemGroup(CaseItemGroup),
13866    CaseItemGroup0(CaseItemGroup0),
13867    CaseStatement(CaseStatement),
13868    CaseStatementList(Vec<CaseStatementList>),
13869    CaseTerm(CaseTerm),
13870    CaseToken(CaseToken),
13871    CastingType(CastingType),
13872    Clock(Clock),
13873    ClockDomain(ClockDomain),
13874    ClockNegedge(ClockNegedge),
13875    ClockNegedgeTerm(ClockNegedgeTerm),
13876    ClockNegedgeToken(ClockNegedgeToken),
13877    ClockPosedge(ClockPosedge),
13878    ClockPosedgeTerm(ClockPosedgeTerm),
13879    ClockPosedgeToken(ClockPosedgeToken),
13880    ClockTerm(ClockTerm),
13881    ClockToken(ClockToken),
13882    Colon(Colon),
13883    ColonColon(ColonColon),
13884    ColonColonLAngle(ColonColonLAngle),
13885    ColonColonLAngleTerm(ColonColonLAngleTerm),
13886    ColonColonLAngleToken(ColonColonLAngleToken),
13887    ColonColonTerm(ColonColonTerm),
13888    ColonColonToken(ColonColonToken),
13889    ColonTerm(ColonTerm),
13890    ColonToken(ColonToken),
13891    Comma(Comma),
13892    CommaTerm(CommaTerm),
13893    CommaToken(CommaToken),
13894    Comments(Comments),
13895    CommentsOpt(Option<CommentsOpt>),
13896    CommentsTerm(CommentsTerm),
13897    ComponentInstantiation(ComponentInstantiation),
13898    ComponentInstantiationOpt(Option<ComponentInstantiationOpt>),
13899    ComponentInstantiationOpt0(Option<ComponentInstantiationOpt0>),
13900    ComponentInstantiationOpt1(Option<ComponentInstantiationOpt1>),
13901    ComponentInstantiationOpt2(Option<ComponentInstantiationOpt2>),
13902    ConcatenationAssignment(ConcatenationAssignment),
13903    ConcatenationItem(ConcatenationItem),
13904    ConcatenationItemOpt(Option<ConcatenationItemOpt>),
13905    ConcatenationList(ConcatenationList),
13906    ConcatenationListList(Vec<ConcatenationListList>),
13907    ConcatenationListOpt(Option<ConcatenationListOpt>),
13908    Connect(Connect),
13909    ConnectDeclaration(ConnectDeclaration),
13910    ConnectTerm(ConnectTerm),
13911    ConnectToken(ConnectToken),
13912    Const(Const),
13913    ConstDeclaration(ConstDeclaration),
13914    ConstDeclarationGroup(ConstDeclarationGroup),
13915    ConstTerm(ConstTerm),
13916    ConstToken(ConstToken),
13917    Converse(Converse),
13918    ConverseTerm(ConverseTerm),
13919    ConverseToken(ConverseToken),
13920    Defaul(Defaul),
13921    DefaultTerm(DefaultTerm),
13922    DefaultToken(DefaultToken),
13923    DescriptionGroup(DescriptionGroup),
13924    DescriptionGroupGroup(DescriptionGroupGroup),
13925    DescriptionGroupGroupList(Vec<DescriptionGroupGroupList>),
13926    DescriptionGroupList(Vec<DescriptionGroupList>),
13927    DescriptionItem(DescriptionItem),
13928    DescriptionItemOpt(Option<DescriptionItemOpt>),
13929    DiamondOperator(DiamondOperator),
13930    DiamondOperatorTerm(DiamondOperatorTerm),
13931    DiamondOperatorToken(DiamondOperatorToken),
13932    Direction(Direction),
13933    DollarIdentifier(DollarIdentifier),
13934    DollarIdentifierTerm(DollarIdentifierTerm),
13935    DollarIdentifierToken(DollarIdentifierToken),
13936    Dot(Dot),
13937    DotDot(DotDot),
13938    DotDotEqu(DotDotEqu),
13939    DotDotEquTerm(DotDotEquTerm),
13940    DotDotEquToken(DotDotEquToken),
13941    DotDotTerm(DotDotTerm),
13942    DotDotToken(DotDotToken),
13943    DotTerm(DotTerm),
13944    DotToken(DotToken),
13945    Else(Else),
13946    ElseTerm(ElseTerm),
13947    ElseToken(ElseToken),
13948    Embed(Embed),
13949    EmbedContent(EmbedContent),
13950    EmbedContentList(Vec<EmbedContentList>),
13951    EmbedDeclaration(EmbedDeclaration),
13952    EmbedItem(EmbedItem),
13953    EmbedItemList(Vec<EmbedItemList>),
13954    EmbedLBrace(EmbedLBrace),
13955    EmbedLBraceToken(EmbedLBraceToken),
13956    EmbedRBrace(EmbedRBrace),
13957    EmbedRBraceToken(EmbedRBraceToken),
13958    EmbedScopedIdentifier(EmbedScopedIdentifier),
13959    EmbedTerm(EmbedTerm),
13960    EmbedToken(EmbedToken),
13961    Enum(Enum),
13962    EnumDeclaration(EnumDeclaration),
13963    EnumDeclarationOpt(Option<EnumDeclarationOpt>),
13964    EnumGroup(EnumGroup),
13965    EnumGroupGroup(EnumGroupGroup),
13966    EnumGroupList(Vec<EnumGroupList>),
13967    EnumItem(EnumItem),
13968    EnumItemOpt(Option<EnumItemOpt>),
13969    EnumList(EnumList),
13970    EnumListList(Vec<EnumListList>),
13971    EnumListOpt(Option<EnumListOpt>),
13972    EnumTerm(EnumTerm),
13973    EnumToken(EnumToken),
13974    Equ(Equ),
13975    EquTerm(EquTerm),
13976    EquToken(EquToken),
13977    EscapedLBrace(EscapedLBrace),
13978    EscapedLBraceTerm(EscapedLBraceTerm),
13979    EscapedLBraceToken(EscapedLBraceToken),
13980    EscapedRBrace(EscapedRBrace),
13981    EscapedRBraceTerm(EscapedRBraceTerm),
13982    EscapedRBraceToken(EscapedRBraceToken),
13983    Exponent(Exponent),
13984    ExponentTerm(ExponentTerm),
13985    ExponentToken(ExponentToken),
13986    Expression(Expression),
13987    Expression01(Expression01),
13988    Expression01List(Vec<Expression01List>),
13989    Expression01Op(Expression01Op),
13990    Expression02(Expression02),
13991    Expression02List(Vec<Expression02List>),
13992    Expression02Op(Expression02Op),
13993    Expression02Opt(Option<Expression02Opt>),
13994    ExpressionIdentifier(ExpressionIdentifier),
13995    ExpressionIdentifierList(Vec<ExpressionIdentifierList>),
13996    ExpressionIdentifierList0(Vec<ExpressionIdentifierList0>),
13997    ExpressionIdentifierList0List(Vec<ExpressionIdentifierList0List>),
13998    ExpressionIdentifierOpt(Option<ExpressionIdentifierOpt>),
13999    F32(F32),
14000    F32Term(F32Term),
14001    F32Token(F32Token),
14002    F64(F64),
14003    F64Term(F64Term),
14004    F64Token(F64Token),
14005    Factor(Factor),
14006    FactorGroup(FactorGroup),
14007    FactorType(FactorType),
14008    FactorTypeFactor(FactorTypeFactor),
14009    FactorTypeFactorList(Vec<FactorTypeFactorList>),
14010    FactorTypeGroup(FactorTypeGroup),
14011    FactorTypeOpt(Option<FactorTypeOpt>),
14012    False(False),
14013    FalseTerm(FalseTerm),
14014    FalseToken(FalseToken),
14015    Final(Final),
14016    FinalDeclaration(FinalDeclaration),
14017    FinalTerm(FinalTerm),
14018    FinalToken(FinalToken),
14019    FixedPoint(FixedPoint),
14020    FixedPointTerm(FixedPointTerm),
14021    FixedPointToken(FixedPointToken),
14022    FixedType(FixedType),
14023    For(For),
14024    ForStatement(ForStatement),
14025    ForStatementOpt(Option<ForStatementOpt>),
14026    ForStatementOpt0(Option<ForStatementOpt0>),
14027    ForTerm(ForTerm),
14028    ForToken(ForToken),
14029    Function(Function),
14030    FunctionCall(FunctionCall),
14031    FunctionCallOpt(Option<FunctionCallOpt>),
14032    FunctionDeclaration(FunctionDeclaration),
14033    FunctionDeclarationOpt(Option<FunctionDeclarationOpt>),
14034    FunctionDeclarationOpt0(Option<FunctionDeclarationOpt0>),
14035    FunctionDeclarationOpt1(Option<FunctionDeclarationOpt1>),
14036    FunctionTerm(FunctionTerm),
14037    FunctionToken(FunctionToken),
14038    GenerateBlockDeclaration(GenerateBlockDeclaration),
14039    GenerateForDeclaration(GenerateForDeclaration),
14040    GenerateForDeclarationOpt(Option<GenerateForDeclarationOpt>),
14041    GenerateForDeclarationOpt0(Option<GenerateForDeclarationOpt0>),
14042    GenerateGroup(GenerateGroup),
14043    GenerateGroupGroup(GenerateGroupGroup),
14044    GenerateGroupGroupList(Vec<GenerateGroupGroupList>),
14045    GenerateGroupList(Vec<GenerateGroupList>),
14046    GenerateIfDeclaration(GenerateIfDeclaration),
14047    GenerateIfDeclarationList(Vec<GenerateIfDeclarationList>),
14048    GenerateIfDeclarationOpt(Option<GenerateIfDeclarationOpt>),
14049    GenerateItem(GenerateItem),
14050    GenerateNamedBlock(GenerateNamedBlock),
14051    GenerateNamedBlockList(Vec<GenerateNamedBlockList>),
14052    GenerateOptionalNamedBlock(GenerateOptionalNamedBlock),
14053    GenerateOptionalNamedBlockList(Vec<GenerateOptionalNamedBlockList>),
14054    GenerateOptionalNamedBlockOpt(Option<GenerateOptionalNamedBlockOpt>),
14055    GenericArgIdentifier(GenericArgIdentifier),
14056    GenericArgIdentifierList(Vec<GenericArgIdentifierList>),
14057    GenericBound(GenericBound),
14058    GenericProtoBound(GenericProtoBound),
14059    Hash(Hash),
14060    HashLBracket(HashLBracket),
14061    HashLBracketTerm(HashLBracketTerm),
14062    HashLBracketToken(HashLBracketToken),
14063    HashTerm(HashTerm),
14064    HashToken(HashToken),
14065    HierarchicalIdentifier(HierarchicalIdentifier),
14066    HierarchicalIdentifierList(Vec<HierarchicalIdentifierList>),
14067    HierarchicalIdentifierList0(Vec<HierarchicalIdentifierList0>),
14068    HierarchicalIdentifierList0List(Vec<HierarchicalIdentifierList0List>),
14069    I16(I16),
14070    I16Term(I16Term),
14071    I16Token(I16Token),
14072    I32(I32),
14073    I32Term(I32Term),
14074    I32Token(I32Token),
14075    I64(I64),
14076    I64Term(I64Term),
14077    I64Token(I64Token),
14078    I8(I8),
14079    I8Term(I8Term),
14080    I8Token(I8Token),
14081    Identifier(Identifier),
14082    IdentifierFactor(IdentifierFactor),
14083    IdentifierFactorOpt(Option<IdentifierFactorOpt>),
14084    IdentifierFactorOptGroup(IdentifierFactorOptGroup),
14085    IdentifierStatement(IdentifierStatement),
14086    IdentifierStatementGroup(IdentifierStatementGroup),
14087    IdentifierTerm(IdentifierTerm),
14088    IdentifierToken(IdentifierToken),
14089    If(If),
14090    IfExpression(IfExpression),
14091    IfExpressionList(Vec<IfExpressionList>),
14092    IfReset(IfReset),
14093    IfResetStatement(IfResetStatement),
14094    IfResetStatementList(Vec<IfResetStatementList>),
14095    IfResetStatementOpt(Option<IfResetStatementOpt>),
14096    IfResetTerm(IfResetTerm),
14097    IfResetToken(IfResetToken),
14098    IfStatement(IfStatement),
14099    IfStatementList(Vec<IfStatementList>),
14100    IfStatementOpt(Option<IfStatementOpt>),
14101    IfTerm(IfTerm),
14102    IfToken(IfToken),
14103    Import(Import),
14104    ImportDeclaration(ImportDeclaration),
14105    ImportDeclarationOpt(Option<ImportDeclarationOpt>),
14106    ImportTerm(ImportTerm),
14107    ImportToken(ImportToken),
14108    In(In),
14109    InTerm(InTerm),
14110    InToken(InToken),
14111    Include(Include),
14112    IncludeDeclaration(IncludeDeclaration),
14113    IncludeTerm(IncludeTerm),
14114    IncludeToken(IncludeToken),
14115    Initial(Initial),
14116    InitialDeclaration(InitialDeclaration),
14117    InitialTerm(InitialTerm),
14118    InitialToken(InitialToken),
14119    Inout(Inout),
14120    InoutTerm(InoutTerm),
14121    InoutToken(InoutToken),
14122    Input(Input),
14123    InputTerm(InputTerm),
14124    InputToken(InputToken),
14125    Inside(Inside),
14126    InsideExpression(InsideExpression),
14127    InsideTerm(InsideTerm),
14128    InsideToken(InsideToken),
14129    Inst(Inst),
14130    InstDeclaration(InstDeclaration),
14131    InstParameter(InstParameter),
14132    InstParameterGroup(InstParameterGroup),
14133    InstParameterGroupGroup(InstParameterGroupGroup),
14134    InstParameterGroupList(Vec<InstParameterGroupList>),
14135    InstParameterItem(InstParameterItem),
14136    InstParameterItemOpt(Option<InstParameterItemOpt>),
14137    InstParameterList(InstParameterList),
14138    InstParameterListList(Vec<InstParameterListList>),
14139    InstParameterListOpt(Option<InstParameterListOpt>),
14140    InstParameterOpt(Option<InstParameterOpt>),
14141    InstPort(InstPort),
14142    InstPortGroup(InstPortGroup),
14143    InstPortGroupGroup(InstPortGroupGroup),
14144    InstPortGroupList(Vec<InstPortGroupList>),
14145    InstPortItem(InstPortItem),
14146    InstPortItemOpt(Option<InstPortItemOpt>),
14147    InstPortList(InstPortList),
14148    InstPortListList(Vec<InstPortListList>),
14149    InstPortListOpt(Option<InstPortListOpt>),
14150    InstPortOpt(Option<InstPortOpt>),
14151    InstTerm(InstTerm),
14152    InstToken(InstToken),
14153    IntegralNumber(IntegralNumber),
14154    Interface(Interface),
14155    InterfaceDeclaration(InterfaceDeclaration),
14156    InterfaceDeclarationList(Vec<InterfaceDeclarationList>),
14157    InterfaceDeclarationOpt(Option<InterfaceDeclarationOpt>),
14158    InterfaceDeclarationOpt0(Option<InterfaceDeclarationOpt0>),
14159    InterfaceDeclarationOpt1(Option<InterfaceDeclarationOpt1>),
14160    InterfaceGroup(InterfaceGroup),
14161    InterfaceGroupGroup(InterfaceGroupGroup),
14162    InterfaceGroupGroupList(Vec<InterfaceGroupGroupList>),
14163    InterfaceGroupList(Vec<InterfaceGroupList>),
14164    InterfaceItem(InterfaceItem),
14165    InterfaceTerm(InterfaceTerm),
14166    InterfaceToken(InterfaceToken),
14167    LAngle(LAngle),
14168    LAngleTerm(LAngleTerm),
14169    LAngleToken(LAngleToken),
14170    LBool(LBool),
14171    LBoolTerm(LBoolTerm),
14172    LBoolToken(LBoolToken),
14173    LBrace(LBrace),
14174    LBraceTerm(LBraceTerm),
14175    LBraceToken(LBraceToken),
14176    LBracket(LBracket),
14177    LBracketTerm(LBracketTerm),
14178    LBracketToken(LBracketToken),
14179    LParen(LParen),
14180    LParenTerm(LParenTerm),
14181    LParenToken(LParenToken),
14182    LTMinus(LTMinus),
14183    LTMinusTerm(LTMinusTerm),
14184    LTMinusToken(LTMinusToken),
14185    Let(Let),
14186    LetDeclaration(LetDeclaration),
14187    LetDeclarationOpt(Option<LetDeclarationOpt>),
14188    LetStatement(LetStatement),
14189    LetStatementOpt(Option<LetStatementOpt>),
14190    LetTerm(LetTerm),
14191    LetToken(LetToken),
14192    Logic(Logic),
14193    LogicTerm(LogicTerm),
14194    LogicToken(LogicToken),
14195    Lsb(Lsb),
14196    LsbTerm(LsbTerm),
14197    LsbToken(LsbToken),
14198    MinusColon(MinusColon),
14199    MinusColonTerm(MinusColonTerm),
14200    MinusColonToken(MinusColonToken),
14201    MinusGT(MinusGT),
14202    MinusGTTerm(MinusGTTerm),
14203    MinusGTToken(MinusGTToken),
14204    Modport(Modport),
14205    ModportDeclaration(ModportDeclaration),
14206    ModportDeclarationOpt(Option<ModportDeclarationOpt>),
14207    ModportDeclarationOpt0(Option<ModportDeclarationOpt0>),
14208    ModportDefault(ModportDefault),
14209    ModportDefaultList(ModportDefaultList),
14210    ModportDefaultListList(Vec<ModportDefaultListList>),
14211    ModportDefaultListOpt(Option<ModportDefaultListOpt>),
14212    ModportGroup(ModportGroup),
14213    ModportGroupGroup(ModportGroupGroup),
14214    ModportGroupList(Vec<ModportGroupList>),
14215    ModportItem(ModportItem),
14216    ModportList(ModportList),
14217    ModportListList(Vec<ModportListList>),
14218    ModportListOpt(Option<ModportListOpt>),
14219    ModportTerm(ModportTerm),
14220    ModportToken(ModportToken),
14221    Module(Module),
14222    ModuleDeclaration(ModuleDeclaration),
14223    ModuleDeclarationList(Vec<ModuleDeclarationList>),
14224    ModuleDeclarationOpt(Option<ModuleDeclarationOpt>),
14225    ModuleDeclarationOpt0(Option<ModuleDeclarationOpt0>),
14226    ModuleDeclarationOpt1(Option<ModuleDeclarationOpt1>),
14227    ModuleDeclarationOpt2(Option<ModuleDeclarationOpt2>),
14228    ModuleGroup(ModuleGroup),
14229    ModuleGroupGroup(ModuleGroupGroup),
14230    ModuleGroupGroupList(Vec<ModuleGroupGroupList>),
14231    ModuleGroupList(Vec<ModuleGroupList>),
14232    ModuleItem(ModuleItem),
14233    ModuleTerm(ModuleTerm),
14234    ModuleToken(ModuleToken),
14235    Msb(Msb),
14236    MsbTerm(MsbTerm),
14237    MsbToken(MsbToken),
14238    Number(Number),
14239    Operator01(Operator01),
14240    Operator01Term(Operator01Term),
14241    Operator01Token(Operator01Token),
14242    Operator02(Operator02),
14243    Operator02Term(Operator02Term),
14244    Operator02Token(Operator02Token),
14245    Operator03(Operator03),
14246    Operator03Term(Operator03Term),
14247    Operator03Token(Operator03Token),
14248    Operator04(Operator04),
14249    Operator04Term(Operator04Term),
14250    Operator04Token(Operator04Token),
14251    Operator05(Operator05),
14252    Operator05Term(Operator05Term),
14253    Operator05Token(Operator05Token),
14254    Operator06(Operator06),
14255    Operator06Term(Operator06Term),
14256    Operator06Token(Operator06Token),
14257    Operator07(Operator07),
14258    Operator07Term(Operator07Term),
14259    Operator07Token(Operator07Token),
14260    Operator08(Operator08),
14261    Operator08Term(Operator08Term),
14262    Operator08Token(Operator08Token),
14263    Output(Output),
14264    OutputTerm(OutputTerm),
14265    OutputToken(OutputToken),
14266    Outside(Outside),
14267    OutsideExpression(OutsideExpression),
14268    OutsideTerm(OutsideTerm),
14269    OutsideToken(OutsideToken),
14270    P16(P16),
14271    P16Term(P16Term),
14272    P16Token(P16Token),
14273    P32(P32),
14274    P32Term(P32Term),
14275    P32Token(P32Token),
14276    P64(P64),
14277    P64Term(P64Term),
14278    P64Token(P64Token),
14279    P8(P8),
14280    P8Term(P8Term),
14281    P8Token(P8Token),
14282    Package(Package),
14283    PackageDeclaration(PackageDeclaration),
14284    PackageDeclarationList(Vec<PackageDeclarationList>),
14285    PackageDeclarationOpt(Option<PackageDeclarationOpt>),
14286    PackageDeclarationOpt0(Option<PackageDeclarationOpt0>),
14287    PackageGroup(PackageGroup),
14288    PackageGroupGroup(PackageGroupGroup),
14289    PackageGroupGroupList(Vec<PackageGroupGroupList>),
14290    PackageGroupList(Vec<PackageGroupList>),
14291    PackageItem(PackageItem),
14292    PackageTerm(PackageTerm),
14293    PackageToken(PackageToken),
14294    Param(Param),
14295    ParamTerm(ParamTerm),
14296    ParamToken(ParamToken),
14297    PlusColon(PlusColon),
14298    PlusColonTerm(PlusColonTerm),
14299    PlusColonToken(PlusColonToken),
14300    PortDeclaration(PortDeclaration),
14301    PortDeclarationGroup(PortDeclarationGroup),
14302    PortDeclarationGroupGroup(PortDeclarationGroupGroup),
14303    PortDeclarationGroupList(Vec<PortDeclarationGroupList>),
14304    PortDeclarationItem(PortDeclarationItem),
14305    PortDeclarationItemGroup(PortDeclarationItemGroup),
14306    PortDeclarationList(PortDeclarationList),
14307    PortDeclarationListList(Vec<PortDeclarationListList>),
14308    PortDeclarationListOpt(Option<PortDeclarationListOpt>),
14309    PortDeclarationOpt(Option<PortDeclarationOpt>),
14310    PortDefaultValue(PortDefaultValue),
14311    PortTypeAbstract(PortTypeAbstract),
14312    PortTypeAbstractOpt(Option<PortTypeAbstractOpt>),
14313    PortTypeAbstractOpt0(Option<PortTypeAbstractOpt0>),
14314    PortTypeAbstractOpt1(Option<PortTypeAbstractOpt1>),
14315    PortTypeConcrete(PortTypeConcrete),
14316    PortTypeConcreteOpt(Option<PortTypeConcreteOpt>),
14317    PortTypeConcreteOpt0(Option<PortTypeConcreteOpt0>),
14318    Proto(Proto),
14319    ProtoAliasDeclaration(ProtoAliasDeclaration),
14320    ProtoAliasDeclarationGroup(ProtoAliasDeclarationGroup),
14321    ProtoConstDeclaration(ProtoConstDeclaration),
14322    ProtoConstDeclarationGroup(ProtoConstDeclarationGroup),
14323    ProtoDeclaration(ProtoDeclaration),
14324    ProtoDeclarationGroup(ProtoDeclarationGroup),
14325    ProtoFunctionDeclaration(ProtoFunctionDeclaration),
14326    ProtoFunctionDeclarationOpt(Option<ProtoFunctionDeclarationOpt>),
14327    ProtoFunctionDeclarationOpt0(Option<ProtoFunctionDeclarationOpt0>),
14328    ProtoFunctionDeclarationOpt1(Option<ProtoFunctionDeclarationOpt1>),
14329    ProtoInterfaceDeclaration(ProtoInterfaceDeclaration),
14330    ProtoInterfaceDeclarationList(Vec<ProtoInterfaceDeclarationList>),
14331    ProtoInterfaceDeclarationOpt(Option<ProtoInterfaceDeclarationOpt>),
14332    ProtoInterfaceItem(ProtoInterfaceItem),
14333    ProtoModuleDeclaration(ProtoModuleDeclaration),
14334    ProtoModuleDeclarationOpt(Option<ProtoModuleDeclarationOpt>),
14335    ProtoModuleDeclarationOpt0(Option<ProtoModuleDeclarationOpt0>),
14336    ProtoPacakgeItem(ProtoPacakgeItem),
14337    ProtoPackageDeclaration(ProtoPackageDeclaration),
14338    ProtoPackageDeclarationList(Vec<ProtoPackageDeclarationList>),
14339    ProtoTerm(ProtoTerm),
14340    ProtoToken(ProtoToken),
14341    ProtoTypeDefDeclaration(ProtoTypeDefDeclaration),
14342    ProtoTypeDefDeclarationOpt(Option<ProtoTypeDefDeclarationOpt>),
14343    Pub(Pub),
14344    PubTerm(PubTerm),
14345    PubToken(PubToken),
14346    PublicDescriptionItem(PublicDescriptionItem),
14347    Question(Question),
14348    QuestionTerm(QuestionTerm),
14349    QuestionToken(QuestionToken),
14350    Quote(Quote),
14351    QuoteLBrace(QuoteLBrace),
14352    QuoteLBraceTerm(QuoteLBraceTerm),
14353    QuoteLBraceToken(QuoteLBraceToken),
14354    QuoteTerm(QuoteTerm),
14355    QuoteToken(QuoteToken),
14356    RAngle(RAngle),
14357    RAngleTerm(RAngleTerm),
14358    RAngleToken(RAngleToken),
14359    RBrace(RBrace),
14360    RBraceTerm(RBraceTerm),
14361    RBraceToken(RBraceToken),
14362    RBracket(RBracket),
14363    RBracketTerm(RBracketTerm),
14364    RBracketToken(RBracketToken),
14365    RParen(RParen),
14366    RParenTerm(RParenTerm),
14367    RParenToken(RParenToken),
14368    Range(Range),
14369    RangeItem(RangeItem),
14370    RangeList(RangeList),
14371    RangeListList(Vec<RangeListList>),
14372    RangeListOpt(Option<RangeListOpt>),
14373    RangeOperator(RangeOperator),
14374    RangeOpt(Option<RangeOpt>),
14375    RealNumber(RealNumber),
14376    Repeat(Repeat),
14377    RepeatTerm(RepeatTerm),
14378    RepeatToken(RepeatToken),
14379    Reset(Reset),
14380    ResetAsyncHigh(ResetAsyncHigh),
14381    ResetAsyncHighTerm(ResetAsyncHighTerm),
14382    ResetAsyncHighToken(ResetAsyncHighToken),
14383    ResetAsyncLow(ResetAsyncLow),
14384    ResetAsyncLowTerm(ResetAsyncLowTerm),
14385    ResetAsyncLowToken(ResetAsyncLowToken),
14386    ResetSyncHigh(ResetSyncHigh),
14387    ResetSyncHighTerm(ResetSyncHighTerm),
14388    ResetSyncHighToken(ResetSyncHighToken),
14389    ResetSyncLow(ResetSyncLow),
14390    ResetSyncLowTerm(ResetSyncLowTerm),
14391    ResetSyncLowToken(ResetSyncLowToken),
14392    ResetTerm(ResetTerm),
14393    ResetToken(ResetToken),
14394    Return(Return),
14395    ReturnStatement(ReturnStatement),
14396    ReturnTerm(ReturnTerm),
14397    ReturnToken(ReturnToken),
14398    Rev(Rev),
14399    RevTerm(RevTerm),
14400    RevToken(RevToken),
14401    Same(Same),
14402    SameTerm(SameTerm),
14403    SameToken(SameToken),
14404    ScalarType(ScalarType),
14405    ScalarTypeGroup(ScalarTypeGroup),
14406    ScalarTypeList(Vec<ScalarTypeList>),
14407    ScalarTypeOpt(Option<ScalarTypeOpt>),
14408    ScopedIdentifier(ScopedIdentifier),
14409    ScopedIdentifierGroup(ScopedIdentifierGroup),
14410    ScopedIdentifierList(Vec<ScopedIdentifierList>),
14411    ScopedIdentifierOpt(Option<ScopedIdentifierOpt>),
14412    ScopedIdentifierOpt0(Option<ScopedIdentifierOpt0>),
14413    Select(Select),
14414    SelectOperator(SelectOperator),
14415    SelectOpt(Option<SelectOpt>),
14416    Semicolon(Semicolon),
14417    SemicolonTerm(SemicolonTerm),
14418    SemicolonToken(SemicolonToken),
14419    Signed(Signed),
14420    SignedTerm(SignedTerm),
14421    SignedToken(SignedToken),
14422    Star(Star),
14423    StarTerm(StarTerm),
14424    StarToken(StarToken),
14425    Start(Start),
14426    StartToken(StartToken),
14427    Statement(Statement),
14428    StatementBlock(StatementBlock),
14429    StatementBlockGroup(StatementBlockGroup),
14430    StatementBlockGroupGroup(StatementBlockGroupGroup),
14431    StatementBlockGroupGroupList(Vec<StatementBlockGroupGroupList>),
14432    StatementBlockGroupList(Vec<StatementBlockGroupList>),
14433    StatementBlockItem(StatementBlockItem),
14434    StatementBlockList(Vec<StatementBlockList>),
14435    Step(Step),
14436    StepTerm(StepTerm),
14437    StepToken(StepToken),
14438    Strin(Strin),
14439    StringLiteral(StringLiteral),
14440    StringLiteralTerm(StringLiteralTerm),
14441    StringLiteralToken(StringLiteralToken),
14442    StringTerm(StringTerm),
14443    StringToken(StringToken),
14444    Struct(Struct),
14445    StructConstructor(StructConstructor),
14446    StructConstructorItem(StructConstructorItem),
14447    StructConstructorList(StructConstructorList),
14448    StructConstructorListList(Vec<StructConstructorListList>),
14449    StructConstructorListOpt(Option<StructConstructorListOpt>),
14450    StructConstructorOpt(Option<StructConstructorOpt>),
14451    StructTerm(StructTerm),
14452    StructToken(StructToken),
14453    StructUnion(StructUnion),
14454    StructUnionDeclaration(StructUnionDeclaration),
14455    StructUnionDeclarationOpt(Option<StructUnionDeclarationOpt>),
14456    StructUnionGroup(StructUnionGroup),
14457    StructUnionGroupGroup(StructUnionGroupGroup),
14458    StructUnionGroupList(Vec<StructUnionGroupList>),
14459    StructUnionItem(StructUnionItem),
14460    StructUnionList(StructUnionList),
14461    StructUnionListList(Vec<StructUnionListList>),
14462    StructUnionListOpt(Option<StructUnionListOpt>),
14463    Switch(Switch),
14464    SwitchCondition(SwitchCondition),
14465    SwitchConditionList(Vec<SwitchConditionList>),
14466    SwitchExpression(SwitchExpression),
14467    SwitchExpressionList(Vec<SwitchExpressionList>),
14468    SwitchExpressionOpt(Option<SwitchExpressionOpt>),
14469    SwitchItem(SwitchItem),
14470    SwitchItemGroup(SwitchItemGroup),
14471    SwitchItemGroup0(SwitchItemGroup0),
14472    SwitchStatement(SwitchStatement),
14473    SwitchStatementList(Vec<SwitchStatementList>),
14474    SwitchTerm(SwitchTerm),
14475    SwitchToken(SwitchToken),
14476    Tri(Tri),
14477    TriTerm(TriTerm),
14478    TriToken(TriToken),
14479    TripleLBrace(TripleLBrace),
14480    TripleLBraceTerm(TripleLBraceTerm),
14481    TripleLBraceToken(TripleLBraceToken),
14482    TripleRBrace(TripleRBrace),
14483    TripleRBraceTerm(TripleRBraceTerm),
14484    TripleRBraceToken(TripleRBraceToken),
14485    True(True),
14486    TrueTerm(TrueTerm),
14487    TrueToken(TrueToken),
14488    Type(Type),
14489    TypeDefDeclaration(TypeDefDeclaration),
14490    TypeExpression(TypeExpression),
14491    TypeModifier(TypeModifier),
14492    TypeTerm(TypeTerm),
14493    TypeToken(TypeToken),
14494    U16(U16),
14495    U16Term(U16Term),
14496    U16Token(U16Token),
14497    U32(U32),
14498    U32Term(U32Term),
14499    U32Token(U32Token),
14500    U64(U64),
14501    U64Term(U64Term),
14502    U64Token(U64Token),
14503    U8(U8),
14504    U8Term(U8Term),
14505    U8Token(U8Token),
14506    UnaryOperator(UnaryOperator),
14507    UnaryOperatorTerm(UnaryOperatorTerm),
14508    UnaryOperatorToken(UnaryOperatorToken),
14509    Union(Union),
14510    UnionTerm(UnionTerm),
14511    UnionToken(UnionToken),
14512    Unsafe(Unsafe),
14513    UnsafeBlock(UnsafeBlock),
14514    UnsafeBlockList(Vec<UnsafeBlockList>),
14515    UnsafeTerm(UnsafeTerm),
14516    UnsafeToken(UnsafeToken),
14517    UserDefinedType(UserDefinedType),
14518    Var(Var),
14519    VarDeclaration(VarDeclaration),
14520    VarDeclarationOpt(Option<VarDeclarationOpt>),
14521    VarTerm(VarTerm),
14522    VarToken(VarToken),
14523    VariableType(VariableType),
14524    Veryl(Veryl),
14525    VerylList(Vec<VerylList>),
14526    Width(Width),
14527    WidthList(Vec<WidthList>),
14528    WithGenericArgument(WithGenericArgument),
14529    WithGenericArgumentItem(WithGenericArgumentItem),
14530    WithGenericArgumentList(WithGenericArgumentList),
14531    WithGenericArgumentListList(Vec<WithGenericArgumentListList>),
14532    WithGenericArgumentListOpt(Option<WithGenericArgumentListOpt>),
14533    WithGenericArgumentOpt(Option<WithGenericArgumentOpt>),
14534    WithGenericParameter(WithGenericParameter),
14535    WithGenericParameterItem(WithGenericParameterItem),
14536    WithGenericParameterItemOpt(Option<WithGenericParameterItemOpt>),
14537    WithGenericParameterList(WithGenericParameterList),
14538    WithGenericParameterListList(Vec<WithGenericParameterListList>),
14539    WithGenericParameterListOpt(Option<WithGenericParameterListOpt>),
14540    WithParameter(WithParameter),
14541    WithParameterGroup(WithParameterGroup),
14542    WithParameterGroupGroup(WithParameterGroupGroup),
14543    WithParameterGroupList(Vec<WithParameterGroupList>),
14544    WithParameterItem(WithParameterItem),
14545    WithParameterItemGroup(WithParameterItemGroup),
14546    WithParameterItemGroup0(WithParameterItemGroup0),
14547    WithParameterItemOpt(Option<WithParameterItemOpt>),
14548    WithParameterList(WithParameterList),
14549    WithParameterListList(Vec<WithParameterListList>),
14550    WithParameterListOpt(Option<WithParameterListOpt>),
14551    WithParameterOpt(Option<WithParameterOpt>),
14552}
14553
14554// -------------------------------------------------------------------------------------------------
14555
14556/// Auto-implemented adapter grammar
14557///
14558/// The lifetime parameter `'t` refers to the lifetime of the scanned text.
14559/// The lifetime parameter `'u` refers to the lifetime of user grammar object.
14560///
14561#[allow(dead_code)]
14562pub struct VerylGrammarAuto<'t, 'u>
14563where
14564    't: 'u,
14565{
14566    // Mutable reference of the actual user grammar to be able to call the semantic actions on it
14567    user_grammar: &'u mut dyn VerylGrammarTrait,
14568    // Stack to construct the AST on it
14569    item_stack: Vec<ASTType>,
14570    // Just to hold the lifetime generated by parol
14571    phantom: PhantomData<&'t str>,
14572}
14573
14574///
14575/// The `VerylGrammarAuto` impl is automatically generated for the
14576/// given grammar.
14577///
14578impl<'t, 'u> VerylGrammarAuto<'t, 'u> {
14579    pub fn new(user_grammar: &'u mut dyn VerylGrammarTrait) -> Self {
14580        Self {
14581            user_grammar,
14582            item_stack: Vec::new(),
14583            phantom: PhantomData,
14584        }
14585    }
14586
14587    #[allow(dead_code)]
14588    fn push(&mut self, item: ASTType, context: &str) {
14589        trace!("push    {context}: {item:?}");
14590        self.item_stack.push(item)
14591    }
14592
14593    #[allow(dead_code)]
14594    fn pop(&mut self, context: &str) -> Option<ASTType> {
14595        let item = self.item_stack.pop();
14596        if let Some(ref item) = item {
14597            trace!("pop     {context}: {item:?}");
14598        }
14599        item
14600    }
14601
14602    #[allow(dead_code)]
14603    // Use this function for debugging purposes:
14604    // trace!("{}", self.trace_item_stack(context));
14605    fn trace_item_stack(&self, context: &str) -> std::string::String {
14606        format!(
14607            "Item stack at {}:\n{}",
14608            context,
14609            self.item_stack
14610                .iter()
14611                .rev()
14612                .map(|s| format!("  {s:?}"))
14613                .collect::<Vec<std::string::String>>()
14614                .join("\n")
14615        )
14616    }
14617
14618    /// Semantic action for production 0:
14619    ///
14620    /// `CommentsTerm: <INITIAL, EmbedHeader, Generic, Attr>"(?:(?:(?://.*(?:\r\n|\r|\n))|(?:(?ms)/\*/?([^/]|[^*]/)*\*/))\s*)+" : Token;`
14621    ///
14622    #[parol_runtime::function_name::named]
14623    fn comments_term(&mut self, comments_term: &ParseTreeType<'t>) -> Result<()> {
14624        let context = function_name!();
14625        trace!("{}", self.trace_item_stack(context));
14626        let comments_term = comments_term
14627            .token()?
14628            .try_into()
14629            .map_err(parol_runtime::ParolError::UserError)?;
14630        let comments_term_built = CommentsTerm { comments_term };
14631        // Calling user action here
14632        self.user_grammar.comments_term(&comments_term_built)?;
14633        self.push(ASTType::CommentsTerm(comments_term_built), context);
14634        Ok(())
14635    }
14636
14637    /// Semantic action for production 1:
14638    ///
14639    /// `StringLiteralTerm: <INITIAL, Attr>"\u{0022}(?:\\[\u{0022}\\/bfnrt]|u[0-9a-fA-F]{4}|[^\u{0022}\\\u0000-\u001F])*\u{0022}" : Token;`
14640    ///
14641    #[parol_runtime::function_name::named]
14642    fn string_literal_term(&mut self, string_literal_term: &ParseTreeType<'t>) -> Result<()> {
14643        let context = function_name!();
14644        trace!("{}", self.trace_item_stack(context));
14645        let string_literal_term = string_literal_term
14646            .token()?
14647            .try_into()
14648            .map_err(parol_runtime::ParolError::UserError)?;
14649        let string_literal_term_built = StringLiteralTerm {
14650            string_literal_term,
14651        };
14652        // Calling user action here
14653        self.user_grammar
14654            .string_literal_term(&string_literal_term_built)?;
14655        self.push(
14656            ASTType::StringLiteralTerm(string_literal_term_built),
14657            context,
14658        );
14659        Ok(())
14660    }
14661
14662    /// Semantic action for production 2:
14663    ///
14664    /// `ExponentTerm: <INITIAL, Generic>/[0-9]+(?:_[0-9]+)*\.[0-9]+(?:_[0-9]+)*[eE][+-]?[0-9]+(?:_[0-9]+)*/ : Token;`
14665    ///
14666    #[parol_runtime::function_name::named]
14667    fn exponent_term(&mut self, exponent_term: &ParseTreeType<'t>) -> Result<()> {
14668        let context = function_name!();
14669        trace!("{}", self.trace_item_stack(context));
14670        let exponent_term = exponent_term
14671            .token()?
14672            .try_into()
14673            .map_err(parol_runtime::ParolError::UserError)?;
14674        let exponent_term_built = ExponentTerm { exponent_term };
14675        // Calling user action here
14676        self.user_grammar.exponent_term(&exponent_term_built)?;
14677        self.push(ASTType::ExponentTerm(exponent_term_built), context);
14678        Ok(())
14679    }
14680
14681    /// Semantic action for production 3:
14682    ///
14683    /// `FixedPointTerm: <INITIAL, Generic>/[0-9]+(?:_[0-9]+)*\.[0-9]+(?:_[0-9]+)*/ : Token;`
14684    ///
14685    #[parol_runtime::function_name::named]
14686    fn fixed_point_term(&mut self, fixed_point_term: &ParseTreeType<'t>) -> Result<()> {
14687        let context = function_name!();
14688        trace!("{}", self.trace_item_stack(context));
14689        let fixed_point_term = fixed_point_term
14690            .token()?
14691            .try_into()
14692            .map_err(parol_runtime::ParolError::UserError)?;
14693        let fixed_point_term_built = FixedPointTerm { fixed_point_term };
14694        // Calling user action here
14695        self.user_grammar
14696            .fixed_point_term(&fixed_point_term_built)?;
14697        self.push(ASTType::FixedPointTerm(fixed_point_term_built), context);
14698        Ok(())
14699    }
14700
14701    /// Semantic action for production 4:
14702    ///
14703    /// `BasedTerm: <INITIAL, Generic>/(?:[0-9]+(?:_[0-9]+)*)?'s?[bodh][0-9a-fA-FxzXZ]+(?:_[0-9a-fA-FxzXZ]+)*/ : Token;`
14704    ///
14705    #[parol_runtime::function_name::named]
14706    fn based_term(&mut self, based_term: &ParseTreeType<'t>) -> Result<()> {
14707        let context = function_name!();
14708        trace!("{}", self.trace_item_stack(context));
14709        let based_term = based_term
14710            .token()?
14711            .try_into()
14712            .map_err(parol_runtime::ParolError::UserError)?;
14713        let based_term_built = BasedTerm { based_term };
14714        // Calling user action here
14715        self.user_grammar.based_term(&based_term_built)?;
14716        self.push(ASTType::BasedTerm(based_term_built), context);
14717        Ok(())
14718    }
14719
14720    /// Semantic action for production 5:
14721    ///
14722    /// `AllBitTerm: <INITIAL, Generic>/(?:[0-9]+(?:_[0-9]+)*)?'[01xzXZ]/ : Token;`
14723    ///
14724    #[parol_runtime::function_name::named]
14725    fn all_bit_term(&mut self, all_bit_term: &ParseTreeType<'t>) -> Result<()> {
14726        let context = function_name!();
14727        trace!("{}", self.trace_item_stack(context));
14728        let all_bit_term = all_bit_term
14729            .token()?
14730            .try_into()
14731            .map_err(parol_runtime::ParolError::UserError)?;
14732        let all_bit_term_built = AllBitTerm { all_bit_term };
14733        // Calling user action here
14734        self.user_grammar.all_bit_term(&all_bit_term_built)?;
14735        self.push(ASTType::AllBitTerm(all_bit_term_built), context);
14736        Ok(())
14737    }
14738
14739    /// Semantic action for production 6:
14740    ///
14741    /// `BaseLessTerm: <INITIAL, Generic>/[0-9]+(?:_[0-9]+)*/ : Token;`
14742    ///
14743    #[parol_runtime::function_name::named]
14744    fn base_less_term(&mut self, base_less_term: &ParseTreeType<'t>) -> Result<()> {
14745        let context = function_name!();
14746        trace!("{}", self.trace_item_stack(context));
14747        let base_less_term = base_less_term
14748            .token()?
14749            .try_into()
14750            .map_err(parol_runtime::ParolError::UserError)?;
14751        let base_less_term_built = BaseLessTerm { base_less_term };
14752        // Calling user action here
14753        self.user_grammar.base_less_term(&base_less_term_built)?;
14754        self.push(ASTType::BaseLessTerm(base_less_term_built), context);
14755        Ok(())
14756    }
14757
14758    /// Semantic action for production 7:
14759    ///
14760    /// `MinusColonTerm: '-:' : Token;`
14761    ///
14762    #[parol_runtime::function_name::named]
14763    fn minus_colon_term(&mut self, minus_colon_term: &ParseTreeType<'t>) -> Result<()> {
14764        let context = function_name!();
14765        trace!("{}", self.trace_item_stack(context));
14766        let minus_colon_term = minus_colon_term
14767            .token()?
14768            .try_into()
14769            .map_err(parol_runtime::ParolError::UserError)?;
14770        let minus_colon_term_built = MinusColonTerm { minus_colon_term };
14771        // Calling user action here
14772        self.user_grammar
14773            .minus_colon_term(&minus_colon_term_built)?;
14774        self.push(ASTType::MinusColonTerm(minus_colon_term_built), context);
14775        Ok(())
14776    }
14777
14778    /// Semantic action for production 8:
14779    ///
14780    /// `MinusGTTerm: '->' : Token;`
14781    ///
14782    #[parol_runtime::function_name::named]
14783    fn minus_g_t_term(&mut self, minus_g_t_term: &ParseTreeType<'t>) -> Result<()> {
14784        let context = function_name!();
14785        trace!("{}", self.trace_item_stack(context));
14786        let minus_g_t_term = minus_g_t_term
14787            .token()?
14788            .try_into()
14789            .map_err(parol_runtime::ParolError::UserError)?;
14790        let minus_g_t_term_built = MinusGTTerm { minus_g_t_term };
14791        // Calling user action here
14792        self.user_grammar.minus_g_t_term(&minus_g_t_term_built)?;
14793        self.push(ASTType::MinusGTTerm(minus_g_t_term_built), context);
14794        Ok(())
14795    }
14796
14797    /// Semantic action for production 9:
14798    ///
14799    /// `LTMinusTerm: '<-' : Token;`
14800    ///
14801    #[parol_runtime::function_name::named]
14802    fn l_t_minus_term(&mut self, l_t_minus_term: &ParseTreeType<'t>) -> Result<()> {
14803        let context = function_name!();
14804        trace!("{}", self.trace_item_stack(context));
14805        let l_t_minus_term = l_t_minus_term
14806            .token()?
14807            .try_into()
14808            .map_err(parol_runtime::ParolError::UserError)?;
14809        let l_t_minus_term_built = LTMinusTerm { l_t_minus_term };
14810        // Calling user action here
14811        self.user_grammar.l_t_minus_term(&l_t_minus_term_built)?;
14812        self.push(ASTType::LTMinusTerm(l_t_minus_term_built), context);
14813        Ok(())
14814    }
14815
14816    /// Semantic action for production 10:
14817    ///
14818    /// `PlusColonTerm: '+:' : Token;`
14819    ///
14820    #[parol_runtime::function_name::named]
14821    fn plus_colon_term(&mut self, plus_colon_term: &ParseTreeType<'t>) -> Result<()> {
14822        let context = function_name!();
14823        trace!("{}", self.trace_item_stack(context));
14824        let plus_colon_term = plus_colon_term
14825            .token()?
14826            .try_into()
14827            .map_err(parol_runtime::ParolError::UserError)?;
14828        let plus_colon_term_built = PlusColonTerm { plus_colon_term };
14829        // Calling user action here
14830        self.user_grammar.plus_colon_term(&plus_colon_term_built)?;
14831        self.push(ASTType::PlusColonTerm(plus_colon_term_built), context);
14832        Ok(())
14833    }
14834
14835    /// Semantic action for production 11:
14836    ///
14837    /// `AssignmentOperatorTerm: "\+=|-=|\*=|/=|%=|&=|\|=|\^=|<<=|>>=|<<<=|>>>=" : Token;`
14838    ///
14839    #[parol_runtime::function_name::named]
14840    fn assignment_operator_term(
14841        &mut self,
14842        assignment_operator_term: &ParseTreeType<'t>,
14843    ) -> Result<()> {
14844        let context = function_name!();
14845        trace!("{}", self.trace_item_stack(context));
14846        let assignment_operator_term = assignment_operator_term
14847            .token()?
14848            .try_into()
14849            .map_err(parol_runtime::ParolError::UserError)?;
14850        let assignment_operator_term_built = AssignmentOperatorTerm {
14851            assignment_operator_term,
14852        };
14853        // Calling user action here
14854        self.user_grammar
14855            .assignment_operator_term(&assignment_operator_term_built)?;
14856        self.push(
14857            ASTType::AssignmentOperatorTerm(assignment_operator_term_built),
14858            context,
14859        );
14860        Ok(())
14861    }
14862
14863    /// Semantic action for production 12:
14864    ///
14865    /// `DiamondOperatorTerm: '<>' : Token;`
14866    ///
14867    #[parol_runtime::function_name::named]
14868    fn diamond_operator_term(&mut self, diamond_operator_term: &ParseTreeType<'t>) -> Result<()> {
14869        let context = function_name!();
14870        trace!("{}", self.trace_item_stack(context));
14871        let diamond_operator_term = diamond_operator_term
14872            .token()?
14873            .try_into()
14874            .map_err(parol_runtime::ParolError::UserError)?;
14875        let diamond_operator_term_built = DiamondOperatorTerm {
14876            diamond_operator_term,
14877        };
14878        // Calling user action here
14879        self.user_grammar
14880            .diamond_operator_term(&diamond_operator_term_built)?;
14881        self.push(
14882            ASTType::DiamondOperatorTerm(diamond_operator_term_built),
14883            context,
14884        );
14885        Ok(())
14886    }
14887
14888    /// Semantic action for production 13:
14889    ///
14890    /// `Operator08Term: "\*\*" : Token;`
14891    ///
14892    #[parol_runtime::function_name::named]
14893    fn operator08_term(&mut self, operator08_term: &ParseTreeType<'t>) -> Result<()> {
14894        let context = function_name!();
14895        trace!("{}", self.trace_item_stack(context));
14896        let operator08_term = operator08_term
14897            .token()?
14898            .try_into()
14899            .map_err(parol_runtime::ParolError::UserError)?;
14900        let operator08_term_built = Operator08Term { operator08_term };
14901        // Calling user action here
14902        self.user_grammar.operator08_term(&operator08_term_built)?;
14903        self.push(ASTType::Operator08Term(operator08_term_built), context);
14904        Ok(())
14905    }
14906
14907    /// Semantic action for production 14:
14908    ///
14909    /// `Operator07Term: "/|%" : Token;`
14910    ///
14911    #[parol_runtime::function_name::named]
14912    fn operator07_term(&mut self, operator07_term: &ParseTreeType<'t>) -> Result<()> {
14913        let context = function_name!();
14914        trace!("{}", self.trace_item_stack(context));
14915        let operator07_term = operator07_term
14916            .token()?
14917            .try_into()
14918            .map_err(parol_runtime::ParolError::UserError)?;
14919        let operator07_term_built = Operator07Term { operator07_term };
14920        // Calling user action here
14921        self.user_grammar.operator07_term(&operator07_term_built)?;
14922        self.push(ASTType::Operator07Term(operator07_term_built), context);
14923        Ok(())
14924    }
14925
14926    /// Semantic action for production 15:
14927    ///
14928    /// `Operator06Term: "\+|-" : Token;`
14929    ///
14930    #[parol_runtime::function_name::named]
14931    fn operator06_term(&mut self, operator06_term: &ParseTreeType<'t>) -> Result<()> {
14932        let context = function_name!();
14933        trace!("{}", self.trace_item_stack(context));
14934        let operator06_term = operator06_term
14935            .token()?
14936            .try_into()
14937            .map_err(parol_runtime::ParolError::UserError)?;
14938        let operator06_term_built = Operator06Term { operator06_term };
14939        // Calling user action here
14940        self.user_grammar.operator06_term(&operator06_term_built)?;
14941        self.push(ASTType::Operator06Term(operator06_term_built), context);
14942        Ok(())
14943    }
14944
14945    /// Semantic action for production 16:
14946    ///
14947    /// `Operator02Term: "<<<|>>>|<<|>>|==\?|!=\?|==|!=|<=|>=|<:|>:" : Token;`
14948    ///
14949    #[parol_runtime::function_name::named]
14950    fn operator02_term(&mut self, operator02_term: &ParseTreeType<'t>) -> Result<()> {
14951        let context = function_name!();
14952        trace!("{}", self.trace_item_stack(context));
14953        let operator02_term = operator02_term
14954            .token()?
14955            .try_into()
14956            .map_err(parol_runtime::ParolError::UserError)?;
14957        let operator02_term_built = Operator02Term { operator02_term };
14958        // Calling user action here
14959        self.user_grammar.operator02_term(&operator02_term_built)?;
14960        self.push(ASTType::Operator02Term(operator02_term_built), context);
14961        Ok(())
14962    }
14963
14964    /// Semantic action for production 17:
14965    ///
14966    /// `Operator01Term: "\|\||&&" : Token;`
14967    ///
14968    #[parol_runtime::function_name::named]
14969    fn operator01_term(&mut self, operator01_term: &ParseTreeType<'t>) -> Result<()> {
14970        let context = function_name!();
14971        trace!("{}", self.trace_item_stack(context));
14972        let operator01_term = operator01_term
14973            .token()?
14974            .try_into()
14975            .map_err(parol_runtime::ParolError::UserError)?;
14976        let operator01_term_built = Operator01Term { operator01_term };
14977        // Calling user action here
14978        self.user_grammar.operator01_term(&operator01_term_built)?;
14979        self.push(ASTType::Operator01Term(operator01_term_built), context);
14980        Ok(())
14981    }
14982
14983    /// Semantic action for production 18:
14984    ///
14985    /// `Operator05Term: "&" : Token;`
14986    ///
14987    #[parol_runtime::function_name::named]
14988    fn operator05_term(&mut self, operator05_term: &ParseTreeType<'t>) -> Result<()> {
14989        let context = function_name!();
14990        trace!("{}", self.trace_item_stack(context));
14991        let operator05_term = operator05_term
14992            .token()?
14993            .try_into()
14994            .map_err(parol_runtime::ParolError::UserError)?;
14995        let operator05_term_built = Operator05Term { operator05_term };
14996        // Calling user action here
14997        self.user_grammar.operator05_term(&operator05_term_built)?;
14998        self.push(ASTType::Operator05Term(operator05_term_built), context);
14999        Ok(())
15000    }
15001
15002    /// Semantic action for production 19:
15003    ///
15004    /// `Operator04Term: "\^|~\^" : Token;`
15005    ///
15006    #[parol_runtime::function_name::named]
15007    fn operator04_term(&mut self, operator04_term: &ParseTreeType<'t>) -> Result<()> {
15008        let context = function_name!();
15009        trace!("{}", self.trace_item_stack(context));
15010        let operator04_term = operator04_term
15011            .token()?
15012            .try_into()
15013            .map_err(parol_runtime::ParolError::UserError)?;
15014        let operator04_term_built = Operator04Term { operator04_term };
15015        // Calling user action here
15016        self.user_grammar.operator04_term(&operator04_term_built)?;
15017        self.push(ASTType::Operator04Term(operator04_term_built), context);
15018        Ok(())
15019    }
15020
15021    /// Semantic action for production 20:
15022    ///
15023    /// `Operator03Term: "\|" : Token;`
15024    ///
15025    #[parol_runtime::function_name::named]
15026    fn operator03_term(&mut self, operator03_term: &ParseTreeType<'t>) -> Result<()> {
15027        let context = function_name!();
15028        trace!("{}", self.trace_item_stack(context));
15029        let operator03_term = operator03_term
15030            .token()?
15031            .try_into()
15032            .map_err(parol_runtime::ParolError::UserError)?;
15033        let operator03_term_built = Operator03Term { operator03_term };
15034        // Calling user action here
15035        self.user_grammar.operator03_term(&operator03_term_built)?;
15036        self.push(ASTType::Operator03Term(operator03_term_built), context);
15037        Ok(())
15038    }
15039
15040    /// Semantic action for production 21:
15041    ///
15042    /// `UnaryOperatorTerm: "~&|~\||!|~" : Token;`
15043    ///
15044    #[parol_runtime::function_name::named]
15045    fn unary_operator_term(&mut self, unary_operator_term: &ParseTreeType<'t>) -> Result<()> {
15046        let context = function_name!();
15047        trace!("{}", self.trace_item_stack(context));
15048        let unary_operator_term = unary_operator_term
15049            .token()?
15050            .try_into()
15051            .map_err(parol_runtime::ParolError::UserError)?;
15052        let unary_operator_term_built = UnaryOperatorTerm {
15053            unary_operator_term,
15054        };
15055        // Calling user action here
15056        self.user_grammar
15057            .unary_operator_term(&unary_operator_term_built)?;
15058        self.push(
15059            ASTType::UnaryOperatorTerm(unary_operator_term_built),
15060            context,
15061        );
15062        Ok(())
15063    }
15064
15065    /// Semantic action for production 22:
15066    ///
15067    /// `ColonColonLAngleTerm: <INITIAL, Generic>'::<' : Token;`
15068    ///
15069    #[parol_runtime::function_name::named]
15070    fn colon_colon_l_angle_term(
15071        &mut self,
15072        colon_colon_l_angle_term: &ParseTreeType<'t>,
15073    ) -> Result<()> {
15074        let context = function_name!();
15075        trace!("{}", self.trace_item_stack(context));
15076        let colon_colon_l_angle_term = colon_colon_l_angle_term
15077            .token()?
15078            .try_into()
15079            .map_err(parol_runtime::ParolError::UserError)?;
15080        let colon_colon_l_angle_term_built = ColonColonLAngleTerm {
15081            colon_colon_l_angle_term,
15082        };
15083        // Calling user action here
15084        self.user_grammar
15085            .colon_colon_l_angle_term(&colon_colon_l_angle_term_built)?;
15086        self.push(
15087            ASTType::ColonColonLAngleTerm(colon_colon_l_angle_term_built),
15088            context,
15089        );
15090        Ok(())
15091    }
15092
15093    /// Semantic action for production 23:
15094    ///
15095    /// `ColonColonTerm: <INITIAL, Generic>'::' : Token;`
15096    ///
15097    #[parol_runtime::function_name::named]
15098    fn colon_colon_term(&mut self, colon_colon_term: &ParseTreeType<'t>) -> Result<()> {
15099        let context = function_name!();
15100        trace!("{}", self.trace_item_stack(context));
15101        let colon_colon_term = colon_colon_term
15102            .token()?
15103            .try_into()
15104            .map_err(parol_runtime::ParolError::UserError)?;
15105        let colon_colon_term_built = ColonColonTerm { colon_colon_term };
15106        // Calling user action here
15107        self.user_grammar
15108            .colon_colon_term(&colon_colon_term_built)?;
15109        self.push(ASTType::ColonColonTerm(colon_colon_term_built), context);
15110        Ok(())
15111    }
15112
15113    /// Semantic action for production 24:
15114    ///
15115    /// `ColonTerm: <INITIAL, Generic>':' : Token;`
15116    ///
15117    #[parol_runtime::function_name::named]
15118    fn colon_term(&mut self, colon_term: &ParseTreeType<'t>) -> Result<()> {
15119        let context = function_name!();
15120        trace!("{}", self.trace_item_stack(context));
15121        let colon_term = colon_term
15122            .token()?
15123            .try_into()
15124            .map_err(parol_runtime::ParolError::UserError)?;
15125        let colon_term_built = ColonTerm { colon_term };
15126        // Calling user action here
15127        self.user_grammar.colon_term(&colon_term_built)?;
15128        self.push(ASTType::ColonTerm(colon_term_built), context);
15129        Ok(())
15130    }
15131
15132    /// Semantic action for production 25:
15133    ///
15134    /// `CommaTerm: <INITIAL, Generic, Attr>',' : Token;`
15135    ///
15136    #[parol_runtime::function_name::named]
15137    fn comma_term(&mut self, comma_term: &ParseTreeType<'t>) -> Result<()> {
15138        let context = function_name!();
15139        trace!("{}", self.trace_item_stack(context));
15140        let comma_term = comma_term
15141            .token()?
15142            .try_into()
15143            .map_err(parol_runtime::ParolError::UserError)?;
15144        let comma_term_built = CommaTerm { comma_term };
15145        // Calling user action here
15146        self.user_grammar.comma_term(&comma_term_built)?;
15147        self.push(ASTType::CommaTerm(comma_term_built), context);
15148        Ok(())
15149    }
15150
15151    /// Semantic action for production 26:
15152    ///
15153    /// `DotDotEquTerm: '..=' : Token;`
15154    ///
15155    #[parol_runtime::function_name::named]
15156    fn dot_dot_equ_term(&mut self, dot_dot_equ_term: &ParseTreeType<'t>) -> Result<()> {
15157        let context = function_name!();
15158        trace!("{}", self.trace_item_stack(context));
15159        let dot_dot_equ_term = dot_dot_equ_term
15160            .token()?
15161            .try_into()
15162            .map_err(parol_runtime::ParolError::UserError)?;
15163        let dot_dot_equ_term_built = DotDotEquTerm { dot_dot_equ_term };
15164        // Calling user action here
15165        self.user_grammar
15166            .dot_dot_equ_term(&dot_dot_equ_term_built)?;
15167        self.push(ASTType::DotDotEquTerm(dot_dot_equ_term_built), context);
15168        Ok(())
15169    }
15170
15171    /// Semantic action for production 27:
15172    ///
15173    /// `DotDotTerm: '..' : Token;`
15174    ///
15175    #[parol_runtime::function_name::named]
15176    fn dot_dot_term(&mut self, dot_dot_term: &ParseTreeType<'t>) -> Result<()> {
15177        let context = function_name!();
15178        trace!("{}", self.trace_item_stack(context));
15179        let dot_dot_term = dot_dot_term
15180            .token()?
15181            .try_into()
15182            .map_err(parol_runtime::ParolError::UserError)?;
15183        let dot_dot_term_built = DotDotTerm { dot_dot_term };
15184        // Calling user action here
15185        self.user_grammar.dot_dot_term(&dot_dot_term_built)?;
15186        self.push(ASTType::DotDotTerm(dot_dot_term_built), context);
15187        Ok(())
15188    }
15189
15190    /// Semantic action for production 28:
15191    ///
15192    /// `DotTerm: <INITIAL, Generic>'.' : Token;`
15193    ///
15194    #[parol_runtime::function_name::named]
15195    fn dot_term(&mut self, dot_term: &ParseTreeType<'t>) -> Result<()> {
15196        let context = function_name!();
15197        trace!("{}", self.trace_item_stack(context));
15198        let dot_term = dot_term
15199            .token()?
15200            .try_into()
15201            .map_err(parol_runtime::ParolError::UserError)?;
15202        let dot_term_built = DotTerm { dot_term };
15203        // Calling user action here
15204        self.user_grammar.dot_term(&dot_term_built)?;
15205        self.push(ASTType::DotTerm(dot_term_built), context);
15206        Ok(())
15207    }
15208
15209    /// Semantic action for production 29:
15210    ///
15211    /// `EquTerm: <INITIAL, Generic>'=' : Token;`
15212    ///
15213    #[parol_runtime::function_name::named]
15214    fn equ_term(&mut self, equ_term: &ParseTreeType<'t>) -> Result<()> {
15215        let context = function_name!();
15216        trace!("{}", self.trace_item_stack(context));
15217        let equ_term = equ_term
15218            .token()?
15219            .try_into()
15220            .map_err(parol_runtime::ParolError::UserError)?;
15221        let equ_term_built = EquTerm { equ_term };
15222        // Calling user action here
15223        self.user_grammar.equ_term(&equ_term_built)?;
15224        self.push(ASTType::EquTerm(equ_term_built), context);
15225        Ok(())
15226    }
15227
15228    /// Semantic action for production 30:
15229    ///
15230    /// `HashLBracketTerm: '#[' : Token;`
15231    ///
15232    #[parol_runtime::function_name::named]
15233    fn hash_l_bracket_term(&mut self, hash_l_bracket_term: &ParseTreeType<'t>) -> Result<()> {
15234        let context = function_name!();
15235        trace!("{}", self.trace_item_stack(context));
15236        let hash_l_bracket_term = hash_l_bracket_term
15237            .token()?
15238            .try_into()
15239            .map_err(parol_runtime::ParolError::UserError)?;
15240        let hash_l_bracket_term_built = HashLBracketTerm {
15241            hash_l_bracket_term,
15242        };
15243        // Calling user action here
15244        self.user_grammar
15245            .hash_l_bracket_term(&hash_l_bracket_term_built)?;
15246        self.push(
15247            ASTType::HashLBracketTerm(hash_l_bracket_term_built),
15248            context,
15249        );
15250        Ok(())
15251    }
15252
15253    /// Semantic action for production 31:
15254    ///
15255    /// `HashTerm: '#' : Token;`
15256    ///
15257    #[parol_runtime::function_name::named]
15258    fn hash_term(&mut self, hash_term: &ParseTreeType<'t>) -> Result<()> {
15259        let context = function_name!();
15260        trace!("{}", self.trace_item_stack(context));
15261        let hash_term = hash_term
15262            .token()?
15263            .try_into()
15264            .map_err(parol_runtime::ParolError::UserError)?;
15265        let hash_term_built = HashTerm { hash_term };
15266        // Calling user action here
15267        self.user_grammar.hash_term(&hash_term_built)?;
15268        self.push(ASTType::HashTerm(hash_term_built), context);
15269        Ok(())
15270    }
15271
15272    /// Semantic action for production 32:
15273    ///
15274    /// `LAngleTerm: '<' : Token;`
15275    ///
15276    #[parol_runtime::function_name::named]
15277    fn l_angle_term(&mut self, l_angle_term: &ParseTreeType<'t>) -> Result<()> {
15278        let context = function_name!();
15279        trace!("{}", self.trace_item_stack(context));
15280        let l_angle_term = l_angle_term
15281            .token()?
15282            .try_into()
15283            .map_err(parol_runtime::ParolError::UserError)?;
15284        let l_angle_term_built = LAngleTerm { l_angle_term };
15285        // Calling user action here
15286        self.user_grammar.l_angle_term(&l_angle_term_built)?;
15287        self.push(ASTType::LAngleTerm(l_angle_term_built), context);
15288        Ok(())
15289    }
15290
15291    /// Semantic action for production 33:
15292    ///
15293    /// `QuestionTerm: '?' : Token;`
15294    ///
15295    #[parol_runtime::function_name::named]
15296    fn question_term(&mut self, question_term: &ParseTreeType<'t>) -> Result<()> {
15297        let context = function_name!();
15298        trace!("{}", self.trace_item_stack(context));
15299        let question_term = question_term
15300            .token()?
15301            .try_into()
15302            .map_err(parol_runtime::ParolError::UserError)?;
15303        let question_term_built = QuestionTerm { question_term };
15304        // Calling user action here
15305        self.user_grammar.question_term(&question_term_built)?;
15306        self.push(ASTType::QuestionTerm(question_term_built), context);
15307        Ok(())
15308    }
15309
15310    /// Semantic action for production 34:
15311    ///
15312    /// `QuoteLBraceTerm: "'\{" : Token;`
15313    ///
15314    #[parol_runtime::function_name::named]
15315    fn quote_l_brace_term(&mut self, quote_l_brace_term: &ParseTreeType<'t>) -> Result<()> {
15316        let context = function_name!();
15317        trace!("{}", self.trace_item_stack(context));
15318        let quote_l_brace_term = quote_l_brace_term
15319            .token()?
15320            .try_into()
15321            .map_err(parol_runtime::ParolError::UserError)?;
15322        let quote_l_brace_term_built = QuoteLBraceTerm { quote_l_brace_term };
15323        // Calling user action here
15324        self.user_grammar
15325            .quote_l_brace_term(&quote_l_brace_term_built)?;
15326        self.push(ASTType::QuoteLBraceTerm(quote_l_brace_term_built), context);
15327        Ok(())
15328    }
15329
15330    /// Semantic action for production 35:
15331    ///
15332    /// `QuoteTerm: "'" : Token;`
15333    ///
15334    #[parol_runtime::function_name::named]
15335    fn quote_term(&mut self, quote_term: &ParseTreeType<'t>) -> Result<()> {
15336        let context = function_name!();
15337        trace!("{}", self.trace_item_stack(context));
15338        let quote_term = quote_term
15339            .token()?
15340            .try_into()
15341            .map_err(parol_runtime::ParolError::UserError)?;
15342        let quote_term_built = QuoteTerm { quote_term };
15343        // Calling user action here
15344        self.user_grammar.quote_term(&quote_term_built)?;
15345        self.push(ASTType::QuoteTerm(quote_term_built), context);
15346        Ok(())
15347    }
15348
15349    /// Semantic action for production 36:
15350    ///
15351    /// `EscapedLBraceTerm: <EmbedBody, EmbedBodyInner>'\{' : Token;`
15352    ///
15353    #[parol_runtime::function_name::named]
15354    fn escaped_l_brace_term(&mut self, escaped_l_brace_term: &ParseTreeType<'t>) -> Result<()> {
15355        let context = function_name!();
15356        trace!("{}", self.trace_item_stack(context));
15357        let escaped_l_brace_term = escaped_l_brace_term
15358            .token()?
15359            .try_into()
15360            .map_err(parol_runtime::ParolError::UserError)?;
15361        let escaped_l_brace_term_built = EscapedLBraceTerm {
15362            escaped_l_brace_term,
15363        };
15364        // Calling user action here
15365        self.user_grammar
15366            .escaped_l_brace_term(&escaped_l_brace_term_built)?;
15367        self.push(
15368            ASTType::EscapedLBraceTerm(escaped_l_brace_term_built),
15369            context,
15370        );
15371        Ok(())
15372    }
15373
15374    /// Semantic action for production 37:
15375    ///
15376    /// `TripleLBraceTerm: <EmbedHeader>'{{{' : Token;`
15377    ///
15378    #[parol_runtime::function_name::named]
15379    fn triple_l_brace_term(&mut self, triple_l_brace_term: &ParseTreeType<'t>) -> Result<()> {
15380        let context = function_name!();
15381        trace!("{}", self.trace_item_stack(context));
15382        let triple_l_brace_term = triple_l_brace_term
15383            .token()?
15384            .try_into()
15385            .map_err(parol_runtime::ParolError::UserError)?;
15386        let triple_l_brace_term_built = TripleLBraceTerm {
15387            triple_l_brace_term,
15388        };
15389        // Calling user action here
15390        self.user_grammar
15391            .triple_l_brace_term(&triple_l_brace_term_built)?;
15392        self.push(
15393            ASTType::TripleLBraceTerm(triple_l_brace_term_built),
15394            context,
15395        );
15396        Ok(())
15397    }
15398
15399    /// Semantic action for production 38:
15400    ///
15401    /// `LBraceTerm: <INITIAL, EmbedBody, EmbedBodyInner, Attr>'{' : Token;`
15402    ///
15403    #[parol_runtime::function_name::named]
15404    fn l_brace_term(&mut self, l_brace_term: &ParseTreeType<'t>) -> Result<()> {
15405        let context = function_name!();
15406        trace!("{}", self.trace_item_stack(context));
15407        let l_brace_term = l_brace_term
15408            .token()?
15409            .try_into()
15410            .map_err(parol_runtime::ParolError::UserError)?;
15411        let l_brace_term_built = LBraceTerm { l_brace_term };
15412        // Calling user action here
15413        self.user_grammar.l_brace_term(&l_brace_term_built)?;
15414        self.push(ASTType::LBraceTerm(l_brace_term_built), context);
15415        Ok(())
15416    }
15417
15418    /// Semantic action for production 39:
15419    ///
15420    /// `LBracketTerm: <INITIAL, Attr>'[' : Token;`
15421    ///
15422    #[parol_runtime::function_name::named]
15423    fn l_bracket_term(&mut self, l_bracket_term: &ParseTreeType<'t>) -> Result<()> {
15424        let context = function_name!();
15425        trace!("{}", self.trace_item_stack(context));
15426        let l_bracket_term = l_bracket_term
15427            .token()?
15428            .try_into()
15429            .map_err(parol_runtime::ParolError::UserError)?;
15430        let l_bracket_term_built = LBracketTerm { l_bracket_term };
15431        // Calling user action here
15432        self.user_grammar.l_bracket_term(&l_bracket_term_built)?;
15433        self.push(ASTType::LBracketTerm(l_bracket_term_built), context);
15434        Ok(())
15435    }
15436
15437    /// Semantic action for production 40:
15438    ///
15439    /// `LParenTerm: <INITIAL, EmbedHeader, Attr>'(' : Token;`
15440    ///
15441    #[parol_runtime::function_name::named]
15442    fn l_paren_term(&mut self, l_paren_term: &ParseTreeType<'t>) -> Result<()> {
15443        let context = function_name!();
15444        trace!("{}", self.trace_item_stack(context));
15445        let l_paren_term = l_paren_term
15446            .token()?
15447            .try_into()
15448            .map_err(parol_runtime::ParolError::UserError)?;
15449        let l_paren_term_built = LParenTerm { l_paren_term };
15450        // Calling user action here
15451        self.user_grammar.l_paren_term(&l_paren_term_built)?;
15452        self.push(ASTType::LParenTerm(l_paren_term_built), context);
15453        Ok(())
15454    }
15455
15456    /// Semantic action for production 41:
15457    ///
15458    /// `RAngleTerm: <INITIAL, Generic>'>' : Token;`
15459    ///
15460    #[parol_runtime::function_name::named]
15461    fn r_angle_term(&mut self, r_angle_term: &ParseTreeType<'t>) -> Result<()> {
15462        let context = function_name!();
15463        trace!("{}", self.trace_item_stack(context));
15464        let r_angle_term = r_angle_term
15465            .token()?
15466            .try_into()
15467            .map_err(parol_runtime::ParolError::UserError)?;
15468        let r_angle_term_built = RAngleTerm { r_angle_term };
15469        // Calling user action here
15470        self.user_grammar.r_angle_term(&r_angle_term_built)?;
15471        self.push(ASTType::RAngleTerm(r_angle_term_built), context);
15472        Ok(())
15473    }
15474
15475    /// Semantic action for production 42:
15476    ///
15477    /// `EscapedRBraceTerm: '\}' : Token;`
15478    ///
15479    #[parol_runtime::function_name::named]
15480    fn escaped_r_brace_term(&mut self, escaped_r_brace_term: &ParseTreeType<'t>) -> Result<()> {
15481        let context = function_name!();
15482        trace!("{}", self.trace_item_stack(context));
15483        let escaped_r_brace_term = escaped_r_brace_term
15484            .token()?
15485            .try_into()
15486            .map_err(parol_runtime::ParolError::UserError)?;
15487        let escaped_r_brace_term_built = EscapedRBraceTerm {
15488            escaped_r_brace_term,
15489        };
15490        // Calling user action here
15491        self.user_grammar
15492            .escaped_r_brace_term(&escaped_r_brace_term_built)?;
15493        self.push(
15494            ASTType::EscapedRBraceTerm(escaped_r_brace_term_built),
15495            context,
15496        );
15497        Ok(())
15498    }
15499
15500    /// Semantic action for production 43:
15501    ///
15502    /// `TripleRBraceTerm: <EmbedBody>'}}}' : Token;`
15503    ///
15504    #[parol_runtime::function_name::named]
15505    fn triple_r_brace_term(&mut self, triple_r_brace_term: &ParseTreeType<'t>) -> Result<()> {
15506        let context = function_name!();
15507        trace!("{}", self.trace_item_stack(context));
15508        let triple_r_brace_term = triple_r_brace_term
15509            .token()?
15510            .try_into()
15511            .map_err(parol_runtime::ParolError::UserError)?;
15512        let triple_r_brace_term_built = TripleRBraceTerm {
15513            triple_r_brace_term,
15514        };
15515        // Calling user action here
15516        self.user_grammar
15517            .triple_r_brace_term(&triple_r_brace_term_built)?;
15518        self.push(
15519            ASTType::TripleRBraceTerm(triple_r_brace_term_built),
15520            context,
15521        );
15522        Ok(())
15523    }
15524
15525    /// Semantic action for production 44:
15526    ///
15527    /// `RBraceTerm: <INITIAL, EmbedBodyInner, Attr>'}' : Token;`
15528    ///
15529    #[parol_runtime::function_name::named]
15530    fn r_brace_term(&mut self, r_brace_term: &ParseTreeType<'t>) -> Result<()> {
15531        let context = function_name!();
15532        trace!("{}", self.trace_item_stack(context));
15533        let r_brace_term = r_brace_term
15534            .token()?
15535            .try_into()
15536            .map_err(parol_runtime::ParolError::UserError)?;
15537        let r_brace_term_built = RBraceTerm { r_brace_term };
15538        // Calling user action here
15539        self.user_grammar.r_brace_term(&r_brace_term_built)?;
15540        self.push(ASTType::RBraceTerm(r_brace_term_built), context);
15541        Ok(())
15542    }
15543
15544    /// Semantic action for production 45:
15545    ///
15546    /// `RBracketTerm: <INITIAL, Attr>']' : Token;`
15547    ///
15548    #[parol_runtime::function_name::named]
15549    fn r_bracket_term(&mut self, r_bracket_term: &ParseTreeType<'t>) -> Result<()> {
15550        let context = function_name!();
15551        trace!("{}", self.trace_item_stack(context));
15552        let r_bracket_term = r_bracket_term
15553            .token()?
15554            .try_into()
15555            .map_err(parol_runtime::ParolError::UserError)?;
15556        let r_bracket_term_built = RBracketTerm { r_bracket_term };
15557        // Calling user action here
15558        self.user_grammar.r_bracket_term(&r_bracket_term_built)?;
15559        self.push(ASTType::RBracketTerm(r_bracket_term_built), context);
15560        Ok(())
15561    }
15562
15563    /// Semantic action for production 46:
15564    ///
15565    /// `RParenTerm: <INITIAL, EmbedHeader, Attr>')' : Token;`
15566    ///
15567    #[parol_runtime::function_name::named]
15568    fn r_paren_term(&mut self, r_paren_term: &ParseTreeType<'t>) -> Result<()> {
15569        let context = function_name!();
15570        trace!("{}", self.trace_item_stack(context));
15571        let r_paren_term = r_paren_term
15572            .token()?
15573            .try_into()
15574            .map_err(parol_runtime::ParolError::UserError)?;
15575        let r_paren_term_built = RParenTerm { r_paren_term };
15576        // Calling user action here
15577        self.user_grammar.r_paren_term(&r_paren_term_built)?;
15578        self.push(ASTType::RParenTerm(r_paren_term_built), context);
15579        Ok(())
15580    }
15581
15582    /// Semantic action for production 47:
15583    ///
15584    /// `SemicolonTerm: ';' : Token;`
15585    ///
15586    #[parol_runtime::function_name::named]
15587    fn semicolon_term(&mut self, semicolon_term: &ParseTreeType<'t>) -> Result<()> {
15588        let context = function_name!();
15589        trace!("{}", self.trace_item_stack(context));
15590        let semicolon_term = semicolon_term
15591            .token()?
15592            .try_into()
15593            .map_err(parol_runtime::ParolError::UserError)?;
15594        let semicolon_term_built = SemicolonTerm { semicolon_term };
15595        // Calling user action here
15596        self.user_grammar.semicolon_term(&semicolon_term_built)?;
15597        self.push(ASTType::SemicolonTerm(semicolon_term_built), context);
15598        Ok(())
15599    }
15600
15601    /// Semantic action for production 48:
15602    ///
15603    /// `StarTerm: '*' : Token;`
15604    ///
15605    #[parol_runtime::function_name::named]
15606    fn star_term(&mut self, star_term: &ParseTreeType<'t>) -> Result<()> {
15607        let context = function_name!();
15608        trace!("{}", self.trace_item_stack(context));
15609        let star_term = star_term
15610            .token()?
15611            .try_into()
15612            .map_err(parol_runtime::ParolError::UserError)?;
15613        let star_term_built = StarTerm { star_term };
15614        // Calling user action here
15615        self.user_grammar.star_term(&star_term_built)?;
15616        self.push(ASTType::StarTerm(star_term_built), context);
15617        Ok(())
15618    }
15619
15620    /// Semantic action for production 49:
15621    ///
15622    /// `AliasTerm: <INITIAL, Generic>'alias' : Token;`
15623    ///
15624    #[parol_runtime::function_name::named]
15625    fn alias_term(&mut self, alias_term: &ParseTreeType<'t>) -> Result<()> {
15626        let context = function_name!();
15627        trace!("{}", self.trace_item_stack(context));
15628        let alias_term = alias_term
15629            .token()?
15630            .try_into()
15631            .map_err(parol_runtime::ParolError::UserError)?;
15632        let alias_term_built = AliasTerm { alias_term };
15633        // Calling user action here
15634        self.user_grammar.alias_term(&alias_term_built)?;
15635        self.push(ASTType::AliasTerm(alias_term_built), context);
15636        Ok(())
15637    }
15638
15639    /// Semantic action for production 50:
15640    ///
15641    /// `AlwaysCombTerm: <INITIAL, Generic>'always_comb' : Token;`
15642    ///
15643    #[parol_runtime::function_name::named]
15644    fn always_comb_term(&mut self, always_comb_term: &ParseTreeType<'t>) -> Result<()> {
15645        let context = function_name!();
15646        trace!("{}", self.trace_item_stack(context));
15647        let always_comb_term = always_comb_term
15648            .token()?
15649            .try_into()
15650            .map_err(parol_runtime::ParolError::UserError)?;
15651        let always_comb_term_built = AlwaysCombTerm { always_comb_term };
15652        // Calling user action here
15653        self.user_grammar
15654            .always_comb_term(&always_comb_term_built)?;
15655        self.push(ASTType::AlwaysCombTerm(always_comb_term_built), context);
15656        Ok(())
15657    }
15658
15659    /// Semantic action for production 51:
15660    ///
15661    /// `AlwaysFfTerm: <INITIAL, Generic>'always_ff' : Token;`
15662    ///
15663    #[parol_runtime::function_name::named]
15664    fn always_ff_term(&mut self, always_ff_term: &ParseTreeType<'t>) -> Result<()> {
15665        let context = function_name!();
15666        trace!("{}", self.trace_item_stack(context));
15667        let always_ff_term = always_ff_term
15668            .token()?
15669            .try_into()
15670            .map_err(parol_runtime::ParolError::UserError)?;
15671        let always_ff_term_built = AlwaysFfTerm { always_ff_term };
15672        // Calling user action here
15673        self.user_grammar.always_ff_term(&always_ff_term_built)?;
15674        self.push(ASTType::AlwaysFfTerm(always_ff_term_built), context);
15675        Ok(())
15676    }
15677
15678    /// Semantic action for production 52:
15679    ///
15680    /// `AssignTerm: <INITIAL, Generic>'assign' : Token;`
15681    ///
15682    #[parol_runtime::function_name::named]
15683    fn assign_term(&mut self, assign_term: &ParseTreeType<'t>) -> Result<()> {
15684        let context = function_name!();
15685        trace!("{}", self.trace_item_stack(context));
15686        let assign_term = assign_term
15687            .token()?
15688            .try_into()
15689            .map_err(parol_runtime::ParolError::UserError)?;
15690        let assign_term_built = AssignTerm { assign_term };
15691        // Calling user action here
15692        self.user_grammar.assign_term(&assign_term_built)?;
15693        self.push(ASTType::AssignTerm(assign_term_built), context);
15694        Ok(())
15695    }
15696
15697    /// Semantic action for production 53:
15698    ///
15699    /// `AsTerm: <INITIAL, Generic>'as' : Token;`
15700    ///
15701    #[parol_runtime::function_name::named]
15702    fn as_term(&mut self, as_term: &ParseTreeType<'t>) -> Result<()> {
15703        let context = function_name!();
15704        trace!("{}", self.trace_item_stack(context));
15705        let as_term = as_term
15706            .token()?
15707            .try_into()
15708            .map_err(parol_runtime::ParolError::UserError)?;
15709        let as_term_built = AsTerm { as_term };
15710        // Calling user action here
15711        self.user_grammar.as_term(&as_term_built)?;
15712        self.push(ASTType::AsTerm(as_term_built), context);
15713        Ok(())
15714    }
15715
15716    /// Semantic action for production 54:
15717    ///
15718    /// `BindTerm: <INITIAL, Generic>'bind' : Token;`
15719    ///
15720    #[parol_runtime::function_name::named]
15721    fn bind_term(&mut self, bind_term: &ParseTreeType<'t>) -> Result<()> {
15722        let context = function_name!();
15723        trace!("{}", self.trace_item_stack(context));
15724        let bind_term = bind_term
15725            .token()?
15726            .try_into()
15727            .map_err(parol_runtime::ParolError::UserError)?;
15728        let bind_term_built = BindTerm { bind_term };
15729        // Calling user action here
15730        self.user_grammar.bind_term(&bind_term_built)?;
15731        self.push(ASTType::BindTerm(bind_term_built), context);
15732        Ok(())
15733    }
15734
15735    /// Semantic action for production 55:
15736    ///
15737    /// `BitTerm: <INITIAL, Generic>'bit' : Token;`
15738    ///
15739    #[parol_runtime::function_name::named]
15740    fn bit_term(&mut self, bit_term: &ParseTreeType<'t>) -> Result<()> {
15741        let context = function_name!();
15742        trace!("{}", self.trace_item_stack(context));
15743        let bit_term = bit_term
15744            .token()?
15745            .try_into()
15746            .map_err(parol_runtime::ParolError::UserError)?;
15747        let bit_term_built = BitTerm { bit_term };
15748        // Calling user action here
15749        self.user_grammar.bit_term(&bit_term_built)?;
15750        self.push(ASTType::BitTerm(bit_term_built), context);
15751        Ok(())
15752    }
15753
15754    /// Semantic action for production 56:
15755    ///
15756    /// `BlockTerm: <INITIAL, Generic>'block' : Token;`
15757    ///
15758    #[parol_runtime::function_name::named]
15759    fn block_term(&mut self, block_term: &ParseTreeType<'t>) -> Result<()> {
15760        let context = function_name!();
15761        trace!("{}", self.trace_item_stack(context));
15762        let block_term = block_term
15763            .token()?
15764            .try_into()
15765            .map_err(parol_runtime::ParolError::UserError)?;
15766        let block_term_built = BlockTerm { block_term };
15767        // Calling user action here
15768        self.user_grammar.block_term(&block_term_built)?;
15769        self.push(ASTType::BlockTerm(block_term_built), context);
15770        Ok(())
15771    }
15772
15773    /// Semantic action for production 57:
15774    ///
15775    /// `BBoolTerm: <INITIAL, Generic>'bbool' : Token;`
15776    ///
15777    #[parol_runtime::function_name::named]
15778    fn b_bool_term(&mut self, b_bool_term: &ParseTreeType<'t>) -> Result<()> {
15779        let context = function_name!();
15780        trace!("{}", self.trace_item_stack(context));
15781        let b_bool_term = b_bool_term
15782            .token()?
15783            .try_into()
15784            .map_err(parol_runtime::ParolError::UserError)?;
15785        let b_bool_term_built = BBoolTerm { b_bool_term };
15786        // Calling user action here
15787        self.user_grammar.b_bool_term(&b_bool_term_built)?;
15788        self.push(ASTType::BBoolTerm(b_bool_term_built), context);
15789        Ok(())
15790    }
15791
15792    /// Semantic action for production 58:
15793    ///
15794    /// `LBoolTerm: <INITIAL, Generic>'lbool' : Token;`
15795    ///
15796    #[parol_runtime::function_name::named]
15797    fn l_bool_term(&mut self, l_bool_term: &ParseTreeType<'t>) -> Result<()> {
15798        let context = function_name!();
15799        trace!("{}", self.trace_item_stack(context));
15800        let l_bool_term = l_bool_term
15801            .token()?
15802            .try_into()
15803            .map_err(parol_runtime::ParolError::UserError)?;
15804        let l_bool_term_built = LBoolTerm { l_bool_term };
15805        // Calling user action here
15806        self.user_grammar.l_bool_term(&l_bool_term_built)?;
15807        self.push(ASTType::LBoolTerm(l_bool_term_built), context);
15808        Ok(())
15809    }
15810
15811    /// Semantic action for production 59:
15812    ///
15813    /// `CaseTerm: <INITIAL, Generic>'case' : Token;`
15814    ///
15815    #[parol_runtime::function_name::named]
15816    fn case_term(&mut self, case_term: &ParseTreeType<'t>) -> Result<()> {
15817        let context = function_name!();
15818        trace!("{}", self.trace_item_stack(context));
15819        let case_term = case_term
15820            .token()?
15821            .try_into()
15822            .map_err(parol_runtime::ParolError::UserError)?;
15823        let case_term_built = CaseTerm { case_term };
15824        // Calling user action here
15825        self.user_grammar.case_term(&case_term_built)?;
15826        self.push(ASTType::CaseTerm(case_term_built), context);
15827        Ok(())
15828    }
15829
15830    /// Semantic action for production 60:
15831    ///
15832    /// `ClockTerm: <INITIAL, Generic>'clock' : Token;`
15833    ///
15834    #[parol_runtime::function_name::named]
15835    fn clock_term(&mut self, clock_term: &ParseTreeType<'t>) -> Result<()> {
15836        let context = function_name!();
15837        trace!("{}", self.trace_item_stack(context));
15838        let clock_term = clock_term
15839            .token()?
15840            .try_into()
15841            .map_err(parol_runtime::ParolError::UserError)?;
15842        let clock_term_built = ClockTerm { clock_term };
15843        // Calling user action here
15844        self.user_grammar.clock_term(&clock_term_built)?;
15845        self.push(ASTType::ClockTerm(clock_term_built), context);
15846        Ok(())
15847    }
15848
15849    /// Semantic action for production 61:
15850    ///
15851    /// `ClockPosedgeTerm: <INITIAL, Generic>'clock_posedge' : Token;`
15852    ///
15853    #[parol_runtime::function_name::named]
15854    fn clock_posedge_term(&mut self, clock_posedge_term: &ParseTreeType<'t>) -> Result<()> {
15855        let context = function_name!();
15856        trace!("{}", self.trace_item_stack(context));
15857        let clock_posedge_term = clock_posedge_term
15858            .token()?
15859            .try_into()
15860            .map_err(parol_runtime::ParolError::UserError)?;
15861        let clock_posedge_term_built = ClockPosedgeTerm { clock_posedge_term };
15862        // Calling user action here
15863        self.user_grammar
15864            .clock_posedge_term(&clock_posedge_term_built)?;
15865        self.push(ASTType::ClockPosedgeTerm(clock_posedge_term_built), context);
15866        Ok(())
15867    }
15868
15869    /// Semantic action for production 62:
15870    ///
15871    /// `ClockNegedgeTerm: <INITIAL, Generic>'clock_negedge' : Token;`
15872    ///
15873    #[parol_runtime::function_name::named]
15874    fn clock_negedge_term(&mut self, clock_negedge_term: &ParseTreeType<'t>) -> Result<()> {
15875        let context = function_name!();
15876        trace!("{}", self.trace_item_stack(context));
15877        let clock_negedge_term = clock_negedge_term
15878            .token()?
15879            .try_into()
15880            .map_err(parol_runtime::ParolError::UserError)?;
15881        let clock_negedge_term_built = ClockNegedgeTerm { clock_negedge_term };
15882        // Calling user action here
15883        self.user_grammar
15884            .clock_negedge_term(&clock_negedge_term_built)?;
15885        self.push(ASTType::ClockNegedgeTerm(clock_negedge_term_built), context);
15886        Ok(())
15887    }
15888
15889    /// Semantic action for production 63:
15890    ///
15891    /// `ConnectTerm: <INITIAL, Generic>'connect' : Token;`
15892    ///
15893    #[parol_runtime::function_name::named]
15894    fn connect_term(&mut self, connect_term: &ParseTreeType<'t>) -> Result<()> {
15895        let context = function_name!();
15896        trace!("{}", self.trace_item_stack(context));
15897        let connect_term = connect_term
15898            .token()?
15899            .try_into()
15900            .map_err(parol_runtime::ParolError::UserError)?;
15901        let connect_term_built = ConnectTerm { connect_term };
15902        // Calling user action here
15903        self.user_grammar.connect_term(&connect_term_built)?;
15904        self.push(ASTType::ConnectTerm(connect_term_built), context);
15905        Ok(())
15906    }
15907
15908    /// Semantic action for production 64:
15909    ///
15910    /// `ConstTerm: <INITIAL, Generic>'const' : Token;`
15911    ///
15912    #[parol_runtime::function_name::named]
15913    fn const_term(&mut self, const_term: &ParseTreeType<'t>) -> Result<()> {
15914        let context = function_name!();
15915        trace!("{}", self.trace_item_stack(context));
15916        let const_term = const_term
15917            .token()?
15918            .try_into()
15919            .map_err(parol_runtime::ParolError::UserError)?;
15920        let const_term_built = ConstTerm { const_term };
15921        // Calling user action here
15922        self.user_grammar.const_term(&const_term_built)?;
15923        self.push(ASTType::ConstTerm(const_term_built), context);
15924        Ok(())
15925    }
15926
15927    /// Semantic action for production 65:
15928    ///
15929    /// `ConverseTerm: <INITIAL, Generic>'converse' : Token;`
15930    ///
15931    #[parol_runtime::function_name::named]
15932    fn converse_term(&mut self, converse_term: &ParseTreeType<'t>) -> Result<()> {
15933        let context = function_name!();
15934        trace!("{}", self.trace_item_stack(context));
15935        let converse_term = converse_term
15936            .token()?
15937            .try_into()
15938            .map_err(parol_runtime::ParolError::UserError)?;
15939        let converse_term_built = ConverseTerm { converse_term };
15940        // Calling user action here
15941        self.user_grammar.converse_term(&converse_term_built)?;
15942        self.push(ASTType::ConverseTerm(converse_term_built), context);
15943        Ok(())
15944    }
15945
15946    /// Semantic action for production 66:
15947    ///
15948    /// `DefaultTerm: <INITIAL, Generic>'default' : Token;`
15949    ///
15950    #[parol_runtime::function_name::named]
15951    fn default_term(&mut self, default_term: &ParseTreeType<'t>) -> Result<()> {
15952        let context = function_name!();
15953        trace!("{}", self.trace_item_stack(context));
15954        let default_term = default_term
15955            .token()?
15956            .try_into()
15957            .map_err(parol_runtime::ParolError::UserError)?;
15958        let default_term_built = DefaultTerm { default_term };
15959        // Calling user action here
15960        self.user_grammar.default_term(&default_term_built)?;
15961        self.push(ASTType::DefaultTerm(default_term_built), context);
15962        Ok(())
15963    }
15964
15965    /// Semantic action for production 67:
15966    ///
15967    /// `ElseTerm: <INITIAL, Generic>'else' : Token;`
15968    ///
15969    #[parol_runtime::function_name::named]
15970    fn else_term(&mut self, else_term: &ParseTreeType<'t>) -> Result<()> {
15971        let context = function_name!();
15972        trace!("{}", self.trace_item_stack(context));
15973        let else_term = else_term
15974            .token()?
15975            .try_into()
15976            .map_err(parol_runtime::ParolError::UserError)?;
15977        let else_term_built = ElseTerm { else_term };
15978        // Calling user action here
15979        self.user_grammar.else_term(&else_term_built)?;
15980        self.push(ASTType::ElseTerm(else_term_built), context);
15981        Ok(())
15982    }
15983
15984    /// Semantic action for production 68:
15985    ///
15986    /// `EmbedTerm: <INITIAL, Generic>'embed' : Token;`
15987    ///
15988    #[parol_runtime::function_name::named]
15989    fn embed_term(&mut self, embed_term: &ParseTreeType<'t>) -> Result<()> {
15990        let context = function_name!();
15991        trace!("{}", self.trace_item_stack(context));
15992        let embed_term = embed_term
15993            .token()?
15994            .try_into()
15995            .map_err(parol_runtime::ParolError::UserError)?;
15996        let embed_term_built = EmbedTerm { embed_term };
15997        // Calling user action here
15998        self.user_grammar.embed_term(&embed_term_built)?;
15999        self.push(ASTType::EmbedTerm(embed_term_built), context);
16000        Ok(())
16001    }
16002
16003    /// Semantic action for production 69:
16004    ///
16005    /// `EnumTerm: <INITIAL, Generic>'enum' : Token;`
16006    ///
16007    #[parol_runtime::function_name::named]
16008    fn enum_term(&mut self, enum_term: &ParseTreeType<'t>) -> Result<()> {
16009        let context = function_name!();
16010        trace!("{}", self.trace_item_stack(context));
16011        let enum_term = enum_term
16012            .token()?
16013            .try_into()
16014            .map_err(parol_runtime::ParolError::UserError)?;
16015        let enum_term_built = EnumTerm { enum_term };
16016        // Calling user action here
16017        self.user_grammar.enum_term(&enum_term_built)?;
16018        self.push(ASTType::EnumTerm(enum_term_built), context);
16019        Ok(())
16020    }
16021
16022    /// Semantic action for production 70:
16023    ///
16024    /// `F32Term: <INITIAL, Generic>'f32' : Token;`
16025    ///
16026    #[parol_runtime::function_name::named]
16027    fn f32_term(&mut self, f32_term: &ParseTreeType<'t>) -> Result<()> {
16028        let context = function_name!();
16029        trace!("{}", self.trace_item_stack(context));
16030        let f32_term = f32_term
16031            .token()?
16032            .try_into()
16033            .map_err(parol_runtime::ParolError::UserError)?;
16034        let f32_term_built = F32Term { f32_term };
16035        // Calling user action here
16036        self.user_grammar.f32_term(&f32_term_built)?;
16037        self.push(ASTType::F32Term(f32_term_built), context);
16038        Ok(())
16039    }
16040
16041    /// Semantic action for production 71:
16042    ///
16043    /// `F64Term: <INITIAL, Generic>'f64' : Token;`
16044    ///
16045    #[parol_runtime::function_name::named]
16046    fn f64_term(&mut self, f64_term: &ParseTreeType<'t>) -> Result<()> {
16047        let context = function_name!();
16048        trace!("{}", self.trace_item_stack(context));
16049        let f64_term = f64_term
16050            .token()?
16051            .try_into()
16052            .map_err(parol_runtime::ParolError::UserError)?;
16053        let f64_term_built = F64Term { f64_term };
16054        // Calling user action here
16055        self.user_grammar.f64_term(&f64_term_built)?;
16056        self.push(ASTType::F64Term(f64_term_built), context);
16057        Ok(())
16058    }
16059
16060    /// Semantic action for production 72:
16061    ///
16062    /// `FalseTerm: <INITIAL, Generic>'false' : Token;`
16063    ///
16064    #[parol_runtime::function_name::named]
16065    fn false_term(&mut self, false_term: &ParseTreeType<'t>) -> Result<()> {
16066        let context = function_name!();
16067        trace!("{}", self.trace_item_stack(context));
16068        let false_term = false_term
16069            .token()?
16070            .try_into()
16071            .map_err(parol_runtime::ParolError::UserError)?;
16072        let false_term_built = FalseTerm { false_term };
16073        // Calling user action here
16074        self.user_grammar.false_term(&false_term_built)?;
16075        self.push(ASTType::FalseTerm(false_term_built), context);
16076        Ok(())
16077    }
16078
16079    /// Semantic action for production 73:
16080    ///
16081    /// `FinalTerm: <INITIAL, Generic>'final' : Token;`
16082    ///
16083    #[parol_runtime::function_name::named]
16084    fn final_term(&mut self, final_term: &ParseTreeType<'t>) -> Result<()> {
16085        let context = function_name!();
16086        trace!("{}", self.trace_item_stack(context));
16087        let final_term = final_term
16088            .token()?
16089            .try_into()
16090            .map_err(parol_runtime::ParolError::UserError)?;
16091        let final_term_built = FinalTerm { final_term };
16092        // Calling user action here
16093        self.user_grammar.final_term(&final_term_built)?;
16094        self.push(ASTType::FinalTerm(final_term_built), context);
16095        Ok(())
16096    }
16097
16098    /// Semantic action for production 74:
16099    ///
16100    /// `ForTerm: <INITIAL, Generic>'for' : Token;`
16101    ///
16102    #[parol_runtime::function_name::named]
16103    fn for_term(&mut self, for_term: &ParseTreeType<'t>) -> Result<()> {
16104        let context = function_name!();
16105        trace!("{}", self.trace_item_stack(context));
16106        let for_term = for_term
16107            .token()?
16108            .try_into()
16109            .map_err(parol_runtime::ParolError::UserError)?;
16110        let for_term_built = ForTerm { for_term };
16111        // Calling user action here
16112        self.user_grammar.for_term(&for_term_built)?;
16113        self.push(ASTType::ForTerm(for_term_built), context);
16114        Ok(())
16115    }
16116
16117    /// Semantic action for production 75:
16118    ///
16119    /// `FunctionTerm: <INITIAL, Generic>'function' : Token;`
16120    ///
16121    #[parol_runtime::function_name::named]
16122    fn function_term(&mut self, function_term: &ParseTreeType<'t>) -> Result<()> {
16123        let context = function_name!();
16124        trace!("{}", self.trace_item_stack(context));
16125        let function_term = function_term
16126            .token()?
16127            .try_into()
16128            .map_err(parol_runtime::ParolError::UserError)?;
16129        let function_term_built = FunctionTerm { function_term };
16130        // Calling user action here
16131        self.user_grammar.function_term(&function_term_built)?;
16132        self.push(ASTType::FunctionTerm(function_term_built), context);
16133        Ok(())
16134    }
16135
16136    /// Semantic action for production 76:
16137    ///
16138    /// `I8Term: <INITIAL, Generic>'i8' : Token;`
16139    ///
16140    #[parol_runtime::function_name::named]
16141    fn i8_term(&mut self, i8_term: &ParseTreeType<'t>) -> Result<()> {
16142        let context = function_name!();
16143        trace!("{}", self.trace_item_stack(context));
16144        let i8_term = i8_term
16145            .token()?
16146            .try_into()
16147            .map_err(parol_runtime::ParolError::UserError)?;
16148        let i8_term_built = I8Term { i8_term };
16149        // Calling user action here
16150        self.user_grammar.i8_term(&i8_term_built)?;
16151        self.push(ASTType::I8Term(i8_term_built), context);
16152        Ok(())
16153    }
16154
16155    /// Semantic action for production 77:
16156    ///
16157    /// `I16Term: <INITIAL, Generic>'i16' : Token;`
16158    ///
16159    #[parol_runtime::function_name::named]
16160    fn i16_term(&mut self, i16_term: &ParseTreeType<'t>) -> Result<()> {
16161        let context = function_name!();
16162        trace!("{}", self.trace_item_stack(context));
16163        let i16_term = i16_term
16164            .token()?
16165            .try_into()
16166            .map_err(parol_runtime::ParolError::UserError)?;
16167        let i16_term_built = I16Term { i16_term };
16168        // Calling user action here
16169        self.user_grammar.i16_term(&i16_term_built)?;
16170        self.push(ASTType::I16Term(i16_term_built), context);
16171        Ok(())
16172    }
16173
16174    /// Semantic action for production 78:
16175    ///
16176    /// `I32Term: <INITIAL, Generic>'i32' : Token;`
16177    ///
16178    #[parol_runtime::function_name::named]
16179    fn i32_term(&mut self, i32_term: &ParseTreeType<'t>) -> Result<()> {
16180        let context = function_name!();
16181        trace!("{}", self.trace_item_stack(context));
16182        let i32_term = i32_term
16183            .token()?
16184            .try_into()
16185            .map_err(parol_runtime::ParolError::UserError)?;
16186        let i32_term_built = I32Term { i32_term };
16187        // Calling user action here
16188        self.user_grammar.i32_term(&i32_term_built)?;
16189        self.push(ASTType::I32Term(i32_term_built), context);
16190        Ok(())
16191    }
16192
16193    /// Semantic action for production 79:
16194    ///
16195    /// `I64Term: <INITIAL, Generic>'i64' : Token;`
16196    ///
16197    #[parol_runtime::function_name::named]
16198    fn i64_term(&mut self, i64_term: &ParseTreeType<'t>) -> Result<()> {
16199        let context = function_name!();
16200        trace!("{}", self.trace_item_stack(context));
16201        let i64_term = i64_term
16202            .token()?
16203            .try_into()
16204            .map_err(parol_runtime::ParolError::UserError)?;
16205        let i64_term_built = I64Term { i64_term };
16206        // Calling user action here
16207        self.user_grammar.i64_term(&i64_term_built)?;
16208        self.push(ASTType::I64Term(i64_term_built), context);
16209        Ok(())
16210    }
16211
16212    /// Semantic action for production 80:
16213    ///
16214    /// `IfResetTerm: <INITIAL, Generic>'if_reset' : Token;`
16215    ///
16216    #[parol_runtime::function_name::named]
16217    fn if_reset_term(&mut self, if_reset_term: &ParseTreeType<'t>) -> Result<()> {
16218        let context = function_name!();
16219        trace!("{}", self.trace_item_stack(context));
16220        let if_reset_term = if_reset_term
16221            .token()?
16222            .try_into()
16223            .map_err(parol_runtime::ParolError::UserError)?;
16224        let if_reset_term_built = IfResetTerm { if_reset_term };
16225        // Calling user action here
16226        self.user_grammar.if_reset_term(&if_reset_term_built)?;
16227        self.push(ASTType::IfResetTerm(if_reset_term_built), context);
16228        Ok(())
16229    }
16230
16231    /// Semantic action for production 81:
16232    ///
16233    /// `IfTerm: <INITIAL, Generic>'if' : Token;`
16234    ///
16235    #[parol_runtime::function_name::named]
16236    fn if_term(&mut self, if_term: &ParseTreeType<'t>) -> Result<()> {
16237        let context = function_name!();
16238        trace!("{}", self.trace_item_stack(context));
16239        let if_term = if_term
16240            .token()?
16241            .try_into()
16242            .map_err(parol_runtime::ParolError::UserError)?;
16243        let if_term_built = IfTerm { if_term };
16244        // Calling user action here
16245        self.user_grammar.if_term(&if_term_built)?;
16246        self.push(ASTType::IfTerm(if_term_built), context);
16247        Ok(())
16248    }
16249
16250    /// Semantic action for production 82:
16251    ///
16252    /// `ImportTerm: <INITIAL, Generic>'import' : Token;`
16253    ///
16254    #[parol_runtime::function_name::named]
16255    fn import_term(&mut self, import_term: &ParseTreeType<'t>) -> Result<()> {
16256        let context = function_name!();
16257        trace!("{}", self.trace_item_stack(context));
16258        let import_term = import_term
16259            .token()?
16260            .try_into()
16261            .map_err(parol_runtime::ParolError::UserError)?;
16262        let import_term_built = ImportTerm { import_term };
16263        // Calling user action here
16264        self.user_grammar.import_term(&import_term_built)?;
16265        self.push(ASTType::ImportTerm(import_term_built), context);
16266        Ok(())
16267    }
16268
16269    /// Semantic action for production 83:
16270    ///
16271    /// `IncludeTerm: <INITIAL, Generic>'include' : Token;`
16272    ///
16273    #[parol_runtime::function_name::named]
16274    fn include_term(&mut self, include_term: &ParseTreeType<'t>) -> Result<()> {
16275        let context = function_name!();
16276        trace!("{}", self.trace_item_stack(context));
16277        let include_term = include_term
16278            .token()?
16279            .try_into()
16280            .map_err(parol_runtime::ParolError::UserError)?;
16281        let include_term_built = IncludeTerm { include_term };
16282        // Calling user action here
16283        self.user_grammar.include_term(&include_term_built)?;
16284        self.push(ASTType::IncludeTerm(include_term_built), context);
16285        Ok(())
16286    }
16287
16288    /// Semantic action for production 84:
16289    ///
16290    /// `InitialTerm: <INITIAL, Generic>'initial' : Token;`
16291    ///
16292    #[parol_runtime::function_name::named]
16293    fn initial_term(&mut self, initial_term: &ParseTreeType<'t>) -> Result<()> {
16294        let context = function_name!();
16295        trace!("{}", self.trace_item_stack(context));
16296        let initial_term = initial_term
16297            .token()?
16298            .try_into()
16299            .map_err(parol_runtime::ParolError::UserError)?;
16300        let initial_term_built = InitialTerm { initial_term };
16301        // Calling user action here
16302        self.user_grammar.initial_term(&initial_term_built)?;
16303        self.push(ASTType::InitialTerm(initial_term_built), context);
16304        Ok(())
16305    }
16306
16307    /// Semantic action for production 85:
16308    ///
16309    /// `InoutTerm: <INITIAL, Generic>'inout' : Token;`
16310    ///
16311    #[parol_runtime::function_name::named]
16312    fn inout_term(&mut self, inout_term: &ParseTreeType<'t>) -> Result<()> {
16313        let context = function_name!();
16314        trace!("{}", self.trace_item_stack(context));
16315        let inout_term = inout_term
16316            .token()?
16317            .try_into()
16318            .map_err(parol_runtime::ParolError::UserError)?;
16319        let inout_term_built = InoutTerm { inout_term };
16320        // Calling user action here
16321        self.user_grammar.inout_term(&inout_term_built)?;
16322        self.push(ASTType::InoutTerm(inout_term_built), context);
16323        Ok(())
16324    }
16325
16326    /// Semantic action for production 86:
16327    ///
16328    /// `InputTerm: <INITIAL, Generic>'input' : Token;`
16329    ///
16330    #[parol_runtime::function_name::named]
16331    fn input_term(&mut self, input_term: &ParseTreeType<'t>) -> Result<()> {
16332        let context = function_name!();
16333        trace!("{}", self.trace_item_stack(context));
16334        let input_term = input_term
16335            .token()?
16336            .try_into()
16337            .map_err(parol_runtime::ParolError::UserError)?;
16338        let input_term_built = InputTerm { input_term };
16339        // Calling user action here
16340        self.user_grammar.input_term(&input_term_built)?;
16341        self.push(ASTType::InputTerm(input_term_built), context);
16342        Ok(())
16343    }
16344
16345    /// Semantic action for production 87:
16346    ///
16347    /// `InsideTerm: <INITIAL, Generic>'inside' : Token;`
16348    ///
16349    #[parol_runtime::function_name::named]
16350    fn inside_term(&mut self, inside_term: &ParseTreeType<'t>) -> Result<()> {
16351        let context = function_name!();
16352        trace!("{}", self.trace_item_stack(context));
16353        let inside_term = inside_term
16354            .token()?
16355            .try_into()
16356            .map_err(parol_runtime::ParolError::UserError)?;
16357        let inside_term_built = InsideTerm { inside_term };
16358        // Calling user action here
16359        self.user_grammar.inside_term(&inside_term_built)?;
16360        self.push(ASTType::InsideTerm(inside_term_built), context);
16361        Ok(())
16362    }
16363
16364    /// Semantic action for production 88:
16365    ///
16366    /// `InstTerm: <INITIAL, Generic>'inst' : Token;`
16367    ///
16368    #[parol_runtime::function_name::named]
16369    fn inst_term(&mut self, inst_term: &ParseTreeType<'t>) -> Result<()> {
16370        let context = function_name!();
16371        trace!("{}", self.trace_item_stack(context));
16372        let inst_term = inst_term
16373            .token()?
16374            .try_into()
16375            .map_err(parol_runtime::ParolError::UserError)?;
16376        let inst_term_built = InstTerm { inst_term };
16377        // Calling user action here
16378        self.user_grammar.inst_term(&inst_term_built)?;
16379        self.push(ASTType::InstTerm(inst_term_built), context);
16380        Ok(())
16381    }
16382
16383    /// Semantic action for production 89:
16384    ///
16385    /// `InterfaceTerm: <INITIAL, Generic>'interface' : Token;`
16386    ///
16387    #[parol_runtime::function_name::named]
16388    fn interface_term(&mut self, interface_term: &ParseTreeType<'t>) -> Result<()> {
16389        let context = function_name!();
16390        trace!("{}", self.trace_item_stack(context));
16391        let interface_term = interface_term
16392            .token()?
16393            .try_into()
16394            .map_err(parol_runtime::ParolError::UserError)?;
16395        let interface_term_built = InterfaceTerm { interface_term };
16396        // Calling user action here
16397        self.user_grammar.interface_term(&interface_term_built)?;
16398        self.push(ASTType::InterfaceTerm(interface_term_built), context);
16399        Ok(())
16400    }
16401
16402    /// Semantic action for production 90:
16403    ///
16404    /// `InTerm: <INITIAL, Generic>'in' : Token;`
16405    ///
16406    #[parol_runtime::function_name::named]
16407    fn in_term(&mut self, in_term: &ParseTreeType<'t>) -> Result<()> {
16408        let context = function_name!();
16409        trace!("{}", self.trace_item_stack(context));
16410        let in_term = in_term
16411            .token()?
16412            .try_into()
16413            .map_err(parol_runtime::ParolError::UserError)?;
16414        let in_term_built = InTerm { in_term };
16415        // Calling user action here
16416        self.user_grammar.in_term(&in_term_built)?;
16417        self.push(ASTType::InTerm(in_term_built), context);
16418        Ok(())
16419    }
16420
16421    /// Semantic action for production 91:
16422    ///
16423    /// `LetTerm: <INITIAL, Generic>'let' : Token;`
16424    ///
16425    #[parol_runtime::function_name::named]
16426    fn let_term(&mut self, let_term: &ParseTreeType<'t>) -> Result<()> {
16427        let context = function_name!();
16428        trace!("{}", self.trace_item_stack(context));
16429        let let_term = let_term
16430            .token()?
16431            .try_into()
16432            .map_err(parol_runtime::ParolError::UserError)?;
16433        let let_term_built = LetTerm { let_term };
16434        // Calling user action here
16435        self.user_grammar.let_term(&let_term_built)?;
16436        self.push(ASTType::LetTerm(let_term_built), context);
16437        Ok(())
16438    }
16439
16440    /// Semantic action for production 92:
16441    ///
16442    /// `LogicTerm: <INITIAL, Generic>'logic' : Token;`
16443    ///
16444    #[parol_runtime::function_name::named]
16445    fn logic_term(&mut self, logic_term: &ParseTreeType<'t>) -> Result<()> {
16446        let context = function_name!();
16447        trace!("{}", self.trace_item_stack(context));
16448        let logic_term = logic_term
16449            .token()?
16450            .try_into()
16451            .map_err(parol_runtime::ParolError::UserError)?;
16452        let logic_term_built = LogicTerm { logic_term };
16453        // Calling user action here
16454        self.user_grammar.logic_term(&logic_term_built)?;
16455        self.push(ASTType::LogicTerm(logic_term_built), context);
16456        Ok(())
16457    }
16458
16459    /// Semantic action for production 93:
16460    ///
16461    /// `LsbTerm: <INITIAL, Generic>'lsb' : Token;`
16462    ///
16463    #[parol_runtime::function_name::named]
16464    fn lsb_term(&mut self, lsb_term: &ParseTreeType<'t>) -> Result<()> {
16465        let context = function_name!();
16466        trace!("{}", self.trace_item_stack(context));
16467        let lsb_term = lsb_term
16468            .token()?
16469            .try_into()
16470            .map_err(parol_runtime::ParolError::UserError)?;
16471        let lsb_term_built = LsbTerm { lsb_term };
16472        // Calling user action here
16473        self.user_grammar.lsb_term(&lsb_term_built)?;
16474        self.push(ASTType::LsbTerm(lsb_term_built), context);
16475        Ok(())
16476    }
16477
16478    /// Semantic action for production 94:
16479    ///
16480    /// `ModportTerm: <INITIAL, Generic>'modport' : Token;`
16481    ///
16482    #[parol_runtime::function_name::named]
16483    fn modport_term(&mut self, modport_term: &ParseTreeType<'t>) -> Result<()> {
16484        let context = function_name!();
16485        trace!("{}", self.trace_item_stack(context));
16486        let modport_term = modport_term
16487            .token()?
16488            .try_into()
16489            .map_err(parol_runtime::ParolError::UserError)?;
16490        let modport_term_built = ModportTerm { modport_term };
16491        // Calling user action here
16492        self.user_grammar.modport_term(&modport_term_built)?;
16493        self.push(ASTType::ModportTerm(modport_term_built), context);
16494        Ok(())
16495    }
16496
16497    /// Semantic action for production 95:
16498    ///
16499    /// `ModuleTerm: <INITIAL, Generic>'module' : Token;`
16500    ///
16501    #[parol_runtime::function_name::named]
16502    fn module_term(&mut self, module_term: &ParseTreeType<'t>) -> Result<()> {
16503        let context = function_name!();
16504        trace!("{}", self.trace_item_stack(context));
16505        let module_term = module_term
16506            .token()?
16507            .try_into()
16508            .map_err(parol_runtime::ParolError::UserError)?;
16509        let module_term_built = ModuleTerm { module_term };
16510        // Calling user action here
16511        self.user_grammar.module_term(&module_term_built)?;
16512        self.push(ASTType::ModuleTerm(module_term_built), context);
16513        Ok(())
16514    }
16515
16516    /// Semantic action for production 96:
16517    ///
16518    /// `MsbTerm: <INITIAL, Generic>'msb' : Token;`
16519    ///
16520    #[parol_runtime::function_name::named]
16521    fn msb_term(&mut self, msb_term: &ParseTreeType<'t>) -> Result<()> {
16522        let context = function_name!();
16523        trace!("{}", self.trace_item_stack(context));
16524        let msb_term = msb_term
16525            .token()?
16526            .try_into()
16527            .map_err(parol_runtime::ParolError::UserError)?;
16528        let msb_term_built = MsbTerm { msb_term };
16529        // Calling user action here
16530        self.user_grammar.msb_term(&msb_term_built)?;
16531        self.push(ASTType::MsbTerm(msb_term_built), context);
16532        Ok(())
16533    }
16534
16535    /// Semantic action for production 97:
16536    ///
16537    /// `OutputTerm: <INITIAL, Generic>'output' : Token;`
16538    ///
16539    #[parol_runtime::function_name::named]
16540    fn output_term(&mut self, output_term: &ParseTreeType<'t>) -> Result<()> {
16541        let context = function_name!();
16542        trace!("{}", self.trace_item_stack(context));
16543        let output_term = output_term
16544            .token()?
16545            .try_into()
16546            .map_err(parol_runtime::ParolError::UserError)?;
16547        let output_term_built = OutputTerm { output_term };
16548        // Calling user action here
16549        self.user_grammar.output_term(&output_term_built)?;
16550        self.push(ASTType::OutputTerm(output_term_built), context);
16551        Ok(())
16552    }
16553
16554    /// Semantic action for production 98:
16555    ///
16556    /// `OutsideTerm: <INITIAL, Generic>'outside' : Token;`
16557    ///
16558    #[parol_runtime::function_name::named]
16559    fn outside_term(&mut self, outside_term: &ParseTreeType<'t>) -> Result<()> {
16560        let context = function_name!();
16561        trace!("{}", self.trace_item_stack(context));
16562        let outside_term = outside_term
16563            .token()?
16564            .try_into()
16565            .map_err(parol_runtime::ParolError::UserError)?;
16566        let outside_term_built = OutsideTerm { outside_term };
16567        // Calling user action here
16568        self.user_grammar.outside_term(&outside_term_built)?;
16569        self.push(ASTType::OutsideTerm(outside_term_built), context);
16570        Ok(())
16571    }
16572
16573    /// Semantic action for production 99:
16574    ///
16575    /// `PackageTerm: <INITIAL, Generic>'package' : Token;`
16576    ///
16577    #[parol_runtime::function_name::named]
16578    fn package_term(&mut self, package_term: &ParseTreeType<'t>) -> Result<()> {
16579        let context = function_name!();
16580        trace!("{}", self.trace_item_stack(context));
16581        let package_term = package_term
16582            .token()?
16583            .try_into()
16584            .map_err(parol_runtime::ParolError::UserError)?;
16585        let package_term_built = PackageTerm { package_term };
16586        // Calling user action here
16587        self.user_grammar.package_term(&package_term_built)?;
16588        self.push(ASTType::PackageTerm(package_term_built), context);
16589        Ok(())
16590    }
16591
16592    /// Semantic action for production 100:
16593    ///
16594    /// `ParamTerm: <INITIAL, Generic>'param' : Token;`
16595    ///
16596    #[parol_runtime::function_name::named]
16597    fn param_term(&mut self, param_term: &ParseTreeType<'t>) -> Result<()> {
16598        let context = function_name!();
16599        trace!("{}", self.trace_item_stack(context));
16600        let param_term = param_term
16601            .token()?
16602            .try_into()
16603            .map_err(parol_runtime::ParolError::UserError)?;
16604        let param_term_built = ParamTerm { param_term };
16605        // Calling user action here
16606        self.user_grammar.param_term(&param_term_built)?;
16607        self.push(ASTType::ParamTerm(param_term_built), context);
16608        Ok(())
16609    }
16610
16611    /// Semantic action for production 101:
16612    ///
16613    /// `ProtoTerm: <INITIAL, Generic>'proto' : Token;`
16614    ///
16615    #[parol_runtime::function_name::named]
16616    fn proto_term(&mut self, proto_term: &ParseTreeType<'t>) -> Result<()> {
16617        let context = function_name!();
16618        trace!("{}", self.trace_item_stack(context));
16619        let proto_term = proto_term
16620            .token()?
16621            .try_into()
16622            .map_err(parol_runtime::ParolError::UserError)?;
16623        let proto_term_built = ProtoTerm { proto_term };
16624        // Calling user action here
16625        self.user_grammar.proto_term(&proto_term_built)?;
16626        self.push(ASTType::ProtoTerm(proto_term_built), context);
16627        Ok(())
16628    }
16629
16630    /// Semantic action for production 102:
16631    ///
16632    /// `PubTerm: <INITIAL, Generic>'pub' : Token;`
16633    ///
16634    #[parol_runtime::function_name::named]
16635    fn pub_term(&mut self, pub_term: &ParseTreeType<'t>) -> Result<()> {
16636        let context = function_name!();
16637        trace!("{}", self.trace_item_stack(context));
16638        let pub_term = pub_term
16639            .token()?
16640            .try_into()
16641            .map_err(parol_runtime::ParolError::UserError)?;
16642        let pub_term_built = PubTerm { pub_term };
16643        // Calling user action here
16644        self.user_grammar.pub_term(&pub_term_built)?;
16645        self.push(ASTType::PubTerm(pub_term_built), context);
16646        Ok(())
16647    }
16648
16649    /// Semantic action for production 103:
16650    ///
16651    /// `RepeatTerm: <INITIAL, Generic>'repeat' : Token;`
16652    ///
16653    #[parol_runtime::function_name::named]
16654    fn repeat_term(&mut self, repeat_term: &ParseTreeType<'t>) -> Result<()> {
16655        let context = function_name!();
16656        trace!("{}", self.trace_item_stack(context));
16657        let repeat_term = repeat_term
16658            .token()?
16659            .try_into()
16660            .map_err(parol_runtime::ParolError::UserError)?;
16661        let repeat_term_built = RepeatTerm { repeat_term };
16662        // Calling user action here
16663        self.user_grammar.repeat_term(&repeat_term_built)?;
16664        self.push(ASTType::RepeatTerm(repeat_term_built), context);
16665        Ok(())
16666    }
16667
16668    /// Semantic action for production 104:
16669    ///
16670    /// `ResetTerm: <INITIAL, Generic>'reset' : Token;`
16671    ///
16672    #[parol_runtime::function_name::named]
16673    fn reset_term(&mut self, reset_term: &ParseTreeType<'t>) -> Result<()> {
16674        let context = function_name!();
16675        trace!("{}", self.trace_item_stack(context));
16676        let reset_term = reset_term
16677            .token()?
16678            .try_into()
16679            .map_err(parol_runtime::ParolError::UserError)?;
16680        let reset_term_built = ResetTerm { reset_term };
16681        // Calling user action here
16682        self.user_grammar.reset_term(&reset_term_built)?;
16683        self.push(ASTType::ResetTerm(reset_term_built), context);
16684        Ok(())
16685    }
16686
16687    /// Semantic action for production 105:
16688    ///
16689    /// `ResetAsyncHighTerm: <INITIAL, Generic>'reset_async_high' : Token;`
16690    ///
16691    #[parol_runtime::function_name::named]
16692    fn reset_async_high_term(&mut self, reset_async_high_term: &ParseTreeType<'t>) -> Result<()> {
16693        let context = function_name!();
16694        trace!("{}", self.trace_item_stack(context));
16695        let reset_async_high_term = reset_async_high_term
16696            .token()?
16697            .try_into()
16698            .map_err(parol_runtime::ParolError::UserError)?;
16699        let reset_async_high_term_built = ResetAsyncHighTerm {
16700            reset_async_high_term,
16701        };
16702        // Calling user action here
16703        self.user_grammar
16704            .reset_async_high_term(&reset_async_high_term_built)?;
16705        self.push(
16706            ASTType::ResetAsyncHighTerm(reset_async_high_term_built),
16707            context,
16708        );
16709        Ok(())
16710    }
16711
16712    /// Semantic action for production 106:
16713    ///
16714    /// `ResetAsyncLowTerm: <INITIAL, Generic>'reset_async_low' : Token;`
16715    ///
16716    #[parol_runtime::function_name::named]
16717    fn reset_async_low_term(&mut self, reset_async_low_term: &ParseTreeType<'t>) -> Result<()> {
16718        let context = function_name!();
16719        trace!("{}", self.trace_item_stack(context));
16720        let reset_async_low_term = reset_async_low_term
16721            .token()?
16722            .try_into()
16723            .map_err(parol_runtime::ParolError::UserError)?;
16724        let reset_async_low_term_built = ResetAsyncLowTerm {
16725            reset_async_low_term,
16726        };
16727        // Calling user action here
16728        self.user_grammar
16729            .reset_async_low_term(&reset_async_low_term_built)?;
16730        self.push(
16731            ASTType::ResetAsyncLowTerm(reset_async_low_term_built),
16732            context,
16733        );
16734        Ok(())
16735    }
16736
16737    /// Semantic action for production 107:
16738    ///
16739    /// `ResetSyncHighTerm: <INITIAL, Generic>'reset_sync_high' : Token;`
16740    ///
16741    #[parol_runtime::function_name::named]
16742    fn reset_sync_high_term(&mut self, reset_sync_high_term: &ParseTreeType<'t>) -> Result<()> {
16743        let context = function_name!();
16744        trace!("{}", self.trace_item_stack(context));
16745        let reset_sync_high_term = reset_sync_high_term
16746            .token()?
16747            .try_into()
16748            .map_err(parol_runtime::ParolError::UserError)?;
16749        let reset_sync_high_term_built = ResetSyncHighTerm {
16750            reset_sync_high_term,
16751        };
16752        // Calling user action here
16753        self.user_grammar
16754            .reset_sync_high_term(&reset_sync_high_term_built)?;
16755        self.push(
16756            ASTType::ResetSyncHighTerm(reset_sync_high_term_built),
16757            context,
16758        );
16759        Ok(())
16760    }
16761
16762    /// Semantic action for production 108:
16763    ///
16764    /// `ResetSyncLowTerm: <INITIAL, Generic>'reset_sync_low' : Token;`
16765    ///
16766    #[parol_runtime::function_name::named]
16767    fn reset_sync_low_term(&mut self, reset_sync_low_term: &ParseTreeType<'t>) -> Result<()> {
16768        let context = function_name!();
16769        trace!("{}", self.trace_item_stack(context));
16770        let reset_sync_low_term = reset_sync_low_term
16771            .token()?
16772            .try_into()
16773            .map_err(parol_runtime::ParolError::UserError)?;
16774        let reset_sync_low_term_built = ResetSyncLowTerm {
16775            reset_sync_low_term,
16776        };
16777        // Calling user action here
16778        self.user_grammar
16779            .reset_sync_low_term(&reset_sync_low_term_built)?;
16780        self.push(
16781            ASTType::ResetSyncLowTerm(reset_sync_low_term_built),
16782            context,
16783        );
16784        Ok(())
16785    }
16786
16787    /// Semantic action for production 109:
16788    ///
16789    /// `ReturnTerm: <INITIAL, Generic>'return' : Token;`
16790    ///
16791    #[parol_runtime::function_name::named]
16792    fn return_term(&mut self, return_term: &ParseTreeType<'t>) -> Result<()> {
16793        let context = function_name!();
16794        trace!("{}", self.trace_item_stack(context));
16795        let return_term = return_term
16796            .token()?
16797            .try_into()
16798            .map_err(parol_runtime::ParolError::UserError)?;
16799        let return_term_built = ReturnTerm { return_term };
16800        // Calling user action here
16801        self.user_grammar.return_term(&return_term_built)?;
16802        self.push(ASTType::ReturnTerm(return_term_built), context);
16803        Ok(())
16804    }
16805
16806    /// Semantic action for production 110:
16807    ///
16808    /// `RevTerm: <INITIAL, Generic>'rev' : Token;`
16809    ///
16810    #[parol_runtime::function_name::named]
16811    fn rev_term(&mut self, rev_term: &ParseTreeType<'t>) -> Result<()> {
16812        let context = function_name!();
16813        trace!("{}", self.trace_item_stack(context));
16814        let rev_term = rev_term
16815            .token()?
16816            .try_into()
16817            .map_err(parol_runtime::ParolError::UserError)?;
16818        let rev_term_built = RevTerm { rev_term };
16819        // Calling user action here
16820        self.user_grammar.rev_term(&rev_term_built)?;
16821        self.push(ASTType::RevTerm(rev_term_built), context);
16822        Ok(())
16823    }
16824
16825    /// Semantic action for production 111:
16826    ///
16827    /// `BreakTerm: <INITIAL, Generic>'break' : Token;`
16828    ///
16829    #[parol_runtime::function_name::named]
16830    fn break_term(&mut self, break_term: &ParseTreeType<'t>) -> Result<()> {
16831        let context = function_name!();
16832        trace!("{}", self.trace_item_stack(context));
16833        let break_term = break_term
16834            .token()?
16835            .try_into()
16836            .map_err(parol_runtime::ParolError::UserError)?;
16837        let break_term_built = BreakTerm { break_term };
16838        // Calling user action here
16839        self.user_grammar.break_term(&break_term_built)?;
16840        self.push(ASTType::BreakTerm(break_term_built), context);
16841        Ok(())
16842    }
16843
16844    /// Semantic action for production 112:
16845    ///
16846    /// `SameTerm: <INITIAL, Generic>'same' : Token;`
16847    ///
16848    #[parol_runtime::function_name::named]
16849    fn same_term(&mut self, same_term: &ParseTreeType<'t>) -> Result<()> {
16850        let context = function_name!();
16851        trace!("{}", self.trace_item_stack(context));
16852        let same_term = same_term
16853            .token()?
16854            .try_into()
16855            .map_err(parol_runtime::ParolError::UserError)?;
16856        let same_term_built = SameTerm { same_term };
16857        // Calling user action here
16858        self.user_grammar.same_term(&same_term_built)?;
16859        self.push(ASTType::SameTerm(same_term_built), context);
16860        Ok(())
16861    }
16862
16863    /// Semantic action for production 113:
16864    ///
16865    /// `SignedTerm: <INITIAL, Generic>'signed' : Token;`
16866    ///
16867    #[parol_runtime::function_name::named]
16868    fn signed_term(&mut self, signed_term: &ParseTreeType<'t>) -> Result<()> {
16869        let context = function_name!();
16870        trace!("{}", self.trace_item_stack(context));
16871        let signed_term = signed_term
16872            .token()?
16873            .try_into()
16874            .map_err(parol_runtime::ParolError::UserError)?;
16875        let signed_term_built = SignedTerm { signed_term };
16876        // Calling user action here
16877        self.user_grammar.signed_term(&signed_term_built)?;
16878        self.push(ASTType::SignedTerm(signed_term_built), context);
16879        Ok(())
16880    }
16881
16882    /// Semantic action for production 114:
16883    ///
16884    /// `StepTerm: <INITIAL, Generic>'step' : Token;`
16885    ///
16886    #[parol_runtime::function_name::named]
16887    fn step_term(&mut self, step_term: &ParseTreeType<'t>) -> Result<()> {
16888        let context = function_name!();
16889        trace!("{}", self.trace_item_stack(context));
16890        let step_term = step_term
16891            .token()?
16892            .try_into()
16893            .map_err(parol_runtime::ParolError::UserError)?;
16894        let step_term_built = StepTerm { step_term };
16895        // Calling user action here
16896        self.user_grammar.step_term(&step_term_built)?;
16897        self.push(ASTType::StepTerm(step_term_built), context);
16898        Ok(())
16899    }
16900
16901    /// Semantic action for production 115:
16902    ///
16903    /// `StringTerm: <INITIAL, Generic>'string' : Token;`
16904    ///
16905    #[parol_runtime::function_name::named]
16906    fn string_term(&mut self, string_term: &ParseTreeType<'t>) -> Result<()> {
16907        let context = function_name!();
16908        trace!("{}", self.trace_item_stack(context));
16909        let string_term = string_term
16910            .token()?
16911            .try_into()
16912            .map_err(parol_runtime::ParolError::UserError)?;
16913        let string_term_built = StringTerm { string_term };
16914        // Calling user action here
16915        self.user_grammar.string_term(&string_term_built)?;
16916        self.push(ASTType::StringTerm(string_term_built), context);
16917        Ok(())
16918    }
16919
16920    /// Semantic action for production 116:
16921    ///
16922    /// `StructTerm: <INITIAL, Generic>'struct' : Token;`
16923    ///
16924    #[parol_runtime::function_name::named]
16925    fn struct_term(&mut self, struct_term: &ParseTreeType<'t>) -> Result<()> {
16926        let context = function_name!();
16927        trace!("{}", self.trace_item_stack(context));
16928        let struct_term = struct_term
16929            .token()?
16930            .try_into()
16931            .map_err(parol_runtime::ParolError::UserError)?;
16932        let struct_term_built = StructTerm { struct_term };
16933        // Calling user action here
16934        self.user_grammar.struct_term(&struct_term_built)?;
16935        self.push(ASTType::StructTerm(struct_term_built), context);
16936        Ok(())
16937    }
16938
16939    /// Semantic action for production 117:
16940    ///
16941    /// `SwitchTerm: <INITIAL, Generic>'switch' : Token;`
16942    ///
16943    #[parol_runtime::function_name::named]
16944    fn switch_term(&mut self, switch_term: &ParseTreeType<'t>) -> Result<()> {
16945        let context = function_name!();
16946        trace!("{}", self.trace_item_stack(context));
16947        let switch_term = switch_term
16948            .token()?
16949            .try_into()
16950            .map_err(parol_runtime::ParolError::UserError)?;
16951        let switch_term_built = SwitchTerm { switch_term };
16952        // Calling user action here
16953        self.user_grammar.switch_term(&switch_term_built)?;
16954        self.push(ASTType::SwitchTerm(switch_term_built), context);
16955        Ok(())
16956    }
16957
16958    /// Semantic action for production 118:
16959    ///
16960    /// `TriTerm: <INITIAL, Generic>'tri' : Token;`
16961    ///
16962    #[parol_runtime::function_name::named]
16963    fn tri_term(&mut self, tri_term: &ParseTreeType<'t>) -> Result<()> {
16964        let context = function_name!();
16965        trace!("{}", self.trace_item_stack(context));
16966        let tri_term = tri_term
16967            .token()?
16968            .try_into()
16969            .map_err(parol_runtime::ParolError::UserError)?;
16970        let tri_term_built = TriTerm { tri_term };
16971        // Calling user action here
16972        self.user_grammar.tri_term(&tri_term_built)?;
16973        self.push(ASTType::TriTerm(tri_term_built), context);
16974        Ok(())
16975    }
16976
16977    /// Semantic action for production 119:
16978    ///
16979    /// `TrueTerm: <INITIAL, Generic>'true' : Token;`
16980    ///
16981    #[parol_runtime::function_name::named]
16982    fn true_term(&mut self, true_term: &ParseTreeType<'t>) -> Result<()> {
16983        let context = function_name!();
16984        trace!("{}", self.trace_item_stack(context));
16985        let true_term = true_term
16986            .token()?
16987            .try_into()
16988            .map_err(parol_runtime::ParolError::UserError)?;
16989        let true_term_built = TrueTerm { true_term };
16990        // Calling user action here
16991        self.user_grammar.true_term(&true_term_built)?;
16992        self.push(ASTType::TrueTerm(true_term_built), context);
16993        Ok(())
16994    }
16995
16996    /// Semantic action for production 120:
16997    ///
16998    /// `TypeTerm: <INITIAL, Generic>'type' : Token;`
16999    ///
17000    #[parol_runtime::function_name::named]
17001    fn type_term(&mut self, type_term: &ParseTreeType<'t>) -> Result<()> {
17002        let context = function_name!();
17003        trace!("{}", self.trace_item_stack(context));
17004        let type_term = type_term
17005            .token()?
17006            .try_into()
17007            .map_err(parol_runtime::ParolError::UserError)?;
17008        let type_term_built = TypeTerm { type_term };
17009        // Calling user action here
17010        self.user_grammar.type_term(&type_term_built)?;
17011        self.push(ASTType::TypeTerm(type_term_built), context);
17012        Ok(())
17013    }
17014
17015    /// Semantic action for production 121:
17016    ///
17017    /// `P8Term: <INITIAL, Generic>'p8' : Token;`
17018    ///
17019    #[parol_runtime::function_name::named]
17020    fn p8_term(&mut self, p8_term: &ParseTreeType<'t>) -> Result<()> {
17021        let context = function_name!();
17022        trace!("{}", self.trace_item_stack(context));
17023        let p8_term = p8_term
17024            .token()?
17025            .try_into()
17026            .map_err(parol_runtime::ParolError::UserError)?;
17027        let p8_term_built = P8Term { p8_term };
17028        // Calling user action here
17029        self.user_grammar.p8_term(&p8_term_built)?;
17030        self.push(ASTType::P8Term(p8_term_built), context);
17031        Ok(())
17032    }
17033
17034    /// Semantic action for production 122:
17035    ///
17036    /// `P16Term: <INITIAL, Generic>'p16' : Token;`
17037    ///
17038    #[parol_runtime::function_name::named]
17039    fn p16_term(&mut self, p16_term: &ParseTreeType<'t>) -> Result<()> {
17040        let context = function_name!();
17041        trace!("{}", self.trace_item_stack(context));
17042        let p16_term = p16_term
17043            .token()?
17044            .try_into()
17045            .map_err(parol_runtime::ParolError::UserError)?;
17046        let p16_term_built = P16Term { p16_term };
17047        // Calling user action here
17048        self.user_grammar.p16_term(&p16_term_built)?;
17049        self.push(ASTType::P16Term(p16_term_built), context);
17050        Ok(())
17051    }
17052
17053    /// Semantic action for production 123:
17054    ///
17055    /// `P32Term: <INITIAL, Generic>'p32' : Token;`
17056    ///
17057    #[parol_runtime::function_name::named]
17058    fn p32_term(&mut self, p32_term: &ParseTreeType<'t>) -> Result<()> {
17059        let context = function_name!();
17060        trace!("{}", self.trace_item_stack(context));
17061        let p32_term = p32_term
17062            .token()?
17063            .try_into()
17064            .map_err(parol_runtime::ParolError::UserError)?;
17065        let p32_term_built = P32Term { p32_term };
17066        // Calling user action here
17067        self.user_grammar.p32_term(&p32_term_built)?;
17068        self.push(ASTType::P32Term(p32_term_built), context);
17069        Ok(())
17070    }
17071
17072    /// Semantic action for production 124:
17073    ///
17074    /// `P64Term: <INITIAL, Generic>'p64' : Token;`
17075    ///
17076    #[parol_runtime::function_name::named]
17077    fn p64_term(&mut self, p64_term: &ParseTreeType<'t>) -> Result<()> {
17078        let context = function_name!();
17079        trace!("{}", self.trace_item_stack(context));
17080        let p64_term = p64_term
17081            .token()?
17082            .try_into()
17083            .map_err(parol_runtime::ParolError::UserError)?;
17084        let p64_term_built = P64Term { p64_term };
17085        // Calling user action here
17086        self.user_grammar.p64_term(&p64_term_built)?;
17087        self.push(ASTType::P64Term(p64_term_built), context);
17088        Ok(())
17089    }
17090
17091    /// Semantic action for production 125:
17092    ///
17093    /// `U8Term: <INITIAL, Generic>'u8' : Token;`
17094    ///
17095    #[parol_runtime::function_name::named]
17096    fn u8_term(&mut self, u8_term: &ParseTreeType<'t>) -> Result<()> {
17097        let context = function_name!();
17098        trace!("{}", self.trace_item_stack(context));
17099        let u8_term = u8_term
17100            .token()?
17101            .try_into()
17102            .map_err(parol_runtime::ParolError::UserError)?;
17103        let u8_term_built = U8Term { u8_term };
17104        // Calling user action here
17105        self.user_grammar.u8_term(&u8_term_built)?;
17106        self.push(ASTType::U8Term(u8_term_built), context);
17107        Ok(())
17108    }
17109
17110    /// Semantic action for production 126:
17111    ///
17112    /// `U16Term: <INITIAL, Generic>'u16' : Token;`
17113    ///
17114    #[parol_runtime::function_name::named]
17115    fn u16_term(&mut self, u16_term: &ParseTreeType<'t>) -> Result<()> {
17116        let context = function_name!();
17117        trace!("{}", self.trace_item_stack(context));
17118        let u16_term = u16_term
17119            .token()?
17120            .try_into()
17121            .map_err(parol_runtime::ParolError::UserError)?;
17122        let u16_term_built = U16Term { u16_term };
17123        // Calling user action here
17124        self.user_grammar.u16_term(&u16_term_built)?;
17125        self.push(ASTType::U16Term(u16_term_built), context);
17126        Ok(())
17127    }
17128
17129    /// Semantic action for production 127:
17130    ///
17131    /// `U32Term: <INITIAL, Generic>'u32' : Token;`
17132    ///
17133    #[parol_runtime::function_name::named]
17134    fn u32_term(&mut self, u32_term: &ParseTreeType<'t>) -> Result<()> {
17135        let context = function_name!();
17136        trace!("{}", self.trace_item_stack(context));
17137        let u32_term = u32_term
17138            .token()?
17139            .try_into()
17140            .map_err(parol_runtime::ParolError::UserError)?;
17141        let u32_term_built = U32Term { u32_term };
17142        // Calling user action here
17143        self.user_grammar.u32_term(&u32_term_built)?;
17144        self.push(ASTType::U32Term(u32_term_built), context);
17145        Ok(())
17146    }
17147
17148    /// Semantic action for production 128:
17149    ///
17150    /// `U64Term: <INITIAL, Generic>'u64' : Token;`
17151    ///
17152    #[parol_runtime::function_name::named]
17153    fn u64_term(&mut self, u64_term: &ParseTreeType<'t>) -> Result<()> {
17154        let context = function_name!();
17155        trace!("{}", self.trace_item_stack(context));
17156        let u64_term = u64_term
17157            .token()?
17158            .try_into()
17159            .map_err(parol_runtime::ParolError::UserError)?;
17160        let u64_term_built = U64Term { u64_term };
17161        // Calling user action here
17162        self.user_grammar.u64_term(&u64_term_built)?;
17163        self.push(ASTType::U64Term(u64_term_built), context);
17164        Ok(())
17165    }
17166
17167    /// Semantic action for production 129:
17168    ///
17169    /// `UnionTerm: <INITIAL, Generic>'union' : Token;`
17170    ///
17171    #[parol_runtime::function_name::named]
17172    fn union_term(&mut self, union_term: &ParseTreeType<'t>) -> Result<()> {
17173        let context = function_name!();
17174        trace!("{}", self.trace_item_stack(context));
17175        let union_term = union_term
17176            .token()?
17177            .try_into()
17178            .map_err(parol_runtime::ParolError::UserError)?;
17179        let union_term_built = UnionTerm { union_term };
17180        // Calling user action here
17181        self.user_grammar.union_term(&union_term_built)?;
17182        self.push(ASTType::UnionTerm(union_term_built), context);
17183        Ok(())
17184    }
17185
17186    /// Semantic action for production 130:
17187    ///
17188    /// `UnsafeTerm: <INITIAL, Generic>'unsafe' : Token;`
17189    ///
17190    #[parol_runtime::function_name::named]
17191    fn unsafe_term(&mut self, unsafe_term: &ParseTreeType<'t>) -> Result<()> {
17192        let context = function_name!();
17193        trace!("{}", self.trace_item_stack(context));
17194        let unsafe_term = unsafe_term
17195            .token()?
17196            .try_into()
17197            .map_err(parol_runtime::ParolError::UserError)?;
17198        let unsafe_term_built = UnsafeTerm { unsafe_term };
17199        // Calling user action here
17200        self.user_grammar.unsafe_term(&unsafe_term_built)?;
17201        self.push(ASTType::UnsafeTerm(unsafe_term_built), context);
17202        Ok(())
17203    }
17204
17205    /// Semantic action for production 131:
17206    ///
17207    /// `VarTerm: <INITIAL, Generic>'var' : Token;`
17208    ///
17209    #[parol_runtime::function_name::named]
17210    fn var_term(&mut self, var_term: &ParseTreeType<'t>) -> Result<()> {
17211        let context = function_name!();
17212        trace!("{}", self.trace_item_stack(context));
17213        let var_term = var_term
17214            .token()?
17215            .try_into()
17216            .map_err(parol_runtime::ParolError::UserError)?;
17217        let var_term_built = VarTerm { var_term };
17218        // Calling user action here
17219        self.user_grammar.var_term(&var_term_built)?;
17220        self.push(ASTType::VarTerm(var_term_built), context);
17221        Ok(())
17222    }
17223
17224    /// Semantic action for production 132:
17225    ///
17226    /// `DollarIdentifierTerm: <INITIAL, Generic>/\$[a-zA-Z_][0-9a-zA-Z_$]*/ : Token;`
17227    ///
17228    #[parol_runtime::function_name::named]
17229    fn dollar_identifier_term(&mut self, dollar_identifier_term: &ParseTreeType<'t>) -> Result<()> {
17230        let context = function_name!();
17231        trace!("{}", self.trace_item_stack(context));
17232        let dollar_identifier_term = dollar_identifier_term
17233            .token()?
17234            .try_into()
17235            .map_err(parol_runtime::ParolError::UserError)?;
17236        let dollar_identifier_term_built = DollarIdentifierTerm {
17237            dollar_identifier_term,
17238        };
17239        // Calling user action here
17240        self.user_grammar
17241            .dollar_identifier_term(&dollar_identifier_term_built)?;
17242        self.push(
17243            ASTType::DollarIdentifierTerm(dollar_identifier_term_built),
17244            context,
17245        );
17246        Ok(())
17247    }
17248
17249    /// Semantic action for production 133:
17250    ///
17251    /// `IdentifierTerm: <INITIAL, EmbedHeader, Generic, Attr>/(?:r#)?[a-zA-Z_][0-9a-zA-Z_$]*/ : Token;`
17252    ///
17253    #[parol_runtime::function_name::named]
17254    fn identifier_term(&mut self, identifier_term: &ParseTreeType<'t>) -> Result<()> {
17255        let context = function_name!();
17256        trace!("{}", self.trace_item_stack(context));
17257        let identifier_term = identifier_term
17258            .token()?
17259            .try_into()
17260            .map_err(parol_runtime::ParolError::UserError)?;
17261        let identifier_term_built = IdentifierTerm { identifier_term };
17262        // Calling user action here
17263        self.user_grammar.identifier_term(&identifier_term_built)?;
17264        self.push(ASTType::IdentifierTerm(identifier_term_built), context);
17265        Ok(())
17266    }
17267
17268    /// Semantic action for production 134:
17269    ///
17270    /// `AnyTerm: <EmbedBody, EmbedBodyInner>/(?:[^{}\\]|\\[^{])+/ : Token;`
17271    ///
17272    #[parol_runtime::function_name::named]
17273    fn any_term(&mut self, any_term: &ParseTreeType<'t>) -> Result<()> {
17274        let context = function_name!();
17275        trace!("{}", self.trace_item_stack(context));
17276        let any_term = any_term
17277            .token()?
17278            .try_into()
17279            .map_err(parol_runtime::ParolError::UserError)?;
17280        let any_term_built = AnyTerm { any_term };
17281        // Calling user action here
17282        self.user_grammar.any_term(&any_term_built)?;
17283        self.push(ASTType::AnyTerm(any_term_built), context);
17284        Ok(())
17285    }
17286
17287    /// Semantic action for production 135:
17288    ///
17289    /// `Comments: CommentsOpt /* Option */;`
17290    ///
17291    #[parol_runtime::function_name::named]
17292    fn comments(&mut self, _comments_opt: &ParseTreeType<'t>) -> Result<()> {
17293        let context = function_name!();
17294        trace!("{}", self.trace_item_stack(context));
17295        let comments_opt = pop_item!(self, comments_opt, CommentsOpt, context);
17296        let comments_built = Comments { comments_opt };
17297        // Calling user action here
17298        self.user_grammar.comments(&comments_built)?;
17299        self.push(ASTType::Comments(comments_built), context);
17300        Ok(())
17301    }
17302
17303    /// Semantic action for production 136:
17304    ///
17305    /// `CommentsOpt /* Option<T>::Some */: CommentsTerm;`
17306    ///
17307    #[parol_runtime::function_name::named]
17308    fn comments_opt_0(&mut self, _comments_term: &ParseTreeType<'t>) -> Result<()> {
17309        let context = function_name!();
17310        trace!("{}", self.trace_item_stack(context));
17311        let comments_term = pop_item!(self, comments_term, CommentsTerm, context);
17312        let comments_opt_0_built = CommentsOpt {
17313            comments_term: Box::new(comments_term),
17314        };
17315        self.push(ASTType::CommentsOpt(Some(comments_opt_0_built)), context);
17316        Ok(())
17317    }
17318
17319    /// Semantic action for production 137:
17320    ///
17321    /// `CommentsOpt /* Option<T>::None */: ;`
17322    ///
17323    #[parol_runtime::function_name::named]
17324    fn comments_opt_1(&mut self) -> Result<()> {
17325        let context = function_name!();
17326        trace!("{}", self.trace_item_stack(context));
17327        self.push(ASTType::CommentsOpt(None), context);
17328        Ok(())
17329    }
17330
17331    /// Semantic action for production 138:
17332    ///
17333    /// `StartToken: Comments;`
17334    ///
17335    #[parol_runtime::function_name::named]
17336    fn start_token(&mut self, _comments: &ParseTreeType<'t>) -> Result<()> {
17337        let context = function_name!();
17338        trace!("{}", self.trace_item_stack(context));
17339        let comments = pop_item!(self, comments, Comments, context);
17340        let start_token_built = StartToken {
17341            comments: Box::new(comments),
17342        };
17343        // Calling user action here
17344        self.user_grammar.start_token(&start_token_built)?;
17345        self.push(ASTType::StartToken(start_token_built), context);
17346        Ok(())
17347    }
17348
17349    /// Semantic action for production 139:
17350    ///
17351    /// `StringLiteralToken: StringLiteralTerm : Token Comments;`
17352    ///
17353    #[parol_runtime::function_name::named]
17354    fn string_literal_token(
17355        &mut self,
17356        _string_literal_term: &ParseTreeType<'t>,
17357        _comments: &ParseTreeType<'t>,
17358    ) -> Result<()> {
17359        let context = function_name!();
17360        trace!("{}", self.trace_item_stack(context));
17361        let comments = pop_item!(self, comments, Comments, context);
17362        let string_literal_term = pop_item!(self, string_literal_term, StringLiteralTerm, context);
17363        let string_literal_token_built = StringLiteralToken {
17364            string_literal_term: (&string_literal_term)
17365                .try_into()
17366                .map_err(parol_runtime::ParolError::UserError)?,
17367            comments: Box::new(comments),
17368        };
17369        // Calling user action here
17370        self.user_grammar
17371            .string_literal_token(&string_literal_token_built)?;
17372        self.push(
17373            ASTType::StringLiteralToken(string_literal_token_built),
17374            context,
17375        );
17376        Ok(())
17377    }
17378
17379    /// Semantic action for production 140:
17380    ///
17381    /// `ExponentToken: ExponentTerm : Token Comments;`
17382    ///
17383    #[parol_runtime::function_name::named]
17384    fn exponent_token(
17385        &mut self,
17386        _exponent_term: &ParseTreeType<'t>,
17387        _comments: &ParseTreeType<'t>,
17388    ) -> Result<()> {
17389        let context = function_name!();
17390        trace!("{}", self.trace_item_stack(context));
17391        let comments = pop_item!(self, comments, Comments, context);
17392        let exponent_term = pop_item!(self, exponent_term, ExponentTerm, context);
17393        let exponent_token_built = ExponentToken {
17394            exponent_term: (&exponent_term)
17395                .try_into()
17396                .map_err(parol_runtime::ParolError::UserError)?,
17397            comments: Box::new(comments),
17398        };
17399        // Calling user action here
17400        self.user_grammar.exponent_token(&exponent_token_built)?;
17401        self.push(ASTType::ExponentToken(exponent_token_built), context);
17402        Ok(())
17403    }
17404
17405    /// Semantic action for production 141:
17406    ///
17407    /// `FixedPointToken: FixedPointTerm : Token Comments;`
17408    ///
17409    #[parol_runtime::function_name::named]
17410    fn fixed_point_token(
17411        &mut self,
17412        _fixed_point_term: &ParseTreeType<'t>,
17413        _comments: &ParseTreeType<'t>,
17414    ) -> Result<()> {
17415        let context = function_name!();
17416        trace!("{}", self.trace_item_stack(context));
17417        let comments = pop_item!(self, comments, Comments, context);
17418        let fixed_point_term = pop_item!(self, fixed_point_term, FixedPointTerm, context);
17419        let fixed_point_token_built = FixedPointToken {
17420            fixed_point_term: (&fixed_point_term)
17421                .try_into()
17422                .map_err(parol_runtime::ParolError::UserError)?,
17423            comments: Box::new(comments),
17424        };
17425        // Calling user action here
17426        self.user_grammar
17427            .fixed_point_token(&fixed_point_token_built)?;
17428        self.push(ASTType::FixedPointToken(fixed_point_token_built), context);
17429        Ok(())
17430    }
17431
17432    /// Semantic action for production 142:
17433    ///
17434    /// `BasedToken: BasedTerm : Token Comments;`
17435    ///
17436    #[parol_runtime::function_name::named]
17437    fn based_token(
17438        &mut self,
17439        _based_term: &ParseTreeType<'t>,
17440        _comments: &ParseTreeType<'t>,
17441    ) -> Result<()> {
17442        let context = function_name!();
17443        trace!("{}", self.trace_item_stack(context));
17444        let comments = pop_item!(self, comments, Comments, context);
17445        let based_term = pop_item!(self, based_term, BasedTerm, context);
17446        let based_token_built = BasedToken {
17447            based_term: (&based_term)
17448                .try_into()
17449                .map_err(parol_runtime::ParolError::UserError)?,
17450            comments: Box::new(comments),
17451        };
17452        // Calling user action here
17453        self.user_grammar.based_token(&based_token_built)?;
17454        self.push(ASTType::BasedToken(based_token_built), context);
17455        Ok(())
17456    }
17457
17458    /// Semantic action for production 143:
17459    ///
17460    /// `BaseLessToken: BaseLessTerm : Token Comments;`
17461    ///
17462    #[parol_runtime::function_name::named]
17463    fn base_less_token(
17464        &mut self,
17465        _base_less_term: &ParseTreeType<'t>,
17466        _comments: &ParseTreeType<'t>,
17467    ) -> Result<()> {
17468        let context = function_name!();
17469        trace!("{}", self.trace_item_stack(context));
17470        let comments = pop_item!(self, comments, Comments, context);
17471        let base_less_term = pop_item!(self, base_less_term, BaseLessTerm, context);
17472        let base_less_token_built = BaseLessToken {
17473            base_less_term: (&base_less_term)
17474                .try_into()
17475                .map_err(parol_runtime::ParolError::UserError)?,
17476            comments: Box::new(comments),
17477        };
17478        // Calling user action here
17479        self.user_grammar.base_less_token(&base_less_token_built)?;
17480        self.push(ASTType::BaseLessToken(base_less_token_built), context);
17481        Ok(())
17482    }
17483
17484    /// Semantic action for production 144:
17485    ///
17486    /// `AllBitToken: AllBitTerm : Token Comments;`
17487    ///
17488    #[parol_runtime::function_name::named]
17489    fn all_bit_token(
17490        &mut self,
17491        _all_bit_term: &ParseTreeType<'t>,
17492        _comments: &ParseTreeType<'t>,
17493    ) -> Result<()> {
17494        let context = function_name!();
17495        trace!("{}", self.trace_item_stack(context));
17496        let comments = pop_item!(self, comments, Comments, context);
17497        let all_bit_term = pop_item!(self, all_bit_term, AllBitTerm, context);
17498        let all_bit_token_built = AllBitToken {
17499            all_bit_term: (&all_bit_term)
17500                .try_into()
17501                .map_err(parol_runtime::ParolError::UserError)?,
17502            comments: Box::new(comments),
17503        };
17504        // Calling user action here
17505        self.user_grammar.all_bit_token(&all_bit_token_built)?;
17506        self.push(ASTType::AllBitToken(all_bit_token_built), context);
17507        Ok(())
17508    }
17509
17510    /// Semantic action for production 145:
17511    ///
17512    /// `AssignmentOperatorToken: AssignmentOperatorTerm : Token Comments;`
17513    ///
17514    #[parol_runtime::function_name::named]
17515    fn assignment_operator_token(
17516        &mut self,
17517        _assignment_operator_term: &ParseTreeType<'t>,
17518        _comments: &ParseTreeType<'t>,
17519    ) -> Result<()> {
17520        let context = function_name!();
17521        trace!("{}", self.trace_item_stack(context));
17522        let comments = pop_item!(self, comments, Comments, context);
17523        let assignment_operator_term = pop_item!(
17524            self,
17525            assignment_operator_term,
17526            AssignmentOperatorTerm,
17527            context
17528        );
17529        let assignment_operator_token_built = AssignmentOperatorToken {
17530            assignment_operator_term: (&assignment_operator_term)
17531                .try_into()
17532                .map_err(parol_runtime::ParolError::UserError)?,
17533            comments: Box::new(comments),
17534        };
17535        // Calling user action here
17536        self.user_grammar
17537            .assignment_operator_token(&assignment_operator_token_built)?;
17538        self.push(
17539            ASTType::AssignmentOperatorToken(assignment_operator_token_built),
17540            context,
17541        );
17542        Ok(())
17543    }
17544
17545    /// Semantic action for production 146:
17546    ///
17547    /// `DiamondOperatorToken: DiamondOperatorTerm : Token Comments;`
17548    ///
17549    #[parol_runtime::function_name::named]
17550    fn diamond_operator_token(
17551        &mut self,
17552        _diamond_operator_term: &ParseTreeType<'t>,
17553        _comments: &ParseTreeType<'t>,
17554    ) -> Result<()> {
17555        let context = function_name!();
17556        trace!("{}", self.trace_item_stack(context));
17557        let comments = pop_item!(self, comments, Comments, context);
17558        let diamond_operator_term =
17559            pop_item!(self, diamond_operator_term, DiamondOperatorTerm, context);
17560        let diamond_operator_token_built = DiamondOperatorToken {
17561            diamond_operator_term: (&diamond_operator_term)
17562                .try_into()
17563                .map_err(parol_runtime::ParolError::UserError)?,
17564            comments: Box::new(comments),
17565        };
17566        // Calling user action here
17567        self.user_grammar
17568            .diamond_operator_token(&diamond_operator_token_built)?;
17569        self.push(
17570            ASTType::DiamondOperatorToken(diamond_operator_token_built),
17571            context,
17572        );
17573        Ok(())
17574    }
17575
17576    /// Semantic action for production 147:
17577    ///
17578    /// `Operator01Token: Operator01Term : Token Comments;`
17579    ///
17580    #[parol_runtime::function_name::named]
17581    fn operator01_token(
17582        &mut self,
17583        _operator01_term: &ParseTreeType<'t>,
17584        _comments: &ParseTreeType<'t>,
17585    ) -> Result<()> {
17586        let context = function_name!();
17587        trace!("{}", self.trace_item_stack(context));
17588        let comments = pop_item!(self, comments, Comments, context);
17589        let operator01_term = pop_item!(self, operator01_term, Operator01Term, context);
17590        let operator01_token_built = Operator01Token {
17591            operator01_term: (&operator01_term)
17592                .try_into()
17593                .map_err(parol_runtime::ParolError::UserError)?,
17594            comments: Box::new(comments),
17595        };
17596        // Calling user action here
17597        self.user_grammar
17598            .operator01_token(&operator01_token_built)?;
17599        self.push(ASTType::Operator01Token(operator01_token_built), context);
17600        Ok(())
17601    }
17602
17603    /// Semantic action for production 148:
17604    ///
17605    /// `Operator02Token: Operator02Term : Token Comments;`
17606    ///
17607    #[parol_runtime::function_name::named]
17608    fn operator02_token(
17609        &mut self,
17610        _operator02_term: &ParseTreeType<'t>,
17611        _comments: &ParseTreeType<'t>,
17612    ) -> Result<()> {
17613        let context = function_name!();
17614        trace!("{}", self.trace_item_stack(context));
17615        let comments = pop_item!(self, comments, Comments, context);
17616        let operator02_term = pop_item!(self, operator02_term, Operator02Term, context);
17617        let operator02_token_built = Operator02Token {
17618            operator02_term: (&operator02_term)
17619                .try_into()
17620                .map_err(parol_runtime::ParolError::UserError)?,
17621            comments: Box::new(comments),
17622        };
17623        // Calling user action here
17624        self.user_grammar
17625            .operator02_token(&operator02_token_built)?;
17626        self.push(ASTType::Operator02Token(operator02_token_built), context);
17627        Ok(())
17628    }
17629
17630    /// Semantic action for production 149:
17631    ///
17632    /// `Operator03Token: Operator03Term : Token Comments;`
17633    ///
17634    #[parol_runtime::function_name::named]
17635    fn operator03_token(
17636        &mut self,
17637        _operator03_term: &ParseTreeType<'t>,
17638        _comments: &ParseTreeType<'t>,
17639    ) -> Result<()> {
17640        let context = function_name!();
17641        trace!("{}", self.trace_item_stack(context));
17642        let comments = pop_item!(self, comments, Comments, context);
17643        let operator03_term = pop_item!(self, operator03_term, Operator03Term, context);
17644        let operator03_token_built = Operator03Token {
17645            operator03_term: (&operator03_term)
17646                .try_into()
17647                .map_err(parol_runtime::ParolError::UserError)?,
17648            comments: Box::new(comments),
17649        };
17650        // Calling user action here
17651        self.user_grammar
17652            .operator03_token(&operator03_token_built)?;
17653        self.push(ASTType::Operator03Token(operator03_token_built), context);
17654        Ok(())
17655    }
17656
17657    /// Semantic action for production 150:
17658    ///
17659    /// `Operator04Token: Operator04Term : Token Comments;`
17660    ///
17661    #[parol_runtime::function_name::named]
17662    fn operator04_token(
17663        &mut self,
17664        _operator04_term: &ParseTreeType<'t>,
17665        _comments: &ParseTreeType<'t>,
17666    ) -> Result<()> {
17667        let context = function_name!();
17668        trace!("{}", self.trace_item_stack(context));
17669        let comments = pop_item!(self, comments, Comments, context);
17670        let operator04_term = pop_item!(self, operator04_term, Operator04Term, context);
17671        let operator04_token_built = Operator04Token {
17672            operator04_term: (&operator04_term)
17673                .try_into()
17674                .map_err(parol_runtime::ParolError::UserError)?,
17675            comments: Box::new(comments),
17676        };
17677        // Calling user action here
17678        self.user_grammar
17679            .operator04_token(&operator04_token_built)?;
17680        self.push(ASTType::Operator04Token(operator04_token_built), context);
17681        Ok(())
17682    }
17683
17684    /// Semantic action for production 151:
17685    ///
17686    /// `Operator05Token: Operator05Term : Token Comments;`
17687    ///
17688    #[parol_runtime::function_name::named]
17689    fn operator05_token(
17690        &mut self,
17691        _operator05_term: &ParseTreeType<'t>,
17692        _comments: &ParseTreeType<'t>,
17693    ) -> Result<()> {
17694        let context = function_name!();
17695        trace!("{}", self.trace_item_stack(context));
17696        let comments = pop_item!(self, comments, Comments, context);
17697        let operator05_term = pop_item!(self, operator05_term, Operator05Term, context);
17698        let operator05_token_built = Operator05Token {
17699            operator05_term: (&operator05_term)
17700                .try_into()
17701                .map_err(parol_runtime::ParolError::UserError)?,
17702            comments: Box::new(comments),
17703        };
17704        // Calling user action here
17705        self.user_grammar
17706            .operator05_token(&operator05_token_built)?;
17707        self.push(ASTType::Operator05Token(operator05_token_built), context);
17708        Ok(())
17709    }
17710
17711    /// Semantic action for production 152:
17712    ///
17713    /// `Operator06Token: Operator06Term : Token Comments;`
17714    ///
17715    #[parol_runtime::function_name::named]
17716    fn operator06_token(
17717        &mut self,
17718        _operator06_term: &ParseTreeType<'t>,
17719        _comments: &ParseTreeType<'t>,
17720    ) -> Result<()> {
17721        let context = function_name!();
17722        trace!("{}", self.trace_item_stack(context));
17723        let comments = pop_item!(self, comments, Comments, context);
17724        let operator06_term = pop_item!(self, operator06_term, Operator06Term, context);
17725        let operator06_token_built = Operator06Token {
17726            operator06_term: (&operator06_term)
17727                .try_into()
17728                .map_err(parol_runtime::ParolError::UserError)?,
17729            comments: Box::new(comments),
17730        };
17731        // Calling user action here
17732        self.user_grammar
17733            .operator06_token(&operator06_token_built)?;
17734        self.push(ASTType::Operator06Token(operator06_token_built), context);
17735        Ok(())
17736    }
17737
17738    /// Semantic action for production 153:
17739    ///
17740    /// `Operator07Token: Operator07Term : Token Comments;`
17741    ///
17742    #[parol_runtime::function_name::named]
17743    fn operator07_token(
17744        &mut self,
17745        _operator07_term: &ParseTreeType<'t>,
17746        _comments: &ParseTreeType<'t>,
17747    ) -> Result<()> {
17748        let context = function_name!();
17749        trace!("{}", self.trace_item_stack(context));
17750        let comments = pop_item!(self, comments, Comments, context);
17751        let operator07_term = pop_item!(self, operator07_term, Operator07Term, context);
17752        let operator07_token_built = Operator07Token {
17753            operator07_term: (&operator07_term)
17754                .try_into()
17755                .map_err(parol_runtime::ParolError::UserError)?,
17756            comments: Box::new(comments),
17757        };
17758        // Calling user action here
17759        self.user_grammar
17760            .operator07_token(&operator07_token_built)?;
17761        self.push(ASTType::Operator07Token(operator07_token_built), context);
17762        Ok(())
17763    }
17764
17765    /// Semantic action for production 154:
17766    ///
17767    /// `Operator08Token: Operator08Term : Token Comments;`
17768    ///
17769    #[parol_runtime::function_name::named]
17770    fn operator08_token(
17771        &mut self,
17772        _operator08_term: &ParseTreeType<'t>,
17773        _comments: &ParseTreeType<'t>,
17774    ) -> Result<()> {
17775        let context = function_name!();
17776        trace!("{}", self.trace_item_stack(context));
17777        let comments = pop_item!(self, comments, Comments, context);
17778        let operator08_term = pop_item!(self, operator08_term, Operator08Term, context);
17779        let operator08_token_built = Operator08Token {
17780            operator08_term: (&operator08_term)
17781                .try_into()
17782                .map_err(parol_runtime::ParolError::UserError)?,
17783            comments: Box::new(comments),
17784        };
17785        // Calling user action here
17786        self.user_grammar
17787            .operator08_token(&operator08_token_built)?;
17788        self.push(ASTType::Operator08Token(operator08_token_built), context);
17789        Ok(())
17790    }
17791
17792    /// Semantic action for production 155:
17793    ///
17794    /// `UnaryOperatorToken: UnaryOperatorTerm : Token Comments;`
17795    ///
17796    #[parol_runtime::function_name::named]
17797    fn unary_operator_token(
17798        &mut self,
17799        _unary_operator_term: &ParseTreeType<'t>,
17800        _comments: &ParseTreeType<'t>,
17801    ) -> Result<()> {
17802        let context = function_name!();
17803        trace!("{}", self.trace_item_stack(context));
17804        let comments = pop_item!(self, comments, Comments, context);
17805        let unary_operator_term = pop_item!(self, unary_operator_term, UnaryOperatorTerm, context);
17806        let unary_operator_token_built = UnaryOperatorToken {
17807            unary_operator_term: (&unary_operator_term)
17808                .try_into()
17809                .map_err(parol_runtime::ParolError::UserError)?,
17810            comments: Box::new(comments),
17811        };
17812        // Calling user action here
17813        self.user_grammar
17814            .unary_operator_token(&unary_operator_token_built)?;
17815        self.push(
17816            ASTType::UnaryOperatorToken(unary_operator_token_built),
17817            context,
17818        );
17819        Ok(())
17820    }
17821
17822    /// Semantic action for production 156:
17823    ///
17824    /// `ColonToken: ColonTerm : Token Comments;`
17825    ///
17826    #[parol_runtime::function_name::named]
17827    fn colon_token(
17828        &mut self,
17829        _colon_term: &ParseTreeType<'t>,
17830        _comments: &ParseTreeType<'t>,
17831    ) -> Result<()> {
17832        let context = function_name!();
17833        trace!("{}", self.trace_item_stack(context));
17834        let comments = pop_item!(self, comments, Comments, context);
17835        let colon_term = pop_item!(self, colon_term, ColonTerm, context);
17836        let colon_token_built = ColonToken {
17837            colon_term: (&colon_term)
17838                .try_into()
17839                .map_err(parol_runtime::ParolError::UserError)?,
17840            comments: Box::new(comments),
17841        };
17842        // Calling user action here
17843        self.user_grammar.colon_token(&colon_token_built)?;
17844        self.push(ASTType::ColonToken(colon_token_built), context);
17845        Ok(())
17846    }
17847
17848    /// Semantic action for production 157:
17849    ///
17850    /// `ColonColonLAngleToken: ColonColonLAngleTerm : Token Comments;`
17851    ///
17852    #[parol_runtime::function_name::named]
17853    fn colon_colon_l_angle_token(
17854        &mut self,
17855        _colon_colon_l_angle_term: &ParseTreeType<'t>,
17856        _comments: &ParseTreeType<'t>,
17857    ) -> Result<()> {
17858        let context = function_name!();
17859        trace!("{}", self.trace_item_stack(context));
17860        let comments = pop_item!(self, comments, Comments, context);
17861        let colon_colon_l_angle_term = pop_item!(
17862            self,
17863            colon_colon_l_angle_term,
17864            ColonColonLAngleTerm,
17865            context
17866        );
17867        let colon_colon_l_angle_token_built = ColonColonLAngleToken {
17868            colon_colon_l_angle_term: (&colon_colon_l_angle_term)
17869                .try_into()
17870                .map_err(parol_runtime::ParolError::UserError)?,
17871            comments: Box::new(comments),
17872        };
17873        // Calling user action here
17874        self.user_grammar
17875            .colon_colon_l_angle_token(&colon_colon_l_angle_token_built)?;
17876        self.push(
17877            ASTType::ColonColonLAngleToken(colon_colon_l_angle_token_built),
17878            context,
17879        );
17880        Ok(())
17881    }
17882
17883    /// Semantic action for production 158:
17884    ///
17885    /// `ColonColonToken: ColonColonTerm : Token Comments;`
17886    ///
17887    #[parol_runtime::function_name::named]
17888    fn colon_colon_token(
17889        &mut self,
17890        _colon_colon_term: &ParseTreeType<'t>,
17891        _comments: &ParseTreeType<'t>,
17892    ) -> Result<()> {
17893        let context = function_name!();
17894        trace!("{}", self.trace_item_stack(context));
17895        let comments = pop_item!(self, comments, Comments, context);
17896        let colon_colon_term = pop_item!(self, colon_colon_term, ColonColonTerm, context);
17897        let colon_colon_token_built = ColonColonToken {
17898            colon_colon_term: (&colon_colon_term)
17899                .try_into()
17900                .map_err(parol_runtime::ParolError::UserError)?,
17901            comments: Box::new(comments),
17902        };
17903        // Calling user action here
17904        self.user_grammar
17905            .colon_colon_token(&colon_colon_token_built)?;
17906        self.push(ASTType::ColonColonToken(colon_colon_token_built), context);
17907        Ok(())
17908    }
17909
17910    /// Semantic action for production 159:
17911    ///
17912    /// `CommaToken: CommaTerm : Token Comments;`
17913    ///
17914    #[parol_runtime::function_name::named]
17915    fn comma_token(
17916        &mut self,
17917        _comma_term: &ParseTreeType<'t>,
17918        _comments: &ParseTreeType<'t>,
17919    ) -> Result<()> {
17920        let context = function_name!();
17921        trace!("{}", self.trace_item_stack(context));
17922        let comments = pop_item!(self, comments, Comments, context);
17923        let comma_term = pop_item!(self, comma_term, CommaTerm, context);
17924        let comma_token_built = CommaToken {
17925            comma_term: (&comma_term)
17926                .try_into()
17927                .map_err(parol_runtime::ParolError::UserError)?,
17928            comments: Box::new(comments),
17929        };
17930        // Calling user action here
17931        self.user_grammar.comma_token(&comma_token_built)?;
17932        self.push(ASTType::CommaToken(comma_token_built), context);
17933        Ok(())
17934    }
17935
17936    /// Semantic action for production 160:
17937    ///
17938    /// `DotDotToken: DotDotTerm : Token Comments;`
17939    ///
17940    #[parol_runtime::function_name::named]
17941    fn dot_dot_token(
17942        &mut self,
17943        _dot_dot_term: &ParseTreeType<'t>,
17944        _comments: &ParseTreeType<'t>,
17945    ) -> Result<()> {
17946        let context = function_name!();
17947        trace!("{}", self.trace_item_stack(context));
17948        let comments = pop_item!(self, comments, Comments, context);
17949        let dot_dot_term = pop_item!(self, dot_dot_term, DotDotTerm, context);
17950        let dot_dot_token_built = DotDotToken {
17951            dot_dot_term: (&dot_dot_term)
17952                .try_into()
17953                .map_err(parol_runtime::ParolError::UserError)?,
17954            comments: Box::new(comments),
17955        };
17956        // Calling user action here
17957        self.user_grammar.dot_dot_token(&dot_dot_token_built)?;
17958        self.push(ASTType::DotDotToken(dot_dot_token_built), context);
17959        Ok(())
17960    }
17961
17962    /// Semantic action for production 161:
17963    ///
17964    /// `DotDotEquToken: DotDotEquTerm : Token Comments;`
17965    ///
17966    #[parol_runtime::function_name::named]
17967    fn dot_dot_equ_token(
17968        &mut self,
17969        _dot_dot_equ_term: &ParseTreeType<'t>,
17970        _comments: &ParseTreeType<'t>,
17971    ) -> Result<()> {
17972        let context = function_name!();
17973        trace!("{}", self.trace_item_stack(context));
17974        let comments = pop_item!(self, comments, Comments, context);
17975        let dot_dot_equ_term = pop_item!(self, dot_dot_equ_term, DotDotEquTerm, context);
17976        let dot_dot_equ_token_built = DotDotEquToken {
17977            dot_dot_equ_term: (&dot_dot_equ_term)
17978                .try_into()
17979                .map_err(parol_runtime::ParolError::UserError)?,
17980            comments: Box::new(comments),
17981        };
17982        // Calling user action here
17983        self.user_grammar
17984            .dot_dot_equ_token(&dot_dot_equ_token_built)?;
17985        self.push(ASTType::DotDotEquToken(dot_dot_equ_token_built), context);
17986        Ok(())
17987    }
17988
17989    /// Semantic action for production 162:
17990    ///
17991    /// `DotToken: DotTerm : Token Comments;`
17992    ///
17993    #[parol_runtime::function_name::named]
17994    fn dot_token(
17995        &mut self,
17996        _dot_term: &ParseTreeType<'t>,
17997        _comments: &ParseTreeType<'t>,
17998    ) -> Result<()> {
17999        let context = function_name!();
18000        trace!("{}", self.trace_item_stack(context));
18001        let comments = pop_item!(self, comments, Comments, context);
18002        let dot_term = pop_item!(self, dot_term, DotTerm, context);
18003        let dot_token_built = DotToken {
18004            dot_term: (&dot_term)
18005                .try_into()
18006                .map_err(parol_runtime::ParolError::UserError)?,
18007            comments: Box::new(comments),
18008        };
18009        // Calling user action here
18010        self.user_grammar.dot_token(&dot_token_built)?;
18011        self.push(ASTType::DotToken(dot_token_built), context);
18012        Ok(())
18013    }
18014
18015    /// Semantic action for production 163:
18016    ///
18017    /// `EquToken: EquTerm : Token Comments;`
18018    ///
18019    #[parol_runtime::function_name::named]
18020    fn equ_token(
18021        &mut self,
18022        _equ_term: &ParseTreeType<'t>,
18023        _comments: &ParseTreeType<'t>,
18024    ) -> Result<()> {
18025        let context = function_name!();
18026        trace!("{}", self.trace_item_stack(context));
18027        let comments = pop_item!(self, comments, Comments, context);
18028        let equ_term = pop_item!(self, equ_term, EquTerm, context);
18029        let equ_token_built = EquToken {
18030            equ_term: (&equ_term)
18031                .try_into()
18032                .map_err(parol_runtime::ParolError::UserError)?,
18033            comments: Box::new(comments),
18034        };
18035        // Calling user action here
18036        self.user_grammar.equ_token(&equ_token_built)?;
18037        self.push(ASTType::EquToken(equ_token_built), context);
18038        Ok(())
18039    }
18040
18041    /// Semantic action for production 164:
18042    ///
18043    /// `HashLBracketToken: HashLBracketTerm : Token Comments;`
18044    ///
18045    #[parol_runtime::function_name::named]
18046    fn hash_l_bracket_token(
18047        &mut self,
18048        _hash_l_bracket_term: &ParseTreeType<'t>,
18049        _comments: &ParseTreeType<'t>,
18050    ) -> Result<()> {
18051        let context = function_name!();
18052        trace!("{}", self.trace_item_stack(context));
18053        let comments = pop_item!(self, comments, Comments, context);
18054        let hash_l_bracket_term = pop_item!(self, hash_l_bracket_term, HashLBracketTerm, context);
18055        let hash_l_bracket_token_built = HashLBracketToken {
18056            hash_l_bracket_term: (&hash_l_bracket_term)
18057                .try_into()
18058                .map_err(parol_runtime::ParolError::UserError)?,
18059            comments: Box::new(comments),
18060        };
18061        // Calling user action here
18062        self.user_grammar
18063            .hash_l_bracket_token(&hash_l_bracket_token_built)?;
18064        self.push(
18065            ASTType::HashLBracketToken(hash_l_bracket_token_built),
18066            context,
18067        );
18068        Ok(())
18069    }
18070
18071    /// Semantic action for production 165:
18072    ///
18073    /// `HashToken: HashTerm : Token Comments;`
18074    ///
18075    #[parol_runtime::function_name::named]
18076    fn hash_token(
18077        &mut self,
18078        _hash_term: &ParseTreeType<'t>,
18079        _comments: &ParseTreeType<'t>,
18080    ) -> Result<()> {
18081        let context = function_name!();
18082        trace!("{}", self.trace_item_stack(context));
18083        let comments = pop_item!(self, comments, Comments, context);
18084        let hash_term = pop_item!(self, hash_term, HashTerm, context);
18085        let hash_token_built = HashToken {
18086            hash_term: (&hash_term)
18087                .try_into()
18088                .map_err(parol_runtime::ParolError::UserError)?,
18089            comments: Box::new(comments),
18090        };
18091        // Calling user action here
18092        self.user_grammar.hash_token(&hash_token_built)?;
18093        self.push(ASTType::HashToken(hash_token_built), context);
18094        Ok(())
18095    }
18096
18097    /// Semantic action for production 166:
18098    ///
18099    /// `QuestionToken: QuestionTerm : Token Comments;`
18100    ///
18101    #[parol_runtime::function_name::named]
18102    fn question_token(
18103        &mut self,
18104        _question_term: &ParseTreeType<'t>,
18105        _comments: &ParseTreeType<'t>,
18106    ) -> Result<()> {
18107        let context = function_name!();
18108        trace!("{}", self.trace_item_stack(context));
18109        let comments = pop_item!(self, comments, Comments, context);
18110        let question_term = pop_item!(self, question_term, QuestionTerm, context);
18111        let question_token_built = QuestionToken {
18112            question_term: (&question_term)
18113                .try_into()
18114                .map_err(parol_runtime::ParolError::UserError)?,
18115            comments: Box::new(comments),
18116        };
18117        // Calling user action here
18118        self.user_grammar.question_token(&question_token_built)?;
18119        self.push(ASTType::QuestionToken(question_token_built), context);
18120        Ok(())
18121    }
18122
18123    /// Semantic action for production 167:
18124    ///
18125    /// `QuoteLBraceToken: QuoteLBraceTerm : Token Comments;`
18126    ///
18127    #[parol_runtime::function_name::named]
18128    fn quote_l_brace_token(
18129        &mut self,
18130        _quote_l_brace_term: &ParseTreeType<'t>,
18131        _comments: &ParseTreeType<'t>,
18132    ) -> Result<()> {
18133        let context = function_name!();
18134        trace!("{}", self.trace_item_stack(context));
18135        let comments = pop_item!(self, comments, Comments, context);
18136        let quote_l_brace_term = pop_item!(self, quote_l_brace_term, QuoteLBraceTerm, context);
18137        let quote_l_brace_token_built = QuoteLBraceToken {
18138            quote_l_brace_term: (&quote_l_brace_term)
18139                .try_into()
18140                .map_err(parol_runtime::ParolError::UserError)?,
18141            comments: Box::new(comments),
18142        };
18143        // Calling user action here
18144        self.user_grammar
18145            .quote_l_brace_token(&quote_l_brace_token_built)?;
18146        self.push(
18147            ASTType::QuoteLBraceToken(quote_l_brace_token_built),
18148            context,
18149        );
18150        Ok(())
18151    }
18152
18153    /// Semantic action for production 168:
18154    ///
18155    /// `QuoteToken: QuoteTerm : Token Comments;`
18156    ///
18157    #[parol_runtime::function_name::named]
18158    fn quote_token(
18159        &mut self,
18160        _quote_term: &ParseTreeType<'t>,
18161        _comments: &ParseTreeType<'t>,
18162    ) -> Result<()> {
18163        let context = function_name!();
18164        trace!("{}", self.trace_item_stack(context));
18165        let comments = pop_item!(self, comments, Comments, context);
18166        let quote_term = pop_item!(self, quote_term, QuoteTerm, context);
18167        let quote_token_built = QuoteToken {
18168            quote_term: (&quote_term)
18169                .try_into()
18170                .map_err(parol_runtime::ParolError::UserError)?,
18171            comments: Box::new(comments),
18172        };
18173        // Calling user action here
18174        self.user_grammar.quote_token(&quote_token_built)?;
18175        self.push(ASTType::QuoteToken(quote_token_built), context);
18176        Ok(())
18177    }
18178
18179    /// Semantic action for production 169:
18180    ///
18181    /// `LAngleToken: LAngleTerm : Token Comments;`
18182    ///
18183    #[parol_runtime::function_name::named]
18184    fn l_angle_token(
18185        &mut self,
18186        _l_angle_term: &ParseTreeType<'t>,
18187        _comments: &ParseTreeType<'t>,
18188    ) -> Result<()> {
18189        let context = function_name!();
18190        trace!("{}", self.trace_item_stack(context));
18191        let comments = pop_item!(self, comments, Comments, context);
18192        let l_angle_term = pop_item!(self, l_angle_term, LAngleTerm, context);
18193        let l_angle_token_built = LAngleToken {
18194            l_angle_term: (&l_angle_term)
18195                .try_into()
18196                .map_err(parol_runtime::ParolError::UserError)?,
18197            comments: Box::new(comments),
18198        };
18199        // Calling user action here
18200        self.user_grammar.l_angle_token(&l_angle_token_built)?;
18201        self.push(ASTType::LAngleToken(l_angle_token_built), context);
18202        Ok(())
18203    }
18204
18205    /// Semantic action for production 170:
18206    ///
18207    /// `EmbedLBraceToken: LBraceTerm : Token;`
18208    ///
18209    #[parol_runtime::function_name::named]
18210    fn embed_l_brace_token(&mut self, _l_brace_term: &ParseTreeType<'t>) -> Result<()> {
18211        let context = function_name!();
18212        trace!("{}", self.trace_item_stack(context));
18213        let l_brace_term = pop_item!(self, l_brace_term, LBraceTerm, context);
18214        let embed_l_brace_token_built = EmbedLBraceToken {
18215            l_brace_term: (&l_brace_term)
18216                .try_into()
18217                .map_err(parol_runtime::ParolError::UserError)?,
18218        };
18219        // Calling user action here
18220        self.user_grammar
18221            .embed_l_brace_token(&embed_l_brace_token_built)?;
18222        self.push(
18223            ASTType::EmbedLBraceToken(embed_l_brace_token_built),
18224            context,
18225        );
18226        Ok(())
18227    }
18228
18229    /// Semantic action for production 171:
18230    ///
18231    /// `EscapedLBraceToken: EscapedLBraceTerm : Token;`
18232    ///
18233    #[parol_runtime::function_name::named]
18234    fn escaped_l_brace_token(&mut self, _escaped_l_brace_term: &ParseTreeType<'t>) -> Result<()> {
18235        let context = function_name!();
18236        trace!("{}", self.trace_item_stack(context));
18237        let escaped_l_brace_term =
18238            pop_item!(self, escaped_l_brace_term, EscapedLBraceTerm, context);
18239        let escaped_l_brace_token_built = EscapedLBraceToken {
18240            escaped_l_brace_term: (&escaped_l_brace_term)
18241                .try_into()
18242                .map_err(parol_runtime::ParolError::UserError)?,
18243        };
18244        // Calling user action here
18245        self.user_grammar
18246            .escaped_l_brace_token(&escaped_l_brace_token_built)?;
18247        self.push(
18248            ASTType::EscapedLBraceToken(escaped_l_brace_token_built),
18249            context,
18250        );
18251        Ok(())
18252    }
18253
18254    /// Semantic action for production 172:
18255    ///
18256    /// `TripleLBraceToken: TripleLBraceTerm : Token;`
18257    ///
18258    #[parol_runtime::function_name::named]
18259    fn triple_l_brace_token(&mut self, _triple_l_brace_term: &ParseTreeType<'t>) -> Result<()> {
18260        let context = function_name!();
18261        trace!("{}", self.trace_item_stack(context));
18262        let triple_l_brace_term = pop_item!(self, triple_l_brace_term, TripleLBraceTerm, context);
18263        let triple_l_brace_token_built = TripleLBraceToken {
18264            triple_l_brace_term: (&triple_l_brace_term)
18265                .try_into()
18266                .map_err(parol_runtime::ParolError::UserError)?,
18267        };
18268        // Calling user action here
18269        self.user_grammar
18270            .triple_l_brace_token(&triple_l_brace_token_built)?;
18271        self.push(
18272            ASTType::TripleLBraceToken(triple_l_brace_token_built),
18273            context,
18274        );
18275        Ok(())
18276    }
18277
18278    /// Semantic action for production 173:
18279    ///
18280    /// `LBraceToken: LBraceTerm : Token Comments;`
18281    ///
18282    #[parol_runtime::function_name::named]
18283    fn l_brace_token(
18284        &mut self,
18285        _l_brace_term: &ParseTreeType<'t>,
18286        _comments: &ParseTreeType<'t>,
18287    ) -> Result<()> {
18288        let context = function_name!();
18289        trace!("{}", self.trace_item_stack(context));
18290        let comments = pop_item!(self, comments, Comments, context);
18291        let l_brace_term = pop_item!(self, l_brace_term, LBraceTerm, context);
18292        let l_brace_token_built = LBraceToken {
18293            l_brace_term: (&l_brace_term)
18294                .try_into()
18295                .map_err(parol_runtime::ParolError::UserError)?,
18296            comments: Box::new(comments),
18297        };
18298        // Calling user action here
18299        self.user_grammar.l_brace_token(&l_brace_token_built)?;
18300        self.push(ASTType::LBraceToken(l_brace_token_built), context);
18301        Ok(())
18302    }
18303
18304    /// Semantic action for production 174:
18305    ///
18306    /// `LBracketToken: LBracketTerm : Token Comments;`
18307    ///
18308    #[parol_runtime::function_name::named]
18309    fn l_bracket_token(
18310        &mut self,
18311        _l_bracket_term: &ParseTreeType<'t>,
18312        _comments: &ParseTreeType<'t>,
18313    ) -> Result<()> {
18314        let context = function_name!();
18315        trace!("{}", self.trace_item_stack(context));
18316        let comments = pop_item!(self, comments, Comments, context);
18317        let l_bracket_term = pop_item!(self, l_bracket_term, LBracketTerm, context);
18318        let l_bracket_token_built = LBracketToken {
18319            l_bracket_term: (&l_bracket_term)
18320                .try_into()
18321                .map_err(parol_runtime::ParolError::UserError)?,
18322            comments: Box::new(comments),
18323        };
18324        // Calling user action here
18325        self.user_grammar.l_bracket_token(&l_bracket_token_built)?;
18326        self.push(ASTType::LBracketToken(l_bracket_token_built), context);
18327        Ok(())
18328    }
18329
18330    /// Semantic action for production 175:
18331    ///
18332    /// `LParenToken: LParenTerm : Token Comments;`
18333    ///
18334    #[parol_runtime::function_name::named]
18335    fn l_paren_token(
18336        &mut self,
18337        _l_paren_term: &ParseTreeType<'t>,
18338        _comments: &ParseTreeType<'t>,
18339    ) -> Result<()> {
18340        let context = function_name!();
18341        trace!("{}", self.trace_item_stack(context));
18342        let comments = pop_item!(self, comments, Comments, context);
18343        let l_paren_term = pop_item!(self, l_paren_term, LParenTerm, context);
18344        let l_paren_token_built = LParenToken {
18345            l_paren_term: (&l_paren_term)
18346                .try_into()
18347                .map_err(parol_runtime::ParolError::UserError)?,
18348            comments: Box::new(comments),
18349        };
18350        // Calling user action here
18351        self.user_grammar.l_paren_token(&l_paren_token_built)?;
18352        self.push(ASTType::LParenToken(l_paren_token_built), context);
18353        Ok(())
18354    }
18355
18356    /// Semantic action for production 176:
18357    ///
18358    /// `LTMinusToken: LTMinusTerm : Token Comments;`
18359    ///
18360    #[parol_runtime::function_name::named]
18361    fn l_t_minus_token(
18362        &mut self,
18363        _l_t_minus_term: &ParseTreeType<'t>,
18364        _comments: &ParseTreeType<'t>,
18365    ) -> Result<()> {
18366        let context = function_name!();
18367        trace!("{}", self.trace_item_stack(context));
18368        let comments = pop_item!(self, comments, Comments, context);
18369        let l_t_minus_term = pop_item!(self, l_t_minus_term, LTMinusTerm, context);
18370        let l_t_minus_token_built = LTMinusToken {
18371            l_t_minus_term: (&l_t_minus_term)
18372                .try_into()
18373                .map_err(parol_runtime::ParolError::UserError)?,
18374            comments: Box::new(comments),
18375        };
18376        // Calling user action here
18377        self.user_grammar.l_t_minus_token(&l_t_minus_token_built)?;
18378        self.push(ASTType::LTMinusToken(l_t_minus_token_built), context);
18379        Ok(())
18380    }
18381
18382    /// Semantic action for production 177:
18383    ///
18384    /// `MinusColonToken: MinusColonTerm : Token Comments;`
18385    ///
18386    #[parol_runtime::function_name::named]
18387    fn minus_colon_token(
18388        &mut self,
18389        _minus_colon_term: &ParseTreeType<'t>,
18390        _comments: &ParseTreeType<'t>,
18391    ) -> Result<()> {
18392        let context = function_name!();
18393        trace!("{}", self.trace_item_stack(context));
18394        let comments = pop_item!(self, comments, Comments, context);
18395        let minus_colon_term = pop_item!(self, minus_colon_term, MinusColonTerm, context);
18396        let minus_colon_token_built = MinusColonToken {
18397            minus_colon_term: (&minus_colon_term)
18398                .try_into()
18399                .map_err(parol_runtime::ParolError::UserError)?,
18400            comments: Box::new(comments),
18401        };
18402        // Calling user action here
18403        self.user_grammar
18404            .minus_colon_token(&minus_colon_token_built)?;
18405        self.push(ASTType::MinusColonToken(minus_colon_token_built), context);
18406        Ok(())
18407    }
18408
18409    /// Semantic action for production 178:
18410    ///
18411    /// `MinusGTToken: MinusGTTerm : Token Comments;`
18412    ///
18413    #[parol_runtime::function_name::named]
18414    fn minus_g_t_token(
18415        &mut self,
18416        _minus_g_t_term: &ParseTreeType<'t>,
18417        _comments: &ParseTreeType<'t>,
18418    ) -> Result<()> {
18419        let context = function_name!();
18420        trace!("{}", self.trace_item_stack(context));
18421        let comments = pop_item!(self, comments, Comments, context);
18422        let minus_g_t_term = pop_item!(self, minus_g_t_term, MinusGTTerm, context);
18423        let minus_g_t_token_built = MinusGTToken {
18424            minus_g_t_term: (&minus_g_t_term)
18425                .try_into()
18426                .map_err(parol_runtime::ParolError::UserError)?,
18427            comments: Box::new(comments),
18428        };
18429        // Calling user action here
18430        self.user_grammar.minus_g_t_token(&minus_g_t_token_built)?;
18431        self.push(ASTType::MinusGTToken(minus_g_t_token_built), context);
18432        Ok(())
18433    }
18434
18435    /// Semantic action for production 179:
18436    ///
18437    /// `PlusColonToken: PlusColonTerm : Token Comments;`
18438    ///
18439    #[parol_runtime::function_name::named]
18440    fn plus_colon_token(
18441        &mut self,
18442        _plus_colon_term: &ParseTreeType<'t>,
18443        _comments: &ParseTreeType<'t>,
18444    ) -> Result<()> {
18445        let context = function_name!();
18446        trace!("{}", self.trace_item_stack(context));
18447        let comments = pop_item!(self, comments, Comments, context);
18448        let plus_colon_term = pop_item!(self, plus_colon_term, PlusColonTerm, context);
18449        let plus_colon_token_built = PlusColonToken {
18450            plus_colon_term: (&plus_colon_term)
18451                .try_into()
18452                .map_err(parol_runtime::ParolError::UserError)?,
18453            comments: Box::new(comments),
18454        };
18455        // Calling user action here
18456        self.user_grammar
18457            .plus_colon_token(&plus_colon_token_built)?;
18458        self.push(ASTType::PlusColonToken(plus_colon_token_built), context);
18459        Ok(())
18460    }
18461
18462    /// Semantic action for production 180:
18463    ///
18464    /// `RAngleToken: RAngleTerm : Token Comments;`
18465    ///
18466    #[parol_runtime::function_name::named]
18467    fn r_angle_token(
18468        &mut self,
18469        _r_angle_term: &ParseTreeType<'t>,
18470        _comments: &ParseTreeType<'t>,
18471    ) -> Result<()> {
18472        let context = function_name!();
18473        trace!("{}", self.trace_item_stack(context));
18474        let comments = pop_item!(self, comments, Comments, context);
18475        let r_angle_term = pop_item!(self, r_angle_term, RAngleTerm, context);
18476        let r_angle_token_built = RAngleToken {
18477            r_angle_term: (&r_angle_term)
18478                .try_into()
18479                .map_err(parol_runtime::ParolError::UserError)?,
18480            comments: Box::new(comments),
18481        };
18482        // Calling user action here
18483        self.user_grammar.r_angle_token(&r_angle_token_built)?;
18484        self.push(ASTType::RAngleToken(r_angle_token_built), context);
18485        Ok(())
18486    }
18487
18488    /// Semantic action for production 181:
18489    ///
18490    /// `EmbedRBraceToken: RBraceTerm : Token;`
18491    ///
18492    #[parol_runtime::function_name::named]
18493    fn embed_r_brace_token(&mut self, _r_brace_term: &ParseTreeType<'t>) -> Result<()> {
18494        let context = function_name!();
18495        trace!("{}", self.trace_item_stack(context));
18496        let r_brace_term = pop_item!(self, r_brace_term, RBraceTerm, context);
18497        let embed_r_brace_token_built = EmbedRBraceToken {
18498            r_brace_term: (&r_brace_term)
18499                .try_into()
18500                .map_err(parol_runtime::ParolError::UserError)?,
18501        };
18502        // Calling user action here
18503        self.user_grammar
18504            .embed_r_brace_token(&embed_r_brace_token_built)?;
18505        self.push(
18506            ASTType::EmbedRBraceToken(embed_r_brace_token_built),
18507            context,
18508        );
18509        Ok(())
18510    }
18511
18512    /// Semantic action for production 182:
18513    ///
18514    /// `EscapedRBraceToken: EscapedRBraceTerm : Token;`
18515    ///
18516    #[parol_runtime::function_name::named]
18517    fn escaped_r_brace_token(&mut self, _escaped_r_brace_term: &ParseTreeType<'t>) -> Result<()> {
18518        let context = function_name!();
18519        trace!("{}", self.trace_item_stack(context));
18520        let escaped_r_brace_term =
18521            pop_item!(self, escaped_r_brace_term, EscapedRBraceTerm, context);
18522        let escaped_r_brace_token_built = EscapedRBraceToken {
18523            escaped_r_brace_term: (&escaped_r_brace_term)
18524                .try_into()
18525                .map_err(parol_runtime::ParolError::UserError)?,
18526        };
18527        // Calling user action here
18528        self.user_grammar
18529            .escaped_r_brace_token(&escaped_r_brace_token_built)?;
18530        self.push(
18531            ASTType::EscapedRBraceToken(escaped_r_brace_token_built),
18532            context,
18533        );
18534        Ok(())
18535    }
18536
18537    /// Semantic action for production 183:
18538    ///
18539    /// `TripleRBraceToken: TripleRBraceTerm : Token Comments;`
18540    ///
18541    #[parol_runtime::function_name::named]
18542    fn triple_r_brace_token(
18543        &mut self,
18544        _triple_r_brace_term: &ParseTreeType<'t>,
18545        _comments: &ParseTreeType<'t>,
18546    ) -> Result<()> {
18547        let context = function_name!();
18548        trace!("{}", self.trace_item_stack(context));
18549        let comments = pop_item!(self, comments, Comments, context);
18550        let triple_r_brace_term = pop_item!(self, triple_r_brace_term, TripleRBraceTerm, context);
18551        let triple_r_brace_token_built = TripleRBraceToken {
18552            triple_r_brace_term: (&triple_r_brace_term)
18553                .try_into()
18554                .map_err(parol_runtime::ParolError::UserError)?,
18555            comments: Box::new(comments),
18556        };
18557        // Calling user action here
18558        self.user_grammar
18559            .triple_r_brace_token(&triple_r_brace_token_built)?;
18560        self.push(
18561            ASTType::TripleRBraceToken(triple_r_brace_token_built),
18562            context,
18563        );
18564        Ok(())
18565    }
18566
18567    /// Semantic action for production 184:
18568    ///
18569    /// `RBraceToken: RBraceTerm : Token Comments;`
18570    ///
18571    #[parol_runtime::function_name::named]
18572    fn r_brace_token(
18573        &mut self,
18574        _r_brace_term: &ParseTreeType<'t>,
18575        _comments: &ParseTreeType<'t>,
18576    ) -> Result<()> {
18577        let context = function_name!();
18578        trace!("{}", self.trace_item_stack(context));
18579        let comments = pop_item!(self, comments, Comments, context);
18580        let r_brace_term = pop_item!(self, r_brace_term, RBraceTerm, context);
18581        let r_brace_token_built = RBraceToken {
18582            r_brace_term: (&r_brace_term)
18583                .try_into()
18584                .map_err(parol_runtime::ParolError::UserError)?,
18585            comments: Box::new(comments),
18586        };
18587        // Calling user action here
18588        self.user_grammar.r_brace_token(&r_brace_token_built)?;
18589        self.push(ASTType::RBraceToken(r_brace_token_built), context);
18590        Ok(())
18591    }
18592
18593    /// Semantic action for production 185:
18594    ///
18595    /// `RBracketToken: RBracketTerm : Token Comments;`
18596    ///
18597    #[parol_runtime::function_name::named]
18598    fn r_bracket_token(
18599        &mut self,
18600        _r_bracket_term: &ParseTreeType<'t>,
18601        _comments: &ParseTreeType<'t>,
18602    ) -> Result<()> {
18603        let context = function_name!();
18604        trace!("{}", self.trace_item_stack(context));
18605        let comments = pop_item!(self, comments, Comments, context);
18606        let r_bracket_term = pop_item!(self, r_bracket_term, RBracketTerm, context);
18607        let r_bracket_token_built = RBracketToken {
18608            r_bracket_term: (&r_bracket_term)
18609                .try_into()
18610                .map_err(parol_runtime::ParolError::UserError)?,
18611            comments: Box::new(comments),
18612        };
18613        // Calling user action here
18614        self.user_grammar.r_bracket_token(&r_bracket_token_built)?;
18615        self.push(ASTType::RBracketToken(r_bracket_token_built), context);
18616        Ok(())
18617    }
18618
18619    /// Semantic action for production 186:
18620    ///
18621    /// `RParenToken: RParenTerm : Token Comments;`
18622    ///
18623    #[parol_runtime::function_name::named]
18624    fn r_paren_token(
18625        &mut self,
18626        _r_paren_term: &ParseTreeType<'t>,
18627        _comments: &ParseTreeType<'t>,
18628    ) -> Result<()> {
18629        let context = function_name!();
18630        trace!("{}", self.trace_item_stack(context));
18631        let comments = pop_item!(self, comments, Comments, context);
18632        let r_paren_term = pop_item!(self, r_paren_term, RParenTerm, context);
18633        let r_paren_token_built = RParenToken {
18634            r_paren_term: (&r_paren_term)
18635                .try_into()
18636                .map_err(parol_runtime::ParolError::UserError)?,
18637            comments: Box::new(comments),
18638        };
18639        // Calling user action here
18640        self.user_grammar.r_paren_token(&r_paren_token_built)?;
18641        self.push(ASTType::RParenToken(r_paren_token_built), context);
18642        Ok(())
18643    }
18644
18645    /// Semantic action for production 187:
18646    ///
18647    /// `SemicolonToken: SemicolonTerm : Token Comments;`
18648    ///
18649    #[parol_runtime::function_name::named]
18650    fn semicolon_token(
18651        &mut self,
18652        _semicolon_term: &ParseTreeType<'t>,
18653        _comments: &ParseTreeType<'t>,
18654    ) -> Result<()> {
18655        let context = function_name!();
18656        trace!("{}", self.trace_item_stack(context));
18657        let comments = pop_item!(self, comments, Comments, context);
18658        let semicolon_term = pop_item!(self, semicolon_term, SemicolonTerm, context);
18659        let semicolon_token_built = SemicolonToken {
18660            semicolon_term: (&semicolon_term)
18661                .try_into()
18662                .map_err(parol_runtime::ParolError::UserError)?,
18663            comments: Box::new(comments),
18664        };
18665        // Calling user action here
18666        self.user_grammar.semicolon_token(&semicolon_token_built)?;
18667        self.push(ASTType::SemicolonToken(semicolon_token_built), context);
18668        Ok(())
18669    }
18670
18671    /// Semantic action for production 188:
18672    ///
18673    /// `StarToken: StarTerm : Token Comments;`
18674    ///
18675    #[parol_runtime::function_name::named]
18676    fn star_token(
18677        &mut self,
18678        _star_term: &ParseTreeType<'t>,
18679        _comments: &ParseTreeType<'t>,
18680    ) -> Result<()> {
18681        let context = function_name!();
18682        trace!("{}", self.trace_item_stack(context));
18683        let comments = pop_item!(self, comments, Comments, context);
18684        let star_term = pop_item!(self, star_term, StarTerm, context);
18685        let star_token_built = StarToken {
18686            star_term: (&star_term)
18687                .try_into()
18688                .map_err(parol_runtime::ParolError::UserError)?,
18689            comments: Box::new(comments),
18690        };
18691        // Calling user action here
18692        self.user_grammar.star_token(&star_token_built)?;
18693        self.push(ASTType::StarToken(star_token_built), context);
18694        Ok(())
18695    }
18696
18697    /// Semantic action for production 189:
18698    ///
18699    /// `AliasToken: AliasTerm : Token Comments;`
18700    ///
18701    #[parol_runtime::function_name::named]
18702    fn alias_token(
18703        &mut self,
18704        _alias_term: &ParseTreeType<'t>,
18705        _comments: &ParseTreeType<'t>,
18706    ) -> Result<()> {
18707        let context = function_name!();
18708        trace!("{}", self.trace_item_stack(context));
18709        let comments = pop_item!(self, comments, Comments, context);
18710        let alias_term = pop_item!(self, alias_term, AliasTerm, context);
18711        let alias_token_built = AliasToken {
18712            alias_term: (&alias_term)
18713                .try_into()
18714                .map_err(parol_runtime::ParolError::UserError)?,
18715            comments: Box::new(comments),
18716        };
18717        // Calling user action here
18718        self.user_grammar.alias_token(&alias_token_built)?;
18719        self.push(ASTType::AliasToken(alias_token_built), context);
18720        Ok(())
18721    }
18722
18723    /// Semantic action for production 190:
18724    ///
18725    /// `AlwaysCombToken: AlwaysCombTerm : Token Comments;`
18726    ///
18727    #[parol_runtime::function_name::named]
18728    fn always_comb_token(
18729        &mut self,
18730        _always_comb_term: &ParseTreeType<'t>,
18731        _comments: &ParseTreeType<'t>,
18732    ) -> Result<()> {
18733        let context = function_name!();
18734        trace!("{}", self.trace_item_stack(context));
18735        let comments = pop_item!(self, comments, Comments, context);
18736        let always_comb_term = pop_item!(self, always_comb_term, AlwaysCombTerm, context);
18737        let always_comb_token_built = AlwaysCombToken {
18738            always_comb_term: (&always_comb_term)
18739                .try_into()
18740                .map_err(parol_runtime::ParolError::UserError)?,
18741            comments: Box::new(comments),
18742        };
18743        // Calling user action here
18744        self.user_grammar
18745            .always_comb_token(&always_comb_token_built)?;
18746        self.push(ASTType::AlwaysCombToken(always_comb_token_built), context);
18747        Ok(())
18748    }
18749
18750    /// Semantic action for production 191:
18751    ///
18752    /// `AlwaysFfToken: AlwaysFfTerm : Token Comments;`
18753    ///
18754    #[parol_runtime::function_name::named]
18755    fn always_ff_token(
18756        &mut self,
18757        _always_ff_term: &ParseTreeType<'t>,
18758        _comments: &ParseTreeType<'t>,
18759    ) -> Result<()> {
18760        let context = function_name!();
18761        trace!("{}", self.trace_item_stack(context));
18762        let comments = pop_item!(self, comments, Comments, context);
18763        let always_ff_term = pop_item!(self, always_ff_term, AlwaysFfTerm, context);
18764        let always_ff_token_built = AlwaysFfToken {
18765            always_ff_term: (&always_ff_term)
18766                .try_into()
18767                .map_err(parol_runtime::ParolError::UserError)?,
18768            comments: Box::new(comments),
18769        };
18770        // Calling user action here
18771        self.user_grammar.always_ff_token(&always_ff_token_built)?;
18772        self.push(ASTType::AlwaysFfToken(always_ff_token_built), context);
18773        Ok(())
18774    }
18775
18776    /// Semantic action for production 192:
18777    ///
18778    /// `AsToken: AsTerm : Token Comments;`
18779    ///
18780    #[parol_runtime::function_name::named]
18781    fn as_token(
18782        &mut self,
18783        _as_term: &ParseTreeType<'t>,
18784        _comments: &ParseTreeType<'t>,
18785    ) -> Result<()> {
18786        let context = function_name!();
18787        trace!("{}", self.trace_item_stack(context));
18788        let comments = pop_item!(self, comments, Comments, context);
18789        let as_term = pop_item!(self, as_term, AsTerm, context);
18790        let as_token_built = AsToken {
18791            as_term: (&as_term)
18792                .try_into()
18793                .map_err(parol_runtime::ParolError::UserError)?,
18794            comments: Box::new(comments),
18795        };
18796        // Calling user action here
18797        self.user_grammar.as_token(&as_token_built)?;
18798        self.push(ASTType::AsToken(as_token_built), context);
18799        Ok(())
18800    }
18801
18802    /// Semantic action for production 193:
18803    ///
18804    /// `AssignToken: AssignTerm : Token Comments;`
18805    ///
18806    #[parol_runtime::function_name::named]
18807    fn assign_token(
18808        &mut self,
18809        _assign_term: &ParseTreeType<'t>,
18810        _comments: &ParseTreeType<'t>,
18811    ) -> Result<()> {
18812        let context = function_name!();
18813        trace!("{}", self.trace_item_stack(context));
18814        let comments = pop_item!(self, comments, Comments, context);
18815        let assign_term = pop_item!(self, assign_term, AssignTerm, context);
18816        let assign_token_built = AssignToken {
18817            assign_term: (&assign_term)
18818                .try_into()
18819                .map_err(parol_runtime::ParolError::UserError)?,
18820            comments: Box::new(comments),
18821        };
18822        // Calling user action here
18823        self.user_grammar.assign_token(&assign_token_built)?;
18824        self.push(ASTType::AssignToken(assign_token_built), context);
18825        Ok(())
18826    }
18827
18828    /// Semantic action for production 194:
18829    ///
18830    /// `BindToken: BindTerm : Token Comments;`
18831    ///
18832    #[parol_runtime::function_name::named]
18833    fn bind_token(
18834        &mut self,
18835        _bind_term: &ParseTreeType<'t>,
18836        _comments: &ParseTreeType<'t>,
18837    ) -> Result<()> {
18838        let context = function_name!();
18839        trace!("{}", self.trace_item_stack(context));
18840        let comments = pop_item!(self, comments, Comments, context);
18841        let bind_term = pop_item!(self, bind_term, BindTerm, context);
18842        let bind_token_built = BindToken {
18843            bind_term: (&bind_term)
18844                .try_into()
18845                .map_err(parol_runtime::ParolError::UserError)?,
18846            comments: Box::new(comments),
18847        };
18848        // Calling user action here
18849        self.user_grammar.bind_token(&bind_token_built)?;
18850        self.push(ASTType::BindToken(bind_token_built), context);
18851        Ok(())
18852    }
18853
18854    /// Semantic action for production 195:
18855    ///
18856    /// `BitToken: BitTerm : Token Comments;`
18857    ///
18858    #[parol_runtime::function_name::named]
18859    fn bit_token(
18860        &mut self,
18861        _bit_term: &ParseTreeType<'t>,
18862        _comments: &ParseTreeType<'t>,
18863    ) -> Result<()> {
18864        let context = function_name!();
18865        trace!("{}", self.trace_item_stack(context));
18866        let comments = pop_item!(self, comments, Comments, context);
18867        let bit_term = pop_item!(self, bit_term, BitTerm, context);
18868        let bit_token_built = BitToken {
18869            bit_term: (&bit_term)
18870                .try_into()
18871                .map_err(parol_runtime::ParolError::UserError)?,
18872            comments: Box::new(comments),
18873        };
18874        // Calling user action here
18875        self.user_grammar.bit_token(&bit_token_built)?;
18876        self.push(ASTType::BitToken(bit_token_built), context);
18877        Ok(())
18878    }
18879
18880    /// Semantic action for production 196:
18881    ///
18882    /// `BlockToken: BlockTerm : Token Comments;`
18883    ///
18884    #[parol_runtime::function_name::named]
18885    fn block_token(
18886        &mut self,
18887        _block_term: &ParseTreeType<'t>,
18888        _comments: &ParseTreeType<'t>,
18889    ) -> Result<()> {
18890        let context = function_name!();
18891        trace!("{}", self.trace_item_stack(context));
18892        let comments = pop_item!(self, comments, Comments, context);
18893        let block_term = pop_item!(self, block_term, BlockTerm, context);
18894        let block_token_built = BlockToken {
18895            block_term: (&block_term)
18896                .try_into()
18897                .map_err(parol_runtime::ParolError::UserError)?,
18898            comments: Box::new(comments),
18899        };
18900        // Calling user action here
18901        self.user_grammar.block_token(&block_token_built)?;
18902        self.push(ASTType::BlockToken(block_token_built), context);
18903        Ok(())
18904    }
18905
18906    /// Semantic action for production 197:
18907    ///
18908    /// `BBoolToken: BBoolTerm : Token Comments;`
18909    ///
18910    #[parol_runtime::function_name::named]
18911    fn b_bool_token(
18912        &mut self,
18913        _b_bool_term: &ParseTreeType<'t>,
18914        _comments: &ParseTreeType<'t>,
18915    ) -> Result<()> {
18916        let context = function_name!();
18917        trace!("{}", self.trace_item_stack(context));
18918        let comments = pop_item!(self, comments, Comments, context);
18919        let b_bool_term = pop_item!(self, b_bool_term, BBoolTerm, context);
18920        let b_bool_token_built = BBoolToken {
18921            b_bool_term: (&b_bool_term)
18922                .try_into()
18923                .map_err(parol_runtime::ParolError::UserError)?,
18924            comments: Box::new(comments),
18925        };
18926        // Calling user action here
18927        self.user_grammar.b_bool_token(&b_bool_token_built)?;
18928        self.push(ASTType::BBoolToken(b_bool_token_built), context);
18929        Ok(())
18930    }
18931
18932    /// Semantic action for production 198:
18933    ///
18934    /// `LBoolToken: LBoolTerm : Token Comments;`
18935    ///
18936    #[parol_runtime::function_name::named]
18937    fn l_bool_token(
18938        &mut self,
18939        _l_bool_term: &ParseTreeType<'t>,
18940        _comments: &ParseTreeType<'t>,
18941    ) -> Result<()> {
18942        let context = function_name!();
18943        trace!("{}", self.trace_item_stack(context));
18944        let comments = pop_item!(self, comments, Comments, context);
18945        let l_bool_term = pop_item!(self, l_bool_term, LBoolTerm, context);
18946        let l_bool_token_built = LBoolToken {
18947            l_bool_term: (&l_bool_term)
18948                .try_into()
18949                .map_err(parol_runtime::ParolError::UserError)?,
18950            comments: Box::new(comments),
18951        };
18952        // Calling user action here
18953        self.user_grammar.l_bool_token(&l_bool_token_built)?;
18954        self.push(ASTType::LBoolToken(l_bool_token_built), context);
18955        Ok(())
18956    }
18957
18958    /// Semantic action for production 199:
18959    ///
18960    /// `CaseToken: CaseTerm : Token Comments;`
18961    ///
18962    #[parol_runtime::function_name::named]
18963    fn case_token(
18964        &mut self,
18965        _case_term: &ParseTreeType<'t>,
18966        _comments: &ParseTreeType<'t>,
18967    ) -> Result<()> {
18968        let context = function_name!();
18969        trace!("{}", self.trace_item_stack(context));
18970        let comments = pop_item!(self, comments, Comments, context);
18971        let case_term = pop_item!(self, case_term, CaseTerm, context);
18972        let case_token_built = CaseToken {
18973            case_term: (&case_term)
18974                .try_into()
18975                .map_err(parol_runtime::ParolError::UserError)?,
18976            comments: Box::new(comments),
18977        };
18978        // Calling user action here
18979        self.user_grammar.case_token(&case_token_built)?;
18980        self.push(ASTType::CaseToken(case_token_built), context);
18981        Ok(())
18982    }
18983
18984    /// Semantic action for production 200:
18985    ///
18986    /// `ClockToken: ClockTerm : Token Comments;`
18987    ///
18988    #[parol_runtime::function_name::named]
18989    fn clock_token(
18990        &mut self,
18991        _clock_term: &ParseTreeType<'t>,
18992        _comments: &ParseTreeType<'t>,
18993    ) -> Result<()> {
18994        let context = function_name!();
18995        trace!("{}", self.trace_item_stack(context));
18996        let comments = pop_item!(self, comments, Comments, context);
18997        let clock_term = pop_item!(self, clock_term, ClockTerm, context);
18998        let clock_token_built = ClockToken {
18999            clock_term: (&clock_term)
19000                .try_into()
19001                .map_err(parol_runtime::ParolError::UserError)?,
19002            comments: Box::new(comments),
19003        };
19004        // Calling user action here
19005        self.user_grammar.clock_token(&clock_token_built)?;
19006        self.push(ASTType::ClockToken(clock_token_built), context);
19007        Ok(())
19008    }
19009
19010    /// Semantic action for production 201:
19011    ///
19012    /// `ClockPosedgeToken: ClockPosedgeTerm : Token Comments;`
19013    ///
19014    #[parol_runtime::function_name::named]
19015    fn clock_posedge_token(
19016        &mut self,
19017        _clock_posedge_term: &ParseTreeType<'t>,
19018        _comments: &ParseTreeType<'t>,
19019    ) -> Result<()> {
19020        let context = function_name!();
19021        trace!("{}", self.trace_item_stack(context));
19022        let comments = pop_item!(self, comments, Comments, context);
19023        let clock_posedge_term = pop_item!(self, clock_posedge_term, ClockPosedgeTerm, context);
19024        let clock_posedge_token_built = ClockPosedgeToken {
19025            clock_posedge_term: (&clock_posedge_term)
19026                .try_into()
19027                .map_err(parol_runtime::ParolError::UserError)?,
19028            comments: Box::new(comments),
19029        };
19030        // Calling user action here
19031        self.user_grammar
19032            .clock_posedge_token(&clock_posedge_token_built)?;
19033        self.push(
19034            ASTType::ClockPosedgeToken(clock_posedge_token_built),
19035            context,
19036        );
19037        Ok(())
19038    }
19039
19040    /// Semantic action for production 202:
19041    ///
19042    /// `ClockNegedgeToken: ClockNegedgeTerm : Token Comments;`
19043    ///
19044    #[parol_runtime::function_name::named]
19045    fn clock_negedge_token(
19046        &mut self,
19047        _clock_negedge_term: &ParseTreeType<'t>,
19048        _comments: &ParseTreeType<'t>,
19049    ) -> Result<()> {
19050        let context = function_name!();
19051        trace!("{}", self.trace_item_stack(context));
19052        let comments = pop_item!(self, comments, Comments, context);
19053        let clock_negedge_term = pop_item!(self, clock_negedge_term, ClockNegedgeTerm, context);
19054        let clock_negedge_token_built = ClockNegedgeToken {
19055            clock_negedge_term: (&clock_negedge_term)
19056                .try_into()
19057                .map_err(parol_runtime::ParolError::UserError)?,
19058            comments: Box::new(comments),
19059        };
19060        // Calling user action here
19061        self.user_grammar
19062            .clock_negedge_token(&clock_negedge_token_built)?;
19063        self.push(
19064            ASTType::ClockNegedgeToken(clock_negedge_token_built),
19065            context,
19066        );
19067        Ok(())
19068    }
19069
19070    /// Semantic action for production 203:
19071    ///
19072    /// `ConnectToken: ConnectTerm : Token Comments;`
19073    ///
19074    #[parol_runtime::function_name::named]
19075    fn connect_token(
19076        &mut self,
19077        _connect_term: &ParseTreeType<'t>,
19078        _comments: &ParseTreeType<'t>,
19079    ) -> Result<()> {
19080        let context = function_name!();
19081        trace!("{}", self.trace_item_stack(context));
19082        let comments = pop_item!(self, comments, Comments, context);
19083        let connect_term = pop_item!(self, connect_term, ConnectTerm, context);
19084        let connect_token_built = ConnectToken {
19085            connect_term: (&connect_term)
19086                .try_into()
19087                .map_err(parol_runtime::ParolError::UserError)?,
19088            comments: Box::new(comments),
19089        };
19090        // Calling user action here
19091        self.user_grammar.connect_token(&connect_token_built)?;
19092        self.push(ASTType::ConnectToken(connect_token_built), context);
19093        Ok(())
19094    }
19095
19096    /// Semantic action for production 204:
19097    ///
19098    /// `ConstToken: ConstTerm : Token Comments;`
19099    ///
19100    #[parol_runtime::function_name::named]
19101    fn const_token(
19102        &mut self,
19103        _const_term: &ParseTreeType<'t>,
19104        _comments: &ParseTreeType<'t>,
19105    ) -> Result<()> {
19106        let context = function_name!();
19107        trace!("{}", self.trace_item_stack(context));
19108        let comments = pop_item!(self, comments, Comments, context);
19109        let const_term = pop_item!(self, const_term, ConstTerm, context);
19110        let const_token_built = ConstToken {
19111            const_term: (&const_term)
19112                .try_into()
19113                .map_err(parol_runtime::ParolError::UserError)?,
19114            comments: Box::new(comments),
19115        };
19116        // Calling user action here
19117        self.user_grammar.const_token(&const_token_built)?;
19118        self.push(ASTType::ConstToken(const_token_built), context);
19119        Ok(())
19120    }
19121
19122    /// Semantic action for production 205:
19123    ///
19124    /// `ConverseToken: ConverseTerm : Token Comments;`
19125    ///
19126    #[parol_runtime::function_name::named]
19127    fn converse_token(
19128        &mut self,
19129        _converse_term: &ParseTreeType<'t>,
19130        _comments: &ParseTreeType<'t>,
19131    ) -> Result<()> {
19132        let context = function_name!();
19133        trace!("{}", self.trace_item_stack(context));
19134        let comments = pop_item!(self, comments, Comments, context);
19135        let converse_term = pop_item!(self, converse_term, ConverseTerm, context);
19136        let converse_token_built = ConverseToken {
19137            converse_term: (&converse_term)
19138                .try_into()
19139                .map_err(parol_runtime::ParolError::UserError)?,
19140            comments: Box::new(comments),
19141        };
19142        // Calling user action here
19143        self.user_grammar.converse_token(&converse_token_built)?;
19144        self.push(ASTType::ConverseToken(converse_token_built), context);
19145        Ok(())
19146    }
19147
19148    /// Semantic action for production 206:
19149    ///
19150    /// `DefaultToken: DefaultTerm : Token Comments;`
19151    ///
19152    #[parol_runtime::function_name::named]
19153    fn default_token(
19154        &mut self,
19155        _default_term: &ParseTreeType<'t>,
19156        _comments: &ParseTreeType<'t>,
19157    ) -> Result<()> {
19158        let context = function_name!();
19159        trace!("{}", self.trace_item_stack(context));
19160        let comments = pop_item!(self, comments, Comments, context);
19161        let default_term = pop_item!(self, default_term, DefaultTerm, context);
19162        let default_token_built = DefaultToken {
19163            default_term: (&default_term)
19164                .try_into()
19165                .map_err(parol_runtime::ParolError::UserError)?,
19166            comments: Box::new(comments),
19167        };
19168        // Calling user action here
19169        self.user_grammar.default_token(&default_token_built)?;
19170        self.push(ASTType::DefaultToken(default_token_built), context);
19171        Ok(())
19172    }
19173
19174    /// Semantic action for production 207:
19175    ///
19176    /// `ElseToken: ElseTerm : Token Comments;`
19177    ///
19178    #[parol_runtime::function_name::named]
19179    fn else_token(
19180        &mut self,
19181        _else_term: &ParseTreeType<'t>,
19182        _comments: &ParseTreeType<'t>,
19183    ) -> Result<()> {
19184        let context = function_name!();
19185        trace!("{}", self.trace_item_stack(context));
19186        let comments = pop_item!(self, comments, Comments, context);
19187        let else_term = pop_item!(self, else_term, ElseTerm, context);
19188        let else_token_built = ElseToken {
19189            else_term: (&else_term)
19190                .try_into()
19191                .map_err(parol_runtime::ParolError::UserError)?,
19192            comments: Box::new(comments),
19193        };
19194        // Calling user action here
19195        self.user_grammar.else_token(&else_token_built)?;
19196        self.push(ASTType::ElseToken(else_token_built), context);
19197        Ok(())
19198    }
19199
19200    /// Semantic action for production 208:
19201    ///
19202    /// `EmbedToken: EmbedTerm : Token Comments;`
19203    ///
19204    #[parol_runtime::function_name::named]
19205    fn embed_token(
19206        &mut self,
19207        _embed_term: &ParseTreeType<'t>,
19208        _comments: &ParseTreeType<'t>,
19209    ) -> Result<()> {
19210        let context = function_name!();
19211        trace!("{}", self.trace_item_stack(context));
19212        let comments = pop_item!(self, comments, Comments, context);
19213        let embed_term = pop_item!(self, embed_term, EmbedTerm, context);
19214        let embed_token_built = EmbedToken {
19215            embed_term: (&embed_term)
19216                .try_into()
19217                .map_err(parol_runtime::ParolError::UserError)?,
19218            comments: Box::new(comments),
19219        };
19220        // Calling user action here
19221        self.user_grammar.embed_token(&embed_token_built)?;
19222        self.push(ASTType::EmbedToken(embed_token_built), context);
19223        Ok(())
19224    }
19225
19226    /// Semantic action for production 209:
19227    ///
19228    /// `EnumToken: EnumTerm : Token Comments;`
19229    ///
19230    #[parol_runtime::function_name::named]
19231    fn enum_token(
19232        &mut self,
19233        _enum_term: &ParseTreeType<'t>,
19234        _comments: &ParseTreeType<'t>,
19235    ) -> Result<()> {
19236        let context = function_name!();
19237        trace!("{}", self.trace_item_stack(context));
19238        let comments = pop_item!(self, comments, Comments, context);
19239        let enum_term = pop_item!(self, enum_term, EnumTerm, context);
19240        let enum_token_built = EnumToken {
19241            enum_term: (&enum_term)
19242                .try_into()
19243                .map_err(parol_runtime::ParolError::UserError)?,
19244            comments: Box::new(comments),
19245        };
19246        // Calling user action here
19247        self.user_grammar.enum_token(&enum_token_built)?;
19248        self.push(ASTType::EnumToken(enum_token_built), context);
19249        Ok(())
19250    }
19251
19252    /// Semantic action for production 210:
19253    ///
19254    /// `F32Token: F32Term : Token Comments;`
19255    ///
19256    #[parol_runtime::function_name::named]
19257    fn f32_token(
19258        &mut self,
19259        _f32_term: &ParseTreeType<'t>,
19260        _comments: &ParseTreeType<'t>,
19261    ) -> Result<()> {
19262        let context = function_name!();
19263        trace!("{}", self.trace_item_stack(context));
19264        let comments = pop_item!(self, comments, Comments, context);
19265        let f32_term = pop_item!(self, f32_term, F32Term, context);
19266        let f32_token_built = F32Token {
19267            f32_term: (&f32_term)
19268                .try_into()
19269                .map_err(parol_runtime::ParolError::UserError)?,
19270            comments: Box::new(comments),
19271        };
19272        // Calling user action here
19273        self.user_grammar.f32_token(&f32_token_built)?;
19274        self.push(ASTType::F32Token(f32_token_built), context);
19275        Ok(())
19276    }
19277
19278    /// Semantic action for production 211:
19279    ///
19280    /// `F64Token: F64Term : Token Comments;`
19281    ///
19282    #[parol_runtime::function_name::named]
19283    fn f64_token(
19284        &mut self,
19285        _f64_term: &ParseTreeType<'t>,
19286        _comments: &ParseTreeType<'t>,
19287    ) -> Result<()> {
19288        let context = function_name!();
19289        trace!("{}", self.trace_item_stack(context));
19290        let comments = pop_item!(self, comments, Comments, context);
19291        let f64_term = pop_item!(self, f64_term, F64Term, context);
19292        let f64_token_built = F64Token {
19293            f64_term: (&f64_term)
19294                .try_into()
19295                .map_err(parol_runtime::ParolError::UserError)?,
19296            comments: Box::new(comments),
19297        };
19298        // Calling user action here
19299        self.user_grammar.f64_token(&f64_token_built)?;
19300        self.push(ASTType::F64Token(f64_token_built), context);
19301        Ok(())
19302    }
19303
19304    /// Semantic action for production 212:
19305    ///
19306    /// `FalseToken: FalseTerm : Token Comments;`
19307    ///
19308    #[parol_runtime::function_name::named]
19309    fn false_token(
19310        &mut self,
19311        _false_term: &ParseTreeType<'t>,
19312        _comments: &ParseTreeType<'t>,
19313    ) -> Result<()> {
19314        let context = function_name!();
19315        trace!("{}", self.trace_item_stack(context));
19316        let comments = pop_item!(self, comments, Comments, context);
19317        let false_term = pop_item!(self, false_term, FalseTerm, context);
19318        let false_token_built = FalseToken {
19319            false_term: (&false_term)
19320                .try_into()
19321                .map_err(parol_runtime::ParolError::UserError)?,
19322            comments: Box::new(comments),
19323        };
19324        // Calling user action here
19325        self.user_grammar.false_token(&false_token_built)?;
19326        self.push(ASTType::FalseToken(false_token_built), context);
19327        Ok(())
19328    }
19329
19330    /// Semantic action for production 213:
19331    ///
19332    /// `FinalToken: FinalTerm : Token Comments;`
19333    ///
19334    #[parol_runtime::function_name::named]
19335    fn final_token(
19336        &mut self,
19337        _final_term: &ParseTreeType<'t>,
19338        _comments: &ParseTreeType<'t>,
19339    ) -> Result<()> {
19340        let context = function_name!();
19341        trace!("{}", self.trace_item_stack(context));
19342        let comments = pop_item!(self, comments, Comments, context);
19343        let final_term = pop_item!(self, final_term, FinalTerm, context);
19344        let final_token_built = FinalToken {
19345            final_term: (&final_term)
19346                .try_into()
19347                .map_err(parol_runtime::ParolError::UserError)?,
19348            comments: Box::new(comments),
19349        };
19350        // Calling user action here
19351        self.user_grammar.final_token(&final_token_built)?;
19352        self.push(ASTType::FinalToken(final_token_built), context);
19353        Ok(())
19354    }
19355
19356    /// Semantic action for production 214:
19357    ///
19358    /// `ForToken: ForTerm : Token Comments;`
19359    ///
19360    #[parol_runtime::function_name::named]
19361    fn for_token(
19362        &mut self,
19363        _for_term: &ParseTreeType<'t>,
19364        _comments: &ParseTreeType<'t>,
19365    ) -> Result<()> {
19366        let context = function_name!();
19367        trace!("{}", self.trace_item_stack(context));
19368        let comments = pop_item!(self, comments, Comments, context);
19369        let for_term = pop_item!(self, for_term, ForTerm, context);
19370        let for_token_built = ForToken {
19371            for_term: (&for_term)
19372                .try_into()
19373                .map_err(parol_runtime::ParolError::UserError)?,
19374            comments: Box::new(comments),
19375        };
19376        // Calling user action here
19377        self.user_grammar.for_token(&for_token_built)?;
19378        self.push(ASTType::ForToken(for_token_built), context);
19379        Ok(())
19380    }
19381
19382    /// Semantic action for production 215:
19383    ///
19384    /// `FunctionToken: FunctionTerm : Token Comments;`
19385    ///
19386    #[parol_runtime::function_name::named]
19387    fn function_token(
19388        &mut self,
19389        _function_term: &ParseTreeType<'t>,
19390        _comments: &ParseTreeType<'t>,
19391    ) -> Result<()> {
19392        let context = function_name!();
19393        trace!("{}", self.trace_item_stack(context));
19394        let comments = pop_item!(self, comments, Comments, context);
19395        let function_term = pop_item!(self, function_term, FunctionTerm, context);
19396        let function_token_built = FunctionToken {
19397            function_term: (&function_term)
19398                .try_into()
19399                .map_err(parol_runtime::ParolError::UserError)?,
19400            comments: Box::new(comments),
19401        };
19402        // Calling user action here
19403        self.user_grammar.function_token(&function_token_built)?;
19404        self.push(ASTType::FunctionToken(function_token_built), context);
19405        Ok(())
19406    }
19407
19408    /// Semantic action for production 216:
19409    ///
19410    /// `I8Token: I8Term : Token Comments;`
19411    ///
19412    #[parol_runtime::function_name::named]
19413    fn i8_token(
19414        &mut self,
19415        _i8_term: &ParseTreeType<'t>,
19416        _comments: &ParseTreeType<'t>,
19417    ) -> Result<()> {
19418        let context = function_name!();
19419        trace!("{}", self.trace_item_stack(context));
19420        let comments = pop_item!(self, comments, Comments, context);
19421        let i8_term = pop_item!(self, i8_term, I8Term, context);
19422        let i8_token_built = I8Token {
19423            i8_term: (&i8_term)
19424                .try_into()
19425                .map_err(parol_runtime::ParolError::UserError)?,
19426            comments: Box::new(comments),
19427        };
19428        // Calling user action here
19429        self.user_grammar.i8_token(&i8_token_built)?;
19430        self.push(ASTType::I8Token(i8_token_built), context);
19431        Ok(())
19432    }
19433
19434    /// Semantic action for production 217:
19435    ///
19436    /// `I16Token: I16Term : Token Comments;`
19437    ///
19438    #[parol_runtime::function_name::named]
19439    fn i16_token(
19440        &mut self,
19441        _i16_term: &ParseTreeType<'t>,
19442        _comments: &ParseTreeType<'t>,
19443    ) -> Result<()> {
19444        let context = function_name!();
19445        trace!("{}", self.trace_item_stack(context));
19446        let comments = pop_item!(self, comments, Comments, context);
19447        let i16_term = pop_item!(self, i16_term, I16Term, context);
19448        let i16_token_built = I16Token {
19449            i16_term: (&i16_term)
19450                .try_into()
19451                .map_err(parol_runtime::ParolError::UserError)?,
19452            comments: Box::new(comments),
19453        };
19454        // Calling user action here
19455        self.user_grammar.i16_token(&i16_token_built)?;
19456        self.push(ASTType::I16Token(i16_token_built), context);
19457        Ok(())
19458    }
19459
19460    /// Semantic action for production 218:
19461    ///
19462    /// `I32Token: I32Term : Token Comments;`
19463    ///
19464    #[parol_runtime::function_name::named]
19465    fn i32_token(
19466        &mut self,
19467        _i32_term: &ParseTreeType<'t>,
19468        _comments: &ParseTreeType<'t>,
19469    ) -> Result<()> {
19470        let context = function_name!();
19471        trace!("{}", self.trace_item_stack(context));
19472        let comments = pop_item!(self, comments, Comments, context);
19473        let i32_term = pop_item!(self, i32_term, I32Term, context);
19474        let i32_token_built = I32Token {
19475            i32_term: (&i32_term)
19476                .try_into()
19477                .map_err(parol_runtime::ParolError::UserError)?,
19478            comments: Box::new(comments),
19479        };
19480        // Calling user action here
19481        self.user_grammar.i32_token(&i32_token_built)?;
19482        self.push(ASTType::I32Token(i32_token_built), context);
19483        Ok(())
19484    }
19485
19486    /// Semantic action for production 219:
19487    ///
19488    /// `I64Token: I64Term : Token Comments;`
19489    ///
19490    #[parol_runtime::function_name::named]
19491    fn i64_token(
19492        &mut self,
19493        _i64_term: &ParseTreeType<'t>,
19494        _comments: &ParseTreeType<'t>,
19495    ) -> Result<()> {
19496        let context = function_name!();
19497        trace!("{}", self.trace_item_stack(context));
19498        let comments = pop_item!(self, comments, Comments, context);
19499        let i64_term = pop_item!(self, i64_term, I64Term, context);
19500        let i64_token_built = I64Token {
19501            i64_term: (&i64_term)
19502                .try_into()
19503                .map_err(parol_runtime::ParolError::UserError)?,
19504            comments: Box::new(comments),
19505        };
19506        // Calling user action here
19507        self.user_grammar.i64_token(&i64_token_built)?;
19508        self.push(ASTType::I64Token(i64_token_built), context);
19509        Ok(())
19510    }
19511
19512    /// Semantic action for production 220:
19513    ///
19514    /// `IfResetToken: IfResetTerm : Token Comments;`
19515    ///
19516    #[parol_runtime::function_name::named]
19517    fn if_reset_token(
19518        &mut self,
19519        _if_reset_term: &ParseTreeType<'t>,
19520        _comments: &ParseTreeType<'t>,
19521    ) -> Result<()> {
19522        let context = function_name!();
19523        trace!("{}", self.trace_item_stack(context));
19524        let comments = pop_item!(self, comments, Comments, context);
19525        let if_reset_term = pop_item!(self, if_reset_term, IfResetTerm, context);
19526        let if_reset_token_built = IfResetToken {
19527            if_reset_term: (&if_reset_term)
19528                .try_into()
19529                .map_err(parol_runtime::ParolError::UserError)?,
19530            comments: Box::new(comments),
19531        };
19532        // Calling user action here
19533        self.user_grammar.if_reset_token(&if_reset_token_built)?;
19534        self.push(ASTType::IfResetToken(if_reset_token_built), context);
19535        Ok(())
19536    }
19537
19538    /// Semantic action for production 221:
19539    ///
19540    /// `IfToken: IfTerm : Token Comments;`
19541    ///
19542    #[parol_runtime::function_name::named]
19543    fn if_token(
19544        &mut self,
19545        _if_term: &ParseTreeType<'t>,
19546        _comments: &ParseTreeType<'t>,
19547    ) -> Result<()> {
19548        let context = function_name!();
19549        trace!("{}", self.trace_item_stack(context));
19550        let comments = pop_item!(self, comments, Comments, context);
19551        let if_term = pop_item!(self, if_term, IfTerm, context);
19552        let if_token_built = IfToken {
19553            if_term: (&if_term)
19554                .try_into()
19555                .map_err(parol_runtime::ParolError::UserError)?,
19556            comments: Box::new(comments),
19557        };
19558        // Calling user action here
19559        self.user_grammar.if_token(&if_token_built)?;
19560        self.push(ASTType::IfToken(if_token_built), context);
19561        Ok(())
19562    }
19563
19564    /// Semantic action for production 222:
19565    ///
19566    /// `ImportToken: ImportTerm : Token Comments;`
19567    ///
19568    #[parol_runtime::function_name::named]
19569    fn import_token(
19570        &mut self,
19571        _import_term: &ParseTreeType<'t>,
19572        _comments: &ParseTreeType<'t>,
19573    ) -> Result<()> {
19574        let context = function_name!();
19575        trace!("{}", self.trace_item_stack(context));
19576        let comments = pop_item!(self, comments, Comments, context);
19577        let import_term = pop_item!(self, import_term, ImportTerm, context);
19578        let import_token_built = ImportToken {
19579            import_term: (&import_term)
19580                .try_into()
19581                .map_err(parol_runtime::ParolError::UserError)?,
19582            comments: Box::new(comments),
19583        };
19584        // Calling user action here
19585        self.user_grammar.import_token(&import_token_built)?;
19586        self.push(ASTType::ImportToken(import_token_built), context);
19587        Ok(())
19588    }
19589
19590    /// Semantic action for production 223:
19591    ///
19592    /// `IncludeToken: IncludeTerm : Token Comments;`
19593    ///
19594    #[parol_runtime::function_name::named]
19595    fn include_token(
19596        &mut self,
19597        _include_term: &ParseTreeType<'t>,
19598        _comments: &ParseTreeType<'t>,
19599    ) -> Result<()> {
19600        let context = function_name!();
19601        trace!("{}", self.trace_item_stack(context));
19602        let comments = pop_item!(self, comments, Comments, context);
19603        let include_term = pop_item!(self, include_term, IncludeTerm, context);
19604        let include_token_built = IncludeToken {
19605            include_term: (&include_term)
19606                .try_into()
19607                .map_err(parol_runtime::ParolError::UserError)?,
19608            comments: Box::new(comments),
19609        };
19610        // Calling user action here
19611        self.user_grammar.include_token(&include_token_built)?;
19612        self.push(ASTType::IncludeToken(include_token_built), context);
19613        Ok(())
19614    }
19615
19616    /// Semantic action for production 224:
19617    ///
19618    /// `InitialToken: InitialTerm : Token Comments;`
19619    ///
19620    #[parol_runtime::function_name::named]
19621    fn initial_token(
19622        &mut self,
19623        _initial_term: &ParseTreeType<'t>,
19624        _comments: &ParseTreeType<'t>,
19625    ) -> Result<()> {
19626        let context = function_name!();
19627        trace!("{}", self.trace_item_stack(context));
19628        let comments = pop_item!(self, comments, Comments, context);
19629        let initial_term = pop_item!(self, initial_term, InitialTerm, context);
19630        let initial_token_built = InitialToken {
19631            initial_term: (&initial_term)
19632                .try_into()
19633                .map_err(parol_runtime::ParolError::UserError)?,
19634            comments: Box::new(comments),
19635        };
19636        // Calling user action here
19637        self.user_grammar.initial_token(&initial_token_built)?;
19638        self.push(ASTType::InitialToken(initial_token_built), context);
19639        Ok(())
19640    }
19641
19642    /// Semantic action for production 225:
19643    ///
19644    /// `InoutToken: InoutTerm : Token Comments;`
19645    ///
19646    #[parol_runtime::function_name::named]
19647    fn inout_token(
19648        &mut self,
19649        _inout_term: &ParseTreeType<'t>,
19650        _comments: &ParseTreeType<'t>,
19651    ) -> Result<()> {
19652        let context = function_name!();
19653        trace!("{}", self.trace_item_stack(context));
19654        let comments = pop_item!(self, comments, Comments, context);
19655        let inout_term = pop_item!(self, inout_term, InoutTerm, context);
19656        let inout_token_built = InoutToken {
19657            inout_term: (&inout_term)
19658                .try_into()
19659                .map_err(parol_runtime::ParolError::UserError)?,
19660            comments: Box::new(comments),
19661        };
19662        // Calling user action here
19663        self.user_grammar.inout_token(&inout_token_built)?;
19664        self.push(ASTType::InoutToken(inout_token_built), context);
19665        Ok(())
19666    }
19667
19668    /// Semantic action for production 226:
19669    ///
19670    /// `InputToken: InputTerm : Token Comments;`
19671    ///
19672    #[parol_runtime::function_name::named]
19673    fn input_token(
19674        &mut self,
19675        _input_term: &ParseTreeType<'t>,
19676        _comments: &ParseTreeType<'t>,
19677    ) -> Result<()> {
19678        let context = function_name!();
19679        trace!("{}", self.trace_item_stack(context));
19680        let comments = pop_item!(self, comments, Comments, context);
19681        let input_term = pop_item!(self, input_term, InputTerm, context);
19682        let input_token_built = InputToken {
19683            input_term: (&input_term)
19684                .try_into()
19685                .map_err(parol_runtime::ParolError::UserError)?,
19686            comments: Box::new(comments),
19687        };
19688        // Calling user action here
19689        self.user_grammar.input_token(&input_token_built)?;
19690        self.push(ASTType::InputToken(input_token_built), context);
19691        Ok(())
19692    }
19693
19694    /// Semantic action for production 227:
19695    ///
19696    /// `InsideToken: InsideTerm : Token Comments;`
19697    ///
19698    #[parol_runtime::function_name::named]
19699    fn inside_token(
19700        &mut self,
19701        _inside_term: &ParseTreeType<'t>,
19702        _comments: &ParseTreeType<'t>,
19703    ) -> Result<()> {
19704        let context = function_name!();
19705        trace!("{}", self.trace_item_stack(context));
19706        let comments = pop_item!(self, comments, Comments, context);
19707        let inside_term = pop_item!(self, inside_term, InsideTerm, context);
19708        let inside_token_built = InsideToken {
19709            inside_term: (&inside_term)
19710                .try_into()
19711                .map_err(parol_runtime::ParolError::UserError)?,
19712            comments: Box::new(comments),
19713        };
19714        // Calling user action here
19715        self.user_grammar.inside_token(&inside_token_built)?;
19716        self.push(ASTType::InsideToken(inside_token_built), context);
19717        Ok(())
19718    }
19719
19720    /// Semantic action for production 228:
19721    ///
19722    /// `InstToken: InstTerm : Token Comments;`
19723    ///
19724    #[parol_runtime::function_name::named]
19725    fn inst_token(
19726        &mut self,
19727        _inst_term: &ParseTreeType<'t>,
19728        _comments: &ParseTreeType<'t>,
19729    ) -> Result<()> {
19730        let context = function_name!();
19731        trace!("{}", self.trace_item_stack(context));
19732        let comments = pop_item!(self, comments, Comments, context);
19733        let inst_term = pop_item!(self, inst_term, InstTerm, context);
19734        let inst_token_built = InstToken {
19735            inst_term: (&inst_term)
19736                .try_into()
19737                .map_err(parol_runtime::ParolError::UserError)?,
19738            comments: Box::new(comments),
19739        };
19740        // Calling user action here
19741        self.user_grammar.inst_token(&inst_token_built)?;
19742        self.push(ASTType::InstToken(inst_token_built), context);
19743        Ok(())
19744    }
19745
19746    /// Semantic action for production 229:
19747    ///
19748    /// `InterfaceToken: InterfaceTerm : Token Comments;`
19749    ///
19750    #[parol_runtime::function_name::named]
19751    fn interface_token(
19752        &mut self,
19753        _interface_term: &ParseTreeType<'t>,
19754        _comments: &ParseTreeType<'t>,
19755    ) -> Result<()> {
19756        let context = function_name!();
19757        trace!("{}", self.trace_item_stack(context));
19758        let comments = pop_item!(self, comments, Comments, context);
19759        let interface_term = pop_item!(self, interface_term, InterfaceTerm, context);
19760        let interface_token_built = InterfaceToken {
19761            interface_term: (&interface_term)
19762                .try_into()
19763                .map_err(parol_runtime::ParolError::UserError)?,
19764            comments: Box::new(comments),
19765        };
19766        // Calling user action here
19767        self.user_grammar.interface_token(&interface_token_built)?;
19768        self.push(ASTType::InterfaceToken(interface_token_built), context);
19769        Ok(())
19770    }
19771
19772    /// Semantic action for production 230:
19773    ///
19774    /// `InToken: InTerm : Token Comments;`
19775    ///
19776    #[parol_runtime::function_name::named]
19777    fn in_token(
19778        &mut self,
19779        _in_term: &ParseTreeType<'t>,
19780        _comments: &ParseTreeType<'t>,
19781    ) -> Result<()> {
19782        let context = function_name!();
19783        trace!("{}", self.trace_item_stack(context));
19784        let comments = pop_item!(self, comments, Comments, context);
19785        let in_term = pop_item!(self, in_term, InTerm, context);
19786        let in_token_built = InToken {
19787            in_term: (&in_term)
19788                .try_into()
19789                .map_err(parol_runtime::ParolError::UserError)?,
19790            comments: Box::new(comments),
19791        };
19792        // Calling user action here
19793        self.user_grammar.in_token(&in_token_built)?;
19794        self.push(ASTType::InToken(in_token_built), context);
19795        Ok(())
19796    }
19797
19798    /// Semantic action for production 231:
19799    ///
19800    /// `LetToken: LetTerm : Token Comments;`
19801    ///
19802    #[parol_runtime::function_name::named]
19803    fn let_token(
19804        &mut self,
19805        _let_term: &ParseTreeType<'t>,
19806        _comments: &ParseTreeType<'t>,
19807    ) -> Result<()> {
19808        let context = function_name!();
19809        trace!("{}", self.trace_item_stack(context));
19810        let comments = pop_item!(self, comments, Comments, context);
19811        let let_term = pop_item!(self, let_term, LetTerm, context);
19812        let let_token_built = LetToken {
19813            let_term: (&let_term)
19814                .try_into()
19815                .map_err(parol_runtime::ParolError::UserError)?,
19816            comments: Box::new(comments),
19817        };
19818        // Calling user action here
19819        self.user_grammar.let_token(&let_token_built)?;
19820        self.push(ASTType::LetToken(let_token_built), context);
19821        Ok(())
19822    }
19823
19824    /// Semantic action for production 232:
19825    ///
19826    /// `LogicToken: LogicTerm : Token Comments;`
19827    ///
19828    #[parol_runtime::function_name::named]
19829    fn logic_token(
19830        &mut self,
19831        _logic_term: &ParseTreeType<'t>,
19832        _comments: &ParseTreeType<'t>,
19833    ) -> Result<()> {
19834        let context = function_name!();
19835        trace!("{}", self.trace_item_stack(context));
19836        let comments = pop_item!(self, comments, Comments, context);
19837        let logic_term = pop_item!(self, logic_term, LogicTerm, context);
19838        let logic_token_built = LogicToken {
19839            logic_term: (&logic_term)
19840                .try_into()
19841                .map_err(parol_runtime::ParolError::UserError)?,
19842            comments: Box::new(comments),
19843        };
19844        // Calling user action here
19845        self.user_grammar.logic_token(&logic_token_built)?;
19846        self.push(ASTType::LogicToken(logic_token_built), context);
19847        Ok(())
19848    }
19849
19850    /// Semantic action for production 233:
19851    ///
19852    /// `LsbToken: LsbTerm : Token Comments;`
19853    ///
19854    #[parol_runtime::function_name::named]
19855    fn lsb_token(
19856        &mut self,
19857        _lsb_term: &ParseTreeType<'t>,
19858        _comments: &ParseTreeType<'t>,
19859    ) -> Result<()> {
19860        let context = function_name!();
19861        trace!("{}", self.trace_item_stack(context));
19862        let comments = pop_item!(self, comments, Comments, context);
19863        let lsb_term = pop_item!(self, lsb_term, LsbTerm, context);
19864        let lsb_token_built = LsbToken {
19865            lsb_term: (&lsb_term)
19866                .try_into()
19867                .map_err(parol_runtime::ParolError::UserError)?,
19868            comments: Box::new(comments),
19869        };
19870        // Calling user action here
19871        self.user_grammar.lsb_token(&lsb_token_built)?;
19872        self.push(ASTType::LsbToken(lsb_token_built), context);
19873        Ok(())
19874    }
19875
19876    /// Semantic action for production 234:
19877    ///
19878    /// `ModportToken: ModportTerm : Token Comments;`
19879    ///
19880    #[parol_runtime::function_name::named]
19881    fn modport_token(
19882        &mut self,
19883        _modport_term: &ParseTreeType<'t>,
19884        _comments: &ParseTreeType<'t>,
19885    ) -> Result<()> {
19886        let context = function_name!();
19887        trace!("{}", self.trace_item_stack(context));
19888        let comments = pop_item!(self, comments, Comments, context);
19889        let modport_term = pop_item!(self, modport_term, ModportTerm, context);
19890        let modport_token_built = ModportToken {
19891            modport_term: (&modport_term)
19892                .try_into()
19893                .map_err(parol_runtime::ParolError::UserError)?,
19894            comments: Box::new(comments),
19895        };
19896        // Calling user action here
19897        self.user_grammar.modport_token(&modport_token_built)?;
19898        self.push(ASTType::ModportToken(modport_token_built), context);
19899        Ok(())
19900    }
19901
19902    /// Semantic action for production 235:
19903    ///
19904    /// `ModuleToken: ModuleTerm : Token Comments;`
19905    ///
19906    #[parol_runtime::function_name::named]
19907    fn module_token(
19908        &mut self,
19909        _module_term: &ParseTreeType<'t>,
19910        _comments: &ParseTreeType<'t>,
19911    ) -> Result<()> {
19912        let context = function_name!();
19913        trace!("{}", self.trace_item_stack(context));
19914        let comments = pop_item!(self, comments, Comments, context);
19915        let module_term = pop_item!(self, module_term, ModuleTerm, context);
19916        let module_token_built = ModuleToken {
19917            module_term: (&module_term)
19918                .try_into()
19919                .map_err(parol_runtime::ParolError::UserError)?,
19920            comments: Box::new(comments),
19921        };
19922        // Calling user action here
19923        self.user_grammar.module_token(&module_token_built)?;
19924        self.push(ASTType::ModuleToken(module_token_built), context);
19925        Ok(())
19926    }
19927
19928    /// Semantic action for production 236:
19929    ///
19930    /// `MsbToken: MsbTerm : Token Comments;`
19931    ///
19932    #[parol_runtime::function_name::named]
19933    fn msb_token(
19934        &mut self,
19935        _msb_term: &ParseTreeType<'t>,
19936        _comments: &ParseTreeType<'t>,
19937    ) -> Result<()> {
19938        let context = function_name!();
19939        trace!("{}", self.trace_item_stack(context));
19940        let comments = pop_item!(self, comments, Comments, context);
19941        let msb_term = pop_item!(self, msb_term, MsbTerm, context);
19942        let msb_token_built = MsbToken {
19943            msb_term: (&msb_term)
19944                .try_into()
19945                .map_err(parol_runtime::ParolError::UserError)?,
19946            comments: Box::new(comments),
19947        };
19948        // Calling user action here
19949        self.user_grammar.msb_token(&msb_token_built)?;
19950        self.push(ASTType::MsbToken(msb_token_built), context);
19951        Ok(())
19952    }
19953
19954    /// Semantic action for production 237:
19955    ///
19956    /// `OutputToken: OutputTerm : Token Comments;`
19957    ///
19958    #[parol_runtime::function_name::named]
19959    fn output_token(
19960        &mut self,
19961        _output_term: &ParseTreeType<'t>,
19962        _comments: &ParseTreeType<'t>,
19963    ) -> Result<()> {
19964        let context = function_name!();
19965        trace!("{}", self.trace_item_stack(context));
19966        let comments = pop_item!(self, comments, Comments, context);
19967        let output_term = pop_item!(self, output_term, OutputTerm, context);
19968        let output_token_built = OutputToken {
19969            output_term: (&output_term)
19970                .try_into()
19971                .map_err(parol_runtime::ParolError::UserError)?,
19972            comments: Box::new(comments),
19973        };
19974        // Calling user action here
19975        self.user_grammar.output_token(&output_token_built)?;
19976        self.push(ASTType::OutputToken(output_token_built), context);
19977        Ok(())
19978    }
19979
19980    /// Semantic action for production 238:
19981    ///
19982    /// `OutsideToken: OutsideTerm : Token Comments;`
19983    ///
19984    #[parol_runtime::function_name::named]
19985    fn outside_token(
19986        &mut self,
19987        _outside_term: &ParseTreeType<'t>,
19988        _comments: &ParseTreeType<'t>,
19989    ) -> Result<()> {
19990        let context = function_name!();
19991        trace!("{}", self.trace_item_stack(context));
19992        let comments = pop_item!(self, comments, Comments, context);
19993        let outside_term = pop_item!(self, outside_term, OutsideTerm, context);
19994        let outside_token_built = OutsideToken {
19995            outside_term: (&outside_term)
19996                .try_into()
19997                .map_err(parol_runtime::ParolError::UserError)?,
19998            comments: Box::new(comments),
19999        };
20000        // Calling user action here
20001        self.user_grammar.outside_token(&outside_token_built)?;
20002        self.push(ASTType::OutsideToken(outside_token_built), context);
20003        Ok(())
20004    }
20005
20006    /// Semantic action for production 239:
20007    ///
20008    /// `PackageToken: PackageTerm : Token Comments;`
20009    ///
20010    #[parol_runtime::function_name::named]
20011    fn package_token(
20012        &mut self,
20013        _package_term: &ParseTreeType<'t>,
20014        _comments: &ParseTreeType<'t>,
20015    ) -> Result<()> {
20016        let context = function_name!();
20017        trace!("{}", self.trace_item_stack(context));
20018        let comments = pop_item!(self, comments, Comments, context);
20019        let package_term = pop_item!(self, package_term, PackageTerm, context);
20020        let package_token_built = PackageToken {
20021            package_term: (&package_term)
20022                .try_into()
20023                .map_err(parol_runtime::ParolError::UserError)?,
20024            comments: Box::new(comments),
20025        };
20026        // Calling user action here
20027        self.user_grammar.package_token(&package_token_built)?;
20028        self.push(ASTType::PackageToken(package_token_built), context);
20029        Ok(())
20030    }
20031
20032    /// Semantic action for production 240:
20033    ///
20034    /// `ParamToken: ParamTerm : Token Comments;`
20035    ///
20036    #[parol_runtime::function_name::named]
20037    fn param_token(
20038        &mut self,
20039        _param_term: &ParseTreeType<'t>,
20040        _comments: &ParseTreeType<'t>,
20041    ) -> Result<()> {
20042        let context = function_name!();
20043        trace!("{}", self.trace_item_stack(context));
20044        let comments = pop_item!(self, comments, Comments, context);
20045        let param_term = pop_item!(self, param_term, ParamTerm, context);
20046        let param_token_built = ParamToken {
20047            param_term: (&param_term)
20048                .try_into()
20049                .map_err(parol_runtime::ParolError::UserError)?,
20050            comments: Box::new(comments),
20051        };
20052        // Calling user action here
20053        self.user_grammar.param_token(&param_token_built)?;
20054        self.push(ASTType::ParamToken(param_token_built), context);
20055        Ok(())
20056    }
20057
20058    /// Semantic action for production 241:
20059    ///
20060    /// `ProtoToken: ProtoTerm : Token Comments;`
20061    ///
20062    #[parol_runtime::function_name::named]
20063    fn proto_token(
20064        &mut self,
20065        _proto_term: &ParseTreeType<'t>,
20066        _comments: &ParseTreeType<'t>,
20067    ) -> Result<()> {
20068        let context = function_name!();
20069        trace!("{}", self.trace_item_stack(context));
20070        let comments = pop_item!(self, comments, Comments, context);
20071        let proto_term = pop_item!(self, proto_term, ProtoTerm, context);
20072        let proto_token_built = ProtoToken {
20073            proto_term: (&proto_term)
20074                .try_into()
20075                .map_err(parol_runtime::ParolError::UserError)?,
20076            comments: Box::new(comments),
20077        };
20078        // Calling user action here
20079        self.user_grammar.proto_token(&proto_token_built)?;
20080        self.push(ASTType::ProtoToken(proto_token_built), context);
20081        Ok(())
20082    }
20083
20084    /// Semantic action for production 242:
20085    ///
20086    /// `PubToken: PubTerm : Token Comments;`
20087    ///
20088    #[parol_runtime::function_name::named]
20089    fn pub_token(
20090        &mut self,
20091        _pub_term: &ParseTreeType<'t>,
20092        _comments: &ParseTreeType<'t>,
20093    ) -> Result<()> {
20094        let context = function_name!();
20095        trace!("{}", self.trace_item_stack(context));
20096        let comments = pop_item!(self, comments, Comments, context);
20097        let pub_term = pop_item!(self, pub_term, PubTerm, context);
20098        let pub_token_built = PubToken {
20099            pub_term: (&pub_term)
20100                .try_into()
20101                .map_err(parol_runtime::ParolError::UserError)?,
20102            comments: Box::new(comments),
20103        };
20104        // Calling user action here
20105        self.user_grammar.pub_token(&pub_token_built)?;
20106        self.push(ASTType::PubToken(pub_token_built), context);
20107        Ok(())
20108    }
20109
20110    /// Semantic action for production 243:
20111    ///
20112    /// `RepeatToken: RepeatTerm : Token Comments;`
20113    ///
20114    #[parol_runtime::function_name::named]
20115    fn repeat_token(
20116        &mut self,
20117        _repeat_term: &ParseTreeType<'t>,
20118        _comments: &ParseTreeType<'t>,
20119    ) -> Result<()> {
20120        let context = function_name!();
20121        trace!("{}", self.trace_item_stack(context));
20122        let comments = pop_item!(self, comments, Comments, context);
20123        let repeat_term = pop_item!(self, repeat_term, RepeatTerm, context);
20124        let repeat_token_built = RepeatToken {
20125            repeat_term: (&repeat_term)
20126                .try_into()
20127                .map_err(parol_runtime::ParolError::UserError)?,
20128            comments: Box::new(comments),
20129        };
20130        // Calling user action here
20131        self.user_grammar.repeat_token(&repeat_token_built)?;
20132        self.push(ASTType::RepeatToken(repeat_token_built), context);
20133        Ok(())
20134    }
20135
20136    /// Semantic action for production 244:
20137    ///
20138    /// `ResetToken: ResetTerm : Token Comments;`
20139    ///
20140    #[parol_runtime::function_name::named]
20141    fn reset_token(
20142        &mut self,
20143        _reset_term: &ParseTreeType<'t>,
20144        _comments: &ParseTreeType<'t>,
20145    ) -> Result<()> {
20146        let context = function_name!();
20147        trace!("{}", self.trace_item_stack(context));
20148        let comments = pop_item!(self, comments, Comments, context);
20149        let reset_term = pop_item!(self, reset_term, ResetTerm, context);
20150        let reset_token_built = ResetToken {
20151            reset_term: (&reset_term)
20152                .try_into()
20153                .map_err(parol_runtime::ParolError::UserError)?,
20154            comments: Box::new(comments),
20155        };
20156        // Calling user action here
20157        self.user_grammar.reset_token(&reset_token_built)?;
20158        self.push(ASTType::ResetToken(reset_token_built), context);
20159        Ok(())
20160    }
20161
20162    /// Semantic action for production 245:
20163    ///
20164    /// `ResetAsyncHighToken: ResetAsyncHighTerm : Token Comments;`
20165    ///
20166    #[parol_runtime::function_name::named]
20167    fn reset_async_high_token(
20168        &mut self,
20169        _reset_async_high_term: &ParseTreeType<'t>,
20170        _comments: &ParseTreeType<'t>,
20171    ) -> Result<()> {
20172        let context = function_name!();
20173        trace!("{}", self.trace_item_stack(context));
20174        let comments = pop_item!(self, comments, Comments, context);
20175        let reset_async_high_term =
20176            pop_item!(self, reset_async_high_term, ResetAsyncHighTerm, context);
20177        let reset_async_high_token_built = ResetAsyncHighToken {
20178            reset_async_high_term: (&reset_async_high_term)
20179                .try_into()
20180                .map_err(parol_runtime::ParolError::UserError)?,
20181            comments: Box::new(comments),
20182        };
20183        // Calling user action here
20184        self.user_grammar
20185            .reset_async_high_token(&reset_async_high_token_built)?;
20186        self.push(
20187            ASTType::ResetAsyncHighToken(reset_async_high_token_built),
20188            context,
20189        );
20190        Ok(())
20191    }
20192
20193    /// Semantic action for production 246:
20194    ///
20195    /// `ResetAsyncLowToken: ResetAsyncLowTerm : Token Comments;`
20196    ///
20197    #[parol_runtime::function_name::named]
20198    fn reset_async_low_token(
20199        &mut self,
20200        _reset_async_low_term: &ParseTreeType<'t>,
20201        _comments: &ParseTreeType<'t>,
20202    ) -> Result<()> {
20203        let context = function_name!();
20204        trace!("{}", self.trace_item_stack(context));
20205        let comments = pop_item!(self, comments, Comments, context);
20206        let reset_async_low_term =
20207            pop_item!(self, reset_async_low_term, ResetAsyncLowTerm, context);
20208        let reset_async_low_token_built = ResetAsyncLowToken {
20209            reset_async_low_term: (&reset_async_low_term)
20210                .try_into()
20211                .map_err(parol_runtime::ParolError::UserError)?,
20212            comments: Box::new(comments),
20213        };
20214        // Calling user action here
20215        self.user_grammar
20216            .reset_async_low_token(&reset_async_low_token_built)?;
20217        self.push(
20218            ASTType::ResetAsyncLowToken(reset_async_low_token_built),
20219            context,
20220        );
20221        Ok(())
20222    }
20223
20224    /// Semantic action for production 247:
20225    ///
20226    /// `ResetSyncHighToken: ResetSyncHighTerm : Token Comments;`
20227    ///
20228    #[parol_runtime::function_name::named]
20229    fn reset_sync_high_token(
20230        &mut self,
20231        _reset_sync_high_term: &ParseTreeType<'t>,
20232        _comments: &ParseTreeType<'t>,
20233    ) -> Result<()> {
20234        let context = function_name!();
20235        trace!("{}", self.trace_item_stack(context));
20236        let comments = pop_item!(self, comments, Comments, context);
20237        let reset_sync_high_term =
20238            pop_item!(self, reset_sync_high_term, ResetSyncHighTerm, context);
20239        let reset_sync_high_token_built = ResetSyncHighToken {
20240            reset_sync_high_term: (&reset_sync_high_term)
20241                .try_into()
20242                .map_err(parol_runtime::ParolError::UserError)?,
20243            comments: Box::new(comments),
20244        };
20245        // Calling user action here
20246        self.user_grammar
20247            .reset_sync_high_token(&reset_sync_high_token_built)?;
20248        self.push(
20249            ASTType::ResetSyncHighToken(reset_sync_high_token_built),
20250            context,
20251        );
20252        Ok(())
20253    }
20254
20255    /// Semantic action for production 248:
20256    ///
20257    /// `ResetSyncLowToken: ResetSyncLowTerm : Token Comments;`
20258    ///
20259    #[parol_runtime::function_name::named]
20260    fn reset_sync_low_token(
20261        &mut self,
20262        _reset_sync_low_term: &ParseTreeType<'t>,
20263        _comments: &ParseTreeType<'t>,
20264    ) -> Result<()> {
20265        let context = function_name!();
20266        trace!("{}", self.trace_item_stack(context));
20267        let comments = pop_item!(self, comments, Comments, context);
20268        let reset_sync_low_term = pop_item!(self, reset_sync_low_term, ResetSyncLowTerm, context);
20269        let reset_sync_low_token_built = ResetSyncLowToken {
20270            reset_sync_low_term: (&reset_sync_low_term)
20271                .try_into()
20272                .map_err(parol_runtime::ParolError::UserError)?,
20273            comments: Box::new(comments),
20274        };
20275        // Calling user action here
20276        self.user_grammar
20277            .reset_sync_low_token(&reset_sync_low_token_built)?;
20278        self.push(
20279            ASTType::ResetSyncLowToken(reset_sync_low_token_built),
20280            context,
20281        );
20282        Ok(())
20283    }
20284
20285    /// Semantic action for production 249:
20286    ///
20287    /// `ReturnToken: ReturnTerm : Token Comments;`
20288    ///
20289    #[parol_runtime::function_name::named]
20290    fn return_token(
20291        &mut self,
20292        _return_term: &ParseTreeType<'t>,
20293        _comments: &ParseTreeType<'t>,
20294    ) -> Result<()> {
20295        let context = function_name!();
20296        trace!("{}", self.trace_item_stack(context));
20297        let comments = pop_item!(self, comments, Comments, context);
20298        let return_term = pop_item!(self, return_term, ReturnTerm, context);
20299        let return_token_built = ReturnToken {
20300            return_term: (&return_term)
20301                .try_into()
20302                .map_err(parol_runtime::ParolError::UserError)?,
20303            comments: Box::new(comments),
20304        };
20305        // Calling user action here
20306        self.user_grammar.return_token(&return_token_built)?;
20307        self.push(ASTType::ReturnToken(return_token_built), context);
20308        Ok(())
20309    }
20310
20311    /// Semantic action for production 250:
20312    ///
20313    /// `RevToken: RevTerm : Token Comments;`
20314    ///
20315    #[parol_runtime::function_name::named]
20316    fn rev_token(
20317        &mut self,
20318        _rev_term: &ParseTreeType<'t>,
20319        _comments: &ParseTreeType<'t>,
20320    ) -> Result<()> {
20321        let context = function_name!();
20322        trace!("{}", self.trace_item_stack(context));
20323        let comments = pop_item!(self, comments, Comments, context);
20324        let rev_term = pop_item!(self, rev_term, RevTerm, context);
20325        let rev_token_built = RevToken {
20326            rev_term: (&rev_term)
20327                .try_into()
20328                .map_err(parol_runtime::ParolError::UserError)?,
20329            comments: Box::new(comments),
20330        };
20331        // Calling user action here
20332        self.user_grammar.rev_token(&rev_token_built)?;
20333        self.push(ASTType::RevToken(rev_token_built), context);
20334        Ok(())
20335    }
20336
20337    /// Semantic action for production 251:
20338    ///
20339    /// `BreakToken: BreakTerm : Token Comments;`
20340    ///
20341    #[parol_runtime::function_name::named]
20342    fn break_token(
20343        &mut self,
20344        _break_term: &ParseTreeType<'t>,
20345        _comments: &ParseTreeType<'t>,
20346    ) -> Result<()> {
20347        let context = function_name!();
20348        trace!("{}", self.trace_item_stack(context));
20349        let comments = pop_item!(self, comments, Comments, context);
20350        let break_term = pop_item!(self, break_term, BreakTerm, context);
20351        let break_token_built = BreakToken {
20352            break_term: (&break_term)
20353                .try_into()
20354                .map_err(parol_runtime::ParolError::UserError)?,
20355            comments: Box::new(comments),
20356        };
20357        // Calling user action here
20358        self.user_grammar.break_token(&break_token_built)?;
20359        self.push(ASTType::BreakToken(break_token_built), context);
20360        Ok(())
20361    }
20362
20363    /// Semantic action for production 252:
20364    ///
20365    /// `SameToken: SameTerm : Token Comments;`
20366    ///
20367    #[parol_runtime::function_name::named]
20368    fn same_token(
20369        &mut self,
20370        _same_term: &ParseTreeType<'t>,
20371        _comments: &ParseTreeType<'t>,
20372    ) -> Result<()> {
20373        let context = function_name!();
20374        trace!("{}", self.trace_item_stack(context));
20375        let comments = pop_item!(self, comments, Comments, context);
20376        let same_term = pop_item!(self, same_term, SameTerm, context);
20377        let same_token_built = SameToken {
20378            same_term: (&same_term)
20379                .try_into()
20380                .map_err(parol_runtime::ParolError::UserError)?,
20381            comments: Box::new(comments),
20382        };
20383        // Calling user action here
20384        self.user_grammar.same_token(&same_token_built)?;
20385        self.push(ASTType::SameToken(same_token_built), context);
20386        Ok(())
20387    }
20388
20389    /// Semantic action for production 253:
20390    ///
20391    /// `SignedToken: SignedTerm : Token Comments;`
20392    ///
20393    #[parol_runtime::function_name::named]
20394    fn signed_token(
20395        &mut self,
20396        _signed_term: &ParseTreeType<'t>,
20397        _comments: &ParseTreeType<'t>,
20398    ) -> Result<()> {
20399        let context = function_name!();
20400        trace!("{}", self.trace_item_stack(context));
20401        let comments = pop_item!(self, comments, Comments, context);
20402        let signed_term = pop_item!(self, signed_term, SignedTerm, context);
20403        let signed_token_built = SignedToken {
20404            signed_term: (&signed_term)
20405                .try_into()
20406                .map_err(parol_runtime::ParolError::UserError)?,
20407            comments: Box::new(comments),
20408        };
20409        // Calling user action here
20410        self.user_grammar.signed_token(&signed_token_built)?;
20411        self.push(ASTType::SignedToken(signed_token_built), context);
20412        Ok(())
20413    }
20414
20415    /// Semantic action for production 254:
20416    ///
20417    /// `StepToken: StepTerm : Token Comments;`
20418    ///
20419    #[parol_runtime::function_name::named]
20420    fn step_token(
20421        &mut self,
20422        _step_term: &ParseTreeType<'t>,
20423        _comments: &ParseTreeType<'t>,
20424    ) -> Result<()> {
20425        let context = function_name!();
20426        trace!("{}", self.trace_item_stack(context));
20427        let comments = pop_item!(self, comments, Comments, context);
20428        let step_term = pop_item!(self, step_term, StepTerm, context);
20429        let step_token_built = StepToken {
20430            step_term: (&step_term)
20431                .try_into()
20432                .map_err(parol_runtime::ParolError::UserError)?,
20433            comments: Box::new(comments),
20434        };
20435        // Calling user action here
20436        self.user_grammar.step_token(&step_token_built)?;
20437        self.push(ASTType::StepToken(step_token_built), context);
20438        Ok(())
20439    }
20440
20441    /// Semantic action for production 255:
20442    ///
20443    /// `StringToken: StringTerm : Token Comments;`
20444    ///
20445    #[parol_runtime::function_name::named]
20446    fn string_token(
20447        &mut self,
20448        _string_term: &ParseTreeType<'t>,
20449        _comments: &ParseTreeType<'t>,
20450    ) -> Result<()> {
20451        let context = function_name!();
20452        trace!("{}", self.trace_item_stack(context));
20453        let comments = pop_item!(self, comments, Comments, context);
20454        let string_term = pop_item!(self, string_term, StringTerm, context);
20455        let string_token_built = StringToken {
20456            string_term: (&string_term)
20457                .try_into()
20458                .map_err(parol_runtime::ParolError::UserError)?,
20459            comments: Box::new(comments),
20460        };
20461        // Calling user action here
20462        self.user_grammar.string_token(&string_token_built)?;
20463        self.push(ASTType::StringToken(string_token_built), context);
20464        Ok(())
20465    }
20466
20467    /// Semantic action for production 256:
20468    ///
20469    /// `StructToken: StructTerm : Token Comments;`
20470    ///
20471    #[parol_runtime::function_name::named]
20472    fn struct_token(
20473        &mut self,
20474        _struct_term: &ParseTreeType<'t>,
20475        _comments: &ParseTreeType<'t>,
20476    ) -> Result<()> {
20477        let context = function_name!();
20478        trace!("{}", self.trace_item_stack(context));
20479        let comments = pop_item!(self, comments, Comments, context);
20480        let struct_term = pop_item!(self, struct_term, StructTerm, context);
20481        let struct_token_built = StructToken {
20482            struct_term: (&struct_term)
20483                .try_into()
20484                .map_err(parol_runtime::ParolError::UserError)?,
20485            comments: Box::new(comments),
20486        };
20487        // Calling user action here
20488        self.user_grammar.struct_token(&struct_token_built)?;
20489        self.push(ASTType::StructToken(struct_token_built), context);
20490        Ok(())
20491    }
20492
20493    /// Semantic action for production 257:
20494    ///
20495    /// `SwitchToken: SwitchTerm : Token Comments;`
20496    ///
20497    #[parol_runtime::function_name::named]
20498    fn switch_token(
20499        &mut self,
20500        _switch_term: &ParseTreeType<'t>,
20501        _comments: &ParseTreeType<'t>,
20502    ) -> Result<()> {
20503        let context = function_name!();
20504        trace!("{}", self.trace_item_stack(context));
20505        let comments = pop_item!(self, comments, Comments, context);
20506        let switch_term = pop_item!(self, switch_term, SwitchTerm, context);
20507        let switch_token_built = SwitchToken {
20508            switch_term: (&switch_term)
20509                .try_into()
20510                .map_err(parol_runtime::ParolError::UserError)?,
20511            comments: Box::new(comments),
20512        };
20513        // Calling user action here
20514        self.user_grammar.switch_token(&switch_token_built)?;
20515        self.push(ASTType::SwitchToken(switch_token_built), context);
20516        Ok(())
20517    }
20518
20519    /// Semantic action for production 258:
20520    ///
20521    /// `TriToken: TriTerm : Token Comments;`
20522    ///
20523    #[parol_runtime::function_name::named]
20524    fn tri_token(
20525        &mut self,
20526        _tri_term: &ParseTreeType<'t>,
20527        _comments: &ParseTreeType<'t>,
20528    ) -> Result<()> {
20529        let context = function_name!();
20530        trace!("{}", self.trace_item_stack(context));
20531        let comments = pop_item!(self, comments, Comments, context);
20532        let tri_term = pop_item!(self, tri_term, TriTerm, context);
20533        let tri_token_built = TriToken {
20534            tri_term: (&tri_term)
20535                .try_into()
20536                .map_err(parol_runtime::ParolError::UserError)?,
20537            comments: Box::new(comments),
20538        };
20539        // Calling user action here
20540        self.user_grammar.tri_token(&tri_token_built)?;
20541        self.push(ASTType::TriToken(tri_token_built), context);
20542        Ok(())
20543    }
20544
20545    /// Semantic action for production 259:
20546    ///
20547    /// `TrueToken: TrueTerm : Token Comments;`
20548    ///
20549    #[parol_runtime::function_name::named]
20550    fn true_token(
20551        &mut self,
20552        _true_term: &ParseTreeType<'t>,
20553        _comments: &ParseTreeType<'t>,
20554    ) -> Result<()> {
20555        let context = function_name!();
20556        trace!("{}", self.trace_item_stack(context));
20557        let comments = pop_item!(self, comments, Comments, context);
20558        let true_term = pop_item!(self, true_term, TrueTerm, context);
20559        let true_token_built = TrueToken {
20560            true_term: (&true_term)
20561                .try_into()
20562                .map_err(parol_runtime::ParolError::UserError)?,
20563            comments: Box::new(comments),
20564        };
20565        // Calling user action here
20566        self.user_grammar.true_token(&true_token_built)?;
20567        self.push(ASTType::TrueToken(true_token_built), context);
20568        Ok(())
20569    }
20570
20571    /// Semantic action for production 260:
20572    ///
20573    /// `TypeToken: TypeTerm : Token Comments;`
20574    ///
20575    #[parol_runtime::function_name::named]
20576    fn type_token(
20577        &mut self,
20578        _type_term: &ParseTreeType<'t>,
20579        _comments: &ParseTreeType<'t>,
20580    ) -> Result<()> {
20581        let context = function_name!();
20582        trace!("{}", self.trace_item_stack(context));
20583        let comments = pop_item!(self, comments, Comments, context);
20584        let type_term = pop_item!(self, type_term, TypeTerm, context);
20585        let type_token_built = TypeToken {
20586            type_term: (&type_term)
20587                .try_into()
20588                .map_err(parol_runtime::ParolError::UserError)?,
20589            comments: Box::new(comments),
20590        };
20591        // Calling user action here
20592        self.user_grammar.type_token(&type_token_built)?;
20593        self.push(ASTType::TypeToken(type_token_built), context);
20594        Ok(())
20595    }
20596
20597    /// Semantic action for production 261:
20598    ///
20599    /// `P8Token: P8Term : Token Comments;`
20600    ///
20601    #[parol_runtime::function_name::named]
20602    fn p8_token(
20603        &mut self,
20604        _p8_term: &ParseTreeType<'t>,
20605        _comments: &ParseTreeType<'t>,
20606    ) -> Result<()> {
20607        let context = function_name!();
20608        trace!("{}", self.trace_item_stack(context));
20609        let comments = pop_item!(self, comments, Comments, context);
20610        let p8_term = pop_item!(self, p8_term, P8Term, context);
20611        let p8_token_built = P8Token {
20612            p8_term: (&p8_term)
20613                .try_into()
20614                .map_err(parol_runtime::ParolError::UserError)?,
20615            comments: Box::new(comments),
20616        };
20617        // Calling user action here
20618        self.user_grammar.p8_token(&p8_token_built)?;
20619        self.push(ASTType::P8Token(p8_token_built), context);
20620        Ok(())
20621    }
20622
20623    /// Semantic action for production 262:
20624    ///
20625    /// `P16Token: P16Term : Token Comments;`
20626    ///
20627    #[parol_runtime::function_name::named]
20628    fn p16_token(
20629        &mut self,
20630        _p16_term: &ParseTreeType<'t>,
20631        _comments: &ParseTreeType<'t>,
20632    ) -> Result<()> {
20633        let context = function_name!();
20634        trace!("{}", self.trace_item_stack(context));
20635        let comments = pop_item!(self, comments, Comments, context);
20636        let p16_term = pop_item!(self, p16_term, P16Term, context);
20637        let p16_token_built = P16Token {
20638            p16_term: (&p16_term)
20639                .try_into()
20640                .map_err(parol_runtime::ParolError::UserError)?,
20641            comments: Box::new(comments),
20642        };
20643        // Calling user action here
20644        self.user_grammar.p16_token(&p16_token_built)?;
20645        self.push(ASTType::P16Token(p16_token_built), context);
20646        Ok(())
20647    }
20648
20649    /// Semantic action for production 263:
20650    ///
20651    /// `P32Token: P32Term : Token Comments;`
20652    ///
20653    #[parol_runtime::function_name::named]
20654    fn p32_token(
20655        &mut self,
20656        _p32_term: &ParseTreeType<'t>,
20657        _comments: &ParseTreeType<'t>,
20658    ) -> Result<()> {
20659        let context = function_name!();
20660        trace!("{}", self.trace_item_stack(context));
20661        let comments = pop_item!(self, comments, Comments, context);
20662        let p32_term = pop_item!(self, p32_term, P32Term, context);
20663        let p32_token_built = P32Token {
20664            p32_term: (&p32_term)
20665                .try_into()
20666                .map_err(parol_runtime::ParolError::UserError)?,
20667            comments: Box::new(comments),
20668        };
20669        // Calling user action here
20670        self.user_grammar.p32_token(&p32_token_built)?;
20671        self.push(ASTType::P32Token(p32_token_built), context);
20672        Ok(())
20673    }
20674
20675    /// Semantic action for production 264:
20676    ///
20677    /// `P64Token: P64Term : Token Comments;`
20678    ///
20679    #[parol_runtime::function_name::named]
20680    fn p64_token(
20681        &mut self,
20682        _p64_term: &ParseTreeType<'t>,
20683        _comments: &ParseTreeType<'t>,
20684    ) -> Result<()> {
20685        let context = function_name!();
20686        trace!("{}", self.trace_item_stack(context));
20687        let comments = pop_item!(self, comments, Comments, context);
20688        let p64_term = pop_item!(self, p64_term, P64Term, context);
20689        let p64_token_built = P64Token {
20690            p64_term: (&p64_term)
20691                .try_into()
20692                .map_err(parol_runtime::ParolError::UserError)?,
20693            comments: Box::new(comments),
20694        };
20695        // Calling user action here
20696        self.user_grammar.p64_token(&p64_token_built)?;
20697        self.push(ASTType::P64Token(p64_token_built), context);
20698        Ok(())
20699    }
20700
20701    /// Semantic action for production 265:
20702    ///
20703    /// `U8Token: U8Term : Token Comments;`
20704    ///
20705    #[parol_runtime::function_name::named]
20706    fn u8_token(
20707        &mut self,
20708        _u8_term: &ParseTreeType<'t>,
20709        _comments: &ParseTreeType<'t>,
20710    ) -> Result<()> {
20711        let context = function_name!();
20712        trace!("{}", self.trace_item_stack(context));
20713        let comments = pop_item!(self, comments, Comments, context);
20714        let u8_term = pop_item!(self, u8_term, U8Term, context);
20715        let u8_token_built = U8Token {
20716            u8_term: (&u8_term)
20717                .try_into()
20718                .map_err(parol_runtime::ParolError::UserError)?,
20719            comments: Box::new(comments),
20720        };
20721        // Calling user action here
20722        self.user_grammar.u8_token(&u8_token_built)?;
20723        self.push(ASTType::U8Token(u8_token_built), context);
20724        Ok(())
20725    }
20726
20727    /// Semantic action for production 266:
20728    ///
20729    /// `U16Token: U16Term : Token Comments;`
20730    ///
20731    #[parol_runtime::function_name::named]
20732    fn u16_token(
20733        &mut self,
20734        _u16_term: &ParseTreeType<'t>,
20735        _comments: &ParseTreeType<'t>,
20736    ) -> Result<()> {
20737        let context = function_name!();
20738        trace!("{}", self.trace_item_stack(context));
20739        let comments = pop_item!(self, comments, Comments, context);
20740        let u16_term = pop_item!(self, u16_term, U16Term, context);
20741        let u16_token_built = U16Token {
20742            u16_term: (&u16_term)
20743                .try_into()
20744                .map_err(parol_runtime::ParolError::UserError)?,
20745            comments: Box::new(comments),
20746        };
20747        // Calling user action here
20748        self.user_grammar.u16_token(&u16_token_built)?;
20749        self.push(ASTType::U16Token(u16_token_built), context);
20750        Ok(())
20751    }
20752
20753    /// Semantic action for production 267:
20754    ///
20755    /// `U32Token: U32Term : Token Comments;`
20756    ///
20757    #[parol_runtime::function_name::named]
20758    fn u32_token(
20759        &mut self,
20760        _u32_term: &ParseTreeType<'t>,
20761        _comments: &ParseTreeType<'t>,
20762    ) -> Result<()> {
20763        let context = function_name!();
20764        trace!("{}", self.trace_item_stack(context));
20765        let comments = pop_item!(self, comments, Comments, context);
20766        let u32_term = pop_item!(self, u32_term, U32Term, context);
20767        let u32_token_built = U32Token {
20768            u32_term: (&u32_term)
20769                .try_into()
20770                .map_err(parol_runtime::ParolError::UserError)?,
20771            comments: Box::new(comments),
20772        };
20773        // Calling user action here
20774        self.user_grammar.u32_token(&u32_token_built)?;
20775        self.push(ASTType::U32Token(u32_token_built), context);
20776        Ok(())
20777    }
20778
20779    /// Semantic action for production 268:
20780    ///
20781    /// `U64Token: U64Term : Token Comments;`
20782    ///
20783    #[parol_runtime::function_name::named]
20784    fn u64_token(
20785        &mut self,
20786        _u64_term: &ParseTreeType<'t>,
20787        _comments: &ParseTreeType<'t>,
20788    ) -> Result<()> {
20789        let context = function_name!();
20790        trace!("{}", self.trace_item_stack(context));
20791        let comments = pop_item!(self, comments, Comments, context);
20792        let u64_term = pop_item!(self, u64_term, U64Term, context);
20793        let u64_token_built = U64Token {
20794            u64_term: (&u64_term)
20795                .try_into()
20796                .map_err(parol_runtime::ParolError::UserError)?,
20797            comments: Box::new(comments),
20798        };
20799        // Calling user action here
20800        self.user_grammar.u64_token(&u64_token_built)?;
20801        self.push(ASTType::U64Token(u64_token_built), context);
20802        Ok(())
20803    }
20804
20805    /// Semantic action for production 269:
20806    ///
20807    /// `UnionToken: UnionTerm : Token Comments;`
20808    ///
20809    #[parol_runtime::function_name::named]
20810    fn union_token(
20811        &mut self,
20812        _union_term: &ParseTreeType<'t>,
20813        _comments: &ParseTreeType<'t>,
20814    ) -> Result<()> {
20815        let context = function_name!();
20816        trace!("{}", self.trace_item_stack(context));
20817        let comments = pop_item!(self, comments, Comments, context);
20818        let union_term = pop_item!(self, union_term, UnionTerm, context);
20819        let union_token_built = UnionToken {
20820            union_term: (&union_term)
20821                .try_into()
20822                .map_err(parol_runtime::ParolError::UserError)?,
20823            comments: Box::new(comments),
20824        };
20825        // Calling user action here
20826        self.user_grammar.union_token(&union_token_built)?;
20827        self.push(ASTType::UnionToken(union_token_built), context);
20828        Ok(())
20829    }
20830
20831    /// Semantic action for production 270:
20832    ///
20833    /// `UnsafeToken: UnsafeTerm : Token Comments;`
20834    ///
20835    #[parol_runtime::function_name::named]
20836    fn unsafe_token(
20837        &mut self,
20838        _unsafe_term: &ParseTreeType<'t>,
20839        _comments: &ParseTreeType<'t>,
20840    ) -> Result<()> {
20841        let context = function_name!();
20842        trace!("{}", self.trace_item_stack(context));
20843        let comments = pop_item!(self, comments, Comments, context);
20844        let unsafe_term = pop_item!(self, unsafe_term, UnsafeTerm, context);
20845        let unsafe_token_built = UnsafeToken {
20846            unsafe_term: (&unsafe_term)
20847                .try_into()
20848                .map_err(parol_runtime::ParolError::UserError)?,
20849            comments: Box::new(comments),
20850        };
20851        // Calling user action here
20852        self.user_grammar.unsafe_token(&unsafe_token_built)?;
20853        self.push(ASTType::UnsafeToken(unsafe_token_built), context);
20854        Ok(())
20855    }
20856
20857    /// Semantic action for production 271:
20858    ///
20859    /// `VarToken: VarTerm : Token Comments;`
20860    ///
20861    #[parol_runtime::function_name::named]
20862    fn var_token(
20863        &mut self,
20864        _var_term: &ParseTreeType<'t>,
20865        _comments: &ParseTreeType<'t>,
20866    ) -> Result<()> {
20867        let context = function_name!();
20868        trace!("{}", self.trace_item_stack(context));
20869        let comments = pop_item!(self, comments, Comments, context);
20870        let var_term = pop_item!(self, var_term, VarTerm, context);
20871        let var_token_built = VarToken {
20872            var_term: (&var_term)
20873                .try_into()
20874                .map_err(parol_runtime::ParolError::UserError)?,
20875            comments: Box::new(comments),
20876        };
20877        // Calling user action here
20878        self.user_grammar.var_token(&var_token_built)?;
20879        self.push(ASTType::VarToken(var_token_built), context);
20880        Ok(())
20881    }
20882
20883    /// Semantic action for production 272:
20884    ///
20885    /// `DollarIdentifierToken: DollarIdentifierTerm : Token Comments;`
20886    ///
20887    #[parol_runtime::function_name::named]
20888    fn dollar_identifier_token(
20889        &mut self,
20890        _dollar_identifier_term: &ParseTreeType<'t>,
20891        _comments: &ParseTreeType<'t>,
20892    ) -> Result<()> {
20893        let context = function_name!();
20894        trace!("{}", self.trace_item_stack(context));
20895        let comments = pop_item!(self, comments, Comments, context);
20896        let dollar_identifier_term =
20897            pop_item!(self, dollar_identifier_term, DollarIdentifierTerm, context);
20898        let dollar_identifier_token_built = DollarIdentifierToken {
20899            dollar_identifier_term: (&dollar_identifier_term)
20900                .try_into()
20901                .map_err(parol_runtime::ParolError::UserError)?,
20902            comments: Box::new(comments),
20903        };
20904        // Calling user action here
20905        self.user_grammar
20906            .dollar_identifier_token(&dollar_identifier_token_built)?;
20907        self.push(
20908            ASTType::DollarIdentifierToken(dollar_identifier_token_built),
20909            context,
20910        );
20911        Ok(())
20912    }
20913
20914    /// Semantic action for production 273:
20915    ///
20916    /// `IdentifierToken: IdentifierTerm : Token Comments;`
20917    ///
20918    #[parol_runtime::function_name::named]
20919    fn identifier_token(
20920        &mut self,
20921        _identifier_term: &ParseTreeType<'t>,
20922        _comments: &ParseTreeType<'t>,
20923    ) -> Result<()> {
20924        let context = function_name!();
20925        trace!("{}", self.trace_item_stack(context));
20926        let comments = pop_item!(self, comments, Comments, context);
20927        let identifier_term = pop_item!(self, identifier_term, IdentifierTerm, context);
20928        let identifier_token_built = IdentifierToken {
20929            identifier_term: (&identifier_term)
20930                .try_into()
20931                .map_err(parol_runtime::ParolError::UserError)?,
20932            comments: Box::new(comments),
20933        };
20934        // Calling user action here
20935        self.user_grammar
20936            .identifier_token(&identifier_token_built)?;
20937        self.push(ASTType::IdentifierToken(identifier_token_built), context);
20938        Ok(())
20939    }
20940
20941    /// Semantic action for production 274:
20942    ///
20943    /// `AnyToken: AnyTerm : Token;`
20944    ///
20945    #[parol_runtime::function_name::named]
20946    fn any_token(&mut self, _any_term: &ParseTreeType<'t>) -> Result<()> {
20947        let context = function_name!();
20948        trace!("{}", self.trace_item_stack(context));
20949        let any_term = pop_item!(self, any_term, AnyTerm, context);
20950        let any_token_built = AnyToken {
20951            any_term: (&any_term)
20952                .try_into()
20953                .map_err(parol_runtime::ParolError::UserError)?,
20954        };
20955        // Calling user action here
20956        self.user_grammar.any_token(&any_token_built)?;
20957        self.push(ASTType::AnyToken(any_token_built), context);
20958        Ok(())
20959    }
20960
20961    /// Semantic action for production 275:
20962    ///
20963    /// `Start: StartToken : VerylToken;`
20964    ///
20965    #[parol_runtime::function_name::named]
20966    fn start(&mut self, _start_token: &ParseTreeType<'t>) -> Result<()> {
20967        let context = function_name!();
20968        trace!("{}", self.trace_item_stack(context));
20969        let start_token = pop_item!(self, start_token, StartToken, context);
20970        let start_built = Start {
20971            start_token: (&start_token)
20972                .try_into()
20973                .map_err(parol_runtime::ParolError::UserError)?,
20974        };
20975        // Calling user action here
20976        self.user_grammar.start(&start_built)?;
20977        self.push(ASTType::Start(start_built), context);
20978        Ok(())
20979    }
20980
20981    /// Semantic action for production 276:
20982    ///
20983    /// `StringLiteral: StringLiteralToken : VerylToken;`
20984    ///
20985    #[parol_runtime::function_name::named]
20986    fn string_literal(&mut self, _string_literal_token: &ParseTreeType<'t>) -> Result<()> {
20987        let context = function_name!();
20988        trace!("{}", self.trace_item_stack(context));
20989        let string_literal_token =
20990            pop_item!(self, string_literal_token, StringLiteralToken, context);
20991        let string_literal_built = StringLiteral {
20992            string_literal_token: (&string_literal_token)
20993                .try_into()
20994                .map_err(parol_runtime::ParolError::UserError)?,
20995        };
20996        // Calling user action here
20997        self.user_grammar.string_literal(&string_literal_built)?;
20998        self.push(ASTType::StringLiteral(string_literal_built), context);
20999        Ok(())
21000    }
21001
21002    /// Semantic action for production 277:
21003    ///
21004    /// `Exponent: ExponentToken : VerylToken;`
21005    ///
21006    #[parol_runtime::function_name::named]
21007    fn exponent(&mut self, _exponent_token: &ParseTreeType<'t>) -> Result<()> {
21008        let context = function_name!();
21009        trace!("{}", self.trace_item_stack(context));
21010        let exponent_token = pop_item!(self, exponent_token, ExponentToken, context);
21011        let exponent_built = Exponent {
21012            exponent_token: (&exponent_token)
21013                .try_into()
21014                .map_err(parol_runtime::ParolError::UserError)?,
21015        };
21016        // Calling user action here
21017        self.user_grammar.exponent(&exponent_built)?;
21018        self.push(ASTType::Exponent(exponent_built), context);
21019        Ok(())
21020    }
21021
21022    /// Semantic action for production 278:
21023    ///
21024    /// `FixedPoint: FixedPointToken : VerylToken;`
21025    ///
21026    #[parol_runtime::function_name::named]
21027    fn fixed_point(&mut self, _fixed_point_token: &ParseTreeType<'t>) -> Result<()> {
21028        let context = function_name!();
21029        trace!("{}", self.trace_item_stack(context));
21030        let fixed_point_token = pop_item!(self, fixed_point_token, FixedPointToken, context);
21031        let fixed_point_built = FixedPoint {
21032            fixed_point_token: (&fixed_point_token)
21033                .try_into()
21034                .map_err(parol_runtime::ParolError::UserError)?,
21035        };
21036        // Calling user action here
21037        self.user_grammar.fixed_point(&fixed_point_built)?;
21038        self.push(ASTType::FixedPoint(fixed_point_built), context);
21039        Ok(())
21040    }
21041
21042    /// Semantic action for production 279:
21043    ///
21044    /// `Based: BasedToken : VerylToken;`
21045    ///
21046    #[parol_runtime::function_name::named]
21047    fn based(&mut self, _based_token: &ParseTreeType<'t>) -> Result<()> {
21048        let context = function_name!();
21049        trace!("{}", self.trace_item_stack(context));
21050        let based_token = pop_item!(self, based_token, BasedToken, context);
21051        let based_built = Based {
21052            based_token: (&based_token)
21053                .try_into()
21054                .map_err(parol_runtime::ParolError::UserError)?,
21055        };
21056        // Calling user action here
21057        self.user_grammar.based(&based_built)?;
21058        self.push(ASTType::Based(based_built), context);
21059        Ok(())
21060    }
21061
21062    /// Semantic action for production 280:
21063    ///
21064    /// `BaseLess: BaseLessToken : VerylToken;`
21065    ///
21066    #[parol_runtime::function_name::named]
21067    fn base_less(&mut self, _base_less_token: &ParseTreeType<'t>) -> Result<()> {
21068        let context = function_name!();
21069        trace!("{}", self.trace_item_stack(context));
21070        let base_less_token = pop_item!(self, base_less_token, BaseLessToken, context);
21071        let base_less_built = BaseLess {
21072            base_less_token: (&base_less_token)
21073                .try_into()
21074                .map_err(parol_runtime::ParolError::UserError)?,
21075        };
21076        // Calling user action here
21077        self.user_grammar.base_less(&base_less_built)?;
21078        self.push(ASTType::BaseLess(base_less_built), context);
21079        Ok(())
21080    }
21081
21082    /// Semantic action for production 281:
21083    ///
21084    /// `AllBit: AllBitToken : VerylToken;`
21085    ///
21086    #[parol_runtime::function_name::named]
21087    fn all_bit(&mut self, _all_bit_token: &ParseTreeType<'t>) -> Result<()> {
21088        let context = function_name!();
21089        trace!("{}", self.trace_item_stack(context));
21090        let all_bit_token = pop_item!(self, all_bit_token, AllBitToken, context);
21091        let all_bit_built = AllBit {
21092            all_bit_token: (&all_bit_token)
21093                .try_into()
21094                .map_err(parol_runtime::ParolError::UserError)?,
21095        };
21096        // Calling user action here
21097        self.user_grammar.all_bit(&all_bit_built)?;
21098        self.push(ASTType::AllBit(all_bit_built), context);
21099        Ok(())
21100    }
21101
21102    /// Semantic action for production 282:
21103    ///
21104    /// `AssignmentOperator: AssignmentOperatorToken : VerylToken;`
21105    ///
21106    #[parol_runtime::function_name::named]
21107    fn assignment_operator(
21108        &mut self,
21109        _assignment_operator_token: &ParseTreeType<'t>,
21110    ) -> Result<()> {
21111        let context = function_name!();
21112        trace!("{}", self.trace_item_stack(context));
21113        let assignment_operator_token = pop_item!(
21114            self,
21115            assignment_operator_token,
21116            AssignmentOperatorToken,
21117            context
21118        );
21119        let assignment_operator_built = AssignmentOperator {
21120            assignment_operator_token: (&assignment_operator_token)
21121                .try_into()
21122                .map_err(parol_runtime::ParolError::UserError)?,
21123        };
21124        // Calling user action here
21125        self.user_grammar
21126            .assignment_operator(&assignment_operator_built)?;
21127        self.push(
21128            ASTType::AssignmentOperator(assignment_operator_built),
21129            context,
21130        );
21131        Ok(())
21132    }
21133
21134    /// Semantic action for production 283:
21135    ///
21136    /// `DiamondOperator: DiamondOperatorToken : VerylToken;`
21137    ///
21138    #[parol_runtime::function_name::named]
21139    fn diamond_operator(&mut self, _diamond_operator_token: &ParseTreeType<'t>) -> Result<()> {
21140        let context = function_name!();
21141        trace!("{}", self.trace_item_stack(context));
21142        let diamond_operator_token =
21143            pop_item!(self, diamond_operator_token, DiamondOperatorToken, context);
21144        let diamond_operator_built = DiamondOperator {
21145            diamond_operator_token: (&diamond_operator_token)
21146                .try_into()
21147                .map_err(parol_runtime::ParolError::UserError)?,
21148        };
21149        // Calling user action here
21150        self.user_grammar
21151            .diamond_operator(&diamond_operator_built)?;
21152        self.push(ASTType::DiamondOperator(diamond_operator_built), context);
21153        Ok(())
21154    }
21155
21156    /// Semantic action for production 284:
21157    ///
21158    /// `Operator01: Operator01Token : VerylToken;`
21159    ///
21160    #[parol_runtime::function_name::named]
21161    fn operator01(&mut self, _operator01_token: &ParseTreeType<'t>) -> Result<()> {
21162        let context = function_name!();
21163        trace!("{}", self.trace_item_stack(context));
21164        let operator01_token = pop_item!(self, operator01_token, Operator01Token, context);
21165        let operator01_built = Operator01 {
21166            operator01_token: (&operator01_token)
21167                .try_into()
21168                .map_err(parol_runtime::ParolError::UserError)?,
21169        };
21170        // Calling user action here
21171        self.user_grammar.operator01(&operator01_built)?;
21172        self.push(ASTType::Operator01(operator01_built), context);
21173        Ok(())
21174    }
21175
21176    /// Semantic action for production 285:
21177    ///
21178    /// `Operator02: Operator02Token : VerylToken;`
21179    ///
21180    #[parol_runtime::function_name::named]
21181    fn operator02(&mut self, _operator02_token: &ParseTreeType<'t>) -> Result<()> {
21182        let context = function_name!();
21183        trace!("{}", self.trace_item_stack(context));
21184        let operator02_token = pop_item!(self, operator02_token, Operator02Token, context);
21185        let operator02_built = Operator02 {
21186            operator02_token: (&operator02_token)
21187                .try_into()
21188                .map_err(parol_runtime::ParolError::UserError)?,
21189        };
21190        // Calling user action here
21191        self.user_grammar.operator02(&operator02_built)?;
21192        self.push(ASTType::Operator02(operator02_built), context);
21193        Ok(())
21194    }
21195
21196    /// Semantic action for production 286:
21197    ///
21198    /// `Operator03: Operator03Token : VerylToken;`
21199    ///
21200    #[parol_runtime::function_name::named]
21201    fn operator03(&mut self, _operator03_token: &ParseTreeType<'t>) -> Result<()> {
21202        let context = function_name!();
21203        trace!("{}", self.trace_item_stack(context));
21204        let operator03_token = pop_item!(self, operator03_token, Operator03Token, context);
21205        let operator03_built = Operator03 {
21206            operator03_token: (&operator03_token)
21207                .try_into()
21208                .map_err(parol_runtime::ParolError::UserError)?,
21209        };
21210        // Calling user action here
21211        self.user_grammar.operator03(&operator03_built)?;
21212        self.push(ASTType::Operator03(operator03_built), context);
21213        Ok(())
21214    }
21215
21216    /// Semantic action for production 287:
21217    ///
21218    /// `Operator04: Operator04Token : VerylToken;`
21219    ///
21220    #[parol_runtime::function_name::named]
21221    fn operator04(&mut self, _operator04_token: &ParseTreeType<'t>) -> Result<()> {
21222        let context = function_name!();
21223        trace!("{}", self.trace_item_stack(context));
21224        let operator04_token = pop_item!(self, operator04_token, Operator04Token, context);
21225        let operator04_built = Operator04 {
21226            operator04_token: (&operator04_token)
21227                .try_into()
21228                .map_err(parol_runtime::ParolError::UserError)?,
21229        };
21230        // Calling user action here
21231        self.user_grammar.operator04(&operator04_built)?;
21232        self.push(ASTType::Operator04(operator04_built), context);
21233        Ok(())
21234    }
21235
21236    /// Semantic action for production 288:
21237    ///
21238    /// `Operator05: Operator05Token : VerylToken;`
21239    ///
21240    #[parol_runtime::function_name::named]
21241    fn operator05(&mut self, _operator05_token: &ParseTreeType<'t>) -> Result<()> {
21242        let context = function_name!();
21243        trace!("{}", self.trace_item_stack(context));
21244        let operator05_token = pop_item!(self, operator05_token, Operator05Token, context);
21245        let operator05_built = Operator05 {
21246            operator05_token: (&operator05_token)
21247                .try_into()
21248                .map_err(parol_runtime::ParolError::UserError)?,
21249        };
21250        // Calling user action here
21251        self.user_grammar.operator05(&operator05_built)?;
21252        self.push(ASTType::Operator05(operator05_built), context);
21253        Ok(())
21254    }
21255
21256    /// Semantic action for production 289:
21257    ///
21258    /// `Operator06: Operator06Token : VerylToken;`
21259    ///
21260    #[parol_runtime::function_name::named]
21261    fn operator06(&mut self, _operator06_token: &ParseTreeType<'t>) -> Result<()> {
21262        let context = function_name!();
21263        trace!("{}", self.trace_item_stack(context));
21264        let operator06_token = pop_item!(self, operator06_token, Operator06Token, context);
21265        let operator06_built = Operator06 {
21266            operator06_token: (&operator06_token)
21267                .try_into()
21268                .map_err(parol_runtime::ParolError::UserError)?,
21269        };
21270        // Calling user action here
21271        self.user_grammar.operator06(&operator06_built)?;
21272        self.push(ASTType::Operator06(operator06_built), context);
21273        Ok(())
21274    }
21275
21276    /// Semantic action for production 290:
21277    ///
21278    /// `Operator07: Operator07Token : VerylToken;`
21279    ///
21280    #[parol_runtime::function_name::named]
21281    fn operator07(&mut self, _operator07_token: &ParseTreeType<'t>) -> Result<()> {
21282        let context = function_name!();
21283        trace!("{}", self.trace_item_stack(context));
21284        let operator07_token = pop_item!(self, operator07_token, Operator07Token, context);
21285        let operator07_built = Operator07 {
21286            operator07_token: (&operator07_token)
21287                .try_into()
21288                .map_err(parol_runtime::ParolError::UserError)?,
21289        };
21290        // Calling user action here
21291        self.user_grammar.operator07(&operator07_built)?;
21292        self.push(ASTType::Operator07(operator07_built), context);
21293        Ok(())
21294    }
21295
21296    /// Semantic action for production 291:
21297    ///
21298    /// `Operator08: Operator08Token : VerylToken;`
21299    ///
21300    #[parol_runtime::function_name::named]
21301    fn operator08(&mut self, _operator08_token: &ParseTreeType<'t>) -> Result<()> {
21302        let context = function_name!();
21303        trace!("{}", self.trace_item_stack(context));
21304        let operator08_token = pop_item!(self, operator08_token, Operator08Token, context);
21305        let operator08_built = Operator08 {
21306            operator08_token: (&operator08_token)
21307                .try_into()
21308                .map_err(parol_runtime::ParolError::UserError)?,
21309        };
21310        // Calling user action here
21311        self.user_grammar.operator08(&operator08_built)?;
21312        self.push(ASTType::Operator08(operator08_built), context);
21313        Ok(())
21314    }
21315
21316    /// Semantic action for production 292:
21317    ///
21318    /// `UnaryOperator: UnaryOperatorToken : VerylToken;`
21319    ///
21320    #[parol_runtime::function_name::named]
21321    fn unary_operator(&mut self, _unary_operator_token: &ParseTreeType<'t>) -> Result<()> {
21322        let context = function_name!();
21323        trace!("{}", self.trace_item_stack(context));
21324        let unary_operator_token =
21325            pop_item!(self, unary_operator_token, UnaryOperatorToken, context);
21326        let unary_operator_built = UnaryOperator {
21327            unary_operator_token: (&unary_operator_token)
21328                .try_into()
21329                .map_err(parol_runtime::ParolError::UserError)?,
21330        };
21331        // Calling user action here
21332        self.user_grammar.unary_operator(&unary_operator_built)?;
21333        self.push(ASTType::UnaryOperator(unary_operator_built), context);
21334        Ok(())
21335    }
21336
21337    /// Semantic action for production 293:
21338    ///
21339    /// `Colon: ColonToken : VerylToken;`
21340    ///
21341    #[parol_runtime::function_name::named]
21342    fn colon(&mut self, _colon_token: &ParseTreeType<'t>) -> Result<()> {
21343        let context = function_name!();
21344        trace!("{}", self.trace_item_stack(context));
21345        let colon_token = pop_item!(self, colon_token, ColonToken, context);
21346        let colon_built = Colon {
21347            colon_token: (&colon_token)
21348                .try_into()
21349                .map_err(parol_runtime::ParolError::UserError)?,
21350        };
21351        // Calling user action here
21352        self.user_grammar.colon(&colon_built)?;
21353        self.push(ASTType::Colon(colon_built), context);
21354        Ok(())
21355    }
21356
21357    /// Semantic action for production 294:
21358    ///
21359    /// `ColonColonLAngle: ColonColonLAngleToken : VerylToken;`
21360    ///
21361    #[parol_runtime::function_name::named]
21362    fn colon_colon_l_angle(
21363        &mut self,
21364        _colon_colon_l_angle_token: &ParseTreeType<'t>,
21365    ) -> Result<()> {
21366        let context = function_name!();
21367        trace!("{}", self.trace_item_stack(context));
21368        let colon_colon_l_angle_token = pop_item!(
21369            self,
21370            colon_colon_l_angle_token,
21371            ColonColonLAngleToken,
21372            context
21373        );
21374        let colon_colon_l_angle_built = ColonColonLAngle {
21375            colon_colon_l_angle_token: (&colon_colon_l_angle_token)
21376                .try_into()
21377                .map_err(parol_runtime::ParolError::UserError)?,
21378        };
21379        // Calling user action here
21380        self.user_grammar
21381            .colon_colon_l_angle(&colon_colon_l_angle_built)?;
21382        self.push(
21383            ASTType::ColonColonLAngle(colon_colon_l_angle_built),
21384            context,
21385        );
21386        Ok(())
21387    }
21388
21389    /// Semantic action for production 295:
21390    ///
21391    /// `ColonColon: ColonColonToken : VerylToken;`
21392    ///
21393    #[parol_runtime::function_name::named]
21394    fn colon_colon(&mut self, _colon_colon_token: &ParseTreeType<'t>) -> Result<()> {
21395        let context = function_name!();
21396        trace!("{}", self.trace_item_stack(context));
21397        let colon_colon_token = pop_item!(self, colon_colon_token, ColonColonToken, context);
21398        let colon_colon_built = ColonColon {
21399            colon_colon_token: (&colon_colon_token)
21400                .try_into()
21401                .map_err(parol_runtime::ParolError::UserError)?,
21402        };
21403        // Calling user action here
21404        self.user_grammar.colon_colon(&colon_colon_built)?;
21405        self.push(ASTType::ColonColon(colon_colon_built), context);
21406        Ok(())
21407    }
21408
21409    /// Semantic action for production 296:
21410    ///
21411    /// `Comma: CommaToken : VerylToken;`
21412    ///
21413    #[parol_runtime::function_name::named]
21414    fn comma(&mut self, _comma_token: &ParseTreeType<'t>) -> Result<()> {
21415        let context = function_name!();
21416        trace!("{}", self.trace_item_stack(context));
21417        let comma_token = pop_item!(self, comma_token, CommaToken, context);
21418        let comma_built = Comma {
21419            comma_token: (&comma_token)
21420                .try_into()
21421                .map_err(parol_runtime::ParolError::UserError)?,
21422        };
21423        // Calling user action here
21424        self.user_grammar.comma(&comma_built)?;
21425        self.push(ASTType::Comma(comma_built), context);
21426        Ok(())
21427    }
21428
21429    /// Semantic action for production 297:
21430    ///
21431    /// `DotDot: DotDotToken : VerylToken;`
21432    ///
21433    #[parol_runtime::function_name::named]
21434    fn dot_dot(&mut self, _dot_dot_token: &ParseTreeType<'t>) -> Result<()> {
21435        let context = function_name!();
21436        trace!("{}", self.trace_item_stack(context));
21437        let dot_dot_token = pop_item!(self, dot_dot_token, DotDotToken, context);
21438        let dot_dot_built = DotDot {
21439            dot_dot_token: (&dot_dot_token)
21440                .try_into()
21441                .map_err(parol_runtime::ParolError::UserError)?,
21442        };
21443        // Calling user action here
21444        self.user_grammar.dot_dot(&dot_dot_built)?;
21445        self.push(ASTType::DotDot(dot_dot_built), context);
21446        Ok(())
21447    }
21448
21449    /// Semantic action for production 298:
21450    ///
21451    /// `DotDotEqu: DotDotEquToken : VerylToken;`
21452    ///
21453    #[parol_runtime::function_name::named]
21454    fn dot_dot_equ(&mut self, _dot_dot_equ_token: &ParseTreeType<'t>) -> Result<()> {
21455        let context = function_name!();
21456        trace!("{}", self.trace_item_stack(context));
21457        let dot_dot_equ_token = pop_item!(self, dot_dot_equ_token, DotDotEquToken, context);
21458        let dot_dot_equ_built = DotDotEqu {
21459            dot_dot_equ_token: (&dot_dot_equ_token)
21460                .try_into()
21461                .map_err(parol_runtime::ParolError::UserError)?,
21462        };
21463        // Calling user action here
21464        self.user_grammar.dot_dot_equ(&dot_dot_equ_built)?;
21465        self.push(ASTType::DotDotEqu(dot_dot_equ_built), context);
21466        Ok(())
21467    }
21468
21469    /// Semantic action for production 299:
21470    ///
21471    /// `Dot: DotToken : VerylToken;`
21472    ///
21473    #[parol_runtime::function_name::named]
21474    fn dot(&mut self, _dot_token: &ParseTreeType<'t>) -> Result<()> {
21475        let context = function_name!();
21476        trace!("{}", self.trace_item_stack(context));
21477        let dot_token = pop_item!(self, dot_token, DotToken, context);
21478        let dot_built = Dot {
21479            dot_token: (&dot_token)
21480                .try_into()
21481                .map_err(parol_runtime::ParolError::UserError)?,
21482        };
21483        // Calling user action here
21484        self.user_grammar.dot(&dot_built)?;
21485        self.push(ASTType::Dot(dot_built), context);
21486        Ok(())
21487    }
21488
21489    /// Semantic action for production 300:
21490    ///
21491    /// `Equ: EquToken : VerylToken;`
21492    ///
21493    #[parol_runtime::function_name::named]
21494    fn equ(&mut self, _equ_token: &ParseTreeType<'t>) -> Result<()> {
21495        let context = function_name!();
21496        trace!("{}", self.trace_item_stack(context));
21497        let equ_token = pop_item!(self, equ_token, EquToken, context);
21498        let equ_built = Equ {
21499            equ_token: (&equ_token)
21500                .try_into()
21501                .map_err(parol_runtime::ParolError::UserError)?,
21502        };
21503        // Calling user action here
21504        self.user_grammar.equ(&equ_built)?;
21505        self.push(ASTType::Equ(equ_built), context);
21506        Ok(())
21507    }
21508
21509    /// Semantic action for production 301:
21510    ///
21511    /// `HashLBracket: HashLBracketToken : VerylToken;`
21512    ///
21513    #[parol_runtime::function_name::named]
21514    fn hash_l_bracket(&mut self, _hash_l_bracket_token: &ParseTreeType<'t>) -> Result<()> {
21515        let context = function_name!();
21516        trace!("{}", self.trace_item_stack(context));
21517        let hash_l_bracket_token =
21518            pop_item!(self, hash_l_bracket_token, HashLBracketToken, context);
21519        let hash_l_bracket_built = HashLBracket {
21520            hash_l_bracket_token: (&hash_l_bracket_token)
21521                .try_into()
21522                .map_err(parol_runtime::ParolError::UserError)?,
21523        };
21524        // Calling user action here
21525        self.user_grammar.hash_l_bracket(&hash_l_bracket_built)?;
21526        self.push(ASTType::HashLBracket(hash_l_bracket_built), context);
21527        Ok(())
21528    }
21529
21530    /// Semantic action for production 302:
21531    ///
21532    /// `Hash: HashToken : VerylToken;`
21533    ///
21534    #[parol_runtime::function_name::named]
21535    fn hash(&mut self, _hash_token: &ParseTreeType<'t>) -> Result<()> {
21536        let context = function_name!();
21537        trace!("{}", self.trace_item_stack(context));
21538        let hash_token = pop_item!(self, hash_token, HashToken, context);
21539        let hash_built = Hash {
21540            hash_token: (&hash_token)
21541                .try_into()
21542                .map_err(parol_runtime::ParolError::UserError)?,
21543        };
21544        // Calling user action here
21545        self.user_grammar.hash(&hash_built)?;
21546        self.push(ASTType::Hash(hash_built), context);
21547        Ok(())
21548    }
21549
21550    /// Semantic action for production 303:
21551    ///
21552    /// `Question: QuestionToken : VerylToken;`
21553    ///
21554    #[parol_runtime::function_name::named]
21555    fn question(&mut self, _question_token: &ParseTreeType<'t>) -> Result<()> {
21556        let context = function_name!();
21557        trace!("{}", self.trace_item_stack(context));
21558        let question_token = pop_item!(self, question_token, QuestionToken, context);
21559        let question_built = Question {
21560            question_token: (&question_token)
21561                .try_into()
21562                .map_err(parol_runtime::ParolError::UserError)?,
21563        };
21564        // Calling user action here
21565        self.user_grammar.question(&question_built)?;
21566        self.push(ASTType::Question(question_built), context);
21567        Ok(())
21568    }
21569
21570    /// Semantic action for production 304:
21571    ///
21572    /// `QuoteLBrace: QuoteLBraceToken : VerylToken;`
21573    ///
21574    #[parol_runtime::function_name::named]
21575    fn quote_l_brace(&mut self, _quote_l_brace_token: &ParseTreeType<'t>) -> Result<()> {
21576        let context = function_name!();
21577        trace!("{}", self.trace_item_stack(context));
21578        let quote_l_brace_token = pop_item!(self, quote_l_brace_token, QuoteLBraceToken, context);
21579        let quote_l_brace_built = QuoteLBrace {
21580            quote_l_brace_token: (&quote_l_brace_token)
21581                .try_into()
21582                .map_err(parol_runtime::ParolError::UserError)?,
21583        };
21584        // Calling user action here
21585        self.user_grammar.quote_l_brace(&quote_l_brace_built)?;
21586        self.push(ASTType::QuoteLBrace(quote_l_brace_built), context);
21587        Ok(())
21588    }
21589
21590    /// Semantic action for production 305:
21591    ///
21592    /// `Quote: QuoteToken : VerylToken;`
21593    ///
21594    #[parol_runtime::function_name::named]
21595    fn quote(&mut self, _quote_token: &ParseTreeType<'t>) -> Result<()> {
21596        let context = function_name!();
21597        trace!("{}", self.trace_item_stack(context));
21598        let quote_token = pop_item!(self, quote_token, QuoteToken, context);
21599        let quote_built = Quote {
21600            quote_token: (&quote_token)
21601                .try_into()
21602                .map_err(parol_runtime::ParolError::UserError)?,
21603        };
21604        // Calling user action here
21605        self.user_grammar.quote(&quote_built)?;
21606        self.push(ASTType::Quote(quote_built), context);
21607        Ok(())
21608    }
21609
21610    /// Semantic action for production 306:
21611    ///
21612    /// `LAngle: LAngleToken : VerylToken;`
21613    ///
21614    #[parol_runtime::function_name::named]
21615    fn l_angle(&mut self, _l_angle_token: &ParseTreeType<'t>) -> Result<()> {
21616        let context = function_name!();
21617        trace!("{}", self.trace_item_stack(context));
21618        let l_angle_token = pop_item!(self, l_angle_token, LAngleToken, context);
21619        let l_angle_built = LAngle {
21620            l_angle_token: (&l_angle_token)
21621                .try_into()
21622                .map_err(parol_runtime::ParolError::UserError)?,
21623        };
21624        // Calling user action here
21625        self.user_grammar.l_angle(&l_angle_built)?;
21626        self.push(ASTType::LAngle(l_angle_built), context);
21627        Ok(())
21628    }
21629
21630    /// Semantic action for production 307:
21631    ///
21632    /// `EmbedLBrace: EmbedLBraceToken : VerylToken;`
21633    ///
21634    #[parol_runtime::function_name::named]
21635    fn embed_l_brace(&mut self, _embed_l_brace_token: &ParseTreeType<'t>) -> Result<()> {
21636        let context = function_name!();
21637        trace!("{}", self.trace_item_stack(context));
21638        let embed_l_brace_token = pop_item!(self, embed_l_brace_token, EmbedLBraceToken, context);
21639        let embed_l_brace_built = EmbedLBrace {
21640            embed_l_brace_token: (&embed_l_brace_token)
21641                .try_into()
21642                .map_err(parol_runtime::ParolError::UserError)?,
21643        };
21644        // Calling user action here
21645        self.user_grammar.embed_l_brace(&embed_l_brace_built)?;
21646        self.push(ASTType::EmbedLBrace(embed_l_brace_built), context);
21647        Ok(())
21648    }
21649
21650    /// Semantic action for production 308:
21651    ///
21652    /// `EscapedLBrace: EscapedLBraceToken : VerylToken;`
21653    ///
21654    #[parol_runtime::function_name::named]
21655    fn escaped_l_brace(&mut self, _escaped_l_brace_token: &ParseTreeType<'t>) -> Result<()> {
21656        let context = function_name!();
21657        trace!("{}", self.trace_item_stack(context));
21658        let escaped_l_brace_token =
21659            pop_item!(self, escaped_l_brace_token, EscapedLBraceToken, context);
21660        let escaped_l_brace_built = EscapedLBrace {
21661            escaped_l_brace_token: (&escaped_l_brace_token)
21662                .try_into()
21663                .map_err(parol_runtime::ParolError::UserError)?,
21664        };
21665        // Calling user action here
21666        self.user_grammar.escaped_l_brace(&escaped_l_brace_built)?;
21667        self.push(ASTType::EscapedLBrace(escaped_l_brace_built), context);
21668        Ok(())
21669    }
21670
21671    /// Semantic action for production 309:
21672    ///
21673    /// `TripleLBrace: TripleLBraceToken : VerylToken;`
21674    ///
21675    #[parol_runtime::function_name::named]
21676    fn triple_l_brace(&mut self, _triple_l_brace_token: &ParseTreeType<'t>) -> Result<()> {
21677        let context = function_name!();
21678        trace!("{}", self.trace_item_stack(context));
21679        let triple_l_brace_token =
21680            pop_item!(self, triple_l_brace_token, TripleLBraceToken, context);
21681        let triple_l_brace_built = TripleLBrace {
21682            triple_l_brace_token: (&triple_l_brace_token)
21683                .try_into()
21684                .map_err(parol_runtime::ParolError::UserError)?,
21685        };
21686        // Calling user action here
21687        self.user_grammar.triple_l_brace(&triple_l_brace_built)?;
21688        self.push(ASTType::TripleLBrace(triple_l_brace_built), context);
21689        Ok(())
21690    }
21691
21692    /// Semantic action for production 310:
21693    ///
21694    /// `LBrace: LBraceToken : VerylToken;`
21695    ///
21696    #[parol_runtime::function_name::named]
21697    fn l_brace(&mut self, _l_brace_token: &ParseTreeType<'t>) -> Result<()> {
21698        let context = function_name!();
21699        trace!("{}", self.trace_item_stack(context));
21700        let l_brace_token = pop_item!(self, l_brace_token, LBraceToken, context);
21701        let l_brace_built = LBrace {
21702            l_brace_token: (&l_brace_token)
21703                .try_into()
21704                .map_err(parol_runtime::ParolError::UserError)?,
21705        };
21706        // Calling user action here
21707        self.user_grammar.l_brace(&l_brace_built)?;
21708        self.push(ASTType::LBrace(l_brace_built), context);
21709        Ok(())
21710    }
21711
21712    /// Semantic action for production 311:
21713    ///
21714    /// `LBracket: LBracketToken : VerylToken;`
21715    ///
21716    #[parol_runtime::function_name::named]
21717    fn l_bracket(&mut self, _l_bracket_token: &ParseTreeType<'t>) -> Result<()> {
21718        let context = function_name!();
21719        trace!("{}", self.trace_item_stack(context));
21720        let l_bracket_token = pop_item!(self, l_bracket_token, LBracketToken, context);
21721        let l_bracket_built = LBracket {
21722            l_bracket_token: (&l_bracket_token)
21723                .try_into()
21724                .map_err(parol_runtime::ParolError::UserError)?,
21725        };
21726        // Calling user action here
21727        self.user_grammar.l_bracket(&l_bracket_built)?;
21728        self.push(ASTType::LBracket(l_bracket_built), context);
21729        Ok(())
21730    }
21731
21732    /// Semantic action for production 312:
21733    ///
21734    /// `LParen: LParenToken : VerylToken;`
21735    ///
21736    #[parol_runtime::function_name::named]
21737    fn l_paren(&mut self, _l_paren_token: &ParseTreeType<'t>) -> Result<()> {
21738        let context = function_name!();
21739        trace!("{}", self.trace_item_stack(context));
21740        let l_paren_token = pop_item!(self, l_paren_token, LParenToken, context);
21741        let l_paren_built = LParen {
21742            l_paren_token: (&l_paren_token)
21743                .try_into()
21744                .map_err(parol_runtime::ParolError::UserError)?,
21745        };
21746        // Calling user action here
21747        self.user_grammar.l_paren(&l_paren_built)?;
21748        self.push(ASTType::LParen(l_paren_built), context);
21749        Ok(())
21750    }
21751
21752    /// Semantic action for production 313:
21753    ///
21754    /// `LTMinus: LTMinusToken : VerylToken;`
21755    ///
21756    #[parol_runtime::function_name::named]
21757    fn l_t_minus(&mut self, _l_t_minus_token: &ParseTreeType<'t>) -> Result<()> {
21758        let context = function_name!();
21759        trace!("{}", self.trace_item_stack(context));
21760        let l_t_minus_token = pop_item!(self, l_t_minus_token, LTMinusToken, context);
21761        let l_t_minus_built = LTMinus {
21762            l_t_minus_token: (&l_t_minus_token)
21763                .try_into()
21764                .map_err(parol_runtime::ParolError::UserError)?,
21765        };
21766        // Calling user action here
21767        self.user_grammar.l_t_minus(&l_t_minus_built)?;
21768        self.push(ASTType::LTMinus(l_t_minus_built), context);
21769        Ok(())
21770    }
21771
21772    /// Semantic action for production 314:
21773    ///
21774    /// `MinusColon: MinusColonToken : VerylToken;`
21775    ///
21776    #[parol_runtime::function_name::named]
21777    fn minus_colon(&mut self, _minus_colon_token: &ParseTreeType<'t>) -> Result<()> {
21778        let context = function_name!();
21779        trace!("{}", self.trace_item_stack(context));
21780        let minus_colon_token = pop_item!(self, minus_colon_token, MinusColonToken, context);
21781        let minus_colon_built = MinusColon {
21782            minus_colon_token: (&minus_colon_token)
21783                .try_into()
21784                .map_err(parol_runtime::ParolError::UserError)?,
21785        };
21786        // Calling user action here
21787        self.user_grammar.minus_colon(&minus_colon_built)?;
21788        self.push(ASTType::MinusColon(minus_colon_built), context);
21789        Ok(())
21790    }
21791
21792    /// Semantic action for production 315:
21793    ///
21794    /// `MinusGT: MinusGTToken : VerylToken;`
21795    ///
21796    #[parol_runtime::function_name::named]
21797    fn minus_g_t(&mut self, _minus_g_t_token: &ParseTreeType<'t>) -> Result<()> {
21798        let context = function_name!();
21799        trace!("{}", self.trace_item_stack(context));
21800        let minus_g_t_token = pop_item!(self, minus_g_t_token, MinusGTToken, context);
21801        let minus_g_t_built = MinusGT {
21802            minus_g_t_token: (&minus_g_t_token)
21803                .try_into()
21804                .map_err(parol_runtime::ParolError::UserError)?,
21805        };
21806        // Calling user action here
21807        self.user_grammar.minus_g_t(&minus_g_t_built)?;
21808        self.push(ASTType::MinusGT(minus_g_t_built), context);
21809        Ok(())
21810    }
21811
21812    /// Semantic action for production 316:
21813    ///
21814    /// `PlusColon: PlusColonToken : VerylToken;`
21815    ///
21816    #[parol_runtime::function_name::named]
21817    fn plus_colon(&mut self, _plus_colon_token: &ParseTreeType<'t>) -> Result<()> {
21818        let context = function_name!();
21819        trace!("{}", self.trace_item_stack(context));
21820        let plus_colon_token = pop_item!(self, plus_colon_token, PlusColonToken, context);
21821        let plus_colon_built = PlusColon {
21822            plus_colon_token: (&plus_colon_token)
21823                .try_into()
21824                .map_err(parol_runtime::ParolError::UserError)?,
21825        };
21826        // Calling user action here
21827        self.user_grammar.plus_colon(&plus_colon_built)?;
21828        self.push(ASTType::PlusColon(plus_colon_built), context);
21829        Ok(())
21830    }
21831
21832    /// Semantic action for production 317:
21833    ///
21834    /// `RAngle: RAngleToken : VerylToken;`
21835    ///
21836    #[parol_runtime::function_name::named]
21837    fn r_angle(&mut self, _r_angle_token: &ParseTreeType<'t>) -> Result<()> {
21838        let context = function_name!();
21839        trace!("{}", self.trace_item_stack(context));
21840        let r_angle_token = pop_item!(self, r_angle_token, RAngleToken, context);
21841        let r_angle_built = RAngle {
21842            r_angle_token: (&r_angle_token)
21843                .try_into()
21844                .map_err(parol_runtime::ParolError::UserError)?,
21845        };
21846        // Calling user action here
21847        self.user_grammar.r_angle(&r_angle_built)?;
21848        self.push(ASTType::RAngle(r_angle_built), context);
21849        Ok(())
21850    }
21851
21852    /// Semantic action for production 318:
21853    ///
21854    /// `EmbedRBrace: EmbedRBraceToken : VerylToken;`
21855    ///
21856    #[parol_runtime::function_name::named]
21857    fn embed_r_brace(&mut self, _embed_r_brace_token: &ParseTreeType<'t>) -> Result<()> {
21858        let context = function_name!();
21859        trace!("{}", self.trace_item_stack(context));
21860        let embed_r_brace_token = pop_item!(self, embed_r_brace_token, EmbedRBraceToken, context);
21861        let embed_r_brace_built = EmbedRBrace {
21862            embed_r_brace_token: (&embed_r_brace_token)
21863                .try_into()
21864                .map_err(parol_runtime::ParolError::UserError)?,
21865        };
21866        // Calling user action here
21867        self.user_grammar.embed_r_brace(&embed_r_brace_built)?;
21868        self.push(ASTType::EmbedRBrace(embed_r_brace_built), context);
21869        Ok(())
21870    }
21871
21872    /// Semantic action for production 319:
21873    ///
21874    /// `EscapedRBrace: EscapedRBraceToken : VerylToken;`
21875    ///
21876    #[parol_runtime::function_name::named]
21877    fn escaped_r_brace(&mut self, _escaped_r_brace_token: &ParseTreeType<'t>) -> Result<()> {
21878        let context = function_name!();
21879        trace!("{}", self.trace_item_stack(context));
21880        let escaped_r_brace_token =
21881            pop_item!(self, escaped_r_brace_token, EscapedRBraceToken, context);
21882        let escaped_r_brace_built = EscapedRBrace {
21883            escaped_r_brace_token: (&escaped_r_brace_token)
21884                .try_into()
21885                .map_err(parol_runtime::ParolError::UserError)?,
21886        };
21887        // Calling user action here
21888        self.user_grammar.escaped_r_brace(&escaped_r_brace_built)?;
21889        self.push(ASTType::EscapedRBrace(escaped_r_brace_built), context);
21890        Ok(())
21891    }
21892
21893    /// Semantic action for production 320:
21894    ///
21895    /// `TripleRBrace: TripleRBraceToken : VerylToken;`
21896    ///
21897    #[parol_runtime::function_name::named]
21898    fn triple_r_brace(&mut self, _triple_r_brace_token: &ParseTreeType<'t>) -> Result<()> {
21899        let context = function_name!();
21900        trace!("{}", self.trace_item_stack(context));
21901        let triple_r_brace_token =
21902            pop_item!(self, triple_r_brace_token, TripleRBraceToken, context);
21903        let triple_r_brace_built = TripleRBrace {
21904            triple_r_brace_token: (&triple_r_brace_token)
21905                .try_into()
21906                .map_err(parol_runtime::ParolError::UserError)?,
21907        };
21908        // Calling user action here
21909        self.user_grammar.triple_r_brace(&triple_r_brace_built)?;
21910        self.push(ASTType::TripleRBrace(triple_r_brace_built), context);
21911        Ok(())
21912    }
21913
21914    /// Semantic action for production 321:
21915    ///
21916    /// `RBrace: RBraceToken : VerylToken;`
21917    ///
21918    #[parol_runtime::function_name::named]
21919    fn r_brace(&mut self, _r_brace_token: &ParseTreeType<'t>) -> Result<()> {
21920        let context = function_name!();
21921        trace!("{}", self.trace_item_stack(context));
21922        let r_brace_token = pop_item!(self, r_brace_token, RBraceToken, context);
21923        let r_brace_built = RBrace {
21924            r_brace_token: (&r_brace_token)
21925                .try_into()
21926                .map_err(parol_runtime::ParolError::UserError)?,
21927        };
21928        // Calling user action here
21929        self.user_grammar.r_brace(&r_brace_built)?;
21930        self.push(ASTType::RBrace(r_brace_built), context);
21931        Ok(())
21932    }
21933
21934    /// Semantic action for production 322:
21935    ///
21936    /// `RBracket: RBracketToken : VerylToken;`
21937    ///
21938    #[parol_runtime::function_name::named]
21939    fn r_bracket(&mut self, _r_bracket_token: &ParseTreeType<'t>) -> Result<()> {
21940        let context = function_name!();
21941        trace!("{}", self.trace_item_stack(context));
21942        let r_bracket_token = pop_item!(self, r_bracket_token, RBracketToken, context);
21943        let r_bracket_built = RBracket {
21944            r_bracket_token: (&r_bracket_token)
21945                .try_into()
21946                .map_err(parol_runtime::ParolError::UserError)?,
21947        };
21948        // Calling user action here
21949        self.user_grammar.r_bracket(&r_bracket_built)?;
21950        self.push(ASTType::RBracket(r_bracket_built), context);
21951        Ok(())
21952    }
21953
21954    /// Semantic action for production 323:
21955    ///
21956    /// `RParen: RParenToken : VerylToken;`
21957    ///
21958    #[parol_runtime::function_name::named]
21959    fn r_paren(&mut self, _r_paren_token: &ParseTreeType<'t>) -> Result<()> {
21960        let context = function_name!();
21961        trace!("{}", self.trace_item_stack(context));
21962        let r_paren_token = pop_item!(self, r_paren_token, RParenToken, context);
21963        let r_paren_built = RParen {
21964            r_paren_token: (&r_paren_token)
21965                .try_into()
21966                .map_err(parol_runtime::ParolError::UserError)?,
21967        };
21968        // Calling user action here
21969        self.user_grammar.r_paren(&r_paren_built)?;
21970        self.push(ASTType::RParen(r_paren_built), context);
21971        Ok(())
21972    }
21973
21974    /// Semantic action for production 324:
21975    ///
21976    /// `Semicolon: SemicolonToken : VerylToken;`
21977    ///
21978    #[parol_runtime::function_name::named]
21979    fn semicolon(&mut self, _semicolon_token: &ParseTreeType<'t>) -> Result<()> {
21980        let context = function_name!();
21981        trace!("{}", self.trace_item_stack(context));
21982        let semicolon_token = pop_item!(self, semicolon_token, SemicolonToken, context);
21983        let semicolon_built = Semicolon {
21984            semicolon_token: (&semicolon_token)
21985                .try_into()
21986                .map_err(parol_runtime::ParolError::UserError)?,
21987        };
21988        // Calling user action here
21989        self.user_grammar.semicolon(&semicolon_built)?;
21990        self.push(ASTType::Semicolon(semicolon_built), context);
21991        Ok(())
21992    }
21993
21994    /// Semantic action for production 325:
21995    ///
21996    /// `Star: StarToken : VerylToken;`
21997    ///
21998    #[parol_runtime::function_name::named]
21999    fn star(&mut self, _star_token: &ParseTreeType<'t>) -> Result<()> {
22000        let context = function_name!();
22001        trace!("{}", self.trace_item_stack(context));
22002        let star_token = pop_item!(self, star_token, StarToken, context);
22003        let star_built = Star {
22004            star_token: (&star_token)
22005                .try_into()
22006                .map_err(parol_runtime::ParolError::UserError)?,
22007        };
22008        // Calling user action here
22009        self.user_grammar.star(&star_built)?;
22010        self.push(ASTType::Star(star_built), context);
22011        Ok(())
22012    }
22013
22014    /// Semantic action for production 326:
22015    ///
22016    /// `Alias: AliasToken : VerylToken;`
22017    ///
22018    #[parol_runtime::function_name::named]
22019    fn alias(&mut self, _alias_token: &ParseTreeType<'t>) -> Result<()> {
22020        let context = function_name!();
22021        trace!("{}", self.trace_item_stack(context));
22022        let alias_token = pop_item!(self, alias_token, AliasToken, context);
22023        let alias_built = Alias {
22024            alias_token: (&alias_token)
22025                .try_into()
22026                .map_err(parol_runtime::ParolError::UserError)?,
22027        };
22028        // Calling user action here
22029        self.user_grammar.alias(&alias_built)?;
22030        self.push(ASTType::Alias(alias_built), context);
22031        Ok(())
22032    }
22033
22034    /// Semantic action for production 327:
22035    ///
22036    /// `AlwaysComb: AlwaysCombToken : VerylToken;`
22037    ///
22038    #[parol_runtime::function_name::named]
22039    fn always_comb(&mut self, _always_comb_token: &ParseTreeType<'t>) -> Result<()> {
22040        let context = function_name!();
22041        trace!("{}", self.trace_item_stack(context));
22042        let always_comb_token = pop_item!(self, always_comb_token, AlwaysCombToken, context);
22043        let always_comb_built = AlwaysComb {
22044            always_comb_token: (&always_comb_token)
22045                .try_into()
22046                .map_err(parol_runtime::ParolError::UserError)?,
22047        };
22048        // Calling user action here
22049        self.user_grammar.always_comb(&always_comb_built)?;
22050        self.push(ASTType::AlwaysComb(always_comb_built), context);
22051        Ok(())
22052    }
22053
22054    /// Semantic action for production 328:
22055    ///
22056    /// `AlwaysFf: AlwaysFfToken : VerylToken;`
22057    ///
22058    #[parol_runtime::function_name::named]
22059    fn always_ff(&mut self, _always_ff_token: &ParseTreeType<'t>) -> Result<()> {
22060        let context = function_name!();
22061        trace!("{}", self.trace_item_stack(context));
22062        let always_ff_token = pop_item!(self, always_ff_token, AlwaysFfToken, context);
22063        let always_ff_built = AlwaysFf {
22064            always_ff_token: (&always_ff_token)
22065                .try_into()
22066                .map_err(parol_runtime::ParolError::UserError)?,
22067        };
22068        // Calling user action here
22069        self.user_grammar.always_ff(&always_ff_built)?;
22070        self.push(ASTType::AlwaysFf(always_ff_built), context);
22071        Ok(())
22072    }
22073
22074    /// Semantic action for production 329:
22075    ///
22076    /// `As: AsToken : VerylToken;`
22077    ///
22078    #[parol_runtime::function_name::named]
22079    fn r#as(&mut self, _as_token: &ParseTreeType<'t>) -> Result<()> {
22080        let context = function_name!();
22081        trace!("{}", self.trace_item_stack(context));
22082        let as_token = pop_item!(self, as_token, AsToken, context);
22083        let r#as_built = As {
22084            as_token: (&as_token)
22085                .try_into()
22086                .map_err(parol_runtime::ParolError::UserError)?,
22087        };
22088        // Calling user action here
22089        self.user_grammar.r#as(&r#as_built)?;
22090        self.push(ASTType::As(r#as_built), context);
22091        Ok(())
22092    }
22093
22094    /// Semantic action for production 330:
22095    ///
22096    /// `Assign: AssignToken : VerylToken;`
22097    ///
22098    #[parol_runtime::function_name::named]
22099    fn assign(&mut self, _assign_token: &ParseTreeType<'t>) -> Result<()> {
22100        let context = function_name!();
22101        trace!("{}", self.trace_item_stack(context));
22102        let assign_token = pop_item!(self, assign_token, AssignToken, context);
22103        let assign_built = Assign {
22104            assign_token: (&assign_token)
22105                .try_into()
22106                .map_err(parol_runtime::ParolError::UserError)?,
22107        };
22108        // Calling user action here
22109        self.user_grammar.assign(&assign_built)?;
22110        self.push(ASTType::Assign(assign_built), context);
22111        Ok(())
22112    }
22113
22114    /// Semantic action for production 331:
22115    ///
22116    /// `Bind: BindToken : VerylToken;`
22117    ///
22118    #[parol_runtime::function_name::named]
22119    fn bind(&mut self, _bind_token: &ParseTreeType<'t>) -> Result<()> {
22120        let context = function_name!();
22121        trace!("{}", self.trace_item_stack(context));
22122        let bind_token = pop_item!(self, bind_token, BindToken, context);
22123        let bind_built = Bind {
22124            bind_token: (&bind_token)
22125                .try_into()
22126                .map_err(parol_runtime::ParolError::UserError)?,
22127        };
22128        // Calling user action here
22129        self.user_grammar.bind(&bind_built)?;
22130        self.push(ASTType::Bind(bind_built), context);
22131        Ok(())
22132    }
22133
22134    /// Semantic action for production 332:
22135    ///
22136    /// `Bit: BitToken : VerylToken;`
22137    ///
22138    #[parol_runtime::function_name::named]
22139    fn bit(&mut self, _bit_token: &ParseTreeType<'t>) -> Result<()> {
22140        let context = function_name!();
22141        trace!("{}", self.trace_item_stack(context));
22142        let bit_token = pop_item!(self, bit_token, BitToken, context);
22143        let bit_built = Bit {
22144            bit_token: (&bit_token)
22145                .try_into()
22146                .map_err(parol_runtime::ParolError::UserError)?,
22147        };
22148        // Calling user action here
22149        self.user_grammar.bit(&bit_built)?;
22150        self.push(ASTType::Bit(bit_built), context);
22151        Ok(())
22152    }
22153
22154    /// Semantic action for production 333:
22155    ///
22156    /// `Block: BlockToken : VerylToken;`
22157    ///
22158    #[parol_runtime::function_name::named]
22159    fn block(&mut self, _block_token: &ParseTreeType<'t>) -> Result<()> {
22160        let context = function_name!();
22161        trace!("{}", self.trace_item_stack(context));
22162        let block_token = pop_item!(self, block_token, BlockToken, context);
22163        let block_built = Block {
22164            block_token: (&block_token)
22165                .try_into()
22166                .map_err(parol_runtime::ParolError::UserError)?,
22167        };
22168        // Calling user action here
22169        self.user_grammar.block(&block_built)?;
22170        self.push(ASTType::Block(block_built), context);
22171        Ok(())
22172    }
22173
22174    /// Semantic action for production 334:
22175    ///
22176    /// `BBool: BBoolToken : VerylToken;`
22177    ///
22178    #[parol_runtime::function_name::named]
22179    fn b_bool(&mut self, _b_bool_token: &ParseTreeType<'t>) -> Result<()> {
22180        let context = function_name!();
22181        trace!("{}", self.trace_item_stack(context));
22182        let b_bool_token = pop_item!(self, b_bool_token, BBoolToken, context);
22183        let b_bool_built = BBool {
22184            b_bool_token: (&b_bool_token)
22185                .try_into()
22186                .map_err(parol_runtime::ParolError::UserError)?,
22187        };
22188        // Calling user action here
22189        self.user_grammar.b_bool(&b_bool_built)?;
22190        self.push(ASTType::BBool(b_bool_built), context);
22191        Ok(())
22192    }
22193
22194    /// Semantic action for production 335:
22195    ///
22196    /// `LBool: LBoolToken : VerylToken;`
22197    ///
22198    #[parol_runtime::function_name::named]
22199    fn l_bool(&mut self, _l_bool_token: &ParseTreeType<'t>) -> Result<()> {
22200        let context = function_name!();
22201        trace!("{}", self.trace_item_stack(context));
22202        let l_bool_token = pop_item!(self, l_bool_token, LBoolToken, context);
22203        let l_bool_built = LBool {
22204            l_bool_token: (&l_bool_token)
22205                .try_into()
22206                .map_err(parol_runtime::ParolError::UserError)?,
22207        };
22208        // Calling user action here
22209        self.user_grammar.l_bool(&l_bool_built)?;
22210        self.push(ASTType::LBool(l_bool_built), context);
22211        Ok(())
22212    }
22213
22214    /// Semantic action for production 336:
22215    ///
22216    /// `Break: BreakToken : VerylToken;`
22217    ///
22218    #[parol_runtime::function_name::named]
22219    fn r#break(&mut self, _break_token: &ParseTreeType<'t>) -> Result<()> {
22220        let context = function_name!();
22221        trace!("{}", self.trace_item_stack(context));
22222        let break_token = pop_item!(self, break_token, BreakToken, context);
22223        let r#break_built = Break {
22224            break_token: (&break_token)
22225                .try_into()
22226                .map_err(parol_runtime::ParolError::UserError)?,
22227        };
22228        // Calling user action here
22229        self.user_grammar.r#break(&r#break_built)?;
22230        self.push(ASTType::Break(r#break_built), context);
22231        Ok(())
22232    }
22233
22234    /// Semantic action for production 337:
22235    ///
22236    /// `Case: CaseToken : VerylToken;`
22237    ///
22238    #[parol_runtime::function_name::named]
22239    fn case(&mut self, _case_token: &ParseTreeType<'t>) -> Result<()> {
22240        let context = function_name!();
22241        trace!("{}", self.trace_item_stack(context));
22242        let case_token = pop_item!(self, case_token, CaseToken, context);
22243        let case_built = Case {
22244            case_token: (&case_token)
22245                .try_into()
22246                .map_err(parol_runtime::ParolError::UserError)?,
22247        };
22248        // Calling user action here
22249        self.user_grammar.case(&case_built)?;
22250        self.push(ASTType::Case(case_built), context);
22251        Ok(())
22252    }
22253
22254    /// Semantic action for production 338:
22255    ///
22256    /// `Clock: ClockToken : VerylToken;`
22257    ///
22258    #[parol_runtime::function_name::named]
22259    fn clock(&mut self, _clock_token: &ParseTreeType<'t>) -> Result<()> {
22260        let context = function_name!();
22261        trace!("{}", self.trace_item_stack(context));
22262        let clock_token = pop_item!(self, clock_token, ClockToken, context);
22263        let clock_built = Clock {
22264            clock_token: (&clock_token)
22265                .try_into()
22266                .map_err(parol_runtime::ParolError::UserError)?,
22267        };
22268        // Calling user action here
22269        self.user_grammar.clock(&clock_built)?;
22270        self.push(ASTType::Clock(clock_built), context);
22271        Ok(())
22272    }
22273
22274    /// Semantic action for production 339:
22275    ///
22276    /// `ClockPosedge: ClockPosedgeToken : VerylToken;`
22277    ///
22278    #[parol_runtime::function_name::named]
22279    fn clock_posedge(&mut self, _clock_posedge_token: &ParseTreeType<'t>) -> Result<()> {
22280        let context = function_name!();
22281        trace!("{}", self.trace_item_stack(context));
22282        let clock_posedge_token = pop_item!(self, clock_posedge_token, ClockPosedgeToken, context);
22283        let clock_posedge_built = ClockPosedge {
22284            clock_posedge_token: (&clock_posedge_token)
22285                .try_into()
22286                .map_err(parol_runtime::ParolError::UserError)?,
22287        };
22288        // Calling user action here
22289        self.user_grammar.clock_posedge(&clock_posedge_built)?;
22290        self.push(ASTType::ClockPosedge(clock_posedge_built), context);
22291        Ok(())
22292    }
22293
22294    /// Semantic action for production 340:
22295    ///
22296    /// `ClockNegedge: ClockNegedgeToken : VerylToken;`
22297    ///
22298    #[parol_runtime::function_name::named]
22299    fn clock_negedge(&mut self, _clock_negedge_token: &ParseTreeType<'t>) -> Result<()> {
22300        let context = function_name!();
22301        trace!("{}", self.trace_item_stack(context));
22302        let clock_negedge_token = pop_item!(self, clock_negedge_token, ClockNegedgeToken, context);
22303        let clock_negedge_built = ClockNegedge {
22304            clock_negedge_token: (&clock_negedge_token)
22305                .try_into()
22306                .map_err(parol_runtime::ParolError::UserError)?,
22307        };
22308        // Calling user action here
22309        self.user_grammar.clock_negedge(&clock_negedge_built)?;
22310        self.push(ASTType::ClockNegedge(clock_negedge_built), context);
22311        Ok(())
22312    }
22313
22314    /// Semantic action for production 341:
22315    ///
22316    /// `Connect: ConnectToken : VerylToken;`
22317    ///
22318    #[parol_runtime::function_name::named]
22319    fn connect(&mut self, _connect_token: &ParseTreeType<'t>) -> Result<()> {
22320        let context = function_name!();
22321        trace!("{}", self.trace_item_stack(context));
22322        let connect_token = pop_item!(self, connect_token, ConnectToken, context);
22323        let connect_built = Connect {
22324            connect_token: (&connect_token)
22325                .try_into()
22326                .map_err(parol_runtime::ParolError::UserError)?,
22327        };
22328        // Calling user action here
22329        self.user_grammar.connect(&connect_built)?;
22330        self.push(ASTType::Connect(connect_built), context);
22331        Ok(())
22332    }
22333
22334    /// Semantic action for production 342:
22335    ///
22336    /// `Const: ConstToken : VerylToken;`
22337    ///
22338    #[parol_runtime::function_name::named]
22339    fn r#const(&mut self, _const_token: &ParseTreeType<'t>) -> Result<()> {
22340        let context = function_name!();
22341        trace!("{}", self.trace_item_stack(context));
22342        let const_token = pop_item!(self, const_token, ConstToken, context);
22343        let r#const_built = Const {
22344            const_token: (&const_token)
22345                .try_into()
22346                .map_err(parol_runtime::ParolError::UserError)?,
22347        };
22348        // Calling user action here
22349        self.user_grammar.r#const(&r#const_built)?;
22350        self.push(ASTType::Const(r#const_built), context);
22351        Ok(())
22352    }
22353
22354    /// Semantic action for production 343:
22355    ///
22356    /// `Converse: ConverseToken : VerylToken;`
22357    ///
22358    #[parol_runtime::function_name::named]
22359    fn converse(&mut self, _converse_token: &ParseTreeType<'t>) -> Result<()> {
22360        let context = function_name!();
22361        trace!("{}", self.trace_item_stack(context));
22362        let converse_token = pop_item!(self, converse_token, ConverseToken, context);
22363        let converse_built = Converse {
22364            converse_token: (&converse_token)
22365                .try_into()
22366                .map_err(parol_runtime::ParolError::UserError)?,
22367        };
22368        // Calling user action here
22369        self.user_grammar.converse(&converse_built)?;
22370        self.push(ASTType::Converse(converse_built), context);
22371        Ok(())
22372    }
22373
22374    /// Semantic action for production 344:
22375    ///
22376    /// `Defaul: DefaultToken : VerylToken;`
22377    ///
22378    #[parol_runtime::function_name::named]
22379    fn defaul(&mut self, _default_token: &ParseTreeType<'t>) -> Result<()> {
22380        let context = function_name!();
22381        trace!("{}", self.trace_item_stack(context));
22382        let default_token = pop_item!(self, default_token, DefaultToken, context);
22383        let defaul_built = Defaul {
22384            default_token: (&default_token)
22385                .try_into()
22386                .map_err(parol_runtime::ParolError::UserError)?,
22387        };
22388        // Calling user action here
22389        self.user_grammar.defaul(&defaul_built)?;
22390        self.push(ASTType::Defaul(defaul_built), context);
22391        Ok(())
22392    }
22393
22394    /// Semantic action for production 345:
22395    ///
22396    /// `Else: ElseToken : VerylToken;`
22397    ///
22398    #[parol_runtime::function_name::named]
22399    fn r#else(&mut self, _else_token: &ParseTreeType<'t>) -> Result<()> {
22400        let context = function_name!();
22401        trace!("{}", self.trace_item_stack(context));
22402        let else_token = pop_item!(self, else_token, ElseToken, context);
22403        let r#else_built = Else {
22404            else_token: (&else_token)
22405                .try_into()
22406                .map_err(parol_runtime::ParolError::UserError)?,
22407        };
22408        // Calling user action here
22409        self.user_grammar.r#else(&r#else_built)?;
22410        self.push(ASTType::Else(r#else_built), context);
22411        Ok(())
22412    }
22413
22414    /// Semantic action for production 346:
22415    ///
22416    /// `Embed: EmbedToken : VerylToken;`
22417    ///
22418    #[parol_runtime::function_name::named]
22419    fn embed(&mut self, _embed_token: &ParseTreeType<'t>) -> Result<()> {
22420        let context = function_name!();
22421        trace!("{}", self.trace_item_stack(context));
22422        let embed_token = pop_item!(self, embed_token, EmbedToken, context);
22423        let embed_built = Embed {
22424            embed_token: (&embed_token)
22425                .try_into()
22426                .map_err(parol_runtime::ParolError::UserError)?,
22427        };
22428        // Calling user action here
22429        self.user_grammar.embed(&embed_built)?;
22430        self.push(ASTType::Embed(embed_built), context);
22431        Ok(())
22432    }
22433
22434    /// Semantic action for production 347:
22435    ///
22436    /// `Enum: EnumToken : VerylToken;`
22437    ///
22438    #[parol_runtime::function_name::named]
22439    fn r#enum(&mut self, _enum_token: &ParseTreeType<'t>) -> Result<()> {
22440        let context = function_name!();
22441        trace!("{}", self.trace_item_stack(context));
22442        let enum_token = pop_item!(self, enum_token, EnumToken, context);
22443        let r#enum_built = Enum {
22444            enum_token: (&enum_token)
22445                .try_into()
22446                .map_err(parol_runtime::ParolError::UserError)?,
22447        };
22448        // Calling user action here
22449        self.user_grammar.r#enum(&r#enum_built)?;
22450        self.push(ASTType::Enum(r#enum_built), context);
22451        Ok(())
22452    }
22453
22454    /// Semantic action for production 348:
22455    ///
22456    /// `F32: F32Token : VerylToken;`
22457    ///
22458    #[parol_runtime::function_name::named]
22459    fn f32(&mut self, _f32_token: &ParseTreeType<'t>) -> Result<()> {
22460        let context = function_name!();
22461        trace!("{}", self.trace_item_stack(context));
22462        let f32_token = pop_item!(self, f32_token, F32Token, context);
22463        let f32_built = F32 {
22464            f32_token: (&f32_token)
22465                .try_into()
22466                .map_err(parol_runtime::ParolError::UserError)?,
22467        };
22468        // Calling user action here
22469        self.user_grammar.f32(&f32_built)?;
22470        self.push(ASTType::F32(f32_built), context);
22471        Ok(())
22472    }
22473
22474    /// Semantic action for production 349:
22475    ///
22476    /// `F64: F64Token : VerylToken;`
22477    ///
22478    #[parol_runtime::function_name::named]
22479    fn f64(&mut self, _f64_token: &ParseTreeType<'t>) -> Result<()> {
22480        let context = function_name!();
22481        trace!("{}", self.trace_item_stack(context));
22482        let f64_token = pop_item!(self, f64_token, F64Token, context);
22483        let f64_built = F64 {
22484            f64_token: (&f64_token)
22485                .try_into()
22486                .map_err(parol_runtime::ParolError::UserError)?,
22487        };
22488        // Calling user action here
22489        self.user_grammar.f64(&f64_built)?;
22490        self.push(ASTType::F64(f64_built), context);
22491        Ok(())
22492    }
22493
22494    /// Semantic action for production 350:
22495    ///
22496    /// `False: FalseToken : VerylToken;`
22497    ///
22498    #[parol_runtime::function_name::named]
22499    fn r#false(&mut self, _false_token: &ParseTreeType<'t>) -> Result<()> {
22500        let context = function_name!();
22501        trace!("{}", self.trace_item_stack(context));
22502        let false_token = pop_item!(self, false_token, FalseToken, context);
22503        let r#false_built = False {
22504            false_token: (&false_token)
22505                .try_into()
22506                .map_err(parol_runtime::ParolError::UserError)?,
22507        };
22508        // Calling user action here
22509        self.user_grammar.r#false(&r#false_built)?;
22510        self.push(ASTType::False(r#false_built), context);
22511        Ok(())
22512    }
22513
22514    /// Semantic action for production 351:
22515    ///
22516    /// `Final: FinalToken : VerylToken;`
22517    ///
22518    #[parol_runtime::function_name::named]
22519    fn r#final(&mut self, _final_token: &ParseTreeType<'t>) -> Result<()> {
22520        let context = function_name!();
22521        trace!("{}", self.trace_item_stack(context));
22522        let final_token = pop_item!(self, final_token, FinalToken, context);
22523        let r#final_built = Final {
22524            final_token: (&final_token)
22525                .try_into()
22526                .map_err(parol_runtime::ParolError::UserError)?,
22527        };
22528        // Calling user action here
22529        self.user_grammar.r#final(&r#final_built)?;
22530        self.push(ASTType::Final(r#final_built), context);
22531        Ok(())
22532    }
22533
22534    /// Semantic action for production 352:
22535    ///
22536    /// `For: ForToken : VerylToken;`
22537    ///
22538    #[parol_runtime::function_name::named]
22539    fn r#for(&mut self, _for_token: &ParseTreeType<'t>) -> Result<()> {
22540        let context = function_name!();
22541        trace!("{}", self.trace_item_stack(context));
22542        let for_token = pop_item!(self, for_token, ForToken, context);
22543        let r#for_built = For {
22544            for_token: (&for_token)
22545                .try_into()
22546                .map_err(parol_runtime::ParolError::UserError)?,
22547        };
22548        // Calling user action here
22549        self.user_grammar.r#for(&r#for_built)?;
22550        self.push(ASTType::For(r#for_built), context);
22551        Ok(())
22552    }
22553
22554    /// Semantic action for production 353:
22555    ///
22556    /// `Function: FunctionToken : VerylToken;`
22557    ///
22558    #[parol_runtime::function_name::named]
22559    fn function(&mut self, _function_token: &ParseTreeType<'t>) -> Result<()> {
22560        let context = function_name!();
22561        trace!("{}", self.trace_item_stack(context));
22562        let function_token = pop_item!(self, function_token, FunctionToken, context);
22563        let function_built = Function {
22564            function_token: (&function_token)
22565                .try_into()
22566                .map_err(parol_runtime::ParolError::UserError)?,
22567        };
22568        // Calling user action here
22569        self.user_grammar.function(&function_built)?;
22570        self.push(ASTType::Function(function_built), context);
22571        Ok(())
22572    }
22573
22574    /// Semantic action for production 354:
22575    ///
22576    /// `I8: I8Token : VerylToken;`
22577    ///
22578    #[parol_runtime::function_name::named]
22579    fn i8(&mut self, _i8_token: &ParseTreeType<'t>) -> Result<()> {
22580        let context = function_name!();
22581        trace!("{}", self.trace_item_stack(context));
22582        let i8_token = pop_item!(self, i8_token, I8Token, context);
22583        let i8_built = I8 {
22584            i8_token: (&i8_token)
22585                .try_into()
22586                .map_err(parol_runtime::ParolError::UserError)?,
22587        };
22588        // Calling user action here
22589        self.user_grammar.i8(&i8_built)?;
22590        self.push(ASTType::I8(i8_built), context);
22591        Ok(())
22592    }
22593
22594    /// Semantic action for production 355:
22595    ///
22596    /// `I16: I16Token : VerylToken;`
22597    ///
22598    #[parol_runtime::function_name::named]
22599    fn i16(&mut self, _i16_token: &ParseTreeType<'t>) -> Result<()> {
22600        let context = function_name!();
22601        trace!("{}", self.trace_item_stack(context));
22602        let i16_token = pop_item!(self, i16_token, I16Token, context);
22603        let i16_built = I16 {
22604            i16_token: (&i16_token)
22605                .try_into()
22606                .map_err(parol_runtime::ParolError::UserError)?,
22607        };
22608        // Calling user action here
22609        self.user_grammar.i16(&i16_built)?;
22610        self.push(ASTType::I16(i16_built), context);
22611        Ok(())
22612    }
22613
22614    /// Semantic action for production 356:
22615    ///
22616    /// `I32: I32Token : VerylToken;`
22617    ///
22618    #[parol_runtime::function_name::named]
22619    fn i32(&mut self, _i32_token: &ParseTreeType<'t>) -> Result<()> {
22620        let context = function_name!();
22621        trace!("{}", self.trace_item_stack(context));
22622        let i32_token = pop_item!(self, i32_token, I32Token, context);
22623        let i32_built = I32 {
22624            i32_token: (&i32_token)
22625                .try_into()
22626                .map_err(parol_runtime::ParolError::UserError)?,
22627        };
22628        // Calling user action here
22629        self.user_grammar.i32(&i32_built)?;
22630        self.push(ASTType::I32(i32_built), context);
22631        Ok(())
22632    }
22633
22634    /// Semantic action for production 357:
22635    ///
22636    /// `I64: I64Token : VerylToken;`
22637    ///
22638    #[parol_runtime::function_name::named]
22639    fn i64(&mut self, _i64_token: &ParseTreeType<'t>) -> Result<()> {
22640        let context = function_name!();
22641        trace!("{}", self.trace_item_stack(context));
22642        let i64_token = pop_item!(self, i64_token, I64Token, context);
22643        let i64_built = I64 {
22644            i64_token: (&i64_token)
22645                .try_into()
22646                .map_err(parol_runtime::ParolError::UserError)?,
22647        };
22648        // Calling user action here
22649        self.user_grammar.i64(&i64_built)?;
22650        self.push(ASTType::I64(i64_built), context);
22651        Ok(())
22652    }
22653
22654    /// Semantic action for production 358:
22655    ///
22656    /// `If: IfToken : VerylToken;`
22657    ///
22658    #[parol_runtime::function_name::named]
22659    fn r#if(&mut self, _if_token: &ParseTreeType<'t>) -> Result<()> {
22660        let context = function_name!();
22661        trace!("{}", self.trace_item_stack(context));
22662        let if_token = pop_item!(self, if_token, IfToken, context);
22663        let r#if_built = If {
22664            if_token: (&if_token)
22665                .try_into()
22666                .map_err(parol_runtime::ParolError::UserError)?,
22667        };
22668        // Calling user action here
22669        self.user_grammar.r#if(&r#if_built)?;
22670        self.push(ASTType::If(r#if_built), context);
22671        Ok(())
22672    }
22673
22674    /// Semantic action for production 359:
22675    ///
22676    /// `IfReset: IfResetToken : VerylToken;`
22677    ///
22678    #[parol_runtime::function_name::named]
22679    fn if_reset(&mut self, _if_reset_token: &ParseTreeType<'t>) -> Result<()> {
22680        let context = function_name!();
22681        trace!("{}", self.trace_item_stack(context));
22682        let if_reset_token = pop_item!(self, if_reset_token, IfResetToken, context);
22683        let if_reset_built = IfReset {
22684            if_reset_token: (&if_reset_token)
22685                .try_into()
22686                .map_err(parol_runtime::ParolError::UserError)?,
22687        };
22688        // Calling user action here
22689        self.user_grammar.if_reset(&if_reset_built)?;
22690        self.push(ASTType::IfReset(if_reset_built), context);
22691        Ok(())
22692    }
22693
22694    /// Semantic action for production 360:
22695    ///
22696    /// `Import: ImportToken : VerylToken;`
22697    ///
22698    #[parol_runtime::function_name::named]
22699    fn import(&mut self, _import_token: &ParseTreeType<'t>) -> Result<()> {
22700        let context = function_name!();
22701        trace!("{}", self.trace_item_stack(context));
22702        let import_token = pop_item!(self, import_token, ImportToken, context);
22703        let import_built = Import {
22704            import_token: (&import_token)
22705                .try_into()
22706                .map_err(parol_runtime::ParolError::UserError)?,
22707        };
22708        // Calling user action here
22709        self.user_grammar.import(&import_built)?;
22710        self.push(ASTType::Import(import_built), context);
22711        Ok(())
22712    }
22713
22714    /// Semantic action for production 361:
22715    ///
22716    /// `In: InToken : VerylToken;`
22717    ///
22718    #[parol_runtime::function_name::named]
22719    fn r#in(&mut self, _in_token: &ParseTreeType<'t>) -> Result<()> {
22720        let context = function_name!();
22721        trace!("{}", self.trace_item_stack(context));
22722        let in_token = pop_item!(self, in_token, InToken, context);
22723        let r#in_built = In {
22724            in_token: (&in_token)
22725                .try_into()
22726                .map_err(parol_runtime::ParolError::UserError)?,
22727        };
22728        // Calling user action here
22729        self.user_grammar.r#in(&r#in_built)?;
22730        self.push(ASTType::In(r#in_built), context);
22731        Ok(())
22732    }
22733
22734    /// Semantic action for production 362:
22735    ///
22736    /// `Include: IncludeToken : VerylToken;`
22737    ///
22738    #[parol_runtime::function_name::named]
22739    fn include(&mut self, _include_token: &ParseTreeType<'t>) -> Result<()> {
22740        let context = function_name!();
22741        trace!("{}", self.trace_item_stack(context));
22742        let include_token = pop_item!(self, include_token, IncludeToken, context);
22743        let include_built = Include {
22744            include_token: (&include_token)
22745                .try_into()
22746                .map_err(parol_runtime::ParolError::UserError)?,
22747        };
22748        // Calling user action here
22749        self.user_grammar.include(&include_built)?;
22750        self.push(ASTType::Include(include_built), context);
22751        Ok(())
22752    }
22753
22754    /// Semantic action for production 363:
22755    ///
22756    /// `Initial: InitialToken : VerylToken;`
22757    ///
22758    #[parol_runtime::function_name::named]
22759    fn initial(&mut self, _initial_token: &ParseTreeType<'t>) -> Result<()> {
22760        let context = function_name!();
22761        trace!("{}", self.trace_item_stack(context));
22762        let initial_token = pop_item!(self, initial_token, InitialToken, context);
22763        let initial_built = Initial {
22764            initial_token: (&initial_token)
22765                .try_into()
22766                .map_err(parol_runtime::ParolError::UserError)?,
22767        };
22768        // Calling user action here
22769        self.user_grammar.initial(&initial_built)?;
22770        self.push(ASTType::Initial(initial_built), context);
22771        Ok(())
22772    }
22773
22774    /// Semantic action for production 364:
22775    ///
22776    /// `Inout: InoutToken : VerylToken;`
22777    ///
22778    #[parol_runtime::function_name::named]
22779    fn inout(&mut self, _inout_token: &ParseTreeType<'t>) -> Result<()> {
22780        let context = function_name!();
22781        trace!("{}", self.trace_item_stack(context));
22782        let inout_token = pop_item!(self, inout_token, InoutToken, context);
22783        let inout_built = Inout {
22784            inout_token: (&inout_token)
22785                .try_into()
22786                .map_err(parol_runtime::ParolError::UserError)?,
22787        };
22788        // Calling user action here
22789        self.user_grammar.inout(&inout_built)?;
22790        self.push(ASTType::Inout(inout_built), context);
22791        Ok(())
22792    }
22793
22794    /// Semantic action for production 365:
22795    ///
22796    /// `Input: InputToken : VerylToken;`
22797    ///
22798    #[parol_runtime::function_name::named]
22799    fn input(&mut self, _input_token: &ParseTreeType<'t>) -> Result<()> {
22800        let context = function_name!();
22801        trace!("{}", self.trace_item_stack(context));
22802        let input_token = pop_item!(self, input_token, InputToken, context);
22803        let input_built = Input {
22804            input_token: (&input_token)
22805                .try_into()
22806                .map_err(parol_runtime::ParolError::UserError)?,
22807        };
22808        // Calling user action here
22809        self.user_grammar.input(&input_built)?;
22810        self.push(ASTType::Input(input_built), context);
22811        Ok(())
22812    }
22813
22814    /// Semantic action for production 366:
22815    ///
22816    /// `Inside: InsideToken : VerylToken;`
22817    ///
22818    #[parol_runtime::function_name::named]
22819    fn inside(&mut self, _inside_token: &ParseTreeType<'t>) -> Result<()> {
22820        let context = function_name!();
22821        trace!("{}", self.trace_item_stack(context));
22822        let inside_token = pop_item!(self, inside_token, InsideToken, context);
22823        let inside_built = Inside {
22824            inside_token: (&inside_token)
22825                .try_into()
22826                .map_err(parol_runtime::ParolError::UserError)?,
22827        };
22828        // Calling user action here
22829        self.user_grammar.inside(&inside_built)?;
22830        self.push(ASTType::Inside(inside_built), context);
22831        Ok(())
22832    }
22833
22834    /// Semantic action for production 367:
22835    ///
22836    /// `Inst: InstToken : VerylToken;`
22837    ///
22838    #[parol_runtime::function_name::named]
22839    fn inst(&mut self, _inst_token: &ParseTreeType<'t>) -> Result<()> {
22840        let context = function_name!();
22841        trace!("{}", self.trace_item_stack(context));
22842        let inst_token = pop_item!(self, inst_token, InstToken, context);
22843        let inst_built = Inst {
22844            inst_token: (&inst_token)
22845                .try_into()
22846                .map_err(parol_runtime::ParolError::UserError)?,
22847        };
22848        // Calling user action here
22849        self.user_grammar.inst(&inst_built)?;
22850        self.push(ASTType::Inst(inst_built), context);
22851        Ok(())
22852    }
22853
22854    /// Semantic action for production 368:
22855    ///
22856    /// `Interface: InterfaceToken : VerylToken;`
22857    ///
22858    #[parol_runtime::function_name::named]
22859    fn interface(&mut self, _interface_token: &ParseTreeType<'t>) -> Result<()> {
22860        let context = function_name!();
22861        trace!("{}", self.trace_item_stack(context));
22862        let interface_token = pop_item!(self, interface_token, InterfaceToken, context);
22863        let interface_built = Interface {
22864            interface_token: (&interface_token)
22865                .try_into()
22866                .map_err(parol_runtime::ParolError::UserError)?,
22867        };
22868        // Calling user action here
22869        self.user_grammar.interface(&interface_built)?;
22870        self.push(ASTType::Interface(interface_built), context);
22871        Ok(())
22872    }
22873
22874    /// Semantic action for production 369:
22875    ///
22876    /// `Let: LetToken : VerylToken;`
22877    ///
22878    #[parol_runtime::function_name::named]
22879    fn r#let(&mut self, _let_token: &ParseTreeType<'t>) -> Result<()> {
22880        let context = function_name!();
22881        trace!("{}", self.trace_item_stack(context));
22882        let let_token = pop_item!(self, let_token, LetToken, context);
22883        let r#let_built = Let {
22884            let_token: (&let_token)
22885                .try_into()
22886                .map_err(parol_runtime::ParolError::UserError)?,
22887        };
22888        // Calling user action here
22889        self.user_grammar.r#let(&r#let_built)?;
22890        self.push(ASTType::Let(r#let_built), context);
22891        Ok(())
22892    }
22893
22894    /// Semantic action for production 370:
22895    ///
22896    /// `Logic: LogicToken : VerylToken;`
22897    ///
22898    #[parol_runtime::function_name::named]
22899    fn logic(&mut self, _logic_token: &ParseTreeType<'t>) -> Result<()> {
22900        let context = function_name!();
22901        trace!("{}", self.trace_item_stack(context));
22902        let logic_token = pop_item!(self, logic_token, LogicToken, context);
22903        let logic_built = Logic {
22904            logic_token: (&logic_token)
22905                .try_into()
22906                .map_err(parol_runtime::ParolError::UserError)?,
22907        };
22908        // Calling user action here
22909        self.user_grammar.logic(&logic_built)?;
22910        self.push(ASTType::Logic(logic_built), context);
22911        Ok(())
22912    }
22913
22914    /// Semantic action for production 371:
22915    ///
22916    /// `Lsb: LsbToken : VerylToken;`
22917    ///
22918    #[parol_runtime::function_name::named]
22919    fn lsb(&mut self, _lsb_token: &ParseTreeType<'t>) -> Result<()> {
22920        let context = function_name!();
22921        trace!("{}", self.trace_item_stack(context));
22922        let lsb_token = pop_item!(self, lsb_token, LsbToken, context);
22923        let lsb_built = Lsb {
22924            lsb_token: (&lsb_token)
22925                .try_into()
22926                .map_err(parol_runtime::ParolError::UserError)?,
22927        };
22928        // Calling user action here
22929        self.user_grammar.lsb(&lsb_built)?;
22930        self.push(ASTType::Lsb(lsb_built), context);
22931        Ok(())
22932    }
22933
22934    /// Semantic action for production 372:
22935    ///
22936    /// `Modport: ModportToken : VerylToken;`
22937    ///
22938    #[parol_runtime::function_name::named]
22939    fn modport(&mut self, _modport_token: &ParseTreeType<'t>) -> Result<()> {
22940        let context = function_name!();
22941        trace!("{}", self.trace_item_stack(context));
22942        let modport_token = pop_item!(self, modport_token, ModportToken, context);
22943        let modport_built = Modport {
22944            modport_token: (&modport_token)
22945                .try_into()
22946                .map_err(parol_runtime::ParolError::UserError)?,
22947        };
22948        // Calling user action here
22949        self.user_grammar.modport(&modport_built)?;
22950        self.push(ASTType::Modport(modport_built), context);
22951        Ok(())
22952    }
22953
22954    /// Semantic action for production 373:
22955    ///
22956    /// `Module: ModuleToken : VerylToken;`
22957    ///
22958    #[parol_runtime::function_name::named]
22959    fn module(&mut self, _module_token: &ParseTreeType<'t>) -> Result<()> {
22960        let context = function_name!();
22961        trace!("{}", self.trace_item_stack(context));
22962        let module_token = pop_item!(self, module_token, ModuleToken, context);
22963        let module_built = Module {
22964            module_token: (&module_token)
22965                .try_into()
22966                .map_err(parol_runtime::ParolError::UserError)?,
22967        };
22968        // Calling user action here
22969        self.user_grammar.module(&module_built)?;
22970        self.push(ASTType::Module(module_built), context);
22971        Ok(())
22972    }
22973
22974    /// Semantic action for production 374:
22975    ///
22976    /// `Msb: MsbToken : VerylToken;`
22977    ///
22978    #[parol_runtime::function_name::named]
22979    fn msb(&mut self, _msb_token: &ParseTreeType<'t>) -> Result<()> {
22980        let context = function_name!();
22981        trace!("{}", self.trace_item_stack(context));
22982        let msb_token = pop_item!(self, msb_token, MsbToken, context);
22983        let msb_built = Msb {
22984            msb_token: (&msb_token)
22985                .try_into()
22986                .map_err(parol_runtime::ParolError::UserError)?,
22987        };
22988        // Calling user action here
22989        self.user_grammar.msb(&msb_built)?;
22990        self.push(ASTType::Msb(msb_built), context);
22991        Ok(())
22992    }
22993
22994    /// Semantic action for production 375:
22995    ///
22996    /// `Output: OutputToken : VerylToken;`
22997    ///
22998    #[parol_runtime::function_name::named]
22999    fn output(&mut self, _output_token: &ParseTreeType<'t>) -> Result<()> {
23000        let context = function_name!();
23001        trace!("{}", self.trace_item_stack(context));
23002        let output_token = pop_item!(self, output_token, OutputToken, context);
23003        let output_built = Output {
23004            output_token: (&output_token)
23005                .try_into()
23006                .map_err(parol_runtime::ParolError::UserError)?,
23007        };
23008        // Calling user action here
23009        self.user_grammar.output(&output_built)?;
23010        self.push(ASTType::Output(output_built), context);
23011        Ok(())
23012    }
23013
23014    /// Semantic action for production 376:
23015    ///
23016    /// `Outside: OutsideToken : VerylToken;`
23017    ///
23018    #[parol_runtime::function_name::named]
23019    fn outside(&mut self, _outside_token: &ParseTreeType<'t>) -> Result<()> {
23020        let context = function_name!();
23021        trace!("{}", self.trace_item_stack(context));
23022        let outside_token = pop_item!(self, outside_token, OutsideToken, context);
23023        let outside_built = Outside {
23024            outside_token: (&outside_token)
23025                .try_into()
23026                .map_err(parol_runtime::ParolError::UserError)?,
23027        };
23028        // Calling user action here
23029        self.user_grammar.outside(&outside_built)?;
23030        self.push(ASTType::Outside(outside_built), context);
23031        Ok(())
23032    }
23033
23034    /// Semantic action for production 377:
23035    ///
23036    /// `Package: PackageToken : VerylToken;`
23037    ///
23038    #[parol_runtime::function_name::named]
23039    fn package(&mut self, _package_token: &ParseTreeType<'t>) -> Result<()> {
23040        let context = function_name!();
23041        trace!("{}", self.trace_item_stack(context));
23042        let package_token = pop_item!(self, package_token, PackageToken, context);
23043        let package_built = Package {
23044            package_token: (&package_token)
23045                .try_into()
23046                .map_err(parol_runtime::ParolError::UserError)?,
23047        };
23048        // Calling user action here
23049        self.user_grammar.package(&package_built)?;
23050        self.push(ASTType::Package(package_built), context);
23051        Ok(())
23052    }
23053
23054    /// Semantic action for production 378:
23055    ///
23056    /// `Param: ParamToken : VerylToken;`
23057    ///
23058    #[parol_runtime::function_name::named]
23059    fn param(&mut self, _param_token: &ParseTreeType<'t>) -> Result<()> {
23060        let context = function_name!();
23061        trace!("{}", self.trace_item_stack(context));
23062        let param_token = pop_item!(self, param_token, ParamToken, context);
23063        let param_built = Param {
23064            param_token: (&param_token)
23065                .try_into()
23066                .map_err(parol_runtime::ParolError::UserError)?,
23067        };
23068        // Calling user action here
23069        self.user_grammar.param(&param_built)?;
23070        self.push(ASTType::Param(param_built), context);
23071        Ok(())
23072    }
23073
23074    /// Semantic action for production 379:
23075    ///
23076    /// `Proto: ProtoToken : VerylToken;`
23077    ///
23078    #[parol_runtime::function_name::named]
23079    fn proto(&mut self, _proto_token: &ParseTreeType<'t>) -> Result<()> {
23080        let context = function_name!();
23081        trace!("{}", self.trace_item_stack(context));
23082        let proto_token = pop_item!(self, proto_token, ProtoToken, context);
23083        let proto_built = Proto {
23084            proto_token: (&proto_token)
23085                .try_into()
23086                .map_err(parol_runtime::ParolError::UserError)?,
23087        };
23088        // Calling user action here
23089        self.user_grammar.proto(&proto_built)?;
23090        self.push(ASTType::Proto(proto_built), context);
23091        Ok(())
23092    }
23093
23094    /// Semantic action for production 380:
23095    ///
23096    /// `Pub: PubToken : VerylToken;`
23097    ///
23098    #[parol_runtime::function_name::named]
23099    fn r#pub(&mut self, _pub_token: &ParseTreeType<'t>) -> Result<()> {
23100        let context = function_name!();
23101        trace!("{}", self.trace_item_stack(context));
23102        let pub_token = pop_item!(self, pub_token, PubToken, context);
23103        let r#pub_built = Pub {
23104            pub_token: (&pub_token)
23105                .try_into()
23106                .map_err(parol_runtime::ParolError::UserError)?,
23107        };
23108        // Calling user action here
23109        self.user_grammar.r#pub(&r#pub_built)?;
23110        self.push(ASTType::Pub(r#pub_built), context);
23111        Ok(())
23112    }
23113
23114    /// Semantic action for production 381:
23115    ///
23116    /// `Repeat: RepeatToken : VerylToken;`
23117    ///
23118    #[parol_runtime::function_name::named]
23119    fn repeat(&mut self, _repeat_token: &ParseTreeType<'t>) -> Result<()> {
23120        let context = function_name!();
23121        trace!("{}", self.trace_item_stack(context));
23122        let repeat_token = pop_item!(self, repeat_token, RepeatToken, context);
23123        let repeat_built = Repeat {
23124            repeat_token: (&repeat_token)
23125                .try_into()
23126                .map_err(parol_runtime::ParolError::UserError)?,
23127        };
23128        // Calling user action here
23129        self.user_grammar.repeat(&repeat_built)?;
23130        self.push(ASTType::Repeat(repeat_built), context);
23131        Ok(())
23132    }
23133
23134    /// Semantic action for production 382:
23135    ///
23136    /// `Reset: ResetToken : VerylToken;`
23137    ///
23138    #[parol_runtime::function_name::named]
23139    fn reset(&mut self, _reset_token: &ParseTreeType<'t>) -> Result<()> {
23140        let context = function_name!();
23141        trace!("{}", self.trace_item_stack(context));
23142        let reset_token = pop_item!(self, reset_token, ResetToken, context);
23143        let reset_built = Reset {
23144            reset_token: (&reset_token)
23145                .try_into()
23146                .map_err(parol_runtime::ParolError::UserError)?,
23147        };
23148        // Calling user action here
23149        self.user_grammar.reset(&reset_built)?;
23150        self.push(ASTType::Reset(reset_built), context);
23151        Ok(())
23152    }
23153
23154    /// Semantic action for production 383:
23155    ///
23156    /// `ResetAsyncHigh: ResetAsyncHighToken : VerylToken;`
23157    ///
23158    #[parol_runtime::function_name::named]
23159    fn reset_async_high(&mut self, _reset_async_high_token: &ParseTreeType<'t>) -> Result<()> {
23160        let context = function_name!();
23161        trace!("{}", self.trace_item_stack(context));
23162        let reset_async_high_token =
23163            pop_item!(self, reset_async_high_token, ResetAsyncHighToken, context);
23164        let reset_async_high_built = ResetAsyncHigh {
23165            reset_async_high_token: (&reset_async_high_token)
23166                .try_into()
23167                .map_err(parol_runtime::ParolError::UserError)?,
23168        };
23169        // Calling user action here
23170        self.user_grammar
23171            .reset_async_high(&reset_async_high_built)?;
23172        self.push(ASTType::ResetAsyncHigh(reset_async_high_built), context);
23173        Ok(())
23174    }
23175
23176    /// Semantic action for production 384:
23177    ///
23178    /// `ResetAsyncLow: ResetAsyncLowToken : VerylToken;`
23179    ///
23180    #[parol_runtime::function_name::named]
23181    fn reset_async_low(&mut self, _reset_async_low_token: &ParseTreeType<'t>) -> Result<()> {
23182        let context = function_name!();
23183        trace!("{}", self.trace_item_stack(context));
23184        let reset_async_low_token =
23185            pop_item!(self, reset_async_low_token, ResetAsyncLowToken, context);
23186        let reset_async_low_built = ResetAsyncLow {
23187            reset_async_low_token: (&reset_async_low_token)
23188                .try_into()
23189                .map_err(parol_runtime::ParolError::UserError)?,
23190        };
23191        // Calling user action here
23192        self.user_grammar.reset_async_low(&reset_async_low_built)?;
23193        self.push(ASTType::ResetAsyncLow(reset_async_low_built), context);
23194        Ok(())
23195    }
23196
23197    /// Semantic action for production 385:
23198    ///
23199    /// `ResetSyncHigh: ResetSyncHighToken : VerylToken;`
23200    ///
23201    #[parol_runtime::function_name::named]
23202    fn reset_sync_high(&mut self, _reset_sync_high_token: &ParseTreeType<'t>) -> Result<()> {
23203        let context = function_name!();
23204        trace!("{}", self.trace_item_stack(context));
23205        let reset_sync_high_token =
23206            pop_item!(self, reset_sync_high_token, ResetSyncHighToken, context);
23207        let reset_sync_high_built = ResetSyncHigh {
23208            reset_sync_high_token: (&reset_sync_high_token)
23209                .try_into()
23210                .map_err(parol_runtime::ParolError::UserError)?,
23211        };
23212        // Calling user action here
23213        self.user_grammar.reset_sync_high(&reset_sync_high_built)?;
23214        self.push(ASTType::ResetSyncHigh(reset_sync_high_built), context);
23215        Ok(())
23216    }
23217
23218    /// Semantic action for production 386:
23219    ///
23220    /// `ResetSyncLow: ResetSyncLowToken : VerylToken;`
23221    ///
23222    #[parol_runtime::function_name::named]
23223    fn reset_sync_low(&mut self, _reset_sync_low_token: &ParseTreeType<'t>) -> Result<()> {
23224        let context = function_name!();
23225        trace!("{}", self.trace_item_stack(context));
23226        let reset_sync_low_token =
23227            pop_item!(self, reset_sync_low_token, ResetSyncLowToken, context);
23228        let reset_sync_low_built = ResetSyncLow {
23229            reset_sync_low_token: (&reset_sync_low_token)
23230                .try_into()
23231                .map_err(parol_runtime::ParolError::UserError)?,
23232        };
23233        // Calling user action here
23234        self.user_grammar.reset_sync_low(&reset_sync_low_built)?;
23235        self.push(ASTType::ResetSyncLow(reset_sync_low_built), context);
23236        Ok(())
23237    }
23238
23239    /// Semantic action for production 387:
23240    ///
23241    /// `Return: ReturnToken : VerylToken;`
23242    ///
23243    #[parol_runtime::function_name::named]
23244    fn r#return(&mut self, _return_token: &ParseTreeType<'t>) -> Result<()> {
23245        let context = function_name!();
23246        trace!("{}", self.trace_item_stack(context));
23247        let return_token = pop_item!(self, return_token, ReturnToken, context);
23248        let r#return_built = Return {
23249            return_token: (&return_token)
23250                .try_into()
23251                .map_err(parol_runtime::ParolError::UserError)?,
23252        };
23253        // Calling user action here
23254        self.user_grammar.r#return(&r#return_built)?;
23255        self.push(ASTType::Return(r#return_built), context);
23256        Ok(())
23257    }
23258
23259    /// Semantic action for production 388:
23260    ///
23261    /// `Rev: RevToken : VerylToken;`
23262    ///
23263    #[parol_runtime::function_name::named]
23264    fn rev(&mut self, _rev_token: &ParseTreeType<'t>) -> Result<()> {
23265        let context = function_name!();
23266        trace!("{}", self.trace_item_stack(context));
23267        let rev_token = pop_item!(self, rev_token, RevToken, context);
23268        let rev_built = Rev {
23269            rev_token: (&rev_token)
23270                .try_into()
23271                .map_err(parol_runtime::ParolError::UserError)?,
23272        };
23273        // Calling user action here
23274        self.user_grammar.rev(&rev_built)?;
23275        self.push(ASTType::Rev(rev_built), context);
23276        Ok(())
23277    }
23278
23279    /// Semantic action for production 389:
23280    ///
23281    /// `Same: SameToken : VerylToken;`
23282    ///
23283    #[parol_runtime::function_name::named]
23284    fn same(&mut self, _same_token: &ParseTreeType<'t>) -> Result<()> {
23285        let context = function_name!();
23286        trace!("{}", self.trace_item_stack(context));
23287        let same_token = pop_item!(self, same_token, SameToken, context);
23288        let same_built = Same {
23289            same_token: (&same_token)
23290                .try_into()
23291                .map_err(parol_runtime::ParolError::UserError)?,
23292        };
23293        // Calling user action here
23294        self.user_grammar.same(&same_built)?;
23295        self.push(ASTType::Same(same_built), context);
23296        Ok(())
23297    }
23298
23299    /// Semantic action for production 390:
23300    ///
23301    /// `Signed: SignedToken : VerylToken;`
23302    ///
23303    #[parol_runtime::function_name::named]
23304    fn signed(&mut self, _signed_token: &ParseTreeType<'t>) -> Result<()> {
23305        let context = function_name!();
23306        trace!("{}", self.trace_item_stack(context));
23307        let signed_token = pop_item!(self, signed_token, SignedToken, context);
23308        let signed_built = Signed {
23309            signed_token: (&signed_token)
23310                .try_into()
23311                .map_err(parol_runtime::ParolError::UserError)?,
23312        };
23313        // Calling user action here
23314        self.user_grammar.signed(&signed_built)?;
23315        self.push(ASTType::Signed(signed_built), context);
23316        Ok(())
23317    }
23318
23319    /// Semantic action for production 391:
23320    ///
23321    /// `Step: StepToken : VerylToken;`
23322    ///
23323    #[parol_runtime::function_name::named]
23324    fn step(&mut self, _step_token: &ParseTreeType<'t>) -> Result<()> {
23325        let context = function_name!();
23326        trace!("{}", self.trace_item_stack(context));
23327        let step_token = pop_item!(self, step_token, StepToken, context);
23328        let step_built = Step {
23329            step_token: (&step_token)
23330                .try_into()
23331                .map_err(parol_runtime::ParolError::UserError)?,
23332        };
23333        // Calling user action here
23334        self.user_grammar.step(&step_built)?;
23335        self.push(ASTType::Step(step_built), context);
23336        Ok(())
23337    }
23338
23339    /// Semantic action for production 392:
23340    ///
23341    /// `Strin: StringToken : VerylToken;`
23342    ///
23343    #[parol_runtime::function_name::named]
23344    fn strin(&mut self, _string_token: &ParseTreeType<'t>) -> Result<()> {
23345        let context = function_name!();
23346        trace!("{}", self.trace_item_stack(context));
23347        let string_token = pop_item!(self, string_token, StringToken, context);
23348        let strin_built = Strin {
23349            string_token: (&string_token)
23350                .try_into()
23351                .map_err(parol_runtime::ParolError::UserError)?,
23352        };
23353        // Calling user action here
23354        self.user_grammar.strin(&strin_built)?;
23355        self.push(ASTType::Strin(strin_built), context);
23356        Ok(())
23357    }
23358
23359    /// Semantic action for production 393:
23360    ///
23361    /// `Struct: StructToken : VerylToken;`
23362    ///
23363    #[parol_runtime::function_name::named]
23364    fn r#struct(&mut self, _struct_token: &ParseTreeType<'t>) -> Result<()> {
23365        let context = function_name!();
23366        trace!("{}", self.trace_item_stack(context));
23367        let struct_token = pop_item!(self, struct_token, StructToken, context);
23368        let r#struct_built = Struct {
23369            struct_token: (&struct_token)
23370                .try_into()
23371                .map_err(parol_runtime::ParolError::UserError)?,
23372        };
23373        // Calling user action here
23374        self.user_grammar.r#struct(&r#struct_built)?;
23375        self.push(ASTType::Struct(r#struct_built), context);
23376        Ok(())
23377    }
23378
23379    /// Semantic action for production 394:
23380    ///
23381    /// `Switch: SwitchToken : VerylToken;`
23382    ///
23383    #[parol_runtime::function_name::named]
23384    fn switch(&mut self, _switch_token: &ParseTreeType<'t>) -> Result<()> {
23385        let context = function_name!();
23386        trace!("{}", self.trace_item_stack(context));
23387        let switch_token = pop_item!(self, switch_token, SwitchToken, context);
23388        let switch_built = Switch {
23389            switch_token: (&switch_token)
23390                .try_into()
23391                .map_err(parol_runtime::ParolError::UserError)?,
23392        };
23393        // Calling user action here
23394        self.user_grammar.switch(&switch_built)?;
23395        self.push(ASTType::Switch(switch_built), context);
23396        Ok(())
23397    }
23398
23399    /// Semantic action for production 395:
23400    ///
23401    /// `Tri: TriToken : VerylToken;`
23402    ///
23403    #[parol_runtime::function_name::named]
23404    fn tri(&mut self, _tri_token: &ParseTreeType<'t>) -> Result<()> {
23405        let context = function_name!();
23406        trace!("{}", self.trace_item_stack(context));
23407        let tri_token = pop_item!(self, tri_token, TriToken, context);
23408        let tri_built = Tri {
23409            tri_token: (&tri_token)
23410                .try_into()
23411                .map_err(parol_runtime::ParolError::UserError)?,
23412        };
23413        // Calling user action here
23414        self.user_grammar.tri(&tri_built)?;
23415        self.push(ASTType::Tri(tri_built), context);
23416        Ok(())
23417    }
23418
23419    /// Semantic action for production 396:
23420    ///
23421    /// `True: TrueToken : VerylToken;`
23422    ///
23423    #[parol_runtime::function_name::named]
23424    fn r#true(&mut self, _true_token: &ParseTreeType<'t>) -> Result<()> {
23425        let context = function_name!();
23426        trace!("{}", self.trace_item_stack(context));
23427        let true_token = pop_item!(self, true_token, TrueToken, context);
23428        let r#true_built = True {
23429            true_token: (&true_token)
23430                .try_into()
23431                .map_err(parol_runtime::ParolError::UserError)?,
23432        };
23433        // Calling user action here
23434        self.user_grammar.r#true(&r#true_built)?;
23435        self.push(ASTType::True(r#true_built), context);
23436        Ok(())
23437    }
23438
23439    /// Semantic action for production 397:
23440    ///
23441    /// `Type: TypeToken : VerylToken;`
23442    ///
23443    #[parol_runtime::function_name::named]
23444    fn r#type(&mut self, _type_token: &ParseTreeType<'t>) -> Result<()> {
23445        let context = function_name!();
23446        trace!("{}", self.trace_item_stack(context));
23447        let type_token = pop_item!(self, type_token, TypeToken, context);
23448        let r#type_built = Type {
23449            type_token: (&type_token)
23450                .try_into()
23451                .map_err(parol_runtime::ParolError::UserError)?,
23452        };
23453        // Calling user action here
23454        self.user_grammar.r#type(&r#type_built)?;
23455        self.push(ASTType::Type(r#type_built), context);
23456        Ok(())
23457    }
23458
23459    /// Semantic action for production 398:
23460    ///
23461    /// `P8: P8Token : VerylToken;`
23462    ///
23463    #[parol_runtime::function_name::named]
23464    fn p8(&mut self, _p8_token: &ParseTreeType<'t>) -> Result<()> {
23465        let context = function_name!();
23466        trace!("{}", self.trace_item_stack(context));
23467        let p8_token = pop_item!(self, p8_token, P8Token, context);
23468        let p8_built = P8 {
23469            p8_token: (&p8_token)
23470                .try_into()
23471                .map_err(parol_runtime::ParolError::UserError)?,
23472        };
23473        // Calling user action here
23474        self.user_grammar.p8(&p8_built)?;
23475        self.push(ASTType::P8(p8_built), context);
23476        Ok(())
23477    }
23478
23479    /// Semantic action for production 399:
23480    ///
23481    /// `P16: P16Token : VerylToken;`
23482    ///
23483    #[parol_runtime::function_name::named]
23484    fn p16(&mut self, _p16_token: &ParseTreeType<'t>) -> Result<()> {
23485        let context = function_name!();
23486        trace!("{}", self.trace_item_stack(context));
23487        let p16_token = pop_item!(self, p16_token, P16Token, context);
23488        let p16_built = P16 {
23489            p16_token: (&p16_token)
23490                .try_into()
23491                .map_err(parol_runtime::ParolError::UserError)?,
23492        };
23493        // Calling user action here
23494        self.user_grammar.p16(&p16_built)?;
23495        self.push(ASTType::P16(p16_built), context);
23496        Ok(())
23497    }
23498
23499    /// Semantic action for production 400:
23500    ///
23501    /// `P32: P32Token : VerylToken;`
23502    ///
23503    #[parol_runtime::function_name::named]
23504    fn p32(&mut self, _p32_token: &ParseTreeType<'t>) -> Result<()> {
23505        let context = function_name!();
23506        trace!("{}", self.trace_item_stack(context));
23507        let p32_token = pop_item!(self, p32_token, P32Token, context);
23508        let p32_built = P32 {
23509            p32_token: (&p32_token)
23510                .try_into()
23511                .map_err(parol_runtime::ParolError::UserError)?,
23512        };
23513        // Calling user action here
23514        self.user_grammar.p32(&p32_built)?;
23515        self.push(ASTType::P32(p32_built), context);
23516        Ok(())
23517    }
23518
23519    /// Semantic action for production 401:
23520    ///
23521    /// `P64: P64Token : VerylToken;`
23522    ///
23523    #[parol_runtime::function_name::named]
23524    fn p64(&mut self, _p64_token: &ParseTreeType<'t>) -> Result<()> {
23525        let context = function_name!();
23526        trace!("{}", self.trace_item_stack(context));
23527        let p64_token = pop_item!(self, p64_token, P64Token, context);
23528        let p64_built = P64 {
23529            p64_token: (&p64_token)
23530                .try_into()
23531                .map_err(parol_runtime::ParolError::UserError)?,
23532        };
23533        // Calling user action here
23534        self.user_grammar.p64(&p64_built)?;
23535        self.push(ASTType::P64(p64_built), context);
23536        Ok(())
23537    }
23538
23539    /// Semantic action for production 402:
23540    ///
23541    /// `U8: U8Token : VerylToken;`
23542    ///
23543    #[parol_runtime::function_name::named]
23544    fn u8(&mut self, _u8_token: &ParseTreeType<'t>) -> Result<()> {
23545        let context = function_name!();
23546        trace!("{}", self.trace_item_stack(context));
23547        let u8_token = pop_item!(self, u8_token, U8Token, context);
23548        let u8_built = U8 {
23549            u8_token: (&u8_token)
23550                .try_into()
23551                .map_err(parol_runtime::ParolError::UserError)?,
23552        };
23553        // Calling user action here
23554        self.user_grammar.u8(&u8_built)?;
23555        self.push(ASTType::U8(u8_built), context);
23556        Ok(())
23557    }
23558
23559    /// Semantic action for production 403:
23560    ///
23561    /// `U16: U16Token : VerylToken;`
23562    ///
23563    #[parol_runtime::function_name::named]
23564    fn u16(&mut self, _u16_token: &ParseTreeType<'t>) -> Result<()> {
23565        let context = function_name!();
23566        trace!("{}", self.trace_item_stack(context));
23567        let u16_token = pop_item!(self, u16_token, U16Token, context);
23568        let u16_built = U16 {
23569            u16_token: (&u16_token)
23570                .try_into()
23571                .map_err(parol_runtime::ParolError::UserError)?,
23572        };
23573        // Calling user action here
23574        self.user_grammar.u16(&u16_built)?;
23575        self.push(ASTType::U16(u16_built), context);
23576        Ok(())
23577    }
23578
23579    /// Semantic action for production 404:
23580    ///
23581    /// `U32: U32Token : VerylToken;`
23582    ///
23583    #[parol_runtime::function_name::named]
23584    fn u32(&mut self, _u32_token: &ParseTreeType<'t>) -> Result<()> {
23585        let context = function_name!();
23586        trace!("{}", self.trace_item_stack(context));
23587        let u32_token = pop_item!(self, u32_token, U32Token, context);
23588        let u32_built = U32 {
23589            u32_token: (&u32_token)
23590                .try_into()
23591                .map_err(parol_runtime::ParolError::UserError)?,
23592        };
23593        // Calling user action here
23594        self.user_grammar.u32(&u32_built)?;
23595        self.push(ASTType::U32(u32_built), context);
23596        Ok(())
23597    }
23598
23599    /// Semantic action for production 405:
23600    ///
23601    /// `U64: U64Token : VerylToken;`
23602    ///
23603    #[parol_runtime::function_name::named]
23604    fn u64(&mut self, _u64_token: &ParseTreeType<'t>) -> Result<()> {
23605        let context = function_name!();
23606        trace!("{}", self.trace_item_stack(context));
23607        let u64_token = pop_item!(self, u64_token, U64Token, context);
23608        let u64_built = U64 {
23609            u64_token: (&u64_token)
23610                .try_into()
23611                .map_err(parol_runtime::ParolError::UserError)?,
23612        };
23613        // Calling user action here
23614        self.user_grammar.u64(&u64_built)?;
23615        self.push(ASTType::U64(u64_built), context);
23616        Ok(())
23617    }
23618
23619    /// Semantic action for production 406:
23620    ///
23621    /// `Union: UnionToken : VerylToken;`
23622    ///
23623    #[parol_runtime::function_name::named]
23624    fn r#union(&mut self, _union_token: &ParseTreeType<'t>) -> Result<()> {
23625        let context = function_name!();
23626        trace!("{}", self.trace_item_stack(context));
23627        let union_token = pop_item!(self, union_token, UnionToken, context);
23628        let r#union_built = Union {
23629            union_token: (&union_token)
23630                .try_into()
23631                .map_err(parol_runtime::ParolError::UserError)?,
23632        };
23633        // Calling user action here
23634        self.user_grammar.r#union(&r#union_built)?;
23635        self.push(ASTType::Union(r#union_built), context);
23636        Ok(())
23637    }
23638
23639    /// Semantic action for production 407:
23640    ///
23641    /// `Unsafe: UnsafeToken : VerylToken;`
23642    ///
23643    #[parol_runtime::function_name::named]
23644    fn r#unsafe(&mut self, _unsafe_token: &ParseTreeType<'t>) -> Result<()> {
23645        let context = function_name!();
23646        trace!("{}", self.trace_item_stack(context));
23647        let unsafe_token = pop_item!(self, unsafe_token, UnsafeToken, context);
23648        let r#unsafe_built = Unsafe {
23649            unsafe_token: (&unsafe_token)
23650                .try_into()
23651                .map_err(parol_runtime::ParolError::UserError)?,
23652        };
23653        // Calling user action here
23654        self.user_grammar.r#unsafe(&r#unsafe_built)?;
23655        self.push(ASTType::Unsafe(r#unsafe_built), context);
23656        Ok(())
23657    }
23658
23659    /// Semantic action for production 408:
23660    ///
23661    /// `Var: VarToken : VerylToken;`
23662    ///
23663    #[parol_runtime::function_name::named]
23664    fn var(&mut self, _var_token: &ParseTreeType<'t>) -> Result<()> {
23665        let context = function_name!();
23666        trace!("{}", self.trace_item_stack(context));
23667        let var_token = pop_item!(self, var_token, VarToken, context);
23668        let var_built = Var {
23669            var_token: (&var_token)
23670                .try_into()
23671                .map_err(parol_runtime::ParolError::UserError)?,
23672        };
23673        // Calling user action here
23674        self.user_grammar.var(&var_built)?;
23675        self.push(ASTType::Var(var_built), context);
23676        Ok(())
23677    }
23678
23679    /// Semantic action for production 409:
23680    ///
23681    /// `DollarIdentifier: DollarIdentifierToken : VerylToken;`
23682    ///
23683    #[parol_runtime::function_name::named]
23684    fn dollar_identifier(&mut self, _dollar_identifier_token: &ParseTreeType<'t>) -> Result<()> {
23685        let context = function_name!();
23686        trace!("{}", self.trace_item_stack(context));
23687        let dollar_identifier_token = pop_item!(
23688            self,
23689            dollar_identifier_token,
23690            DollarIdentifierToken,
23691            context
23692        );
23693        let dollar_identifier_built = DollarIdentifier {
23694            dollar_identifier_token: (&dollar_identifier_token)
23695                .try_into()
23696                .map_err(parol_runtime::ParolError::UserError)?,
23697        };
23698        // Calling user action here
23699        self.user_grammar
23700            .dollar_identifier(&dollar_identifier_built)?;
23701        self.push(ASTType::DollarIdentifier(dollar_identifier_built), context);
23702        Ok(())
23703    }
23704
23705    /// Semantic action for production 410:
23706    ///
23707    /// `Identifier: IdentifierToken : VerylToken;`
23708    ///
23709    #[parol_runtime::function_name::named]
23710    fn identifier(&mut self, _identifier_token: &ParseTreeType<'t>) -> Result<()> {
23711        let context = function_name!();
23712        trace!("{}", self.trace_item_stack(context));
23713        let identifier_token = pop_item!(self, identifier_token, IdentifierToken, context);
23714        let identifier_built = Identifier {
23715            identifier_token: (&identifier_token)
23716                .try_into()
23717                .map_err(parol_runtime::ParolError::UserError)?,
23718        };
23719        // Calling user action here
23720        self.user_grammar.identifier(&identifier_built)?;
23721        self.push(ASTType::Identifier(identifier_built), context);
23722        Ok(())
23723    }
23724
23725    /// Semantic action for production 411:
23726    ///
23727    /// `Any: AnyToken : VerylToken;`
23728    ///
23729    #[parol_runtime::function_name::named]
23730    fn any(&mut self, _any_token: &ParseTreeType<'t>) -> Result<()> {
23731        let context = function_name!();
23732        trace!("{}", self.trace_item_stack(context));
23733        let any_token = pop_item!(self, any_token, AnyToken, context);
23734        let any_built = Any {
23735            any_token: (&any_token)
23736                .try_into()
23737                .map_err(parol_runtime::ParolError::UserError)?,
23738        };
23739        // Calling user action here
23740        self.user_grammar.any(&any_built)?;
23741        self.push(ASTType::Any(any_built), context);
23742        Ok(())
23743    }
23744
23745    /// Semantic action for production 412:
23746    ///
23747    /// `Number: IntegralNumber;`
23748    ///
23749    #[parol_runtime::function_name::named]
23750    fn number_0(&mut self, _integral_number: &ParseTreeType<'t>) -> Result<()> {
23751        let context = function_name!();
23752        trace!("{}", self.trace_item_stack(context));
23753        let integral_number = pop_item!(self, integral_number, IntegralNumber, context);
23754        let number_0_built = NumberIntegralNumber {
23755            integral_number: Box::new(integral_number),
23756        };
23757        let number_0_built = Number::IntegralNumber(number_0_built);
23758        // Calling user action here
23759        self.user_grammar.number(&number_0_built)?;
23760        self.push(ASTType::Number(number_0_built), context);
23761        Ok(())
23762    }
23763
23764    /// Semantic action for production 413:
23765    ///
23766    /// `Number: RealNumber;`
23767    ///
23768    #[parol_runtime::function_name::named]
23769    fn number_1(&mut self, _real_number: &ParseTreeType<'t>) -> Result<()> {
23770        let context = function_name!();
23771        trace!("{}", self.trace_item_stack(context));
23772        let real_number = pop_item!(self, real_number, RealNumber, context);
23773        let number_1_built = NumberRealNumber {
23774            real_number: Box::new(real_number),
23775        };
23776        let number_1_built = Number::RealNumber(number_1_built);
23777        // Calling user action here
23778        self.user_grammar.number(&number_1_built)?;
23779        self.push(ASTType::Number(number_1_built), context);
23780        Ok(())
23781    }
23782
23783    /// Semantic action for production 414:
23784    ///
23785    /// `IntegralNumber: Based;`
23786    ///
23787    #[parol_runtime::function_name::named]
23788    fn integral_number_0(&mut self, _based: &ParseTreeType<'t>) -> Result<()> {
23789        let context = function_name!();
23790        trace!("{}", self.trace_item_stack(context));
23791        let based = pop_item!(self, based, Based, context);
23792        let integral_number_0_built = IntegralNumberBased {
23793            based: Box::new(based),
23794        };
23795        let integral_number_0_built = IntegralNumber::Based(integral_number_0_built);
23796        // Calling user action here
23797        self.user_grammar
23798            .integral_number(&integral_number_0_built)?;
23799        self.push(ASTType::IntegralNumber(integral_number_0_built), context);
23800        Ok(())
23801    }
23802
23803    /// Semantic action for production 415:
23804    ///
23805    /// `IntegralNumber: BaseLess;`
23806    ///
23807    #[parol_runtime::function_name::named]
23808    fn integral_number_1(&mut self, _base_less: &ParseTreeType<'t>) -> Result<()> {
23809        let context = function_name!();
23810        trace!("{}", self.trace_item_stack(context));
23811        let base_less = pop_item!(self, base_less, BaseLess, context);
23812        let integral_number_1_built = IntegralNumberBaseLess {
23813            base_less: Box::new(base_less),
23814        };
23815        let integral_number_1_built = IntegralNumber::BaseLess(integral_number_1_built);
23816        // Calling user action here
23817        self.user_grammar
23818            .integral_number(&integral_number_1_built)?;
23819        self.push(ASTType::IntegralNumber(integral_number_1_built), context);
23820        Ok(())
23821    }
23822
23823    /// Semantic action for production 416:
23824    ///
23825    /// `IntegralNumber: AllBit;`
23826    ///
23827    #[parol_runtime::function_name::named]
23828    fn integral_number_2(&mut self, _all_bit: &ParseTreeType<'t>) -> Result<()> {
23829        let context = function_name!();
23830        trace!("{}", self.trace_item_stack(context));
23831        let all_bit = pop_item!(self, all_bit, AllBit, context);
23832        let integral_number_2_built = IntegralNumberAllBit {
23833            all_bit: Box::new(all_bit),
23834        };
23835        let integral_number_2_built = IntegralNumber::AllBit(integral_number_2_built);
23836        // Calling user action here
23837        self.user_grammar
23838            .integral_number(&integral_number_2_built)?;
23839        self.push(ASTType::IntegralNumber(integral_number_2_built), context);
23840        Ok(())
23841    }
23842
23843    /// Semantic action for production 417:
23844    ///
23845    /// `RealNumber: FixedPoint;`
23846    ///
23847    #[parol_runtime::function_name::named]
23848    fn real_number_0(&mut self, _fixed_point: &ParseTreeType<'t>) -> Result<()> {
23849        let context = function_name!();
23850        trace!("{}", self.trace_item_stack(context));
23851        let fixed_point = pop_item!(self, fixed_point, FixedPoint, context);
23852        let real_number_0_built = RealNumberFixedPoint {
23853            fixed_point: Box::new(fixed_point),
23854        };
23855        let real_number_0_built = RealNumber::FixedPoint(real_number_0_built);
23856        // Calling user action here
23857        self.user_grammar.real_number(&real_number_0_built)?;
23858        self.push(ASTType::RealNumber(real_number_0_built), context);
23859        Ok(())
23860    }
23861
23862    /// Semantic action for production 418:
23863    ///
23864    /// `RealNumber: Exponent;`
23865    ///
23866    #[parol_runtime::function_name::named]
23867    fn real_number_1(&mut self, _exponent: &ParseTreeType<'t>) -> Result<()> {
23868        let context = function_name!();
23869        trace!("{}", self.trace_item_stack(context));
23870        let exponent = pop_item!(self, exponent, Exponent, context);
23871        let real_number_1_built = RealNumberExponent {
23872            exponent: Box::new(exponent),
23873        };
23874        let real_number_1_built = RealNumber::Exponent(real_number_1_built);
23875        // Calling user action here
23876        self.user_grammar.real_number(&real_number_1_built)?;
23877        self.push(ASTType::RealNumber(real_number_1_built), context);
23878        Ok(())
23879    }
23880
23881    /// Semantic action for production 419:
23882    ///
23883    /// `HierarchicalIdentifier: Identifier HierarchicalIdentifierList /* Vec */ HierarchicalIdentifierList0 /* Vec */;`
23884    ///
23885    #[parol_runtime::function_name::named]
23886    fn hierarchical_identifier(
23887        &mut self,
23888        _identifier: &ParseTreeType<'t>,
23889        _hierarchical_identifier_list: &ParseTreeType<'t>,
23890        _hierarchical_identifier_list0: &ParseTreeType<'t>,
23891    ) -> Result<()> {
23892        let context = function_name!();
23893        trace!("{}", self.trace_item_stack(context));
23894        let hierarchical_identifier_list0 = pop_and_reverse_item!(
23895            self,
23896            hierarchical_identifier_list0,
23897            HierarchicalIdentifierList0,
23898            context
23899        );
23900        let hierarchical_identifier_list = pop_and_reverse_item!(
23901            self,
23902            hierarchical_identifier_list,
23903            HierarchicalIdentifierList,
23904            context
23905        );
23906        let identifier = pop_item!(self, identifier, Identifier, context);
23907        let hierarchical_identifier_built = HierarchicalIdentifier {
23908            identifier: Box::new(identifier),
23909            hierarchical_identifier_list,
23910            hierarchical_identifier_list0,
23911        };
23912        // Calling user action here
23913        self.user_grammar
23914            .hierarchical_identifier(&hierarchical_identifier_built)?;
23915        self.push(
23916            ASTType::HierarchicalIdentifier(hierarchical_identifier_built),
23917            context,
23918        );
23919        Ok(())
23920    }
23921
23922    /// Semantic action for production 420:
23923    ///
23924    /// `HierarchicalIdentifierList0 /* Vec<T>::Push */: Dot Identifier HierarchicalIdentifierList0List /* Vec */ HierarchicalIdentifierList0;`
23925    ///
23926    #[parol_runtime::function_name::named]
23927    fn hierarchical_identifier_list0_0(
23928        &mut self,
23929        _dot: &ParseTreeType<'t>,
23930        _identifier: &ParseTreeType<'t>,
23931        _hierarchical_identifier_list0_list: &ParseTreeType<'t>,
23932        _hierarchical_identifier_list0: &ParseTreeType<'t>,
23933    ) -> Result<()> {
23934        let context = function_name!();
23935        trace!("{}", self.trace_item_stack(context));
23936        let mut hierarchical_identifier_list0 = pop_item!(
23937            self,
23938            hierarchical_identifier_list0,
23939            HierarchicalIdentifierList0,
23940            context
23941        );
23942        let hierarchical_identifier_list0_list = pop_and_reverse_item!(
23943            self,
23944            hierarchical_identifier_list0_list,
23945            HierarchicalIdentifierList0List,
23946            context
23947        );
23948        let identifier = pop_item!(self, identifier, Identifier, context);
23949        let dot = pop_item!(self, dot, Dot, context);
23950        let hierarchical_identifier_list0_0_built = HierarchicalIdentifierList0 {
23951            hierarchical_identifier_list0_list,
23952            identifier: Box::new(identifier),
23953            dot: Box::new(dot),
23954        };
23955        // Add an element to the vector
23956        hierarchical_identifier_list0.push(hierarchical_identifier_list0_0_built);
23957        self.push(
23958            ASTType::HierarchicalIdentifierList0(hierarchical_identifier_list0),
23959            context,
23960        );
23961        Ok(())
23962    }
23963
23964    /// Semantic action for production 421:
23965    ///
23966    /// `HierarchicalIdentifierList0List /* Vec<T>::Push */: Select HierarchicalIdentifierList0List;`
23967    ///
23968    #[parol_runtime::function_name::named]
23969    fn hierarchical_identifier_list0_list_0(
23970        &mut self,
23971        _select: &ParseTreeType<'t>,
23972        _hierarchical_identifier_list0_list: &ParseTreeType<'t>,
23973    ) -> Result<()> {
23974        let context = function_name!();
23975        trace!("{}", self.trace_item_stack(context));
23976        let mut hierarchical_identifier_list0_list = pop_item!(
23977            self,
23978            hierarchical_identifier_list0_list,
23979            HierarchicalIdentifierList0List,
23980            context
23981        );
23982        let select = pop_item!(self, select, Select, context);
23983        let hierarchical_identifier_list0_list_0_built = HierarchicalIdentifierList0List {
23984            select: Box::new(select),
23985        };
23986        // Add an element to the vector
23987        hierarchical_identifier_list0_list.push(hierarchical_identifier_list0_list_0_built);
23988        self.push(
23989            ASTType::HierarchicalIdentifierList0List(hierarchical_identifier_list0_list),
23990            context,
23991        );
23992        Ok(())
23993    }
23994
23995    /// Semantic action for production 422:
23996    ///
23997    /// `HierarchicalIdentifierList0List /* Vec<T>::New */: ;`
23998    ///
23999    #[parol_runtime::function_name::named]
24000    fn hierarchical_identifier_list0_list_1(&mut self) -> Result<()> {
24001        let context = function_name!();
24002        trace!("{}", self.trace_item_stack(context));
24003        let hierarchical_identifier_list0_list_1_built = Vec::new();
24004        self.push(
24005            ASTType::HierarchicalIdentifierList0List(hierarchical_identifier_list0_list_1_built),
24006            context,
24007        );
24008        Ok(())
24009    }
24010
24011    /// Semantic action for production 423:
24012    ///
24013    /// `HierarchicalIdentifierList0 /* Vec<T>::New */: ;`
24014    ///
24015    #[parol_runtime::function_name::named]
24016    fn hierarchical_identifier_list0_1(&mut self) -> Result<()> {
24017        let context = function_name!();
24018        trace!("{}", self.trace_item_stack(context));
24019        let hierarchical_identifier_list0_1_built = Vec::new();
24020        self.push(
24021            ASTType::HierarchicalIdentifierList0(hierarchical_identifier_list0_1_built),
24022            context,
24023        );
24024        Ok(())
24025    }
24026
24027    /// Semantic action for production 424:
24028    ///
24029    /// `HierarchicalIdentifierList /* Vec<T>::Push */: Select HierarchicalIdentifierList;`
24030    ///
24031    #[parol_runtime::function_name::named]
24032    fn hierarchical_identifier_list_0(
24033        &mut self,
24034        _select: &ParseTreeType<'t>,
24035        _hierarchical_identifier_list: &ParseTreeType<'t>,
24036    ) -> Result<()> {
24037        let context = function_name!();
24038        trace!("{}", self.trace_item_stack(context));
24039        let mut hierarchical_identifier_list = pop_item!(
24040            self,
24041            hierarchical_identifier_list,
24042            HierarchicalIdentifierList,
24043            context
24044        );
24045        let select = pop_item!(self, select, Select, context);
24046        let hierarchical_identifier_list_0_built = HierarchicalIdentifierList {
24047            select: Box::new(select),
24048        };
24049        // Add an element to the vector
24050        hierarchical_identifier_list.push(hierarchical_identifier_list_0_built);
24051        self.push(
24052            ASTType::HierarchicalIdentifierList(hierarchical_identifier_list),
24053            context,
24054        );
24055        Ok(())
24056    }
24057
24058    /// Semantic action for production 425:
24059    ///
24060    /// `HierarchicalIdentifierList /* Vec<T>::New */: ;`
24061    ///
24062    #[parol_runtime::function_name::named]
24063    fn hierarchical_identifier_list_1(&mut self) -> Result<()> {
24064        let context = function_name!();
24065        trace!("{}", self.trace_item_stack(context));
24066        let hierarchical_identifier_list_1_built = Vec::new();
24067        self.push(
24068            ASTType::HierarchicalIdentifierList(hierarchical_identifier_list_1_built),
24069            context,
24070        );
24071        Ok(())
24072    }
24073
24074    /// Semantic action for production 426:
24075    ///
24076    /// `ScopedIdentifier: ScopedIdentifierGroup ScopedIdentifierList /* Vec */;`
24077    ///
24078    #[parol_runtime::function_name::named]
24079    fn scoped_identifier(
24080        &mut self,
24081        _scoped_identifier_group: &ParseTreeType<'t>,
24082        _scoped_identifier_list: &ParseTreeType<'t>,
24083    ) -> Result<()> {
24084        let context = function_name!();
24085        trace!("{}", self.trace_item_stack(context));
24086        let scoped_identifier_list =
24087            pop_and_reverse_item!(self, scoped_identifier_list, ScopedIdentifierList, context);
24088        let scoped_identifier_group = pop_item!(
24089            self,
24090            scoped_identifier_group,
24091            ScopedIdentifierGroup,
24092            context
24093        );
24094        let scoped_identifier_built = ScopedIdentifier {
24095            scoped_identifier_group: Box::new(scoped_identifier_group),
24096            scoped_identifier_list,
24097        };
24098        // Calling user action here
24099        self.user_grammar
24100            .scoped_identifier(&scoped_identifier_built)?;
24101        self.push(ASTType::ScopedIdentifier(scoped_identifier_built), context);
24102        Ok(())
24103    }
24104
24105    /// Semantic action for production 427:
24106    ///
24107    /// `ScopedIdentifierGroup: DollarIdentifier;`
24108    ///
24109    #[parol_runtime::function_name::named]
24110    fn scoped_identifier_group_0(&mut self, _dollar_identifier: &ParseTreeType<'t>) -> Result<()> {
24111        let context = function_name!();
24112        trace!("{}", self.trace_item_stack(context));
24113        let dollar_identifier = pop_item!(self, dollar_identifier, DollarIdentifier, context);
24114        let scoped_identifier_group_0_built = ScopedIdentifierGroupDollarIdentifier {
24115            dollar_identifier: Box::new(dollar_identifier),
24116        };
24117        let scoped_identifier_group_0_built =
24118            ScopedIdentifierGroup::DollarIdentifier(scoped_identifier_group_0_built);
24119        self.push(
24120            ASTType::ScopedIdentifierGroup(scoped_identifier_group_0_built),
24121            context,
24122        );
24123        Ok(())
24124    }
24125
24126    /// Semantic action for production 428:
24127    ///
24128    /// `ScopedIdentifierGroup: Identifier ScopedIdentifierOpt /* Option */;`
24129    ///
24130    #[parol_runtime::function_name::named]
24131    fn scoped_identifier_group_1(
24132        &mut self,
24133        _identifier: &ParseTreeType<'t>,
24134        _scoped_identifier_opt: &ParseTreeType<'t>,
24135    ) -> Result<()> {
24136        let context = function_name!();
24137        trace!("{}", self.trace_item_stack(context));
24138        let scoped_identifier_opt =
24139            pop_item!(self, scoped_identifier_opt, ScopedIdentifierOpt, context);
24140        let identifier = pop_item!(self, identifier, Identifier, context);
24141        let scoped_identifier_group_1_built = ScopedIdentifierGroupIdentifierScopedIdentifierOpt {
24142            identifier: Box::new(identifier),
24143            scoped_identifier_opt,
24144        };
24145        let scoped_identifier_group_1_built =
24146            ScopedIdentifierGroup::IdentifierScopedIdentifierOpt(scoped_identifier_group_1_built);
24147        self.push(
24148            ASTType::ScopedIdentifierGroup(scoped_identifier_group_1_built),
24149            context,
24150        );
24151        Ok(())
24152    }
24153
24154    /// Semantic action for production 429:
24155    ///
24156    /// `ScopedIdentifierList /* Vec<T>::Push */: ColonColon Identifier ScopedIdentifierOpt0 /* Option */ ScopedIdentifierList;`
24157    ///
24158    #[parol_runtime::function_name::named]
24159    fn scoped_identifier_list_0(
24160        &mut self,
24161        _colon_colon: &ParseTreeType<'t>,
24162        _identifier: &ParseTreeType<'t>,
24163        _scoped_identifier_opt0: &ParseTreeType<'t>,
24164        _scoped_identifier_list: &ParseTreeType<'t>,
24165    ) -> Result<()> {
24166        let context = function_name!();
24167        trace!("{}", self.trace_item_stack(context));
24168        let mut scoped_identifier_list =
24169            pop_item!(self, scoped_identifier_list, ScopedIdentifierList, context);
24170        let scoped_identifier_opt0 =
24171            pop_item!(self, scoped_identifier_opt0, ScopedIdentifierOpt0, context);
24172        let identifier = pop_item!(self, identifier, Identifier, context);
24173        let colon_colon = pop_item!(self, colon_colon, ColonColon, context);
24174        let scoped_identifier_list_0_built = ScopedIdentifierList {
24175            scoped_identifier_opt0,
24176            identifier: Box::new(identifier),
24177            colon_colon: Box::new(colon_colon),
24178        };
24179        // Add an element to the vector
24180        scoped_identifier_list.push(scoped_identifier_list_0_built);
24181        self.push(
24182            ASTType::ScopedIdentifierList(scoped_identifier_list),
24183            context,
24184        );
24185        Ok(())
24186    }
24187
24188    /// Semantic action for production 430:
24189    ///
24190    /// `ScopedIdentifierList /* Vec<T>::New */: ;`
24191    ///
24192    #[parol_runtime::function_name::named]
24193    fn scoped_identifier_list_1(&mut self) -> Result<()> {
24194        let context = function_name!();
24195        trace!("{}", self.trace_item_stack(context));
24196        let scoped_identifier_list_1_built = Vec::new();
24197        self.push(
24198            ASTType::ScopedIdentifierList(scoped_identifier_list_1_built),
24199            context,
24200        );
24201        Ok(())
24202    }
24203
24204    /// Semantic action for production 431:
24205    ///
24206    /// `ScopedIdentifierOpt0 /* Option<T>::Some */: WithGenericArgument;`
24207    ///
24208    #[parol_runtime::function_name::named]
24209    fn scoped_identifier_opt0_0(
24210        &mut self,
24211        _with_generic_argument: &ParseTreeType<'t>,
24212    ) -> Result<()> {
24213        let context = function_name!();
24214        trace!("{}", self.trace_item_stack(context));
24215        let with_generic_argument =
24216            pop_item!(self, with_generic_argument, WithGenericArgument, context);
24217        let scoped_identifier_opt0_0_built = ScopedIdentifierOpt0 {
24218            with_generic_argument: Box::new(with_generic_argument),
24219        };
24220        self.push(
24221            ASTType::ScopedIdentifierOpt0(Some(scoped_identifier_opt0_0_built)),
24222            context,
24223        );
24224        Ok(())
24225    }
24226
24227    /// Semantic action for production 432:
24228    ///
24229    /// `ScopedIdentifierOpt0 /* Option<T>::None */: ;`
24230    ///
24231    #[parol_runtime::function_name::named]
24232    fn scoped_identifier_opt0_1(&mut self) -> Result<()> {
24233        let context = function_name!();
24234        trace!("{}", self.trace_item_stack(context));
24235        self.push(ASTType::ScopedIdentifierOpt0(None), context);
24236        Ok(())
24237    }
24238
24239    /// Semantic action for production 433:
24240    ///
24241    /// `ScopedIdentifierOpt /* Option<T>::Some */: WithGenericArgument;`
24242    ///
24243    #[parol_runtime::function_name::named]
24244    fn scoped_identifier_opt_0(
24245        &mut self,
24246        _with_generic_argument: &ParseTreeType<'t>,
24247    ) -> Result<()> {
24248        let context = function_name!();
24249        trace!("{}", self.trace_item_stack(context));
24250        let with_generic_argument =
24251            pop_item!(self, with_generic_argument, WithGenericArgument, context);
24252        let scoped_identifier_opt_0_built = ScopedIdentifierOpt {
24253            with_generic_argument: Box::new(with_generic_argument),
24254        };
24255        self.push(
24256            ASTType::ScopedIdentifierOpt(Some(scoped_identifier_opt_0_built)),
24257            context,
24258        );
24259        Ok(())
24260    }
24261
24262    /// Semantic action for production 434:
24263    ///
24264    /// `ScopedIdentifierOpt /* Option<T>::None */: ;`
24265    ///
24266    #[parol_runtime::function_name::named]
24267    fn scoped_identifier_opt_1(&mut self) -> Result<()> {
24268        let context = function_name!();
24269        trace!("{}", self.trace_item_stack(context));
24270        self.push(ASTType::ScopedIdentifierOpt(None), context);
24271        Ok(())
24272    }
24273
24274    /// Semantic action for production 435:
24275    ///
24276    /// `ExpressionIdentifier: ScopedIdentifier ExpressionIdentifierOpt /* Option */ ExpressionIdentifierList /* Vec */ ExpressionIdentifierList0 /* Vec */;`
24277    ///
24278    #[parol_runtime::function_name::named]
24279    fn expression_identifier(
24280        &mut self,
24281        _scoped_identifier: &ParseTreeType<'t>,
24282        _expression_identifier_opt: &ParseTreeType<'t>,
24283        _expression_identifier_list: &ParseTreeType<'t>,
24284        _expression_identifier_list0: &ParseTreeType<'t>,
24285    ) -> Result<()> {
24286        let context = function_name!();
24287        trace!("{}", self.trace_item_stack(context));
24288        let expression_identifier_list0 = pop_and_reverse_item!(
24289            self,
24290            expression_identifier_list0,
24291            ExpressionIdentifierList0,
24292            context
24293        );
24294        let expression_identifier_list = pop_and_reverse_item!(
24295            self,
24296            expression_identifier_list,
24297            ExpressionIdentifierList,
24298            context
24299        );
24300        let expression_identifier_opt = pop_item!(
24301            self,
24302            expression_identifier_opt,
24303            ExpressionIdentifierOpt,
24304            context
24305        );
24306        let scoped_identifier = pop_item!(self, scoped_identifier, ScopedIdentifier, context);
24307        let expression_identifier_built = ExpressionIdentifier {
24308            scoped_identifier: Box::new(scoped_identifier),
24309            expression_identifier_opt,
24310            expression_identifier_list,
24311            expression_identifier_list0,
24312        };
24313        // Calling user action here
24314        self.user_grammar
24315            .expression_identifier(&expression_identifier_built)?;
24316        self.push(
24317            ASTType::ExpressionIdentifier(expression_identifier_built),
24318            context,
24319        );
24320        Ok(())
24321    }
24322
24323    /// Semantic action for production 436:
24324    ///
24325    /// `ExpressionIdentifierList0 /* Vec<T>::Push */: Dot Identifier ExpressionIdentifierList0List /* Vec */ ExpressionIdentifierList0;`
24326    ///
24327    #[parol_runtime::function_name::named]
24328    fn expression_identifier_list0_0(
24329        &mut self,
24330        _dot: &ParseTreeType<'t>,
24331        _identifier: &ParseTreeType<'t>,
24332        _expression_identifier_list0_list: &ParseTreeType<'t>,
24333        _expression_identifier_list0: &ParseTreeType<'t>,
24334    ) -> Result<()> {
24335        let context = function_name!();
24336        trace!("{}", self.trace_item_stack(context));
24337        let mut expression_identifier_list0 = pop_item!(
24338            self,
24339            expression_identifier_list0,
24340            ExpressionIdentifierList0,
24341            context
24342        );
24343        let expression_identifier_list0_list = pop_and_reverse_item!(
24344            self,
24345            expression_identifier_list0_list,
24346            ExpressionIdentifierList0List,
24347            context
24348        );
24349        let identifier = pop_item!(self, identifier, Identifier, context);
24350        let dot = pop_item!(self, dot, Dot, context);
24351        let expression_identifier_list0_0_built = ExpressionIdentifierList0 {
24352            expression_identifier_list0_list,
24353            identifier: Box::new(identifier),
24354            dot: Box::new(dot),
24355        };
24356        // Add an element to the vector
24357        expression_identifier_list0.push(expression_identifier_list0_0_built);
24358        self.push(
24359            ASTType::ExpressionIdentifierList0(expression_identifier_list0),
24360            context,
24361        );
24362        Ok(())
24363    }
24364
24365    /// Semantic action for production 437:
24366    ///
24367    /// `ExpressionIdentifierList0List /* Vec<T>::Push */: Select ExpressionIdentifierList0List;`
24368    ///
24369    #[parol_runtime::function_name::named]
24370    fn expression_identifier_list0_list_0(
24371        &mut self,
24372        _select: &ParseTreeType<'t>,
24373        _expression_identifier_list0_list: &ParseTreeType<'t>,
24374    ) -> Result<()> {
24375        let context = function_name!();
24376        trace!("{}", self.trace_item_stack(context));
24377        let mut expression_identifier_list0_list = pop_item!(
24378            self,
24379            expression_identifier_list0_list,
24380            ExpressionIdentifierList0List,
24381            context
24382        );
24383        let select = pop_item!(self, select, Select, context);
24384        let expression_identifier_list0_list_0_built = ExpressionIdentifierList0List {
24385            select: Box::new(select),
24386        };
24387        // Add an element to the vector
24388        expression_identifier_list0_list.push(expression_identifier_list0_list_0_built);
24389        self.push(
24390            ASTType::ExpressionIdentifierList0List(expression_identifier_list0_list),
24391            context,
24392        );
24393        Ok(())
24394    }
24395
24396    /// Semantic action for production 438:
24397    ///
24398    /// `ExpressionIdentifierList0List /* Vec<T>::New */: ;`
24399    ///
24400    #[parol_runtime::function_name::named]
24401    fn expression_identifier_list0_list_1(&mut self) -> Result<()> {
24402        let context = function_name!();
24403        trace!("{}", self.trace_item_stack(context));
24404        let expression_identifier_list0_list_1_built = Vec::new();
24405        self.push(
24406            ASTType::ExpressionIdentifierList0List(expression_identifier_list0_list_1_built),
24407            context,
24408        );
24409        Ok(())
24410    }
24411
24412    /// Semantic action for production 439:
24413    ///
24414    /// `ExpressionIdentifierList0 /* Vec<T>::New */: ;`
24415    ///
24416    #[parol_runtime::function_name::named]
24417    fn expression_identifier_list0_1(&mut self) -> Result<()> {
24418        let context = function_name!();
24419        trace!("{}", self.trace_item_stack(context));
24420        let expression_identifier_list0_1_built = Vec::new();
24421        self.push(
24422            ASTType::ExpressionIdentifierList0(expression_identifier_list0_1_built),
24423            context,
24424        );
24425        Ok(())
24426    }
24427
24428    /// Semantic action for production 440:
24429    ///
24430    /// `ExpressionIdentifierList /* Vec<T>::Push */: Select ExpressionIdentifierList;`
24431    ///
24432    #[parol_runtime::function_name::named]
24433    fn expression_identifier_list_0(
24434        &mut self,
24435        _select: &ParseTreeType<'t>,
24436        _expression_identifier_list: &ParseTreeType<'t>,
24437    ) -> Result<()> {
24438        let context = function_name!();
24439        trace!("{}", self.trace_item_stack(context));
24440        let mut expression_identifier_list = pop_item!(
24441            self,
24442            expression_identifier_list,
24443            ExpressionIdentifierList,
24444            context
24445        );
24446        let select = pop_item!(self, select, Select, context);
24447        let expression_identifier_list_0_built = ExpressionIdentifierList {
24448            select: Box::new(select),
24449        };
24450        // Add an element to the vector
24451        expression_identifier_list.push(expression_identifier_list_0_built);
24452        self.push(
24453            ASTType::ExpressionIdentifierList(expression_identifier_list),
24454            context,
24455        );
24456        Ok(())
24457    }
24458
24459    /// Semantic action for production 441:
24460    ///
24461    /// `ExpressionIdentifierList /* Vec<T>::New */: ;`
24462    ///
24463    #[parol_runtime::function_name::named]
24464    fn expression_identifier_list_1(&mut self) -> Result<()> {
24465        let context = function_name!();
24466        trace!("{}", self.trace_item_stack(context));
24467        let expression_identifier_list_1_built = Vec::new();
24468        self.push(
24469            ASTType::ExpressionIdentifierList(expression_identifier_list_1_built),
24470            context,
24471        );
24472        Ok(())
24473    }
24474
24475    /// Semantic action for production 442:
24476    ///
24477    /// `ExpressionIdentifierOpt /* Option<T>::Some */: Width;`
24478    ///
24479    #[parol_runtime::function_name::named]
24480    fn expression_identifier_opt_0(&mut self, _width: &ParseTreeType<'t>) -> Result<()> {
24481        let context = function_name!();
24482        trace!("{}", self.trace_item_stack(context));
24483        let width = pop_item!(self, width, Width, context);
24484        let expression_identifier_opt_0_built = ExpressionIdentifierOpt {
24485            width: Box::new(width),
24486        };
24487        self.push(
24488            ASTType::ExpressionIdentifierOpt(Some(expression_identifier_opt_0_built)),
24489            context,
24490        );
24491        Ok(())
24492    }
24493
24494    /// Semantic action for production 443:
24495    ///
24496    /// `ExpressionIdentifierOpt /* Option<T>::None */: ;`
24497    ///
24498    #[parol_runtime::function_name::named]
24499    fn expression_identifier_opt_1(&mut self) -> Result<()> {
24500        let context = function_name!();
24501        trace!("{}", self.trace_item_stack(context));
24502        self.push(ASTType::ExpressionIdentifierOpt(None), context);
24503        Ok(())
24504    }
24505
24506    /// Semantic action for production 444:
24507    ///
24508    /// `GenericArgIdentifier: ScopedIdentifier GenericArgIdentifierList /* Vec */;`
24509    ///
24510    #[parol_runtime::function_name::named]
24511    fn generic_arg_identifier(
24512        &mut self,
24513        _scoped_identifier: &ParseTreeType<'t>,
24514        _generic_arg_identifier_list: &ParseTreeType<'t>,
24515    ) -> Result<()> {
24516        let context = function_name!();
24517        trace!("{}", self.trace_item_stack(context));
24518        let generic_arg_identifier_list = pop_and_reverse_item!(
24519            self,
24520            generic_arg_identifier_list,
24521            GenericArgIdentifierList,
24522            context
24523        );
24524        let scoped_identifier = pop_item!(self, scoped_identifier, ScopedIdentifier, context);
24525        let generic_arg_identifier_built = GenericArgIdentifier {
24526            scoped_identifier: Box::new(scoped_identifier),
24527            generic_arg_identifier_list,
24528        };
24529        // Calling user action here
24530        self.user_grammar
24531            .generic_arg_identifier(&generic_arg_identifier_built)?;
24532        self.push(
24533            ASTType::GenericArgIdentifier(generic_arg_identifier_built),
24534            context,
24535        );
24536        Ok(())
24537    }
24538
24539    /// Semantic action for production 445:
24540    ///
24541    /// `GenericArgIdentifierList /* Vec<T>::Push */: Dot Identifier GenericArgIdentifierList;`
24542    ///
24543    #[parol_runtime::function_name::named]
24544    fn generic_arg_identifier_list_0(
24545        &mut self,
24546        _dot: &ParseTreeType<'t>,
24547        _identifier: &ParseTreeType<'t>,
24548        _generic_arg_identifier_list: &ParseTreeType<'t>,
24549    ) -> Result<()> {
24550        let context = function_name!();
24551        trace!("{}", self.trace_item_stack(context));
24552        let mut generic_arg_identifier_list = pop_item!(
24553            self,
24554            generic_arg_identifier_list,
24555            GenericArgIdentifierList,
24556            context
24557        );
24558        let identifier = pop_item!(self, identifier, Identifier, context);
24559        let dot = pop_item!(self, dot, Dot, context);
24560        let generic_arg_identifier_list_0_built = GenericArgIdentifierList {
24561            identifier: Box::new(identifier),
24562            dot: Box::new(dot),
24563        };
24564        // Add an element to the vector
24565        generic_arg_identifier_list.push(generic_arg_identifier_list_0_built);
24566        self.push(
24567            ASTType::GenericArgIdentifierList(generic_arg_identifier_list),
24568            context,
24569        );
24570        Ok(())
24571    }
24572
24573    /// Semantic action for production 446:
24574    ///
24575    /// `GenericArgIdentifierList /* Vec<T>::New */: ;`
24576    ///
24577    #[parol_runtime::function_name::named]
24578    fn generic_arg_identifier_list_1(&mut self) -> Result<()> {
24579        let context = function_name!();
24580        trace!("{}", self.trace_item_stack(context));
24581        let generic_arg_identifier_list_1_built = Vec::new();
24582        self.push(
24583            ASTType::GenericArgIdentifierList(generic_arg_identifier_list_1_built),
24584            context,
24585        );
24586        Ok(())
24587    }
24588
24589    /// Semantic action for production 447:
24590    ///
24591    /// `Expression: IfExpression;`
24592    ///
24593    #[parol_runtime::function_name::named]
24594    fn expression(&mut self, _if_expression: &ParseTreeType<'t>) -> Result<()> {
24595        let context = function_name!();
24596        trace!("{}", self.trace_item_stack(context));
24597        let if_expression = pop_item!(self, if_expression, IfExpression, context);
24598        let expression_built = Expression {
24599            if_expression: Box::new(if_expression),
24600        };
24601        // Calling user action here
24602        self.user_grammar.expression(&expression_built)?;
24603        self.push(ASTType::Expression(expression_built), context);
24604        Ok(())
24605    }
24606
24607    /// Semantic action for production 448:
24608    ///
24609    /// `IfExpression: IfExpressionList /* Vec */ Expression01;`
24610    ///
24611    #[parol_runtime::function_name::named]
24612    fn if_expression(
24613        &mut self,
24614        _if_expression_list: &ParseTreeType<'t>,
24615        _expression01: &ParseTreeType<'t>,
24616    ) -> Result<()> {
24617        let context = function_name!();
24618        trace!("{}", self.trace_item_stack(context));
24619        let expression01 = pop_item!(self, expression01, Expression01, context);
24620        let if_expression_list =
24621            pop_and_reverse_item!(self, if_expression_list, IfExpressionList, context);
24622        let if_expression_built = IfExpression {
24623            if_expression_list,
24624            expression01: Box::new(expression01),
24625        };
24626        // Calling user action here
24627        self.user_grammar.if_expression(&if_expression_built)?;
24628        self.push(ASTType::IfExpression(if_expression_built), context);
24629        Ok(())
24630    }
24631
24632    /// Semantic action for production 449:
24633    ///
24634    /// `IfExpressionList /* Vec<T>::Push */: If Expression Question Expression Colon IfExpressionList;`
24635    ///
24636    #[parol_runtime::function_name::named]
24637    fn if_expression_list_0(
24638        &mut self,
24639        _if: &ParseTreeType<'t>,
24640        _expression: &ParseTreeType<'t>,
24641        _question: &ParseTreeType<'t>,
24642        _expression0: &ParseTreeType<'t>,
24643        _colon: &ParseTreeType<'t>,
24644        _if_expression_list: &ParseTreeType<'t>,
24645    ) -> Result<()> {
24646        let context = function_name!();
24647        trace!("{}", self.trace_item_stack(context));
24648        let mut if_expression_list = pop_item!(self, if_expression_list, IfExpressionList, context);
24649        let colon = pop_item!(self, colon, Colon, context);
24650        let expression0 = pop_item!(self, expression0, Expression, context);
24651        let question = pop_item!(self, question, Question, context);
24652        let expression = pop_item!(self, expression, Expression, context);
24653        let r#if = pop_item!(self, r#if, If, context);
24654        let if_expression_list_0_built = IfExpressionList {
24655            colon: Box::new(colon),
24656            expression0: Box::new(expression0),
24657            question: Box::new(question),
24658            expression: Box::new(expression),
24659            r#if: Box::new(r#if),
24660        };
24661        // Add an element to the vector
24662        if_expression_list.push(if_expression_list_0_built);
24663        self.push(ASTType::IfExpressionList(if_expression_list), context);
24664        Ok(())
24665    }
24666
24667    /// Semantic action for production 450:
24668    ///
24669    /// `IfExpressionList /* Vec<T>::New */: ;`
24670    ///
24671    #[parol_runtime::function_name::named]
24672    fn if_expression_list_1(&mut self) -> Result<()> {
24673        let context = function_name!();
24674        trace!("{}", self.trace_item_stack(context));
24675        let if_expression_list_1_built = Vec::new();
24676        self.push(
24677            ASTType::IfExpressionList(if_expression_list_1_built),
24678            context,
24679        );
24680        Ok(())
24681    }
24682
24683    /// Semantic action for production 451:
24684    ///
24685    /// `Expression01: Expression02 Expression01List /* Vec */;`
24686    ///
24687    #[parol_runtime::function_name::named]
24688    fn expression01(
24689        &mut self,
24690        _expression02: &ParseTreeType<'t>,
24691        _expression01_list: &ParseTreeType<'t>,
24692    ) -> Result<()> {
24693        let context = function_name!();
24694        trace!("{}", self.trace_item_stack(context));
24695        let expression01_list =
24696            pop_and_reverse_item!(self, expression01_list, Expression01List, context);
24697        let expression02 = pop_item!(self, expression02, Expression02, context);
24698        let expression01_built = Expression01 {
24699            expression02: Box::new(expression02),
24700            expression01_list,
24701        };
24702        // Calling user action here
24703        self.user_grammar.expression01(&expression01_built)?;
24704        self.push(ASTType::Expression01(expression01_built), context);
24705        Ok(())
24706    }
24707
24708    /// Semantic action for production 452:
24709    ///
24710    /// `Expression01List /* Vec<T>::Push */: Expression01Op Expression02 Expression01List;`
24711    ///
24712    #[parol_runtime::function_name::named]
24713    fn expression01_list_0(
24714        &mut self,
24715        _expression01_op: &ParseTreeType<'t>,
24716        _expression02: &ParseTreeType<'t>,
24717        _expression01_list: &ParseTreeType<'t>,
24718    ) -> Result<()> {
24719        let context = function_name!();
24720        trace!("{}", self.trace_item_stack(context));
24721        let mut expression01_list = pop_item!(self, expression01_list, Expression01List, context);
24722        let expression02 = pop_item!(self, expression02, Expression02, context);
24723        let expression01_op = pop_item!(self, expression01_op, Expression01Op, context);
24724        let expression01_list_0_built = Expression01List {
24725            expression02: Box::new(expression02),
24726            expression01_op: Box::new(expression01_op),
24727        };
24728        // Add an element to the vector
24729        expression01_list.push(expression01_list_0_built);
24730        self.push(ASTType::Expression01List(expression01_list), context);
24731        Ok(())
24732    }
24733
24734    /// Semantic action for production 453:
24735    ///
24736    /// `Expression01List /* Vec<T>::New */: ;`
24737    ///
24738    #[parol_runtime::function_name::named]
24739    fn expression01_list_1(&mut self) -> Result<()> {
24740        let context = function_name!();
24741        trace!("{}", self.trace_item_stack(context));
24742        let expression01_list_1_built = Vec::new();
24743        self.push(
24744            ASTType::Expression01List(expression01_list_1_built),
24745            context,
24746        );
24747        Ok(())
24748    }
24749
24750    /// Semantic action for production 454:
24751    ///
24752    /// `Expression02: Expression02List /* Vec */ Factor Expression02Opt /* Option */;`
24753    ///
24754    #[parol_runtime::function_name::named]
24755    fn expression02(
24756        &mut self,
24757        _expression02_list: &ParseTreeType<'t>,
24758        _factor: &ParseTreeType<'t>,
24759        _expression02_opt: &ParseTreeType<'t>,
24760    ) -> Result<()> {
24761        let context = function_name!();
24762        trace!("{}", self.trace_item_stack(context));
24763        let expression02_opt = pop_item!(self, expression02_opt, Expression02Opt, context);
24764        let factor = pop_item!(self, factor, Factor, context);
24765        let expression02_list =
24766            pop_and_reverse_item!(self, expression02_list, Expression02List, context);
24767        let expression02_built = Expression02 {
24768            expression02_list,
24769            factor: Box::new(factor),
24770            expression02_opt,
24771        };
24772        // Calling user action here
24773        self.user_grammar.expression02(&expression02_built)?;
24774        self.push(ASTType::Expression02(expression02_built), context);
24775        Ok(())
24776    }
24777
24778    /// Semantic action for production 455:
24779    ///
24780    /// `Expression02List /* Vec<T>::Push */: Expression02Op Expression02List;`
24781    ///
24782    #[parol_runtime::function_name::named]
24783    fn expression02_list_0(
24784        &mut self,
24785        _expression02_op: &ParseTreeType<'t>,
24786        _expression02_list: &ParseTreeType<'t>,
24787    ) -> Result<()> {
24788        let context = function_name!();
24789        trace!("{}", self.trace_item_stack(context));
24790        let mut expression02_list = pop_item!(self, expression02_list, Expression02List, context);
24791        let expression02_op = pop_item!(self, expression02_op, Expression02Op, context);
24792        let expression02_list_0_built = Expression02List {
24793            expression02_op: Box::new(expression02_op),
24794        };
24795        // Add an element to the vector
24796        expression02_list.push(expression02_list_0_built);
24797        self.push(ASTType::Expression02List(expression02_list), context);
24798        Ok(())
24799    }
24800
24801    /// Semantic action for production 456:
24802    ///
24803    /// `Expression02List /* Vec<T>::New */: ;`
24804    ///
24805    #[parol_runtime::function_name::named]
24806    fn expression02_list_1(&mut self) -> Result<()> {
24807        let context = function_name!();
24808        trace!("{}", self.trace_item_stack(context));
24809        let expression02_list_1_built = Vec::new();
24810        self.push(
24811            ASTType::Expression02List(expression02_list_1_built),
24812            context,
24813        );
24814        Ok(())
24815    }
24816
24817    /// Semantic action for production 457:
24818    ///
24819    /// `Expression02Opt /* Option<T>::Some */: As CastingType;`
24820    ///
24821    #[parol_runtime::function_name::named]
24822    fn expression02_opt_0(
24823        &mut self,
24824        _as: &ParseTreeType<'t>,
24825        _casting_type: &ParseTreeType<'t>,
24826    ) -> Result<()> {
24827        let context = function_name!();
24828        trace!("{}", self.trace_item_stack(context));
24829        let casting_type = pop_item!(self, casting_type, CastingType, context);
24830        let r#as = pop_item!(self, r#as, As, context);
24831        let expression02_opt_0_built = Expression02Opt {
24832            r#as: Box::new(r#as),
24833            casting_type: Box::new(casting_type),
24834        };
24835        self.push(
24836            ASTType::Expression02Opt(Some(expression02_opt_0_built)),
24837            context,
24838        );
24839        Ok(())
24840    }
24841
24842    /// Semantic action for production 458:
24843    ///
24844    /// `Expression02Opt /* Option<T>::None */: ;`
24845    ///
24846    #[parol_runtime::function_name::named]
24847    fn expression02_opt_1(&mut self) -> Result<()> {
24848        let context = function_name!();
24849        trace!("{}", self.trace_item_stack(context));
24850        self.push(ASTType::Expression02Opt(None), context);
24851        Ok(())
24852    }
24853
24854    /// Semantic action for production 459:
24855    ///
24856    /// `Expression01Op: Operator01;`
24857    ///
24858    #[parol_runtime::function_name::named]
24859    fn expression01_op_0(&mut self, _operator01: &ParseTreeType<'t>) -> Result<()> {
24860        let context = function_name!();
24861        trace!("{}", self.trace_item_stack(context));
24862        let operator01 = pop_item!(self, operator01, Operator01, context);
24863        let expression01_op_0_built = Expression01OpOperator01 {
24864            operator01: Box::new(operator01),
24865        };
24866        let expression01_op_0_built = Expression01Op::Operator01(expression01_op_0_built);
24867        // Calling user action here
24868        self.user_grammar
24869            .expression01_op(&expression01_op_0_built)?;
24870        self.push(ASTType::Expression01Op(expression01_op_0_built), context);
24871        Ok(())
24872    }
24873
24874    /// Semantic action for production 460:
24875    ///
24876    /// `Expression01Op: Operator02;`
24877    ///
24878    #[parol_runtime::function_name::named]
24879    fn expression01_op_1(&mut self, _operator02: &ParseTreeType<'t>) -> Result<()> {
24880        let context = function_name!();
24881        trace!("{}", self.trace_item_stack(context));
24882        let operator02 = pop_item!(self, operator02, Operator02, context);
24883        let expression01_op_1_built = Expression01OpOperator02 {
24884            operator02: Box::new(operator02),
24885        };
24886        let expression01_op_1_built = Expression01Op::Operator02(expression01_op_1_built);
24887        // Calling user action here
24888        self.user_grammar
24889            .expression01_op(&expression01_op_1_built)?;
24890        self.push(ASTType::Expression01Op(expression01_op_1_built), context);
24891        Ok(())
24892    }
24893
24894    /// Semantic action for production 461:
24895    ///
24896    /// `Expression01Op: Operator03;`
24897    ///
24898    #[parol_runtime::function_name::named]
24899    fn expression01_op_2(&mut self, _operator03: &ParseTreeType<'t>) -> Result<()> {
24900        let context = function_name!();
24901        trace!("{}", self.trace_item_stack(context));
24902        let operator03 = pop_item!(self, operator03, Operator03, context);
24903        let expression01_op_2_built = Expression01OpOperator03 {
24904            operator03: Box::new(operator03),
24905        };
24906        let expression01_op_2_built = Expression01Op::Operator03(expression01_op_2_built);
24907        // Calling user action here
24908        self.user_grammar
24909            .expression01_op(&expression01_op_2_built)?;
24910        self.push(ASTType::Expression01Op(expression01_op_2_built), context);
24911        Ok(())
24912    }
24913
24914    /// Semantic action for production 462:
24915    ///
24916    /// `Expression01Op: Operator04;`
24917    ///
24918    #[parol_runtime::function_name::named]
24919    fn expression01_op_3(&mut self, _operator04: &ParseTreeType<'t>) -> Result<()> {
24920        let context = function_name!();
24921        trace!("{}", self.trace_item_stack(context));
24922        let operator04 = pop_item!(self, operator04, Operator04, context);
24923        let expression01_op_3_built = Expression01OpOperator04 {
24924            operator04: Box::new(operator04),
24925        };
24926        let expression01_op_3_built = Expression01Op::Operator04(expression01_op_3_built);
24927        // Calling user action here
24928        self.user_grammar
24929            .expression01_op(&expression01_op_3_built)?;
24930        self.push(ASTType::Expression01Op(expression01_op_3_built), context);
24931        Ok(())
24932    }
24933
24934    /// Semantic action for production 463:
24935    ///
24936    /// `Expression01Op: Operator05;`
24937    ///
24938    #[parol_runtime::function_name::named]
24939    fn expression01_op_4(&mut self, _operator05: &ParseTreeType<'t>) -> Result<()> {
24940        let context = function_name!();
24941        trace!("{}", self.trace_item_stack(context));
24942        let operator05 = pop_item!(self, operator05, Operator05, context);
24943        let expression01_op_4_built = Expression01OpOperator05 {
24944            operator05: Box::new(operator05),
24945        };
24946        let expression01_op_4_built = Expression01Op::Operator05(expression01_op_4_built);
24947        // Calling user action here
24948        self.user_grammar
24949            .expression01_op(&expression01_op_4_built)?;
24950        self.push(ASTType::Expression01Op(expression01_op_4_built), context);
24951        Ok(())
24952    }
24953
24954    /// Semantic action for production 464:
24955    ///
24956    /// `Expression01Op: Operator06;`
24957    ///
24958    #[parol_runtime::function_name::named]
24959    fn expression01_op_5(&mut self, _operator06: &ParseTreeType<'t>) -> Result<()> {
24960        let context = function_name!();
24961        trace!("{}", self.trace_item_stack(context));
24962        let operator06 = pop_item!(self, operator06, Operator06, context);
24963        let expression01_op_5_built = Expression01OpOperator06 {
24964            operator06: Box::new(operator06),
24965        };
24966        let expression01_op_5_built = Expression01Op::Operator06(expression01_op_5_built);
24967        // Calling user action here
24968        self.user_grammar
24969            .expression01_op(&expression01_op_5_built)?;
24970        self.push(ASTType::Expression01Op(expression01_op_5_built), context);
24971        Ok(())
24972    }
24973
24974    /// Semantic action for production 465:
24975    ///
24976    /// `Expression01Op: Operator07;`
24977    ///
24978    #[parol_runtime::function_name::named]
24979    fn expression01_op_6(&mut self, _operator07: &ParseTreeType<'t>) -> Result<()> {
24980        let context = function_name!();
24981        trace!("{}", self.trace_item_stack(context));
24982        let operator07 = pop_item!(self, operator07, Operator07, context);
24983        let expression01_op_6_built = Expression01OpOperator07 {
24984            operator07: Box::new(operator07),
24985        };
24986        let expression01_op_6_built = Expression01Op::Operator07(expression01_op_6_built);
24987        // Calling user action here
24988        self.user_grammar
24989            .expression01_op(&expression01_op_6_built)?;
24990        self.push(ASTType::Expression01Op(expression01_op_6_built), context);
24991        Ok(())
24992    }
24993
24994    /// Semantic action for production 466:
24995    ///
24996    /// `Expression01Op: Star;`
24997    ///
24998    #[parol_runtime::function_name::named]
24999    fn expression01_op_7(&mut self, _star: &ParseTreeType<'t>) -> Result<()> {
25000        let context = function_name!();
25001        trace!("{}", self.trace_item_stack(context));
25002        let star = pop_item!(self, star, Star, context);
25003        let expression01_op_7_built = Expression01OpStar {
25004            star: Box::new(star),
25005        };
25006        let expression01_op_7_built = Expression01Op::Star(expression01_op_7_built);
25007        // Calling user action here
25008        self.user_grammar
25009            .expression01_op(&expression01_op_7_built)?;
25010        self.push(ASTType::Expression01Op(expression01_op_7_built), context);
25011        Ok(())
25012    }
25013
25014    /// Semantic action for production 467:
25015    ///
25016    /// `Expression01Op: Operator08;`
25017    ///
25018    #[parol_runtime::function_name::named]
25019    fn expression01_op_8(&mut self, _operator08: &ParseTreeType<'t>) -> Result<()> {
25020        let context = function_name!();
25021        trace!("{}", self.trace_item_stack(context));
25022        let operator08 = pop_item!(self, operator08, Operator08, context);
25023        let expression01_op_8_built = Expression01OpOperator08 {
25024            operator08: Box::new(operator08),
25025        };
25026        let expression01_op_8_built = Expression01Op::Operator08(expression01_op_8_built);
25027        // Calling user action here
25028        self.user_grammar
25029            .expression01_op(&expression01_op_8_built)?;
25030        self.push(ASTType::Expression01Op(expression01_op_8_built), context);
25031        Ok(())
25032    }
25033
25034    /// Semantic action for production 468:
25035    ///
25036    /// `Expression02Op: UnaryOperator;`
25037    ///
25038    #[parol_runtime::function_name::named]
25039    fn expression02_op_0(&mut self, _unary_operator: &ParseTreeType<'t>) -> Result<()> {
25040        let context = function_name!();
25041        trace!("{}", self.trace_item_stack(context));
25042        let unary_operator = pop_item!(self, unary_operator, UnaryOperator, context);
25043        let expression02_op_0_built = Expression02OpUnaryOperator {
25044            unary_operator: Box::new(unary_operator),
25045        };
25046        let expression02_op_0_built = Expression02Op::UnaryOperator(expression02_op_0_built);
25047        // Calling user action here
25048        self.user_grammar
25049            .expression02_op(&expression02_op_0_built)?;
25050        self.push(ASTType::Expression02Op(expression02_op_0_built), context);
25051        Ok(())
25052    }
25053
25054    /// Semantic action for production 469:
25055    ///
25056    /// `Expression02Op: Operator06;`
25057    ///
25058    #[parol_runtime::function_name::named]
25059    fn expression02_op_1(&mut self, _operator06: &ParseTreeType<'t>) -> Result<()> {
25060        let context = function_name!();
25061        trace!("{}", self.trace_item_stack(context));
25062        let operator06 = pop_item!(self, operator06, Operator06, context);
25063        let expression02_op_1_built = Expression02OpOperator06 {
25064            operator06: Box::new(operator06),
25065        };
25066        let expression02_op_1_built = Expression02Op::Operator06(expression02_op_1_built);
25067        // Calling user action here
25068        self.user_grammar
25069            .expression02_op(&expression02_op_1_built)?;
25070        self.push(ASTType::Expression02Op(expression02_op_1_built), context);
25071        Ok(())
25072    }
25073
25074    /// Semantic action for production 470:
25075    ///
25076    /// `Expression02Op: Operator05;`
25077    ///
25078    #[parol_runtime::function_name::named]
25079    fn expression02_op_2(&mut self, _operator05: &ParseTreeType<'t>) -> Result<()> {
25080        let context = function_name!();
25081        trace!("{}", self.trace_item_stack(context));
25082        let operator05 = pop_item!(self, operator05, Operator05, context);
25083        let expression02_op_2_built = Expression02OpOperator05 {
25084            operator05: Box::new(operator05),
25085        };
25086        let expression02_op_2_built = Expression02Op::Operator05(expression02_op_2_built);
25087        // Calling user action here
25088        self.user_grammar
25089            .expression02_op(&expression02_op_2_built)?;
25090        self.push(ASTType::Expression02Op(expression02_op_2_built), context);
25091        Ok(())
25092    }
25093
25094    /// Semantic action for production 471:
25095    ///
25096    /// `Expression02Op: Operator03;`
25097    ///
25098    #[parol_runtime::function_name::named]
25099    fn expression02_op_3(&mut self, _operator03: &ParseTreeType<'t>) -> Result<()> {
25100        let context = function_name!();
25101        trace!("{}", self.trace_item_stack(context));
25102        let operator03 = pop_item!(self, operator03, Operator03, context);
25103        let expression02_op_3_built = Expression02OpOperator03 {
25104            operator03: Box::new(operator03),
25105        };
25106        let expression02_op_3_built = Expression02Op::Operator03(expression02_op_3_built);
25107        // Calling user action here
25108        self.user_grammar
25109            .expression02_op(&expression02_op_3_built)?;
25110        self.push(ASTType::Expression02Op(expression02_op_3_built), context);
25111        Ok(())
25112    }
25113
25114    /// Semantic action for production 472:
25115    ///
25116    /// `Expression02Op: Operator04;`
25117    ///
25118    #[parol_runtime::function_name::named]
25119    fn expression02_op_4(&mut self, _operator04: &ParseTreeType<'t>) -> Result<()> {
25120        let context = function_name!();
25121        trace!("{}", self.trace_item_stack(context));
25122        let operator04 = pop_item!(self, operator04, Operator04, context);
25123        let expression02_op_4_built = Expression02OpOperator04 {
25124            operator04: Box::new(operator04),
25125        };
25126        let expression02_op_4_built = Expression02Op::Operator04(expression02_op_4_built);
25127        // Calling user action here
25128        self.user_grammar
25129            .expression02_op(&expression02_op_4_built)?;
25130        self.push(ASTType::Expression02Op(expression02_op_4_built), context);
25131        Ok(())
25132    }
25133
25134    /// Semantic action for production 473:
25135    ///
25136    /// `Factor: Number;`
25137    ///
25138    #[parol_runtime::function_name::named]
25139    fn factor_0(&mut self, _number: &ParseTreeType<'t>) -> Result<()> {
25140        let context = function_name!();
25141        trace!("{}", self.trace_item_stack(context));
25142        let number = pop_item!(self, number, Number, context);
25143        let factor_0_built = FactorNumber {
25144            number: Box::new(number),
25145        };
25146        let factor_0_built = Factor::Number(factor_0_built);
25147        // Calling user action here
25148        self.user_grammar.factor(&factor_0_built)?;
25149        self.push(ASTType::Factor(factor_0_built), context);
25150        Ok(())
25151    }
25152
25153    /// Semantic action for production 474:
25154    ///
25155    /// `Factor: BooleanLiteral;`
25156    ///
25157    #[parol_runtime::function_name::named]
25158    fn factor_1(&mut self, _boolean_literal: &ParseTreeType<'t>) -> Result<()> {
25159        let context = function_name!();
25160        trace!("{}", self.trace_item_stack(context));
25161        let boolean_literal = pop_item!(self, boolean_literal, BooleanLiteral, context);
25162        let factor_1_built = FactorBooleanLiteral {
25163            boolean_literal: Box::new(boolean_literal),
25164        };
25165        let factor_1_built = Factor::BooleanLiteral(factor_1_built);
25166        // Calling user action here
25167        self.user_grammar.factor(&factor_1_built)?;
25168        self.push(ASTType::Factor(factor_1_built), context);
25169        Ok(())
25170    }
25171
25172    /// Semantic action for production 475:
25173    ///
25174    /// `Factor: IdentifierFactor;`
25175    ///
25176    #[parol_runtime::function_name::named]
25177    fn factor_2(&mut self, _identifier_factor: &ParseTreeType<'t>) -> Result<()> {
25178        let context = function_name!();
25179        trace!("{}", self.trace_item_stack(context));
25180        let identifier_factor = pop_item!(self, identifier_factor, IdentifierFactor, context);
25181        let factor_2_built = FactorIdentifierFactor {
25182            identifier_factor: Box::new(identifier_factor),
25183        };
25184        let factor_2_built = Factor::IdentifierFactor(factor_2_built);
25185        // Calling user action here
25186        self.user_grammar.factor(&factor_2_built)?;
25187        self.push(ASTType::Factor(factor_2_built), context);
25188        Ok(())
25189    }
25190
25191    /// Semantic action for production 476:
25192    ///
25193    /// `Factor: LParen Expression RParen;`
25194    ///
25195    #[parol_runtime::function_name::named]
25196    fn factor_3(
25197        &mut self,
25198        _l_paren: &ParseTreeType<'t>,
25199        _expression: &ParseTreeType<'t>,
25200        _r_paren: &ParseTreeType<'t>,
25201    ) -> Result<()> {
25202        let context = function_name!();
25203        trace!("{}", self.trace_item_stack(context));
25204        let r_paren = pop_item!(self, r_paren, RParen, context);
25205        let expression = pop_item!(self, expression, Expression, context);
25206        let l_paren = pop_item!(self, l_paren, LParen, context);
25207        let factor_3_built = FactorLParenExpressionRParen {
25208            l_paren: Box::new(l_paren),
25209            expression: Box::new(expression),
25210            r_paren: Box::new(r_paren),
25211        };
25212        let factor_3_built = Factor::LParenExpressionRParen(factor_3_built);
25213        // Calling user action here
25214        self.user_grammar.factor(&factor_3_built)?;
25215        self.push(ASTType::Factor(factor_3_built), context);
25216        Ok(())
25217    }
25218
25219    /// Semantic action for production 477:
25220    ///
25221    /// `Factor: LBrace ConcatenationList RBrace;`
25222    ///
25223    #[parol_runtime::function_name::named]
25224    fn factor_4(
25225        &mut self,
25226        _l_brace: &ParseTreeType<'t>,
25227        _concatenation_list: &ParseTreeType<'t>,
25228        _r_brace: &ParseTreeType<'t>,
25229    ) -> Result<()> {
25230        let context = function_name!();
25231        trace!("{}", self.trace_item_stack(context));
25232        let r_brace = pop_item!(self, r_brace, RBrace, context);
25233        let concatenation_list = pop_item!(self, concatenation_list, ConcatenationList, context);
25234        let l_brace = pop_item!(self, l_brace, LBrace, context);
25235        let factor_4_built = FactorLBraceConcatenationListRBrace {
25236            l_brace: Box::new(l_brace),
25237            concatenation_list: Box::new(concatenation_list),
25238            r_brace: Box::new(r_brace),
25239        };
25240        let factor_4_built = Factor::LBraceConcatenationListRBrace(factor_4_built);
25241        // Calling user action here
25242        self.user_grammar.factor(&factor_4_built)?;
25243        self.push(ASTType::Factor(factor_4_built), context);
25244        Ok(())
25245    }
25246
25247    /// Semantic action for production 478:
25248    ///
25249    /// `Factor: QuoteLBrace ArrayLiteralList RBrace;`
25250    ///
25251    #[parol_runtime::function_name::named]
25252    fn factor_5(
25253        &mut self,
25254        _quote_l_brace: &ParseTreeType<'t>,
25255        _array_literal_list: &ParseTreeType<'t>,
25256        _r_brace: &ParseTreeType<'t>,
25257    ) -> Result<()> {
25258        let context = function_name!();
25259        trace!("{}", self.trace_item_stack(context));
25260        let r_brace = pop_item!(self, r_brace, RBrace, context);
25261        let array_literal_list = pop_item!(self, array_literal_list, ArrayLiteralList, context);
25262        let quote_l_brace = pop_item!(self, quote_l_brace, QuoteLBrace, context);
25263        let factor_5_built = FactorQuoteLBraceArrayLiteralListRBrace {
25264            quote_l_brace: Box::new(quote_l_brace),
25265            array_literal_list: Box::new(array_literal_list),
25266            r_brace: Box::new(r_brace),
25267        };
25268        let factor_5_built = Factor::QuoteLBraceArrayLiteralListRBrace(factor_5_built);
25269        // Calling user action here
25270        self.user_grammar.factor(&factor_5_built)?;
25271        self.push(ASTType::Factor(factor_5_built), context);
25272        Ok(())
25273    }
25274
25275    /// Semantic action for production 479:
25276    ///
25277    /// `Factor: CaseExpression;`
25278    ///
25279    #[parol_runtime::function_name::named]
25280    fn factor_6(&mut self, _case_expression: &ParseTreeType<'t>) -> Result<()> {
25281        let context = function_name!();
25282        trace!("{}", self.trace_item_stack(context));
25283        let case_expression = pop_item!(self, case_expression, CaseExpression, context);
25284        let factor_6_built = FactorCaseExpression {
25285            case_expression: Box::new(case_expression),
25286        };
25287        let factor_6_built = Factor::CaseExpression(factor_6_built);
25288        // Calling user action here
25289        self.user_grammar.factor(&factor_6_built)?;
25290        self.push(ASTType::Factor(factor_6_built), context);
25291        Ok(())
25292    }
25293
25294    /// Semantic action for production 480:
25295    ///
25296    /// `Factor: SwitchExpression;`
25297    ///
25298    #[parol_runtime::function_name::named]
25299    fn factor_7(&mut self, _switch_expression: &ParseTreeType<'t>) -> Result<()> {
25300        let context = function_name!();
25301        trace!("{}", self.trace_item_stack(context));
25302        let switch_expression = pop_item!(self, switch_expression, SwitchExpression, context);
25303        let factor_7_built = FactorSwitchExpression {
25304            switch_expression: Box::new(switch_expression),
25305        };
25306        let factor_7_built = Factor::SwitchExpression(factor_7_built);
25307        // Calling user action here
25308        self.user_grammar.factor(&factor_7_built)?;
25309        self.push(ASTType::Factor(factor_7_built), context);
25310        Ok(())
25311    }
25312
25313    /// Semantic action for production 481:
25314    ///
25315    /// `Factor: StringLiteral;`
25316    ///
25317    #[parol_runtime::function_name::named]
25318    fn factor_8(&mut self, _string_literal: &ParseTreeType<'t>) -> Result<()> {
25319        let context = function_name!();
25320        trace!("{}", self.trace_item_stack(context));
25321        let string_literal = pop_item!(self, string_literal, StringLiteral, context);
25322        let factor_8_built = FactorStringLiteral {
25323            string_literal: Box::new(string_literal),
25324        };
25325        let factor_8_built = Factor::StringLiteral(factor_8_built);
25326        // Calling user action here
25327        self.user_grammar.factor(&factor_8_built)?;
25328        self.push(ASTType::Factor(factor_8_built), context);
25329        Ok(())
25330    }
25331
25332    /// Semantic action for production 482:
25333    ///
25334    /// `Factor: FactorGroup;`
25335    ///
25336    #[parol_runtime::function_name::named]
25337    fn factor_9(&mut self, _factor_group: &ParseTreeType<'t>) -> Result<()> {
25338        let context = function_name!();
25339        trace!("{}", self.trace_item_stack(context));
25340        let factor_group = pop_item!(self, factor_group, FactorGroup, context);
25341        let factor_9_built = FactorFactorGroup {
25342            factor_group: Box::new(factor_group),
25343        };
25344        let factor_9_built = Factor::FactorGroup(factor_9_built);
25345        // Calling user action here
25346        self.user_grammar.factor(&factor_9_built)?;
25347        self.push(ASTType::Factor(factor_9_built), context);
25348        Ok(())
25349    }
25350
25351    /// Semantic action for production 483:
25352    ///
25353    /// `FactorGroup: Msb;`
25354    ///
25355    #[parol_runtime::function_name::named]
25356    fn factor_group_0(&mut self, _msb: &ParseTreeType<'t>) -> Result<()> {
25357        let context = function_name!();
25358        trace!("{}", self.trace_item_stack(context));
25359        let msb = pop_item!(self, msb, Msb, context);
25360        let factor_group_0_built = FactorGroupMsb { msb: Box::new(msb) };
25361        let factor_group_0_built = FactorGroup::Msb(factor_group_0_built);
25362        self.push(ASTType::FactorGroup(factor_group_0_built), context);
25363        Ok(())
25364    }
25365
25366    /// Semantic action for production 484:
25367    ///
25368    /// `FactorGroup: Lsb;`
25369    ///
25370    #[parol_runtime::function_name::named]
25371    fn factor_group_1(&mut self, _lsb: &ParseTreeType<'t>) -> Result<()> {
25372        let context = function_name!();
25373        trace!("{}", self.trace_item_stack(context));
25374        let lsb = pop_item!(self, lsb, Lsb, context);
25375        let factor_group_1_built = FactorGroupLsb { lsb: Box::new(lsb) };
25376        let factor_group_1_built = FactorGroup::Lsb(factor_group_1_built);
25377        self.push(ASTType::FactorGroup(factor_group_1_built), context);
25378        Ok(())
25379    }
25380
25381    /// Semantic action for production 485:
25382    ///
25383    /// `Factor: InsideExpression;`
25384    ///
25385    #[parol_runtime::function_name::named]
25386    fn factor_10(&mut self, _inside_expression: &ParseTreeType<'t>) -> Result<()> {
25387        let context = function_name!();
25388        trace!("{}", self.trace_item_stack(context));
25389        let inside_expression = pop_item!(self, inside_expression, InsideExpression, context);
25390        let factor_10_built = FactorInsideExpression {
25391            inside_expression: Box::new(inside_expression),
25392        };
25393        let factor_10_built = Factor::InsideExpression(factor_10_built);
25394        // Calling user action here
25395        self.user_grammar.factor(&factor_10_built)?;
25396        self.push(ASTType::Factor(factor_10_built), context);
25397        Ok(())
25398    }
25399
25400    /// Semantic action for production 486:
25401    ///
25402    /// `Factor: OutsideExpression;`
25403    ///
25404    #[parol_runtime::function_name::named]
25405    fn factor_11(&mut self, _outside_expression: &ParseTreeType<'t>) -> Result<()> {
25406        let context = function_name!();
25407        trace!("{}", self.trace_item_stack(context));
25408        let outside_expression = pop_item!(self, outside_expression, OutsideExpression, context);
25409        let factor_11_built = FactorOutsideExpression {
25410            outside_expression: Box::new(outside_expression),
25411        };
25412        let factor_11_built = Factor::OutsideExpression(factor_11_built);
25413        // Calling user action here
25414        self.user_grammar.factor(&factor_11_built)?;
25415        self.push(ASTType::Factor(factor_11_built), context);
25416        Ok(())
25417    }
25418
25419    /// Semantic action for production 487:
25420    ///
25421    /// `Factor: TypeExpression;`
25422    ///
25423    #[parol_runtime::function_name::named]
25424    fn factor_12(&mut self, _type_expression: &ParseTreeType<'t>) -> Result<()> {
25425        let context = function_name!();
25426        trace!("{}", self.trace_item_stack(context));
25427        let type_expression = pop_item!(self, type_expression, TypeExpression, context);
25428        let factor_12_built = FactorTypeExpression {
25429            type_expression: Box::new(type_expression),
25430        };
25431        let factor_12_built = Factor::TypeExpression(factor_12_built);
25432        // Calling user action here
25433        self.user_grammar.factor(&factor_12_built)?;
25434        self.push(ASTType::Factor(factor_12_built), context);
25435        Ok(())
25436    }
25437
25438    /// Semantic action for production 488:
25439    ///
25440    /// `Factor: FactorTypeFactor;`
25441    ///
25442    #[parol_runtime::function_name::named]
25443    fn factor_13(&mut self, _factor_type_factor: &ParseTreeType<'t>) -> Result<()> {
25444        let context = function_name!();
25445        trace!("{}", self.trace_item_stack(context));
25446        let factor_type_factor = pop_item!(self, factor_type_factor, FactorTypeFactor, context);
25447        let factor_13_built = FactorFactorTypeFactor {
25448            factor_type_factor: Box::new(factor_type_factor),
25449        };
25450        let factor_13_built = Factor::FactorTypeFactor(factor_13_built);
25451        // Calling user action here
25452        self.user_grammar.factor(&factor_13_built)?;
25453        self.push(ASTType::Factor(factor_13_built), context);
25454        Ok(())
25455    }
25456
25457    /// Semantic action for production 489:
25458    ///
25459    /// `BooleanLiteral: True;`
25460    ///
25461    #[parol_runtime::function_name::named]
25462    fn boolean_literal_0(&mut self, _true: &ParseTreeType<'t>) -> Result<()> {
25463        let context = function_name!();
25464        trace!("{}", self.trace_item_stack(context));
25465        let r#true = pop_item!(self, r#true, True, context);
25466        let boolean_literal_0_built = BooleanLiteralTrue {
25467            r#true: Box::new(r#true),
25468        };
25469        let boolean_literal_0_built = BooleanLiteral::True(boolean_literal_0_built);
25470        // Calling user action here
25471        self.user_grammar
25472            .boolean_literal(&boolean_literal_0_built)?;
25473        self.push(ASTType::BooleanLiteral(boolean_literal_0_built), context);
25474        Ok(())
25475    }
25476
25477    /// Semantic action for production 490:
25478    ///
25479    /// `BooleanLiteral: False;`
25480    ///
25481    #[parol_runtime::function_name::named]
25482    fn boolean_literal_1(&mut self, _false: &ParseTreeType<'t>) -> Result<()> {
25483        let context = function_name!();
25484        trace!("{}", self.trace_item_stack(context));
25485        let r#false = pop_item!(self, r#false, False, context);
25486        let boolean_literal_1_built = BooleanLiteralFalse {
25487            r#false: Box::new(r#false),
25488        };
25489        let boolean_literal_1_built = BooleanLiteral::False(boolean_literal_1_built);
25490        // Calling user action here
25491        self.user_grammar
25492            .boolean_literal(&boolean_literal_1_built)?;
25493        self.push(ASTType::BooleanLiteral(boolean_literal_1_built), context);
25494        Ok(())
25495    }
25496
25497    /// Semantic action for production 491:
25498    ///
25499    /// `IdentifierFactor: ExpressionIdentifier IdentifierFactorOpt /* Option */;`
25500    ///
25501    #[parol_runtime::function_name::named]
25502    fn identifier_factor(
25503        &mut self,
25504        _expression_identifier: &ParseTreeType<'t>,
25505        _identifier_factor_opt: &ParseTreeType<'t>,
25506    ) -> Result<()> {
25507        let context = function_name!();
25508        trace!("{}", self.trace_item_stack(context));
25509        let identifier_factor_opt =
25510            pop_item!(self, identifier_factor_opt, IdentifierFactorOpt, context);
25511        let expression_identifier =
25512            pop_item!(self, expression_identifier, ExpressionIdentifier, context);
25513        let identifier_factor_built = IdentifierFactor {
25514            expression_identifier: Box::new(expression_identifier),
25515            identifier_factor_opt,
25516        };
25517        // Calling user action here
25518        self.user_grammar
25519            .identifier_factor(&identifier_factor_built)?;
25520        self.push(ASTType::IdentifierFactor(identifier_factor_built), context);
25521        Ok(())
25522    }
25523
25524    /// Semantic action for production 492:
25525    ///
25526    /// `IdentifierFactorOpt /* Option<T>::Some */: IdentifierFactorOptGroup;`
25527    ///
25528    #[parol_runtime::function_name::named]
25529    fn identifier_factor_opt_0(
25530        &mut self,
25531        _identifier_factor_opt_group: &ParseTreeType<'t>,
25532    ) -> Result<()> {
25533        let context = function_name!();
25534        trace!("{}", self.trace_item_stack(context));
25535        let identifier_factor_opt_group = pop_item!(
25536            self,
25537            identifier_factor_opt_group,
25538            IdentifierFactorOptGroup,
25539            context
25540        );
25541        let identifier_factor_opt_0_built = IdentifierFactorOpt {
25542            identifier_factor_opt_group: Box::new(identifier_factor_opt_group),
25543        };
25544        self.push(
25545            ASTType::IdentifierFactorOpt(Some(identifier_factor_opt_0_built)),
25546            context,
25547        );
25548        Ok(())
25549    }
25550
25551    /// Semantic action for production 493:
25552    ///
25553    /// `IdentifierFactorOptGroup: FunctionCall;`
25554    ///
25555    #[parol_runtime::function_name::named]
25556    fn identifier_factor_opt_group_0(&mut self, _function_call: &ParseTreeType<'t>) -> Result<()> {
25557        let context = function_name!();
25558        trace!("{}", self.trace_item_stack(context));
25559        let function_call = pop_item!(self, function_call, FunctionCall, context);
25560        let identifier_factor_opt_group_0_built = IdentifierFactorOptGroupFunctionCall {
25561            function_call: Box::new(function_call),
25562        };
25563        let identifier_factor_opt_group_0_built =
25564            IdentifierFactorOptGroup::FunctionCall(identifier_factor_opt_group_0_built);
25565        self.push(
25566            ASTType::IdentifierFactorOptGroup(identifier_factor_opt_group_0_built),
25567            context,
25568        );
25569        Ok(())
25570    }
25571
25572    /// Semantic action for production 494:
25573    ///
25574    /// `IdentifierFactorOptGroup: StructConstructor;`
25575    ///
25576    #[parol_runtime::function_name::named]
25577    fn identifier_factor_opt_group_1(
25578        &mut self,
25579        _struct_constructor: &ParseTreeType<'t>,
25580    ) -> Result<()> {
25581        let context = function_name!();
25582        trace!("{}", self.trace_item_stack(context));
25583        let struct_constructor = pop_item!(self, struct_constructor, StructConstructor, context);
25584        let identifier_factor_opt_group_1_built = IdentifierFactorOptGroupStructConstructor {
25585            struct_constructor: Box::new(struct_constructor),
25586        };
25587        let identifier_factor_opt_group_1_built =
25588            IdentifierFactorOptGroup::StructConstructor(identifier_factor_opt_group_1_built);
25589        self.push(
25590            ASTType::IdentifierFactorOptGroup(identifier_factor_opt_group_1_built),
25591            context,
25592        );
25593        Ok(())
25594    }
25595
25596    /// Semantic action for production 495:
25597    ///
25598    /// `IdentifierFactorOpt /* Option<T>::None */: ;`
25599    ///
25600    #[parol_runtime::function_name::named]
25601    fn identifier_factor_opt_1(&mut self) -> Result<()> {
25602        let context = function_name!();
25603        trace!("{}", self.trace_item_stack(context));
25604        self.push(ASTType::IdentifierFactorOpt(None), context);
25605        Ok(())
25606    }
25607
25608    /// Semantic action for production 496:
25609    ///
25610    /// `FactorTypeFactor: FactorTypeFactorList /* Vec */ FactorType;`
25611    ///
25612    #[parol_runtime::function_name::named]
25613    fn factor_type_factor(
25614        &mut self,
25615        _factor_type_factor_list: &ParseTreeType<'t>,
25616        _factor_type: &ParseTreeType<'t>,
25617    ) -> Result<()> {
25618        let context = function_name!();
25619        trace!("{}", self.trace_item_stack(context));
25620        let factor_type = pop_item!(self, factor_type, FactorType, context);
25621        let factor_type_factor_list =
25622            pop_and_reverse_item!(self, factor_type_factor_list, FactorTypeFactorList, context);
25623        let factor_type_factor_built = FactorTypeFactor {
25624            factor_type_factor_list,
25625            factor_type: Box::new(factor_type),
25626        };
25627        // Calling user action here
25628        self.user_grammar
25629            .factor_type_factor(&factor_type_factor_built)?;
25630        self.push(ASTType::FactorTypeFactor(factor_type_factor_built), context);
25631        Ok(())
25632    }
25633
25634    /// Semantic action for production 497:
25635    ///
25636    /// `FactorTypeFactorList /* Vec<T>::Push */: TypeModifier FactorTypeFactorList;`
25637    ///
25638    #[parol_runtime::function_name::named]
25639    fn factor_type_factor_list_0(
25640        &mut self,
25641        _type_modifier: &ParseTreeType<'t>,
25642        _factor_type_factor_list: &ParseTreeType<'t>,
25643    ) -> Result<()> {
25644        let context = function_name!();
25645        trace!("{}", self.trace_item_stack(context));
25646        let mut factor_type_factor_list =
25647            pop_item!(self, factor_type_factor_list, FactorTypeFactorList, context);
25648        let type_modifier = pop_item!(self, type_modifier, TypeModifier, context);
25649        let factor_type_factor_list_0_built = FactorTypeFactorList {
25650            type_modifier: Box::new(type_modifier),
25651        };
25652        // Add an element to the vector
25653        factor_type_factor_list.push(factor_type_factor_list_0_built);
25654        self.push(
25655            ASTType::FactorTypeFactorList(factor_type_factor_list),
25656            context,
25657        );
25658        Ok(())
25659    }
25660
25661    /// Semantic action for production 498:
25662    ///
25663    /// `FactorTypeFactorList /* Vec<T>::New */: ;`
25664    ///
25665    #[parol_runtime::function_name::named]
25666    fn factor_type_factor_list_1(&mut self) -> Result<()> {
25667        let context = function_name!();
25668        trace!("{}", self.trace_item_stack(context));
25669        let factor_type_factor_list_1_built = Vec::new();
25670        self.push(
25671            ASTType::FactorTypeFactorList(factor_type_factor_list_1_built),
25672            context,
25673        );
25674        Ok(())
25675    }
25676
25677    /// Semantic action for production 499:
25678    ///
25679    /// `FunctionCall: LParen FunctionCallOpt /* Option */ RParen;`
25680    ///
25681    #[parol_runtime::function_name::named]
25682    fn function_call(
25683        &mut self,
25684        _l_paren: &ParseTreeType<'t>,
25685        _function_call_opt: &ParseTreeType<'t>,
25686        _r_paren: &ParseTreeType<'t>,
25687    ) -> Result<()> {
25688        let context = function_name!();
25689        trace!("{}", self.trace_item_stack(context));
25690        let r_paren = pop_item!(self, r_paren, RParen, context);
25691        let function_call_opt = pop_item!(self, function_call_opt, FunctionCallOpt, context);
25692        let l_paren = pop_item!(self, l_paren, LParen, context);
25693        let function_call_built = FunctionCall {
25694            l_paren: Box::new(l_paren),
25695            function_call_opt,
25696            r_paren: Box::new(r_paren),
25697        };
25698        // Calling user action here
25699        self.user_grammar.function_call(&function_call_built)?;
25700        self.push(ASTType::FunctionCall(function_call_built), context);
25701        Ok(())
25702    }
25703
25704    /// Semantic action for production 500:
25705    ///
25706    /// `FunctionCallOpt /* Option<T>::Some */: ArgumentList;`
25707    ///
25708    #[parol_runtime::function_name::named]
25709    fn function_call_opt_0(&mut self, _argument_list: &ParseTreeType<'t>) -> Result<()> {
25710        let context = function_name!();
25711        trace!("{}", self.trace_item_stack(context));
25712        let argument_list = pop_item!(self, argument_list, ArgumentList, context);
25713        let function_call_opt_0_built = FunctionCallOpt {
25714            argument_list: Box::new(argument_list),
25715        };
25716        self.push(
25717            ASTType::FunctionCallOpt(Some(function_call_opt_0_built)),
25718            context,
25719        );
25720        Ok(())
25721    }
25722
25723    /// Semantic action for production 501:
25724    ///
25725    /// `FunctionCallOpt /* Option<T>::None */: ;`
25726    ///
25727    #[parol_runtime::function_name::named]
25728    fn function_call_opt_1(&mut self) -> Result<()> {
25729        let context = function_name!();
25730        trace!("{}", self.trace_item_stack(context));
25731        self.push(ASTType::FunctionCallOpt(None), context);
25732        Ok(())
25733    }
25734
25735    /// Semantic action for production 502:
25736    ///
25737    /// `ArgumentList: ArgumentItem ArgumentListList /* Vec */ ArgumentListOpt /* Option */;`
25738    ///
25739    #[parol_runtime::function_name::named]
25740    fn argument_list(
25741        &mut self,
25742        _argument_item: &ParseTreeType<'t>,
25743        _argument_list_list: &ParseTreeType<'t>,
25744        _argument_list_opt: &ParseTreeType<'t>,
25745    ) -> Result<()> {
25746        let context = function_name!();
25747        trace!("{}", self.trace_item_stack(context));
25748        let argument_list_opt = pop_item!(self, argument_list_opt, ArgumentListOpt, context);
25749        let argument_list_list =
25750            pop_and_reverse_item!(self, argument_list_list, ArgumentListList, context);
25751        let argument_item = pop_item!(self, argument_item, ArgumentItem, context);
25752        let argument_list_built = ArgumentList {
25753            argument_item: Box::new(argument_item),
25754            argument_list_list,
25755            argument_list_opt,
25756        };
25757        // Calling user action here
25758        self.user_grammar.argument_list(&argument_list_built)?;
25759        self.push(ASTType::ArgumentList(argument_list_built), context);
25760        Ok(())
25761    }
25762
25763    /// Semantic action for production 503:
25764    ///
25765    /// `ArgumentListList /* Vec<T>::Push */: Comma ArgumentItem ArgumentListList;`
25766    ///
25767    #[parol_runtime::function_name::named]
25768    fn argument_list_list_0(
25769        &mut self,
25770        _comma: &ParseTreeType<'t>,
25771        _argument_item: &ParseTreeType<'t>,
25772        _argument_list_list: &ParseTreeType<'t>,
25773    ) -> Result<()> {
25774        let context = function_name!();
25775        trace!("{}", self.trace_item_stack(context));
25776        let mut argument_list_list = pop_item!(self, argument_list_list, ArgumentListList, context);
25777        let argument_item = pop_item!(self, argument_item, ArgumentItem, context);
25778        let comma = pop_item!(self, comma, Comma, context);
25779        let argument_list_list_0_built = ArgumentListList {
25780            argument_item: Box::new(argument_item),
25781            comma: Box::new(comma),
25782        };
25783        // Add an element to the vector
25784        argument_list_list.push(argument_list_list_0_built);
25785        self.push(ASTType::ArgumentListList(argument_list_list), context);
25786        Ok(())
25787    }
25788
25789    /// Semantic action for production 504:
25790    ///
25791    /// `ArgumentListList /* Vec<T>::New */: ;`
25792    ///
25793    #[parol_runtime::function_name::named]
25794    fn argument_list_list_1(&mut self) -> Result<()> {
25795        let context = function_name!();
25796        trace!("{}", self.trace_item_stack(context));
25797        let argument_list_list_1_built = Vec::new();
25798        self.push(
25799            ASTType::ArgumentListList(argument_list_list_1_built),
25800            context,
25801        );
25802        Ok(())
25803    }
25804
25805    /// Semantic action for production 505:
25806    ///
25807    /// `ArgumentListOpt /* Option<T>::Some */: Comma;`
25808    ///
25809    #[parol_runtime::function_name::named]
25810    fn argument_list_opt_0(&mut self, _comma: &ParseTreeType<'t>) -> Result<()> {
25811        let context = function_name!();
25812        trace!("{}", self.trace_item_stack(context));
25813        let comma = pop_item!(self, comma, Comma, context);
25814        let argument_list_opt_0_built = ArgumentListOpt {
25815            comma: Box::new(comma),
25816        };
25817        self.push(
25818            ASTType::ArgumentListOpt(Some(argument_list_opt_0_built)),
25819            context,
25820        );
25821        Ok(())
25822    }
25823
25824    /// Semantic action for production 506:
25825    ///
25826    /// `ArgumentListOpt /* Option<T>::None */: ;`
25827    ///
25828    #[parol_runtime::function_name::named]
25829    fn argument_list_opt_1(&mut self) -> Result<()> {
25830        let context = function_name!();
25831        trace!("{}", self.trace_item_stack(context));
25832        self.push(ASTType::ArgumentListOpt(None), context);
25833        Ok(())
25834    }
25835
25836    /// Semantic action for production 507:
25837    ///
25838    /// `ArgumentItem: ArgumentExpression ArgumentItemOpt /* Option */;`
25839    ///
25840    #[parol_runtime::function_name::named]
25841    fn argument_item(
25842        &mut self,
25843        _argument_expression: &ParseTreeType<'t>,
25844        _argument_item_opt: &ParseTreeType<'t>,
25845    ) -> Result<()> {
25846        let context = function_name!();
25847        trace!("{}", self.trace_item_stack(context));
25848        let argument_item_opt = pop_item!(self, argument_item_opt, ArgumentItemOpt, context);
25849        let argument_expression = pop_item!(self, argument_expression, ArgumentExpression, context);
25850        let argument_item_built = ArgumentItem {
25851            argument_expression: Box::new(argument_expression),
25852            argument_item_opt,
25853        };
25854        // Calling user action here
25855        self.user_grammar.argument_item(&argument_item_built)?;
25856        self.push(ASTType::ArgumentItem(argument_item_built), context);
25857        Ok(())
25858    }
25859
25860    /// Semantic action for production 508:
25861    ///
25862    /// `ArgumentItemOpt /* Option<T>::Some */: Colon Expression;`
25863    ///
25864    #[parol_runtime::function_name::named]
25865    fn argument_item_opt_0(
25866        &mut self,
25867        _colon: &ParseTreeType<'t>,
25868        _expression: &ParseTreeType<'t>,
25869    ) -> Result<()> {
25870        let context = function_name!();
25871        trace!("{}", self.trace_item_stack(context));
25872        let expression = pop_item!(self, expression, Expression, context);
25873        let colon = pop_item!(self, colon, Colon, context);
25874        let argument_item_opt_0_built = ArgumentItemOpt {
25875            colon: Box::new(colon),
25876            expression: Box::new(expression),
25877        };
25878        self.push(
25879            ASTType::ArgumentItemOpt(Some(argument_item_opt_0_built)),
25880            context,
25881        );
25882        Ok(())
25883    }
25884
25885    /// Semantic action for production 509:
25886    ///
25887    /// `ArgumentItemOpt /* Option<T>::None */: ;`
25888    ///
25889    #[parol_runtime::function_name::named]
25890    fn argument_item_opt_1(&mut self) -> Result<()> {
25891        let context = function_name!();
25892        trace!("{}", self.trace_item_stack(context));
25893        self.push(ASTType::ArgumentItemOpt(None), context);
25894        Ok(())
25895    }
25896
25897    /// Semantic action for production 510:
25898    ///
25899    /// `ArgumentExpression: Expression;`
25900    ///
25901    #[parol_runtime::function_name::named]
25902    fn argument_expression(&mut self, _expression: &ParseTreeType<'t>) -> Result<()> {
25903        let context = function_name!();
25904        trace!("{}", self.trace_item_stack(context));
25905        let expression = pop_item!(self, expression, Expression, context);
25906        let argument_expression_built = ArgumentExpression {
25907            expression: Box::new(expression),
25908        };
25909        // Calling user action here
25910        self.user_grammar
25911            .argument_expression(&argument_expression_built)?;
25912        self.push(
25913            ASTType::ArgumentExpression(argument_expression_built),
25914            context,
25915        );
25916        Ok(())
25917    }
25918
25919    /// Semantic action for production 511:
25920    ///
25921    /// `StructConstructor: QuoteLBrace StructConstructorList StructConstructorOpt /* Option */ RBrace;`
25922    ///
25923    #[parol_runtime::function_name::named]
25924    fn struct_constructor(
25925        &mut self,
25926        _quote_l_brace: &ParseTreeType<'t>,
25927        _struct_constructor_list: &ParseTreeType<'t>,
25928        _struct_constructor_opt: &ParseTreeType<'t>,
25929        _r_brace: &ParseTreeType<'t>,
25930    ) -> Result<()> {
25931        let context = function_name!();
25932        trace!("{}", self.trace_item_stack(context));
25933        let r_brace = pop_item!(self, r_brace, RBrace, context);
25934        let struct_constructor_opt =
25935            pop_item!(self, struct_constructor_opt, StructConstructorOpt, context);
25936        let struct_constructor_list = pop_item!(
25937            self,
25938            struct_constructor_list,
25939            StructConstructorList,
25940            context
25941        );
25942        let quote_l_brace = pop_item!(self, quote_l_brace, QuoteLBrace, context);
25943        let struct_constructor_built = StructConstructor {
25944            quote_l_brace: Box::new(quote_l_brace),
25945            struct_constructor_list: Box::new(struct_constructor_list),
25946            struct_constructor_opt,
25947            r_brace: Box::new(r_brace),
25948        };
25949        // Calling user action here
25950        self.user_grammar
25951            .struct_constructor(&struct_constructor_built)?;
25952        self.push(
25953            ASTType::StructConstructor(struct_constructor_built),
25954            context,
25955        );
25956        Ok(())
25957    }
25958
25959    /// Semantic action for production 512:
25960    ///
25961    /// `StructConstructorOpt /* Option<T>::Some */: DotDot Defaul LParen Expression RParen;`
25962    ///
25963    #[parol_runtime::function_name::named]
25964    fn struct_constructor_opt_0(
25965        &mut self,
25966        _dot_dot: &ParseTreeType<'t>,
25967        _defaul: &ParseTreeType<'t>,
25968        _l_paren: &ParseTreeType<'t>,
25969        _expression: &ParseTreeType<'t>,
25970        _r_paren: &ParseTreeType<'t>,
25971    ) -> Result<()> {
25972        let context = function_name!();
25973        trace!("{}", self.trace_item_stack(context));
25974        let r_paren = pop_item!(self, r_paren, RParen, context);
25975        let expression = pop_item!(self, expression, Expression, context);
25976        let l_paren = pop_item!(self, l_paren, LParen, context);
25977        let defaul = pop_item!(self, defaul, Defaul, context);
25978        let dot_dot = pop_item!(self, dot_dot, DotDot, context);
25979        let struct_constructor_opt_0_built = StructConstructorOpt {
25980            dot_dot: Box::new(dot_dot),
25981            defaul: Box::new(defaul),
25982            l_paren: Box::new(l_paren),
25983            expression: Box::new(expression),
25984            r_paren: Box::new(r_paren),
25985        };
25986        self.push(
25987            ASTType::StructConstructorOpt(Some(struct_constructor_opt_0_built)),
25988            context,
25989        );
25990        Ok(())
25991    }
25992
25993    /// Semantic action for production 513:
25994    ///
25995    /// `StructConstructorOpt /* Option<T>::None */: ;`
25996    ///
25997    #[parol_runtime::function_name::named]
25998    fn struct_constructor_opt_1(&mut self) -> Result<()> {
25999        let context = function_name!();
26000        trace!("{}", self.trace_item_stack(context));
26001        self.push(ASTType::StructConstructorOpt(None), context);
26002        Ok(())
26003    }
26004
26005    /// Semantic action for production 514:
26006    ///
26007    /// `StructConstructorList: StructConstructorItem StructConstructorListList /* Vec */ StructConstructorListOpt /* Option */;`
26008    ///
26009    #[parol_runtime::function_name::named]
26010    fn struct_constructor_list(
26011        &mut self,
26012        _struct_constructor_item: &ParseTreeType<'t>,
26013        _struct_constructor_list_list: &ParseTreeType<'t>,
26014        _struct_constructor_list_opt: &ParseTreeType<'t>,
26015    ) -> Result<()> {
26016        let context = function_name!();
26017        trace!("{}", self.trace_item_stack(context));
26018        let struct_constructor_list_opt = pop_item!(
26019            self,
26020            struct_constructor_list_opt,
26021            StructConstructorListOpt,
26022            context
26023        );
26024        let struct_constructor_list_list = pop_and_reverse_item!(
26025            self,
26026            struct_constructor_list_list,
26027            StructConstructorListList,
26028            context
26029        );
26030        let struct_constructor_item = pop_item!(
26031            self,
26032            struct_constructor_item,
26033            StructConstructorItem,
26034            context
26035        );
26036        let struct_constructor_list_built = StructConstructorList {
26037            struct_constructor_item: Box::new(struct_constructor_item),
26038            struct_constructor_list_list,
26039            struct_constructor_list_opt,
26040        };
26041        // Calling user action here
26042        self.user_grammar
26043            .struct_constructor_list(&struct_constructor_list_built)?;
26044        self.push(
26045            ASTType::StructConstructorList(struct_constructor_list_built),
26046            context,
26047        );
26048        Ok(())
26049    }
26050
26051    /// Semantic action for production 515:
26052    ///
26053    /// `StructConstructorListList /* Vec<T>::Push */: Comma StructConstructorItem StructConstructorListList;`
26054    ///
26055    #[parol_runtime::function_name::named]
26056    fn struct_constructor_list_list_0(
26057        &mut self,
26058        _comma: &ParseTreeType<'t>,
26059        _struct_constructor_item: &ParseTreeType<'t>,
26060        _struct_constructor_list_list: &ParseTreeType<'t>,
26061    ) -> Result<()> {
26062        let context = function_name!();
26063        trace!("{}", self.trace_item_stack(context));
26064        let mut struct_constructor_list_list = pop_item!(
26065            self,
26066            struct_constructor_list_list,
26067            StructConstructorListList,
26068            context
26069        );
26070        let struct_constructor_item = pop_item!(
26071            self,
26072            struct_constructor_item,
26073            StructConstructorItem,
26074            context
26075        );
26076        let comma = pop_item!(self, comma, Comma, context);
26077        let struct_constructor_list_list_0_built = StructConstructorListList {
26078            struct_constructor_item: Box::new(struct_constructor_item),
26079            comma: Box::new(comma),
26080        };
26081        // Add an element to the vector
26082        struct_constructor_list_list.push(struct_constructor_list_list_0_built);
26083        self.push(
26084            ASTType::StructConstructorListList(struct_constructor_list_list),
26085            context,
26086        );
26087        Ok(())
26088    }
26089
26090    /// Semantic action for production 516:
26091    ///
26092    /// `StructConstructorListList /* Vec<T>::New */: ;`
26093    ///
26094    #[parol_runtime::function_name::named]
26095    fn struct_constructor_list_list_1(&mut self) -> Result<()> {
26096        let context = function_name!();
26097        trace!("{}", self.trace_item_stack(context));
26098        let struct_constructor_list_list_1_built = Vec::new();
26099        self.push(
26100            ASTType::StructConstructorListList(struct_constructor_list_list_1_built),
26101            context,
26102        );
26103        Ok(())
26104    }
26105
26106    /// Semantic action for production 517:
26107    ///
26108    /// `StructConstructorListOpt /* Option<T>::Some */: Comma;`
26109    ///
26110    #[parol_runtime::function_name::named]
26111    fn struct_constructor_list_opt_0(&mut self, _comma: &ParseTreeType<'t>) -> Result<()> {
26112        let context = function_name!();
26113        trace!("{}", self.trace_item_stack(context));
26114        let comma = pop_item!(self, comma, Comma, context);
26115        let struct_constructor_list_opt_0_built = StructConstructorListOpt {
26116            comma: Box::new(comma),
26117        };
26118        self.push(
26119            ASTType::StructConstructorListOpt(Some(struct_constructor_list_opt_0_built)),
26120            context,
26121        );
26122        Ok(())
26123    }
26124
26125    /// Semantic action for production 518:
26126    ///
26127    /// `StructConstructorListOpt /* Option<T>::None */: ;`
26128    ///
26129    #[parol_runtime::function_name::named]
26130    fn struct_constructor_list_opt_1(&mut self) -> Result<()> {
26131        let context = function_name!();
26132        trace!("{}", self.trace_item_stack(context));
26133        self.push(ASTType::StructConstructorListOpt(None), context);
26134        Ok(())
26135    }
26136
26137    /// Semantic action for production 519:
26138    ///
26139    /// `StructConstructorItem: Identifier Colon Expression;`
26140    ///
26141    #[parol_runtime::function_name::named]
26142    fn struct_constructor_item(
26143        &mut self,
26144        _identifier: &ParseTreeType<'t>,
26145        _colon: &ParseTreeType<'t>,
26146        _expression: &ParseTreeType<'t>,
26147    ) -> Result<()> {
26148        let context = function_name!();
26149        trace!("{}", self.trace_item_stack(context));
26150        let expression = pop_item!(self, expression, Expression, context);
26151        let colon = pop_item!(self, colon, Colon, context);
26152        let identifier = pop_item!(self, identifier, Identifier, context);
26153        let struct_constructor_item_built = StructConstructorItem {
26154            identifier: Box::new(identifier),
26155            colon: Box::new(colon),
26156            expression: Box::new(expression),
26157        };
26158        // Calling user action here
26159        self.user_grammar
26160            .struct_constructor_item(&struct_constructor_item_built)?;
26161        self.push(
26162            ASTType::StructConstructorItem(struct_constructor_item_built),
26163            context,
26164        );
26165        Ok(())
26166    }
26167
26168    /// Semantic action for production 520:
26169    ///
26170    /// `ConcatenationList: ConcatenationItem ConcatenationListList /* Vec */ ConcatenationListOpt /* Option */;`
26171    ///
26172    #[parol_runtime::function_name::named]
26173    fn concatenation_list(
26174        &mut self,
26175        _concatenation_item: &ParseTreeType<'t>,
26176        _concatenation_list_list: &ParseTreeType<'t>,
26177        _concatenation_list_opt: &ParseTreeType<'t>,
26178    ) -> Result<()> {
26179        let context = function_name!();
26180        trace!("{}", self.trace_item_stack(context));
26181        let concatenation_list_opt =
26182            pop_item!(self, concatenation_list_opt, ConcatenationListOpt, context);
26183        let concatenation_list_list = pop_and_reverse_item!(
26184            self,
26185            concatenation_list_list,
26186            ConcatenationListList,
26187            context
26188        );
26189        let concatenation_item = pop_item!(self, concatenation_item, ConcatenationItem, context);
26190        let concatenation_list_built = ConcatenationList {
26191            concatenation_item: Box::new(concatenation_item),
26192            concatenation_list_list,
26193            concatenation_list_opt,
26194        };
26195        // Calling user action here
26196        self.user_grammar
26197            .concatenation_list(&concatenation_list_built)?;
26198        self.push(
26199            ASTType::ConcatenationList(concatenation_list_built),
26200            context,
26201        );
26202        Ok(())
26203    }
26204
26205    /// Semantic action for production 521:
26206    ///
26207    /// `ConcatenationListList /* Vec<T>::Push */: Comma ConcatenationItem ConcatenationListList;`
26208    ///
26209    #[parol_runtime::function_name::named]
26210    fn concatenation_list_list_0(
26211        &mut self,
26212        _comma: &ParseTreeType<'t>,
26213        _concatenation_item: &ParseTreeType<'t>,
26214        _concatenation_list_list: &ParseTreeType<'t>,
26215    ) -> Result<()> {
26216        let context = function_name!();
26217        trace!("{}", self.trace_item_stack(context));
26218        let mut concatenation_list_list = pop_item!(
26219            self,
26220            concatenation_list_list,
26221            ConcatenationListList,
26222            context
26223        );
26224        let concatenation_item = pop_item!(self, concatenation_item, ConcatenationItem, context);
26225        let comma = pop_item!(self, comma, Comma, context);
26226        let concatenation_list_list_0_built = ConcatenationListList {
26227            concatenation_item: Box::new(concatenation_item),
26228            comma: Box::new(comma),
26229        };
26230        // Add an element to the vector
26231        concatenation_list_list.push(concatenation_list_list_0_built);
26232        self.push(
26233            ASTType::ConcatenationListList(concatenation_list_list),
26234            context,
26235        );
26236        Ok(())
26237    }
26238
26239    /// Semantic action for production 522:
26240    ///
26241    /// `ConcatenationListList /* Vec<T>::New */: ;`
26242    ///
26243    #[parol_runtime::function_name::named]
26244    fn concatenation_list_list_1(&mut self) -> Result<()> {
26245        let context = function_name!();
26246        trace!("{}", self.trace_item_stack(context));
26247        let concatenation_list_list_1_built = Vec::new();
26248        self.push(
26249            ASTType::ConcatenationListList(concatenation_list_list_1_built),
26250            context,
26251        );
26252        Ok(())
26253    }
26254
26255    /// Semantic action for production 523:
26256    ///
26257    /// `ConcatenationListOpt /* Option<T>::Some */: Comma;`
26258    ///
26259    #[parol_runtime::function_name::named]
26260    fn concatenation_list_opt_0(&mut self, _comma: &ParseTreeType<'t>) -> Result<()> {
26261        let context = function_name!();
26262        trace!("{}", self.trace_item_stack(context));
26263        let comma = pop_item!(self, comma, Comma, context);
26264        let concatenation_list_opt_0_built = ConcatenationListOpt {
26265            comma: Box::new(comma),
26266        };
26267        self.push(
26268            ASTType::ConcatenationListOpt(Some(concatenation_list_opt_0_built)),
26269            context,
26270        );
26271        Ok(())
26272    }
26273
26274    /// Semantic action for production 524:
26275    ///
26276    /// `ConcatenationListOpt /* Option<T>::None */: ;`
26277    ///
26278    #[parol_runtime::function_name::named]
26279    fn concatenation_list_opt_1(&mut self) -> Result<()> {
26280        let context = function_name!();
26281        trace!("{}", self.trace_item_stack(context));
26282        self.push(ASTType::ConcatenationListOpt(None), context);
26283        Ok(())
26284    }
26285
26286    /// Semantic action for production 525:
26287    ///
26288    /// `ConcatenationItem: Expression ConcatenationItemOpt /* Option */;`
26289    ///
26290    #[parol_runtime::function_name::named]
26291    fn concatenation_item(
26292        &mut self,
26293        _expression: &ParseTreeType<'t>,
26294        _concatenation_item_opt: &ParseTreeType<'t>,
26295    ) -> Result<()> {
26296        let context = function_name!();
26297        trace!("{}", self.trace_item_stack(context));
26298        let concatenation_item_opt =
26299            pop_item!(self, concatenation_item_opt, ConcatenationItemOpt, context);
26300        let expression = pop_item!(self, expression, Expression, context);
26301        let concatenation_item_built = ConcatenationItem {
26302            expression: Box::new(expression),
26303            concatenation_item_opt,
26304        };
26305        // Calling user action here
26306        self.user_grammar
26307            .concatenation_item(&concatenation_item_built)?;
26308        self.push(
26309            ASTType::ConcatenationItem(concatenation_item_built),
26310            context,
26311        );
26312        Ok(())
26313    }
26314
26315    /// Semantic action for production 526:
26316    ///
26317    /// `ConcatenationItemOpt /* Option<T>::Some */: Repeat Expression;`
26318    ///
26319    #[parol_runtime::function_name::named]
26320    fn concatenation_item_opt_0(
26321        &mut self,
26322        _repeat: &ParseTreeType<'t>,
26323        _expression: &ParseTreeType<'t>,
26324    ) -> Result<()> {
26325        let context = function_name!();
26326        trace!("{}", self.trace_item_stack(context));
26327        let expression = pop_item!(self, expression, Expression, context);
26328        let repeat = pop_item!(self, repeat, Repeat, context);
26329        let concatenation_item_opt_0_built = ConcatenationItemOpt {
26330            repeat: Box::new(repeat),
26331            expression: Box::new(expression),
26332        };
26333        self.push(
26334            ASTType::ConcatenationItemOpt(Some(concatenation_item_opt_0_built)),
26335            context,
26336        );
26337        Ok(())
26338    }
26339
26340    /// Semantic action for production 527:
26341    ///
26342    /// `ConcatenationItemOpt /* Option<T>::None */: ;`
26343    ///
26344    #[parol_runtime::function_name::named]
26345    fn concatenation_item_opt_1(&mut self) -> Result<()> {
26346        let context = function_name!();
26347        trace!("{}", self.trace_item_stack(context));
26348        self.push(ASTType::ConcatenationItemOpt(None), context);
26349        Ok(())
26350    }
26351
26352    /// Semantic action for production 528:
26353    ///
26354    /// `ArrayLiteralList: ArrayLiteralItem ArrayLiteralListList /* Vec */ ArrayLiteralListOpt /* Option */;`
26355    ///
26356    #[parol_runtime::function_name::named]
26357    fn array_literal_list(
26358        &mut self,
26359        _array_literal_item: &ParseTreeType<'t>,
26360        _array_literal_list_list: &ParseTreeType<'t>,
26361        _array_literal_list_opt: &ParseTreeType<'t>,
26362    ) -> Result<()> {
26363        let context = function_name!();
26364        trace!("{}", self.trace_item_stack(context));
26365        let array_literal_list_opt =
26366            pop_item!(self, array_literal_list_opt, ArrayLiteralListOpt, context);
26367        let array_literal_list_list =
26368            pop_and_reverse_item!(self, array_literal_list_list, ArrayLiteralListList, context);
26369        let array_literal_item = pop_item!(self, array_literal_item, ArrayLiteralItem, context);
26370        let array_literal_list_built = ArrayLiteralList {
26371            array_literal_item: Box::new(array_literal_item),
26372            array_literal_list_list,
26373            array_literal_list_opt,
26374        };
26375        // Calling user action here
26376        self.user_grammar
26377            .array_literal_list(&array_literal_list_built)?;
26378        self.push(ASTType::ArrayLiteralList(array_literal_list_built), context);
26379        Ok(())
26380    }
26381
26382    /// Semantic action for production 529:
26383    ///
26384    /// `ArrayLiteralListList /* Vec<T>::Push */: Comma ArrayLiteralItem ArrayLiteralListList;`
26385    ///
26386    #[parol_runtime::function_name::named]
26387    fn array_literal_list_list_0(
26388        &mut self,
26389        _comma: &ParseTreeType<'t>,
26390        _array_literal_item: &ParseTreeType<'t>,
26391        _array_literal_list_list: &ParseTreeType<'t>,
26392    ) -> Result<()> {
26393        let context = function_name!();
26394        trace!("{}", self.trace_item_stack(context));
26395        let mut array_literal_list_list =
26396            pop_item!(self, array_literal_list_list, ArrayLiteralListList, context);
26397        let array_literal_item = pop_item!(self, array_literal_item, ArrayLiteralItem, context);
26398        let comma = pop_item!(self, comma, Comma, context);
26399        let array_literal_list_list_0_built = ArrayLiteralListList {
26400            array_literal_item: Box::new(array_literal_item),
26401            comma: Box::new(comma),
26402        };
26403        // Add an element to the vector
26404        array_literal_list_list.push(array_literal_list_list_0_built);
26405        self.push(
26406            ASTType::ArrayLiteralListList(array_literal_list_list),
26407            context,
26408        );
26409        Ok(())
26410    }
26411
26412    /// Semantic action for production 530:
26413    ///
26414    /// `ArrayLiteralListList /* Vec<T>::New */: ;`
26415    ///
26416    #[parol_runtime::function_name::named]
26417    fn array_literal_list_list_1(&mut self) -> Result<()> {
26418        let context = function_name!();
26419        trace!("{}", self.trace_item_stack(context));
26420        let array_literal_list_list_1_built = Vec::new();
26421        self.push(
26422            ASTType::ArrayLiteralListList(array_literal_list_list_1_built),
26423            context,
26424        );
26425        Ok(())
26426    }
26427
26428    /// Semantic action for production 531:
26429    ///
26430    /// `ArrayLiteralListOpt /* Option<T>::Some */: Comma;`
26431    ///
26432    #[parol_runtime::function_name::named]
26433    fn array_literal_list_opt_0(&mut self, _comma: &ParseTreeType<'t>) -> Result<()> {
26434        let context = function_name!();
26435        trace!("{}", self.trace_item_stack(context));
26436        let comma = pop_item!(self, comma, Comma, context);
26437        let array_literal_list_opt_0_built = ArrayLiteralListOpt {
26438            comma: Box::new(comma),
26439        };
26440        self.push(
26441            ASTType::ArrayLiteralListOpt(Some(array_literal_list_opt_0_built)),
26442            context,
26443        );
26444        Ok(())
26445    }
26446
26447    /// Semantic action for production 532:
26448    ///
26449    /// `ArrayLiteralListOpt /* Option<T>::None */: ;`
26450    ///
26451    #[parol_runtime::function_name::named]
26452    fn array_literal_list_opt_1(&mut self) -> Result<()> {
26453        let context = function_name!();
26454        trace!("{}", self.trace_item_stack(context));
26455        self.push(ASTType::ArrayLiteralListOpt(None), context);
26456        Ok(())
26457    }
26458
26459    /// Semantic action for production 533:
26460    ///
26461    /// `ArrayLiteralItem: ArrayLiteralItemGroup;`
26462    ///
26463    #[parol_runtime::function_name::named]
26464    fn array_literal_item(&mut self, _array_literal_item_group: &ParseTreeType<'t>) -> Result<()> {
26465        let context = function_name!();
26466        trace!("{}", self.trace_item_stack(context));
26467        let array_literal_item_group = pop_item!(
26468            self,
26469            array_literal_item_group,
26470            ArrayLiteralItemGroup,
26471            context
26472        );
26473        let array_literal_item_built = ArrayLiteralItem {
26474            array_literal_item_group: Box::new(array_literal_item_group),
26475        };
26476        // Calling user action here
26477        self.user_grammar
26478            .array_literal_item(&array_literal_item_built)?;
26479        self.push(ASTType::ArrayLiteralItem(array_literal_item_built), context);
26480        Ok(())
26481    }
26482
26483    /// Semantic action for production 534:
26484    ///
26485    /// `ArrayLiteralItemGroup: Expression ArrayLiteralItemOpt /* Option */;`
26486    ///
26487    #[parol_runtime::function_name::named]
26488    fn array_literal_item_group_0(
26489        &mut self,
26490        _expression: &ParseTreeType<'t>,
26491        _array_literal_item_opt: &ParseTreeType<'t>,
26492    ) -> Result<()> {
26493        let context = function_name!();
26494        trace!("{}", self.trace_item_stack(context));
26495        let array_literal_item_opt =
26496            pop_item!(self, array_literal_item_opt, ArrayLiteralItemOpt, context);
26497        let expression = pop_item!(self, expression, Expression, context);
26498        let array_literal_item_group_0_built = ArrayLiteralItemGroupExpressionArrayLiteralItemOpt {
26499            expression: Box::new(expression),
26500            array_literal_item_opt,
26501        };
26502        let array_literal_item_group_0_built =
26503            ArrayLiteralItemGroup::ExpressionArrayLiteralItemOpt(array_literal_item_group_0_built);
26504        self.push(
26505            ASTType::ArrayLiteralItemGroup(array_literal_item_group_0_built),
26506            context,
26507        );
26508        Ok(())
26509    }
26510
26511    /// Semantic action for production 535:
26512    ///
26513    /// `ArrayLiteralItemGroup: Defaul Colon Expression;`
26514    ///
26515    #[parol_runtime::function_name::named]
26516    fn array_literal_item_group_1(
26517        &mut self,
26518        _defaul: &ParseTreeType<'t>,
26519        _colon: &ParseTreeType<'t>,
26520        _expression: &ParseTreeType<'t>,
26521    ) -> Result<()> {
26522        let context = function_name!();
26523        trace!("{}", self.trace_item_stack(context));
26524        let expression = pop_item!(self, expression, Expression, context);
26525        let colon = pop_item!(self, colon, Colon, context);
26526        let defaul = pop_item!(self, defaul, Defaul, context);
26527        let array_literal_item_group_1_built = ArrayLiteralItemGroupDefaulColonExpression {
26528            defaul: Box::new(defaul),
26529            colon: Box::new(colon),
26530            expression: Box::new(expression),
26531        };
26532        let array_literal_item_group_1_built =
26533            ArrayLiteralItemGroup::DefaulColonExpression(array_literal_item_group_1_built);
26534        self.push(
26535            ASTType::ArrayLiteralItemGroup(array_literal_item_group_1_built),
26536            context,
26537        );
26538        Ok(())
26539    }
26540
26541    /// Semantic action for production 536:
26542    ///
26543    /// `ArrayLiteralItemOpt /* Option<T>::Some */: Repeat Expression;`
26544    ///
26545    #[parol_runtime::function_name::named]
26546    fn array_literal_item_opt_0(
26547        &mut self,
26548        _repeat: &ParseTreeType<'t>,
26549        _expression: &ParseTreeType<'t>,
26550    ) -> Result<()> {
26551        let context = function_name!();
26552        trace!("{}", self.trace_item_stack(context));
26553        let expression = pop_item!(self, expression, Expression, context);
26554        let repeat = pop_item!(self, repeat, Repeat, context);
26555        let array_literal_item_opt_0_built = ArrayLiteralItemOpt {
26556            repeat: Box::new(repeat),
26557            expression: Box::new(expression),
26558        };
26559        self.push(
26560            ASTType::ArrayLiteralItemOpt(Some(array_literal_item_opt_0_built)),
26561            context,
26562        );
26563        Ok(())
26564    }
26565
26566    /// Semantic action for production 537:
26567    ///
26568    /// `ArrayLiteralItemOpt /* Option<T>::None */: ;`
26569    ///
26570    #[parol_runtime::function_name::named]
26571    fn array_literal_item_opt_1(&mut self) -> Result<()> {
26572        let context = function_name!();
26573        trace!("{}", self.trace_item_stack(context));
26574        self.push(ASTType::ArrayLiteralItemOpt(None), context);
26575        Ok(())
26576    }
26577
26578    /// Semantic action for production 538:
26579    ///
26580    /// `CaseExpression: Case Expression LBrace CaseCondition Colon Expression Comma CaseExpressionList /* Vec */ Defaul Colon Expression CaseExpressionOpt /* Option */ RBrace;`
26581    ///
26582    #[parol_runtime::function_name::named]
26583    fn case_expression(
26584        &mut self,
26585        _case: &ParseTreeType<'t>,
26586        _expression: &ParseTreeType<'t>,
26587        _l_brace: &ParseTreeType<'t>,
26588        _case_condition: &ParseTreeType<'t>,
26589        _colon: &ParseTreeType<'t>,
26590        _expression0: &ParseTreeType<'t>,
26591        _comma: &ParseTreeType<'t>,
26592        _case_expression_list: &ParseTreeType<'t>,
26593        _defaul: &ParseTreeType<'t>,
26594        _colon0: &ParseTreeType<'t>,
26595        _expression1: &ParseTreeType<'t>,
26596        _case_expression_opt: &ParseTreeType<'t>,
26597        _r_brace: &ParseTreeType<'t>,
26598    ) -> Result<()> {
26599        let context = function_name!();
26600        trace!("{}", self.trace_item_stack(context));
26601        let r_brace = pop_item!(self, r_brace, RBrace, context);
26602        let case_expression_opt = pop_item!(self, case_expression_opt, CaseExpressionOpt, context);
26603        let expression1 = pop_item!(self, expression1, Expression, context);
26604        let colon0 = pop_item!(self, colon0, Colon, context);
26605        let defaul = pop_item!(self, defaul, Defaul, context);
26606        let case_expression_list =
26607            pop_and_reverse_item!(self, case_expression_list, CaseExpressionList, context);
26608        let comma = pop_item!(self, comma, Comma, context);
26609        let expression0 = pop_item!(self, expression0, Expression, context);
26610        let colon = pop_item!(self, colon, Colon, context);
26611        let case_condition = pop_item!(self, case_condition, CaseCondition, context);
26612        let l_brace = pop_item!(self, l_brace, LBrace, context);
26613        let expression = pop_item!(self, expression, Expression, context);
26614        let case = pop_item!(self, case, Case, context);
26615        let case_expression_built = CaseExpression {
26616            case: Box::new(case),
26617            expression: Box::new(expression),
26618            l_brace: Box::new(l_brace),
26619            case_condition: Box::new(case_condition),
26620            colon: Box::new(colon),
26621            expression0: Box::new(expression0),
26622            comma: Box::new(comma),
26623            case_expression_list,
26624            defaul: Box::new(defaul),
26625            colon0: Box::new(colon0),
26626            expression1: Box::new(expression1),
26627            case_expression_opt,
26628            r_brace: Box::new(r_brace),
26629        };
26630        // Calling user action here
26631        self.user_grammar.case_expression(&case_expression_built)?;
26632        self.push(ASTType::CaseExpression(case_expression_built), context);
26633        Ok(())
26634    }
26635
26636    /// Semantic action for production 539:
26637    ///
26638    /// `CaseExpressionList /* Vec<T>::Push */: CaseCondition Colon Expression Comma CaseExpressionList;`
26639    ///
26640    #[parol_runtime::function_name::named]
26641    fn case_expression_list_0(
26642        &mut self,
26643        _case_condition: &ParseTreeType<'t>,
26644        _colon: &ParseTreeType<'t>,
26645        _expression: &ParseTreeType<'t>,
26646        _comma: &ParseTreeType<'t>,
26647        _case_expression_list: &ParseTreeType<'t>,
26648    ) -> Result<()> {
26649        let context = function_name!();
26650        trace!("{}", self.trace_item_stack(context));
26651        let mut case_expression_list =
26652            pop_item!(self, case_expression_list, CaseExpressionList, context);
26653        let comma = pop_item!(self, comma, Comma, context);
26654        let expression = pop_item!(self, expression, Expression, context);
26655        let colon = pop_item!(self, colon, Colon, context);
26656        let case_condition = pop_item!(self, case_condition, CaseCondition, context);
26657        let case_expression_list_0_built = CaseExpressionList {
26658            comma: Box::new(comma),
26659            expression: Box::new(expression),
26660            colon: Box::new(colon),
26661            case_condition: Box::new(case_condition),
26662        };
26663        // Add an element to the vector
26664        case_expression_list.push(case_expression_list_0_built);
26665        self.push(ASTType::CaseExpressionList(case_expression_list), context);
26666        Ok(())
26667    }
26668
26669    /// Semantic action for production 540:
26670    ///
26671    /// `CaseExpressionList /* Vec<T>::New */: ;`
26672    ///
26673    #[parol_runtime::function_name::named]
26674    fn case_expression_list_1(&mut self) -> Result<()> {
26675        let context = function_name!();
26676        trace!("{}", self.trace_item_stack(context));
26677        let case_expression_list_1_built = Vec::new();
26678        self.push(
26679            ASTType::CaseExpressionList(case_expression_list_1_built),
26680            context,
26681        );
26682        Ok(())
26683    }
26684
26685    /// Semantic action for production 541:
26686    ///
26687    /// `CaseExpressionOpt /* Option<T>::Some */: Comma;`
26688    ///
26689    #[parol_runtime::function_name::named]
26690    fn case_expression_opt_0(&mut self, _comma: &ParseTreeType<'t>) -> Result<()> {
26691        let context = function_name!();
26692        trace!("{}", self.trace_item_stack(context));
26693        let comma = pop_item!(self, comma, Comma, context);
26694        let case_expression_opt_0_built = CaseExpressionOpt {
26695            comma: Box::new(comma),
26696        };
26697        self.push(
26698            ASTType::CaseExpressionOpt(Some(case_expression_opt_0_built)),
26699            context,
26700        );
26701        Ok(())
26702    }
26703
26704    /// Semantic action for production 542:
26705    ///
26706    /// `CaseExpressionOpt /* Option<T>::None */: ;`
26707    ///
26708    #[parol_runtime::function_name::named]
26709    fn case_expression_opt_1(&mut self) -> Result<()> {
26710        let context = function_name!();
26711        trace!("{}", self.trace_item_stack(context));
26712        self.push(ASTType::CaseExpressionOpt(None), context);
26713        Ok(())
26714    }
26715
26716    /// Semantic action for production 543:
26717    ///
26718    /// `SwitchExpression: Switch LBrace SwitchCondition Colon Expression Comma SwitchExpressionList /* Vec */ Defaul Colon Expression SwitchExpressionOpt /* Option */ RBrace;`
26719    ///
26720    #[parol_runtime::function_name::named]
26721    fn switch_expression(
26722        &mut self,
26723        _switch: &ParseTreeType<'t>,
26724        _l_brace: &ParseTreeType<'t>,
26725        _switch_condition: &ParseTreeType<'t>,
26726        _colon: &ParseTreeType<'t>,
26727        _expression: &ParseTreeType<'t>,
26728        _comma: &ParseTreeType<'t>,
26729        _switch_expression_list: &ParseTreeType<'t>,
26730        _defaul: &ParseTreeType<'t>,
26731        _colon0: &ParseTreeType<'t>,
26732        _expression0: &ParseTreeType<'t>,
26733        _switch_expression_opt: &ParseTreeType<'t>,
26734        _r_brace: &ParseTreeType<'t>,
26735    ) -> Result<()> {
26736        let context = function_name!();
26737        trace!("{}", self.trace_item_stack(context));
26738        let r_brace = pop_item!(self, r_brace, RBrace, context);
26739        let switch_expression_opt =
26740            pop_item!(self, switch_expression_opt, SwitchExpressionOpt, context);
26741        let expression0 = pop_item!(self, expression0, Expression, context);
26742        let colon0 = pop_item!(self, colon0, Colon, context);
26743        let defaul = pop_item!(self, defaul, Defaul, context);
26744        let switch_expression_list =
26745            pop_and_reverse_item!(self, switch_expression_list, SwitchExpressionList, context);
26746        let comma = pop_item!(self, comma, Comma, context);
26747        let expression = pop_item!(self, expression, Expression, context);
26748        let colon = pop_item!(self, colon, Colon, context);
26749        let switch_condition = pop_item!(self, switch_condition, SwitchCondition, context);
26750        let l_brace = pop_item!(self, l_brace, LBrace, context);
26751        let switch = pop_item!(self, switch, Switch, context);
26752        let switch_expression_built = SwitchExpression {
26753            switch: Box::new(switch),
26754            l_brace: Box::new(l_brace),
26755            switch_condition: Box::new(switch_condition),
26756            colon: Box::new(colon),
26757            expression: Box::new(expression),
26758            comma: Box::new(comma),
26759            switch_expression_list,
26760            defaul: Box::new(defaul),
26761            colon0: Box::new(colon0),
26762            expression0: Box::new(expression0),
26763            switch_expression_opt,
26764            r_brace: Box::new(r_brace),
26765        };
26766        // Calling user action here
26767        self.user_grammar
26768            .switch_expression(&switch_expression_built)?;
26769        self.push(ASTType::SwitchExpression(switch_expression_built), context);
26770        Ok(())
26771    }
26772
26773    /// Semantic action for production 544:
26774    ///
26775    /// `SwitchExpressionList /* Vec<T>::Push */: SwitchCondition Colon Expression Comma SwitchExpressionList;`
26776    ///
26777    #[parol_runtime::function_name::named]
26778    fn switch_expression_list_0(
26779        &mut self,
26780        _switch_condition: &ParseTreeType<'t>,
26781        _colon: &ParseTreeType<'t>,
26782        _expression: &ParseTreeType<'t>,
26783        _comma: &ParseTreeType<'t>,
26784        _switch_expression_list: &ParseTreeType<'t>,
26785    ) -> Result<()> {
26786        let context = function_name!();
26787        trace!("{}", self.trace_item_stack(context));
26788        let mut switch_expression_list =
26789            pop_item!(self, switch_expression_list, SwitchExpressionList, context);
26790        let comma = pop_item!(self, comma, Comma, context);
26791        let expression = pop_item!(self, expression, Expression, context);
26792        let colon = pop_item!(self, colon, Colon, context);
26793        let switch_condition = pop_item!(self, switch_condition, SwitchCondition, context);
26794        let switch_expression_list_0_built = SwitchExpressionList {
26795            comma: Box::new(comma),
26796            expression: Box::new(expression),
26797            colon: Box::new(colon),
26798            switch_condition: Box::new(switch_condition),
26799        };
26800        // Add an element to the vector
26801        switch_expression_list.push(switch_expression_list_0_built);
26802        self.push(
26803            ASTType::SwitchExpressionList(switch_expression_list),
26804            context,
26805        );
26806        Ok(())
26807    }
26808
26809    /// Semantic action for production 545:
26810    ///
26811    /// `SwitchExpressionList /* Vec<T>::New */: ;`
26812    ///
26813    #[parol_runtime::function_name::named]
26814    fn switch_expression_list_1(&mut self) -> Result<()> {
26815        let context = function_name!();
26816        trace!("{}", self.trace_item_stack(context));
26817        let switch_expression_list_1_built = Vec::new();
26818        self.push(
26819            ASTType::SwitchExpressionList(switch_expression_list_1_built),
26820            context,
26821        );
26822        Ok(())
26823    }
26824
26825    /// Semantic action for production 546:
26826    ///
26827    /// `SwitchExpressionOpt /* Option<T>::Some */: Comma;`
26828    ///
26829    #[parol_runtime::function_name::named]
26830    fn switch_expression_opt_0(&mut self, _comma: &ParseTreeType<'t>) -> Result<()> {
26831        let context = function_name!();
26832        trace!("{}", self.trace_item_stack(context));
26833        let comma = pop_item!(self, comma, Comma, context);
26834        let switch_expression_opt_0_built = SwitchExpressionOpt {
26835            comma: Box::new(comma),
26836        };
26837        self.push(
26838            ASTType::SwitchExpressionOpt(Some(switch_expression_opt_0_built)),
26839            context,
26840        );
26841        Ok(())
26842    }
26843
26844    /// Semantic action for production 547:
26845    ///
26846    /// `SwitchExpressionOpt /* Option<T>::None */: ;`
26847    ///
26848    #[parol_runtime::function_name::named]
26849    fn switch_expression_opt_1(&mut self) -> Result<()> {
26850        let context = function_name!();
26851        trace!("{}", self.trace_item_stack(context));
26852        self.push(ASTType::SwitchExpressionOpt(None), context);
26853        Ok(())
26854    }
26855
26856    /// Semantic action for production 548:
26857    ///
26858    /// `TypeExpression: Type LParen Expression RParen;`
26859    ///
26860    #[parol_runtime::function_name::named]
26861    fn type_expression(
26862        &mut self,
26863        _type: &ParseTreeType<'t>,
26864        _l_paren: &ParseTreeType<'t>,
26865        _expression: &ParseTreeType<'t>,
26866        _r_paren: &ParseTreeType<'t>,
26867    ) -> Result<()> {
26868        let context = function_name!();
26869        trace!("{}", self.trace_item_stack(context));
26870        let r_paren = pop_item!(self, r_paren, RParen, context);
26871        let expression = pop_item!(self, expression, Expression, context);
26872        let l_paren = pop_item!(self, l_paren, LParen, context);
26873        let r#type = pop_item!(self, r#type, Type, context);
26874        let type_expression_built = TypeExpression {
26875            r#type: Box::new(r#type),
26876            l_paren: Box::new(l_paren),
26877            expression: Box::new(expression),
26878            r_paren: Box::new(r_paren),
26879        };
26880        // Calling user action here
26881        self.user_grammar.type_expression(&type_expression_built)?;
26882        self.push(ASTType::TypeExpression(type_expression_built), context);
26883        Ok(())
26884    }
26885
26886    /// Semantic action for production 549:
26887    ///
26888    /// `InsideExpression: Inside Expression LBrace RangeList RBrace;`
26889    ///
26890    #[parol_runtime::function_name::named]
26891    fn inside_expression(
26892        &mut self,
26893        _inside: &ParseTreeType<'t>,
26894        _expression: &ParseTreeType<'t>,
26895        _l_brace: &ParseTreeType<'t>,
26896        _range_list: &ParseTreeType<'t>,
26897        _r_brace: &ParseTreeType<'t>,
26898    ) -> Result<()> {
26899        let context = function_name!();
26900        trace!("{}", self.trace_item_stack(context));
26901        let r_brace = pop_item!(self, r_brace, RBrace, context);
26902        let range_list = pop_item!(self, range_list, RangeList, context);
26903        let l_brace = pop_item!(self, l_brace, LBrace, context);
26904        let expression = pop_item!(self, expression, Expression, context);
26905        let inside = pop_item!(self, inside, Inside, context);
26906        let inside_expression_built = InsideExpression {
26907            inside: Box::new(inside),
26908            expression: Box::new(expression),
26909            l_brace: Box::new(l_brace),
26910            range_list: Box::new(range_list),
26911            r_brace: Box::new(r_brace),
26912        };
26913        // Calling user action here
26914        self.user_grammar
26915            .inside_expression(&inside_expression_built)?;
26916        self.push(ASTType::InsideExpression(inside_expression_built), context);
26917        Ok(())
26918    }
26919
26920    /// Semantic action for production 550:
26921    ///
26922    /// `OutsideExpression: Outside Expression LBrace RangeList RBrace;`
26923    ///
26924    #[parol_runtime::function_name::named]
26925    fn outside_expression(
26926        &mut self,
26927        _outside: &ParseTreeType<'t>,
26928        _expression: &ParseTreeType<'t>,
26929        _l_brace: &ParseTreeType<'t>,
26930        _range_list: &ParseTreeType<'t>,
26931        _r_brace: &ParseTreeType<'t>,
26932    ) -> Result<()> {
26933        let context = function_name!();
26934        trace!("{}", self.trace_item_stack(context));
26935        let r_brace = pop_item!(self, r_brace, RBrace, context);
26936        let range_list = pop_item!(self, range_list, RangeList, context);
26937        let l_brace = pop_item!(self, l_brace, LBrace, context);
26938        let expression = pop_item!(self, expression, Expression, context);
26939        let outside = pop_item!(self, outside, Outside, context);
26940        let outside_expression_built = OutsideExpression {
26941            outside: Box::new(outside),
26942            expression: Box::new(expression),
26943            l_brace: Box::new(l_brace),
26944            range_list: Box::new(range_list),
26945            r_brace: Box::new(r_brace),
26946        };
26947        // Calling user action here
26948        self.user_grammar
26949            .outside_expression(&outside_expression_built)?;
26950        self.push(
26951            ASTType::OutsideExpression(outside_expression_built),
26952            context,
26953        );
26954        Ok(())
26955    }
26956
26957    /// Semantic action for production 551:
26958    ///
26959    /// `RangeList: RangeItem RangeListList /* Vec */ RangeListOpt /* Option */;`
26960    ///
26961    #[parol_runtime::function_name::named]
26962    fn range_list(
26963        &mut self,
26964        _range_item: &ParseTreeType<'t>,
26965        _range_list_list: &ParseTreeType<'t>,
26966        _range_list_opt: &ParseTreeType<'t>,
26967    ) -> Result<()> {
26968        let context = function_name!();
26969        trace!("{}", self.trace_item_stack(context));
26970        let range_list_opt = pop_item!(self, range_list_opt, RangeListOpt, context);
26971        let range_list_list = pop_and_reverse_item!(self, range_list_list, RangeListList, context);
26972        let range_item = pop_item!(self, range_item, RangeItem, context);
26973        let range_list_built = RangeList {
26974            range_item: Box::new(range_item),
26975            range_list_list,
26976            range_list_opt,
26977        };
26978        // Calling user action here
26979        self.user_grammar.range_list(&range_list_built)?;
26980        self.push(ASTType::RangeList(range_list_built), context);
26981        Ok(())
26982    }
26983
26984    /// Semantic action for production 552:
26985    ///
26986    /// `RangeListList /* Vec<T>::Push */: Comma RangeItem RangeListList;`
26987    ///
26988    #[parol_runtime::function_name::named]
26989    fn range_list_list_0(
26990        &mut self,
26991        _comma: &ParseTreeType<'t>,
26992        _range_item: &ParseTreeType<'t>,
26993        _range_list_list: &ParseTreeType<'t>,
26994    ) -> Result<()> {
26995        let context = function_name!();
26996        trace!("{}", self.trace_item_stack(context));
26997        let mut range_list_list = pop_item!(self, range_list_list, RangeListList, context);
26998        let range_item = pop_item!(self, range_item, RangeItem, context);
26999        let comma = pop_item!(self, comma, Comma, context);
27000        let range_list_list_0_built = RangeListList {
27001            range_item: Box::new(range_item),
27002            comma: Box::new(comma),
27003        };
27004        // Add an element to the vector
27005        range_list_list.push(range_list_list_0_built);
27006        self.push(ASTType::RangeListList(range_list_list), context);
27007        Ok(())
27008    }
27009
27010    /// Semantic action for production 553:
27011    ///
27012    /// `RangeListList /* Vec<T>::New */: ;`
27013    ///
27014    #[parol_runtime::function_name::named]
27015    fn range_list_list_1(&mut self) -> Result<()> {
27016        let context = function_name!();
27017        trace!("{}", self.trace_item_stack(context));
27018        let range_list_list_1_built = Vec::new();
27019        self.push(ASTType::RangeListList(range_list_list_1_built), context);
27020        Ok(())
27021    }
27022
27023    /// Semantic action for production 554:
27024    ///
27025    /// `RangeListOpt /* Option<T>::Some */: Comma;`
27026    ///
27027    #[parol_runtime::function_name::named]
27028    fn range_list_opt_0(&mut self, _comma: &ParseTreeType<'t>) -> Result<()> {
27029        let context = function_name!();
27030        trace!("{}", self.trace_item_stack(context));
27031        let comma = pop_item!(self, comma, Comma, context);
27032        let range_list_opt_0_built = RangeListOpt {
27033            comma: Box::new(comma),
27034        };
27035        self.push(ASTType::RangeListOpt(Some(range_list_opt_0_built)), context);
27036        Ok(())
27037    }
27038
27039    /// Semantic action for production 555:
27040    ///
27041    /// `RangeListOpt /* Option<T>::None */: ;`
27042    ///
27043    #[parol_runtime::function_name::named]
27044    fn range_list_opt_1(&mut self) -> Result<()> {
27045        let context = function_name!();
27046        trace!("{}", self.trace_item_stack(context));
27047        self.push(ASTType::RangeListOpt(None), context);
27048        Ok(())
27049    }
27050
27051    /// Semantic action for production 556:
27052    ///
27053    /// `RangeItem: Range;`
27054    ///
27055    #[parol_runtime::function_name::named]
27056    fn range_item(&mut self, _range: &ParseTreeType<'t>) -> Result<()> {
27057        let context = function_name!();
27058        trace!("{}", self.trace_item_stack(context));
27059        let range = pop_item!(self, range, Range, context);
27060        let range_item_built = RangeItem {
27061            range: Box::new(range),
27062        };
27063        // Calling user action here
27064        self.user_grammar.range_item(&range_item_built)?;
27065        self.push(ASTType::RangeItem(range_item_built), context);
27066        Ok(())
27067    }
27068
27069    /// Semantic action for production 557:
27070    ///
27071    /// `Select: LBracket Expression SelectOpt /* Option */ RBracket;`
27072    ///
27073    #[parol_runtime::function_name::named]
27074    fn select(
27075        &mut self,
27076        _l_bracket: &ParseTreeType<'t>,
27077        _expression: &ParseTreeType<'t>,
27078        _select_opt: &ParseTreeType<'t>,
27079        _r_bracket: &ParseTreeType<'t>,
27080    ) -> Result<()> {
27081        let context = function_name!();
27082        trace!("{}", self.trace_item_stack(context));
27083        let r_bracket = pop_item!(self, r_bracket, RBracket, context);
27084        let select_opt = pop_item!(self, select_opt, SelectOpt, context);
27085        let expression = pop_item!(self, expression, Expression, context);
27086        let l_bracket = pop_item!(self, l_bracket, LBracket, context);
27087        let select_built = Select {
27088            l_bracket: Box::new(l_bracket),
27089            expression: Box::new(expression),
27090            select_opt,
27091            r_bracket: Box::new(r_bracket),
27092        };
27093        // Calling user action here
27094        self.user_grammar.select(&select_built)?;
27095        self.push(ASTType::Select(select_built), context);
27096        Ok(())
27097    }
27098
27099    /// Semantic action for production 558:
27100    ///
27101    /// `SelectOpt /* Option<T>::Some */: SelectOperator Expression;`
27102    ///
27103    #[parol_runtime::function_name::named]
27104    fn select_opt_0(
27105        &mut self,
27106        _select_operator: &ParseTreeType<'t>,
27107        _expression: &ParseTreeType<'t>,
27108    ) -> Result<()> {
27109        let context = function_name!();
27110        trace!("{}", self.trace_item_stack(context));
27111        let expression = pop_item!(self, expression, Expression, context);
27112        let select_operator = pop_item!(self, select_operator, SelectOperator, context);
27113        let select_opt_0_built = SelectOpt {
27114            select_operator: Box::new(select_operator),
27115            expression: Box::new(expression),
27116        };
27117        self.push(ASTType::SelectOpt(Some(select_opt_0_built)), context);
27118        Ok(())
27119    }
27120
27121    /// Semantic action for production 559:
27122    ///
27123    /// `SelectOpt /* Option<T>::None */: ;`
27124    ///
27125    #[parol_runtime::function_name::named]
27126    fn select_opt_1(&mut self) -> Result<()> {
27127        let context = function_name!();
27128        trace!("{}", self.trace_item_stack(context));
27129        self.push(ASTType::SelectOpt(None), context);
27130        Ok(())
27131    }
27132
27133    /// Semantic action for production 560:
27134    ///
27135    /// `SelectOperator: Colon;`
27136    ///
27137    #[parol_runtime::function_name::named]
27138    fn select_operator_0(&mut self, _colon: &ParseTreeType<'t>) -> Result<()> {
27139        let context = function_name!();
27140        trace!("{}", self.trace_item_stack(context));
27141        let colon = pop_item!(self, colon, Colon, context);
27142        let select_operator_0_built = SelectOperatorColon {
27143            colon: Box::new(colon),
27144        };
27145        let select_operator_0_built = SelectOperator::Colon(select_operator_0_built);
27146        // Calling user action here
27147        self.user_grammar
27148            .select_operator(&select_operator_0_built)?;
27149        self.push(ASTType::SelectOperator(select_operator_0_built), context);
27150        Ok(())
27151    }
27152
27153    /// Semantic action for production 561:
27154    ///
27155    /// `SelectOperator: PlusColon;`
27156    ///
27157    #[parol_runtime::function_name::named]
27158    fn select_operator_1(&mut self, _plus_colon: &ParseTreeType<'t>) -> Result<()> {
27159        let context = function_name!();
27160        trace!("{}", self.trace_item_stack(context));
27161        let plus_colon = pop_item!(self, plus_colon, PlusColon, context);
27162        let select_operator_1_built = SelectOperatorPlusColon {
27163            plus_colon: Box::new(plus_colon),
27164        };
27165        let select_operator_1_built = SelectOperator::PlusColon(select_operator_1_built);
27166        // Calling user action here
27167        self.user_grammar
27168            .select_operator(&select_operator_1_built)?;
27169        self.push(ASTType::SelectOperator(select_operator_1_built), context);
27170        Ok(())
27171    }
27172
27173    /// Semantic action for production 562:
27174    ///
27175    /// `SelectOperator: MinusColon;`
27176    ///
27177    #[parol_runtime::function_name::named]
27178    fn select_operator_2(&mut self, _minus_colon: &ParseTreeType<'t>) -> Result<()> {
27179        let context = function_name!();
27180        trace!("{}", self.trace_item_stack(context));
27181        let minus_colon = pop_item!(self, minus_colon, MinusColon, context);
27182        let select_operator_2_built = SelectOperatorMinusColon {
27183            minus_colon: Box::new(minus_colon),
27184        };
27185        let select_operator_2_built = SelectOperator::MinusColon(select_operator_2_built);
27186        // Calling user action here
27187        self.user_grammar
27188            .select_operator(&select_operator_2_built)?;
27189        self.push(ASTType::SelectOperator(select_operator_2_built), context);
27190        Ok(())
27191    }
27192
27193    /// Semantic action for production 563:
27194    ///
27195    /// `SelectOperator: Step;`
27196    ///
27197    #[parol_runtime::function_name::named]
27198    fn select_operator_3(&mut self, _step: &ParseTreeType<'t>) -> Result<()> {
27199        let context = function_name!();
27200        trace!("{}", self.trace_item_stack(context));
27201        let step = pop_item!(self, step, Step, context);
27202        let select_operator_3_built = SelectOperatorStep {
27203            step: Box::new(step),
27204        };
27205        let select_operator_3_built = SelectOperator::Step(select_operator_3_built);
27206        // Calling user action here
27207        self.user_grammar
27208            .select_operator(&select_operator_3_built)?;
27209        self.push(ASTType::SelectOperator(select_operator_3_built), context);
27210        Ok(())
27211    }
27212
27213    /// Semantic action for production 564:
27214    ///
27215    /// `Width: LAngle Expression WidthList /* Vec */ RAngle;`
27216    ///
27217    #[parol_runtime::function_name::named]
27218    fn width(
27219        &mut self,
27220        _l_angle: &ParseTreeType<'t>,
27221        _expression: &ParseTreeType<'t>,
27222        _width_list: &ParseTreeType<'t>,
27223        _r_angle: &ParseTreeType<'t>,
27224    ) -> Result<()> {
27225        let context = function_name!();
27226        trace!("{}", self.trace_item_stack(context));
27227        let r_angle = pop_item!(self, r_angle, RAngle, context);
27228        let width_list = pop_and_reverse_item!(self, width_list, WidthList, context);
27229        let expression = pop_item!(self, expression, Expression, context);
27230        let l_angle = pop_item!(self, l_angle, LAngle, context);
27231        let width_built = Width {
27232            l_angle: Box::new(l_angle),
27233            expression: Box::new(expression),
27234            width_list,
27235            r_angle: Box::new(r_angle),
27236        };
27237        // Calling user action here
27238        self.user_grammar.width(&width_built)?;
27239        self.push(ASTType::Width(width_built), context);
27240        Ok(())
27241    }
27242
27243    /// Semantic action for production 565:
27244    ///
27245    /// `WidthList /* Vec<T>::Push */: Comma Expression WidthList;`
27246    ///
27247    #[parol_runtime::function_name::named]
27248    fn width_list_0(
27249        &mut self,
27250        _comma: &ParseTreeType<'t>,
27251        _expression: &ParseTreeType<'t>,
27252        _width_list: &ParseTreeType<'t>,
27253    ) -> Result<()> {
27254        let context = function_name!();
27255        trace!("{}", self.trace_item_stack(context));
27256        let mut width_list = pop_item!(self, width_list, WidthList, context);
27257        let expression = pop_item!(self, expression, Expression, context);
27258        let comma = pop_item!(self, comma, Comma, context);
27259        let width_list_0_built = WidthList {
27260            expression: Box::new(expression),
27261            comma: Box::new(comma),
27262        };
27263        // Add an element to the vector
27264        width_list.push(width_list_0_built);
27265        self.push(ASTType::WidthList(width_list), context);
27266        Ok(())
27267    }
27268
27269    /// Semantic action for production 566:
27270    ///
27271    /// `WidthList /* Vec<T>::New */: ;`
27272    ///
27273    #[parol_runtime::function_name::named]
27274    fn width_list_1(&mut self) -> Result<()> {
27275        let context = function_name!();
27276        trace!("{}", self.trace_item_stack(context));
27277        let width_list_1_built = Vec::new();
27278        self.push(ASTType::WidthList(width_list_1_built), context);
27279        Ok(())
27280    }
27281
27282    /// Semantic action for production 567:
27283    ///
27284    /// `Array: LBracket Expression ArrayList /* Vec */ RBracket;`
27285    ///
27286    #[parol_runtime::function_name::named]
27287    fn array(
27288        &mut self,
27289        _l_bracket: &ParseTreeType<'t>,
27290        _expression: &ParseTreeType<'t>,
27291        _array_list: &ParseTreeType<'t>,
27292        _r_bracket: &ParseTreeType<'t>,
27293    ) -> Result<()> {
27294        let context = function_name!();
27295        trace!("{}", self.trace_item_stack(context));
27296        let r_bracket = pop_item!(self, r_bracket, RBracket, context);
27297        let array_list = pop_and_reverse_item!(self, array_list, ArrayList, context);
27298        let expression = pop_item!(self, expression, Expression, context);
27299        let l_bracket = pop_item!(self, l_bracket, LBracket, context);
27300        let array_built = Array {
27301            l_bracket: Box::new(l_bracket),
27302            expression: Box::new(expression),
27303            array_list,
27304            r_bracket: Box::new(r_bracket),
27305        };
27306        // Calling user action here
27307        self.user_grammar.array(&array_built)?;
27308        self.push(ASTType::Array(array_built), context);
27309        Ok(())
27310    }
27311
27312    /// Semantic action for production 568:
27313    ///
27314    /// `ArrayList /* Vec<T>::Push */: Comma Expression ArrayList;`
27315    ///
27316    #[parol_runtime::function_name::named]
27317    fn array_list_0(
27318        &mut self,
27319        _comma: &ParseTreeType<'t>,
27320        _expression: &ParseTreeType<'t>,
27321        _array_list: &ParseTreeType<'t>,
27322    ) -> Result<()> {
27323        let context = function_name!();
27324        trace!("{}", self.trace_item_stack(context));
27325        let mut array_list = pop_item!(self, array_list, ArrayList, context);
27326        let expression = pop_item!(self, expression, Expression, context);
27327        let comma = pop_item!(self, comma, Comma, context);
27328        let array_list_0_built = ArrayList {
27329            expression: Box::new(expression),
27330            comma: Box::new(comma),
27331        };
27332        // Add an element to the vector
27333        array_list.push(array_list_0_built);
27334        self.push(ASTType::ArrayList(array_list), context);
27335        Ok(())
27336    }
27337
27338    /// Semantic action for production 569:
27339    ///
27340    /// `ArrayList /* Vec<T>::New */: ;`
27341    ///
27342    #[parol_runtime::function_name::named]
27343    fn array_list_1(&mut self) -> Result<()> {
27344        let context = function_name!();
27345        trace!("{}", self.trace_item_stack(context));
27346        let array_list_1_built = Vec::new();
27347        self.push(ASTType::ArrayList(array_list_1_built), context);
27348        Ok(())
27349    }
27350
27351    /// Semantic action for production 570:
27352    ///
27353    /// `Range: Expression RangeOpt /* Option */;`
27354    ///
27355    #[parol_runtime::function_name::named]
27356    fn range(
27357        &mut self,
27358        _expression: &ParseTreeType<'t>,
27359        _range_opt: &ParseTreeType<'t>,
27360    ) -> Result<()> {
27361        let context = function_name!();
27362        trace!("{}", self.trace_item_stack(context));
27363        let range_opt = pop_item!(self, range_opt, RangeOpt, context);
27364        let expression = pop_item!(self, expression, Expression, context);
27365        let range_built = Range {
27366            expression: Box::new(expression),
27367            range_opt,
27368        };
27369        // Calling user action here
27370        self.user_grammar.range(&range_built)?;
27371        self.push(ASTType::Range(range_built), context);
27372        Ok(())
27373    }
27374
27375    /// Semantic action for production 571:
27376    ///
27377    /// `RangeOpt /* Option<T>::Some */: RangeOperator Expression;`
27378    ///
27379    #[parol_runtime::function_name::named]
27380    fn range_opt_0(
27381        &mut self,
27382        _range_operator: &ParseTreeType<'t>,
27383        _expression: &ParseTreeType<'t>,
27384    ) -> Result<()> {
27385        let context = function_name!();
27386        trace!("{}", self.trace_item_stack(context));
27387        let expression = pop_item!(self, expression, Expression, context);
27388        let range_operator = pop_item!(self, range_operator, RangeOperator, context);
27389        let range_opt_0_built = RangeOpt {
27390            range_operator: Box::new(range_operator),
27391            expression: Box::new(expression),
27392        };
27393        self.push(ASTType::RangeOpt(Some(range_opt_0_built)), context);
27394        Ok(())
27395    }
27396
27397    /// Semantic action for production 572:
27398    ///
27399    /// `RangeOpt /* Option<T>::None */: ;`
27400    ///
27401    #[parol_runtime::function_name::named]
27402    fn range_opt_1(&mut self) -> Result<()> {
27403        let context = function_name!();
27404        trace!("{}", self.trace_item_stack(context));
27405        self.push(ASTType::RangeOpt(None), context);
27406        Ok(())
27407    }
27408
27409    /// Semantic action for production 573:
27410    ///
27411    /// `RangeOperator: DotDot;`
27412    ///
27413    #[parol_runtime::function_name::named]
27414    fn range_operator_0(&mut self, _dot_dot: &ParseTreeType<'t>) -> Result<()> {
27415        let context = function_name!();
27416        trace!("{}", self.trace_item_stack(context));
27417        let dot_dot = pop_item!(self, dot_dot, DotDot, context);
27418        let range_operator_0_built = RangeOperatorDotDot {
27419            dot_dot: Box::new(dot_dot),
27420        };
27421        let range_operator_0_built = RangeOperator::DotDot(range_operator_0_built);
27422        // Calling user action here
27423        self.user_grammar.range_operator(&range_operator_0_built)?;
27424        self.push(ASTType::RangeOperator(range_operator_0_built), context);
27425        Ok(())
27426    }
27427
27428    /// Semantic action for production 574:
27429    ///
27430    /// `RangeOperator: DotDotEqu;`
27431    ///
27432    #[parol_runtime::function_name::named]
27433    fn range_operator_1(&mut self, _dot_dot_equ: &ParseTreeType<'t>) -> Result<()> {
27434        let context = function_name!();
27435        trace!("{}", self.trace_item_stack(context));
27436        let dot_dot_equ = pop_item!(self, dot_dot_equ, DotDotEqu, context);
27437        let range_operator_1_built = RangeOperatorDotDotEqu {
27438            dot_dot_equ: Box::new(dot_dot_equ),
27439        };
27440        let range_operator_1_built = RangeOperator::DotDotEqu(range_operator_1_built);
27441        // Calling user action here
27442        self.user_grammar.range_operator(&range_operator_1_built)?;
27443        self.push(ASTType::RangeOperator(range_operator_1_built), context);
27444        Ok(())
27445    }
27446
27447    /// Semantic action for production 575:
27448    ///
27449    /// `FixedType: P8;`
27450    ///
27451    #[parol_runtime::function_name::named]
27452    fn fixed_type_0(&mut self, _p8: &ParseTreeType<'t>) -> Result<()> {
27453        let context = function_name!();
27454        trace!("{}", self.trace_item_stack(context));
27455        let p8 = pop_item!(self, p8, P8, context);
27456        let fixed_type_0_built = FixedTypeP8 { p8: Box::new(p8) };
27457        let fixed_type_0_built = FixedType::P8(fixed_type_0_built);
27458        // Calling user action here
27459        self.user_grammar.fixed_type(&fixed_type_0_built)?;
27460        self.push(ASTType::FixedType(fixed_type_0_built), context);
27461        Ok(())
27462    }
27463
27464    /// Semantic action for production 576:
27465    ///
27466    /// `FixedType: P16;`
27467    ///
27468    #[parol_runtime::function_name::named]
27469    fn fixed_type_1(&mut self, _p16: &ParseTreeType<'t>) -> Result<()> {
27470        let context = function_name!();
27471        trace!("{}", self.trace_item_stack(context));
27472        let p16 = pop_item!(self, p16, P16, context);
27473        let fixed_type_1_built = FixedTypeP16 { p16: Box::new(p16) };
27474        let fixed_type_1_built = FixedType::P16(fixed_type_1_built);
27475        // Calling user action here
27476        self.user_grammar.fixed_type(&fixed_type_1_built)?;
27477        self.push(ASTType::FixedType(fixed_type_1_built), context);
27478        Ok(())
27479    }
27480
27481    /// Semantic action for production 577:
27482    ///
27483    /// `FixedType: P32;`
27484    ///
27485    #[parol_runtime::function_name::named]
27486    fn fixed_type_2(&mut self, _p32: &ParseTreeType<'t>) -> Result<()> {
27487        let context = function_name!();
27488        trace!("{}", self.trace_item_stack(context));
27489        let p32 = pop_item!(self, p32, P32, context);
27490        let fixed_type_2_built = FixedTypeP32 { p32: Box::new(p32) };
27491        let fixed_type_2_built = FixedType::P32(fixed_type_2_built);
27492        // Calling user action here
27493        self.user_grammar.fixed_type(&fixed_type_2_built)?;
27494        self.push(ASTType::FixedType(fixed_type_2_built), context);
27495        Ok(())
27496    }
27497
27498    /// Semantic action for production 578:
27499    ///
27500    /// `FixedType: P64;`
27501    ///
27502    #[parol_runtime::function_name::named]
27503    fn fixed_type_3(&mut self, _p64: &ParseTreeType<'t>) -> Result<()> {
27504        let context = function_name!();
27505        trace!("{}", self.trace_item_stack(context));
27506        let p64 = pop_item!(self, p64, P64, context);
27507        let fixed_type_3_built = FixedTypeP64 { p64: Box::new(p64) };
27508        let fixed_type_3_built = FixedType::P64(fixed_type_3_built);
27509        // Calling user action here
27510        self.user_grammar.fixed_type(&fixed_type_3_built)?;
27511        self.push(ASTType::FixedType(fixed_type_3_built), context);
27512        Ok(())
27513    }
27514
27515    /// Semantic action for production 579:
27516    ///
27517    /// `FixedType: U8;`
27518    ///
27519    #[parol_runtime::function_name::named]
27520    fn fixed_type_4(&mut self, _u8: &ParseTreeType<'t>) -> Result<()> {
27521        let context = function_name!();
27522        trace!("{}", self.trace_item_stack(context));
27523        let u8 = pop_item!(self, u8, U8, context);
27524        let fixed_type_4_built = FixedTypeU8 { u8: Box::new(u8) };
27525        let fixed_type_4_built = FixedType::U8(fixed_type_4_built);
27526        // Calling user action here
27527        self.user_grammar.fixed_type(&fixed_type_4_built)?;
27528        self.push(ASTType::FixedType(fixed_type_4_built), context);
27529        Ok(())
27530    }
27531
27532    /// Semantic action for production 580:
27533    ///
27534    /// `FixedType: U16;`
27535    ///
27536    #[parol_runtime::function_name::named]
27537    fn fixed_type_5(&mut self, _u16: &ParseTreeType<'t>) -> Result<()> {
27538        let context = function_name!();
27539        trace!("{}", self.trace_item_stack(context));
27540        let u16 = pop_item!(self, u16, U16, context);
27541        let fixed_type_5_built = FixedTypeU16 { u16: Box::new(u16) };
27542        let fixed_type_5_built = FixedType::U16(fixed_type_5_built);
27543        // Calling user action here
27544        self.user_grammar.fixed_type(&fixed_type_5_built)?;
27545        self.push(ASTType::FixedType(fixed_type_5_built), context);
27546        Ok(())
27547    }
27548
27549    /// Semantic action for production 581:
27550    ///
27551    /// `FixedType: U32;`
27552    ///
27553    #[parol_runtime::function_name::named]
27554    fn fixed_type_6(&mut self, _u32: &ParseTreeType<'t>) -> Result<()> {
27555        let context = function_name!();
27556        trace!("{}", self.trace_item_stack(context));
27557        let u32 = pop_item!(self, u32, U32, context);
27558        let fixed_type_6_built = FixedTypeU32 { u32: Box::new(u32) };
27559        let fixed_type_6_built = FixedType::U32(fixed_type_6_built);
27560        // Calling user action here
27561        self.user_grammar.fixed_type(&fixed_type_6_built)?;
27562        self.push(ASTType::FixedType(fixed_type_6_built), context);
27563        Ok(())
27564    }
27565
27566    /// Semantic action for production 582:
27567    ///
27568    /// `FixedType: U64;`
27569    ///
27570    #[parol_runtime::function_name::named]
27571    fn fixed_type_7(&mut self, _u64: &ParseTreeType<'t>) -> Result<()> {
27572        let context = function_name!();
27573        trace!("{}", self.trace_item_stack(context));
27574        let u64 = pop_item!(self, u64, U64, context);
27575        let fixed_type_7_built = FixedTypeU64 { u64: Box::new(u64) };
27576        let fixed_type_7_built = FixedType::U64(fixed_type_7_built);
27577        // Calling user action here
27578        self.user_grammar.fixed_type(&fixed_type_7_built)?;
27579        self.push(ASTType::FixedType(fixed_type_7_built), context);
27580        Ok(())
27581    }
27582
27583    /// Semantic action for production 583:
27584    ///
27585    /// `FixedType: I8;`
27586    ///
27587    #[parol_runtime::function_name::named]
27588    fn fixed_type_8(&mut self, _i8: &ParseTreeType<'t>) -> Result<()> {
27589        let context = function_name!();
27590        trace!("{}", self.trace_item_stack(context));
27591        let i8 = pop_item!(self, i8, I8, context);
27592        let fixed_type_8_built = FixedTypeI8 { i8: Box::new(i8) };
27593        let fixed_type_8_built = FixedType::I8(fixed_type_8_built);
27594        // Calling user action here
27595        self.user_grammar.fixed_type(&fixed_type_8_built)?;
27596        self.push(ASTType::FixedType(fixed_type_8_built), context);
27597        Ok(())
27598    }
27599
27600    /// Semantic action for production 584:
27601    ///
27602    /// `FixedType: I16;`
27603    ///
27604    #[parol_runtime::function_name::named]
27605    fn fixed_type_9(&mut self, _i16: &ParseTreeType<'t>) -> Result<()> {
27606        let context = function_name!();
27607        trace!("{}", self.trace_item_stack(context));
27608        let i16 = pop_item!(self, i16, I16, context);
27609        let fixed_type_9_built = FixedTypeI16 { i16: Box::new(i16) };
27610        let fixed_type_9_built = FixedType::I16(fixed_type_9_built);
27611        // Calling user action here
27612        self.user_grammar.fixed_type(&fixed_type_9_built)?;
27613        self.push(ASTType::FixedType(fixed_type_9_built), context);
27614        Ok(())
27615    }
27616
27617    /// Semantic action for production 585:
27618    ///
27619    /// `FixedType: I32;`
27620    ///
27621    #[parol_runtime::function_name::named]
27622    fn fixed_type_10(&mut self, _i32: &ParseTreeType<'t>) -> Result<()> {
27623        let context = function_name!();
27624        trace!("{}", self.trace_item_stack(context));
27625        let i32 = pop_item!(self, i32, I32, context);
27626        let fixed_type_10_built = FixedTypeI32 { i32: Box::new(i32) };
27627        let fixed_type_10_built = FixedType::I32(fixed_type_10_built);
27628        // Calling user action here
27629        self.user_grammar.fixed_type(&fixed_type_10_built)?;
27630        self.push(ASTType::FixedType(fixed_type_10_built), context);
27631        Ok(())
27632    }
27633
27634    /// Semantic action for production 586:
27635    ///
27636    /// `FixedType: I64;`
27637    ///
27638    #[parol_runtime::function_name::named]
27639    fn fixed_type_11(&mut self, _i64: &ParseTreeType<'t>) -> Result<()> {
27640        let context = function_name!();
27641        trace!("{}", self.trace_item_stack(context));
27642        let i64 = pop_item!(self, i64, I64, context);
27643        let fixed_type_11_built = FixedTypeI64 { i64: Box::new(i64) };
27644        let fixed_type_11_built = FixedType::I64(fixed_type_11_built);
27645        // Calling user action here
27646        self.user_grammar.fixed_type(&fixed_type_11_built)?;
27647        self.push(ASTType::FixedType(fixed_type_11_built), context);
27648        Ok(())
27649    }
27650
27651    /// Semantic action for production 587:
27652    ///
27653    /// `FixedType: F32;`
27654    ///
27655    #[parol_runtime::function_name::named]
27656    fn fixed_type_12(&mut self, _f32: &ParseTreeType<'t>) -> Result<()> {
27657        let context = function_name!();
27658        trace!("{}", self.trace_item_stack(context));
27659        let f32 = pop_item!(self, f32, F32, context);
27660        let fixed_type_12_built = FixedTypeF32 { f32: Box::new(f32) };
27661        let fixed_type_12_built = FixedType::F32(fixed_type_12_built);
27662        // Calling user action here
27663        self.user_grammar.fixed_type(&fixed_type_12_built)?;
27664        self.push(ASTType::FixedType(fixed_type_12_built), context);
27665        Ok(())
27666    }
27667
27668    /// Semantic action for production 588:
27669    ///
27670    /// `FixedType: F64;`
27671    ///
27672    #[parol_runtime::function_name::named]
27673    fn fixed_type_13(&mut self, _f64: &ParseTreeType<'t>) -> Result<()> {
27674        let context = function_name!();
27675        trace!("{}", self.trace_item_stack(context));
27676        let f64 = pop_item!(self, f64, F64, context);
27677        let fixed_type_13_built = FixedTypeF64 { f64: Box::new(f64) };
27678        let fixed_type_13_built = FixedType::F64(fixed_type_13_built);
27679        // Calling user action here
27680        self.user_grammar.fixed_type(&fixed_type_13_built)?;
27681        self.push(ASTType::FixedType(fixed_type_13_built), context);
27682        Ok(())
27683    }
27684
27685    /// Semantic action for production 589:
27686    ///
27687    /// `FixedType: BBool;`
27688    ///
27689    #[parol_runtime::function_name::named]
27690    fn fixed_type_14(&mut self, _b_bool: &ParseTreeType<'t>) -> Result<()> {
27691        let context = function_name!();
27692        trace!("{}", self.trace_item_stack(context));
27693        let b_bool = pop_item!(self, b_bool, BBool, context);
27694        let fixed_type_14_built = FixedTypeBBool {
27695            b_bool: Box::new(b_bool),
27696        };
27697        let fixed_type_14_built = FixedType::BBool(fixed_type_14_built);
27698        // Calling user action here
27699        self.user_grammar.fixed_type(&fixed_type_14_built)?;
27700        self.push(ASTType::FixedType(fixed_type_14_built), context);
27701        Ok(())
27702    }
27703
27704    /// Semantic action for production 590:
27705    ///
27706    /// `FixedType: LBool;`
27707    ///
27708    #[parol_runtime::function_name::named]
27709    fn fixed_type_15(&mut self, _l_bool: &ParseTreeType<'t>) -> Result<()> {
27710        let context = function_name!();
27711        trace!("{}", self.trace_item_stack(context));
27712        let l_bool = pop_item!(self, l_bool, LBool, context);
27713        let fixed_type_15_built = FixedTypeLBool {
27714            l_bool: Box::new(l_bool),
27715        };
27716        let fixed_type_15_built = FixedType::LBool(fixed_type_15_built);
27717        // Calling user action here
27718        self.user_grammar.fixed_type(&fixed_type_15_built)?;
27719        self.push(ASTType::FixedType(fixed_type_15_built), context);
27720        Ok(())
27721    }
27722
27723    /// Semantic action for production 591:
27724    ///
27725    /// `FixedType: Strin;`
27726    ///
27727    #[parol_runtime::function_name::named]
27728    fn fixed_type_16(&mut self, _strin: &ParseTreeType<'t>) -> Result<()> {
27729        let context = function_name!();
27730        trace!("{}", self.trace_item_stack(context));
27731        let strin = pop_item!(self, strin, Strin, context);
27732        let fixed_type_16_built = FixedTypeStrin {
27733            strin: Box::new(strin),
27734        };
27735        let fixed_type_16_built = FixedType::Strin(fixed_type_16_built);
27736        // Calling user action here
27737        self.user_grammar.fixed_type(&fixed_type_16_built)?;
27738        self.push(ASTType::FixedType(fixed_type_16_built), context);
27739        Ok(())
27740    }
27741
27742    /// Semantic action for production 592:
27743    ///
27744    /// `VariableType: Clock;`
27745    ///
27746    #[parol_runtime::function_name::named]
27747    fn variable_type_0(&mut self, _clock: &ParseTreeType<'t>) -> Result<()> {
27748        let context = function_name!();
27749        trace!("{}", self.trace_item_stack(context));
27750        let clock = pop_item!(self, clock, Clock, context);
27751        let variable_type_0_built = VariableTypeClock {
27752            clock: Box::new(clock),
27753        };
27754        let variable_type_0_built = VariableType::Clock(variable_type_0_built);
27755        // Calling user action here
27756        self.user_grammar.variable_type(&variable_type_0_built)?;
27757        self.push(ASTType::VariableType(variable_type_0_built), context);
27758        Ok(())
27759    }
27760
27761    /// Semantic action for production 593:
27762    ///
27763    /// `VariableType: ClockPosedge;`
27764    ///
27765    #[parol_runtime::function_name::named]
27766    fn variable_type_1(&mut self, _clock_posedge: &ParseTreeType<'t>) -> Result<()> {
27767        let context = function_name!();
27768        trace!("{}", self.trace_item_stack(context));
27769        let clock_posedge = pop_item!(self, clock_posedge, ClockPosedge, context);
27770        let variable_type_1_built = VariableTypeClockPosedge {
27771            clock_posedge: Box::new(clock_posedge),
27772        };
27773        let variable_type_1_built = VariableType::ClockPosedge(variable_type_1_built);
27774        // Calling user action here
27775        self.user_grammar.variable_type(&variable_type_1_built)?;
27776        self.push(ASTType::VariableType(variable_type_1_built), context);
27777        Ok(())
27778    }
27779
27780    /// Semantic action for production 594:
27781    ///
27782    /// `VariableType: ClockNegedge;`
27783    ///
27784    #[parol_runtime::function_name::named]
27785    fn variable_type_2(&mut self, _clock_negedge: &ParseTreeType<'t>) -> Result<()> {
27786        let context = function_name!();
27787        trace!("{}", self.trace_item_stack(context));
27788        let clock_negedge = pop_item!(self, clock_negedge, ClockNegedge, context);
27789        let variable_type_2_built = VariableTypeClockNegedge {
27790            clock_negedge: Box::new(clock_negedge),
27791        };
27792        let variable_type_2_built = VariableType::ClockNegedge(variable_type_2_built);
27793        // Calling user action here
27794        self.user_grammar.variable_type(&variable_type_2_built)?;
27795        self.push(ASTType::VariableType(variable_type_2_built), context);
27796        Ok(())
27797    }
27798
27799    /// Semantic action for production 595:
27800    ///
27801    /// `VariableType: Reset;`
27802    ///
27803    #[parol_runtime::function_name::named]
27804    fn variable_type_3(&mut self, _reset: &ParseTreeType<'t>) -> Result<()> {
27805        let context = function_name!();
27806        trace!("{}", self.trace_item_stack(context));
27807        let reset = pop_item!(self, reset, Reset, context);
27808        let variable_type_3_built = VariableTypeReset {
27809            reset: Box::new(reset),
27810        };
27811        let variable_type_3_built = VariableType::Reset(variable_type_3_built);
27812        // Calling user action here
27813        self.user_grammar.variable_type(&variable_type_3_built)?;
27814        self.push(ASTType::VariableType(variable_type_3_built), context);
27815        Ok(())
27816    }
27817
27818    /// Semantic action for production 596:
27819    ///
27820    /// `VariableType: ResetAsyncHigh;`
27821    ///
27822    #[parol_runtime::function_name::named]
27823    fn variable_type_4(&mut self, _reset_async_high: &ParseTreeType<'t>) -> Result<()> {
27824        let context = function_name!();
27825        trace!("{}", self.trace_item_stack(context));
27826        let reset_async_high = pop_item!(self, reset_async_high, ResetAsyncHigh, context);
27827        let variable_type_4_built = VariableTypeResetAsyncHigh {
27828            reset_async_high: Box::new(reset_async_high),
27829        };
27830        let variable_type_4_built = VariableType::ResetAsyncHigh(variable_type_4_built);
27831        // Calling user action here
27832        self.user_grammar.variable_type(&variable_type_4_built)?;
27833        self.push(ASTType::VariableType(variable_type_4_built), context);
27834        Ok(())
27835    }
27836
27837    /// Semantic action for production 597:
27838    ///
27839    /// `VariableType: ResetAsyncLow;`
27840    ///
27841    #[parol_runtime::function_name::named]
27842    fn variable_type_5(&mut self, _reset_async_low: &ParseTreeType<'t>) -> Result<()> {
27843        let context = function_name!();
27844        trace!("{}", self.trace_item_stack(context));
27845        let reset_async_low = pop_item!(self, reset_async_low, ResetAsyncLow, context);
27846        let variable_type_5_built = VariableTypeResetAsyncLow {
27847            reset_async_low: Box::new(reset_async_low),
27848        };
27849        let variable_type_5_built = VariableType::ResetAsyncLow(variable_type_5_built);
27850        // Calling user action here
27851        self.user_grammar.variable_type(&variable_type_5_built)?;
27852        self.push(ASTType::VariableType(variable_type_5_built), context);
27853        Ok(())
27854    }
27855
27856    /// Semantic action for production 598:
27857    ///
27858    /// `VariableType: ResetSyncHigh;`
27859    ///
27860    #[parol_runtime::function_name::named]
27861    fn variable_type_6(&mut self, _reset_sync_high: &ParseTreeType<'t>) -> Result<()> {
27862        let context = function_name!();
27863        trace!("{}", self.trace_item_stack(context));
27864        let reset_sync_high = pop_item!(self, reset_sync_high, ResetSyncHigh, context);
27865        let variable_type_6_built = VariableTypeResetSyncHigh {
27866            reset_sync_high: Box::new(reset_sync_high),
27867        };
27868        let variable_type_6_built = VariableType::ResetSyncHigh(variable_type_6_built);
27869        // Calling user action here
27870        self.user_grammar.variable_type(&variable_type_6_built)?;
27871        self.push(ASTType::VariableType(variable_type_6_built), context);
27872        Ok(())
27873    }
27874
27875    /// Semantic action for production 599:
27876    ///
27877    /// `VariableType: ResetSyncLow;`
27878    ///
27879    #[parol_runtime::function_name::named]
27880    fn variable_type_7(&mut self, _reset_sync_low: &ParseTreeType<'t>) -> Result<()> {
27881        let context = function_name!();
27882        trace!("{}", self.trace_item_stack(context));
27883        let reset_sync_low = pop_item!(self, reset_sync_low, ResetSyncLow, context);
27884        let variable_type_7_built = VariableTypeResetSyncLow {
27885            reset_sync_low: Box::new(reset_sync_low),
27886        };
27887        let variable_type_7_built = VariableType::ResetSyncLow(variable_type_7_built);
27888        // Calling user action here
27889        self.user_grammar.variable_type(&variable_type_7_built)?;
27890        self.push(ASTType::VariableType(variable_type_7_built), context);
27891        Ok(())
27892    }
27893
27894    /// Semantic action for production 600:
27895    ///
27896    /// `VariableType: Logic;`
27897    ///
27898    #[parol_runtime::function_name::named]
27899    fn variable_type_8(&mut self, _logic: &ParseTreeType<'t>) -> Result<()> {
27900        let context = function_name!();
27901        trace!("{}", self.trace_item_stack(context));
27902        let logic = pop_item!(self, logic, Logic, context);
27903        let variable_type_8_built = VariableTypeLogic {
27904            logic: Box::new(logic),
27905        };
27906        let variable_type_8_built = VariableType::Logic(variable_type_8_built);
27907        // Calling user action here
27908        self.user_grammar.variable_type(&variable_type_8_built)?;
27909        self.push(ASTType::VariableType(variable_type_8_built), context);
27910        Ok(())
27911    }
27912
27913    /// Semantic action for production 601:
27914    ///
27915    /// `VariableType: Bit;`
27916    ///
27917    #[parol_runtime::function_name::named]
27918    fn variable_type_9(&mut self, _bit: &ParseTreeType<'t>) -> Result<()> {
27919        let context = function_name!();
27920        trace!("{}", self.trace_item_stack(context));
27921        let bit = pop_item!(self, bit, Bit, context);
27922        let variable_type_9_built = VariableTypeBit { bit: Box::new(bit) };
27923        let variable_type_9_built = VariableType::Bit(variable_type_9_built);
27924        // Calling user action here
27925        self.user_grammar.variable_type(&variable_type_9_built)?;
27926        self.push(ASTType::VariableType(variable_type_9_built), context);
27927        Ok(())
27928    }
27929
27930    /// Semantic action for production 602:
27931    ///
27932    /// `UserDefinedType: ScopedIdentifier;`
27933    ///
27934    #[parol_runtime::function_name::named]
27935    fn user_defined_type(&mut self, _scoped_identifier: &ParseTreeType<'t>) -> Result<()> {
27936        let context = function_name!();
27937        trace!("{}", self.trace_item_stack(context));
27938        let scoped_identifier = pop_item!(self, scoped_identifier, ScopedIdentifier, context);
27939        let user_defined_type_built = UserDefinedType {
27940            scoped_identifier: Box::new(scoped_identifier),
27941        };
27942        // Calling user action here
27943        self.user_grammar
27944            .user_defined_type(&user_defined_type_built)?;
27945        self.push(ASTType::UserDefinedType(user_defined_type_built), context);
27946        Ok(())
27947    }
27948
27949    /// Semantic action for production 603:
27950    ///
27951    /// `TypeModifier: Tri;`
27952    ///
27953    #[parol_runtime::function_name::named]
27954    fn type_modifier_0(&mut self, _tri: &ParseTreeType<'t>) -> Result<()> {
27955        let context = function_name!();
27956        trace!("{}", self.trace_item_stack(context));
27957        let tri = pop_item!(self, tri, Tri, context);
27958        let type_modifier_0_built = TypeModifierTri { tri: Box::new(tri) };
27959        let type_modifier_0_built = TypeModifier::Tri(type_modifier_0_built);
27960        // Calling user action here
27961        self.user_grammar.type_modifier(&type_modifier_0_built)?;
27962        self.push(ASTType::TypeModifier(type_modifier_0_built), context);
27963        Ok(())
27964    }
27965
27966    /// Semantic action for production 604:
27967    ///
27968    /// `TypeModifier: Signed;`
27969    ///
27970    #[parol_runtime::function_name::named]
27971    fn type_modifier_1(&mut self, _signed: &ParseTreeType<'t>) -> Result<()> {
27972        let context = function_name!();
27973        trace!("{}", self.trace_item_stack(context));
27974        let signed = pop_item!(self, signed, Signed, context);
27975        let type_modifier_1_built = TypeModifierSigned {
27976            signed: Box::new(signed),
27977        };
27978        let type_modifier_1_built = TypeModifier::Signed(type_modifier_1_built);
27979        // Calling user action here
27980        self.user_grammar.type_modifier(&type_modifier_1_built)?;
27981        self.push(ASTType::TypeModifier(type_modifier_1_built), context);
27982        Ok(())
27983    }
27984
27985    /// Semantic action for production 605:
27986    ///
27987    /// `TypeModifier: Defaul;`
27988    ///
27989    #[parol_runtime::function_name::named]
27990    fn type_modifier_2(&mut self, _defaul: &ParseTreeType<'t>) -> Result<()> {
27991        let context = function_name!();
27992        trace!("{}", self.trace_item_stack(context));
27993        let defaul = pop_item!(self, defaul, Defaul, context);
27994        let type_modifier_2_built = TypeModifierDefaul {
27995            defaul: Box::new(defaul),
27996        };
27997        let type_modifier_2_built = TypeModifier::Defaul(type_modifier_2_built);
27998        // Calling user action here
27999        self.user_grammar.type_modifier(&type_modifier_2_built)?;
28000        self.push(ASTType::TypeModifier(type_modifier_2_built), context);
28001        Ok(())
28002    }
28003
28004    /// Semantic action for production 606:
28005    ///
28006    /// `FactorType: FactorTypeGroup;`
28007    ///
28008    #[parol_runtime::function_name::named]
28009    fn factor_type(&mut self, _factor_type_group: &ParseTreeType<'t>) -> Result<()> {
28010        let context = function_name!();
28011        trace!("{}", self.trace_item_stack(context));
28012        let factor_type_group = pop_item!(self, factor_type_group, FactorTypeGroup, context);
28013        let factor_type_built = FactorType {
28014            factor_type_group: Box::new(factor_type_group),
28015        };
28016        // Calling user action here
28017        self.user_grammar.factor_type(&factor_type_built)?;
28018        self.push(ASTType::FactorType(factor_type_built), context);
28019        Ok(())
28020    }
28021
28022    /// Semantic action for production 607:
28023    ///
28024    /// `FactorTypeGroup: VariableType FactorTypeOpt /* Option */;`
28025    ///
28026    #[parol_runtime::function_name::named]
28027    fn factor_type_group_0(
28028        &mut self,
28029        _variable_type: &ParseTreeType<'t>,
28030        _factor_type_opt: &ParseTreeType<'t>,
28031    ) -> Result<()> {
28032        let context = function_name!();
28033        trace!("{}", self.trace_item_stack(context));
28034        let factor_type_opt = pop_item!(self, factor_type_opt, FactorTypeOpt, context);
28035        let variable_type = pop_item!(self, variable_type, VariableType, context);
28036        let factor_type_group_0_built = FactorTypeGroupVariableTypeFactorTypeOpt {
28037            variable_type: Box::new(variable_type),
28038            factor_type_opt,
28039        };
28040        let factor_type_group_0_built =
28041            FactorTypeGroup::VariableTypeFactorTypeOpt(factor_type_group_0_built);
28042        self.push(ASTType::FactorTypeGroup(factor_type_group_0_built), context);
28043        Ok(())
28044    }
28045
28046    /// Semantic action for production 608:
28047    ///
28048    /// `FactorTypeGroup: FixedType;`
28049    ///
28050    #[parol_runtime::function_name::named]
28051    fn factor_type_group_1(&mut self, _fixed_type: &ParseTreeType<'t>) -> Result<()> {
28052        let context = function_name!();
28053        trace!("{}", self.trace_item_stack(context));
28054        let fixed_type = pop_item!(self, fixed_type, FixedType, context);
28055        let factor_type_group_1_built = FactorTypeGroupFixedType {
28056            fixed_type: Box::new(fixed_type),
28057        };
28058        let factor_type_group_1_built = FactorTypeGroup::FixedType(factor_type_group_1_built);
28059        self.push(ASTType::FactorTypeGroup(factor_type_group_1_built), context);
28060        Ok(())
28061    }
28062
28063    /// Semantic action for production 609:
28064    ///
28065    /// `FactorTypeOpt /* Option<T>::Some */: Width;`
28066    ///
28067    #[parol_runtime::function_name::named]
28068    fn factor_type_opt_0(&mut self, _width: &ParseTreeType<'t>) -> Result<()> {
28069        let context = function_name!();
28070        trace!("{}", self.trace_item_stack(context));
28071        let width = pop_item!(self, width, Width, context);
28072        let factor_type_opt_0_built = FactorTypeOpt {
28073            width: Box::new(width),
28074        };
28075        self.push(
28076            ASTType::FactorTypeOpt(Some(factor_type_opt_0_built)),
28077            context,
28078        );
28079        Ok(())
28080    }
28081
28082    /// Semantic action for production 610:
28083    ///
28084    /// `FactorTypeOpt /* Option<T>::None */: ;`
28085    ///
28086    #[parol_runtime::function_name::named]
28087    fn factor_type_opt_1(&mut self) -> Result<()> {
28088        let context = function_name!();
28089        trace!("{}", self.trace_item_stack(context));
28090        self.push(ASTType::FactorTypeOpt(None), context);
28091        Ok(())
28092    }
28093
28094    /// Semantic action for production 611:
28095    ///
28096    /// `ScalarType: ScalarTypeList /* Vec */ ScalarTypeGroup;`
28097    ///
28098    #[parol_runtime::function_name::named]
28099    fn scalar_type(
28100        &mut self,
28101        _scalar_type_list: &ParseTreeType<'t>,
28102        _scalar_type_group: &ParseTreeType<'t>,
28103    ) -> Result<()> {
28104        let context = function_name!();
28105        trace!("{}", self.trace_item_stack(context));
28106        let scalar_type_group = pop_item!(self, scalar_type_group, ScalarTypeGroup, context);
28107        let scalar_type_list =
28108            pop_and_reverse_item!(self, scalar_type_list, ScalarTypeList, context);
28109        let scalar_type_built = ScalarType {
28110            scalar_type_list,
28111            scalar_type_group: Box::new(scalar_type_group),
28112        };
28113        // Calling user action here
28114        self.user_grammar.scalar_type(&scalar_type_built)?;
28115        self.push(ASTType::ScalarType(scalar_type_built), context);
28116        Ok(())
28117    }
28118
28119    /// Semantic action for production 612:
28120    ///
28121    /// `ScalarTypeGroup: UserDefinedType ScalarTypeOpt /* Option */;`
28122    ///
28123    #[parol_runtime::function_name::named]
28124    fn scalar_type_group_0(
28125        &mut self,
28126        _user_defined_type: &ParseTreeType<'t>,
28127        _scalar_type_opt: &ParseTreeType<'t>,
28128    ) -> Result<()> {
28129        let context = function_name!();
28130        trace!("{}", self.trace_item_stack(context));
28131        let scalar_type_opt = pop_item!(self, scalar_type_opt, ScalarTypeOpt, context);
28132        let user_defined_type = pop_item!(self, user_defined_type, UserDefinedType, context);
28133        let scalar_type_group_0_built = ScalarTypeGroupUserDefinedTypeScalarTypeOpt {
28134            user_defined_type: Box::new(user_defined_type),
28135            scalar_type_opt,
28136        };
28137        let scalar_type_group_0_built =
28138            ScalarTypeGroup::UserDefinedTypeScalarTypeOpt(scalar_type_group_0_built);
28139        self.push(ASTType::ScalarTypeGroup(scalar_type_group_0_built), context);
28140        Ok(())
28141    }
28142
28143    /// Semantic action for production 613:
28144    ///
28145    /// `ScalarTypeGroup: FactorType;`
28146    ///
28147    #[parol_runtime::function_name::named]
28148    fn scalar_type_group_1(&mut self, _factor_type: &ParseTreeType<'t>) -> Result<()> {
28149        let context = function_name!();
28150        trace!("{}", self.trace_item_stack(context));
28151        let factor_type = pop_item!(self, factor_type, FactorType, context);
28152        let scalar_type_group_1_built = ScalarTypeGroupFactorType {
28153            factor_type: Box::new(factor_type),
28154        };
28155        let scalar_type_group_1_built = ScalarTypeGroup::FactorType(scalar_type_group_1_built);
28156        self.push(ASTType::ScalarTypeGroup(scalar_type_group_1_built), context);
28157        Ok(())
28158    }
28159
28160    /// Semantic action for production 614:
28161    ///
28162    /// `ScalarTypeList /* Vec<T>::Push */: TypeModifier ScalarTypeList;`
28163    ///
28164    #[parol_runtime::function_name::named]
28165    fn scalar_type_list_0(
28166        &mut self,
28167        _type_modifier: &ParseTreeType<'t>,
28168        _scalar_type_list: &ParseTreeType<'t>,
28169    ) -> Result<()> {
28170        let context = function_name!();
28171        trace!("{}", self.trace_item_stack(context));
28172        let mut scalar_type_list = pop_item!(self, scalar_type_list, ScalarTypeList, context);
28173        let type_modifier = pop_item!(self, type_modifier, TypeModifier, context);
28174        let scalar_type_list_0_built = ScalarTypeList {
28175            type_modifier: Box::new(type_modifier),
28176        };
28177        // Add an element to the vector
28178        scalar_type_list.push(scalar_type_list_0_built);
28179        self.push(ASTType::ScalarTypeList(scalar_type_list), context);
28180        Ok(())
28181    }
28182
28183    /// Semantic action for production 615:
28184    ///
28185    /// `ScalarTypeList /* Vec<T>::New */: ;`
28186    ///
28187    #[parol_runtime::function_name::named]
28188    fn scalar_type_list_1(&mut self) -> Result<()> {
28189        let context = function_name!();
28190        trace!("{}", self.trace_item_stack(context));
28191        let scalar_type_list_1_built = Vec::new();
28192        self.push(ASTType::ScalarTypeList(scalar_type_list_1_built), context);
28193        Ok(())
28194    }
28195
28196    /// Semantic action for production 616:
28197    ///
28198    /// `ScalarTypeOpt /* Option<T>::Some */: Width;`
28199    ///
28200    #[parol_runtime::function_name::named]
28201    fn scalar_type_opt_0(&mut self, _width: &ParseTreeType<'t>) -> Result<()> {
28202        let context = function_name!();
28203        trace!("{}", self.trace_item_stack(context));
28204        let width = pop_item!(self, width, Width, context);
28205        let scalar_type_opt_0_built = ScalarTypeOpt {
28206            width: Box::new(width),
28207        };
28208        self.push(
28209            ASTType::ScalarTypeOpt(Some(scalar_type_opt_0_built)),
28210            context,
28211        );
28212        Ok(())
28213    }
28214
28215    /// Semantic action for production 617:
28216    ///
28217    /// `ScalarTypeOpt /* Option<T>::None */: ;`
28218    ///
28219    #[parol_runtime::function_name::named]
28220    fn scalar_type_opt_1(&mut self) -> Result<()> {
28221        let context = function_name!();
28222        trace!("{}", self.trace_item_stack(context));
28223        self.push(ASTType::ScalarTypeOpt(None), context);
28224        Ok(())
28225    }
28226
28227    /// Semantic action for production 618:
28228    ///
28229    /// `ArrayType: ScalarType ArrayTypeOpt /* Option */;`
28230    ///
28231    #[parol_runtime::function_name::named]
28232    fn array_type(
28233        &mut self,
28234        _scalar_type: &ParseTreeType<'t>,
28235        _array_type_opt: &ParseTreeType<'t>,
28236    ) -> Result<()> {
28237        let context = function_name!();
28238        trace!("{}", self.trace_item_stack(context));
28239        let array_type_opt = pop_item!(self, array_type_opt, ArrayTypeOpt, context);
28240        let scalar_type = pop_item!(self, scalar_type, ScalarType, context);
28241        let array_type_built = ArrayType {
28242            scalar_type: Box::new(scalar_type),
28243            array_type_opt,
28244        };
28245        // Calling user action here
28246        self.user_grammar.array_type(&array_type_built)?;
28247        self.push(ASTType::ArrayType(array_type_built), context);
28248        Ok(())
28249    }
28250
28251    /// Semantic action for production 619:
28252    ///
28253    /// `ArrayTypeOpt /* Option<T>::Some */: Array;`
28254    ///
28255    #[parol_runtime::function_name::named]
28256    fn array_type_opt_0(&mut self, _array: &ParseTreeType<'t>) -> Result<()> {
28257        let context = function_name!();
28258        trace!("{}", self.trace_item_stack(context));
28259        let array = pop_item!(self, array, Array, context);
28260        let array_type_opt_0_built = ArrayTypeOpt {
28261            array: Box::new(array),
28262        };
28263        self.push(ASTType::ArrayTypeOpt(Some(array_type_opt_0_built)), context);
28264        Ok(())
28265    }
28266
28267    /// Semantic action for production 620:
28268    ///
28269    /// `ArrayTypeOpt /* Option<T>::None */: ;`
28270    ///
28271    #[parol_runtime::function_name::named]
28272    fn array_type_opt_1(&mut self) -> Result<()> {
28273        let context = function_name!();
28274        trace!("{}", self.trace_item_stack(context));
28275        self.push(ASTType::ArrayTypeOpt(None), context);
28276        Ok(())
28277    }
28278
28279    /// Semantic action for production 621:
28280    ///
28281    /// `CastingType: U8;`
28282    ///
28283    #[parol_runtime::function_name::named]
28284    fn casting_type_0(&mut self, _u8: &ParseTreeType<'t>) -> Result<()> {
28285        let context = function_name!();
28286        trace!("{}", self.trace_item_stack(context));
28287        let u8 = pop_item!(self, u8, U8, context);
28288        let casting_type_0_built = CastingTypeU8 { u8: Box::new(u8) };
28289        let casting_type_0_built = CastingType::U8(casting_type_0_built);
28290        // Calling user action here
28291        self.user_grammar.casting_type(&casting_type_0_built)?;
28292        self.push(ASTType::CastingType(casting_type_0_built), context);
28293        Ok(())
28294    }
28295
28296    /// Semantic action for production 622:
28297    ///
28298    /// `CastingType: U16;`
28299    ///
28300    #[parol_runtime::function_name::named]
28301    fn casting_type_1(&mut self, _u16: &ParseTreeType<'t>) -> Result<()> {
28302        let context = function_name!();
28303        trace!("{}", self.trace_item_stack(context));
28304        let u16 = pop_item!(self, u16, U16, context);
28305        let casting_type_1_built = CastingTypeU16 { u16: Box::new(u16) };
28306        let casting_type_1_built = CastingType::U16(casting_type_1_built);
28307        // Calling user action here
28308        self.user_grammar.casting_type(&casting_type_1_built)?;
28309        self.push(ASTType::CastingType(casting_type_1_built), context);
28310        Ok(())
28311    }
28312
28313    /// Semantic action for production 623:
28314    ///
28315    /// `CastingType: U32;`
28316    ///
28317    #[parol_runtime::function_name::named]
28318    fn casting_type_2(&mut self, _u32: &ParseTreeType<'t>) -> Result<()> {
28319        let context = function_name!();
28320        trace!("{}", self.trace_item_stack(context));
28321        let u32 = pop_item!(self, u32, U32, context);
28322        let casting_type_2_built = CastingTypeU32 { u32: Box::new(u32) };
28323        let casting_type_2_built = CastingType::U32(casting_type_2_built);
28324        // Calling user action here
28325        self.user_grammar.casting_type(&casting_type_2_built)?;
28326        self.push(ASTType::CastingType(casting_type_2_built), context);
28327        Ok(())
28328    }
28329
28330    /// Semantic action for production 624:
28331    ///
28332    /// `CastingType: U64;`
28333    ///
28334    #[parol_runtime::function_name::named]
28335    fn casting_type_3(&mut self, _u64: &ParseTreeType<'t>) -> Result<()> {
28336        let context = function_name!();
28337        trace!("{}", self.trace_item_stack(context));
28338        let u64 = pop_item!(self, u64, U64, context);
28339        let casting_type_3_built = CastingTypeU64 { u64: Box::new(u64) };
28340        let casting_type_3_built = CastingType::U64(casting_type_3_built);
28341        // Calling user action here
28342        self.user_grammar.casting_type(&casting_type_3_built)?;
28343        self.push(ASTType::CastingType(casting_type_3_built), context);
28344        Ok(())
28345    }
28346
28347    /// Semantic action for production 625:
28348    ///
28349    /// `CastingType: P8;`
28350    ///
28351    #[parol_runtime::function_name::named]
28352    fn casting_type_4(&mut self, _p8: &ParseTreeType<'t>) -> Result<()> {
28353        let context = function_name!();
28354        trace!("{}", self.trace_item_stack(context));
28355        let p8 = pop_item!(self, p8, P8, context);
28356        let casting_type_4_built = CastingTypeP8 { p8: Box::new(p8) };
28357        let casting_type_4_built = CastingType::P8(casting_type_4_built);
28358        // Calling user action here
28359        self.user_grammar.casting_type(&casting_type_4_built)?;
28360        self.push(ASTType::CastingType(casting_type_4_built), context);
28361        Ok(())
28362    }
28363
28364    /// Semantic action for production 626:
28365    ///
28366    /// `CastingType: P16;`
28367    ///
28368    #[parol_runtime::function_name::named]
28369    fn casting_type_5(&mut self, _p16: &ParseTreeType<'t>) -> Result<()> {
28370        let context = function_name!();
28371        trace!("{}", self.trace_item_stack(context));
28372        let p16 = pop_item!(self, p16, P16, context);
28373        let casting_type_5_built = CastingTypeP16 { p16: Box::new(p16) };
28374        let casting_type_5_built = CastingType::P16(casting_type_5_built);
28375        // Calling user action here
28376        self.user_grammar.casting_type(&casting_type_5_built)?;
28377        self.push(ASTType::CastingType(casting_type_5_built), context);
28378        Ok(())
28379    }
28380
28381    /// Semantic action for production 627:
28382    ///
28383    /// `CastingType: P32;`
28384    ///
28385    #[parol_runtime::function_name::named]
28386    fn casting_type_6(&mut self, _p32: &ParseTreeType<'t>) -> Result<()> {
28387        let context = function_name!();
28388        trace!("{}", self.trace_item_stack(context));
28389        let p32 = pop_item!(self, p32, P32, context);
28390        let casting_type_6_built = CastingTypeP32 { p32: Box::new(p32) };
28391        let casting_type_6_built = CastingType::P32(casting_type_6_built);
28392        // Calling user action here
28393        self.user_grammar.casting_type(&casting_type_6_built)?;
28394        self.push(ASTType::CastingType(casting_type_6_built), context);
28395        Ok(())
28396    }
28397
28398    /// Semantic action for production 628:
28399    ///
28400    /// `CastingType: P64;`
28401    ///
28402    #[parol_runtime::function_name::named]
28403    fn casting_type_7(&mut self, _p64: &ParseTreeType<'t>) -> Result<()> {
28404        let context = function_name!();
28405        trace!("{}", self.trace_item_stack(context));
28406        let p64 = pop_item!(self, p64, P64, context);
28407        let casting_type_7_built = CastingTypeP64 { p64: Box::new(p64) };
28408        let casting_type_7_built = CastingType::P64(casting_type_7_built);
28409        // Calling user action here
28410        self.user_grammar.casting_type(&casting_type_7_built)?;
28411        self.push(ASTType::CastingType(casting_type_7_built), context);
28412        Ok(())
28413    }
28414
28415    /// Semantic action for production 629:
28416    ///
28417    /// `CastingType: I8;`
28418    ///
28419    #[parol_runtime::function_name::named]
28420    fn casting_type_8(&mut self, _i8: &ParseTreeType<'t>) -> Result<()> {
28421        let context = function_name!();
28422        trace!("{}", self.trace_item_stack(context));
28423        let i8 = pop_item!(self, i8, I8, context);
28424        let casting_type_8_built = CastingTypeI8 { i8: Box::new(i8) };
28425        let casting_type_8_built = CastingType::I8(casting_type_8_built);
28426        // Calling user action here
28427        self.user_grammar.casting_type(&casting_type_8_built)?;
28428        self.push(ASTType::CastingType(casting_type_8_built), context);
28429        Ok(())
28430    }
28431
28432    /// Semantic action for production 630:
28433    ///
28434    /// `CastingType: I16;`
28435    ///
28436    #[parol_runtime::function_name::named]
28437    fn casting_type_9(&mut self, _i16: &ParseTreeType<'t>) -> Result<()> {
28438        let context = function_name!();
28439        trace!("{}", self.trace_item_stack(context));
28440        let i16 = pop_item!(self, i16, I16, context);
28441        let casting_type_9_built = CastingTypeI16 { i16: Box::new(i16) };
28442        let casting_type_9_built = CastingType::I16(casting_type_9_built);
28443        // Calling user action here
28444        self.user_grammar.casting_type(&casting_type_9_built)?;
28445        self.push(ASTType::CastingType(casting_type_9_built), context);
28446        Ok(())
28447    }
28448
28449    /// Semantic action for production 631:
28450    ///
28451    /// `CastingType: I32;`
28452    ///
28453    #[parol_runtime::function_name::named]
28454    fn casting_type_10(&mut self, _i32: &ParseTreeType<'t>) -> Result<()> {
28455        let context = function_name!();
28456        trace!("{}", self.trace_item_stack(context));
28457        let i32 = pop_item!(self, i32, I32, context);
28458        let casting_type_10_built = CastingTypeI32 { i32: Box::new(i32) };
28459        let casting_type_10_built = CastingType::I32(casting_type_10_built);
28460        // Calling user action here
28461        self.user_grammar.casting_type(&casting_type_10_built)?;
28462        self.push(ASTType::CastingType(casting_type_10_built), context);
28463        Ok(())
28464    }
28465
28466    /// Semantic action for production 632:
28467    ///
28468    /// `CastingType: I64;`
28469    ///
28470    #[parol_runtime::function_name::named]
28471    fn casting_type_11(&mut self, _i64: &ParseTreeType<'t>) -> Result<()> {
28472        let context = function_name!();
28473        trace!("{}", self.trace_item_stack(context));
28474        let i64 = pop_item!(self, i64, I64, context);
28475        let casting_type_11_built = CastingTypeI64 { i64: Box::new(i64) };
28476        let casting_type_11_built = CastingType::I64(casting_type_11_built);
28477        // Calling user action here
28478        self.user_grammar.casting_type(&casting_type_11_built)?;
28479        self.push(ASTType::CastingType(casting_type_11_built), context);
28480        Ok(())
28481    }
28482
28483    /// Semantic action for production 633:
28484    ///
28485    /// `CastingType: F32;`
28486    ///
28487    #[parol_runtime::function_name::named]
28488    fn casting_type_12(&mut self, _f32: &ParseTreeType<'t>) -> Result<()> {
28489        let context = function_name!();
28490        trace!("{}", self.trace_item_stack(context));
28491        let f32 = pop_item!(self, f32, F32, context);
28492        let casting_type_12_built = CastingTypeF32 { f32: Box::new(f32) };
28493        let casting_type_12_built = CastingType::F32(casting_type_12_built);
28494        // Calling user action here
28495        self.user_grammar.casting_type(&casting_type_12_built)?;
28496        self.push(ASTType::CastingType(casting_type_12_built), context);
28497        Ok(())
28498    }
28499
28500    /// Semantic action for production 634:
28501    ///
28502    /// `CastingType: F64;`
28503    ///
28504    #[parol_runtime::function_name::named]
28505    fn casting_type_13(&mut self, _f64: &ParseTreeType<'t>) -> Result<()> {
28506        let context = function_name!();
28507        trace!("{}", self.trace_item_stack(context));
28508        let f64 = pop_item!(self, f64, F64, context);
28509        let casting_type_13_built = CastingTypeF64 { f64: Box::new(f64) };
28510        let casting_type_13_built = CastingType::F64(casting_type_13_built);
28511        // Calling user action here
28512        self.user_grammar.casting_type(&casting_type_13_built)?;
28513        self.push(ASTType::CastingType(casting_type_13_built), context);
28514        Ok(())
28515    }
28516
28517    /// Semantic action for production 635:
28518    ///
28519    /// `CastingType: BBool;`
28520    ///
28521    #[parol_runtime::function_name::named]
28522    fn casting_type_14(&mut self, _b_bool: &ParseTreeType<'t>) -> Result<()> {
28523        let context = function_name!();
28524        trace!("{}", self.trace_item_stack(context));
28525        let b_bool = pop_item!(self, b_bool, BBool, context);
28526        let casting_type_14_built = CastingTypeBBool {
28527            b_bool: Box::new(b_bool),
28528        };
28529        let casting_type_14_built = CastingType::BBool(casting_type_14_built);
28530        // Calling user action here
28531        self.user_grammar.casting_type(&casting_type_14_built)?;
28532        self.push(ASTType::CastingType(casting_type_14_built), context);
28533        Ok(())
28534    }
28535
28536    /// Semantic action for production 636:
28537    ///
28538    /// `CastingType: LBool;`
28539    ///
28540    #[parol_runtime::function_name::named]
28541    fn casting_type_15(&mut self, _l_bool: &ParseTreeType<'t>) -> Result<()> {
28542        let context = function_name!();
28543        trace!("{}", self.trace_item_stack(context));
28544        let l_bool = pop_item!(self, l_bool, LBool, context);
28545        let casting_type_15_built = CastingTypeLBool {
28546            l_bool: Box::new(l_bool),
28547        };
28548        let casting_type_15_built = CastingType::LBool(casting_type_15_built);
28549        // Calling user action here
28550        self.user_grammar.casting_type(&casting_type_15_built)?;
28551        self.push(ASTType::CastingType(casting_type_15_built), context);
28552        Ok(())
28553    }
28554
28555    /// Semantic action for production 637:
28556    ///
28557    /// `CastingType: Clock;`
28558    ///
28559    #[parol_runtime::function_name::named]
28560    fn casting_type_16(&mut self, _clock: &ParseTreeType<'t>) -> Result<()> {
28561        let context = function_name!();
28562        trace!("{}", self.trace_item_stack(context));
28563        let clock = pop_item!(self, clock, Clock, context);
28564        let casting_type_16_built = CastingTypeClock {
28565            clock: Box::new(clock),
28566        };
28567        let casting_type_16_built = CastingType::Clock(casting_type_16_built);
28568        // Calling user action here
28569        self.user_grammar.casting_type(&casting_type_16_built)?;
28570        self.push(ASTType::CastingType(casting_type_16_built), context);
28571        Ok(())
28572    }
28573
28574    /// Semantic action for production 638:
28575    ///
28576    /// `CastingType: ClockPosedge;`
28577    ///
28578    #[parol_runtime::function_name::named]
28579    fn casting_type_17(&mut self, _clock_posedge: &ParseTreeType<'t>) -> Result<()> {
28580        let context = function_name!();
28581        trace!("{}", self.trace_item_stack(context));
28582        let clock_posedge = pop_item!(self, clock_posedge, ClockPosedge, context);
28583        let casting_type_17_built = CastingTypeClockPosedge {
28584            clock_posedge: Box::new(clock_posedge),
28585        };
28586        let casting_type_17_built = CastingType::ClockPosedge(casting_type_17_built);
28587        // Calling user action here
28588        self.user_grammar.casting_type(&casting_type_17_built)?;
28589        self.push(ASTType::CastingType(casting_type_17_built), context);
28590        Ok(())
28591    }
28592
28593    /// Semantic action for production 639:
28594    ///
28595    /// `CastingType: ClockNegedge;`
28596    ///
28597    #[parol_runtime::function_name::named]
28598    fn casting_type_18(&mut self, _clock_negedge: &ParseTreeType<'t>) -> Result<()> {
28599        let context = function_name!();
28600        trace!("{}", self.trace_item_stack(context));
28601        let clock_negedge = pop_item!(self, clock_negedge, ClockNegedge, context);
28602        let casting_type_18_built = CastingTypeClockNegedge {
28603            clock_negedge: Box::new(clock_negedge),
28604        };
28605        let casting_type_18_built = CastingType::ClockNegedge(casting_type_18_built);
28606        // Calling user action here
28607        self.user_grammar.casting_type(&casting_type_18_built)?;
28608        self.push(ASTType::CastingType(casting_type_18_built), context);
28609        Ok(())
28610    }
28611
28612    /// Semantic action for production 640:
28613    ///
28614    /// `CastingType: Reset;`
28615    ///
28616    #[parol_runtime::function_name::named]
28617    fn casting_type_19(&mut self, _reset: &ParseTreeType<'t>) -> Result<()> {
28618        let context = function_name!();
28619        trace!("{}", self.trace_item_stack(context));
28620        let reset = pop_item!(self, reset, Reset, context);
28621        let casting_type_19_built = CastingTypeReset {
28622            reset: Box::new(reset),
28623        };
28624        let casting_type_19_built = CastingType::Reset(casting_type_19_built);
28625        // Calling user action here
28626        self.user_grammar.casting_type(&casting_type_19_built)?;
28627        self.push(ASTType::CastingType(casting_type_19_built), context);
28628        Ok(())
28629    }
28630
28631    /// Semantic action for production 641:
28632    ///
28633    /// `CastingType: ResetAsyncHigh;`
28634    ///
28635    #[parol_runtime::function_name::named]
28636    fn casting_type_20(&mut self, _reset_async_high: &ParseTreeType<'t>) -> Result<()> {
28637        let context = function_name!();
28638        trace!("{}", self.trace_item_stack(context));
28639        let reset_async_high = pop_item!(self, reset_async_high, ResetAsyncHigh, context);
28640        let casting_type_20_built = CastingTypeResetAsyncHigh {
28641            reset_async_high: Box::new(reset_async_high),
28642        };
28643        let casting_type_20_built = CastingType::ResetAsyncHigh(casting_type_20_built);
28644        // Calling user action here
28645        self.user_grammar.casting_type(&casting_type_20_built)?;
28646        self.push(ASTType::CastingType(casting_type_20_built), context);
28647        Ok(())
28648    }
28649
28650    /// Semantic action for production 642:
28651    ///
28652    /// `CastingType: ResetAsyncLow;`
28653    ///
28654    #[parol_runtime::function_name::named]
28655    fn casting_type_21(&mut self, _reset_async_low: &ParseTreeType<'t>) -> Result<()> {
28656        let context = function_name!();
28657        trace!("{}", self.trace_item_stack(context));
28658        let reset_async_low = pop_item!(self, reset_async_low, ResetAsyncLow, context);
28659        let casting_type_21_built = CastingTypeResetAsyncLow {
28660            reset_async_low: Box::new(reset_async_low),
28661        };
28662        let casting_type_21_built = CastingType::ResetAsyncLow(casting_type_21_built);
28663        // Calling user action here
28664        self.user_grammar.casting_type(&casting_type_21_built)?;
28665        self.push(ASTType::CastingType(casting_type_21_built), context);
28666        Ok(())
28667    }
28668
28669    /// Semantic action for production 643:
28670    ///
28671    /// `CastingType: ResetSyncHigh;`
28672    ///
28673    #[parol_runtime::function_name::named]
28674    fn casting_type_22(&mut self, _reset_sync_high: &ParseTreeType<'t>) -> Result<()> {
28675        let context = function_name!();
28676        trace!("{}", self.trace_item_stack(context));
28677        let reset_sync_high = pop_item!(self, reset_sync_high, ResetSyncHigh, context);
28678        let casting_type_22_built = CastingTypeResetSyncHigh {
28679            reset_sync_high: Box::new(reset_sync_high),
28680        };
28681        let casting_type_22_built = CastingType::ResetSyncHigh(casting_type_22_built);
28682        // Calling user action here
28683        self.user_grammar.casting_type(&casting_type_22_built)?;
28684        self.push(ASTType::CastingType(casting_type_22_built), context);
28685        Ok(())
28686    }
28687
28688    /// Semantic action for production 644:
28689    ///
28690    /// `CastingType: ResetSyncLow;`
28691    ///
28692    #[parol_runtime::function_name::named]
28693    fn casting_type_23(&mut self, _reset_sync_low: &ParseTreeType<'t>) -> Result<()> {
28694        let context = function_name!();
28695        trace!("{}", self.trace_item_stack(context));
28696        let reset_sync_low = pop_item!(self, reset_sync_low, ResetSyncLow, context);
28697        let casting_type_23_built = CastingTypeResetSyncLow {
28698            reset_sync_low: Box::new(reset_sync_low),
28699        };
28700        let casting_type_23_built = CastingType::ResetSyncLow(casting_type_23_built);
28701        // Calling user action here
28702        self.user_grammar.casting_type(&casting_type_23_built)?;
28703        self.push(ASTType::CastingType(casting_type_23_built), context);
28704        Ok(())
28705    }
28706
28707    /// Semantic action for production 645:
28708    ///
28709    /// `CastingType: UserDefinedType;`
28710    ///
28711    #[parol_runtime::function_name::named]
28712    fn casting_type_24(&mut self, _user_defined_type: &ParseTreeType<'t>) -> Result<()> {
28713        let context = function_name!();
28714        trace!("{}", self.trace_item_stack(context));
28715        let user_defined_type = pop_item!(self, user_defined_type, UserDefinedType, context);
28716        let casting_type_24_built = CastingTypeUserDefinedType {
28717            user_defined_type: Box::new(user_defined_type),
28718        };
28719        let casting_type_24_built = CastingType::UserDefinedType(casting_type_24_built);
28720        // Calling user action here
28721        self.user_grammar.casting_type(&casting_type_24_built)?;
28722        self.push(ASTType::CastingType(casting_type_24_built), context);
28723        Ok(())
28724    }
28725
28726    /// Semantic action for production 646:
28727    ///
28728    /// `CastingType: Based;`
28729    ///
28730    #[parol_runtime::function_name::named]
28731    fn casting_type_25(&mut self, _based: &ParseTreeType<'t>) -> Result<()> {
28732        let context = function_name!();
28733        trace!("{}", self.trace_item_stack(context));
28734        let based = pop_item!(self, based, Based, context);
28735        let casting_type_25_built = CastingTypeBased {
28736            based: Box::new(based),
28737        };
28738        let casting_type_25_built = CastingType::Based(casting_type_25_built);
28739        // Calling user action here
28740        self.user_grammar.casting_type(&casting_type_25_built)?;
28741        self.push(ASTType::CastingType(casting_type_25_built), context);
28742        Ok(())
28743    }
28744
28745    /// Semantic action for production 647:
28746    ///
28747    /// `CastingType: BaseLess;`
28748    ///
28749    #[parol_runtime::function_name::named]
28750    fn casting_type_26(&mut self, _base_less: &ParseTreeType<'t>) -> Result<()> {
28751        let context = function_name!();
28752        trace!("{}", self.trace_item_stack(context));
28753        let base_less = pop_item!(self, base_less, BaseLess, context);
28754        let casting_type_26_built = CastingTypeBaseLess {
28755            base_less: Box::new(base_less),
28756        };
28757        let casting_type_26_built = CastingType::BaseLess(casting_type_26_built);
28758        // Calling user action here
28759        self.user_grammar.casting_type(&casting_type_26_built)?;
28760        self.push(ASTType::CastingType(casting_type_26_built), context);
28761        Ok(())
28762    }
28763
28764    /// Semantic action for production 648:
28765    ///
28766    /// `ClockDomain: Quote Identifier;`
28767    ///
28768    #[parol_runtime::function_name::named]
28769    fn clock_domain(
28770        &mut self,
28771        _quote: &ParseTreeType<'t>,
28772        _identifier: &ParseTreeType<'t>,
28773    ) -> Result<()> {
28774        let context = function_name!();
28775        trace!("{}", self.trace_item_stack(context));
28776        let identifier = pop_item!(self, identifier, Identifier, context);
28777        let quote = pop_item!(self, quote, Quote, context);
28778        let clock_domain_built = ClockDomain {
28779            quote: Box::new(quote),
28780            identifier: Box::new(identifier),
28781        };
28782        // Calling user action here
28783        self.user_grammar.clock_domain(&clock_domain_built)?;
28784        self.push(ASTType::ClockDomain(clock_domain_built), context);
28785        Ok(())
28786    }
28787
28788    /// Semantic action for production 649:
28789    ///
28790    /// `StatementBlock: LBrace StatementBlockList /* Vec */ RBrace;`
28791    ///
28792    #[parol_runtime::function_name::named]
28793    fn statement_block(
28794        &mut self,
28795        _l_brace: &ParseTreeType<'t>,
28796        _statement_block_list: &ParseTreeType<'t>,
28797        _r_brace: &ParseTreeType<'t>,
28798    ) -> Result<()> {
28799        let context = function_name!();
28800        trace!("{}", self.trace_item_stack(context));
28801        let r_brace = pop_item!(self, r_brace, RBrace, context);
28802        let statement_block_list =
28803            pop_and_reverse_item!(self, statement_block_list, StatementBlockList, context);
28804        let l_brace = pop_item!(self, l_brace, LBrace, context);
28805        let statement_block_built = StatementBlock {
28806            l_brace: Box::new(l_brace),
28807            statement_block_list,
28808            r_brace: Box::new(r_brace),
28809        };
28810        // Calling user action here
28811        self.user_grammar.statement_block(&statement_block_built)?;
28812        self.push(ASTType::StatementBlock(statement_block_built), context);
28813        Ok(())
28814    }
28815
28816    /// Semantic action for production 650:
28817    ///
28818    /// `StatementBlockList /* Vec<T>::Push */: StatementBlockGroup StatementBlockList;`
28819    ///
28820    #[parol_runtime::function_name::named]
28821    fn statement_block_list_0(
28822        &mut self,
28823        _statement_block_group: &ParseTreeType<'t>,
28824        _statement_block_list: &ParseTreeType<'t>,
28825    ) -> Result<()> {
28826        let context = function_name!();
28827        trace!("{}", self.trace_item_stack(context));
28828        let mut statement_block_list =
28829            pop_item!(self, statement_block_list, StatementBlockList, context);
28830        let statement_block_group =
28831            pop_item!(self, statement_block_group, StatementBlockGroup, context);
28832        let statement_block_list_0_built = StatementBlockList {
28833            statement_block_group: Box::new(statement_block_group),
28834        };
28835        // Add an element to the vector
28836        statement_block_list.push(statement_block_list_0_built);
28837        self.push(ASTType::StatementBlockList(statement_block_list), context);
28838        Ok(())
28839    }
28840
28841    /// Semantic action for production 651:
28842    ///
28843    /// `StatementBlockList /* Vec<T>::New */: ;`
28844    ///
28845    #[parol_runtime::function_name::named]
28846    fn statement_block_list_1(&mut self) -> Result<()> {
28847        let context = function_name!();
28848        trace!("{}", self.trace_item_stack(context));
28849        let statement_block_list_1_built = Vec::new();
28850        self.push(
28851            ASTType::StatementBlockList(statement_block_list_1_built),
28852            context,
28853        );
28854        Ok(())
28855    }
28856
28857    /// Semantic action for production 652:
28858    ///
28859    /// `StatementBlockGroup: StatementBlockGroupList /* Vec */ StatementBlockGroupGroup;`
28860    ///
28861    #[parol_runtime::function_name::named]
28862    fn statement_block_group(
28863        &mut self,
28864        _statement_block_group_list: &ParseTreeType<'t>,
28865        _statement_block_group_group: &ParseTreeType<'t>,
28866    ) -> Result<()> {
28867        let context = function_name!();
28868        trace!("{}", self.trace_item_stack(context));
28869        let statement_block_group_group = pop_item!(
28870            self,
28871            statement_block_group_group,
28872            StatementBlockGroupGroup,
28873            context
28874        );
28875        let statement_block_group_list = pop_and_reverse_item!(
28876            self,
28877            statement_block_group_list,
28878            StatementBlockGroupList,
28879            context
28880        );
28881        let statement_block_group_built = StatementBlockGroup {
28882            statement_block_group_list,
28883            statement_block_group_group: Box::new(statement_block_group_group),
28884        };
28885        // Calling user action here
28886        self.user_grammar
28887            .statement_block_group(&statement_block_group_built)?;
28888        self.push(
28889            ASTType::StatementBlockGroup(statement_block_group_built),
28890            context,
28891        );
28892        Ok(())
28893    }
28894
28895    /// Semantic action for production 653:
28896    ///
28897    /// `StatementBlockGroupGroup: Block LBrace StatementBlockGroupGroupList /* Vec */ RBrace;`
28898    ///
28899    #[parol_runtime::function_name::named]
28900    fn statement_block_group_group_0(
28901        &mut self,
28902        _block: &ParseTreeType<'t>,
28903        _l_brace: &ParseTreeType<'t>,
28904        _statement_block_group_group_list: &ParseTreeType<'t>,
28905        _r_brace: &ParseTreeType<'t>,
28906    ) -> Result<()> {
28907        let context = function_name!();
28908        trace!("{}", self.trace_item_stack(context));
28909        let r_brace = pop_item!(self, r_brace, RBrace, context);
28910        let statement_block_group_group_list = pop_and_reverse_item!(
28911            self,
28912            statement_block_group_group_list,
28913            StatementBlockGroupGroupList,
28914            context
28915        );
28916        let l_brace = pop_item!(self, l_brace, LBrace, context);
28917        let block = pop_item!(self, block, Block, context);
28918        let statement_block_group_group_0_built =
28919            StatementBlockGroupGroupBlockLBraceStatementBlockGroupGroupListRBrace {
28920                block: Box::new(block),
28921                l_brace: Box::new(l_brace),
28922                statement_block_group_group_list,
28923                r_brace: Box::new(r_brace),
28924            };
28925        let statement_block_group_group_0_built =
28926            StatementBlockGroupGroup::BlockLBraceStatementBlockGroupGroupListRBrace(
28927                statement_block_group_group_0_built,
28928            );
28929        self.push(
28930            ASTType::StatementBlockGroupGroup(statement_block_group_group_0_built),
28931            context,
28932        );
28933        Ok(())
28934    }
28935
28936    /// Semantic action for production 654:
28937    ///
28938    /// `StatementBlockGroupGroupList /* Vec<T>::Push */: StatementBlockGroup StatementBlockGroupGroupList;`
28939    ///
28940    #[parol_runtime::function_name::named]
28941    fn statement_block_group_group_list_0(
28942        &mut self,
28943        _statement_block_group: &ParseTreeType<'t>,
28944        _statement_block_group_group_list: &ParseTreeType<'t>,
28945    ) -> Result<()> {
28946        let context = function_name!();
28947        trace!("{}", self.trace_item_stack(context));
28948        let mut statement_block_group_group_list = pop_item!(
28949            self,
28950            statement_block_group_group_list,
28951            StatementBlockGroupGroupList,
28952            context
28953        );
28954        let statement_block_group =
28955            pop_item!(self, statement_block_group, StatementBlockGroup, context);
28956        let statement_block_group_group_list_0_built = StatementBlockGroupGroupList {
28957            statement_block_group: Box::new(statement_block_group),
28958        };
28959        // Add an element to the vector
28960        statement_block_group_group_list.push(statement_block_group_group_list_0_built);
28961        self.push(
28962            ASTType::StatementBlockGroupGroupList(statement_block_group_group_list),
28963            context,
28964        );
28965        Ok(())
28966    }
28967
28968    /// Semantic action for production 655:
28969    ///
28970    /// `StatementBlockGroupGroupList /* Vec<T>::New */: ;`
28971    ///
28972    #[parol_runtime::function_name::named]
28973    fn statement_block_group_group_list_1(&mut self) -> Result<()> {
28974        let context = function_name!();
28975        trace!("{}", self.trace_item_stack(context));
28976        let statement_block_group_group_list_1_built = Vec::new();
28977        self.push(
28978            ASTType::StatementBlockGroupGroupList(statement_block_group_group_list_1_built),
28979            context,
28980        );
28981        Ok(())
28982    }
28983
28984    /// Semantic action for production 656:
28985    ///
28986    /// `StatementBlockGroupGroup: StatementBlockItem;`
28987    ///
28988    #[parol_runtime::function_name::named]
28989    fn statement_block_group_group_1(
28990        &mut self,
28991        _statement_block_item: &ParseTreeType<'t>,
28992    ) -> Result<()> {
28993        let context = function_name!();
28994        trace!("{}", self.trace_item_stack(context));
28995        let statement_block_item =
28996            pop_item!(self, statement_block_item, StatementBlockItem, context);
28997        let statement_block_group_group_1_built = StatementBlockGroupGroupStatementBlockItem {
28998            statement_block_item: Box::new(statement_block_item),
28999        };
29000        let statement_block_group_group_1_built =
29001            StatementBlockGroupGroup::StatementBlockItem(statement_block_group_group_1_built);
29002        self.push(
29003            ASTType::StatementBlockGroupGroup(statement_block_group_group_1_built),
29004            context,
29005        );
29006        Ok(())
29007    }
29008
29009    /// Semantic action for production 657:
29010    ///
29011    /// `StatementBlockGroupList /* Vec<T>::Push */: Attribute StatementBlockGroupList;`
29012    ///
29013    #[parol_runtime::function_name::named]
29014    fn statement_block_group_list_0(
29015        &mut self,
29016        _attribute: &ParseTreeType<'t>,
29017        _statement_block_group_list: &ParseTreeType<'t>,
29018    ) -> Result<()> {
29019        let context = function_name!();
29020        trace!("{}", self.trace_item_stack(context));
29021        let mut statement_block_group_list = pop_item!(
29022            self,
29023            statement_block_group_list,
29024            StatementBlockGroupList,
29025            context
29026        );
29027        let attribute = pop_item!(self, attribute, Attribute, context);
29028        let statement_block_group_list_0_built = StatementBlockGroupList {
29029            attribute: Box::new(attribute),
29030        };
29031        // Add an element to the vector
29032        statement_block_group_list.push(statement_block_group_list_0_built);
29033        self.push(
29034            ASTType::StatementBlockGroupList(statement_block_group_list),
29035            context,
29036        );
29037        Ok(())
29038    }
29039
29040    /// Semantic action for production 658:
29041    ///
29042    /// `StatementBlockGroupList /* Vec<T>::New */: ;`
29043    ///
29044    #[parol_runtime::function_name::named]
29045    fn statement_block_group_list_1(&mut self) -> Result<()> {
29046        let context = function_name!();
29047        trace!("{}", self.trace_item_stack(context));
29048        let statement_block_group_list_1_built = Vec::new();
29049        self.push(
29050            ASTType::StatementBlockGroupList(statement_block_group_list_1_built),
29051            context,
29052        );
29053        Ok(())
29054    }
29055
29056    /// Semantic action for production 659:
29057    ///
29058    /// `StatementBlockItem: VarDeclaration;`
29059    ///
29060    #[parol_runtime::function_name::named]
29061    fn statement_block_item_0(&mut self, _var_declaration: &ParseTreeType<'t>) -> Result<()> {
29062        let context = function_name!();
29063        trace!("{}", self.trace_item_stack(context));
29064        let var_declaration = pop_item!(self, var_declaration, VarDeclaration, context);
29065        let statement_block_item_0_built = StatementBlockItemVarDeclaration {
29066            var_declaration: Box::new(var_declaration),
29067        };
29068        let statement_block_item_0_built =
29069            StatementBlockItem::VarDeclaration(statement_block_item_0_built);
29070        // Calling user action here
29071        self.user_grammar
29072            .statement_block_item(&statement_block_item_0_built)?;
29073        self.push(
29074            ASTType::StatementBlockItem(statement_block_item_0_built),
29075            context,
29076        );
29077        Ok(())
29078    }
29079
29080    /// Semantic action for production 660:
29081    ///
29082    /// `StatementBlockItem: LetStatement;`
29083    ///
29084    #[parol_runtime::function_name::named]
29085    fn statement_block_item_1(&mut self, _let_statement: &ParseTreeType<'t>) -> Result<()> {
29086        let context = function_name!();
29087        trace!("{}", self.trace_item_stack(context));
29088        let let_statement = pop_item!(self, let_statement, LetStatement, context);
29089        let statement_block_item_1_built = StatementBlockItemLetStatement {
29090            let_statement: Box::new(let_statement),
29091        };
29092        let statement_block_item_1_built =
29093            StatementBlockItem::LetStatement(statement_block_item_1_built);
29094        // Calling user action here
29095        self.user_grammar
29096            .statement_block_item(&statement_block_item_1_built)?;
29097        self.push(
29098            ASTType::StatementBlockItem(statement_block_item_1_built),
29099            context,
29100        );
29101        Ok(())
29102    }
29103
29104    /// Semantic action for production 661:
29105    ///
29106    /// `StatementBlockItem: ConstDeclaration;`
29107    ///
29108    #[parol_runtime::function_name::named]
29109    fn statement_block_item_2(&mut self, _const_declaration: &ParseTreeType<'t>) -> Result<()> {
29110        let context = function_name!();
29111        trace!("{}", self.trace_item_stack(context));
29112        let const_declaration = pop_item!(self, const_declaration, ConstDeclaration, context);
29113        let statement_block_item_2_built = StatementBlockItemConstDeclaration {
29114            const_declaration: Box::new(const_declaration),
29115        };
29116        let statement_block_item_2_built =
29117            StatementBlockItem::ConstDeclaration(statement_block_item_2_built);
29118        // Calling user action here
29119        self.user_grammar
29120            .statement_block_item(&statement_block_item_2_built)?;
29121        self.push(
29122            ASTType::StatementBlockItem(statement_block_item_2_built),
29123            context,
29124        );
29125        Ok(())
29126    }
29127
29128    /// Semantic action for production 662:
29129    ///
29130    /// `StatementBlockItem: Statement;`
29131    ///
29132    #[parol_runtime::function_name::named]
29133    fn statement_block_item_3(&mut self, _statement: &ParseTreeType<'t>) -> Result<()> {
29134        let context = function_name!();
29135        trace!("{}", self.trace_item_stack(context));
29136        let statement = pop_item!(self, statement, Statement, context);
29137        let statement_block_item_3_built = StatementBlockItemStatement {
29138            statement: Box::new(statement),
29139        };
29140        let statement_block_item_3_built =
29141            StatementBlockItem::Statement(statement_block_item_3_built);
29142        // Calling user action here
29143        self.user_grammar
29144            .statement_block_item(&statement_block_item_3_built)?;
29145        self.push(
29146            ASTType::StatementBlockItem(statement_block_item_3_built),
29147            context,
29148        );
29149        Ok(())
29150    }
29151
29152    /// Semantic action for production 663:
29153    ///
29154    /// `StatementBlockItem: ConcatenationAssignment;`
29155    ///
29156    #[parol_runtime::function_name::named]
29157    fn statement_block_item_4(
29158        &mut self,
29159        _concatenation_assignment: &ParseTreeType<'t>,
29160    ) -> Result<()> {
29161        let context = function_name!();
29162        trace!("{}", self.trace_item_stack(context));
29163        let concatenation_assignment = pop_item!(
29164            self,
29165            concatenation_assignment,
29166            ConcatenationAssignment,
29167            context
29168        );
29169        let statement_block_item_4_built = StatementBlockItemConcatenationAssignment {
29170            concatenation_assignment: Box::new(concatenation_assignment),
29171        };
29172        let statement_block_item_4_built =
29173            StatementBlockItem::ConcatenationAssignment(statement_block_item_4_built);
29174        // Calling user action here
29175        self.user_grammar
29176            .statement_block_item(&statement_block_item_4_built)?;
29177        self.push(
29178            ASTType::StatementBlockItem(statement_block_item_4_built),
29179            context,
29180        );
29181        Ok(())
29182    }
29183
29184    /// Semantic action for production 664:
29185    ///
29186    /// `Statement: IdentifierStatement;`
29187    ///
29188    #[parol_runtime::function_name::named]
29189    fn statement_0(&mut self, _identifier_statement: &ParseTreeType<'t>) -> Result<()> {
29190        let context = function_name!();
29191        trace!("{}", self.trace_item_stack(context));
29192        let identifier_statement =
29193            pop_item!(self, identifier_statement, IdentifierStatement, context);
29194        let statement_0_built = StatementIdentifierStatement {
29195            identifier_statement: Box::new(identifier_statement),
29196        };
29197        let statement_0_built = Statement::IdentifierStatement(statement_0_built);
29198        // Calling user action here
29199        self.user_grammar.statement(&statement_0_built)?;
29200        self.push(ASTType::Statement(statement_0_built), context);
29201        Ok(())
29202    }
29203
29204    /// Semantic action for production 665:
29205    ///
29206    /// `Statement: IfStatement;`
29207    ///
29208    #[parol_runtime::function_name::named]
29209    fn statement_1(&mut self, _if_statement: &ParseTreeType<'t>) -> Result<()> {
29210        let context = function_name!();
29211        trace!("{}", self.trace_item_stack(context));
29212        let if_statement = pop_item!(self, if_statement, IfStatement, context);
29213        let statement_1_built = StatementIfStatement {
29214            if_statement: Box::new(if_statement),
29215        };
29216        let statement_1_built = Statement::IfStatement(statement_1_built);
29217        // Calling user action here
29218        self.user_grammar.statement(&statement_1_built)?;
29219        self.push(ASTType::Statement(statement_1_built), context);
29220        Ok(())
29221    }
29222
29223    /// Semantic action for production 666:
29224    ///
29225    /// `Statement: IfResetStatement;`
29226    ///
29227    #[parol_runtime::function_name::named]
29228    fn statement_2(&mut self, _if_reset_statement: &ParseTreeType<'t>) -> Result<()> {
29229        let context = function_name!();
29230        trace!("{}", self.trace_item_stack(context));
29231        let if_reset_statement = pop_item!(self, if_reset_statement, IfResetStatement, context);
29232        let statement_2_built = StatementIfResetStatement {
29233            if_reset_statement: Box::new(if_reset_statement),
29234        };
29235        let statement_2_built = Statement::IfResetStatement(statement_2_built);
29236        // Calling user action here
29237        self.user_grammar.statement(&statement_2_built)?;
29238        self.push(ASTType::Statement(statement_2_built), context);
29239        Ok(())
29240    }
29241
29242    /// Semantic action for production 667:
29243    ///
29244    /// `Statement: ReturnStatement;`
29245    ///
29246    #[parol_runtime::function_name::named]
29247    fn statement_3(&mut self, _return_statement: &ParseTreeType<'t>) -> Result<()> {
29248        let context = function_name!();
29249        trace!("{}", self.trace_item_stack(context));
29250        let return_statement = pop_item!(self, return_statement, ReturnStatement, context);
29251        let statement_3_built = StatementReturnStatement {
29252            return_statement: Box::new(return_statement),
29253        };
29254        let statement_3_built = Statement::ReturnStatement(statement_3_built);
29255        // Calling user action here
29256        self.user_grammar.statement(&statement_3_built)?;
29257        self.push(ASTType::Statement(statement_3_built), context);
29258        Ok(())
29259    }
29260
29261    /// Semantic action for production 668:
29262    ///
29263    /// `Statement: BreakStatement;`
29264    ///
29265    #[parol_runtime::function_name::named]
29266    fn statement_4(&mut self, _break_statement: &ParseTreeType<'t>) -> Result<()> {
29267        let context = function_name!();
29268        trace!("{}", self.trace_item_stack(context));
29269        let break_statement = pop_item!(self, break_statement, BreakStatement, context);
29270        let statement_4_built = StatementBreakStatement {
29271            break_statement: Box::new(break_statement),
29272        };
29273        let statement_4_built = Statement::BreakStatement(statement_4_built);
29274        // Calling user action here
29275        self.user_grammar.statement(&statement_4_built)?;
29276        self.push(ASTType::Statement(statement_4_built), context);
29277        Ok(())
29278    }
29279
29280    /// Semantic action for production 669:
29281    ///
29282    /// `Statement: ForStatement;`
29283    ///
29284    #[parol_runtime::function_name::named]
29285    fn statement_5(&mut self, _for_statement: &ParseTreeType<'t>) -> Result<()> {
29286        let context = function_name!();
29287        trace!("{}", self.trace_item_stack(context));
29288        let for_statement = pop_item!(self, for_statement, ForStatement, context);
29289        let statement_5_built = StatementForStatement {
29290            for_statement: Box::new(for_statement),
29291        };
29292        let statement_5_built = Statement::ForStatement(statement_5_built);
29293        // Calling user action here
29294        self.user_grammar.statement(&statement_5_built)?;
29295        self.push(ASTType::Statement(statement_5_built), context);
29296        Ok(())
29297    }
29298
29299    /// Semantic action for production 670:
29300    ///
29301    /// `Statement: CaseStatement;`
29302    ///
29303    #[parol_runtime::function_name::named]
29304    fn statement_6(&mut self, _case_statement: &ParseTreeType<'t>) -> Result<()> {
29305        let context = function_name!();
29306        trace!("{}", self.trace_item_stack(context));
29307        let case_statement = pop_item!(self, case_statement, CaseStatement, context);
29308        let statement_6_built = StatementCaseStatement {
29309            case_statement: Box::new(case_statement),
29310        };
29311        let statement_6_built = Statement::CaseStatement(statement_6_built);
29312        // Calling user action here
29313        self.user_grammar.statement(&statement_6_built)?;
29314        self.push(ASTType::Statement(statement_6_built), context);
29315        Ok(())
29316    }
29317
29318    /// Semantic action for production 671:
29319    ///
29320    /// `Statement: SwitchStatement;`
29321    ///
29322    #[parol_runtime::function_name::named]
29323    fn statement_7(&mut self, _switch_statement: &ParseTreeType<'t>) -> Result<()> {
29324        let context = function_name!();
29325        trace!("{}", self.trace_item_stack(context));
29326        let switch_statement = pop_item!(self, switch_statement, SwitchStatement, context);
29327        let statement_7_built = StatementSwitchStatement {
29328            switch_statement: Box::new(switch_statement),
29329        };
29330        let statement_7_built = Statement::SwitchStatement(statement_7_built);
29331        // Calling user action here
29332        self.user_grammar.statement(&statement_7_built)?;
29333        self.push(ASTType::Statement(statement_7_built), context);
29334        Ok(())
29335    }
29336
29337    /// Semantic action for production 672:
29338    ///
29339    /// `LetStatement: Let Identifier Colon LetStatementOpt /* Option */ ArrayType Equ Expression Semicolon;`
29340    ///
29341    #[parol_runtime::function_name::named]
29342    fn let_statement(
29343        &mut self,
29344        _let: &ParseTreeType<'t>,
29345        _identifier: &ParseTreeType<'t>,
29346        _colon: &ParseTreeType<'t>,
29347        _let_statement_opt: &ParseTreeType<'t>,
29348        _array_type: &ParseTreeType<'t>,
29349        _equ: &ParseTreeType<'t>,
29350        _expression: &ParseTreeType<'t>,
29351        _semicolon: &ParseTreeType<'t>,
29352    ) -> Result<()> {
29353        let context = function_name!();
29354        trace!("{}", self.trace_item_stack(context));
29355        let semicolon = pop_item!(self, semicolon, Semicolon, context);
29356        let expression = pop_item!(self, expression, Expression, context);
29357        let equ = pop_item!(self, equ, Equ, context);
29358        let array_type = pop_item!(self, array_type, ArrayType, context);
29359        let let_statement_opt = pop_item!(self, let_statement_opt, LetStatementOpt, context);
29360        let colon = pop_item!(self, colon, Colon, context);
29361        let identifier = pop_item!(self, identifier, Identifier, context);
29362        let r#let = pop_item!(self, r#let, Let, context);
29363        let let_statement_built = LetStatement {
29364            r#let: Box::new(r#let),
29365            identifier: Box::new(identifier),
29366            colon: Box::new(colon),
29367            let_statement_opt,
29368            array_type: Box::new(array_type),
29369            equ: Box::new(equ),
29370            expression: Box::new(expression),
29371            semicolon: Box::new(semicolon),
29372        };
29373        // Calling user action here
29374        self.user_grammar.let_statement(&let_statement_built)?;
29375        self.push(ASTType::LetStatement(let_statement_built), context);
29376        Ok(())
29377    }
29378
29379    /// Semantic action for production 673:
29380    ///
29381    /// `LetStatementOpt /* Option<T>::Some */: ClockDomain;`
29382    ///
29383    #[parol_runtime::function_name::named]
29384    fn let_statement_opt_0(&mut self, _clock_domain: &ParseTreeType<'t>) -> Result<()> {
29385        let context = function_name!();
29386        trace!("{}", self.trace_item_stack(context));
29387        let clock_domain = pop_item!(self, clock_domain, ClockDomain, context);
29388        let let_statement_opt_0_built = LetStatementOpt {
29389            clock_domain: Box::new(clock_domain),
29390        };
29391        self.push(
29392            ASTType::LetStatementOpt(Some(let_statement_opt_0_built)),
29393            context,
29394        );
29395        Ok(())
29396    }
29397
29398    /// Semantic action for production 674:
29399    ///
29400    /// `LetStatementOpt /* Option<T>::None */: ;`
29401    ///
29402    #[parol_runtime::function_name::named]
29403    fn let_statement_opt_1(&mut self) -> Result<()> {
29404        let context = function_name!();
29405        trace!("{}", self.trace_item_stack(context));
29406        self.push(ASTType::LetStatementOpt(None), context);
29407        Ok(())
29408    }
29409
29410    /// Semantic action for production 675:
29411    ///
29412    /// `IdentifierStatement: ExpressionIdentifier IdentifierStatementGroup Semicolon;`
29413    ///
29414    #[parol_runtime::function_name::named]
29415    fn identifier_statement(
29416        &mut self,
29417        _expression_identifier: &ParseTreeType<'t>,
29418        _identifier_statement_group: &ParseTreeType<'t>,
29419        _semicolon: &ParseTreeType<'t>,
29420    ) -> Result<()> {
29421        let context = function_name!();
29422        trace!("{}", self.trace_item_stack(context));
29423        let semicolon = pop_item!(self, semicolon, Semicolon, context);
29424        let identifier_statement_group = pop_item!(
29425            self,
29426            identifier_statement_group,
29427            IdentifierStatementGroup,
29428            context
29429        );
29430        let expression_identifier =
29431            pop_item!(self, expression_identifier, ExpressionIdentifier, context);
29432        let identifier_statement_built = IdentifierStatement {
29433            expression_identifier: Box::new(expression_identifier),
29434            identifier_statement_group: Box::new(identifier_statement_group),
29435            semicolon: Box::new(semicolon),
29436        };
29437        // Calling user action here
29438        self.user_grammar
29439            .identifier_statement(&identifier_statement_built)?;
29440        self.push(
29441            ASTType::IdentifierStatement(identifier_statement_built),
29442            context,
29443        );
29444        Ok(())
29445    }
29446
29447    /// Semantic action for production 676:
29448    ///
29449    /// `IdentifierStatementGroup: FunctionCall;`
29450    ///
29451    #[parol_runtime::function_name::named]
29452    fn identifier_statement_group_0(&mut self, _function_call: &ParseTreeType<'t>) -> Result<()> {
29453        let context = function_name!();
29454        trace!("{}", self.trace_item_stack(context));
29455        let function_call = pop_item!(self, function_call, FunctionCall, context);
29456        let identifier_statement_group_0_built = IdentifierStatementGroupFunctionCall {
29457            function_call: Box::new(function_call),
29458        };
29459        let identifier_statement_group_0_built =
29460            IdentifierStatementGroup::FunctionCall(identifier_statement_group_0_built);
29461        self.push(
29462            ASTType::IdentifierStatementGroup(identifier_statement_group_0_built),
29463            context,
29464        );
29465        Ok(())
29466    }
29467
29468    /// Semantic action for production 677:
29469    ///
29470    /// `IdentifierStatementGroup: Assignment;`
29471    ///
29472    #[parol_runtime::function_name::named]
29473    fn identifier_statement_group_1(&mut self, _assignment: &ParseTreeType<'t>) -> Result<()> {
29474        let context = function_name!();
29475        trace!("{}", self.trace_item_stack(context));
29476        let assignment = pop_item!(self, assignment, Assignment, context);
29477        let identifier_statement_group_1_built = IdentifierStatementGroupAssignment {
29478            assignment: Box::new(assignment),
29479        };
29480        let identifier_statement_group_1_built =
29481            IdentifierStatementGroup::Assignment(identifier_statement_group_1_built);
29482        self.push(
29483            ASTType::IdentifierStatementGroup(identifier_statement_group_1_built),
29484            context,
29485        );
29486        Ok(())
29487    }
29488
29489    /// Semantic action for production 678:
29490    ///
29491    /// `ConcatenationAssignment: LBrace AssignConcatenationList RBrace Equ Expression Semicolon;`
29492    ///
29493    #[parol_runtime::function_name::named]
29494    fn concatenation_assignment(
29495        &mut self,
29496        _l_brace: &ParseTreeType<'t>,
29497        _assign_concatenation_list: &ParseTreeType<'t>,
29498        _r_brace: &ParseTreeType<'t>,
29499        _equ: &ParseTreeType<'t>,
29500        _expression: &ParseTreeType<'t>,
29501        _semicolon: &ParseTreeType<'t>,
29502    ) -> Result<()> {
29503        let context = function_name!();
29504        trace!("{}", self.trace_item_stack(context));
29505        let semicolon = pop_item!(self, semicolon, Semicolon, context);
29506        let expression = pop_item!(self, expression, Expression, context);
29507        let equ = pop_item!(self, equ, Equ, context);
29508        let r_brace = pop_item!(self, r_brace, RBrace, context);
29509        let assign_concatenation_list = pop_item!(
29510            self,
29511            assign_concatenation_list,
29512            AssignConcatenationList,
29513            context
29514        );
29515        let l_brace = pop_item!(self, l_brace, LBrace, context);
29516        let concatenation_assignment_built = ConcatenationAssignment {
29517            l_brace: Box::new(l_brace),
29518            assign_concatenation_list: Box::new(assign_concatenation_list),
29519            r_brace: Box::new(r_brace),
29520            equ: Box::new(equ),
29521            expression: Box::new(expression),
29522            semicolon: Box::new(semicolon),
29523        };
29524        // Calling user action here
29525        self.user_grammar
29526            .concatenation_assignment(&concatenation_assignment_built)?;
29527        self.push(
29528            ASTType::ConcatenationAssignment(concatenation_assignment_built),
29529            context,
29530        );
29531        Ok(())
29532    }
29533
29534    /// Semantic action for production 679:
29535    ///
29536    /// `Assignment: AssignmentGroup Expression;`
29537    ///
29538    #[parol_runtime::function_name::named]
29539    fn assignment(
29540        &mut self,
29541        _assignment_group: &ParseTreeType<'t>,
29542        _expression: &ParseTreeType<'t>,
29543    ) -> Result<()> {
29544        let context = function_name!();
29545        trace!("{}", self.trace_item_stack(context));
29546        let expression = pop_item!(self, expression, Expression, context);
29547        let assignment_group = pop_item!(self, assignment_group, AssignmentGroup, context);
29548        let assignment_built = Assignment {
29549            assignment_group: Box::new(assignment_group),
29550            expression: Box::new(expression),
29551        };
29552        // Calling user action here
29553        self.user_grammar.assignment(&assignment_built)?;
29554        self.push(ASTType::Assignment(assignment_built), context);
29555        Ok(())
29556    }
29557
29558    /// Semantic action for production 680:
29559    ///
29560    /// `AssignmentGroup: Equ;`
29561    ///
29562    #[parol_runtime::function_name::named]
29563    fn assignment_group_0(&mut self, _equ: &ParseTreeType<'t>) -> Result<()> {
29564        let context = function_name!();
29565        trace!("{}", self.trace_item_stack(context));
29566        let equ = pop_item!(self, equ, Equ, context);
29567        let assignment_group_0_built = AssignmentGroupEqu { equ: Box::new(equ) };
29568        let assignment_group_0_built = AssignmentGroup::Equ(assignment_group_0_built);
29569        self.push(ASTType::AssignmentGroup(assignment_group_0_built), context);
29570        Ok(())
29571    }
29572
29573    /// Semantic action for production 681:
29574    ///
29575    /// `AssignmentGroup: AssignmentOperator;`
29576    ///
29577    #[parol_runtime::function_name::named]
29578    fn assignment_group_1(&mut self, _assignment_operator: &ParseTreeType<'t>) -> Result<()> {
29579        let context = function_name!();
29580        trace!("{}", self.trace_item_stack(context));
29581        let assignment_operator = pop_item!(self, assignment_operator, AssignmentOperator, context);
29582        let assignment_group_1_built = AssignmentGroupAssignmentOperator {
29583            assignment_operator: Box::new(assignment_operator),
29584        };
29585        let assignment_group_1_built =
29586            AssignmentGroup::AssignmentOperator(assignment_group_1_built);
29587        self.push(ASTType::AssignmentGroup(assignment_group_1_built), context);
29588        Ok(())
29589    }
29590
29591    /// Semantic action for production 682:
29592    ///
29593    /// `AssignmentGroup: DiamondOperator;`
29594    ///
29595    #[parol_runtime::function_name::named]
29596    fn assignment_group_2(&mut self, _diamond_operator: &ParseTreeType<'t>) -> Result<()> {
29597        let context = function_name!();
29598        trace!("{}", self.trace_item_stack(context));
29599        let diamond_operator = pop_item!(self, diamond_operator, DiamondOperator, context);
29600        let assignment_group_2_built = AssignmentGroupDiamondOperator {
29601            diamond_operator: Box::new(diamond_operator),
29602        };
29603        let assignment_group_2_built = AssignmentGroup::DiamondOperator(assignment_group_2_built);
29604        self.push(ASTType::AssignmentGroup(assignment_group_2_built), context);
29605        Ok(())
29606    }
29607
29608    /// Semantic action for production 683:
29609    ///
29610    /// `IfStatement: If Expression StatementBlock IfStatementList /* Vec */ IfStatementOpt /* Option */;`
29611    ///
29612    #[parol_runtime::function_name::named]
29613    fn if_statement(
29614        &mut self,
29615        _if: &ParseTreeType<'t>,
29616        _expression: &ParseTreeType<'t>,
29617        _statement_block: &ParseTreeType<'t>,
29618        _if_statement_list: &ParseTreeType<'t>,
29619        _if_statement_opt: &ParseTreeType<'t>,
29620    ) -> Result<()> {
29621        let context = function_name!();
29622        trace!("{}", self.trace_item_stack(context));
29623        let if_statement_opt = pop_item!(self, if_statement_opt, IfStatementOpt, context);
29624        let if_statement_list =
29625            pop_and_reverse_item!(self, if_statement_list, IfStatementList, context);
29626        let statement_block = pop_item!(self, statement_block, StatementBlock, context);
29627        let expression = pop_item!(self, expression, Expression, context);
29628        let r#if = pop_item!(self, r#if, If, context);
29629        let if_statement_built = IfStatement {
29630            r#if: Box::new(r#if),
29631            expression: Box::new(expression),
29632            statement_block: Box::new(statement_block),
29633            if_statement_list,
29634            if_statement_opt,
29635        };
29636        // Calling user action here
29637        self.user_grammar.if_statement(&if_statement_built)?;
29638        self.push(ASTType::IfStatement(if_statement_built), context);
29639        Ok(())
29640    }
29641
29642    /// Semantic action for production 684:
29643    ///
29644    /// `IfStatementList /* Vec<T>::Push */: Else If Expression StatementBlock IfStatementList;`
29645    ///
29646    #[parol_runtime::function_name::named]
29647    fn if_statement_list_0(
29648        &mut self,
29649        _else: &ParseTreeType<'t>,
29650        _if: &ParseTreeType<'t>,
29651        _expression: &ParseTreeType<'t>,
29652        _statement_block: &ParseTreeType<'t>,
29653        _if_statement_list: &ParseTreeType<'t>,
29654    ) -> Result<()> {
29655        let context = function_name!();
29656        trace!("{}", self.trace_item_stack(context));
29657        let mut if_statement_list = pop_item!(self, if_statement_list, IfStatementList, context);
29658        let statement_block = pop_item!(self, statement_block, StatementBlock, context);
29659        let expression = pop_item!(self, expression, Expression, context);
29660        let r#if = pop_item!(self, r#if, If, context);
29661        let r#else = pop_item!(self, r#else, Else, context);
29662        let if_statement_list_0_built = IfStatementList {
29663            statement_block: Box::new(statement_block),
29664            expression: Box::new(expression),
29665            r#if: Box::new(r#if),
29666            r#else: Box::new(r#else),
29667        };
29668        // Add an element to the vector
29669        if_statement_list.push(if_statement_list_0_built);
29670        self.push(ASTType::IfStatementList(if_statement_list), context);
29671        Ok(())
29672    }
29673
29674    /// Semantic action for production 685:
29675    ///
29676    /// `IfStatementList /* Vec<T>::New */: ;`
29677    ///
29678    #[parol_runtime::function_name::named]
29679    fn if_statement_list_1(&mut self) -> Result<()> {
29680        let context = function_name!();
29681        trace!("{}", self.trace_item_stack(context));
29682        let if_statement_list_1_built = Vec::new();
29683        self.push(ASTType::IfStatementList(if_statement_list_1_built), context);
29684        Ok(())
29685    }
29686
29687    /// Semantic action for production 686:
29688    ///
29689    /// `IfStatementOpt /* Option<T>::Some */: Else StatementBlock;`
29690    ///
29691    #[parol_runtime::function_name::named]
29692    fn if_statement_opt_0(
29693        &mut self,
29694        _else: &ParseTreeType<'t>,
29695        _statement_block: &ParseTreeType<'t>,
29696    ) -> Result<()> {
29697        let context = function_name!();
29698        trace!("{}", self.trace_item_stack(context));
29699        let statement_block = pop_item!(self, statement_block, StatementBlock, context);
29700        let r#else = pop_item!(self, r#else, Else, context);
29701        let if_statement_opt_0_built = IfStatementOpt {
29702            r#else: Box::new(r#else),
29703            statement_block: Box::new(statement_block),
29704        };
29705        self.push(
29706            ASTType::IfStatementOpt(Some(if_statement_opt_0_built)),
29707            context,
29708        );
29709        Ok(())
29710    }
29711
29712    /// Semantic action for production 687:
29713    ///
29714    /// `IfStatementOpt /* Option<T>::None */: ;`
29715    ///
29716    #[parol_runtime::function_name::named]
29717    fn if_statement_opt_1(&mut self) -> Result<()> {
29718        let context = function_name!();
29719        trace!("{}", self.trace_item_stack(context));
29720        self.push(ASTType::IfStatementOpt(None), context);
29721        Ok(())
29722    }
29723
29724    /// Semantic action for production 688:
29725    ///
29726    /// `IfResetStatement: IfReset StatementBlock IfResetStatementList /* Vec */ IfResetStatementOpt /* Option */;`
29727    ///
29728    #[parol_runtime::function_name::named]
29729    fn if_reset_statement(
29730        &mut self,
29731        _if_reset: &ParseTreeType<'t>,
29732        _statement_block: &ParseTreeType<'t>,
29733        _if_reset_statement_list: &ParseTreeType<'t>,
29734        _if_reset_statement_opt: &ParseTreeType<'t>,
29735    ) -> Result<()> {
29736        let context = function_name!();
29737        trace!("{}", self.trace_item_stack(context));
29738        let if_reset_statement_opt =
29739            pop_item!(self, if_reset_statement_opt, IfResetStatementOpt, context);
29740        let if_reset_statement_list =
29741            pop_and_reverse_item!(self, if_reset_statement_list, IfResetStatementList, context);
29742        let statement_block = pop_item!(self, statement_block, StatementBlock, context);
29743        let if_reset = pop_item!(self, if_reset, IfReset, context);
29744        let if_reset_statement_built = IfResetStatement {
29745            if_reset: Box::new(if_reset),
29746            statement_block: Box::new(statement_block),
29747            if_reset_statement_list,
29748            if_reset_statement_opt,
29749        };
29750        // Calling user action here
29751        self.user_grammar
29752            .if_reset_statement(&if_reset_statement_built)?;
29753        self.push(ASTType::IfResetStatement(if_reset_statement_built), context);
29754        Ok(())
29755    }
29756
29757    /// Semantic action for production 689:
29758    ///
29759    /// `IfResetStatementList /* Vec<T>::Push */: Else If Expression StatementBlock IfResetStatementList;`
29760    ///
29761    #[parol_runtime::function_name::named]
29762    fn if_reset_statement_list_0(
29763        &mut self,
29764        _else: &ParseTreeType<'t>,
29765        _if: &ParseTreeType<'t>,
29766        _expression: &ParseTreeType<'t>,
29767        _statement_block: &ParseTreeType<'t>,
29768        _if_reset_statement_list: &ParseTreeType<'t>,
29769    ) -> Result<()> {
29770        let context = function_name!();
29771        trace!("{}", self.trace_item_stack(context));
29772        let mut if_reset_statement_list =
29773            pop_item!(self, if_reset_statement_list, IfResetStatementList, context);
29774        let statement_block = pop_item!(self, statement_block, StatementBlock, context);
29775        let expression = pop_item!(self, expression, Expression, context);
29776        let r#if = pop_item!(self, r#if, If, context);
29777        let r#else = pop_item!(self, r#else, Else, context);
29778        let if_reset_statement_list_0_built = IfResetStatementList {
29779            statement_block: Box::new(statement_block),
29780            expression: Box::new(expression),
29781            r#if: Box::new(r#if),
29782            r#else: Box::new(r#else),
29783        };
29784        // Add an element to the vector
29785        if_reset_statement_list.push(if_reset_statement_list_0_built);
29786        self.push(
29787            ASTType::IfResetStatementList(if_reset_statement_list),
29788            context,
29789        );
29790        Ok(())
29791    }
29792
29793    /// Semantic action for production 690:
29794    ///
29795    /// `IfResetStatementList /* Vec<T>::New */: ;`
29796    ///
29797    #[parol_runtime::function_name::named]
29798    fn if_reset_statement_list_1(&mut self) -> Result<()> {
29799        let context = function_name!();
29800        trace!("{}", self.trace_item_stack(context));
29801        let if_reset_statement_list_1_built = Vec::new();
29802        self.push(
29803            ASTType::IfResetStatementList(if_reset_statement_list_1_built),
29804            context,
29805        );
29806        Ok(())
29807    }
29808
29809    /// Semantic action for production 691:
29810    ///
29811    /// `IfResetStatementOpt /* Option<T>::Some */: Else StatementBlock;`
29812    ///
29813    #[parol_runtime::function_name::named]
29814    fn if_reset_statement_opt_0(
29815        &mut self,
29816        _else: &ParseTreeType<'t>,
29817        _statement_block: &ParseTreeType<'t>,
29818    ) -> Result<()> {
29819        let context = function_name!();
29820        trace!("{}", self.trace_item_stack(context));
29821        let statement_block = pop_item!(self, statement_block, StatementBlock, context);
29822        let r#else = pop_item!(self, r#else, Else, context);
29823        let if_reset_statement_opt_0_built = IfResetStatementOpt {
29824            r#else: Box::new(r#else),
29825            statement_block: Box::new(statement_block),
29826        };
29827        self.push(
29828            ASTType::IfResetStatementOpt(Some(if_reset_statement_opt_0_built)),
29829            context,
29830        );
29831        Ok(())
29832    }
29833
29834    /// Semantic action for production 692:
29835    ///
29836    /// `IfResetStatementOpt /* Option<T>::None */: ;`
29837    ///
29838    #[parol_runtime::function_name::named]
29839    fn if_reset_statement_opt_1(&mut self) -> Result<()> {
29840        let context = function_name!();
29841        trace!("{}", self.trace_item_stack(context));
29842        self.push(ASTType::IfResetStatementOpt(None), context);
29843        Ok(())
29844    }
29845
29846    /// Semantic action for production 693:
29847    ///
29848    /// `ReturnStatement: Return Expression Semicolon;`
29849    ///
29850    #[parol_runtime::function_name::named]
29851    fn return_statement(
29852        &mut self,
29853        _return: &ParseTreeType<'t>,
29854        _expression: &ParseTreeType<'t>,
29855        _semicolon: &ParseTreeType<'t>,
29856    ) -> Result<()> {
29857        let context = function_name!();
29858        trace!("{}", self.trace_item_stack(context));
29859        let semicolon = pop_item!(self, semicolon, Semicolon, context);
29860        let expression = pop_item!(self, expression, Expression, context);
29861        let r#return = pop_item!(self, r#return, Return, context);
29862        let return_statement_built = ReturnStatement {
29863            r#return: Box::new(r#return),
29864            expression: Box::new(expression),
29865            semicolon: Box::new(semicolon),
29866        };
29867        // Calling user action here
29868        self.user_grammar
29869            .return_statement(&return_statement_built)?;
29870        self.push(ASTType::ReturnStatement(return_statement_built), context);
29871        Ok(())
29872    }
29873
29874    /// Semantic action for production 694:
29875    ///
29876    /// `BreakStatement: Break Semicolon;`
29877    ///
29878    #[parol_runtime::function_name::named]
29879    fn break_statement(
29880        &mut self,
29881        _break: &ParseTreeType<'t>,
29882        _semicolon: &ParseTreeType<'t>,
29883    ) -> Result<()> {
29884        let context = function_name!();
29885        trace!("{}", self.trace_item_stack(context));
29886        let semicolon = pop_item!(self, semicolon, Semicolon, context);
29887        let r#break = pop_item!(self, r#break, Break, context);
29888        let break_statement_built = BreakStatement {
29889            r#break: Box::new(r#break),
29890            semicolon: Box::new(semicolon),
29891        };
29892        // Calling user action here
29893        self.user_grammar.break_statement(&break_statement_built)?;
29894        self.push(ASTType::BreakStatement(break_statement_built), context);
29895        Ok(())
29896    }
29897
29898    /// Semantic action for production 695:
29899    ///
29900    /// `ForStatement: For Identifier Colon ScalarType In ForStatementOpt /* Option */ Range ForStatementOpt0 /* Option */ StatementBlock;`
29901    ///
29902    #[parol_runtime::function_name::named]
29903    fn for_statement(
29904        &mut self,
29905        _for: &ParseTreeType<'t>,
29906        _identifier: &ParseTreeType<'t>,
29907        _colon: &ParseTreeType<'t>,
29908        _scalar_type: &ParseTreeType<'t>,
29909        _in: &ParseTreeType<'t>,
29910        _for_statement_opt: &ParseTreeType<'t>,
29911        _range: &ParseTreeType<'t>,
29912        _for_statement_opt0: &ParseTreeType<'t>,
29913        _statement_block: &ParseTreeType<'t>,
29914    ) -> Result<()> {
29915        let context = function_name!();
29916        trace!("{}", self.trace_item_stack(context));
29917        let statement_block = pop_item!(self, statement_block, StatementBlock, context);
29918        let for_statement_opt0 = pop_item!(self, for_statement_opt0, ForStatementOpt0, context);
29919        let range = pop_item!(self, range, Range, context);
29920        let for_statement_opt = pop_item!(self, for_statement_opt, ForStatementOpt, context);
29921        let r#in = pop_item!(self, r#in, In, context);
29922        let scalar_type = pop_item!(self, scalar_type, ScalarType, context);
29923        let colon = pop_item!(self, colon, Colon, context);
29924        let identifier = pop_item!(self, identifier, Identifier, context);
29925        let r#for = pop_item!(self, r#for, For, context);
29926        let for_statement_built = ForStatement {
29927            r#for: Box::new(r#for),
29928            identifier: Box::new(identifier),
29929            colon: Box::new(colon),
29930            scalar_type: Box::new(scalar_type),
29931            r#in: Box::new(r#in),
29932            for_statement_opt,
29933            range: Box::new(range),
29934            for_statement_opt0,
29935            statement_block: Box::new(statement_block),
29936        };
29937        // Calling user action here
29938        self.user_grammar.for_statement(&for_statement_built)?;
29939        self.push(ASTType::ForStatement(for_statement_built), context);
29940        Ok(())
29941    }
29942
29943    /// Semantic action for production 696:
29944    ///
29945    /// `ForStatementOpt0 /* Option<T>::Some */: Step AssignmentOperator Expression;`
29946    ///
29947    #[parol_runtime::function_name::named]
29948    fn for_statement_opt0_0(
29949        &mut self,
29950        _step: &ParseTreeType<'t>,
29951        _assignment_operator: &ParseTreeType<'t>,
29952        _expression: &ParseTreeType<'t>,
29953    ) -> Result<()> {
29954        let context = function_name!();
29955        trace!("{}", self.trace_item_stack(context));
29956        let expression = pop_item!(self, expression, Expression, context);
29957        let assignment_operator = pop_item!(self, assignment_operator, AssignmentOperator, context);
29958        let step = pop_item!(self, step, Step, context);
29959        let for_statement_opt0_0_built = ForStatementOpt0 {
29960            step: Box::new(step),
29961            assignment_operator: Box::new(assignment_operator),
29962            expression: Box::new(expression),
29963        };
29964        self.push(
29965            ASTType::ForStatementOpt0(Some(for_statement_opt0_0_built)),
29966            context,
29967        );
29968        Ok(())
29969    }
29970
29971    /// Semantic action for production 697:
29972    ///
29973    /// `ForStatementOpt0 /* Option<T>::None */: ;`
29974    ///
29975    #[parol_runtime::function_name::named]
29976    fn for_statement_opt0_1(&mut self) -> Result<()> {
29977        let context = function_name!();
29978        trace!("{}", self.trace_item_stack(context));
29979        self.push(ASTType::ForStatementOpt0(None), context);
29980        Ok(())
29981    }
29982
29983    /// Semantic action for production 698:
29984    ///
29985    /// `ForStatementOpt /* Option<T>::Some */: Rev;`
29986    ///
29987    #[parol_runtime::function_name::named]
29988    fn for_statement_opt_0(&mut self, _rev: &ParseTreeType<'t>) -> Result<()> {
29989        let context = function_name!();
29990        trace!("{}", self.trace_item_stack(context));
29991        let rev = pop_item!(self, rev, Rev, context);
29992        let for_statement_opt_0_built = ForStatementOpt { rev: Box::new(rev) };
29993        self.push(
29994            ASTType::ForStatementOpt(Some(for_statement_opt_0_built)),
29995            context,
29996        );
29997        Ok(())
29998    }
29999
30000    /// Semantic action for production 699:
30001    ///
30002    /// `ForStatementOpt /* Option<T>::None */: ;`
30003    ///
30004    #[parol_runtime::function_name::named]
30005    fn for_statement_opt_1(&mut self) -> Result<()> {
30006        let context = function_name!();
30007        trace!("{}", self.trace_item_stack(context));
30008        self.push(ASTType::ForStatementOpt(None), context);
30009        Ok(())
30010    }
30011
30012    /// Semantic action for production 700:
30013    ///
30014    /// `CaseStatement: Case Expression LBrace CaseStatementList /* Vec */ RBrace;`
30015    ///
30016    #[parol_runtime::function_name::named]
30017    fn case_statement(
30018        &mut self,
30019        _case: &ParseTreeType<'t>,
30020        _expression: &ParseTreeType<'t>,
30021        _l_brace: &ParseTreeType<'t>,
30022        _case_statement_list: &ParseTreeType<'t>,
30023        _r_brace: &ParseTreeType<'t>,
30024    ) -> Result<()> {
30025        let context = function_name!();
30026        trace!("{}", self.trace_item_stack(context));
30027        let r_brace = pop_item!(self, r_brace, RBrace, context);
30028        let case_statement_list =
30029            pop_and_reverse_item!(self, case_statement_list, CaseStatementList, context);
30030        let l_brace = pop_item!(self, l_brace, LBrace, context);
30031        let expression = pop_item!(self, expression, Expression, context);
30032        let case = pop_item!(self, case, Case, context);
30033        let case_statement_built = CaseStatement {
30034            case: Box::new(case),
30035            expression: Box::new(expression),
30036            l_brace: Box::new(l_brace),
30037            case_statement_list,
30038            r_brace: Box::new(r_brace),
30039        };
30040        // Calling user action here
30041        self.user_grammar.case_statement(&case_statement_built)?;
30042        self.push(ASTType::CaseStatement(case_statement_built), context);
30043        Ok(())
30044    }
30045
30046    /// Semantic action for production 701:
30047    ///
30048    /// `CaseStatementList /* Vec<T>::Push */: CaseItem CaseStatementList;`
30049    ///
30050    #[parol_runtime::function_name::named]
30051    fn case_statement_list_0(
30052        &mut self,
30053        _case_item: &ParseTreeType<'t>,
30054        _case_statement_list: &ParseTreeType<'t>,
30055    ) -> Result<()> {
30056        let context = function_name!();
30057        trace!("{}", self.trace_item_stack(context));
30058        let mut case_statement_list =
30059            pop_item!(self, case_statement_list, CaseStatementList, context);
30060        let case_item = pop_item!(self, case_item, CaseItem, context);
30061        let case_statement_list_0_built = CaseStatementList {
30062            case_item: Box::new(case_item),
30063        };
30064        // Add an element to the vector
30065        case_statement_list.push(case_statement_list_0_built);
30066        self.push(ASTType::CaseStatementList(case_statement_list), context);
30067        Ok(())
30068    }
30069
30070    /// Semantic action for production 702:
30071    ///
30072    /// `CaseStatementList /* Vec<T>::New */: ;`
30073    ///
30074    #[parol_runtime::function_name::named]
30075    fn case_statement_list_1(&mut self) -> Result<()> {
30076        let context = function_name!();
30077        trace!("{}", self.trace_item_stack(context));
30078        let case_statement_list_1_built = Vec::new();
30079        self.push(
30080            ASTType::CaseStatementList(case_statement_list_1_built),
30081            context,
30082        );
30083        Ok(())
30084    }
30085
30086    /// Semantic action for production 703:
30087    ///
30088    /// `CaseItem: CaseItemGroup Colon CaseItemGroup0;`
30089    ///
30090    #[parol_runtime::function_name::named]
30091    fn case_item(
30092        &mut self,
30093        _case_item_group: &ParseTreeType<'t>,
30094        _colon: &ParseTreeType<'t>,
30095        _case_item_group0: &ParseTreeType<'t>,
30096    ) -> Result<()> {
30097        let context = function_name!();
30098        trace!("{}", self.trace_item_stack(context));
30099        let case_item_group0 = pop_item!(self, case_item_group0, CaseItemGroup0, context);
30100        let colon = pop_item!(self, colon, Colon, context);
30101        let case_item_group = pop_item!(self, case_item_group, CaseItemGroup, context);
30102        let case_item_built = CaseItem {
30103            case_item_group: Box::new(case_item_group),
30104            colon: Box::new(colon),
30105            case_item_group0: Box::new(case_item_group0),
30106        };
30107        // Calling user action here
30108        self.user_grammar.case_item(&case_item_built)?;
30109        self.push(ASTType::CaseItem(case_item_built), context);
30110        Ok(())
30111    }
30112
30113    /// Semantic action for production 704:
30114    ///
30115    /// `CaseItemGroup0: Statement;`
30116    ///
30117    #[parol_runtime::function_name::named]
30118    fn case_item_group0_0(&mut self, _statement: &ParseTreeType<'t>) -> Result<()> {
30119        let context = function_name!();
30120        trace!("{}", self.trace_item_stack(context));
30121        let statement = pop_item!(self, statement, Statement, context);
30122        let case_item_group0_0_built = CaseItemGroup0Statement {
30123            statement: Box::new(statement),
30124        };
30125        let case_item_group0_0_built = CaseItemGroup0::Statement(case_item_group0_0_built);
30126        self.push(ASTType::CaseItemGroup0(case_item_group0_0_built), context);
30127        Ok(())
30128    }
30129
30130    /// Semantic action for production 705:
30131    ///
30132    /// `CaseItemGroup0: StatementBlock;`
30133    ///
30134    #[parol_runtime::function_name::named]
30135    fn case_item_group0_1(&mut self, _statement_block: &ParseTreeType<'t>) -> Result<()> {
30136        let context = function_name!();
30137        trace!("{}", self.trace_item_stack(context));
30138        let statement_block = pop_item!(self, statement_block, StatementBlock, context);
30139        let case_item_group0_1_built = CaseItemGroup0StatementBlock {
30140            statement_block: Box::new(statement_block),
30141        };
30142        let case_item_group0_1_built = CaseItemGroup0::StatementBlock(case_item_group0_1_built);
30143        self.push(ASTType::CaseItemGroup0(case_item_group0_1_built), context);
30144        Ok(())
30145    }
30146
30147    /// Semantic action for production 706:
30148    ///
30149    /// `CaseItemGroup: CaseCondition;`
30150    ///
30151    #[parol_runtime::function_name::named]
30152    fn case_item_group_0(&mut self, _case_condition: &ParseTreeType<'t>) -> Result<()> {
30153        let context = function_name!();
30154        trace!("{}", self.trace_item_stack(context));
30155        let case_condition = pop_item!(self, case_condition, CaseCondition, context);
30156        let case_item_group_0_built = CaseItemGroupCaseCondition {
30157            case_condition: Box::new(case_condition),
30158        };
30159        let case_item_group_0_built = CaseItemGroup::CaseCondition(case_item_group_0_built);
30160        self.push(ASTType::CaseItemGroup(case_item_group_0_built), context);
30161        Ok(())
30162    }
30163
30164    /// Semantic action for production 707:
30165    ///
30166    /// `CaseItemGroup: Defaul;`
30167    ///
30168    #[parol_runtime::function_name::named]
30169    fn case_item_group_1(&mut self, _defaul: &ParseTreeType<'t>) -> Result<()> {
30170        let context = function_name!();
30171        trace!("{}", self.trace_item_stack(context));
30172        let defaul = pop_item!(self, defaul, Defaul, context);
30173        let case_item_group_1_built = CaseItemGroupDefaul {
30174            defaul: Box::new(defaul),
30175        };
30176        let case_item_group_1_built = CaseItemGroup::Defaul(case_item_group_1_built);
30177        self.push(ASTType::CaseItemGroup(case_item_group_1_built), context);
30178        Ok(())
30179    }
30180
30181    /// Semantic action for production 708:
30182    ///
30183    /// `CaseCondition: RangeItem CaseConditionList /* Vec */;`
30184    ///
30185    #[parol_runtime::function_name::named]
30186    fn case_condition(
30187        &mut self,
30188        _range_item: &ParseTreeType<'t>,
30189        _case_condition_list: &ParseTreeType<'t>,
30190    ) -> Result<()> {
30191        let context = function_name!();
30192        trace!("{}", self.trace_item_stack(context));
30193        let case_condition_list =
30194            pop_and_reverse_item!(self, case_condition_list, CaseConditionList, context);
30195        let range_item = pop_item!(self, range_item, RangeItem, context);
30196        let case_condition_built = CaseCondition {
30197            range_item: Box::new(range_item),
30198            case_condition_list,
30199        };
30200        // Calling user action here
30201        self.user_grammar.case_condition(&case_condition_built)?;
30202        self.push(ASTType::CaseCondition(case_condition_built), context);
30203        Ok(())
30204    }
30205
30206    /// Semantic action for production 709:
30207    ///
30208    /// `CaseConditionList /* Vec<T>::Push */: Comma RangeItem CaseConditionList;`
30209    ///
30210    #[parol_runtime::function_name::named]
30211    fn case_condition_list_0(
30212        &mut self,
30213        _comma: &ParseTreeType<'t>,
30214        _range_item: &ParseTreeType<'t>,
30215        _case_condition_list: &ParseTreeType<'t>,
30216    ) -> Result<()> {
30217        let context = function_name!();
30218        trace!("{}", self.trace_item_stack(context));
30219        let mut case_condition_list =
30220            pop_item!(self, case_condition_list, CaseConditionList, context);
30221        let range_item = pop_item!(self, range_item, RangeItem, context);
30222        let comma = pop_item!(self, comma, Comma, context);
30223        let case_condition_list_0_built = CaseConditionList {
30224            range_item: Box::new(range_item),
30225            comma: Box::new(comma),
30226        };
30227        // Add an element to the vector
30228        case_condition_list.push(case_condition_list_0_built);
30229        self.push(ASTType::CaseConditionList(case_condition_list), context);
30230        Ok(())
30231    }
30232
30233    /// Semantic action for production 710:
30234    ///
30235    /// `CaseConditionList /* Vec<T>::New */: ;`
30236    ///
30237    #[parol_runtime::function_name::named]
30238    fn case_condition_list_1(&mut self) -> Result<()> {
30239        let context = function_name!();
30240        trace!("{}", self.trace_item_stack(context));
30241        let case_condition_list_1_built = Vec::new();
30242        self.push(
30243            ASTType::CaseConditionList(case_condition_list_1_built),
30244            context,
30245        );
30246        Ok(())
30247    }
30248
30249    /// Semantic action for production 711:
30250    ///
30251    /// `SwitchStatement: Switch LBrace SwitchStatementList /* Vec */ RBrace;`
30252    ///
30253    #[parol_runtime::function_name::named]
30254    fn switch_statement(
30255        &mut self,
30256        _switch: &ParseTreeType<'t>,
30257        _l_brace: &ParseTreeType<'t>,
30258        _switch_statement_list: &ParseTreeType<'t>,
30259        _r_brace: &ParseTreeType<'t>,
30260    ) -> Result<()> {
30261        let context = function_name!();
30262        trace!("{}", self.trace_item_stack(context));
30263        let r_brace = pop_item!(self, r_brace, RBrace, context);
30264        let switch_statement_list =
30265            pop_and_reverse_item!(self, switch_statement_list, SwitchStatementList, context);
30266        let l_brace = pop_item!(self, l_brace, LBrace, context);
30267        let switch = pop_item!(self, switch, Switch, context);
30268        let switch_statement_built = SwitchStatement {
30269            switch: Box::new(switch),
30270            l_brace: Box::new(l_brace),
30271            switch_statement_list,
30272            r_brace: Box::new(r_brace),
30273        };
30274        // Calling user action here
30275        self.user_grammar
30276            .switch_statement(&switch_statement_built)?;
30277        self.push(ASTType::SwitchStatement(switch_statement_built), context);
30278        Ok(())
30279    }
30280
30281    /// Semantic action for production 712:
30282    ///
30283    /// `SwitchStatementList /* Vec<T>::Push */: SwitchItem SwitchStatementList;`
30284    ///
30285    #[parol_runtime::function_name::named]
30286    fn switch_statement_list_0(
30287        &mut self,
30288        _switch_item: &ParseTreeType<'t>,
30289        _switch_statement_list: &ParseTreeType<'t>,
30290    ) -> Result<()> {
30291        let context = function_name!();
30292        trace!("{}", self.trace_item_stack(context));
30293        let mut switch_statement_list =
30294            pop_item!(self, switch_statement_list, SwitchStatementList, context);
30295        let switch_item = pop_item!(self, switch_item, SwitchItem, context);
30296        let switch_statement_list_0_built = SwitchStatementList {
30297            switch_item: Box::new(switch_item),
30298        };
30299        // Add an element to the vector
30300        switch_statement_list.push(switch_statement_list_0_built);
30301        self.push(ASTType::SwitchStatementList(switch_statement_list), context);
30302        Ok(())
30303    }
30304
30305    /// Semantic action for production 713:
30306    ///
30307    /// `SwitchStatementList /* Vec<T>::New */: ;`
30308    ///
30309    #[parol_runtime::function_name::named]
30310    fn switch_statement_list_1(&mut self) -> Result<()> {
30311        let context = function_name!();
30312        trace!("{}", self.trace_item_stack(context));
30313        let switch_statement_list_1_built = Vec::new();
30314        self.push(
30315            ASTType::SwitchStatementList(switch_statement_list_1_built),
30316            context,
30317        );
30318        Ok(())
30319    }
30320
30321    /// Semantic action for production 714:
30322    ///
30323    /// `SwitchItem: SwitchItemGroup Colon SwitchItemGroup0;`
30324    ///
30325    #[parol_runtime::function_name::named]
30326    fn switch_item(
30327        &mut self,
30328        _switch_item_group: &ParseTreeType<'t>,
30329        _colon: &ParseTreeType<'t>,
30330        _switch_item_group0: &ParseTreeType<'t>,
30331    ) -> Result<()> {
30332        let context = function_name!();
30333        trace!("{}", self.trace_item_stack(context));
30334        let switch_item_group0 = pop_item!(self, switch_item_group0, SwitchItemGroup0, context);
30335        let colon = pop_item!(self, colon, Colon, context);
30336        let switch_item_group = pop_item!(self, switch_item_group, SwitchItemGroup, context);
30337        let switch_item_built = SwitchItem {
30338            switch_item_group: Box::new(switch_item_group),
30339            colon: Box::new(colon),
30340            switch_item_group0: Box::new(switch_item_group0),
30341        };
30342        // Calling user action here
30343        self.user_grammar.switch_item(&switch_item_built)?;
30344        self.push(ASTType::SwitchItem(switch_item_built), context);
30345        Ok(())
30346    }
30347
30348    /// Semantic action for production 715:
30349    ///
30350    /// `SwitchItemGroup0: Statement;`
30351    ///
30352    #[parol_runtime::function_name::named]
30353    fn switch_item_group0_0(&mut self, _statement: &ParseTreeType<'t>) -> Result<()> {
30354        let context = function_name!();
30355        trace!("{}", self.trace_item_stack(context));
30356        let statement = pop_item!(self, statement, Statement, context);
30357        let switch_item_group0_0_built = SwitchItemGroup0Statement {
30358            statement: Box::new(statement),
30359        };
30360        let switch_item_group0_0_built = SwitchItemGroup0::Statement(switch_item_group0_0_built);
30361        self.push(
30362            ASTType::SwitchItemGroup0(switch_item_group0_0_built),
30363            context,
30364        );
30365        Ok(())
30366    }
30367
30368    /// Semantic action for production 716:
30369    ///
30370    /// `SwitchItemGroup0: StatementBlock;`
30371    ///
30372    #[parol_runtime::function_name::named]
30373    fn switch_item_group0_1(&mut self, _statement_block: &ParseTreeType<'t>) -> Result<()> {
30374        let context = function_name!();
30375        trace!("{}", self.trace_item_stack(context));
30376        let statement_block = pop_item!(self, statement_block, StatementBlock, context);
30377        let switch_item_group0_1_built = SwitchItemGroup0StatementBlock {
30378            statement_block: Box::new(statement_block),
30379        };
30380        let switch_item_group0_1_built =
30381            SwitchItemGroup0::StatementBlock(switch_item_group0_1_built);
30382        self.push(
30383            ASTType::SwitchItemGroup0(switch_item_group0_1_built),
30384            context,
30385        );
30386        Ok(())
30387    }
30388
30389    /// Semantic action for production 717:
30390    ///
30391    /// `SwitchItemGroup: SwitchCondition;`
30392    ///
30393    #[parol_runtime::function_name::named]
30394    fn switch_item_group_0(&mut self, _switch_condition: &ParseTreeType<'t>) -> Result<()> {
30395        let context = function_name!();
30396        trace!("{}", self.trace_item_stack(context));
30397        let switch_condition = pop_item!(self, switch_condition, SwitchCondition, context);
30398        let switch_item_group_0_built = SwitchItemGroupSwitchCondition {
30399            switch_condition: Box::new(switch_condition),
30400        };
30401        let switch_item_group_0_built = SwitchItemGroup::SwitchCondition(switch_item_group_0_built);
30402        self.push(ASTType::SwitchItemGroup(switch_item_group_0_built), context);
30403        Ok(())
30404    }
30405
30406    /// Semantic action for production 718:
30407    ///
30408    /// `SwitchItemGroup: Defaul;`
30409    ///
30410    #[parol_runtime::function_name::named]
30411    fn switch_item_group_1(&mut self, _defaul: &ParseTreeType<'t>) -> Result<()> {
30412        let context = function_name!();
30413        trace!("{}", self.trace_item_stack(context));
30414        let defaul = pop_item!(self, defaul, Defaul, context);
30415        let switch_item_group_1_built = SwitchItemGroupDefaul {
30416            defaul: Box::new(defaul),
30417        };
30418        let switch_item_group_1_built = SwitchItemGroup::Defaul(switch_item_group_1_built);
30419        self.push(ASTType::SwitchItemGroup(switch_item_group_1_built), context);
30420        Ok(())
30421    }
30422
30423    /// Semantic action for production 719:
30424    ///
30425    /// `SwitchCondition: Expression SwitchConditionList /* Vec */;`
30426    ///
30427    #[parol_runtime::function_name::named]
30428    fn switch_condition(
30429        &mut self,
30430        _expression: &ParseTreeType<'t>,
30431        _switch_condition_list: &ParseTreeType<'t>,
30432    ) -> Result<()> {
30433        let context = function_name!();
30434        trace!("{}", self.trace_item_stack(context));
30435        let switch_condition_list =
30436            pop_and_reverse_item!(self, switch_condition_list, SwitchConditionList, context);
30437        let expression = pop_item!(self, expression, Expression, context);
30438        let switch_condition_built = SwitchCondition {
30439            expression: Box::new(expression),
30440            switch_condition_list,
30441        };
30442        // Calling user action here
30443        self.user_grammar
30444            .switch_condition(&switch_condition_built)?;
30445        self.push(ASTType::SwitchCondition(switch_condition_built), context);
30446        Ok(())
30447    }
30448
30449    /// Semantic action for production 720:
30450    ///
30451    /// `SwitchConditionList /* Vec<T>::Push */: Comma Expression SwitchConditionList;`
30452    ///
30453    #[parol_runtime::function_name::named]
30454    fn switch_condition_list_0(
30455        &mut self,
30456        _comma: &ParseTreeType<'t>,
30457        _expression: &ParseTreeType<'t>,
30458        _switch_condition_list: &ParseTreeType<'t>,
30459    ) -> Result<()> {
30460        let context = function_name!();
30461        trace!("{}", self.trace_item_stack(context));
30462        let mut switch_condition_list =
30463            pop_item!(self, switch_condition_list, SwitchConditionList, context);
30464        let expression = pop_item!(self, expression, Expression, context);
30465        let comma = pop_item!(self, comma, Comma, context);
30466        let switch_condition_list_0_built = SwitchConditionList {
30467            expression: Box::new(expression),
30468            comma: Box::new(comma),
30469        };
30470        // Add an element to the vector
30471        switch_condition_list.push(switch_condition_list_0_built);
30472        self.push(ASTType::SwitchConditionList(switch_condition_list), context);
30473        Ok(())
30474    }
30475
30476    /// Semantic action for production 721:
30477    ///
30478    /// `SwitchConditionList /* Vec<T>::New */: ;`
30479    ///
30480    #[parol_runtime::function_name::named]
30481    fn switch_condition_list_1(&mut self) -> Result<()> {
30482        let context = function_name!();
30483        trace!("{}", self.trace_item_stack(context));
30484        let switch_condition_list_1_built = Vec::new();
30485        self.push(
30486            ASTType::SwitchConditionList(switch_condition_list_1_built),
30487            context,
30488        );
30489        Ok(())
30490    }
30491
30492    /// Semantic action for production 722:
30493    ///
30494    /// `Attribute: HashLBracket Identifier AttributeOpt /* Option */ RBracket;`
30495    ///
30496    #[parol_runtime::function_name::named]
30497    fn attribute(
30498        &mut self,
30499        _hash_l_bracket: &ParseTreeType<'t>,
30500        _identifier: &ParseTreeType<'t>,
30501        _attribute_opt: &ParseTreeType<'t>,
30502        _r_bracket: &ParseTreeType<'t>,
30503    ) -> Result<()> {
30504        let context = function_name!();
30505        trace!("{}", self.trace_item_stack(context));
30506        let r_bracket = pop_item!(self, r_bracket, RBracket, context);
30507        let attribute_opt = pop_item!(self, attribute_opt, AttributeOpt, context);
30508        let identifier = pop_item!(self, identifier, Identifier, context);
30509        let hash_l_bracket = pop_item!(self, hash_l_bracket, HashLBracket, context);
30510        let attribute_built = Attribute {
30511            hash_l_bracket: Box::new(hash_l_bracket),
30512            identifier: Box::new(identifier),
30513            attribute_opt,
30514            r_bracket: Box::new(r_bracket),
30515        };
30516        // Calling user action here
30517        self.user_grammar.attribute(&attribute_built)?;
30518        self.push(ASTType::Attribute(attribute_built), context);
30519        Ok(())
30520    }
30521
30522    /// Semantic action for production 723:
30523    ///
30524    /// `AttributeOpt /* Option<T>::Some */: LParen AttributeList RParen;`
30525    ///
30526    #[parol_runtime::function_name::named]
30527    fn attribute_opt_0(
30528        &mut self,
30529        _l_paren: &ParseTreeType<'t>,
30530        _attribute_list: &ParseTreeType<'t>,
30531        _r_paren: &ParseTreeType<'t>,
30532    ) -> Result<()> {
30533        let context = function_name!();
30534        trace!("{}", self.trace_item_stack(context));
30535        let r_paren = pop_item!(self, r_paren, RParen, context);
30536        let attribute_list = pop_item!(self, attribute_list, AttributeList, context);
30537        let l_paren = pop_item!(self, l_paren, LParen, context);
30538        let attribute_opt_0_built = AttributeOpt {
30539            l_paren: Box::new(l_paren),
30540            attribute_list: Box::new(attribute_list),
30541            r_paren: Box::new(r_paren),
30542        };
30543        self.push(ASTType::AttributeOpt(Some(attribute_opt_0_built)), context);
30544        Ok(())
30545    }
30546
30547    /// Semantic action for production 724:
30548    ///
30549    /// `AttributeOpt /* Option<T>::None */: ;`
30550    ///
30551    #[parol_runtime::function_name::named]
30552    fn attribute_opt_1(&mut self) -> Result<()> {
30553        let context = function_name!();
30554        trace!("{}", self.trace_item_stack(context));
30555        self.push(ASTType::AttributeOpt(None), context);
30556        Ok(())
30557    }
30558
30559    /// Semantic action for production 725:
30560    ///
30561    /// `AttributeList: AttributeItem AttributeListList /* Vec */ AttributeListOpt /* Option */;`
30562    ///
30563    #[parol_runtime::function_name::named]
30564    fn attribute_list(
30565        &mut self,
30566        _attribute_item: &ParseTreeType<'t>,
30567        _attribute_list_list: &ParseTreeType<'t>,
30568        _attribute_list_opt: &ParseTreeType<'t>,
30569    ) -> Result<()> {
30570        let context = function_name!();
30571        trace!("{}", self.trace_item_stack(context));
30572        let attribute_list_opt = pop_item!(self, attribute_list_opt, AttributeListOpt, context);
30573        let attribute_list_list =
30574            pop_and_reverse_item!(self, attribute_list_list, AttributeListList, context);
30575        let attribute_item = pop_item!(self, attribute_item, AttributeItem, context);
30576        let attribute_list_built = AttributeList {
30577            attribute_item: Box::new(attribute_item),
30578            attribute_list_list,
30579            attribute_list_opt,
30580        };
30581        // Calling user action here
30582        self.user_grammar.attribute_list(&attribute_list_built)?;
30583        self.push(ASTType::AttributeList(attribute_list_built), context);
30584        Ok(())
30585    }
30586
30587    /// Semantic action for production 726:
30588    ///
30589    /// `AttributeListList /* Vec<T>::Push */: Comma AttributeItem AttributeListList;`
30590    ///
30591    #[parol_runtime::function_name::named]
30592    fn attribute_list_list_0(
30593        &mut self,
30594        _comma: &ParseTreeType<'t>,
30595        _attribute_item: &ParseTreeType<'t>,
30596        _attribute_list_list: &ParseTreeType<'t>,
30597    ) -> Result<()> {
30598        let context = function_name!();
30599        trace!("{}", self.trace_item_stack(context));
30600        let mut attribute_list_list =
30601            pop_item!(self, attribute_list_list, AttributeListList, context);
30602        let attribute_item = pop_item!(self, attribute_item, AttributeItem, context);
30603        let comma = pop_item!(self, comma, Comma, context);
30604        let attribute_list_list_0_built = AttributeListList {
30605            attribute_item: Box::new(attribute_item),
30606            comma: Box::new(comma),
30607        };
30608        // Add an element to the vector
30609        attribute_list_list.push(attribute_list_list_0_built);
30610        self.push(ASTType::AttributeListList(attribute_list_list), context);
30611        Ok(())
30612    }
30613
30614    /// Semantic action for production 727:
30615    ///
30616    /// `AttributeListList /* Vec<T>::New */: ;`
30617    ///
30618    #[parol_runtime::function_name::named]
30619    fn attribute_list_list_1(&mut self) -> Result<()> {
30620        let context = function_name!();
30621        trace!("{}", self.trace_item_stack(context));
30622        let attribute_list_list_1_built = Vec::new();
30623        self.push(
30624            ASTType::AttributeListList(attribute_list_list_1_built),
30625            context,
30626        );
30627        Ok(())
30628    }
30629
30630    /// Semantic action for production 728:
30631    ///
30632    /// `AttributeListOpt /* Option<T>::Some */: Comma;`
30633    ///
30634    #[parol_runtime::function_name::named]
30635    fn attribute_list_opt_0(&mut self, _comma: &ParseTreeType<'t>) -> Result<()> {
30636        let context = function_name!();
30637        trace!("{}", self.trace_item_stack(context));
30638        let comma = pop_item!(self, comma, Comma, context);
30639        let attribute_list_opt_0_built = AttributeListOpt {
30640            comma: Box::new(comma),
30641        };
30642        self.push(
30643            ASTType::AttributeListOpt(Some(attribute_list_opt_0_built)),
30644            context,
30645        );
30646        Ok(())
30647    }
30648
30649    /// Semantic action for production 729:
30650    ///
30651    /// `AttributeListOpt /* Option<T>::None */: ;`
30652    ///
30653    #[parol_runtime::function_name::named]
30654    fn attribute_list_opt_1(&mut self) -> Result<()> {
30655        let context = function_name!();
30656        trace!("{}", self.trace_item_stack(context));
30657        self.push(ASTType::AttributeListOpt(None), context);
30658        Ok(())
30659    }
30660
30661    /// Semantic action for production 730:
30662    ///
30663    /// `AttributeItem: Identifier;`
30664    ///
30665    #[parol_runtime::function_name::named]
30666    fn attribute_item_0(&mut self, _identifier: &ParseTreeType<'t>) -> Result<()> {
30667        let context = function_name!();
30668        trace!("{}", self.trace_item_stack(context));
30669        let identifier = pop_item!(self, identifier, Identifier, context);
30670        let attribute_item_0_built = AttributeItemIdentifier {
30671            identifier: Box::new(identifier),
30672        };
30673        let attribute_item_0_built = AttributeItem::Identifier(attribute_item_0_built);
30674        // Calling user action here
30675        self.user_grammar.attribute_item(&attribute_item_0_built)?;
30676        self.push(ASTType::AttributeItem(attribute_item_0_built), context);
30677        Ok(())
30678    }
30679
30680    /// Semantic action for production 731:
30681    ///
30682    /// `AttributeItem: StringLiteral;`
30683    ///
30684    #[parol_runtime::function_name::named]
30685    fn attribute_item_1(&mut self, _string_literal: &ParseTreeType<'t>) -> Result<()> {
30686        let context = function_name!();
30687        trace!("{}", self.trace_item_stack(context));
30688        let string_literal = pop_item!(self, string_literal, StringLiteral, context);
30689        let attribute_item_1_built = AttributeItemStringLiteral {
30690            string_literal: Box::new(string_literal),
30691        };
30692        let attribute_item_1_built = AttributeItem::StringLiteral(attribute_item_1_built);
30693        // Calling user action here
30694        self.user_grammar.attribute_item(&attribute_item_1_built)?;
30695        self.push(ASTType::AttributeItem(attribute_item_1_built), context);
30696        Ok(())
30697    }
30698
30699    /// Semantic action for production 732:
30700    ///
30701    /// `LetDeclaration: Let Identifier Colon LetDeclarationOpt /* Option */ ArrayType Equ Expression Semicolon;`
30702    ///
30703    #[parol_runtime::function_name::named]
30704    fn let_declaration(
30705        &mut self,
30706        _let: &ParseTreeType<'t>,
30707        _identifier: &ParseTreeType<'t>,
30708        _colon: &ParseTreeType<'t>,
30709        _let_declaration_opt: &ParseTreeType<'t>,
30710        _array_type: &ParseTreeType<'t>,
30711        _equ: &ParseTreeType<'t>,
30712        _expression: &ParseTreeType<'t>,
30713        _semicolon: &ParseTreeType<'t>,
30714    ) -> Result<()> {
30715        let context = function_name!();
30716        trace!("{}", self.trace_item_stack(context));
30717        let semicolon = pop_item!(self, semicolon, Semicolon, context);
30718        let expression = pop_item!(self, expression, Expression, context);
30719        let equ = pop_item!(self, equ, Equ, context);
30720        let array_type = pop_item!(self, array_type, ArrayType, context);
30721        let let_declaration_opt = pop_item!(self, let_declaration_opt, LetDeclarationOpt, context);
30722        let colon = pop_item!(self, colon, Colon, context);
30723        let identifier = pop_item!(self, identifier, Identifier, context);
30724        let r#let = pop_item!(self, r#let, Let, context);
30725        let let_declaration_built = LetDeclaration {
30726            r#let: Box::new(r#let),
30727            identifier: Box::new(identifier),
30728            colon: Box::new(colon),
30729            let_declaration_opt,
30730            array_type: Box::new(array_type),
30731            equ: Box::new(equ),
30732            expression: Box::new(expression),
30733            semicolon: Box::new(semicolon),
30734        };
30735        // Calling user action here
30736        self.user_grammar.let_declaration(&let_declaration_built)?;
30737        self.push(ASTType::LetDeclaration(let_declaration_built), context);
30738        Ok(())
30739    }
30740
30741    /// Semantic action for production 733:
30742    ///
30743    /// `LetDeclarationOpt /* Option<T>::Some */: ClockDomain;`
30744    ///
30745    #[parol_runtime::function_name::named]
30746    fn let_declaration_opt_0(&mut self, _clock_domain: &ParseTreeType<'t>) -> Result<()> {
30747        let context = function_name!();
30748        trace!("{}", self.trace_item_stack(context));
30749        let clock_domain = pop_item!(self, clock_domain, ClockDomain, context);
30750        let let_declaration_opt_0_built = LetDeclarationOpt {
30751            clock_domain: Box::new(clock_domain),
30752        };
30753        self.push(
30754            ASTType::LetDeclarationOpt(Some(let_declaration_opt_0_built)),
30755            context,
30756        );
30757        Ok(())
30758    }
30759
30760    /// Semantic action for production 734:
30761    ///
30762    /// `LetDeclarationOpt /* Option<T>::None */: ;`
30763    ///
30764    #[parol_runtime::function_name::named]
30765    fn let_declaration_opt_1(&mut self) -> Result<()> {
30766        let context = function_name!();
30767        trace!("{}", self.trace_item_stack(context));
30768        self.push(ASTType::LetDeclarationOpt(None), context);
30769        Ok(())
30770    }
30771
30772    /// Semantic action for production 735:
30773    ///
30774    /// `VarDeclaration: Var Identifier Colon VarDeclarationOpt /* Option */ ArrayType Semicolon;`
30775    ///
30776    #[parol_runtime::function_name::named]
30777    fn var_declaration(
30778        &mut self,
30779        _var: &ParseTreeType<'t>,
30780        _identifier: &ParseTreeType<'t>,
30781        _colon: &ParseTreeType<'t>,
30782        _var_declaration_opt: &ParseTreeType<'t>,
30783        _array_type: &ParseTreeType<'t>,
30784        _semicolon: &ParseTreeType<'t>,
30785    ) -> Result<()> {
30786        let context = function_name!();
30787        trace!("{}", self.trace_item_stack(context));
30788        let semicolon = pop_item!(self, semicolon, Semicolon, context);
30789        let array_type = pop_item!(self, array_type, ArrayType, context);
30790        let var_declaration_opt = pop_item!(self, var_declaration_opt, VarDeclarationOpt, context);
30791        let colon = pop_item!(self, colon, Colon, context);
30792        let identifier = pop_item!(self, identifier, Identifier, context);
30793        let var = pop_item!(self, var, Var, context);
30794        let var_declaration_built = VarDeclaration {
30795            var: Box::new(var),
30796            identifier: Box::new(identifier),
30797            colon: Box::new(colon),
30798            var_declaration_opt,
30799            array_type: Box::new(array_type),
30800            semicolon: Box::new(semicolon),
30801        };
30802        // Calling user action here
30803        self.user_grammar.var_declaration(&var_declaration_built)?;
30804        self.push(ASTType::VarDeclaration(var_declaration_built), context);
30805        Ok(())
30806    }
30807
30808    /// Semantic action for production 736:
30809    ///
30810    /// `VarDeclarationOpt /* Option<T>::Some */: ClockDomain;`
30811    ///
30812    #[parol_runtime::function_name::named]
30813    fn var_declaration_opt_0(&mut self, _clock_domain: &ParseTreeType<'t>) -> Result<()> {
30814        let context = function_name!();
30815        trace!("{}", self.trace_item_stack(context));
30816        let clock_domain = pop_item!(self, clock_domain, ClockDomain, context);
30817        let var_declaration_opt_0_built = VarDeclarationOpt {
30818            clock_domain: Box::new(clock_domain),
30819        };
30820        self.push(
30821            ASTType::VarDeclarationOpt(Some(var_declaration_opt_0_built)),
30822            context,
30823        );
30824        Ok(())
30825    }
30826
30827    /// Semantic action for production 737:
30828    ///
30829    /// `VarDeclarationOpt /* Option<T>::None */: ;`
30830    ///
30831    #[parol_runtime::function_name::named]
30832    fn var_declaration_opt_1(&mut self) -> Result<()> {
30833        let context = function_name!();
30834        trace!("{}", self.trace_item_stack(context));
30835        self.push(ASTType::VarDeclarationOpt(None), context);
30836        Ok(())
30837    }
30838
30839    /// Semantic action for production 738:
30840    ///
30841    /// `ConstDeclaration: Const Identifier Colon ConstDeclarationGroup Equ Expression Semicolon;`
30842    ///
30843    #[parol_runtime::function_name::named]
30844    fn const_declaration(
30845        &mut self,
30846        _const: &ParseTreeType<'t>,
30847        _identifier: &ParseTreeType<'t>,
30848        _colon: &ParseTreeType<'t>,
30849        _const_declaration_group: &ParseTreeType<'t>,
30850        _equ: &ParseTreeType<'t>,
30851        _expression: &ParseTreeType<'t>,
30852        _semicolon: &ParseTreeType<'t>,
30853    ) -> Result<()> {
30854        let context = function_name!();
30855        trace!("{}", self.trace_item_stack(context));
30856        let semicolon = pop_item!(self, semicolon, Semicolon, context);
30857        let expression = pop_item!(self, expression, Expression, context);
30858        let equ = pop_item!(self, equ, Equ, context);
30859        let const_declaration_group = pop_item!(
30860            self,
30861            const_declaration_group,
30862            ConstDeclarationGroup,
30863            context
30864        );
30865        let colon = pop_item!(self, colon, Colon, context);
30866        let identifier = pop_item!(self, identifier, Identifier, context);
30867        let r#const = pop_item!(self, r#const, Const, context);
30868        let const_declaration_built = ConstDeclaration {
30869            r#const: Box::new(r#const),
30870            identifier: Box::new(identifier),
30871            colon: Box::new(colon),
30872            const_declaration_group: Box::new(const_declaration_group),
30873            equ: Box::new(equ),
30874            expression: Box::new(expression),
30875            semicolon: Box::new(semicolon),
30876        };
30877        // Calling user action here
30878        self.user_grammar
30879            .const_declaration(&const_declaration_built)?;
30880        self.push(ASTType::ConstDeclaration(const_declaration_built), context);
30881        Ok(())
30882    }
30883
30884    /// Semantic action for production 739:
30885    ///
30886    /// `ConstDeclarationGroup: ArrayType;`
30887    ///
30888    #[parol_runtime::function_name::named]
30889    fn const_declaration_group_0(&mut self, _array_type: &ParseTreeType<'t>) -> Result<()> {
30890        let context = function_name!();
30891        trace!("{}", self.trace_item_stack(context));
30892        let array_type = pop_item!(self, array_type, ArrayType, context);
30893        let const_declaration_group_0_built = ConstDeclarationGroupArrayType {
30894            array_type: Box::new(array_type),
30895        };
30896        let const_declaration_group_0_built =
30897            ConstDeclarationGroup::ArrayType(const_declaration_group_0_built);
30898        self.push(
30899            ASTType::ConstDeclarationGroup(const_declaration_group_0_built),
30900            context,
30901        );
30902        Ok(())
30903    }
30904
30905    /// Semantic action for production 740:
30906    ///
30907    /// `ConstDeclarationGroup: Type;`
30908    ///
30909    #[parol_runtime::function_name::named]
30910    fn const_declaration_group_1(&mut self, _type: &ParseTreeType<'t>) -> Result<()> {
30911        let context = function_name!();
30912        trace!("{}", self.trace_item_stack(context));
30913        let r#type = pop_item!(self, r#type, Type, context);
30914        let const_declaration_group_1_built = ConstDeclarationGroupType {
30915            r#type: Box::new(r#type),
30916        };
30917        let const_declaration_group_1_built =
30918            ConstDeclarationGroup::Type(const_declaration_group_1_built);
30919        self.push(
30920            ASTType::ConstDeclarationGroup(const_declaration_group_1_built),
30921            context,
30922        );
30923        Ok(())
30924    }
30925
30926    /// Semantic action for production 741:
30927    ///
30928    /// `TypeDefDeclaration: Type Identifier Equ ArrayType Semicolon;`
30929    ///
30930    #[parol_runtime::function_name::named]
30931    fn type_def_declaration(
30932        &mut self,
30933        _type: &ParseTreeType<'t>,
30934        _identifier: &ParseTreeType<'t>,
30935        _equ: &ParseTreeType<'t>,
30936        _array_type: &ParseTreeType<'t>,
30937        _semicolon: &ParseTreeType<'t>,
30938    ) -> Result<()> {
30939        let context = function_name!();
30940        trace!("{}", self.trace_item_stack(context));
30941        let semicolon = pop_item!(self, semicolon, Semicolon, context);
30942        let array_type = pop_item!(self, array_type, ArrayType, context);
30943        let equ = pop_item!(self, equ, Equ, context);
30944        let identifier = pop_item!(self, identifier, Identifier, context);
30945        let r#type = pop_item!(self, r#type, Type, context);
30946        let type_def_declaration_built = TypeDefDeclaration {
30947            r#type: Box::new(r#type),
30948            identifier: Box::new(identifier),
30949            equ: Box::new(equ),
30950            array_type: Box::new(array_type),
30951            semicolon: Box::new(semicolon),
30952        };
30953        // Calling user action here
30954        self.user_grammar
30955            .type_def_declaration(&type_def_declaration_built)?;
30956        self.push(
30957            ASTType::TypeDefDeclaration(type_def_declaration_built),
30958            context,
30959        );
30960        Ok(())
30961    }
30962
30963    /// Semantic action for production 742:
30964    ///
30965    /// `AlwaysFfDeclaration: AlwaysFf AlwaysFfDeclarationOpt /* Option */ StatementBlock;`
30966    ///
30967    #[parol_runtime::function_name::named]
30968    fn always_ff_declaration(
30969        &mut self,
30970        _always_ff: &ParseTreeType<'t>,
30971        _always_ff_declaration_opt: &ParseTreeType<'t>,
30972        _statement_block: &ParseTreeType<'t>,
30973    ) -> Result<()> {
30974        let context = function_name!();
30975        trace!("{}", self.trace_item_stack(context));
30976        let statement_block = pop_item!(self, statement_block, StatementBlock, context);
30977        let always_ff_declaration_opt = pop_item!(
30978            self,
30979            always_ff_declaration_opt,
30980            AlwaysFfDeclarationOpt,
30981            context
30982        );
30983        let always_ff = pop_item!(self, always_ff, AlwaysFf, context);
30984        let always_ff_declaration_built = AlwaysFfDeclaration {
30985            always_ff: Box::new(always_ff),
30986            always_ff_declaration_opt,
30987            statement_block: Box::new(statement_block),
30988        };
30989        // Calling user action here
30990        self.user_grammar
30991            .always_ff_declaration(&always_ff_declaration_built)?;
30992        self.push(
30993            ASTType::AlwaysFfDeclaration(always_ff_declaration_built),
30994            context,
30995        );
30996        Ok(())
30997    }
30998
30999    /// Semantic action for production 743:
31000    ///
31001    /// `AlwaysFfDeclarationOpt /* Option<T>::Some */: AlwaysFfEventList;`
31002    ///
31003    #[parol_runtime::function_name::named]
31004    fn always_ff_declaration_opt_0(
31005        &mut self,
31006        _always_ff_event_list: &ParseTreeType<'t>,
31007    ) -> Result<()> {
31008        let context = function_name!();
31009        trace!("{}", self.trace_item_stack(context));
31010        let always_ff_event_list =
31011            pop_item!(self, always_ff_event_list, AlwaysFfEventList, context);
31012        let always_ff_declaration_opt_0_built = AlwaysFfDeclarationOpt {
31013            always_ff_event_list: Box::new(always_ff_event_list),
31014        };
31015        self.push(
31016            ASTType::AlwaysFfDeclarationOpt(Some(always_ff_declaration_opt_0_built)),
31017            context,
31018        );
31019        Ok(())
31020    }
31021
31022    /// Semantic action for production 744:
31023    ///
31024    /// `AlwaysFfDeclarationOpt /* Option<T>::None */: ;`
31025    ///
31026    #[parol_runtime::function_name::named]
31027    fn always_ff_declaration_opt_1(&mut self) -> Result<()> {
31028        let context = function_name!();
31029        trace!("{}", self.trace_item_stack(context));
31030        self.push(ASTType::AlwaysFfDeclarationOpt(None), context);
31031        Ok(())
31032    }
31033
31034    /// Semantic action for production 745:
31035    ///
31036    /// `AlwaysFfEventList: LParen AlwaysFfClock AlwaysFfEventListOpt /* Option */ RParen;`
31037    ///
31038    #[parol_runtime::function_name::named]
31039    fn always_ff_event_list(
31040        &mut self,
31041        _l_paren: &ParseTreeType<'t>,
31042        _always_ff_clock: &ParseTreeType<'t>,
31043        _always_ff_event_list_opt: &ParseTreeType<'t>,
31044        _r_paren: &ParseTreeType<'t>,
31045    ) -> Result<()> {
31046        let context = function_name!();
31047        trace!("{}", self.trace_item_stack(context));
31048        let r_paren = pop_item!(self, r_paren, RParen, context);
31049        let always_ff_event_list_opt = pop_item!(
31050            self,
31051            always_ff_event_list_opt,
31052            AlwaysFfEventListOpt,
31053            context
31054        );
31055        let always_ff_clock = pop_item!(self, always_ff_clock, AlwaysFfClock, context);
31056        let l_paren = pop_item!(self, l_paren, LParen, context);
31057        let always_ff_event_list_built = AlwaysFfEventList {
31058            l_paren: Box::new(l_paren),
31059            always_ff_clock: Box::new(always_ff_clock),
31060            always_ff_event_list_opt,
31061            r_paren: Box::new(r_paren),
31062        };
31063        // Calling user action here
31064        self.user_grammar
31065            .always_ff_event_list(&always_ff_event_list_built)?;
31066        self.push(
31067            ASTType::AlwaysFfEventList(always_ff_event_list_built),
31068            context,
31069        );
31070        Ok(())
31071    }
31072
31073    /// Semantic action for production 746:
31074    ///
31075    /// `AlwaysFfEventListOpt /* Option<T>::Some */: Comma AlwaysFfReset;`
31076    ///
31077    #[parol_runtime::function_name::named]
31078    fn always_ff_event_list_opt_0(
31079        &mut self,
31080        _comma: &ParseTreeType<'t>,
31081        _always_ff_reset: &ParseTreeType<'t>,
31082    ) -> Result<()> {
31083        let context = function_name!();
31084        trace!("{}", self.trace_item_stack(context));
31085        let always_ff_reset = pop_item!(self, always_ff_reset, AlwaysFfReset, context);
31086        let comma = pop_item!(self, comma, Comma, context);
31087        let always_ff_event_list_opt_0_built = AlwaysFfEventListOpt {
31088            comma: Box::new(comma),
31089            always_ff_reset: Box::new(always_ff_reset),
31090        };
31091        self.push(
31092            ASTType::AlwaysFfEventListOpt(Some(always_ff_event_list_opt_0_built)),
31093            context,
31094        );
31095        Ok(())
31096    }
31097
31098    /// Semantic action for production 747:
31099    ///
31100    /// `AlwaysFfEventListOpt /* Option<T>::None */: ;`
31101    ///
31102    #[parol_runtime::function_name::named]
31103    fn always_ff_event_list_opt_1(&mut self) -> Result<()> {
31104        let context = function_name!();
31105        trace!("{}", self.trace_item_stack(context));
31106        self.push(ASTType::AlwaysFfEventListOpt(None), context);
31107        Ok(())
31108    }
31109
31110    /// Semantic action for production 748:
31111    ///
31112    /// `AlwaysFfClock: HierarchicalIdentifier;`
31113    ///
31114    #[parol_runtime::function_name::named]
31115    fn always_ff_clock(&mut self, _hierarchical_identifier: &ParseTreeType<'t>) -> Result<()> {
31116        let context = function_name!();
31117        trace!("{}", self.trace_item_stack(context));
31118        let hierarchical_identifier = pop_item!(
31119            self,
31120            hierarchical_identifier,
31121            HierarchicalIdentifier,
31122            context
31123        );
31124        let always_ff_clock_built = AlwaysFfClock {
31125            hierarchical_identifier: Box::new(hierarchical_identifier),
31126        };
31127        // Calling user action here
31128        self.user_grammar.always_ff_clock(&always_ff_clock_built)?;
31129        self.push(ASTType::AlwaysFfClock(always_ff_clock_built), context);
31130        Ok(())
31131    }
31132
31133    /// Semantic action for production 749:
31134    ///
31135    /// `AlwaysFfReset: HierarchicalIdentifier;`
31136    ///
31137    #[parol_runtime::function_name::named]
31138    fn always_ff_reset(&mut self, _hierarchical_identifier: &ParseTreeType<'t>) -> Result<()> {
31139        let context = function_name!();
31140        trace!("{}", self.trace_item_stack(context));
31141        let hierarchical_identifier = pop_item!(
31142            self,
31143            hierarchical_identifier,
31144            HierarchicalIdentifier,
31145            context
31146        );
31147        let always_ff_reset_built = AlwaysFfReset {
31148            hierarchical_identifier: Box::new(hierarchical_identifier),
31149        };
31150        // Calling user action here
31151        self.user_grammar.always_ff_reset(&always_ff_reset_built)?;
31152        self.push(ASTType::AlwaysFfReset(always_ff_reset_built), context);
31153        Ok(())
31154    }
31155
31156    /// Semantic action for production 750:
31157    ///
31158    /// `AlwaysCombDeclaration: AlwaysComb StatementBlock;`
31159    ///
31160    #[parol_runtime::function_name::named]
31161    fn always_comb_declaration(
31162        &mut self,
31163        _always_comb: &ParseTreeType<'t>,
31164        _statement_block: &ParseTreeType<'t>,
31165    ) -> Result<()> {
31166        let context = function_name!();
31167        trace!("{}", self.trace_item_stack(context));
31168        let statement_block = pop_item!(self, statement_block, StatementBlock, context);
31169        let always_comb = pop_item!(self, always_comb, AlwaysComb, context);
31170        let always_comb_declaration_built = AlwaysCombDeclaration {
31171            always_comb: Box::new(always_comb),
31172            statement_block: Box::new(statement_block),
31173        };
31174        // Calling user action here
31175        self.user_grammar
31176            .always_comb_declaration(&always_comb_declaration_built)?;
31177        self.push(
31178            ASTType::AlwaysCombDeclaration(always_comb_declaration_built),
31179            context,
31180        );
31181        Ok(())
31182    }
31183
31184    /// Semantic action for production 751:
31185    ///
31186    /// `AssignDeclaration: Assign AssignDestination Equ Expression Semicolon;`
31187    ///
31188    #[parol_runtime::function_name::named]
31189    fn assign_declaration(
31190        &mut self,
31191        _assign: &ParseTreeType<'t>,
31192        _assign_destination: &ParseTreeType<'t>,
31193        _equ: &ParseTreeType<'t>,
31194        _expression: &ParseTreeType<'t>,
31195        _semicolon: &ParseTreeType<'t>,
31196    ) -> Result<()> {
31197        let context = function_name!();
31198        trace!("{}", self.trace_item_stack(context));
31199        let semicolon = pop_item!(self, semicolon, Semicolon, context);
31200        let expression = pop_item!(self, expression, Expression, context);
31201        let equ = pop_item!(self, equ, Equ, context);
31202        let assign_destination = pop_item!(self, assign_destination, AssignDestination, context);
31203        let assign = pop_item!(self, assign, Assign, context);
31204        let assign_declaration_built = AssignDeclaration {
31205            assign: Box::new(assign),
31206            assign_destination: Box::new(assign_destination),
31207            equ: Box::new(equ),
31208            expression: Box::new(expression),
31209            semicolon: Box::new(semicolon),
31210        };
31211        // Calling user action here
31212        self.user_grammar
31213            .assign_declaration(&assign_declaration_built)?;
31214        self.push(
31215            ASTType::AssignDeclaration(assign_declaration_built),
31216            context,
31217        );
31218        Ok(())
31219    }
31220
31221    /// Semantic action for production 752:
31222    ///
31223    /// `AssignDestination: HierarchicalIdentifier;`
31224    ///
31225    #[parol_runtime::function_name::named]
31226    fn assign_destination_0(&mut self, _hierarchical_identifier: &ParseTreeType<'t>) -> Result<()> {
31227        let context = function_name!();
31228        trace!("{}", self.trace_item_stack(context));
31229        let hierarchical_identifier = pop_item!(
31230            self,
31231            hierarchical_identifier,
31232            HierarchicalIdentifier,
31233            context
31234        );
31235        let assign_destination_0_built = AssignDestinationHierarchicalIdentifier {
31236            hierarchical_identifier: Box::new(hierarchical_identifier),
31237        };
31238        let assign_destination_0_built =
31239            AssignDestination::HierarchicalIdentifier(assign_destination_0_built);
31240        // Calling user action here
31241        self.user_grammar
31242            .assign_destination(&assign_destination_0_built)?;
31243        self.push(
31244            ASTType::AssignDestination(assign_destination_0_built),
31245            context,
31246        );
31247        Ok(())
31248    }
31249
31250    /// Semantic action for production 753:
31251    ///
31252    /// `AssignDestination: LBrace AssignConcatenationList RBrace;`
31253    ///
31254    #[parol_runtime::function_name::named]
31255    fn assign_destination_1(
31256        &mut self,
31257        _l_brace: &ParseTreeType<'t>,
31258        _assign_concatenation_list: &ParseTreeType<'t>,
31259        _r_brace: &ParseTreeType<'t>,
31260    ) -> Result<()> {
31261        let context = function_name!();
31262        trace!("{}", self.trace_item_stack(context));
31263        let r_brace = pop_item!(self, r_brace, RBrace, context);
31264        let assign_concatenation_list = pop_item!(
31265            self,
31266            assign_concatenation_list,
31267            AssignConcatenationList,
31268            context
31269        );
31270        let l_brace = pop_item!(self, l_brace, LBrace, context);
31271        let assign_destination_1_built = AssignDestinationLBraceAssignConcatenationListRBrace {
31272            l_brace: Box::new(l_brace),
31273            assign_concatenation_list: Box::new(assign_concatenation_list),
31274            r_brace: Box::new(r_brace),
31275        };
31276        let assign_destination_1_built =
31277            AssignDestination::LBraceAssignConcatenationListRBrace(assign_destination_1_built);
31278        // Calling user action here
31279        self.user_grammar
31280            .assign_destination(&assign_destination_1_built)?;
31281        self.push(
31282            ASTType::AssignDestination(assign_destination_1_built),
31283            context,
31284        );
31285        Ok(())
31286    }
31287
31288    /// Semantic action for production 754:
31289    ///
31290    /// `AssignConcatenationList: AssignConcatenationItem AssignConcatenationListList /* Vec */ AssignConcatenationListOpt /* Option */;`
31291    ///
31292    #[parol_runtime::function_name::named]
31293    fn assign_concatenation_list(
31294        &mut self,
31295        _assign_concatenation_item: &ParseTreeType<'t>,
31296        _assign_concatenation_list_list: &ParseTreeType<'t>,
31297        _assign_concatenation_list_opt: &ParseTreeType<'t>,
31298    ) -> Result<()> {
31299        let context = function_name!();
31300        trace!("{}", self.trace_item_stack(context));
31301        let assign_concatenation_list_opt = pop_item!(
31302            self,
31303            assign_concatenation_list_opt,
31304            AssignConcatenationListOpt,
31305            context
31306        );
31307        let assign_concatenation_list_list = pop_and_reverse_item!(
31308            self,
31309            assign_concatenation_list_list,
31310            AssignConcatenationListList,
31311            context
31312        );
31313        let assign_concatenation_item = pop_item!(
31314            self,
31315            assign_concatenation_item,
31316            AssignConcatenationItem,
31317            context
31318        );
31319        let assign_concatenation_list_built = AssignConcatenationList {
31320            assign_concatenation_item: Box::new(assign_concatenation_item),
31321            assign_concatenation_list_list,
31322            assign_concatenation_list_opt,
31323        };
31324        // Calling user action here
31325        self.user_grammar
31326            .assign_concatenation_list(&assign_concatenation_list_built)?;
31327        self.push(
31328            ASTType::AssignConcatenationList(assign_concatenation_list_built),
31329            context,
31330        );
31331        Ok(())
31332    }
31333
31334    /// Semantic action for production 755:
31335    ///
31336    /// `AssignConcatenationListList /* Vec<T>::Push */: Comma AssignConcatenationItem AssignConcatenationListList;`
31337    ///
31338    #[parol_runtime::function_name::named]
31339    fn assign_concatenation_list_list_0(
31340        &mut self,
31341        _comma: &ParseTreeType<'t>,
31342        _assign_concatenation_item: &ParseTreeType<'t>,
31343        _assign_concatenation_list_list: &ParseTreeType<'t>,
31344    ) -> Result<()> {
31345        let context = function_name!();
31346        trace!("{}", self.trace_item_stack(context));
31347        let mut assign_concatenation_list_list = pop_item!(
31348            self,
31349            assign_concatenation_list_list,
31350            AssignConcatenationListList,
31351            context
31352        );
31353        let assign_concatenation_item = pop_item!(
31354            self,
31355            assign_concatenation_item,
31356            AssignConcatenationItem,
31357            context
31358        );
31359        let comma = pop_item!(self, comma, Comma, context);
31360        let assign_concatenation_list_list_0_built = AssignConcatenationListList {
31361            assign_concatenation_item: Box::new(assign_concatenation_item),
31362            comma: Box::new(comma),
31363        };
31364        // Add an element to the vector
31365        assign_concatenation_list_list.push(assign_concatenation_list_list_0_built);
31366        self.push(
31367            ASTType::AssignConcatenationListList(assign_concatenation_list_list),
31368            context,
31369        );
31370        Ok(())
31371    }
31372
31373    /// Semantic action for production 756:
31374    ///
31375    /// `AssignConcatenationListList /* Vec<T>::New */: ;`
31376    ///
31377    #[parol_runtime::function_name::named]
31378    fn assign_concatenation_list_list_1(&mut self) -> Result<()> {
31379        let context = function_name!();
31380        trace!("{}", self.trace_item_stack(context));
31381        let assign_concatenation_list_list_1_built = Vec::new();
31382        self.push(
31383            ASTType::AssignConcatenationListList(assign_concatenation_list_list_1_built),
31384            context,
31385        );
31386        Ok(())
31387    }
31388
31389    /// Semantic action for production 757:
31390    ///
31391    /// `AssignConcatenationListOpt /* Option<T>::Some */: Comma;`
31392    ///
31393    #[parol_runtime::function_name::named]
31394    fn assign_concatenation_list_opt_0(&mut self, _comma: &ParseTreeType<'t>) -> Result<()> {
31395        let context = function_name!();
31396        trace!("{}", self.trace_item_stack(context));
31397        let comma = pop_item!(self, comma, Comma, context);
31398        let assign_concatenation_list_opt_0_built = AssignConcatenationListOpt {
31399            comma: Box::new(comma),
31400        };
31401        self.push(
31402            ASTType::AssignConcatenationListOpt(Some(assign_concatenation_list_opt_0_built)),
31403            context,
31404        );
31405        Ok(())
31406    }
31407
31408    /// Semantic action for production 758:
31409    ///
31410    /// `AssignConcatenationListOpt /* Option<T>::None */: ;`
31411    ///
31412    #[parol_runtime::function_name::named]
31413    fn assign_concatenation_list_opt_1(&mut self) -> Result<()> {
31414        let context = function_name!();
31415        trace!("{}", self.trace_item_stack(context));
31416        self.push(ASTType::AssignConcatenationListOpt(None), context);
31417        Ok(())
31418    }
31419
31420    /// Semantic action for production 759:
31421    ///
31422    /// `AssignConcatenationItem: HierarchicalIdentifier;`
31423    ///
31424    #[parol_runtime::function_name::named]
31425    fn assign_concatenation_item(
31426        &mut self,
31427        _hierarchical_identifier: &ParseTreeType<'t>,
31428    ) -> Result<()> {
31429        let context = function_name!();
31430        trace!("{}", self.trace_item_stack(context));
31431        let hierarchical_identifier = pop_item!(
31432            self,
31433            hierarchical_identifier,
31434            HierarchicalIdentifier,
31435            context
31436        );
31437        let assign_concatenation_item_built = AssignConcatenationItem {
31438            hierarchical_identifier: Box::new(hierarchical_identifier),
31439        };
31440        // Calling user action here
31441        self.user_grammar
31442            .assign_concatenation_item(&assign_concatenation_item_built)?;
31443        self.push(
31444            ASTType::AssignConcatenationItem(assign_concatenation_item_built),
31445            context,
31446        );
31447        Ok(())
31448    }
31449
31450    /// Semantic action for production 760:
31451    ///
31452    /// `ConnectDeclaration: Connect HierarchicalIdentifier DiamondOperator Expression Semicolon;`
31453    ///
31454    #[parol_runtime::function_name::named]
31455    fn connect_declaration(
31456        &mut self,
31457        _connect: &ParseTreeType<'t>,
31458        _hierarchical_identifier: &ParseTreeType<'t>,
31459        _diamond_operator: &ParseTreeType<'t>,
31460        _expression: &ParseTreeType<'t>,
31461        _semicolon: &ParseTreeType<'t>,
31462    ) -> Result<()> {
31463        let context = function_name!();
31464        trace!("{}", self.trace_item_stack(context));
31465        let semicolon = pop_item!(self, semicolon, Semicolon, context);
31466        let expression = pop_item!(self, expression, Expression, context);
31467        let diamond_operator = pop_item!(self, diamond_operator, DiamondOperator, context);
31468        let hierarchical_identifier = pop_item!(
31469            self,
31470            hierarchical_identifier,
31471            HierarchicalIdentifier,
31472            context
31473        );
31474        let connect = pop_item!(self, connect, Connect, context);
31475        let connect_declaration_built = ConnectDeclaration {
31476            connect: Box::new(connect),
31477            hierarchical_identifier: Box::new(hierarchical_identifier),
31478            diamond_operator: Box::new(diamond_operator),
31479            expression: Box::new(expression),
31480            semicolon: Box::new(semicolon),
31481        };
31482        // Calling user action here
31483        self.user_grammar
31484            .connect_declaration(&connect_declaration_built)?;
31485        self.push(
31486            ASTType::ConnectDeclaration(connect_declaration_built),
31487            context,
31488        );
31489        Ok(())
31490    }
31491
31492    /// Semantic action for production 761:
31493    ///
31494    /// `ModportDeclaration: Modport Identifier LBrace ModportDeclarationOpt /* Option */ ModportDeclarationOpt0 /* Option */ RBrace;`
31495    ///
31496    #[parol_runtime::function_name::named]
31497    fn modport_declaration(
31498        &mut self,
31499        _modport: &ParseTreeType<'t>,
31500        _identifier: &ParseTreeType<'t>,
31501        _l_brace: &ParseTreeType<'t>,
31502        _modport_declaration_opt: &ParseTreeType<'t>,
31503        _modport_declaration_opt0: &ParseTreeType<'t>,
31504        _r_brace: &ParseTreeType<'t>,
31505    ) -> Result<()> {
31506        let context = function_name!();
31507        trace!("{}", self.trace_item_stack(context));
31508        let r_brace = pop_item!(self, r_brace, RBrace, context);
31509        let modport_declaration_opt0 = pop_item!(
31510            self,
31511            modport_declaration_opt0,
31512            ModportDeclarationOpt0,
31513            context
31514        );
31515        let modport_declaration_opt = pop_item!(
31516            self,
31517            modport_declaration_opt,
31518            ModportDeclarationOpt,
31519            context
31520        );
31521        let l_brace = pop_item!(self, l_brace, LBrace, context);
31522        let identifier = pop_item!(self, identifier, Identifier, context);
31523        let modport = pop_item!(self, modport, Modport, context);
31524        let modport_declaration_built = ModportDeclaration {
31525            modport: Box::new(modport),
31526            identifier: Box::new(identifier),
31527            l_brace: Box::new(l_brace),
31528            modport_declaration_opt,
31529            modport_declaration_opt0,
31530            r_brace: Box::new(r_brace),
31531        };
31532        // Calling user action here
31533        self.user_grammar
31534            .modport_declaration(&modport_declaration_built)?;
31535        self.push(
31536            ASTType::ModportDeclaration(modport_declaration_built),
31537            context,
31538        );
31539        Ok(())
31540    }
31541
31542    /// Semantic action for production 762:
31543    ///
31544    /// `ModportDeclarationOpt0 /* Option<T>::Some */: DotDot ModportDefault;`
31545    ///
31546    #[parol_runtime::function_name::named]
31547    fn modport_declaration_opt0_0(
31548        &mut self,
31549        _dot_dot: &ParseTreeType<'t>,
31550        _modport_default: &ParseTreeType<'t>,
31551    ) -> Result<()> {
31552        let context = function_name!();
31553        trace!("{}", self.trace_item_stack(context));
31554        let modport_default = pop_item!(self, modport_default, ModportDefault, context);
31555        let dot_dot = pop_item!(self, dot_dot, DotDot, context);
31556        let modport_declaration_opt0_0_built = ModportDeclarationOpt0 {
31557            dot_dot: Box::new(dot_dot),
31558            modport_default: Box::new(modport_default),
31559        };
31560        self.push(
31561            ASTType::ModportDeclarationOpt0(Some(modport_declaration_opt0_0_built)),
31562            context,
31563        );
31564        Ok(())
31565    }
31566
31567    /// Semantic action for production 763:
31568    ///
31569    /// `ModportDeclarationOpt0 /* Option<T>::None */: ;`
31570    ///
31571    #[parol_runtime::function_name::named]
31572    fn modport_declaration_opt0_1(&mut self) -> Result<()> {
31573        let context = function_name!();
31574        trace!("{}", self.trace_item_stack(context));
31575        self.push(ASTType::ModportDeclarationOpt0(None), context);
31576        Ok(())
31577    }
31578
31579    /// Semantic action for production 764:
31580    ///
31581    /// `ModportDeclarationOpt /* Option<T>::Some */: ModportList;`
31582    ///
31583    #[parol_runtime::function_name::named]
31584    fn modport_declaration_opt_0(&mut self, _modport_list: &ParseTreeType<'t>) -> Result<()> {
31585        let context = function_name!();
31586        trace!("{}", self.trace_item_stack(context));
31587        let modport_list = pop_item!(self, modport_list, ModportList, context);
31588        let modport_declaration_opt_0_built = ModportDeclarationOpt {
31589            modport_list: Box::new(modport_list),
31590        };
31591        self.push(
31592            ASTType::ModportDeclarationOpt(Some(modport_declaration_opt_0_built)),
31593            context,
31594        );
31595        Ok(())
31596    }
31597
31598    /// Semantic action for production 765:
31599    ///
31600    /// `ModportDeclarationOpt /* Option<T>::None */: ;`
31601    ///
31602    #[parol_runtime::function_name::named]
31603    fn modport_declaration_opt_1(&mut self) -> Result<()> {
31604        let context = function_name!();
31605        trace!("{}", self.trace_item_stack(context));
31606        self.push(ASTType::ModportDeclarationOpt(None), context);
31607        Ok(())
31608    }
31609
31610    /// Semantic action for production 766:
31611    ///
31612    /// `ModportList: ModportGroup ModportListList /* Vec */ ModportListOpt /* Option */;`
31613    ///
31614    #[parol_runtime::function_name::named]
31615    fn modport_list(
31616        &mut self,
31617        _modport_group: &ParseTreeType<'t>,
31618        _modport_list_list: &ParseTreeType<'t>,
31619        _modport_list_opt: &ParseTreeType<'t>,
31620    ) -> Result<()> {
31621        let context = function_name!();
31622        trace!("{}", self.trace_item_stack(context));
31623        let modport_list_opt = pop_item!(self, modport_list_opt, ModportListOpt, context);
31624        let modport_list_list =
31625            pop_and_reverse_item!(self, modport_list_list, ModportListList, context);
31626        let modport_group = pop_item!(self, modport_group, ModportGroup, context);
31627        let modport_list_built = ModportList {
31628            modport_group: Box::new(modport_group),
31629            modport_list_list,
31630            modport_list_opt,
31631        };
31632        // Calling user action here
31633        self.user_grammar.modport_list(&modport_list_built)?;
31634        self.push(ASTType::ModportList(modport_list_built), context);
31635        Ok(())
31636    }
31637
31638    /// Semantic action for production 767:
31639    ///
31640    /// `ModportListList /* Vec<T>::Push */: Comma ModportGroup ModportListList;`
31641    ///
31642    #[parol_runtime::function_name::named]
31643    fn modport_list_list_0(
31644        &mut self,
31645        _comma: &ParseTreeType<'t>,
31646        _modport_group: &ParseTreeType<'t>,
31647        _modport_list_list: &ParseTreeType<'t>,
31648    ) -> Result<()> {
31649        let context = function_name!();
31650        trace!("{}", self.trace_item_stack(context));
31651        let mut modport_list_list = pop_item!(self, modport_list_list, ModportListList, context);
31652        let modport_group = pop_item!(self, modport_group, ModportGroup, context);
31653        let comma = pop_item!(self, comma, Comma, context);
31654        let modport_list_list_0_built = ModportListList {
31655            modport_group: Box::new(modport_group),
31656            comma: Box::new(comma),
31657        };
31658        // Add an element to the vector
31659        modport_list_list.push(modport_list_list_0_built);
31660        self.push(ASTType::ModportListList(modport_list_list), context);
31661        Ok(())
31662    }
31663
31664    /// Semantic action for production 768:
31665    ///
31666    /// `ModportListList /* Vec<T>::New */: ;`
31667    ///
31668    #[parol_runtime::function_name::named]
31669    fn modport_list_list_1(&mut self) -> Result<()> {
31670        let context = function_name!();
31671        trace!("{}", self.trace_item_stack(context));
31672        let modport_list_list_1_built = Vec::new();
31673        self.push(ASTType::ModportListList(modport_list_list_1_built), context);
31674        Ok(())
31675    }
31676
31677    /// Semantic action for production 769:
31678    ///
31679    /// `ModportListOpt /* Option<T>::Some */: Comma;`
31680    ///
31681    #[parol_runtime::function_name::named]
31682    fn modport_list_opt_0(&mut self, _comma: &ParseTreeType<'t>) -> Result<()> {
31683        let context = function_name!();
31684        trace!("{}", self.trace_item_stack(context));
31685        let comma = pop_item!(self, comma, Comma, context);
31686        let modport_list_opt_0_built = ModportListOpt {
31687            comma: Box::new(comma),
31688        };
31689        self.push(
31690            ASTType::ModportListOpt(Some(modport_list_opt_0_built)),
31691            context,
31692        );
31693        Ok(())
31694    }
31695
31696    /// Semantic action for production 770:
31697    ///
31698    /// `ModportListOpt /* Option<T>::None */: ;`
31699    ///
31700    #[parol_runtime::function_name::named]
31701    fn modport_list_opt_1(&mut self) -> Result<()> {
31702        let context = function_name!();
31703        trace!("{}", self.trace_item_stack(context));
31704        self.push(ASTType::ModportListOpt(None), context);
31705        Ok(())
31706    }
31707
31708    /// Semantic action for production 771:
31709    ///
31710    /// `ModportGroup: ModportGroupList /* Vec */ ModportGroupGroup;`
31711    ///
31712    #[parol_runtime::function_name::named]
31713    fn modport_group(
31714        &mut self,
31715        _modport_group_list: &ParseTreeType<'t>,
31716        _modport_group_group: &ParseTreeType<'t>,
31717    ) -> Result<()> {
31718        let context = function_name!();
31719        trace!("{}", self.trace_item_stack(context));
31720        let modport_group_group = pop_item!(self, modport_group_group, ModportGroupGroup, context);
31721        let modport_group_list =
31722            pop_and_reverse_item!(self, modport_group_list, ModportGroupList, context);
31723        let modport_group_built = ModportGroup {
31724            modport_group_list,
31725            modport_group_group: Box::new(modport_group_group),
31726        };
31727        // Calling user action here
31728        self.user_grammar.modport_group(&modport_group_built)?;
31729        self.push(ASTType::ModportGroup(modport_group_built), context);
31730        Ok(())
31731    }
31732
31733    /// Semantic action for production 772:
31734    ///
31735    /// `ModportGroupGroup: LBrace ModportList RBrace;`
31736    ///
31737    #[parol_runtime::function_name::named]
31738    fn modport_group_group_0(
31739        &mut self,
31740        _l_brace: &ParseTreeType<'t>,
31741        _modport_list: &ParseTreeType<'t>,
31742        _r_brace: &ParseTreeType<'t>,
31743    ) -> Result<()> {
31744        let context = function_name!();
31745        trace!("{}", self.trace_item_stack(context));
31746        let r_brace = pop_item!(self, r_brace, RBrace, context);
31747        let modport_list = pop_item!(self, modport_list, ModportList, context);
31748        let l_brace = pop_item!(self, l_brace, LBrace, context);
31749        let modport_group_group_0_built = ModportGroupGroupLBraceModportListRBrace {
31750            l_brace: Box::new(l_brace),
31751            modport_list: Box::new(modport_list),
31752            r_brace: Box::new(r_brace),
31753        };
31754        let modport_group_group_0_built =
31755            ModportGroupGroup::LBraceModportListRBrace(modport_group_group_0_built);
31756        self.push(
31757            ASTType::ModportGroupGroup(modport_group_group_0_built),
31758            context,
31759        );
31760        Ok(())
31761    }
31762
31763    /// Semantic action for production 773:
31764    ///
31765    /// `ModportGroupGroup: ModportItem;`
31766    ///
31767    #[parol_runtime::function_name::named]
31768    fn modport_group_group_1(&mut self, _modport_item: &ParseTreeType<'t>) -> Result<()> {
31769        let context = function_name!();
31770        trace!("{}", self.trace_item_stack(context));
31771        let modport_item = pop_item!(self, modport_item, ModportItem, context);
31772        let modport_group_group_1_built = ModportGroupGroupModportItem {
31773            modport_item: Box::new(modport_item),
31774        };
31775        let modport_group_group_1_built =
31776            ModportGroupGroup::ModportItem(modport_group_group_1_built);
31777        self.push(
31778            ASTType::ModportGroupGroup(modport_group_group_1_built),
31779            context,
31780        );
31781        Ok(())
31782    }
31783
31784    /// Semantic action for production 774:
31785    ///
31786    /// `ModportGroupList /* Vec<T>::Push */: Attribute ModportGroupList;`
31787    ///
31788    #[parol_runtime::function_name::named]
31789    fn modport_group_list_0(
31790        &mut self,
31791        _attribute: &ParseTreeType<'t>,
31792        _modport_group_list: &ParseTreeType<'t>,
31793    ) -> Result<()> {
31794        let context = function_name!();
31795        trace!("{}", self.trace_item_stack(context));
31796        let mut modport_group_list = pop_item!(self, modport_group_list, ModportGroupList, context);
31797        let attribute = pop_item!(self, attribute, Attribute, context);
31798        let modport_group_list_0_built = ModportGroupList {
31799            attribute: Box::new(attribute),
31800        };
31801        // Add an element to the vector
31802        modport_group_list.push(modport_group_list_0_built);
31803        self.push(ASTType::ModportGroupList(modport_group_list), context);
31804        Ok(())
31805    }
31806
31807    /// Semantic action for production 775:
31808    ///
31809    /// `ModportGroupList /* Vec<T>::New */: ;`
31810    ///
31811    #[parol_runtime::function_name::named]
31812    fn modport_group_list_1(&mut self) -> Result<()> {
31813        let context = function_name!();
31814        trace!("{}", self.trace_item_stack(context));
31815        let modport_group_list_1_built = Vec::new();
31816        self.push(
31817            ASTType::ModportGroupList(modport_group_list_1_built),
31818            context,
31819        );
31820        Ok(())
31821    }
31822
31823    /// Semantic action for production 776:
31824    ///
31825    /// `ModportItem: Identifier Colon Direction;`
31826    ///
31827    #[parol_runtime::function_name::named]
31828    fn modport_item(
31829        &mut self,
31830        _identifier: &ParseTreeType<'t>,
31831        _colon: &ParseTreeType<'t>,
31832        _direction: &ParseTreeType<'t>,
31833    ) -> Result<()> {
31834        let context = function_name!();
31835        trace!("{}", self.trace_item_stack(context));
31836        let direction = pop_item!(self, direction, Direction, context);
31837        let colon = pop_item!(self, colon, Colon, context);
31838        let identifier = pop_item!(self, identifier, Identifier, context);
31839        let modport_item_built = ModportItem {
31840            identifier: Box::new(identifier),
31841            colon: Box::new(colon),
31842            direction: Box::new(direction),
31843        };
31844        // Calling user action here
31845        self.user_grammar.modport_item(&modport_item_built)?;
31846        self.push(ASTType::ModportItem(modport_item_built), context);
31847        Ok(())
31848    }
31849
31850    /// Semantic action for production 777:
31851    ///
31852    /// `ModportDefault: Input;`
31853    ///
31854    #[parol_runtime::function_name::named]
31855    fn modport_default_0(&mut self, _input: &ParseTreeType<'t>) -> Result<()> {
31856        let context = function_name!();
31857        trace!("{}", self.trace_item_stack(context));
31858        let input = pop_item!(self, input, Input, context);
31859        let modport_default_0_built = ModportDefaultInput {
31860            input: Box::new(input),
31861        };
31862        let modport_default_0_built = ModportDefault::Input(modport_default_0_built);
31863        // Calling user action here
31864        self.user_grammar
31865            .modport_default(&modport_default_0_built)?;
31866        self.push(ASTType::ModportDefault(modport_default_0_built), context);
31867        Ok(())
31868    }
31869
31870    /// Semantic action for production 778:
31871    ///
31872    /// `ModportDefault: Output;`
31873    ///
31874    #[parol_runtime::function_name::named]
31875    fn modport_default_1(&mut self, _output: &ParseTreeType<'t>) -> Result<()> {
31876        let context = function_name!();
31877        trace!("{}", self.trace_item_stack(context));
31878        let output = pop_item!(self, output, Output, context);
31879        let modport_default_1_built = ModportDefaultOutput {
31880            output: Box::new(output),
31881        };
31882        let modport_default_1_built = ModportDefault::Output(modport_default_1_built);
31883        // Calling user action here
31884        self.user_grammar
31885            .modport_default(&modport_default_1_built)?;
31886        self.push(ASTType::ModportDefault(modport_default_1_built), context);
31887        Ok(())
31888    }
31889
31890    /// Semantic action for production 779:
31891    ///
31892    /// `ModportDefault: Same LParen ModportDefaultList RParen;`
31893    ///
31894    #[parol_runtime::function_name::named]
31895    fn modport_default_2(
31896        &mut self,
31897        _same: &ParseTreeType<'t>,
31898        _l_paren: &ParseTreeType<'t>,
31899        _modport_default_list: &ParseTreeType<'t>,
31900        _r_paren: &ParseTreeType<'t>,
31901    ) -> Result<()> {
31902        let context = function_name!();
31903        trace!("{}", self.trace_item_stack(context));
31904        let r_paren = pop_item!(self, r_paren, RParen, context);
31905        let modport_default_list =
31906            pop_item!(self, modport_default_list, ModportDefaultList, context);
31907        let l_paren = pop_item!(self, l_paren, LParen, context);
31908        let same = pop_item!(self, same, Same, context);
31909        let modport_default_2_built = ModportDefaultSameLParenModportDefaultListRParen {
31910            same: Box::new(same),
31911            l_paren: Box::new(l_paren),
31912            modport_default_list: Box::new(modport_default_list),
31913            r_paren: Box::new(r_paren),
31914        };
31915        let modport_default_2_built =
31916            ModportDefault::SameLParenModportDefaultListRParen(modport_default_2_built);
31917        // Calling user action here
31918        self.user_grammar
31919            .modport_default(&modport_default_2_built)?;
31920        self.push(ASTType::ModportDefault(modport_default_2_built), context);
31921        Ok(())
31922    }
31923
31924    /// Semantic action for production 780:
31925    ///
31926    /// `ModportDefault: Converse LParen ModportDefaultList RParen;`
31927    ///
31928    #[parol_runtime::function_name::named]
31929    fn modport_default_3(
31930        &mut self,
31931        _converse: &ParseTreeType<'t>,
31932        _l_paren: &ParseTreeType<'t>,
31933        _modport_default_list: &ParseTreeType<'t>,
31934        _r_paren: &ParseTreeType<'t>,
31935    ) -> Result<()> {
31936        let context = function_name!();
31937        trace!("{}", self.trace_item_stack(context));
31938        let r_paren = pop_item!(self, r_paren, RParen, context);
31939        let modport_default_list =
31940            pop_item!(self, modport_default_list, ModportDefaultList, context);
31941        let l_paren = pop_item!(self, l_paren, LParen, context);
31942        let converse = pop_item!(self, converse, Converse, context);
31943        let modport_default_3_built = ModportDefaultConverseLParenModportDefaultListRParen {
31944            converse: Box::new(converse),
31945            l_paren: Box::new(l_paren),
31946            modport_default_list: Box::new(modport_default_list),
31947            r_paren: Box::new(r_paren),
31948        };
31949        let modport_default_3_built =
31950            ModportDefault::ConverseLParenModportDefaultListRParen(modport_default_3_built);
31951        // Calling user action here
31952        self.user_grammar
31953            .modport_default(&modport_default_3_built)?;
31954        self.push(ASTType::ModportDefault(modport_default_3_built), context);
31955        Ok(())
31956    }
31957
31958    /// Semantic action for production 781:
31959    ///
31960    /// `ModportDefaultList: Identifier ModportDefaultListList /* Vec */ ModportDefaultListOpt /* Option */;`
31961    ///
31962    #[parol_runtime::function_name::named]
31963    fn modport_default_list(
31964        &mut self,
31965        _identifier: &ParseTreeType<'t>,
31966        _modport_default_list_list: &ParseTreeType<'t>,
31967        _modport_default_list_opt: &ParseTreeType<'t>,
31968    ) -> Result<()> {
31969        let context = function_name!();
31970        trace!("{}", self.trace_item_stack(context));
31971        let modport_default_list_opt = pop_item!(
31972            self,
31973            modport_default_list_opt,
31974            ModportDefaultListOpt,
31975            context
31976        );
31977        let modport_default_list_list = pop_and_reverse_item!(
31978            self,
31979            modport_default_list_list,
31980            ModportDefaultListList,
31981            context
31982        );
31983        let identifier = pop_item!(self, identifier, Identifier, context);
31984        let modport_default_list_built = ModportDefaultList {
31985            identifier: Box::new(identifier),
31986            modport_default_list_list,
31987            modport_default_list_opt,
31988        };
31989        // Calling user action here
31990        self.user_grammar
31991            .modport_default_list(&modport_default_list_built)?;
31992        self.push(
31993            ASTType::ModportDefaultList(modport_default_list_built),
31994            context,
31995        );
31996        Ok(())
31997    }
31998
31999    /// Semantic action for production 782:
32000    ///
32001    /// `ModportDefaultListList /* Vec<T>::Push */: Comma Identifier ModportDefaultListList;`
32002    ///
32003    #[parol_runtime::function_name::named]
32004    fn modport_default_list_list_0(
32005        &mut self,
32006        _comma: &ParseTreeType<'t>,
32007        _identifier: &ParseTreeType<'t>,
32008        _modport_default_list_list: &ParseTreeType<'t>,
32009    ) -> Result<()> {
32010        let context = function_name!();
32011        trace!("{}", self.trace_item_stack(context));
32012        let mut modport_default_list_list = pop_item!(
32013            self,
32014            modport_default_list_list,
32015            ModportDefaultListList,
32016            context
32017        );
32018        let identifier = pop_item!(self, identifier, Identifier, context);
32019        let comma = pop_item!(self, comma, Comma, context);
32020        let modport_default_list_list_0_built = ModportDefaultListList {
32021            identifier: Box::new(identifier),
32022            comma: Box::new(comma),
32023        };
32024        // Add an element to the vector
32025        modport_default_list_list.push(modport_default_list_list_0_built);
32026        self.push(
32027            ASTType::ModportDefaultListList(modport_default_list_list),
32028            context,
32029        );
32030        Ok(())
32031    }
32032
32033    /// Semantic action for production 783:
32034    ///
32035    /// `ModportDefaultListList /* Vec<T>::New */: ;`
32036    ///
32037    #[parol_runtime::function_name::named]
32038    fn modport_default_list_list_1(&mut self) -> Result<()> {
32039        let context = function_name!();
32040        trace!("{}", self.trace_item_stack(context));
32041        let modport_default_list_list_1_built = Vec::new();
32042        self.push(
32043            ASTType::ModportDefaultListList(modport_default_list_list_1_built),
32044            context,
32045        );
32046        Ok(())
32047    }
32048
32049    /// Semantic action for production 784:
32050    ///
32051    /// `ModportDefaultListOpt /* Option<T>::Some */: Comma;`
32052    ///
32053    #[parol_runtime::function_name::named]
32054    fn modport_default_list_opt_0(&mut self, _comma: &ParseTreeType<'t>) -> Result<()> {
32055        let context = function_name!();
32056        trace!("{}", self.trace_item_stack(context));
32057        let comma = pop_item!(self, comma, Comma, context);
32058        let modport_default_list_opt_0_built = ModportDefaultListOpt {
32059            comma: Box::new(comma),
32060        };
32061        self.push(
32062            ASTType::ModportDefaultListOpt(Some(modport_default_list_opt_0_built)),
32063            context,
32064        );
32065        Ok(())
32066    }
32067
32068    /// Semantic action for production 785:
32069    ///
32070    /// `ModportDefaultListOpt /* Option<T>::None */: ;`
32071    ///
32072    #[parol_runtime::function_name::named]
32073    fn modport_default_list_opt_1(&mut self) -> Result<()> {
32074        let context = function_name!();
32075        trace!("{}", self.trace_item_stack(context));
32076        self.push(ASTType::ModportDefaultListOpt(None), context);
32077        Ok(())
32078    }
32079
32080    /// Semantic action for production 786:
32081    ///
32082    /// `EnumDeclaration: Enum Identifier EnumDeclarationOpt /* Option */ LBrace EnumList RBrace;`
32083    ///
32084    #[parol_runtime::function_name::named]
32085    fn enum_declaration(
32086        &mut self,
32087        _enum: &ParseTreeType<'t>,
32088        _identifier: &ParseTreeType<'t>,
32089        _enum_declaration_opt: &ParseTreeType<'t>,
32090        _l_brace: &ParseTreeType<'t>,
32091        _enum_list: &ParseTreeType<'t>,
32092        _r_brace: &ParseTreeType<'t>,
32093    ) -> Result<()> {
32094        let context = function_name!();
32095        trace!("{}", self.trace_item_stack(context));
32096        let r_brace = pop_item!(self, r_brace, RBrace, context);
32097        let enum_list = pop_item!(self, enum_list, EnumList, context);
32098        let l_brace = pop_item!(self, l_brace, LBrace, context);
32099        let enum_declaration_opt =
32100            pop_item!(self, enum_declaration_opt, EnumDeclarationOpt, context);
32101        let identifier = pop_item!(self, identifier, Identifier, context);
32102        let r#enum = pop_item!(self, r#enum, Enum, context);
32103        let enum_declaration_built = EnumDeclaration {
32104            r#enum: Box::new(r#enum),
32105            identifier: Box::new(identifier),
32106            enum_declaration_opt,
32107            l_brace: Box::new(l_brace),
32108            enum_list: Box::new(enum_list),
32109            r_brace: Box::new(r_brace),
32110        };
32111        // Calling user action here
32112        self.user_grammar
32113            .enum_declaration(&enum_declaration_built)?;
32114        self.push(ASTType::EnumDeclaration(enum_declaration_built), context);
32115        Ok(())
32116    }
32117
32118    /// Semantic action for production 787:
32119    ///
32120    /// `EnumDeclarationOpt /* Option<T>::Some */: Colon ScalarType;`
32121    ///
32122    #[parol_runtime::function_name::named]
32123    fn enum_declaration_opt_0(
32124        &mut self,
32125        _colon: &ParseTreeType<'t>,
32126        _scalar_type: &ParseTreeType<'t>,
32127    ) -> Result<()> {
32128        let context = function_name!();
32129        trace!("{}", self.trace_item_stack(context));
32130        let scalar_type = pop_item!(self, scalar_type, ScalarType, context);
32131        let colon = pop_item!(self, colon, Colon, context);
32132        let enum_declaration_opt_0_built = EnumDeclarationOpt {
32133            colon: Box::new(colon),
32134            scalar_type: Box::new(scalar_type),
32135        };
32136        self.push(
32137            ASTType::EnumDeclarationOpt(Some(enum_declaration_opt_0_built)),
32138            context,
32139        );
32140        Ok(())
32141    }
32142
32143    /// Semantic action for production 788:
32144    ///
32145    /// `EnumDeclarationOpt /* Option<T>::None */: ;`
32146    ///
32147    #[parol_runtime::function_name::named]
32148    fn enum_declaration_opt_1(&mut self) -> Result<()> {
32149        let context = function_name!();
32150        trace!("{}", self.trace_item_stack(context));
32151        self.push(ASTType::EnumDeclarationOpt(None), context);
32152        Ok(())
32153    }
32154
32155    /// Semantic action for production 789:
32156    ///
32157    /// `EnumList: EnumGroup EnumListList /* Vec */ EnumListOpt /* Option */;`
32158    ///
32159    #[parol_runtime::function_name::named]
32160    fn enum_list(
32161        &mut self,
32162        _enum_group: &ParseTreeType<'t>,
32163        _enum_list_list: &ParseTreeType<'t>,
32164        _enum_list_opt: &ParseTreeType<'t>,
32165    ) -> Result<()> {
32166        let context = function_name!();
32167        trace!("{}", self.trace_item_stack(context));
32168        let enum_list_opt = pop_item!(self, enum_list_opt, EnumListOpt, context);
32169        let enum_list_list = pop_and_reverse_item!(self, enum_list_list, EnumListList, context);
32170        let enum_group = pop_item!(self, enum_group, EnumGroup, context);
32171        let enum_list_built = EnumList {
32172            enum_group: Box::new(enum_group),
32173            enum_list_list,
32174            enum_list_opt,
32175        };
32176        // Calling user action here
32177        self.user_grammar.enum_list(&enum_list_built)?;
32178        self.push(ASTType::EnumList(enum_list_built), context);
32179        Ok(())
32180    }
32181
32182    /// Semantic action for production 790:
32183    ///
32184    /// `EnumListList /* Vec<T>::Push */: Comma EnumGroup EnumListList;`
32185    ///
32186    #[parol_runtime::function_name::named]
32187    fn enum_list_list_0(
32188        &mut self,
32189        _comma: &ParseTreeType<'t>,
32190        _enum_group: &ParseTreeType<'t>,
32191        _enum_list_list: &ParseTreeType<'t>,
32192    ) -> Result<()> {
32193        let context = function_name!();
32194        trace!("{}", self.trace_item_stack(context));
32195        let mut enum_list_list = pop_item!(self, enum_list_list, EnumListList, context);
32196        let enum_group = pop_item!(self, enum_group, EnumGroup, context);
32197        let comma = pop_item!(self, comma, Comma, context);
32198        let enum_list_list_0_built = EnumListList {
32199            enum_group: Box::new(enum_group),
32200            comma: Box::new(comma),
32201        };
32202        // Add an element to the vector
32203        enum_list_list.push(enum_list_list_0_built);
32204        self.push(ASTType::EnumListList(enum_list_list), context);
32205        Ok(())
32206    }
32207
32208    /// Semantic action for production 791:
32209    ///
32210    /// `EnumListList /* Vec<T>::New */: ;`
32211    ///
32212    #[parol_runtime::function_name::named]
32213    fn enum_list_list_1(&mut self) -> Result<()> {
32214        let context = function_name!();
32215        trace!("{}", self.trace_item_stack(context));
32216        let enum_list_list_1_built = Vec::new();
32217        self.push(ASTType::EnumListList(enum_list_list_1_built), context);
32218        Ok(())
32219    }
32220
32221    /// Semantic action for production 792:
32222    ///
32223    /// `EnumListOpt /* Option<T>::Some */: Comma;`
32224    ///
32225    #[parol_runtime::function_name::named]
32226    fn enum_list_opt_0(&mut self, _comma: &ParseTreeType<'t>) -> Result<()> {
32227        let context = function_name!();
32228        trace!("{}", self.trace_item_stack(context));
32229        let comma = pop_item!(self, comma, Comma, context);
32230        let enum_list_opt_0_built = EnumListOpt {
32231            comma: Box::new(comma),
32232        };
32233        self.push(ASTType::EnumListOpt(Some(enum_list_opt_0_built)), context);
32234        Ok(())
32235    }
32236
32237    /// Semantic action for production 793:
32238    ///
32239    /// `EnumListOpt /* Option<T>::None */: ;`
32240    ///
32241    #[parol_runtime::function_name::named]
32242    fn enum_list_opt_1(&mut self) -> Result<()> {
32243        let context = function_name!();
32244        trace!("{}", self.trace_item_stack(context));
32245        self.push(ASTType::EnumListOpt(None), context);
32246        Ok(())
32247    }
32248
32249    /// Semantic action for production 794:
32250    ///
32251    /// `EnumGroup: EnumGroupList /* Vec */ EnumGroupGroup;`
32252    ///
32253    #[parol_runtime::function_name::named]
32254    fn enum_group(
32255        &mut self,
32256        _enum_group_list: &ParseTreeType<'t>,
32257        _enum_group_group: &ParseTreeType<'t>,
32258    ) -> Result<()> {
32259        let context = function_name!();
32260        trace!("{}", self.trace_item_stack(context));
32261        let enum_group_group = pop_item!(self, enum_group_group, EnumGroupGroup, context);
32262        let enum_group_list = pop_and_reverse_item!(self, enum_group_list, EnumGroupList, context);
32263        let enum_group_built = EnumGroup {
32264            enum_group_list,
32265            enum_group_group: Box::new(enum_group_group),
32266        };
32267        // Calling user action here
32268        self.user_grammar.enum_group(&enum_group_built)?;
32269        self.push(ASTType::EnumGroup(enum_group_built), context);
32270        Ok(())
32271    }
32272
32273    /// Semantic action for production 795:
32274    ///
32275    /// `EnumGroupGroup: LBrace EnumList RBrace;`
32276    ///
32277    #[parol_runtime::function_name::named]
32278    fn enum_group_group_0(
32279        &mut self,
32280        _l_brace: &ParseTreeType<'t>,
32281        _enum_list: &ParseTreeType<'t>,
32282        _r_brace: &ParseTreeType<'t>,
32283    ) -> Result<()> {
32284        let context = function_name!();
32285        trace!("{}", self.trace_item_stack(context));
32286        let r_brace = pop_item!(self, r_brace, RBrace, context);
32287        let enum_list = pop_item!(self, enum_list, EnumList, context);
32288        let l_brace = pop_item!(self, l_brace, LBrace, context);
32289        let enum_group_group_0_built = EnumGroupGroupLBraceEnumListRBrace {
32290            l_brace: Box::new(l_brace),
32291            enum_list: Box::new(enum_list),
32292            r_brace: Box::new(r_brace),
32293        };
32294        let enum_group_group_0_built =
32295            EnumGroupGroup::LBraceEnumListRBrace(enum_group_group_0_built);
32296        self.push(ASTType::EnumGroupGroup(enum_group_group_0_built), context);
32297        Ok(())
32298    }
32299
32300    /// Semantic action for production 796:
32301    ///
32302    /// `EnumGroupGroup: EnumItem;`
32303    ///
32304    #[parol_runtime::function_name::named]
32305    fn enum_group_group_1(&mut self, _enum_item: &ParseTreeType<'t>) -> Result<()> {
32306        let context = function_name!();
32307        trace!("{}", self.trace_item_stack(context));
32308        let enum_item = pop_item!(self, enum_item, EnumItem, context);
32309        let enum_group_group_1_built = EnumGroupGroupEnumItem {
32310            enum_item: Box::new(enum_item),
32311        };
32312        let enum_group_group_1_built = EnumGroupGroup::EnumItem(enum_group_group_1_built);
32313        self.push(ASTType::EnumGroupGroup(enum_group_group_1_built), context);
32314        Ok(())
32315    }
32316
32317    /// Semantic action for production 797:
32318    ///
32319    /// `EnumGroupList /* Vec<T>::Push */: Attribute EnumGroupList;`
32320    ///
32321    #[parol_runtime::function_name::named]
32322    fn enum_group_list_0(
32323        &mut self,
32324        _attribute: &ParseTreeType<'t>,
32325        _enum_group_list: &ParseTreeType<'t>,
32326    ) -> Result<()> {
32327        let context = function_name!();
32328        trace!("{}", self.trace_item_stack(context));
32329        let mut enum_group_list = pop_item!(self, enum_group_list, EnumGroupList, context);
32330        let attribute = pop_item!(self, attribute, Attribute, context);
32331        let enum_group_list_0_built = EnumGroupList {
32332            attribute: Box::new(attribute),
32333        };
32334        // Add an element to the vector
32335        enum_group_list.push(enum_group_list_0_built);
32336        self.push(ASTType::EnumGroupList(enum_group_list), context);
32337        Ok(())
32338    }
32339
32340    /// Semantic action for production 798:
32341    ///
32342    /// `EnumGroupList /* Vec<T>::New */: ;`
32343    ///
32344    #[parol_runtime::function_name::named]
32345    fn enum_group_list_1(&mut self) -> Result<()> {
32346        let context = function_name!();
32347        trace!("{}", self.trace_item_stack(context));
32348        let enum_group_list_1_built = Vec::new();
32349        self.push(ASTType::EnumGroupList(enum_group_list_1_built), context);
32350        Ok(())
32351    }
32352
32353    /// Semantic action for production 799:
32354    ///
32355    /// `EnumItem: Identifier EnumItemOpt /* Option */;`
32356    ///
32357    #[parol_runtime::function_name::named]
32358    fn enum_item(
32359        &mut self,
32360        _identifier: &ParseTreeType<'t>,
32361        _enum_item_opt: &ParseTreeType<'t>,
32362    ) -> Result<()> {
32363        let context = function_name!();
32364        trace!("{}", self.trace_item_stack(context));
32365        let enum_item_opt = pop_item!(self, enum_item_opt, EnumItemOpt, context);
32366        let identifier = pop_item!(self, identifier, Identifier, context);
32367        let enum_item_built = EnumItem {
32368            identifier: Box::new(identifier),
32369            enum_item_opt,
32370        };
32371        // Calling user action here
32372        self.user_grammar.enum_item(&enum_item_built)?;
32373        self.push(ASTType::EnumItem(enum_item_built), context);
32374        Ok(())
32375    }
32376
32377    /// Semantic action for production 800:
32378    ///
32379    /// `EnumItemOpt /* Option<T>::Some */: Equ Expression;`
32380    ///
32381    #[parol_runtime::function_name::named]
32382    fn enum_item_opt_0(
32383        &mut self,
32384        _equ: &ParseTreeType<'t>,
32385        _expression: &ParseTreeType<'t>,
32386    ) -> Result<()> {
32387        let context = function_name!();
32388        trace!("{}", self.trace_item_stack(context));
32389        let expression = pop_item!(self, expression, Expression, context);
32390        let equ = pop_item!(self, equ, Equ, context);
32391        let enum_item_opt_0_built = EnumItemOpt {
32392            equ: Box::new(equ),
32393            expression: Box::new(expression),
32394        };
32395        self.push(ASTType::EnumItemOpt(Some(enum_item_opt_0_built)), context);
32396        Ok(())
32397    }
32398
32399    /// Semantic action for production 801:
32400    ///
32401    /// `EnumItemOpt /* Option<T>::None */: ;`
32402    ///
32403    #[parol_runtime::function_name::named]
32404    fn enum_item_opt_1(&mut self) -> Result<()> {
32405        let context = function_name!();
32406        trace!("{}", self.trace_item_stack(context));
32407        self.push(ASTType::EnumItemOpt(None), context);
32408        Ok(())
32409    }
32410
32411    /// Semantic action for production 802:
32412    ///
32413    /// `StructUnion: Struct;`
32414    ///
32415    #[parol_runtime::function_name::named]
32416    fn struct_union_0(&mut self, _struct: &ParseTreeType<'t>) -> Result<()> {
32417        let context = function_name!();
32418        trace!("{}", self.trace_item_stack(context));
32419        let r#struct = pop_item!(self, r#struct, Struct, context);
32420        let struct_union_0_built = StructUnionStruct {
32421            r#struct: Box::new(r#struct),
32422        };
32423        let struct_union_0_built = StructUnion::Struct(struct_union_0_built);
32424        // Calling user action here
32425        self.user_grammar.struct_union(&struct_union_0_built)?;
32426        self.push(ASTType::StructUnion(struct_union_0_built), context);
32427        Ok(())
32428    }
32429
32430    /// Semantic action for production 803:
32431    ///
32432    /// `StructUnion: Union;`
32433    ///
32434    #[parol_runtime::function_name::named]
32435    fn struct_union_1(&mut self, _union: &ParseTreeType<'t>) -> Result<()> {
32436        let context = function_name!();
32437        trace!("{}", self.trace_item_stack(context));
32438        let r#union = pop_item!(self, r#union, Union, context);
32439        let struct_union_1_built = StructUnionUnion {
32440            r#union: Box::new(r#union),
32441        };
32442        let struct_union_1_built = StructUnion::Union(struct_union_1_built);
32443        // Calling user action here
32444        self.user_grammar.struct_union(&struct_union_1_built)?;
32445        self.push(ASTType::StructUnion(struct_union_1_built), context);
32446        Ok(())
32447    }
32448
32449    /// Semantic action for production 804:
32450    ///
32451    /// `StructUnionDeclaration: StructUnion Identifier StructUnionDeclarationOpt /* Option */ LBrace StructUnionList RBrace;`
32452    ///
32453    #[parol_runtime::function_name::named]
32454    fn struct_union_declaration(
32455        &mut self,
32456        _struct_union: &ParseTreeType<'t>,
32457        _identifier: &ParseTreeType<'t>,
32458        _struct_union_declaration_opt: &ParseTreeType<'t>,
32459        _l_brace: &ParseTreeType<'t>,
32460        _struct_union_list: &ParseTreeType<'t>,
32461        _r_brace: &ParseTreeType<'t>,
32462    ) -> Result<()> {
32463        let context = function_name!();
32464        trace!("{}", self.trace_item_stack(context));
32465        let r_brace = pop_item!(self, r_brace, RBrace, context);
32466        let struct_union_list = pop_item!(self, struct_union_list, StructUnionList, context);
32467        let l_brace = pop_item!(self, l_brace, LBrace, context);
32468        let struct_union_declaration_opt = pop_item!(
32469            self,
32470            struct_union_declaration_opt,
32471            StructUnionDeclarationOpt,
32472            context
32473        );
32474        let identifier = pop_item!(self, identifier, Identifier, context);
32475        let struct_union = pop_item!(self, struct_union, StructUnion, context);
32476        let struct_union_declaration_built = StructUnionDeclaration {
32477            struct_union: Box::new(struct_union),
32478            identifier: Box::new(identifier),
32479            struct_union_declaration_opt,
32480            l_brace: Box::new(l_brace),
32481            struct_union_list: Box::new(struct_union_list),
32482            r_brace: Box::new(r_brace),
32483        };
32484        // Calling user action here
32485        self.user_grammar
32486            .struct_union_declaration(&struct_union_declaration_built)?;
32487        self.push(
32488            ASTType::StructUnionDeclaration(struct_union_declaration_built),
32489            context,
32490        );
32491        Ok(())
32492    }
32493
32494    /// Semantic action for production 805:
32495    ///
32496    /// `StructUnionDeclarationOpt /* Option<T>::Some */: WithGenericParameter;`
32497    ///
32498    #[parol_runtime::function_name::named]
32499    fn struct_union_declaration_opt_0(
32500        &mut self,
32501        _with_generic_parameter: &ParseTreeType<'t>,
32502    ) -> Result<()> {
32503        let context = function_name!();
32504        trace!("{}", self.trace_item_stack(context));
32505        let with_generic_parameter =
32506            pop_item!(self, with_generic_parameter, WithGenericParameter, context);
32507        let struct_union_declaration_opt_0_built = StructUnionDeclarationOpt {
32508            with_generic_parameter: Box::new(with_generic_parameter),
32509        };
32510        self.push(
32511            ASTType::StructUnionDeclarationOpt(Some(struct_union_declaration_opt_0_built)),
32512            context,
32513        );
32514        Ok(())
32515    }
32516
32517    /// Semantic action for production 806:
32518    ///
32519    /// `StructUnionDeclarationOpt /* Option<T>::None */: ;`
32520    ///
32521    #[parol_runtime::function_name::named]
32522    fn struct_union_declaration_opt_1(&mut self) -> Result<()> {
32523        let context = function_name!();
32524        trace!("{}", self.trace_item_stack(context));
32525        self.push(ASTType::StructUnionDeclarationOpt(None), context);
32526        Ok(())
32527    }
32528
32529    /// Semantic action for production 807:
32530    ///
32531    /// `StructUnionList: StructUnionGroup StructUnionListList /* Vec */ StructUnionListOpt /* Option */;`
32532    ///
32533    #[parol_runtime::function_name::named]
32534    fn struct_union_list(
32535        &mut self,
32536        _struct_union_group: &ParseTreeType<'t>,
32537        _struct_union_list_list: &ParseTreeType<'t>,
32538        _struct_union_list_opt: &ParseTreeType<'t>,
32539    ) -> Result<()> {
32540        let context = function_name!();
32541        trace!("{}", self.trace_item_stack(context));
32542        let struct_union_list_opt =
32543            pop_item!(self, struct_union_list_opt, StructUnionListOpt, context);
32544        let struct_union_list_list =
32545            pop_and_reverse_item!(self, struct_union_list_list, StructUnionListList, context);
32546        let struct_union_group = pop_item!(self, struct_union_group, StructUnionGroup, context);
32547        let struct_union_list_built = StructUnionList {
32548            struct_union_group: Box::new(struct_union_group),
32549            struct_union_list_list,
32550            struct_union_list_opt,
32551        };
32552        // Calling user action here
32553        self.user_grammar
32554            .struct_union_list(&struct_union_list_built)?;
32555        self.push(ASTType::StructUnionList(struct_union_list_built), context);
32556        Ok(())
32557    }
32558
32559    /// Semantic action for production 808:
32560    ///
32561    /// `StructUnionListList /* Vec<T>::Push */: Comma StructUnionGroup StructUnionListList;`
32562    ///
32563    #[parol_runtime::function_name::named]
32564    fn struct_union_list_list_0(
32565        &mut self,
32566        _comma: &ParseTreeType<'t>,
32567        _struct_union_group: &ParseTreeType<'t>,
32568        _struct_union_list_list: &ParseTreeType<'t>,
32569    ) -> Result<()> {
32570        let context = function_name!();
32571        trace!("{}", self.trace_item_stack(context));
32572        let mut struct_union_list_list =
32573            pop_item!(self, struct_union_list_list, StructUnionListList, context);
32574        let struct_union_group = pop_item!(self, struct_union_group, StructUnionGroup, context);
32575        let comma = pop_item!(self, comma, Comma, context);
32576        let struct_union_list_list_0_built = StructUnionListList {
32577            struct_union_group: Box::new(struct_union_group),
32578            comma: Box::new(comma),
32579        };
32580        // Add an element to the vector
32581        struct_union_list_list.push(struct_union_list_list_0_built);
32582        self.push(
32583            ASTType::StructUnionListList(struct_union_list_list),
32584            context,
32585        );
32586        Ok(())
32587    }
32588
32589    /// Semantic action for production 809:
32590    ///
32591    /// `StructUnionListList /* Vec<T>::New */: ;`
32592    ///
32593    #[parol_runtime::function_name::named]
32594    fn struct_union_list_list_1(&mut self) -> Result<()> {
32595        let context = function_name!();
32596        trace!("{}", self.trace_item_stack(context));
32597        let struct_union_list_list_1_built = Vec::new();
32598        self.push(
32599            ASTType::StructUnionListList(struct_union_list_list_1_built),
32600            context,
32601        );
32602        Ok(())
32603    }
32604
32605    /// Semantic action for production 810:
32606    ///
32607    /// `StructUnionListOpt /* Option<T>::Some */: Comma;`
32608    ///
32609    #[parol_runtime::function_name::named]
32610    fn struct_union_list_opt_0(&mut self, _comma: &ParseTreeType<'t>) -> Result<()> {
32611        let context = function_name!();
32612        trace!("{}", self.trace_item_stack(context));
32613        let comma = pop_item!(self, comma, Comma, context);
32614        let struct_union_list_opt_0_built = StructUnionListOpt {
32615            comma: Box::new(comma),
32616        };
32617        self.push(
32618            ASTType::StructUnionListOpt(Some(struct_union_list_opt_0_built)),
32619            context,
32620        );
32621        Ok(())
32622    }
32623
32624    /// Semantic action for production 811:
32625    ///
32626    /// `StructUnionListOpt /* Option<T>::None */: ;`
32627    ///
32628    #[parol_runtime::function_name::named]
32629    fn struct_union_list_opt_1(&mut self) -> Result<()> {
32630        let context = function_name!();
32631        trace!("{}", self.trace_item_stack(context));
32632        self.push(ASTType::StructUnionListOpt(None), context);
32633        Ok(())
32634    }
32635
32636    /// Semantic action for production 812:
32637    ///
32638    /// `StructUnionGroup: StructUnionGroupList /* Vec */ StructUnionGroupGroup;`
32639    ///
32640    #[parol_runtime::function_name::named]
32641    fn struct_union_group(
32642        &mut self,
32643        _struct_union_group_list: &ParseTreeType<'t>,
32644        _struct_union_group_group: &ParseTreeType<'t>,
32645    ) -> Result<()> {
32646        let context = function_name!();
32647        trace!("{}", self.trace_item_stack(context));
32648        let struct_union_group_group = pop_item!(
32649            self,
32650            struct_union_group_group,
32651            StructUnionGroupGroup,
32652            context
32653        );
32654        let struct_union_group_list =
32655            pop_and_reverse_item!(self, struct_union_group_list, StructUnionGroupList, context);
32656        let struct_union_group_built = StructUnionGroup {
32657            struct_union_group_list,
32658            struct_union_group_group: Box::new(struct_union_group_group),
32659        };
32660        // Calling user action here
32661        self.user_grammar
32662            .struct_union_group(&struct_union_group_built)?;
32663        self.push(ASTType::StructUnionGroup(struct_union_group_built), context);
32664        Ok(())
32665    }
32666
32667    /// Semantic action for production 813:
32668    ///
32669    /// `StructUnionGroupGroup: LBrace StructUnionList RBrace;`
32670    ///
32671    #[parol_runtime::function_name::named]
32672    fn struct_union_group_group_0(
32673        &mut self,
32674        _l_brace: &ParseTreeType<'t>,
32675        _struct_union_list: &ParseTreeType<'t>,
32676        _r_brace: &ParseTreeType<'t>,
32677    ) -> Result<()> {
32678        let context = function_name!();
32679        trace!("{}", self.trace_item_stack(context));
32680        let r_brace = pop_item!(self, r_brace, RBrace, context);
32681        let struct_union_list = pop_item!(self, struct_union_list, StructUnionList, context);
32682        let l_brace = pop_item!(self, l_brace, LBrace, context);
32683        let struct_union_group_group_0_built = StructUnionGroupGroupLBraceStructUnionListRBrace {
32684            l_brace: Box::new(l_brace),
32685            struct_union_list: Box::new(struct_union_list),
32686            r_brace: Box::new(r_brace),
32687        };
32688        let struct_union_group_group_0_built =
32689            StructUnionGroupGroup::LBraceStructUnionListRBrace(struct_union_group_group_0_built);
32690        self.push(
32691            ASTType::StructUnionGroupGroup(struct_union_group_group_0_built),
32692            context,
32693        );
32694        Ok(())
32695    }
32696
32697    /// Semantic action for production 814:
32698    ///
32699    /// `StructUnionGroupGroup: StructUnionItem;`
32700    ///
32701    #[parol_runtime::function_name::named]
32702    fn struct_union_group_group_1(&mut self, _struct_union_item: &ParseTreeType<'t>) -> Result<()> {
32703        let context = function_name!();
32704        trace!("{}", self.trace_item_stack(context));
32705        let struct_union_item = pop_item!(self, struct_union_item, StructUnionItem, context);
32706        let struct_union_group_group_1_built = StructUnionGroupGroupStructUnionItem {
32707            struct_union_item: Box::new(struct_union_item),
32708        };
32709        let struct_union_group_group_1_built =
32710            StructUnionGroupGroup::StructUnionItem(struct_union_group_group_1_built);
32711        self.push(
32712            ASTType::StructUnionGroupGroup(struct_union_group_group_1_built),
32713            context,
32714        );
32715        Ok(())
32716    }
32717
32718    /// Semantic action for production 815:
32719    ///
32720    /// `StructUnionGroupList /* Vec<T>::Push */: Attribute StructUnionGroupList;`
32721    ///
32722    #[parol_runtime::function_name::named]
32723    fn struct_union_group_list_0(
32724        &mut self,
32725        _attribute: &ParseTreeType<'t>,
32726        _struct_union_group_list: &ParseTreeType<'t>,
32727    ) -> Result<()> {
32728        let context = function_name!();
32729        trace!("{}", self.trace_item_stack(context));
32730        let mut struct_union_group_list =
32731            pop_item!(self, struct_union_group_list, StructUnionGroupList, context);
32732        let attribute = pop_item!(self, attribute, Attribute, context);
32733        let struct_union_group_list_0_built = StructUnionGroupList {
32734            attribute: Box::new(attribute),
32735        };
32736        // Add an element to the vector
32737        struct_union_group_list.push(struct_union_group_list_0_built);
32738        self.push(
32739            ASTType::StructUnionGroupList(struct_union_group_list),
32740            context,
32741        );
32742        Ok(())
32743    }
32744
32745    /// Semantic action for production 816:
32746    ///
32747    /// `StructUnionGroupList /* Vec<T>::New */: ;`
32748    ///
32749    #[parol_runtime::function_name::named]
32750    fn struct_union_group_list_1(&mut self) -> Result<()> {
32751        let context = function_name!();
32752        trace!("{}", self.trace_item_stack(context));
32753        let struct_union_group_list_1_built = Vec::new();
32754        self.push(
32755            ASTType::StructUnionGroupList(struct_union_group_list_1_built),
32756            context,
32757        );
32758        Ok(())
32759    }
32760
32761    /// Semantic action for production 817:
32762    ///
32763    /// `StructUnionItem: Identifier Colon ScalarType;`
32764    ///
32765    #[parol_runtime::function_name::named]
32766    fn struct_union_item(
32767        &mut self,
32768        _identifier: &ParseTreeType<'t>,
32769        _colon: &ParseTreeType<'t>,
32770        _scalar_type: &ParseTreeType<'t>,
32771    ) -> Result<()> {
32772        let context = function_name!();
32773        trace!("{}", self.trace_item_stack(context));
32774        let scalar_type = pop_item!(self, scalar_type, ScalarType, context);
32775        let colon = pop_item!(self, colon, Colon, context);
32776        let identifier = pop_item!(self, identifier, Identifier, context);
32777        let struct_union_item_built = StructUnionItem {
32778            identifier: Box::new(identifier),
32779            colon: Box::new(colon),
32780            scalar_type: Box::new(scalar_type),
32781        };
32782        // Calling user action here
32783        self.user_grammar
32784            .struct_union_item(&struct_union_item_built)?;
32785        self.push(ASTType::StructUnionItem(struct_union_item_built), context);
32786        Ok(())
32787    }
32788
32789    /// Semantic action for production 818:
32790    ///
32791    /// `InitialDeclaration: Initial StatementBlock;`
32792    ///
32793    #[parol_runtime::function_name::named]
32794    fn initial_declaration(
32795        &mut self,
32796        _initial: &ParseTreeType<'t>,
32797        _statement_block: &ParseTreeType<'t>,
32798    ) -> Result<()> {
32799        let context = function_name!();
32800        trace!("{}", self.trace_item_stack(context));
32801        let statement_block = pop_item!(self, statement_block, StatementBlock, context);
32802        let initial = pop_item!(self, initial, Initial, context);
32803        let initial_declaration_built = InitialDeclaration {
32804            initial: Box::new(initial),
32805            statement_block: Box::new(statement_block),
32806        };
32807        // Calling user action here
32808        self.user_grammar
32809            .initial_declaration(&initial_declaration_built)?;
32810        self.push(
32811            ASTType::InitialDeclaration(initial_declaration_built),
32812            context,
32813        );
32814        Ok(())
32815    }
32816
32817    /// Semantic action for production 819:
32818    ///
32819    /// `FinalDeclaration: Final StatementBlock;`
32820    ///
32821    #[parol_runtime::function_name::named]
32822    fn final_declaration(
32823        &mut self,
32824        _final: &ParseTreeType<'t>,
32825        _statement_block: &ParseTreeType<'t>,
32826    ) -> Result<()> {
32827        let context = function_name!();
32828        trace!("{}", self.trace_item_stack(context));
32829        let statement_block = pop_item!(self, statement_block, StatementBlock, context);
32830        let r#final = pop_item!(self, r#final, Final, context);
32831        let final_declaration_built = FinalDeclaration {
32832            r#final: Box::new(r#final),
32833            statement_block: Box::new(statement_block),
32834        };
32835        // Calling user action here
32836        self.user_grammar
32837            .final_declaration(&final_declaration_built)?;
32838        self.push(ASTType::FinalDeclaration(final_declaration_built), context);
32839        Ok(())
32840    }
32841
32842    /// Semantic action for production 820:
32843    ///
32844    /// `InstDeclaration: Inst ComponentInstantiation Semicolon;`
32845    ///
32846    #[parol_runtime::function_name::named]
32847    fn inst_declaration(
32848        &mut self,
32849        _inst: &ParseTreeType<'t>,
32850        _component_instantiation: &ParseTreeType<'t>,
32851        _semicolon: &ParseTreeType<'t>,
32852    ) -> Result<()> {
32853        let context = function_name!();
32854        trace!("{}", self.trace_item_stack(context));
32855        let semicolon = pop_item!(self, semicolon, Semicolon, context);
32856        let component_instantiation = pop_item!(
32857            self,
32858            component_instantiation,
32859            ComponentInstantiation,
32860            context
32861        );
32862        let inst = pop_item!(self, inst, Inst, context);
32863        let inst_declaration_built = InstDeclaration {
32864            inst: Box::new(inst),
32865            component_instantiation: Box::new(component_instantiation),
32866            semicolon: Box::new(semicolon),
32867        };
32868        // Calling user action here
32869        self.user_grammar
32870            .inst_declaration(&inst_declaration_built)?;
32871        self.push(ASTType::InstDeclaration(inst_declaration_built), context);
32872        Ok(())
32873    }
32874
32875    /// Semantic action for production 821:
32876    ///
32877    /// `BindDeclaration: Bind ScopedIdentifier LTMinus ComponentInstantiation Semicolon;`
32878    ///
32879    #[parol_runtime::function_name::named]
32880    fn bind_declaration(
32881        &mut self,
32882        _bind: &ParseTreeType<'t>,
32883        _scoped_identifier: &ParseTreeType<'t>,
32884        _l_t_minus: &ParseTreeType<'t>,
32885        _component_instantiation: &ParseTreeType<'t>,
32886        _semicolon: &ParseTreeType<'t>,
32887    ) -> Result<()> {
32888        let context = function_name!();
32889        trace!("{}", self.trace_item_stack(context));
32890        let semicolon = pop_item!(self, semicolon, Semicolon, context);
32891        let component_instantiation = pop_item!(
32892            self,
32893            component_instantiation,
32894            ComponentInstantiation,
32895            context
32896        );
32897        let l_t_minus = pop_item!(self, l_t_minus, LTMinus, context);
32898        let scoped_identifier = pop_item!(self, scoped_identifier, ScopedIdentifier, context);
32899        let bind = pop_item!(self, bind, Bind, context);
32900        let bind_declaration_built = BindDeclaration {
32901            bind: Box::new(bind),
32902            scoped_identifier: Box::new(scoped_identifier),
32903            l_t_minus: Box::new(l_t_minus),
32904            component_instantiation: Box::new(component_instantiation),
32905            semicolon: Box::new(semicolon),
32906        };
32907        // Calling user action here
32908        self.user_grammar
32909            .bind_declaration(&bind_declaration_built)?;
32910        self.push(ASTType::BindDeclaration(bind_declaration_built), context);
32911        Ok(())
32912    }
32913
32914    /// Semantic action for production 822:
32915    ///
32916    /// `ComponentInstantiation: Identifier Colon ComponentInstantiationOpt /* Option */ ScopedIdentifier ComponentInstantiationOpt0 /* Option */ ComponentInstantiationOpt1 /* Option */ ComponentInstantiationOpt2 /* Option */;`
32917    ///
32918    #[parol_runtime::function_name::named]
32919    fn component_instantiation(
32920        &mut self,
32921        _identifier: &ParseTreeType<'t>,
32922        _colon: &ParseTreeType<'t>,
32923        _component_instantiation_opt: &ParseTreeType<'t>,
32924        _scoped_identifier: &ParseTreeType<'t>,
32925        _component_instantiation_opt0: &ParseTreeType<'t>,
32926        _component_instantiation_opt1: &ParseTreeType<'t>,
32927        _component_instantiation_opt2: &ParseTreeType<'t>,
32928    ) -> Result<()> {
32929        let context = function_name!();
32930        trace!("{}", self.trace_item_stack(context));
32931        let component_instantiation_opt2 = pop_item!(
32932            self,
32933            component_instantiation_opt2,
32934            ComponentInstantiationOpt2,
32935            context
32936        );
32937        let component_instantiation_opt1 = pop_item!(
32938            self,
32939            component_instantiation_opt1,
32940            ComponentInstantiationOpt1,
32941            context
32942        );
32943        let component_instantiation_opt0 = pop_item!(
32944            self,
32945            component_instantiation_opt0,
32946            ComponentInstantiationOpt0,
32947            context
32948        );
32949        let scoped_identifier = pop_item!(self, scoped_identifier, ScopedIdentifier, context);
32950        let component_instantiation_opt = pop_item!(
32951            self,
32952            component_instantiation_opt,
32953            ComponentInstantiationOpt,
32954            context
32955        );
32956        let colon = pop_item!(self, colon, Colon, context);
32957        let identifier = pop_item!(self, identifier, Identifier, context);
32958        let component_instantiation_built = ComponentInstantiation {
32959            identifier: Box::new(identifier),
32960            colon: Box::new(colon),
32961            component_instantiation_opt,
32962            scoped_identifier: Box::new(scoped_identifier),
32963            component_instantiation_opt0,
32964            component_instantiation_opt1,
32965            component_instantiation_opt2,
32966        };
32967        // Calling user action here
32968        self.user_grammar
32969            .component_instantiation(&component_instantiation_built)?;
32970        self.push(
32971            ASTType::ComponentInstantiation(component_instantiation_built),
32972            context,
32973        );
32974        Ok(())
32975    }
32976
32977    /// Semantic action for production 823:
32978    ///
32979    /// `ComponentInstantiationOpt2 /* Option<T>::Some */: InstPort;`
32980    ///
32981    #[parol_runtime::function_name::named]
32982    fn component_instantiation_opt2_0(&mut self, _inst_port: &ParseTreeType<'t>) -> Result<()> {
32983        let context = function_name!();
32984        trace!("{}", self.trace_item_stack(context));
32985        let inst_port = pop_item!(self, inst_port, InstPort, context);
32986        let component_instantiation_opt2_0_built = ComponentInstantiationOpt2 {
32987            inst_port: Box::new(inst_port),
32988        };
32989        self.push(
32990            ASTType::ComponentInstantiationOpt2(Some(component_instantiation_opt2_0_built)),
32991            context,
32992        );
32993        Ok(())
32994    }
32995
32996    /// Semantic action for production 824:
32997    ///
32998    /// `ComponentInstantiationOpt2 /* Option<T>::None */: ;`
32999    ///
33000    #[parol_runtime::function_name::named]
33001    fn component_instantiation_opt2_1(&mut self) -> Result<()> {
33002        let context = function_name!();
33003        trace!("{}", self.trace_item_stack(context));
33004        self.push(ASTType::ComponentInstantiationOpt2(None), context);
33005        Ok(())
33006    }
33007
33008    /// Semantic action for production 825:
33009    ///
33010    /// `ComponentInstantiationOpt1 /* Option<T>::Some */: InstParameter;`
33011    ///
33012    #[parol_runtime::function_name::named]
33013    fn component_instantiation_opt1_0(
33014        &mut self,
33015        _inst_parameter: &ParseTreeType<'t>,
33016    ) -> Result<()> {
33017        let context = function_name!();
33018        trace!("{}", self.trace_item_stack(context));
33019        let inst_parameter = pop_item!(self, inst_parameter, InstParameter, context);
33020        let component_instantiation_opt1_0_built = ComponentInstantiationOpt1 {
33021            inst_parameter: Box::new(inst_parameter),
33022        };
33023        self.push(
33024            ASTType::ComponentInstantiationOpt1(Some(component_instantiation_opt1_0_built)),
33025            context,
33026        );
33027        Ok(())
33028    }
33029
33030    /// Semantic action for production 826:
33031    ///
33032    /// `ComponentInstantiationOpt1 /* Option<T>::None */: ;`
33033    ///
33034    #[parol_runtime::function_name::named]
33035    fn component_instantiation_opt1_1(&mut self) -> Result<()> {
33036        let context = function_name!();
33037        trace!("{}", self.trace_item_stack(context));
33038        self.push(ASTType::ComponentInstantiationOpt1(None), context);
33039        Ok(())
33040    }
33041
33042    /// Semantic action for production 827:
33043    ///
33044    /// `ComponentInstantiationOpt0 /* Option<T>::Some */: Array;`
33045    ///
33046    #[parol_runtime::function_name::named]
33047    fn component_instantiation_opt0_0(&mut self, _array: &ParseTreeType<'t>) -> Result<()> {
33048        let context = function_name!();
33049        trace!("{}", self.trace_item_stack(context));
33050        let array = pop_item!(self, array, Array, context);
33051        let component_instantiation_opt0_0_built = ComponentInstantiationOpt0 {
33052            array: Box::new(array),
33053        };
33054        self.push(
33055            ASTType::ComponentInstantiationOpt0(Some(component_instantiation_opt0_0_built)),
33056            context,
33057        );
33058        Ok(())
33059    }
33060
33061    /// Semantic action for production 828:
33062    ///
33063    /// `ComponentInstantiationOpt0 /* Option<T>::None */: ;`
33064    ///
33065    #[parol_runtime::function_name::named]
33066    fn component_instantiation_opt0_1(&mut self) -> Result<()> {
33067        let context = function_name!();
33068        trace!("{}", self.trace_item_stack(context));
33069        self.push(ASTType::ComponentInstantiationOpt0(None), context);
33070        Ok(())
33071    }
33072
33073    /// Semantic action for production 829:
33074    ///
33075    /// `ComponentInstantiationOpt /* Option<T>::Some */: ClockDomain;`
33076    ///
33077    #[parol_runtime::function_name::named]
33078    fn component_instantiation_opt_0(&mut self, _clock_domain: &ParseTreeType<'t>) -> Result<()> {
33079        let context = function_name!();
33080        trace!("{}", self.trace_item_stack(context));
33081        let clock_domain = pop_item!(self, clock_domain, ClockDomain, context);
33082        let component_instantiation_opt_0_built = ComponentInstantiationOpt {
33083            clock_domain: Box::new(clock_domain),
33084        };
33085        self.push(
33086            ASTType::ComponentInstantiationOpt(Some(component_instantiation_opt_0_built)),
33087            context,
33088        );
33089        Ok(())
33090    }
33091
33092    /// Semantic action for production 830:
33093    ///
33094    /// `ComponentInstantiationOpt /* Option<T>::None */: ;`
33095    ///
33096    #[parol_runtime::function_name::named]
33097    fn component_instantiation_opt_1(&mut self) -> Result<()> {
33098        let context = function_name!();
33099        trace!("{}", self.trace_item_stack(context));
33100        self.push(ASTType::ComponentInstantiationOpt(None), context);
33101        Ok(())
33102    }
33103
33104    /// Semantic action for production 831:
33105    ///
33106    /// `InstParameter: Hash LParen InstParameterOpt /* Option */ RParen;`
33107    ///
33108    #[parol_runtime::function_name::named]
33109    fn inst_parameter(
33110        &mut self,
33111        _hash: &ParseTreeType<'t>,
33112        _l_paren: &ParseTreeType<'t>,
33113        _inst_parameter_opt: &ParseTreeType<'t>,
33114        _r_paren: &ParseTreeType<'t>,
33115    ) -> Result<()> {
33116        let context = function_name!();
33117        trace!("{}", self.trace_item_stack(context));
33118        let r_paren = pop_item!(self, r_paren, RParen, context);
33119        let inst_parameter_opt = pop_item!(self, inst_parameter_opt, InstParameterOpt, context);
33120        let l_paren = pop_item!(self, l_paren, LParen, context);
33121        let hash = pop_item!(self, hash, Hash, context);
33122        let inst_parameter_built = InstParameter {
33123            hash: Box::new(hash),
33124            l_paren: Box::new(l_paren),
33125            inst_parameter_opt,
33126            r_paren: Box::new(r_paren),
33127        };
33128        // Calling user action here
33129        self.user_grammar.inst_parameter(&inst_parameter_built)?;
33130        self.push(ASTType::InstParameter(inst_parameter_built), context);
33131        Ok(())
33132    }
33133
33134    /// Semantic action for production 832:
33135    ///
33136    /// `InstParameterOpt /* Option<T>::Some */: InstParameterList;`
33137    ///
33138    #[parol_runtime::function_name::named]
33139    fn inst_parameter_opt_0(&mut self, _inst_parameter_list: &ParseTreeType<'t>) -> Result<()> {
33140        let context = function_name!();
33141        trace!("{}", self.trace_item_stack(context));
33142        let inst_parameter_list = pop_item!(self, inst_parameter_list, InstParameterList, context);
33143        let inst_parameter_opt_0_built = InstParameterOpt {
33144            inst_parameter_list: Box::new(inst_parameter_list),
33145        };
33146        self.push(
33147            ASTType::InstParameterOpt(Some(inst_parameter_opt_0_built)),
33148            context,
33149        );
33150        Ok(())
33151    }
33152
33153    /// Semantic action for production 833:
33154    ///
33155    /// `InstParameterOpt /* Option<T>::None */: ;`
33156    ///
33157    #[parol_runtime::function_name::named]
33158    fn inst_parameter_opt_1(&mut self) -> Result<()> {
33159        let context = function_name!();
33160        trace!("{}", self.trace_item_stack(context));
33161        self.push(ASTType::InstParameterOpt(None), context);
33162        Ok(())
33163    }
33164
33165    /// Semantic action for production 834:
33166    ///
33167    /// `InstParameterList: InstParameterGroup InstParameterListList /* Vec */ InstParameterListOpt /* Option */;`
33168    ///
33169    #[parol_runtime::function_name::named]
33170    fn inst_parameter_list(
33171        &mut self,
33172        _inst_parameter_group: &ParseTreeType<'t>,
33173        _inst_parameter_list_list: &ParseTreeType<'t>,
33174        _inst_parameter_list_opt: &ParseTreeType<'t>,
33175    ) -> Result<()> {
33176        let context = function_name!();
33177        trace!("{}", self.trace_item_stack(context));
33178        let inst_parameter_list_opt =
33179            pop_item!(self, inst_parameter_list_opt, InstParameterListOpt, context);
33180        let inst_parameter_list_list = pop_and_reverse_item!(
33181            self,
33182            inst_parameter_list_list,
33183            InstParameterListList,
33184            context
33185        );
33186        let inst_parameter_group =
33187            pop_item!(self, inst_parameter_group, InstParameterGroup, context);
33188        let inst_parameter_list_built = InstParameterList {
33189            inst_parameter_group: Box::new(inst_parameter_group),
33190            inst_parameter_list_list,
33191            inst_parameter_list_opt,
33192        };
33193        // Calling user action here
33194        self.user_grammar
33195            .inst_parameter_list(&inst_parameter_list_built)?;
33196        self.push(
33197            ASTType::InstParameterList(inst_parameter_list_built),
33198            context,
33199        );
33200        Ok(())
33201    }
33202
33203    /// Semantic action for production 835:
33204    ///
33205    /// `InstParameterListList /* Vec<T>::Push */: Comma InstParameterGroup InstParameterListList;`
33206    ///
33207    #[parol_runtime::function_name::named]
33208    fn inst_parameter_list_list_0(
33209        &mut self,
33210        _comma: &ParseTreeType<'t>,
33211        _inst_parameter_group: &ParseTreeType<'t>,
33212        _inst_parameter_list_list: &ParseTreeType<'t>,
33213    ) -> Result<()> {
33214        let context = function_name!();
33215        trace!("{}", self.trace_item_stack(context));
33216        let mut inst_parameter_list_list = pop_item!(
33217            self,
33218            inst_parameter_list_list,
33219            InstParameterListList,
33220            context
33221        );
33222        let inst_parameter_group =
33223            pop_item!(self, inst_parameter_group, InstParameterGroup, context);
33224        let comma = pop_item!(self, comma, Comma, context);
33225        let inst_parameter_list_list_0_built = InstParameterListList {
33226            inst_parameter_group: Box::new(inst_parameter_group),
33227            comma: Box::new(comma),
33228        };
33229        // Add an element to the vector
33230        inst_parameter_list_list.push(inst_parameter_list_list_0_built);
33231        self.push(
33232            ASTType::InstParameterListList(inst_parameter_list_list),
33233            context,
33234        );
33235        Ok(())
33236    }
33237
33238    /// Semantic action for production 836:
33239    ///
33240    /// `InstParameterListList /* Vec<T>::New */: ;`
33241    ///
33242    #[parol_runtime::function_name::named]
33243    fn inst_parameter_list_list_1(&mut self) -> Result<()> {
33244        let context = function_name!();
33245        trace!("{}", self.trace_item_stack(context));
33246        let inst_parameter_list_list_1_built = Vec::new();
33247        self.push(
33248            ASTType::InstParameterListList(inst_parameter_list_list_1_built),
33249            context,
33250        );
33251        Ok(())
33252    }
33253
33254    /// Semantic action for production 837:
33255    ///
33256    /// `InstParameterListOpt /* Option<T>::Some */: Comma;`
33257    ///
33258    #[parol_runtime::function_name::named]
33259    fn inst_parameter_list_opt_0(&mut self, _comma: &ParseTreeType<'t>) -> Result<()> {
33260        let context = function_name!();
33261        trace!("{}", self.trace_item_stack(context));
33262        let comma = pop_item!(self, comma, Comma, context);
33263        let inst_parameter_list_opt_0_built = InstParameterListOpt {
33264            comma: Box::new(comma),
33265        };
33266        self.push(
33267            ASTType::InstParameterListOpt(Some(inst_parameter_list_opt_0_built)),
33268            context,
33269        );
33270        Ok(())
33271    }
33272
33273    /// Semantic action for production 838:
33274    ///
33275    /// `InstParameterListOpt /* Option<T>::None */: ;`
33276    ///
33277    #[parol_runtime::function_name::named]
33278    fn inst_parameter_list_opt_1(&mut self) -> Result<()> {
33279        let context = function_name!();
33280        trace!("{}", self.trace_item_stack(context));
33281        self.push(ASTType::InstParameterListOpt(None), context);
33282        Ok(())
33283    }
33284
33285    /// Semantic action for production 839:
33286    ///
33287    /// `InstParameterGroup: InstParameterGroupList /* Vec */ InstParameterGroupGroup;`
33288    ///
33289    #[parol_runtime::function_name::named]
33290    fn inst_parameter_group(
33291        &mut self,
33292        _inst_parameter_group_list: &ParseTreeType<'t>,
33293        _inst_parameter_group_group: &ParseTreeType<'t>,
33294    ) -> Result<()> {
33295        let context = function_name!();
33296        trace!("{}", self.trace_item_stack(context));
33297        let inst_parameter_group_group = pop_item!(
33298            self,
33299            inst_parameter_group_group,
33300            InstParameterGroupGroup,
33301            context
33302        );
33303        let inst_parameter_group_list = pop_and_reverse_item!(
33304            self,
33305            inst_parameter_group_list,
33306            InstParameterGroupList,
33307            context
33308        );
33309        let inst_parameter_group_built = InstParameterGroup {
33310            inst_parameter_group_list,
33311            inst_parameter_group_group: Box::new(inst_parameter_group_group),
33312        };
33313        // Calling user action here
33314        self.user_grammar
33315            .inst_parameter_group(&inst_parameter_group_built)?;
33316        self.push(
33317            ASTType::InstParameterGroup(inst_parameter_group_built),
33318            context,
33319        );
33320        Ok(())
33321    }
33322
33323    /// Semantic action for production 840:
33324    ///
33325    /// `InstParameterGroupGroup: LBrace InstParameterList RBrace;`
33326    ///
33327    #[parol_runtime::function_name::named]
33328    fn inst_parameter_group_group_0(
33329        &mut self,
33330        _l_brace: &ParseTreeType<'t>,
33331        _inst_parameter_list: &ParseTreeType<'t>,
33332        _r_brace: &ParseTreeType<'t>,
33333    ) -> Result<()> {
33334        let context = function_name!();
33335        trace!("{}", self.trace_item_stack(context));
33336        let r_brace = pop_item!(self, r_brace, RBrace, context);
33337        let inst_parameter_list = pop_item!(self, inst_parameter_list, InstParameterList, context);
33338        let l_brace = pop_item!(self, l_brace, LBrace, context);
33339        let inst_parameter_group_group_0_built =
33340            InstParameterGroupGroupLBraceInstParameterListRBrace {
33341                l_brace: Box::new(l_brace),
33342                inst_parameter_list: Box::new(inst_parameter_list),
33343                r_brace: Box::new(r_brace),
33344            };
33345        let inst_parameter_group_group_0_built =
33346            InstParameterGroupGroup::LBraceInstParameterListRBrace(
33347                inst_parameter_group_group_0_built,
33348            );
33349        self.push(
33350            ASTType::InstParameterGroupGroup(inst_parameter_group_group_0_built),
33351            context,
33352        );
33353        Ok(())
33354    }
33355
33356    /// Semantic action for production 841:
33357    ///
33358    /// `InstParameterGroupGroup: InstParameterItem;`
33359    ///
33360    #[parol_runtime::function_name::named]
33361    fn inst_parameter_group_group_1(
33362        &mut self,
33363        _inst_parameter_item: &ParseTreeType<'t>,
33364    ) -> Result<()> {
33365        let context = function_name!();
33366        trace!("{}", self.trace_item_stack(context));
33367        let inst_parameter_item = pop_item!(self, inst_parameter_item, InstParameterItem, context);
33368        let inst_parameter_group_group_1_built = InstParameterGroupGroupInstParameterItem {
33369            inst_parameter_item: Box::new(inst_parameter_item),
33370        };
33371        let inst_parameter_group_group_1_built =
33372            InstParameterGroupGroup::InstParameterItem(inst_parameter_group_group_1_built);
33373        self.push(
33374            ASTType::InstParameterGroupGroup(inst_parameter_group_group_1_built),
33375            context,
33376        );
33377        Ok(())
33378    }
33379
33380    /// Semantic action for production 842:
33381    ///
33382    /// `InstParameterGroupList /* Vec<T>::Push */: Attribute InstParameterGroupList;`
33383    ///
33384    #[parol_runtime::function_name::named]
33385    fn inst_parameter_group_list_0(
33386        &mut self,
33387        _attribute: &ParseTreeType<'t>,
33388        _inst_parameter_group_list: &ParseTreeType<'t>,
33389    ) -> Result<()> {
33390        let context = function_name!();
33391        trace!("{}", self.trace_item_stack(context));
33392        let mut inst_parameter_group_list = pop_item!(
33393            self,
33394            inst_parameter_group_list,
33395            InstParameterGroupList,
33396            context
33397        );
33398        let attribute = pop_item!(self, attribute, Attribute, context);
33399        let inst_parameter_group_list_0_built = InstParameterGroupList {
33400            attribute: Box::new(attribute),
33401        };
33402        // Add an element to the vector
33403        inst_parameter_group_list.push(inst_parameter_group_list_0_built);
33404        self.push(
33405            ASTType::InstParameterGroupList(inst_parameter_group_list),
33406            context,
33407        );
33408        Ok(())
33409    }
33410
33411    /// Semantic action for production 843:
33412    ///
33413    /// `InstParameterGroupList /* Vec<T>::New */: ;`
33414    ///
33415    #[parol_runtime::function_name::named]
33416    fn inst_parameter_group_list_1(&mut self) -> Result<()> {
33417        let context = function_name!();
33418        trace!("{}", self.trace_item_stack(context));
33419        let inst_parameter_group_list_1_built = Vec::new();
33420        self.push(
33421            ASTType::InstParameterGroupList(inst_parameter_group_list_1_built),
33422            context,
33423        );
33424        Ok(())
33425    }
33426
33427    /// Semantic action for production 844:
33428    ///
33429    /// `InstParameterItem: Identifier InstParameterItemOpt /* Option */;`
33430    ///
33431    #[parol_runtime::function_name::named]
33432    fn inst_parameter_item(
33433        &mut self,
33434        _identifier: &ParseTreeType<'t>,
33435        _inst_parameter_item_opt: &ParseTreeType<'t>,
33436    ) -> Result<()> {
33437        let context = function_name!();
33438        trace!("{}", self.trace_item_stack(context));
33439        let inst_parameter_item_opt =
33440            pop_item!(self, inst_parameter_item_opt, InstParameterItemOpt, context);
33441        let identifier = pop_item!(self, identifier, Identifier, context);
33442        let inst_parameter_item_built = InstParameterItem {
33443            identifier: Box::new(identifier),
33444            inst_parameter_item_opt,
33445        };
33446        // Calling user action here
33447        self.user_grammar
33448            .inst_parameter_item(&inst_parameter_item_built)?;
33449        self.push(
33450            ASTType::InstParameterItem(inst_parameter_item_built),
33451            context,
33452        );
33453        Ok(())
33454    }
33455
33456    /// Semantic action for production 845:
33457    ///
33458    /// `InstParameterItemOpt /* Option<T>::Some */: Colon Expression;`
33459    ///
33460    #[parol_runtime::function_name::named]
33461    fn inst_parameter_item_opt_0(
33462        &mut self,
33463        _colon: &ParseTreeType<'t>,
33464        _expression: &ParseTreeType<'t>,
33465    ) -> Result<()> {
33466        let context = function_name!();
33467        trace!("{}", self.trace_item_stack(context));
33468        let expression = pop_item!(self, expression, Expression, context);
33469        let colon = pop_item!(self, colon, Colon, context);
33470        let inst_parameter_item_opt_0_built = InstParameterItemOpt {
33471            colon: Box::new(colon),
33472            expression: Box::new(expression),
33473        };
33474        self.push(
33475            ASTType::InstParameterItemOpt(Some(inst_parameter_item_opt_0_built)),
33476            context,
33477        );
33478        Ok(())
33479    }
33480
33481    /// Semantic action for production 846:
33482    ///
33483    /// `InstParameterItemOpt /* Option<T>::None */: ;`
33484    ///
33485    #[parol_runtime::function_name::named]
33486    fn inst_parameter_item_opt_1(&mut self) -> Result<()> {
33487        let context = function_name!();
33488        trace!("{}", self.trace_item_stack(context));
33489        self.push(ASTType::InstParameterItemOpt(None), context);
33490        Ok(())
33491    }
33492
33493    /// Semantic action for production 847:
33494    ///
33495    /// `InstPort: LParen InstPortOpt /* Option */ RParen;`
33496    ///
33497    #[parol_runtime::function_name::named]
33498    fn inst_port(
33499        &mut self,
33500        _l_paren: &ParseTreeType<'t>,
33501        _inst_port_opt: &ParseTreeType<'t>,
33502        _r_paren: &ParseTreeType<'t>,
33503    ) -> Result<()> {
33504        let context = function_name!();
33505        trace!("{}", self.trace_item_stack(context));
33506        let r_paren = pop_item!(self, r_paren, RParen, context);
33507        let inst_port_opt = pop_item!(self, inst_port_opt, InstPortOpt, context);
33508        let l_paren = pop_item!(self, l_paren, LParen, context);
33509        let inst_port_built = InstPort {
33510            l_paren: Box::new(l_paren),
33511            inst_port_opt,
33512            r_paren: Box::new(r_paren),
33513        };
33514        // Calling user action here
33515        self.user_grammar.inst_port(&inst_port_built)?;
33516        self.push(ASTType::InstPort(inst_port_built), context);
33517        Ok(())
33518    }
33519
33520    /// Semantic action for production 848:
33521    ///
33522    /// `InstPortOpt /* Option<T>::Some */: InstPortList;`
33523    ///
33524    #[parol_runtime::function_name::named]
33525    fn inst_port_opt_0(&mut self, _inst_port_list: &ParseTreeType<'t>) -> Result<()> {
33526        let context = function_name!();
33527        trace!("{}", self.trace_item_stack(context));
33528        let inst_port_list = pop_item!(self, inst_port_list, InstPortList, context);
33529        let inst_port_opt_0_built = InstPortOpt {
33530            inst_port_list: Box::new(inst_port_list),
33531        };
33532        self.push(ASTType::InstPortOpt(Some(inst_port_opt_0_built)), context);
33533        Ok(())
33534    }
33535
33536    /// Semantic action for production 849:
33537    ///
33538    /// `InstPortOpt /* Option<T>::None */: ;`
33539    ///
33540    #[parol_runtime::function_name::named]
33541    fn inst_port_opt_1(&mut self) -> Result<()> {
33542        let context = function_name!();
33543        trace!("{}", self.trace_item_stack(context));
33544        self.push(ASTType::InstPortOpt(None), context);
33545        Ok(())
33546    }
33547
33548    /// Semantic action for production 850:
33549    ///
33550    /// `InstPortList: InstPortGroup InstPortListList /* Vec */ InstPortListOpt /* Option */;`
33551    ///
33552    #[parol_runtime::function_name::named]
33553    fn inst_port_list(
33554        &mut self,
33555        _inst_port_group: &ParseTreeType<'t>,
33556        _inst_port_list_list: &ParseTreeType<'t>,
33557        _inst_port_list_opt: &ParseTreeType<'t>,
33558    ) -> Result<()> {
33559        let context = function_name!();
33560        trace!("{}", self.trace_item_stack(context));
33561        let inst_port_list_opt = pop_item!(self, inst_port_list_opt, InstPortListOpt, context);
33562        let inst_port_list_list =
33563            pop_and_reverse_item!(self, inst_port_list_list, InstPortListList, context);
33564        let inst_port_group = pop_item!(self, inst_port_group, InstPortGroup, context);
33565        let inst_port_list_built = InstPortList {
33566            inst_port_group: Box::new(inst_port_group),
33567            inst_port_list_list,
33568            inst_port_list_opt,
33569        };
33570        // Calling user action here
33571        self.user_grammar.inst_port_list(&inst_port_list_built)?;
33572        self.push(ASTType::InstPortList(inst_port_list_built), context);
33573        Ok(())
33574    }
33575
33576    /// Semantic action for production 851:
33577    ///
33578    /// `InstPortListList /* Vec<T>::Push */: Comma InstPortGroup InstPortListList;`
33579    ///
33580    #[parol_runtime::function_name::named]
33581    fn inst_port_list_list_0(
33582        &mut self,
33583        _comma: &ParseTreeType<'t>,
33584        _inst_port_group: &ParseTreeType<'t>,
33585        _inst_port_list_list: &ParseTreeType<'t>,
33586    ) -> Result<()> {
33587        let context = function_name!();
33588        trace!("{}", self.trace_item_stack(context));
33589        let mut inst_port_list_list =
33590            pop_item!(self, inst_port_list_list, InstPortListList, context);
33591        let inst_port_group = pop_item!(self, inst_port_group, InstPortGroup, context);
33592        let comma = pop_item!(self, comma, Comma, context);
33593        let inst_port_list_list_0_built = InstPortListList {
33594            inst_port_group: Box::new(inst_port_group),
33595            comma: Box::new(comma),
33596        };
33597        // Add an element to the vector
33598        inst_port_list_list.push(inst_port_list_list_0_built);
33599        self.push(ASTType::InstPortListList(inst_port_list_list), context);
33600        Ok(())
33601    }
33602
33603    /// Semantic action for production 852:
33604    ///
33605    /// `InstPortListList /* Vec<T>::New */: ;`
33606    ///
33607    #[parol_runtime::function_name::named]
33608    fn inst_port_list_list_1(&mut self) -> Result<()> {
33609        let context = function_name!();
33610        trace!("{}", self.trace_item_stack(context));
33611        let inst_port_list_list_1_built = Vec::new();
33612        self.push(
33613            ASTType::InstPortListList(inst_port_list_list_1_built),
33614            context,
33615        );
33616        Ok(())
33617    }
33618
33619    /// Semantic action for production 853:
33620    ///
33621    /// `InstPortListOpt /* Option<T>::Some */: Comma;`
33622    ///
33623    #[parol_runtime::function_name::named]
33624    fn inst_port_list_opt_0(&mut self, _comma: &ParseTreeType<'t>) -> Result<()> {
33625        let context = function_name!();
33626        trace!("{}", self.trace_item_stack(context));
33627        let comma = pop_item!(self, comma, Comma, context);
33628        let inst_port_list_opt_0_built = InstPortListOpt {
33629            comma: Box::new(comma),
33630        };
33631        self.push(
33632            ASTType::InstPortListOpt(Some(inst_port_list_opt_0_built)),
33633            context,
33634        );
33635        Ok(())
33636    }
33637
33638    /// Semantic action for production 854:
33639    ///
33640    /// `InstPortListOpt /* Option<T>::None */: ;`
33641    ///
33642    #[parol_runtime::function_name::named]
33643    fn inst_port_list_opt_1(&mut self) -> Result<()> {
33644        let context = function_name!();
33645        trace!("{}", self.trace_item_stack(context));
33646        self.push(ASTType::InstPortListOpt(None), context);
33647        Ok(())
33648    }
33649
33650    /// Semantic action for production 855:
33651    ///
33652    /// `InstPortGroup: InstPortGroupList /* Vec */ InstPortGroupGroup;`
33653    ///
33654    #[parol_runtime::function_name::named]
33655    fn inst_port_group(
33656        &mut self,
33657        _inst_port_group_list: &ParseTreeType<'t>,
33658        _inst_port_group_group: &ParseTreeType<'t>,
33659    ) -> Result<()> {
33660        let context = function_name!();
33661        trace!("{}", self.trace_item_stack(context));
33662        let inst_port_group_group =
33663            pop_item!(self, inst_port_group_group, InstPortGroupGroup, context);
33664        let inst_port_group_list =
33665            pop_and_reverse_item!(self, inst_port_group_list, InstPortGroupList, context);
33666        let inst_port_group_built = InstPortGroup {
33667            inst_port_group_list,
33668            inst_port_group_group: Box::new(inst_port_group_group),
33669        };
33670        // Calling user action here
33671        self.user_grammar.inst_port_group(&inst_port_group_built)?;
33672        self.push(ASTType::InstPortGroup(inst_port_group_built), context);
33673        Ok(())
33674    }
33675
33676    /// Semantic action for production 856:
33677    ///
33678    /// `InstPortGroupGroup: LBrace InstPortList RBrace;`
33679    ///
33680    #[parol_runtime::function_name::named]
33681    fn inst_port_group_group_0(
33682        &mut self,
33683        _l_brace: &ParseTreeType<'t>,
33684        _inst_port_list: &ParseTreeType<'t>,
33685        _r_brace: &ParseTreeType<'t>,
33686    ) -> Result<()> {
33687        let context = function_name!();
33688        trace!("{}", self.trace_item_stack(context));
33689        let r_brace = pop_item!(self, r_brace, RBrace, context);
33690        let inst_port_list = pop_item!(self, inst_port_list, InstPortList, context);
33691        let l_brace = pop_item!(self, l_brace, LBrace, context);
33692        let inst_port_group_group_0_built = InstPortGroupGroupLBraceInstPortListRBrace {
33693            l_brace: Box::new(l_brace),
33694            inst_port_list: Box::new(inst_port_list),
33695            r_brace: Box::new(r_brace),
33696        };
33697        let inst_port_group_group_0_built =
33698            InstPortGroupGroup::LBraceInstPortListRBrace(inst_port_group_group_0_built);
33699        self.push(
33700            ASTType::InstPortGroupGroup(inst_port_group_group_0_built),
33701            context,
33702        );
33703        Ok(())
33704    }
33705
33706    /// Semantic action for production 857:
33707    ///
33708    /// `InstPortGroupGroup: InstPortItem;`
33709    ///
33710    #[parol_runtime::function_name::named]
33711    fn inst_port_group_group_1(&mut self, _inst_port_item: &ParseTreeType<'t>) -> Result<()> {
33712        let context = function_name!();
33713        trace!("{}", self.trace_item_stack(context));
33714        let inst_port_item = pop_item!(self, inst_port_item, InstPortItem, context);
33715        let inst_port_group_group_1_built = InstPortGroupGroupInstPortItem {
33716            inst_port_item: Box::new(inst_port_item),
33717        };
33718        let inst_port_group_group_1_built =
33719            InstPortGroupGroup::InstPortItem(inst_port_group_group_1_built);
33720        self.push(
33721            ASTType::InstPortGroupGroup(inst_port_group_group_1_built),
33722            context,
33723        );
33724        Ok(())
33725    }
33726
33727    /// Semantic action for production 858:
33728    ///
33729    /// `InstPortGroupList /* Vec<T>::Push */: Attribute InstPortGroupList;`
33730    ///
33731    #[parol_runtime::function_name::named]
33732    fn inst_port_group_list_0(
33733        &mut self,
33734        _attribute: &ParseTreeType<'t>,
33735        _inst_port_group_list: &ParseTreeType<'t>,
33736    ) -> Result<()> {
33737        let context = function_name!();
33738        trace!("{}", self.trace_item_stack(context));
33739        let mut inst_port_group_list =
33740            pop_item!(self, inst_port_group_list, InstPortGroupList, context);
33741        let attribute = pop_item!(self, attribute, Attribute, context);
33742        let inst_port_group_list_0_built = InstPortGroupList {
33743            attribute: Box::new(attribute),
33744        };
33745        // Add an element to the vector
33746        inst_port_group_list.push(inst_port_group_list_0_built);
33747        self.push(ASTType::InstPortGroupList(inst_port_group_list), context);
33748        Ok(())
33749    }
33750
33751    /// Semantic action for production 859:
33752    ///
33753    /// `InstPortGroupList /* Vec<T>::New */: ;`
33754    ///
33755    #[parol_runtime::function_name::named]
33756    fn inst_port_group_list_1(&mut self) -> Result<()> {
33757        let context = function_name!();
33758        trace!("{}", self.trace_item_stack(context));
33759        let inst_port_group_list_1_built = Vec::new();
33760        self.push(
33761            ASTType::InstPortGroupList(inst_port_group_list_1_built),
33762            context,
33763        );
33764        Ok(())
33765    }
33766
33767    /// Semantic action for production 860:
33768    ///
33769    /// `InstPortItem: Identifier InstPortItemOpt /* Option */;`
33770    ///
33771    #[parol_runtime::function_name::named]
33772    fn inst_port_item(
33773        &mut self,
33774        _identifier: &ParseTreeType<'t>,
33775        _inst_port_item_opt: &ParseTreeType<'t>,
33776    ) -> Result<()> {
33777        let context = function_name!();
33778        trace!("{}", self.trace_item_stack(context));
33779        let inst_port_item_opt = pop_item!(self, inst_port_item_opt, InstPortItemOpt, context);
33780        let identifier = pop_item!(self, identifier, Identifier, context);
33781        let inst_port_item_built = InstPortItem {
33782            identifier: Box::new(identifier),
33783            inst_port_item_opt,
33784        };
33785        // Calling user action here
33786        self.user_grammar.inst_port_item(&inst_port_item_built)?;
33787        self.push(ASTType::InstPortItem(inst_port_item_built), context);
33788        Ok(())
33789    }
33790
33791    /// Semantic action for production 861:
33792    ///
33793    /// `InstPortItemOpt /* Option<T>::Some */: Colon Expression;`
33794    ///
33795    #[parol_runtime::function_name::named]
33796    fn inst_port_item_opt_0(
33797        &mut self,
33798        _colon: &ParseTreeType<'t>,
33799        _expression: &ParseTreeType<'t>,
33800    ) -> Result<()> {
33801        let context = function_name!();
33802        trace!("{}", self.trace_item_stack(context));
33803        let expression = pop_item!(self, expression, Expression, context);
33804        let colon = pop_item!(self, colon, Colon, context);
33805        let inst_port_item_opt_0_built = InstPortItemOpt {
33806            colon: Box::new(colon),
33807            expression: Box::new(expression),
33808        };
33809        self.push(
33810            ASTType::InstPortItemOpt(Some(inst_port_item_opt_0_built)),
33811            context,
33812        );
33813        Ok(())
33814    }
33815
33816    /// Semantic action for production 862:
33817    ///
33818    /// `InstPortItemOpt /* Option<T>::None */: ;`
33819    ///
33820    #[parol_runtime::function_name::named]
33821    fn inst_port_item_opt_1(&mut self) -> Result<()> {
33822        let context = function_name!();
33823        trace!("{}", self.trace_item_stack(context));
33824        self.push(ASTType::InstPortItemOpt(None), context);
33825        Ok(())
33826    }
33827
33828    /// Semantic action for production 863:
33829    ///
33830    /// `WithParameter: Hash LParen WithParameterOpt /* Option */ RParen;`
33831    ///
33832    #[parol_runtime::function_name::named]
33833    fn with_parameter(
33834        &mut self,
33835        _hash: &ParseTreeType<'t>,
33836        _l_paren: &ParseTreeType<'t>,
33837        _with_parameter_opt: &ParseTreeType<'t>,
33838        _r_paren: &ParseTreeType<'t>,
33839    ) -> Result<()> {
33840        let context = function_name!();
33841        trace!("{}", self.trace_item_stack(context));
33842        let r_paren = pop_item!(self, r_paren, RParen, context);
33843        let with_parameter_opt = pop_item!(self, with_parameter_opt, WithParameterOpt, context);
33844        let l_paren = pop_item!(self, l_paren, LParen, context);
33845        let hash = pop_item!(self, hash, Hash, context);
33846        let with_parameter_built = WithParameter {
33847            hash: Box::new(hash),
33848            l_paren: Box::new(l_paren),
33849            with_parameter_opt,
33850            r_paren: Box::new(r_paren),
33851        };
33852        // Calling user action here
33853        self.user_grammar.with_parameter(&with_parameter_built)?;
33854        self.push(ASTType::WithParameter(with_parameter_built), context);
33855        Ok(())
33856    }
33857
33858    /// Semantic action for production 864:
33859    ///
33860    /// `WithParameterOpt /* Option<T>::Some */: WithParameterList;`
33861    ///
33862    #[parol_runtime::function_name::named]
33863    fn with_parameter_opt_0(&mut self, _with_parameter_list: &ParseTreeType<'t>) -> Result<()> {
33864        let context = function_name!();
33865        trace!("{}", self.trace_item_stack(context));
33866        let with_parameter_list = pop_item!(self, with_parameter_list, WithParameterList, context);
33867        let with_parameter_opt_0_built = WithParameterOpt {
33868            with_parameter_list: Box::new(with_parameter_list),
33869        };
33870        self.push(
33871            ASTType::WithParameterOpt(Some(with_parameter_opt_0_built)),
33872            context,
33873        );
33874        Ok(())
33875    }
33876
33877    /// Semantic action for production 865:
33878    ///
33879    /// `WithParameterOpt /* Option<T>::None */: ;`
33880    ///
33881    #[parol_runtime::function_name::named]
33882    fn with_parameter_opt_1(&mut self) -> Result<()> {
33883        let context = function_name!();
33884        trace!("{}", self.trace_item_stack(context));
33885        self.push(ASTType::WithParameterOpt(None), context);
33886        Ok(())
33887    }
33888
33889    /// Semantic action for production 866:
33890    ///
33891    /// `WithParameterList: WithParameterGroup WithParameterListList /* Vec */ WithParameterListOpt /* Option */;`
33892    ///
33893    #[parol_runtime::function_name::named]
33894    fn with_parameter_list(
33895        &mut self,
33896        _with_parameter_group: &ParseTreeType<'t>,
33897        _with_parameter_list_list: &ParseTreeType<'t>,
33898        _with_parameter_list_opt: &ParseTreeType<'t>,
33899    ) -> Result<()> {
33900        let context = function_name!();
33901        trace!("{}", self.trace_item_stack(context));
33902        let with_parameter_list_opt =
33903            pop_item!(self, with_parameter_list_opt, WithParameterListOpt, context);
33904        let with_parameter_list_list = pop_and_reverse_item!(
33905            self,
33906            with_parameter_list_list,
33907            WithParameterListList,
33908            context
33909        );
33910        let with_parameter_group =
33911            pop_item!(self, with_parameter_group, WithParameterGroup, context);
33912        let with_parameter_list_built = WithParameterList {
33913            with_parameter_group: Box::new(with_parameter_group),
33914            with_parameter_list_list,
33915            with_parameter_list_opt,
33916        };
33917        // Calling user action here
33918        self.user_grammar
33919            .with_parameter_list(&with_parameter_list_built)?;
33920        self.push(
33921            ASTType::WithParameterList(with_parameter_list_built),
33922            context,
33923        );
33924        Ok(())
33925    }
33926
33927    /// Semantic action for production 867:
33928    ///
33929    /// `WithParameterListList /* Vec<T>::Push */: Comma WithParameterGroup WithParameterListList;`
33930    ///
33931    #[parol_runtime::function_name::named]
33932    fn with_parameter_list_list_0(
33933        &mut self,
33934        _comma: &ParseTreeType<'t>,
33935        _with_parameter_group: &ParseTreeType<'t>,
33936        _with_parameter_list_list: &ParseTreeType<'t>,
33937    ) -> Result<()> {
33938        let context = function_name!();
33939        trace!("{}", self.trace_item_stack(context));
33940        let mut with_parameter_list_list = pop_item!(
33941            self,
33942            with_parameter_list_list,
33943            WithParameterListList,
33944            context
33945        );
33946        let with_parameter_group =
33947            pop_item!(self, with_parameter_group, WithParameterGroup, context);
33948        let comma = pop_item!(self, comma, Comma, context);
33949        let with_parameter_list_list_0_built = WithParameterListList {
33950            with_parameter_group: Box::new(with_parameter_group),
33951            comma: Box::new(comma),
33952        };
33953        // Add an element to the vector
33954        with_parameter_list_list.push(with_parameter_list_list_0_built);
33955        self.push(
33956            ASTType::WithParameterListList(with_parameter_list_list),
33957            context,
33958        );
33959        Ok(())
33960    }
33961
33962    /// Semantic action for production 868:
33963    ///
33964    /// `WithParameterListList /* Vec<T>::New */: ;`
33965    ///
33966    #[parol_runtime::function_name::named]
33967    fn with_parameter_list_list_1(&mut self) -> Result<()> {
33968        let context = function_name!();
33969        trace!("{}", self.trace_item_stack(context));
33970        let with_parameter_list_list_1_built = Vec::new();
33971        self.push(
33972            ASTType::WithParameterListList(with_parameter_list_list_1_built),
33973            context,
33974        );
33975        Ok(())
33976    }
33977
33978    /// Semantic action for production 869:
33979    ///
33980    /// `WithParameterListOpt /* Option<T>::Some */: Comma;`
33981    ///
33982    #[parol_runtime::function_name::named]
33983    fn with_parameter_list_opt_0(&mut self, _comma: &ParseTreeType<'t>) -> Result<()> {
33984        let context = function_name!();
33985        trace!("{}", self.trace_item_stack(context));
33986        let comma = pop_item!(self, comma, Comma, context);
33987        let with_parameter_list_opt_0_built = WithParameterListOpt {
33988            comma: Box::new(comma),
33989        };
33990        self.push(
33991            ASTType::WithParameterListOpt(Some(with_parameter_list_opt_0_built)),
33992            context,
33993        );
33994        Ok(())
33995    }
33996
33997    /// Semantic action for production 870:
33998    ///
33999    /// `WithParameterListOpt /* Option<T>::None */: ;`
34000    ///
34001    #[parol_runtime::function_name::named]
34002    fn with_parameter_list_opt_1(&mut self) -> Result<()> {
34003        let context = function_name!();
34004        trace!("{}", self.trace_item_stack(context));
34005        self.push(ASTType::WithParameterListOpt(None), context);
34006        Ok(())
34007    }
34008
34009    /// Semantic action for production 871:
34010    ///
34011    /// `WithParameterGroup: WithParameterGroupList /* Vec */ WithParameterGroupGroup;`
34012    ///
34013    #[parol_runtime::function_name::named]
34014    fn with_parameter_group(
34015        &mut self,
34016        _with_parameter_group_list: &ParseTreeType<'t>,
34017        _with_parameter_group_group: &ParseTreeType<'t>,
34018    ) -> Result<()> {
34019        let context = function_name!();
34020        trace!("{}", self.trace_item_stack(context));
34021        let with_parameter_group_group = pop_item!(
34022            self,
34023            with_parameter_group_group,
34024            WithParameterGroupGroup,
34025            context
34026        );
34027        let with_parameter_group_list = pop_and_reverse_item!(
34028            self,
34029            with_parameter_group_list,
34030            WithParameterGroupList,
34031            context
34032        );
34033        let with_parameter_group_built = WithParameterGroup {
34034            with_parameter_group_list,
34035            with_parameter_group_group: Box::new(with_parameter_group_group),
34036        };
34037        // Calling user action here
34038        self.user_grammar
34039            .with_parameter_group(&with_parameter_group_built)?;
34040        self.push(
34041            ASTType::WithParameterGroup(with_parameter_group_built),
34042            context,
34043        );
34044        Ok(())
34045    }
34046
34047    /// Semantic action for production 872:
34048    ///
34049    /// `WithParameterGroupGroup: LBrace WithParameterList RBrace;`
34050    ///
34051    #[parol_runtime::function_name::named]
34052    fn with_parameter_group_group_0(
34053        &mut self,
34054        _l_brace: &ParseTreeType<'t>,
34055        _with_parameter_list: &ParseTreeType<'t>,
34056        _r_brace: &ParseTreeType<'t>,
34057    ) -> Result<()> {
34058        let context = function_name!();
34059        trace!("{}", self.trace_item_stack(context));
34060        let r_brace = pop_item!(self, r_brace, RBrace, context);
34061        let with_parameter_list = pop_item!(self, with_parameter_list, WithParameterList, context);
34062        let l_brace = pop_item!(self, l_brace, LBrace, context);
34063        let with_parameter_group_group_0_built =
34064            WithParameterGroupGroupLBraceWithParameterListRBrace {
34065                l_brace: Box::new(l_brace),
34066                with_parameter_list: Box::new(with_parameter_list),
34067                r_brace: Box::new(r_brace),
34068            };
34069        let with_parameter_group_group_0_built =
34070            WithParameterGroupGroup::LBraceWithParameterListRBrace(
34071                with_parameter_group_group_0_built,
34072            );
34073        self.push(
34074            ASTType::WithParameterGroupGroup(with_parameter_group_group_0_built),
34075            context,
34076        );
34077        Ok(())
34078    }
34079
34080    /// Semantic action for production 873:
34081    ///
34082    /// `WithParameterGroupGroup: WithParameterItem;`
34083    ///
34084    #[parol_runtime::function_name::named]
34085    fn with_parameter_group_group_1(
34086        &mut self,
34087        _with_parameter_item: &ParseTreeType<'t>,
34088    ) -> Result<()> {
34089        let context = function_name!();
34090        trace!("{}", self.trace_item_stack(context));
34091        let with_parameter_item = pop_item!(self, with_parameter_item, WithParameterItem, context);
34092        let with_parameter_group_group_1_built = WithParameterGroupGroupWithParameterItem {
34093            with_parameter_item: Box::new(with_parameter_item),
34094        };
34095        let with_parameter_group_group_1_built =
34096            WithParameterGroupGroup::WithParameterItem(with_parameter_group_group_1_built);
34097        self.push(
34098            ASTType::WithParameterGroupGroup(with_parameter_group_group_1_built),
34099            context,
34100        );
34101        Ok(())
34102    }
34103
34104    /// Semantic action for production 874:
34105    ///
34106    /// `WithParameterGroupList /* Vec<T>::Push */: Attribute WithParameterGroupList;`
34107    ///
34108    #[parol_runtime::function_name::named]
34109    fn with_parameter_group_list_0(
34110        &mut self,
34111        _attribute: &ParseTreeType<'t>,
34112        _with_parameter_group_list: &ParseTreeType<'t>,
34113    ) -> Result<()> {
34114        let context = function_name!();
34115        trace!("{}", self.trace_item_stack(context));
34116        let mut with_parameter_group_list = pop_item!(
34117            self,
34118            with_parameter_group_list,
34119            WithParameterGroupList,
34120            context
34121        );
34122        let attribute = pop_item!(self, attribute, Attribute, context);
34123        let with_parameter_group_list_0_built = WithParameterGroupList {
34124            attribute: Box::new(attribute),
34125        };
34126        // Add an element to the vector
34127        with_parameter_group_list.push(with_parameter_group_list_0_built);
34128        self.push(
34129            ASTType::WithParameterGroupList(with_parameter_group_list),
34130            context,
34131        );
34132        Ok(())
34133    }
34134
34135    /// Semantic action for production 875:
34136    ///
34137    /// `WithParameterGroupList /* Vec<T>::New */: ;`
34138    ///
34139    #[parol_runtime::function_name::named]
34140    fn with_parameter_group_list_1(&mut self) -> Result<()> {
34141        let context = function_name!();
34142        trace!("{}", self.trace_item_stack(context));
34143        let with_parameter_group_list_1_built = Vec::new();
34144        self.push(
34145            ASTType::WithParameterGroupList(with_parameter_group_list_1_built),
34146            context,
34147        );
34148        Ok(())
34149    }
34150
34151    /// Semantic action for production 876:
34152    ///
34153    /// `WithParameterItem: WithParameterItemGroup Identifier Colon WithParameterItemGroup0 WithParameterItemOpt /* Option */;`
34154    ///
34155    #[parol_runtime::function_name::named]
34156    fn with_parameter_item(
34157        &mut self,
34158        _with_parameter_item_group: &ParseTreeType<'t>,
34159        _identifier: &ParseTreeType<'t>,
34160        _colon: &ParseTreeType<'t>,
34161        _with_parameter_item_group0: &ParseTreeType<'t>,
34162        _with_parameter_item_opt: &ParseTreeType<'t>,
34163    ) -> Result<()> {
34164        let context = function_name!();
34165        trace!("{}", self.trace_item_stack(context));
34166        let with_parameter_item_opt =
34167            pop_item!(self, with_parameter_item_opt, WithParameterItemOpt, context);
34168        let with_parameter_item_group0 = pop_item!(
34169            self,
34170            with_parameter_item_group0,
34171            WithParameterItemGroup0,
34172            context
34173        );
34174        let colon = pop_item!(self, colon, Colon, context);
34175        let identifier = pop_item!(self, identifier, Identifier, context);
34176        let with_parameter_item_group = pop_item!(
34177            self,
34178            with_parameter_item_group,
34179            WithParameterItemGroup,
34180            context
34181        );
34182        let with_parameter_item_built = WithParameterItem {
34183            with_parameter_item_group: Box::new(with_parameter_item_group),
34184            identifier: Box::new(identifier),
34185            colon: Box::new(colon),
34186            with_parameter_item_group0: Box::new(with_parameter_item_group0),
34187            with_parameter_item_opt,
34188        };
34189        // Calling user action here
34190        self.user_grammar
34191            .with_parameter_item(&with_parameter_item_built)?;
34192        self.push(
34193            ASTType::WithParameterItem(with_parameter_item_built),
34194            context,
34195        );
34196        Ok(())
34197    }
34198
34199    /// Semantic action for production 877:
34200    ///
34201    /// `WithParameterItemGroup0: ArrayType;`
34202    ///
34203    #[parol_runtime::function_name::named]
34204    fn with_parameter_item_group0_0(&mut self, _array_type: &ParseTreeType<'t>) -> Result<()> {
34205        let context = function_name!();
34206        trace!("{}", self.trace_item_stack(context));
34207        let array_type = pop_item!(self, array_type, ArrayType, context);
34208        let with_parameter_item_group0_0_built = WithParameterItemGroup0ArrayType {
34209            array_type: Box::new(array_type),
34210        };
34211        let with_parameter_item_group0_0_built =
34212            WithParameterItemGroup0::ArrayType(with_parameter_item_group0_0_built);
34213        self.push(
34214            ASTType::WithParameterItemGroup0(with_parameter_item_group0_0_built),
34215            context,
34216        );
34217        Ok(())
34218    }
34219
34220    /// Semantic action for production 878:
34221    ///
34222    /// `WithParameterItemGroup0: Type;`
34223    ///
34224    #[parol_runtime::function_name::named]
34225    fn with_parameter_item_group0_1(&mut self, _type: &ParseTreeType<'t>) -> Result<()> {
34226        let context = function_name!();
34227        trace!("{}", self.trace_item_stack(context));
34228        let r#type = pop_item!(self, r#type, Type, context);
34229        let with_parameter_item_group0_1_built = WithParameterItemGroup0Type {
34230            r#type: Box::new(r#type),
34231        };
34232        let with_parameter_item_group0_1_built =
34233            WithParameterItemGroup0::Type(with_parameter_item_group0_1_built);
34234        self.push(
34235            ASTType::WithParameterItemGroup0(with_parameter_item_group0_1_built),
34236            context,
34237        );
34238        Ok(())
34239    }
34240
34241    /// Semantic action for production 879:
34242    ///
34243    /// `WithParameterItemGroup: Param;`
34244    ///
34245    #[parol_runtime::function_name::named]
34246    fn with_parameter_item_group_0(&mut self, _param: &ParseTreeType<'t>) -> Result<()> {
34247        let context = function_name!();
34248        trace!("{}", self.trace_item_stack(context));
34249        let param = pop_item!(self, param, Param, context);
34250        let with_parameter_item_group_0_built = WithParameterItemGroupParam {
34251            param: Box::new(param),
34252        };
34253        let with_parameter_item_group_0_built =
34254            WithParameterItemGroup::Param(with_parameter_item_group_0_built);
34255        self.push(
34256            ASTType::WithParameterItemGroup(with_parameter_item_group_0_built),
34257            context,
34258        );
34259        Ok(())
34260    }
34261
34262    /// Semantic action for production 880:
34263    ///
34264    /// `WithParameterItemGroup: Const;`
34265    ///
34266    #[parol_runtime::function_name::named]
34267    fn with_parameter_item_group_1(&mut self, _const: &ParseTreeType<'t>) -> Result<()> {
34268        let context = function_name!();
34269        trace!("{}", self.trace_item_stack(context));
34270        let r#const = pop_item!(self, r#const, Const, context);
34271        let with_parameter_item_group_1_built = WithParameterItemGroupConst {
34272            r#const: Box::new(r#const),
34273        };
34274        let with_parameter_item_group_1_built =
34275            WithParameterItemGroup::Const(with_parameter_item_group_1_built);
34276        self.push(
34277            ASTType::WithParameterItemGroup(with_parameter_item_group_1_built),
34278            context,
34279        );
34280        Ok(())
34281    }
34282
34283    /// Semantic action for production 881:
34284    ///
34285    /// `WithParameterItemOpt /* Option<T>::Some */: Equ Expression;`
34286    ///
34287    #[parol_runtime::function_name::named]
34288    fn with_parameter_item_opt_0(
34289        &mut self,
34290        _equ: &ParseTreeType<'t>,
34291        _expression: &ParseTreeType<'t>,
34292    ) -> Result<()> {
34293        let context = function_name!();
34294        trace!("{}", self.trace_item_stack(context));
34295        let expression = pop_item!(self, expression, Expression, context);
34296        let equ = pop_item!(self, equ, Equ, context);
34297        let with_parameter_item_opt_0_built = WithParameterItemOpt {
34298            equ: Box::new(equ),
34299            expression: Box::new(expression),
34300        };
34301        self.push(
34302            ASTType::WithParameterItemOpt(Some(with_parameter_item_opt_0_built)),
34303            context,
34304        );
34305        Ok(())
34306    }
34307
34308    /// Semantic action for production 882:
34309    ///
34310    /// `WithParameterItemOpt /* Option<T>::None */: ;`
34311    ///
34312    #[parol_runtime::function_name::named]
34313    fn with_parameter_item_opt_1(&mut self) -> Result<()> {
34314        let context = function_name!();
34315        trace!("{}", self.trace_item_stack(context));
34316        self.push(ASTType::WithParameterItemOpt(None), context);
34317        Ok(())
34318    }
34319
34320    /// Semantic action for production 883:
34321    ///
34322    /// `GenericBound: Type;`
34323    ///
34324    #[parol_runtime::function_name::named]
34325    fn generic_bound_0(&mut self, _type: &ParseTreeType<'t>) -> Result<()> {
34326        let context = function_name!();
34327        trace!("{}", self.trace_item_stack(context));
34328        let r#type = pop_item!(self, r#type, Type, context);
34329        let generic_bound_0_built = GenericBoundType {
34330            r#type: Box::new(r#type),
34331        };
34332        let generic_bound_0_built = GenericBound::Type(generic_bound_0_built);
34333        // Calling user action here
34334        self.user_grammar.generic_bound(&generic_bound_0_built)?;
34335        self.push(ASTType::GenericBound(generic_bound_0_built), context);
34336        Ok(())
34337    }
34338
34339    /// Semantic action for production 884:
34340    ///
34341    /// `GenericBound: Inst ScopedIdentifier;`
34342    ///
34343    #[parol_runtime::function_name::named]
34344    fn generic_bound_1(
34345        &mut self,
34346        _inst: &ParseTreeType<'t>,
34347        _scoped_identifier: &ParseTreeType<'t>,
34348    ) -> Result<()> {
34349        let context = function_name!();
34350        trace!("{}", self.trace_item_stack(context));
34351        let scoped_identifier = pop_item!(self, scoped_identifier, ScopedIdentifier, context);
34352        let inst = pop_item!(self, inst, Inst, context);
34353        let generic_bound_1_built = GenericBoundInstScopedIdentifier {
34354            inst: Box::new(inst),
34355            scoped_identifier: Box::new(scoped_identifier),
34356        };
34357        let generic_bound_1_built = GenericBound::InstScopedIdentifier(generic_bound_1_built);
34358        // Calling user action here
34359        self.user_grammar.generic_bound(&generic_bound_1_built)?;
34360        self.push(ASTType::GenericBound(generic_bound_1_built), context);
34361        Ok(())
34362    }
34363
34364    /// Semantic action for production 885:
34365    ///
34366    /// `GenericBound: GenericProtoBound;`
34367    ///
34368    #[parol_runtime::function_name::named]
34369    fn generic_bound_2(&mut self, _generic_proto_bound: &ParseTreeType<'t>) -> Result<()> {
34370        let context = function_name!();
34371        trace!("{}", self.trace_item_stack(context));
34372        let generic_proto_bound = pop_item!(self, generic_proto_bound, GenericProtoBound, context);
34373        let generic_bound_2_built = GenericBoundGenericProtoBound {
34374            generic_proto_bound: Box::new(generic_proto_bound),
34375        };
34376        let generic_bound_2_built = GenericBound::GenericProtoBound(generic_bound_2_built);
34377        // Calling user action here
34378        self.user_grammar.generic_bound(&generic_bound_2_built)?;
34379        self.push(ASTType::GenericBound(generic_bound_2_built), context);
34380        Ok(())
34381    }
34382
34383    /// Semantic action for production 886:
34384    ///
34385    /// `WithGenericParameter: ColonColonLAngle WithGenericParameterList RAngle;`
34386    ///
34387    #[parol_runtime::function_name::named]
34388    fn with_generic_parameter(
34389        &mut self,
34390        _colon_colon_l_angle: &ParseTreeType<'t>,
34391        _with_generic_parameter_list: &ParseTreeType<'t>,
34392        _r_angle: &ParseTreeType<'t>,
34393    ) -> Result<()> {
34394        let context = function_name!();
34395        trace!("{}", self.trace_item_stack(context));
34396        let r_angle = pop_item!(self, r_angle, RAngle, context);
34397        let with_generic_parameter_list = pop_item!(
34398            self,
34399            with_generic_parameter_list,
34400            WithGenericParameterList,
34401            context
34402        );
34403        let colon_colon_l_angle = pop_item!(self, colon_colon_l_angle, ColonColonLAngle, context);
34404        let with_generic_parameter_built = WithGenericParameter {
34405            colon_colon_l_angle: Box::new(colon_colon_l_angle),
34406            with_generic_parameter_list: Box::new(with_generic_parameter_list),
34407            r_angle: Box::new(r_angle),
34408        };
34409        // Calling user action here
34410        self.user_grammar
34411            .with_generic_parameter(&with_generic_parameter_built)?;
34412        self.push(
34413            ASTType::WithGenericParameter(with_generic_parameter_built),
34414            context,
34415        );
34416        Ok(())
34417    }
34418
34419    /// Semantic action for production 887:
34420    ///
34421    /// `WithGenericParameterList: WithGenericParameterItem WithGenericParameterListList /* Vec */ WithGenericParameterListOpt /* Option */;`
34422    ///
34423    #[parol_runtime::function_name::named]
34424    fn with_generic_parameter_list(
34425        &mut self,
34426        _with_generic_parameter_item: &ParseTreeType<'t>,
34427        _with_generic_parameter_list_list: &ParseTreeType<'t>,
34428        _with_generic_parameter_list_opt: &ParseTreeType<'t>,
34429    ) -> Result<()> {
34430        let context = function_name!();
34431        trace!("{}", self.trace_item_stack(context));
34432        let with_generic_parameter_list_opt = pop_item!(
34433            self,
34434            with_generic_parameter_list_opt,
34435            WithGenericParameterListOpt,
34436            context
34437        );
34438        let with_generic_parameter_list_list = pop_and_reverse_item!(
34439            self,
34440            with_generic_parameter_list_list,
34441            WithGenericParameterListList,
34442            context
34443        );
34444        let with_generic_parameter_item = pop_item!(
34445            self,
34446            with_generic_parameter_item,
34447            WithGenericParameterItem,
34448            context
34449        );
34450        let with_generic_parameter_list_built = WithGenericParameterList {
34451            with_generic_parameter_item: Box::new(with_generic_parameter_item),
34452            with_generic_parameter_list_list,
34453            with_generic_parameter_list_opt,
34454        };
34455        // Calling user action here
34456        self.user_grammar
34457            .with_generic_parameter_list(&with_generic_parameter_list_built)?;
34458        self.push(
34459            ASTType::WithGenericParameterList(with_generic_parameter_list_built),
34460            context,
34461        );
34462        Ok(())
34463    }
34464
34465    /// Semantic action for production 888:
34466    ///
34467    /// `WithGenericParameterListList /* Vec<T>::Push */: Comma WithGenericParameterItem WithGenericParameterListList;`
34468    ///
34469    #[parol_runtime::function_name::named]
34470    fn with_generic_parameter_list_list_0(
34471        &mut self,
34472        _comma: &ParseTreeType<'t>,
34473        _with_generic_parameter_item: &ParseTreeType<'t>,
34474        _with_generic_parameter_list_list: &ParseTreeType<'t>,
34475    ) -> Result<()> {
34476        let context = function_name!();
34477        trace!("{}", self.trace_item_stack(context));
34478        let mut with_generic_parameter_list_list = pop_item!(
34479            self,
34480            with_generic_parameter_list_list,
34481            WithGenericParameterListList,
34482            context
34483        );
34484        let with_generic_parameter_item = pop_item!(
34485            self,
34486            with_generic_parameter_item,
34487            WithGenericParameterItem,
34488            context
34489        );
34490        let comma = pop_item!(self, comma, Comma, context);
34491        let with_generic_parameter_list_list_0_built = WithGenericParameterListList {
34492            with_generic_parameter_item: Box::new(with_generic_parameter_item),
34493            comma: Box::new(comma),
34494        };
34495        // Add an element to the vector
34496        with_generic_parameter_list_list.push(with_generic_parameter_list_list_0_built);
34497        self.push(
34498            ASTType::WithGenericParameterListList(with_generic_parameter_list_list),
34499            context,
34500        );
34501        Ok(())
34502    }
34503
34504    /// Semantic action for production 889:
34505    ///
34506    /// `WithGenericParameterListList /* Vec<T>::New */: ;`
34507    ///
34508    #[parol_runtime::function_name::named]
34509    fn with_generic_parameter_list_list_1(&mut self) -> Result<()> {
34510        let context = function_name!();
34511        trace!("{}", self.trace_item_stack(context));
34512        let with_generic_parameter_list_list_1_built = Vec::new();
34513        self.push(
34514            ASTType::WithGenericParameterListList(with_generic_parameter_list_list_1_built),
34515            context,
34516        );
34517        Ok(())
34518    }
34519
34520    /// Semantic action for production 890:
34521    ///
34522    /// `WithGenericParameterListOpt /* Option<T>::Some */: Comma;`
34523    ///
34524    #[parol_runtime::function_name::named]
34525    fn with_generic_parameter_list_opt_0(&mut self, _comma: &ParseTreeType<'t>) -> Result<()> {
34526        let context = function_name!();
34527        trace!("{}", self.trace_item_stack(context));
34528        let comma = pop_item!(self, comma, Comma, context);
34529        let with_generic_parameter_list_opt_0_built = WithGenericParameterListOpt {
34530            comma: Box::new(comma),
34531        };
34532        self.push(
34533            ASTType::WithGenericParameterListOpt(Some(with_generic_parameter_list_opt_0_built)),
34534            context,
34535        );
34536        Ok(())
34537    }
34538
34539    /// Semantic action for production 891:
34540    ///
34541    /// `WithGenericParameterListOpt /* Option<T>::None */: ;`
34542    ///
34543    #[parol_runtime::function_name::named]
34544    fn with_generic_parameter_list_opt_1(&mut self) -> Result<()> {
34545        let context = function_name!();
34546        trace!("{}", self.trace_item_stack(context));
34547        self.push(ASTType::WithGenericParameterListOpt(None), context);
34548        Ok(())
34549    }
34550
34551    /// Semantic action for production 892:
34552    ///
34553    /// `WithGenericParameterItem: Identifier Colon GenericBound WithGenericParameterItemOpt /* Option */;`
34554    ///
34555    #[parol_runtime::function_name::named]
34556    fn with_generic_parameter_item(
34557        &mut self,
34558        _identifier: &ParseTreeType<'t>,
34559        _colon: &ParseTreeType<'t>,
34560        _generic_bound: &ParseTreeType<'t>,
34561        _with_generic_parameter_item_opt: &ParseTreeType<'t>,
34562    ) -> Result<()> {
34563        let context = function_name!();
34564        trace!("{}", self.trace_item_stack(context));
34565        let with_generic_parameter_item_opt = pop_item!(
34566            self,
34567            with_generic_parameter_item_opt,
34568            WithGenericParameterItemOpt,
34569            context
34570        );
34571        let generic_bound = pop_item!(self, generic_bound, GenericBound, context);
34572        let colon = pop_item!(self, colon, Colon, context);
34573        let identifier = pop_item!(self, identifier, Identifier, context);
34574        let with_generic_parameter_item_built = WithGenericParameterItem {
34575            identifier: Box::new(identifier),
34576            colon: Box::new(colon),
34577            generic_bound: Box::new(generic_bound),
34578            with_generic_parameter_item_opt,
34579        };
34580        // Calling user action here
34581        self.user_grammar
34582            .with_generic_parameter_item(&with_generic_parameter_item_built)?;
34583        self.push(
34584            ASTType::WithGenericParameterItem(with_generic_parameter_item_built),
34585            context,
34586        );
34587        Ok(())
34588    }
34589
34590    /// Semantic action for production 893:
34591    ///
34592    /// `WithGenericParameterItemOpt /* Option<T>::Some */: Equ WithGenericArgumentItem;`
34593    ///
34594    #[parol_runtime::function_name::named]
34595    fn with_generic_parameter_item_opt_0(
34596        &mut self,
34597        _equ: &ParseTreeType<'t>,
34598        _with_generic_argument_item: &ParseTreeType<'t>,
34599    ) -> Result<()> {
34600        let context = function_name!();
34601        trace!("{}", self.trace_item_stack(context));
34602        let with_generic_argument_item = pop_item!(
34603            self,
34604            with_generic_argument_item,
34605            WithGenericArgumentItem,
34606            context
34607        );
34608        let equ = pop_item!(self, equ, Equ, context);
34609        let with_generic_parameter_item_opt_0_built = WithGenericParameterItemOpt {
34610            equ: Box::new(equ),
34611            with_generic_argument_item: Box::new(with_generic_argument_item),
34612        };
34613        self.push(
34614            ASTType::WithGenericParameterItemOpt(Some(with_generic_parameter_item_opt_0_built)),
34615            context,
34616        );
34617        Ok(())
34618    }
34619
34620    /// Semantic action for production 894:
34621    ///
34622    /// `WithGenericParameterItemOpt /* Option<T>::None */: ;`
34623    ///
34624    #[parol_runtime::function_name::named]
34625    fn with_generic_parameter_item_opt_1(&mut self) -> Result<()> {
34626        let context = function_name!();
34627        trace!("{}", self.trace_item_stack(context));
34628        self.push(ASTType::WithGenericParameterItemOpt(None), context);
34629        Ok(())
34630    }
34631
34632    /// Semantic action for production 895:
34633    ///
34634    /// `GenericProtoBound: ScopedIdentifier;`
34635    ///
34636    #[parol_runtime::function_name::named]
34637    fn generic_proto_bound_0(&mut self, _scoped_identifier: &ParseTreeType<'t>) -> Result<()> {
34638        let context = function_name!();
34639        trace!("{}", self.trace_item_stack(context));
34640        let scoped_identifier = pop_item!(self, scoped_identifier, ScopedIdentifier, context);
34641        let generic_proto_bound_0_built = GenericProtoBoundScopedIdentifier {
34642            scoped_identifier: Box::new(scoped_identifier),
34643        };
34644        let generic_proto_bound_0_built =
34645            GenericProtoBound::ScopedIdentifier(generic_proto_bound_0_built);
34646        // Calling user action here
34647        self.user_grammar
34648            .generic_proto_bound(&generic_proto_bound_0_built)?;
34649        self.push(
34650            ASTType::GenericProtoBound(generic_proto_bound_0_built),
34651            context,
34652        );
34653        Ok(())
34654    }
34655
34656    /// Semantic action for production 896:
34657    ///
34658    /// `GenericProtoBound: FixedType;`
34659    ///
34660    #[parol_runtime::function_name::named]
34661    fn generic_proto_bound_1(&mut self, _fixed_type: &ParseTreeType<'t>) -> Result<()> {
34662        let context = function_name!();
34663        trace!("{}", self.trace_item_stack(context));
34664        let fixed_type = pop_item!(self, fixed_type, FixedType, context);
34665        let generic_proto_bound_1_built = GenericProtoBoundFixedType {
34666            fixed_type: Box::new(fixed_type),
34667        };
34668        let generic_proto_bound_1_built = GenericProtoBound::FixedType(generic_proto_bound_1_built);
34669        // Calling user action here
34670        self.user_grammar
34671            .generic_proto_bound(&generic_proto_bound_1_built)?;
34672        self.push(
34673            ASTType::GenericProtoBound(generic_proto_bound_1_built),
34674            context,
34675        );
34676        Ok(())
34677    }
34678
34679    /// Semantic action for production 897:
34680    ///
34681    /// `WithGenericArgument: ColonColonLAngle WithGenericArgumentOpt /* Option */ RAngle;`
34682    ///
34683    #[parol_runtime::function_name::named]
34684    fn with_generic_argument(
34685        &mut self,
34686        _colon_colon_l_angle: &ParseTreeType<'t>,
34687        _with_generic_argument_opt: &ParseTreeType<'t>,
34688        _r_angle: &ParseTreeType<'t>,
34689    ) -> Result<()> {
34690        let context = function_name!();
34691        trace!("{}", self.trace_item_stack(context));
34692        let r_angle = pop_item!(self, r_angle, RAngle, context);
34693        let with_generic_argument_opt = pop_item!(
34694            self,
34695            with_generic_argument_opt,
34696            WithGenericArgumentOpt,
34697            context
34698        );
34699        let colon_colon_l_angle = pop_item!(self, colon_colon_l_angle, ColonColonLAngle, context);
34700        let with_generic_argument_built = WithGenericArgument {
34701            colon_colon_l_angle: Box::new(colon_colon_l_angle),
34702            with_generic_argument_opt,
34703            r_angle: Box::new(r_angle),
34704        };
34705        // Calling user action here
34706        self.user_grammar
34707            .with_generic_argument(&with_generic_argument_built)?;
34708        self.push(
34709            ASTType::WithGenericArgument(with_generic_argument_built),
34710            context,
34711        );
34712        Ok(())
34713    }
34714
34715    /// Semantic action for production 898:
34716    ///
34717    /// `WithGenericArgumentOpt /* Option<T>::Some */: WithGenericArgumentList;`
34718    ///
34719    #[parol_runtime::function_name::named]
34720    fn with_generic_argument_opt_0(
34721        &mut self,
34722        _with_generic_argument_list: &ParseTreeType<'t>,
34723    ) -> Result<()> {
34724        let context = function_name!();
34725        trace!("{}", self.trace_item_stack(context));
34726        let with_generic_argument_list = pop_item!(
34727            self,
34728            with_generic_argument_list,
34729            WithGenericArgumentList,
34730            context
34731        );
34732        let with_generic_argument_opt_0_built = WithGenericArgumentOpt {
34733            with_generic_argument_list: Box::new(with_generic_argument_list),
34734        };
34735        self.push(
34736            ASTType::WithGenericArgumentOpt(Some(with_generic_argument_opt_0_built)),
34737            context,
34738        );
34739        Ok(())
34740    }
34741
34742    /// Semantic action for production 899:
34743    ///
34744    /// `WithGenericArgumentOpt /* Option<T>::None */: ;`
34745    ///
34746    #[parol_runtime::function_name::named]
34747    fn with_generic_argument_opt_1(&mut self) -> Result<()> {
34748        let context = function_name!();
34749        trace!("{}", self.trace_item_stack(context));
34750        self.push(ASTType::WithGenericArgumentOpt(None), context);
34751        Ok(())
34752    }
34753
34754    /// Semantic action for production 900:
34755    ///
34756    /// `WithGenericArgumentList: WithGenericArgumentItem WithGenericArgumentListList /* Vec */ WithGenericArgumentListOpt /* Option */;`
34757    ///
34758    #[parol_runtime::function_name::named]
34759    fn with_generic_argument_list(
34760        &mut self,
34761        _with_generic_argument_item: &ParseTreeType<'t>,
34762        _with_generic_argument_list_list: &ParseTreeType<'t>,
34763        _with_generic_argument_list_opt: &ParseTreeType<'t>,
34764    ) -> Result<()> {
34765        let context = function_name!();
34766        trace!("{}", self.trace_item_stack(context));
34767        let with_generic_argument_list_opt = pop_item!(
34768            self,
34769            with_generic_argument_list_opt,
34770            WithGenericArgumentListOpt,
34771            context
34772        );
34773        let with_generic_argument_list_list = pop_and_reverse_item!(
34774            self,
34775            with_generic_argument_list_list,
34776            WithGenericArgumentListList,
34777            context
34778        );
34779        let with_generic_argument_item = pop_item!(
34780            self,
34781            with_generic_argument_item,
34782            WithGenericArgumentItem,
34783            context
34784        );
34785        let with_generic_argument_list_built = WithGenericArgumentList {
34786            with_generic_argument_item: Box::new(with_generic_argument_item),
34787            with_generic_argument_list_list,
34788            with_generic_argument_list_opt,
34789        };
34790        // Calling user action here
34791        self.user_grammar
34792            .with_generic_argument_list(&with_generic_argument_list_built)?;
34793        self.push(
34794            ASTType::WithGenericArgumentList(with_generic_argument_list_built),
34795            context,
34796        );
34797        Ok(())
34798    }
34799
34800    /// Semantic action for production 901:
34801    ///
34802    /// `WithGenericArgumentListList /* Vec<T>::Push */: Comma WithGenericArgumentItem WithGenericArgumentListList;`
34803    ///
34804    #[parol_runtime::function_name::named]
34805    fn with_generic_argument_list_list_0(
34806        &mut self,
34807        _comma: &ParseTreeType<'t>,
34808        _with_generic_argument_item: &ParseTreeType<'t>,
34809        _with_generic_argument_list_list: &ParseTreeType<'t>,
34810    ) -> Result<()> {
34811        let context = function_name!();
34812        trace!("{}", self.trace_item_stack(context));
34813        let mut with_generic_argument_list_list = pop_item!(
34814            self,
34815            with_generic_argument_list_list,
34816            WithGenericArgumentListList,
34817            context
34818        );
34819        let with_generic_argument_item = pop_item!(
34820            self,
34821            with_generic_argument_item,
34822            WithGenericArgumentItem,
34823            context
34824        );
34825        let comma = pop_item!(self, comma, Comma, context);
34826        let with_generic_argument_list_list_0_built = WithGenericArgumentListList {
34827            with_generic_argument_item: Box::new(with_generic_argument_item),
34828            comma: Box::new(comma),
34829        };
34830        // Add an element to the vector
34831        with_generic_argument_list_list.push(with_generic_argument_list_list_0_built);
34832        self.push(
34833            ASTType::WithGenericArgumentListList(with_generic_argument_list_list),
34834            context,
34835        );
34836        Ok(())
34837    }
34838
34839    /// Semantic action for production 902:
34840    ///
34841    /// `WithGenericArgumentListList /* Vec<T>::New */: ;`
34842    ///
34843    #[parol_runtime::function_name::named]
34844    fn with_generic_argument_list_list_1(&mut self) -> Result<()> {
34845        let context = function_name!();
34846        trace!("{}", self.trace_item_stack(context));
34847        let with_generic_argument_list_list_1_built = Vec::new();
34848        self.push(
34849            ASTType::WithGenericArgumentListList(with_generic_argument_list_list_1_built),
34850            context,
34851        );
34852        Ok(())
34853    }
34854
34855    /// Semantic action for production 903:
34856    ///
34857    /// `WithGenericArgumentListOpt /* Option<T>::Some */: Comma;`
34858    ///
34859    #[parol_runtime::function_name::named]
34860    fn with_generic_argument_list_opt_0(&mut self, _comma: &ParseTreeType<'t>) -> Result<()> {
34861        let context = function_name!();
34862        trace!("{}", self.trace_item_stack(context));
34863        let comma = pop_item!(self, comma, Comma, context);
34864        let with_generic_argument_list_opt_0_built = WithGenericArgumentListOpt {
34865            comma: Box::new(comma),
34866        };
34867        self.push(
34868            ASTType::WithGenericArgumentListOpt(Some(with_generic_argument_list_opt_0_built)),
34869            context,
34870        );
34871        Ok(())
34872    }
34873
34874    /// Semantic action for production 904:
34875    ///
34876    /// `WithGenericArgumentListOpt /* Option<T>::None */: ;`
34877    ///
34878    #[parol_runtime::function_name::named]
34879    fn with_generic_argument_list_opt_1(&mut self) -> Result<()> {
34880        let context = function_name!();
34881        trace!("{}", self.trace_item_stack(context));
34882        self.push(ASTType::WithGenericArgumentListOpt(None), context);
34883        Ok(())
34884    }
34885
34886    /// Semantic action for production 905:
34887    ///
34888    /// `WithGenericArgumentItem: GenericArgIdentifier;`
34889    ///
34890    #[parol_runtime::function_name::named]
34891    fn with_generic_argument_item_0(
34892        &mut self,
34893        _generic_arg_identifier: &ParseTreeType<'t>,
34894    ) -> Result<()> {
34895        let context = function_name!();
34896        trace!("{}", self.trace_item_stack(context));
34897        let generic_arg_identifier =
34898            pop_item!(self, generic_arg_identifier, GenericArgIdentifier, context);
34899        let with_generic_argument_item_0_built = WithGenericArgumentItemGenericArgIdentifier {
34900            generic_arg_identifier: Box::new(generic_arg_identifier),
34901        };
34902        let with_generic_argument_item_0_built =
34903            WithGenericArgumentItem::GenericArgIdentifier(with_generic_argument_item_0_built);
34904        // Calling user action here
34905        self.user_grammar
34906            .with_generic_argument_item(&with_generic_argument_item_0_built)?;
34907        self.push(
34908            ASTType::WithGenericArgumentItem(with_generic_argument_item_0_built),
34909            context,
34910        );
34911        Ok(())
34912    }
34913
34914    /// Semantic action for production 906:
34915    ///
34916    /// `WithGenericArgumentItem: FixedType;`
34917    ///
34918    #[parol_runtime::function_name::named]
34919    fn with_generic_argument_item_1(&mut self, _fixed_type: &ParseTreeType<'t>) -> Result<()> {
34920        let context = function_name!();
34921        trace!("{}", self.trace_item_stack(context));
34922        let fixed_type = pop_item!(self, fixed_type, FixedType, context);
34923        let with_generic_argument_item_1_built = WithGenericArgumentItemFixedType {
34924            fixed_type: Box::new(fixed_type),
34925        };
34926        let with_generic_argument_item_1_built =
34927            WithGenericArgumentItem::FixedType(with_generic_argument_item_1_built);
34928        // Calling user action here
34929        self.user_grammar
34930            .with_generic_argument_item(&with_generic_argument_item_1_built)?;
34931        self.push(
34932            ASTType::WithGenericArgumentItem(with_generic_argument_item_1_built),
34933            context,
34934        );
34935        Ok(())
34936    }
34937
34938    /// Semantic action for production 907:
34939    ///
34940    /// `WithGenericArgumentItem: Number;`
34941    ///
34942    #[parol_runtime::function_name::named]
34943    fn with_generic_argument_item_2(&mut self, _number: &ParseTreeType<'t>) -> Result<()> {
34944        let context = function_name!();
34945        trace!("{}", self.trace_item_stack(context));
34946        let number = pop_item!(self, number, Number, context);
34947        let with_generic_argument_item_2_built = WithGenericArgumentItemNumber {
34948            number: Box::new(number),
34949        };
34950        let with_generic_argument_item_2_built =
34951            WithGenericArgumentItem::Number(with_generic_argument_item_2_built);
34952        // Calling user action here
34953        self.user_grammar
34954            .with_generic_argument_item(&with_generic_argument_item_2_built)?;
34955        self.push(
34956            ASTType::WithGenericArgumentItem(with_generic_argument_item_2_built),
34957            context,
34958        );
34959        Ok(())
34960    }
34961
34962    /// Semantic action for production 908:
34963    ///
34964    /// `WithGenericArgumentItem: BooleanLiteral;`
34965    ///
34966    #[parol_runtime::function_name::named]
34967    fn with_generic_argument_item_3(&mut self, _boolean_literal: &ParseTreeType<'t>) -> Result<()> {
34968        let context = function_name!();
34969        trace!("{}", self.trace_item_stack(context));
34970        let boolean_literal = pop_item!(self, boolean_literal, BooleanLiteral, context);
34971        let with_generic_argument_item_3_built = WithGenericArgumentItemBooleanLiteral {
34972            boolean_literal: Box::new(boolean_literal),
34973        };
34974        let with_generic_argument_item_3_built =
34975            WithGenericArgumentItem::BooleanLiteral(with_generic_argument_item_3_built);
34976        // Calling user action here
34977        self.user_grammar
34978            .with_generic_argument_item(&with_generic_argument_item_3_built)?;
34979        self.push(
34980            ASTType::WithGenericArgumentItem(with_generic_argument_item_3_built),
34981            context,
34982        );
34983        Ok(())
34984    }
34985
34986    /// Semantic action for production 909:
34987    ///
34988    /// `PortDeclaration: LParen PortDeclarationOpt /* Option */ RParen;`
34989    ///
34990    #[parol_runtime::function_name::named]
34991    fn port_declaration(
34992        &mut self,
34993        _l_paren: &ParseTreeType<'t>,
34994        _port_declaration_opt: &ParseTreeType<'t>,
34995        _r_paren: &ParseTreeType<'t>,
34996    ) -> Result<()> {
34997        let context = function_name!();
34998        trace!("{}", self.trace_item_stack(context));
34999        let r_paren = pop_item!(self, r_paren, RParen, context);
35000        let port_declaration_opt =
35001            pop_item!(self, port_declaration_opt, PortDeclarationOpt, context);
35002        let l_paren = pop_item!(self, l_paren, LParen, context);
35003        let port_declaration_built = PortDeclaration {
35004            l_paren: Box::new(l_paren),
35005            port_declaration_opt,
35006            r_paren: Box::new(r_paren),
35007        };
35008        // Calling user action here
35009        self.user_grammar
35010            .port_declaration(&port_declaration_built)?;
35011        self.push(ASTType::PortDeclaration(port_declaration_built), context);
35012        Ok(())
35013    }
35014
35015    /// Semantic action for production 910:
35016    ///
35017    /// `PortDeclarationOpt /* Option<T>::Some */: PortDeclarationList;`
35018    ///
35019    #[parol_runtime::function_name::named]
35020    fn port_declaration_opt_0(&mut self, _port_declaration_list: &ParseTreeType<'t>) -> Result<()> {
35021        let context = function_name!();
35022        trace!("{}", self.trace_item_stack(context));
35023        let port_declaration_list =
35024            pop_item!(self, port_declaration_list, PortDeclarationList, context);
35025        let port_declaration_opt_0_built = PortDeclarationOpt {
35026            port_declaration_list: Box::new(port_declaration_list),
35027        };
35028        self.push(
35029            ASTType::PortDeclarationOpt(Some(port_declaration_opt_0_built)),
35030            context,
35031        );
35032        Ok(())
35033    }
35034
35035    /// Semantic action for production 911:
35036    ///
35037    /// `PortDeclarationOpt /* Option<T>::None */: ;`
35038    ///
35039    #[parol_runtime::function_name::named]
35040    fn port_declaration_opt_1(&mut self) -> Result<()> {
35041        let context = function_name!();
35042        trace!("{}", self.trace_item_stack(context));
35043        self.push(ASTType::PortDeclarationOpt(None), context);
35044        Ok(())
35045    }
35046
35047    /// Semantic action for production 912:
35048    ///
35049    /// `PortDeclarationList: PortDeclarationGroup PortDeclarationListList /* Vec */ PortDeclarationListOpt /* Option */;`
35050    ///
35051    #[parol_runtime::function_name::named]
35052    fn port_declaration_list(
35053        &mut self,
35054        _port_declaration_group: &ParseTreeType<'t>,
35055        _port_declaration_list_list: &ParseTreeType<'t>,
35056        _port_declaration_list_opt: &ParseTreeType<'t>,
35057    ) -> Result<()> {
35058        let context = function_name!();
35059        trace!("{}", self.trace_item_stack(context));
35060        let port_declaration_list_opt = pop_item!(
35061            self,
35062            port_declaration_list_opt,
35063            PortDeclarationListOpt,
35064            context
35065        );
35066        let port_declaration_list_list = pop_and_reverse_item!(
35067            self,
35068            port_declaration_list_list,
35069            PortDeclarationListList,
35070            context
35071        );
35072        let port_declaration_group =
35073            pop_item!(self, port_declaration_group, PortDeclarationGroup, context);
35074        let port_declaration_list_built = PortDeclarationList {
35075            port_declaration_group: Box::new(port_declaration_group),
35076            port_declaration_list_list,
35077            port_declaration_list_opt,
35078        };
35079        // Calling user action here
35080        self.user_grammar
35081            .port_declaration_list(&port_declaration_list_built)?;
35082        self.push(
35083            ASTType::PortDeclarationList(port_declaration_list_built),
35084            context,
35085        );
35086        Ok(())
35087    }
35088
35089    /// Semantic action for production 913:
35090    ///
35091    /// `PortDeclarationListList /* Vec<T>::Push */: Comma PortDeclarationGroup PortDeclarationListList;`
35092    ///
35093    #[parol_runtime::function_name::named]
35094    fn port_declaration_list_list_0(
35095        &mut self,
35096        _comma: &ParseTreeType<'t>,
35097        _port_declaration_group: &ParseTreeType<'t>,
35098        _port_declaration_list_list: &ParseTreeType<'t>,
35099    ) -> Result<()> {
35100        let context = function_name!();
35101        trace!("{}", self.trace_item_stack(context));
35102        let mut port_declaration_list_list = pop_item!(
35103            self,
35104            port_declaration_list_list,
35105            PortDeclarationListList,
35106            context
35107        );
35108        let port_declaration_group =
35109            pop_item!(self, port_declaration_group, PortDeclarationGroup, context);
35110        let comma = pop_item!(self, comma, Comma, context);
35111        let port_declaration_list_list_0_built = PortDeclarationListList {
35112            port_declaration_group: Box::new(port_declaration_group),
35113            comma: Box::new(comma),
35114        };
35115        // Add an element to the vector
35116        port_declaration_list_list.push(port_declaration_list_list_0_built);
35117        self.push(
35118            ASTType::PortDeclarationListList(port_declaration_list_list),
35119            context,
35120        );
35121        Ok(())
35122    }
35123
35124    /// Semantic action for production 914:
35125    ///
35126    /// `PortDeclarationListList /* Vec<T>::New */: ;`
35127    ///
35128    #[parol_runtime::function_name::named]
35129    fn port_declaration_list_list_1(&mut self) -> Result<()> {
35130        let context = function_name!();
35131        trace!("{}", self.trace_item_stack(context));
35132        let port_declaration_list_list_1_built = Vec::new();
35133        self.push(
35134            ASTType::PortDeclarationListList(port_declaration_list_list_1_built),
35135            context,
35136        );
35137        Ok(())
35138    }
35139
35140    /// Semantic action for production 915:
35141    ///
35142    /// `PortDeclarationListOpt /* Option<T>::Some */: Comma;`
35143    ///
35144    #[parol_runtime::function_name::named]
35145    fn port_declaration_list_opt_0(&mut self, _comma: &ParseTreeType<'t>) -> Result<()> {
35146        let context = function_name!();
35147        trace!("{}", self.trace_item_stack(context));
35148        let comma = pop_item!(self, comma, Comma, context);
35149        let port_declaration_list_opt_0_built = PortDeclarationListOpt {
35150            comma: Box::new(comma),
35151        };
35152        self.push(
35153            ASTType::PortDeclarationListOpt(Some(port_declaration_list_opt_0_built)),
35154            context,
35155        );
35156        Ok(())
35157    }
35158
35159    /// Semantic action for production 916:
35160    ///
35161    /// `PortDeclarationListOpt /* Option<T>::None */: ;`
35162    ///
35163    #[parol_runtime::function_name::named]
35164    fn port_declaration_list_opt_1(&mut self) -> Result<()> {
35165        let context = function_name!();
35166        trace!("{}", self.trace_item_stack(context));
35167        self.push(ASTType::PortDeclarationListOpt(None), context);
35168        Ok(())
35169    }
35170
35171    /// Semantic action for production 917:
35172    ///
35173    /// `PortDeclarationGroup: PortDeclarationGroupList /* Vec */ PortDeclarationGroupGroup;`
35174    ///
35175    #[parol_runtime::function_name::named]
35176    fn port_declaration_group(
35177        &mut self,
35178        _port_declaration_group_list: &ParseTreeType<'t>,
35179        _port_declaration_group_group: &ParseTreeType<'t>,
35180    ) -> Result<()> {
35181        let context = function_name!();
35182        trace!("{}", self.trace_item_stack(context));
35183        let port_declaration_group_group = pop_item!(
35184            self,
35185            port_declaration_group_group,
35186            PortDeclarationGroupGroup,
35187            context
35188        );
35189        let port_declaration_group_list = pop_and_reverse_item!(
35190            self,
35191            port_declaration_group_list,
35192            PortDeclarationGroupList,
35193            context
35194        );
35195        let port_declaration_group_built = PortDeclarationGroup {
35196            port_declaration_group_list,
35197            port_declaration_group_group: Box::new(port_declaration_group_group),
35198        };
35199        // Calling user action here
35200        self.user_grammar
35201            .port_declaration_group(&port_declaration_group_built)?;
35202        self.push(
35203            ASTType::PortDeclarationGroup(port_declaration_group_built),
35204            context,
35205        );
35206        Ok(())
35207    }
35208
35209    /// Semantic action for production 918:
35210    ///
35211    /// `PortDeclarationGroupGroup: LBrace PortDeclarationList RBrace;`
35212    ///
35213    #[parol_runtime::function_name::named]
35214    fn port_declaration_group_group_0(
35215        &mut self,
35216        _l_brace: &ParseTreeType<'t>,
35217        _port_declaration_list: &ParseTreeType<'t>,
35218        _r_brace: &ParseTreeType<'t>,
35219    ) -> Result<()> {
35220        let context = function_name!();
35221        trace!("{}", self.trace_item_stack(context));
35222        let r_brace = pop_item!(self, r_brace, RBrace, context);
35223        let port_declaration_list =
35224            pop_item!(self, port_declaration_list, PortDeclarationList, context);
35225        let l_brace = pop_item!(self, l_brace, LBrace, context);
35226        let port_declaration_group_group_0_built =
35227            PortDeclarationGroupGroupLBracePortDeclarationListRBrace {
35228                l_brace: Box::new(l_brace),
35229                port_declaration_list: Box::new(port_declaration_list),
35230                r_brace: Box::new(r_brace),
35231            };
35232        let port_declaration_group_group_0_built =
35233            PortDeclarationGroupGroup::LBracePortDeclarationListRBrace(
35234                port_declaration_group_group_0_built,
35235            );
35236        self.push(
35237            ASTType::PortDeclarationGroupGroup(port_declaration_group_group_0_built),
35238            context,
35239        );
35240        Ok(())
35241    }
35242
35243    /// Semantic action for production 919:
35244    ///
35245    /// `PortDeclarationGroupGroup: PortDeclarationItem;`
35246    ///
35247    #[parol_runtime::function_name::named]
35248    fn port_declaration_group_group_1(
35249        &mut self,
35250        _port_declaration_item: &ParseTreeType<'t>,
35251    ) -> Result<()> {
35252        let context = function_name!();
35253        trace!("{}", self.trace_item_stack(context));
35254        let port_declaration_item =
35255            pop_item!(self, port_declaration_item, PortDeclarationItem, context);
35256        let port_declaration_group_group_1_built = PortDeclarationGroupGroupPortDeclarationItem {
35257            port_declaration_item: Box::new(port_declaration_item),
35258        };
35259        let port_declaration_group_group_1_built =
35260            PortDeclarationGroupGroup::PortDeclarationItem(port_declaration_group_group_1_built);
35261        self.push(
35262            ASTType::PortDeclarationGroupGroup(port_declaration_group_group_1_built),
35263            context,
35264        );
35265        Ok(())
35266    }
35267
35268    /// Semantic action for production 920:
35269    ///
35270    /// `PortDeclarationGroupList /* Vec<T>::Push */: Attribute PortDeclarationGroupList;`
35271    ///
35272    #[parol_runtime::function_name::named]
35273    fn port_declaration_group_list_0(
35274        &mut self,
35275        _attribute: &ParseTreeType<'t>,
35276        _port_declaration_group_list: &ParseTreeType<'t>,
35277    ) -> Result<()> {
35278        let context = function_name!();
35279        trace!("{}", self.trace_item_stack(context));
35280        let mut port_declaration_group_list = pop_item!(
35281            self,
35282            port_declaration_group_list,
35283            PortDeclarationGroupList,
35284            context
35285        );
35286        let attribute = pop_item!(self, attribute, Attribute, context);
35287        let port_declaration_group_list_0_built = PortDeclarationGroupList {
35288            attribute: Box::new(attribute),
35289        };
35290        // Add an element to the vector
35291        port_declaration_group_list.push(port_declaration_group_list_0_built);
35292        self.push(
35293            ASTType::PortDeclarationGroupList(port_declaration_group_list),
35294            context,
35295        );
35296        Ok(())
35297    }
35298
35299    /// Semantic action for production 921:
35300    ///
35301    /// `PortDeclarationGroupList /* Vec<T>::New */: ;`
35302    ///
35303    #[parol_runtime::function_name::named]
35304    fn port_declaration_group_list_1(&mut self) -> Result<()> {
35305        let context = function_name!();
35306        trace!("{}", self.trace_item_stack(context));
35307        let port_declaration_group_list_1_built = Vec::new();
35308        self.push(
35309            ASTType::PortDeclarationGroupList(port_declaration_group_list_1_built),
35310            context,
35311        );
35312        Ok(())
35313    }
35314
35315    /// Semantic action for production 922:
35316    ///
35317    /// `PortDeclarationItem: Identifier Colon PortDeclarationItemGroup;`
35318    ///
35319    #[parol_runtime::function_name::named]
35320    fn port_declaration_item(
35321        &mut self,
35322        _identifier: &ParseTreeType<'t>,
35323        _colon: &ParseTreeType<'t>,
35324        _port_declaration_item_group: &ParseTreeType<'t>,
35325    ) -> Result<()> {
35326        let context = function_name!();
35327        trace!("{}", self.trace_item_stack(context));
35328        let port_declaration_item_group = pop_item!(
35329            self,
35330            port_declaration_item_group,
35331            PortDeclarationItemGroup,
35332            context
35333        );
35334        let colon = pop_item!(self, colon, Colon, context);
35335        let identifier = pop_item!(self, identifier, Identifier, context);
35336        let port_declaration_item_built = PortDeclarationItem {
35337            identifier: Box::new(identifier),
35338            colon: Box::new(colon),
35339            port_declaration_item_group: Box::new(port_declaration_item_group),
35340        };
35341        // Calling user action here
35342        self.user_grammar
35343            .port_declaration_item(&port_declaration_item_built)?;
35344        self.push(
35345            ASTType::PortDeclarationItem(port_declaration_item_built),
35346            context,
35347        );
35348        Ok(())
35349    }
35350
35351    /// Semantic action for production 923:
35352    ///
35353    /// `PortDeclarationItemGroup: PortTypeConcrete;`
35354    ///
35355    #[parol_runtime::function_name::named]
35356    fn port_declaration_item_group_0(
35357        &mut self,
35358        _port_type_concrete: &ParseTreeType<'t>,
35359    ) -> Result<()> {
35360        let context = function_name!();
35361        trace!("{}", self.trace_item_stack(context));
35362        let port_type_concrete = pop_item!(self, port_type_concrete, PortTypeConcrete, context);
35363        let port_declaration_item_group_0_built = PortDeclarationItemGroupPortTypeConcrete {
35364            port_type_concrete: Box::new(port_type_concrete),
35365        };
35366        let port_declaration_item_group_0_built =
35367            PortDeclarationItemGroup::PortTypeConcrete(port_declaration_item_group_0_built);
35368        self.push(
35369            ASTType::PortDeclarationItemGroup(port_declaration_item_group_0_built),
35370            context,
35371        );
35372        Ok(())
35373    }
35374
35375    /// Semantic action for production 924:
35376    ///
35377    /// `PortDeclarationItemGroup: PortTypeAbstract;`
35378    ///
35379    #[parol_runtime::function_name::named]
35380    fn port_declaration_item_group_1(
35381        &mut self,
35382        _port_type_abstract: &ParseTreeType<'t>,
35383    ) -> Result<()> {
35384        let context = function_name!();
35385        trace!("{}", self.trace_item_stack(context));
35386        let port_type_abstract = pop_item!(self, port_type_abstract, PortTypeAbstract, context);
35387        let port_declaration_item_group_1_built = PortDeclarationItemGroupPortTypeAbstract {
35388            port_type_abstract: Box::new(port_type_abstract),
35389        };
35390        let port_declaration_item_group_1_built =
35391            PortDeclarationItemGroup::PortTypeAbstract(port_declaration_item_group_1_built);
35392        self.push(
35393            ASTType::PortDeclarationItemGroup(port_declaration_item_group_1_built),
35394            context,
35395        );
35396        Ok(())
35397    }
35398
35399    /// Semantic action for production 925:
35400    ///
35401    /// `PortTypeConcrete: Direction PortTypeConcreteOpt /* Option */ ArrayType PortTypeConcreteOpt0 /* Option */;`
35402    ///
35403    #[parol_runtime::function_name::named]
35404    fn port_type_concrete(
35405        &mut self,
35406        _direction: &ParseTreeType<'t>,
35407        _port_type_concrete_opt: &ParseTreeType<'t>,
35408        _array_type: &ParseTreeType<'t>,
35409        _port_type_concrete_opt0: &ParseTreeType<'t>,
35410    ) -> Result<()> {
35411        let context = function_name!();
35412        trace!("{}", self.trace_item_stack(context));
35413        let port_type_concrete_opt0 =
35414            pop_item!(self, port_type_concrete_opt0, PortTypeConcreteOpt0, context);
35415        let array_type = pop_item!(self, array_type, ArrayType, context);
35416        let port_type_concrete_opt =
35417            pop_item!(self, port_type_concrete_opt, PortTypeConcreteOpt, context);
35418        let direction = pop_item!(self, direction, Direction, context);
35419        let port_type_concrete_built = PortTypeConcrete {
35420            direction: Box::new(direction),
35421            port_type_concrete_opt,
35422            array_type: Box::new(array_type),
35423            port_type_concrete_opt0,
35424        };
35425        // Calling user action here
35426        self.user_grammar
35427            .port_type_concrete(&port_type_concrete_built)?;
35428        self.push(ASTType::PortTypeConcrete(port_type_concrete_built), context);
35429        Ok(())
35430    }
35431
35432    /// Semantic action for production 926:
35433    ///
35434    /// `PortTypeConcreteOpt0 /* Option<T>::Some */: Equ PortDefaultValue;`
35435    ///
35436    #[parol_runtime::function_name::named]
35437    fn port_type_concrete_opt0_0(
35438        &mut self,
35439        _equ: &ParseTreeType<'t>,
35440        _port_default_value: &ParseTreeType<'t>,
35441    ) -> Result<()> {
35442        let context = function_name!();
35443        trace!("{}", self.trace_item_stack(context));
35444        let port_default_value = pop_item!(self, port_default_value, PortDefaultValue, context);
35445        let equ = pop_item!(self, equ, Equ, context);
35446        let port_type_concrete_opt0_0_built = PortTypeConcreteOpt0 {
35447            equ: Box::new(equ),
35448            port_default_value: Box::new(port_default_value),
35449        };
35450        self.push(
35451            ASTType::PortTypeConcreteOpt0(Some(port_type_concrete_opt0_0_built)),
35452            context,
35453        );
35454        Ok(())
35455    }
35456
35457    /// Semantic action for production 927:
35458    ///
35459    /// `PortTypeConcreteOpt0 /* Option<T>::None */: ;`
35460    ///
35461    #[parol_runtime::function_name::named]
35462    fn port_type_concrete_opt0_1(&mut self) -> Result<()> {
35463        let context = function_name!();
35464        trace!("{}", self.trace_item_stack(context));
35465        self.push(ASTType::PortTypeConcreteOpt0(None), context);
35466        Ok(())
35467    }
35468
35469    /// Semantic action for production 928:
35470    ///
35471    /// `PortTypeConcreteOpt /* Option<T>::Some */: ClockDomain;`
35472    ///
35473    #[parol_runtime::function_name::named]
35474    fn port_type_concrete_opt_0(&mut self, _clock_domain: &ParseTreeType<'t>) -> Result<()> {
35475        let context = function_name!();
35476        trace!("{}", self.trace_item_stack(context));
35477        let clock_domain = pop_item!(self, clock_domain, ClockDomain, context);
35478        let port_type_concrete_opt_0_built = PortTypeConcreteOpt {
35479            clock_domain: Box::new(clock_domain),
35480        };
35481        self.push(
35482            ASTType::PortTypeConcreteOpt(Some(port_type_concrete_opt_0_built)),
35483            context,
35484        );
35485        Ok(())
35486    }
35487
35488    /// Semantic action for production 929:
35489    ///
35490    /// `PortTypeConcreteOpt /* Option<T>::None */: ;`
35491    ///
35492    #[parol_runtime::function_name::named]
35493    fn port_type_concrete_opt_1(&mut self) -> Result<()> {
35494        let context = function_name!();
35495        trace!("{}", self.trace_item_stack(context));
35496        self.push(ASTType::PortTypeConcreteOpt(None), context);
35497        Ok(())
35498    }
35499
35500    /// Semantic action for production 930:
35501    ///
35502    /// `PortDefaultValue: Expression;`
35503    ///
35504    #[parol_runtime::function_name::named]
35505    fn port_default_value(&mut self, _expression: &ParseTreeType<'t>) -> Result<()> {
35506        let context = function_name!();
35507        trace!("{}", self.trace_item_stack(context));
35508        let expression = pop_item!(self, expression, Expression, context);
35509        let port_default_value_built = PortDefaultValue {
35510            expression: Box::new(expression),
35511        };
35512        // Calling user action here
35513        self.user_grammar
35514            .port_default_value(&port_default_value_built)?;
35515        self.push(ASTType::PortDefaultValue(port_default_value_built), context);
35516        Ok(())
35517    }
35518
35519    /// Semantic action for production 931:
35520    ///
35521    /// `PortTypeAbstract: PortTypeAbstractOpt /* Option */ Interface PortTypeAbstractOpt0 /* Option */ PortTypeAbstractOpt1 /* Option */;`
35522    ///
35523    #[parol_runtime::function_name::named]
35524    fn port_type_abstract(
35525        &mut self,
35526        _port_type_abstract_opt: &ParseTreeType<'t>,
35527        _interface: &ParseTreeType<'t>,
35528        _port_type_abstract_opt0: &ParseTreeType<'t>,
35529        _port_type_abstract_opt1: &ParseTreeType<'t>,
35530    ) -> Result<()> {
35531        let context = function_name!();
35532        trace!("{}", self.trace_item_stack(context));
35533        let port_type_abstract_opt1 =
35534            pop_item!(self, port_type_abstract_opt1, PortTypeAbstractOpt1, context);
35535        let port_type_abstract_opt0 =
35536            pop_item!(self, port_type_abstract_opt0, PortTypeAbstractOpt0, context);
35537        let interface = pop_item!(self, interface, Interface, context);
35538        let port_type_abstract_opt =
35539            pop_item!(self, port_type_abstract_opt, PortTypeAbstractOpt, context);
35540        let port_type_abstract_built = PortTypeAbstract {
35541            port_type_abstract_opt,
35542            interface: Box::new(interface),
35543            port_type_abstract_opt0,
35544            port_type_abstract_opt1,
35545        };
35546        // Calling user action here
35547        self.user_grammar
35548            .port_type_abstract(&port_type_abstract_built)?;
35549        self.push(ASTType::PortTypeAbstract(port_type_abstract_built), context);
35550        Ok(())
35551    }
35552
35553    /// Semantic action for production 932:
35554    ///
35555    /// `PortTypeAbstractOpt1 /* Option<T>::Some */: Array;`
35556    ///
35557    #[parol_runtime::function_name::named]
35558    fn port_type_abstract_opt1_0(&mut self, _array: &ParseTreeType<'t>) -> Result<()> {
35559        let context = function_name!();
35560        trace!("{}", self.trace_item_stack(context));
35561        let array = pop_item!(self, array, Array, context);
35562        let port_type_abstract_opt1_0_built = PortTypeAbstractOpt1 {
35563            array: Box::new(array),
35564        };
35565        self.push(
35566            ASTType::PortTypeAbstractOpt1(Some(port_type_abstract_opt1_0_built)),
35567            context,
35568        );
35569        Ok(())
35570    }
35571
35572    /// Semantic action for production 933:
35573    ///
35574    /// `PortTypeAbstractOpt1 /* Option<T>::None */: ;`
35575    ///
35576    #[parol_runtime::function_name::named]
35577    fn port_type_abstract_opt1_1(&mut self) -> Result<()> {
35578        let context = function_name!();
35579        trace!("{}", self.trace_item_stack(context));
35580        self.push(ASTType::PortTypeAbstractOpt1(None), context);
35581        Ok(())
35582    }
35583
35584    /// Semantic action for production 934:
35585    ///
35586    /// `PortTypeAbstractOpt0 /* Option<T>::Some */: ColonColon Identifier;`
35587    ///
35588    #[parol_runtime::function_name::named]
35589    fn port_type_abstract_opt0_0(
35590        &mut self,
35591        _colon_colon: &ParseTreeType<'t>,
35592        _identifier: &ParseTreeType<'t>,
35593    ) -> Result<()> {
35594        let context = function_name!();
35595        trace!("{}", self.trace_item_stack(context));
35596        let identifier = pop_item!(self, identifier, Identifier, context);
35597        let colon_colon = pop_item!(self, colon_colon, ColonColon, context);
35598        let port_type_abstract_opt0_0_built = PortTypeAbstractOpt0 {
35599            colon_colon: Box::new(colon_colon),
35600            identifier: Box::new(identifier),
35601        };
35602        self.push(
35603            ASTType::PortTypeAbstractOpt0(Some(port_type_abstract_opt0_0_built)),
35604            context,
35605        );
35606        Ok(())
35607    }
35608
35609    /// Semantic action for production 935:
35610    ///
35611    /// `PortTypeAbstractOpt0 /* Option<T>::None */: ;`
35612    ///
35613    #[parol_runtime::function_name::named]
35614    fn port_type_abstract_opt0_1(&mut self) -> Result<()> {
35615        let context = function_name!();
35616        trace!("{}", self.trace_item_stack(context));
35617        self.push(ASTType::PortTypeAbstractOpt0(None), context);
35618        Ok(())
35619    }
35620
35621    /// Semantic action for production 936:
35622    ///
35623    /// `PortTypeAbstractOpt /* Option<T>::Some */: ClockDomain;`
35624    ///
35625    #[parol_runtime::function_name::named]
35626    fn port_type_abstract_opt_0(&mut self, _clock_domain: &ParseTreeType<'t>) -> Result<()> {
35627        let context = function_name!();
35628        trace!("{}", self.trace_item_stack(context));
35629        let clock_domain = pop_item!(self, clock_domain, ClockDomain, context);
35630        let port_type_abstract_opt_0_built = PortTypeAbstractOpt {
35631            clock_domain: Box::new(clock_domain),
35632        };
35633        self.push(
35634            ASTType::PortTypeAbstractOpt(Some(port_type_abstract_opt_0_built)),
35635            context,
35636        );
35637        Ok(())
35638    }
35639
35640    /// Semantic action for production 937:
35641    ///
35642    /// `PortTypeAbstractOpt /* Option<T>::None */: ;`
35643    ///
35644    #[parol_runtime::function_name::named]
35645    fn port_type_abstract_opt_1(&mut self) -> Result<()> {
35646        let context = function_name!();
35647        trace!("{}", self.trace_item_stack(context));
35648        self.push(ASTType::PortTypeAbstractOpt(None), context);
35649        Ok(())
35650    }
35651
35652    /// Semantic action for production 938:
35653    ///
35654    /// `Direction: Input;`
35655    ///
35656    #[parol_runtime::function_name::named]
35657    fn direction_0(&mut self, _input: &ParseTreeType<'t>) -> Result<()> {
35658        let context = function_name!();
35659        trace!("{}", self.trace_item_stack(context));
35660        let input = pop_item!(self, input, Input, context);
35661        let direction_0_built = DirectionInput {
35662            input: Box::new(input),
35663        };
35664        let direction_0_built = Direction::Input(direction_0_built);
35665        // Calling user action here
35666        self.user_grammar.direction(&direction_0_built)?;
35667        self.push(ASTType::Direction(direction_0_built), context);
35668        Ok(())
35669    }
35670
35671    /// Semantic action for production 939:
35672    ///
35673    /// `Direction: Output;`
35674    ///
35675    #[parol_runtime::function_name::named]
35676    fn direction_1(&mut self, _output: &ParseTreeType<'t>) -> Result<()> {
35677        let context = function_name!();
35678        trace!("{}", self.trace_item_stack(context));
35679        let output = pop_item!(self, output, Output, context);
35680        let direction_1_built = DirectionOutput {
35681            output: Box::new(output),
35682        };
35683        let direction_1_built = Direction::Output(direction_1_built);
35684        // Calling user action here
35685        self.user_grammar.direction(&direction_1_built)?;
35686        self.push(ASTType::Direction(direction_1_built), context);
35687        Ok(())
35688    }
35689
35690    /// Semantic action for production 940:
35691    ///
35692    /// `Direction: Inout;`
35693    ///
35694    #[parol_runtime::function_name::named]
35695    fn direction_2(&mut self, _inout: &ParseTreeType<'t>) -> Result<()> {
35696        let context = function_name!();
35697        trace!("{}", self.trace_item_stack(context));
35698        let inout = pop_item!(self, inout, Inout, context);
35699        let direction_2_built = DirectionInout {
35700            inout: Box::new(inout),
35701        };
35702        let direction_2_built = Direction::Inout(direction_2_built);
35703        // Calling user action here
35704        self.user_grammar.direction(&direction_2_built)?;
35705        self.push(ASTType::Direction(direction_2_built), context);
35706        Ok(())
35707    }
35708
35709    /// Semantic action for production 941:
35710    ///
35711    /// `Direction: Modport;`
35712    ///
35713    #[parol_runtime::function_name::named]
35714    fn direction_3(&mut self, _modport: &ParseTreeType<'t>) -> Result<()> {
35715        let context = function_name!();
35716        trace!("{}", self.trace_item_stack(context));
35717        let modport = pop_item!(self, modport, Modport, context);
35718        let direction_3_built = DirectionModport {
35719            modport: Box::new(modport),
35720        };
35721        let direction_3_built = Direction::Modport(direction_3_built);
35722        // Calling user action here
35723        self.user_grammar.direction(&direction_3_built)?;
35724        self.push(ASTType::Direction(direction_3_built), context);
35725        Ok(())
35726    }
35727
35728    /// Semantic action for production 942:
35729    ///
35730    /// `Direction: Import;`
35731    ///
35732    #[parol_runtime::function_name::named]
35733    fn direction_4(&mut self, _import: &ParseTreeType<'t>) -> Result<()> {
35734        let context = function_name!();
35735        trace!("{}", self.trace_item_stack(context));
35736        let import = pop_item!(self, import, Import, context);
35737        let direction_4_built = DirectionImport {
35738            import: Box::new(import),
35739        };
35740        let direction_4_built = Direction::Import(direction_4_built);
35741        // Calling user action here
35742        self.user_grammar.direction(&direction_4_built)?;
35743        self.push(ASTType::Direction(direction_4_built), context);
35744        Ok(())
35745    }
35746
35747    /// Semantic action for production 943:
35748    ///
35749    /// `FunctionDeclaration: Function Identifier FunctionDeclarationOpt /* Option */ FunctionDeclarationOpt0 /* Option */ FunctionDeclarationOpt1 /* Option */ StatementBlock;`
35750    ///
35751    #[parol_runtime::function_name::named]
35752    fn function_declaration(
35753        &mut self,
35754        _function: &ParseTreeType<'t>,
35755        _identifier: &ParseTreeType<'t>,
35756        _function_declaration_opt: &ParseTreeType<'t>,
35757        _function_declaration_opt0: &ParseTreeType<'t>,
35758        _function_declaration_opt1: &ParseTreeType<'t>,
35759        _statement_block: &ParseTreeType<'t>,
35760    ) -> Result<()> {
35761        let context = function_name!();
35762        trace!("{}", self.trace_item_stack(context));
35763        let statement_block = pop_item!(self, statement_block, StatementBlock, context);
35764        let function_declaration_opt1 = pop_item!(
35765            self,
35766            function_declaration_opt1,
35767            FunctionDeclarationOpt1,
35768            context
35769        );
35770        let function_declaration_opt0 = pop_item!(
35771            self,
35772            function_declaration_opt0,
35773            FunctionDeclarationOpt0,
35774            context
35775        );
35776        let function_declaration_opt = pop_item!(
35777            self,
35778            function_declaration_opt,
35779            FunctionDeclarationOpt,
35780            context
35781        );
35782        let identifier = pop_item!(self, identifier, Identifier, context);
35783        let function = pop_item!(self, function, Function, context);
35784        let function_declaration_built = FunctionDeclaration {
35785            function: Box::new(function),
35786            identifier: Box::new(identifier),
35787            function_declaration_opt,
35788            function_declaration_opt0,
35789            function_declaration_opt1,
35790            statement_block: Box::new(statement_block),
35791        };
35792        // Calling user action here
35793        self.user_grammar
35794            .function_declaration(&function_declaration_built)?;
35795        self.push(
35796            ASTType::FunctionDeclaration(function_declaration_built),
35797            context,
35798        );
35799        Ok(())
35800    }
35801
35802    /// Semantic action for production 944:
35803    ///
35804    /// `FunctionDeclarationOpt1 /* Option<T>::Some */: MinusGT ScalarType;`
35805    ///
35806    #[parol_runtime::function_name::named]
35807    fn function_declaration_opt1_0(
35808        &mut self,
35809        _minus_g_t: &ParseTreeType<'t>,
35810        _scalar_type: &ParseTreeType<'t>,
35811    ) -> Result<()> {
35812        let context = function_name!();
35813        trace!("{}", self.trace_item_stack(context));
35814        let scalar_type = pop_item!(self, scalar_type, ScalarType, context);
35815        let minus_g_t = pop_item!(self, minus_g_t, MinusGT, context);
35816        let function_declaration_opt1_0_built = FunctionDeclarationOpt1 {
35817            minus_g_t: Box::new(minus_g_t),
35818            scalar_type: Box::new(scalar_type),
35819        };
35820        self.push(
35821            ASTType::FunctionDeclarationOpt1(Some(function_declaration_opt1_0_built)),
35822            context,
35823        );
35824        Ok(())
35825    }
35826
35827    /// Semantic action for production 945:
35828    ///
35829    /// `FunctionDeclarationOpt1 /* Option<T>::None */: ;`
35830    ///
35831    #[parol_runtime::function_name::named]
35832    fn function_declaration_opt1_1(&mut self) -> Result<()> {
35833        let context = function_name!();
35834        trace!("{}", self.trace_item_stack(context));
35835        self.push(ASTType::FunctionDeclarationOpt1(None), context);
35836        Ok(())
35837    }
35838
35839    /// Semantic action for production 946:
35840    ///
35841    /// `FunctionDeclarationOpt0 /* Option<T>::Some */: PortDeclaration;`
35842    ///
35843    #[parol_runtime::function_name::named]
35844    fn function_declaration_opt0_0(&mut self, _port_declaration: &ParseTreeType<'t>) -> Result<()> {
35845        let context = function_name!();
35846        trace!("{}", self.trace_item_stack(context));
35847        let port_declaration = pop_item!(self, port_declaration, PortDeclaration, context);
35848        let function_declaration_opt0_0_built = FunctionDeclarationOpt0 {
35849            port_declaration: Box::new(port_declaration),
35850        };
35851        self.push(
35852            ASTType::FunctionDeclarationOpt0(Some(function_declaration_opt0_0_built)),
35853            context,
35854        );
35855        Ok(())
35856    }
35857
35858    /// Semantic action for production 947:
35859    ///
35860    /// `FunctionDeclarationOpt0 /* Option<T>::None */: ;`
35861    ///
35862    #[parol_runtime::function_name::named]
35863    fn function_declaration_opt0_1(&mut self) -> Result<()> {
35864        let context = function_name!();
35865        trace!("{}", self.trace_item_stack(context));
35866        self.push(ASTType::FunctionDeclarationOpt0(None), context);
35867        Ok(())
35868    }
35869
35870    /// Semantic action for production 948:
35871    ///
35872    /// `FunctionDeclarationOpt /* Option<T>::Some */: WithGenericParameter;`
35873    ///
35874    #[parol_runtime::function_name::named]
35875    fn function_declaration_opt_0(
35876        &mut self,
35877        _with_generic_parameter: &ParseTreeType<'t>,
35878    ) -> Result<()> {
35879        let context = function_name!();
35880        trace!("{}", self.trace_item_stack(context));
35881        let with_generic_parameter =
35882            pop_item!(self, with_generic_parameter, WithGenericParameter, context);
35883        let function_declaration_opt_0_built = FunctionDeclarationOpt {
35884            with_generic_parameter: Box::new(with_generic_parameter),
35885        };
35886        self.push(
35887            ASTType::FunctionDeclarationOpt(Some(function_declaration_opt_0_built)),
35888            context,
35889        );
35890        Ok(())
35891    }
35892
35893    /// Semantic action for production 949:
35894    ///
35895    /// `FunctionDeclarationOpt /* Option<T>::None */: ;`
35896    ///
35897    #[parol_runtime::function_name::named]
35898    fn function_declaration_opt_1(&mut self) -> Result<()> {
35899        let context = function_name!();
35900        trace!("{}", self.trace_item_stack(context));
35901        self.push(ASTType::FunctionDeclarationOpt(None), context);
35902        Ok(())
35903    }
35904
35905    /// Semantic action for production 950:
35906    ///
35907    /// `ImportDeclaration: Import ScopedIdentifier ImportDeclarationOpt /* Option */ Semicolon;`
35908    ///
35909    #[parol_runtime::function_name::named]
35910    fn import_declaration(
35911        &mut self,
35912        _import: &ParseTreeType<'t>,
35913        _scoped_identifier: &ParseTreeType<'t>,
35914        _import_declaration_opt: &ParseTreeType<'t>,
35915        _semicolon: &ParseTreeType<'t>,
35916    ) -> Result<()> {
35917        let context = function_name!();
35918        trace!("{}", self.trace_item_stack(context));
35919        let semicolon = pop_item!(self, semicolon, Semicolon, context);
35920        let import_declaration_opt =
35921            pop_item!(self, import_declaration_opt, ImportDeclarationOpt, context);
35922        let scoped_identifier = pop_item!(self, scoped_identifier, ScopedIdentifier, context);
35923        let import = pop_item!(self, import, Import, context);
35924        let import_declaration_built = ImportDeclaration {
35925            import: Box::new(import),
35926            scoped_identifier: Box::new(scoped_identifier),
35927            import_declaration_opt,
35928            semicolon: Box::new(semicolon),
35929        };
35930        // Calling user action here
35931        self.user_grammar
35932            .import_declaration(&import_declaration_built)?;
35933        self.push(
35934            ASTType::ImportDeclaration(import_declaration_built),
35935            context,
35936        );
35937        Ok(())
35938    }
35939
35940    /// Semantic action for production 951:
35941    ///
35942    /// `ImportDeclarationOpt /* Option<T>::Some */: ColonColon Star;`
35943    ///
35944    #[parol_runtime::function_name::named]
35945    fn import_declaration_opt_0(
35946        &mut self,
35947        _colon_colon: &ParseTreeType<'t>,
35948        _star: &ParseTreeType<'t>,
35949    ) -> Result<()> {
35950        let context = function_name!();
35951        trace!("{}", self.trace_item_stack(context));
35952        let star = pop_item!(self, star, Star, context);
35953        let colon_colon = pop_item!(self, colon_colon, ColonColon, context);
35954        let import_declaration_opt_0_built = ImportDeclarationOpt {
35955            colon_colon: Box::new(colon_colon),
35956            star: Box::new(star),
35957        };
35958        self.push(
35959            ASTType::ImportDeclarationOpt(Some(import_declaration_opt_0_built)),
35960            context,
35961        );
35962        Ok(())
35963    }
35964
35965    /// Semantic action for production 952:
35966    ///
35967    /// `ImportDeclarationOpt /* Option<T>::None */: ;`
35968    ///
35969    #[parol_runtime::function_name::named]
35970    fn import_declaration_opt_1(&mut self) -> Result<()> {
35971        let context = function_name!();
35972        trace!("{}", self.trace_item_stack(context));
35973        self.push(ASTType::ImportDeclarationOpt(None), context);
35974        Ok(())
35975    }
35976
35977    /// Semantic action for production 953:
35978    ///
35979    /// `UnsafeBlock: Unsafe LParen Identifier RParen LBrace UnsafeBlockList /* Vec */ RBrace;`
35980    ///
35981    #[parol_runtime::function_name::named]
35982    fn unsafe_block(
35983        &mut self,
35984        _unsafe: &ParseTreeType<'t>,
35985        _l_paren: &ParseTreeType<'t>,
35986        _identifier: &ParseTreeType<'t>,
35987        _r_paren: &ParseTreeType<'t>,
35988        _l_brace: &ParseTreeType<'t>,
35989        _unsafe_block_list: &ParseTreeType<'t>,
35990        _r_brace: &ParseTreeType<'t>,
35991    ) -> Result<()> {
35992        let context = function_name!();
35993        trace!("{}", self.trace_item_stack(context));
35994        let r_brace = pop_item!(self, r_brace, RBrace, context);
35995        let unsafe_block_list =
35996            pop_and_reverse_item!(self, unsafe_block_list, UnsafeBlockList, context);
35997        let l_brace = pop_item!(self, l_brace, LBrace, context);
35998        let r_paren = pop_item!(self, r_paren, RParen, context);
35999        let identifier = pop_item!(self, identifier, Identifier, context);
36000        let l_paren = pop_item!(self, l_paren, LParen, context);
36001        let r#unsafe = pop_item!(self, r#unsafe, Unsafe, context);
36002        let unsafe_block_built = UnsafeBlock {
36003            r#unsafe: Box::new(r#unsafe),
36004            l_paren: Box::new(l_paren),
36005            identifier: Box::new(identifier),
36006            r_paren: Box::new(r_paren),
36007            l_brace: Box::new(l_brace),
36008            unsafe_block_list,
36009            r_brace: Box::new(r_brace),
36010        };
36011        // Calling user action here
36012        self.user_grammar.unsafe_block(&unsafe_block_built)?;
36013        self.push(ASTType::UnsafeBlock(unsafe_block_built), context);
36014        Ok(())
36015    }
36016
36017    /// Semantic action for production 954:
36018    ///
36019    /// `UnsafeBlockList /* Vec<T>::Push */: GenerateGroup UnsafeBlockList;`
36020    ///
36021    #[parol_runtime::function_name::named]
36022    fn unsafe_block_list_0(
36023        &mut self,
36024        _generate_group: &ParseTreeType<'t>,
36025        _unsafe_block_list: &ParseTreeType<'t>,
36026    ) -> Result<()> {
36027        let context = function_name!();
36028        trace!("{}", self.trace_item_stack(context));
36029        let mut unsafe_block_list = pop_item!(self, unsafe_block_list, UnsafeBlockList, context);
36030        let generate_group = pop_item!(self, generate_group, GenerateGroup, context);
36031        let unsafe_block_list_0_built = UnsafeBlockList {
36032            generate_group: Box::new(generate_group),
36033        };
36034        // Add an element to the vector
36035        unsafe_block_list.push(unsafe_block_list_0_built);
36036        self.push(ASTType::UnsafeBlockList(unsafe_block_list), context);
36037        Ok(())
36038    }
36039
36040    /// Semantic action for production 955:
36041    ///
36042    /// `UnsafeBlockList /* Vec<T>::New */: ;`
36043    ///
36044    #[parol_runtime::function_name::named]
36045    fn unsafe_block_list_1(&mut self) -> Result<()> {
36046        let context = function_name!();
36047        trace!("{}", self.trace_item_stack(context));
36048        let unsafe_block_list_1_built = Vec::new();
36049        self.push(ASTType::UnsafeBlockList(unsafe_block_list_1_built), context);
36050        Ok(())
36051    }
36052
36053    /// Semantic action for production 956:
36054    ///
36055    /// `ModuleDeclaration: Module Identifier ModuleDeclarationOpt /* Option */ ModuleDeclarationOpt0 /* Option */ ModuleDeclarationOpt1 /* Option */ ModuleDeclarationOpt2 /* Option */ LBrace ModuleDeclarationList /* Vec */ RBrace;`
36056    ///
36057    #[parol_runtime::function_name::named]
36058    fn module_declaration(
36059        &mut self,
36060        _module: &ParseTreeType<'t>,
36061        _identifier: &ParseTreeType<'t>,
36062        _module_declaration_opt: &ParseTreeType<'t>,
36063        _module_declaration_opt0: &ParseTreeType<'t>,
36064        _module_declaration_opt1: &ParseTreeType<'t>,
36065        _module_declaration_opt2: &ParseTreeType<'t>,
36066        _l_brace: &ParseTreeType<'t>,
36067        _module_declaration_list: &ParseTreeType<'t>,
36068        _r_brace: &ParseTreeType<'t>,
36069    ) -> Result<()> {
36070        let context = function_name!();
36071        trace!("{}", self.trace_item_stack(context));
36072        let r_brace = pop_item!(self, r_brace, RBrace, context);
36073        let module_declaration_list = pop_and_reverse_item!(
36074            self,
36075            module_declaration_list,
36076            ModuleDeclarationList,
36077            context
36078        );
36079        let l_brace = pop_item!(self, l_brace, LBrace, context);
36080        let module_declaration_opt2 = pop_item!(
36081            self,
36082            module_declaration_opt2,
36083            ModuleDeclarationOpt2,
36084            context
36085        );
36086        let module_declaration_opt1 = pop_item!(
36087            self,
36088            module_declaration_opt1,
36089            ModuleDeclarationOpt1,
36090            context
36091        );
36092        let module_declaration_opt0 = pop_item!(
36093            self,
36094            module_declaration_opt0,
36095            ModuleDeclarationOpt0,
36096            context
36097        );
36098        let module_declaration_opt =
36099            pop_item!(self, module_declaration_opt, ModuleDeclarationOpt, context);
36100        let identifier = pop_item!(self, identifier, Identifier, context);
36101        let module = pop_item!(self, module, Module, context);
36102        let module_declaration_built = ModuleDeclaration {
36103            module: Box::new(module),
36104            identifier: Box::new(identifier),
36105            module_declaration_opt,
36106            module_declaration_opt0,
36107            module_declaration_opt1,
36108            module_declaration_opt2,
36109            l_brace: Box::new(l_brace),
36110            module_declaration_list,
36111            r_brace: Box::new(r_brace),
36112        };
36113        // Calling user action here
36114        self.user_grammar
36115            .module_declaration(&module_declaration_built)?;
36116        self.push(
36117            ASTType::ModuleDeclaration(module_declaration_built),
36118            context,
36119        );
36120        Ok(())
36121    }
36122
36123    /// Semantic action for production 957:
36124    ///
36125    /// `ModuleDeclarationList /* Vec<T>::Push */: ModuleGroup ModuleDeclarationList;`
36126    ///
36127    #[parol_runtime::function_name::named]
36128    fn module_declaration_list_0(
36129        &mut self,
36130        _module_group: &ParseTreeType<'t>,
36131        _module_declaration_list: &ParseTreeType<'t>,
36132    ) -> Result<()> {
36133        let context = function_name!();
36134        trace!("{}", self.trace_item_stack(context));
36135        let mut module_declaration_list = pop_item!(
36136            self,
36137            module_declaration_list,
36138            ModuleDeclarationList,
36139            context
36140        );
36141        let module_group = pop_item!(self, module_group, ModuleGroup, context);
36142        let module_declaration_list_0_built = ModuleDeclarationList {
36143            module_group: Box::new(module_group),
36144        };
36145        // Add an element to the vector
36146        module_declaration_list.push(module_declaration_list_0_built);
36147        self.push(
36148            ASTType::ModuleDeclarationList(module_declaration_list),
36149            context,
36150        );
36151        Ok(())
36152    }
36153
36154    /// Semantic action for production 958:
36155    ///
36156    /// `ModuleDeclarationList /* Vec<T>::New */: ;`
36157    ///
36158    #[parol_runtime::function_name::named]
36159    fn module_declaration_list_1(&mut self) -> Result<()> {
36160        let context = function_name!();
36161        trace!("{}", self.trace_item_stack(context));
36162        let module_declaration_list_1_built = Vec::new();
36163        self.push(
36164            ASTType::ModuleDeclarationList(module_declaration_list_1_built),
36165            context,
36166        );
36167        Ok(())
36168    }
36169
36170    /// Semantic action for production 959:
36171    ///
36172    /// `ModuleDeclarationOpt2 /* Option<T>::Some */: PortDeclaration;`
36173    ///
36174    #[parol_runtime::function_name::named]
36175    fn module_declaration_opt2_0(&mut self, _port_declaration: &ParseTreeType<'t>) -> Result<()> {
36176        let context = function_name!();
36177        trace!("{}", self.trace_item_stack(context));
36178        let port_declaration = pop_item!(self, port_declaration, PortDeclaration, context);
36179        let module_declaration_opt2_0_built = ModuleDeclarationOpt2 {
36180            port_declaration: Box::new(port_declaration),
36181        };
36182        self.push(
36183            ASTType::ModuleDeclarationOpt2(Some(module_declaration_opt2_0_built)),
36184            context,
36185        );
36186        Ok(())
36187    }
36188
36189    /// Semantic action for production 960:
36190    ///
36191    /// `ModuleDeclarationOpt2 /* Option<T>::None */: ;`
36192    ///
36193    #[parol_runtime::function_name::named]
36194    fn module_declaration_opt2_1(&mut self) -> Result<()> {
36195        let context = function_name!();
36196        trace!("{}", self.trace_item_stack(context));
36197        self.push(ASTType::ModuleDeclarationOpt2(None), context);
36198        Ok(())
36199    }
36200
36201    /// Semantic action for production 961:
36202    ///
36203    /// `ModuleDeclarationOpt1 /* Option<T>::Some */: WithParameter;`
36204    ///
36205    #[parol_runtime::function_name::named]
36206    fn module_declaration_opt1_0(&mut self, _with_parameter: &ParseTreeType<'t>) -> Result<()> {
36207        let context = function_name!();
36208        trace!("{}", self.trace_item_stack(context));
36209        let with_parameter = pop_item!(self, with_parameter, WithParameter, context);
36210        let module_declaration_opt1_0_built = ModuleDeclarationOpt1 {
36211            with_parameter: Box::new(with_parameter),
36212        };
36213        self.push(
36214            ASTType::ModuleDeclarationOpt1(Some(module_declaration_opt1_0_built)),
36215            context,
36216        );
36217        Ok(())
36218    }
36219
36220    /// Semantic action for production 962:
36221    ///
36222    /// `ModuleDeclarationOpt1 /* Option<T>::None */: ;`
36223    ///
36224    #[parol_runtime::function_name::named]
36225    fn module_declaration_opt1_1(&mut self) -> Result<()> {
36226        let context = function_name!();
36227        trace!("{}", self.trace_item_stack(context));
36228        self.push(ASTType::ModuleDeclarationOpt1(None), context);
36229        Ok(())
36230    }
36231
36232    /// Semantic action for production 963:
36233    ///
36234    /// `ModuleDeclarationOpt0 /* Option<T>::Some */: For ScopedIdentifier;`
36235    ///
36236    #[parol_runtime::function_name::named]
36237    fn module_declaration_opt0_0(
36238        &mut self,
36239        _for: &ParseTreeType<'t>,
36240        _scoped_identifier: &ParseTreeType<'t>,
36241    ) -> Result<()> {
36242        let context = function_name!();
36243        trace!("{}", self.trace_item_stack(context));
36244        let scoped_identifier = pop_item!(self, scoped_identifier, ScopedIdentifier, context);
36245        let r#for = pop_item!(self, r#for, For, context);
36246        let module_declaration_opt0_0_built = ModuleDeclarationOpt0 {
36247            r#for: Box::new(r#for),
36248            scoped_identifier: Box::new(scoped_identifier),
36249        };
36250        self.push(
36251            ASTType::ModuleDeclarationOpt0(Some(module_declaration_opt0_0_built)),
36252            context,
36253        );
36254        Ok(())
36255    }
36256
36257    /// Semantic action for production 964:
36258    ///
36259    /// `ModuleDeclarationOpt0 /* Option<T>::None */: ;`
36260    ///
36261    #[parol_runtime::function_name::named]
36262    fn module_declaration_opt0_1(&mut self) -> Result<()> {
36263        let context = function_name!();
36264        trace!("{}", self.trace_item_stack(context));
36265        self.push(ASTType::ModuleDeclarationOpt0(None), context);
36266        Ok(())
36267    }
36268
36269    /// Semantic action for production 965:
36270    ///
36271    /// `ModuleDeclarationOpt /* Option<T>::Some */: WithGenericParameter;`
36272    ///
36273    #[parol_runtime::function_name::named]
36274    fn module_declaration_opt_0(
36275        &mut self,
36276        _with_generic_parameter: &ParseTreeType<'t>,
36277    ) -> Result<()> {
36278        let context = function_name!();
36279        trace!("{}", self.trace_item_stack(context));
36280        let with_generic_parameter =
36281            pop_item!(self, with_generic_parameter, WithGenericParameter, context);
36282        let module_declaration_opt_0_built = ModuleDeclarationOpt {
36283            with_generic_parameter: Box::new(with_generic_parameter),
36284        };
36285        self.push(
36286            ASTType::ModuleDeclarationOpt(Some(module_declaration_opt_0_built)),
36287            context,
36288        );
36289        Ok(())
36290    }
36291
36292    /// Semantic action for production 966:
36293    ///
36294    /// `ModuleDeclarationOpt /* Option<T>::None */: ;`
36295    ///
36296    #[parol_runtime::function_name::named]
36297    fn module_declaration_opt_1(&mut self) -> Result<()> {
36298        let context = function_name!();
36299        trace!("{}", self.trace_item_stack(context));
36300        self.push(ASTType::ModuleDeclarationOpt(None), context);
36301        Ok(())
36302    }
36303
36304    /// Semantic action for production 967:
36305    ///
36306    /// `ModuleGroup: ModuleGroupList /* Vec */ ModuleGroupGroup;`
36307    ///
36308    #[parol_runtime::function_name::named]
36309    fn module_group(
36310        &mut self,
36311        _module_group_list: &ParseTreeType<'t>,
36312        _module_group_group: &ParseTreeType<'t>,
36313    ) -> Result<()> {
36314        let context = function_name!();
36315        trace!("{}", self.trace_item_stack(context));
36316        let module_group_group = pop_item!(self, module_group_group, ModuleGroupGroup, context);
36317        let module_group_list =
36318            pop_and_reverse_item!(self, module_group_list, ModuleGroupList, context);
36319        let module_group_built = ModuleGroup {
36320            module_group_list,
36321            module_group_group: Box::new(module_group_group),
36322        };
36323        // Calling user action here
36324        self.user_grammar.module_group(&module_group_built)?;
36325        self.push(ASTType::ModuleGroup(module_group_built), context);
36326        Ok(())
36327    }
36328
36329    /// Semantic action for production 968:
36330    ///
36331    /// `ModuleGroupGroup: LBrace ModuleGroupGroupList /* Vec */ RBrace;`
36332    ///
36333    #[parol_runtime::function_name::named]
36334    fn module_group_group_0(
36335        &mut self,
36336        _l_brace: &ParseTreeType<'t>,
36337        _module_group_group_list: &ParseTreeType<'t>,
36338        _r_brace: &ParseTreeType<'t>,
36339    ) -> Result<()> {
36340        let context = function_name!();
36341        trace!("{}", self.trace_item_stack(context));
36342        let r_brace = pop_item!(self, r_brace, RBrace, context);
36343        let module_group_group_list =
36344            pop_and_reverse_item!(self, module_group_group_list, ModuleGroupGroupList, context);
36345        let l_brace = pop_item!(self, l_brace, LBrace, context);
36346        let module_group_group_0_built = ModuleGroupGroupLBraceModuleGroupGroupListRBrace {
36347            l_brace: Box::new(l_brace),
36348            module_group_group_list,
36349            r_brace: Box::new(r_brace),
36350        };
36351        let module_group_group_0_built =
36352            ModuleGroupGroup::LBraceModuleGroupGroupListRBrace(module_group_group_0_built);
36353        self.push(
36354            ASTType::ModuleGroupGroup(module_group_group_0_built),
36355            context,
36356        );
36357        Ok(())
36358    }
36359
36360    /// Semantic action for production 969:
36361    ///
36362    /// `ModuleGroupGroupList /* Vec<T>::Push */: ModuleGroup ModuleGroupGroupList;`
36363    ///
36364    #[parol_runtime::function_name::named]
36365    fn module_group_group_list_0(
36366        &mut self,
36367        _module_group: &ParseTreeType<'t>,
36368        _module_group_group_list: &ParseTreeType<'t>,
36369    ) -> Result<()> {
36370        let context = function_name!();
36371        trace!("{}", self.trace_item_stack(context));
36372        let mut module_group_group_list =
36373            pop_item!(self, module_group_group_list, ModuleGroupGroupList, context);
36374        let module_group = pop_item!(self, module_group, ModuleGroup, context);
36375        let module_group_group_list_0_built = ModuleGroupGroupList {
36376            module_group: Box::new(module_group),
36377        };
36378        // Add an element to the vector
36379        module_group_group_list.push(module_group_group_list_0_built);
36380        self.push(
36381            ASTType::ModuleGroupGroupList(module_group_group_list),
36382            context,
36383        );
36384        Ok(())
36385    }
36386
36387    /// Semantic action for production 970:
36388    ///
36389    /// `ModuleGroupGroupList /* Vec<T>::New */: ;`
36390    ///
36391    #[parol_runtime::function_name::named]
36392    fn module_group_group_list_1(&mut self) -> Result<()> {
36393        let context = function_name!();
36394        trace!("{}", self.trace_item_stack(context));
36395        let module_group_group_list_1_built = Vec::new();
36396        self.push(
36397            ASTType::ModuleGroupGroupList(module_group_group_list_1_built),
36398            context,
36399        );
36400        Ok(())
36401    }
36402
36403    /// Semantic action for production 971:
36404    ///
36405    /// `ModuleGroupGroup: ModuleItem;`
36406    ///
36407    #[parol_runtime::function_name::named]
36408    fn module_group_group_1(&mut self, _module_item: &ParseTreeType<'t>) -> Result<()> {
36409        let context = function_name!();
36410        trace!("{}", self.trace_item_stack(context));
36411        let module_item = pop_item!(self, module_item, ModuleItem, context);
36412        let module_group_group_1_built = ModuleGroupGroupModuleItem {
36413            module_item: Box::new(module_item),
36414        };
36415        let module_group_group_1_built = ModuleGroupGroup::ModuleItem(module_group_group_1_built);
36416        self.push(
36417            ASTType::ModuleGroupGroup(module_group_group_1_built),
36418            context,
36419        );
36420        Ok(())
36421    }
36422
36423    /// Semantic action for production 972:
36424    ///
36425    /// `ModuleGroupList /* Vec<T>::Push */: Attribute ModuleGroupList;`
36426    ///
36427    #[parol_runtime::function_name::named]
36428    fn module_group_list_0(
36429        &mut self,
36430        _attribute: &ParseTreeType<'t>,
36431        _module_group_list: &ParseTreeType<'t>,
36432    ) -> Result<()> {
36433        let context = function_name!();
36434        trace!("{}", self.trace_item_stack(context));
36435        let mut module_group_list = pop_item!(self, module_group_list, ModuleGroupList, context);
36436        let attribute = pop_item!(self, attribute, Attribute, context);
36437        let module_group_list_0_built = ModuleGroupList {
36438            attribute: Box::new(attribute),
36439        };
36440        // Add an element to the vector
36441        module_group_list.push(module_group_list_0_built);
36442        self.push(ASTType::ModuleGroupList(module_group_list), context);
36443        Ok(())
36444    }
36445
36446    /// Semantic action for production 973:
36447    ///
36448    /// `ModuleGroupList /* Vec<T>::New */: ;`
36449    ///
36450    #[parol_runtime::function_name::named]
36451    fn module_group_list_1(&mut self) -> Result<()> {
36452        let context = function_name!();
36453        trace!("{}", self.trace_item_stack(context));
36454        let module_group_list_1_built = Vec::new();
36455        self.push(ASTType::ModuleGroupList(module_group_list_1_built), context);
36456        Ok(())
36457    }
36458
36459    /// Semantic action for production 974:
36460    ///
36461    /// `ModuleItem: GenerateItem;`
36462    ///
36463    #[parol_runtime::function_name::named]
36464    fn module_item(&mut self, _generate_item: &ParseTreeType<'t>) -> Result<()> {
36465        let context = function_name!();
36466        trace!("{}", self.trace_item_stack(context));
36467        let generate_item = pop_item!(self, generate_item, GenerateItem, context);
36468        let module_item_built = ModuleItem {
36469            generate_item: Box::new(generate_item),
36470        };
36471        // Calling user action here
36472        self.user_grammar.module_item(&module_item_built)?;
36473        self.push(ASTType::ModuleItem(module_item_built), context);
36474        Ok(())
36475    }
36476
36477    /// Semantic action for production 975:
36478    ///
36479    /// `InterfaceDeclaration: Interface Identifier InterfaceDeclarationOpt /* Option */ InterfaceDeclarationOpt0 /* Option */ InterfaceDeclarationOpt1 /* Option */ LBrace InterfaceDeclarationList /* Vec */ RBrace;`
36480    ///
36481    #[parol_runtime::function_name::named]
36482    fn interface_declaration(
36483        &mut self,
36484        _interface: &ParseTreeType<'t>,
36485        _identifier: &ParseTreeType<'t>,
36486        _interface_declaration_opt: &ParseTreeType<'t>,
36487        _interface_declaration_opt0: &ParseTreeType<'t>,
36488        _interface_declaration_opt1: &ParseTreeType<'t>,
36489        _l_brace: &ParseTreeType<'t>,
36490        _interface_declaration_list: &ParseTreeType<'t>,
36491        _r_brace: &ParseTreeType<'t>,
36492    ) -> Result<()> {
36493        let context = function_name!();
36494        trace!("{}", self.trace_item_stack(context));
36495        let r_brace = pop_item!(self, r_brace, RBrace, context);
36496        let interface_declaration_list = pop_and_reverse_item!(
36497            self,
36498            interface_declaration_list,
36499            InterfaceDeclarationList,
36500            context
36501        );
36502        let l_brace = pop_item!(self, l_brace, LBrace, context);
36503        let interface_declaration_opt1 = pop_item!(
36504            self,
36505            interface_declaration_opt1,
36506            InterfaceDeclarationOpt1,
36507            context
36508        );
36509        let interface_declaration_opt0 = pop_item!(
36510            self,
36511            interface_declaration_opt0,
36512            InterfaceDeclarationOpt0,
36513            context
36514        );
36515        let interface_declaration_opt = pop_item!(
36516            self,
36517            interface_declaration_opt,
36518            InterfaceDeclarationOpt,
36519            context
36520        );
36521        let identifier = pop_item!(self, identifier, Identifier, context);
36522        let interface = pop_item!(self, interface, Interface, context);
36523        let interface_declaration_built = InterfaceDeclaration {
36524            interface: Box::new(interface),
36525            identifier: Box::new(identifier),
36526            interface_declaration_opt,
36527            interface_declaration_opt0,
36528            interface_declaration_opt1,
36529            l_brace: Box::new(l_brace),
36530            interface_declaration_list,
36531            r_brace: Box::new(r_brace),
36532        };
36533        // Calling user action here
36534        self.user_grammar
36535            .interface_declaration(&interface_declaration_built)?;
36536        self.push(
36537            ASTType::InterfaceDeclaration(interface_declaration_built),
36538            context,
36539        );
36540        Ok(())
36541    }
36542
36543    /// Semantic action for production 976:
36544    ///
36545    /// `InterfaceDeclarationList /* Vec<T>::Push */: InterfaceGroup InterfaceDeclarationList;`
36546    ///
36547    #[parol_runtime::function_name::named]
36548    fn interface_declaration_list_0(
36549        &mut self,
36550        _interface_group: &ParseTreeType<'t>,
36551        _interface_declaration_list: &ParseTreeType<'t>,
36552    ) -> Result<()> {
36553        let context = function_name!();
36554        trace!("{}", self.trace_item_stack(context));
36555        let mut interface_declaration_list = pop_item!(
36556            self,
36557            interface_declaration_list,
36558            InterfaceDeclarationList,
36559            context
36560        );
36561        let interface_group = pop_item!(self, interface_group, InterfaceGroup, context);
36562        let interface_declaration_list_0_built = InterfaceDeclarationList {
36563            interface_group: Box::new(interface_group),
36564        };
36565        // Add an element to the vector
36566        interface_declaration_list.push(interface_declaration_list_0_built);
36567        self.push(
36568            ASTType::InterfaceDeclarationList(interface_declaration_list),
36569            context,
36570        );
36571        Ok(())
36572    }
36573
36574    /// Semantic action for production 977:
36575    ///
36576    /// `InterfaceDeclarationList /* Vec<T>::New */: ;`
36577    ///
36578    #[parol_runtime::function_name::named]
36579    fn interface_declaration_list_1(&mut self) -> Result<()> {
36580        let context = function_name!();
36581        trace!("{}", self.trace_item_stack(context));
36582        let interface_declaration_list_1_built = Vec::new();
36583        self.push(
36584            ASTType::InterfaceDeclarationList(interface_declaration_list_1_built),
36585            context,
36586        );
36587        Ok(())
36588    }
36589
36590    /// Semantic action for production 978:
36591    ///
36592    /// `InterfaceDeclarationOpt1 /* Option<T>::Some */: WithParameter;`
36593    ///
36594    #[parol_runtime::function_name::named]
36595    fn interface_declaration_opt1_0(&mut self, _with_parameter: &ParseTreeType<'t>) -> Result<()> {
36596        let context = function_name!();
36597        trace!("{}", self.trace_item_stack(context));
36598        let with_parameter = pop_item!(self, with_parameter, WithParameter, context);
36599        let interface_declaration_opt1_0_built = InterfaceDeclarationOpt1 {
36600            with_parameter: Box::new(with_parameter),
36601        };
36602        self.push(
36603            ASTType::InterfaceDeclarationOpt1(Some(interface_declaration_opt1_0_built)),
36604            context,
36605        );
36606        Ok(())
36607    }
36608
36609    /// Semantic action for production 979:
36610    ///
36611    /// `InterfaceDeclarationOpt1 /* Option<T>::None */: ;`
36612    ///
36613    #[parol_runtime::function_name::named]
36614    fn interface_declaration_opt1_1(&mut self) -> Result<()> {
36615        let context = function_name!();
36616        trace!("{}", self.trace_item_stack(context));
36617        self.push(ASTType::InterfaceDeclarationOpt1(None), context);
36618        Ok(())
36619    }
36620
36621    /// Semantic action for production 980:
36622    ///
36623    /// `InterfaceDeclarationOpt0 /* Option<T>::Some */: For ScopedIdentifier;`
36624    ///
36625    #[parol_runtime::function_name::named]
36626    fn interface_declaration_opt0_0(
36627        &mut self,
36628        _for: &ParseTreeType<'t>,
36629        _scoped_identifier: &ParseTreeType<'t>,
36630    ) -> Result<()> {
36631        let context = function_name!();
36632        trace!("{}", self.trace_item_stack(context));
36633        let scoped_identifier = pop_item!(self, scoped_identifier, ScopedIdentifier, context);
36634        let r#for = pop_item!(self, r#for, For, context);
36635        let interface_declaration_opt0_0_built = InterfaceDeclarationOpt0 {
36636            r#for: Box::new(r#for),
36637            scoped_identifier: Box::new(scoped_identifier),
36638        };
36639        self.push(
36640            ASTType::InterfaceDeclarationOpt0(Some(interface_declaration_opt0_0_built)),
36641            context,
36642        );
36643        Ok(())
36644    }
36645
36646    /// Semantic action for production 981:
36647    ///
36648    /// `InterfaceDeclarationOpt0 /* Option<T>::None */: ;`
36649    ///
36650    #[parol_runtime::function_name::named]
36651    fn interface_declaration_opt0_1(&mut self) -> Result<()> {
36652        let context = function_name!();
36653        trace!("{}", self.trace_item_stack(context));
36654        self.push(ASTType::InterfaceDeclarationOpt0(None), context);
36655        Ok(())
36656    }
36657
36658    /// Semantic action for production 982:
36659    ///
36660    /// `InterfaceDeclarationOpt /* Option<T>::Some */: WithGenericParameter;`
36661    ///
36662    #[parol_runtime::function_name::named]
36663    fn interface_declaration_opt_0(
36664        &mut self,
36665        _with_generic_parameter: &ParseTreeType<'t>,
36666    ) -> Result<()> {
36667        let context = function_name!();
36668        trace!("{}", self.trace_item_stack(context));
36669        let with_generic_parameter =
36670            pop_item!(self, with_generic_parameter, WithGenericParameter, context);
36671        let interface_declaration_opt_0_built = InterfaceDeclarationOpt {
36672            with_generic_parameter: Box::new(with_generic_parameter),
36673        };
36674        self.push(
36675            ASTType::InterfaceDeclarationOpt(Some(interface_declaration_opt_0_built)),
36676            context,
36677        );
36678        Ok(())
36679    }
36680
36681    /// Semantic action for production 983:
36682    ///
36683    /// `InterfaceDeclarationOpt /* Option<T>::None */: ;`
36684    ///
36685    #[parol_runtime::function_name::named]
36686    fn interface_declaration_opt_1(&mut self) -> Result<()> {
36687        let context = function_name!();
36688        trace!("{}", self.trace_item_stack(context));
36689        self.push(ASTType::InterfaceDeclarationOpt(None), context);
36690        Ok(())
36691    }
36692
36693    /// Semantic action for production 984:
36694    ///
36695    /// `InterfaceGroup: InterfaceGroupList /* Vec */ InterfaceGroupGroup;`
36696    ///
36697    #[parol_runtime::function_name::named]
36698    fn interface_group(
36699        &mut self,
36700        _interface_group_list: &ParseTreeType<'t>,
36701        _interface_group_group: &ParseTreeType<'t>,
36702    ) -> Result<()> {
36703        let context = function_name!();
36704        trace!("{}", self.trace_item_stack(context));
36705        let interface_group_group =
36706            pop_item!(self, interface_group_group, InterfaceGroupGroup, context);
36707        let interface_group_list =
36708            pop_and_reverse_item!(self, interface_group_list, InterfaceGroupList, context);
36709        let interface_group_built = InterfaceGroup {
36710            interface_group_list,
36711            interface_group_group: Box::new(interface_group_group),
36712        };
36713        // Calling user action here
36714        self.user_grammar.interface_group(&interface_group_built)?;
36715        self.push(ASTType::InterfaceGroup(interface_group_built), context);
36716        Ok(())
36717    }
36718
36719    /// Semantic action for production 985:
36720    ///
36721    /// `InterfaceGroupGroup: LBrace InterfaceGroupGroupList /* Vec */ RBrace;`
36722    ///
36723    #[parol_runtime::function_name::named]
36724    fn interface_group_group_0(
36725        &mut self,
36726        _l_brace: &ParseTreeType<'t>,
36727        _interface_group_group_list: &ParseTreeType<'t>,
36728        _r_brace: &ParseTreeType<'t>,
36729    ) -> Result<()> {
36730        let context = function_name!();
36731        trace!("{}", self.trace_item_stack(context));
36732        let r_brace = pop_item!(self, r_brace, RBrace, context);
36733        let interface_group_group_list = pop_and_reverse_item!(
36734            self,
36735            interface_group_group_list,
36736            InterfaceGroupGroupList,
36737            context
36738        );
36739        let l_brace = pop_item!(self, l_brace, LBrace, context);
36740        let interface_group_group_0_built =
36741            InterfaceGroupGroupLBraceInterfaceGroupGroupListRBrace {
36742                l_brace: Box::new(l_brace),
36743                interface_group_group_list,
36744                r_brace: Box::new(r_brace),
36745            };
36746        let interface_group_group_0_built =
36747            InterfaceGroupGroup::LBraceInterfaceGroupGroupListRBrace(interface_group_group_0_built);
36748        self.push(
36749            ASTType::InterfaceGroupGroup(interface_group_group_0_built),
36750            context,
36751        );
36752        Ok(())
36753    }
36754
36755    /// Semantic action for production 986:
36756    ///
36757    /// `InterfaceGroupGroupList /* Vec<T>::Push */: InterfaceGroup InterfaceGroupGroupList;`
36758    ///
36759    #[parol_runtime::function_name::named]
36760    fn interface_group_group_list_0(
36761        &mut self,
36762        _interface_group: &ParseTreeType<'t>,
36763        _interface_group_group_list: &ParseTreeType<'t>,
36764    ) -> Result<()> {
36765        let context = function_name!();
36766        trace!("{}", self.trace_item_stack(context));
36767        let mut interface_group_group_list = pop_item!(
36768            self,
36769            interface_group_group_list,
36770            InterfaceGroupGroupList,
36771            context
36772        );
36773        let interface_group = pop_item!(self, interface_group, InterfaceGroup, context);
36774        let interface_group_group_list_0_built = InterfaceGroupGroupList {
36775            interface_group: Box::new(interface_group),
36776        };
36777        // Add an element to the vector
36778        interface_group_group_list.push(interface_group_group_list_0_built);
36779        self.push(
36780            ASTType::InterfaceGroupGroupList(interface_group_group_list),
36781            context,
36782        );
36783        Ok(())
36784    }
36785
36786    /// Semantic action for production 987:
36787    ///
36788    /// `InterfaceGroupGroupList /* Vec<T>::New */: ;`
36789    ///
36790    #[parol_runtime::function_name::named]
36791    fn interface_group_group_list_1(&mut self) -> Result<()> {
36792        let context = function_name!();
36793        trace!("{}", self.trace_item_stack(context));
36794        let interface_group_group_list_1_built = Vec::new();
36795        self.push(
36796            ASTType::InterfaceGroupGroupList(interface_group_group_list_1_built),
36797            context,
36798        );
36799        Ok(())
36800    }
36801
36802    /// Semantic action for production 988:
36803    ///
36804    /// `InterfaceGroupGroup: InterfaceItem;`
36805    ///
36806    #[parol_runtime::function_name::named]
36807    fn interface_group_group_1(&mut self, _interface_item: &ParseTreeType<'t>) -> Result<()> {
36808        let context = function_name!();
36809        trace!("{}", self.trace_item_stack(context));
36810        let interface_item = pop_item!(self, interface_item, InterfaceItem, context);
36811        let interface_group_group_1_built = InterfaceGroupGroupInterfaceItem {
36812            interface_item: Box::new(interface_item),
36813        };
36814        let interface_group_group_1_built =
36815            InterfaceGroupGroup::InterfaceItem(interface_group_group_1_built);
36816        self.push(
36817            ASTType::InterfaceGroupGroup(interface_group_group_1_built),
36818            context,
36819        );
36820        Ok(())
36821    }
36822
36823    /// Semantic action for production 989:
36824    ///
36825    /// `InterfaceGroupList /* Vec<T>::Push */: Attribute InterfaceGroupList;`
36826    ///
36827    #[parol_runtime::function_name::named]
36828    fn interface_group_list_0(
36829        &mut self,
36830        _attribute: &ParseTreeType<'t>,
36831        _interface_group_list: &ParseTreeType<'t>,
36832    ) -> Result<()> {
36833        let context = function_name!();
36834        trace!("{}", self.trace_item_stack(context));
36835        let mut interface_group_list =
36836            pop_item!(self, interface_group_list, InterfaceGroupList, context);
36837        let attribute = pop_item!(self, attribute, Attribute, context);
36838        let interface_group_list_0_built = InterfaceGroupList {
36839            attribute: Box::new(attribute),
36840        };
36841        // Add an element to the vector
36842        interface_group_list.push(interface_group_list_0_built);
36843        self.push(ASTType::InterfaceGroupList(interface_group_list), context);
36844        Ok(())
36845    }
36846
36847    /// Semantic action for production 990:
36848    ///
36849    /// `InterfaceGroupList /* Vec<T>::New */: ;`
36850    ///
36851    #[parol_runtime::function_name::named]
36852    fn interface_group_list_1(&mut self) -> Result<()> {
36853        let context = function_name!();
36854        trace!("{}", self.trace_item_stack(context));
36855        let interface_group_list_1_built = Vec::new();
36856        self.push(
36857            ASTType::InterfaceGroupList(interface_group_list_1_built),
36858            context,
36859        );
36860        Ok(())
36861    }
36862
36863    /// Semantic action for production 991:
36864    ///
36865    /// `InterfaceItem: GenerateItem;`
36866    ///
36867    #[parol_runtime::function_name::named]
36868    fn interface_item_0(&mut self, _generate_item: &ParseTreeType<'t>) -> Result<()> {
36869        let context = function_name!();
36870        trace!("{}", self.trace_item_stack(context));
36871        let generate_item = pop_item!(self, generate_item, GenerateItem, context);
36872        let interface_item_0_built = InterfaceItemGenerateItem {
36873            generate_item: Box::new(generate_item),
36874        };
36875        let interface_item_0_built = InterfaceItem::GenerateItem(interface_item_0_built);
36876        // Calling user action here
36877        self.user_grammar.interface_item(&interface_item_0_built)?;
36878        self.push(ASTType::InterfaceItem(interface_item_0_built), context);
36879        Ok(())
36880    }
36881
36882    /// Semantic action for production 992:
36883    ///
36884    /// `InterfaceItem: ModportDeclaration;`
36885    ///
36886    #[parol_runtime::function_name::named]
36887    fn interface_item_1(&mut self, _modport_declaration: &ParseTreeType<'t>) -> Result<()> {
36888        let context = function_name!();
36889        trace!("{}", self.trace_item_stack(context));
36890        let modport_declaration = pop_item!(self, modport_declaration, ModportDeclaration, context);
36891        let interface_item_1_built = InterfaceItemModportDeclaration {
36892            modport_declaration: Box::new(modport_declaration),
36893        };
36894        let interface_item_1_built = InterfaceItem::ModportDeclaration(interface_item_1_built);
36895        // Calling user action here
36896        self.user_grammar.interface_item(&interface_item_1_built)?;
36897        self.push(ASTType::InterfaceItem(interface_item_1_built), context);
36898        Ok(())
36899    }
36900
36901    /// Semantic action for production 993:
36902    ///
36903    /// `GenerateIfDeclaration: If Expression GenerateNamedBlock GenerateIfDeclarationList /* Vec */ GenerateIfDeclarationOpt /* Option */;`
36904    ///
36905    #[parol_runtime::function_name::named]
36906    fn generate_if_declaration(
36907        &mut self,
36908        _if: &ParseTreeType<'t>,
36909        _expression: &ParseTreeType<'t>,
36910        _generate_named_block: &ParseTreeType<'t>,
36911        _generate_if_declaration_list: &ParseTreeType<'t>,
36912        _generate_if_declaration_opt: &ParseTreeType<'t>,
36913    ) -> Result<()> {
36914        let context = function_name!();
36915        trace!("{}", self.trace_item_stack(context));
36916        let generate_if_declaration_opt = pop_item!(
36917            self,
36918            generate_if_declaration_opt,
36919            GenerateIfDeclarationOpt,
36920            context
36921        );
36922        let generate_if_declaration_list = pop_and_reverse_item!(
36923            self,
36924            generate_if_declaration_list,
36925            GenerateIfDeclarationList,
36926            context
36927        );
36928        let generate_named_block =
36929            pop_item!(self, generate_named_block, GenerateNamedBlock, context);
36930        let expression = pop_item!(self, expression, Expression, context);
36931        let r#if = pop_item!(self, r#if, If, context);
36932        let generate_if_declaration_built = GenerateIfDeclaration {
36933            r#if: Box::new(r#if),
36934            expression: Box::new(expression),
36935            generate_named_block: Box::new(generate_named_block),
36936            generate_if_declaration_list,
36937            generate_if_declaration_opt,
36938        };
36939        // Calling user action here
36940        self.user_grammar
36941            .generate_if_declaration(&generate_if_declaration_built)?;
36942        self.push(
36943            ASTType::GenerateIfDeclaration(generate_if_declaration_built),
36944            context,
36945        );
36946        Ok(())
36947    }
36948
36949    /// Semantic action for production 994:
36950    ///
36951    /// `GenerateIfDeclarationList /* Vec<T>::Push */: Else If Expression GenerateOptionalNamedBlock GenerateIfDeclarationList;`
36952    ///
36953    #[parol_runtime::function_name::named]
36954    fn generate_if_declaration_list_0(
36955        &mut self,
36956        _else: &ParseTreeType<'t>,
36957        _if: &ParseTreeType<'t>,
36958        _expression: &ParseTreeType<'t>,
36959        _generate_optional_named_block: &ParseTreeType<'t>,
36960        _generate_if_declaration_list: &ParseTreeType<'t>,
36961    ) -> Result<()> {
36962        let context = function_name!();
36963        trace!("{}", self.trace_item_stack(context));
36964        let mut generate_if_declaration_list = pop_item!(
36965            self,
36966            generate_if_declaration_list,
36967            GenerateIfDeclarationList,
36968            context
36969        );
36970        let generate_optional_named_block = pop_item!(
36971            self,
36972            generate_optional_named_block,
36973            GenerateOptionalNamedBlock,
36974            context
36975        );
36976        let expression = pop_item!(self, expression, Expression, context);
36977        let r#if = pop_item!(self, r#if, If, context);
36978        let r#else = pop_item!(self, r#else, Else, context);
36979        let generate_if_declaration_list_0_built = GenerateIfDeclarationList {
36980            generate_optional_named_block: Box::new(generate_optional_named_block),
36981            expression: Box::new(expression),
36982            r#if: Box::new(r#if),
36983            r#else: Box::new(r#else),
36984        };
36985        // Add an element to the vector
36986        generate_if_declaration_list.push(generate_if_declaration_list_0_built);
36987        self.push(
36988            ASTType::GenerateIfDeclarationList(generate_if_declaration_list),
36989            context,
36990        );
36991        Ok(())
36992    }
36993
36994    /// Semantic action for production 995:
36995    ///
36996    /// `GenerateIfDeclarationList /* Vec<T>::New */: ;`
36997    ///
36998    #[parol_runtime::function_name::named]
36999    fn generate_if_declaration_list_1(&mut self) -> Result<()> {
37000        let context = function_name!();
37001        trace!("{}", self.trace_item_stack(context));
37002        let generate_if_declaration_list_1_built = Vec::new();
37003        self.push(
37004            ASTType::GenerateIfDeclarationList(generate_if_declaration_list_1_built),
37005            context,
37006        );
37007        Ok(())
37008    }
37009
37010    /// Semantic action for production 996:
37011    ///
37012    /// `GenerateIfDeclarationOpt /* Option<T>::Some */: Else GenerateOptionalNamedBlock;`
37013    ///
37014    #[parol_runtime::function_name::named]
37015    fn generate_if_declaration_opt_0(
37016        &mut self,
37017        _else: &ParseTreeType<'t>,
37018        _generate_optional_named_block: &ParseTreeType<'t>,
37019    ) -> Result<()> {
37020        let context = function_name!();
37021        trace!("{}", self.trace_item_stack(context));
37022        let generate_optional_named_block = pop_item!(
37023            self,
37024            generate_optional_named_block,
37025            GenerateOptionalNamedBlock,
37026            context
37027        );
37028        let r#else = pop_item!(self, r#else, Else, context);
37029        let generate_if_declaration_opt_0_built = GenerateIfDeclarationOpt {
37030            r#else: Box::new(r#else),
37031            generate_optional_named_block: Box::new(generate_optional_named_block),
37032        };
37033        self.push(
37034            ASTType::GenerateIfDeclarationOpt(Some(generate_if_declaration_opt_0_built)),
37035            context,
37036        );
37037        Ok(())
37038    }
37039
37040    /// Semantic action for production 997:
37041    ///
37042    /// `GenerateIfDeclarationOpt /* Option<T>::None */: ;`
37043    ///
37044    #[parol_runtime::function_name::named]
37045    fn generate_if_declaration_opt_1(&mut self) -> Result<()> {
37046        let context = function_name!();
37047        trace!("{}", self.trace_item_stack(context));
37048        self.push(ASTType::GenerateIfDeclarationOpt(None), context);
37049        Ok(())
37050    }
37051
37052    /// Semantic action for production 998:
37053    ///
37054    /// `GenerateForDeclaration: For Identifier In GenerateForDeclarationOpt /* Option */ Range GenerateForDeclarationOpt0 /* Option */ GenerateNamedBlock;`
37055    ///
37056    #[parol_runtime::function_name::named]
37057    fn generate_for_declaration(
37058        &mut self,
37059        _for: &ParseTreeType<'t>,
37060        _identifier: &ParseTreeType<'t>,
37061        _in: &ParseTreeType<'t>,
37062        _generate_for_declaration_opt: &ParseTreeType<'t>,
37063        _range: &ParseTreeType<'t>,
37064        _generate_for_declaration_opt0: &ParseTreeType<'t>,
37065        _generate_named_block: &ParseTreeType<'t>,
37066    ) -> Result<()> {
37067        let context = function_name!();
37068        trace!("{}", self.trace_item_stack(context));
37069        let generate_named_block =
37070            pop_item!(self, generate_named_block, GenerateNamedBlock, context);
37071        let generate_for_declaration_opt0 = pop_item!(
37072            self,
37073            generate_for_declaration_opt0,
37074            GenerateForDeclarationOpt0,
37075            context
37076        );
37077        let range = pop_item!(self, range, Range, context);
37078        let generate_for_declaration_opt = pop_item!(
37079            self,
37080            generate_for_declaration_opt,
37081            GenerateForDeclarationOpt,
37082            context
37083        );
37084        let r#in = pop_item!(self, r#in, In, context);
37085        let identifier = pop_item!(self, identifier, Identifier, context);
37086        let r#for = pop_item!(self, r#for, For, context);
37087        let generate_for_declaration_built = GenerateForDeclaration {
37088            r#for: Box::new(r#for),
37089            identifier: Box::new(identifier),
37090            r#in: Box::new(r#in),
37091            generate_for_declaration_opt,
37092            range: Box::new(range),
37093            generate_for_declaration_opt0,
37094            generate_named_block: Box::new(generate_named_block),
37095        };
37096        // Calling user action here
37097        self.user_grammar
37098            .generate_for_declaration(&generate_for_declaration_built)?;
37099        self.push(
37100            ASTType::GenerateForDeclaration(generate_for_declaration_built),
37101            context,
37102        );
37103        Ok(())
37104    }
37105
37106    /// Semantic action for production 999:
37107    ///
37108    /// `GenerateForDeclarationOpt0 /* Option<T>::Some */: Step AssignmentOperator Expression;`
37109    ///
37110    #[parol_runtime::function_name::named]
37111    fn generate_for_declaration_opt0_0(
37112        &mut self,
37113        _step: &ParseTreeType<'t>,
37114        _assignment_operator: &ParseTreeType<'t>,
37115        _expression: &ParseTreeType<'t>,
37116    ) -> Result<()> {
37117        let context = function_name!();
37118        trace!("{}", self.trace_item_stack(context));
37119        let expression = pop_item!(self, expression, Expression, context);
37120        let assignment_operator = pop_item!(self, assignment_operator, AssignmentOperator, context);
37121        let step = pop_item!(self, step, Step, context);
37122        let generate_for_declaration_opt0_0_built = GenerateForDeclarationOpt0 {
37123            step: Box::new(step),
37124            assignment_operator: Box::new(assignment_operator),
37125            expression: Box::new(expression),
37126        };
37127        self.push(
37128            ASTType::GenerateForDeclarationOpt0(Some(generate_for_declaration_opt0_0_built)),
37129            context,
37130        );
37131        Ok(())
37132    }
37133
37134    /// Semantic action for production 1000:
37135    ///
37136    /// `GenerateForDeclarationOpt0 /* Option<T>::None */: ;`
37137    ///
37138    #[parol_runtime::function_name::named]
37139    fn generate_for_declaration_opt0_1(&mut self) -> Result<()> {
37140        let context = function_name!();
37141        trace!("{}", self.trace_item_stack(context));
37142        self.push(ASTType::GenerateForDeclarationOpt0(None), context);
37143        Ok(())
37144    }
37145
37146    /// Semantic action for production 1001:
37147    ///
37148    /// `GenerateForDeclarationOpt /* Option<T>::Some */: Rev;`
37149    ///
37150    #[parol_runtime::function_name::named]
37151    fn generate_for_declaration_opt_0(&mut self, _rev: &ParseTreeType<'t>) -> Result<()> {
37152        let context = function_name!();
37153        trace!("{}", self.trace_item_stack(context));
37154        let rev = pop_item!(self, rev, Rev, context);
37155        let generate_for_declaration_opt_0_built = GenerateForDeclarationOpt { rev: Box::new(rev) };
37156        self.push(
37157            ASTType::GenerateForDeclarationOpt(Some(generate_for_declaration_opt_0_built)),
37158            context,
37159        );
37160        Ok(())
37161    }
37162
37163    /// Semantic action for production 1002:
37164    ///
37165    /// `GenerateForDeclarationOpt /* Option<T>::None */: ;`
37166    ///
37167    #[parol_runtime::function_name::named]
37168    fn generate_for_declaration_opt_1(&mut self) -> Result<()> {
37169        let context = function_name!();
37170        trace!("{}", self.trace_item_stack(context));
37171        self.push(ASTType::GenerateForDeclarationOpt(None), context);
37172        Ok(())
37173    }
37174
37175    /// Semantic action for production 1003:
37176    ///
37177    /// `GenerateBlockDeclaration: GenerateNamedBlock;`
37178    ///
37179    #[parol_runtime::function_name::named]
37180    fn generate_block_declaration(
37181        &mut self,
37182        _generate_named_block: &ParseTreeType<'t>,
37183    ) -> Result<()> {
37184        let context = function_name!();
37185        trace!("{}", self.trace_item_stack(context));
37186        let generate_named_block =
37187            pop_item!(self, generate_named_block, GenerateNamedBlock, context);
37188        let generate_block_declaration_built = GenerateBlockDeclaration {
37189            generate_named_block: Box::new(generate_named_block),
37190        };
37191        // Calling user action here
37192        self.user_grammar
37193            .generate_block_declaration(&generate_block_declaration_built)?;
37194        self.push(
37195            ASTType::GenerateBlockDeclaration(generate_block_declaration_built),
37196            context,
37197        );
37198        Ok(())
37199    }
37200
37201    /// Semantic action for production 1004:
37202    ///
37203    /// `GenerateNamedBlock: Colon Identifier LBrace GenerateNamedBlockList /* Vec */ RBrace;`
37204    ///
37205    #[parol_runtime::function_name::named]
37206    fn generate_named_block(
37207        &mut self,
37208        _colon: &ParseTreeType<'t>,
37209        _identifier: &ParseTreeType<'t>,
37210        _l_brace: &ParseTreeType<'t>,
37211        _generate_named_block_list: &ParseTreeType<'t>,
37212        _r_brace: &ParseTreeType<'t>,
37213    ) -> Result<()> {
37214        let context = function_name!();
37215        trace!("{}", self.trace_item_stack(context));
37216        let r_brace = pop_item!(self, r_brace, RBrace, context);
37217        let generate_named_block_list = pop_and_reverse_item!(
37218            self,
37219            generate_named_block_list,
37220            GenerateNamedBlockList,
37221            context
37222        );
37223        let l_brace = pop_item!(self, l_brace, LBrace, context);
37224        let identifier = pop_item!(self, identifier, Identifier, context);
37225        let colon = pop_item!(self, colon, Colon, context);
37226        let generate_named_block_built = GenerateNamedBlock {
37227            colon: Box::new(colon),
37228            identifier: Box::new(identifier),
37229            l_brace: Box::new(l_brace),
37230            generate_named_block_list,
37231            r_brace: Box::new(r_brace),
37232        };
37233        // Calling user action here
37234        self.user_grammar
37235            .generate_named_block(&generate_named_block_built)?;
37236        self.push(
37237            ASTType::GenerateNamedBlock(generate_named_block_built),
37238            context,
37239        );
37240        Ok(())
37241    }
37242
37243    /// Semantic action for production 1005:
37244    ///
37245    /// `GenerateNamedBlockList /* Vec<T>::Push */: GenerateGroup GenerateNamedBlockList;`
37246    ///
37247    #[parol_runtime::function_name::named]
37248    fn generate_named_block_list_0(
37249        &mut self,
37250        _generate_group: &ParseTreeType<'t>,
37251        _generate_named_block_list: &ParseTreeType<'t>,
37252    ) -> Result<()> {
37253        let context = function_name!();
37254        trace!("{}", self.trace_item_stack(context));
37255        let mut generate_named_block_list = pop_item!(
37256            self,
37257            generate_named_block_list,
37258            GenerateNamedBlockList,
37259            context
37260        );
37261        let generate_group = pop_item!(self, generate_group, GenerateGroup, context);
37262        let generate_named_block_list_0_built = GenerateNamedBlockList {
37263            generate_group: Box::new(generate_group),
37264        };
37265        // Add an element to the vector
37266        generate_named_block_list.push(generate_named_block_list_0_built);
37267        self.push(
37268            ASTType::GenerateNamedBlockList(generate_named_block_list),
37269            context,
37270        );
37271        Ok(())
37272    }
37273
37274    /// Semantic action for production 1006:
37275    ///
37276    /// `GenerateNamedBlockList /* Vec<T>::New */: ;`
37277    ///
37278    #[parol_runtime::function_name::named]
37279    fn generate_named_block_list_1(&mut self) -> Result<()> {
37280        let context = function_name!();
37281        trace!("{}", self.trace_item_stack(context));
37282        let generate_named_block_list_1_built = Vec::new();
37283        self.push(
37284            ASTType::GenerateNamedBlockList(generate_named_block_list_1_built),
37285            context,
37286        );
37287        Ok(())
37288    }
37289
37290    /// Semantic action for production 1007:
37291    ///
37292    /// `GenerateOptionalNamedBlock: GenerateOptionalNamedBlockOpt /* Option */ LBrace GenerateOptionalNamedBlockList /* Vec */ RBrace;`
37293    ///
37294    #[parol_runtime::function_name::named]
37295    fn generate_optional_named_block(
37296        &mut self,
37297        _generate_optional_named_block_opt: &ParseTreeType<'t>,
37298        _l_brace: &ParseTreeType<'t>,
37299        _generate_optional_named_block_list: &ParseTreeType<'t>,
37300        _r_brace: &ParseTreeType<'t>,
37301    ) -> Result<()> {
37302        let context = function_name!();
37303        trace!("{}", self.trace_item_stack(context));
37304        let r_brace = pop_item!(self, r_brace, RBrace, context);
37305        let generate_optional_named_block_list = pop_and_reverse_item!(
37306            self,
37307            generate_optional_named_block_list,
37308            GenerateOptionalNamedBlockList,
37309            context
37310        );
37311        let l_brace = pop_item!(self, l_brace, LBrace, context);
37312        let generate_optional_named_block_opt = pop_item!(
37313            self,
37314            generate_optional_named_block_opt,
37315            GenerateOptionalNamedBlockOpt,
37316            context
37317        );
37318        let generate_optional_named_block_built = GenerateOptionalNamedBlock {
37319            generate_optional_named_block_opt,
37320            l_brace: Box::new(l_brace),
37321            generate_optional_named_block_list,
37322            r_brace: Box::new(r_brace),
37323        };
37324        // Calling user action here
37325        self.user_grammar
37326            .generate_optional_named_block(&generate_optional_named_block_built)?;
37327        self.push(
37328            ASTType::GenerateOptionalNamedBlock(generate_optional_named_block_built),
37329            context,
37330        );
37331        Ok(())
37332    }
37333
37334    /// Semantic action for production 1008:
37335    ///
37336    /// `GenerateOptionalNamedBlockList /* Vec<T>::Push */: GenerateGroup GenerateOptionalNamedBlockList;`
37337    ///
37338    #[parol_runtime::function_name::named]
37339    fn generate_optional_named_block_list_0(
37340        &mut self,
37341        _generate_group: &ParseTreeType<'t>,
37342        _generate_optional_named_block_list: &ParseTreeType<'t>,
37343    ) -> Result<()> {
37344        let context = function_name!();
37345        trace!("{}", self.trace_item_stack(context));
37346        let mut generate_optional_named_block_list = pop_item!(
37347            self,
37348            generate_optional_named_block_list,
37349            GenerateOptionalNamedBlockList,
37350            context
37351        );
37352        let generate_group = pop_item!(self, generate_group, GenerateGroup, context);
37353        let generate_optional_named_block_list_0_built = GenerateOptionalNamedBlockList {
37354            generate_group: Box::new(generate_group),
37355        };
37356        // Add an element to the vector
37357        generate_optional_named_block_list.push(generate_optional_named_block_list_0_built);
37358        self.push(
37359            ASTType::GenerateOptionalNamedBlockList(generate_optional_named_block_list),
37360            context,
37361        );
37362        Ok(())
37363    }
37364
37365    /// Semantic action for production 1009:
37366    ///
37367    /// `GenerateOptionalNamedBlockList /* Vec<T>::New */: ;`
37368    ///
37369    #[parol_runtime::function_name::named]
37370    fn generate_optional_named_block_list_1(&mut self) -> Result<()> {
37371        let context = function_name!();
37372        trace!("{}", self.trace_item_stack(context));
37373        let generate_optional_named_block_list_1_built = Vec::new();
37374        self.push(
37375            ASTType::GenerateOptionalNamedBlockList(generate_optional_named_block_list_1_built),
37376            context,
37377        );
37378        Ok(())
37379    }
37380
37381    /// Semantic action for production 1010:
37382    ///
37383    /// `GenerateOptionalNamedBlockOpt /* Option<T>::Some */: Colon Identifier;`
37384    ///
37385    #[parol_runtime::function_name::named]
37386    fn generate_optional_named_block_opt_0(
37387        &mut self,
37388        _colon: &ParseTreeType<'t>,
37389        _identifier: &ParseTreeType<'t>,
37390    ) -> Result<()> {
37391        let context = function_name!();
37392        trace!("{}", self.trace_item_stack(context));
37393        let identifier = pop_item!(self, identifier, Identifier, context);
37394        let colon = pop_item!(self, colon, Colon, context);
37395        let generate_optional_named_block_opt_0_built = GenerateOptionalNamedBlockOpt {
37396            colon: Box::new(colon),
37397            identifier: Box::new(identifier),
37398        };
37399        self.push(
37400            ASTType::GenerateOptionalNamedBlockOpt(Some(generate_optional_named_block_opt_0_built)),
37401            context,
37402        );
37403        Ok(())
37404    }
37405
37406    /// Semantic action for production 1011:
37407    ///
37408    /// `GenerateOptionalNamedBlockOpt /* Option<T>::None */: ;`
37409    ///
37410    #[parol_runtime::function_name::named]
37411    fn generate_optional_named_block_opt_1(&mut self) -> Result<()> {
37412        let context = function_name!();
37413        trace!("{}", self.trace_item_stack(context));
37414        self.push(ASTType::GenerateOptionalNamedBlockOpt(None), context);
37415        Ok(())
37416    }
37417
37418    /// Semantic action for production 1012:
37419    ///
37420    /// `GenerateGroup: GenerateGroupList /* Vec */ GenerateGroupGroup;`
37421    ///
37422    #[parol_runtime::function_name::named]
37423    fn generate_group(
37424        &mut self,
37425        _generate_group_list: &ParseTreeType<'t>,
37426        _generate_group_group: &ParseTreeType<'t>,
37427    ) -> Result<()> {
37428        let context = function_name!();
37429        trace!("{}", self.trace_item_stack(context));
37430        let generate_group_group =
37431            pop_item!(self, generate_group_group, GenerateGroupGroup, context);
37432        let generate_group_list =
37433            pop_and_reverse_item!(self, generate_group_list, GenerateGroupList, context);
37434        let generate_group_built = GenerateGroup {
37435            generate_group_list,
37436            generate_group_group: Box::new(generate_group_group),
37437        };
37438        // Calling user action here
37439        self.user_grammar.generate_group(&generate_group_built)?;
37440        self.push(ASTType::GenerateGroup(generate_group_built), context);
37441        Ok(())
37442    }
37443
37444    /// Semantic action for production 1013:
37445    ///
37446    /// `GenerateGroupGroup: LBrace GenerateGroupGroupList /* Vec */ RBrace;`
37447    ///
37448    #[parol_runtime::function_name::named]
37449    fn generate_group_group_0(
37450        &mut self,
37451        _l_brace: &ParseTreeType<'t>,
37452        _generate_group_group_list: &ParseTreeType<'t>,
37453        _r_brace: &ParseTreeType<'t>,
37454    ) -> Result<()> {
37455        let context = function_name!();
37456        trace!("{}", self.trace_item_stack(context));
37457        let r_brace = pop_item!(self, r_brace, RBrace, context);
37458        let generate_group_group_list = pop_and_reverse_item!(
37459            self,
37460            generate_group_group_list,
37461            GenerateGroupGroupList,
37462            context
37463        );
37464        let l_brace = pop_item!(self, l_brace, LBrace, context);
37465        let generate_group_group_0_built = GenerateGroupGroupLBraceGenerateGroupGroupListRBrace {
37466            l_brace: Box::new(l_brace),
37467            generate_group_group_list,
37468            r_brace: Box::new(r_brace),
37469        };
37470        let generate_group_group_0_built =
37471            GenerateGroupGroup::LBraceGenerateGroupGroupListRBrace(generate_group_group_0_built);
37472        self.push(
37473            ASTType::GenerateGroupGroup(generate_group_group_0_built),
37474            context,
37475        );
37476        Ok(())
37477    }
37478
37479    /// Semantic action for production 1014:
37480    ///
37481    /// `GenerateGroupGroupList /* Vec<T>::Push */: GenerateGroup GenerateGroupGroupList;`
37482    ///
37483    #[parol_runtime::function_name::named]
37484    fn generate_group_group_list_0(
37485        &mut self,
37486        _generate_group: &ParseTreeType<'t>,
37487        _generate_group_group_list: &ParseTreeType<'t>,
37488    ) -> Result<()> {
37489        let context = function_name!();
37490        trace!("{}", self.trace_item_stack(context));
37491        let mut generate_group_group_list = pop_item!(
37492            self,
37493            generate_group_group_list,
37494            GenerateGroupGroupList,
37495            context
37496        );
37497        let generate_group = pop_item!(self, generate_group, GenerateGroup, context);
37498        let generate_group_group_list_0_built = GenerateGroupGroupList {
37499            generate_group: Box::new(generate_group),
37500        };
37501        // Add an element to the vector
37502        generate_group_group_list.push(generate_group_group_list_0_built);
37503        self.push(
37504            ASTType::GenerateGroupGroupList(generate_group_group_list),
37505            context,
37506        );
37507        Ok(())
37508    }
37509
37510    /// Semantic action for production 1015:
37511    ///
37512    /// `GenerateGroupGroupList /* Vec<T>::New */: ;`
37513    ///
37514    #[parol_runtime::function_name::named]
37515    fn generate_group_group_list_1(&mut self) -> Result<()> {
37516        let context = function_name!();
37517        trace!("{}", self.trace_item_stack(context));
37518        let generate_group_group_list_1_built = Vec::new();
37519        self.push(
37520            ASTType::GenerateGroupGroupList(generate_group_group_list_1_built),
37521            context,
37522        );
37523        Ok(())
37524    }
37525
37526    /// Semantic action for production 1016:
37527    ///
37528    /// `GenerateGroupGroup: GenerateItem;`
37529    ///
37530    #[parol_runtime::function_name::named]
37531    fn generate_group_group_1(&mut self, _generate_item: &ParseTreeType<'t>) -> Result<()> {
37532        let context = function_name!();
37533        trace!("{}", self.trace_item_stack(context));
37534        let generate_item = pop_item!(self, generate_item, GenerateItem, context);
37535        let generate_group_group_1_built = GenerateGroupGroupGenerateItem {
37536            generate_item: Box::new(generate_item),
37537        };
37538        let generate_group_group_1_built =
37539            GenerateGroupGroup::GenerateItem(generate_group_group_1_built);
37540        self.push(
37541            ASTType::GenerateGroupGroup(generate_group_group_1_built),
37542            context,
37543        );
37544        Ok(())
37545    }
37546
37547    /// Semantic action for production 1017:
37548    ///
37549    /// `GenerateGroupList /* Vec<T>::Push */: Attribute GenerateGroupList;`
37550    ///
37551    #[parol_runtime::function_name::named]
37552    fn generate_group_list_0(
37553        &mut self,
37554        _attribute: &ParseTreeType<'t>,
37555        _generate_group_list: &ParseTreeType<'t>,
37556    ) -> Result<()> {
37557        let context = function_name!();
37558        trace!("{}", self.trace_item_stack(context));
37559        let mut generate_group_list =
37560            pop_item!(self, generate_group_list, GenerateGroupList, context);
37561        let attribute = pop_item!(self, attribute, Attribute, context);
37562        let generate_group_list_0_built = GenerateGroupList {
37563            attribute: Box::new(attribute),
37564        };
37565        // Add an element to the vector
37566        generate_group_list.push(generate_group_list_0_built);
37567        self.push(ASTType::GenerateGroupList(generate_group_list), context);
37568        Ok(())
37569    }
37570
37571    /// Semantic action for production 1018:
37572    ///
37573    /// `GenerateGroupList /* Vec<T>::New */: ;`
37574    ///
37575    #[parol_runtime::function_name::named]
37576    fn generate_group_list_1(&mut self) -> Result<()> {
37577        let context = function_name!();
37578        trace!("{}", self.trace_item_stack(context));
37579        let generate_group_list_1_built = Vec::new();
37580        self.push(
37581            ASTType::GenerateGroupList(generate_group_list_1_built),
37582            context,
37583        );
37584        Ok(())
37585    }
37586
37587    /// Semantic action for production 1019:
37588    ///
37589    /// `GenerateItem: LetDeclaration;`
37590    ///
37591    #[parol_runtime::function_name::named]
37592    fn generate_item_0(&mut self, _let_declaration: &ParseTreeType<'t>) -> Result<()> {
37593        let context = function_name!();
37594        trace!("{}", self.trace_item_stack(context));
37595        let let_declaration = pop_item!(self, let_declaration, LetDeclaration, context);
37596        let generate_item_0_built = GenerateItemLetDeclaration {
37597            let_declaration: Box::new(let_declaration),
37598        };
37599        let generate_item_0_built = GenerateItem::LetDeclaration(generate_item_0_built);
37600        // Calling user action here
37601        self.user_grammar.generate_item(&generate_item_0_built)?;
37602        self.push(ASTType::GenerateItem(generate_item_0_built), context);
37603        Ok(())
37604    }
37605
37606    /// Semantic action for production 1020:
37607    ///
37608    /// `GenerateItem: VarDeclaration;`
37609    ///
37610    #[parol_runtime::function_name::named]
37611    fn generate_item_1(&mut self, _var_declaration: &ParseTreeType<'t>) -> Result<()> {
37612        let context = function_name!();
37613        trace!("{}", self.trace_item_stack(context));
37614        let var_declaration = pop_item!(self, var_declaration, VarDeclaration, context);
37615        let generate_item_1_built = GenerateItemVarDeclaration {
37616            var_declaration: Box::new(var_declaration),
37617        };
37618        let generate_item_1_built = GenerateItem::VarDeclaration(generate_item_1_built);
37619        // Calling user action here
37620        self.user_grammar.generate_item(&generate_item_1_built)?;
37621        self.push(ASTType::GenerateItem(generate_item_1_built), context);
37622        Ok(())
37623    }
37624
37625    /// Semantic action for production 1021:
37626    ///
37627    /// `GenerateItem: InstDeclaration;`
37628    ///
37629    #[parol_runtime::function_name::named]
37630    fn generate_item_2(&mut self, _inst_declaration: &ParseTreeType<'t>) -> Result<()> {
37631        let context = function_name!();
37632        trace!("{}", self.trace_item_stack(context));
37633        let inst_declaration = pop_item!(self, inst_declaration, InstDeclaration, context);
37634        let generate_item_2_built = GenerateItemInstDeclaration {
37635            inst_declaration: Box::new(inst_declaration),
37636        };
37637        let generate_item_2_built = GenerateItem::InstDeclaration(generate_item_2_built);
37638        // Calling user action here
37639        self.user_grammar.generate_item(&generate_item_2_built)?;
37640        self.push(ASTType::GenerateItem(generate_item_2_built), context);
37641        Ok(())
37642    }
37643
37644    /// Semantic action for production 1022:
37645    ///
37646    /// `GenerateItem: BindDeclaration;`
37647    ///
37648    #[parol_runtime::function_name::named]
37649    fn generate_item_3(&mut self, _bind_declaration: &ParseTreeType<'t>) -> Result<()> {
37650        let context = function_name!();
37651        trace!("{}", self.trace_item_stack(context));
37652        let bind_declaration = pop_item!(self, bind_declaration, BindDeclaration, context);
37653        let generate_item_3_built = GenerateItemBindDeclaration {
37654            bind_declaration: Box::new(bind_declaration),
37655        };
37656        let generate_item_3_built = GenerateItem::BindDeclaration(generate_item_3_built);
37657        // Calling user action here
37658        self.user_grammar.generate_item(&generate_item_3_built)?;
37659        self.push(ASTType::GenerateItem(generate_item_3_built), context);
37660        Ok(())
37661    }
37662
37663    /// Semantic action for production 1023:
37664    ///
37665    /// `GenerateItem: ConstDeclaration;`
37666    ///
37667    #[parol_runtime::function_name::named]
37668    fn generate_item_4(&mut self, _const_declaration: &ParseTreeType<'t>) -> Result<()> {
37669        let context = function_name!();
37670        trace!("{}", self.trace_item_stack(context));
37671        let const_declaration = pop_item!(self, const_declaration, ConstDeclaration, context);
37672        let generate_item_4_built = GenerateItemConstDeclaration {
37673            const_declaration: Box::new(const_declaration),
37674        };
37675        let generate_item_4_built = GenerateItem::ConstDeclaration(generate_item_4_built);
37676        // Calling user action here
37677        self.user_grammar.generate_item(&generate_item_4_built)?;
37678        self.push(ASTType::GenerateItem(generate_item_4_built), context);
37679        Ok(())
37680    }
37681
37682    /// Semantic action for production 1024:
37683    ///
37684    /// `GenerateItem: AlwaysFfDeclaration;`
37685    ///
37686    #[parol_runtime::function_name::named]
37687    fn generate_item_5(&mut self, _always_ff_declaration: &ParseTreeType<'t>) -> Result<()> {
37688        let context = function_name!();
37689        trace!("{}", self.trace_item_stack(context));
37690        let always_ff_declaration =
37691            pop_item!(self, always_ff_declaration, AlwaysFfDeclaration, context);
37692        let generate_item_5_built = GenerateItemAlwaysFfDeclaration {
37693            always_ff_declaration: Box::new(always_ff_declaration),
37694        };
37695        let generate_item_5_built = GenerateItem::AlwaysFfDeclaration(generate_item_5_built);
37696        // Calling user action here
37697        self.user_grammar.generate_item(&generate_item_5_built)?;
37698        self.push(ASTType::GenerateItem(generate_item_5_built), context);
37699        Ok(())
37700    }
37701
37702    /// Semantic action for production 1025:
37703    ///
37704    /// `GenerateItem: AlwaysCombDeclaration;`
37705    ///
37706    #[parol_runtime::function_name::named]
37707    fn generate_item_6(&mut self, _always_comb_declaration: &ParseTreeType<'t>) -> Result<()> {
37708        let context = function_name!();
37709        trace!("{}", self.trace_item_stack(context));
37710        let always_comb_declaration = pop_item!(
37711            self,
37712            always_comb_declaration,
37713            AlwaysCombDeclaration,
37714            context
37715        );
37716        let generate_item_6_built = GenerateItemAlwaysCombDeclaration {
37717            always_comb_declaration: Box::new(always_comb_declaration),
37718        };
37719        let generate_item_6_built = GenerateItem::AlwaysCombDeclaration(generate_item_6_built);
37720        // Calling user action here
37721        self.user_grammar.generate_item(&generate_item_6_built)?;
37722        self.push(ASTType::GenerateItem(generate_item_6_built), context);
37723        Ok(())
37724    }
37725
37726    /// Semantic action for production 1026:
37727    ///
37728    /// `GenerateItem: AssignDeclaration;`
37729    ///
37730    #[parol_runtime::function_name::named]
37731    fn generate_item_7(&mut self, _assign_declaration: &ParseTreeType<'t>) -> Result<()> {
37732        let context = function_name!();
37733        trace!("{}", self.trace_item_stack(context));
37734        let assign_declaration = pop_item!(self, assign_declaration, AssignDeclaration, context);
37735        let generate_item_7_built = GenerateItemAssignDeclaration {
37736            assign_declaration: Box::new(assign_declaration),
37737        };
37738        let generate_item_7_built = GenerateItem::AssignDeclaration(generate_item_7_built);
37739        // Calling user action here
37740        self.user_grammar.generate_item(&generate_item_7_built)?;
37741        self.push(ASTType::GenerateItem(generate_item_7_built), context);
37742        Ok(())
37743    }
37744
37745    /// Semantic action for production 1027:
37746    ///
37747    /// `GenerateItem: ConnectDeclaration;`
37748    ///
37749    #[parol_runtime::function_name::named]
37750    fn generate_item_8(&mut self, _connect_declaration: &ParseTreeType<'t>) -> Result<()> {
37751        let context = function_name!();
37752        trace!("{}", self.trace_item_stack(context));
37753        let connect_declaration = pop_item!(self, connect_declaration, ConnectDeclaration, context);
37754        let generate_item_8_built = GenerateItemConnectDeclaration {
37755            connect_declaration: Box::new(connect_declaration),
37756        };
37757        let generate_item_8_built = GenerateItem::ConnectDeclaration(generate_item_8_built);
37758        // Calling user action here
37759        self.user_grammar.generate_item(&generate_item_8_built)?;
37760        self.push(ASTType::GenerateItem(generate_item_8_built), context);
37761        Ok(())
37762    }
37763
37764    /// Semantic action for production 1028:
37765    ///
37766    /// `GenerateItem: FunctionDeclaration;`
37767    ///
37768    #[parol_runtime::function_name::named]
37769    fn generate_item_9(&mut self, _function_declaration: &ParseTreeType<'t>) -> Result<()> {
37770        let context = function_name!();
37771        trace!("{}", self.trace_item_stack(context));
37772        let function_declaration =
37773            pop_item!(self, function_declaration, FunctionDeclaration, context);
37774        let generate_item_9_built = GenerateItemFunctionDeclaration {
37775            function_declaration: Box::new(function_declaration),
37776        };
37777        let generate_item_9_built = GenerateItem::FunctionDeclaration(generate_item_9_built);
37778        // Calling user action here
37779        self.user_grammar.generate_item(&generate_item_9_built)?;
37780        self.push(ASTType::GenerateItem(generate_item_9_built), context);
37781        Ok(())
37782    }
37783
37784    /// Semantic action for production 1029:
37785    ///
37786    /// `GenerateItem: GenerateIfDeclaration;`
37787    ///
37788    #[parol_runtime::function_name::named]
37789    fn generate_item_10(&mut self, _generate_if_declaration: &ParseTreeType<'t>) -> Result<()> {
37790        let context = function_name!();
37791        trace!("{}", self.trace_item_stack(context));
37792        let generate_if_declaration = pop_item!(
37793            self,
37794            generate_if_declaration,
37795            GenerateIfDeclaration,
37796            context
37797        );
37798        let generate_item_10_built = GenerateItemGenerateIfDeclaration {
37799            generate_if_declaration: Box::new(generate_if_declaration),
37800        };
37801        let generate_item_10_built = GenerateItem::GenerateIfDeclaration(generate_item_10_built);
37802        // Calling user action here
37803        self.user_grammar.generate_item(&generate_item_10_built)?;
37804        self.push(ASTType::GenerateItem(generate_item_10_built), context);
37805        Ok(())
37806    }
37807
37808    /// Semantic action for production 1030:
37809    ///
37810    /// `GenerateItem: GenerateForDeclaration;`
37811    ///
37812    #[parol_runtime::function_name::named]
37813    fn generate_item_11(&mut self, _generate_for_declaration: &ParseTreeType<'t>) -> Result<()> {
37814        let context = function_name!();
37815        trace!("{}", self.trace_item_stack(context));
37816        let generate_for_declaration = pop_item!(
37817            self,
37818            generate_for_declaration,
37819            GenerateForDeclaration,
37820            context
37821        );
37822        let generate_item_11_built = GenerateItemGenerateForDeclaration {
37823            generate_for_declaration: Box::new(generate_for_declaration),
37824        };
37825        let generate_item_11_built = GenerateItem::GenerateForDeclaration(generate_item_11_built);
37826        // Calling user action here
37827        self.user_grammar.generate_item(&generate_item_11_built)?;
37828        self.push(ASTType::GenerateItem(generate_item_11_built), context);
37829        Ok(())
37830    }
37831
37832    /// Semantic action for production 1031:
37833    ///
37834    /// `GenerateItem: GenerateBlockDeclaration;`
37835    ///
37836    #[parol_runtime::function_name::named]
37837    fn generate_item_12(&mut self, _generate_block_declaration: &ParseTreeType<'t>) -> Result<()> {
37838        let context = function_name!();
37839        trace!("{}", self.trace_item_stack(context));
37840        let generate_block_declaration = pop_item!(
37841            self,
37842            generate_block_declaration,
37843            GenerateBlockDeclaration,
37844            context
37845        );
37846        let generate_item_12_built = GenerateItemGenerateBlockDeclaration {
37847            generate_block_declaration: Box::new(generate_block_declaration),
37848        };
37849        let generate_item_12_built = GenerateItem::GenerateBlockDeclaration(generate_item_12_built);
37850        // Calling user action here
37851        self.user_grammar.generate_item(&generate_item_12_built)?;
37852        self.push(ASTType::GenerateItem(generate_item_12_built), context);
37853        Ok(())
37854    }
37855
37856    /// Semantic action for production 1032:
37857    ///
37858    /// `GenerateItem: TypeDefDeclaration;`
37859    ///
37860    #[parol_runtime::function_name::named]
37861    fn generate_item_13(&mut self, _type_def_declaration: &ParseTreeType<'t>) -> Result<()> {
37862        let context = function_name!();
37863        trace!("{}", self.trace_item_stack(context));
37864        let type_def_declaration =
37865            pop_item!(self, type_def_declaration, TypeDefDeclaration, context);
37866        let generate_item_13_built = GenerateItemTypeDefDeclaration {
37867            type_def_declaration: Box::new(type_def_declaration),
37868        };
37869        let generate_item_13_built = GenerateItem::TypeDefDeclaration(generate_item_13_built);
37870        // Calling user action here
37871        self.user_grammar.generate_item(&generate_item_13_built)?;
37872        self.push(ASTType::GenerateItem(generate_item_13_built), context);
37873        Ok(())
37874    }
37875
37876    /// Semantic action for production 1033:
37877    ///
37878    /// `GenerateItem: EnumDeclaration;`
37879    ///
37880    #[parol_runtime::function_name::named]
37881    fn generate_item_14(&mut self, _enum_declaration: &ParseTreeType<'t>) -> Result<()> {
37882        let context = function_name!();
37883        trace!("{}", self.trace_item_stack(context));
37884        let enum_declaration = pop_item!(self, enum_declaration, EnumDeclaration, context);
37885        let generate_item_14_built = GenerateItemEnumDeclaration {
37886            enum_declaration: Box::new(enum_declaration),
37887        };
37888        let generate_item_14_built = GenerateItem::EnumDeclaration(generate_item_14_built);
37889        // Calling user action here
37890        self.user_grammar.generate_item(&generate_item_14_built)?;
37891        self.push(ASTType::GenerateItem(generate_item_14_built), context);
37892        Ok(())
37893    }
37894
37895    /// Semantic action for production 1034:
37896    ///
37897    /// `GenerateItem: StructUnionDeclaration;`
37898    ///
37899    #[parol_runtime::function_name::named]
37900    fn generate_item_15(&mut self, _struct_union_declaration: &ParseTreeType<'t>) -> Result<()> {
37901        let context = function_name!();
37902        trace!("{}", self.trace_item_stack(context));
37903        let struct_union_declaration = pop_item!(
37904            self,
37905            struct_union_declaration,
37906            StructUnionDeclaration,
37907            context
37908        );
37909        let generate_item_15_built = GenerateItemStructUnionDeclaration {
37910            struct_union_declaration: Box::new(struct_union_declaration),
37911        };
37912        let generate_item_15_built = GenerateItem::StructUnionDeclaration(generate_item_15_built);
37913        // Calling user action here
37914        self.user_grammar.generate_item(&generate_item_15_built)?;
37915        self.push(ASTType::GenerateItem(generate_item_15_built), context);
37916        Ok(())
37917    }
37918
37919    /// Semantic action for production 1035:
37920    ///
37921    /// `GenerateItem: ImportDeclaration;`
37922    ///
37923    #[parol_runtime::function_name::named]
37924    fn generate_item_16(&mut self, _import_declaration: &ParseTreeType<'t>) -> Result<()> {
37925        let context = function_name!();
37926        trace!("{}", self.trace_item_stack(context));
37927        let import_declaration = pop_item!(self, import_declaration, ImportDeclaration, context);
37928        let generate_item_16_built = GenerateItemImportDeclaration {
37929            import_declaration: Box::new(import_declaration),
37930        };
37931        let generate_item_16_built = GenerateItem::ImportDeclaration(generate_item_16_built);
37932        // Calling user action here
37933        self.user_grammar.generate_item(&generate_item_16_built)?;
37934        self.push(ASTType::GenerateItem(generate_item_16_built), context);
37935        Ok(())
37936    }
37937
37938    /// Semantic action for production 1036:
37939    ///
37940    /// `GenerateItem: AliasDeclaration;`
37941    ///
37942    #[parol_runtime::function_name::named]
37943    fn generate_item_17(&mut self, _alias_declaration: &ParseTreeType<'t>) -> Result<()> {
37944        let context = function_name!();
37945        trace!("{}", self.trace_item_stack(context));
37946        let alias_declaration = pop_item!(self, alias_declaration, AliasDeclaration, context);
37947        let generate_item_17_built = GenerateItemAliasDeclaration {
37948            alias_declaration: Box::new(alias_declaration),
37949        };
37950        let generate_item_17_built = GenerateItem::AliasDeclaration(generate_item_17_built);
37951        // Calling user action here
37952        self.user_grammar.generate_item(&generate_item_17_built)?;
37953        self.push(ASTType::GenerateItem(generate_item_17_built), context);
37954        Ok(())
37955    }
37956
37957    /// Semantic action for production 1037:
37958    ///
37959    /// `GenerateItem: InitialDeclaration;`
37960    ///
37961    #[parol_runtime::function_name::named]
37962    fn generate_item_18(&mut self, _initial_declaration: &ParseTreeType<'t>) -> Result<()> {
37963        let context = function_name!();
37964        trace!("{}", self.trace_item_stack(context));
37965        let initial_declaration = pop_item!(self, initial_declaration, InitialDeclaration, context);
37966        let generate_item_18_built = GenerateItemInitialDeclaration {
37967            initial_declaration: Box::new(initial_declaration),
37968        };
37969        let generate_item_18_built = GenerateItem::InitialDeclaration(generate_item_18_built);
37970        // Calling user action here
37971        self.user_grammar.generate_item(&generate_item_18_built)?;
37972        self.push(ASTType::GenerateItem(generate_item_18_built), context);
37973        Ok(())
37974    }
37975
37976    /// Semantic action for production 1038:
37977    ///
37978    /// `GenerateItem: FinalDeclaration;`
37979    ///
37980    #[parol_runtime::function_name::named]
37981    fn generate_item_19(&mut self, _final_declaration: &ParseTreeType<'t>) -> Result<()> {
37982        let context = function_name!();
37983        trace!("{}", self.trace_item_stack(context));
37984        let final_declaration = pop_item!(self, final_declaration, FinalDeclaration, context);
37985        let generate_item_19_built = GenerateItemFinalDeclaration {
37986            final_declaration: Box::new(final_declaration),
37987        };
37988        let generate_item_19_built = GenerateItem::FinalDeclaration(generate_item_19_built);
37989        // Calling user action here
37990        self.user_grammar.generate_item(&generate_item_19_built)?;
37991        self.push(ASTType::GenerateItem(generate_item_19_built), context);
37992        Ok(())
37993    }
37994
37995    /// Semantic action for production 1039:
37996    ///
37997    /// `GenerateItem: UnsafeBlock;`
37998    ///
37999    #[parol_runtime::function_name::named]
38000    fn generate_item_20(&mut self, _unsafe_block: &ParseTreeType<'t>) -> Result<()> {
38001        let context = function_name!();
38002        trace!("{}", self.trace_item_stack(context));
38003        let unsafe_block = pop_item!(self, unsafe_block, UnsafeBlock, context);
38004        let generate_item_20_built = GenerateItemUnsafeBlock {
38005            unsafe_block: Box::new(unsafe_block),
38006        };
38007        let generate_item_20_built = GenerateItem::UnsafeBlock(generate_item_20_built);
38008        // Calling user action here
38009        self.user_grammar.generate_item(&generate_item_20_built)?;
38010        self.push(ASTType::GenerateItem(generate_item_20_built), context);
38011        Ok(())
38012    }
38013
38014    /// Semantic action for production 1040:
38015    ///
38016    /// `GenerateItem: EmbedDeclaration;`
38017    ///
38018    #[parol_runtime::function_name::named]
38019    fn generate_item_21(&mut self, _embed_declaration: &ParseTreeType<'t>) -> Result<()> {
38020        let context = function_name!();
38021        trace!("{}", self.trace_item_stack(context));
38022        let embed_declaration = pop_item!(self, embed_declaration, EmbedDeclaration, context);
38023        let generate_item_21_built = GenerateItemEmbedDeclaration {
38024            embed_declaration: Box::new(embed_declaration),
38025        };
38026        let generate_item_21_built = GenerateItem::EmbedDeclaration(generate_item_21_built);
38027        // Calling user action here
38028        self.user_grammar.generate_item(&generate_item_21_built)?;
38029        self.push(ASTType::GenerateItem(generate_item_21_built), context);
38030        Ok(())
38031    }
38032
38033    /// Semantic action for production 1041:
38034    ///
38035    /// `PackageDeclaration: Package Identifier PackageDeclarationOpt /* Option */ PackageDeclarationOpt0 /* Option */ LBrace PackageDeclarationList /* Vec */ RBrace;`
38036    ///
38037    #[parol_runtime::function_name::named]
38038    fn package_declaration(
38039        &mut self,
38040        _package: &ParseTreeType<'t>,
38041        _identifier: &ParseTreeType<'t>,
38042        _package_declaration_opt: &ParseTreeType<'t>,
38043        _package_declaration_opt0: &ParseTreeType<'t>,
38044        _l_brace: &ParseTreeType<'t>,
38045        _package_declaration_list: &ParseTreeType<'t>,
38046        _r_brace: &ParseTreeType<'t>,
38047    ) -> Result<()> {
38048        let context = function_name!();
38049        trace!("{}", self.trace_item_stack(context));
38050        let r_brace = pop_item!(self, r_brace, RBrace, context);
38051        let package_declaration_list = pop_and_reverse_item!(
38052            self,
38053            package_declaration_list,
38054            PackageDeclarationList,
38055            context
38056        );
38057        let l_brace = pop_item!(self, l_brace, LBrace, context);
38058        let package_declaration_opt0 = pop_item!(
38059            self,
38060            package_declaration_opt0,
38061            PackageDeclarationOpt0,
38062            context
38063        );
38064        let package_declaration_opt = pop_item!(
38065            self,
38066            package_declaration_opt,
38067            PackageDeclarationOpt,
38068            context
38069        );
38070        let identifier = pop_item!(self, identifier, Identifier, context);
38071        let package = pop_item!(self, package, Package, context);
38072        let package_declaration_built = PackageDeclaration {
38073            package: Box::new(package),
38074            identifier: Box::new(identifier),
38075            package_declaration_opt,
38076            package_declaration_opt0,
38077            l_brace: Box::new(l_brace),
38078            package_declaration_list,
38079            r_brace: Box::new(r_brace),
38080        };
38081        // Calling user action here
38082        self.user_grammar
38083            .package_declaration(&package_declaration_built)?;
38084        self.push(
38085            ASTType::PackageDeclaration(package_declaration_built),
38086            context,
38087        );
38088        Ok(())
38089    }
38090
38091    /// Semantic action for production 1042:
38092    ///
38093    /// `PackageDeclarationList /* Vec<T>::Push */: PackageGroup PackageDeclarationList;`
38094    ///
38095    #[parol_runtime::function_name::named]
38096    fn package_declaration_list_0(
38097        &mut self,
38098        _package_group: &ParseTreeType<'t>,
38099        _package_declaration_list: &ParseTreeType<'t>,
38100    ) -> Result<()> {
38101        let context = function_name!();
38102        trace!("{}", self.trace_item_stack(context));
38103        let mut package_declaration_list = pop_item!(
38104            self,
38105            package_declaration_list,
38106            PackageDeclarationList,
38107            context
38108        );
38109        let package_group = pop_item!(self, package_group, PackageGroup, context);
38110        let package_declaration_list_0_built = PackageDeclarationList {
38111            package_group: Box::new(package_group),
38112        };
38113        // Add an element to the vector
38114        package_declaration_list.push(package_declaration_list_0_built);
38115        self.push(
38116            ASTType::PackageDeclarationList(package_declaration_list),
38117            context,
38118        );
38119        Ok(())
38120    }
38121
38122    /// Semantic action for production 1043:
38123    ///
38124    /// `PackageDeclarationList /* Vec<T>::New */: ;`
38125    ///
38126    #[parol_runtime::function_name::named]
38127    fn package_declaration_list_1(&mut self) -> Result<()> {
38128        let context = function_name!();
38129        trace!("{}", self.trace_item_stack(context));
38130        let package_declaration_list_1_built = Vec::new();
38131        self.push(
38132            ASTType::PackageDeclarationList(package_declaration_list_1_built),
38133            context,
38134        );
38135        Ok(())
38136    }
38137
38138    /// Semantic action for production 1044:
38139    ///
38140    /// `PackageDeclarationOpt0 /* Option<T>::Some */: For ScopedIdentifier;`
38141    ///
38142    #[parol_runtime::function_name::named]
38143    fn package_declaration_opt0_0(
38144        &mut self,
38145        _for: &ParseTreeType<'t>,
38146        _scoped_identifier: &ParseTreeType<'t>,
38147    ) -> Result<()> {
38148        let context = function_name!();
38149        trace!("{}", self.trace_item_stack(context));
38150        let scoped_identifier = pop_item!(self, scoped_identifier, ScopedIdentifier, context);
38151        let r#for = pop_item!(self, r#for, For, context);
38152        let package_declaration_opt0_0_built = PackageDeclarationOpt0 {
38153            r#for: Box::new(r#for),
38154            scoped_identifier: Box::new(scoped_identifier),
38155        };
38156        self.push(
38157            ASTType::PackageDeclarationOpt0(Some(package_declaration_opt0_0_built)),
38158            context,
38159        );
38160        Ok(())
38161    }
38162
38163    /// Semantic action for production 1045:
38164    ///
38165    /// `PackageDeclarationOpt0 /* Option<T>::None */: ;`
38166    ///
38167    #[parol_runtime::function_name::named]
38168    fn package_declaration_opt0_1(&mut self) -> Result<()> {
38169        let context = function_name!();
38170        trace!("{}", self.trace_item_stack(context));
38171        self.push(ASTType::PackageDeclarationOpt0(None), context);
38172        Ok(())
38173    }
38174
38175    /// Semantic action for production 1046:
38176    ///
38177    /// `PackageDeclarationOpt /* Option<T>::Some */: WithGenericParameter;`
38178    ///
38179    #[parol_runtime::function_name::named]
38180    fn package_declaration_opt_0(
38181        &mut self,
38182        _with_generic_parameter: &ParseTreeType<'t>,
38183    ) -> Result<()> {
38184        let context = function_name!();
38185        trace!("{}", self.trace_item_stack(context));
38186        let with_generic_parameter =
38187            pop_item!(self, with_generic_parameter, WithGenericParameter, context);
38188        let package_declaration_opt_0_built = PackageDeclarationOpt {
38189            with_generic_parameter: Box::new(with_generic_parameter),
38190        };
38191        self.push(
38192            ASTType::PackageDeclarationOpt(Some(package_declaration_opt_0_built)),
38193            context,
38194        );
38195        Ok(())
38196    }
38197
38198    /// Semantic action for production 1047:
38199    ///
38200    /// `PackageDeclarationOpt /* Option<T>::None */: ;`
38201    ///
38202    #[parol_runtime::function_name::named]
38203    fn package_declaration_opt_1(&mut self) -> Result<()> {
38204        let context = function_name!();
38205        trace!("{}", self.trace_item_stack(context));
38206        self.push(ASTType::PackageDeclarationOpt(None), context);
38207        Ok(())
38208    }
38209
38210    /// Semantic action for production 1048:
38211    ///
38212    /// `PackageGroup: PackageGroupList /* Vec */ PackageGroupGroup;`
38213    ///
38214    #[parol_runtime::function_name::named]
38215    fn package_group(
38216        &mut self,
38217        _package_group_list: &ParseTreeType<'t>,
38218        _package_group_group: &ParseTreeType<'t>,
38219    ) -> Result<()> {
38220        let context = function_name!();
38221        trace!("{}", self.trace_item_stack(context));
38222        let package_group_group = pop_item!(self, package_group_group, PackageGroupGroup, context);
38223        let package_group_list =
38224            pop_and_reverse_item!(self, package_group_list, PackageGroupList, context);
38225        let package_group_built = PackageGroup {
38226            package_group_list,
38227            package_group_group: Box::new(package_group_group),
38228        };
38229        // Calling user action here
38230        self.user_grammar.package_group(&package_group_built)?;
38231        self.push(ASTType::PackageGroup(package_group_built), context);
38232        Ok(())
38233    }
38234
38235    /// Semantic action for production 1049:
38236    ///
38237    /// `PackageGroupGroup: LBrace PackageGroupGroupList /* Vec */ RBrace;`
38238    ///
38239    #[parol_runtime::function_name::named]
38240    fn package_group_group_0(
38241        &mut self,
38242        _l_brace: &ParseTreeType<'t>,
38243        _package_group_group_list: &ParseTreeType<'t>,
38244        _r_brace: &ParseTreeType<'t>,
38245    ) -> Result<()> {
38246        let context = function_name!();
38247        trace!("{}", self.trace_item_stack(context));
38248        let r_brace = pop_item!(self, r_brace, RBrace, context);
38249        let package_group_group_list = pop_and_reverse_item!(
38250            self,
38251            package_group_group_list,
38252            PackageGroupGroupList,
38253            context
38254        );
38255        let l_brace = pop_item!(self, l_brace, LBrace, context);
38256        let package_group_group_0_built = PackageGroupGroupLBracePackageGroupGroupListRBrace {
38257            l_brace: Box::new(l_brace),
38258            package_group_group_list,
38259            r_brace: Box::new(r_brace),
38260        };
38261        let package_group_group_0_built =
38262            PackageGroupGroup::LBracePackageGroupGroupListRBrace(package_group_group_0_built);
38263        self.push(
38264            ASTType::PackageGroupGroup(package_group_group_0_built),
38265            context,
38266        );
38267        Ok(())
38268    }
38269
38270    /// Semantic action for production 1050:
38271    ///
38272    /// `PackageGroupGroupList /* Vec<T>::Push */: PackageGroup PackageGroupGroupList;`
38273    ///
38274    #[parol_runtime::function_name::named]
38275    fn package_group_group_list_0(
38276        &mut self,
38277        _package_group: &ParseTreeType<'t>,
38278        _package_group_group_list: &ParseTreeType<'t>,
38279    ) -> Result<()> {
38280        let context = function_name!();
38281        trace!("{}", self.trace_item_stack(context));
38282        let mut package_group_group_list = pop_item!(
38283            self,
38284            package_group_group_list,
38285            PackageGroupGroupList,
38286            context
38287        );
38288        let package_group = pop_item!(self, package_group, PackageGroup, context);
38289        let package_group_group_list_0_built = PackageGroupGroupList {
38290            package_group: Box::new(package_group),
38291        };
38292        // Add an element to the vector
38293        package_group_group_list.push(package_group_group_list_0_built);
38294        self.push(
38295            ASTType::PackageGroupGroupList(package_group_group_list),
38296            context,
38297        );
38298        Ok(())
38299    }
38300
38301    /// Semantic action for production 1051:
38302    ///
38303    /// `PackageGroupGroupList /* Vec<T>::New */: ;`
38304    ///
38305    #[parol_runtime::function_name::named]
38306    fn package_group_group_list_1(&mut self) -> Result<()> {
38307        let context = function_name!();
38308        trace!("{}", self.trace_item_stack(context));
38309        let package_group_group_list_1_built = Vec::new();
38310        self.push(
38311            ASTType::PackageGroupGroupList(package_group_group_list_1_built),
38312            context,
38313        );
38314        Ok(())
38315    }
38316
38317    /// Semantic action for production 1052:
38318    ///
38319    /// `PackageGroupGroup: PackageItem;`
38320    ///
38321    #[parol_runtime::function_name::named]
38322    fn package_group_group_1(&mut self, _package_item: &ParseTreeType<'t>) -> Result<()> {
38323        let context = function_name!();
38324        trace!("{}", self.trace_item_stack(context));
38325        let package_item = pop_item!(self, package_item, PackageItem, context);
38326        let package_group_group_1_built = PackageGroupGroupPackageItem {
38327            package_item: Box::new(package_item),
38328        };
38329        let package_group_group_1_built =
38330            PackageGroupGroup::PackageItem(package_group_group_1_built);
38331        self.push(
38332            ASTType::PackageGroupGroup(package_group_group_1_built),
38333            context,
38334        );
38335        Ok(())
38336    }
38337
38338    /// Semantic action for production 1053:
38339    ///
38340    /// `PackageGroupList /* Vec<T>::Push */: Attribute PackageGroupList;`
38341    ///
38342    #[parol_runtime::function_name::named]
38343    fn package_group_list_0(
38344        &mut self,
38345        _attribute: &ParseTreeType<'t>,
38346        _package_group_list: &ParseTreeType<'t>,
38347    ) -> Result<()> {
38348        let context = function_name!();
38349        trace!("{}", self.trace_item_stack(context));
38350        let mut package_group_list = pop_item!(self, package_group_list, PackageGroupList, context);
38351        let attribute = pop_item!(self, attribute, Attribute, context);
38352        let package_group_list_0_built = PackageGroupList {
38353            attribute: Box::new(attribute),
38354        };
38355        // Add an element to the vector
38356        package_group_list.push(package_group_list_0_built);
38357        self.push(ASTType::PackageGroupList(package_group_list), context);
38358        Ok(())
38359    }
38360
38361    /// Semantic action for production 1054:
38362    ///
38363    /// `PackageGroupList /* Vec<T>::New */: ;`
38364    ///
38365    #[parol_runtime::function_name::named]
38366    fn package_group_list_1(&mut self) -> Result<()> {
38367        let context = function_name!();
38368        trace!("{}", self.trace_item_stack(context));
38369        let package_group_list_1_built = Vec::new();
38370        self.push(
38371            ASTType::PackageGroupList(package_group_list_1_built),
38372            context,
38373        );
38374        Ok(())
38375    }
38376
38377    /// Semantic action for production 1055:
38378    ///
38379    /// `PackageItem: ConstDeclaration;`
38380    ///
38381    #[parol_runtime::function_name::named]
38382    fn package_item_0(&mut self, _const_declaration: &ParseTreeType<'t>) -> Result<()> {
38383        let context = function_name!();
38384        trace!("{}", self.trace_item_stack(context));
38385        let const_declaration = pop_item!(self, const_declaration, ConstDeclaration, context);
38386        let package_item_0_built = PackageItemConstDeclaration {
38387            const_declaration: Box::new(const_declaration),
38388        };
38389        let package_item_0_built = PackageItem::ConstDeclaration(package_item_0_built);
38390        // Calling user action here
38391        self.user_grammar.package_item(&package_item_0_built)?;
38392        self.push(ASTType::PackageItem(package_item_0_built), context);
38393        Ok(())
38394    }
38395
38396    /// Semantic action for production 1056:
38397    ///
38398    /// `PackageItem: TypeDefDeclaration;`
38399    ///
38400    #[parol_runtime::function_name::named]
38401    fn package_item_1(&mut self, _type_def_declaration: &ParseTreeType<'t>) -> Result<()> {
38402        let context = function_name!();
38403        trace!("{}", self.trace_item_stack(context));
38404        let type_def_declaration =
38405            pop_item!(self, type_def_declaration, TypeDefDeclaration, context);
38406        let package_item_1_built = PackageItemTypeDefDeclaration {
38407            type_def_declaration: Box::new(type_def_declaration),
38408        };
38409        let package_item_1_built = PackageItem::TypeDefDeclaration(package_item_1_built);
38410        // Calling user action here
38411        self.user_grammar.package_item(&package_item_1_built)?;
38412        self.push(ASTType::PackageItem(package_item_1_built), context);
38413        Ok(())
38414    }
38415
38416    /// Semantic action for production 1057:
38417    ///
38418    /// `PackageItem: EnumDeclaration;`
38419    ///
38420    #[parol_runtime::function_name::named]
38421    fn package_item_2(&mut self, _enum_declaration: &ParseTreeType<'t>) -> Result<()> {
38422        let context = function_name!();
38423        trace!("{}", self.trace_item_stack(context));
38424        let enum_declaration = pop_item!(self, enum_declaration, EnumDeclaration, context);
38425        let package_item_2_built = PackageItemEnumDeclaration {
38426            enum_declaration: Box::new(enum_declaration),
38427        };
38428        let package_item_2_built = PackageItem::EnumDeclaration(package_item_2_built);
38429        // Calling user action here
38430        self.user_grammar.package_item(&package_item_2_built)?;
38431        self.push(ASTType::PackageItem(package_item_2_built), context);
38432        Ok(())
38433    }
38434
38435    /// Semantic action for production 1058:
38436    ///
38437    /// `PackageItem: StructUnionDeclaration;`
38438    ///
38439    #[parol_runtime::function_name::named]
38440    fn package_item_3(&mut self, _struct_union_declaration: &ParseTreeType<'t>) -> Result<()> {
38441        let context = function_name!();
38442        trace!("{}", self.trace_item_stack(context));
38443        let struct_union_declaration = pop_item!(
38444            self,
38445            struct_union_declaration,
38446            StructUnionDeclaration,
38447            context
38448        );
38449        let package_item_3_built = PackageItemStructUnionDeclaration {
38450            struct_union_declaration: Box::new(struct_union_declaration),
38451        };
38452        let package_item_3_built = PackageItem::StructUnionDeclaration(package_item_3_built);
38453        // Calling user action here
38454        self.user_grammar.package_item(&package_item_3_built)?;
38455        self.push(ASTType::PackageItem(package_item_3_built), context);
38456        Ok(())
38457    }
38458
38459    /// Semantic action for production 1059:
38460    ///
38461    /// `PackageItem: FunctionDeclaration;`
38462    ///
38463    #[parol_runtime::function_name::named]
38464    fn package_item_4(&mut self, _function_declaration: &ParseTreeType<'t>) -> Result<()> {
38465        let context = function_name!();
38466        trace!("{}", self.trace_item_stack(context));
38467        let function_declaration =
38468            pop_item!(self, function_declaration, FunctionDeclaration, context);
38469        let package_item_4_built = PackageItemFunctionDeclaration {
38470            function_declaration: Box::new(function_declaration),
38471        };
38472        let package_item_4_built = PackageItem::FunctionDeclaration(package_item_4_built);
38473        // Calling user action here
38474        self.user_grammar.package_item(&package_item_4_built)?;
38475        self.push(ASTType::PackageItem(package_item_4_built), context);
38476        Ok(())
38477    }
38478
38479    /// Semantic action for production 1060:
38480    ///
38481    /// `PackageItem: ImportDeclaration;`
38482    ///
38483    #[parol_runtime::function_name::named]
38484    fn package_item_5(&mut self, _import_declaration: &ParseTreeType<'t>) -> Result<()> {
38485        let context = function_name!();
38486        trace!("{}", self.trace_item_stack(context));
38487        let import_declaration = pop_item!(self, import_declaration, ImportDeclaration, context);
38488        let package_item_5_built = PackageItemImportDeclaration {
38489            import_declaration: Box::new(import_declaration),
38490        };
38491        let package_item_5_built = PackageItem::ImportDeclaration(package_item_5_built);
38492        // Calling user action here
38493        self.user_grammar.package_item(&package_item_5_built)?;
38494        self.push(ASTType::PackageItem(package_item_5_built), context);
38495        Ok(())
38496    }
38497
38498    /// Semantic action for production 1061:
38499    ///
38500    /// `PackageItem: AliasDeclaration;`
38501    ///
38502    #[parol_runtime::function_name::named]
38503    fn package_item_6(&mut self, _alias_declaration: &ParseTreeType<'t>) -> Result<()> {
38504        let context = function_name!();
38505        trace!("{}", self.trace_item_stack(context));
38506        let alias_declaration = pop_item!(self, alias_declaration, AliasDeclaration, context);
38507        let package_item_6_built = PackageItemAliasDeclaration {
38508            alias_declaration: Box::new(alias_declaration),
38509        };
38510        let package_item_6_built = PackageItem::AliasDeclaration(package_item_6_built);
38511        // Calling user action here
38512        self.user_grammar.package_item(&package_item_6_built)?;
38513        self.push(ASTType::PackageItem(package_item_6_built), context);
38514        Ok(())
38515    }
38516
38517    /// Semantic action for production 1062:
38518    ///
38519    /// `PackageItem: EmbedDeclaration;`
38520    ///
38521    #[parol_runtime::function_name::named]
38522    fn package_item_7(&mut self, _embed_declaration: &ParseTreeType<'t>) -> Result<()> {
38523        let context = function_name!();
38524        trace!("{}", self.trace_item_stack(context));
38525        let embed_declaration = pop_item!(self, embed_declaration, EmbedDeclaration, context);
38526        let package_item_7_built = PackageItemEmbedDeclaration {
38527            embed_declaration: Box::new(embed_declaration),
38528        };
38529        let package_item_7_built = PackageItem::EmbedDeclaration(package_item_7_built);
38530        // Calling user action here
38531        self.user_grammar.package_item(&package_item_7_built)?;
38532        self.push(ASTType::PackageItem(package_item_7_built), context);
38533        Ok(())
38534    }
38535
38536    /// Semantic action for production 1063:
38537    ///
38538    /// `AliasDeclaration: Alias AliasDeclarationGroup Identifier Equ ScopedIdentifier Semicolon;`
38539    ///
38540    #[parol_runtime::function_name::named]
38541    fn alias_declaration(
38542        &mut self,
38543        _alias: &ParseTreeType<'t>,
38544        _alias_declaration_group: &ParseTreeType<'t>,
38545        _identifier: &ParseTreeType<'t>,
38546        _equ: &ParseTreeType<'t>,
38547        _scoped_identifier: &ParseTreeType<'t>,
38548        _semicolon: &ParseTreeType<'t>,
38549    ) -> Result<()> {
38550        let context = function_name!();
38551        trace!("{}", self.trace_item_stack(context));
38552        let semicolon = pop_item!(self, semicolon, Semicolon, context);
38553        let scoped_identifier = pop_item!(self, scoped_identifier, ScopedIdentifier, context);
38554        let equ = pop_item!(self, equ, Equ, context);
38555        let identifier = pop_item!(self, identifier, Identifier, context);
38556        let alias_declaration_group = pop_item!(
38557            self,
38558            alias_declaration_group,
38559            AliasDeclarationGroup,
38560            context
38561        );
38562        let alias = pop_item!(self, alias, Alias, context);
38563        let alias_declaration_built = AliasDeclaration {
38564            alias: Box::new(alias),
38565            alias_declaration_group: Box::new(alias_declaration_group),
38566            identifier: Box::new(identifier),
38567            equ: Box::new(equ),
38568            scoped_identifier: Box::new(scoped_identifier),
38569            semicolon: Box::new(semicolon),
38570        };
38571        // Calling user action here
38572        self.user_grammar
38573            .alias_declaration(&alias_declaration_built)?;
38574        self.push(ASTType::AliasDeclaration(alias_declaration_built), context);
38575        Ok(())
38576    }
38577
38578    /// Semantic action for production 1064:
38579    ///
38580    /// `AliasDeclarationGroup: Module;`
38581    ///
38582    #[parol_runtime::function_name::named]
38583    fn alias_declaration_group_0(&mut self, _module: &ParseTreeType<'t>) -> Result<()> {
38584        let context = function_name!();
38585        trace!("{}", self.trace_item_stack(context));
38586        let module = pop_item!(self, module, Module, context);
38587        let alias_declaration_group_0_built = AliasDeclarationGroupModule {
38588            module: Box::new(module),
38589        };
38590        let alias_declaration_group_0_built =
38591            AliasDeclarationGroup::Module(alias_declaration_group_0_built);
38592        self.push(
38593            ASTType::AliasDeclarationGroup(alias_declaration_group_0_built),
38594            context,
38595        );
38596        Ok(())
38597    }
38598
38599    /// Semantic action for production 1065:
38600    ///
38601    /// `AliasDeclarationGroup: Interface;`
38602    ///
38603    #[parol_runtime::function_name::named]
38604    fn alias_declaration_group_1(&mut self, _interface: &ParseTreeType<'t>) -> Result<()> {
38605        let context = function_name!();
38606        trace!("{}", self.trace_item_stack(context));
38607        let interface = pop_item!(self, interface, Interface, context);
38608        let alias_declaration_group_1_built = AliasDeclarationGroupInterface {
38609            interface: Box::new(interface),
38610        };
38611        let alias_declaration_group_1_built =
38612            AliasDeclarationGroup::Interface(alias_declaration_group_1_built);
38613        self.push(
38614            ASTType::AliasDeclarationGroup(alias_declaration_group_1_built),
38615            context,
38616        );
38617        Ok(())
38618    }
38619
38620    /// Semantic action for production 1066:
38621    ///
38622    /// `AliasDeclarationGroup: Package;`
38623    ///
38624    #[parol_runtime::function_name::named]
38625    fn alias_declaration_group_2(&mut self, _package: &ParseTreeType<'t>) -> Result<()> {
38626        let context = function_name!();
38627        trace!("{}", self.trace_item_stack(context));
38628        let package = pop_item!(self, package, Package, context);
38629        let alias_declaration_group_2_built = AliasDeclarationGroupPackage {
38630            package: Box::new(package),
38631        };
38632        let alias_declaration_group_2_built =
38633            AliasDeclarationGroup::Package(alias_declaration_group_2_built);
38634        self.push(
38635            ASTType::AliasDeclarationGroup(alias_declaration_group_2_built),
38636            context,
38637        );
38638        Ok(())
38639    }
38640
38641    /// Semantic action for production 1067:
38642    ///
38643    /// `ProtoDeclaration: Proto ProtoDeclarationGroup;`
38644    ///
38645    #[parol_runtime::function_name::named]
38646    fn proto_declaration(
38647        &mut self,
38648        _proto: &ParseTreeType<'t>,
38649        _proto_declaration_group: &ParseTreeType<'t>,
38650    ) -> Result<()> {
38651        let context = function_name!();
38652        trace!("{}", self.trace_item_stack(context));
38653        let proto_declaration_group = pop_item!(
38654            self,
38655            proto_declaration_group,
38656            ProtoDeclarationGroup,
38657            context
38658        );
38659        let proto = pop_item!(self, proto, Proto, context);
38660        let proto_declaration_built = ProtoDeclaration {
38661            proto: Box::new(proto),
38662            proto_declaration_group: Box::new(proto_declaration_group),
38663        };
38664        // Calling user action here
38665        self.user_grammar
38666            .proto_declaration(&proto_declaration_built)?;
38667        self.push(ASTType::ProtoDeclaration(proto_declaration_built), context);
38668        Ok(())
38669    }
38670
38671    /// Semantic action for production 1068:
38672    ///
38673    /// `ProtoDeclarationGroup: ProtoModuleDeclaration;`
38674    ///
38675    #[parol_runtime::function_name::named]
38676    fn proto_declaration_group_0(
38677        &mut self,
38678        _proto_module_declaration: &ParseTreeType<'t>,
38679    ) -> Result<()> {
38680        let context = function_name!();
38681        trace!("{}", self.trace_item_stack(context));
38682        let proto_module_declaration = pop_item!(
38683            self,
38684            proto_module_declaration,
38685            ProtoModuleDeclaration,
38686            context
38687        );
38688        let proto_declaration_group_0_built = ProtoDeclarationGroupProtoModuleDeclaration {
38689            proto_module_declaration: Box::new(proto_module_declaration),
38690        };
38691        let proto_declaration_group_0_built =
38692            ProtoDeclarationGroup::ProtoModuleDeclaration(proto_declaration_group_0_built);
38693        self.push(
38694            ASTType::ProtoDeclarationGroup(proto_declaration_group_0_built),
38695            context,
38696        );
38697        Ok(())
38698    }
38699
38700    /// Semantic action for production 1069:
38701    ///
38702    /// `ProtoDeclarationGroup: ProtoInterfaceDeclaration;`
38703    ///
38704    #[parol_runtime::function_name::named]
38705    fn proto_declaration_group_1(
38706        &mut self,
38707        _proto_interface_declaration: &ParseTreeType<'t>,
38708    ) -> Result<()> {
38709        let context = function_name!();
38710        trace!("{}", self.trace_item_stack(context));
38711        let proto_interface_declaration = pop_item!(
38712            self,
38713            proto_interface_declaration,
38714            ProtoInterfaceDeclaration,
38715            context
38716        );
38717        let proto_declaration_group_1_built = ProtoDeclarationGroupProtoInterfaceDeclaration {
38718            proto_interface_declaration: Box::new(proto_interface_declaration),
38719        };
38720        let proto_declaration_group_1_built =
38721            ProtoDeclarationGroup::ProtoInterfaceDeclaration(proto_declaration_group_1_built);
38722        self.push(
38723            ASTType::ProtoDeclarationGroup(proto_declaration_group_1_built),
38724            context,
38725        );
38726        Ok(())
38727    }
38728
38729    /// Semantic action for production 1070:
38730    ///
38731    /// `ProtoDeclarationGroup: ProtoPackageDeclaration;`
38732    ///
38733    #[parol_runtime::function_name::named]
38734    fn proto_declaration_group_2(
38735        &mut self,
38736        _proto_package_declaration: &ParseTreeType<'t>,
38737    ) -> Result<()> {
38738        let context = function_name!();
38739        trace!("{}", self.trace_item_stack(context));
38740        let proto_package_declaration = pop_item!(
38741            self,
38742            proto_package_declaration,
38743            ProtoPackageDeclaration,
38744            context
38745        );
38746        let proto_declaration_group_2_built = ProtoDeclarationGroupProtoPackageDeclaration {
38747            proto_package_declaration: Box::new(proto_package_declaration),
38748        };
38749        let proto_declaration_group_2_built =
38750            ProtoDeclarationGroup::ProtoPackageDeclaration(proto_declaration_group_2_built);
38751        self.push(
38752            ASTType::ProtoDeclarationGroup(proto_declaration_group_2_built),
38753            context,
38754        );
38755        Ok(())
38756    }
38757
38758    /// Semantic action for production 1071:
38759    ///
38760    /// `ProtoModuleDeclaration: Module Identifier ProtoModuleDeclarationOpt /* Option */ ProtoModuleDeclarationOpt0 /* Option */ Semicolon;`
38761    ///
38762    #[parol_runtime::function_name::named]
38763    fn proto_module_declaration(
38764        &mut self,
38765        _module: &ParseTreeType<'t>,
38766        _identifier: &ParseTreeType<'t>,
38767        _proto_module_declaration_opt: &ParseTreeType<'t>,
38768        _proto_module_declaration_opt0: &ParseTreeType<'t>,
38769        _semicolon: &ParseTreeType<'t>,
38770    ) -> Result<()> {
38771        let context = function_name!();
38772        trace!("{}", self.trace_item_stack(context));
38773        let semicolon = pop_item!(self, semicolon, Semicolon, context);
38774        let proto_module_declaration_opt0 = pop_item!(
38775            self,
38776            proto_module_declaration_opt0,
38777            ProtoModuleDeclarationOpt0,
38778            context
38779        );
38780        let proto_module_declaration_opt = pop_item!(
38781            self,
38782            proto_module_declaration_opt,
38783            ProtoModuleDeclarationOpt,
38784            context
38785        );
38786        let identifier = pop_item!(self, identifier, Identifier, context);
38787        let module = pop_item!(self, module, Module, context);
38788        let proto_module_declaration_built = ProtoModuleDeclaration {
38789            module: Box::new(module),
38790            identifier: Box::new(identifier),
38791            proto_module_declaration_opt,
38792            proto_module_declaration_opt0,
38793            semicolon: Box::new(semicolon),
38794        };
38795        // Calling user action here
38796        self.user_grammar
38797            .proto_module_declaration(&proto_module_declaration_built)?;
38798        self.push(
38799            ASTType::ProtoModuleDeclaration(proto_module_declaration_built),
38800            context,
38801        );
38802        Ok(())
38803    }
38804
38805    /// Semantic action for production 1072:
38806    ///
38807    /// `ProtoModuleDeclarationOpt0 /* Option<T>::Some */: PortDeclaration;`
38808    ///
38809    #[parol_runtime::function_name::named]
38810    fn proto_module_declaration_opt0_0(
38811        &mut self,
38812        _port_declaration: &ParseTreeType<'t>,
38813    ) -> Result<()> {
38814        let context = function_name!();
38815        trace!("{}", self.trace_item_stack(context));
38816        let port_declaration = pop_item!(self, port_declaration, PortDeclaration, context);
38817        let proto_module_declaration_opt0_0_built = ProtoModuleDeclarationOpt0 {
38818            port_declaration: Box::new(port_declaration),
38819        };
38820        self.push(
38821            ASTType::ProtoModuleDeclarationOpt0(Some(proto_module_declaration_opt0_0_built)),
38822            context,
38823        );
38824        Ok(())
38825    }
38826
38827    /// Semantic action for production 1073:
38828    ///
38829    /// `ProtoModuleDeclarationOpt0 /* Option<T>::None */: ;`
38830    ///
38831    #[parol_runtime::function_name::named]
38832    fn proto_module_declaration_opt0_1(&mut self) -> Result<()> {
38833        let context = function_name!();
38834        trace!("{}", self.trace_item_stack(context));
38835        self.push(ASTType::ProtoModuleDeclarationOpt0(None), context);
38836        Ok(())
38837    }
38838
38839    /// Semantic action for production 1074:
38840    ///
38841    /// `ProtoModuleDeclarationOpt /* Option<T>::Some */: WithParameter;`
38842    ///
38843    #[parol_runtime::function_name::named]
38844    fn proto_module_declaration_opt_0(
38845        &mut self,
38846        _with_parameter: &ParseTreeType<'t>,
38847    ) -> Result<()> {
38848        let context = function_name!();
38849        trace!("{}", self.trace_item_stack(context));
38850        let with_parameter = pop_item!(self, with_parameter, WithParameter, context);
38851        let proto_module_declaration_opt_0_built = ProtoModuleDeclarationOpt {
38852            with_parameter: Box::new(with_parameter),
38853        };
38854        self.push(
38855            ASTType::ProtoModuleDeclarationOpt(Some(proto_module_declaration_opt_0_built)),
38856            context,
38857        );
38858        Ok(())
38859    }
38860
38861    /// Semantic action for production 1075:
38862    ///
38863    /// `ProtoModuleDeclarationOpt /* Option<T>::None */: ;`
38864    ///
38865    #[parol_runtime::function_name::named]
38866    fn proto_module_declaration_opt_1(&mut self) -> Result<()> {
38867        let context = function_name!();
38868        trace!("{}", self.trace_item_stack(context));
38869        self.push(ASTType::ProtoModuleDeclarationOpt(None), context);
38870        Ok(())
38871    }
38872
38873    /// Semantic action for production 1076:
38874    ///
38875    /// `ProtoInterfaceDeclaration: Interface Identifier ProtoInterfaceDeclarationOpt /* Option */ LBrace ProtoInterfaceDeclarationList /* Vec */ RBrace;`
38876    ///
38877    #[parol_runtime::function_name::named]
38878    fn proto_interface_declaration(
38879        &mut self,
38880        _interface: &ParseTreeType<'t>,
38881        _identifier: &ParseTreeType<'t>,
38882        _proto_interface_declaration_opt: &ParseTreeType<'t>,
38883        _l_brace: &ParseTreeType<'t>,
38884        _proto_interface_declaration_list: &ParseTreeType<'t>,
38885        _r_brace: &ParseTreeType<'t>,
38886    ) -> Result<()> {
38887        let context = function_name!();
38888        trace!("{}", self.trace_item_stack(context));
38889        let r_brace = pop_item!(self, r_brace, RBrace, context);
38890        let proto_interface_declaration_list = pop_and_reverse_item!(
38891            self,
38892            proto_interface_declaration_list,
38893            ProtoInterfaceDeclarationList,
38894            context
38895        );
38896        let l_brace = pop_item!(self, l_brace, LBrace, context);
38897        let proto_interface_declaration_opt = pop_item!(
38898            self,
38899            proto_interface_declaration_opt,
38900            ProtoInterfaceDeclarationOpt,
38901            context
38902        );
38903        let identifier = pop_item!(self, identifier, Identifier, context);
38904        let interface = pop_item!(self, interface, Interface, context);
38905        let proto_interface_declaration_built = ProtoInterfaceDeclaration {
38906            interface: Box::new(interface),
38907            identifier: Box::new(identifier),
38908            proto_interface_declaration_opt,
38909            l_brace: Box::new(l_brace),
38910            proto_interface_declaration_list,
38911            r_brace: Box::new(r_brace),
38912        };
38913        // Calling user action here
38914        self.user_grammar
38915            .proto_interface_declaration(&proto_interface_declaration_built)?;
38916        self.push(
38917            ASTType::ProtoInterfaceDeclaration(proto_interface_declaration_built),
38918            context,
38919        );
38920        Ok(())
38921    }
38922
38923    /// Semantic action for production 1077:
38924    ///
38925    /// `ProtoInterfaceDeclarationList /* Vec<T>::Push */: ProtoInterfaceItem ProtoInterfaceDeclarationList;`
38926    ///
38927    #[parol_runtime::function_name::named]
38928    fn proto_interface_declaration_list_0(
38929        &mut self,
38930        _proto_interface_item: &ParseTreeType<'t>,
38931        _proto_interface_declaration_list: &ParseTreeType<'t>,
38932    ) -> Result<()> {
38933        let context = function_name!();
38934        trace!("{}", self.trace_item_stack(context));
38935        let mut proto_interface_declaration_list = pop_item!(
38936            self,
38937            proto_interface_declaration_list,
38938            ProtoInterfaceDeclarationList,
38939            context
38940        );
38941        let proto_interface_item =
38942            pop_item!(self, proto_interface_item, ProtoInterfaceItem, context);
38943        let proto_interface_declaration_list_0_built = ProtoInterfaceDeclarationList {
38944            proto_interface_item: Box::new(proto_interface_item),
38945        };
38946        // Add an element to the vector
38947        proto_interface_declaration_list.push(proto_interface_declaration_list_0_built);
38948        self.push(
38949            ASTType::ProtoInterfaceDeclarationList(proto_interface_declaration_list),
38950            context,
38951        );
38952        Ok(())
38953    }
38954
38955    /// Semantic action for production 1078:
38956    ///
38957    /// `ProtoInterfaceDeclarationList /* Vec<T>::New */: ;`
38958    ///
38959    #[parol_runtime::function_name::named]
38960    fn proto_interface_declaration_list_1(&mut self) -> Result<()> {
38961        let context = function_name!();
38962        trace!("{}", self.trace_item_stack(context));
38963        let proto_interface_declaration_list_1_built = Vec::new();
38964        self.push(
38965            ASTType::ProtoInterfaceDeclarationList(proto_interface_declaration_list_1_built),
38966            context,
38967        );
38968        Ok(())
38969    }
38970
38971    /// Semantic action for production 1079:
38972    ///
38973    /// `ProtoInterfaceDeclarationOpt /* Option<T>::Some */: WithParameter;`
38974    ///
38975    #[parol_runtime::function_name::named]
38976    fn proto_interface_declaration_opt_0(
38977        &mut self,
38978        _with_parameter: &ParseTreeType<'t>,
38979    ) -> Result<()> {
38980        let context = function_name!();
38981        trace!("{}", self.trace_item_stack(context));
38982        let with_parameter = pop_item!(self, with_parameter, WithParameter, context);
38983        let proto_interface_declaration_opt_0_built = ProtoInterfaceDeclarationOpt {
38984            with_parameter: Box::new(with_parameter),
38985        };
38986        self.push(
38987            ASTType::ProtoInterfaceDeclarationOpt(Some(proto_interface_declaration_opt_0_built)),
38988            context,
38989        );
38990        Ok(())
38991    }
38992
38993    /// Semantic action for production 1080:
38994    ///
38995    /// `ProtoInterfaceDeclarationOpt /* Option<T>::None */: ;`
38996    ///
38997    #[parol_runtime::function_name::named]
38998    fn proto_interface_declaration_opt_1(&mut self) -> Result<()> {
38999        let context = function_name!();
39000        trace!("{}", self.trace_item_stack(context));
39001        self.push(ASTType::ProtoInterfaceDeclarationOpt(None), context);
39002        Ok(())
39003    }
39004
39005    /// Semantic action for production 1081:
39006    ///
39007    /// `ProtoInterfaceItem: VarDeclaration;`
39008    ///
39009    #[parol_runtime::function_name::named]
39010    fn proto_interface_item_0(&mut self, _var_declaration: &ParseTreeType<'t>) -> Result<()> {
39011        let context = function_name!();
39012        trace!("{}", self.trace_item_stack(context));
39013        let var_declaration = pop_item!(self, var_declaration, VarDeclaration, context);
39014        let proto_interface_item_0_built = ProtoInterfaceItemVarDeclaration {
39015            var_declaration: Box::new(var_declaration),
39016        };
39017        let proto_interface_item_0_built =
39018            ProtoInterfaceItem::VarDeclaration(proto_interface_item_0_built);
39019        // Calling user action here
39020        self.user_grammar
39021            .proto_interface_item(&proto_interface_item_0_built)?;
39022        self.push(
39023            ASTType::ProtoInterfaceItem(proto_interface_item_0_built),
39024            context,
39025        );
39026        Ok(())
39027    }
39028
39029    /// Semantic action for production 1082:
39030    ///
39031    /// `ProtoInterfaceItem: ProtoConstDeclaration;`
39032    ///
39033    #[parol_runtime::function_name::named]
39034    fn proto_interface_item_1(
39035        &mut self,
39036        _proto_const_declaration: &ParseTreeType<'t>,
39037    ) -> Result<()> {
39038        let context = function_name!();
39039        trace!("{}", self.trace_item_stack(context));
39040        let proto_const_declaration = pop_item!(
39041            self,
39042            proto_const_declaration,
39043            ProtoConstDeclaration,
39044            context
39045        );
39046        let proto_interface_item_1_built = ProtoInterfaceItemProtoConstDeclaration {
39047            proto_const_declaration: Box::new(proto_const_declaration),
39048        };
39049        let proto_interface_item_1_built =
39050            ProtoInterfaceItem::ProtoConstDeclaration(proto_interface_item_1_built);
39051        // Calling user action here
39052        self.user_grammar
39053            .proto_interface_item(&proto_interface_item_1_built)?;
39054        self.push(
39055            ASTType::ProtoInterfaceItem(proto_interface_item_1_built),
39056            context,
39057        );
39058        Ok(())
39059    }
39060
39061    /// Semantic action for production 1083:
39062    ///
39063    /// `ProtoInterfaceItem: ProtoFunctionDeclaration;`
39064    ///
39065    #[parol_runtime::function_name::named]
39066    fn proto_interface_item_2(
39067        &mut self,
39068        _proto_function_declaration: &ParseTreeType<'t>,
39069    ) -> Result<()> {
39070        let context = function_name!();
39071        trace!("{}", self.trace_item_stack(context));
39072        let proto_function_declaration = pop_item!(
39073            self,
39074            proto_function_declaration,
39075            ProtoFunctionDeclaration,
39076            context
39077        );
39078        let proto_interface_item_2_built = ProtoInterfaceItemProtoFunctionDeclaration {
39079            proto_function_declaration: Box::new(proto_function_declaration),
39080        };
39081        let proto_interface_item_2_built =
39082            ProtoInterfaceItem::ProtoFunctionDeclaration(proto_interface_item_2_built);
39083        // Calling user action here
39084        self.user_grammar
39085            .proto_interface_item(&proto_interface_item_2_built)?;
39086        self.push(
39087            ASTType::ProtoInterfaceItem(proto_interface_item_2_built),
39088            context,
39089        );
39090        Ok(())
39091    }
39092
39093    /// Semantic action for production 1084:
39094    ///
39095    /// `ProtoInterfaceItem: ProtoTypeDefDeclaration;`
39096    ///
39097    #[parol_runtime::function_name::named]
39098    fn proto_interface_item_3(
39099        &mut self,
39100        _proto_type_def_declaration: &ParseTreeType<'t>,
39101    ) -> Result<()> {
39102        let context = function_name!();
39103        trace!("{}", self.trace_item_stack(context));
39104        let proto_type_def_declaration = pop_item!(
39105            self,
39106            proto_type_def_declaration,
39107            ProtoTypeDefDeclaration,
39108            context
39109        );
39110        let proto_interface_item_3_built = ProtoInterfaceItemProtoTypeDefDeclaration {
39111            proto_type_def_declaration: Box::new(proto_type_def_declaration),
39112        };
39113        let proto_interface_item_3_built =
39114            ProtoInterfaceItem::ProtoTypeDefDeclaration(proto_interface_item_3_built);
39115        // Calling user action here
39116        self.user_grammar
39117            .proto_interface_item(&proto_interface_item_3_built)?;
39118        self.push(
39119            ASTType::ProtoInterfaceItem(proto_interface_item_3_built),
39120            context,
39121        );
39122        Ok(())
39123    }
39124
39125    /// Semantic action for production 1085:
39126    ///
39127    /// `ProtoInterfaceItem: ProtoAliasDeclaration;`
39128    ///
39129    #[parol_runtime::function_name::named]
39130    fn proto_interface_item_4(
39131        &mut self,
39132        _proto_alias_declaration: &ParseTreeType<'t>,
39133    ) -> Result<()> {
39134        let context = function_name!();
39135        trace!("{}", self.trace_item_stack(context));
39136        let proto_alias_declaration = pop_item!(
39137            self,
39138            proto_alias_declaration,
39139            ProtoAliasDeclaration,
39140            context
39141        );
39142        let proto_interface_item_4_built = ProtoInterfaceItemProtoAliasDeclaration {
39143            proto_alias_declaration: Box::new(proto_alias_declaration),
39144        };
39145        let proto_interface_item_4_built =
39146            ProtoInterfaceItem::ProtoAliasDeclaration(proto_interface_item_4_built);
39147        // Calling user action here
39148        self.user_grammar
39149            .proto_interface_item(&proto_interface_item_4_built)?;
39150        self.push(
39151            ASTType::ProtoInterfaceItem(proto_interface_item_4_built),
39152            context,
39153        );
39154        Ok(())
39155    }
39156
39157    /// Semantic action for production 1086:
39158    ///
39159    /// `ProtoInterfaceItem: ModportDeclaration;`
39160    ///
39161    #[parol_runtime::function_name::named]
39162    fn proto_interface_item_5(&mut self, _modport_declaration: &ParseTreeType<'t>) -> Result<()> {
39163        let context = function_name!();
39164        trace!("{}", self.trace_item_stack(context));
39165        let modport_declaration = pop_item!(self, modport_declaration, ModportDeclaration, context);
39166        let proto_interface_item_5_built = ProtoInterfaceItemModportDeclaration {
39167            modport_declaration: Box::new(modport_declaration),
39168        };
39169        let proto_interface_item_5_built =
39170            ProtoInterfaceItem::ModportDeclaration(proto_interface_item_5_built);
39171        // Calling user action here
39172        self.user_grammar
39173            .proto_interface_item(&proto_interface_item_5_built)?;
39174        self.push(
39175            ASTType::ProtoInterfaceItem(proto_interface_item_5_built),
39176            context,
39177        );
39178        Ok(())
39179    }
39180
39181    /// Semantic action for production 1087:
39182    ///
39183    /// `ProtoInterfaceItem: ImportDeclaration;`
39184    ///
39185    #[parol_runtime::function_name::named]
39186    fn proto_interface_item_6(&mut self, _import_declaration: &ParseTreeType<'t>) -> Result<()> {
39187        let context = function_name!();
39188        trace!("{}", self.trace_item_stack(context));
39189        let import_declaration = pop_item!(self, import_declaration, ImportDeclaration, context);
39190        let proto_interface_item_6_built = ProtoInterfaceItemImportDeclaration {
39191            import_declaration: Box::new(import_declaration),
39192        };
39193        let proto_interface_item_6_built =
39194            ProtoInterfaceItem::ImportDeclaration(proto_interface_item_6_built);
39195        // Calling user action here
39196        self.user_grammar
39197            .proto_interface_item(&proto_interface_item_6_built)?;
39198        self.push(
39199            ASTType::ProtoInterfaceItem(proto_interface_item_6_built),
39200            context,
39201        );
39202        Ok(())
39203    }
39204
39205    /// Semantic action for production 1088:
39206    ///
39207    /// `ProtoPackageDeclaration: Package Identifier LBrace ProtoPackageDeclarationList /* Vec */ RBrace;`
39208    ///
39209    #[parol_runtime::function_name::named]
39210    fn proto_package_declaration(
39211        &mut self,
39212        _package: &ParseTreeType<'t>,
39213        _identifier: &ParseTreeType<'t>,
39214        _l_brace: &ParseTreeType<'t>,
39215        _proto_package_declaration_list: &ParseTreeType<'t>,
39216        _r_brace: &ParseTreeType<'t>,
39217    ) -> Result<()> {
39218        let context = function_name!();
39219        trace!("{}", self.trace_item_stack(context));
39220        let r_brace = pop_item!(self, r_brace, RBrace, context);
39221        let proto_package_declaration_list = pop_and_reverse_item!(
39222            self,
39223            proto_package_declaration_list,
39224            ProtoPackageDeclarationList,
39225            context
39226        );
39227        let l_brace = pop_item!(self, l_brace, LBrace, context);
39228        let identifier = pop_item!(self, identifier, Identifier, context);
39229        let package = pop_item!(self, package, Package, context);
39230        let proto_package_declaration_built = ProtoPackageDeclaration {
39231            package: Box::new(package),
39232            identifier: Box::new(identifier),
39233            l_brace: Box::new(l_brace),
39234            proto_package_declaration_list,
39235            r_brace: Box::new(r_brace),
39236        };
39237        // Calling user action here
39238        self.user_grammar
39239            .proto_package_declaration(&proto_package_declaration_built)?;
39240        self.push(
39241            ASTType::ProtoPackageDeclaration(proto_package_declaration_built),
39242            context,
39243        );
39244        Ok(())
39245    }
39246
39247    /// Semantic action for production 1089:
39248    ///
39249    /// `ProtoPackageDeclarationList /* Vec<T>::Push */: ProtoPacakgeItem ProtoPackageDeclarationList;`
39250    ///
39251    #[parol_runtime::function_name::named]
39252    fn proto_package_declaration_list_0(
39253        &mut self,
39254        _proto_pacakge_item: &ParseTreeType<'t>,
39255        _proto_package_declaration_list: &ParseTreeType<'t>,
39256    ) -> Result<()> {
39257        let context = function_name!();
39258        trace!("{}", self.trace_item_stack(context));
39259        let mut proto_package_declaration_list = pop_item!(
39260            self,
39261            proto_package_declaration_list,
39262            ProtoPackageDeclarationList,
39263            context
39264        );
39265        let proto_pacakge_item = pop_item!(self, proto_pacakge_item, ProtoPacakgeItem, context);
39266        let proto_package_declaration_list_0_built = ProtoPackageDeclarationList {
39267            proto_pacakge_item: Box::new(proto_pacakge_item),
39268        };
39269        // Add an element to the vector
39270        proto_package_declaration_list.push(proto_package_declaration_list_0_built);
39271        self.push(
39272            ASTType::ProtoPackageDeclarationList(proto_package_declaration_list),
39273            context,
39274        );
39275        Ok(())
39276    }
39277
39278    /// Semantic action for production 1090:
39279    ///
39280    /// `ProtoPackageDeclarationList /* Vec<T>::New */: ;`
39281    ///
39282    #[parol_runtime::function_name::named]
39283    fn proto_package_declaration_list_1(&mut self) -> Result<()> {
39284        let context = function_name!();
39285        trace!("{}", self.trace_item_stack(context));
39286        let proto_package_declaration_list_1_built = Vec::new();
39287        self.push(
39288            ASTType::ProtoPackageDeclarationList(proto_package_declaration_list_1_built),
39289            context,
39290        );
39291        Ok(())
39292    }
39293
39294    /// Semantic action for production 1091:
39295    ///
39296    /// `ProtoPacakgeItem: ProtoConstDeclaration;`
39297    ///
39298    #[parol_runtime::function_name::named]
39299    fn proto_pacakge_item_0(&mut self, _proto_const_declaration: &ParseTreeType<'t>) -> Result<()> {
39300        let context = function_name!();
39301        trace!("{}", self.trace_item_stack(context));
39302        let proto_const_declaration = pop_item!(
39303            self,
39304            proto_const_declaration,
39305            ProtoConstDeclaration,
39306            context
39307        );
39308        let proto_pacakge_item_0_built = ProtoPacakgeItemProtoConstDeclaration {
39309            proto_const_declaration: Box::new(proto_const_declaration),
39310        };
39311        let proto_pacakge_item_0_built =
39312            ProtoPacakgeItem::ProtoConstDeclaration(proto_pacakge_item_0_built);
39313        // Calling user action here
39314        self.user_grammar
39315            .proto_pacakge_item(&proto_pacakge_item_0_built)?;
39316        self.push(
39317            ASTType::ProtoPacakgeItem(proto_pacakge_item_0_built),
39318            context,
39319        );
39320        Ok(())
39321    }
39322
39323    /// Semantic action for production 1092:
39324    ///
39325    /// `ProtoPacakgeItem: ProtoTypeDefDeclaration;`
39326    ///
39327    #[parol_runtime::function_name::named]
39328    fn proto_pacakge_item_1(
39329        &mut self,
39330        _proto_type_def_declaration: &ParseTreeType<'t>,
39331    ) -> Result<()> {
39332        let context = function_name!();
39333        trace!("{}", self.trace_item_stack(context));
39334        let proto_type_def_declaration = pop_item!(
39335            self,
39336            proto_type_def_declaration,
39337            ProtoTypeDefDeclaration,
39338            context
39339        );
39340        let proto_pacakge_item_1_built = ProtoPacakgeItemProtoTypeDefDeclaration {
39341            proto_type_def_declaration: Box::new(proto_type_def_declaration),
39342        };
39343        let proto_pacakge_item_1_built =
39344            ProtoPacakgeItem::ProtoTypeDefDeclaration(proto_pacakge_item_1_built);
39345        // Calling user action here
39346        self.user_grammar
39347            .proto_pacakge_item(&proto_pacakge_item_1_built)?;
39348        self.push(
39349            ASTType::ProtoPacakgeItem(proto_pacakge_item_1_built),
39350            context,
39351        );
39352        Ok(())
39353    }
39354
39355    /// Semantic action for production 1093:
39356    ///
39357    /// `ProtoPacakgeItem: EnumDeclaration;`
39358    ///
39359    #[parol_runtime::function_name::named]
39360    fn proto_pacakge_item_2(&mut self, _enum_declaration: &ParseTreeType<'t>) -> Result<()> {
39361        let context = function_name!();
39362        trace!("{}", self.trace_item_stack(context));
39363        let enum_declaration = pop_item!(self, enum_declaration, EnumDeclaration, context);
39364        let proto_pacakge_item_2_built = ProtoPacakgeItemEnumDeclaration {
39365            enum_declaration: Box::new(enum_declaration),
39366        };
39367        let proto_pacakge_item_2_built =
39368            ProtoPacakgeItem::EnumDeclaration(proto_pacakge_item_2_built);
39369        // Calling user action here
39370        self.user_grammar
39371            .proto_pacakge_item(&proto_pacakge_item_2_built)?;
39372        self.push(
39373            ASTType::ProtoPacakgeItem(proto_pacakge_item_2_built),
39374            context,
39375        );
39376        Ok(())
39377    }
39378
39379    /// Semantic action for production 1094:
39380    ///
39381    /// `ProtoPacakgeItem: StructUnionDeclaration;`
39382    ///
39383    #[parol_runtime::function_name::named]
39384    fn proto_pacakge_item_3(
39385        &mut self,
39386        _struct_union_declaration: &ParseTreeType<'t>,
39387    ) -> Result<()> {
39388        let context = function_name!();
39389        trace!("{}", self.trace_item_stack(context));
39390        let struct_union_declaration = pop_item!(
39391            self,
39392            struct_union_declaration,
39393            StructUnionDeclaration,
39394            context
39395        );
39396        let proto_pacakge_item_3_built = ProtoPacakgeItemStructUnionDeclaration {
39397            struct_union_declaration: Box::new(struct_union_declaration),
39398        };
39399        let proto_pacakge_item_3_built =
39400            ProtoPacakgeItem::StructUnionDeclaration(proto_pacakge_item_3_built);
39401        // Calling user action here
39402        self.user_grammar
39403            .proto_pacakge_item(&proto_pacakge_item_3_built)?;
39404        self.push(
39405            ASTType::ProtoPacakgeItem(proto_pacakge_item_3_built),
39406            context,
39407        );
39408        Ok(())
39409    }
39410
39411    /// Semantic action for production 1095:
39412    ///
39413    /// `ProtoPacakgeItem: ProtoFunctionDeclaration;`
39414    ///
39415    #[parol_runtime::function_name::named]
39416    fn proto_pacakge_item_4(
39417        &mut self,
39418        _proto_function_declaration: &ParseTreeType<'t>,
39419    ) -> Result<()> {
39420        let context = function_name!();
39421        trace!("{}", self.trace_item_stack(context));
39422        let proto_function_declaration = pop_item!(
39423            self,
39424            proto_function_declaration,
39425            ProtoFunctionDeclaration,
39426            context
39427        );
39428        let proto_pacakge_item_4_built = ProtoPacakgeItemProtoFunctionDeclaration {
39429            proto_function_declaration: Box::new(proto_function_declaration),
39430        };
39431        let proto_pacakge_item_4_built =
39432            ProtoPacakgeItem::ProtoFunctionDeclaration(proto_pacakge_item_4_built);
39433        // Calling user action here
39434        self.user_grammar
39435            .proto_pacakge_item(&proto_pacakge_item_4_built)?;
39436        self.push(
39437            ASTType::ProtoPacakgeItem(proto_pacakge_item_4_built),
39438            context,
39439        );
39440        Ok(())
39441    }
39442
39443    /// Semantic action for production 1096:
39444    ///
39445    /// `ProtoPacakgeItem: ProtoAliasDeclaration;`
39446    ///
39447    #[parol_runtime::function_name::named]
39448    fn proto_pacakge_item_5(&mut self, _proto_alias_declaration: &ParseTreeType<'t>) -> Result<()> {
39449        let context = function_name!();
39450        trace!("{}", self.trace_item_stack(context));
39451        let proto_alias_declaration = pop_item!(
39452            self,
39453            proto_alias_declaration,
39454            ProtoAliasDeclaration,
39455            context
39456        );
39457        let proto_pacakge_item_5_built = ProtoPacakgeItemProtoAliasDeclaration {
39458            proto_alias_declaration: Box::new(proto_alias_declaration),
39459        };
39460        let proto_pacakge_item_5_built =
39461            ProtoPacakgeItem::ProtoAliasDeclaration(proto_pacakge_item_5_built);
39462        // Calling user action here
39463        self.user_grammar
39464            .proto_pacakge_item(&proto_pacakge_item_5_built)?;
39465        self.push(
39466            ASTType::ProtoPacakgeItem(proto_pacakge_item_5_built),
39467            context,
39468        );
39469        Ok(())
39470    }
39471
39472    /// Semantic action for production 1097:
39473    ///
39474    /// `ProtoPacakgeItem: ImportDeclaration;`
39475    ///
39476    #[parol_runtime::function_name::named]
39477    fn proto_pacakge_item_6(&mut self, _import_declaration: &ParseTreeType<'t>) -> Result<()> {
39478        let context = function_name!();
39479        trace!("{}", self.trace_item_stack(context));
39480        let import_declaration = pop_item!(self, import_declaration, ImportDeclaration, context);
39481        let proto_pacakge_item_6_built = ProtoPacakgeItemImportDeclaration {
39482            import_declaration: Box::new(import_declaration),
39483        };
39484        let proto_pacakge_item_6_built =
39485            ProtoPacakgeItem::ImportDeclaration(proto_pacakge_item_6_built);
39486        // Calling user action here
39487        self.user_grammar
39488            .proto_pacakge_item(&proto_pacakge_item_6_built)?;
39489        self.push(
39490            ASTType::ProtoPacakgeItem(proto_pacakge_item_6_built),
39491            context,
39492        );
39493        Ok(())
39494    }
39495
39496    /// Semantic action for production 1098:
39497    ///
39498    /// `ProtoConstDeclaration: Const Identifier Colon ProtoConstDeclarationGroup Semicolon;`
39499    ///
39500    #[parol_runtime::function_name::named]
39501    fn proto_const_declaration(
39502        &mut self,
39503        _const: &ParseTreeType<'t>,
39504        _identifier: &ParseTreeType<'t>,
39505        _colon: &ParseTreeType<'t>,
39506        _proto_const_declaration_group: &ParseTreeType<'t>,
39507        _semicolon: &ParseTreeType<'t>,
39508    ) -> Result<()> {
39509        let context = function_name!();
39510        trace!("{}", self.trace_item_stack(context));
39511        let semicolon = pop_item!(self, semicolon, Semicolon, context);
39512        let proto_const_declaration_group = pop_item!(
39513            self,
39514            proto_const_declaration_group,
39515            ProtoConstDeclarationGroup,
39516            context
39517        );
39518        let colon = pop_item!(self, colon, Colon, context);
39519        let identifier = pop_item!(self, identifier, Identifier, context);
39520        let r#const = pop_item!(self, r#const, Const, context);
39521        let proto_const_declaration_built = ProtoConstDeclaration {
39522            r#const: Box::new(r#const),
39523            identifier: Box::new(identifier),
39524            colon: Box::new(colon),
39525            proto_const_declaration_group: Box::new(proto_const_declaration_group),
39526            semicolon: Box::new(semicolon),
39527        };
39528        // Calling user action here
39529        self.user_grammar
39530            .proto_const_declaration(&proto_const_declaration_built)?;
39531        self.push(
39532            ASTType::ProtoConstDeclaration(proto_const_declaration_built),
39533            context,
39534        );
39535        Ok(())
39536    }
39537
39538    /// Semantic action for production 1099:
39539    ///
39540    /// `ProtoConstDeclarationGroup: ArrayType;`
39541    ///
39542    #[parol_runtime::function_name::named]
39543    fn proto_const_declaration_group_0(&mut self, _array_type: &ParseTreeType<'t>) -> Result<()> {
39544        let context = function_name!();
39545        trace!("{}", self.trace_item_stack(context));
39546        let array_type = pop_item!(self, array_type, ArrayType, context);
39547        let proto_const_declaration_group_0_built = ProtoConstDeclarationGroupArrayType {
39548            array_type: Box::new(array_type),
39549        };
39550        let proto_const_declaration_group_0_built =
39551            ProtoConstDeclarationGroup::ArrayType(proto_const_declaration_group_0_built);
39552        self.push(
39553            ASTType::ProtoConstDeclarationGroup(proto_const_declaration_group_0_built),
39554            context,
39555        );
39556        Ok(())
39557    }
39558
39559    /// Semantic action for production 1100:
39560    ///
39561    /// `ProtoConstDeclarationGroup: Type;`
39562    ///
39563    #[parol_runtime::function_name::named]
39564    fn proto_const_declaration_group_1(&mut self, _type: &ParseTreeType<'t>) -> Result<()> {
39565        let context = function_name!();
39566        trace!("{}", self.trace_item_stack(context));
39567        let r#type = pop_item!(self, r#type, Type, context);
39568        let proto_const_declaration_group_1_built = ProtoConstDeclarationGroupType {
39569            r#type: Box::new(r#type),
39570        };
39571        let proto_const_declaration_group_1_built =
39572            ProtoConstDeclarationGroup::Type(proto_const_declaration_group_1_built);
39573        self.push(
39574            ASTType::ProtoConstDeclarationGroup(proto_const_declaration_group_1_built),
39575            context,
39576        );
39577        Ok(())
39578    }
39579
39580    /// Semantic action for production 1101:
39581    ///
39582    /// `ProtoTypeDefDeclaration: Type Identifier ProtoTypeDefDeclarationOpt /* Option */ Semicolon;`
39583    ///
39584    #[parol_runtime::function_name::named]
39585    fn proto_type_def_declaration(
39586        &mut self,
39587        _type: &ParseTreeType<'t>,
39588        _identifier: &ParseTreeType<'t>,
39589        _proto_type_def_declaration_opt: &ParseTreeType<'t>,
39590        _semicolon: &ParseTreeType<'t>,
39591    ) -> Result<()> {
39592        let context = function_name!();
39593        trace!("{}", self.trace_item_stack(context));
39594        let semicolon = pop_item!(self, semicolon, Semicolon, context);
39595        let proto_type_def_declaration_opt = pop_item!(
39596            self,
39597            proto_type_def_declaration_opt,
39598            ProtoTypeDefDeclarationOpt,
39599            context
39600        );
39601        let identifier = pop_item!(self, identifier, Identifier, context);
39602        let r#type = pop_item!(self, r#type, Type, context);
39603        let proto_type_def_declaration_built = ProtoTypeDefDeclaration {
39604            r#type: Box::new(r#type),
39605            identifier: Box::new(identifier),
39606            proto_type_def_declaration_opt,
39607            semicolon: Box::new(semicolon),
39608        };
39609        // Calling user action here
39610        self.user_grammar
39611            .proto_type_def_declaration(&proto_type_def_declaration_built)?;
39612        self.push(
39613            ASTType::ProtoTypeDefDeclaration(proto_type_def_declaration_built),
39614            context,
39615        );
39616        Ok(())
39617    }
39618
39619    /// Semantic action for production 1102:
39620    ///
39621    /// `ProtoTypeDefDeclarationOpt /* Option<T>::Some */: Equ ArrayType;`
39622    ///
39623    #[parol_runtime::function_name::named]
39624    fn proto_type_def_declaration_opt_0(
39625        &mut self,
39626        _equ: &ParseTreeType<'t>,
39627        _array_type: &ParseTreeType<'t>,
39628    ) -> Result<()> {
39629        let context = function_name!();
39630        trace!("{}", self.trace_item_stack(context));
39631        let array_type = pop_item!(self, array_type, ArrayType, context);
39632        let equ = pop_item!(self, equ, Equ, context);
39633        let proto_type_def_declaration_opt_0_built = ProtoTypeDefDeclarationOpt {
39634            equ: Box::new(equ),
39635            array_type: Box::new(array_type),
39636        };
39637        self.push(
39638            ASTType::ProtoTypeDefDeclarationOpt(Some(proto_type_def_declaration_opt_0_built)),
39639            context,
39640        );
39641        Ok(())
39642    }
39643
39644    /// Semantic action for production 1103:
39645    ///
39646    /// `ProtoTypeDefDeclarationOpt /* Option<T>::None */: ;`
39647    ///
39648    #[parol_runtime::function_name::named]
39649    fn proto_type_def_declaration_opt_1(&mut self) -> Result<()> {
39650        let context = function_name!();
39651        trace!("{}", self.trace_item_stack(context));
39652        self.push(ASTType::ProtoTypeDefDeclarationOpt(None), context);
39653        Ok(())
39654    }
39655
39656    /// Semantic action for production 1104:
39657    ///
39658    /// `ProtoFunctionDeclaration: Function Identifier ProtoFunctionDeclarationOpt /* Option */ ProtoFunctionDeclarationOpt0 /* Option */ ProtoFunctionDeclarationOpt1 /* Option */ Semicolon;`
39659    ///
39660    #[parol_runtime::function_name::named]
39661    fn proto_function_declaration(
39662        &mut self,
39663        _function: &ParseTreeType<'t>,
39664        _identifier: &ParseTreeType<'t>,
39665        _proto_function_declaration_opt: &ParseTreeType<'t>,
39666        _proto_function_declaration_opt0: &ParseTreeType<'t>,
39667        _proto_function_declaration_opt1: &ParseTreeType<'t>,
39668        _semicolon: &ParseTreeType<'t>,
39669    ) -> Result<()> {
39670        let context = function_name!();
39671        trace!("{}", self.trace_item_stack(context));
39672        let semicolon = pop_item!(self, semicolon, Semicolon, context);
39673        let proto_function_declaration_opt1 = pop_item!(
39674            self,
39675            proto_function_declaration_opt1,
39676            ProtoFunctionDeclarationOpt1,
39677            context
39678        );
39679        let proto_function_declaration_opt0 = pop_item!(
39680            self,
39681            proto_function_declaration_opt0,
39682            ProtoFunctionDeclarationOpt0,
39683            context
39684        );
39685        let proto_function_declaration_opt = pop_item!(
39686            self,
39687            proto_function_declaration_opt,
39688            ProtoFunctionDeclarationOpt,
39689            context
39690        );
39691        let identifier = pop_item!(self, identifier, Identifier, context);
39692        let function = pop_item!(self, function, Function, context);
39693        let proto_function_declaration_built = ProtoFunctionDeclaration {
39694            function: Box::new(function),
39695            identifier: Box::new(identifier),
39696            proto_function_declaration_opt,
39697            proto_function_declaration_opt0,
39698            proto_function_declaration_opt1,
39699            semicolon: Box::new(semicolon),
39700        };
39701        // Calling user action here
39702        self.user_grammar
39703            .proto_function_declaration(&proto_function_declaration_built)?;
39704        self.push(
39705            ASTType::ProtoFunctionDeclaration(proto_function_declaration_built),
39706            context,
39707        );
39708        Ok(())
39709    }
39710
39711    /// Semantic action for production 1105:
39712    ///
39713    /// `ProtoFunctionDeclarationOpt1 /* Option<T>::Some */: MinusGT ScalarType;`
39714    ///
39715    #[parol_runtime::function_name::named]
39716    fn proto_function_declaration_opt1_0(
39717        &mut self,
39718        _minus_g_t: &ParseTreeType<'t>,
39719        _scalar_type: &ParseTreeType<'t>,
39720    ) -> Result<()> {
39721        let context = function_name!();
39722        trace!("{}", self.trace_item_stack(context));
39723        let scalar_type = pop_item!(self, scalar_type, ScalarType, context);
39724        let minus_g_t = pop_item!(self, minus_g_t, MinusGT, context);
39725        let proto_function_declaration_opt1_0_built = ProtoFunctionDeclarationOpt1 {
39726            minus_g_t: Box::new(minus_g_t),
39727            scalar_type: Box::new(scalar_type),
39728        };
39729        self.push(
39730            ASTType::ProtoFunctionDeclarationOpt1(Some(proto_function_declaration_opt1_0_built)),
39731            context,
39732        );
39733        Ok(())
39734    }
39735
39736    /// Semantic action for production 1106:
39737    ///
39738    /// `ProtoFunctionDeclarationOpt1 /* Option<T>::None */: ;`
39739    ///
39740    #[parol_runtime::function_name::named]
39741    fn proto_function_declaration_opt1_1(&mut self) -> Result<()> {
39742        let context = function_name!();
39743        trace!("{}", self.trace_item_stack(context));
39744        self.push(ASTType::ProtoFunctionDeclarationOpt1(None), context);
39745        Ok(())
39746    }
39747
39748    /// Semantic action for production 1107:
39749    ///
39750    /// `ProtoFunctionDeclarationOpt0 /* Option<T>::Some */: PortDeclaration;`
39751    ///
39752    #[parol_runtime::function_name::named]
39753    fn proto_function_declaration_opt0_0(
39754        &mut self,
39755        _port_declaration: &ParseTreeType<'t>,
39756    ) -> Result<()> {
39757        let context = function_name!();
39758        trace!("{}", self.trace_item_stack(context));
39759        let port_declaration = pop_item!(self, port_declaration, PortDeclaration, context);
39760        let proto_function_declaration_opt0_0_built = ProtoFunctionDeclarationOpt0 {
39761            port_declaration: Box::new(port_declaration),
39762        };
39763        self.push(
39764            ASTType::ProtoFunctionDeclarationOpt0(Some(proto_function_declaration_opt0_0_built)),
39765            context,
39766        );
39767        Ok(())
39768    }
39769
39770    /// Semantic action for production 1108:
39771    ///
39772    /// `ProtoFunctionDeclarationOpt0 /* Option<T>::None */: ;`
39773    ///
39774    #[parol_runtime::function_name::named]
39775    fn proto_function_declaration_opt0_1(&mut self) -> Result<()> {
39776        let context = function_name!();
39777        trace!("{}", self.trace_item_stack(context));
39778        self.push(ASTType::ProtoFunctionDeclarationOpt0(None), context);
39779        Ok(())
39780    }
39781
39782    /// Semantic action for production 1109:
39783    ///
39784    /// `ProtoFunctionDeclarationOpt /* Option<T>::Some */: WithGenericParameter;`
39785    ///
39786    #[parol_runtime::function_name::named]
39787    fn proto_function_declaration_opt_0(
39788        &mut self,
39789        _with_generic_parameter: &ParseTreeType<'t>,
39790    ) -> Result<()> {
39791        let context = function_name!();
39792        trace!("{}", self.trace_item_stack(context));
39793        let with_generic_parameter =
39794            pop_item!(self, with_generic_parameter, WithGenericParameter, context);
39795        let proto_function_declaration_opt_0_built = ProtoFunctionDeclarationOpt {
39796            with_generic_parameter: Box::new(with_generic_parameter),
39797        };
39798        self.push(
39799            ASTType::ProtoFunctionDeclarationOpt(Some(proto_function_declaration_opt_0_built)),
39800            context,
39801        );
39802        Ok(())
39803    }
39804
39805    /// Semantic action for production 1110:
39806    ///
39807    /// `ProtoFunctionDeclarationOpt /* Option<T>::None */: ;`
39808    ///
39809    #[parol_runtime::function_name::named]
39810    fn proto_function_declaration_opt_1(&mut self) -> Result<()> {
39811        let context = function_name!();
39812        trace!("{}", self.trace_item_stack(context));
39813        self.push(ASTType::ProtoFunctionDeclarationOpt(None), context);
39814        Ok(())
39815    }
39816
39817    /// Semantic action for production 1111:
39818    ///
39819    /// `ProtoAliasDeclaration: Alias ProtoAliasDeclarationGroup Identifier Colon ScopedIdentifier Semicolon;`
39820    ///
39821    #[parol_runtime::function_name::named]
39822    fn proto_alias_declaration(
39823        &mut self,
39824        _alias: &ParseTreeType<'t>,
39825        _proto_alias_declaration_group: &ParseTreeType<'t>,
39826        _identifier: &ParseTreeType<'t>,
39827        _colon: &ParseTreeType<'t>,
39828        _scoped_identifier: &ParseTreeType<'t>,
39829        _semicolon: &ParseTreeType<'t>,
39830    ) -> Result<()> {
39831        let context = function_name!();
39832        trace!("{}", self.trace_item_stack(context));
39833        let semicolon = pop_item!(self, semicolon, Semicolon, context);
39834        let scoped_identifier = pop_item!(self, scoped_identifier, ScopedIdentifier, context);
39835        let colon = pop_item!(self, colon, Colon, context);
39836        let identifier = pop_item!(self, identifier, Identifier, context);
39837        let proto_alias_declaration_group = pop_item!(
39838            self,
39839            proto_alias_declaration_group,
39840            ProtoAliasDeclarationGroup,
39841            context
39842        );
39843        let alias = pop_item!(self, alias, Alias, context);
39844        let proto_alias_declaration_built = ProtoAliasDeclaration {
39845            alias: Box::new(alias),
39846            proto_alias_declaration_group: Box::new(proto_alias_declaration_group),
39847            identifier: Box::new(identifier),
39848            colon: Box::new(colon),
39849            scoped_identifier: Box::new(scoped_identifier),
39850            semicolon: Box::new(semicolon),
39851        };
39852        // Calling user action here
39853        self.user_grammar
39854            .proto_alias_declaration(&proto_alias_declaration_built)?;
39855        self.push(
39856            ASTType::ProtoAliasDeclaration(proto_alias_declaration_built),
39857            context,
39858        );
39859        Ok(())
39860    }
39861
39862    /// Semantic action for production 1112:
39863    ///
39864    /// `ProtoAliasDeclarationGroup: Module;`
39865    ///
39866    #[parol_runtime::function_name::named]
39867    fn proto_alias_declaration_group_0(&mut self, _module: &ParseTreeType<'t>) -> Result<()> {
39868        let context = function_name!();
39869        trace!("{}", self.trace_item_stack(context));
39870        let module = pop_item!(self, module, Module, context);
39871        let proto_alias_declaration_group_0_built = ProtoAliasDeclarationGroupModule {
39872            module: Box::new(module),
39873        };
39874        let proto_alias_declaration_group_0_built =
39875            ProtoAliasDeclarationGroup::Module(proto_alias_declaration_group_0_built);
39876        self.push(
39877            ASTType::ProtoAliasDeclarationGroup(proto_alias_declaration_group_0_built),
39878            context,
39879        );
39880        Ok(())
39881    }
39882
39883    /// Semantic action for production 1113:
39884    ///
39885    /// `ProtoAliasDeclarationGroup: Interface;`
39886    ///
39887    #[parol_runtime::function_name::named]
39888    fn proto_alias_declaration_group_1(&mut self, _interface: &ParseTreeType<'t>) -> Result<()> {
39889        let context = function_name!();
39890        trace!("{}", self.trace_item_stack(context));
39891        let interface = pop_item!(self, interface, Interface, context);
39892        let proto_alias_declaration_group_1_built = ProtoAliasDeclarationGroupInterface {
39893            interface: Box::new(interface),
39894        };
39895        let proto_alias_declaration_group_1_built =
39896            ProtoAliasDeclarationGroup::Interface(proto_alias_declaration_group_1_built);
39897        self.push(
39898            ASTType::ProtoAliasDeclarationGroup(proto_alias_declaration_group_1_built),
39899            context,
39900        );
39901        Ok(())
39902    }
39903
39904    /// Semantic action for production 1114:
39905    ///
39906    /// `ProtoAliasDeclarationGroup: Package;`
39907    ///
39908    #[parol_runtime::function_name::named]
39909    fn proto_alias_declaration_group_2(&mut self, _package: &ParseTreeType<'t>) -> Result<()> {
39910        let context = function_name!();
39911        trace!("{}", self.trace_item_stack(context));
39912        let package = pop_item!(self, package, Package, context);
39913        let proto_alias_declaration_group_2_built = ProtoAliasDeclarationGroupPackage {
39914            package: Box::new(package),
39915        };
39916        let proto_alias_declaration_group_2_built =
39917            ProtoAliasDeclarationGroup::Package(proto_alias_declaration_group_2_built);
39918        self.push(
39919            ASTType::ProtoAliasDeclarationGroup(proto_alias_declaration_group_2_built),
39920            context,
39921        );
39922        Ok(())
39923    }
39924
39925    /// Semantic action for production 1115:
39926    ///
39927    /// `EmbedDeclaration: Embed LParen Identifier RParen Identifier EmbedContent;`
39928    ///
39929    #[parol_runtime::function_name::named]
39930    fn embed_declaration(
39931        &mut self,
39932        _embed: &ParseTreeType<'t>,
39933        _l_paren: &ParseTreeType<'t>,
39934        _identifier: &ParseTreeType<'t>,
39935        _r_paren: &ParseTreeType<'t>,
39936        _identifier0: &ParseTreeType<'t>,
39937        _embed_content: &ParseTreeType<'t>,
39938    ) -> Result<()> {
39939        let context = function_name!();
39940        trace!("{}", self.trace_item_stack(context));
39941        let embed_content = pop_item!(self, embed_content, EmbedContent, context);
39942        let identifier0 = pop_item!(self, identifier0, Identifier, context);
39943        let r_paren = pop_item!(self, r_paren, RParen, context);
39944        let identifier = pop_item!(self, identifier, Identifier, context);
39945        let l_paren = pop_item!(self, l_paren, LParen, context);
39946        let embed = pop_item!(self, embed, Embed, context);
39947        let embed_declaration_built = EmbedDeclaration {
39948            embed: Box::new(embed),
39949            l_paren: Box::new(l_paren),
39950            identifier: Box::new(identifier),
39951            r_paren: Box::new(r_paren),
39952            identifier0: Box::new(identifier0),
39953            embed_content: Box::new(embed_content),
39954        };
39955        // Calling user action here
39956        self.user_grammar
39957            .embed_declaration(&embed_declaration_built)?;
39958        self.push(ASTType::EmbedDeclaration(embed_declaration_built), context);
39959        Ok(())
39960    }
39961
39962    /// Semantic action for production 1116:
39963    ///
39964    /// `EmbedContent: TripleLBrace EmbedContentList /* Vec */ TripleRBrace;`
39965    ///
39966    #[parol_runtime::function_name::named]
39967    fn embed_content(
39968        &mut self,
39969        _triple_l_brace: &ParseTreeType<'t>,
39970        _embed_content_list: &ParseTreeType<'t>,
39971        _triple_r_brace: &ParseTreeType<'t>,
39972    ) -> Result<()> {
39973        let context = function_name!();
39974        trace!("{}", self.trace_item_stack(context));
39975        let triple_r_brace = pop_item!(self, triple_r_brace, TripleRBrace, context);
39976        let embed_content_list =
39977            pop_and_reverse_item!(self, embed_content_list, EmbedContentList, context);
39978        let triple_l_brace = pop_item!(self, triple_l_brace, TripleLBrace, context);
39979        let embed_content_built = EmbedContent {
39980            triple_l_brace: Box::new(triple_l_brace),
39981            embed_content_list,
39982            triple_r_brace: Box::new(triple_r_brace),
39983        };
39984        // Calling user action here
39985        self.user_grammar.embed_content(&embed_content_built)?;
39986        self.push(ASTType::EmbedContent(embed_content_built), context);
39987        Ok(())
39988    }
39989
39990    /// Semantic action for production 1117:
39991    ///
39992    /// `EmbedContentList /* Vec<T>::Push */: EmbedItem EmbedContentList;`
39993    ///
39994    #[parol_runtime::function_name::named]
39995    fn embed_content_list_0(
39996        &mut self,
39997        _embed_item: &ParseTreeType<'t>,
39998        _embed_content_list: &ParseTreeType<'t>,
39999    ) -> Result<()> {
40000        let context = function_name!();
40001        trace!("{}", self.trace_item_stack(context));
40002        let mut embed_content_list = pop_item!(self, embed_content_list, EmbedContentList, context);
40003        let embed_item = pop_item!(self, embed_item, EmbedItem, context);
40004        let embed_content_list_0_built = EmbedContentList {
40005            embed_item: Box::new(embed_item),
40006        };
40007        // Add an element to the vector
40008        embed_content_list.push(embed_content_list_0_built);
40009        self.push(ASTType::EmbedContentList(embed_content_list), context);
40010        Ok(())
40011    }
40012
40013    /// Semantic action for production 1118:
40014    ///
40015    /// `EmbedContentList /* Vec<T>::New */: ;`
40016    ///
40017    #[parol_runtime::function_name::named]
40018    fn embed_content_list_1(&mut self) -> Result<()> {
40019        let context = function_name!();
40020        trace!("{}", self.trace_item_stack(context));
40021        let embed_content_list_1_built = Vec::new();
40022        self.push(
40023            ASTType::EmbedContentList(embed_content_list_1_built),
40024            context,
40025        );
40026        Ok(())
40027    }
40028
40029    /// Semantic action for production 1119:
40030    ///
40031    /// `EmbedScopedIdentifier: EscapedLBrace ScopedIdentifier EscapedRBrace;`
40032    ///
40033    #[parol_runtime::function_name::named]
40034    fn embed_scoped_identifier(
40035        &mut self,
40036        _escaped_l_brace: &ParseTreeType<'t>,
40037        _scoped_identifier: &ParseTreeType<'t>,
40038        _escaped_r_brace: &ParseTreeType<'t>,
40039    ) -> Result<()> {
40040        let context = function_name!();
40041        trace!("{}", self.trace_item_stack(context));
40042        let escaped_r_brace = pop_item!(self, escaped_r_brace, EscapedRBrace, context);
40043        let scoped_identifier = pop_item!(self, scoped_identifier, ScopedIdentifier, context);
40044        let escaped_l_brace = pop_item!(self, escaped_l_brace, EscapedLBrace, context);
40045        let embed_scoped_identifier_built = EmbedScopedIdentifier {
40046            escaped_l_brace: Box::new(escaped_l_brace),
40047            scoped_identifier: Box::new(scoped_identifier),
40048            escaped_r_brace: Box::new(escaped_r_brace),
40049        };
40050        // Calling user action here
40051        self.user_grammar
40052            .embed_scoped_identifier(&embed_scoped_identifier_built)?;
40053        self.push(
40054            ASTType::EmbedScopedIdentifier(embed_scoped_identifier_built),
40055            context,
40056        );
40057        Ok(())
40058    }
40059
40060    /// Semantic action for production 1120:
40061    ///
40062    /// `EmbedItem: EmbedLBrace EmbedItemList /* Vec */ EmbedRBrace;`
40063    ///
40064    #[parol_runtime::function_name::named]
40065    fn embed_item_0(
40066        &mut self,
40067        _embed_l_brace: &ParseTreeType<'t>,
40068        _embed_item_list: &ParseTreeType<'t>,
40069        _embed_r_brace: &ParseTreeType<'t>,
40070    ) -> Result<()> {
40071        let context = function_name!();
40072        trace!("{}", self.trace_item_stack(context));
40073        let embed_r_brace = pop_item!(self, embed_r_brace, EmbedRBrace, context);
40074        let embed_item_list = pop_and_reverse_item!(self, embed_item_list, EmbedItemList, context);
40075        let embed_l_brace = pop_item!(self, embed_l_brace, EmbedLBrace, context);
40076        let embed_item_0_built = EmbedItemEmbedLBraceEmbedItemListEmbedRBrace {
40077            embed_l_brace: Box::new(embed_l_brace),
40078            embed_item_list,
40079            embed_r_brace: Box::new(embed_r_brace),
40080        };
40081        let embed_item_0_built = EmbedItem::EmbedLBraceEmbedItemListEmbedRBrace(embed_item_0_built);
40082        // Calling user action here
40083        self.user_grammar.embed_item(&embed_item_0_built)?;
40084        self.push(ASTType::EmbedItem(embed_item_0_built), context);
40085        Ok(())
40086    }
40087
40088    /// Semantic action for production 1121:
40089    ///
40090    /// `EmbedItemList /* Vec<T>::Push */: EmbedItem EmbedItemList;`
40091    ///
40092    #[parol_runtime::function_name::named]
40093    fn embed_item_list_0(
40094        &mut self,
40095        _embed_item: &ParseTreeType<'t>,
40096        _embed_item_list: &ParseTreeType<'t>,
40097    ) -> Result<()> {
40098        let context = function_name!();
40099        trace!("{}", self.trace_item_stack(context));
40100        let mut embed_item_list = pop_item!(self, embed_item_list, EmbedItemList, context);
40101        let embed_item = pop_item!(self, embed_item, EmbedItem, context);
40102        let embed_item_list_0_built = EmbedItemList {
40103            embed_item: Box::new(embed_item),
40104        };
40105        // Add an element to the vector
40106        embed_item_list.push(embed_item_list_0_built);
40107        self.push(ASTType::EmbedItemList(embed_item_list), context);
40108        Ok(())
40109    }
40110
40111    /// Semantic action for production 1122:
40112    ///
40113    /// `EmbedItemList /* Vec<T>::New */: ;`
40114    ///
40115    #[parol_runtime::function_name::named]
40116    fn embed_item_list_1(&mut self) -> Result<()> {
40117        let context = function_name!();
40118        trace!("{}", self.trace_item_stack(context));
40119        let embed_item_list_1_built = Vec::new();
40120        self.push(ASTType::EmbedItemList(embed_item_list_1_built), context);
40121        Ok(())
40122    }
40123
40124    /// Semantic action for production 1123:
40125    ///
40126    /// `EmbedItem: EmbedScopedIdentifier;`
40127    ///
40128    #[parol_runtime::function_name::named]
40129    fn embed_item_1(&mut self, _embed_scoped_identifier: &ParseTreeType<'t>) -> Result<()> {
40130        let context = function_name!();
40131        trace!("{}", self.trace_item_stack(context));
40132        let embed_scoped_identifier = pop_item!(
40133            self,
40134            embed_scoped_identifier,
40135            EmbedScopedIdentifier,
40136            context
40137        );
40138        let embed_item_1_built = EmbedItemEmbedScopedIdentifier {
40139            embed_scoped_identifier: Box::new(embed_scoped_identifier),
40140        };
40141        let embed_item_1_built = EmbedItem::EmbedScopedIdentifier(embed_item_1_built);
40142        // Calling user action here
40143        self.user_grammar.embed_item(&embed_item_1_built)?;
40144        self.push(ASTType::EmbedItem(embed_item_1_built), context);
40145        Ok(())
40146    }
40147
40148    /// Semantic action for production 1124:
40149    ///
40150    /// `EmbedItem: Any;`
40151    ///
40152    #[parol_runtime::function_name::named]
40153    fn embed_item_2(&mut self, _any: &ParseTreeType<'t>) -> Result<()> {
40154        let context = function_name!();
40155        trace!("{}", self.trace_item_stack(context));
40156        let any = pop_item!(self, any, Any, context);
40157        let embed_item_2_built = EmbedItemAny { any: Box::new(any) };
40158        let embed_item_2_built = EmbedItem::Any(embed_item_2_built);
40159        // Calling user action here
40160        self.user_grammar.embed_item(&embed_item_2_built)?;
40161        self.push(ASTType::EmbedItem(embed_item_2_built), context);
40162        Ok(())
40163    }
40164
40165    /// Semantic action for production 1125:
40166    ///
40167    /// `IncludeDeclaration: Include LParen Identifier Comma StringLiteral RParen Semicolon;`
40168    ///
40169    #[parol_runtime::function_name::named]
40170    fn include_declaration(
40171        &mut self,
40172        _include: &ParseTreeType<'t>,
40173        _l_paren: &ParseTreeType<'t>,
40174        _identifier: &ParseTreeType<'t>,
40175        _comma: &ParseTreeType<'t>,
40176        _string_literal: &ParseTreeType<'t>,
40177        _r_paren: &ParseTreeType<'t>,
40178        _semicolon: &ParseTreeType<'t>,
40179    ) -> Result<()> {
40180        let context = function_name!();
40181        trace!("{}", self.trace_item_stack(context));
40182        let semicolon = pop_item!(self, semicolon, Semicolon, context);
40183        let r_paren = pop_item!(self, r_paren, RParen, context);
40184        let string_literal = pop_item!(self, string_literal, StringLiteral, context);
40185        let comma = pop_item!(self, comma, Comma, context);
40186        let identifier = pop_item!(self, identifier, Identifier, context);
40187        let l_paren = pop_item!(self, l_paren, LParen, context);
40188        let include = pop_item!(self, include, Include, context);
40189        let include_declaration_built = IncludeDeclaration {
40190            include: Box::new(include),
40191            l_paren: Box::new(l_paren),
40192            identifier: Box::new(identifier),
40193            comma: Box::new(comma),
40194            string_literal: Box::new(string_literal),
40195            r_paren: Box::new(r_paren),
40196            semicolon: Box::new(semicolon),
40197        };
40198        // Calling user action here
40199        self.user_grammar
40200            .include_declaration(&include_declaration_built)?;
40201        self.push(
40202            ASTType::IncludeDeclaration(include_declaration_built),
40203            context,
40204        );
40205        Ok(())
40206    }
40207
40208    /// Semantic action for production 1126:
40209    ///
40210    /// `DescriptionGroup: DescriptionGroupList /* Vec */ DescriptionGroupGroup;`
40211    ///
40212    #[parol_runtime::function_name::named]
40213    fn description_group(
40214        &mut self,
40215        _description_group_list: &ParseTreeType<'t>,
40216        _description_group_group: &ParseTreeType<'t>,
40217    ) -> Result<()> {
40218        let context = function_name!();
40219        trace!("{}", self.trace_item_stack(context));
40220        let description_group_group = pop_item!(
40221            self,
40222            description_group_group,
40223            DescriptionGroupGroup,
40224            context
40225        );
40226        let description_group_list =
40227            pop_and_reverse_item!(self, description_group_list, DescriptionGroupList, context);
40228        let description_group_built = DescriptionGroup {
40229            description_group_list,
40230            description_group_group: Box::new(description_group_group),
40231        };
40232        // Calling user action here
40233        self.user_grammar
40234            .description_group(&description_group_built)?;
40235        self.push(ASTType::DescriptionGroup(description_group_built), context);
40236        Ok(())
40237    }
40238
40239    /// Semantic action for production 1127:
40240    ///
40241    /// `DescriptionGroupGroup: LBrace DescriptionGroupGroupList /* Vec */ RBrace;`
40242    ///
40243    #[parol_runtime::function_name::named]
40244    fn description_group_group_0(
40245        &mut self,
40246        _l_brace: &ParseTreeType<'t>,
40247        _description_group_group_list: &ParseTreeType<'t>,
40248        _r_brace: &ParseTreeType<'t>,
40249    ) -> Result<()> {
40250        let context = function_name!();
40251        trace!("{}", self.trace_item_stack(context));
40252        let r_brace = pop_item!(self, r_brace, RBrace, context);
40253        let description_group_group_list = pop_and_reverse_item!(
40254            self,
40255            description_group_group_list,
40256            DescriptionGroupGroupList,
40257            context
40258        );
40259        let l_brace = pop_item!(self, l_brace, LBrace, context);
40260        let description_group_group_0_built =
40261            DescriptionGroupGroupLBraceDescriptionGroupGroupListRBrace {
40262                l_brace: Box::new(l_brace),
40263                description_group_group_list,
40264                r_brace: Box::new(r_brace),
40265            };
40266        let description_group_group_0_built =
40267            DescriptionGroupGroup::LBraceDescriptionGroupGroupListRBrace(
40268                description_group_group_0_built,
40269            );
40270        self.push(
40271            ASTType::DescriptionGroupGroup(description_group_group_0_built),
40272            context,
40273        );
40274        Ok(())
40275    }
40276
40277    /// Semantic action for production 1128:
40278    ///
40279    /// `DescriptionGroupGroupList /* Vec<T>::Push */: DescriptionGroup DescriptionGroupGroupList;`
40280    ///
40281    #[parol_runtime::function_name::named]
40282    fn description_group_group_list_0(
40283        &mut self,
40284        _description_group: &ParseTreeType<'t>,
40285        _description_group_group_list: &ParseTreeType<'t>,
40286    ) -> Result<()> {
40287        let context = function_name!();
40288        trace!("{}", self.trace_item_stack(context));
40289        let mut description_group_group_list = pop_item!(
40290            self,
40291            description_group_group_list,
40292            DescriptionGroupGroupList,
40293            context
40294        );
40295        let description_group = pop_item!(self, description_group, DescriptionGroup, context);
40296        let description_group_group_list_0_built = DescriptionGroupGroupList {
40297            description_group: Box::new(description_group),
40298        };
40299        // Add an element to the vector
40300        description_group_group_list.push(description_group_group_list_0_built);
40301        self.push(
40302            ASTType::DescriptionGroupGroupList(description_group_group_list),
40303            context,
40304        );
40305        Ok(())
40306    }
40307
40308    /// Semantic action for production 1129:
40309    ///
40310    /// `DescriptionGroupGroupList /* Vec<T>::New */: ;`
40311    ///
40312    #[parol_runtime::function_name::named]
40313    fn description_group_group_list_1(&mut self) -> Result<()> {
40314        let context = function_name!();
40315        trace!("{}", self.trace_item_stack(context));
40316        let description_group_group_list_1_built = Vec::new();
40317        self.push(
40318            ASTType::DescriptionGroupGroupList(description_group_group_list_1_built),
40319            context,
40320        );
40321        Ok(())
40322    }
40323
40324    /// Semantic action for production 1130:
40325    ///
40326    /// `DescriptionGroupGroup: DescriptionItem;`
40327    ///
40328    #[parol_runtime::function_name::named]
40329    fn description_group_group_1(&mut self, _description_item: &ParseTreeType<'t>) -> Result<()> {
40330        let context = function_name!();
40331        trace!("{}", self.trace_item_stack(context));
40332        let description_item = pop_item!(self, description_item, DescriptionItem, context);
40333        let description_group_group_1_built = DescriptionGroupGroupDescriptionItem {
40334            description_item: Box::new(description_item),
40335        };
40336        let description_group_group_1_built =
40337            DescriptionGroupGroup::DescriptionItem(description_group_group_1_built);
40338        self.push(
40339            ASTType::DescriptionGroupGroup(description_group_group_1_built),
40340            context,
40341        );
40342        Ok(())
40343    }
40344
40345    /// Semantic action for production 1131:
40346    ///
40347    /// `DescriptionGroupList /* Vec<T>::Push */: Attribute DescriptionGroupList;`
40348    ///
40349    #[parol_runtime::function_name::named]
40350    fn description_group_list_0(
40351        &mut self,
40352        _attribute: &ParseTreeType<'t>,
40353        _description_group_list: &ParseTreeType<'t>,
40354    ) -> Result<()> {
40355        let context = function_name!();
40356        trace!("{}", self.trace_item_stack(context));
40357        let mut description_group_list =
40358            pop_item!(self, description_group_list, DescriptionGroupList, context);
40359        let attribute = pop_item!(self, attribute, Attribute, context);
40360        let description_group_list_0_built = DescriptionGroupList {
40361            attribute: Box::new(attribute),
40362        };
40363        // Add an element to the vector
40364        description_group_list.push(description_group_list_0_built);
40365        self.push(
40366            ASTType::DescriptionGroupList(description_group_list),
40367            context,
40368        );
40369        Ok(())
40370    }
40371
40372    /// Semantic action for production 1132:
40373    ///
40374    /// `DescriptionGroupList /* Vec<T>::New */: ;`
40375    ///
40376    #[parol_runtime::function_name::named]
40377    fn description_group_list_1(&mut self) -> Result<()> {
40378        let context = function_name!();
40379        trace!("{}", self.trace_item_stack(context));
40380        let description_group_list_1_built = Vec::new();
40381        self.push(
40382            ASTType::DescriptionGroupList(description_group_list_1_built),
40383            context,
40384        );
40385        Ok(())
40386    }
40387
40388    /// Semantic action for production 1133:
40389    ///
40390    /// `DescriptionItem: DescriptionItemOpt /* Option */ PublicDescriptionItem;`
40391    ///
40392    #[parol_runtime::function_name::named]
40393    fn description_item_0(
40394        &mut self,
40395        _description_item_opt: &ParseTreeType<'t>,
40396        _public_description_item: &ParseTreeType<'t>,
40397    ) -> Result<()> {
40398        let context = function_name!();
40399        trace!("{}", self.trace_item_stack(context));
40400        let public_description_item = pop_item!(
40401            self,
40402            public_description_item,
40403            PublicDescriptionItem,
40404            context
40405        );
40406        let description_item_opt =
40407            pop_item!(self, description_item_opt, DescriptionItemOpt, context);
40408        let description_item_0_built = DescriptionItemDescriptionItemOptPublicDescriptionItem {
40409            description_item_opt,
40410            public_description_item: Box::new(public_description_item),
40411        };
40412        let description_item_0_built =
40413            DescriptionItem::DescriptionItemOptPublicDescriptionItem(description_item_0_built);
40414        // Calling user action here
40415        self.user_grammar
40416            .description_item(&description_item_0_built)?;
40417        self.push(ASTType::DescriptionItem(description_item_0_built), context);
40418        Ok(())
40419    }
40420
40421    /// Semantic action for production 1134:
40422    ///
40423    /// `DescriptionItem: ImportDeclaration;`
40424    ///
40425    #[parol_runtime::function_name::named]
40426    fn description_item_1(&mut self, _import_declaration: &ParseTreeType<'t>) -> Result<()> {
40427        let context = function_name!();
40428        trace!("{}", self.trace_item_stack(context));
40429        let import_declaration = pop_item!(self, import_declaration, ImportDeclaration, context);
40430        let description_item_1_built = DescriptionItemImportDeclaration {
40431            import_declaration: Box::new(import_declaration),
40432        };
40433        let description_item_1_built = DescriptionItem::ImportDeclaration(description_item_1_built);
40434        // Calling user action here
40435        self.user_grammar
40436            .description_item(&description_item_1_built)?;
40437        self.push(ASTType::DescriptionItem(description_item_1_built), context);
40438        Ok(())
40439    }
40440
40441    /// Semantic action for production 1135:
40442    ///
40443    /// `DescriptionItem: BindDeclaration;`
40444    ///
40445    #[parol_runtime::function_name::named]
40446    fn description_item_2(&mut self, _bind_declaration: &ParseTreeType<'t>) -> Result<()> {
40447        let context = function_name!();
40448        trace!("{}", self.trace_item_stack(context));
40449        let bind_declaration = pop_item!(self, bind_declaration, BindDeclaration, context);
40450        let description_item_2_built = DescriptionItemBindDeclaration {
40451            bind_declaration: Box::new(bind_declaration),
40452        };
40453        let description_item_2_built = DescriptionItem::BindDeclaration(description_item_2_built);
40454        // Calling user action here
40455        self.user_grammar
40456            .description_item(&description_item_2_built)?;
40457        self.push(ASTType::DescriptionItem(description_item_2_built), context);
40458        Ok(())
40459    }
40460
40461    /// Semantic action for production 1136:
40462    ///
40463    /// `DescriptionItem: EmbedDeclaration;`
40464    ///
40465    #[parol_runtime::function_name::named]
40466    fn description_item_3(&mut self, _embed_declaration: &ParseTreeType<'t>) -> Result<()> {
40467        let context = function_name!();
40468        trace!("{}", self.trace_item_stack(context));
40469        let embed_declaration = pop_item!(self, embed_declaration, EmbedDeclaration, context);
40470        let description_item_3_built = DescriptionItemEmbedDeclaration {
40471            embed_declaration: Box::new(embed_declaration),
40472        };
40473        let description_item_3_built = DescriptionItem::EmbedDeclaration(description_item_3_built);
40474        // Calling user action here
40475        self.user_grammar
40476            .description_item(&description_item_3_built)?;
40477        self.push(ASTType::DescriptionItem(description_item_3_built), context);
40478        Ok(())
40479    }
40480
40481    /// Semantic action for production 1137:
40482    ///
40483    /// `DescriptionItem: IncludeDeclaration;`
40484    ///
40485    #[parol_runtime::function_name::named]
40486    fn description_item_4(&mut self, _include_declaration: &ParseTreeType<'t>) -> Result<()> {
40487        let context = function_name!();
40488        trace!("{}", self.trace_item_stack(context));
40489        let include_declaration = pop_item!(self, include_declaration, IncludeDeclaration, context);
40490        let description_item_4_built = DescriptionItemIncludeDeclaration {
40491            include_declaration: Box::new(include_declaration),
40492        };
40493        let description_item_4_built =
40494            DescriptionItem::IncludeDeclaration(description_item_4_built);
40495        // Calling user action here
40496        self.user_grammar
40497            .description_item(&description_item_4_built)?;
40498        self.push(ASTType::DescriptionItem(description_item_4_built), context);
40499        Ok(())
40500    }
40501
40502    /// Semantic action for production 1138:
40503    ///
40504    /// `DescriptionItemOpt /* Option<T>::Some */: Pub;`
40505    ///
40506    #[parol_runtime::function_name::named]
40507    fn description_item_opt_0(&mut self, _pub: &ParseTreeType<'t>) -> Result<()> {
40508        let context = function_name!();
40509        trace!("{}", self.trace_item_stack(context));
40510        let r#pub = pop_item!(self, r#pub, Pub, context);
40511        let description_item_opt_0_built = DescriptionItemOpt {
40512            r#pub: Box::new(r#pub),
40513        };
40514        self.push(
40515            ASTType::DescriptionItemOpt(Some(description_item_opt_0_built)),
40516            context,
40517        );
40518        Ok(())
40519    }
40520
40521    /// Semantic action for production 1139:
40522    ///
40523    /// `DescriptionItemOpt /* Option<T>::None */: ;`
40524    ///
40525    #[parol_runtime::function_name::named]
40526    fn description_item_opt_1(&mut self) -> Result<()> {
40527        let context = function_name!();
40528        trace!("{}", self.trace_item_stack(context));
40529        self.push(ASTType::DescriptionItemOpt(None), context);
40530        Ok(())
40531    }
40532
40533    /// Semantic action for production 1140:
40534    ///
40535    /// `PublicDescriptionItem: ModuleDeclaration;`
40536    ///
40537    #[parol_runtime::function_name::named]
40538    fn public_description_item_0(&mut self, _module_declaration: &ParseTreeType<'t>) -> Result<()> {
40539        let context = function_name!();
40540        trace!("{}", self.trace_item_stack(context));
40541        let module_declaration = pop_item!(self, module_declaration, ModuleDeclaration, context);
40542        let public_description_item_0_built = PublicDescriptionItemModuleDeclaration {
40543            module_declaration: Box::new(module_declaration),
40544        };
40545        let public_description_item_0_built =
40546            PublicDescriptionItem::ModuleDeclaration(public_description_item_0_built);
40547        // Calling user action here
40548        self.user_grammar
40549            .public_description_item(&public_description_item_0_built)?;
40550        self.push(
40551            ASTType::PublicDescriptionItem(public_description_item_0_built),
40552            context,
40553        );
40554        Ok(())
40555    }
40556
40557    /// Semantic action for production 1141:
40558    ///
40559    /// `PublicDescriptionItem: InterfaceDeclaration;`
40560    ///
40561    #[parol_runtime::function_name::named]
40562    fn public_description_item_1(
40563        &mut self,
40564        _interface_declaration: &ParseTreeType<'t>,
40565    ) -> Result<()> {
40566        let context = function_name!();
40567        trace!("{}", self.trace_item_stack(context));
40568        let interface_declaration =
40569            pop_item!(self, interface_declaration, InterfaceDeclaration, context);
40570        let public_description_item_1_built = PublicDescriptionItemInterfaceDeclaration {
40571            interface_declaration: Box::new(interface_declaration),
40572        };
40573        let public_description_item_1_built =
40574            PublicDescriptionItem::InterfaceDeclaration(public_description_item_1_built);
40575        // Calling user action here
40576        self.user_grammar
40577            .public_description_item(&public_description_item_1_built)?;
40578        self.push(
40579            ASTType::PublicDescriptionItem(public_description_item_1_built),
40580            context,
40581        );
40582        Ok(())
40583    }
40584
40585    /// Semantic action for production 1142:
40586    ///
40587    /// `PublicDescriptionItem: PackageDeclaration;`
40588    ///
40589    #[parol_runtime::function_name::named]
40590    fn public_description_item_2(
40591        &mut self,
40592        _package_declaration: &ParseTreeType<'t>,
40593    ) -> Result<()> {
40594        let context = function_name!();
40595        trace!("{}", self.trace_item_stack(context));
40596        let package_declaration = pop_item!(self, package_declaration, PackageDeclaration, context);
40597        let public_description_item_2_built = PublicDescriptionItemPackageDeclaration {
40598            package_declaration: Box::new(package_declaration),
40599        };
40600        let public_description_item_2_built =
40601            PublicDescriptionItem::PackageDeclaration(public_description_item_2_built);
40602        // Calling user action here
40603        self.user_grammar
40604            .public_description_item(&public_description_item_2_built)?;
40605        self.push(
40606            ASTType::PublicDescriptionItem(public_description_item_2_built),
40607            context,
40608        );
40609        Ok(())
40610    }
40611
40612    /// Semantic action for production 1143:
40613    ///
40614    /// `PublicDescriptionItem: AliasDeclaration;`
40615    ///
40616    #[parol_runtime::function_name::named]
40617    fn public_description_item_3(&mut self, _alias_declaration: &ParseTreeType<'t>) -> Result<()> {
40618        let context = function_name!();
40619        trace!("{}", self.trace_item_stack(context));
40620        let alias_declaration = pop_item!(self, alias_declaration, AliasDeclaration, context);
40621        let public_description_item_3_built = PublicDescriptionItemAliasDeclaration {
40622            alias_declaration: Box::new(alias_declaration),
40623        };
40624        let public_description_item_3_built =
40625            PublicDescriptionItem::AliasDeclaration(public_description_item_3_built);
40626        // Calling user action here
40627        self.user_grammar
40628            .public_description_item(&public_description_item_3_built)?;
40629        self.push(
40630            ASTType::PublicDescriptionItem(public_description_item_3_built),
40631            context,
40632        );
40633        Ok(())
40634    }
40635
40636    /// Semantic action for production 1144:
40637    ///
40638    /// `PublicDescriptionItem: ProtoDeclaration;`
40639    ///
40640    #[parol_runtime::function_name::named]
40641    fn public_description_item_4(&mut self, _proto_declaration: &ParseTreeType<'t>) -> Result<()> {
40642        let context = function_name!();
40643        trace!("{}", self.trace_item_stack(context));
40644        let proto_declaration = pop_item!(self, proto_declaration, ProtoDeclaration, context);
40645        let public_description_item_4_built = PublicDescriptionItemProtoDeclaration {
40646            proto_declaration: Box::new(proto_declaration),
40647        };
40648        let public_description_item_4_built =
40649            PublicDescriptionItem::ProtoDeclaration(public_description_item_4_built);
40650        // Calling user action here
40651        self.user_grammar
40652            .public_description_item(&public_description_item_4_built)?;
40653        self.push(
40654            ASTType::PublicDescriptionItem(public_description_item_4_built),
40655            context,
40656        );
40657        Ok(())
40658    }
40659
40660    /// Semantic action for production 1145:
40661    ///
40662    /// `PublicDescriptionItem: FunctionDeclaration;`
40663    ///
40664    #[parol_runtime::function_name::named]
40665    fn public_description_item_5(
40666        &mut self,
40667        _function_declaration: &ParseTreeType<'t>,
40668    ) -> Result<()> {
40669        let context = function_name!();
40670        trace!("{}", self.trace_item_stack(context));
40671        let function_declaration =
40672            pop_item!(self, function_declaration, FunctionDeclaration, context);
40673        let public_description_item_5_built = PublicDescriptionItemFunctionDeclaration {
40674            function_declaration: Box::new(function_declaration),
40675        };
40676        let public_description_item_5_built =
40677            PublicDescriptionItem::FunctionDeclaration(public_description_item_5_built);
40678        // Calling user action here
40679        self.user_grammar
40680            .public_description_item(&public_description_item_5_built)?;
40681        self.push(
40682            ASTType::PublicDescriptionItem(public_description_item_5_built),
40683            context,
40684        );
40685        Ok(())
40686    }
40687
40688    /// Semantic action for production 1146:
40689    ///
40690    /// `Veryl: Start VerylList /* Vec */;`
40691    ///
40692    #[parol_runtime::function_name::named]
40693    fn veryl(&mut self, _start: &ParseTreeType<'t>, _veryl_list: &ParseTreeType<'t>) -> Result<()> {
40694        let context = function_name!();
40695        trace!("{}", self.trace_item_stack(context));
40696        let veryl_list = pop_and_reverse_item!(self, veryl_list, VerylList, context);
40697        let start = pop_item!(self, start, Start, context);
40698        let veryl_built = Veryl {
40699            start: Box::new(start),
40700            veryl_list,
40701        };
40702        // Calling user action here
40703        self.user_grammar.veryl(&veryl_built)?;
40704        self.push(ASTType::Veryl(veryl_built), context);
40705        Ok(())
40706    }
40707
40708    /// Semantic action for production 1147:
40709    ///
40710    /// `VerylList /* Vec<T>::Push */: DescriptionGroup VerylList;`
40711    ///
40712    #[parol_runtime::function_name::named]
40713    fn veryl_list_0(
40714        &mut self,
40715        _description_group: &ParseTreeType<'t>,
40716        _veryl_list: &ParseTreeType<'t>,
40717    ) -> Result<()> {
40718        let context = function_name!();
40719        trace!("{}", self.trace_item_stack(context));
40720        let mut veryl_list = pop_item!(self, veryl_list, VerylList, context);
40721        let description_group = pop_item!(self, description_group, DescriptionGroup, context);
40722        let veryl_list_0_built = VerylList {
40723            description_group: Box::new(description_group),
40724        };
40725        // Add an element to the vector
40726        veryl_list.push(veryl_list_0_built);
40727        self.push(ASTType::VerylList(veryl_list), context);
40728        Ok(())
40729    }
40730
40731    /// Semantic action for production 1148:
40732    ///
40733    /// `VerylList /* Vec<T>::New */: ;`
40734    ///
40735    #[parol_runtime::function_name::named]
40736    fn veryl_list_1(&mut self) -> Result<()> {
40737        let context = function_name!();
40738        trace!("{}", self.trace_item_stack(context));
40739        let veryl_list_1_built = Vec::new();
40740        self.push(ASTType::VerylList(veryl_list_1_built), context);
40741        Ok(())
40742    }
40743}
40744
40745impl<'t> UserActionsTrait<'t> for VerylGrammarAuto<'t, '_> {
40746    ///
40747    /// This function is implemented automatically for the user's item VerylGrammar.
40748    ///
40749    fn call_semantic_action_for_production_number(
40750        &mut self,
40751        prod_num: usize,
40752        children: &[ParseTreeType<'t>],
40753    ) -> Result<()> {
40754        match prod_num {
40755            0 => self.comments_term(&children[0]),
40756            1 => self.string_literal_term(&children[0]),
40757            2 => self.exponent_term(&children[0]),
40758            3 => self.fixed_point_term(&children[0]),
40759            4 => self.based_term(&children[0]),
40760            5 => self.all_bit_term(&children[0]),
40761            6 => self.base_less_term(&children[0]),
40762            7 => self.minus_colon_term(&children[0]),
40763            8 => self.minus_g_t_term(&children[0]),
40764            9 => self.l_t_minus_term(&children[0]),
40765            10 => self.plus_colon_term(&children[0]),
40766            11 => self.assignment_operator_term(&children[0]),
40767            12 => self.diamond_operator_term(&children[0]),
40768            13 => self.operator08_term(&children[0]),
40769            14 => self.operator07_term(&children[0]),
40770            15 => self.operator06_term(&children[0]),
40771            16 => self.operator02_term(&children[0]),
40772            17 => self.operator01_term(&children[0]),
40773            18 => self.operator05_term(&children[0]),
40774            19 => self.operator04_term(&children[0]),
40775            20 => self.operator03_term(&children[0]),
40776            21 => self.unary_operator_term(&children[0]),
40777            22 => self.colon_colon_l_angle_term(&children[0]),
40778            23 => self.colon_colon_term(&children[0]),
40779            24 => self.colon_term(&children[0]),
40780            25 => self.comma_term(&children[0]),
40781            26 => self.dot_dot_equ_term(&children[0]),
40782            27 => self.dot_dot_term(&children[0]),
40783            28 => self.dot_term(&children[0]),
40784            29 => self.equ_term(&children[0]),
40785            30 => self.hash_l_bracket_term(&children[0]),
40786            31 => self.hash_term(&children[0]),
40787            32 => self.l_angle_term(&children[0]),
40788            33 => self.question_term(&children[0]),
40789            34 => self.quote_l_brace_term(&children[0]),
40790            35 => self.quote_term(&children[0]),
40791            36 => self.escaped_l_brace_term(&children[0]),
40792            37 => self.triple_l_brace_term(&children[0]),
40793            38 => self.l_brace_term(&children[0]),
40794            39 => self.l_bracket_term(&children[0]),
40795            40 => self.l_paren_term(&children[0]),
40796            41 => self.r_angle_term(&children[0]),
40797            42 => self.escaped_r_brace_term(&children[0]),
40798            43 => self.triple_r_brace_term(&children[0]),
40799            44 => self.r_brace_term(&children[0]),
40800            45 => self.r_bracket_term(&children[0]),
40801            46 => self.r_paren_term(&children[0]),
40802            47 => self.semicolon_term(&children[0]),
40803            48 => self.star_term(&children[0]),
40804            49 => self.alias_term(&children[0]),
40805            50 => self.always_comb_term(&children[0]),
40806            51 => self.always_ff_term(&children[0]),
40807            52 => self.assign_term(&children[0]),
40808            53 => self.as_term(&children[0]),
40809            54 => self.bind_term(&children[0]),
40810            55 => self.bit_term(&children[0]),
40811            56 => self.block_term(&children[0]),
40812            57 => self.b_bool_term(&children[0]),
40813            58 => self.l_bool_term(&children[0]),
40814            59 => self.case_term(&children[0]),
40815            60 => self.clock_term(&children[0]),
40816            61 => self.clock_posedge_term(&children[0]),
40817            62 => self.clock_negedge_term(&children[0]),
40818            63 => self.connect_term(&children[0]),
40819            64 => self.const_term(&children[0]),
40820            65 => self.converse_term(&children[0]),
40821            66 => self.default_term(&children[0]),
40822            67 => self.else_term(&children[0]),
40823            68 => self.embed_term(&children[0]),
40824            69 => self.enum_term(&children[0]),
40825            70 => self.f32_term(&children[0]),
40826            71 => self.f64_term(&children[0]),
40827            72 => self.false_term(&children[0]),
40828            73 => self.final_term(&children[0]),
40829            74 => self.for_term(&children[0]),
40830            75 => self.function_term(&children[0]),
40831            76 => self.i8_term(&children[0]),
40832            77 => self.i16_term(&children[0]),
40833            78 => self.i32_term(&children[0]),
40834            79 => self.i64_term(&children[0]),
40835            80 => self.if_reset_term(&children[0]),
40836            81 => self.if_term(&children[0]),
40837            82 => self.import_term(&children[0]),
40838            83 => self.include_term(&children[0]),
40839            84 => self.initial_term(&children[0]),
40840            85 => self.inout_term(&children[0]),
40841            86 => self.input_term(&children[0]),
40842            87 => self.inside_term(&children[0]),
40843            88 => self.inst_term(&children[0]),
40844            89 => self.interface_term(&children[0]),
40845            90 => self.in_term(&children[0]),
40846            91 => self.let_term(&children[0]),
40847            92 => self.logic_term(&children[0]),
40848            93 => self.lsb_term(&children[0]),
40849            94 => self.modport_term(&children[0]),
40850            95 => self.module_term(&children[0]),
40851            96 => self.msb_term(&children[0]),
40852            97 => self.output_term(&children[0]),
40853            98 => self.outside_term(&children[0]),
40854            99 => self.package_term(&children[0]),
40855            100 => self.param_term(&children[0]),
40856            101 => self.proto_term(&children[0]),
40857            102 => self.pub_term(&children[0]),
40858            103 => self.repeat_term(&children[0]),
40859            104 => self.reset_term(&children[0]),
40860            105 => self.reset_async_high_term(&children[0]),
40861            106 => self.reset_async_low_term(&children[0]),
40862            107 => self.reset_sync_high_term(&children[0]),
40863            108 => self.reset_sync_low_term(&children[0]),
40864            109 => self.return_term(&children[0]),
40865            110 => self.rev_term(&children[0]),
40866            111 => self.break_term(&children[0]),
40867            112 => self.same_term(&children[0]),
40868            113 => self.signed_term(&children[0]),
40869            114 => self.step_term(&children[0]),
40870            115 => self.string_term(&children[0]),
40871            116 => self.struct_term(&children[0]),
40872            117 => self.switch_term(&children[0]),
40873            118 => self.tri_term(&children[0]),
40874            119 => self.true_term(&children[0]),
40875            120 => self.type_term(&children[0]),
40876            121 => self.p8_term(&children[0]),
40877            122 => self.p16_term(&children[0]),
40878            123 => self.p32_term(&children[0]),
40879            124 => self.p64_term(&children[0]),
40880            125 => self.u8_term(&children[0]),
40881            126 => self.u16_term(&children[0]),
40882            127 => self.u32_term(&children[0]),
40883            128 => self.u64_term(&children[0]),
40884            129 => self.union_term(&children[0]),
40885            130 => self.unsafe_term(&children[0]),
40886            131 => self.var_term(&children[0]),
40887            132 => self.dollar_identifier_term(&children[0]),
40888            133 => self.identifier_term(&children[0]),
40889            134 => self.any_term(&children[0]),
40890            135 => self.comments(&children[0]),
40891            136 => self.comments_opt_0(&children[0]),
40892            137 => self.comments_opt_1(),
40893            138 => self.start_token(&children[0]),
40894            139 => self.string_literal_token(&children[0], &children[1]),
40895            140 => self.exponent_token(&children[0], &children[1]),
40896            141 => self.fixed_point_token(&children[0], &children[1]),
40897            142 => self.based_token(&children[0], &children[1]),
40898            143 => self.base_less_token(&children[0], &children[1]),
40899            144 => self.all_bit_token(&children[0], &children[1]),
40900            145 => self.assignment_operator_token(&children[0], &children[1]),
40901            146 => self.diamond_operator_token(&children[0], &children[1]),
40902            147 => self.operator01_token(&children[0], &children[1]),
40903            148 => self.operator02_token(&children[0], &children[1]),
40904            149 => self.operator03_token(&children[0], &children[1]),
40905            150 => self.operator04_token(&children[0], &children[1]),
40906            151 => self.operator05_token(&children[0], &children[1]),
40907            152 => self.operator06_token(&children[0], &children[1]),
40908            153 => self.operator07_token(&children[0], &children[1]),
40909            154 => self.operator08_token(&children[0], &children[1]),
40910            155 => self.unary_operator_token(&children[0], &children[1]),
40911            156 => self.colon_token(&children[0], &children[1]),
40912            157 => self.colon_colon_l_angle_token(&children[0], &children[1]),
40913            158 => self.colon_colon_token(&children[0], &children[1]),
40914            159 => self.comma_token(&children[0], &children[1]),
40915            160 => self.dot_dot_token(&children[0], &children[1]),
40916            161 => self.dot_dot_equ_token(&children[0], &children[1]),
40917            162 => self.dot_token(&children[0], &children[1]),
40918            163 => self.equ_token(&children[0], &children[1]),
40919            164 => self.hash_l_bracket_token(&children[0], &children[1]),
40920            165 => self.hash_token(&children[0], &children[1]),
40921            166 => self.question_token(&children[0], &children[1]),
40922            167 => self.quote_l_brace_token(&children[0], &children[1]),
40923            168 => self.quote_token(&children[0], &children[1]),
40924            169 => self.l_angle_token(&children[0], &children[1]),
40925            170 => self.embed_l_brace_token(&children[0]),
40926            171 => self.escaped_l_brace_token(&children[0]),
40927            172 => self.triple_l_brace_token(&children[0]),
40928            173 => self.l_brace_token(&children[0], &children[1]),
40929            174 => self.l_bracket_token(&children[0], &children[1]),
40930            175 => self.l_paren_token(&children[0], &children[1]),
40931            176 => self.l_t_minus_token(&children[0], &children[1]),
40932            177 => self.minus_colon_token(&children[0], &children[1]),
40933            178 => self.minus_g_t_token(&children[0], &children[1]),
40934            179 => self.plus_colon_token(&children[0], &children[1]),
40935            180 => self.r_angle_token(&children[0], &children[1]),
40936            181 => self.embed_r_brace_token(&children[0]),
40937            182 => self.escaped_r_brace_token(&children[0]),
40938            183 => self.triple_r_brace_token(&children[0], &children[1]),
40939            184 => self.r_brace_token(&children[0], &children[1]),
40940            185 => self.r_bracket_token(&children[0], &children[1]),
40941            186 => self.r_paren_token(&children[0], &children[1]),
40942            187 => self.semicolon_token(&children[0], &children[1]),
40943            188 => self.star_token(&children[0], &children[1]),
40944            189 => self.alias_token(&children[0], &children[1]),
40945            190 => self.always_comb_token(&children[0], &children[1]),
40946            191 => self.always_ff_token(&children[0], &children[1]),
40947            192 => self.as_token(&children[0], &children[1]),
40948            193 => self.assign_token(&children[0], &children[1]),
40949            194 => self.bind_token(&children[0], &children[1]),
40950            195 => self.bit_token(&children[0], &children[1]),
40951            196 => self.block_token(&children[0], &children[1]),
40952            197 => self.b_bool_token(&children[0], &children[1]),
40953            198 => self.l_bool_token(&children[0], &children[1]),
40954            199 => self.case_token(&children[0], &children[1]),
40955            200 => self.clock_token(&children[0], &children[1]),
40956            201 => self.clock_posedge_token(&children[0], &children[1]),
40957            202 => self.clock_negedge_token(&children[0], &children[1]),
40958            203 => self.connect_token(&children[0], &children[1]),
40959            204 => self.const_token(&children[0], &children[1]),
40960            205 => self.converse_token(&children[0], &children[1]),
40961            206 => self.default_token(&children[0], &children[1]),
40962            207 => self.else_token(&children[0], &children[1]),
40963            208 => self.embed_token(&children[0], &children[1]),
40964            209 => self.enum_token(&children[0], &children[1]),
40965            210 => self.f32_token(&children[0], &children[1]),
40966            211 => self.f64_token(&children[0], &children[1]),
40967            212 => self.false_token(&children[0], &children[1]),
40968            213 => self.final_token(&children[0], &children[1]),
40969            214 => self.for_token(&children[0], &children[1]),
40970            215 => self.function_token(&children[0], &children[1]),
40971            216 => self.i8_token(&children[0], &children[1]),
40972            217 => self.i16_token(&children[0], &children[1]),
40973            218 => self.i32_token(&children[0], &children[1]),
40974            219 => self.i64_token(&children[0], &children[1]),
40975            220 => self.if_reset_token(&children[0], &children[1]),
40976            221 => self.if_token(&children[0], &children[1]),
40977            222 => self.import_token(&children[0], &children[1]),
40978            223 => self.include_token(&children[0], &children[1]),
40979            224 => self.initial_token(&children[0], &children[1]),
40980            225 => self.inout_token(&children[0], &children[1]),
40981            226 => self.input_token(&children[0], &children[1]),
40982            227 => self.inside_token(&children[0], &children[1]),
40983            228 => self.inst_token(&children[0], &children[1]),
40984            229 => self.interface_token(&children[0], &children[1]),
40985            230 => self.in_token(&children[0], &children[1]),
40986            231 => self.let_token(&children[0], &children[1]),
40987            232 => self.logic_token(&children[0], &children[1]),
40988            233 => self.lsb_token(&children[0], &children[1]),
40989            234 => self.modport_token(&children[0], &children[1]),
40990            235 => self.module_token(&children[0], &children[1]),
40991            236 => self.msb_token(&children[0], &children[1]),
40992            237 => self.output_token(&children[0], &children[1]),
40993            238 => self.outside_token(&children[0], &children[1]),
40994            239 => self.package_token(&children[0], &children[1]),
40995            240 => self.param_token(&children[0], &children[1]),
40996            241 => self.proto_token(&children[0], &children[1]),
40997            242 => self.pub_token(&children[0], &children[1]),
40998            243 => self.repeat_token(&children[0], &children[1]),
40999            244 => self.reset_token(&children[0], &children[1]),
41000            245 => self.reset_async_high_token(&children[0], &children[1]),
41001            246 => self.reset_async_low_token(&children[0], &children[1]),
41002            247 => self.reset_sync_high_token(&children[0], &children[1]),
41003            248 => self.reset_sync_low_token(&children[0], &children[1]),
41004            249 => self.return_token(&children[0], &children[1]),
41005            250 => self.rev_token(&children[0], &children[1]),
41006            251 => self.break_token(&children[0], &children[1]),
41007            252 => self.same_token(&children[0], &children[1]),
41008            253 => self.signed_token(&children[0], &children[1]),
41009            254 => self.step_token(&children[0], &children[1]),
41010            255 => self.string_token(&children[0], &children[1]),
41011            256 => self.struct_token(&children[0], &children[1]),
41012            257 => self.switch_token(&children[0], &children[1]),
41013            258 => self.tri_token(&children[0], &children[1]),
41014            259 => self.true_token(&children[0], &children[1]),
41015            260 => self.type_token(&children[0], &children[1]),
41016            261 => self.p8_token(&children[0], &children[1]),
41017            262 => self.p16_token(&children[0], &children[1]),
41018            263 => self.p32_token(&children[0], &children[1]),
41019            264 => self.p64_token(&children[0], &children[1]),
41020            265 => self.u8_token(&children[0], &children[1]),
41021            266 => self.u16_token(&children[0], &children[1]),
41022            267 => self.u32_token(&children[0], &children[1]),
41023            268 => self.u64_token(&children[0], &children[1]),
41024            269 => self.union_token(&children[0], &children[1]),
41025            270 => self.unsafe_token(&children[0], &children[1]),
41026            271 => self.var_token(&children[0], &children[1]),
41027            272 => self.dollar_identifier_token(&children[0], &children[1]),
41028            273 => self.identifier_token(&children[0], &children[1]),
41029            274 => self.any_token(&children[0]),
41030            275 => self.start(&children[0]),
41031            276 => self.string_literal(&children[0]),
41032            277 => self.exponent(&children[0]),
41033            278 => self.fixed_point(&children[0]),
41034            279 => self.based(&children[0]),
41035            280 => self.base_less(&children[0]),
41036            281 => self.all_bit(&children[0]),
41037            282 => self.assignment_operator(&children[0]),
41038            283 => self.diamond_operator(&children[0]),
41039            284 => self.operator01(&children[0]),
41040            285 => self.operator02(&children[0]),
41041            286 => self.operator03(&children[0]),
41042            287 => self.operator04(&children[0]),
41043            288 => self.operator05(&children[0]),
41044            289 => self.operator06(&children[0]),
41045            290 => self.operator07(&children[0]),
41046            291 => self.operator08(&children[0]),
41047            292 => self.unary_operator(&children[0]),
41048            293 => self.colon(&children[0]),
41049            294 => self.colon_colon_l_angle(&children[0]),
41050            295 => self.colon_colon(&children[0]),
41051            296 => self.comma(&children[0]),
41052            297 => self.dot_dot(&children[0]),
41053            298 => self.dot_dot_equ(&children[0]),
41054            299 => self.dot(&children[0]),
41055            300 => self.equ(&children[0]),
41056            301 => self.hash_l_bracket(&children[0]),
41057            302 => self.hash(&children[0]),
41058            303 => self.question(&children[0]),
41059            304 => self.quote_l_brace(&children[0]),
41060            305 => self.quote(&children[0]),
41061            306 => self.l_angle(&children[0]),
41062            307 => self.embed_l_brace(&children[0]),
41063            308 => self.escaped_l_brace(&children[0]),
41064            309 => self.triple_l_brace(&children[0]),
41065            310 => self.l_brace(&children[0]),
41066            311 => self.l_bracket(&children[0]),
41067            312 => self.l_paren(&children[0]),
41068            313 => self.l_t_minus(&children[0]),
41069            314 => self.minus_colon(&children[0]),
41070            315 => self.minus_g_t(&children[0]),
41071            316 => self.plus_colon(&children[0]),
41072            317 => self.r_angle(&children[0]),
41073            318 => self.embed_r_brace(&children[0]),
41074            319 => self.escaped_r_brace(&children[0]),
41075            320 => self.triple_r_brace(&children[0]),
41076            321 => self.r_brace(&children[0]),
41077            322 => self.r_bracket(&children[0]),
41078            323 => self.r_paren(&children[0]),
41079            324 => self.semicolon(&children[0]),
41080            325 => self.star(&children[0]),
41081            326 => self.alias(&children[0]),
41082            327 => self.always_comb(&children[0]),
41083            328 => self.always_ff(&children[0]),
41084            329 => self.r#as(&children[0]),
41085            330 => self.assign(&children[0]),
41086            331 => self.bind(&children[0]),
41087            332 => self.bit(&children[0]),
41088            333 => self.block(&children[0]),
41089            334 => self.b_bool(&children[0]),
41090            335 => self.l_bool(&children[0]),
41091            336 => self.r#break(&children[0]),
41092            337 => self.case(&children[0]),
41093            338 => self.clock(&children[0]),
41094            339 => self.clock_posedge(&children[0]),
41095            340 => self.clock_negedge(&children[0]),
41096            341 => self.connect(&children[0]),
41097            342 => self.r#const(&children[0]),
41098            343 => self.converse(&children[0]),
41099            344 => self.defaul(&children[0]),
41100            345 => self.r#else(&children[0]),
41101            346 => self.embed(&children[0]),
41102            347 => self.r#enum(&children[0]),
41103            348 => self.f32(&children[0]),
41104            349 => self.f64(&children[0]),
41105            350 => self.r#false(&children[0]),
41106            351 => self.r#final(&children[0]),
41107            352 => self.r#for(&children[0]),
41108            353 => self.function(&children[0]),
41109            354 => self.i8(&children[0]),
41110            355 => self.i16(&children[0]),
41111            356 => self.i32(&children[0]),
41112            357 => self.i64(&children[0]),
41113            358 => self.r#if(&children[0]),
41114            359 => self.if_reset(&children[0]),
41115            360 => self.import(&children[0]),
41116            361 => self.r#in(&children[0]),
41117            362 => self.include(&children[0]),
41118            363 => self.initial(&children[0]),
41119            364 => self.inout(&children[0]),
41120            365 => self.input(&children[0]),
41121            366 => self.inside(&children[0]),
41122            367 => self.inst(&children[0]),
41123            368 => self.interface(&children[0]),
41124            369 => self.r#let(&children[0]),
41125            370 => self.logic(&children[0]),
41126            371 => self.lsb(&children[0]),
41127            372 => self.modport(&children[0]),
41128            373 => self.module(&children[0]),
41129            374 => self.msb(&children[0]),
41130            375 => self.output(&children[0]),
41131            376 => self.outside(&children[0]),
41132            377 => self.package(&children[0]),
41133            378 => self.param(&children[0]),
41134            379 => self.proto(&children[0]),
41135            380 => self.r#pub(&children[0]),
41136            381 => self.repeat(&children[0]),
41137            382 => self.reset(&children[0]),
41138            383 => self.reset_async_high(&children[0]),
41139            384 => self.reset_async_low(&children[0]),
41140            385 => self.reset_sync_high(&children[0]),
41141            386 => self.reset_sync_low(&children[0]),
41142            387 => self.r#return(&children[0]),
41143            388 => self.rev(&children[0]),
41144            389 => self.same(&children[0]),
41145            390 => self.signed(&children[0]),
41146            391 => self.step(&children[0]),
41147            392 => self.strin(&children[0]),
41148            393 => self.r#struct(&children[0]),
41149            394 => self.switch(&children[0]),
41150            395 => self.tri(&children[0]),
41151            396 => self.r#true(&children[0]),
41152            397 => self.r#type(&children[0]),
41153            398 => self.p8(&children[0]),
41154            399 => self.p16(&children[0]),
41155            400 => self.p32(&children[0]),
41156            401 => self.p64(&children[0]),
41157            402 => self.u8(&children[0]),
41158            403 => self.u16(&children[0]),
41159            404 => self.u32(&children[0]),
41160            405 => self.u64(&children[0]),
41161            406 => self.r#union(&children[0]),
41162            407 => self.r#unsafe(&children[0]),
41163            408 => self.var(&children[0]),
41164            409 => self.dollar_identifier(&children[0]),
41165            410 => self.identifier(&children[0]),
41166            411 => self.any(&children[0]),
41167            412 => self.number_0(&children[0]),
41168            413 => self.number_1(&children[0]),
41169            414 => self.integral_number_0(&children[0]),
41170            415 => self.integral_number_1(&children[0]),
41171            416 => self.integral_number_2(&children[0]),
41172            417 => self.real_number_0(&children[0]),
41173            418 => self.real_number_1(&children[0]),
41174            419 => self.hierarchical_identifier(&children[0], &children[1], &children[2]),
41175            420 => self.hierarchical_identifier_list0_0(
41176                &children[0],
41177                &children[1],
41178                &children[2],
41179                &children[3],
41180            ),
41181            421 => self.hierarchical_identifier_list0_list_0(&children[0], &children[1]),
41182            422 => self.hierarchical_identifier_list0_list_1(),
41183            423 => self.hierarchical_identifier_list0_1(),
41184            424 => self.hierarchical_identifier_list_0(&children[0], &children[1]),
41185            425 => self.hierarchical_identifier_list_1(),
41186            426 => self.scoped_identifier(&children[0], &children[1]),
41187            427 => self.scoped_identifier_group_0(&children[0]),
41188            428 => self.scoped_identifier_group_1(&children[0], &children[1]),
41189            429 => self.scoped_identifier_list_0(
41190                &children[0],
41191                &children[1],
41192                &children[2],
41193                &children[3],
41194            ),
41195            430 => self.scoped_identifier_list_1(),
41196            431 => self.scoped_identifier_opt0_0(&children[0]),
41197            432 => self.scoped_identifier_opt0_1(),
41198            433 => self.scoped_identifier_opt_0(&children[0]),
41199            434 => self.scoped_identifier_opt_1(),
41200            435 => {
41201                self.expression_identifier(&children[0], &children[1], &children[2], &children[3])
41202            }
41203            436 => self.expression_identifier_list0_0(
41204                &children[0],
41205                &children[1],
41206                &children[2],
41207                &children[3],
41208            ),
41209            437 => self.expression_identifier_list0_list_0(&children[0], &children[1]),
41210            438 => self.expression_identifier_list0_list_1(),
41211            439 => self.expression_identifier_list0_1(),
41212            440 => self.expression_identifier_list_0(&children[0], &children[1]),
41213            441 => self.expression_identifier_list_1(),
41214            442 => self.expression_identifier_opt_0(&children[0]),
41215            443 => self.expression_identifier_opt_1(),
41216            444 => self.generic_arg_identifier(&children[0], &children[1]),
41217            445 => self.generic_arg_identifier_list_0(&children[0], &children[1], &children[2]),
41218            446 => self.generic_arg_identifier_list_1(),
41219            447 => self.expression(&children[0]),
41220            448 => self.if_expression(&children[0], &children[1]),
41221            449 => self.if_expression_list_0(
41222                &children[0],
41223                &children[1],
41224                &children[2],
41225                &children[3],
41226                &children[4],
41227                &children[5],
41228            ),
41229            450 => self.if_expression_list_1(),
41230            451 => self.expression01(&children[0], &children[1]),
41231            452 => self.expression01_list_0(&children[0], &children[1], &children[2]),
41232            453 => self.expression01_list_1(),
41233            454 => self.expression02(&children[0], &children[1], &children[2]),
41234            455 => self.expression02_list_0(&children[0], &children[1]),
41235            456 => self.expression02_list_1(),
41236            457 => self.expression02_opt_0(&children[0], &children[1]),
41237            458 => self.expression02_opt_1(),
41238            459 => self.expression01_op_0(&children[0]),
41239            460 => self.expression01_op_1(&children[0]),
41240            461 => self.expression01_op_2(&children[0]),
41241            462 => self.expression01_op_3(&children[0]),
41242            463 => self.expression01_op_4(&children[0]),
41243            464 => self.expression01_op_5(&children[0]),
41244            465 => self.expression01_op_6(&children[0]),
41245            466 => self.expression01_op_7(&children[0]),
41246            467 => self.expression01_op_8(&children[0]),
41247            468 => self.expression02_op_0(&children[0]),
41248            469 => self.expression02_op_1(&children[0]),
41249            470 => self.expression02_op_2(&children[0]),
41250            471 => self.expression02_op_3(&children[0]),
41251            472 => self.expression02_op_4(&children[0]),
41252            473 => self.factor_0(&children[0]),
41253            474 => self.factor_1(&children[0]),
41254            475 => self.factor_2(&children[0]),
41255            476 => self.factor_3(&children[0], &children[1], &children[2]),
41256            477 => self.factor_4(&children[0], &children[1], &children[2]),
41257            478 => self.factor_5(&children[0], &children[1], &children[2]),
41258            479 => self.factor_6(&children[0]),
41259            480 => self.factor_7(&children[0]),
41260            481 => self.factor_8(&children[0]),
41261            482 => self.factor_9(&children[0]),
41262            483 => self.factor_group_0(&children[0]),
41263            484 => self.factor_group_1(&children[0]),
41264            485 => self.factor_10(&children[0]),
41265            486 => self.factor_11(&children[0]),
41266            487 => self.factor_12(&children[0]),
41267            488 => self.factor_13(&children[0]),
41268            489 => self.boolean_literal_0(&children[0]),
41269            490 => self.boolean_literal_1(&children[0]),
41270            491 => self.identifier_factor(&children[0], &children[1]),
41271            492 => self.identifier_factor_opt_0(&children[0]),
41272            493 => self.identifier_factor_opt_group_0(&children[0]),
41273            494 => self.identifier_factor_opt_group_1(&children[0]),
41274            495 => self.identifier_factor_opt_1(),
41275            496 => self.factor_type_factor(&children[0], &children[1]),
41276            497 => self.factor_type_factor_list_0(&children[0], &children[1]),
41277            498 => self.factor_type_factor_list_1(),
41278            499 => self.function_call(&children[0], &children[1], &children[2]),
41279            500 => self.function_call_opt_0(&children[0]),
41280            501 => self.function_call_opt_1(),
41281            502 => self.argument_list(&children[0], &children[1], &children[2]),
41282            503 => self.argument_list_list_0(&children[0], &children[1], &children[2]),
41283            504 => self.argument_list_list_1(),
41284            505 => self.argument_list_opt_0(&children[0]),
41285            506 => self.argument_list_opt_1(),
41286            507 => self.argument_item(&children[0], &children[1]),
41287            508 => self.argument_item_opt_0(&children[0], &children[1]),
41288            509 => self.argument_item_opt_1(),
41289            510 => self.argument_expression(&children[0]),
41290            511 => self.struct_constructor(&children[0], &children[1], &children[2], &children[3]),
41291            512 => self.struct_constructor_opt_0(
41292                &children[0],
41293                &children[1],
41294                &children[2],
41295                &children[3],
41296                &children[4],
41297            ),
41298            513 => self.struct_constructor_opt_1(),
41299            514 => self.struct_constructor_list(&children[0], &children[1], &children[2]),
41300            515 => self.struct_constructor_list_list_0(&children[0], &children[1], &children[2]),
41301            516 => self.struct_constructor_list_list_1(),
41302            517 => self.struct_constructor_list_opt_0(&children[0]),
41303            518 => self.struct_constructor_list_opt_1(),
41304            519 => self.struct_constructor_item(&children[0], &children[1], &children[2]),
41305            520 => self.concatenation_list(&children[0], &children[1], &children[2]),
41306            521 => self.concatenation_list_list_0(&children[0], &children[1], &children[2]),
41307            522 => self.concatenation_list_list_1(),
41308            523 => self.concatenation_list_opt_0(&children[0]),
41309            524 => self.concatenation_list_opt_1(),
41310            525 => self.concatenation_item(&children[0], &children[1]),
41311            526 => self.concatenation_item_opt_0(&children[0], &children[1]),
41312            527 => self.concatenation_item_opt_1(),
41313            528 => self.array_literal_list(&children[0], &children[1], &children[2]),
41314            529 => self.array_literal_list_list_0(&children[0], &children[1], &children[2]),
41315            530 => self.array_literal_list_list_1(),
41316            531 => self.array_literal_list_opt_0(&children[0]),
41317            532 => self.array_literal_list_opt_1(),
41318            533 => self.array_literal_item(&children[0]),
41319            534 => self.array_literal_item_group_0(&children[0], &children[1]),
41320            535 => self.array_literal_item_group_1(&children[0], &children[1], &children[2]),
41321            536 => self.array_literal_item_opt_0(&children[0], &children[1]),
41322            537 => self.array_literal_item_opt_1(),
41323            538 => self.case_expression(
41324                &children[0],
41325                &children[1],
41326                &children[2],
41327                &children[3],
41328                &children[4],
41329                &children[5],
41330                &children[6],
41331                &children[7],
41332                &children[8],
41333                &children[9],
41334                &children[10],
41335                &children[11],
41336                &children[12],
41337            ),
41338            539 => self.case_expression_list_0(
41339                &children[0],
41340                &children[1],
41341                &children[2],
41342                &children[3],
41343                &children[4],
41344            ),
41345            540 => self.case_expression_list_1(),
41346            541 => self.case_expression_opt_0(&children[0]),
41347            542 => self.case_expression_opt_1(),
41348            543 => self.switch_expression(
41349                &children[0],
41350                &children[1],
41351                &children[2],
41352                &children[3],
41353                &children[4],
41354                &children[5],
41355                &children[6],
41356                &children[7],
41357                &children[8],
41358                &children[9],
41359                &children[10],
41360                &children[11],
41361            ),
41362            544 => self.switch_expression_list_0(
41363                &children[0],
41364                &children[1],
41365                &children[2],
41366                &children[3],
41367                &children[4],
41368            ),
41369            545 => self.switch_expression_list_1(),
41370            546 => self.switch_expression_opt_0(&children[0]),
41371            547 => self.switch_expression_opt_1(),
41372            548 => self.type_expression(&children[0], &children[1], &children[2], &children[3]),
41373            549 => self.inside_expression(
41374                &children[0],
41375                &children[1],
41376                &children[2],
41377                &children[3],
41378                &children[4],
41379            ),
41380            550 => self.outside_expression(
41381                &children[0],
41382                &children[1],
41383                &children[2],
41384                &children[3],
41385                &children[4],
41386            ),
41387            551 => self.range_list(&children[0], &children[1], &children[2]),
41388            552 => self.range_list_list_0(&children[0], &children[1], &children[2]),
41389            553 => self.range_list_list_1(),
41390            554 => self.range_list_opt_0(&children[0]),
41391            555 => self.range_list_opt_1(),
41392            556 => self.range_item(&children[0]),
41393            557 => self.select(&children[0], &children[1], &children[2], &children[3]),
41394            558 => self.select_opt_0(&children[0], &children[1]),
41395            559 => self.select_opt_1(),
41396            560 => self.select_operator_0(&children[0]),
41397            561 => self.select_operator_1(&children[0]),
41398            562 => self.select_operator_2(&children[0]),
41399            563 => self.select_operator_3(&children[0]),
41400            564 => self.width(&children[0], &children[1], &children[2], &children[3]),
41401            565 => self.width_list_0(&children[0], &children[1], &children[2]),
41402            566 => self.width_list_1(),
41403            567 => self.array(&children[0], &children[1], &children[2], &children[3]),
41404            568 => self.array_list_0(&children[0], &children[1], &children[2]),
41405            569 => self.array_list_1(),
41406            570 => self.range(&children[0], &children[1]),
41407            571 => self.range_opt_0(&children[0], &children[1]),
41408            572 => self.range_opt_1(),
41409            573 => self.range_operator_0(&children[0]),
41410            574 => self.range_operator_1(&children[0]),
41411            575 => self.fixed_type_0(&children[0]),
41412            576 => self.fixed_type_1(&children[0]),
41413            577 => self.fixed_type_2(&children[0]),
41414            578 => self.fixed_type_3(&children[0]),
41415            579 => self.fixed_type_4(&children[0]),
41416            580 => self.fixed_type_5(&children[0]),
41417            581 => self.fixed_type_6(&children[0]),
41418            582 => self.fixed_type_7(&children[0]),
41419            583 => self.fixed_type_8(&children[0]),
41420            584 => self.fixed_type_9(&children[0]),
41421            585 => self.fixed_type_10(&children[0]),
41422            586 => self.fixed_type_11(&children[0]),
41423            587 => self.fixed_type_12(&children[0]),
41424            588 => self.fixed_type_13(&children[0]),
41425            589 => self.fixed_type_14(&children[0]),
41426            590 => self.fixed_type_15(&children[0]),
41427            591 => self.fixed_type_16(&children[0]),
41428            592 => self.variable_type_0(&children[0]),
41429            593 => self.variable_type_1(&children[0]),
41430            594 => self.variable_type_2(&children[0]),
41431            595 => self.variable_type_3(&children[0]),
41432            596 => self.variable_type_4(&children[0]),
41433            597 => self.variable_type_5(&children[0]),
41434            598 => self.variable_type_6(&children[0]),
41435            599 => self.variable_type_7(&children[0]),
41436            600 => self.variable_type_8(&children[0]),
41437            601 => self.variable_type_9(&children[0]),
41438            602 => self.user_defined_type(&children[0]),
41439            603 => self.type_modifier_0(&children[0]),
41440            604 => self.type_modifier_1(&children[0]),
41441            605 => self.type_modifier_2(&children[0]),
41442            606 => self.factor_type(&children[0]),
41443            607 => self.factor_type_group_0(&children[0], &children[1]),
41444            608 => self.factor_type_group_1(&children[0]),
41445            609 => self.factor_type_opt_0(&children[0]),
41446            610 => self.factor_type_opt_1(),
41447            611 => self.scalar_type(&children[0], &children[1]),
41448            612 => self.scalar_type_group_0(&children[0], &children[1]),
41449            613 => self.scalar_type_group_1(&children[0]),
41450            614 => self.scalar_type_list_0(&children[0], &children[1]),
41451            615 => self.scalar_type_list_1(),
41452            616 => self.scalar_type_opt_0(&children[0]),
41453            617 => self.scalar_type_opt_1(),
41454            618 => self.array_type(&children[0], &children[1]),
41455            619 => self.array_type_opt_0(&children[0]),
41456            620 => self.array_type_opt_1(),
41457            621 => self.casting_type_0(&children[0]),
41458            622 => self.casting_type_1(&children[0]),
41459            623 => self.casting_type_2(&children[0]),
41460            624 => self.casting_type_3(&children[0]),
41461            625 => self.casting_type_4(&children[0]),
41462            626 => self.casting_type_5(&children[0]),
41463            627 => self.casting_type_6(&children[0]),
41464            628 => self.casting_type_7(&children[0]),
41465            629 => self.casting_type_8(&children[0]),
41466            630 => self.casting_type_9(&children[0]),
41467            631 => self.casting_type_10(&children[0]),
41468            632 => self.casting_type_11(&children[0]),
41469            633 => self.casting_type_12(&children[0]),
41470            634 => self.casting_type_13(&children[0]),
41471            635 => self.casting_type_14(&children[0]),
41472            636 => self.casting_type_15(&children[0]),
41473            637 => self.casting_type_16(&children[0]),
41474            638 => self.casting_type_17(&children[0]),
41475            639 => self.casting_type_18(&children[0]),
41476            640 => self.casting_type_19(&children[0]),
41477            641 => self.casting_type_20(&children[0]),
41478            642 => self.casting_type_21(&children[0]),
41479            643 => self.casting_type_22(&children[0]),
41480            644 => self.casting_type_23(&children[0]),
41481            645 => self.casting_type_24(&children[0]),
41482            646 => self.casting_type_25(&children[0]),
41483            647 => self.casting_type_26(&children[0]),
41484            648 => self.clock_domain(&children[0], &children[1]),
41485            649 => self.statement_block(&children[0], &children[1], &children[2]),
41486            650 => self.statement_block_list_0(&children[0], &children[1]),
41487            651 => self.statement_block_list_1(),
41488            652 => self.statement_block_group(&children[0], &children[1]),
41489            653 => self.statement_block_group_group_0(
41490                &children[0],
41491                &children[1],
41492                &children[2],
41493                &children[3],
41494            ),
41495            654 => self.statement_block_group_group_list_0(&children[0], &children[1]),
41496            655 => self.statement_block_group_group_list_1(),
41497            656 => self.statement_block_group_group_1(&children[0]),
41498            657 => self.statement_block_group_list_0(&children[0], &children[1]),
41499            658 => self.statement_block_group_list_1(),
41500            659 => self.statement_block_item_0(&children[0]),
41501            660 => self.statement_block_item_1(&children[0]),
41502            661 => self.statement_block_item_2(&children[0]),
41503            662 => self.statement_block_item_3(&children[0]),
41504            663 => self.statement_block_item_4(&children[0]),
41505            664 => self.statement_0(&children[0]),
41506            665 => self.statement_1(&children[0]),
41507            666 => self.statement_2(&children[0]),
41508            667 => self.statement_3(&children[0]),
41509            668 => self.statement_4(&children[0]),
41510            669 => self.statement_5(&children[0]),
41511            670 => self.statement_6(&children[0]),
41512            671 => self.statement_7(&children[0]),
41513            672 => self.let_statement(
41514                &children[0],
41515                &children[1],
41516                &children[2],
41517                &children[3],
41518                &children[4],
41519                &children[5],
41520                &children[6],
41521                &children[7],
41522            ),
41523            673 => self.let_statement_opt_0(&children[0]),
41524            674 => self.let_statement_opt_1(),
41525            675 => self.identifier_statement(&children[0], &children[1], &children[2]),
41526            676 => self.identifier_statement_group_0(&children[0]),
41527            677 => self.identifier_statement_group_1(&children[0]),
41528            678 => self.concatenation_assignment(
41529                &children[0],
41530                &children[1],
41531                &children[2],
41532                &children[3],
41533                &children[4],
41534                &children[5],
41535            ),
41536            679 => self.assignment(&children[0], &children[1]),
41537            680 => self.assignment_group_0(&children[0]),
41538            681 => self.assignment_group_1(&children[0]),
41539            682 => self.assignment_group_2(&children[0]),
41540            683 => self.if_statement(
41541                &children[0],
41542                &children[1],
41543                &children[2],
41544                &children[3],
41545                &children[4],
41546            ),
41547            684 => self.if_statement_list_0(
41548                &children[0],
41549                &children[1],
41550                &children[2],
41551                &children[3],
41552                &children[4],
41553            ),
41554            685 => self.if_statement_list_1(),
41555            686 => self.if_statement_opt_0(&children[0], &children[1]),
41556            687 => self.if_statement_opt_1(),
41557            688 => self.if_reset_statement(&children[0], &children[1], &children[2], &children[3]),
41558            689 => self.if_reset_statement_list_0(
41559                &children[0],
41560                &children[1],
41561                &children[2],
41562                &children[3],
41563                &children[4],
41564            ),
41565            690 => self.if_reset_statement_list_1(),
41566            691 => self.if_reset_statement_opt_0(&children[0], &children[1]),
41567            692 => self.if_reset_statement_opt_1(),
41568            693 => self.return_statement(&children[0], &children[1], &children[2]),
41569            694 => self.break_statement(&children[0], &children[1]),
41570            695 => self.for_statement(
41571                &children[0],
41572                &children[1],
41573                &children[2],
41574                &children[3],
41575                &children[4],
41576                &children[5],
41577                &children[6],
41578                &children[7],
41579                &children[8],
41580            ),
41581            696 => self.for_statement_opt0_0(&children[0], &children[1], &children[2]),
41582            697 => self.for_statement_opt0_1(),
41583            698 => self.for_statement_opt_0(&children[0]),
41584            699 => self.for_statement_opt_1(),
41585            700 => self.case_statement(
41586                &children[0],
41587                &children[1],
41588                &children[2],
41589                &children[3],
41590                &children[4],
41591            ),
41592            701 => self.case_statement_list_0(&children[0], &children[1]),
41593            702 => self.case_statement_list_1(),
41594            703 => self.case_item(&children[0], &children[1], &children[2]),
41595            704 => self.case_item_group0_0(&children[0]),
41596            705 => self.case_item_group0_1(&children[0]),
41597            706 => self.case_item_group_0(&children[0]),
41598            707 => self.case_item_group_1(&children[0]),
41599            708 => self.case_condition(&children[0], &children[1]),
41600            709 => self.case_condition_list_0(&children[0], &children[1], &children[2]),
41601            710 => self.case_condition_list_1(),
41602            711 => self.switch_statement(&children[0], &children[1], &children[2], &children[3]),
41603            712 => self.switch_statement_list_0(&children[0], &children[1]),
41604            713 => self.switch_statement_list_1(),
41605            714 => self.switch_item(&children[0], &children[1], &children[2]),
41606            715 => self.switch_item_group0_0(&children[0]),
41607            716 => self.switch_item_group0_1(&children[0]),
41608            717 => self.switch_item_group_0(&children[0]),
41609            718 => self.switch_item_group_1(&children[0]),
41610            719 => self.switch_condition(&children[0], &children[1]),
41611            720 => self.switch_condition_list_0(&children[0], &children[1], &children[2]),
41612            721 => self.switch_condition_list_1(),
41613            722 => self.attribute(&children[0], &children[1], &children[2], &children[3]),
41614            723 => self.attribute_opt_0(&children[0], &children[1], &children[2]),
41615            724 => self.attribute_opt_1(),
41616            725 => self.attribute_list(&children[0], &children[1], &children[2]),
41617            726 => self.attribute_list_list_0(&children[0], &children[1], &children[2]),
41618            727 => self.attribute_list_list_1(),
41619            728 => self.attribute_list_opt_0(&children[0]),
41620            729 => self.attribute_list_opt_1(),
41621            730 => self.attribute_item_0(&children[0]),
41622            731 => self.attribute_item_1(&children[0]),
41623            732 => self.let_declaration(
41624                &children[0],
41625                &children[1],
41626                &children[2],
41627                &children[3],
41628                &children[4],
41629                &children[5],
41630                &children[6],
41631                &children[7],
41632            ),
41633            733 => self.let_declaration_opt_0(&children[0]),
41634            734 => self.let_declaration_opt_1(),
41635            735 => self.var_declaration(
41636                &children[0],
41637                &children[1],
41638                &children[2],
41639                &children[3],
41640                &children[4],
41641                &children[5],
41642            ),
41643            736 => self.var_declaration_opt_0(&children[0]),
41644            737 => self.var_declaration_opt_1(),
41645            738 => self.const_declaration(
41646                &children[0],
41647                &children[1],
41648                &children[2],
41649                &children[3],
41650                &children[4],
41651                &children[5],
41652                &children[6],
41653            ),
41654            739 => self.const_declaration_group_0(&children[0]),
41655            740 => self.const_declaration_group_1(&children[0]),
41656            741 => self.type_def_declaration(
41657                &children[0],
41658                &children[1],
41659                &children[2],
41660                &children[3],
41661                &children[4],
41662            ),
41663            742 => self.always_ff_declaration(&children[0], &children[1], &children[2]),
41664            743 => self.always_ff_declaration_opt_0(&children[0]),
41665            744 => self.always_ff_declaration_opt_1(),
41666            745 => {
41667                self.always_ff_event_list(&children[0], &children[1], &children[2], &children[3])
41668            }
41669            746 => self.always_ff_event_list_opt_0(&children[0], &children[1]),
41670            747 => self.always_ff_event_list_opt_1(),
41671            748 => self.always_ff_clock(&children[0]),
41672            749 => self.always_ff_reset(&children[0]),
41673            750 => self.always_comb_declaration(&children[0], &children[1]),
41674            751 => self.assign_declaration(
41675                &children[0],
41676                &children[1],
41677                &children[2],
41678                &children[3],
41679                &children[4],
41680            ),
41681            752 => self.assign_destination_0(&children[0]),
41682            753 => self.assign_destination_1(&children[0], &children[1], &children[2]),
41683            754 => self.assign_concatenation_list(&children[0], &children[1], &children[2]),
41684            755 => self.assign_concatenation_list_list_0(&children[0], &children[1], &children[2]),
41685            756 => self.assign_concatenation_list_list_1(),
41686            757 => self.assign_concatenation_list_opt_0(&children[0]),
41687            758 => self.assign_concatenation_list_opt_1(),
41688            759 => self.assign_concatenation_item(&children[0]),
41689            760 => self.connect_declaration(
41690                &children[0],
41691                &children[1],
41692                &children[2],
41693                &children[3],
41694                &children[4],
41695            ),
41696            761 => self.modport_declaration(
41697                &children[0],
41698                &children[1],
41699                &children[2],
41700                &children[3],
41701                &children[4],
41702                &children[5],
41703            ),
41704            762 => self.modport_declaration_opt0_0(&children[0], &children[1]),
41705            763 => self.modport_declaration_opt0_1(),
41706            764 => self.modport_declaration_opt_0(&children[0]),
41707            765 => self.modport_declaration_opt_1(),
41708            766 => self.modport_list(&children[0], &children[1], &children[2]),
41709            767 => self.modport_list_list_0(&children[0], &children[1], &children[2]),
41710            768 => self.modport_list_list_1(),
41711            769 => self.modport_list_opt_0(&children[0]),
41712            770 => self.modport_list_opt_1(),
41713            771 => self.modport_group(&children[0], &children[1]),
41714            772 => self.modport_group_group_0(&children[0], &children[1], &children[2]),
41715            773 => self.modport_group_group_1(&children[0]),
41716            774 => self.modport_group_list_0(&children[0], &children[1]),
41717            775 => self.modport_group_list_1(),
41718            776 => self.modport_item(&children[0], &children[1], &children[2]),
41719            777 => self.modport_default_0(&children[0]),
41720            778 => self.modport_default_1(&children[0]),
41721            779 => self.modport_default_2(&children[0], &children[1], &children[2], &children[3]),
41722            780 => self.modport_default_3(&children[0], &children[1], &children[2], &children[3]),
41723            781 => self.modport_default_list(&children[0], &children[1], &children[2]),
41724            782 => self.modport_default_list_list_0(&children[0], &children[1], &children[2]),
41725            783 => self.modport_default_list_list_1(),
41726            784 => self.modport_default_list_opt_0(&children[0]),
41727            785 => self.modport_default_list_opt_1(),
41728            786 => self.enum_declaration(
41729                &children[0],
41730                &children[1],
41731                &children[2],
41732                &children[3],
41733                &children[4],
41734                &children[5],
41735            ),
41736            787 => self.enum_declaration_opt_0(&children[0], &children[1]),
41737            788 => self.enum_declaration_opt_1(),
41738            789 => self.enum_list(&children[0], &children[1], &children[2]),
41739            790 => self.enum_list_list_0(&children[0], &children[1], &children[2]),
41740            791 => self.enum_list_list_1(),
41741            792 => self.enum_list_opt_0(&children[0]),
41742            793 => self.enum_list_opt_1(),
41743            794 => self.enum_group(&children[0], &children[1]),
41744            795 => self.enum_group_group_0(&children[0], &children[1], &children[2]),
41745            796 => self.enum_group_group_1(&children[0]),
41746            797 => self.enum_group_list_0(&children[0], &children[1]),
41747            798 => self.enum_group_list_1(),
41748            799 => self.enum_item(&children[0], &children[1]),
41749            800 => self.enum_item_opt_0(&children[0], &children[1]),
41750            801 => self.enum_item_opt_1(),
41751            802 => self.struct_union_0(&children[0]),
41752            803 => self.struct_union_1(&children[0]),
41753            804 => self.struct_union_declaration(
41754                &children[0],
41755                &children[1],
41756                &children[2],
41757                &children[3],
41758                &children[4],
41759                &children[5],
41760            ),
41761            805 => self.struct_union_declaration_opt_0(&children[0]),
41762            806 => self.struct_union_declaration_opt_1(),
41763            807 => self.struct_union_list(&children[0], &children[1], &children[2]),
41764            808 => self.struct_union_list_list_0(&children[0], &children[1], &children[2]),
41765            809 => self.struct_union_list_list_1(),
41766            810 => self.struct_union_list_opt_0(&children[0]),
41767            811 => self.struct_union_list_opt_1(),
41768            812 => self.struct_union_group(&children[0], &children[1]),
41769            813 => self.struct_union_group_group_0(&children[0], &children[1], &children[2]),
41770            814 => self.struct_union_group_group_1(&children[0]),
41771            815 => self.struct_union_group_list_0(&children[0], &children[1]),
41772            816 => self.struct_union_group_list_1(),
41773            817 => self.struct_union_item(&children[0], &children[1], &children[2]),
41774            818 => self.initial_declaration(&children[0], &children[1]),
41775            819 => self.final_declaration(&children[0], &children[1]),
41776            820 => self.inst_declaration(&children[0], &children[1], &children[2]),
41777            821 => self.bind_declaration(
41778                &children[0],
41779                &children[1],
41780                &children[2],
41781                &children[3],
41782                &children[4],
41783            ),
41784            822 => self.component_instantiation(
41785                &children[0],
41786                &children[1],
41787                &children[2],
41788                &children[3],
41789                &children[4],
41790                &children[5],
41791                &children[6],
41792            ),
41793            823 => self.component_instantiation_opt2_0(&children[0]),
41794            824 => self.component_instantiation_opt2_1(),
41795            825 => self.component_instantiation_opt1_0(&children[0]),
41796            826 => self.component_instantiation_opt1_1(),
41797            827 => self.component_instantiation_opt0_0(&children[0]),
41798            828 => self.component_instantiation_opt0_1(),
41799            829 => self.component_instantiation_opt_0(&children[0]),
41800            830 => self.component_instantiation_opt_1(),
41801            831 => self.inst_parameter(&children[0], &children[1], &children[2], &children[3]),
41802            832 => self.inst_parameter_opt_0(&children[0]),
41803            833 => self.inst_parameter_opt_1(),
41804            834 => self.inst_parameter_list(&children[0], &children[1], &children[2]),
41805            835 => self.inst_parameter_list_list_0(&children[0], &children[1], &children[2]),
41806            836 => self.inst_parameter_list_list_1(),
41807            837 => self.inst_parameter_list_opt_0(&children[0]),
41808            838 => self.inst_parameter_list_opt_1(),
41809            839 => self.inst_parameter_group(&children[0], &children[1]),
41810            840 => self.inst_parameter_group_group_0(&children[0], &children[1], &children[2]),
41811            841 => self.inst_parameter_group_group_1(&children[0]),
41812            842 => self.inst_parameter_group_list_0(&children[0], &children[1]),
41813            843 => self.inst_parameter_group_list_1(),
41814            844 => self.inst_parameter_item(&children[0], &children[1]),
41815            845 => self.inst_parameter_item_opt_0(&children[0], &children[1]),
41816            846 => self.inst_parameter_item_opt_1(),
41817            847 => self.inst_port(&children[0], &children[1], &children[2]),
41818            848 => self.inst_port_opt_0(&children[0]),
41819            849 => self.inst_port_opt_1(),
41820            850 => self.inst_port_list(&children[0], &children[1], &children[2]),
41821            851 => self.inst_port_list_list_0(&children[0], &children[1], &children[2]),
41822            852 => self.inst_port_list_list_1(),
41823            853 => self.inst_port_list_opt_0(&children[0]),
41824            854 => self.inst_port_list_opt_1(),
41825            855 => self.inst_port_group(&children[0], &children[1]),
41826            856 => self.inst_port_group_group_0(&children[0], &children[1], &children[2]),
41827            857 => self.inst_port_group_group_1(&children[0]),
41828            858 => self.inst_port_group_list_0(&children[0], &children[1]),
41829            859 => self.inst_port_group_list_1(),
41830            860 => self.inst_port_item(&children[0], &children[1]),
41831            861 => self.inst_port_item_opt_0(&children[0], &children[1]),
41832            862 => self.inst_port_item_opt_1(),
41833            863 => self.with_parameter(&children[0], &children[1], &children[2], &children[3]),
41834            864 => self.with_parameter_opt_0(&children[0]),
41835            865 => self.with_parameter_opt_1(),
41836            866 => self.with_parameter_list(&children[0], &children[1], &children[2]),
41837            867 => self.with_parameter_list_list_0(&children[0], &children[1], &children[2]),
41838            868 => self.with_parameter_list_list_1(),
41839            869 => self.with_parameter_list_opt_0(&children[0]),
41840            870 => self.with_parameter_list_opt_1(),
41841            871 => self.with_parameter_group(&children[0], &children[1]),
41842            872 => self.with_parameter_group_group_0(&children[0], &children[1], &children[2]),
41843            873 => self.with_parameter_group_group_1(&children[0]),
41844            874 => self.with_parameter_group_list_0(&children[0], &children[1]),
41845            875 => self.with_parameter_group_list_1(),
41846            876 => self.with_parameter_item(
41847                &children[0],
41848                &children[1],
41849                &children[2],
41850                &children[3],
41851                &children[4],
41852            ),
41853            877 => self.with_parameter_item_group0_0(&children[0]),
41854            878 => self.with_parameter_item_group0_1(&children[0]),
41855            879 => self.with_parameter_item_group_0(&children[0]),
41856            880 => self.with_parameter_item_group_1(&children[0]),
41857            881 => self.with_parameter_item_opt_0(&children[0], &children[1]),
41858            882 => self.with_parameter_item_opt_1(),
41859            883 => self.generic_bound_0(&children[0]),
41860            884 => self.generic_bound_1(&children[0], &children[1]),
41861            885 => self.generic_bound_2(&children[0]),
41862            886 => self.with_generic_parameter(&children[0], &children[1], &children[2]),
41863            887 => self.with_generic_parameter_list(&children[0], &children[1], &children[2]),
41864            888 => {
41865                self.with_generic_parameter_list_list_0(&children[0], &children[1], &children[2])
41866            }
41867            889 => self.with_generic_parameter_list_list_1(),
41868            890 => self.with_generic_parameter_list_opt_0(&children[0]),
41869            891 => self.with_generic_parameter_list_opt_1(),
41870            892 => self.with_generic_parameter_item(
41871                &children[0],
41872                &children[1],
41873                &children[2],
41874                &children[3],
41875            ),
41876            893 => self.with_generic_parameter_item_opt_0(&children[0], &children[1]),
41877            894 => self.with_generic_parameter_item_opt_1(),
41878            895 => self.generic_proto_bound_0(&children[0]),
41879            896 => self.generic_proto_bound_1(&children[0]),
41880            897 => self.with_generic_argument(&children[0], &children[1], &children[2]),
41881            898 => self.with_generic_argument_opt_0(&children[0]),
41882            899 => self.with_generic_argument_opt_1(),
41883            900 => self.with_generic_argument_list(&children[0], &children[1], &children[2]),
41884            901 => self.with_generic_argument_list_list_0(&children[0], &children[1], &children[2]),
41885            902 => self.with_generic_argument_list_list_1(),
41886            903 => self.with_generic_argument_list_opt_0(&children[0]),
41887            904 => self.with_generic_argument_list_opt_1(),
41888            905 => self.with_generic_argument_item_0(&children[0]),
41889            906 => self.with_generic_argument_item_1(&children[0]),
41890            907 => self.with_generic_argument_item_2(&children[0]),
41891            908 => self.with_generic_argument_item_3(&children[0]),
41892            909 => self.port_declaration(&children[0], &children[1], &children[2]),
41893            910 => self.port_declaration_opt_0(&children[0]),
41894            911 => self.port_declaration_opt_1(),
41895            912 => self.port_declaration_list(&children[0], &children[1], &children[2]),
41896            913 => self.port_declaration_list_list_0(&children[0], &children[1], &children[2]),
41897            914 => self.port_declaration_list_list_1(),
41898            915 => self.port_declaration_list_opt_0(&children[0]),
41899            916 => self.port_declaration_list_opt_1(),
41900            917 => self.port_declaration_group(&children[0], &children[1]),
41901            918 => self.port_declaration_group_group_0(&children[0], &children[1], &children[2]),
41902            919 => self.port_declaration_group_group_1(&children[0]),
41903            920 => self.port_declaration_group_list_0(&children[0], &children[1]),
41904            921 => self.port_declaration_group_list_1(),
41905            922 => self.port_declaration_item(&children[0], &children[1], &children[2]),
41906            923 => self.port_declaration_item_group_0(&children[0]),
41907            924 => self.port_declaration_item_group_1(&children[0]),
41908            925 => self.port_type_concrete(&children[0], &children[1], &children[2], &children[3]),
41909            926 => self.port_type_concrete_opt0_0(&children[0], &children[1]),
41910            927 => self.port_type_concrete_opt0_1(),
41911            928 => self.port_type_concrete_opt_0(&children[0]),
41912            929 => self.port_type_concrete_opt_1(),
41913            930 => self.port_default_value(&children[0]),
41914            931 => self.port_type_abstract(&children[0], &children[1], &children[2], &children[3]),
41915            932 => self.port_type_abstract_opt1_0(&children[0]),
41916            933 => self.port_type_abstract_opt1_1(),
41917            934 => self.port_type_abstract_opt0_0(&children[0], &children[1]),
41918            935 => self.port_type_abstract_opt0_1(),
41919            936 => self.port_type_abstract_opt_0(&children[0]),
41920            937 => self.port_type_abstract_opt_1(),
41921            938 => self.direction_0(&children[0]),
41922            939 => self.direction_1(&children[0]),
41923            940 => self.direction_2(&children[0]),
41924            941 => self.direction_3(&children[0]),
41925            942 => self.direction_4(&children[0]),
41926            943 => self.function_declaration(
41927                &children[0],
41928                &children[1],
41929                &children[2],
41930                &children[3],
41931                &children[4],
41932                &children[5],
41933            ),
41934            944 => self.function_declaration_opt1_0(&children[0], &children[1]),
41935            945 => self.function_declaration_opt1_1(),
41936            946 => self.function_declaration_opt0_0(&children[0]),
41937            947 => self.function_declaration_opt0_1(),
41938            948 => self.function_declaration_opt_0(&children[0]),
41939            949 => self.function_declaration_opt_1(),
41940            950 => self.import_declaration(&children[0], &children[1], &children[2], &children[3]),
41941            951 => self.import_declaration_opt_0(&children[0], &children[1]),
41942            952 => self.import_declaration_opt_1(),
41943            953 => self.unsafe_block(
41944                &children[0],
41945                &children[1],
41946                &children[2],
41947                &children[3],
41948                &children[4],
41949                &children[5],
41950                &children[6],
41951            ),
41952            954 => self.unsafe_block_list_0(&children[0], &children[1]),
41953            955 => self.unsafe_block_list_1(),
41954            956 => self.module_declaration(
41955                &children[0],
41956                &children[1],
41957                &children[2],
41958                &children[3],
41959                &children[4],
41960                &children[5],
41961                &children[6],
41962                &children[7],
41963                &children[8],
41964            ),
41965            957 => self.module_declaration_list_0(&children[0], &children[1]),
41966            958 => self.module_declaration_list_1(),
41967            959 => self.module_declaration_opt2_0(&children[0]),
41968            960 => self.module_declaration_opt2_1(),
41969            961 => self.module_declaration_opt1_0(&children[0]),
41970            962 => self.module_declaration_opt1_1(),
41971            963 => self.module_declaration_opt0_0(&children[0], &children[1]),
41972            964 => self.module_declaration_opt0_1(),
41973            965 => self.module_declaration_opt_0(&children[0]),
41974            966 => self.module_declaration_opt_1(),
41975            967 => self.module_group(&children[0], &children[1]),
41976            968 => self.module_group_group_0(&children[0], &children[1], &children[2]),
41977            969 => self.module_group_group_list_0(&children[0], &children[1]),
41978            970 => self.module_group_group_list_1(),
41979            971 => self.module_group_group_1(&children[0]),
41980            972 => self.module_group_list_0(&children[0], &children[1]),
41981            973 => self.module_group_list_1(),
41982            974 => self.module_item(&children[0]),
41983            975 => self.interface_declaration(
41984                &children[0],
41985                &children[1],
41986                &children[2],
41987                &children[3],
41988                &children[4],
41989                &children[5],
41990                &children[6],
41991                &children[7],
41992            ),
41993            976 => self.interface_declaration_list_0(&children[0], &children[1]),
41994            977 => self.interface_declaration_list_1(),
41995            978 => self.interface_declaration_opt1_0(&children[0]),
41996            979 => self.interface_declaration_opt1_1(),
41997            980 => self.interface_declaration_opt0_0(&children[0], &children[1]),
41998            981 => self.interface_declaration_opt0_1(),
41999            982 => self.interface_declaration_opt_0(&children[0]),
42000            983 => self.interface_declaration_opt_1(),
42001            984 => self.interface_group(&children[0], &children[1]),
42002            985 => self.interface_group_group_0(&children[0], &children[1], &children[2]),
42003            986 => self.interface_group_group_list_0(&children[0], &children[1]),
42004            987 => self.interface_group_group_list_1(),
42005            988 => self.interface_group_group_1(&children[0]),
42006            989 => self.interface_group_list_0(&children[0], &children[1]),
42007            990 => self.interface_group_list_1(),
42008            991 => self.interface_item_0(&children[0]),
42009            992 => self.interface_item_1(&children[0]),
42010            993 => self.generate_if_declaration(
42011                &children[0],
42012                &children[1],
42013                &children[2],
42014                &children[3],
42015                &children[4],
42016            ),
42017            994 => self.generate_if_declaration_list_0(
42018                &children[0],
42019                &children[1],
42020                &children[2],
42021                &children[3],
42022                &children[4],
42023            ),
42024            995 => self.generate_if_declaration_list_1(),
42025            996 => self.generate_if_declaration_opt_0(&children[0], &children[1]),
42026            997 => self.generate_if_declaration_opt_1(),
42027            998 => self.generate_for_declaration(
42028                &children[0],
42029                &children[1],
42030                &children[2],
42031                &children[3],
42032                &children[4],
42033                &children[5],
42034                &children[6],
42035            ),
42036            999 => self.generate_for_declaration_opt0_0(&children[0], &children[1], &children[2]),
42037            1000 => self.generate_for_declaration_opt0_1(),
42038            1001 => self.generate_for_declaration_opt_0(&children[0]),
42039            1002 => self.generate_for_declaration_opt_1(),
42040            1003 => self.generate_block_declaration(&children[0]),
42041            1004 => self.generate_named_block(
42042                &children[0],
42043                &children[1],
42044                &children[2],
42045                &children[3],
42046                &children[4],
42047            ),
42048            1005 => self.generate_named_block_list_0(&children[0], &children[1]),
42049            1006 => self.generate_named_block_list_1(),
42050            1007 => self.generate_optional_named_block(
42051                &children[0],
42052                &children[1],
42053                &children[2],
42054                &children[3],
42055            ),
42056            1008 => self.generate_optional_named_block_list_0(&children[0], &children[1]),
42057            1009 => self.generate_optional_named_block_list_1(),
42058            1010 => self.generate_optional_named_block_opt_0(&children[0], &children[1]),
42059            1011 => self.generate_optional_named_block_opt_1(),
42060            1012 => self.generate_group(&children[0], &children[1]),
42061            1013 => self.generate_group_group_0(&children[0], &children[1], &children[2]),
42062            1014 => self.generate_group_group_list_0(&children[0], &children[1]),
42063            1015 => self.generate_group_group_list_1(),
42064            1016 => self.generate_group_group_1(&children[0]),
42065            1017 => self.generate_group_list_0(&children[0], &children[1]),
42066            1018 => self.generate_group_list_1(),
42067            1019 => self.generate_item_0(&children[0]),
42068            1020 => self.generate_item_1(&children[0]),
42069            1021 => self.generate_item_2(&children[0]),
42070            1022 => self.generate_item_3(&children[0]),
42071            1023 => self.generate_item_4(&children[0]),
42072            1024 => self.generate_item_5(&children[0]),
42073            1025 => self.generate_item_6(&children[0]),
42074            1026 => self.generate_item_7(&children[0]),
42075            1027 => self.generate_item_8(&children[0]),
42076            1028 => self.generate_item_9(&children[0]),
42077            1029 => self.generate_item_10(&children[0]),
42078            1030 => self.generate_item_11(&children[0]),
42079            1031 => self.generate_item_12(&children[0]),
42080            1032 => self.generate_item_13(&children[0]),
42081            1033 => self.generate_item_14(&children[0]),
42082            1034 => self.generate_item_15(&children[0]),
42083            1035 => self.generate_item_16(&children[0]),
42084            1036 => self.generate_item_17(&children[0]),
42085            1037 => self.generate_item_18(&children[0]),
42086            1038 => self.generate_item_19(&children[0]),
42087            1039 => self.generate_item_20(&children[0]),
42088            1040 => self.generate_item_21(&children[0]),
42089            1041 => self.package_declaration(
42090                &children[0],
42091                &children[1],
42092                &children[2],
42093                &children[3],
42094                &children[4],
42095                &children[5],
42096                &children[6],
42097            ),
42098            1042 => self.package_declaration_list_0(&children[0], &children[1]),
42099            1043 => self.package_declaration_list_1(),
42100            1044 => self.package_declaration_opt0_0(&children[0], &children[1]),
42101            1045 => self.package_declaration_opt0_1(),
42102            1046 => self.package_declaration_opt_0(&children[0]),
42103            1047 => self.package_declaration_opt_1(),
42104            1048 => self.package_group(&children[0], &children[1]),
42105            1049 => self.package_group_group_0(&children[0], &children[1], &children[2]),
42106            1050 => self.package_group_group_list_0(&children[0], &children[1]),
42107            1051 => self.package_group_group_list_1(),
42108            1052 => self.package_group_group_1(&children[0]),
42109            1053 => self.package_group_list_0(&children[0], &children[1]),
42110            1054 => self.package_group_list_1(),
42111            1055 => self.package_item_0(&children[0]),
42112            1056 => self.package_item_1(&children[0]),
42113            1057 => self.package_item_2(&children[0]),
42114            1058 => self.package_item_3(&children[0]),
42115            1059 => self.package_item_4(&children[0]),
42116            1060 => self.package_item_5(&children[0]),
42117            1061 => self.package_item_6(&children[0]),
42118            1062 => self.package_item_7(&children[0]),
42119            1063 => self.alias_declaration(
42120                &children[0],
42121                &children[1],
42122                &children[2],
42123                &children[3],
42124                &children[4],
42125                &children[5],
42126            ),
42127            1064 => self.alias_declaration_group_0(&children[0]),
42128            1065 => self.alias_declaration_group_1(&children[0]),
42129            1066 => self.alias_declaration_group_2(&children[0]),
42130            1067 => self.proto_declaration(&children[0], &children[1]),
42131            1068 => self.proto_declaration_group_0(&children[0]),
42132            1069 => self.proto_declaration_group_1(&children[0]),
42133            1070 => self.proto_declaration_group_2(&children[0]),
42134            1071 => self.proto_module_declaration(
42135                &children[0],
42136                &children[1],
42137                &children[2],
42138                &children[3],
42139                &children[4],
42140            ),
42141            1072 => self.proto_module_declaration_opt0_0(&children[0]),
42142            1073 => self.proto_module_declaration_opt0_1(),
42143            1074 => self.proto_module_declaration_opt_0(&children[0]),
42144            1075 => self.proto_module_declaration_opt_1(),
42145            1076 => self.proto_interface_declaration(
42146                &children[0],
42147                &children[1],
42148                &children[2],
42149                &children[3],
42150                &children[4],
42151                &children[5],
42152            ),
42153            1077 => self.proto_interface_declaration_list_0(&children[0], &children[1]),
42154            1078 => self.proto_interface_declaration_list_1(),
42155            1079 => self.proto_interface_declaration_opt_0(&children[0]),
42156            1080 => self.proto_interface_declaration_opt_1(),
42157            1081 => self.proto_interface_item_0(&children[0]),
42158            1082 => self.proto_interface_item_1(&children[0]),
42159            1083 => self.proto_interface_item_2(&children[0]),
42160            1084 => self.proto_interface_item_3(&children[0]),
42161            1085 => self.proto_interface_item_4(&children[0]),
42162            1086 => self.proto_interface_item_5(&children[0]),
42163            1087 => self.proto_interface_item_6(&children[0]),
42164            1088 => self.proto_package_declaration(
42165                &children[0],
42166                &children[1],
42167                &children[2],
42168                &children[3],
42169                &children[4],
42170            ),
42171            1089 => self.proto_package_declaration_list_0(&children[0], &children[1]),
42172            1090 => self.proto_package_declaration_list_1(),
42173            1091 => self.proto_pacakge_item_0(&children[0]),
42174            1092 => self.proto_pacakge_item_1(&children[0]),
42175            1093 => self.proto_pacakge_item_2(&children[0]),
42176            1094 => self.proto_pacakge_item_3(&children[0]),
42177            1095 => self.proto_pacakge_item_4(&children[0]),
42178            1096 => self.proto_pacakge_item_5(&children[0]),
42179            1097 => self.proto_pacakge_item_6(&children[0]),
42180            1098 => self.proto_const_declaration(
42181                &children[0],
42182                &children[1],
42183                &children[2],
42184                &children[3],
42185                &children[4],
42186            ),
42187            1099 => self.proto_const_declaration_group_0(&children[0]),
42188            1100 => self.proto_const_declaration_group_1(&children[0]),
42189            1101 => self.proto_type_def_declaration(
42190                &children[0],
42191                &children[1],
42192                &children[2],
42193                &children[3],
42194            ),
42195            1102 => self.proto_type_def_declaration_opt_0(&children[0], &children[1]),
42196            1103 => self.proto_type_def_declaration_opt_1(),
42197            1104 => self.proto_function_declaration(
42198                &children[0],
42199                &children[1],
42200                &children[2],
42201                &children[3],
42202                &children[4],
42203                &children[5],
42204            ),
42205            1105 => self.proto_function_declaration_opt1_0(&children[0], &children[1]),
42206            1106 => self.proto_function_declaration_opt1_1(),
42207            1107 => self.proto_function_declaration_opt0_0(&children[0]),
42208            1108 => self.proto_function_declaration_opt0_1(),
42209            1109 => self.proto_function_declaration_opt_0(&children[0]),
42210            1110 => self.proto_function_declaration_opt_1(),
42211            1111 => self.proto_alias_declaration(
42212                &children[0],
42213                &children[1],
42214                &children[2],
42215                &children[3],
42216                &children[4],
42217                &children[5],
42218            ),
42219            1112 => self.proto_alias_declaration_group_0(&children[0]),
42220            1113 => self.proto_alias_declaration_group_1(&children[0]),
42221            1114 => self.proto_alias_declaration_group_2(&children[0]),
42222            1115 => self.embed_declaration(
42223                &children[0],
42224                &children[1],
42225                &children[2],
42226                &children[3],
42227                &children[4],
42228                &children[5],
42229            ),
42230            1116 => self.embed_content(&children[0], &children[1], &children[2]),
42231            1117 => self.embed_content_list_0(&children[0], &children[1]),
42232            1118 => self.embed_content_list_1(),
42233            1119 => self.embed_scoped_identifier(&children[0], &children[1], &children[2]),
42234            1120 => self.embed_item_0(&children[0], &children[1], &children[2]),
42235            1121 => self.embed_item_list_0(&children[0], &children[1]),
42236            1122 => self.embed_item_list_1(),
42237            1123 => self.embed_item_1(&children[0]),
42238            1124 => self.embed_item_2(&children[0]),
42239            1125 => self.include_declaration(
42240                &children[0],
42241                &children[1],
42242                &children[2],
42243                &children[3],
42244                &children[4],
42245                &children[5],
42246                &children[6],
42247            ),
42248            1126 => self.description_group(&children[0], &children[1]),
42249            1127 => self.description_group_group_0(&children[0], &children[1], &children[2]),
42250            1128 => self.description_group_group_list_0(&children[0], &children[1]),
42251            1129 => self.description_group_group_list_1(),
42252            1130 => self.description_group_group_1(&children[0]),
42253            1131 => self.description_group_list_0(&children[0], &children[1]),
42254            1132 => self.description_group_list_1(),
42255            1133 => self.description_item_0(&children[0], &children[1]),
42256            1134 => self.description_item_1(&children[0]),
42257            1135 => self.description_item_2(&children[0]),
42258            1136 => self.description_item_3(&children[0]),
42259            1137 => self.description_item_4(&children[0]),
42260            1138 => self.description_item_opt_0(&children[0]),
42261            1139 => self.description_item_opt_1(),
42262            1140 => self.public_description_item_0(&children[0]),
42263            1141 => self.public_description_item_1(&children[0]),
42264            1142 => self.public_description_item_2(&children[0]),
42265            1143 => self.public_description_item_3(&children[0]),
42266            1144 => self.public_description_item_4(&children[0]),
42267            1145 => self.public_description_item_5(&children[0]),
42268            1146 => self.veryl(&children[0], &children[1]),
42269            1147 => self.veryl_list_0(&children[0], &children[1]),
42270            1148 => self.veryl_list_1(),
42271            _ => Err(ParserError::InternalError(format!(
42272                "Unhandled production number: {prod_num}"
42273            ))
42274            .into()),
42275        }
42276    }
42277
42278    fn on_comment(&mut self, token: Token<'t>) {
42279        self.user_grammar.on_comment(token)
42280    }
42281}