#################################################################### # # ANY CHANGE MADE HERE WILL BE LOST ! # # This file was generated using Parse::Yapp version 1.05. # Don't edit this file, edit template.skel.pm and template.yp instead. # #################################################################### package VMXTemplate::Parser; use strict; use base qw(Parse::Yapp::Driver VMXTemplate::Compiler); use VMXTemplate::Utils; use Parse::Yapp::Driver; sub new { my $class = shift; $class = ref($class) || $class; my ($options) = @_; my $self = bless $class->SUPER::new( yyversion => '1.05', yystates => [ {#State 0 DEFAULT => -2, GOTOS => { 'chunks' => 1, 'template' => 2 } }, {#State 1 ACTIONS => { '' => -1, 'literal' => 3, "{{" => 5, 'error' => 4, "" => 69 } }, {#State 24 DEFAULT => -9 }, {#State 25 DEFAULT => -8 }, {#State 26 ACTIONS => { "-->" => 70, "=" => 71 } }, {#State 27 DEFAULT => -29 }, {#State 28 ACTIONS => { 'name' => 72 } }, {#State 29 ACTIONS => { ".." => 39, "-" => 38, "OR" => 41, "<" => 40, "+" => 42, "%" => 43, "==" => 44, ">=" => 45, "*" => 47, "!=" => 48, "AND" => 49, "&&" => 50, "||" => 51, "&" => 52, "/" => 53, "XOR" => 54, "<=" => 55, ">" => 56 }, DEFAULT => -12 }, {#State 30 ACTIONS => { 'name' => 74 }, GOTOS => { 'varref' => 73 } }, {#State 31 ACTIONS => { 'name' => 74 }, GOTOS => { 'varref' => 75 } }, {#State 32 ACTIONS => { 'literal' => 15, "-" => 9, "(" => 17, "!" => 18, "NOT" => 20, "{" => 13, 'name' => 12 }, GOTOS => { 'exp' => 76, 'varref' => 14, 'p11' => 16, 'nonbrace' => 11, 'p10' => 19 } }, {#State 33 DEFAULT => -28 }, {#State 34 DEFAULT => -11 }, {#State 35 DEFAULT => -10 }, {#State 36 DEFAULT => -25 }, {#State 37 DEFAULT => -53 }, {#State 38 ACTIONS => { 'literal' => 15, "-" => 9, "(" => 17, "!" => 18, "NOT" => 20, "{" => 13, 'name' => 12 }, GOTOS => { 'exp' => 77, 'varref' => 14, 'p11' => 16, 'nonbrace' => 11, 'p10' => 19 } }, {#State 39 ACTIONS => { 'literal' => 15, "-" => 9, "(" => 17, "!" => 18, "NOT" => 20, "{" => 13, 'name' => 12 }, GOTOS => { 'exp' => 78, 'varref' => 14, 'p11' => 16, 'nonbrace' => 11, 'p10' => 19 } }, {#State 40 ACTIONS => { 'literal' => 15, "-" => 9, "(" => 17, "!" => 18, "NOT" => 20, "{" => 13, 'name' => 12 }, GOTOS => { 'exp' => 79, 'varref' => 14, 'p11' => 16, 'nonbrace' => 11, 'p10' => 19 } }, {#State 41 ACTIONS => { 'literal' => 15, "-" => 9, "(" => 17, "!" => 18, "NOT" => 20, "{" => 13, 'name' => 12 }, GOTOS => { 'exp' => 80, 'varref' => 14, 'p11' => 16, 'nonbrace' => 11, 'p10' => 19 } }, {#State 42 ACTIONS => { 'literal' => 15, "-" => 9, "(" => 17, "!" => 18, "NOT" => 20, "{" => 13, 'name' => 12 }, GOTOS => { 'exp' => 81, 'varref' => 14, 'p11' => 16, 'nonbrace' => 11, 'p10' => 19 } }, {#State 43 ACTIONS => { 'literal' => 15, "-" => 9, "(" => 17, "!" => 18, "NOT" => 20, "{" => 13, 'name' => 12 }, GOTOS => { 'exp' => 82, 'varref' => 14, 'p11' => 16, 'nonbrace' => 11, 'p10' => 19 } }, {#State 44 ACTIONS => { 'literal' => 15, "-" => 9, "(" => 17, "!" => 18, "NOT" => 20, "{" => 13, 'name' => 12 }, GOTOS => { 'exp' => 83, 'varref' => 14, 'p11' => 16, 'nonbrace' => 11, 'p10' => 19 } }, {#State 45 ACTIONS => { 'literal' => 15, "-" => 9, "(" => 17, "!" => 18, "NOT" => 20, "{" => 13, 'name' => 12 }, GOTOS => { 'exp' => 84, 'varref' => 14, 'p11' => 16, 'nonbrace' => 11, 'p10' => 19 } }, {#State 46 DEFAULT => -6 }, {#State 47 ACTIONS => { 'literal' => 15, "-" => 9, "(" => 17, "!" => 18, "NOT" => 20, "{" => 13, 'name' => 12 }, GOTOS => { 'exp' => 85, 'varref' => 14, 'p11' => 16, 'nonbrace' => 11, 'p10' => 19 } }, {#State 48 ACTIONS => { 'literal' => 15, "-" => 9, "(" => 17, "!" => 18, "NOT" => 20, "{" => 13, 'name' => 12 }, GOTOS => { 'exp' => 86, 'varref' => 14, 'p11' => 16, 'nonbrace' => 11, 'p10' => 19 } }, {#State 49 ACTIONS => { 'literal' => 15, "-" => 9, "(" => 17, "!" => 18, "NOT" => 20, "{" => 13, 'name' => 12 }, GOTOS => { 'exp' => 87, 'varref' => 14, 'p11' => 16, 'nonbrace' => 11, 'p10' => 19 } }, {#State 50 ACTIONS => { 'literal' => 15, "-" => 9, "(" => 17, "!" => 18, "NOT" => 20, "{" => 13, 'name' => 12 }, GOTOS => { 'exp' => 88, 'varref' => 14, 'p11' => 16, 'nonbrace' => 11, 'p10' => 19 } }, {#State 51 ACTIONS => { 'literal' => 15, "-" => 9, "(" => 17, "!" => 18, "NOT" => 20, "{" => 13, 'name' => 12 }, GOTOS => { 'exp' => 89, 'varref' => 14, 'p11' => 16, 'nonbrace' => 11, 'p10' => 19 } }, {#State 52 ACTIONS => { 'literal' => 15, "-" => 9, "(" => 17, "!" => 18, "NOT" => 20, "{" => 13, 'name' => 12 }, GOTOS => { 'exp' => 90, 'varref' => 14, 'p11' => 16, 'nonbrace' => 11, 'p10' => 19 } }, {#State 53 ACTIONS => { 'literal' => 15, "-" => 9, "(" => 17, "!" => 18, "NOT" => 20, "{" => 13, 'name' => 12 }, GOTOS => { 'exp' => 91, 'varref' => 14, 'p11' => 16, 'nonbrace' => 11, 'p10' => 19 } }, {#State 54 ACTIONS => { 'literal' => 15, "-" => 9, "(" => 17, "!" => 18, "NOT" => 20, "{" => 13, 'name' => 12 }, GOTOS => { 'exp' => 92, 'varref' => 14, 'p11' => 16, 'nonbrace' => 11, 'p10' => 19 } }, {#State 55 ACTIONS => { 'literal' => 15, "-" => 9, "(" => 17, "!" => 18, "NOT" => 20, "{" => 13, 'name' => 12 }, GOTOS => { 'exp' => 93, 'varref' => 14, 'p11' => 16, 'nonbrace' => 11, 'p10' => 19 } }, {#State 56 ACTIONS => { 'literal' => 15, "-" => 9, "(" => 17, "!" => 18, "NOT" => 20, "{" => 13, 'name' => 12 }, GOTOS => { 'exp' => 94, 'varref' => 14, 'p11' => 16, 'nonbrace' => 11, 'p10' => 19 } }, {#State 57 DEFAULT => -64 }, {#State 58 ACTIONS => { "-" => 9, "{" => 13, 'name' => 12, 'literal' => 15, "!" => 18, "(" => 17, "NOT" => 20, ")" => 95 }, GOTOS => { 'exp' => 97, 'nonbrace' => 11, 'gtpair' => 98, 'varref' => 14, 'p11' => 16, 'p10' => 19, 'gthash' => 99, 'list' => 96 } }, {#State 59 ACTIONS => { "," => 100 }, DEFAULT => -70 }, {#State 60 ACTIONS => { ".." => 39, "-" => 38, "OR" => 41, "<" => 40, "+" => 42, "%" => 43, "," => 101, "==" => 44, ">=" => 45, "*" => 47, "!=" => 48, "AND" => 49, "&&" => 50, "||" => 51, "&" => 52, "/" => 53, "XOR" => 54, "=>" => 102, "<=" => 55, ">" => 56 } }, {#State 61 DEFAULT => -76 }, {#State 62 ACTIONS => { "}" => 103 } }, {#State 63 ACTIONS => { 'literal' => 15, "-" => 9, "(" => 17, "!" => 18, "NOT" => 20, "{" => 13, 'name' => 12 }, GOTOS => { 'exp' => 104, 'varref' => 14, 'p11' => 16, 'nonbrace' => 11, 'p10' => 19 } }, {#State 64 ACTIONS => { 'name' => 105 } }, {#State 65 DEFAULT => -79 }, {#State 66 ACTIONS => { ".." => 39, "-" => 38, "OR" => 41, "<" => 40, "+" => 42, "%" => 43, "==" => 44, ">=" => 45, "*" => 47, ")" => 106, "!=" => 48, "AND" => 49, "&&" => 50, "||" => 51, "&" => 52, "/" => 53, "XOR" => 54, "<=" => 55, ">" => 56 } }, {#State 67 DEFAULT => -56 }, {#State 68 DEFAULT => -57 }, {#State 69 DEFAULT => -5 }, {#State 70 DEFAULT => -2, GOTOS => { 'chunks' => 107 } }, {#State 71 ACTIONS => { 'literal' => 15, "-" => 9, "(" => 17, "!" => 18, "NOT" => 20, "{" => 13, 'name' => 12 }, GOTOS => { 'exp' => 108, 'varref' => 14, 'p11' => 16, 'nonbrace' => 11, 'p10' => 19 } }, {#State 72 ACTIONS => { "(" => 109 } }, {#State 73 ACTIONS => { "-->" => 110, "[" => 63, "." => 64, "=" => 111 }, GOTOS => { 'varpart' => 65 } }, {#State 74 DEFAULT => -78 }, {#State 75 ACTIONS => { "[" => 63, "." => 64, "=" => 112 }, GOTOS => { 'varpart' => 65 } }, {#State 76 ACTIONS => { ".." => 39, "-" => 38, "OR" => 41, "<" => 40, "+" => 42, "%" => 43, "==" => 44, ">=" => 45, "*" => 47, "!=" => 48, "AND" => 49, "&&" => 50, "||" => 51, "&" => 52, "/" => 53, "-->" => 113, "XOR" => 54, "<=" => 55, ">" => 56 } }, {#State 77 ACTIONS => { "%" => 43, "*" => 47, "&" => 52, "/" => 53 }, DEFAULT => -46 }, {#State 78 ACTIONS => { "-" => 38, "OR" => 41, "<" => 40, "+" => 42, "%" => 43, "==" => 44, ">=" => 45, "*" => 47, "!=" => 48, "AND" => 49, "&&" => 50, "||" => 51, "&" => 52, "/" => 53, "XOR" => 54, "<=" => 55, ">" => 56 }, DEFAULT => -33 }, {#State 79 ACTIONS => { "-" => 38, "<" => undef, "+" => 42, "%" => 43, "==" => undef, ">=" => undef, "*" => 47, "!=" => undef, "&" => 52, "/" => 53, "<=" => undef, ">" => undef }, DEFAULT => -41 }, {#State 80 ACTIONS => { "-" => 38, "<" => 40, "+" => 42, "%" => 43, "==" => 44, ">=" => 45, "*" => 47, "!=" => 48, "AND" => 49, "&&" => 50, "&" => 52, "/" => 53, "<=" => 55, ">" => 56 }, DEFAULT => -35 }, {#State 81 ACTIONS => { "%" => 43, "*" => 47, "&" => 52, "/" => 53 }, DEFAULT => -45 }, {#State 82 DEFAULT => -50 }, {#State 83 ACTIONS => { "-" => 38, "<" => undef, "+" => 42, "%" => 43, "==" => undef, ">=" => undef, "*" => 47, "!=" => undef, "&" => 52, "/" => 53, "<=" => undef, ">" => undef }, DEFAULT => -39 }, {#State 84 ACTIONS => { "-" => 38, "<" => undef, "+" => 42, "%" => 43, "==" => undef, ">=" => undef, "*" => 47, "!=" => undef, "&" => 52, "/" => 53, "<=" => undef, ">" => undef }, DEFAULT => -44 }, {#State 85 DEFAULT => -48 }, {#State 86 ACTIONS => { "-" => 38, "<" => undef, "+" => 42, "%" => 43, "==" => undef, ">=" => undef, "*" => 47, "!=" => undef, "&" => 52, "/" => 53, "<=" => undef, ">" => undef }, DEFAULT => -40 }, {#State 87 ACTIONS => { "-" => 38, "<" => 40, "+" => 42, "%" => 43, "==" => 44, ">=" => 45, "*" => 47, "!=" => 48, "&" => 52, "/" => 53, "<=" => 55, ">" => 56 }, DEFAULT => -38 }, {#State 88 ACTIONS => { "-" => 38, "<" => 40, "+" => 42, "%" => 43, "==" => 44, ">=" => 45, "*" => 47, "!=" => 48, "&" => 52, "/" => 53, "<=" => 55, ">" => 56 }, DEFAULT => -37 }, {#State 89 ACTIONS => { "-" => 38, "<" => 40, "+" => 42, "%" => 43, "==" => 44, ">=" => 45, "*" => 47, "!=" => 48, "AND" => 49, "&&" => 50, "&" => 52, "/" => 53, "<=" => 55, ">" => 56 }, DEFAULT => -34 }, {#State 90 ACTIONS => { "%" => 43, "*" => 47, "/" => 53 }, DEFAULT => -47 }, {#State 91 DEFAULT => -49 }, {#State 92 ACTIONS => { "-" => 38, "<" => 40, "+" => 42, "%" => 43, "==" => 44, ">=" => 45, "*" => 47, "!=" => 48, "AND" => 49, "&&" => 50, "&" => 52, "/" => 53, "<=" => 55, ">" => 56 }, DEFAULT => -36 }, {#State 93 ACTIONS => { "-" => 38, "<" => undef, "+" => 42, "%" => 43, "==" => undef, ">=" => undef, "*" => 47, "!=" => undef, "&" => 52, "/" => 53, "<=" => undef, ">" => undef }, DEFAULT => -43 }, {#State 94 ACTIONS => { "-" => 38, "<" => undef, "+" => 42, "%" => 43, "==" => undef, ">=" => undef, "*" => 47, "!=" => undef, "&" => 52, "/" => 53, "<=" => undef, ">" => undef }, DEFAULT => -42 }, {#State 95 DEFAULT => -61 }, {#State 96 ACTIONS => { ")" => 114 } }, {#State 97 ACTIONS => { ".." => 39, "-" => 38, "OR" => 41, "<" => 40, "+" => 42, "%" => 43, "," => 115, "==" => 44, ">=" => 45, "*" => 47, "!=" => 48, "AND" => 49, "&&" => 50, "||" => 51, "&" => 52, "/" => 53, "XOR" => 54, "=>" => 102, "<=" => 55, ">" => 56 }, DEFAULT => -65 }, {#State 98 ACTIONS => { "," => 116 }, DEFAULT => -73 }, {#State 99 ACTIONS => { ")" => 117 } }, {#State 100 ACTIONS => { "-" => 9, "{" => 13, 'name' => 12, 'literal' => 15, "!" => 18, "(" => 17, "NOT" => 20 }, DEFAULT => -72, GOTOS => { 'exp' => 60, 'nonbrace' => 11, 'gtpair' => 61, 'varref' => 14, 'hash' => 118, 'p11' => 16, 'pair' => 59, 'p10' => 19 } }, {#State 101 ACTIONS => { 'literal' => 15, "-" => 9, "(" => 17, "!" => 18, "NOT" => 20, "{" => 13, 'name' => 12 }, GOTOS => { 'exp' => 119, 'varref' => 14, 'p11' => 16, 'nonbrace' => 11, 'p10' => 19 } }, {#State 102 ACTIONS => { 'literal' => 15, "-" => 9, "(" => 17, "!" => 18, "NOT" => 20, "{" => 13, 'name' => 12 }, GOTOS => { 'exp' => 120, 'varref' => 14, 'p11' => 16, 'nonbrace' => 11, 'p10' => 19 } }, {#State 103 DEFAULT => -58 }, {#State 104 ACTIONS => { ".." => 39, "-" => 38, "OR" => 41, "<" => 40, "+" => 42, "%" => 43, "==" => 44, ">=" => 45, "*" => 47, "]" => 121, "!=" => 48, "AND" => 49, "&&" => 50, "||" => 51, "&" => 52, "/" => 53, "XOR" => 54, "<=" => 55, ">" => 56 } }, {#State 105 ACTIONS => { "(" => 122 }, DEFAULT => -80 }, {#State 106 DEFAULT => -84, GOTOS => { 'varpath' => 123 } }, {#State 107 ACTIONS => { 'literal' => 3, "{{" => 5, 'error' => 4, "" => 142, "XOR" => 54, "<=" => 55, ">" => 56 } }, {#State 130 ACTIONS => { 'literal' => 3, "{{" => 5, 'error' => 4, "" => 158 } }, {#State 154 ACTIONS => { 'literal' => 15, "-" => 9, "(" => 17, "!" => 18, "NOT" => 20, "{" => 13, 'name' => 12 }, GOTOS => { 'varref' => 14, 'exp' => 159, 'p11' => 16, 'nonbrace' => 11, 'p10' => 19 } }, {#State 155 ACTIONS => { "SET" => 30, "END" => 160, "-" => 9, "MACRO" => 21, "{" => 13, 'name' => 12, "BLOCK" => 22, 'literal' => 15, "IF" => 32, "(" => 17, "!" => 18, "FOR" => 33, "NOT" => 20, "FOREACH" => 27, "FUNCTION" => 36 }, GOTOS => { 'exp' => 29, 'nonbrace' => 11, 'for' => 31, 'code_chunk' => 23, 'varref' => 14, 'p11' => 16, 'c_set' => 24, 'p10' => 19, 'c_if' => 25, 'fn_def' => 26, 'c_for' => 34, 'c_fn' => 35, 'fn' => 28 } }, {#State 156 ACTIONS => { "-" => 9, "MACRO" => 21, "BLOCK" => 22, "ELSIF" => 150, 'literal' => 15, "!" => 18, "ELSE" => 162, "FOREACH" => 27, "END" => 161, "SET" => 30, "{" => 13, 'name' => 12, "ELSEIF" => 152, "IF" => 32, "(" => 17, "FOR" => 33, "NOT" => 20, "FUNCTION" => 36 }, GOTOS => { 'exp' => 29, 'nonbrace' => 11, 'for' => 31, 'code_chunk' => 23, 'varref' => 14, 'p11' => 16, 'c_set' => 24, 'p10' => 19, 'c_if' => 25, 'fn_def' => 26, 'c_for' => 34, 'elseif' => 163, 'c_fn' => 35, 'fn' => 28 } }, {#State 157 DEFAULT => -30 }, {#State 158 DEFAULT => -2, GOTOS => { 'chunks' => 164 } }, {#State 159 ACTIONS => { ".." => 39, "-" => 38, "OR" => 41, "<" => 40, "+" => 42, "%" => 43, "==" => 44, ">=" => 45, "*" => 47, "!=" => 48, "AND" => 49, "||" => 51, "&&" => 50, "&" => 52, "-->" => 165, "/" => 53, "XOR" => 54, "<=" => 55, ">" => 56 } }, {#State 160 DEFAULT => -24 }, {#State 161 DEFAULT => -15 }, {#State 162 ACTIONS => { "IF" => 157, "-->" => 166 } }, {#State 163 ACTIONS => { 'literal' => 15, "-" => 9, "(" => 17, "!" => 18, "NOT" => 20, "{" => 13, 'name' => 12 }, GOTOS => { 'varref' => 14, 'exp' => 167, 'p11' => 16, 'nonbrace' => 11, 'p10' => 19 } }, {#State 164 ACTIONS => { 'literal' => 3, 'error' => 4, "{{" => 5, "" => 170, "/" => 53, "XOR" => 54, "<=" => 55, ">" => 56 } }, {#State 168 ACTIONS => { "SET" => 30, "END" => 171, "-" => 9, "MACRO" => 21, "{" => 13, 'name' => 12, "BLOCK" => 22, 'literal' => 15, "IF" => 32, "(" => 17, "!" => 18, "FOR" => 33, "NOT" => 20, "FOREACH" => 27, "FUNCTION" => 36 }, GOTOS => { 'exp' => 29, 'nonbrace' => 11, 'for' => 31, 'code_chunk' => 23, 'varref' => 14, 'p11' => 16, 'c_set' => 24, 'p10' => 19, 'c_if' => 25, 'fn_def' => 26, 'c_for' => 34, 'c_fn' => 35, 'fn' => 28 } }, {#State 169 ACTIONS => { 'literal' => 3, 'error' => 4, "{{" => 5, "