1 ####################################################################
3 # This file was generated using Parse::Yapp version 1.05.
5 # Don't edit this file, use source file instead.
7 # ANY CHANGE MADE HERE WILL BE LOST !
9 ####################################################################
10 package Parse::Pidl::Expr;
14 @ISA= qw ( Parse::Yapp::Driver );
15 use Parse::Yapp::Driver;
22 and $class=ref($class);
24 my($self)=$class->SUPER::new( yyversion => '1.05',
43 'possible_pointer' => 13
62 'possible_pointer' => 13
105 'possible_pointer' => 13
124 'possible_pointer' => 13
149 'possible_pointer' => 13
168 'possible_pointer' => 13
177 'possible_pointer' => 40
223 'possible_pointer' => 13
245 'possible_pointer' => 13
264 'possible_pointer' => 13
283 'possible_pointer' => 13
302 'possible_pointer' => 13
321 'possible_pointer' => 13
340 'possible_pointer' => 13
359 'possible_pointer' => 13
378 'possible_pointer' => 13
397 'possible_pointer' => 13
416 'possible_pointer' => 13
435 'possible_pointer' => 13
454 'possible_pointer' => 13
473 'possible_pointer' => 13
492 'possible_pointer' => 13
511 'possible_pointer' => 13
530 'possible_pointer' => 13
549 'possible_pointer' => 13
568 'possible_pointer' => 13
668 'exp_or_possible_pointer' => 67,
669 'possible_pointer' => 68
1080 'possible_pointer' => 13
1100 'exp_or_possible_pointer' => 67,
1101 'possible_pointer' => 68
1130 #line 22 "./pidl/expr.yp"
1142 #line 25 "./pidl/expr.yp"
1148 #line 26 "./pidl/expr.yp"
1154 #line 27 "./pidl/expr.yp"
1160 #line 28 "./pidl/expr.yp"
1166 #line 29 "./pidl/expr.yp"
1172 #line 30 "./pidl/expr.yp"
1178 #line 31 "./pidl/expr.yp"
1184 #line 32 "./pidl/expr.yp"
1190 #line 33 "./pidl/expr.yp"
1191 { "$_[1] == $_[3]" }
1196 #line 34 "./pidl/expr.yp"
1197 { "$_[1] <= $_[3]" }
1202 #line 35 "./pidl/expr.yp"
1203 { "$_[1] => $_[3]" }
1208 #line 36 "./pidl/expr.yp"
1209 { "$_[1] << $_[3]" }
1214 #line 37 "./pidl/expr.yp"
1215 { "$_[1] >> $_[3]" }
1220 #line 38 "./pidl/expr.yp"
1221 { "$_[1] != $_[3]" }
1226 #line 39 "./pidl/expr.yp"
1227 { "$_[1] || $_[3]" }
1232 #line 40 "./pidl/expr.yp"
1233 { "$_[1] && $_[3]" }
1238 #line 41 "./pidl/expr.yp"
1244 #line 42 "./pidl/expr.yp"
1245 { "$_[1]?$_[3]:$_[5]" }
1250 #line 43 "./pidl/expr.yp"
1256 #line 44 "./pidl/expr.yp"
1262 #line 45 "./pidl/expr.yp"
1268 #line 46 "./pidl/expr.yp"
1274 #line 47 "./pidl/expr.yp"
1280 #line 48 "./pidl/expr.yp"
1286 #line 49 "./pidl/expr.yp"
1290 'possible_pointer', 1,
1292 #line 53 "./pidl/expr.yp"
1293 { $_[0]->_Lookup($_[1]) }
1296 'possible_pointer', 2,
1298 #line 54 "./pidl/expr.yp"
1299 { $_[0]->_Dereference($_[2]); "*$_[2]" }
1304 #line 57 "./pidl/expr.yp"
1305 { $_[0]->_Use($_[1]) }
1310 #line 58 "./pidl/expr.yp"
1311 { $_[0]->_Use("$_[1].$_[3]") }
1316 #line 59 "./pidl/expr.yp"
1322 #line 60 "./pidl/expr.yp"
1323 { $_[0]->_Use("*$_[1]"); $_[1]."->".$_[3] }
1328 #line 64 "./pidl/expr.yp"
1334 #line 65 "./pidl/expr.yp"
1338 'opt_args', 1, undef
1341 'exp_or_possible_pointer', 1, undef
1344 'exp_or_possible_pointer', 1, undef
1352 #line 68 "./pidl/expr.yp"
1357 bless($self,$class);
1360 #line 71 "./pidl/expr.yp"
1363 package Parse::Pidl::Expr;
1368 $parser->YYData->{INPUT}=~s/^[ \t]//;
1370 for ($parser->YYData->{INPUT}) {
1371 if (s/^(0x[0-9A-Fa-f]+)//) {
1372 $parser->YYData->{LAST_TOKEN} = $1;
1375 if (s/^([0-9]+(?:\.[0-9]+)?)//) {
1376 $parser->YYData->{LAST_TOKEN} = $1;
1379 if (s/^([A-Za-z_][A-Za-z0-9_]*)//) {
1380 $parser->YYData->{LAST_TOKEN} = $1;
1383 if (s/^\"(.*?)\"//) {
1384 $parser->YYData->{LAST_TOKEN} = $1;
1387 if (s/^(==|!=|<=|>=|->|\|\||<<|>>|&&)//s) {
1388 $parser->YYData->{LAST_TOKEN} = $1;
1392 $parser->YYData->{LAST_TOKEN} = $1;
1400 my ($self, $x) = @_;
1401 if (defined($self->YYData->{USE})) {
1402 return $self->YYData->{USE}->($x);
1409 my ($self, $x) = @_;
1410 return $self->YYData->{LOOKUP}->($x);
1413 sub _Dereference($$)
1415 my ($self, $x) = @_;
1416 if (defined($self->YYData->{DEREFERENCE})) {
1417 $self->YYData->{DEREFERENCE}->($x);
1424 if (defined($self->YYData->{LAST_TOKEN})) {
1425 $self->YYData->{ERROR}->("Parse error in `".$self->YYData->{FULL_INPUT}."' near `". $self->YYData->{LAST_TOKEN} . "'");
1427 $self->YYData->{ERROR}->("Parse error in `".$self->YYData->{FULL_INPUT}."'");
1432 my($self, $data, $error, $lookup, $deref, $use) = @_;
1433 $self->YYData->{FULL_INPUT} = $data;
1434 $self->YYData->{INPUT} = $data;
1435 $self->YYData->{LOOKUP} = $lookup;
1436 $self->YYData->{DEREFERENCE} = $deref;
1437 $self->YYData->{ERROR} = $error;
1438 $self->YYData->{USE} = $use;
1439 return $self->YYParse( yylex => \&_Lexer, yyerror => \&_Error);