#################################################################### # # This file was generated using Parse::Yapp version 1.05. # # Don't edit this file, use source file instead. # # ANY CHANGE MADE HERE WILL BE LOST ! # #################################################################### package Parse::Pidl::Expr; use vars qw ( @ISA ); use strict; @ISA= qw ( Parse::Yapp::Driver ); use Parse::Yapp::Driver; sub new { my($class)=shift; ref($class) and $class=ref($class); my($self)=$class->SUPER::new( yyversion => '1.05', yystates => [ {#State 0 ACTIONS => { "-" => 1, "~" => 3, "&" => 4, 'NUM' => 5, 'TEXT' => 6, "(" => 7, "!" => 8, "*" => 9, 'VAR' => 10 }, GOTOS => { 'exp' => 2, 'var' => 11, 'func' => 12, 'possible_pointer' => 13 } }, {#State 1 ACTIONS => { "-" => 1, "~" => 3, "&" => 4, 'TEXT' => 6, 'NUM' => 5, "(" => 7, "!" => 8, "*" => 9, 'VAR' => 10 }, GOTOS => { 'exp' => 14, 'var' => 11, 'func' => 12, 'possible_pointer' => 13 } }, {#State 2 ACTIONS => { '' => 16, "-" => 15, "<" => 17, "+" => 18, "%" => 19, "==" => 20, "^" => 21, "*" => 22, ">>" => 23, "!=" => 24, "?" => 25, "||" => 26, "&&" => 27, "&" => 28, "/" => 29, "|" => 30, "<<" => 32, "=>" => 31, "<=" => 33, ">" => 34 } }, {#State 3 ACTIONS => { "-" => 1, "~" => 3, "&" => 4, 'TEXT' => 6, 'NUM' => 5, "!" => 8, "(" => 7, "*" => 9, 'VAR' => 10 }, GOTOS => { 'exp' => 35, 'var' => 11, 'func' => 12, 'possible_pointer' => 13 } }, {#State 4 ACTIONS => { "-" => 1, "~" => 3, "&" => 4, 'TEXT' => 6, 'NUM' => 5, "!" => 8, "(" => 7, "*" => 9, 'VAR' => 10 }, GOTOS => { 'exp' => 36, 'var' => 11, 'func' => 12, 'possible_pointer' => 13 } }, {#State 5 DEFAULT => -1 }, {#State 6 DEFAULT => -2 }, {#State 7 ACTIONS => { "-" => 1, "~" => 3, "&" => 4, 'TEXT' => 6, 'NUM' => 5, "!" => 8, "(" => 7, "*" => 9, 'VAR' => 10 }, GOTOS => { 'exp' => 38, 'var' => 37, 'func' => 12, 'possible_pointer' => 13 } }, {#State 8 ACTIONS => { "-" => 1, "~" => 3, "&" => 4, 'TEXT' => 6, 'NUM' => 5, "!" => 8, "(" => 7, "*" => 9, 'VAR' => 10 }, GOTOS => { 'exp' => 39, 'var' => 11, 'func' => 12, 'possible_pointer' => 13 } }, {#State 9 ACTIONS => { "*" => 9, 'VAR' => 41 }, GOTOS => { 'possible_pointer' => 40 } }, {#State 10 ACTIONS => { "(" => 42 }, DEFAULT => -30 }, {#State 11 ACTIONS => { "->" => 43, "." => 44 }, DEFAULT => -4 }, {#State 12 DEFAULT => -3 }, {#State 13 DEFAULT => -32 }, {#State 14 ACTIONS => { "^" => 21, "=>" => 31, "<=" => 33 }, DEFAULT => -26 }, {#State 15 ACTIONS => { "-" => 1, "~" => 3, "&" => 4, 'TEXT' => 6, 'NUM' => 5, "!" => 8, "(" => 7, "*" => 9, 'VAR' => 10 }, GOTOS => { 'exp' => 45, 'var' => 11, 'func' => 12, 'possible_pointer' => 13 } }, {#State 16 DEFAULT => 0 }, {#State 17 ACTIONS => { "-" => 1, "~" => 3, "&" => 4, 'TEXT' => 6, 'NUM' => 5, "!" => 8, "(" => 7, "*" => 9, 'VAR' => 10 }, GOTOS => { 'exp' => 46, 'var' => 11, 'func' => 12, 'possible_pointer' => 13 } }, {#State 18 ACTIONS => { "-" => 1, "~" => 3, "&" => 4, 'TEXT' => 6, 'NUM' => 5, "!" => 8, "(" => 7, "*" => 9, 'VAR' => 10 }, GOTOS => { 'exp' => 47, 'var' => 11, 'func' => 12, 'possible_pointer' => 13 } }, {#State 19 ACTIONS => { "-" => 1, "~" => 3, "&" => 4, 'TEXT' => 6, 'NUM' => 5, "!" => 8, "(" => 7, "*" => 9, 'VAR' => 10 }, GOTOS => { 'exp' => 48, 'var' => 11, 'func' => 12, 'possible_pointer' => 13 } }, {#State 20 ACTIONS => { "-" => 1, "~" => 3, "&" => 4, 'TEXT' => 6, 'NUM' => 5, "!" => 8, "(" => 7, "*" => 9, 'VAR' => 10 }, GOTOS => { 'exp' => 49, 'var' => 11, 'func' => 12, 'possible_pointer' => 13 } }, {#State 21 ACTIONS => { "-" => 1, "~" => 3, "&" => 4, 'TEXT' => 6, 'NUM' => 5, "!" => 8, "(" => 7, "*" => 9, 'VAR' => 10 }, GOTOS => { 'exp' => 50, 'var' => 11, 'func' => 12, 'possible_pointer' => 13 } }, {#State 22 ACTIONS => { "-" => 1, "~" => 3, "&" => 4, 'TEXT' => 6, 'NUM' => 5, "!" => 8, "(" => 7, "*" => 9, 'VAR' => 10 }, GOTOS => { 'exp' => 51, 'var' => 11, 'func' => 12, 'possible_pointer' => 13 } }, {#State 23 ACTIONS => { "-" => 1, "~" => 3, "&" => 4, 'TEXT' => 6, 'NUM' => 5, "!" => 8, "(" => 7, "*" => 9, 'VAR' => 10 }, GOTOS => { 'exp' => 52, 'var' => 11, 'func' => 12, 'possible_pointer' => 13 } }, {#State 24 ACTIONS => { "-" => 1, "~" => 3, "&" => 4, 'TEXT' => 6, 'NUM' => 5, "!" => 8, "(" => 7, "*" => 9, 'VAR' => 10 }, GOTOS => { 'exp' => 53, 'var' => 11, 'func' => 12, 'possible_pointer' => 13 } }, {#State 25 ACTIONS => { "-" => 1, "~" => 3, "&" => 4, 'TEXT' => 6, 'NUM' => 5, "!" => 8, "(" => 7, "*" => 9, 'VAR' => 10 }, GOTOS => { 'exp' => 54, 'var' => 11, 'func' => 12, 'possible_pointer' => 13 } }, {#State 26 ACTIONS => { "-" => 1, "~" => 3, "&" => 4, 'TEXT' => 6, 'NUM' => 5, "!" => 8, "(" => 7, "*" => 9, 'VAR' => 10 }, GOTOS => { 'exp' => 55, 'var' => 11, 'func' => 12, 'possible_pointer' => 13 } }, {#State 27 ACTIONS => { "-" => 1, "~" => 3, "&" => 4, 'TEXT' => 6, 'NUM' => 5, "!" => 8, "(" => 7, "*" => 9, 'VAR' => 10 }, GOTOS => { 'exp' => 56, 'var' => 11, 'func' => 12, 'possible_pointer' => 13 } }, {#State 28 ACTIONS => { "-" => 1, "~" => 3, "&" => 4, 'TEXT' => 6, 'NUM' => 5, "!" => 8, "(" => 7, "*" => 9, 'VAR' => 10 }, GOTOS => { 'exp' => 57, 'var' => 11, 'func' => 12, 'possible_pointer' => 13 } }, {#State 29 ACTIONS => { "-" => 1, "~" => 3, "&" => 4, 'TEXT' => 6, 'NUM' => 5, "!" => 8, "(" => 7, "*" => 9, 'VAR' => 10 }, GOTOS => { 'exp' => 58, 'var' => 11, 'func' => 12, 'possible_pointer' => 13 } }, {#State 30 ACTIONS => { "-" => 1, "~" => 3, "&" => 4, 'TEXT' => 6, 'NUM' => 5, "!" => 8, "(" => 7, "*" => 9, 'VAR' => 10 }, GOTOS => { 'exp' => 59, 'var' => 11, 'func' => 12, 'possible_pointer' => 13 } }, {#State 31 ACTIONS => { "-" => 1, "~" => 3, "&" => 4, 'TEXT' => 6, 'NUM' => 5, "!" => 8, "(" => 7, "*" => 9, 'VAR' => 10 }, GOTOS => { 'exp' => 60, 'var' => 11, 'func' => 12, 'possible_pointer' => 13 } }, {#State 32 ACTIONS => { "-" => 1, "~" => 3, "&" => 4, 'TEXT' => 6, 'NUM' => 5, "!" => 8, "(" => 7, "*" => 9, 'VAR' => 10 }, GOTOS => { 'exp' => 61, 'var' => 11, 'func' => 12, 'possible_pointer' => 13 } }, {#State 33 ACTIONS => { "-" => 1, "~" => 3, "&" => 4, 'TEXT' => 6, 'NUM' => 5, "!" => 8, "(" => 7, "*" => 9, 'VAR' => 10 }, GOTOS => { 'exp' => 62, 'var' => 11, 'func' => 12, 'possible_pointer' => 13 } }, {#State 34 ACTIONS => { "-" => 1, "~" => 3, "&" => 4, 'TEXT' => 6, 'NUM' => 5, "!" => 8, "(" => 7, "*" => 9, 'VAR' => 10 }, GOTOS => { 'exp' => 63, 'var' => 11, 'func' => 12, 'possible_pointer' => 13 } }, {#State 35 ACTIONS => { "^" => 21, "=>" => 31, "<=" => 33 }, DEFAULT => -5 }, {#State 36 ACTIONS => { "^" => 21, "=>" => 31, "<=" => 33 }, DEFAULT => -27 }, {#State 37 ACTIONS => { ")" => 64, "->" => 43, "." => 44 }, DEFAULT => -4 }, {#State 38 ACTIONS => { "-" => 15, "<" => 17, "+" => 18, "%" => 19, "==" => 20, "^" => 21, "*" => 22, ")" => 65, ">>" => 23, "!=" => 24, "?" => 25, "&&" => 27, "||" => 26, "&" => 28, "/" => 29, "|" => 30, "=>" => 31, "<<" => 32, "<=" => 33, ">" => 34 } }, {#State 39 ACTIONS => { "-" => 15, "<" => 17, "+" => 18, "%" => 19, "==" => 20, "^" => 21, "*" => 22, ">>" => 23, "!=" => 24, "?" => 25, "&&" => 27, "||" => 26, "&" => 28, "/" => 29, "|" => 30, "=>" => 31, "<<" => 32, "<=" => 33, ">" => 34 }, DEFAULT => -24 }, {#State 40 DEFAULT => -31 }, {#State 41 DEFAULT => -30 }, {#State 42 ACTIONS => { "-" => 1, "~" => 3, "&" => 4, 'TEXT' => 6, 'NUM' => 5, "!" => 8, "(" => 7, "*" => 9, 'VAR' => 10 }, DEFAULT => -37, GOTOS => { 'exp' => 69, 'var' => 11, 'args' => 66, 'func' => 12, 'opt_args' => 70, 'exp_or_possible_pointer' => 67, 'possible_pointer' => 68 } }, {#State 43 ACTIONS => { 'VAR' => 71 } }, {#State 44 ACTIONS => { 'VAR' => 72 } }, {#State 45 ACTIONS => { "<" => 17, "==" => 20, "^" => 21, ">>" => 23, "!=" => 24, "?" => 25, "&&" => 27, "||" => 26, "&" => 28, "|" => 30, "=>" => 31, "<<" => 32, "<=" => 33, ">" => 34 }, DEFAULT => -7 }, {#State 46 ACTIONS => { "==" => 20, "^" => 21, "!=" => 24, "?" => 25, "&&" => 27, "||" => 26, "&" => 28, "|" => 30, "=>" => 31, "<=" => 33 }, DEFAULT => -10 }, {#State 47 ACTIONS => { "<" => 17, "==" => 20, "^" => 21, ">>" => 23, "!=" => 24, "?" => 25, "&&" => 27, "||" => 26, "&" => 28, "|" => 30, "=>" => 31, "<<" => 32, "<=" => 33, ">" => 34 }, DEFAULT => -6 }, {#State 48 ACTIONS => { "-" => 15, "<" => 17, "+" => 18, "==" => 20, "^" => 21, ">>" => 23, "!=" => 24, "?" => 25, "&&" => 27, "||" => 26, "&" => 28, "|" => 30, "=>" => 31, "<<" => 32, "<=" => 33, ">" => 34 }, DEFAULT => -9 }, {#State 49 ACTIONS => { "^" => 21, "?" => 25, "&&" => 27, "||" => 26, "&" => 28, "|" => 30, "=>" => 31, "<=" => 33 }, DEFAULT => -13 }, {#State 50 ACTIONS => { "-" => 15, "<" => 17, "+" => 18, "%" => 19, "==" => 20, "^" => 21, "*" => 22, ">>" => 23, "!=" => 24, "?" => 25, "&&" => 27, "||" => 26, "&" => 28, "/" => 29, "|" => 30, "=>" => 31, "<<" => 32, "<=" => 33, ">" => 34 }, DEFAULT => -28 }, {#State 51 ACTIONS => { "-" => 15, "<" => 17, "+" => 18, "==" => 20, "^" => 21, ">>" => 23, "!=" => 24, "?" => 25, "&&" => 27, "||" => 26, "&" => 28, "|" => 30, "=>" => 31, "<<" => 32, "<=" => 33, ">" => 34 }, DEFAULT => -8 }, {#State 52 ACTIONS => { "<" => 17, "==" => 20, "^" => 21, "!=" => 24, "?" => 25, "&&" => 27, "||" => 26, "&" => 28, "|" => 30, "=>" => 31, "<=" => 33, ">" => 34 }, DEFAULT => -17 }, {#State 53 ACTIONS => { "^" => 21, "?" => 25, "&&" => 27, "||" => 26, "&" => 28, "|" => 30, "=>" => 31, "<=" => 33 }, DEFAULT => -18 }, {#State 54 ACTIONS => { ":" => 73, "-" => 15, "<" => 17, "+" => 18, "%" => 19, "==" => 20, "^" => 21, "*" => 22, ">>" => 23, "!=" => 24, "?" => 25, "&&" => 27, "||" => 26, "&" => 28, "/" => 29, "|" => 30, "=>" => 31, "<<" => 32, "<=" => 33, ">" => 34 } }, {#State 55 ACTIONS => { "^" => 21, "?" => 25, "=>" => 31, "<=" => 33 }, DEFAULT => -19 }, {#State 56 ACTIONS => { "^" => 21, "?" => 25, "||" => 26, "=>" => 31, "<=" => 33 }, DEFAULT => -20 }, {#State 57 ACTIONS => { "^" => 21, "?" => 25, "&&" => 27, "||" => 26, "|" => 30, "=>" => 31, "<=" => 33 }, DEFAULT => -21 }, {#State 58 ACTIONS => { "-" => 15, "<" => 17, "+" => 18, "==" => 20, "^" => 21, ">>" => 23, "!=" => 24, "?" => 25, "&&" => 27, "||" => 26, "&" => 28, "|" => 30, "=>" => 31, "<<" => 32, "<=" => 33, ">" => 34 }, DEFAULT => -25 }, {#State 59 ACTIONS => { "^" => 21, "?" => 25, "&&" => 27, "||" => 26, "=>" => 31, "<=" => 33 }, DEFAULT => -12 }, {#State 60 ACTIONS => { "-" => 15, "<" => 17, "+" => 18, "%" => 19, "==" => 20, "^" => 21, "*" => 22, ">>" => 23, "!=" => 24, "?" => 25, "&&" => 27, "||" => 26, "&" => 28, "/" => 29, "|" => 30, "=>" => 31, "<<" => 32, "<=" => 33, ">" => 34 }, DEFAULT => -15 }, {#State 61 ACTIONS => { "<" => 17, "==" => 20, "^" => 21, "!=" => 24, "?" => 25, "&&" => 27, "||" => 26, "&" => 28, "|" => 30, "=>" => 31, "<=" => 33, ">" => 34 }, DEFAULT => -16 }, {#State 62 ACTIONS => { "-" => 15, "<" => 17, "+" => 18, "%" => 19, "==" => 20, "^" => 21, "*" => 22, ">>" => 23, "!=" => 24, "?" => 25, "&&" => 27, "||" => 26, "&" => 28, "/" => 29, "|" => 30, "=>" => 31, "<<" => 32, "<=" => 33, ">" => 34 }, DEFAULT => -14 }, {#State 63 ACTIONS => { "==" => 20, "^" => 21, "!=" => 24, "?" => 25, "&&" => 27, "||" => 26, "&" => 28, "|" => 30, "=>" => 31, "<=" => 33 }, DEFAULT => -11 }, {#State 64 DEFAULT => -34 }, {#State 65 DEFAULT => -29 }, {#State 66 DEFAULT => -38 }, {#State 67 ACTIONS => { "," => 74 }, DEFAULT => -41 }, {#State 68 DEFAULT => -32 }, {#State 69 ACTIONS => { "-" => 15, "<" => 17, "+" => 18, "%" => 19, "==" => 20, "^" => 21, "*" => 22, ">>" => 23, "!=" => 24, "?" => 25, "&&" => 27, "||" => 26, "&" => 28, "/" => 29, "|" => 30, "=>" => 31, "<<" => 32, "<=" => 33, ">" => 34 }, DEFAULT => -39 }, {#State 70 ACTIONS => { ")" => 75 } }, {#State 71 DEFAULT => -35 }, {#State 72 DEFAULT => -33 }, {#State 73 ACTIONS => { "-" => 1, "~" => 3, "&" => 4, 'TEXT' => 6, 'NUM' => 5, "!" => 8, "(" => 7, "*" => 9, 'VAR' => 10 }, GOTOS => { 'exp' => 76, 'var' => 11, 'func' => 12, 'possible_pointer' => 13 } }, {#State 74 ACTIONS => { "-" => 1, "~" => 3, "&" => 4, 'TEXT' => 6, 'NUM' => 5, "!" => 8, "(" => 7, "*" => 9, 'VAR' => 10 }, GOTOS => { 'exp' => 69, 'var' => 11, 'args' => 77, 'func' => 12, 'exp_or_possible_pointer' => 67, 'possible_pointer' => 68 } }, {#State 75 DEFAULT => -36 }, {#State 76 ACTIONS => { "^" => 21, "=>" => 31, "<=" => 33 }, DEFAULT => -22 }, {#State 77 DEFAULT => -42 } ], yyrules => [ [#Rule 0 '$start', 2, undef ], [#Rule 1 'exp', 1, undef ], [#Rule 2 'exp', 1, sub #line 24 "expr.yp" { "\"$_[1]\"" } ], [#Rule 3 'exp', 1, undef ], [#Rule 4 'exp', 1, undef ], [#Rule 5 'exp', 2, sub #line 30 "expr.yp" { "~$_[2]" } ], [#Rule 6 'exp', 3, sub #line 32 "expr.yp" { "$_[1] + $_[3]" } ], [#Rule 7 'exp', 3, sub #line 34 "expr.yp" { "$_[1] - $_[3]" } ], [#Rule 8 'exp', 3, sub #line 36 "expr.yp" { "$_[1] * $_[3]" } ], [#Rule 9 'exp', 3, sub #line 38 "expr.yp" { "$_[1] % $_[3]" } ], [#Rule 10 'exp', 3, sub #line 40 "expr.yp" { "$_[1] < $_[3]" } ], [#Rule 11 'exp', 3, sub #line 42 "expr.yp" { "$_[1] > $_[3]" } ], [#Rule 12 'exp', 3, sub #line 44 "expr.yp" { "$_[1] | $_[3]" } ], [#Rule 13 'exp', 3, sub #line 46 "expr.yp" { "$_[1] == $_[3]" } ], [#Rule 14 'exp', 3, sub #line 48 "expr.yp" { "$_[1] <= $_[3]" } ], [#Rule 15 'exp', 3, sub #line 50 "expr.yp" { "$_[1] => $_[3]" } ], [#Rule 16 'exp', 3, sub #line 52 "expr.yp" { "$_[1] << $_[3]" } ], [#Rule 17 'exp', 3, sub #line 54 "expr.yp" { "$_[1] >> $_[3]" } ], [#Rule 18 'exp', 3, sub #line 56 "expr.yp" { "$_[1] != $_[3]" } ], [#Rule 19 'exp', 3, sub #line 58 "expr.yp" { "$_[1] || $_[3]" } ], [#Rule 20 'exp', 3, sub #line 60 "expr.yp" { "$_[1] && $_[3]" } ], [#Rule 21 'exp', 3, sub #line 62 "expr.yp" { "$_[1] & $_[3]" } ], [#Rule 22 'exp', 5, sub #line 64 "expr.yp" { "$_[1]?$_[3]:$_[5]" } ], [#Rule 23 'exp', 2, sub #line 66 "expr.yp" { "~$_[1]" } ], [#Rule 24 'exp', 2, sub #line 68 "expr.yp" { "not $_[1]" } ], [#Rule 25 'exp', 3, sub #line 70 "expr.yp" { "$_[1] / $_[3]" } ], [#Rule 26 'exp', 2, sub #line 72 "expr.yp" { "-$_[2]" } ], [#Rule 27 'exp', 2, sub #line 74 "expr.yp" { "&$_[2]" } ], [#Rule 28 'exp', 3, sub #line 76 "expr.yp" { "$_[1]^$_[3]" } ], [#Rule 29 'exp', 3, sub #line 78 "expr.yp" { "($_[2])" } ], [#Rule 30 'possible_pointer', 1, sub #line 82 "expr.yp" { $_[0]->_Lookup($_[1]) } ], [#Rule 31 'possible_pointer', 2, sub #line 84 "expr.yp" { $_[0]->_Dereference($_[2]); "*$_[2]" } ], [#Rule 32 'var', 1, sub #line 88 "expr.yp" { $_[0]->_Use($_[1]) } ], [#Rule 33 'var', 3, sub #line 90 "expr.yp" { $_[0]->_Use("$_[1].$_[3]") } ], [#Rule 34 'var', 3, sub #line 92 "expr.yp" { "($_[2])" } ], [#Rule 35 'var', 3, sub #line 94 "expr.yp" { $_[0]->_Use("*$_[1]"); $_[1]."->".$_[3] } ], [#Rule 36 'func', 4, sub #line 99 "expr.yp" { "$_[1]($_[3])" } ], [#Rule 37 'opt_args', 0, sub #line 104 "expr.yp" { "" } ], [#Rule 38 'opt_args', 1, undef ], [#Rule 39 'exp_or_possible_pointer', 1, undef ], [#Rule 40 'exp_or_possible_pointer', 1, undef ], [#Rule 41 'args', 1, undef ], [#Rule 42 'args', 3, sub #line 118 "expr.yp" { "$_[1], $_[3]" } ] ], @_); bless($self,$class); } #line 121 "expr.yp" package Parse::Pidl::Expr; sub _Lexer { my($parser)=shift; $parser->YYData->{INPUT}=~s/^[ \t]//; for ($parser->YYData->{INPUT}) { if (s/^(0x[0-9A-Fa-f]+)//) { $parser->YYData->{LAST_TOKEN} = $1; return('NUM',$1); } if (s/^([0-9]+(?:\.[0-9]+)?)//) { $parser->YYData->{LAST_TOKEN} = $1; return('NUM',$1); } if (s/^([A-Za-z_][A-Za-z0-9_]*)//) { $parser->YYData->{LAST_TOKEN} = $1; return('VAR',$1); } if (s/^\"(.*?)\"//) { $parser->YYData->{LAST_TOKEN} = $1; return('TEXT',$1); } if (s/^(==|!=|<=|>=|->|\|\||<<|>>|&&)//s) { $parser->YYData->{LAST_TOKEN} = $1; return($1,$1); } if (s/^(.)//s) { $parser->YYData->{LAST_TOKEN} = $1; return($1,$1); } } } sub _Use($$) { my ($self, $x) = @_; if (defined($self->YYData->{USE})) { return $self->YYData->{USE}->($x); } return $x; } sub _Lookup($$) { my ($self, $x) = @_; return $self->YYData->{LOOKUP}->($x); } sub _Dereference($$) { my ($self, $x) = @_; if (defined($self->YYData->{DEREFERENCE})) { $self->YYData->{DEREFERENCE}->($x); } } sub _Error($) { my ($self) = @_; if (defined($self->YYData->{LAST_TOKEN})) { $self->YYData->{ERROR}->("Parse error in `".$self->YYData->{FULL_INPUT}."' near `". $self->YYData->{LAST_TOKEN} . "'"); } else { $self->YYData->{ERROR}->("Parse error in `".$self->YYData->{FULL_INPUT}."'"); } } sub Run { my($self, $data, $error, $lookup, $deref, $use) = @_; $self->YYData->{FULL_INPUT} = $data; $self->YYData->{INPUT} = $data; $self->YYData->{LOOKUP} = $lookup; $self->YYData->{DEREFERENCE} = $deref; $self->YYData->{ERROR} = $error; $self->YYData->{USE} = $use; return $self->YYParse( yylex => \&_Lexer, yyerror => \&_Error); } 1;