--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/deprecated/buildtools/buildsystemtools/lib/XML/XQL/Parser.pm Wed Oct 27 16:03:51 2010 +0800
@@ -0,0 +1,1438 @@
+#########################################################################
+#
+# This file was generated using Parse::Yapp version 0.16.
+#
+# Don't edit this file, use source file instead.
+#
+# ANY CHANGE MADE HERE WILL BE LOST !
+#
+#########################################################################
+package XML::XQL::Parser;
+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 => '0.16',
+ yystates =>
+[
+ {#State 0
+ ACTIONS => {
+ 'NCName' => 25,
+ "(" => 28,
+ "any" => 14,
+ "all" => 20,
+ "*" => 29,
+ ".." => 4,
+ 'XQLName_Paren' => 22,
+ "." => 34,
+ "//" => 23,
+ "/" => 16,
+ "\@" => 11,
+ "not" => 17
+ },
+ GOTOS => {
+ 'WildQName' => 19,
+ 'WildNCName' => 18,
+ 'Filter' => 1,
+ 'Union' => 21,
+ 'RelativePath' => 2,
+ 'LValue' => 3,
+ 'Conjunction' => 5,
+ 'Disjunction' => 6,
+ 'ElementName' => 7,
+ 'Grouping' => 8,
+ 'PathOp' => 24,
+ 'AbsolutePath' => 9,
+ 'Path' => 10,
+ 'RelativeTerm' => 12,
+ 'AttributeName' => 13,
+ 'Negation' => 26,
+ 'Query' => 27,
+ 'Intersection' => 15,
+ 'Bang' => 30,
+ 'Sequence' => 31,
+ 'Invocation' => 32,
+ 'Comparison' => 33,
+ 'Subscript' => 35
+ }
+ },
+ {#State 1
+ ACTIONS => {
+ "[" => 36
+ },
+ DEFAULT => -51,
+ GOTOS => {
+ 'Subscript_2' => 37
+ }
+ },
+ {#State 2
+ DEFAULT => -43
+ },
+ {#State 3
+ ACTIONS => {
+ 'MATCH' => 40,
+ 'COMPARE' => 39
+ },
+ GOTOS => {
+ 'ComparisonOp' => 38
+ }
+ },
+ {#State 4
+ DEFAULT => -65
+ },
+ {#State 5
+ ACTIONS => {
+ "or" => 41
+ },
+ DEFAULT => -21
+ },
+ {#State 6
+ ACTIONS => {
+ 'SeqOp' => 42
+ },
+ DEFAULT => -19
+ },
+ {#State 7
+ DEFAULT => -67
+ },
+ {#State 8
+ DEFAULT => -59
+ },
+ {#State 9
+ DEFAULT => -42
+ },
+ {#State 10
+ ACTIONS => {
+ 'COMPARE' => -37,
+ 'MATCH' => -37
+ },
+ DEFAULT => -33
+ },
+ {#State 11
+ ACTIONS => {
+ "*" => 29,
+ 'NCName' => 25
+ },
+ GOTOS => {
+ 'WildQName' => 43,
+ 'WildNCName' => 18
+ }
+ },
+ {#State 12
+ DEFAULT => -62
+ },
+ {#State 13
+ DEFAULT => -68
+ },
+ {#State 14
+ ACTIONS => {
+ 'NCName' => 25,
+ "(" => 28,
+ "*" => 29,
+ ".." => 4,
+ 'XQLName_Paren' => 22,
+ "." => 34,
+ "//" => 23,
+ "/" => 16,
+ "\@" => 11
+ },
+ GOTOS => {
+ 'WildNCName' => 18,
+ 'WildQName' => 19,
+ 'RelativeTerm' => 12,
+ 'AttributeName' => 13,
+ 'Filter' => 1,
+ 'Bang' => 30,
+ 'RelativePath' => 2,
+ 'LValue' => 44,
+ 'Invocation' => 32,
+ 'ElementName' => 7,
+ 'Grouping' => 8,
+ 'PathOp' => 24,
+ 'AbsolutePath' => 9,
+ 'Path' => 45,
+ 'Subscript' => 35
+ }
+ },
+ {#State 15
+ ACTIONS => {
+ 'UnionOp' => 46
+ },
+ DEFAULT => -27
+ },
+ {#State 16
+ ACTIONS => {
+ ".." => -17,
+ 'XQLName_Paren' => -17,
+ "\@" => -17,
+ 'NCName' => -17,
+ "(" => -17,
+ "*" => -17,
+ "." => -17
+ },
+ DEFAULT => -44
+ },
+ {#State 17
+ ACTIONS => {
+ 'NCName' => 25,
+ "(" => 28,
+ "any" => 14,
+ "all" => 20,
+ "*" => 29,
+ ".." => 4,
+ 'XQLName_Paren' => 22,
+ "." => 34,
+ "//" => 23,
+ "/" => 16,
+ "\@" => 11,
+ "not" => 17
+ },
+ GOTOS => {
+ 'WildNCName' => 18,
+ 'WildQName' => 19,
+ 'Filter' => 1,
+ 'Union' => 21,
+ 'RelativePath' => 2,
+ 'LValue' => 3,
+ 'ElementName' => 7,
+ 'Grouping' => 8,
+ 'PathOp' => 24,
+ 'AbsolutePath' => 9,
+ 'Path' => 10,
+ 'RelativeTerm' => 12,
+ 'AttributeName' => 13,
+ 'Negation' => 47,
+ 'Intersection' => 15,
+ 'Bang' => 30,
+ 'Invocation' => 32,
+ 'Comparison' => 33,
+ 'Subscript' => 35
+ }
+ },
+ {#State 18
+ ACTIONS => {
+ ":" => 48
+ },
+ DEFAULT => -4
+ },
+ {#State 19
+ DEFAULT => -10
+ },
+ {#State 20
+ ACTIONS => {
+ 'NCName' => 25,
+ "(" => 28,
+ "*" => 29,
+ ".." => 4,
+ 'XQLName_Paren' => 22,
+ "." => 34,
+ "//" => 23,
+ "/" => 16,
+ "\@" => 11
+ },
+ GOTOS => {
+ 'WildNCName' => 18,
+ 'WildQName' => 19,
+ 'RelativeTerm' => 12,
+ 'AttributeName' => 13,
+ 'Filter' => 1,
+ 'Bang' => 30,
+ 'RelativePath' => 2,
+ 'LValue' => 49,
+ 'Invocation' => 32,
+ 'ElementName' => 7,
+ 'Grouping' => 8,
+ 'PathOp' => 24,
+ 'AbsolutePath' => 9,
+ 'Path' => 45,
+ 'Subscript' => 35
+ }
+ },
+ {#State 21
+ DEFAULT => -25
+ },
+ {#State 22
+ ACTIONS => {
+ 'NCName' => 25,
+ 'TEXT' => 50,
+ "(" => 28,
+ "any" => 14,
+ "all" => 20,
+ ")" => 54,
+ "*" => 29,
+ 'NUMBER' => 51,
+ ".." => 4,
+ 'XQLName_Paren' => 22,
+ "." => 34,
+ "//" => 23,
+ "/" => 16,
+ "\@" => 11,
+ 'INTEGER' => 53,
+ "not" => 17
+ },
+ GOTOS => {
+ 'WildNCName' => 18,
+ 'WildQName' => 19,
+ 'Filter' => 1,
+ 'Union' => 21,
+ 'RelativePath' => 2,
+ 'LValue' => 3,
+ 'Conjunction' => 5,
+ 'Disjunction' => 52,
+ 'Invocation_2' => 55,
+ 'ElementName' => 7,
+ 'Grouping' => 8,
+ 'PathOp' => 24,
+ 'AbsolutePath' => 9,
+ 'Path' => 10,
+ 'Param' => 56,
+ 'RelativeTerm' => 12,
+ 'Negation' => 26,
+ 'AttributeName' => 13,
+ 'Intersection' => 15,
+ 'Bang' => 30,
+ 'Invocation' => 32,
+ 'Comparison' => 33,
+ 'Subscript' => 35
+ }
+ },
+ {#State 23
+ DEFAULT => -18
+ },
+ {#State 24
+ ACTIONS => {
+ "*" => 29,
+ 'NCName' => 25,
+ ".." => 4,
+ 'XQLName_Paren' => 22,
+ "." => 34,
+ "(" => 28,
+ "\@" => 11
+ },
+ GOTOS => {
+ 'WildNCName' => 18,
+ 'WildQName' => 19,
+ 'RelativeTerm' => 12,
+ 'AttributeName' => 13,
+ 'Filter' => 1,
+ 'Bang' => 30,
+ 'RelativePath' => 57,
+ 'Invocation' => 32,
+ 'ElementName' => 7,
+ 'Grouping' => 8,
+ 'Subscript' => 35
+ }
+ },
+ {#State 25
+ DEFAULT => -2
+ },
+ {#State 26
+ ACTIONS => {
+ "and" => 58
+ },
+ DEFAULT => -23
+ },
+ {#State 27
+ ACTIONS => {
+ '' => 59
+ }
+ },
+ {#State 28
+ ACTIONS => {
+ 'NCName' => 25,
+ "(" => 28,
+ "any" => 14,
+ "all" => 20,
+ "*" => 29,
+ ".." => 4,
+ 'XQLName_Paren' => 22,
+ "." => 34,
+ "//" => 23,
+ "/" => 16,
+ "\@" => 11,
+ "not" => 17
+ },
+ GOTOS => {
+ 'WildNCName' => 18,
+ 'WildQName' => 19,
+ 'Filter' => 1,
+ 'Union' => 21,
+ 'RelativePath' => 2,
+ 'LValue' => 3,
+ 'Conjunction' => 5,
+ 'Disjunction' => 6,
+ 'ElementName' => 7,
+ 'Grouping' => 8,
+ 'PathOp' => 24,
+ 'AbsolutePath' => 9,
+ 'Path' => 10,
+ 'RelativeTerm' => 12,
+ 'AttributeName' => 13,
+ 'Negation' => 26,
+ 'Query' => 60,
+ 'Intersection' => 15,
+ 'Bang' => 30,
+ 'Sequence' => 31,
+ 'Invocation' => 32,
+ 'Comparison' => 33,
+ 'Subscript' => 35
+ }
+ },
+ {#State 29
+ DEFAULT => -3
+ },
+ {#State 30
+ ACTIONS => {
+ "//" => 23,
+ "/" => 61
+ },
+ DEFAULT => -46,
+ GOTOS => {
+ 'PathOp' => 62
+ }
+ },
+ {#State 31
+ DEFAULT => -1
+ },
+ {#State 32
+ DEFAULT => -66
+ },
+ {#State 33
+ ACTIONS => {
+ "intersect" => 63
+ },
+ DEFAULT => -29
+ },
+ {#State 34
+ DEFAULT => -64
+ },
+ {#State 35
+ ACTIONS => {
+ "!" => 64
+ },
+ DEFAULT => -48
+ },
+ {#State 36
+ ACTIONS => {
+ 'NCName' => 25,
+ "(" => 28,
+ "any" => 14,
+ "all" => 20,
+ "*" => 29,
+ ".." => 4,
+ 'XQLName_Paren' => 22,
+ "." => 34,
+ "//" => 23,
+ "/" => 16,
+ 'INTEGER' => 65,
+ "\@" => 11,
+ "not" => 17
+ },
+ GOTOS => {
+ 'Subquery' => 67,
+ 'WildNCName' => 18,
+ 'WildQName' => 19,
+ 'Filter' => 1,
+ 'Union' => 21,
+ 'RelativePath' => 2,
+ 'LValue' => 3,
+ 'Conjunction' => 5,
+ 'Disjunction' => 6,
+ 'ElementName' => 7,
+ 'Grouping' => 8,
+ 'PathOp' => 24,
+ 'AbsolutePath' => 9,
+ 'Range' => 68,
+ 'Path' => 10,
+ 'IndexArg' => 69,
+ 'RelativeTerm' => 12,
+ 'IndexList' => 66,
+ 'AttributeName' => 13,
+ 'Negation' => 26,
+ 'Query' => 70,
+ 'Intersection' => 15,
+ 'Bang' => 30,
+ 'Sequence' => 31,
+ 'Invocation' => 32,
+ 'Comparison' => 33,
+ 'Subscript' => 35
+ }
+ },
+ {#State 37
+ DEFAULT => -50
+ },
+ {#State 38
+ ACTIONS => {
+ 'NCName' => 25,
+ 'TEXT' => 71,
+ "(" => 28,
+ "*" => 29,
+ 'NUMBER' => 72,
+ ".." => 4,
+ 'XQLName_Paren' => 22,
+ "." => 34,
+ "//" => 23,
+ "/" => 16,
+ 'INTEGER' => 74,
+ "\@" => 11
+ },
+ GOTOS => {
+ 'WildNCName' => 18,
+ 'WildQName' => 19,
+ 'RelativeTerm' => 12,
+ 'AttributeName' => 13,
+ 'Filter' => 1,
+ 'Bang' => 30,
+ 'RelativePath' => 2,
+ 'Invocation' => 32,
+ 'ElementName' => 7,
+ 'Grouping' => 8,
+ 'PathOp' => 24,
+ 'AbsolutePath' => 9,
+ 'Path' => 73,
+ 'Subscript' => 35,
+ 'RValue' => 75
+ }
+ },
+ {#State 39
+ DEFAULT => -31
+ },
+ {#State 40
+ DEFAULT => -32
+ },
+ {#State 41
+ ACTIONS => {
+ 'NCName' => 25,
+ "(" => 28,
+ "any" => 14,
+ "all" => 20,
+ "*" => 29,
+ ".." => 4,
+ 'XQLName_Paren' => 22,
+ "." => 34,
+ "//" => 23,
+ "/" => 16,
+ "\@" => 11,
+ "not" => 17
+ },
+ GOTOS => {
+ 'WildNCName' => 18,
+ 'WildQName' => 19,
+ 'Filter' => 1,
+ 'Union' => 21,
+ 'RelativePath' => 2,
+ 'LValue' => 3,
+ 'Conjunction' => 5,
+ 'Disjunction' => 76,
+ 'ElementName' => 7,
+ 'Grouping' => 8,
+ 'PathOp' => 24,
+ 'AbsolutePath' => 9,
+ 'Path' => 10,
+ 'RelativeTerm' => 12,
+ 'AttributeName' => 13,
+ 'Negation' => 26,
+ 'Intersection' => 15,
+ 'Bang' => 30,
+ 'Invocation' => 32,
+ 'Comparison' => 33,
+ 'Subscript' => 35
+ }
+ },
+ {#State 42
+ ACTIONS => {
+ 'NCName' => 25,
+ "(" => 28,
+ "any" => 14,
+ "all" => 20,
+ "*" => 29,
+ ".." => 4,
+ 'XQLName_Paren' => 22,
+ "." => 34,
+ "//" => 23,
+ "/" => 16,
+ "\@" => 11,
+ "not" => 17
+ },
+ GOTOS => {
+ 'WildNCName' => 18,
+ 'WildQName' => 19,
+ 'Filter' => 1,
+ 'Union' => 21,
+ 'RelativePath' => 2,
+ 'LValue' => 3,
+ 'Conjunction' => 5,
+ 'Disjunction' => 6,
+ 'ElementName' => 7,
+ 'Grouping' => 8,
+ 'PathOp' => 24,
+ 'AbsolutePath' => 9,
+ 'Path' => 10,
+ 'RelativeTerm' => 12,
+ 'AttributeName' => 13,
+ 'Negation' => 26,
+ 'Intersection' => 15,
+ 'Bang' => 30,
+ 'Sequence' => 77,
+ 'Invocation' => 32,
+ 'Comparison' => 33,
+ 'Subscript' => 35
+ }
+ },
+ {#State 43
+ DEFAULT => -11
+ },
+ {#State 44
+ ACTIONS => {
+ 'MATCH' => 40,
+ 'COMPARE' => 39
+ },
+ GOTOS => {
+ 'ComparisonOp' => 78
+ }
+ },
+ {#State 45
+ DEFAULT => -37
+ },
+ {#State 46
+ ACTIONS => {
+ 'NCName' => 25,
+ "(" => 28,
+ "any" => 14,
+ "all" => 20,
+ "*" => 29,
+ ".." => 4,
+ 'XQLName_Paren' => 22,
+ "." => 34,
+ "//" => 23,
+ "/" => 16,
+ "\@" => 11
+ },
+ GOTOS => {
+ 'WildNCName' => 18,
+ 'WildQName' => 19,
+ 'Filter' => 1,
+ 'Union' => 79,
+ 'RelativePath' => 2,
+ 'LValue' => 3,
+ 'ElementName' => 7,
+ 'Grouping' => 8,
+ 'PathOp' => 24,
+ 'AbsolutePath' => 9,
+ 'Path' => 10,
+ 'RelativeTerm' => 12,
+ 'AttributeName' => 13,
+ 'Intersection' => 15,
+ 'Bang' => 30,
+ 'Invocation' => 32,
+ 'Comparison' => 33,
+ 'Subscript' => 35
+ }
+ },
+ {#State 47
+ DEFAULT => -26
+ },
+ {#State 48
+ ACTIONS => {
+ "*" => 29,
+ 'NCName' => 25
+ },
+ GOTOS => {
+ 'WildNCName' => 80
+ }
+ },
+ {#State 49
+ ACTIONS => {
+ 'MATCH' => 40,
+ 'COMPARE' => 39
+ },
+ GOTOS => {
+ 'ComparisonOp' => 81
+ }
+ },
+ {#State 50
+ DEFAULT => -9
+ },
+ {#State 51
+ DEFAULT => -8
+ },
+ {#State 52
+ DEFAULT => -6
+ },
+ {#State 53
+ DEFAULT => -7
+ },
+ {#State 54
+ DEFAULT => -13
+ },
+ {#State 55
+ DEFAULT => -12
+ },
+ {#State 56
+ ACTIONS => {
+ "," => 83
+ },
+ DEFAULT => -15,
+ GOTOS => {
+ 'Invocation_3' => 82
+ }
+ },
+ {#State 57
+ DEFAULT => -45
+ },
+ {#State 58
+ ACTIONS => {
+ 'NCName' => 25,
+ "(" => 28,
+ "any" => 14,
+ "all" => 20,
+ "*" => 29,
+ ".." => 4,
+ 'XQLName_Paren' => 22,
+ "." => 34,
+ "//" => 23,
+ "/" => 16,
+ "\@" => 11,
+ "not" => 17
+ },
+ GOTOS => {
+ 'WildNCName' => 18,
+ 'WildQName' => 19,
+ 'Filter' => 1,
+ 'Union' => 21,
+ 'RelativePath' => 2,
+ 'LValue' => 3,
+ 'Conjunction' => 84,
+ 'ElementName' => 7,
+ 'Grouping' => 8,
+ 'PathOp' => 24,
+ 'AbsolutePath' => 9,
+ 'Path' => 10,
+ 'RelativeTerm' => 12,
+ 'AttributeName' => 13,
+ 'Negation' => 26,
+ 'Intersection' => 15,
+ 'Bang' => 30,
+ 'Invocation' => 32,
+ 'Comparison' => 33,
+ 'Subscript' => 35
+ }
+ },
+ {#State 59
+ DEFAULT => -0
+ },
+ {#State 60
+ ACTIONS => {
+ ")" => 85
+ }
+ },
+ {#State 61
+ DEFAULT => -17
+ },
+ {#State 62
+ ACTIONS => {
+ "*" => 29,
+ 'NCName' => 25,
+ ".." => 4,
+ 'XQLName_Paren' => 22,
+ "." => 34,
+ "(" => 28,
+ "\@" => 11
+ },
+ GOTOS => {
+ 'WildNCName' => 18,
+ 'WildQName' => 19,
+ 'RelativeTerm' => 12,
+ 'AttributeName' => 13,
+ 'Filter' => 1,
+ 'Bang' => 30,
+ 'RelativePath' => 86,
+ 'Invocation' => 32,
+ 'ElementName' => 7,
+ 'Grouping' => 8,
+ 'Subscript' => 35
+ }
+ },
+ {#State 63
+ ACTIONS => {
+ 'NCName' => 25,
+ "(" => 28,
+ "any" => 14,
+ "all" => 20,
+ "*" => 29,
+ ".." => 4,
+ 'XQLName_Paren' => 22,
+ "." => 34,
+ "//" => 23,
+ "/" => 16,
+ "\@" => 11
+ },
+ GOTOS => {
+ 'WildNCName' => 18,
+ 'WildQName' => 19,
+ 'Filter' => 1,
+ 'RelativePath' => 2,
+ 'LValue' => 3,
+ 'ElementName' => 7,
+ 'Grouping' => 8,
+ 'PathOp' => 24,
+ 'AbsolutePath' => 9,
+ 'Path' => 10,
+ 'RelativeTerm' => 12,
+ 'AttributeName' => 13,
+ 'Intersection' => 87,
+ 'Bang' => 30,
+ 'Invocation' => 32,
+ 'Comparison' => 33,
+ 'Subscript' => 35
+ }
+ },
+ {#State 64
+ ACTIONS => {
+ 'XQLName_Paren' => 22
+ },
+ GOTOS => {
+ 'Invocation' => 88
+ }
+ },
+ {#State 65
+ ACTIONS => {
+ "to" => 89
+ },
+ DEFAULT => -56
+ },
+ {#State 66
+ ACTIONS => {
+ "]" => 90
+ }
+ },
+ {#State 67
+ ACTIONS => {
+ "]" => 91
+ }
+ },
+ {#State 68
+ DEFAULT => -57
+ },
+ {#State 69
+ ACTIONS => {
+ "," => 93
+ },
+ DEFAULT => -54,
+ GOTOS => {
+ 'IndexList_2' => 92
+ }
+ },
+ {#State 70
+ DEFAULT => -61
+ },
+ {#State 71
+ DEFAULT => -41
+ },
+ {#State 72
+ DEFAULT => -40
+ },
+ {#State 73
+ DEFAULT => -38
+ },
+ {#State 74
+ DEFAULT => -39
+ },
+ {#State 75
+ DEFAULT => -34
+ },
+ {#State 76
+ DEFAULT => -22
+ },
+ {#State 77
+ DEFAULT => -20
+ },
+ {#State 78
+ ACTIONS => {
+ 'NCName' => 25,
+ 'TEXT' => 71,
+ "(" => 28,
+ "*" => 29,
+ 'NUMBER' => 72,
+ ".." => 4,
+ 'XQLName_Paren' => 22,
+ "." => 34,
+ "//" => 23,
+ "/" => 16,
+ 'INTEGER' => 74,
+ "\@" => 11
+ },
+ GOTOS => {
+ 'WildNCName' => 18,
+ 'WildQName' => 19,
+ 'RelativeTerm' => 12,
+ 'AttributeName' => 13,
+ 'Filter' => 1,
+ 'Bang' => 30,
+ 'RelativePath' => 2,
+ 'Invocation' => 32,
+ 'ElementName' => 7,
+ 'Grouping' => 8,
+ 'PathOp' => 24,
+ 'AbsolutePath' => 9,
+ 'Path' => 73,
+ 'Subscript' => 35,
+ 'RValue' => 94
+ }
+ },
+ {#State 79
+ DEFAULT => -28
+ },
+ {#State 80
+ DEFAULT => -5
+ },
+ {#State 81
+ ACTIONS => {
+ 'NCName' => 25,
+ 'TEXT' => 71,
+ "(" => 28,
+ "*" => 29,
+ 'NUMBER' => 72,
+ ".." => 4,
+ 'XQLName_Paren' => 22,
+ "." => 34,
+ "//" => 23,
+ "/" => 16,
+ 'INTEGER' => 74,
+ "\@" => 11
+ },
+ GOTOS => {
+ 'WildNCName' => 18,
+ 'WildQName' => 19,
+ 'RelativeTerm' => 12,
+ 'AttributeName' => 13,
+ 'Filter' => 1,
+ 'Bang' => 30,
+ 'RelativePath' => 2,
+ 'Invocation' => 32,
+ 'ElementName' => 7,
+ 'Grouping' => 8,
+ 'PathOp' => 24,
+ 'AbsolutePath' => 9,
+ 'Path' => 73,
+ 'Subscript' => 35,
+ 'RValue' => 95
+ }
+ },
+ {#State 82
+ ACTIONS => {
+ ")" => 96
+ }
+ },
+ {#State 83
+ ACTIONS => {
+ 'NCName' => 25,
+ 'TEXT' => 50,
+ "(" => 28,
+ "any" => 14,
+ "all" => 20,
+ "*" => 29,
+ 'NUMBER' => 51,
+ ".." => 4,
+ 'XQLName_Paren' => 22,
+ "." => 34,
+ "//" => 23,
+ "/" => 16,
+ "\@" => 11,
+ 'INTEGER' => 53,
+ "not" => 17
+ },
+ GOTOS => {
+ 'WildNCName' => 18,
+ 'WildQName' => 19,
+ 'Filter' => 1,
+ 'Union' => 21,
+ 'RelativePath' => 2,
+ 'LValue' => 3,
+ 'Conjunction' => 5,
+ 'Disjunction' => 52,
+ 'ElementName' => 7,
+ 'Grouping' => 8,
+ 'PathOp' => 24,
+ 'AbsolutePath' => 9,
+ 'Path' => 10,
+ 'Param' => 97,
+ 'RelativeTerm' => 12,
+ 'Negation' => 26,
+ 'AttributeName' => 13,
+ 'Intersection' => 15,
+ 'Bang' => 30,
+ 'Invocation' => 32,
+ 'Comparison' => 33,
+ 'Subscript' => 35
+ }
+ },
+ {#State 84
+ DEFAULT => -24
+ },
+ {#State 85
+ DEFAULT => -63
+ },
+ {#State 86
+ DEFAULT => -47
+ },
+ {#State 87
+ DEFAULT => -30
+ },
+ {#State 88
+ DEFAULT => -49
+ },
+ {#State 89
+ ACTIONS => {
+ 'INTEGER' => 98
+ }
+ },
+ {#State 90
+ DEFAULT => -52
+ },
+ {#State 91
+ DEFAULT => -60
+ },
+ {#State 92
+ DEFAULT => -53
+ },
+ {#State 93
+ ACTIONS => {
+ 'INTEGER' => 65
+ },
+ GOTOS => {
+ 'IndexArg' => 99,
+ 'Range' => 68
+ }
+ },
+ {#State 94
+ DEFAULT => -35
+ },
+ {#State 95
+ DEFAULT => -36
+ },
+ {#State 96
+ DEFAULT => -14
+ },
+ {#State 97
+ ACTIONS => {
+ "," => 83
+ },
+ DEFAULT => -15,
+ GOTOS => {
+ 'Invocation_3' => 100
+ }
+ },
+ {#State 98
+ DEFAULT => -58
+ },
+ {#State 99
+ ACTIONS => {
+ "," => 93
+ },
+ DEFAULT => -54,
+ GOTOS => {
+ 'IndexList_2' => 101
+ }
+ },
+ {#State 100
+ DEFAULT => -16
+ },
+ {#State 101
+ DEFAULT => -55
+ }
+],
+ yyrules =>
+[
+ [#Rule 0
+ '$start', 2, undef
+ ],
+ [#Rule 1
+ 'Query', 1, undef
+ ],
+ [#Rule 2
+ 'WildNCName', 1, undef
+ ],
+ [#Rule 3
+ 'WildNCName', 1, undef
+ ],
+ [#Rule 4
+ 'WildQName', 1,
+sub {
+ [ Name => $_[1] ];
+}
+ ],
+ [#Rule 5
+ 'WildQName', 3,
+sub {
+
+ [ NameSpace => $_[1], Name => $_[2]];
+}
+ ],
+ [#Rule 6
+ 'Param', 1, undef
+ ],
+ [#Rule 7
+ 'Param', 1,
+sub {
+ new XML::XQL::Number ($_[1]);
+}
+ ],
+ [#Rule 8
+ 'Param', 1,
+sub {
+ new XML::XQL::Number ($_[1]);
+}
+ ],
+ [#Rule 9
+ 'Param', 1,
+sub {
+ new XML::XQL::Text ($_[1]);
+}
+ ],
+ [#Rule 10
+ 'ElementName', 1,
+sub {
+ new XML::XQL::Element (@{$_[1]});
+}
+ ],
+ [#Rule 11
+ 'AttributeName', 2,
+sub {
+ new XML::XQL::Attribute (@{$_[2]});
+}
+ ],
+ [#Rule 12
+ 'Invocation', 2,
+sub {
+
+ my ($func, $type) = $_[0]->{Query}->findFunctionOrMethod ($_[1], $_[2]);
+
+ new XML::XQL::Invocation (Name => $_[1],
+ Args => $_[2],
+ Func => $func,
+ Type => $type);
+}
+ ],
+ [#Rule 13
+ 'Invocation_2', 1,
+sub {
+ []
+}
+ ],
+ [#Rule 14
+ 'Invocation_2', 3,
+sub {
+ unshift @{$_[2]}, $_[1]; $_[2];
+}
+ ],
+ [#Rule 15
+ 'Invocation_3', 0,
+sub {
+ []
+}
+ ],
+ [#Rule 16
+ 'Invocation_3', 3,
+sub {
+ unshift @{$_[3]}, $_[2]; $_[3];
+}
+ ],
+ [#Rule 17
+ 'PathOp', 1, undef
+ ],
+ [#Rule 18
+ 'PathOp', 1, undef
+ ],
+ [#Rule 19
+ 'Sequence', 1, undef
+ ],
+ [#Rule 20
+ 'Sequence', 3,
+sub {
+
+ new XML::XQL::Sequence (Left => $_[1], Oper => $_[2],
+ Right => $_[3]);
+}
+ ],
+ [#Rule 21
+ 'Disjunction', 1, undef
+ ],
+ [#Rule 22
+ 'Disjunction', 3,
+sub {
+
+ new XML::XQL::Or (Left => $_[1], Right => $_[3]);
+}
+ ],
+ [#Rule 23
+ 'Conjunction', 1, undef
+ ],
+ [#Rule 24
+ 'Conjunction', 3,
+sub {
+
+ new XML::XQL::And (Left => $_[1], Right => $_[3]);
+}
+ ],
+ [#Rule 25
+ 'Negation', 1, undef
+ ],
+ [#Rule 26
+ 'Negation', 2,
+sub {
+ new XML::XQL::Not (Left => $_[2]);
+}
+ ],
+ [#Rule 27
+ 'Union', 1, undef
+ ],
+ [#Rule 28
+ 'Union', 3,
+sub {
+
+ new XML::XQL::Union (Left => $_[1], Right => $_[3]);
+}
+ ],
+ [#Rule 29
+ 'Intersection', 1, undef
+ ],
+ [#Rule 30
+ 'Intersection', 3,
+sub {
+
+ new XML::XQL::Intersect ($_[1], $_[3]);
+}
+ ],
+ [#Rule 31
+ 'ComparisonOp', 1,
+sub {
+
+ [ $_[1], $_[0]->{Query}->findComparisonOperator ($_[1]) ];
+}
+ ],
+ [#Rule 32
+ 'ComparisonOp', 1,
+sub {
+
+ [ $_[1], $_[0]->{Query}->findComparisonOperator ($_[1]) ];
+}
+ ],
+ [#Rule 33
+ 'Comparison', 1, undef
+ ],
+ [#Rule 34
+ 'Comparison', 3,
+sub {
+
+ new XML::XQL::Compare (All => 0, Left => $_[1],
+ Oper => $_[2]->[0], Func => $_[2]->[1],
+ Right => $_[3]);
+}
+ ],
+ [#Rule 35
+ 'Comparison', 4,
+sub {
+
+ new XML::XQL::Compare (All => 0, Left => $_[2],
+ Oper => $_[3]->[0], Func => $_[3]->[0],
+ Right => $_[4]);
+}
+ ],
+ [#Rule 36
+ 'Comparison', 4,
+sub {
+
+ new XML::XQL::Compare (All => 1, Left => $_[2],
+ Oper => $_[3]->[0], Func => $_[3]->[0],
+ Right => $_[4]);
+}
+ ],
+ [#Rule 37
+ 'LValue', 1, undef
+ ],
+ [#Rule 38
+ 'RValue', 1, undef
+ ],
+ [#Rule 39
+ 'RValue', 1,
+sub {
+ new XML::XQL::Number ($_[1]);
+}
+ ],
+ [#Rule 40
+ 'RValue', 1,
+sub {
+ new XML::XQL::Number ($_[1]);
+}
+ ],
+ [#Rule 41
+ 'RValue', 1,
+sub {
+ new XML::XQL::Text ($_[1]);
+}
+ ],
+ [#Rule 42
+ 'Path', 1, undef
+ ],
+ [#Rule 43
+ 'Path', 1, undef
+ ],
+ [#Rule 44
+ 'AbsolutePath', 1,
+sub {
+ new XML::Root;
+}
+ ],
+ [#Rule 45
+ 'AbsolutePath', 2,
+sub {
+
+ new XML::XQL::Path (PathOp => $_[1], Right => $_[2]);
+}
+ ],
+ [#Rule 46
+ 'RelativePath', 1, undef
+ ],
+ [#Rule 47
+ 'RelativePath', 3,
+sub {
+
+ new XML::XQL::Path (Left => $_[1], PathOp => $_[2],
+ Right => $_[3]);
+}
+ ],
+ [#Rule 48
+ 'Bang', 1, undef
+ ],
+ [#Rule 49
+ 'Bang', 3,
+sub {
+
+ XML::XQL::parseError ("only methods (not functions) can be used after the Bang (near '!" . $_[3]->{Name} . "'")
+ unless $_[3]->isMethod;
+
+ new XML::XQL::Bang (Left => $_[1],
+ Right => $_[3]);
+}
+ ],
+ [#Rule 50
+ 'Subscript', 2,
+sub {
+
+ defined($_[2]) ?
+ new XML::XQL::Subscript (Left => $_[1],
+ IndexList => $_[2]) : $_[1];
+}
+ ],
+ [#Rule 51
+ 'Subscript_2', 0, undef
+ ],
+ [#Rule 52
+ 'Subscript_2', 3,
+sub {
+ $_[2];
+}
+ ],
+ [#Rule 53
+ 'IndexList', 2,
+sub {
+ push (@{$_[1]}, @{$_[2]}); $_[1];
+}
+ ],
+ [#Rule 54
+ 'IndexList_2', 0,
+sub {
+ []
+}
+ ],
+ [#Rule 55
+ 'IndexList_2', 3,
+sub {
+ push (@{$_[2]}, @{$_[3]}); $_[2];
+}
+ ],
+ [#Rule 56
+ 'IndexArg', 1,
+sub {
+ [ $_[1], $_[1] ];
+}
+ ],
+ [#Rule 57
+ 'IndexArg', 1, undef
+ ],
+ [#Rule 58
+ 'Range', 3,
+sub {
+
+ # Syntactic Constraint 9:
+ # If both integers are positive or if both integers are
+ # negative, the first integer must be less than or
+ # equal to the second integer.
+
+ XML::XQL::parseError (
+ "$_[1] should be less than $_[3] in '$_[1] $_[2] $_[3]'")
+ if ($_[1] > $_[3] && ($_[1] < 0) == ($_[3] < 0));
+ [ $_[1], $_[3] ];
+}
+ ],
+ [#Rule 59
+ 'Filter', 1, undef
+ ],
+ [#Rule 60
+ 'Filter', 4,
+sub {
+
+ new XML::XQL::Filter (Left => $_[1], Right => $_[3]);
+}
+ ],
+ [#Rule 61
+ 'Subquery', 1, undef
+ ],
+ [#Rule 62
+ 'Grouping', 1, undef
+ ],
+ [#Rule 63
+ 'Grouping', 3,
+sub {
+ $_[2];
+}
+ ],
+ [#Rule 64
+ 'RelativeTerm', 1,
+sub {
+ new XML::XQL::Current;
+}
+ ],
+ [#Rule 65
+ 'RelativeTerm', 1,
+sub {
+ new XML::XQL::Parent;
+}
+ ],
+ [#Rule 66
+ 'RelativeTerm', 1, undef
+ ],
+ [#Rule 67
+ 'RelativeTerm', 1, undef
+ ],
+ [#Rule 68
+ 'RelativeTerm', 1, undef
+ ]
+],
+ @_);
+ bless($self,$class);
+}
+
+
+
+1;