X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=2015%2Fy%2FParser.pm;fp=2015%2Fy%2FParser.pm;h=e988389219cd00f1a370d305949c139fd04c0092;hb=7061fbf4c001ff87b35c0cf28e12c185c01bea79;hp=0000000000000000000000000000000000000000;hpb=bb4cf23d688aa8351ae1efd4a7af429f10822450;p=aoc.git diff --git a/2015/y/Parser.pm b/2015/y/Parser.pm new file mode 100644 index 0000000..e988389 --- /dev/null +++ b/2015/y/Parser.pm @@ -0,0 +1,1116 @@ +#################################################################### +# +# This file was generated using Parse::Yapp version 1.21. +# +# Don't edit this file, use source file instead. +# +# ANY CHANGE MADE HERE WILL BE LOST ! +# +#################################################################### +package Parser; +use vars qw ( @ISA ); +use strict; + +@ISA= qw ( Parse::Yapp::Driver ); +use Parse::Yapp::Driver; + +#line 1 "task38.yp" + + my $count = 0; + + +sub new { + my($class)=shift; + ref($class) + and $class=ref($class); + + my($self)=$class->SUPER::new( yyversion => '1.21', + yystates => +[ + {#State 0 + ACTIONS => { + 'C' => 7, + "H" => 3, + "O" => 8, + "N" => 4 + }, + GOTOS => { + 'O' => 1, + 'H' => 2, + 'N' => 5, + 'e' => 6 + } + }, + {#State 1 + ACTIONS => { + "Mg" => 10, + "B" => 12, + "Ti" => 15, + 'Rn' => 11 + }, + GOTOS => { + 'Mg' => 9, + 'B' => 14, + 'Ti' => 13 + } + }, + {#State 2 + ACTIONS => { + "F" => 17, + "Ca" => 23, + "P" => 20, + "Si" => 19 + }, + GOTOS => { + 'P' => 18, + 'Si' => 22, + 'Ca' => 16, + 'F' => 21 + } + }, + {#State 3 + DEFAULT => -19 + }, + {#State 4 + DEFAULT => -33 + }, + {#State 5 + ACTIONS => { + "Th" => 28, + "Al" => 24, + 'Rn' => 27 + }, + GOTOS => { + 'Th' => 25, + 'Al' => 26 + } + }, + {#State 6 + ACTIONS => { + '' => 29 + } + }, + {#State 7 + ACTIONS => { + 'Rn' => 30 + } + }, + {#State 8 + DEFAULT => -36 + }, + {#State 9 + DEFAULT => -55 + }, + {#State 10 + DEFAULT => -30 + }, + {#State 11 + ACTIONS => { + "Ca" => 23, + "F" => 17, + "P" => 20, + "Si" => 19 + }, + GOTOS => { + 'F' => 33, + 'Ca' => 31, + 'Si' => 34, + 'P' => 32 + } + }, + {#State 12 + DEFAULT => -4 + }, + {#State 13 + ACTIONS => { + "Mg" => 10, + "B" => 12, + 'Rn' => 38, + "Ti" => 15 + }, + GOTOS => { + 'B' => 35, + 'Mg' => 37, + 'Ti' => 36 + } + }, + {#State 14 + ACTIONS => { + "Si" => 19, + "P" => 20, + "F" => 17, + "Ca" => 23 + }, + GOTOS => { + 'F' => 41, + 'Ca' => 40, + 'Si' => 34, + 'P' => 39 + } + }, + {#State 15 + DEFAULT => -50 + }, + {#State 16 + ACTIONS => { + "P" => 20, + "Si" => 19, + "F" => 17, + "Ca" => 23 + }, + GOTOS => { + 'Si' => 45, + 'P' => 43, + 'Ca' => 42, + 'F' => 44 + } + }, + {#State 17 + DEFAULT => -15 + }, + {#State 18 + ACTIONS => { + "B" => 12, + "Mg" => 10, + "Ti" => 15, + 'Rn' => 47 + }, + GOTOS => { + 'B' => 49, + 'Mg' => 46, + 'Ti' => 48 + } + }, + {#State 19 + DEFAULT => -46 + }, + {#State 20 + DEFAULT => -42 + }, + {#State 21 + DEFAULT => -53 + }, + {#State 22 + ACTIONS => { + "Th" => 28, + 'Rn' => 51, + "Al" => 24 + }, + GOTOS => { + 'Th' => 50, + 'Al' => 52 + } + }, + {#State 23 + DEFAULT => -8 + }, + {#State 24 + DEFAULT => -1 + }, + {#State 25 + ACTIONS => { + "F" => 17, + 'Rn' => 53, + "Ca" => 23, + "Si" => 19, + "P" => 20 + }, + GOTOS => { + 'Si' => 34, + 'P' => 32, + 'Ca' => 55, + 'F' => 54 + } + }, + {#State 26 + DEFAULT => -54 + }, + {#State 27 + ACTIONS => { + "Ca" => 23, + "Si" => 19, + "P" => 20, + "Mg" => 10, + "F" => 17, + "Ti" => 15, + "B" => 12 + }, + GOTOS => { + 'Mg' => 58, + 'F' => 56, + 'Si' => 34, + 'Ti' => 59, + 'B' => 57, + 'Ca' => 31, + 'P' => 32 + } + }, + {#State 28 + DEFAULT => -48 + }, + {#State 29 + DEFAULT => 0 + }, + {#State 30 + ACTIONS => { + "Al" => 24, + "Ti" => 15, + "F" => 17, + "B" => 12, + "Ca" => 23, + "Th" => 28, + "Mg" => 10, + "P" => 20, + "Si" => 19 + }, + GOTOS => { + 'F' => 62, + 'Mg' => 60, + 'Si' => 34, + 'Al' => 63, + 'Th' => 61, + 'Ca' => 31, + 'B' => 57, + 'Ti' => 59, + 'P' => 32 + } + }, + {#State 31 + ACTIONS => { + "Ca" => 23, + "F" => 17, + "Si" => 19, + "P" => 20 + }, + GOTOS => { + 'Si' => 45, + 'P' => 43, + 'Ca' => 42, + 'F' => 44 + } + }, + {#State 32 + ACTIONS => { + "B" => 12, + "Mg" => 10, + "Ti" => 15, + 'Rn' => 47 + }, + GOTOS => { + 'Mg' => 46, + 'B' => 49, + 'Ti' => 48 + } + }, + {#State 33 + ACTIONS => { + 'Ar' => 64 + } + }, + {#State 34 + ACTIONS => { + "Th" => 28, + "Al" => 24, + 'Rn' => 51 + }, + GOTOS => { + 'Al' => 52, + 'Th' => 50 + } + }, + {#State 35 + ACTIONS => { + "Ca" => 23, + "Si" => 19, + "P" => 20, + "F" => 17 + }, + DEFAULT => -6, + GOTOS => { + 'Ca' => 40, + 'F' => 41, + 'P' => 39, + 'Si' => 34 + } + }, + {#State 36 + ACTIONS => { + "Mg" => 10, + "B" => 12, + "Ti" => 15, + 'Rn' => 38 + }, + GOTOS => { + 'Mg' => 37, + 'B' => 35, + 'Ti' => 36 + } + }, + {#State 37 + DEFAULT => -32 + }, + {#State 38 + ACTIONS => { + "Si" => 19, + "P" => 20, + "F" => 17, + "Ca" => 23 + }, + GOTOS => { + 'Si' => 34, + 'P' => 32, + 'Ca' => 31, + 'F' => 65 + } + }, + {#State 39 + ACTIONS => { + "Ti" => 15, + 'Rn' => 47, + "Mg" => 10, + "B" => 12 + }, + GOTOS => { + 'Ti' => 48, + 'Mg' => 46, + 'B' => 49 + } + }, + {#State 40 + ACTIONS => { + "F" => 17, + "Ca" => 23, + "Si" => 19, + "P" => 20 + }, + DEFAULT => -5, + GOTOS => { + 'Si' => 45, + 'P' => 43, + 'Ca' => 42, + 'F' => 44 + } + }, + {#State 41 + DEFAULT => -31 + }, + {#State 42 + ACTIONS => { + "F" => 17, + "Si" => 19, + "P" => 20, + "Ca" => 23 + }, + DEFAULT => -9, + GOTOS => { + 'P' => 43, + 'Si' => 45, + 'F' => 44, + 'Ca' => 42 + } + }, + {#State 43 + ACTIONS => { + "Mg" => 10, + "B" => 12, + "Ti" => 15, + 'Rn' => 47 + }, + GOTOS => { + 'Mg' => 46, + 'Ti' => 48, + 'B' => 49 + } + }, + {#State 44 + DEFAULT => -16 + }, + {#State 45 + ACTIONS => { + "Al" => 24, + 'Rn' => 51, + "Th" => 28 + }, + GOTOS => { + 'Al' => 52, + 'Th' => 50 + } + }, + {#State 46 + DEFAULT => -17 + }, + {#State 47 + ACTIONS => { + "F" => 17, + "Ca" => 23, + "Si" => 19, + "P" => 20 + }, + GOTOS => { + 'F' => 66, + 'Ca' => 31, + 'P' => 32, + 'Si' => 34 + } + }, + {#State 48 + ACTIONS => { + "Ti" => 15, + 'Rn' => 38, + "B" => 12, + "Mg" => 10 + }, + GOTOS => { + 'Mg' => 37, + 'Ti' => 36, + 'B' => 35 + } + }, + {#State 49 + ACTIONS => { + "F" => 17, + "P" => 20, + "Si" => 19, + "Ca" => 23 + }, + DEFAULT => -10, + GOTOS => { + 'Si' => 34, + 'P' => 39, + 'F' => 41, + 'Ca' => 40 + } + }, + {#State 50 + ACTIONS => { + "Si" => 19, + "P" => 20, + "Ca" => 23, + 'Rn' => 53, + "F" => 17 + }, + GOTOS => { + 'Ca' => 55, + 'F' => 54, + 'Si' => 34, + 'P' => 32 + } + }, + {#State 51 + ACTIONS => { + "F" => 17, + "Ti" => 15, + "B" => 12, + "Ca" => 23, + "Mg" => 10, + "Si" => 19, + "P" => 20 + }, + GOTOS => { + 'Mg' => 68, + 'F' => 67, + 'Si' => 34, + 'B' => 57, + 'Ti' => 59, + 'Ca' => 31, + 'P' => 32 + } + }, + {#State 52 + DEFAULT => -18 + }, + {#State 53 + ACTIONS => { + "Ca" => 23, + "F" => 17, + "Si" => 19, + "P" => 20 + }, + GOTOS => { + 'P' => 32, + 'Si' => 34, + 'F' => 69, + 'Ca' => 31 + } + }, + {#State 54 + DEFAULT => -2 + }, + {#State 55 + ACTIONS => { + "P" => 20, + "Si" => 19, + "Ca" => 23, + "F" => 17 + }, + DEFAULT => -49, + GOTOS => { + 'Si' => 45, + 'P' => 43, + 'Ca' => 42, + 'F' => 44 + } + }, + {#State 56 + ACTIONS => { + 'Y' => 70, + 'Ar' => 71 + } + }, + {#State 57 + ACTIONS => { + "F" => 17, + "Ca" => 23, + "P" => 20, + "Si" => 19 + }, + GOTOS => { + 'Si' => 34, + 'P' => 39, + 'F' => 41, + 'Ca' => 40 + } + }, + {#State 58 + ACTIONS => { + 'Ar' => 72 + } + }, + {#State 59 + ACTIONS => { + "Mg" => 10, + "B" => 12, + "Ti" => 15, + 'Rn' => 38 + }, + GOTOS => { + 'B' => 35, + 'Ti' => 36, + 'Mg' => 37 + } + }, + {#State 60 + ACTIONS => { + 'Ar' => 73, + 'Y' => 74 + } + }, + {#State 61 + ACTIONS => { + "P" => 20, + "Si" => 19, + "Ca" => 23, + 'Rn' => 53, + "F" => 17 + }, + GOTOS => { + 'Si' => 34, + 'P' => 32, + 'F' => 54, + 'Ca' => 55 + } + }, + {#State 62 + ACTIONS => { + 'Ar' => 75, + 'Y' => 76 + } + }, + {#State 63 + ACTIONS => { + 'Ar' => 77 + } + }, + {#State 64 + DEFAULT => -29 + }, + {#State 65 + ACTIONS => { + 'Ar' => 78 + } + }, + {#State 66 + ACTIONS => { + 'Ar' => 79 + } + }, + {#State 67 + ACTIONS => { + 'Y' => 81, + 'Ar' => 80 + } + }, + {#State 68 + ACTIONS => { + 'Ar' => 82 + } + }, + {#State 69 + ACTIONS => { + 'Ar' => 83 + } + }, + {#State 70 + ACTIONS => { + "Si" => 19, + "P" => 20, + "Ca" => 23, + "F" => 17 + }, + GOTOS => { + 'Si' => 34, + 'P' => 32, + 'Ca' => 31, + 'F' => 84 + } + }, + {#State 71 + DEFAULT => -40 + }, + {#State 72 + DEFAULT => -26 + }, + {#State 73 + DEFAULT => -38 + }, + {#State 74 + ACTIONS => { + "Si" => 19, + "P" => 20, + "Ca" => 23, + "F" => 17 + }, + GOTOS => { + 'P' => 32, + 'Si' => 34, + 'Ca' => 31, + 'F' => 85 + } + }, + {#State 75 + DEFAULT => -34 + }, + {#State 76 + ACTIONS => { + "B" => 12, + "F" => 17, + "Ti" => 15, + "Mg" => 10, + "Si" => 19, + "P" => 20, + "Ca" => 23 + }, + GOTOS => { + 'P' => 32, + 'Ti' => 59, + 'B' => 57, + 'Ca' => 31, + 'Si' => 34, + 'Mg' => 87, + 'F' => 86 + } + }, + {#State 77 + DEFAULT => -20 + }, + {#State 78 + DEFAULT => -7 + }, + {#State 79 + DEFAULT => -11 + }, + {#State 80 + DEFAULT => -45 + }, + {#State 81 + ACTIONS => { + "Ca" => 23, + "F" => 17, + "Si" => 19, + "P" => 20 + }, + GOTOS => { + 'Si' => 34, + 'P' => 32, + 'Ca' => 31, + 'F' => 88 + } + }, + {#State 82 + DEFAULT => -13 + }, + {#State 83 + DEFAULT => -3 + }, + {#State 84 + ACTIONS => { + 'Ar' => 89 + } + }, + {#State 85 + ACTIONS => { + 'Ar' => 90 + } + }, + {#State 86 + ACTIONS => { + 'Y' => 91, + 'Ar' => 92 + } + }, + {#State 87 + ACTIONS => { + 'Ar' => 93 + } + }, + {#State 88 + ACTIONS => { + 'Ar' => 94 + } + }, + {#State 89 + DEFAULT => -25 + }, + {#State 90 + DEFAULT => -23 + }, + {#State 91 + ACTIONS => { + "F" => 17, + "Ca" => 23, + "P" => 20, + "Si" => 19 + }, + GOTOS => { + 'Si' => 34, + 'P' => 32, + 'F' => 95, + 'Ca' => 31 + } + }, + {#State 92 + DEFAULT => -37 + }, + {#State 93 + DEFAULT => -22 + }, + {#State 94 + DEFAULT => -12 + }, + {#State 95 + ACTIONS => { + 'Ar' => 96 + } + }, + {#State 96 + DEFAULT => -21 + } +], + yyrules => +[ + [#Rule 0 + '$start', 2, undef + ], + [#Rule 1 + 'Al', 1, undef + ], + [#Rule 2 + 'Al', 2, +sub +#line 10 "task38.yp" +{ shift->YYData->{count}++ } + ], + [#Rule 3 + 'Al', 4, +sub +#line 11 "task38.yp" +{ shift->YYData->{count}++ } + ], + [#Rule 4 + 'B', 1, undef + ], + [#Rule 5 + 'B', 2, +sub +#line 14 "task38.yp" +{ shift->YYData->{count}++ } + ], + [#Rule 6 + 'B', 2, +sub +#line 15 "task38.yp" +{ shift->YYData->{count}++ } + ], + [#Rule 7 + 'B', 4, +sub +#line 16 "task38.yp" +{ shift->YYData->{count}++ } + ], + [#Rule 8 + 'Ca', 1, undef + ], + [#Rule 9 + 'Ca', 2, +sub +#line 19 "task38.yp" +{ shift->YYData->{count}++ } + ], + [#Rule 10 + 'Ca', 2, +sub +#line 20 "task38.yp" +{ shift->YYData->{count}++ } + ], + [#Rule 11 + 'Ca', 4, +sub +#line 21 "task38.yp" +{ shift->YYData->{count}++ } + ], + [#Rule 12 + 'Ca', 6, +sub +#line 22 "task38.yp" +{ shift->YYData->{count}++ } + ], + [#Rule 13 + 'Ca', 4, +sub +#line 23 "task38.yp" +{ shift->YYData->{count}++ } + ], + [#Rule 14 + 'Ca', 2, +sub +#line 24 "task38.yp" +{ shift->YYData->{count}++ } + ], + [#Rule 15 + 'F', 1, undef + ], + [#Rule 16 + 'F', 2, +sub +#line 27 "task38.yp" +{ shift->YYData->{count}++ } + ], + [#Rule 17 + 'F', 2, +sub +#line 28 "task38.yp" +{ shift->YYData->{count}++ } + ], + [#Rule 18 + 'F', 2, +sub +#line 29 "task38.yp" +{ shift->YYData->{count}++ } + ], + [#Rule 19 + 'H', 1, undef + ], + [#Rule 20 + 'H', 4, +sub +#line 32 "task38.yp" +{ shift->YYData->{count}++ } + ], + [#Rule 21 + 'H', 8, +sub +#line 33 "task38.yp" +{ shift->YYData->{count}++ } + ], + [#Rule 22 + 'H', 6, +sub +#line 34 "task38.yp" +{ shift->YYData->{count}++ } + ], + [#Rule 23 + 'H', 6, +sub +#line 35 "task38.yp" +{ shift->YYData->{count}++ } + ], + [#Rule 24 + 'H', 2, +sub +#line 36 "task38.yp" +{ shift->YYData->{count}++ } + ], + [#Rule 25 + 'H', 6, +sub +#line 37 "task38.yp" +{ shift->YYData->{count}++ } + ], + [#Rule 26 + 'H', 4, +sub +#line 38 "task38.yp" +{ shift->YYData->{count}++ } + ], + [#Rule 27 + 'H', 2, +sub +#line 39 "task38.yp" +{ shift->YYData->{count}++ } + ], + [#Rule 28 + 'H', 2, +sub +#line 40 "task38.yp" +{ shift->YYData->{count}++ } + ], + [#Rule 29 + 'H', 4, +sub +#line 41 "task38.yp" +{ shift->YYData->{count}++ } + ], + [#Rule 30 + 'Mg', 1, undef + ], + [#Rule 31 + 'Mg', 2, +sub +#line 44 "task38.yp" +{ shift->YYData->{count}++ } + ], + [#Rule 32 + 'Mg', 2, +sub +#line 45 "task38.yp" +{ shift->YYData->{count}++ } + ], + [#Rule 33 + 'N', 1, undef + ], + [#Rule 34 + 'N', 4, +sub +#line 48 "task38.yp" +{ shift->YYData->{count}++ } + ], + [#Rule 35 + 'N', 2, +sub +#line 49 "task38.yp" +{ shift->YYData->{count}++ } + ], + [#Rule 36 + 'O', 1, undef + ], + [#Rule 37 + 'O', 6, +sub +#line 52 "task38.yp" +{ shift->YYData->{count}++ } + ], + [#Rule 38 + 'O', 4, +sub +#line 53 "task38.yp" +{ shift->YYData->{count}++ } + ], + [#Rule 39 + 'O', 2, +sub +#line 54 "task38.yp" +{ shift->YYData->{count}++ } + ], + [#Rule 40 + 'O', 4, +sub +#line 55 "task38.yp" +{ shift->YYData->{count}++ } + ], + [#Rule 41 + 'O', 2, +sub +#line 56 "task38.yp" +{ shift->YYData->{count}++ } + ], + [#Rule 42 + 'P', 1, undef + ], + [#Rule 43 + 'P', 2, +sub +#line 59 "task38.yp" +{ shift->YYData->{count}++ } + ], + [#Rule 44 + 'P', 2, +sub +#line 60 "task38.yp" +{ shift->YYData->{count}++ } + ], + [#Rule 45 + 'P', 4, +sub +#line 61 "task38.yp" +{ shift->YYData->{count}++ } + ], + [#Rule 46 + 'Si', 1, undef + ], + [#Rule 47 + 'Si', 2, +sub +#line 64 "task38.yp" +{ shift->YYData->{count}++ } + ], + [#Rule 48 + 'Th', 1, undef + ], + [#Rule 49 + 'Th', 2, +sub +#line 67 "task38.yp" +{ shift->YYData->{count}++ } + ], + [#Rule 50 + 'Ti', 1, undef + ], + [#Rule 51 + 'Ti', 2, +sub +#line 70 "task38.yp" +{ shift->YYData->{count}++ } + ], + [#Rule 52 + 'Ti', 2, +sub +#line 71 "task38.yp" +{ shift->YYData->{count}++ } + ], + [#Rule 53 + 'e', 2, +sub +#line 74 "task38.yp" +{ shift->YYData->{count}++ } + ], + [#Rule 54 + 'e', 2, +sub +#line 75 "task38.yp" +{ shift->YYData->{count}++ } + ], + [#Rule 55 + 'e', 2, +sub +#line 76 "task38.yp" +{ shift->YYData->{count}++ } + ] +], + @_); + bless($self,$class); +} + +#line 78 "task38.yp" + + +1;