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