Correct and/or/div/mod in path expressions
[yangtools.git] / xpath / yang-xpath-antlr / src / main / antlr4 / org / opendaylight / yangtools / yang / xpath / antlr / xpath.g4
index 4bf327cfe167085ddba680497d03ac6296d7436a..fd19d6735a1239499101983af1849a541470ce14 100644 (file)
@@ -44,7 +44,7 @@ step  :  axisSpecifier nodeTest predicate*
 
 axisSpecifier
   :  AxisName '::'
-  |  '@'?
+  |  AT?
   ;
 
 nodeTest:  nameTest
@@ -90,10 +90,10 @@ filterExpr
   :  primaryExpr predicate*
   ;
 
-orExpr  :  andExpr ('or' andExpr)*
+orExpr  :  andExpr (OR andExpr)*
   ;
 
-andExpr  :  equalityExpr ('and' equalityExpr)*
+andExpr  :  equalityExpr (AND equalityExpr)*
   ;
 
 equalityExpr
@@ -109,8 +109,8 @@ additiveExpr
   ;
 
 multiplicativeExpr
-  :  unaryExprNoRoot (('*'|'div'|'mod') multiplicativeExpr)?
-  |  '/' (('div'|'mod') multiplicativeExpr)?
+  :  unaryExprNoRoot (('*'|DIV|MOD) multiplicativeExpr)?
+  |  '/' ((DIV|MOD) multiplicativeExpr)?
   ;
 
 unaryExprNoRoot
@@ -125,6 +125,10 @@ functionName
   :  nCName ':' nCName
   |  NCName
   |  AxisName
+  |  AND
+  |  OR
+  |  DIV
+  |  MOD
   ;
 
 variableReference
@@ -139,6 +143,10 @@ nameTest:  '*'
 nCName  :  NCName
   |  AxisName
   |  NodeType
+  |  AND
+  |  OR
+  |  DIV
+  |  MOD
   ;
 
 NodeType:  'comment'
@@ -215,6 +223,15 @@ AxisName:  'ancestor'
        :  '\'';
   QUOT   
        :  '"';
+  AND
+       :  'and';
+  OR
+       :  'or';
+  DIV
+       :  'div';
+  MOD
+       :  'mod';
+
   
 Literal  :  '"' ~'"'* '"'
   |  '\'' ~'\''* '\''