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);