axisSpecifier
: AxisName '::'
- | '@'?
+ | AT?
;
nodeTest: nameTest
: primaryExpr predicate*
;
-orExpr : andExpr ('or' andExpr)*
+orExpr : andExpr (OR andExpr)*
;
-andExpr : equalityExpr ('and' equalityExpr)*
+andExpr : equalityExpr (AND equalityExpr)*
;
equalityExpr
;
multiplicativeExpr
- : unaryExprNoRoot (('*'|'div'|'mod') multiplicativeExpr)?
- | '/' (('div'|'mod') multiplicativeExpr)?
+ : unaryExprNoRoot (('*'|DIV|MOD) multiplicativeExpr)?
+ | '/' ((DIV|MOD) multiplicativeExpr)?
;
unaryExprNoRoot
: nCName ':' nCName
| NCName
| AxisName
+ | AND
+ | OR
+ | DIV
+ | MOD
;
variableReference
nCName : NCName
| AxisName
| NodeType
+ | AND
+ | OR
+ | DIV
+ | MOD
;
NodeType: 'comment'
: '\'';
QUOT
: '"';
+ AND
+ : 'and';
+ OR
+ : 'or';
+ DIV
+ : 'div';
+ MOD
+ : 'mod';
+
Literal : '"' ~'"'* '"'
| '\'' ~'\''* '\''