src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/XPathParser.java
changeset 47359 e1a6c0168741
parent 47216 71c04702a3d5
child 47477 115ed64c7822
equal deleted inserted replaced
47358:d07d5f7cab35 47359:e1a6c0168741
    23  * questions.
    23  * questions.
    24  */
    24  */
    25 
    25 
    26 package com.sun.org.apache.xalan.internal.xsltc.compiler;
    26 package com.sun.org.apache.xalan.internal.xsltc.compiler;
    27 
    27 
       
    28 import com.sun.java_cup.internal.runtime.*;
       
    29 import com.sun.org.apache.xalan.internal.xsltc.DOM;
       
    30 import com.sun.org.apache.xalan.internal.xsltc.compiler.util.ErrorMsg;
       
    31 import com.sun.org.apache.xalan.internal.xsltc.runtime.Operators;
       
    32 import com.sun.org.apache.xml.internal.dtm.Axis;
       
    33 import com.sun.org.apache.xml.internal.dtm.DTM;
       
    34 import java.util.ArrayList;
       
    35 import java.util.List;
    28 import java.util.Stack;
    36 import java.util.Stack;
    29 import java.util.Vector;
       
    30 import java.io.StringReader;
       
    31 import com.sun.java_cup.internal.runtime.*;
       
    32 import com.sun.org.apache.xml.internal.dtm.DTM;
       
    33 import com.sun.org.apache.xalan.internal.xsltc.DOM;
       
    34 import com.sun.org.apache.xml.internal.dtm.Axis;
       
    35 import com.sun.org.apache.xalan.internal.xsltc.runtime.Operators;
       
    36 import com.sun.org.apache.xalan.internal.xsltc.compiler.util.ErrorMsg;
       
    37 
    37 
    38 /**
    38 /**
    39  * CUP v0.10j generated parser.
    39  * CUP v0.10j generated parser.
    40  * This class was generated by CUP v0.10j on Thu Oct 06 10:09:26 PDT 2005.
    40  * This class was generated by CUP v0.10j on Thu Oct 06 10:09:26 PDT 2005.
    41  */
    41  */
    42 public class XPathParser extends com.sun.java_cup.internal.runtime.lr_parser {
    42 public class XPathParser extends lr_parser {
    43 
    43 
    44   /** Default constructor. */
    44   /** Default constructor. */
    45   public XPathParser() {super();}
    45   public XPathParser() {super();}
    46 
    46 
    47   /** Constructor which sets the default scanner. */
    47   /** Constructor which sets the default scanner. */
    48   public XPathParser(com.sun.java_cup.internal.runtime.Scanner s) {super(s);}
    48   public XPathParser(Scanner s) {super(s);}
    49 
    49 
    50   /** Production table. */
    50   /** Production table. */
    51   protected static final short _production_table[][] =
    51   protected static final short _production_table[][] =
    52     unpackFromStrings(new String[] {
    52     unpackFromStrings(new String[] {
    53     "\000\215\000\002\002\004\000\002\003\004\000\002\003" +
    53     "\000\215\000\002\002\004\000\002\003\004\000\002\003" +
   840 
   840 
   841   /** Access to <code>reduce_goto</code> table. */
   841   /** Access to <code>reduce_goto</code> table. */
   842   public short[][] reduce_table() {return _reduce_table;}
   842   public short[][] reduce_table() {return _reduce_table;}
   843 
   843 
   844   /** Instance of action encapsulation class. */
   844   /** Instance of action encapsulation class. */
   845   protected CUP$XPathParser$actions action_obj;
   845   protected parser_actions action_obj;
   846 
   846 
   847   /** Action encapsulation object initializer. */
   847   /** Action encapsulation object initializer. */
   848   protected void init_actions()
   848   protected void init_actions()
   849     {
   849     {
   850       action_obj = new CUP$XPathParser$actions(this);
   850       action_obj = new parser_actions(this);
   851     }
   851     }
   852 
   852 
   853   /** Invoke a user supplied parse action. */
   853   /** Invoke a user supplied parse action. */
   854   public com.sun.java_cup.internal.runtime.Symbol do_action(
   854   public Symbol do_action(
   855     int                        act_num,
   855     int                        act_num,
   856     com.sun.java_cup.internal.runtime.lr_parser parser,
   856     lr_parser parser,
   857     java.util.Stack            stack,
   857     Stack<Symbol>            stack,
   858     int                        top)
   858     int                        top)
   859     throws java.lang.Exception
   859     throws java.lang.Exception
   860   {
   860   {
   861     /* call code in generated class */
   861     /* call code in generated class */
   862     return action_obj.CUP$XPathParser$do_action(act_num, parser, stack, top);
   862     return action_obj.parser_do_action(act_num, parser, stack, top);
   863   }
   863   }
   864 
   864 
   865   /** Indicates start state. */
   865   /** Indicates start state. */
   866   public int start_state() {return 0;}
   866   public int start_state() {return 0;}
   867   /** Indicates start production. */
   867   /** Indicates start production. */
   876 
   876 
   877 
   877 
   878     /**
   878     /**
   879      * Used by function calls with no args.
   879      * Used by function calls with no args.
   880      */
   880      */
   881     static public final Vector EmptyArgs = new Vector(0);
   881     static public final List<Expression> EmptyArgs = new ArrayList<>(0);
   882 
   882 
   883     /**
   883     /**
   884      * Reference to non-existing variable.
   884      * Reference to non-existing variable.
   885      */
   885      */
   886     static public final VariableRef DummyVarRef = null;
   886     static public final VariableRef DummyVarRef = null;
   945      * "@*[namespace-uri() = 'uri']", respectively. This expansion considerably
   945      * "@*[namespace-uri() = 'uri']", respectively. This expansion considerably
   946      * simplifies the grouping of patterns in the Mode class. For this
   946      * simplifies the grouping of patterns in the Mode class. For this
   947      * expansion to be correct, the priority of the pattern/template must be
   947      * expansion to be correct, the priority of the pattern/template must be
   948      * set to -0.25 (when no other predicates are present).
   948      * set to -0.25 (when no other predicates are present).
   949      */
   949      */
   950     public StepPattern createStepPattern(int axis, Object test, Vector predicates) {
   950     public StepPattern createStepPattern(int axis, Object test, List<Predicate> predicates) {
   951         int nodeType;
   951         int nodeType;
   952 
   952 
   953         if (test == null) {  // "*"
   953         if (test == null) {  // "*"
   954             nodeType = (axis == Axis.ATTRIBUTE) ? NodeTest.ATTRIBUTE :
   954             nodeType = (axis == Axis.ATTRIBUTE) ? NodeTest.ATTRIBUTE :
   955                 (axis == Axis.NAMESPACE) ? -1 : NodeTest.ELEMENT;
   955                 (axis == Axis.NAMESPACE) ? -1 : NodeTest.ELEMENT;
   976                     _parser.getQNameIgnoreDefaultNs("namespace-uri");
   976                     _parser.getQNameIgnoreDefaultNs("namespace-uri");
   977 
   977 
   978                 // Expand {uri}:* to *[namespace-uri() = 'uri'] - same for @*
   978                 // Expand {uri}:* to *[namespace-uri() = 'uri'] - same for @*
   979                 if (uri != null && (local.equals("*") || local.equals("@*"))) {
   979                 if (uri != null && (local.equals("*") || local.equals("@*"))) {
   980                     if (predicates == null) {
   980                     if (predicates == null) {
   981                         predicates = new Vector(2);
   981                         predicates = new ArrayList<>(2);
   982                     }
   982                     }
   983 
   983 
   984                     // Priority is set by hand if no other predicates exist
   984                     // Priority is set by hand if no other predicates exist
   985                     setPriority = (predicates.size() == 0);
   985                     setPriority = (predicates.size() == 0);
   986 
   986 
  1128     }
  1128     }
  1129 
  1129 
  1130 }
  1130 }
  1131 
  1131 
  1132 /** Cup generated class to encapsulate user supplied action code.*/
  1132 /** Cup generated class to encapsulate user supplied action code.*/
  1133 class CUP$XPathParser$actions {
  1133 class parser_actions {
  1134   private final XPathParser parser;
  1134   private final XPathParser parser;
  1135 
  1135 
  1136   /** Constructor */
  1136   /** Constructor */
  1137   CUP$XPathParser$actions(XPathParser parser) {
  1137   parser_actions(XPathParser parser) {
  1138     this.parser = parser;
  1138     this.parser = parser;
  1139   }
  1139   }
  1140 
  1140 
  1141   /** Method with the actual generated action code. */
  1141   /** Method with the actual generated action code. */
  1142   public final com.sun.java_cup.internal.runtime.Symbol CUP$XPathParser$do_action(
  1142   public final Symbol parser_do_action(
  1143     int                        CUP$XPathParser$act_num,
  1143     int                        parser_act_num,
  1144     com.sun.java_cup.internal.runtime.lr_parser CUP$XPathParser$parser,
  1144     lr_parser parser_parser,
  1145     java.util.Stack            CUP$XPathParser$stack,
  1145     Stack<Symbol>            parser_stack,
  1146     int                        CUP$XPathParser$top)
  1146     int                        parser_top)
  1147     throws java.lang.Exception
  1147     throws java.lang.Exception
  1148     {
  1148     {
  1149       /* Symbol object for return from actions */
  1149       /* Symbol object for return from actions */
  1150       com.sun.java_cup.internal.runtime.Symbol CUP$XPathParser$result;
  1150       Symbol parser_result;
  1151 
  1151 
  1152       /* select the action based on the action number */
  1152       /* select the action based on the action number */
  1153       switch (CUP$XPathParser$act_num)
  1153       switch (parser_act_num)
  1154         {
  1154         {
  1155           /*. . . . . . . . . . . . . . . . . . . .*/
  1155           /*. . . . . . . . . . . . . . . . . . . .*/
  1156           case 140: // QName ::= ID
  1156           case 140: // QName ::= ID
  1157             {
  1157             {
  1158               QName RESULT = null;
  1158               QName RESULT = null;
  1159                  RESULT = parser.getQNameIgnoreDefaultNs("id");
  1159                  RESULT = parser.getQNameIgnoreDefaultNs("id");
  1160               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(37/*QName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1160               parser_result = new Symbol(37/*QName*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1161             }
  1161             }
  1162           return CUP$XPathParser$result;
  1162           return parser_result;
  1163 
  1163 
  1164           /*. . . . . . . . . . . . . . . . . . . .*/
  1164           /*. . . . . . . . . . . . . . . . . . . .*/
  1165           case 139: // QName ::= SELF
  1165           case 139: // QName ::= SELF
  1166             {
  1166             {
  1167               QName RESULT = null;
  1167               QName RESULT = null;
  1168                  RESULT = parser.getQNameIgnoreDefaultNs("self");
  1168                  RESULT = parser.getQNameIgnoreDefaultNs("self");
  1169               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(37/*QName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1169               parser_result = new Symbol(37/*QName*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1170             }
  1170             }
  1171           return CUP$XPathParser$result;
  1171           return parser_result;
  1172 
  1172 
  1173           /*. . . . . . . . . . . . . . . . . . . .*/
  1173           /*. . . . . . . . . . . . . . . . . . . .*/
  1174           case 138: // QName ::= PRECEDINGSIBLING
  1174           case 138: // QName ::= PRECEDINGSIBLING
  1175             {
  1175             {
  1176               QName RESULT = null;
  1176               QName RESULT = null;
  1177                  RESULT = parser.getQNameIgnoreDefaultNs("preceding-sibling");
  1177                  RESULT = parser.getQNameIgnoreDefaultNs("preceding-sibling");
  1178               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(37/*QName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1178               parser_result = new Symbol(37/*QName*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1179             }
  1179             }
  1180           return CUP$XPathParser$result;
  1180           return parser_result;
  1181 
  1181 
  1182           /*. . . . . . . . . . . . . . . . . . . .*/
  1182           /*. . . . . . . . . . . . . . . . . . . .*/
  1183           case 137: // QName ::= PRECEDING
  1183           case 137: // QName ::= PRECEDING
  1184             {
  1184             {
  1185               QName RESULT = null;
  1185               QName RESULT = null;
  1186                  RESULT = parser.getQNameIgnoreDefaultNs("preceding");
  1186                  RESULT = parser.getQNameIgnoreDefaultNs("preceding");
  1187               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(37/*QName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1187               parser_result = new Symbol(37/*QName*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1188             }
  1188             }
  1189           return CUP$XPathParser$result;
  1189           return parser_result;
  1190 
  1190 
  1191           /*. . . . . . . . . . . . . . . . . . . .*/
  1191           /*. . . . . . . . . . . . . . . . . . . .*/
  1192           case 136: // QName ::= PARENT
  1192           case 136: // QName ::= PARENT
  1193             {
  1193             {
  1194               QName RESULT = null;
  1194               QName RESULT = null;
  1195                  RESULT = parser.getQNameIgnoreDefaultNs("parent");
  1195                  RESULT = parser.getQNameIgnoreDefaultNs("parent");
  1196               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(37/*QName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1196               parser_result = new Symbol(37/*QName*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1197             }
  1197             }
  1198           return CUP$XPathParser$result;
  1198           return parser_result;
  1199 
  1199 
  1200           /*. . . . . . . . . . . . . . . . . . . .*/
  1200           /*. . . . . . . . . . . . . . . . . . . .*/
  1201           case 135: // QName ::= NAMESPACE
  1201           case 135: // QName ::= NAMESPACE
  1202             {
  1202             {
  1203               QName RESULT = null;
  1203               QName RESULT = null;
  1204                  RESULT = parser.getQNameIgnoreDefaultNs("namespace");
  1204                  RESULT = parser.getQNameIgnoreDefaultNs("namespace");
  1205               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(37/*QName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1205               parser_result = new Symbol(37/*QName*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1206             }
  1206             }
  1207           return CUP$XPathParser$result;
  1207           return parser_result;
  1208 
  1208 
  1209           /*. . . . . . . . . . . . . . . . . . . .*/
  1209           /*. . . . . . . . . . . . . . . . . . . .*/
  1210           case 134: // QName ::= FOLLOWINGSIBLING
  1210           case 134: // QName ::= FOLLOWINGSIBLING
  1211             {
  1211             {
  1212               QName RESULT = null;
  1212               QName RESULT = null;
  1213                  RESULT = parser.getQNameIgnoreDefaultNs("following-sibling");
  1213                  RESULT = parser.getQNameIgnoreDefaultNs("following-sibling");
  1214               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(37/*QName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1214               parser_result = new Symbol(37/*QName*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1215             }
  1215             }
  1216           return CUP$XPathParser$result;
  1216           return parser_result;
  1217 
  1217 
  1218           /*. . . . . . . . . . . . . . . . . . . .*/
  1218           /*. . . . . . . . . . . . . . . . . . . .*/
  1219           case 133: // QName ::= FOLLOWING
  1219           case 133: // QName ::= FOLLOWING
  1220             {
  1220             {
  1221               QName RESULT = null;
  1221               QName RESULT = null;
  1222                  RESULT = parser.getQNameIgnoreDefaultNs("following");
  1222                  RESULT = parser.getQNameIgnoreDefaultNs("following");
  1223               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(37/*QName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1223               parser_result = new Symbol(37/*QName*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1224             }
  1224             }
  1225           return CUP$XPathParser$result;
  1225           return parser_result;
  1226 
  1226 
  1227           /*. . . . . . . . . . . . . . . . . . . .*/
  1227           /*. . . . . . . . . . . . . . . . . . . .*/
  1228           case 132: // QName ::= DESCENDANTORSELF
  1228           case 132: // QName ::= DESCENDANTORSELF
  1229             {
  1229             {
  1230               QName RESULT = null;
  1230               QName RESULT = null;
  1231                  RESULT = parser.getQNameIgnoreDefaultNs("decendant-or-self");
  1231                  RESULT = parser.getQNameIgnoreDefaultNs("decendant-or-self");
  1232               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(37/*QName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1232               parser_result = new Symbol(37/*QName*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1233             }
  1233             }
  1234           return CUP$XPathParser$result;
  1234           return parser_result;
  1235 
  1235 
  1236           /*. . . . . . . . . . . . . . . . . . . .*/
  1236           /*. . . . . . . . . . . . . . . . . . . .*/
  1237           case 131: // QName ::= DESCENDANT
  1237           case 131: // QName ::= DESCENDANT
  1238             {
  1238             {
  1239               QName RESULT = null;
  1239               QName RESULT = null;
  1240                  RESULT = parser.getQNameIgnoreDefaultNs("decendant");
  1240                  RESULT = parser.getQNameIgnoreDefaultNs("decendant");
  1241               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(37/*QName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1241               parser_result = new Symbol(37/*QName*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1242             }
  1242             }
  1243           return CUP$XPathParser$result;
  1243           return parser_result;
  1244 
  1244 
  1245           /*. . . . . . . . . . . . . . . . . . . .*/
  1245           /*. . . . . . . . . . . . . . . . . . . .*/
  1246           case 130: // QName ::= CHILD
  1246           case 130: // QName ::= CHILD
  1247             {
  1247             {
  1248               QName RESULT = null;
  1248               QName RESULT = null;
  1249                  RESULT = parser.getQNameIgnoreDefaultNs("child");
  1249                  RESULT = parser.getQNameIgnoreDefaultNs("child");
  1250               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(37/*QName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1250               parser_result = new Symbol(37/*QName*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1251             }
  1251             }
  1252           return CUP$XPathParser$result;
  1252           return parser_result;
  1253 
  1253 
  1254           /*. . . . . . . . . . . . . . . . . . . .*/
  1254           /*. . . . . . . . . . . . . . . . . . . .*/
  1255           case 129: // QName ::= ATTRIBUTE
  1255           case 129: // QName ::= ATTRIBUTE
  1256             {
  1256             {
  1257               QName RESULT = null;
  1257               QName RESULT = null;
  1258                  RESULT = parser.getQNameIgnoreDefaultNs("attribute");
  1258                  RESULT = parser.getQNameIgnoreDefaultNs("attribute");
  1259               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(37/*QName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1259               parser_result = new Symbol(37/*QName*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1260             }
  1260             }
  1261           return CUP$XPathParser$result;
  1261           return parser_result;
  1262 
  1262 
  1263           /*. . . . . . . . . . . . . . . . . . . .*/
  1263           /*. . . . . . . . . . . . . . . . . . . .*/
  1264           case 128: // QName ::= ANCESTORORSELF
  1264           case 128: // QName ::= ANCESTORORSELF
  1265             {
  1265             {
  1266               QName RESULT = null;
  1266               QName RESULT = null;
  1267                  RESULT = parser.getQNameIgnoreDefaultNs("ancestor-or-self");
  1267                  RESULT = parser.getQNameIgnoreDefaultNs("ancestor-or-self");
  1268               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(37/*QName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1268               parser_result = new Symbol(37/*QName*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1269             }
  1269             }
  1270           return CUP$XPathParser$result;
  1270           return parser_result;
  1271 
  1271 
  1272           /*. . . . . . . . . . . . . . . . . . . .*/
  1272           /*. . . . . . . . . . . . . . . . . . . .*/
  1273           case 127: // QName ::= ANCESTOR
  1273           case 127: // QName ::= ANCESTOR
  1274             {
  1274             {
  1275               QName RESULT = null;
  1275               QName RESULT = null;
  1276                  RESULT = parser.getQNameIgnoreDefaultNs("child");
  1276                  RESULT = parser.getQNameIgnoreDefaultNs("child");
  1277               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(37/*QName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1277               parser_result = new Symbol(37/*QName*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1278             }
  1278             }
  1279           return CUP$XPathParser$result;
  1279           return parser_result;
  1280 
  1280 
  1281           /*. . . . . . . . . . . . . . . . . . . .*/
  1281           /*. . . . . . . . . . . . . . . . . . . .*/
  1282           case 126: // QName ::= KEY
  1282           case 126: // QName ::= KEY
  1283             {
  1283             {
  1284               QName RESULT = null;
  1284               QName RESULT = null;
  1285                  RESULT = parser.getQNameIgnoreDefaultNs("key");
  1285                  RESULT = parser.getQNameIgnoreDefaultNs("key");
  1286               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(37/*QName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1286               parser_result = new Symbol(37/*QName*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1287             }
  1287             }
  1288           return CUP$XPathParser$result;
  1288           return parser_result;
  1289 
  1289 
  1290           /*. . . . . . . . . . . . . . . . . . . .*/
  1290           /*. . . . . . . . . . . . . . . . . . . .*/
  1291           case 125: // QName ::= MOD
  1291           case 125: // QName ::= MOD
  1292             {
  1292             {
  1293               QName RESULT = null;
  1293               QName RESULT = null;
  1294                  RESULT = parser.getQNameIgnoreDefaultNs("mod");
  1294                  RESULT = parser.getQNameIgnoreDefaultNs("mod");
  1295               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(37/*QName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1295               parser_result = new Symbol(37/*QName*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1296             }
  1296             }
  1297           return CUP$XPathParser$result;
  1297           return parser_result;
  1298 
  1298 
  1299           /*. . . . . . . . . . . . . . . . . . . .*/
  1299           /*. . . . . . . . . . . . . . . . . . . .*/
  1300           case 124: // QName ::= DIV
  1300           case 124: // QName ::= DIV
  1301             {
  1301             {
  1302               QName RESULT = null;
  1302               QName RESULT = null;
  1303                  RESULT = parser.getQNameIgnoreDefaultNs("div");
  1303                  RESULT = parser.getQNameIgnoreDefaultNs("div");
  1304               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(37/*QName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1304               parser_result = new Symbol(37/*QName*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1305             }
  1305             }
  1306           return CUP$XPathParser$result;
  1306           return parser_result;
  1307 
  1307 
  1308           /*. . . . . . . . . . . . . . . . . . . .*/
  1308           /*. . . . . . . . . . . . . . . . . . . .*/
  1309           case 123: // QName ::= QNAME
  1309           case 123: // QName ::= QNAME
  1310             {
  1310             {
  1311               QName RESULT = null;
  1311               QName RESULT = null;
  1312                 int qnameleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  1312                 int qnameleft = (parser_stack.get(parser_top-0)).left;
  1313                 int qnameright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  1313                 int qnameright = (parser_stack.get(parser_top-0)).right;
  1314                 String qname = (String)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  1314                 String qname = (String)((Symbol) parser_stack.get(parser_top-0)).value;
  1315                  RESULT = parser.getQNameIgnoreDefaultNs(qname);
  1315                  RESULT = parser.getQNameIgnoreDefaultNs(qname);
  1316               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(37/*QName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1316               parser_result = new Symbol(37/*QName*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1317             }
  1317             }
  1318           return CUP$XPathParser$result;
  1318           return parser_result;
  1319 
  1319 
  1320           /*. . . . . . . . . . . . . . . . . . . .*/
  1320           /*. . . . . . . . . . . . . . . . . . . .*/
  1321           case 122: // NameTest ::= QName
  1321           case 122: // NameTest ::= QName
  1322             {
  1322             {
  1323               Object RESULT = null;
  1323               Object RESULT = null;
  1324                 int qnleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  1324                 int qnleft = (parser_stack.get(parser_top-0)).left;
  1325                 int qnright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  1325                 int qnright = (parser_stack.get(parser_top-0)).right;
  1326                 QName qn = (QName)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  1326                 QName qn = (QName)((Symbol) parser_stack.get(parser_top-0)).value;
  1327                  RESULT = qn;
  1327                  RESULT = qn;
  1328               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(26/*NameTest*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1328               parser_result = new Symbol(26/*NameTest*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1329             }
  1329             }
  1330           return CUP$XPathParser$result;
  1330           return parser_result;
  1331 
  1331 
  1332           /*. . . . . . . . . . . . . . . . . . . .*/
  1332           /*. . . . . . . . . . . . . . . . . . . .*/
  1333           case 121: // NameTest ::= STAR
  1333           case 121: // NameTest ::= STAR
  1334             {
  1334             {
  1335               Object RESULT = null;
  1335               Object RESULT = null;
  1336                  RESULT = null;
  1336                  RESULT = null;
  1337               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(26/*NameTest*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1337               parser_result = new Symbol(26/*NameTest*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1338             }
  1338             }
  1339           return CUP$XPathParser$result;
  1339           return parser_result;
  1340 
  1340 
  1341           /*. . . . . . . . . . . . . . . . . . . .*/
  1341           /*. . . . . . . . . . . . . . . . . . . .*/
  1342           case 120: // NodeTest ::= PI
  1342           case 120: // NodeTest ::= PI
  1343             {
  1343             {
  1344               Object RESULT = null;
  1344               Object RESULT = null;
  1345                  RESULT = Integer.valueOf(NodeTest.PI);
  1345                  RESULT = Integer.valueOf(NodeTest.PI);
  1346               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(25/*NodeTest*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1346               parser_result = new Symbol(25/*NodeTest*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1347             }
  1347             }
  1348           return CUP$XPathParser$result;
  1348           return parser_result;
  1349 
  1349 
  1350           /*. . . . . . . . . . . . . . . . . . . .*/
  1350           /*. . . . . . . . . . . . . . . . . . . .*/
  1351           case 119: // NodeTest ::= PIPARAM LPAREN Literal RPAREN
  1351           case 119: // NodeTest ::= PIPARAM LPAREN Literal RPAREN
  1352             {
  1352             {
  1353               Object RESULT = null;
  1353               Object RESULT = null;
  1354                 int lleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
  1354                 int lleft = (parser_stack.get(parser_top-1)).left;
  1355                 int lright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
  1355                 int lright = (parser_stack.get(parser_top-1)).right;
  1356                 String l = (String)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
  1356                 String l = (String)((Symbol) parser_stack.get(parser_top-1)).value;
  1357 
  1357 
  1358            QName name = parser.getQNameIgnoreDefaultNs("name");
  1358            QName name = parser.getQNameIgnoreDefaultNs("name");
  1359            Expression exp = new EqualityExpr(Operators.EQ,
  1359            Expression exp = new EqualityExpr(Operators.EQ,
  1360                                              new NameCall(name),
  1360                                              new NameCall(name),
  1361                                              new LiteralExpr(l));
  1361                                              new LiteralExpr(l));
  1362            Vector predicates = new Vector();
  1362            List<Predicate> predicates = new ArrayList<>();
  1363            predicates.addElement(new Predicate(exp));
  1363            predicates.add(new Predicate(exp));
  1364            RESULT = new Step(Axis.CHILD, NodeTest.PI, predicates);
  1364            RESULT = new Step(Axis.CHILD, NodeTest.PI, predicates);
  1365 
  1365 
  1366               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(25/*NodeTest*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-3)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1366               parser_result = new Symbol(25/*NodeTest*/, (parser_stack.get(parser_top-3)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1367             }
  1367             }
  1368           return CUP$XPathParser$result;
  1368           return parser_result;
  1369 
  1369 
  1370           /*. . . . . . . . . . . . . . . . . . . .*/
  1370           /*. . . . . . . . . . . . . . . . . . . .*/
  1371           case 118: // NodeTest ::= COMMENT
  1371           case 118: // NodeTest ::= COMMENT
  1372             {
  1372             {
  1373               Object RESULT = null;
  1373               Object RESULT = null;
  1374                  RESULT = Integer.valueOf(NodeTest.COMMENT);
  1374                  RESULT = Integer.valueOf(NodeTest.COMMENT);
  1375               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(25/*NodeTest*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1375               parser_result = new Symbol(25/*NodeTest*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1376             }
  1376             }
  1377           return CUP$XPathParser$result;
  1377           return parser_result;
  1378 
  1378 
  1379           /*. . . . . . . . . . . . . . . . . . . .*/
  1379           /*. . . . . . . . . . . . . . . . . . . .*/
  1380           case 117: // NodeTest ::= TEXT
  1380           case 117: // NodeTest ::= TEXT
  1381             {
  1381             {
  1382               Object RESULT = null;
  1382               Object RESULT = null;
  1383                  RESULT = Integer.valueOf(NodeTest.TEXT);
  1383                  RESULT = Integer.valueOf(NodeTest.TEXT);
  1384               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(25/*NodeTest*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1384               parser_result = new Symbol(25/*NodeTest*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1385             }
  1385             }
  1386           return CUP$XPathParser$result;
  1386           return parser_result;
  1387 
  1387 
  1388           /*. . . . . . . . . . . . . . . . . . . .*/
  1388           /*. . . . . . . . . . . . . . . . . . . .*/
  1389           case 116: // NodeTest ::= NODE
  1389           case 116: // NodeTest ::= NODE
  1390             {
  1390             {
  1391               Object RESULT = null;
  1391               Object RESULT = null;
  1392                  RESULT = Integer.valueOf(NodeTest.ANODE);
  1392                  RESULT = Integer.valueOf(NodeTest.ANODE);
  1393               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(25/*NodeTest*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1393               parser_result = new Symbol(25/*NodeTest*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1394             }
  1394             }
  1395           return CUP$XPathParser$result;
  1395           return parser_result;
  1396 
  1396 
  1397           /*. . . . . . . . . . . . . . . . . . . .*/
  1397           /*. . . . . . . . . . . . . . . . . . . .*/
  1398           case 115: // NodeTest ::= NameTest
  1398           case 115: // NodeTest ::= NameTest
  1399             {
  1399             {
  1400               Object RESULT = null;
  1400               Object RESULT = null;
  1401                 int ntleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  1401                 int ntleft = (parser_stack.get(parser_top-0)).left;
  1402                 int ntright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  1402                 int ntright = (parser_stack.get(parser_top-0)).right;
  1403                 Object nt = (Object)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  1403                 Object nt = (Object)((Symbol) parser_stack.get(parser_top-0)).value;
  1404                  RESULT = nt;
  1404                  RESULT = nt;
  1405               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(25/*NodeTest*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1405               parser_result = new Symbol(25/*NodeTest*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1406             }
  1406             }
  1407           return CUP$XPathParser$result;
  1407           return parser_result;
  1408 
  1408 
  1409           /*. . . . . . . . . . . . . . . . . . . .*/
  1409           /*. . . . . . . . . . . . . . . . . . . .*/
  1410           case 114: // Argument ::= Expr
  1410           case 114: // Argument ::= Expr
  1411             {
  1411             {
  1412               Expression RESULT = null;
  1412               Expression RESULT = null;
  1413                 int exleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  1413                 int exleft = (parser_stack.get(parser_top-0)).left;
  1414                 int exright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  1414                 int exright = (parser_stack.get(parser_top-0)).right;
  1415                 Expression ex = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  1415                 Expression ex = (Expression)((Symbol) parser_stack.get(parser_top-0)).value;
  1416                  RESULT = ex;
  1416                  RESULT = ex;
  1417               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(3/*Argument*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1417               parser_result = new Symbol(3/*Argument*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1418             }
  1418             }
  1419           return CUP$XPathParser$result;
  1419           return parser_result;
  1420 
  1420 
  1421           /*. . . . . . . . . . . . . . . . . . . .*/
  1421           /*. . . . . . . . . . . . . . . . . . . .*/
  1422           case 113: // VariableName ::= QName
  1422           case 113: // VariableName ::= QName
  1423             {
  1423             {
  1424               QName RESULT = null;
  1424               QName RESULT = null;
  1425                 int vnameleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  1425                 int vnameleft = (parser_stack.get(parser_top-0)).left;
  1426                 int vnameright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  1426                 int vnameright = (parser_stack.get(parser_top-0)).right;
  1427                 QName vname = (QName)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  1427                 QName vname = (QName)((Symbol) parser_stack.get(parser_top-0)).value;
  1428 
  1428 
  1429             RESULT = vname;
  1429             RESULT = vname;
  1430 
  1430 
  1431               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(39/*VariableName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1431               parser_result = new Symbol(39/*VariableName*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1432             }
  1432             }
  1433           return CUP$XPathParser$result;
  1433           return parser_result;
  1434 
  1434 
  1435           /*. . . . . . . . . . . . . . . . . . . .*/
  1435           /*. . . . . . . . . . . . . . . . . . . .*/
  1436           case 112: // FunctionName ::= QName
  1436           case 112: // FunctionName ::= QName
  1437             {
  1437             {
  1438               QName RESULT = null;
  1438               QName RESULT = null;
  1439                 int fnameleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  1439                 int fnameleft = (parser_stack.get(parser_top-0)).left;
  1440                 int fnameright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  1440                 int fnameright = (parser_stack.get(parser_top-0)).right;
  1441                 QName fname = (QName)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  1441                 QName fname = (QName)((Symbol) parser_stack.get(parser_top-0)).value;
  1442 
  1442 
  1443             RESULT = fname;
  1443             RESULT = fname;
  1444 
  1444 
  1445               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(38/*FunctionName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1445               parser_result = new Symbol(38/*FunctionName*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1446             }
  1446             }
  1447           return CUP$XPathParser$result;
  1447           return parser_result;
  1448 
  1448 
  1449           /*. . . . . . . . . . . . . . . . . . . .*/
  1449           /*. . . . . . . . . . . . . . . . . . . .*/
  1450           case 111: // NonemptyArgumentList ::= Argument COMMA NonemptyArgumentList
  1450           case 111: // NonemptyArgumentList ::= Argument COMMA NonemptyArgumentList
  1451             {
  1451             {
  1452               Vector RESULT = null;
  1452                 List<Expression> RESULT = null;
  1453                 int argleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  1453                 int argleft = (parser_stack.get(parser_top-2)).left;
  1454                 int argright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  1454                 int argright = (parser_stack.get(parser_top-2)).right;
  1455                 Expression arg = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  1455                 Expression arg = (Expression)((Symbol) parser_stack.get(parser_top-2)).value;
  1456                 int arglleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  1456                 int arglleft = (parser_stack.get(parser_top-0)).left;
  1457                 int arglright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  1457                 int arglright = (parser_stack.get(parser_top-0)).right;
  1458                 Vector argl = (Vector)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  1458                 @SuppressWarnings("unchecked")
  1459                  argl.insertElementAt(arg, 0); RESULT = argl;
  1459                 List<Expression> argl = (ArrayList<Expression>)((Symbol) parser_stack.get(parser_top-0)).value;
  1460               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(36/*NonemptyArgumentList*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1460                 argl.add(0, arg);
  1461             }
  1461                 RESULT = argl;
  1462           return CUP$XPathParser$result;
  1462               parser_result = new Symbol(36/*NonemptyArgumentList*/, (parser_stack.get(parser_top-2)).left, (parser_stack.get(parser_top-0)).right, RESULT);
       
  1463             }
       
  1464           return parser_result;
  1463 
  1465 
  1464           /*. . . . . . . . . . . . . . . . . . . .*/
  1466           /*. . . . . . . . . . . . . . . . . . . .*/
  1465           case 110: // NonemptyArgumentList ::= Argument
  1467           case 110: // NonemptyArgumentList ::= Argument
  1466             {
  1468             {
  1467               Vector RESULT = null;
  1469               List<Expression> RESULT = null;
  1468                 int argleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  1470                 int argleft = (parser_stack.get(parser_top-0)).left;
  1469                 int argright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  1471                 int argright = (parser_stack.get(parser_top-0)).right;
  1470                 Expression arg = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  1472                 Expression arg = (Expression)((Symbol) parser_stack.get(parser_top-0)).value;
  1471 
  1473 
  1472             Vector temp = new Vector();
  1474             List<Expression> temp = new ArrayList<>();
  1473             temp.addElement(arg);
  1475             temp.add(arg);
  1474             RESULT = temp;
  1476             RESULT = temp;
  1475 
  1477 
  1476               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(36/*NonemptyArgumentList*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1478               parser_result = new Symbol(36/*NonemptyArgumentList*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1477             }
  1479             }
  1478           return CUP$XPathParser$result;
  1480           return parser_result;
  1479 
  1481 
  1480           /*. . . . . . . . . . . . . . . . . . . .*/
  1482           /*. . . . . . . . . . . . . . . . . . . .*/
  1481           case 109: // FunctionCall ::= FunctionName LPAREN NonemptyArgumentList RPAREN
  1483           case 109: // FunctionCall ::= FunctionName LPAREN NonemptyArgumentList RPAREN
  1482             {
  1484             {
  1483               Expression RESULT = null;
  1485                 Expression RESULT = null;
  1484                 int fnameleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-3)).left;
  1486                 int fnameleft = (parser_stack.get(parser_top-3)).left;
  1485                 int fnameright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-3)).right;
  1487                 int fnameright = (parser_stack.get(parser_top-3)).right;
  1486                 QName fname = (QName)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-3)).value;
  1488                 QName fname = (QName)((Symbol) parser_stack.get(parser_top-3)).value;
  1487                 int arglleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
  1489                 int arglleft = (parser_stack.get(parser_top-1)).left;
  1488                 int arglright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
  1490                 int arglright = (parser_stack.get(parser_top-1)).right;
  1489                 Vector argl = (Vector)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
  1491                 @SuppressWarnings("unchecked")
       
  1492                 List<Expression> argl = (ArrayList<Expression>)((Symbol) parser_stack.get(parser_top-1)).value;
  1490 
  1493 
  1491           if (fname == parser.getQNameIgnoreDefaultNs("concat")) {
  1494           if (fname == parser.getQNameIgnoreDefaultNs("concat")) {
  1492             RESULT = new ConcatCall(fname, argl);
  1495             RESULT = new ConcatCall(fname, argl);
  1493           }
  1496           }
  1494           else if (fname == parser.getQNameIgnoreDefaultNs("number")) {
  1497           else if (fname == parser.getQNameIgnoreDefaultNs("number")) {
  1569           }
  1572           }
  1570           else {
  1573           else {
  1571             RESULT = new FunctionCall(fname, argl);
  1574             RESULT = new FunctionCall(fname, argl);
  1572           }
  1575           }
  1573 
  1576 
  1574               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(16/*FunctionCall*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-3)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1577               parser_result = new Symbol(16/*FunctionCall*/, (parser_stack.get(parser_top-3)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1575             }
  1578             }
  1576           return CUP$XPathParser$result;
  1579           return parser_result;
  1577 
  1580 
  1578           /*. . . . . . . . . . . . . . . . . . . .*/
  1581           /*. . . . . . . . . . . . . . . . . . . .*/
  1579           case 108: // FunctionCall ::= FunctionName LPAREN RPAREN
  1582           case 108: // FunctionCall ::= FunctionName LPAREN RPAREN
  1580             {
  1583             {
  1581               Expression RESULT = null;
  1584               Expression RESULT = null;
  1582                 int fnameleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  1585                 int fnameleft = (parser_stack.get(parser_top-2)).left;
  1583                 int fnameright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  1586                 int fnameright = (parser_stack.get(parser_top-2)).right;
  1584                 QName fname = (QName)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  1587                 QName fname = (QName)((Symbol) parser_stack.get(parser_top-2)).value;
  1585 
  1588 
  1586 
  1589 
  1587           if (fname == parser.getQNameIgnoreDefaultNs("current")) {
  1590           if (fname == parser.getQNameIgnoreDefaultNs("current")) {
  1588             RESULT = new CurrentCall(fname);
  1591             RESULT = new CurrentCall(fname);
  1589           }
  1592           }
  1625           }
  1628           }
  1626           else {
  1629           else {
  1627             RESULT = new FunctionCall(fname, parser.EmptyArgs);
  1630             RESULT = new FunctionCall(fname, parser.EmptyArgs);
  1628           }
  1631           }
  1629 
  1632 
  1630               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(16/*FunctionCall*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1633               parser_result = new Symbol(16/*FunctionCall*/, (parser_stack.get(parser_top-2)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1631             }
  1634             }
  1632           return CUP$XPathParser$result;
  1635           return parser_result;
  1633 
  1636 
  1634           /*. . . . . . . . . . . . . . . . . . . .*/
  1637           /*. . . . . . . . . . . . . . . . . . . .*/
  1635           case 107: // VariableReference ::= DOLLAR VariableName
  1638           case 107: // VariableReference ::= DOLLAR VariableName
  1636             {
  1639             {
  1637               Expression RESULT = null;
  1640               Expression RESULT = null;
  1638                 int varNameleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  1641                 int varNameleft = (parser_stack.get(parser_top-0)).left;
  1639                 int varNameright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  1642                 int varNameright = (parser_stack.get(parser_top-0)).right;
  1640                 QName varName = (QName)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  1643                 QName varName = (QName)((Symbol) parser_stack.get(parser_top-0)).value;
  1641 
  1644 
  1642             // An empty qname prefix for a variable or parameter reference
  1645             // An empty qname prefix for a variable or parameter reference
  1643             // should map to the null namespace and not the default URI.
  1646             // should map to the null namespace and not the default URI.
  1644             SyntaxTreeNode node = parser.lookupName(varName);
  1647             SyntaxTreeNode node = parser.lookupName(varName);
  1645 
  1648 
  1657 
  1660 
  1658             if (node == null) {
  1661             if (node == null) {
  1659                 RESULT = new UnresolvedRef(varName);
  1662                 RESULT = new UnresolvedRef(varName);
  1660             }
  1663             }
  1661 
  1664 
  1662               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(15/*VariableReference*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1665               parser_result = new Symbol(15/*VariableReference*/, (parser_stack.get(parser_top-1)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1663             }
  1666             }
  1664           return CUP$XPathParser$result;
  1667           return parser_result;
  1665 
  1668 
  1666           /*. . . . . . . . . . . . . . . . . . . .*/
  1669           /*. . . . . . . . . . . . . . . . . . . .*/
  1667           case 106: // PrimaryExpr ::= FunctionCall
  1670           case 106: // PrimaryExpr ::= FunctionCall
  1668             {
  1671             {
  1669               Expression RESULT = null;
  1672               Expression RESULT = null;
  1670                 int fcleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  1673                 int fcleft = (parser_stack.get(parser_top-0)).left;
  1671                 int fcright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  1674                 int fcright = (parser_stack.get(parser_top-0)).right;
  1672                 Expression fc = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  1675                 Expression fc = (Expression)((Symbol) parser_stack.get(parser_top-0)).value;
  1673                  RESULT = fc;
  1676                  RESULT = fc;
  1674               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(17/*PrimaryExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1677               parser_result = new Symbol(17/*PrimaryExpr*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1675             }
  1678             }
  1676           return CUP$XPathParser$result;
  1679           return parser_result;
  1677 
  1680 
  1678           /*. . . . . . . . . . . . . . . . . . . .*/
  1681           /*. . . . . . . . . . . . . . . . . . . .*/
  1679           case 105: // PrimaryExpr ::= REAL
  1682           case 105: // PrimaryExpr ::= REAL
  1680             {
  1683             {
  1681               Expression RESULT = null;
  1684               Expression RESULT = null;
  1682                 int numleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  1685                 int numleft = (parser_stack.get(parser_top-0)).left;
  1683                 int numright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  1686                 int numright = (parser_stack.get(parser_top-0)).right;
  1684                 Double num = (Double)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  1687                 Double num = (Double)((Symbol) parser_stack.get(parser_top-0)).value;
  1685                  RESULT = new RealExpr(num.doubleValue());
  1688                  RESULT = new RealExpr(num.doubleValue());
  1686               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(17/*PrimaryExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1689               parser_result = new Symbol(17/*PrimaryExpr*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1687             }
  1690             }
  1688           return CUP$XPathParser$result;
  1691           return parser_result;
  1689 
  1692 
  1690           /*. . . . . . . . . . . . . . . . . . . .*/
  1693           /*. . . . . . . . . . . . . . . . . . . .*/
  1691           case 104: // PrimaryExpr ::= INT
  1694           case 104: // PrimaryExpr ::= INT
  1692             {
  1695             {
  1693               Expression RESULT = null;
  1696               Expression RESULT = null;
  1694                 int numleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  1697                 int numleft = (parser_stack.get(parser_top-0)).left;
  1695                 int numright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  1698                 int numright = (parser_stack.get(parser_top-0)).right;
  1696                 Long num = (Long)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  1699                 Long num = (Long)((Symbol) parser_stack.get(parser_top-0)).value;
  1697 
  1700 
  1698            long value = num.longValue();
  1701            long value = num.longValue();
  1699            if (value < Integer.MIN_VALUE || value > Integer.MAX_VALUE) {
  1702            if (value < Integer.MIN_VALUE || value > Integer.MAX_VALUE) {
  1700                 RESULT = new RealExpr(value);
  1703                 RESULT = new RealExpr(value);
  1701            }
  1704            }
  1708                    RESULT = new RealExpr(num.doubleValue());
  1711                    RESULT = new RealExpr(num.doubleValue());
  1709                else
  1712                else
  1710                    RESULT = new IntExpr(num.intValue());
  1713                    RESULT = new IntExpr(num.intValue());
  1711            }
  1714            }
  1712 
  1715 
  1713               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(17/*PrimaryExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1716               parser_result = new Symbol(17/*PrimaryExpr*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1714             }
  1717             }
  1715           return CUP$XPathParser$result;
  1718           return parser_result;
  1716 
  1719 
  1717           /*. . . . . . . . . . . . . . . . . . . .*/
  1720           /*. . . . . . . . . . . . . . . . . . . .*/
  1718           case 103: // PrimaryExpr ::= Literal
  1721           case 103: // PrimaryExpr ::= Literal
  1719             {
  1722             {
  1720               Expression RESULT = null;
  1723               Expression RESULT = null;
  1721                 int stringleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  1724                 int stringleft = (parser_stack.get(parser_top-0)).left;
  1722                 int stringright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  1725                 int stringright = (parser_stack.get(parser_top-0)).right;
  1723                 String string = (String)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  1726                 String string = (String)((Symbol) parser_stack.get(parser_top-0)).value;
  1724 
  1727 
  1725         /*
  1728         /*
  1726         * If the string appears to have the syntax of a QName, store
  1729         * If the string appears to have the syntax of a QName, store
  1727         * namespace info in the literal expression. This is used for
  1730         * namespace info in the literal expression. This is used for
  1728         * element-available and function-available functions, among
  1731         * element-available and function-available functions, among
  1736             namespace = parser._symbolTable.lookupNamespace(prefix);
  1739             namespace = parser._symbolTable.lookupNamespace(prefix);
  1737         }
  1740         }
  1738         RESULT = (namespace == null) ? new LiteralExpr(string)
  1741         RESULT = (namespace == null) ? new LiteralExpr(string)
  1739                      : new LiteralExpr(string, namespace);
  1742                      : new LiteralExpr(string, namespace);
  1740 
  1743 
  1741               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(17/*PrimaryExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1744               parser_result = new Symbol(17/*PrimaryExpr*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1742             }
  1745             }
  1743           return CUP$XPathParser$result;
  1746           return parser_result;
  1744 
  1747 
  1745           /*. . . . . . . . . . . . . . . . . . . .*/
  1748           /*. . . . . . . . . . . . . . . . . . . .*/
  1746           case 102: // PrimaryExpr ::= LPAREN Expr RPAREN
  1749           case 102: // PrimaryExpr ::= LPAREN Expr RPAREN
  1747             {
  1750             {
  1748               Expression RESULT = null;
  1751               Expression RESULT = null;
  1749                 int exleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
  1752                 int exleft = (parser_stack.get(parser_top-1)).left;
  1750                 int exright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
  1753                 int exright = (parser_stack.get(parser_top-1)).right;
  1751                 Expression ex = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
  1754                 Expression ex = (Expression)((Symbol) parser_stack.get(parser_top-1)).value;
  1752                  RESULT = ex;
  1755                  RESULT = ex;
  1753               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(17/*PrimaryExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1756               parser_result = new Symbol(17/*PrimaryExpr*/, (parser_stack.get(parser_top-2)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1754             }
  1757             }
  1755           return CUP$XPathParser$result;
  1758           return parser_result;
  1756 
  1759 
  1757           /*. . . . . . . . . . . . . . . . . . . .*/
  1760           /*. . . . . . . . . . . . . . . . . . . .*/
  1758           case 101: // PrimaryExpr ::= VariableReference
  1761           case 101: // PrimaryExpr ::= VariableReference
  1759             {
  1762             {
  1760               Expression RESULT = null;
  1763               Expression RESULT = null;
  1761                 int vrleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  1764                 int vrleft = (parser_stack.get(parser_top-0)).left;
  1762                 int vrright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  1765                 int vrright = (parser_stack.get(parser_top-0)).right;
  1763                 Expression vr = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  1766                 Expression vr = (Expression)((Symbol) parser_stack.get(parser_top-0)).value;
  1764                  RESULT = vr;
  1767                  RESULT = vr;
  1765               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(17/*PrimaryExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1768               parser_result = new Symbol(17/*PrimaryExpr*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1766             }
  1769             }
  1767           return CUP$XPathParser$result;
  1770           return parser_result;
  1768 
  1771 
  1769           /*. . . . . . . . . . . . . . . . . . . .*/
  1772           /*. . . . . . . . . . . . . . . . . . . .*/
  1770           case 100: // FilterExpr ::= PrimaryExpr Predicates
  1773           case 100: // FilterExpr ::= PrimaryExpr Predicates
  1771             {
  1774             {
  1772               Expression RESULT = null;
  1775               Expression RESULT = null;
  1773                 int primaryleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
  1776                 int primaryleft = (parser_stack.get(parser_top-1)).left;
  1774                 int primaryright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
  1777                 int primaryright = (parser_stack.get(parser_top-1)).right;
  1775                 Expression primary = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
  1778                 Expression primary = (Expression)((Symbol) parser_stack.get(parser_top-1)).value;
  1776                 int ppleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  1779                 int ppleft = (parser_stack.get(parser_top-0)).left;
  1777                 int ppright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  1780                 int ppright = (parser_stack.get(parser_top-0)).right;
  1778                 Vector pp = (Vector)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  1781                 @SuppressWarnings("unchecked")
       
  1782                 List<Expression> pp = (ArrayList<Expression>)((Symbol) parser_stack.get(parser_top-0)).value;
  1779                  RESULT = new FilterExpr(primary, pp);
  1783                  RESULT = new FilterExpr(primary, pp);
  1780               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(6/*FilterExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1784               parser_result = new Symbol(6/*FilterExpr*/, (parser_stack.get(parser_top-1)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1781             }
  1785             }
  1782           return CUP$XPathParser$result;
  1786           return parser_result;
  1783 
  1787 
  1784           /*. . . . . . . . . . . . . . . . . . . .*/
  1788           /*. . . . . . . . . . . . . . . . . . . .*/
  1785           case 99: // FilterExpr ::= PrimaryExpr
  1789           case 99: // FilterExpr ::= PrimaryExpr
  1786             {
  1790             {
  1787               Expression RESULT = null;
  1791               Expression RESULT = null;
  1788                 int primaryleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  1792                 int primaryleft = (parser_stack.get(parser_top-0)).left;
  1789                 int primaryright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  1793                 int primaryright = (parser_stack.get(parser_top-0)).right;
  1790                 Expression primary = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  1794                 Expression primary = (Expression)((Symbol) parser_stack.get(parser_top-0)).value;
  1791                  RESULT = primary;
  1795                  RESULT = primary;
  1792               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(6/*FilterExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1796               parser_result = new Symbol(6/*FilterExpr*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1793             }
  1797             }
  1794           return CUP$XPathParser$result;
  1798           return parser_result;
  1795 
  1799 
  1796           /*. . . . . . . . . . . . . . . . . . . .*/
  1800           /*. . . . . . . . . . . . . . . . . . . .*/
  1797           case 98: // AbbreviatedStep ::= DDOT
  1801           case 98: // AbbreviatedStep ::= DDOT
  1798             {
  1802             {
  1799               Expression RESULT = null;
  1803               Expression RESULT = null;
  1800                  RESULT = new Step(Axis.PARENT, NodeTest.ANODE, null);
  1804                  RESULT = new Step(Axis.PARENT, NodeTest.ANODE, null);
  1801               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(20/*AbbreviatedStep*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1805               parser_result = new Symbol(20/*AbbreviatedStep*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1802             }
  1806             }
  1803           return CUP$XPathParser$result;
  1807           return parser_result;
  1804 
  1808 
  1805           /*. . . . . . . . . . . . . . . . . . . .*/
  1809           /*. . . . . . . . . . . . . . . . . . . .*/
  1806           case 97: // AbbreviatedStep ::= DOT
  1810           case 97: // AbbreviatedStep ::= DOT
  1807             {
  1811             {
  1808               Expression RESULT = null;
  1812               Expression RESULT = null;
  1809                  RESULT = new Step(Axis.SELF, NodeTest.ANODE, null);
  1813                  RESULT = new Step(Axis.SELF, NodeTest.ANODE, null);
  1810               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(20/*AbbreviatedStep*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1814               parser_result = new Symbol(20/*AbbreviatedStep*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1811             }
  1815             }
  1812           return CUP$XPathParser$result;
  1816           return parser_result;
  1813 
  1817 
  1814           /*. . . . . . . . . . . . . . . . . . . .*/
  1818           /*. . . . . . . . . . . . . . . . . . . .*/
  1815           case 96: // AxisName ::= SELF
  1819           case 96: // AxisName ::= SELF
  1816             {
  1820             {
  1817               Integer RESULT = null;
  1821               Integer RESULT = null;
  1818                  RESULT = Integer.valueOf(Axis.SELF);
  1822                  RESULT = Integer.valueOf(Axis.SELF);
  1819               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(40/*AxisName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1823               parser_result = new Symbol(40/*AxisName*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1820             }
  1824             }
  1821           return CUP$XPathParser$result;
  1825           return parser_result;
  1822 
  1826 
  1823           /*. . . . . . . . . . . . . . . . . . . .*/
  1827           /*. . . . . . . . . . . . . . . . . . . .*/
  1824           case 95: // AxisName ::= PRECEDINGSIBLING
  1828           case 95: // AxisName ::= PRECEDINGSIBLING
  1825             {
  1829             {
  1826               Integer RESULT = null;
  1830               Integer RESULT = null;
  1827                  RESULT = Integer.valueOf(Axis.PRECEDINGSIBLING);
  1831                  RESULT = Integer.valueOf(Axis.PRECEDINGSIBLING);
  1828               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(40/*AxisName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1832               parser_result = new Symbol(40/*AxisName*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1829             }
  1833             }
  1830           return CUP$XPathParser$result;
  1834           return parser_result;
  1831 
  1835 
  1832           /*. . . . . . . . . . . . . . . . . . . .*/
  1836           /*. . . . . . . . . . . . . . . . . . . .*/
  1833           case 94: // AxisName ::= PRECEDING
  1837           case 94: // AxisName ::= PRECEDING
  1834             {
  1838             {
  1835               Integer RESULT = null;
  1839               Integer RESULT = null;
  1836                  RESULT = Integer.valueOf(Axis.PRECEDING);
  1840                  RESULT = Integer.valueOf(Axis.PRECEDING);
  1837               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(40/*AxisName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1841               parser_result = new Symbol(40/*AxisName*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1838             }
  1842             }
  1839           return CUP$XPathParser$result;
  1843           return parser_result;
  1840 
  1844 
  1841           /*. . . . . . . . . . . . . . . . . . . .*/
  1845           /*. . . . . . . . . . . . . . . . . . . .*/
  1842           case 93: // AxisName ::= PARENT
  1846           case 93: // AxisName ::= PARENT
  1843             {
  1847             {
  1844               Integer RESULT = null;
  1848               Integer RESULT = null;
  1845                  RESULT = Integer.valueOf(Axis.PARENT);
  1849                  RESULT = Integer.valueOf(Axis.PARENT);
  1846               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(40/*AxisName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1850               parser_result = new Symbol(40/*AxisName*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1847             }
  1851             }
  1848           return CUP$XPathParser$result;
  1852           return parser_result;
  1849 
  1853 
  1850           /*. . . . . . . . . . . . . . . . . . . .*/
  1854           /*. . . . . . . . . . . . . . . . . . . .*/
  1851           case 92: // AxisName ::= NAMESPACE
  1855           case 92: // AxisName ::= NAMESPACE
  1852             {
  1856             {
  1853               Integer RESULT = null;
  1857               Integer RESULT = null;
  1854                  RESULT = Integer.valueOf(Axis.NAMESPACE);
  1858                  RESULT = Integer.valueOf(Axis.NAMESPACE);
  1855               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(40/*AxisName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1859               parser_result = new Symbol(40/*AxisName*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1856             }
  1860             }
  1857           return CUP$XPathParser$result;
  1861           return parser_result;
  1858 
  1862 
  1859           /*. . . . . . . . . . . . . . . . . . . .*/
  1863           /*. . . . . . . . . . . . . . . . . . . .*/
  1860           case 91: // AxisName ::= FOLLOWINGSIBLING
  1864           case 91: // AxisName ::= FOLLOWINGSIBLING
  1861             {
  1865             {
  1862               Integer RESULT = null;
  1866               Integer RESULT = null;
  1863                  RESULT = Integer.valueOf(Axis.FOLLOWINGSIBLING);
  1867                  RESULT = Integer.valueOf(Axis.FOLLOWINGSIBLING);
  1864               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(40/*AxisName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1868               parser_result = new Symbol(40/*AxisName*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1865             }
  1869             }
  1866           return CUP$XPathParser$result;
  1870           return parser_result;
  1867 
  1871 
  1868           /*. . . . . . . . . . . . . . . . . . . .*/
  1872           /*. . . . . . . . . . . . . . . . . . . .*/
  1869           case 90: // AxisName ::= FOLLOWING
  1873           case 90: // AxisName ::= FOLLOWING
  1870             {
  1874             {
  1871               Integer RESULT = null;
  1875               Integer RESULT = null;
  1872                  RESULT = Integer.valueOf(Axis.FOLLOWING);
  1876                  RESULT = Integer.valueOf(Axis.FOLLOWING);
  1873               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(40/*AxisName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1877               parser_result = new Symbol(40/*AxisName*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1874             }
  1878             }
  1875           return CUP$XPathParser$result;
  1879           return parser_result;
  1876 
  1880 
  1877           /*. . . . . . . . . . . . . . . . . . . .*/
  1881           /*. . . . . . . . . . . . . . . . . . . .*/
  1878           case 89: // AxisName ::= DESCENDANTORSELF
  1882           case 89: // AxisName ::= DESCENDANTORSELF
  1879             {
  1883             {
  1880               Integer RESULT = null;
  1884               Integer RESULT = null;
  1881                  RESULT = Integer.valueOf(Axis.DESCENDANTORSELF);
  1885                  RESULT = Integer.valueOf(Axis.DESCENDANTORSELF);
  1882               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(40/*AxisName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1886               parser_result = new Symbol(40/*AxisName*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1883             }
  1887             }
  1884           return CUP$XPathParser$result;
  1888           return parser_result;
  1885 
  1889 
  1886           /*. . . . . . . . . . . . . . . . . . . .*/
  1890           /*. . . . . . . . . . . . . . . . . . . .*/
  1887           case 88: // AxisName ::= DESCENDANT
  1891           case 88: // AxisName ::= DESCENDANT
  1888             {
  1892             {
  1889               Integer RESULT = null;
  1893               Integer RESULT = null;
  1890                  RESULT = Integer.valueOf(Axis.DESCENDANT);
  1894                  RESULT = Integer.valueOf(Axis.DESCENDANT);
  1891               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(40/*AxisName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1895               parser_result = new Symbol(40/*AxisName*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1892             }
  1896             }
  1893           return CUP$XPathParser$result;
  1897           return parser_result;
  1894 
  1898 
  1895           /*. . . . . . . . . . . . . . . . . . . .*/
  1899           /*. . . . . . . . . . . . . . . . . . . .*/
  1896           case 87: // AxisName ::= CHILD
  1900           case 87: // AxisName ::= CHILD
  1897             {
  1901             {
  1898               Integer RESULT = null;
  1902               Integer RESULT = null;
  1899                  RESULT = Integer.valueOf(Axis.CHILD);
  1903                  RESULT = Integer.valueOf(Axis.CHILD);
  1900               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(40/*AxisName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1904               parser_result = new Symbol(40/*AxisName*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1901             }
  1905             }
  1902           return CUP$XPathParser$result;
  1906           return parser_result;
  1903 
  1907 
  1904           /*. . . . . . . . . . . . . . . . . . . .*/
  1908           /*. . . . . . . . . . . . . . . . . . . .*/
  1905           case 86: // AxisName ::= ATTRIBUTE
  1909           case 86: // AxisName ::= ATTRIBUTE
  1906             {
  1910             {
  1907               Integer RESULT = null;
  1911               Integer RESULT = null;
  1908                  RESULT = Integer.valueOf(Axis.ATTRIBUTE);
  1912                  RESULT = Integer.valueOf(Axis.ATTRIBUTE);
  1909               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(40/*AxisName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1913               parser_result = new Symbol(40/*AxisName*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1910             }
  1914             }
  1911           return CUP$XPathParser$result;
  1915           return parser_result;
  1912 
  1916 
  1913           /*. . . . . . . . . . . . . . . . . . . .*/
  1917           /*. . . . . . . . . . . . . . . . . . . .*/
  1914           case 85: // AxisName ::= ANCESTORORSELF
  1918           case 85: // AxisName ::= ANCESTORORSELF
  1915             {
  1919             {
  1916               Integer RESULT = null;
  1920               Integer RESULT = null;
  1917                  RESULT = Integer.valueOf(Axis.ANCESTORORSELF);
  1921                  RESULT = Integer.valueOf(Axis.ANCESTORORSELF);
  1918               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(40/*AxisName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1922               parser_result = new Symbol(40/*AxisName*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1919             }
  1923             }
  1920           return CUP$XPathParser$result;
  1924           return parser_result;
  1921 
  1925 
  1922           /*. . . . . . . . . . . . . . . . . . . .*/
  1926           /*. . . . . . . . . . . . . . . . . . . .*/
  1923           case 84: // AxisName ::= ANCESTOR
  1927           case 84: // AxisName ::= ANCESTOR
  1924             {
  1928             {
  1925               Integer RESULT = null;
  1929               Integer RESULT = null;
  1926                  RESULT = Integer.valueOf(Axis.ANCESTOR);
  1930                  RESULT = Integer.valueOf(Axis.ANCESTOR);
  1927               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(40/*AxisName*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1931               parser_result = new Symbol(40/*AxisName*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1928             }
  1932             }
  1929           return CUP$XPathParser$result;
  1933           return parser_result;
  1930 
  1934 
  1931           /*. . . . . . . . . . . . . . . . . . . .*/
  1935           /*. . . . . . . . . . . . . . . . . . . .*/
  1932           case 83: // AxisSpecifier ::= ATSIGN
  1936           case 83: // AxisSpecifier ::= ATSIGN
  1933             {
  1937             {
  1934               Integer RESULT = null;
  1938               Integer RESULT = null;
  1935                  RESULT = Integer.valueOf(Axis.ATTRIBUTE);
  1939                  RESULT = Integer.valueOf(Axis.ATTRIBUTE);
  1936               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(41/*AxisSpecifier*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1940               parser_result = new Symbol(41/*AxisSpecifier*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1937             }
  1941             }
  1938           return CUP$XPathParser$result;
  1942           return parser_result;
  1939 
  1943 
  1940           /*. . . . . . . . . . . . . . . . . . . .*/
  1944           /*. . . . . . . . . . . . . . . . . . . .*/
  1941           case 82: // AxisSpecifier ::= AxisName DCOLON
  1945           case 82: // AxisSpecifier ::= AxisName DCOLON
  1942             {
  1946             {
  1943               Integer RESULT = null;
  1947               Integer RESULT = null;
  1944                 int anleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
  1948                 int anleft = (parser_stack.get(parser_top-1)).left;
  1945                 int anright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
  1949                 int anright = (parser_stack.get(parser_top-1)).right;
  1946                 Integer an = (Integer)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
  1950                 Integer an = (Integer)((Symbol) parser_stack.get(parser_top-1)).value;
  1947                  RESULT = an;
  1951                  RESULT = an;
  1948               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(41/*AxisSpecifier*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1952               parser_result = new Symbol(41/*AxisSpecifier*/, (parser_stack.get(parser_top-1)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1949             }
  1953             }
  1950           return CUP$XPathParser$result;
  1954           return parser_result;
  1951 
  1955 
  1952           /*. . . . . . . . . . . . . . . . . . . .*/
  1956           /*. . . . . . . . . . . . . . . . . . . .*/
  1953           case 81: // Step ::= AbbreviatedStep
  1957           case 81: // Step ::= AbbreviatedStep
  1954             {
  1958             {
  1955               Expression RESULT = null;
  1959               Expression RESULT = null;
  1956                 int abbrevleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  1960                 int abbrevleft = (parser_stack.get(parser_top-0)).left;
  1957                 int abbrevright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  1961                 int abbrevright = (parser_stack.get(parser_top-0)).right;
  1958                 Expression abbrev = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  1962                 Expression abbrev = (Expression)((Symbol) parser_stack.get(parser_top-0)).value;
  1959                  RESULT = abbrev;
  1963                  RESULT = abbrev;
  1960               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(7/*Step*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1964               parser_result = new Symbol(7/*Step*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1961             }
  1965             }
  1962           return CUP$XPathParser$result;
  1966           return parser_result;
  1963 
  1967 
  1964           /*. . . . . . . . . . . . . . . . . . . .*/
  1968           /*. . . . . . . . . . . . . . . . . . . .*/
  1965           case 80: // Step ::= AxisSpecifier NodeTest
  1969           case 80: // Step ::= AxisSpecifier NodeTest
  1966             {
  1970             {
  1967               Expression RESULT = null;
  1971               Expression RESULT = null;
  1968                 int axisleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
  1972                 int axisleft = (parser_stack.get(parser_top-1)).left;
  1969                 int axisright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
  1973                 int axisright = (parser_stack.get(parser_top-1)).right;
  1970                 Integer axis = (Integer)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
  1974                 Integer axis = (Integer)((Symbol) parser_stack.get(parser_top-1)).value;
  1971                 int ntestleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  1975                 int ntestleft = (parser_stack.get(parser_top-0)).left;
  1972                 int ntestright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  1976                 int ntestright = (parser_stack.get(parser_top-0)).right;
  1973                 Object ntest = (Object)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  1977                 Object ntest = (Object)((Symbol) parser_stack.get(parser_top-0)).value;
  1974                  RESULT = new Step(axis.intValue(),
  1978                  RESULT = new Step(axis.intValue(),
  1975                              parser.findNodeType(axis.intValue(), ntest),
  1979                              parser.findNodeType(axis.intValue(), ntest),
  1976                              null);
  1980                              null);
  1977 
  1981 
  1978               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(7/*Step*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  1982               parser_result = new Symbol(7/*Step*/, (parser_stack.get(parser_top-1)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  1979             }
  1983             }
  1980           return CUP$XPathParser$result;
  1984           return parser_result;
  1981 
  1985 
  1982           /*. . . . . . . . . . . . . . . . . . . .*/
  1986           /*. . . . . . . . . . . . . . . . . . . .*/
  1983           case 79: // Step ::= AxisSpecifier NodeTest Predicates
  1987           case 79: // Step ::= AxisSpecifier NodeTest Predicates
  1984             {
  1988             {
  1985               Expression RESULT = null;
  1989               Expression RESULT = null;
  1986                 int axisleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  1990                 int axisleft = (parser_stack.get(parser_top-2)).left;
  1987                 int axisright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  1991                 int axisright = (parser_stack.get(parser_top-2)).right;
  1988                 Integer axis = (Integer)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  1992                 Integer axis = (Integer)((Symbol) parser_stack.get(parser_top-2)).value;
  1989                 int ntestleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
  1993                 int ntestleft = (parser_stack.get(parser_top-1)).left;
  1990                 int ntestright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
  1994                 int ntestright = (parser_stack.get(parser_top-1)).right;
  1991                 Object ntest = (Object)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
  1995                 Object ntest = (Object)((Symbol) parser_stack.get(parser_top-1)).value;
  1992                 int ppleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  1996                 int ppleft = (parser_stack.get(parser_top-0)).left;
  1993                 int ppright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  1997                 int ppright = (parser_stack.get(parser_top-0)).right;
  1994                 Vector pp = (Vector)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  1998                 @SuppressWarnings("unchecked")
       
  1999                 List<Predicate> pp = (ArrayList<Predicate>)((Symbol) parser_stack.get(parser_top-0)).value;
  1995                  RESULT = new Step(axis.intValue(),
  2000                  RESULT = new Step(axis.intValue(),
  1996                              parser.findNodeType(axis.intValue(), ntest),
  2001                              parser.findNodeType(axis.intValue(), ntest),
  1997                              pp);
  2002                              pp);
  1998 
  2003 
  1999               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(7/*Step*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2004               parser_result = new Symbol(7/*Step*/, (parser_stack.get(parser_top-2)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2000             }
  2005             }
  2001           return CUP$XPathParser$result;
  2006           return parser_result;
  2002 
  2007 
  2003           /*. . . . . . . . . . . . . . . . . . . .*/
  2008           /*. . . . . . . . . . . . . . . . . . . .*/
  2004           case 78: // Step ::= NodeTest Predicates
  2009           case 78: // Step ::= NodeTest Predicates
  2005             {
  2010             {
  2006               Expression RESULT = null;
  2011               Expression RESULT = null;
  2007                 int ntestleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
  2012                 int ntestleft = (parser_stack.get(parser_top-1)).left;
  2008                 int ntestright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
  2013                 int ntestright = (parser_stack.get(parser_top-1)).right;
  2009                 Object ntest = (Object)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
  2014                 Object ntest = (Object)((Symbol) parser_stack.get(parser_top-1)).value;
  2010                 int ppleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2015                 int ppleft = (parser_stack.get(parser_top-0)).left;
  2011                 int ppright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2016                 int ppright = (parser_stack.get(parser_top-0)).right;
  2012                 Vector pp = (Vector)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2017                 @SuppressWarnings("unchecked")
       
  2018                 List<Predicate> pp = (ArrayList<Predicate>)((Symbol) parser_stack.get(parser_top-0)).value;
  2013 
  2019 
  2014             if (ntest instanceof Step) {
  2020             if (ntest instanceof Step) {
  2015                 Step step = (Step)ntest;
  2021                 Step step = (Step)ntest;
  2016                 step.addPredicates(pp);
  2022                 step.addPredicates(pp);
  2017                 RESULT = (Step)ntest;
  2023                 RESULT = (Step)ntest;
  2019             else {
  2025             else {
  2020                 RESULT = new Step(Axis.CHILD,
  2026                 RESULT = new Step(Axis.CHILD,
  2021                              parser.findNodeType(Axis.CHILD, ntest), pp);
  2027                              parser.findNodeType(Axis.CHILD, ntest), pp);
  2022             }
  2028             }
  2023 
  2029 
  2024               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(7/*Step*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2030               parser_result = new Symbol(7/*Step*/, (parser_stack.get(parser_top-1)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2025             }
  2031             }
  2026           return CUP$XPathParser$result;
  2032           return parser_result;
  2027 
  2033 
  2028           /*. . . . . . . . . . . . . . . . . . . .*/
  2034           /*. . . . . . . . . . . . . . . . . . . .*/
  2029           case 77: // Step ::= NodeTest
  2035           case 77: // Step ::= NodeTest
  2030             {
  2036             {
  2031               Expression RESULT = null;
  2037               Expression RESULT = null;
  2032                 int ntestleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2038                 int ntestleft = (parser_stack.get(parser_top-0)).left;
  2033                 int ntestright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2039                 int ntestright = (parser_stack.get(parser_top-0)).right;
  2034                 Object ntest = (Object)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2040                 Object ntest = (Object)((Symbol) parser_stack.get(parser_top-0)).value;
  2035 
  2041 
  2036             if (ntest instanceof Step) {
  2042             if (ntest instanceof Step) {
  2037                 RESULT = (Step)ntest;
  2043                 RESULT = (Step)ntest;
  2038             }
  2044             }
  2039             else {
  2045             else {
  2040                 RESULT = new Step(Axis.CHILD,
  2046                 RESULT = new Step(Axis.CHILD,
  2041                              parser.findNodeType(Axis.CHILD, ntest),
  2047                              parser.findNodeType(Axis.CHILD, ntest),
  2042                              null);
  2048                              null);
  2043             }
  2049             }
  2044 
  2050 
  2045               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(7/*Step*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2051               parser_result = new Symbol(7/*Step*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2046             }
  2052             }
  2047           return CUP$XPathParser$result;
  2053           return parser_result;
  2048 
  2054 
  2049           /*. . . . . . . . . . . . . . . . . . . .*/
  2055           /*. . . . . . . . . . . . . . . . . . . .*/
  2050           case 76: // AbbreviatedAbsoluteLocationPath ::= DSLASH RelativeLocationPath
  2056           case 76: // AbbreviatedAbsoluteLocationPath ::= DSLASH RelativeLocationPath
  2051             {
  2057             {
  2052               Expression RESULT = null;
  2058               Expression RESULT = null;
  2053                 int rlpleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2059                 int rlpleft = (parser_stack.get(parser_top-0)).left;
  2054                 int rlpright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2060                 int rlpright = (parser_stack.get(parser_top-0)).right;
  2055                 Expression rlp = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2061                 Expression rlp = (Expression)((Symbol) parser_stack.get(parser_top-0)).value;
  2056 
  2062 
  2057            //
  2063            //
  2058            // Expand '//' into '/descendant-or-self::node()/' or
  2064            // Expand '//' into '/descendant-or-self::node()/' or
  2059            // into /descendant-or-self::*/
  2065            // into /descendant-or-self::*/
  2060            //
  2066            //
  2066            }
  2072            }
  2067            final Step step = new Step(Axis.DESCENDANTORSELF, nodeType, null);
  2073            final Step step = new Step(Axis.DESCENDANTORSELF, nodeType, null);
  2068            RESULT = new AbsoluteLocationPath(parser.insertStep(step,
  2074            RESULT = new AbsoluteLocationPath(parser.insertStep(step,
  2069                                 (RelativeLocationPath) rlp));
  2075                                 (RelativeLocationPath) rlp));
  2070 
  2076 
  2071               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(24/*AbbreviatedAbsoluteLocationPath*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2077               parser_result = new Symbol(24/*AbbreviatedAbsoluteLocationPath*/, (parser_stack.get(parser_top-1)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2072             }
  2078             }
  2073           return CUP$XPathParser$result;
  2079           return parser_result;
  2074 
  2080 
  2075           /*. . . . . . . . . . . . . . . . . . . .*/
  2081           /*. . . . . . . . . . . . . . . . . . . .*/
  2076           case 75: // AbbreviatedRelativeLocationPath ::= RelativeLocationPath DSLASH Step
  2082           case 75: // AbbreviatedRelativeLocationPath ::= RelativeLocationPath DSLASH Step
  2077             {
  2083             {
  2078               Expression RESULT = null;
  2084               Expression RESULT = null;
  2079                 int rlpleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  2085                 int rlpleft = (parser_stack.get(parser_top-2)).left;
  2080                 int rlpright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  2086                 int rlpright = (parser_stack.get(parser_top-2)).right;
  2081                 Expression rlp = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  2087                 Expression rlp = (Expression)((Symbol) parser_stack.get(parser_top-2)).value;
  2082                 int stepleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2088                 int stepleft = (parser_stack.get(parser_top-0)).left;
  2083                 int stepright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2089                 int stepright = (parser_stack.get(parser_top-0)).right;
  2084                 Expression step = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2090                 Expression step = (Expression)((Symbol) parser_stack.get(parser_top-0)).value;
  2085 
  2091 
  2086            final Step right  = (Step)step;
  2092            final Step right  = (Step)step;
  2087            final int  axis   = right.getAxis();
  2093            final int  axis   = right.getAxis();
  2088            final int  type   = right.getNodeType();
  2094            final int  type   = right.getNodeType();
  2089            final Vector predicates = right.getPredicates();
  2095            final List<Predicate> predicates = right.getPredicates();
  2090 
  2096 
  2091            if ((axis == Axis.CHILD) && (type != NodeTest.ATTRIBUTE)) {
  2097            if ((axis == Axis.CHILD) && (type != NodeTest.ATTRIBUTE)) {
  2092                // Compress './/child:E' into 'descendant::E' - if possible
  2098                // Compress './/child:E' into 'descendant::E' - if possible
  2093                if (predicates == null) {
  2099                if (predicates == null) {
  2094                    right.setAxis(Axis.DESCENDANT);
  2100                    right.setAxis(Axis.DESCENDANT);
  2133                     DOM.NO_TYPE, null);
  2139                     DOM.NO_TYPE, null);
  2134                ParentLocationPath ppl = new ParentLocationPath(middle, right);
  2140                ParentLocationPath ppl = new ParentLocationPath(middle, right);
  2135                RESULT = new ParentLocationPath(left, ppl);
  2141                RESULT = new ParentLocationPath(left, ppl);
  2136            }
  2142            }
  2137 
  2143 
  2138               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(22/*AbbreviatedRelativeLocationPath*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2144               parser_result = new Symbol(22/*AbbreviatedRelativeLocationPath*/, (parser_stack.get(parser_top-2)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2139             }
  2145             }
  2140           return CUP$XPathParser$result;
  2146           return parser_result;
  2141 
  2147 
  2142           /*. . . . . . . . . . . . . . . . . . . .*/
  2148           /*. . . . . . . . . . . . . . . . . . . .*/
  2143           case 74: // AbsoluteLocationPath ::= AbbreviatedAbsoluteLocationPath
  2149           case 74: // AbsoluteLocationPath ::= AbbreviatedAbsoluteLocationPath
  2144             {
  2150             {
  2145               Expression RESULT = null;
  2151               Expression RESULT = null;
  2146                 int aalpleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2152                 int aalpleft = (parser_stack.get(parser_top-0)).left;
  2147                 int aalpright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2153                 int aalpright = (parser_stack.get(parser_top-0)).right;
  2148                 Expression aalp = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2154                 Expression aalp = (Expression)((Symbol) parser_stack.get(parser_top-0)).value;
  2149                  RESULT = aalp;
  2155                  RESULT = aalp;
  2150               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(23/*AbsoluteLocationPath*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2156               parser_result = new Symbol(23/*AbsoluteLocationPath*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2151             }
  2157             }
  2152           return CUP$XPathParser$result;
  2158           return parser_result;
  2153 
  2159 
  2154           /*. . . . . . . . . . . . . . . . . . . .*/
  2160           /*. . . . . . . . . . . . . . . . . . . .*/
  2155           case 73: // AbsoluteLocationPath ::= SLASH RelativeLocationPath
  2161           case 73: // AbsoluteLocationPath ::= SLASH RelativeLocationPath
  2156             {
  2162             {
  2157               Expression RESULT = null;
  2163               Expression RESULT = null;
  2158                 int rlpleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2164                 int rlpleft = (parser_stack.get(parser_top-0)).left;
  2159                 int rlpright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2165                 int rlpright = (parser_stack.get(parser_top-0)).right;
  2160                 Expression rlp = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2166                 Expression rlp = (Expression)((Symbol) parser_stack.get(parser_top-0)).value;
  2161                  RESULT = new AbsoluteLocationPath(rlp);
  2167                  RESULT = new AbsoluteLocationPath(rlp);
  2162               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(23/*AbsoluteLocationPath*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2168               parser_result = new Symbol(23/*AbsoluteLocationPath*/, (parser_stack.get(parser_top-1)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2163             }
  2169             }
  2164           return CUP$XPathParser$result;
  2170           return parser_result;
  2165 
  2171 
  2166           /*. . . . . . . . . . . . . . . . . . . .*/
  2172           /*. . . . . . . . . . . . . . . . . . . .*/
  2167           case 72: // AbsoluteLocationPath ::= SLASH
  2173           case 72: // AbsoluteLocationPath ::= SLASH
  2168             {
  2174             {
  2169               Expression RESULT = null;
  2175               Expression RESULT = null;
  2170                  RESULT = new AbsoluteLocationPath();
  2176                  RESULT = new AbsoluteLocationPath();
  2171               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(23/*AbsoluteLocationPath*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2177               parser_result = new Symbol(23/*AbsoluteLocationPath*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2172             }
  2178             }
  2173           return CUP$XPathParser$result;
  2179           return parser_result;
  2174 
  2180 
  2175           /*. . . . . . . . . . . . . . . . . . . .*/
  2181           /*. . . . . . . . . . . . . . . . . . . .*/
  2176           case 71: // RelativeLocationPath ::= AbbreviatedRelativeLocationPath
  2182           case 71: // RelativeLocationPath ::= AbbreviatedRelativeLocationPath
  2177             {
  2183             {
  2178               Expression RESULT = null;
  2184               Expression RESULT = null;
  2179                 int arlpleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2185                 int arlpleft = (parser_stack.get(parser_top-0)).left;
  2180                 int arlpright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2186                 int arlpright = (parser_stack.get(parser_top-0)).right;
  2181                 Expression arlp = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2187                 Expression arlp = (Expression)((Symbol) parser_stack.get(parser_top-0)).value;
  2182                  RESULT = arlp;
  2188                  RESULT = arlp;
  2183               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(21/*RelativeLocationPath*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2189               parser_result = new Symbol(21/*RelativeLocationPath*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2184             }
  2190             }
  2185           return CUP$XPathParser$result;
  2191           return parser_result;
  2186 
  2192 
  2187           /*. . . . . . . . . . . . . . . . . . . .*/
  2193           /*. . . . . . . . . . . . . . . . . . . .*/
  2188           case 70: // RelativeLocationPath ::= RelativeLocationPath SLASH Step
  2194           case 70: // RelativeLocationPath ::= RelativeLocationPath SLASH Step
  2189             {
  2195             {
  2190               Expression RESULT = null;
  2196               Expression RESULT = null;
  2191                 int rlpleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  2197                 int rlpleft = (parser_stack.get(parser_top-2)).left;
  2192                 int rlpright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  2198                 int rlpright = (parser_stack.get(parser_top-2)).right;
  2193                 Expression rlp = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  2199                 Expression rlp = (Expression)((Symbol) parser_stack.get(parser_top-2)).value;
  2194                 int stepleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2200                 int stepleft = (parser_stack.get(parser_top-0)).left;
  2195                 int stepright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2201                 int stepright = (parser_stack.get(parser_top-0)).right;
  2196                 Expression step = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2202                 Expression step = (Expression)((Symbol) parser_stack.get(parser_top-0)).value;
  2197 
  2203 
  2198         if (rlp instanceof Step && ((Step) rlp).isAbbreviatedDot()) {
  2204         if (rlp instanceof Step && ((Step) rlp).isAbbreviatedDot()) {
  2199               RESULT = step;       // Remove './' from the middle
  2205               RESULT = step;       // Remove './' from the middle
  2200         }
  2206         }
  2201         else if (((Step) step).isAbbreviatedDot()) {
  2207         else if (((Step) step).isAbbreviatedDot()) {
  2204         else {
  2210         else {
  2205              RESULT =
  2211              RESULT =
  2206                 new ParentLocationPath((RelativeLocationPath) rlp, step);
  2212                 new ParentLocationPath((RelativeLocationPath) rlp, step);
  2207            }
  2213            }
  2208 
  2214 
  2209               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(21/*RelativeLocationPath*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2215               parser_result = new Symbol(21/*RelativeLocationPath*/, (parser_stack.get(parser_top-2)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2210             }
  2216             }
  2211           return CUP$XPathParser$result;
  2217           return parser_result;
  2212 
  2218 
  2213           /*. . . . . . . . . . . . . . . . . . . .*/
  2219           /*. . . . . . . . . . . . . . . . . . . .*/
  2214           case 69: // RelativeLocationPath ::= Step
  2220           case 69: // RelativeLocationPath ::= Step
  2215             {
  2221             {
  2216               Expression RESULT = null;
  2222               Expression RESULT = null;
  2217                 int stepleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2223                 int stepleft = (parser_stack.get(parser_top-0)).left;
  2218                 int stepright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2224                 int stepright = (parser_stack.get(parser_top-0)).right;
  2219                 Expression step = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2225                 Expression step = (Expression)((Symbol) parser_stack.get(parser_top-0)).value;
  2220                  RESULT = step;
  2226                  RESULT = step;
  2221               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(21/*RelativeLocationPath*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2227               parser_result = new Symbol(21/*RelativeLocationPath*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2222             }
  2228             }
  2223           return CUP$XPathParser$result;
  2229           return parser_result;
  2224 
  2230 
  2225           /*. . . . . . . . . . . . . . . . . . . .*/
  2231           /*. . . . . . . . . . . . . . . . . . . .*/
  2226           case 68: // LocationPath ::= AbsoluteLocationPath
  2232           case 68: // LocationPath ::= AbsoluteLocationPath
  2227             {
  2233             {
  2228               Expression RESULT = null;
  2234               Expression RESULT = null;
  2229                 int alpleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2235                 int alpleft = (parser_stack.get(parser_top-0)).left;
  2230                 int alpright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2236                 int alpright = (parser_stack.get(parser_top-0)).right;
  2231                 Expression alp = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2237                 Expression alp = (Expression)((Symbol) parser_stack.get(parser_top-0)).value;
  2232                  RESULT = alp;
  2238                  RESULT = alp;
  2233               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(4/*LocationPath*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2239               parser_result = new Symbol(4/*LocationPath*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2234             }
  2240             }
  2235           return CUP$XPathParser$result;
  2241           return parser_result;
  2236 
  2242 
  2237           /*. . . . . . . . . . . . . . . . . . . .*/
  2243           /*. . . . . . . . . . . . . . . . . . . .*/
  2238           case 67: // LocationPath ::= RelativeLocationPath
  2244           case 67: // LocationPath ::= RelativeLocationPath
  2239             {
  2245             {
  2240               Expression RESULT = null;
  2246               Expression RESULT = null;
  2241                 int rlpleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2247                 int rlpleft = (parser_stack.get(parser_top-0)).left;
  2242                 int rlpright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2248                 int rlpright = (parser_stack.get(parser_top-0)).right;
  2243                 Expression rlp = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2249                 Expression rlp = (Expression)((Symbol) parser_stack.get(parser_top-0)).value;
  2244                  RESULT = rlp;
  2250                  RESULT = rlp;
  2245               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(4/*LocationPath*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2251               parser_result = new Symbol(4/*LocationPath*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2246             }
  2252             }
  2247           return CUP$XPathParser$result;
  2253           return parser_result;
  2248 
  2254 
  2249           /*. . . . . . . . . . . . . . . . . . . .*/
  2255           /*. . . . . . . . . . . . . . . . . . . .*/
  2250           case 66: // PathExpr ::= FilterExpr DSLASH RelativeLocationPath
  2256           case 66: // PathExpr ::= FilterExpr DSLASH RelativeLocationPath
  2251             {
  2257             {
  2252               Expression RESULT = null;
  2258               Expression RESULT = null;
  2253                 int fexpleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  2259                 int fexpleft = (parser_stack.get(parser_top-2)).left;
  2254                 int fexpright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  2260                 int fexpright = (parser_stack.get(parser_top-2)).right;
  2255                 Expression fexp = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  2261                 Expression fexp = (Expression)((Symbol) parser_stack.get(parser_top-2)).value;
  2256                 int rlpleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2262                 int rlpleft = (parser_stack.get(parser_top-0)).left;
  2257                 int rlpright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2263                 int rlpright = (parser_stack.get(parser_top-0)).right;
  2258                 Expression rlp = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2264                 Expression rlp = (Expression)((Symbol) parser_stack.get(parser_top-0)).value;
  2259 
  2265 
  2260            //
  2266            //
  2261            // Expand '//' into '/descendant-or-self::node()/' or
  2267            // Expand '//' into '/descendant-or-self::node()/' or
  2262            // into /descendant-or-self::*/
  2268            // into /descendant-or-self::*/
  2263            //
  2269            //
  2273            if (fexp instanceof KeyCall == false) {
  2279            if (fexp instanceof KeyCall == false) {
  2274                fpp.setDescendantAxis();
  2280                fpp.setDescendantAxis();
  2275            }
  2281            }
  2276            RESULT = fpp;
  2282            RESULT = fpp;
  2277 
  2283 
  2278               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(19/*PathExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2284               parser_result = new Symbol(19/*PathExpr*/, (parser_stack.get(parser_top-2)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2279             }
  2285             }
  2280           return CUP$XPathParser$result;
  2286           return parser_result;
  2281 
  2287 
  2282           /*. . . . . . . . . . . . . . . . . . . .*/
  2288           /*. . . . . . . . . . . . . . . . . . . .*/
  2283           case 65: // PathExpr ::= FilterExpr SLASH RelativeLocationPath
  2289           case 65: // PathExpr ::= FilterExpr SLASH RelativeLocationPath
  2284             {
  2290             {
  2285               Expression RESULT = null;
  2291               Expression RESULT = null;
  2286                 int fexpleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  2292                 int fexpleft = (parser_stack.get(parser_top-2)).left;
  2287                 int fexpright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  2293                 int fexpright = (parser_stack.get(parser_top-2)).right;
  2288                 Expression fexp = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  2294                 Expression fexp = (Expression)((Symbol) parser_stack.get(parser_top-2)).value;
  2289                 int rlpleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2295                 int rlpleft = (parser_stack.get(parser_top-0)).left;
  2290                 int rlpright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2296                 int rlpright = (parser_stack.get(parser_top-0)).right;
  2291                 Expression rlp = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2297                 Expression rlp = (Expression)((Symbol) parser_stack.get(parser_top-0)).value;
  2292                  RESULT = new FilterParentPath(fexp, rlp);
  2298                  RESULT = new FilterParentPath(fexp, rlp);
  2293               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(19/*PathExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2299               parser_result = new Symbol(19/*PathExpr*/, (parser_stack.get(parser_top-2)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2294             }
  2300             }
  2295           return CUP$XPathParser$result;
  2301           return parser_result;
  2296 
  2302 
  2297           /*. . . . . . . . . . . . . . . . . . . .*/
  2303           /*. . . . . . . . . . . . . . . . . . . .*/
  2298           case 64: // PathExpr ::= FilterExpr
  2304           case 64: // PathExpr ::= FilterExpr
  2299             {
  2305             {
  2300               Expression RESULT = null;
  2306               Expression RESULT = null;
  2301                 int fexpleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2307                 int fexpleft = (parser_stack.get(parser_top-0)).left;
  2302                 int fexpright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2308                 int fexpright = (parser_stack.get(parser_top-0)).right;
  2303                 Expression fexp = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2309                 Expression fexp = (Expression)((Symbol) parser_stack.get(parser_top-0)).value;
  2304                  RESULT = fexp;
  2310                  RESULT = fexp;
  2305               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(19/*PathExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2311               parser_result = new Symbol(19/*PathExpr*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2306             }
  2312             }
  2307           return CUP$XPathParser$result;
  2313           return parser_result;
  2308 
  2314 
  2309           /*. . . . . . . . . . . . . . . . . . . .*/
  2315           /*. . . . . . . . . . . . . . . . . . . .*/
  2310           case 63: // PathExpr ::= LocationPath
  2316           case 63: // PathExpr ::= LocationPath
  2311             {
  2317             {
  2312               Expression RESULT = null;
  2318               Expression RESULT = null;
  2313                 int lpleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2319                 int lpleft = (parser_stack.get(parser_top-0)).left;
  2314                 int lpright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2320                 int lpright = (parser_stack.get(parser_top-0)).right;
  2315                 Expression lp = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2321                 Expression lp = (Expression)((Symbol) parser_stack.get(parser_top-0)).value;
  2316                  RESULT = lp;
  2322                  RESULT = lp;
  2317               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(19/*PathExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2323               parser_result = new Symbol(19/*PathExpr*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2318             }
  2324             }
  2319           return CUP$XPathParser$result;
  2325           return parser_result;
  2320 
  2326 
  2321           /*. . . . . . . . . . . . . . . . . . . .*/
  2327           /*. . . . . . . . . . . . . . . . . . . .*/
  2322           case 62: // UnionExpr ::= PathExpr VBAR UnionExpr
  2328           case 62: // UnionExpr ::= PathExpr VBAR UnionExpr
  2323             {
  2329             {
  2324               Expression RESULT = null;
  2330               Expression RESULT = null;
  2325                 int peleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  2331                 int peleft = (parser_stack.get(parser_top-2)).left;
  2326                 int peright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  2332                 int peright = (parser_stack.get(parser_top-2)).right;
  2327                 Expression pe = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  2333                 Expression pe = (Expression)((Symbol) parser_stack.get(parser_top-2)).value;
  2328                 int restleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2334                 int restleft = (parser_stack.get(parser_top-0)).left;
  2329                 int restright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2335                 int restright = (parser_stack.get(parser_top-0)).right;
  2330                 Expression rest = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2336                 Expression rest = (Expression)((Symbol) parser_stack.get(parser_top-0)).value;
  2331                  RESULT = new UnionPathExpr(pe, rest);
  2337                  RESULT = new UnionPathExpr(pe, rest);
  2332               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(18/*UnionExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2338               parser_result = new Symbol(18/*UnionExpr*/, (parser_stack.get(parser_top-2)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2333             }
  2339             }
  2334           return CUP$XPathParser$result;
  2340           return parser_result;
  2335 
  2341 
  2336           /*. . . . . . . . . . . . . . . . . . . .*/
  2342           /*. . . . . . . . . . . . . . . . . . . .*/
  2337           case 61: // UnionExpr ::= PathExpr
  2343           case 61: // UnionExpr ::= PathExpr
  2338             {
  2344             {
  2339               Expression RESULT = null;
  2345               Expression RESULT = null;
  2340                 int peleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2346                 int peleft = (parser_stack.get(parser_top-0)).left;
  2341                 int peright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2347                 int peright = (parser_stack.get(parser_top-0)).right;
  2342                 Expression pe = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2348                 Expression pe = (Expression)((Symbol) parser_stack.get(parser_top-0)).value;
  2343                  RESULT = pe;
  2349                  RESULT = pe;
  2344               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(18/*UnionExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2350               parser_result = new Symbol(18/*UnionExpr*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2345             }
  2351             }
  2346           return CUP$XPathParser$result;
  2352           return parser_result;
  2347 
  2353 
  2348           /*. . . . . . . . . . . . . . . . . . . .*/
  2354           /*. . . . . . . . . . . . . . . . . . . .*/
  2349           case 60: // UnaryExpr ::= MINUS UnaryExpr
  2355           case 60: // UnaryExpr ::= MINUS UnaryExpr
  2350             {
  2356             {
  2351               Expression RESULT = null;
  2357               Expression RESULT = null;
  2352                 int ueleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2358                 int ueleft = (parser_stack.get(parser_top-0)).left;
  2353                 int ueright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2359                 int ueright = (parser_stack.get(parser_top-0)).right;
  2354                 Expression ue = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2360                 Expression ue = (Expression)((Symbol) parser_stack.get(parser_top-0)).value;
  2355                  RESULT = new UnaryOpExpr(ue);
  2361                  RESULT = new UnaryOpExpr(ue);
  2356               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(14/*UnaryExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2362               parser_result = new Symbol(14/*UnaryExpr*/, (parser_stack.get(parser_top-1)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2357             }
  2363             }
  2358           return CUP$XPathParser$result;
  2364           return parser_result;
  2359 
  2365 
  2360           /*. . . . . . . . . . . . . . . . . . . .*/
  2366           /*. . . . . . . . . . . . . . . . . . . .*/
  2361           case 59: // UnaryExpr ::= UnionExpr
  2367           case 59: // UnaryExpr ::= UnionExpr
  2362             {
  2368             {
  2363               Expression RESULT = null;
  2369               Expression RESULT = null;
  2364                 int ueleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2370                 int ueleft = (parser_stack.get(parser_top-0)).left;
  2365                 int ueright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2371                 int ueright = (parser_stack.get(parser_top-0)).right;
  2366                 Expression ue = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2372                 Expression ue = (Expression)((Symbol) parser_stack.get(parser_top-0)).value;
  2367                  RESULT = ue;
  2373                  RESULT = ue;
  2368               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(14/*UnaryExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2374               parser_result = new Symbol(14/*UnaryExpr*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2369             }
  2375             }
  2370           return CUP$XPathParser$result;
  2376           return parser_result;
  2371 
  2377 
  2372           /*. . . . . . . . . . . . . . . . . . . .*/
  2378           /*. . . . . . . . . . . . . . . . . . . .*/
  2373           case 58: // MultiplicativeExpr ::= MultiplicativeExpr MOD UnaryExpr
  2379           case 58: // MultiplicativeExpr ::= MultiplicativeExpr MOD UnaryExpr
  2374             {
  2380             {
  2375               Expression RESULT = null;
  2381               Expression RESULT = null;
  2376                 int meleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  2382                 int meleft = (parser_stack.get(parser_top-2)).left;
  2377                 int meright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  2383                 int meright = (parser_stack.get(parser_top-2)).right;
  2378                 Expression me = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  2384                 Expression me = (Expression)((Symbol) parser_stack.get(parser_top-2)).value;
  2379                 int ueleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2385                 int ueleft = (parser_stack.get(parser_top-0)).left;
  2380                 int ueright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2386                 int ueright = (parser_stack.get(parser_top-0)).right;
  2381                 Expression ue = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2387                 Expression ue = (Expression)((Symbol) parser_stack.get(parser_top-0)).value;
  2382                  RESULT = new BinOpExpr(BinOpExpr.MOD, me, ue);
  2388                  RESULT = new BinOpExpr(BinOpExpr.MOD, me, ue);
  2383               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(13/*MultiplicativeExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2389               parser_result = new Symbol(13/*MultiplicativeExpr*/, (parser_stack.get(parser_top-2)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2384             }
  2390             }
  2385           return CUP$XPathParser$result;
  2391           return parser_result;
  2386 
  2392 
  2387           /*. . . . . . . . . . . . . . . . . . . .*/
  2393           /*. . . . . . . . . . . . . . . . . . . .*/
  2388           case 57: // MultiplicativeExpr ::= MultiplicativeExpr DIV UnaryExpr
  2394           case 57: // MultiplicativeExpr ::= MultiplicativeExpr DIV UnaryExpr
  2389             {
  2395             {
  2390               Expression RESULT = null;
  2396               Expression RESULT = null;
  2391                 int meleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  2397                 int meleft = (parser_stack.get(parser_top-2)).left;
  2392                 int meright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  2398                 int meright = (parser_stack.get(parser_top-2)).right;
  2393                 Expression me = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  2399                 Expression me = (Expression)((Symbol) parser_stack.get(parser_top-2)).value;
  2394                 int ueleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2400                 int ueleft = (parser_stack.get(parser_top-0)).left;
  2395                 int ueright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2401                 int ueright = (parser_stack.get(parser_top-0)).right;
  2396                 Expression ue = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2402                 Expression ue = (Expression)((Symbol) parser_stack.get(parser_top-0)).value;
  2397                  RESULT = new BinOpExpr(BinOpExpr.DIV, me, ue);
  2403                  RESULT = new BinOpExpr(BinOpExpr.DIV, me, ue);
  2398               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(13/*MultiplicativeExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2404               parser_result = new Symbol(13/*MultiplicativeExpr*/, (parser_stack.get(parser_top-2)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2399             }
  2405             }
  2400           return CUP$XPathParser$result;
  2406           return parser_result;
  2401 
  2407 
  2402           /*. . . . . . . . . . . . . . . . . . . .*/
  2408           /*. . . . . . . . . . . . . . . . . . . .*/
  2403           case 56: // MultiplicativeExpr ::= MultiplicativeExpr STAR UnaryExpr
  2409           case 56: // MultiplicativeExpr ::= MultiplicativeExpr STAR UnaryExpr
  2404             {
  2410             {
  2405               Expression RESULT = null;
  2411               Expression RESULT = null;
  2406                 int meleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  2412                 int meleft = (parser_stack.get(parser_top-2)).left;
  2407                 int meright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  2413                 int meright = (parser_stack.get(parser_top-2)).right;
  2408                 Expression me = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  2414                 Expression me = (Expression)((Symbol) parser_stack.get(parser_top-2)).value;
  2409                 int ueleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2415                 int ueleft = (parser_stack.get(parser_top-0)).left;
  2410                 int ueright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2416                 int ueright = (parser_stack.get(parser_top-0)).right;
  2411                 Expression ue = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2417                 Expression ue = (Expression)((Symbol) parser_stack.get(parser_top-0)).value;
  2412                  RESULT = new BinOpExpr(BinOpExpr.TIMES, me, ue);
  2418                  RESULT = new BinOpExpr(BinOpExpr.TIMES, me, ue);
  2413               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(13/*MultiplicativeExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2419               parser_result = new Symbol(13/*MultiplicativeExpr*/, (parser_stack.get(parser_top-2)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2414             }
  2420             }
  2415           return CUP$XPathParser$result;
  2421           return parser_result;
  2416 
  2422 
  2417           /*. . . . . . . . . . . . . . . . . . . .*/
  2423           /*. . . . . . . . . . . . . . . . . . . .*/
  2418           case 55: // MultiplicativeExpr ::= UnaryExpr
  2424           case 55: // MultiplicativeExpr ::= UnaryExpr
  2419             {
  2425             {
  2420               Expression RESULT = null;
  2426               Expression RESULT = null;
  2421                 int ueleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2427                 int ueleft = (parser_stack.get(parser_top-0)).left;
  2422                 int ueright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2428                 int ueright = (parser_stack.get(parser_top-0)).right;
  2423                 Expression ue = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2429                 Expression ue = (Expression)((Symbol) parser_stack.get(parser_top-0)).value;
  2424                  RESULT = ue;
  2430                  RESULT = ue;
  2425               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(13/*MultiplicativeExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2431               parser_result = new Symbol(13/*MultiplicativeExpr*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2426             }
  2432             }
  2427           return CUP$XPathParser$result;
  2433           return parser_result;
  2428 
  2434 
  2429           /*. . . . . . . . . . . . . . . . . . . .*/
  2435           /*. . . . . . . . . . . . . . . . . . . .*/
  2430           case 54: // AdditiveExpr ::= AdditiveExpr MINUS MultiplicativeExpr
  2436           case 54: // AdditiveExpr ::= AdditiveExpr MINUS MultiplicativeExpr
  2431             {
  2437             {
  2432               Expression RESULT = null;
  2438               Expression RESULT = null;
  2433                 int aeleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  2439                 int aeleft = (parser_stack.get(parser_top-2)).left;
  2434                 int aeright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  2440                 int aeright = (parser_stack.get(parser_top-2)).right;
  2435                 Expression ae = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  2441                 Expression ae = (Expression)((Symbol) parser_stack.get(parser_top-2)).value;
  2436                 int meleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2442                 int meleft = (parser_stack.get(parser_top-0)).left;
  2437                 int meright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2443                 int meright = (parser_stack.get(parser_top-0)).right;
  2438                 Expression me = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2444                 Expression me = (Expression)((Symbol) parser_stack.get(parser_top-0)).value;
  2439                  RESULT = new BinOpExpr(BinOpExpr.MINUS, ae, me);
  2445                  RESULT = new BinOpExpr(BinOpExpr.MINUS, ae, me);
  2440               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(12/*AdditiveExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2446               parser_result = new Symbol(12/*AdditiveExpr*/, (parser_stack.get(parser_top-2)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2441             }
  2447             }
  2442           return CUP$XPathParser$result;
  2448           return parser_result;
  2443 
  2449 
  2444           /*. . . . . . . . . . . . . . . . . . . .*/
  2450           /*. . . . . . . . . . . . . . . . . . . .*/
  2445           case 53: // AdditiveExpr ::= AdditiveExpr PLUS MultiplicativeExpr
  2451           case 53: // AdditiveExpr ::= AdditiveExpr PLUS MultiplicativeExpr
  2446             {
  2452             {
  2447               Expression RESULT = null;
  2453               Expression RESULT = null;
  2448                 int aeleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  2454                 int aeleft = (parser_stack.get(parser_top-2)).left;
  2449                 int aeright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  2455                 int aeright = (parser_stack.get(parser_top-2)).right;
  2450                 Expression ae = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  2456                 Expression ae = (Expression)((Symbol) parser_stack.get(parser_top-2)).value;
  2451                 int meleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2457                 int meleft = (parser_stack.get(parser_top-0)).left;
  2452                 int meright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2458                 int meright = (parser_stack.get(parser_top-0)).right;
  2453                 Expression me = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2459                 Expression me = (Expression)((Symbol) parser_stack.get(parser_top-0)).value;
  2454                  RESULT = new BinOpExpr(BinOpExpr.PLUS, ae, me);
  2460                  RESULT = new BinOpExpr(BinOpExpr.PLUS, ae, me);
  2455               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(12/*AdditiveExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2461               parser_result = new Symbol(12/*AdditiveExpr*/, (parser_stack.get(parser_top-2)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2456             }
  2462             }
  2457           return CUP$XPathParser$result;
  2463           return parser_result;
  2458 
  2464 
  2459           /*. . . . . . . . . . . . . . . . . . . .*/
  2465           /*. . . . . . . . . . . . . . . . . . . .*/
  2460           case 52: // AdditiveExpr ::= MultiplicativeExpr
  2466           case 52: // AdditiveExpr ::= MultiplicativeExpr
  2461             {
  2467             {
  2462               Expression RESULT = null;
  2468               Expression RESULT = null;
  2463                 int meleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2469                 int meleft = (parser_stack.get(parser_top-0)).left;
  2464                 int meright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2470                 int meright = (parser_stack.get(parser_top-0)).right;
  2465                 Expression me = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2471                 Expression me = (Expression)((Symbol) parser_stack.get(parser_top-0)).value;
  2466                  RESULT = me;
  2472                  RESULT = me;
  2467               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(12/*AdditiveExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2473               parser_result = new Symbol(12/*AdditiveExpr*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2468             }
  2474             }
  2469           return CUP$XPathParser$result;
  2475           return parser_result;
  2470 
  2476 
  2471           /*. . . . . . . . . . . . . . . . . . . .*/
  2477           /*. . . . . . . . . . . . . . . . . . . .*/
  2472           case 51: // RelationalExpr ::= RelationalExpr GE AdditiveExpr
  2478           case 51: // RelationalExpr ::= RelationalExpr GE AdditiveExpr
  2473             {
  2479             {
  2474               Expression RESULT = null;
  2480               Expression RESULT = null;
  2475                 int releft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  2481                 int releft = (parser_stack.get(parser_top-2)).left;
  2476                 int reright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  2482                 int reright = (parser_stack.get(parser_top-2)).right;
  2477                 Expression re = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  2483                 Expression re = (Expression)((Symbol) parser_stack.get(parser_top-2)).value;
  2478                 int aeleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2484                 int aeleft = (parser_stack.get(parser_top-0)).left;
  2479                 int aeright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2485                 int aeright = (parser_stack.get(parser_top-0)).right;
  2480                 Expression ae = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2486                 Expression ae = (Expression)((Symbol) parser_stack.get(parser_top-0)).value;
  2481                  RESULT = new RelationalExpr(Operators.GE, re, ae);
  2487                  RESULT = new RelationalExpr(Operators.GE, re, ae);
  2482               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(11/*RelationalExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2488               parser_result = new Symbol(11/*RelationalExpr*/, (parser_stack.get(parser_top-2)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2483             }
  2489             }
  2484           return CUP$XPathParser$result;
  2490           return parser_result;
  2485 
  2491 
  2486           /*. . . . . . . . . . . . . . . . . . . .*/
  2492           /*. . . . . . . . . . . . . . . . . . . .*/
  2487           case 50: // RelationalExpr ::= RelationalExpr LE AdditiveExpr
  2493           case 50: // RelationalExpr ::= RelationalExpr LE AdditiveExpr
  2488             {
  2494             {
  2489               Expression RESULT = null;
  2495               Expression RESULT = null;
  2490                 int releft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  2496                 int releft = (parser_stack.get(parser_top-2)).left;
  2491                 int reright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  2497                 int reright = (parser_stack.get(parser_top-2)).right;
  2492                 Expression re = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  2498                 Expression re = (Expression)((Symbol) parser_stack.get(parser_top-2)).value;
  2493                 int aeleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2499                 int aeleft = (parser_stack.get(parser_top-0)).left;
  2494                 int aeright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2500                 int aeright = (parser_stack.get(parser_top-0)).right;
  2495                 Expression ae = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2501                 Expression ae = (Expression)((Symbol) parser_stack.get(parser_top-0)).value;
  2496                  RESULT = new RelationalExpr(Operators.LE, re, ae);
  2502                  RESULT = new RelationalExpr(Operators.LE, re, ae);
  2497               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(11/*RelationalExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2503               parser_result = new Symbol(11/*RelationalExpr*/, (parser_stack.get(parser_top-2)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2498             }
  2504             }
  2499           return CUP$XPathParser$result;
  2505           return parser_result;
  2500 
  2506 
  2501           /*. . . . . . . . . . . . . . . . . . . .*/
  2507           /*. . . . . . . . . . . . . . . . . . . .*/
  2502           case 49: // RelationalExpr ::= RelationalExpr GT AdditiveExpr
  2508           case 49: // RelationalExpr ::= RelationalExpr GT AdditiveExpr
  2503             {
  2509             {
  2504               Expression RESULT = null;
  2510               Expression RESULT = null;
  2505                 int releft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  2511                 int releft = (parser_stack.get(parser_top-2)).left;
  2506                 int reright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  2512                 int reright = (parser_stack.get(parser_top-2)).right;
  2507                 Expression re = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  2513                 Expression re = (Expression)((Symbol) parser_stack.get(parser_top-2)).value;
  2508                 int aeleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2514                 int aeleft = (parser_stack.get(parser_top-0)).left;
  2509                 int aeright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2515                 int aeright = (parser_stack.get(parser_top-0)).right;
  2510                 Expression ae = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2516                 Expression ae = (Expression)((Symbol) parser_stack.get(parser_top-0)).value;
  2511                  RESULT = new RelationalExpr(Operators.GT, re, ae);
  2517                  RESULT = new RelationalExpr(Operators.GT, re, ae);
  2512               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(11/*RelationalExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2518               parser_result = new Symbol(11/*RelationalExpr*/, (parser_stack.get(parser_top-2)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2513             }
  2519             }
  2514           return CUP$XPathParser$result;
  2520           return parser_result;
  2515 
  2521 
  2516           /*. . . . . . . . . . . . . . . . . . . .*/
  2522           /*. . . . . . . . . . . . . . . . . . . .*/
  2517           case 48: // RelationalExpr ::= RelationalExpr LT AdditiveExpr
  2523           case 48: // RelationalExpr ::= RelationalExpr LT AdditiveExpr
  2518             {
  2524             {
  2519               Expression RESULT = null;
  2525               Expression RESULT = null;
  2520                 int releft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  2526                 int releft = (parser_stack.get(parser_top-2)).left;
  2521                 int reright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  2527                 int reright = (parser_stack.get(parser_top-2)).right;
  2522                 Expression re = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  2528                 Expression re = (Expression)((Symbol) parser_stack.get(parser_top-2)).value;
  2523                 int aeleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2529                 int aeleft = (parser_stack.get(parser_top-0)).left;
  2524                 int aeright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2530                 int aeright = (parser_stack.get(parser_top-0)).right;
  2525                 Expression ae = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2531                 Expression ae = (Expression)((Symbol) parser_stack.get(parser_top-0)).value;
  2526                  RESULT = new RelationalExpr(Operators.LT, re, ae);
  2532                  RESULT = new RelationalExpr(Operators.LT, re, ae);
  2527               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(11/*RelationalExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2533               parser_result = new Symbol(11/*RelationalExpr*/, (parser_stack.get(parser_top-2)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2528             }
  2534             }
  2529           return CUP$XPathParser$result;
  2535           return parser_result;
  2530 
  2536 
  2531           /*. . . . . . . . . . . . . . . . . . . .*/
  2537           /*. . . . . . . . . . . . . . . . . . . .*/
  2532           case 47: // RelationalExpr ::= AdditiveExpr
  2538           case 47: // RelationalExpr ::= AdditiveExpr
  2533             {
  2539             {
  2534               Expression RESULT = null;
  2540               Expression RESULT = null;
  2535                 int aeleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2541                 int aeleft = (parser_stack.get(parser_top-0)).left;
  2536                 int aeright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2542                 int aeright = (parser_stack.get(parser_top-0)).right;
  2537                 Expression ae = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2543                 Expression ae = (Expression)((Symbol) parser_stack.get(parser_top-0)).value;
  2538                  RESULT = ae;
  2544                  RESULT = ae;
  2539               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(11/*RelationalExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2545               parser_result = new Symbol(11/*RelationalExpr*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2540             }
  2546             }
  2541           return CUP$XPathParser$result;
  2547           return parser_result;
  2542 
  2548 
  2543           /*. . . . . . . . . . . . . . . . . . . .*/
  2549           /*. . . . . . . . . . . . . . . . . . . .*/
  2544           case 46: // EqualityExpr ::= EqualityExpr NE RelationalExpr
  2550           case 46: // EqualityExpr ::= EqualityExpr NE RelationalExpr
  2545             {
  2551             {
  2546               Expression RESULT = null;
  2552               Expression RESULT = null;
  2547                 int eeleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  2553                 int eeleft = (parser_stack.get(parser_top-2)).left;
  2548                 int eeright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  2554                 int eeright = (parser_stack.get(parser_top-2)).right;
  2549                 Expression ee = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  2555                 Expression ee = (Expression)((Symbol) parser_stack.get(parser_top-2)).value;
  2550                 int releft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2556                 int releft = (parser_stack.get(parser_top-0)).left;
  2551                 int reright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2557                 int reright = (parser_stack.get(parser_top-0)).right;
  2552                 Expression re = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2558                 Expression re = (Expression)((Symbol) parser_stack.get(parser_top-0)).value;
  2553                  RESULT = new EqualityExpr(Operators.NE, ee, re);
  2559                  RESULT = new EqualityExpr(Operators.NE, ee, re);
  2554               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(10/*EqualityExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2560               parser_result = new Symbol(10/*EqualityExpr*/, (parser_stack.get(parser_top-2)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2555             }
  2561             }
  2556           return CUP$XPathParser$result;
  2562           return parser_result;
  2557 
  2563 
  2558           /*. . . . . . . . . . . . . . . . . . . .*/
  2564           /*. . . . . . . . . . . . . . . . . . . .*/
  2559           case 45: // EqualityExpr ::= EqualityExpr EQ RelationalExpr
  2565           case 45: // EqualityExpr ::= EqualityExpr EQ RelationalExpr
  2560             {
  2566             {
  2561               Expression RESULT = null;
  2567               Expression RESULT = null;
  2562                 int eeleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  2568                 int eeleft = (parser_stack.get(parser_top-2)).left;
  2563                 int eeright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  2569                 int eeright = (parser_stack.get(parser_top-2)).right;
  2564                 Expression ee = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  2570                 Expression ee = (Expression)((Symbol) parser_stack.get(parser_top-2)).value;
  2565                 int releft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2571                 int releft = (parser_stack.get(parser_top-0)).left;
  2566                 int reright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2572                 int reright = (parser_stack.get(parser_top-0)).right;
  2567                 Expression re = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2573                 Expression re = (Expression)((Symbol) parser_stack.get(parser_top-0)).value;
  2568                  RESULT = new EqualityExpr(Operators.EQ, ee, re);
  2574                  RESULT = new EqualityExpr(Operators.EQ, ee, re);
  2569               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(10/*EqualityExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2575               parser_result = new Symbol(10/*EqualityExpr*/, (parser_stack.get(parser_top-2)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2570             }
  2576             }
  2571           return CUP$XPathParser$result;
  2577           return parser_result;
  2572 
  2578 
  2573           /*. . . . . . . . . . . . . . . . . . . .*/
  2579           /*. . . . . . . . . . . . . . . . . . . .*/
  2574           case 44: // EqualityExpr ::= RelationalExpr
  2580           case 44: // EqualityExpr ::= RelationalExpr
  2575             {
  2581             {
  2576               Expression RESULT = null;
  2582               Expression RESULT = null;
  2577                 int releft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2583                 int releft = (parser_stack.get(parser_top-0)).left;
  2578                 int reright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2584                 int reright = (parser_stack.get(parser_top-0)).right;
  2579                 Expression re = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2585                 Expression re = (Expression)((Symbol) parser_stack.get(parser_top-0)).value;
  2580                  RESULT = re;
  2586                  RESULT = re;
  2581               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(10/*EqualityExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2587               parser_result = new Symbol(10/*EqualityExpr*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2582             }
  2588             }
  2583           return CUP$XPathParser$result;
  2589           return parser_result;
  2584 
  2590 
  2585           /*. . . . . . . . . . . . . . . . . . . .*/
  2591           /*. . . . . . . . . . . . . . . . . . . .*/
  2586           case 43: // AndExpr ::= AndExpr AND EqualityExpr
  2592           case 43: // AndExpr ::= AndExpr AND EqualityExpr
  2587             {
  2593             {
  2588               Expression RESULT = null;
  2594               Expression RESULT = null;
  2589                 int aeleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  2595                 int aeleft = (parser_stack.get(parser_top-2)).left;
  2590                 int aeright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  2596                 int aeright = (parser_stack.get(parser_top-2)).right;
  2591                 Expression ae = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  2597                 Expression ae = (Expression)((Symbol) parser_stack.get(parser_top-2)).value;
  2592                 int eeleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2598                 int eeleft = (parser_stack.get(parser_top-0)).left;
  2593                 int eeright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2599                 int eeright = (parser_stack.get(parser_top-0)).right;
  2594                 Expression ee = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2600                 Expression ee = (Expression)((Symbol) parser_stack.get(parser_top-0)).value;
  2595                  RESULT = new LogicalExpr(LogicalExpr.AND, ae, ee);
  2601                  RESULT = new LogicalExpr(LogicalExpr.AND, ae, ee);
  2596               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(9/*AndExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2602               parser_result = new Symbol(9/*AndExpr*/, (parser_stack.get(parser_top-2)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2597             }
  2603             }
  2598           return CUP$XPathParser$result;
  2604           return parser_result;
  2599 
  2605 
  2600           /*. . . . . . . . . . . . . . . . . . . .*/
  2606           /*. . . . . . . . . . . . . . . . . . . .*/
  2601           case 42: // AndExpr ::= EqualityExpr
  2607           case 42: // AndExpr ::= EqualityExpr
  2602             {
  2608             {
  2603               Expression RESULT = null;
  2609               Expression RESULT = null;
  2604                 int eleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2610                 int eleft = (parser_stack.get(parser_top-0)).left;
  2605                 int eright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2611                 int eright = (parser_stack.get(parser_top-0)).right;
  2606                 Expression e = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2612                 Expression e = (Expression)((Symbol) parser_stack.get(parser_top-0)).value;
  2607                  RESULT = e;
  2613                  RESULT = e;
  2608               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(9/*AndExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2614               parser_result = new Symbol(9/*AndExpr*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2609             }
  2615             }
  2610           return CUP$XPathParser$result;
  2616           return parser_result;
  2611 
  2617 
  2612           /*. . . . . . . . . . . . . . . . . . . .*/
  2618           /*. . . . . . . . . . . . . . . . . . . .*/
  2613           case 41: // OrExpr ::= OrExpr OR AndExpr
  2619           case 41: // OrExpr ::= OrExpr OR AndExpr
  2614             {
  2620             {
  2615               Expression RESULT = null;
  2621               Expression RESULT = null;
  2616                 int oeleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  2622                 int oeleft = (parser_stack.get(parser_top-2)).left;
  2617                 int oeright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  2623                 int oeright = (parser_stack.get(parser_top-2)).right;
  2618                 Expression oe = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  2624                 Expression oe = (Expression)((Symbol) parser_stack.get(parser_top-2)).value;
  2619                 int aeleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2625                 int aeleft = (parser_stack.get(parser_top-0)).left;
  2620                 int aeright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2626                 int aeright = (parser_stack.get(parser_top-0)).right;
  2621                 Expression ae = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2627                 Expression ae = (Expression)((Symbol) parser_stack.get(parser_top-0)).value;
  2622                  RESULT = new LogicalExpr(LogicalExpr.OR, oe, ae);
  2628                  RESULT = new LogicalExpr(LogicalExpr.OR, oe, ae);
  2623               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(8/*OrExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2629               parser_result = new Symbol(8/*OrExpr*/, (parser_stack.get(parser_top-2)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2624             }
  2630             }
  2625           return CUP$XPathParser$result;
  2631           return parser_result;
  2626 
  2632 
  2627           /*. . . . . . . . . . . . . . . . . . . .*/
  2633           /*. . . . . . . . . . . . . . . . . . . .*/
  2628           case 40: // OrExpr ::= AndExpr
  2634           case 40: // OrExpr ::= AndExpr
  2629             {
  2635             {
  2630               Expression RESULT = null;
  2636               Expression RESULT = null;
  2631                 int aeleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2637                 int aeleft = (parser_stack.get(parser_top-0)).left;
  2632                 int aeright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2638                 int aeright = (parser_stack.get(parser_top-0)).right;
  2633                 Expression ae = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2639                 Expression ae = (Expression)((Symbol) parser_stack.get(parser_top-0)).value;
  2634                  RESULT = ae;
  2640                  RESULT = ae;
  2635               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(8/*OrExpr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2641               parser_result = new Symbol(8/*OrExpr*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2636             }
  2642             }
  2637           return CUP$XPathParser$result;
  2643           return parser_result;
  2638 
  2644 
  2639           /*. . . . . . . . . . . . . . . . . . . .*/
  2645           /*. . . . . . . . . . . . . . . . . . . .*/
  2640           case 39: // Expr ::= OrExpr
  2646           case 39: // Expr ::= OrExpr
  2641             {
  2647             {
  2642               Expression RESULT = null;
  2648               Expression RESULT = null;
  2643                 int exleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2649                 int exleft = (parser_stack.get(parser_top-0)).left;
  2644                 int exright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2650                 int exright = (parser_stack.get(parser_top-0)).right;
  2645                 Expression ex = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2651                 Expression ex = (Expression)((Symbol) parser_stack.get(parser_top-0)).value;
  2646                  RESULT = ex;
  2652                  RESULT = ex;
  2647               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(2/*Expr*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2653               parser_result = new Symbol(2/*Expr*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2648             }
  2654             }
  2649           return CUP$XPathParser$result;
  2655           return parser_result;
  2650 
  2656 
  2651           /*. . . . . . . . . . . . . . . . . . . .*/
  2657           /*. . . . . . . . . . . . . . . . . . . .*/
  2652           case 38: // Predicate ::= LBRACK Expr RBRACK
  2658           case 38: // Predicate ::= LBRACK Expr RBRACK
  2653             {
  2659             {
  2654               Expression RESULT = null;
  2660               Expression RESULT = null;
  2655                 int eleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
  2661                 int eleft = (parser_stack.get(parser_top-1)).left;
  2656                 int eright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
  2662                 int eright = (parser_stack.get(parser_top-1)).right;
  2657                 Expression e = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
  2663                 Expression e = (Expression)((Symbol) parser_stack.get(parser_top-1)).value;
  2658 
  2664 
  2659                 RESULT = new Predicate(e);
  2665                 RESULT = new Predicate(e);
  2660 
  2666 
  2661               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(5/*Predicate*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2667               parser_result = new Symbol(5/*Predicate*/, (parser_stack.get(parser_top-2)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2662             }
  2668             }
  2663           return CUP$XPathParser$result;
  2669           return parser_result;
  2664 
  2670 
  2665           /*. . . . . . . . . . . . . . . . . . . .*/
  2671           /*. . . . . . . . . . . . . . . . . . . .*/
  2666           case 37: // Predicates ::= Predicate Predicates
  2672           case 37: // Predicates ::= Predicate Predicates
  2667             {
  2673             {
  2668               Vector RESULT = null;
  2674                 List<Expression> RESULT = null;
  2669                 int pleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
  2675                 int pleft = (parser_stack.get(parser_top-1)).left;
  2670                 int pright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
  2676                 int pright = (parser_stack.get(parser_top-1)).right;
  2671                 Expression p = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
  2677                 Expression p = (Expression)((Symbol) parser_stack.get(parser_top-1)).value;
  2672                 int ppleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2678                 int ppleft = (parser_stack.get(parser_top-0)).left;
  2673                 int ppright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2679                 int ppright = (parser_stack.get(parser_top-0)).right;
  2674                 Vector pp = (Vector)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2680                 @SuppressWarnings("unchecked")
  2675                  pp.insertElementAt(p, 0); RESULT = pp;
  2681                 List<Expression> pp = (ArrayList<Expression>)((Symbol) parser_stack.get(parser_top-0)).value;
  2676               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(35/*Predicates*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2682                 pp.add(0, p); RESULT = pp;
  2677             }
  2683               parser_result = new Symbol(35/*Predicates*/, (parser_stack.get(parser_top-1)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2678           return CUP$XPathParser$result;
  2684             }
       
  2685           return parser_result;
  2679 
  2686 
  2680           /*. . . . . . . . . . . . . . . . . . . .*/
  2687           /*. . . . . . . . . . . . . . . . . . . .*/
  2681           case 36: // Predicates ::= Predicate
  2688           case 36: // Predicates ::= Predicate
  2682             {
  2689             {
  2683               Vector RESULT = null;
  2690                 List<Expression> RESULT = null;
  2684                 int pleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2691                 int pleft = (parser_stack.get(parser_top-0)).left;
  2685                 int pright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2692                 int pright = (parser_stack.get(parser_top-0)).right;
  2686                 Expression p = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2693                 Expression p = (Expression)((Symbol) parser_stack.get(parser_top-0)).value;
  2687 
  2694 
  2688                 Vector temp = new Vector();
  2695                 List<Expression> temp = new ArrayList<>();
  2689                 temp.addElement(p);
  2696                 temp.add(p);
  2690                 RESULT = temp;
  2697                 RESULT = temp;
  2691 
  2698 
  2692               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(35/*Predicates*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2699               parser_result = new Symbol(35/*Predicates*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2693             }
  2700             }
  2694           return CUP$XPathParser$result;
  2701           return parser_result;
  2695 
  2702 
  2696           /*. . . . . . . . . . . . . . . . . . . .*/
  2703           /*. . . . . . . . . . . . . . . . . . . .*/
  2697           case 35: // ChildOrAttributeAxisSpecifier ::= ATTRIBUTE DCOLON
  2704           case 35: // ChildOrAttributeAxisSpecifier ::= ATTRIBUTE DCOLON
  2698             {
  2705             {
  2699               Integer RESULT = null;
  2706               Integer RESULT = null;
  2700                  RESULT = Integer.valueOf(Axis.ATTRIBUTE);
  2707                  RESULT = Integer.valueOf(Axis.ATTRIBUTE);
  2701               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(42/*ChildOrAttributeAxisSpecifier*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2708               parser_result = new Symbol(42/*ChildOrAttributeAxisSpecifier*/, (parser_stack.get(parser_top-1)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2702             }
  2709             }
  2703           return CUP$XPathParser$result;
  2710           return parser_result;
  2704 
  2711 
  2705           /*. . . . . . . . . . . . . . . . . . . .*/
  2712           /*. . . . . . . . . . . . . . . . . . . .*/
  2706           case 34: // ChildOrAttributeAxisSpecifier ::= CHILD DCOLON
  2713           case 34: // ChildOrAttributeAxisSpecifier ::= CHILD DCOLON
  2707             {
  2714             {
  2708               Integer RESULT = null;
  2715               Integer RESULT = null;
  2709                  RESULT = Integer.valueOf(Axis.CHILD);
  2716                  RESULT = Integer.valueOf(Axis.CHILD);
  2710               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(42/*ChildOrAttributeAxisSpecifier*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2717               parser_result = new Symbol(42/*ChildOrAttributeAxisSpecifier*/, (parser_stack.get(parser_top-1)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2711             }
  2718             }
  2712           return CUP$XPathParser$result;
  2719           return parser_result;
  2713 
  2720 
  2714           /*. . . . . . . . . . . . . . . . . . . .*/
  2721           /*. . . . . . . . . . . . . . . . . . . .*/
  2715           case 33: // ChildOrAttributeAxisSpecifier ::= ATSIGN
  2722           case 33: // ChildOrAttributeAxisSpecifier ::= ATSIGN
  2716             {
  2723             {
  2717               Integer RESULT = null;
  2724               Integer RESULT = null;
  2718                  RESULT = Integer.valueOf(Axis.ATTRIBUTE);
  2725                  RESULT = Integer.valueOf(Axis.ATTRIBUTE);
  2719               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(42/*ChildOrAttributeAxisSpecifier*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2726               parser_result = new Symbol(42/*ChildOrAttributeAxisSpecifier*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2720             }
  2727             }
  2721           return CUP$XPathParser$result;
  2728           return parser_result;
  2722 
  2729 
  2723           /*. . . . . . . . . . . . . . . . . . . .*/
  2730           /*. . . . . . . . . . . . . . . . . . . .*/
  2724           case 32: // NameTestPattern ::= QName
  2731           case 32: // NameTestPattern ::= QName
  2725             {
  2732             {
  2726               Object RESULT = null;
  2733               Object RESULT = null;
  2727                 int qnleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2734                 int qnleft = (parser_stack.get(parser_top-0)).left;
  2728                 int qnright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2735                 int qnright = (parser_stack.get(parser_top-0)).right;
  2729                 QName qn = (QName)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2736                 QName qn = (QName)((Symbol) parser_stack.get(parser_top-0)).value;
  2730                  RESULT = qn;
  2737                  RESULT = qn;
  2731               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(34/*NameTestPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2738               parser_result = new Symbol(34/*NameTestPattern*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2732             }
  2739             }
  2733           return CUP$XPathParser$result;
  2740           return parser_result;
  2734 
  2741 
  2735           /*. . . . . . . . . . . . . . . . . . . .*/
  2742           /*. . . . . . . . . . . . . . . . . . . .*/
  2736           case 31: // NameTestPattern ::= STAR
  2743           case 31: // NameTestPattern ::= STAR
  2737             {
  2744             {
  2738               Object RESULT = null;
  2745               Object RESULT = null;
  2739                  RESULT = null;
  2746                  RESULT = null;
  2740               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(34/*NameTestPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2747               parser_result = new Symbol(34/*NameTestPattern*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2741             }
  2748             }
  2742           return CUP$XPathParser$result;
  2749           return parser_result;
  2743 
  2750 
  2744           /*. . . . . . . . . . . . . . . . . . . .*/
  2751           /*. . . . . . . . . . . . . . . . . . . .*/
  2745           case 30: // NodeTestPattern ::= PI
  2752           case 30: // NodeTestPattern ::= PI
  2746             {
  2753             {
  2747               Object RESULT = null;
  2754               Object RESULT = null;
  2748                  RESULT = Integer.valueOf(NodeTest.PI);
  2755                  RESULT = Integer.valueOf(NodeTest.PI);
  2749               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(33/*NodeTestPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2756               parser_result = new Symbol(33/*NodeTestPattern*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2750             }
  2757             }
  2751           return CUP$XPathParser$result;
  2758           return parser_result;
  2752 
  2759 
  2753           /*. . . . . . . . . . . . . . . . . . . .*/
  2760           /*. . . . . . . . . . . . . . . . . . . .*/
  2754           case 29: // NodeTestPattern ::= COMMENT
  2761           case 29: // NodeTestPattern ::= COMMENT
  2755             {
  2762             {
  2756               Object RESULT = null;
  2763               Object RESULT = null;
  2757                  RESULT = Integer.valueOf(NodeTest.COMMENT);
  2764                  RESULT = Integer.valueOf(NodeTest.COMMENT);
  2758               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(33/*NodeTestPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2765               parser_result = new Symbol(33/*NodeTestPattern*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2759             }
  2766             }
  2760           return CUP$XPathParser$result;
  2767           return parser_result;
  2761 
  2768 
  2762           /*. . . . . . . . . . . . . . . . . . . .*/
  2769           /*. . . . . . . . . . . . . . . . . . . .*/
  2763           case 28: // NodeTestPattern ::= TEXT
  2770           case 28: // NodeTestPattern ::= TEXT
  2764             {
  2771             {
  2765               Object RESULT = null;
  2772               Object RESULT = null;
  2766                  RESULT = Integer.valueOf(NodeTest.TEXT);
  2773                  RESULT = Integer.valueOf(NodeTest.TEXT);
  2767               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(33/*NodeTestPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2774               parser_result = new Symbol(33/*NodeTestPattern*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2768             }
  2775             }
  2769           return CUP$XPathParser$result;
  2776           return parser_result;
  2770 
  2777 
  2771           /*. . . . . . . . . . . . . . . . . . . .*/
  2778           /*. . . . . . . . . . . . . . . . . . . .*/
  2772           case 27: // NodeTestPattern ::= NODE
  2779           case 27: // NodeTestPattern ::= NODE
  2773             {
  2780             {
  2774               Object RESULT = null;
  2781               Object RESULT = null;
  2775                  RESULT = Integer.valueOf(NodeTest.ANODE);
  2782                  RESULT = Integer.valueOf(NodeTest.ANODE);
  2776               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(33/*NodeTestPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2783               parser_result = new Symbol(33/*NodeTestPattern*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2777             }
  2784             }
  2778           return CUP$XPathParser$result;
  2785           return parser_result;
  2779 
  2786 
  2780           /*. . . . . . . . . . . . . . . . . . . .*/
  2787           /*. . . . . . . . . . . . . . . . . . . .*/
  2781           case 26: // NodeTestPattern ::= NameTestPattern
  2788           case 26: // NodeTestPattern ::= NameTestPattern
  2782             {
  2789             {
  2783               Object RESULT = null;
  2790               Object RESULT = null;
  2784                 int ntleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2791                 int ntleft = (parser_stack.get(parser_top-0)).left;
  2785                 int ntright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2792                 int ntright = (parser_stack.get(parser_top-0)).right;
  2786                 Object nt = (Object)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2793                 Object nt = (Object)((Symbol) parser_stack.get(parser_top-0)).value;
  2787                  RESULT = nt;
  2794                  RESULT = nt;
  2788               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(33/*NodeTestPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2795               parser_result = new Symbol(33/*NodeTestPattern*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2789             }
  2796             }
  2790           return CUP$XPathParser$result;
  2797           return parser_result;
  2791 
  2798 
  2792           /*. . . . . . . . . . . . . . . . . . . .*/
  2799           /*. . . . . . . . . . . . . . . . . . . .*/
  2793           case 25: // StepPattern ::= ChildOrAttributeAxisSpecifier ProcessingInstructionPattern Predicates
  2800           case 25: // StepPattern ::= ChildOrAttributeAxisSpecifier ProcessingInstructionPattern Predicates
  2794             {
  2801             {
  2795               StepPattern RESULT = null;
  2802               StepPattern RESULT = null;
  2796                 int axisleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  2803                 int axisleft = (parser_stack.get(parser_top-2)).left;
  2797                 int axisright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  2804                 int axisright = (parser_stack.get(parser_top-2)).right;
  2798                 Integer axis = (Integer)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  2805                 Integer axis = (Integer)((Symbol) parser_stack.get(parser_top-2)).value;
  2799                 int pipleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
  2806                 int pipleft = (parser_stack.get(parser_top-1)).left;
  2800                 int pipright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
  2807                 int pipright = (parser_stack.get(parser_top-1)).right;
  2801                 StepPattern pip = (StepPattern)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
  2808                 StepPattern pip = (StepPattern)((Symbol) parser_stack.get(parser_top-1)).value;
  2802                 int ppleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2809                 int ppleft = (parser_stack.get(parser_top-0)).left;
  2803                 int ppright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2810                 int ppright = (parser_stack.get(parser_top-0)).right;
  2804                 Vector pp = (Vector)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2811                 @SuppressWarnings("unchecked")
       
  2812                 List<Predicate> pp = (ArrayList<Predicate>)((Symbol) parser_stack.get(parser_top-0)).value;
  2805 
  2813 
  2806                // TODO: report error if axis is attribute
  2814                // TODO: report error if axis is attribute
  2807                RESULT = (ProcessingInstructionPattern)pip.setPredicates(pp);
  2815                RESULT = (ProcessingInstructionPattern)pip.setPredicates(pp);
  2808 
  2816 
  2809               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(32/*StepPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2817               parser_result = new Symbol(32/*StepPattern*/, (parser_stack.get(parser_top-2)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2810             }
  2818             }
  2811           return CUP$XPathParser$result;
  2819           return parser_result;
  2812 
  2820 
  2813           /*. . . . . . . . . . . . . . . . . . . .*/
  2821           /*. . . . . . . . . . . . . . . . . . . .*/
  2814           case 24: // StepPattern ::= ChildOrAttributeAxisSpecifier ProcessingInstructionPattern
  2822           case 24: // StepPattern ::= ChildOrAttributeAxisSpecifier ProcessingInstructionPattern
  2815             {
  2823             {
  2816               StepPattern RESULT = null;
  2824               StepPattern RESULT = null;
  2817                 int axisleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
  2825                 int axisleft = (parser_stack.get(parser_top-1)).left;
  2818                 int axisright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
  2826                 int axisright = (parser_stack.get(parser_top-1)).right;
  2819                 Integer axis = (Integer)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
  2827                 Integer axis = (Integer)((Symbol) parser_stack.get(parser_top-1)).value;
  2820                 int pipleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2828                 int pipleft = (parser_stack.get(parser_top-0)).left;
  2821                 int pipright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2829                 int pipright = (parser_stack.get(parser_top-0)).right;
  2822                 StepPattern pip = (StepPattern)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2830                 StepPattern pip = (StepPattern)((Symbol) parser_stack.get(parser_top-0)).value;
  2823 
  2831 
  2824                RESULT = pip;    // TODO: report error if axis is attribute
  2832                RESULT = pip;    // TODO: report error if axis is attribute
  2825 
  2833 
  2826               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(32/*StepPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2834               parser_result = new Symbol(32/*StepPattern*/, (parser_stack.get(parser_top-1)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2827             }
  2835             }
  2828           return CUP$XPathParser$result;
  2836           return parser_result;
  2829 
  2837 
  2830           /*. . . . . . . . . . . . . . . . . . . .*/
  2838           /*. . . . . . . . . . . . . . . . . . . .*/
  2831           case 23: // StepPattern ::= ChildOrAttributeAxisSpecifier NodeTestPattern Predicates
  2839           case 23: // StepPattern ::= ChildOrAttributeAxisSpecifier NodeTestPattern Predicates
  2832             {
  2840             {
  2833               StepPattern RESULT = null;
  2841               StepPattern RESULT = null;
  2834                 int axisleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  2842                 int axisleft = (parser_stack.get(parser_top-2)).left;
  2835                 int axisright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  2843                 int axisright = (parser_stack.get(parser_top-2)).right;
  2836                 Integer axis = (Integer)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  2844                 Integer axis = (Integer)((Symbol) parser_stack.get(parser_top-2)).value;
  2837                 int ntleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
  2845                 int ntleft = (parser_stack.get(parser_top-1)).left;
  2838                 int ntright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
  2846                 int ntright = (parser_stack.get(parser_top-1)).right;
  2839                 Object nt = (Object)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
  2847                 Object nt = (Object)((Symbol) parser_stack.get(parser_top-1)).value;
  2840                 int ppleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2848                 int ppleft = (parser_stack.get(parser_top-0)).left;
  2841                 int ppright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2849                 int ppright = (parser_stack.get(parser_top-0)).right;
  2842                 Vector pp = (Vector)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2850                 @SuppressWarnings("unchecked")
       
  2851                List<Predicate>pp = (ArrayList<Predicate>)((Symbol) parser_stack.get(parser_top-0)).value;
  2843 
  2852 
  2844                RESULT = parser.createStepPattern(axis.intValue(), nt, pp);
  2853                RESULT = parser.createStepPattern(axis.intValue(), nt, pp);
  2845 
  2854 
  2846               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(32/*StepPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2855               parser_result = new Symbol(32/*StepPattern*/, (parser_stack.get(parser_top-2)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2847             }
  2856             }
  2848           return CUP$XPathParser$result;
  2857           return parser_result;
  2849 
  2858 
  2850           /*. . . . . . . . . . . . . . . . . . . .*/
  2859           /*. . . . . . . . . . . . . . . . . . . .*/
  2851           case 22: // StepPattern ::= ChildOrAttributeAxisSpecifier NodeTestPattern
  2860           case 22: // StepPattern ::= ChildOrAttributeAxisSpecifier NodeTestPattern
  2852             {
  2861             {
  2853               StepPattern RESULT = null;
  2862               StepPattern RESULT = null;
  2854                 int axisleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
  2863                 int axisleft = (parser_stack.get(parser_top-1)).left;
  2855                 int axisright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
  2864                 int axisright = (parser_stack.get(parser_top-1)).right;
  2856                 Integer axis = (Integer)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
  2865                 Integer axis = (Integer)((Symbol) parser_stack.get(parser_top-1)).value;
  2857                 int ntleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2866                 int ntleft = (parser_stack.get(parser_top-0)).left;
  2858                 int ntright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2867                 int ntright = (parser_stack.get(parser_top-0)).right;
  2859                 Object nt = (Object)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2868                 Object nt = (Object)((Symbol) parser_stack.get(parser_top-0)).value;
  2860 
  2869 
  2861                RESULT = parser.createStepPattern(axis.intValue(), nt, null);
  2870                RESULT = parser.createStepPattern(axis.intValue(), nt, null);
  2862 
  2871 
  2863               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(32/*StepPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2872               parser_result = new Symbol(32/*StepPattern*/, (parser_stack.get(parser_top-1)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2864             }
  2873             }
  2865           return CUP$XPathParser$result;
  2874           return parser_result;
  2866 
  2875 
  2867           /*. . . . . . . . . . . . . . . . . . . .*/
  2876           /*. . . . . . . . . . . . . . . . . . . .*/
  2868           case 21: // StepPattern ::= ProcessingInstructionPattern Predicates
  2877           case 21: // StepPattern ::= ProcessingInstructionPattern Predicates
  2869             {
  2878             {
  2870               StepPattern RESULT = null;
  2879               StepPattern RESULT = null;
  2871                 int pipleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
  2880                 int pipleft = (parser_stack.get(parser_top-1)).left;
  2872                 int pipright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
  2881                 int pipright = (parser_stack.get(parser_top-1)).right;
  2873                 StepPattern pip = (StepPattern)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
  2882                 StepPattern pip = (StepPattern)((Symbol) parser_stack.get(parser_top-1)).value;
  2874                 int ppleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2883                 int ppleft = (parser_stack.get(parser_top-0)).left;
  2875                 int ppright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2884                 int ppright = (parser_stack.get(parser_top-0)).right;
  2876                 Vector pp = (Vector)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2885                 @SuppressWarnings("unchecked")
       
  2886                 List<Predicate> pp = (ArrayList<Predicate>)((Symbol) parser_stack.get(parser_top-0)).value;
  2877                  RESULT = (ProcessingInstructionPattern)pip.setPredicates(pp);
  2887                  RESULT = (ProcessingInstructionPattern)pip.setPredicates(pp);
  2878               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(32/*StepPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2888               parser_result = new Symbol(32/*StepPattern*/, (parser_stack.get(parser_top-1)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2879             }
  2889             }
  2880           return CUP$XPathParser$result;
  2890           return parser_result;
  2881 
  2891 
  2882           /*. . . . . . . . . . . . . . . . . . . .*/
  2892           /*. . . . . . . . . . . . . . . . . . . .*/
  2883           case 20: // StepPattern ::= ProcessingInstructionPattern
  2893           case 20: // StepPattern ::= ProcessingInstructionPattern
  2884             {
  2894             {
  2885               StepPattern RESULT = null;
  2895               StepPattern RESULT = null;
  2886                 int pipleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2896                 int pipleft = (parser_stack.get(parser_top-0)).left;
  2887                 int pipright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2897                 int pipright = (parser_stack.get(parser_top-0)).right;
  2888                 StepPattern pip = (StepPattern)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2898                 StepPattern pip = (StepPattern)((Symbol) parser_stack.get(parser_top-0)).value;
  2889                  RESULT = pip;
  2899                  RESULT = pip;
  2890               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(32/*StepPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2900               parser_result = new Symbol(32/*StepPattern*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2891             }
  2901             }
  2892           return CUP$XPathParser$result;
  2902           return parser_result;
  2893 
  2903 
  2894           /*. . . . . . . . . . . . . . . . . . . .*/
  2904           /*. . . . . . . . . . . . . . . . . . . .*/
  2895           case 19: // StepPattern ::= NodeTestPattern Predicates
  2905           case 19: // StepPattern ::= NodeTestPattern Predicates
  2896             {
  2906             {
  2897               StepPattern RESULT = null;
  2907               StepPattern RESULT = null;
  2898                 int ntleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
  2908                 int ntleft = (parser_stack.get(parser_top-1)).left;
  2899                 int ntright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
  2909                 int ntright = (parser_stack.get(parser_top-1)).right;
  2900                 Object nt = (Object)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
  2910                 Object nt = (Object)((Symbol) parser_stack.get(parser_top-1)).value;
  2901                 int ppleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2911                 int ppleft = (parser_stack.get(parser_top-0)).left;
  2902                 int ppright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2912                 int ppright = (parser_stack.get(parser_top-0)).right;
  2903                 Vector pp = (Vector)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2913                 @SuppressWarnings("unchecked")
       
  2914                 List<Predicate> pp = (ArrayList<Predicate>)((Symbol) parser_stack.get(parser_top-0)).value;
  2904 
  2915 
  2905                 RESULT = parser.createStepPattern(Axis.CHILD, nt, pp);
  2916                 RESULT = parser.createStepPattern(Axis.CHILD, nt, pp);
  2906 
  2917 
  2907               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(32/*StepPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2918               parser_result = new Symbol(32/*StepPattern*/, (parser_stack.get(parser_top-1)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2908             }
  2919             }
  2909           return CUP$XPathParser$result;
  2920           return parser_result;
  2910 
  2921 
  2911           /*. . . . . . . . . . . . . . . . . . . .*/
  2922           /*. . . . . . . . . . . . . . . . . . . .*/
  2912           case 18: // StepPattern ::= NodeTestPattern
  2923           case 18: // StepPattern ::= NodeTestPattern
  2913             {
  2924             {
  2914               StepPattern RESULT = null;
  2925               StepPattern RESULT = null;
  2915                 int ntleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2926                 int ntleft = (parser_stack.get(parser_top-0)).left;
  2916                 int ntright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2927                 int ntright = (parser_stack.get(parser_top-0)).right;
  2917                 Object nt = (Object)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2928                 Object nt = (Object)((Symbol) parser_stack.get(parser_top-0)).value;
  2918 
  2929 
  2919                 RESULT = parser.createStepPattern(Axis.CHILD, nt, null);
  2930                 RESULT = parser.createStepPattern(Axis.CHILD, nt, null);
  2920 
  2931 
  2921               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(32/*StepPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2932               parser_result = new Symbol(32/*StepPattern*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2922             }
  2933             }
  2923           return CUP$XPathParser$result;
  2934           return parser_result;
  2924 
  2935 
  2925           /*. . . . . . . . . . . . . . . . . . . .*/
  2936           /*. . . . . . . . . . . . . . . . . . . .*/
  2926           case 17: // RelativePathPattern ::= StepPattern DSLASH RelativePathPattern
  2937           case 17: // RelativePathPattern ::= StepPattern DSLASH RelativePathPattern
  2927             {
  2938             {
  2928               RelativePathPattern RESULT = null;
  2939               RelativePathPattern RESULT = null;
  2929                 int spleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  2940                 int spleft = (parser_stack.get(parser_top-2)).left;
  2930                 int spright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  2941                 int spright = (parser_stack.get(parser_top-2)).right;
  2931                 StepPattern sp = (StepPattern)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  2942                 StepPattern sp = (StepPattern)((Symbol) parser_stack.get(parser_top-2)).value;
  2932                 int rppleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2943                 int rppleft = (parser_stack.get(parser_top-0)).left;
  2933                 int rppright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2944                 int rppright = (parser_stack.get(parser_top-0)).right;
  2934                 RelativePathPattern rpp = (RelativePathPattern)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2945                 RelativePathPattern rpp = (RelativePathPattern)((Symbol) parser_stack.get(parser_top-0)).value;
  2935                  RESULT = new AncestorPattern(sp, rpp);
  2946                  RESULT = new AncestorPattern(sp, rpp);
  2936               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(31/*RelativePathPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2947               parser_result = new Symbol(31/*RelativePathPattern*/, (parser_stack.get(parser_top-2)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2937             }
  2948             }
  2938           return CUP$XPathParser$result;
  2949           return parser_result;
  2939 
  2950 
  2940           /*. . . . . . . . . . . . . . . . . . . .*/
  2951           /*. . . . . . . . . . . . . . . . . . . .*/
  2941           case 16: // RelativePathPattern ::= StepPattern SLASH RelativePathPattern
  2952           case 16: // RelativePathPattern ::= StepPattern SLASH RelativePathPattern
  2942             {
  2953             {
  2943               RelativePathPattern RESULT = null;
  2954               RelativePathPattern RESULT = null;
  2944                 int spleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  2955                 int spleft = (parser_stack.get(parser_top-2)).left;
  2945                 int spright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  2956                 int spright = (parser_stack.get(parser_top-2)).right;
  2946                 StepPattern sp = (StepPattern)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  2957                 StepPattern sp = (StepPattern)((Symbol) parser_stack.get(parser_top-2)).value;
  2947                 int rppleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2958                 int rppleft = (parser_stack.get(parser_top-0)).left;
  2948                 int rppright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2959                 int rppright = (parser_stack.get(parser_top-0)).right;
  2949                 RelativePathPattern rpp = (RelativePathPattern)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2960                 RelativePathPattern rpp = (RelativePathPattern)((Symbol) parser_stack.get(parser_top-0)).value;
  2950                  RESULT = new ParentPattern(sp, rpp);
  2961                  RESULT = new ParentPattern(sp, rpp);
  2951               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(31/*RelativePathPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2962               parser_result = new Symbol(31/*RelativePathPattern*/, (parser_stack.get(parser_top-2)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2952             }
  2963             }
  2953           return CUP$XPathParser$result;
  2964           return parser_result;
  2954 
  2965 
  2955           /*. . . . . . . . . . . . . . . . . . . .*/
  2966           /*. . . . . . . . . . . . . . . . . . . .*/
  2956           case 15: // RelativePathPattern ::= StepPattern
  2967           case 15: // RelativePathPattern ::= StepPattern
  2957             {
  2968             {
  2958               RelativePathPattern RESULT = null;
  2969               RelativePathPattern RESULT = null;
  2959                 int spleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  2970                 int spleft = (parser_stack.get(parser_top-0)).left;
  2960                 int spright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  2971                 int spright = (parser_stack.get(parser_top-0)).right;
  2961                 StepPattern sp = (StepPattern)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  2972                 StepPattern sp = (StepPattern)((Symbol) parser_stack.get(parser_top-0)).value;
  2962                  RESULT = sp;
  2973                  RESULT = sp;
  2963               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(31/*RelativePathPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2974               parser_result = new Symbol(31/*RelativePathPattern*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2964             }
  2975             }
  2965           return CUP$XPathParser$result;
  2976           return parser_result;
  2966 
  2977 
  2967           /*. . . . . . . . . . . . . . . . . . . .*/
  2978           /*. . . . . . . . . . . . . . . . . . . .*/
  2968           case 14: // ProcessingInstructionPattern ::= PIPARAM LPAREN Literal RPAREN
  2979           case 14: // ProcessingInstructionPattern ::= PIPARAM LPAREN Literal RPAREN
  2969             {
  2980             {
  2970               StepPattern RESULT = null;
  2981               StepPattern RESULT = null;
  2971                 int lleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
  2982                 int lleft = (parser_stack.get(parser_top-1)).left;
  2972                 int lright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
  2983                 int lright = (parser_stack.get(parser_top-1)).right;
  2973                 String l = (String)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
  2984                 String l = (String)((Symbol) parser_stack.get(parser_top-1)).value;
  2974                  RESULT = new ProcessingInstructionPattern(l);
  2985                  RESULT = new ProcessingInstructionPattern(l);
  2975               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(30/*ProcessingInstructionPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-3)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  2986               parser_result = new Symbol(30/*ProcessingInstructionPattern*/, (parser_stack.get(parser_top-3)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2976             }
  2987             }
  2977           return CUP$XPathParser$result;
  2988           return parser_result;
  2978 
  2989 
  2979           /*. . . . . . . . . . . . . . . . . . . .*/
  2990           /*. . . . . . . . . . . . . . . . . . . .*/
  2980           case 13: // IdKeyPattern ::= KEY LPAREN Literal COMMA Literal RPAREN
  2991           case 13: // IdKeyPattern ::= KEY LPAREN Literal COMMA Literal RPAREN
  2981             {
  2992             {
  2982               IdKeyPattern RESULT = null;
  2993               IdKeyPattern RESULT = null;
  2983                 int l1left = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-3)).left;
  2994                 int l1left = (parser_stack.get(parser_top-3)).left;
  2984                 int l1right = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-3)).right;
  2995                 int l1right = (parser_stack.get(parser_top-3)).right;
  2985                 String l1 = (String)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-3)).value;
  2996                 String l1 = (String)((Symbol) parser_stack.get(parser_top-3)).value;
  2986                 int l2left = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
  2997                 int l2left = (parser_stack.get(parser_top-1)).left;
  2987                 int l2right = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
  2998                 int l2right = (parser_stack.get(parser_top-1)).right;
  2988                 String l2 = (String)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
  2999                 String l2 = (String)((Symbol) parser_stack.get(parser_top-1)).value;
  2989                  RESULT = new KeyPattern(l1, l2);
  3000                  RESULT = new KeyPattern(l1, l2);
  2990               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(27/*IdKeyPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-5)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  3001               parser_result = new Symbol(27/*IdKeyPattern*/, (parser_stack.get(parser_top-5)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  2991             }
  3002             }
  2992           return CUP$XPathParser$result;
  3003           return parser_result;
  2993 
  3004 
  2994           /*. . . . . . . . . . . . . . . . . . . .*/
  3005           /*. . . . . . . . . . . . . . . . . . . .*/
  2995           case 12: // IdKeyPattern ::= ID LPAREN Literal RPAREN
  3006           case 12: // IdKeyPattern ::= ID LPAREN Literal RPAREN
  2996             {
  3007             {
  2997               IdKeyPattern RESULT = null;
  3008               IdKeyPattern RESULT = null;
  2998                 int lleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
  3009                 int lleft = (parser_stack.get(parser_top-1)).left;
  2999                 int lright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
  3010                 int lright = (parser_stack.get(parser_top-1)).right;
  3000                 String l = (String)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
  3011                 String l = (String)((Symbol) parser_stack.get(parser_top-1)).value;
  3001                  RESULT = new IdPattern(l);
  3012                  RESULT = new IdPattern(l);
  3002                parser.setHasIdCall(true);
  3013                parser.setHasIdCall(true);
  3003 
  3014 
  3004               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(27/*IdKeyPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-3)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  3015               parser_result = new Symbol(27/*IdKeyPattern*/, (parser_stack.get(parser_top-3)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  3005             }
  3016             }
  3006           return CUP$XPathParser$result;
  3017           return parser_result;
  3007 
  3018 
  3008           /*. . . . . . . . . . . . . . . . . . . .*/
  3019           /*. . . . . . . . . . . . . . . . . . . .*/
  3009           case 11: // LocationPathPattern ::= RelativePathPattern
  3020           case 11: // LocationPathPattern ::= RelativePathPattern
  3010             {
  3021             {
  3011               Pattern RESULT = null;
  3022               Pattern RESULT = null;
  3012                 int rppleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  3023                 int rppleft = (parser_stack.get(parser_top-0)).left;
  3013                 int rppright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  3024                 int rppright = (parser_stack.get(parser_top-0)).right;
  3014                 RelativePathPattern rpp = (RelativePathPattern)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  3025                 RelativePathPattern rpp = (RelativePathPattern)((Symbol) parser_stack.get(parser_top-0)).value;
  3015                  RESULT = rpp;
  3026                  RESULT = rpp;
  3016               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(29/*LocationPathPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  3027               parser_result = new Symbol(29/*LocationPathPattern*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  3017             }
  3028             }
  3018           return CUP$XPathParser$result;
  3029           return parser_result;
  3019 
  3030 
  3020           /*. . . . . . . . . . . . . . . . . . . .*/
  3031           /*. . . . . . . . . . . . . . . . . . . .*/
  3021           case 10: // LocationPathPattern ::= DSLASH RelativePathPattern
  3032           case 10: // LocationPathPattern ::= DSLASH RelativePathPattern
  3022             {
  3033             {
  3023               Pattern RESULT = null;
  3034               Pattern RESULT = null;
  3024                 int rppleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  3035                 int rppleft = (parser_stack.get(parser_top-0)).left;
  3025                 int rppright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  3036                 int rppright = (parser_stack.get(parser_top-0)).right;
  3026                 RelativePathPattern rpp = (RelativePathPattern)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  3037                 RelativePathPattern rpp = (RelativePathPattern)((Symbol) parser_stack.get(parser_top-0)).value;
  3027                  RESULT = new AncestorPattern(rpp);
  3038                  RESULT = new AncestorPattern(rpp);
  3028               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(29/*LocationPathPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  3039               parser_result = new Symbol(29/*LocationPathPattern*/, (parser_stack.get(parser_top-1)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  3029             }
  3040             }
  3030           return CUP$XPathParser$result;
  3041           return parser_result;
  3031 
  3042 
  3032           /*. . . . . . . . . . . . . . . . . . . .*/
  3043           /*. . . . . . . . . . . . . . . . . . . .*/
  3033           case 9: // LocationPathPattern ::= IdKeyPattern DSLASH RelativePathPattern
  3044           case 9: // LocationPathPattern ::= IdKeyPattern DSLASH RelativePathPattern
  3034             {
  3045             {
  3035               Pattern RESULT = null;
  3046               Pattern RESULT = null;
  3036                 int ikpleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  3047                 int ikpleft = (parser_stack.get(parser_top-2)).left;
  3037                 int ikpright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  3048                 int ikpright = (parser_stack.get(parser_top-2)).right;
  3038                 IdKeyPattern ikp = (IdKeyPattern)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  3049                 IdKeyPattern ikp = (IdKeyPattern)((Symbol) parser_stack.get(parser_top-2)).value;
  3039                 int rppleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  3050                 int rppleft = (parser_stack.get(parser_top-0)).left;
  3040                 int rppright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  3051                 int rppright = (parser_stack.get(parser_top-0)).right;
  3041                 RelativePathPattern rpp = (RelativePathPattern)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  3052                 RelativePathPattern rpp = (RelativePathPattern)((Symbol) parser_stack.get(parser_top-0)).value;
  3042                  RESULT = new AncestorPattern(ikp, rpp);
  3053                  RESULT = new AncestorPattern(ikp, rpp);
  3043               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(29/*LocationPathPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  3054               parser_result = new Symbol(29/*LocationPathPattern*/, (parser_stack.get(parser_top-2)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  3044             }
  3055             }
  3045           return CUP$XPathParser$result;
  3056           return parser_result;
  3046 
  3057 
  3047           /*. . . . . . . . . . . . . . . . . . . .*/
  3058           /*. . . . . . . . . . . . . . . . . . . .*/
  3048           case 8: // LocationPathPattern ::= IdKeyPattern SLASH RelativePathPattern
  3059           case 8: // LocationPathPattern ::= IdKeyPattern SLASH RelativePathPattern
  3049             {
  3060             {
  3050               Pattern RESULT = null;
  3061               Pattern RESULT = null;
  3051                 int ikpleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  3062                 int ikpleft = (parser_stack.get(parser_top-2)).left;
  3052                 int ikpright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  3063                 int ikpright = (parser_stack.get(parser_top-2)).right;
  3053                 IdKeyPattern ikp = (IdKeyPattern)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  3064                 IdKeyPattern ikp = (IdKeyPattern)((Symbol) parser_stack.get(parser_top-2)).value;
  3054                 int rppleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  3065                 int rppleft = (parser_stack.get(parser_top-0)).left;
  3055                 int rppright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  3066                 int rppright = (parser_stack.get(parser_top-0)).right;
  3056                 RelativePathPattern rpp = (RelativePathPattern)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  3067                 RelativePathPattern rpp = (RelativePathPattern)((Symbol) parser_stack.get(parser_top-0)).value;
  3057                  RESULT = new ParentPattern(ikp, rpp);
  3068                  RESULT = new ParentPattern(ikp, rpp);
  3058               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(29/*LocationPathPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  3069               parser_result = new Symbol(29/*LocationPathPattern*/, (parser_stack.get(parser_top-2)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  3059             }
  3070             }
  3060           return CUP$XPathParser$result;
  3071           return parser_result;
  3061 
  3072 
  3062           /*. . . . . . . . . . . . . . . . . . . .*/
  3073           /*. . . . . . . . . . . . . . . . . . . .*/
  3063           case 7: // LocationPathPattern ::= IdKeyPattern
  3074           case 7: // LocationPathPattern ::= IdKeyPattern
  3064             {
  3075             {
  3065               Pattern RESULT = null;
  3076               Pattern RESULT = null;
  3066                 int ikpleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  3077                 int ikpleft = (parser_stack.get(parser_top-0)).left;
  3067                 int ikpright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  3078                 int ikpright = (parser_stack.get(parser_top-0)).right;
  3068                 IdKeyPattern ikp = (IdKeyPattern)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  3079                 IdKeyPattern ikp = (IdKeyPattern)((Symbol) parser_stack.get(parser_top-0)).value;
  3069                  RESULT = ikp;
  3080                  RESULT = ikp;
  3070               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(29/*LocationPathPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  3081               parser_result = new Symbol(29/*LocationPathPattern*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  3071             }
  3082             }
  3072           return CUP$XPathParser$result;
  3083           return parser_result;
  3073 
  3084 
  3074           /*. . . . . . . . . . . . . . . . . . . .*/
  3085           /*. . . . . . . . . . . . . . . . . . . .*/
  3075           case 6: // LocationPathPattern ::= SLASH RelativePathPattern
  3086           case 6: // LocationPathPattern ::= SLASH RelativePathPattern
  3076             {
  3087             {
  3077               Pattern RESULT = null;
  3088               Pattern RESULT = null;
  3078                 int rppleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  3089                 int rppleft = (parser_stack.get(parser_top-0)).left;
  3079                 int rppright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  3090                 int rppright = (parser_stack.get(parser_top-0)).right;
  3080                 RelativePathPattern rpp = (RelativePathPattern)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  3091                 RelativePathPattern rpp = (RelativePathPattern)((Symbol) parser_stack.get(parser_top-0)).value;
  3081                  RESULT = new AbsolutePathPattern(rpp);
  3092                  RESULT = new AbsolutePathPattern(rpp);
  3082               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(29/*LocationPathPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  3093               parser_result = new Symbol(29/*LocationPathPattern*/, (parser_stack.get(parser_top-1)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  3083             }
  3094             }
  3084           return CUP$XPathParser$result;
  3095           return parser_result;
  3085 
  3096 
  3086           /*. . . . . . . . . . . . . . . . . . . .*/
  3097           /*. . . . . . . . . . . . . . . . . . . .*/
  3087           case 5: // LocationPathPattern ::= SLASH
  3098           case 5: // LocationPathPattern ::= SLASH
  3088             {
  3099             {
  3089               Pattern RESULT = null;
  3100               Pattern RESULT = null;
  3090                  RESULT = new AbsolutePathPattern(null);
  3101                  RESULT = new AbsolutePathPattern(null);
  3091               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(29/*LocationPathPattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  3102               parser_result = new Symbol(29/*LocationPathPattern*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  3092             }
  3103             }
  3093           return CUP$XPathParser$result;
  3104           return parser_result;
  3094 
  3105 
  3095           /*. . . . . . . . . . . . . . . . . . . .*/
  3106           /*. . . . . . . . . . . . . . . . . . . .*/
  3096           case 4: // Pattern ::= LocationPathPattern VBAR Pattern
  3107           case 4: // Pattern ::= LocationPathPattern VBAR Pattern
  3097             {
  3108             {
  3098               Pattern RESULT = null;
  3109               Pattern RESULT = null;
  3099                 int lppleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left;
  3110                 int lppleft = (parser_stack.get(parser_top-2)).left;
  3100                 int lppright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).right;
  3111                 int lppright = (parser_stack.get(parser_top-2)).right;
  3101                 Pattern lpp = (Pattern)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).value;
  3112                 Pattern lpp = (Pattern)((Symbol) parser_stack.get(parser_top-2)).value;
  3102                 int pleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  3113                 int pleft = (parser_stack.get(parser_top-0)).left;
  3103                 int pright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  3114                 int pright = (parser_stack.get(parser_top-0)).right;
  3104                 Pattern p = (Pattern)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  3115                 Pattern p = (Pattern)((Symbol) parser_stack.get(parser_top-0)).value;
  3105                  RESULT = new AlternativePattern(lpp, p);
  3116                  RESULT = new AlternativePattern(lpp, p);
  3106               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(28/*Pattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-2)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  3117               parser_result = new Symbol(28/*Pattern*/, (parser_stack.get(parser_top-2)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  3107             }
  3118             }
  3108           return CUP$XPathParser$result;
  3119           return parser_result;
  3109 
  3120 
  3110           /*. . . . . . . . . . . . . . . . . . . .*/
  3121           /*. . . . . . . . . . . . . . . . . . . .*/
  3111           case 3: // Pattern ::= LocationPathPattern
  3122           case 3: // Pattern ::= LocationPathPattern
  3112             {
  3123             {
  3113               Pattern RESULT = null;
  3124               Pattern RESULT = null;
  3114                 int lppleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  3125                 int lppleft = (parser_stack.get(parser_top-0)).left;
  3115                 int lppright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  3126                 int lppright = (parser_stack.get(parser_top-0)).right;
  3116                 Pattern lpp = (Pattern)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  3127                 Pattern lpp = (Pattern)((Symbol) parser_stack.get(parser_top-0)).value;
  3117                  RESULT = lpp;
  3128                  RESULT = lpp;
  3118               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(28/*Pattern*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  3129               parser_result = new Symbol(28/*Pattern*/, (parser_stack.get(parser_top-0)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  3119             }
  3130             }
  3120           return CUP$XPathParser$result;
  3131           return parser_result;
  3121 
  3132 
  3122           /*. . . . . . . . . . . . . . . . . . . .*/
  3133           /*. . . . . . . . . . . . . . . . . . . .*/
  3123           case 2: // TopLevel ::= EXPRESSION Expr
  3134           case 2: // TopLevel ::= EXPRESSION Expr
  3124             {
  3135             {
  3125               SyntaxTreeNode RESULT = null;
  3136               SyntaxTreeNode RESULT = null;
  3126                 int exprleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  3137                 int exprleft = (parser_stack.get(parser_top-0)).left;
  3127                 int exprright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  3138                 int exprright = (parser_stack.get(parser_top-0)).right;
  3128                 Expression expr = (Expression)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  3139                 Expression expr = (Expression)((Symbol) parser_stack.get(parser_top-0)).value;
  3129                  RESULT = expr;
  3140                  RESULT = expr;
  3130               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(1/*TopLevel*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  3141               parser_result = new Symbol(1/*TopLevel*/, (parser_stack.get(parser_top-1)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  3131             }
  3142             }
  3132           return CUP$XPathParser$result;
  3143           return parser_result;
  3133 
  3144 
  3134           /*. . . . . . . . . . . . . . . . . . . .*/
  3145           /*. . . . . . . . . . . . . . . . . . . .*/
  3135           case 1: // TopLevel ::= PATTERN Pattern
  3146           case 1: // TopLevel ::= PATTERN Pattern
  3136             {
  3147             {
  3137               SyntaxTreeNode RESULT = null;
  3148               SyntaxTreeNode RESULT = null;
  3138                 int patternleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).left;
  3149                 int patternleft = (parser_stack.get(parser_top-0)).left;
  3139                 int patternright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right;
  3150                 int patternright = (parser_stack.get(parser_top-0)).right;
  3140                 Pattern pattern = (Pattern)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).value;
  3151                 Pattern pattern = (Pattern)((Symbol) parser_stack.get(parser_top-0)).value;
  3141                  RESULT = pattern;
  3152                  RESULT = pattern;
  3142               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(1/*TopLevel*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  3153               parser_result = new Symbol(1/*TopLevel*/, (parser_stack.get(parser_top-1)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  3143             }
  3154             }
  3144           return CUP$XPathParser$result;
  3155           return parser_result;
  3145 
  3156 
  3146           /*. . . . . . . . . . . . . . . . . . . .*/
  3157           /*. . . . . . . . . . . . . . . . . . . .*/
  3147           case 0: // $START ::= TopLevel EOF
  3158           case 0: // $START ::= TopLevel EOF
  3148             {
  3159             {
  3149               Object RESULT = null;
  3160               Object RESULT = null;
  3150                 int start_valleft = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left;
  3161                 int start_valleft = (parser_stack.get(parser_top-1)).left;
  3151                 int start_valright = ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).right;
  3162                 int start_valright = (parser_stack.get(parser_top-1)).right;
  3152                 SyntaxTreeNode start_val = (SyntaxTreeNode)((com.sun.java_cup.internal.runtime.Symbol) CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).value;
  3163                 SyntaxTreeNode start_val = (SyntaxTreeNode)((Symbol) parser_stack.get(parser_top-1)).value;
  3153                 RESULT = start_val;
  3164                 RESULT = start_val;
  3154               CUP$XPathParser$result = new com.sun.java_cup.internal.runtime.Symbol(0/*$START*/, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-1)).left, ((com.sun.java_cup.internal.runtime.Symbol)CUP$XPathParser$stack.elementAt(CUP$XPathParser$top-0)).right, RESULT);
  3165               parser_result = new Symbol(0/*$START*/, (parser_stack.get(parser_top-1)).left, (parser_stack.get(parser_top-0)).right, RESULT);
  3155             }
  3166             }
  3156           /* ACCEPT */
  3167           /* ACCEPT */
  3157           CUP$XPathParser$parser.done_parsing();
  3168           parser_parser.done_parsing();
  3158           return CUP$XPathParser$result;
  3169           return parser_result;
  3159 
  3170 
  3160           /* . . . . . .*/
  3171           /* . . . . . .*/
  3161           default:
  3172           default:
  3162             throw new Exception(
  3173             throw new Exception(
  3163                "Invalid action number found in internal parse table");
  3174                "Invalid action number found in internal parse table");