1leftOR_OPleftAND_OPleftEQUAL_OPleftREL_OPleftPLUS_OPMINUS_OPleftMULT_OPDIV_OPMOD_OPrightUMINUS_OPleftUNION_OPleftINTERSECT_OPABBREV_AXIS_AT ABBREV_PATH_SEP ABBREV_STEP_PARENT ABBREV_STEP_SELF AND_OP AXISNAME AXIS_SEP CLOSE_BRACKET CLOSE_PAREN COLON COMMA DIV_OP DOLLAR EQUAL_OP FLOAT FUNCNAME INTEGER INTERSECT_OP INTERSECT_OP LITERAL MINUS_OP MOD_OP MULT_OP NCNAME NODETYPE OPEN_BRACKET OPEN_PAREN OR_OP PATH_SEP PIPELINE_OP PLUS_OP REL_OP STAR_OP UNION_OP
2 Expr : Expr OR_OP Expr
3 | Expr AND_OP Expr
4 | Expr EQUAL_OP Expr
5 | Expr REL_OP Expr
6 | Expr PLUS_OP Expr
7 | Expr MINUS_OP Expr
8 | Expr MULT_OP Expr
9 | Expr DIV_OP Expr
10 | Expr MOD_OP Expr
11 | Expr UNION_OP Expr
12 | Expr INTERSECT_OP Expr
13
14 Expr : MINUS_OP Expr %prec UMINUS_OP
15
16 Expr : Expr PIPELINE_OP Expr
17
18 Expr : FilterExpr PATH_SEP RelativeLocationPath
19 | FilterExpr ABBREV_PATH_SEP RelativeLocationPath
20
21 Expr : RelativeLocationPath
22 | AbsoluteLocationPath
23 | AbbreviatedAbsoluteLocationPath
24 | FilterExpr
25
26 AbsoluteLocationPath : PATH_SEP
27
28 AbsoluteLocationPath : PATH_SEP RelativeLocationPath
29
30 AbbreviatedAbsoluteLocationPath : ABBREV_PATH_SEP RelativeLocationPath
31
32 RelativeLocationPath : Step
33
34 RelativeLocationPath : RelativeLocationPath PATH_SEP Step
35 | RelativeLocationPath ABBREV_PATH_SEP Step
36
37 Step : NodeTest
38
39 Step : NodeTest PredicateList
40
41 Step : AxisSpecifier NodeTest
42
43 Step : AxisSpecifier NodeTest PredicateList
44
45 Step : ABBREV_STEP_SELF
46 | ABBREV_STEP_PARENT
47
48 AxisSpecifier : AXISNAME AXIS_SEP
49
50 AxisSpecifier : ABBREV_AXIS_AT
51
52 NodeTest : NameTest
53
54 NodeTest : NODETYPE OPEN_PAREN CLOSE_PAREN
55
56 NodeTest : NODETYPE OPEN_PAREN LITERAL CLOSE_PAREN
57
58 NameTest : STAR_OP
59
60 NameTest : NCNAME COLON STAR_OP
61
62 NameTest : QName
63
64 QName : NCNAME COLON NCNAME
65
66 QName : NCNAME
67
68 FuncQName : NCNAME COLON FUNCNAME
69
70 FuncQName : FUNCNAME
71
72 FilterExpr : VariableReference
73 | LITERAL
74 | Number
75 | FunctionCall
76
77 FilterExpr : OPEN_PAREN Expr CLOSE_PAREN
78
79 FilterExpr : FilterExpr Predicate
80
81 PredicateList : Predicate
82
83 PredicateList : PredicateList Predicate
84
85 Predicate : OPEN_BRACKET Expr CLOSE_BRACKET
86
87 VariableReference : DOLLAR QName
88
89 Number : FLOAT
90 | INTEGER
91
92 FunctionCall : FuncQName FormalArguments
93
94 FormalArguments : OPEN_PAREN CLOSE_PAREN
95
96 FormalArguments : OPEN_PAREN ArgumentList CLOSE_PAREN
97
98 ArgumentList : Expr
99
100 ArgumentList : ArgumentList COMMA Expr