2007-01-05 23:12:21 +03:00
####################################################################
#
# 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 ,
2007-02-07 22:03:19 +03:00
'var' = > 11 ,
'func' = > 12 ,
'possible_pointer' = > 13
2007-01-05 23:12:21 +03:00
}
} ,
{ #State 1
ACTIONS = > {
"-" = > 1 ,
"~" = > 3 ,
"&" = > 4 ,
'TEXT' = > 6 ,
'NUM' = > 5 ,
"(" = > 7 ,
"!" = > 8 ,
"*" = > 9 ,
'VAR' = > 10
} ,
GOTOS = > {
2007-02-07 22:03:19 +03:00
'exp' = > 14 ,
'var' = > 11 ,
'func' = > 12 ,
'possible_pointer' = > 13
2007-01-05 23:12:21 +03:00
}
} ,
{ #State 2
ACTIONS = > {
2007-02-07 22:03:19 +03:00
'' = > 16 ,
"-" = > 15 ,
"<" = > 17 ,
"+" = > 18 ,
"%" = > 19 ,
"==" = > 20 ,
"^" = > 21 ,
"*" = > 22 ,
">>" = > 23 ,
"!=" = > 24 ,
"?" = > 25 ,
"||" = > 26 ,
"&&" = > 27 ,
"&" = > 28 ,
"/" = > 29 ,
"|" = > 30 ,
"<<" = > 32 ,
"=>" = > 31 ,
2007-01-05 23:12:21 +03:00
"<=" = > 33 ,
">" = > 34
}
} ,
{ #State 3
ACTIONS = > {
"-" = > 1 ,
"~" = > 3 ,
"&" = > 4 ,
'TEXT' = > 6 ,
'NUM' = > 5 ,
"!" = > 8 ,
"(" = > 7 ,
"*" = > 9 ,
'VAR' = > 10
} ,
GOTOS = > {
'exp' = > 35 ,
2007-02-07 22:03:19 +03:00
'var' = > 11 ,
'func' = > 12 ,
'possible_pointer' = > 13
2007-01-05 23:12:21 +03:00
}
} ,
{ #State 4
ACTIONS = > {
"-" = > 1 ,
"~" = > 3 ,
"&" = > 4 ,
'TEXT' = > 6 ,
'NUM' = > 5 ,
"!" = > 8 ,
"(" = > 7 ,
"*" = > 9 ,
'VAR' = > 10
} ,
GOTOS = > {
'exp' = > 36 ,
2007-02-07 22:03:19 +03:00
'var' = > 11 ,
'func' = > 12 ,
'possible_pointer' = > 13
2007-01-05 23:12:21 +03:00
}
} ,
{ #State 5
DEFAULT = > - 1
} ,
{ #State 6
DEFAULT = > - 2
} ,
{ #State 7
ACTIONS = > {
"-" = > 1 ,
"~" = > 3 ,
"&" = > 4 ,
'TEXT' = > 6 ,
'NUM' = > 5 ,
"!" = > 8 ,
"(" = > 7 ,
"*" = > 9 ,
'VAR' = > 10
} ,
GOTOS = > {
2007-02-07 22:03:19 +03:00
'exp' = > 38 ,
'var' = > 37 ,
'func' = > 12 ,
'possible_pointer' = > 13
2007-01-05 23:12:21 +03:00
}
} ,
{ #State 8
ACTIONS = > {
"-" = > 1 ,
"~" = > 3 ,
"&" = > 4 ,
'TEXT' = > 6 ,
'NUM' = > 5 ,
"!" = > 8 ,
"(" = > 7 ,
"*" = > 9 ,
'VAR' = > 10
} ,
GOTOS = > {
2007-02-07 22:03:19 +03:00
'exp' = > 39 ,
'var' = > 11 ,
'func' = > 12 ,
'possible_pointer' = > 13
2007-01-05 23:12:21 +03:00
}
} ,
{ #State 9
ACTIONS = > {
"*" = > 9 ,
2007-02-07 22:03:19 +03:00
'VAR' = > 41
2007-01-05 23:12:21 +03:00
} ,
GOTOS = > {
2007-02-07 22:03:19 +03:00
'possible_pointer' = > 40
2007-01-05 23:12:21 +03:00
}
} ,
{ #State 10
ACTIONS = > {
2007-02-07 22:03:19 +03:00
"(" = > 42
2007-01-05 23:12:21 +03:00
} ,
2007-02-07 22:03:19 +03:00
DEFAULT = > - 30
2007-01-05 23:12:21 +03:00
} ,
{ #State 11
2007-02-07 22:03:19 +03:00
ACTIONS = > {
"->" = > 43 ,
"." = > 44
} ,
DEFAULT = > - 4
2007-01-05 23:12:21 +03:00
} ,
{ #State 12
2007-02-07 22:03:19 +03:00
DEFAULT = > - 3
} ,
{ #State 13
DEFAULT = > - 32
} ,
{ #State 14
2007-01-05 23:12:21 +03:00
ACTIONS = > {
2007-02-07 22:03:19 +03:00
"^" = > 21 ,
"=>" = > 31 ,
2007-01-05 23:12:21 +03:00
"<=" = > 33
} ,
2007-02-07 22:03:19 +03:00
DEFAULT = > - 26
2007-01-05 23:12:21 +03:00
} ,
2007-02-07 22:03:19 +03:00
{ #State 15
2007-01-05 23:12:21 +03:00
ACTIONS = > {
"-" = > 1 ,
"~" = > 3 ,
"&" = > 4 ,
'TEXT' = > 6 ,
'NUM' = > 5 ,
"!" = > 8 ,
"(" = > 7 ,
"*" = > 9 ,
'VAR' = > 10
} ,
GOTOS = > {
2007-02-07 22:03:19 +03:00
'exp' = > 45 ,
'var' = > 11 ,
'func' = > 12 ,
'possible_pointer' = > 13
2007-01-05 23:12:21 +03:00
}
} ,
2007-02-07 22:03:19 +03:00
{ #State 16
2007-01-05 23:12:21 +03:00
DEFAULT = > 0
} ,
2007-02-07 22:03:19 +03:00
{ #State 17
2007-01-05 23:12:21 +03:00
ACTIONS = > {
"-" = > 1 ,
"~" = > 3 ,
"&" = > 4 ,
'TEXT' = > 6 ,
'NUM' = > 5 ,
"!" = > 8 ,
"(" = > 7 ,
"*" = > 9 ,
'VAR' = > 10
} ,
GOTOS = > {
2007-02-07 22:03:19 +03:00
'exp' = > 46 ,
'var' = > 11 ,
'func' = > 12 ,
'possible_pointer' = > 13
2007-01-05 23:12:21 +03:00
}
} ,
2007-02-07 22:03:19 +03:00
{ #State 18
2007-01-05 23:12:21 +03:00
ACTIONS = > {
"-" = > 1 ,
"~" = > 3 ,
"&" = > 4 ,
'TEXT' = > 6 ,
'NUM' = > 5 ,
"!" = > 8 ,
"(" = > 7 ,
"*" = > 9 ,
'VAR' = > 10
} ,
GOTOS = > {
2007-02-07 22:03:19 +03:00
'exp' = > 47 ,
'var' = > 11 ,
'func' = > 12 ,
'possible_pointer' = > 13
2007-01-05 23:12:21 +03:00
}
} ,
2007-02-07 22:03:19 +03:00
{ #State 19
2007-01-05 23:12:21 +03:00
ACTIONS = > {
"-" = > 1 ,
"~" = > 3 ,
"&" = > 4 ,
'TEXT' = > 6 ,
'NUM' = > 5 ,
"!" = > 8 ,
"(" = > 7 ,
"*" = > 9 ,
'VAR' = > 10
} ,
GOTOS = > {
2007-02-07 22:03:19 +03:00
'exp' = > 48 ,
'var' = > 11 ,
'func' = > 12 ,
'possible_pointer' = > 13
2007-01-05 23:12:21 +03:00
}
} ,
2007-02-07 22:03:19 +03:00
{ #State 20
2007-01-05 23:12:21 +03:00
ACTIONS = > {
"-" = > 1 ,
"~" = > 3 ,
"&" = > 4 ,
'TEXT' = > 6 ,
'NUM' = > 5 ,
"!" = > 8 ,
"(" = > 7 ,
"*" = > 9 ,
'VAR' = > 10
} ,
GOTOS = > {
2007-02-07 22:03:19 +03:00
'exp' = > 49 ,
'var' = > 11 ,
'func' = > 12 ,
'possible_pointer' = > 13
2007-01-05 23:12:21 +03:00
}
} ,
2007-02-07 22:03:19 +03:00
{ #State 21
2007-01-05 23:12:21 +03:00
ACTIONS = > {
"-" = > 1 ,
"~" = > 3 ,
"&" = > 4 ,
'TEXT' = > 6 ,
'NUM' = > 5 ,
"!" = > 8 ,
"(" = > 7 ,
"*" = > 9 ,
'VAR' = > 10
} ,
GOTOS = > {
2007-02-07 22:03:19 +03:00
'exp' = > 50 ,
'var' = > 11 ,
'func' = > 12 ,
'possible_pointer' = > 13
2007-01-05 23:12:21 +03:00
}
} ,
2007-02-07 22:03:19 +03:00
{ #State 22
2007-01-05 23:12:21 +03:00
ACTIONS = > {
"-" = > 1 ,
"~" = > 3 ,
"&" = > 4 ,
'TEXT' = > 6 ,
'NUM' = > 5 ,
"!" = > 8 ,
"(" = > 7 ,
"*" = > 9 ,
'VAR' = > 10
} ,
GOTOS = > {
2007-02-07 22:03:19 +03:00
'exp' = > 51 ,
'var' = > 11 ,
'func' = > 12 ,
'possible_pointer' = > 13
2007-01-05 23:12:21 +03:00
}
} ,
2007-02-07 22:03:19 +03:00
{ #State 23
2007-01-05 23:12:21 +03:00
ACTIONS = > {
"-" = > 1 ,
"~" = > 3 ,
"&" = > 4 ,
'TEXT' = > 6 ,
'NUM' = > 5 ,
"!" = > 8 ,
"(" = > 7 ,
"*" = > 9 ,
'VAR' = > 10
} ,
GOTOS = > {
2007-02-07 22:03:19 +03:00
'exp' = > 52 ,
'var' = > 11 ,
'func' = > 12 ,
'possible_pointer' = > 13
2007-01-05 23:12:21 +03:00
}
} ,
2007-02-07 22:03:19 +03:00
{ #State 24
2007-01-05 23:12:21 +03:00
ACTIONS = > {
"-" = > 1 ,
"~" = > 3 ,
"&" = > 4 ,
'TEXT' = > 6 ,
'NUM' = > 5 ,
"!" = > 8 ,
"(" = > 7 ,
"*" = > 9 ,
'VAR' = > 10
} ,
GOTOS = > {
2007-02-07 22:03:19 +03:00
'exp' = > 53 ,
'var' = > 11 ,
'func' = > 12 ,
'possible_pointer' = > 13
2007-01-05 23:12:21 +03:00
}
} ,
2007-02-07 22:03:19 +03:00
{ #State 25
2007-01-05 23:12:21 +03:00
ACTIONS = > {
"-" = > 1 ,
"~" = > 3 ,
"&" = > 4 ,
'TEXT' = > 6 ,
'NUM' = > 5 ,
"!" = > 8 ,
"(" = > 7 ,
"*" = > 9 ,
'VAR' = > 10
} ,
GOTOS = > {
2007-02-07 22:03:19 +03:00
'exp' = > 54 ,
'var' = > 11 ,
'func' = > 12 ,
'possible_pointer' = > 13
2007-01-05 23:12:21 +03:00
}
} ,
2007-02-07 22:03:19 +03:00
{ #State 26
2007-01-05 23:12:21 +03:00
ACTIONS = > {
"-" = > 1 ,
"~" = > 3 ,
"&" = > 4 ,
'TEXT' = > 6 ,
'NUM' = > 5 ,
"!" = > 8 ,
"(" = > 7 ,
"*" = > 9 ,
'VAR' = > 10
} ,
GOTOS = > {
2007-02-07 22:03:19 +03:00
'exp' = > 55 ,
'var' = > 11 ,
'func' = > 12 ,
'possible_pointer' = > 13
2007-01-05 23:12:21 +03:00
}
} ,
2007-02-07 22:03:19 +03:00
{ #State 27
2007-01-05 23:12:21 +03:00
ACTIONS = > {
"-" = > 1 ,
"~" = > 3 ,
"&" = > 4 ,
'TEXT' = > 6 ,
'NUM' = > 5 ,
"!" = > 8 ,
"(" = > 7 ,
"*" = > 9 ,
'VAR' = > 10
} ,
GOTOS = > {
2007-02-07 22:03:19 +03:00
'exp' = > 56 ,
'var' = > 11 ,
'func' = > 12 ,
'possible_pointer' = > 13
2007-01-05 23:12:21 +03:00
}
} ,
2007-02-07 22:03:19 +03:00
{ #State 28
2007-01-05 23:12:21 +03:00
ACTIONS = > {
"-" = > 1 ,
"~" = > 3 ,
"&" = > 4 ,
'TEXT' = > 6 ,
'NUM' = > 5 ,
"!" = > 8 ,
"(" = > 7 ,
"*" = > 9 ,
'VAR' = > 10
} ,
GOTOS = > {
2007-02-07 22:03:19 +03:00
'exp' = > 57 ,
'var' = > 11 ,
'func' = > 12 ,
'possible_pointer' = > 13
2007-01-05 23:12:21 +03:00
}
} ,
2007-02-07 22:03:19 +03:00
{ #State 29
2007-01-05 23:12:21 +03:00
ACTIONS = > {
"-" = > 1 ,
"~" = > 3 ,
"&" = > 4 ,
'TEXT' = > 6 ,
'NUM' = > 5 ,
"!" = > 8 ,
"(" = > 7 ,
"*" = > 9 ,
'VAR' = > 10
} ,
GOTOS = > {
2007-02-07 22:03:19 +03:00
'exp' = > 58 ,
'var' = > 11 ,
'func' = > 12 ,
'possible_pointer' = > 13
2007-01-05 23:12:21 +03:00
}
} ,
2007-02-07 22:03:19 +03:00
{ #State 30
2007-01-05 23:12:21 +03:00
ACTIONS = > {
"-" = > 1 ,
"~" = > 3 ,
"&" = > 4 ,
'TEXT' = > 6 ,
'NUM' = > 5 ,
"!" = > 8 ,
"(" = > 7 ,
"*" = > 9 ,
'VAR' = > 10
} ,
GOTOS = > {
2007-02-07 22:03:19 +03:00
'exp' = > 59 ,
'var' = > 11 ,
'func' = > 12 ,
'possible_pointer' = > 13
2007-01-05 23:12:21 +03:00
}
} ,
2007-02-07 22:03:19 +03:00
{ #State 31
2007-01-05 23:12:21 +03:00
ACTIONS = > {
"-" = > 1 ,
"~" = > 3 ,
"&" = > 4 ,
'TEXT' = > 6 ,
'NUM' = > 5 ,
"!" = > 8 ,
"(" = > 7 ,
"*" = > 9 ,
'VAR' = > 10
} ,
GOTOS = > {
2007-02-07 22:03:19 +03:00
'exp' = > 60 ,
'var' = > 11 ,
'func' = > 12 ,
'possible_pointer' = > 13
2007-01-05 23:12:21 +03:00
}
} ,
2007-02-07 22:03:19 +03:00
{ #State 32
2007-01-05 23:12:21 +03:00
ACTIONS = > {
"-" = > 1 ,
"~" = > 3 ,
"&" = > 4 ,
'TEXT' = > 6 ,
'NUM' = > 5 ,
"!" = > 8 ,
"(" = > 7 ,
"*" = > 9 ,
'VAR' = > 10
} ,
GOTOS = > {
2007-02-07 22:03:19 +03:00
'exp' = > 61 ,
'var' = > 11 ,
'func' = > 12 ,
'possible_pointer' = > 13
2007-01-05 23:12:21 +03:00
}
} ,
{ #State 33
ACTIONS = > {
"-" = > 1 ,
"~" = > 3 ,
"&" = > 4 ,
'TEXT' = > 6 ,
'NUM' = > 5 ,
"!" = > 8 ,
"(" = > 7 ,
"*" = > 9 ,
'VAR' = > 10
} ,
GOTOS = > {
2007-02-07 22:03:19 +03:00
'exp' = > 62 ,
'var' = > 11 ,
'func' = > 12 ,
'possible_pointer' = > 13
2007-01-05 23:12:21 +03:00
}
} ,
{ #State 34
ACTIONS = > {
"-" = > 1 ,
"~" = > 3 ,
"&" = > 4 ,
'TEXT' = > 6 ,
'NUM' = > 5 ,
"!" = > 8 ,
"(" = > 7 ,
"*" = > 9 ,
'VAR' = > 10
} ,
GOTOS = > {
2007-02-07 22:03:19 +03:00
'exp' = > 63 ,
'var' = > 11 ,
'func' = > 12 ,
'possible_pointer' = > 13
2007-01-05 23:12:21 +03:00
}
} ,
{ #State 35
ACTIONS = > {
2007-02-07 22:03:19 +03:00
"^" = > 21 ,
"=>" = > 31 ,
2007-01-05 23:12:21 +03:00
"<=" = > 33
} ,
2007-02-07 22:03:19 +03:00
DEFAULT = > - 5
2007-01-05 23:12:21 +03:00
} ,
{ #State 36
ACTIONS = > {
2007-02-07 22:03:19 +03:00
"^" = > 21 ,
"=>" = > 31 ,
2007-01-05 23:12:21 +03:00
"<=" = > 33
} ,
2007-02-07 22:03:19 +03:00
DEFAULT = > - 27
2007-01-05 23:12:21 +03:00
} ,
{ #State 37
ACTIONS = > {
2007-02-07 22:03:19 +03:00
")" = > 64 ,
"->" = > 43 ,
"." = > 44
} ,
DEFAULT = > - 4
2007-01-05 23:12:21 +03:00
} ,
{ #State 38
ACTIONS = > {
2007-02-07 22:03:19 +03:00
"-" = > 15 ,
"<" = > 17 ,
"+" = > 18 ,
"%" = > 19 ,
"==" = > 20 ,
"^" = > 21 ,
"*" = > 22 ,
")" = > 65 ,
">>" = > 23 ,
"!=" = > 24 ,
"?" = > 25 ,
"&&" = > 27 ,
"||" = > 26 ,
"&" = > 28 ,
"/" = > 29 ,
"|" = > 30 ,
"=>" = > 31 ,
"<<" = > 32 ,
2007-01-05 23:12:21 +03:00
"<=" = > 33 ,
">" = > 34
2007-02-07 22:03:19 +03:00
}
2007-01-05 23:12:21 +03:00
} ,
{ #State 39
ACTIONS = > {
2007-02-07 22:03:19 +03:00
"-" = > 15 ,
"<" = > 17 ,
"+" = > 18 ,
"%" = > 19 ,
"==" = > 20 ,
"^" = > 21 ,
"*" = > 22 ,
">>" = > 23 ,
"!=" = > 24 ,
"?" = > 25 ,
"&&" = > 27 ,
"||" = > 26 ,
"&" = > 28 ,
"/" = > 29 ,
"|" = > 30 ,
"=>" = > 31 ,
"<<" = > 32 ,
"<=" = > 33 ,
">" = > 34
2007-01-05 23:12:21 +03:00
} ,
2007-02-07 22:03:19 +03:00
DEFAULT = > - 24
2007-01-05 23:12:21 +03:00
} ,
{ #State 40
2007-02-07 22:03:19 +03:00
DEFAULT = > - 31
} ,
{ #State 41
DEFAULT = > - 30
} ,
{ #State 42
2007-01-05 23:12:21 +03:00
ACTIONS = > {
"-" = > 1 ,
"~" = > 3 ,
"&" = > 4 ,
'TEXT' = > 6 ,
'NUM' = > 5 ,
"!" = > 8 ,
"(" = > 7 ,
"*" = > 9 ,
'VAR' = > 10
} ,
2007-02-07 22:03:19 +03:00
DEFAULT = > - 37 ,
2007-01-05 23:12:21 +03:00
GOTOS = > {
2007-02-07 22:03:19 +03:00
'exp' = > 69 ,
'var' = > 11 ,
'args' = > 66 ,
'func' = > 12 ,
'opt_args' = > 70 ,
'exp_or_possible_pointer' = > 67 ,
'possible_pointer' = > 68
2007-01-05 23:12:21 +03:00
}
} ,
2007-02-07 22:03:19 +03:00
{ #State 43
ACTIONS = > {
'VAR' = > 71
}
} ,
{ #State 44
2007-01-05 23:12:21 +03:00
ACTIONS = > {
2007-02-07 22:03:19 +03:00
'VAR' = > 72
}
} ,
{ #State 45
ACTIONS = > {
"<" = > 17 ,
"==" = > 20 ,
"^" = > 21 ,
">>" = > 23 ,
"!=" = > 24 ,
"?" = > 25 ,
"&&" = > 27 ,
"||" = > 26 ,
"&" = > 28 ,
"|" = > 30 ,
"=>" = > 31 ,
"<<" = > 32 ,
2007-01-05 23:12:21 +03:00
"<=" = > 33 ,
">" = > 34
} ,
2007-02-07 22:03:19 +03:00
DEFAULT = > - 7
2007-01-05 23:12:21 +03:00
} ,
2007-02-07 22:03:19 +03:00
{ #State 46
2007-01-05 23:12:21 +03:00
ACTIONS = > {
2007-02-07 22:03:19 +03:00
"==" = > 20 ,
"^" = > 21 ,
"!=" = > 24 ,
"?" = > 25 ,
"&&" = > 27 ,
"||" = > 26 ,
"&" = > 28 ,
"|" = > 30 ,
"=>" = > 31 ,
2007-01-05 23:12:21 +03:00
"<=" = > 33
} ,
2007-02-07 22:03:19 +03:00
DEFAULT = > - 10
2007-01-05 23:12:21 +03:00
} ,
2007-02-07 22:03:19 +03:00
{ #State 47
2007-01-05 23:12:21 +03:00
ACTIONS = > {
2007-02-07 22:03:19 +03:00
"<" = > 17 ,
"==" = > 20 ,
"^" = > 21 ,
">>" = > 23 ,
"!=" = > 24 ,
"?" = > 25 ,
"&&" = > 27 ,
"||" = > 26 ,
"&" = > 28 ,
"|" = > 30 ,
"=>" = > 31 ,
"<<" = > 32 ,
2007-01-05 23:12:21 +03:00
"<=" = > 33 ,
">" = > 34
} ,
2007-02-07 22:03:19 +03:00
DEFAULT = > - 6
2007-01-05 23:12:21 +03:00
} ,
2007-02-07 22:03:19 +03:00
{ #State 48
2007-01-05 23:12:21 +03:00
ACTIONS = > {
2007-02-07 22:03:19 +03:00
"-" = > 15 ,
"<" = > 17 ,
"+" = > 18 ,
"==" = > 20 ,
"^" = > 21 ,
">>" = > 23 ,
"!=" = > 24 ,
"?" = > 25 ,
"&&" = > 27 ,
"||" = > 26 ,
"&" = > 28 ,
"|" = > 30 ,
"=>" = > 31 ,
"<<" = > 32 ,
2007-01-05 23:12:21 +03:00
"<=" = > 33 ,
">" = > 34
} ,
2007-02-07 22:03:19 +03:00
DEFAULT = > - 9
2007-01-05 23:12:21 +03:00
} ,
2007-02-07 22:03:19 +03:00
{ #State 49
2007-01-05 23:12:21 +03:00
ACTIONS = > {
2007-02-07 22:03:19 +03:00
"^" = > 21 ,
"?" = > 25 ,
"&&" = > 27 ,
"||" = > 26 ,
"&" = > 28 ,
"|" = > 30 ,
"=>" = > 31 ,
2007-01-05 23:12:21 +03:00
"<=" = > 33
} ,
2007-02-07 22:03:19 +03:00
DEFAULT = > - 13
2007-01-05 23:12:21 +03:00
} ,
2007-02-07 22:03:19 +03:00
{ #State 50
2007-01-05 23:12:21 +03:00
ACTIONS = > {
2007-02-07 22:03:19 +03:00
"-" = > 15 ,
"<" = > 17 ,
"+" = > 18 ,
"%" = > 19 ,
"==" = > 20 ,
"^" = > 21 ,
"*" = > 22 ,
">>" = > 23 ,
"!=" = > 24 ,
"?" = > 25 ,
"&&" = > 27 ,
"||" = > 26 ,
"&" = > 28 ,
"/" = > 29 ,
"|" = > 30 ,
"=>" = > 31 ,
"<<" = > 32 ,
2007-01-05 23:12:21 +03:00
"<=" = > 33 ,
">" = > 34
} ,
2007-02-07 22:03:19 +03:00
DEFAULT = > - 28
2007-01-05 23:12:21 +03:00
} ,
2007-02-07 22:03:19 +03:00
{ #State 51
2007-01-05 23:12:21 +03:00
ACTIONS = > {
2007-02-07 22:03:19 +03:00
"-" = > 15 ,
"<" = > 17 ,
"+" = > 18 ,
"==" = > 20 ,
"^" = > 21 ,
">>" = > 23 ,
"!=" = > 24 ,
"?" = > 25 ,
"&&" = > 27 ,
"||" = > 26 ,
"&" = > 28 ,
"|" = > 30 ,
"=>" = > 31 ,
"<<" = > 32 ,
2007-01-05 23:12:21 +03:00
"<=" = > 33 ,
">" = > 34
} ,
2007-02-07 22:03:19 +03:00
DEFAULT = > - 8
2007-01-05 23:12:21 +03:00
} ,
2007-02-07 22:03:19 +03:00
{ #State 52
2007-01-05 23:12:21 +03:00
ACTIONS = > {
2007-02-07 22:03:19 +03:00
"<" = > 17 ,
"==" = > 20 ,
"^" = > 21 ,
"!=" = > 24 ,
"?" = > 25 ,
"&&" = > 27 ,
"||" = > 26 ,
"&" = > 28 ,
"|" = > 30 ,
"=>" = > 31 ,
2007-01-05 23:12:21 +03:00
"<=" = > 33 ,
">" = > 34
} ,
2007-02-07 22:03:19 +03:00
DEFAULT = > - 17
2007-01-05 23:12:21 +03:00
} ,
2007-02-07 22:03:19 +03:00
{ #State 53
2007-01-05 23:12:21 +03:00
ACTIONS = > {
2007-02-07 22:03:19 +03:00
"^" = > 21 ,
"?" = > 25 ,
"&&" = > 27 ,
"||" = > 26 ,
"&" = > 28 ,
"|" = > 30 ,
"=>" = > 31 ,
2007-01-05 23:12:21 +03:00
"<=" = > 33
} ,
2007-02-07 22:03:19 +03:00
DEFAULT = > - 18
2007-01-05 23:12:21 +03:00
} ,
2007-02-07 22:03:19 +03:00
{ #State 54
2007-01-05 23:12:21 +03:00
ACTIONS = > {
2007-02-07 22:03:19 +03:00
":" = > 73 ,
"-" = > 15 ,
"<" = > 17 ,
"+" = > 18 ,
"%" = > 19 ,
"==" = > 20 ,
"^" = > 21 ,
"*" = > 22 ,
">>" = > 23 ,
"!=" = > 24 ,
"?" = > 25 ,
"&&" = > 27 ,
"||" = > 26 ,
"&" = > 28 ,
"/" = > 29 ,
"|" = > 30 ,
"=>" = > 31 ,
"<<" = > 32 ,
2007-01-05 23:12:21 +03:00
"<=" = > 33 ,
">" = > 34
}
} ,
2007-02-07 22:03:19 +03:00
{ #State 55
2007-01-05 23:12:21 +03:00
ACTIONS = > {
2007-02-07 22:03:19 +03:00
"^" = > 21 ,
"?" = > 25 ,
"=>" = > 31 ,
2007-01-05 23:12:21 +03:00
"<=" = > 33
} ,
2007-02-07 22:03:19 +03:00
DEFAULT = > - 19
2007-01-05 23:12:21 +03:00
} ,
2007-02-07 22:03:19 +03:00
{ #State 56
2007-01-05 23:12:21 +03:00
ACTIONS = > {
2007-02-07 22:03:19 +03:00
"^" = > 21 ,
"?" = > 25 ,
"||" = > 26 ,
"=>" = > 31 ,
2007-01-05 23:12:21 +03:00
"<=" = > 33
} ,
2007-02-07 22:03:19 +03:00
DEFAULT = > - 20
2007-01-05 23:12:21 +03:00
} ,
2007-02-07 22:03:19 +03:00
{ #State 57
2007-01-05 23:12:21 +03:00
ACTIONS = > {
2007-02-07 22:03:19 +03:00
"^" = > 21 ,
"?" = > 25 ,
"&&" = > 27 ,
"||" = > 26 ,
"|" = > 30 ,
"=>" = > 31 ,
2007-01-05 23:12:21 +03:00
"<=" = > 33
} ,
2007-02-07 22:03:19 +03:00
DEFAULT = > - 21
2007-01-05 23:12:21 +03:00
} ,
2007-02-07 22:03:19 +03:00
{ #State 58
2007-01-05 23:12:21 +03:00
ACTIONS = > {
2007-02-07 22:03:19 +03:00
"-" = > 15 ,
"<" = > 17 ,
"+" = > 18 ,
"==" = > 20 ,
"^" = > 21 ,
">>" = > 23 ,
"!=" = > 24 ,
"?" = > 25 ,
"&&" = > 27 ,
"||" = > 26 ,
"&" = > 28 ,
"|" = > 30 ,
"=>" = > 31 ,
"<<" = > 32 ,
2007-01-05 23:12:21 +03:00
"<=" = > 33 ,
">" = > 34
} ,
2007-02-07 22:03:19 +03:00
DEFAULT = > - 25
2007-01-05 23:12:21 +03:00
} ,
2007-02-07 22:03:19 +03:00
{ #State 59
2007-01-05 23:12:21 +03:00
ACTIONS = > {
2007-02-07 22:03:19 +03:00
"^" = > 21 ,
"?" = > 25 ,
"&&" = > 27 ,
"||" = > 26 ,
"=>" = > 31 ,
2007-01-05 23:12:21 +03:00
"<=" = > 33
} ,
2007-02-07 22:03:19 +03:00
DEFAULT = > - 12
2007-01-05 23:12:21 +03:00
} ,
2007-02-07 22:03:19 +03:00
{ #State 60
2007-01-05 23:12:21 +03:00
ACTIONS = > {
2007-02-07 22:03:19 +03:00
"-" = > 15 ,
"<" = > 17 ,
"+" = > 18 ,
"%" = > 19 ,
"==" = > 20 ,
"^" = > 21 ,
"*" = > 22 ,
">>" = > 23 ,
"!=" = > 24 ,
"?" = > 25 ,
"&&" = > 27 ,
"||" = > 26 ,
"&" = > 28 ,
"/" = > 29 ,
"|" = > 30 ,
"=>" = > 31 ,
"<<" = > 32 ,
2007-01-05 23:12:21 +03:00
"<=" = > 33 ,
">" = > 34
} ,
2007-02-07 22:03:19 +03:00
DEFAULT = > - 15
2007-01-05 23:12:21 +03:00
} ,
2007-02-07 22:03:19 +03:00
{ #State 61
2007-01-05 23:12:21 +03:00
ACTIONS = > {
2007-02-07 22:03:19 +03:00
"<" = > 17 ,
"==" = > 20 ,
"^" = > 21 ,
"!=" = > 24 ,
"?" = > 25 ,
"&&" = > 27 ,
"||" = > 26 ,
"&" = > 28 ,
"|" = > 30 ,
"=>" = > 31 ,
2007-01-05 23:12:21 +03:00
"<=" = > 33 ,
">" = > 34
} ,
2007-02-07 22:03:19 +03:00
DEFAULT = > - 16
2007-01-05 23:12:21 +03:00
} ,
2007-02-07 22:03:19 +03:00
{ #State 62
2007-01-05 23:12:21 +03:00
ACTIONS = > {
2007-02-07 22:03:19 +03:00
"-" = > 15 ,
"<" = > 17 ,
"+" = > 18 ,
"%" = > 19 ,
"==" = > 20 ,
"^" = > 21 ,
"*" = > 22 ,
">>" = > 23 ,
"!=" = > 24 ,
"?" = > 25 ,
"&&" = > 27 ,
"||" = > 26 ,
"&" = > 28 ,
"/" = > 29 ,
"|" = > 30 ,
"=>" = > 31 ,
"<<" = > 32 ,
2007-01-05 23:12:21 +03:00
"<=" = > 33 ,
">" = > 34
} ,
2007-02-07 22:03:19 +03:00
DEFAULT = > - 14
2007-01-05 23:12:21 +03:00
} ,
2007-02-07 22:03:19 +03:00
{ #State 63
2007-01-05 23:12:21 +03:00
ACTIONS = > {
2007-02-07 22:03:19 +03:00
"==" = > 20 ,
"^" = > 21 ,
"!=" = > 24 ,
"?" = > 25 ,
"&&" = > 27 ,
"||" = > 26 ,
"&" = > 28 ,
"|" = > 30 ,
"=>" = > 31 ,
2007-01-05 23:12:21 +03:00
"<=" = > 33
} ,
2007-02-07 22:03:19 +03:00
DEFAULT = > - 11
2007-01-05 23:12:21 +03:00
} ,
2007-02-07 22:03:19 +03:00
{ #State 64
DEFAULT = > - 34
2007-01-05 23:12:21 +03:00
} ,
2007-02-07 22:03:19 +03:00
{ #State 65
DEFAULT = > - 29
2007-01-05 23:12:21 +03:00
} ,
2007-02-07 22:03:19 +03:00
{ #State 66
DEFAULT = > - 38
} ,
{ #State 67
ACTIONS = > {
"," = > 74
} ,
DEFAULT = > - 41
} ,
{ #State 68
DEFAULT = > - 32
} ,
{ #State 69
2007-01-05 23:12:21 +03:00
ACTIONS = > {
2007-02-07 22:03:19 +03:00
"-" = > 15 ,
"<" = > 17 ,
"+" = > 18 ,
"%" = > 19 ,
"==" = > 20 ,
"^" = > 21 ,
"*" = > 22 ,
">>" = > 23 ,
"!=" = > 24 ,
"?" = > 25 ,
"&&" = > 27 ,
"||" = > 26 ,
"&" = > 28 ,
"/" = > 29 ,
"|" = > 30 ,
"=>" = > 31 ,
"<<" = > 32 ,
2007-01-05 23:12:21 +03:00
"<=" = > 33 ,
">" = > 34
} ,
2007-02-07 22:03:19 +03:00
DEFAULT = > - 39
2007-01-05 23:12:21 +03:00
} ,
2007-02-07 22:03:19 +03:00
{ #State 70
2007-01-05 23:12:21 +03:00
ACTIONS = > {
2007-02-07 22:03:19 +03:00
")" = > 75
2007-01-05 23:12:21 +03:00
}
} ,
2007-02-07 22:03:19 +03:00
{ #State 71
DEFAULT = > - 35
} ,
{ #State 72
DEFAULT = > - 33
} ,
{ #State 73
2007-01-05 23:12:21 +03:00
ACTIONS = > {
"-" = > 1 ,
"~" = > 3 ,
"&" = > 4 ,
'TEXT' = > 6 ,
'NUM' = > 5 ,
"!" = > 8 ,
"(" = > 7 ,
"*" = > 9 ,
'VAR' = > 10
} ,
GOTOS = > {
2007-02-07 22:03:19 +03:00
'exp' = > 76 ,
'var' = > 11 ,
'func' = > 12 ,
'possible_pointer' = > 13
2007-01-05 23:12:21 +03:00
}
} ,
2007-02-07 22:03:19 +03:00
{ #State 74
2007-01-05 23:12:21 +03:00
ACTIONS = > {
"-" = > 1 ,
"~" = > 3 ,
"&" = > 4 ,
'TEXT' = > 6 ,
'NUM' = > 5 ,
"!" = > 8 ,
"(" = > 7 ,
"*" = > 9 ,
'VAR' = > 10
} ,
GOTOS = > {
2007-02-07 22:03:19 +03:00
'exp' = > 69 ,
'var' = > 11 ,
'args' = > 77 ,
'func' = > 12 ,
'exp_or_possible_pointer' = > 67 ,
'possible_pointer' = > 68
2007-01-05 23:12:21 +03:00
}
} ,
2007-02-07 22:03:19 +03:00
{ #State 75
DEFAULT = > - 36
2007-01-05 23:12:21 +03:00
} ,
2007-02-07 22:03:19 +03:00
{ #State 76
2007-01-05 23:12:21 +03:00
ACTIONS = > {
2007-02-07 22:03:19 +03:00
"^" = > 21 ,
"=>" = > 31 ,
2007-01-05 23:12:21 +03:00
"<=" = > 33
} ,
2007-02-07 22:03:19 +03:00
DEFAULT = > - 22
2007-01-05 23:12:21 +03:00
} ,
2007-02-07 22:03:19 +03:00
{ #State 77
DEFAULT = > - 42
2007-01-05 23:12:21 +03:00
}
] ,
yyrules = >
[
[ #Rule 0
'$start' , 2 , undef
] ,
[ #Rule 1
'exp' , 1 , undef
] ,
[ #Rule 2
'exp' , 1 ,
sub
2008-07-21 14:47:08 +04:00
#line 22 "./pidl/expr.yp"
2007-01-05 23:12:21 +03:00
{ "\"$_[1]\"" }
] ,
[ #Rule 3
'exp' , 1 , undef
] ,
[ #Rule 4
2007-02-07 22:03:19 +03:00
'exp' , 1 , undef
2007-01-05 23:12:21 +03:00
] ,
[ #Rule 5
'exp' , 2 ,
sub
2008-07-21 14:47:08 +04:00
#line 25 "./pidl/expr.yp"
2007-01-05 23:12:21 +03:00
{ "~$_[2]" }
] ,
2007-02-07 22:03:19 +03:00
[ #Rule 6
2007-01-05 23:12:21 +03:00
'exp' , 3 ,
sub
2008-07-21 14:47:08 +04:00
#line 26 "./pidl/expr.yp"
2007-01-05 23:12:21 +03:00
{ "$_[1] + $_[3]" }
] ,
2007-02-07 22:03:19 +03:00
[ #Rule 7
2007-01-05 23:12:21 +03:00
'exp' , 3 ,
sub
2008-07-21 14:47:08 +04:00
#line 27 "./pidl/expr.yp"
2007-01-05 23:12:21 +03:00
{ "$_[1] - $_[3]" }
] ,
2007-02-07 22:03:19 +03:00
[ #Rule 8
2007-01-05 23:12:21 +03:00
'exp' , 3 ,
sub
2008-07-21 14:47:08 +04:00
#line 28 "./pidl/expr.yp"
2007-01-05 23:12:21 +03:00
{ "$_[1] * $_[3]" }
] ,
2007-02-07 22:03:19 +03:00
[ #Rule 9
2007-01-05 23:12:21 +03:00
'exp' , 3 ,
sub
2008-07-21 14:47:08 +04:00
#line 29 "./pidl/expr.yp"
2007-01-05 23:12:21 +03:00
{ "$_[1] % $_[3]" }
] ,
2007-02-07 22:03:19 +03:00
[ #Rule 10
2007-01-05 23:12:21 +03:00
'exp' , 3 ,
sub
2008-07-21 14:47:08 +04:00
#line 30 "./pidl/expr.yp"
2007-01-05 23:12:21 +03:00
{ "$_[1] < $_[3]" }
] ,
2007-02-07 22:03:19 +03:00
[ #Rule 11
2007-01-05 23:12:21 +03:00
'exp' , 3 ,
sub
2008-07-21 14:47:08 +04:00
#line 31 "./pidl/expr.yp"
2007-01-05 23:12:21 +03:00
{ "$_[1] > $_[3]" }
] ,
2007-02-07 22:03:19 +03:00
[ #Rule 12
2007-01-05 23:12:21 +03:00
'exp' , 3 ,
sub
2008-07-21 14:47:08 +04:00
#line 32 "./pidl/expr.yp"
2007-01-05 23:12:21 +03:00
{ "$_[1] | $_[3]" }
] ,
2007-02-07 22:03:19 +03:00
[ #Rule 13
2007-01-05 23:12:21 +03:00
'exp' , 3 ,
sub
2008-07-21 14:47:08 +04:00
#line 33 "./pidl/expr.yp"
2007-01-05 23:12:21 +03:00
{ "$_[1] == $_[3]" }
] ,
2007-02-07 22:03:19 +03:00
[ #Rule 14
2007-01-05 23:12:21 +03:00
'exp' , 3 ,
sub
2008-07-21 14:47:08 +04:00
#line 34 "./pidl/expr.yp"
2007-01-05 23:12:21 +03:00
{ "$_[1] <= $_[3]" }
] ,
2007-02-07 22:03:19 +03:00
[ #Rule 15
2007-01-05 23:12:21 +03:00
'exp' , 3 ,
sub
2008-07-21 14:47:08 +04:00
#line 35 "./pidl/expr.yp"
2007-01-05 23:12:21 +03:00
{ "$_[1] => $_[3]" }
] ,
2007-02-07 22:03:19 +03:00
[ #Rule 16
2007-01-05 23:12:21 +03:00
'exp' , 3 ,
sub
2008-07-21 14:47:08 +04:00
#line 36 "./pidl/expr.yp"
2007-01-05 23:12:21 +03:00
{ "$_[1] << $_[3]" }
] ,
2007-02-07 22:03:19 +03:00
[ #Rule 17
2007-01-05 23:12:21 +03:00
'exp' , 3 ,
sub
2008-07-21 14:47:08 +04:00
#line 37 "./pidl/expr.yp"
2007-01-05 23:12:21 +03:00
{ "$_[1] >> $_[3]" }
] ,
2007-02-07 22:03:19 +03:00
[ #Rule 18
2007-01-05 23:12:21 +03:00
'exp' , 3 ,
sub
2008-07-21 14:47:08 +04:00
#line 38 "./pidl/expr.yp"
2007-01-05 23:12:21 +03:00
{ "$_[1] != $_[3]" }
] ,
2007-02-07 22:03:19 +03:00
[ #Rule 19
2007-01-05 23:12:21 +03:00
'exp' , 3 ,
sub
2008-07-21 14:47:08 +04:00
#line 39 "./pidl/expr.yp"
2007-01-05 23:12:21 +03:00
{ "$_[1] || $_[3]" }
] ,
2007-02-07 22:03:19 +03:00
[ #Rule 20
2007-01-05 23:12:21 +03:00
'exp' , 3 ,
sub
2008-07-21 14:47:08 +04:00
#line 40 "./pidl/expr.yp"
2007-01-05 23:12:21 +03:00
{ "$_[1] && $_[3]" }
] ,
2007-02-07 22:03:19 +03:00
[ #Rule 21
2007-01-05 23:12:21 +03:00
'exp' , 3 ,
sub
2008-07-21 14:47:08 +04:00
#line 41 "./pidl/expr.yp"
2007-01-05 23:12:21 +03:00
{ "$_[1] & $_[3]" }
] ,
2007-02-07 22:03:19 +03:00
[ #Rule 22
2007-01-05 23:12:21 +03:00
'exp' , 5 ,
sub
2008-07-21 14:47:08 +04:00
#line 42 "./pidl/expr.yp"
2007-01-05 23:12:21 +03:00
{ "$_[1]?$_[3]:$_[5]" }
] ,
2007-02-07 22:03:19 +03:00
[ #Rule 23
2007-01-05 23:12:21 +03:00
'exp' , 2 ,
sub
2008-07-21 14:47:08 +04:00
#line 43 "./pidl/expr.yp"
2007-01-05 23:12:21 +03:00
{ "~$_[1]" }
] ,
2007-02-07 22:03:19 +03:00
[ #Rule 24
2007-01-05 23:12:21 +03:00
'exp' , 2 ,
sub
2008-07-21 14:47:08 +04:00
#line 44 "./pidl/expr.yp"
2007-01-05 23:12:21 +03:00
{ "not $_[1]" }
] ,
2007-02-07 22:03:19 +03:00
[ #Rule 25
2007-01-05 23:12:21 +03:00
'exp' , 3 ,
sub
2008-07-21 14:47:08 +04:00
#line 45 "./pidl/expr.yp"
2007-01-05 23:12:21 +03:00
{ "$_[1] / $_[3]" }
] ,
2007-02-07 22:03:19 +03:00
[ #Rule 26
2007-01-05 23:12:21 +03:00
'exp' , 2 ,
sub
2008-07-21 14:47:08 +04:00
#line 46 "./pidl/expr.yp"
2007-01-05 23:12:21 +03:00
{ "-$_[2]" }
] ,
2007-02-07 22:03:19 +03:00
[ #Rule 27
2007-01-05 23:12:21 +03:00
'exp' , 2 ,
sub
2008-07-21 14:47:08 +04:00
#line 47 "./pidl/expr.yp"
2007-01-05 23:12:21 +03:00
{ "&$_[2]" }
] ,
2007-02-07 22:03:19 +03:00
[ #Rule 28
2007-01-05 23:12:21 +03:00
'exp' , 3 ,
sub
2008-07-21 14:47:08 +04:00
#line 48 "./pidl/expr.yp"
2007-01-05 23:12:21 +03:00
{ "$_[1]^$_[3]" }
] ,
2007-02-07 22:03:19 +03:00
[ #Rule 29
2007-01-05 23:12:21 +03:00
'exp' , 3 ,
sub
2008-07-21 14:47:08 +04:00
#line 49 "./pidl/expr.yp"
2007-01-05 23:12:21 +03:00
{ "($_[2])" }
2007-02-07 22:03:19 +03:00
] ,
[ #Rule 30
'possible_pointer' , 1 ,
sub
2008-07-21 14:47:08 +04:00
#line 53 "./pidl/expr.yp"
2007-02-07 22:03:19 +03:00
{ $ _ [ 0 ] - > _Lookup ( $ _ [ 1 ] ) }
] ,
[ #Rule 31
'possible_pointer' , 2 ,
sub
2008-07-21 14:47:08 +04:00
#line 54 "./pidl/expr.yp"
2007-02-07 22:03:19 +03:00
{ $ _ [ 0 ] - > _Dereference ( $ _ [ 2 ] ) ; "*$_[2]" }
] ,
[ #Rule 32
'var' , 1 ,
sub
2008-07-21 14:47:08 +04:00
#line 57 "./pidl/expr.yp"
2007-02-07 22:03:19 +03:00
{ $ _ [ 0 ] - > _Use ( $ _ [ 1 ] ) }
2007-01-05 23:12:21 +03:00
] ,
[ #Rule 33
2007-02-07 22:03:19 +03:00
'var' , 3 ,
sub
2008-07-21 14:47:08 +04:00
#line 58 "./pidl/expr.yp"
2007-02-07 22:03:19 +03:00
{ $ _ [ 0 ] - > _Use ( "$_[1].$_[3]" ) }
] ,
[ #Rule 34
'var' , 3 ,
sub
2008-07-21 14:47:08 +04:00
#line 59 "./pidl/expr.yp"
2007-02-07 22:03:19 +03:00
{ "($_[2])" }
] ,
[ #Rule 35
'var' , 3 ,
sub
2008-07-21 14:47:08 +04:00
#line 60 "./pidl/expr.yp"
2007-02-07 22:03:19 +03:00
{ $ _ [ 0 ] - > _Use ( "*$_[1]" ) ; $ _ [ 1 ] . "->" . $ _ [ 3 ] }
] ,
[ #Rule 36
2007-01-05 23:12:21 +03:00
'func' , 4 ,
sub
2008-07-21 14:47:08 +04:00
#line 64 "./pidl/expr.yp"
2007-01-05 23:12:21 +03:00
{ "$_[1]($_[3])" }
] ,
2007-02-07 22:03:19 +03:00
[ #Rule 37
2007-01-05 23:12:21 +03:00
'opt_args' , 0 ,
sub
2008-07-21 14:47:08 +04:00
#line 65 "./pidl/expr.yp"
2007-01-05 23:12:21 +03:00
{ "" }
] ,
2007-02-07 22:03:19 +03:00
[ #Rule 38
2007-01-05 23:12:21 +03:00
'opt_args' , 1 , undef
] ,
2007-02-07 22:03:19 +03:00
[ #Rule 39
'exp_or_possible_pointer' , 1 , undef
] ,
[ #Rule 40
'exp_or_possible_pointer' , 1 , undef
] ,
[ #Rule 41
2007-01-05 23:12:21 +03:00
'args' , 1 , undef
] ,
2007-02-07 22:03:19 +03:00
[ #Rule 42
2007-01-05 23:12:21 +03:00
'args' , 3 ,
sub
2008-07-21 14:47:08 +04:00
#line 68 "./pidl/expr.yp"
2007-01-05 23:12:21 +03:00
{ "$_[1], $_[3]" }
]
] ,
@ _ ) ;
bless ( $ self , $ class ) ;
}
2008-07-21 14:47:08 +04:00
#line 71 "./pidl/expr.yp"
2007-01-05 23:12:21 +03:00
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 ) ;
}
}
}
2007-02-07 22:03:19 +03:00
sub _Use ($$)
{
my ( $ self , $ x ) = @ _ ;
if ( defined ( $ self - > YYData - > { USE } ) ) {
return $ self - > YYData - > { USE } - > ( $ x ) ;
}
return $ x ;
}
2007-01-05 23:52:12 +03:00
sub _Lookup ($$)
2007-01-05 23:12:21 +03:00
{
my ( $ self , $ x ) = @ _ ;
return $ self - > YYData - > { LOOKUP } - > ( $ x ) ;
}
2007-01-05 23:52:12 +03:00
sub _Dereference ($$)
2007-01-05 23:12:21 +03:00
{
my ( $ self , $ x ) = @ _ ;
if ( defined ( $ self - > YYData - > { DEREFERENCE } ) ) {
$ self - > YYData - > { DEREFERENCE } - > ( $ x ) ;
}
}
2007-01-05 23:52:12 +03:00
sub _Error ($)
{
my ( $ self ) = @ _ ;
2007-01-09 09:02:41 +03:00
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 } . "'" ) ;
}
2007-01-05 23:52:12 +03:00
}
2007-01-05 23:12:21 +03:00
sub Run {
2007-02-07 22:03:19 +03:00
my ( $ self , $ data , $ error , $ lookup , $ deref , $ use ) = @ _ ;
2007-01-05 23:52:12 +03:00
$ self - > YYData - > { FULL_INPUT } = $ data ;
2007-01-05 23:12:21 +03:00
$ self - > YYData - > { INPUT } = $ data ;
$ self - > YYData - > { LOOKUP } = $ lookup ;
$ self - > YYData - > { DEREFERENCE } = $ deref ;
2007-01-05 23:52:12 +03:00
$ self - > YYData - > { ERROR } = $ error ;
2007-02-07 22:03:19 +03:00
$ self - > YYData - > { USE } = $ use ;
2007-01-05 23:52:12 +03:00
return $ self - > YYParse ( yylex = > \ & _Lexer , yyerror = > \ & _Error ) ;
2007-01-05 23:12:21 +03:00
}
1 ;