summaryrefslogtreecommitdiffstats
path: root/pidl/lib/Parse/Pidl/Expr.pm
diff options
context:
space:
mode:
Diffstat (limited to 'pidl/lib/Parse/Pidl/Expr.pm')
-rw-r--r--pidl/lib/Parse/Pidl/Expr.pm1445
1 files changed, 1445 insertions, 0 deletions
diff --git a/pidl/lib/Parse/Pidl/Expr.pm b/pidl/lib/Parse/Pidl/Expr.pm
new file mode 100644
index 0000000..967d687
--- /dev/null
+++ b/pidl/lib/Parse/Pidl/Expr.pm
@@ -0,0 +1,1445 @@
+####################################################################
+#
+# 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;
+use warnings;
+
+@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;