CUP$parser$result = new java_cup.runtime.Symbol(22, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
CUP$parser$result = new java_cup.runtime.Symbol(21, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);
  public final java_cup.runtime.Symbol CUP$parser$do_action(    int                        CUP$parser$act_num,    java_cup.runtime.lr_parser CUP$parser$parser,    java.util.Stack            CUP$parser$stack,    int                        CUP$parser$top)    throws java.lang.Exception    {      /* Symbol object for return from actions */      java_cup.runtime.Symbol CUP$parser$result;      /* select the action based on the action number */      switch (CUP$parser$act_num)        {          /*. . . . . . . . . . . . . . . . . . . .*/          case 65: // FunctionName ::= FNAME             {              FuncName RESULT = null;		int fnleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;		int fnright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;		FuncName fn = (FuncName)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;		 RESULT = fn;               CUP$parser$result = new java_cup.runtime.Symbol(3/*FunctionName*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 64: // VariableReference ::= DOLLAR NAME             {              Object RESULT = null;              CUP$parser$result = new java_cup.runtime.Symbol(1/*VariableReference*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 63: // Predicate ::= LB Expr RB             {              Predicate RESULT = null;		int eleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;		int eright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;		Expr e = (Expr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;			RESULT = new Predicate();   		        RESULT.expr= e; 		              CUP$parser$result = new java_cup.runtime.Symbol(30/*Predicate*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 62: // AbbreviatedRelativeLocationPath ::= Step DSLASH RelativeLocationPath             {              Step RESULT = null;		int sleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;		int sright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;		Step s = (Step)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;		int rlpleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;		int rlpright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;		Step rlp = (Step)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;		 RESULT = new Step();		  RESULT.setAxisType(AxisType.DESCENDANT_OR_SELF);		  parser.tempNt = new NodeTest();					  		  parser.tempNt.setTestType(NodeTest.NODE);		  RESULT.setNodeTest(parser.tempNt);		  s.setNextStep(RESULT);		  RESULT.setPrevStep(s);		  RESULT.setNextStep(rlp);		  rlp.setPrevStep(RESULT);		  RESULT = s;		              CUP$parser$result = new java_cup.runtime.Symbol(28/*AbbreviatedRelativeLocationPath*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 61: // AbbreviatedAbsoluteLocationPath ::= DSLASH RelativeLocationPath             {              Step RESULT = null;		int rlpleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;		int rlpright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;		Step rlp = (Step)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;				  RESULT = new Step();		  RESULT.setAxisType(AxisType.DESCENDANT_OR_SELF);		  parser.tempNt = new NodeTest();		  parser.tempNt.setTestType(NodeTest.NODE);		  RESULT.setNodeTest(parser.tempNt);		  RESULT.setNextStep(rlp);		  rlp.setPrevStep(RESULT);		              CUP$parser$result = new java_cup.runtime.Symbol(27/*AbbreviatedAbsoluteLocationPath*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 60: // AbbreviatedStep ::= DDOT             {              Step RESULT = null;		  RESULT = new Step();		    parser.tempNt = new NodeTest();  		    parser.tempNt.setTestType(NodeTest.NODE);		    RESULT.setAxisType(AxisType.PARENT);		    RESULT.setNodeTest(parser.tempNt);		              CUP$parser$result = new java_cup.runtime.Symbol(24/*AbbreviatedStep*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 59: // AbbreviatedStep ::= DOT             {              Step RESULT = null;		  RESULT = new Step();		    parser.tempNt = new NodeTest();  		    parser.tempNt.setTestType(NodeTest.NODE);		    RESULT.setAxisType(AxisType.SELF);		    RESULT.setNodeTest(parser.tempNt);				 		              CUP$parser$result = new java_cup.runtime.Symbol(24/*AbbreviatedStep*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 58: // AbbreviatedAxisSpecifier ::= AT             {              AxisType RESULT = null;		 RESULT = new AxisType(); RESULT.i = AxisType.ATTRIBUTE;               CUP$parser$result = new java_cup.runtime.Symbol(21/*AbbreviatedAxisSpecifier*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 57: // AbbreviatedAxisSpecifier ::=             {              AxisType RESULT = null;		 RESULT = new AxisType(); RESULT.i = AxisType.CHILD;               CUP$parser$result = new java_cup.runtime.Symbol(21/*AbbreviatedAxisSpecifier*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 56: // AxisSpecifier ::= AbbreviatedAxisSpecifier             {              AxisType RESULT = null;		int aasleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;		int aasright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;		AxisType aas = (AxisType)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;		  RESULT = aas;               CUP$parser$result = new java_cup.runtime.Symbol(20/*AxisSpecifier*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 55: // AxisSpecifier ::= AXISNAME             {              AxisType RESULT = null;		int anleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;		int anright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;		AxisType an = (AxisType)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;		  RESULT = an;               CUP$parser$result = new java_cup.runtime.Symbol(20/*AxisSpecifier*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 54: // PredicateList ::= Predicate PredicateList             {              Predicate RESULT = null;		int pleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;		int pright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;		Predicate p = (Predicate)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;		int plleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;		int plright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;		Predicate pl = (Predicate)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;		  p.nextP = pl;		    RESULT = p;		              CUP$parser$result = new java_cup.runtime.Symbol(29/*PredicateList*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 53: // PredicateList ::=             {              Predicate RESULT = null;		 RESULT = null;	      	              CUP$parser$result = new java_cup.runtime.Symbol(29/*PredicateList*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 52: // nodetest ::= NTEST             {              NodeTest RESULT = null;		int n2left = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;		int n2right = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;		Ntest n2 = (Ntest)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;		 RESULT = new NodeTest();		  RESULT.setTestType(n2.i);						              CUP$parser$result = new java_cup.runtime.Symbol(22/*nodetest*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 51: // nodetest ::= NAME             {              NodeTest RESULT = null;		int nleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;		int nright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;		NameType n = (NameType)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;		 RESULT = new NodeTest();	 	   RESULT.setTestType(NodeTest.NAMETEST);		   RESULT.setNodeName(n.qname);		   if (n.localname!=null){		   	 RESULT.setNodeNameNS(n.prefix,n.localname);		   	 if (parser.ht==null || parser.ht.get(n.prefix) ==null)		   	    throw new XPathParseException("No URL found for prefix:"+n.prefix);		   	 RESULT.URL = (String) parser.ht.get(n.prefix);		   }		              CUP$parser$result = new java_cup.runtime.Symbol(22/*nodetest*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 50: // Step ::= AbbreviatedStep             {              Step RESULT = null;		int asleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;		int asright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;		Step as = (Step)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;		 RESULT = as; /*System.out.println(" step 4");*/ 		              CUP$parser$result = new java_cup.runtime.Symbol(23/*Step*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 49: // Step ::= AxisSpecifier nodetest PredicateList             {              Step RESULT = null;		int asleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;		int asright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;		AxisType as = (AxisType)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;		int ntleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;		int ntright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;		NodeTest nt = (NodeTest)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;		int plleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;		int plright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;		Predicate pl = (Predicate)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;		 RESULT = new Step();      	   RESULT.setAxisType(as.i);      	   RESULT.setNodeTest(nt);		   RESULT.setPredicate(pl);			   //System.out.println(" Step 3 ");		              CUP$parser$result = new java_cup.runtime.Symbol(23/*Step*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 48: // RelativeLocationPath ::= AbbreviatedRelativeLocationPath             {              Step RESULT = null;		int arlpleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;		int arlpright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;		Step arlp = (Step)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;		 RESULT = arlp;	              CUP$parser$result = new java_cup.runtime.Symbol(25/*RelativeLocationPath*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 47: // RelativeLocationPath ::= Step SLASH RelativeLocationPath             {              Step RESULT = null;		int sleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;		int sright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;		Step s = (Step)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;		int rlpleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;		int rlpright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;		Step rlp = (Step)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;		 //if (s == rlp) throw new XPathParseException("$1 = $3!!!!");		   s.nextS = rlp;								   rlp.prevS = s;							 		   RESULT= s;		              CUP$parser$result = new java_cup.runtime.Symbol(25/*RelativeLocationPath*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 46: // RelativeLocationPath ::= Step             {              Step RESULT = null;		int sleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;		int sright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;		Step s = (Step)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;		 RESULT = s;               CUP$parser$result = new java_cup.runtime.Symbol(25/*RelativeLocationPath*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 45: // AbsoluteLocationPath ::= AbbreviatedAbsoluteLocationPath             {              Step RESULT = null;		int aalpleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;		int aalpright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;		Step aalp = (Step)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;		  RESULT = aalp;                 CUP$parser$result = new java_cup.runtime.Symbol(26/*AbsoluteLocationPath*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 44: // AbsoluteLocationPath ::= SLASH RelativeLocationPath             {              Step RESULT = null;		int rlpleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;		int rlpright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;		Step rlp = (Step)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;		  RESULT = rlp;                 CUP$parser$result = new java_cup.runtime.Symbol(26/*AbsoluteLocationPath*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 43: // AbsoluteLocationPath ::= SLASH             {              Step RESULT = null;		  RESULT = null;               CUP$parser$result = new java_cup.runtime.Symbol(26/*AbsoluteLocationPath*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 42: // LocationPath ::= AbsoluteLocationPath             {              LocationPathExpr RESULT = null;		int alpleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;		int alpright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;		Step alp = (Step)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;		 RESULT = new LocationPathExpr();		   RESULT.setPathType(LocationPathExpr.ABSOLUTE_PATH);		   //System.out.println(" absolute ");		   RESULT.setStep(alp);		   //startStep = currentStep=null;		              CUP$parser$result = new java_cup.runtime.Symbol(19/*LocationPath*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 41: // LocationPath ::= RelativeLocationPath             {              LocationPathExpr RESULT = null;		int rlpleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;		int rlpright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;		Step rlp = (Step)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;		 RESULT = new LocationPathExpr();		   RESULT.setStep(rlp); 		              CUP$parser$result = new java_cup.runtime.Symbol(19/*LocationPath*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 40: // Argument ::= Expr             {              Expr RESULT = null;		int eleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;		int eright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;		Expr e = (Expr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;		 RESULT = e;               CUP$parser$result = new java_cup.runtime.Symbol(18/*Argument*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 39: // ArgumentList ::= Argument COMMA ArgumentList             {              Alist RESULT = null;		int aleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;		int aright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;		Expr a = (Expr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;		int alleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;		int alright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;		Alist al = (Alist)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;		 RESULT = new Alist();		   RESULT.e = a;		   RESULT.next = al;		              CUP$parser$result = new java_cup.runtime.Symbol(15/*ArgumentList*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 38: // ArgumentList ::= Argument             {              Alist RESULT = null;		int aleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;		int aright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;		Expr a = (Expr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;		 RESULT = new Alist();		   RESULT.e = a;               CUP$parser$result = new java_cup.runtime.Symbol(15/*ArgumentList*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 37: // ArgumentList ::=             {              Alist RESULT = null;		 RESULT = null;               CUP$parser$result = new java_cup.runtime.Symbol(15/*ArgumentList*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 36: // FunctionCall ::= FunctionName LP ArgumentList RP             {              FuncExpr RESULT = null;		int fnleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left;		int fnright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).right;		FuncName fn = (FuncName)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-3)).value;		int alleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;		int alright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;		Alist al = (Alist)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;		 RESULT = new FuncExpr(fn.i, al);               CUP$parser$result = new java_cup.runtime.Symbol(2/*FunctionCall*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-3)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 35: // PrimaryExpr ::= FunctionCall             {              Expr RESULT = null;		int fcleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;		int fcright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;		FuncExpr fc = (FuncExpr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;		 RESULT = fc;               CUP$parser$result = new java_cup.runtime.Symbol(16/*PrimaryExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 34: // PrimaryExpr ::= NUMBER             {              Expr RESULT = null;		int neleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;		int neright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;		Double ne = (Double)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;		 RESULT = new NumExpr(ne.doubleValue());               CUP$parser$result = new java_cup.runtime.Symbol(16/*PrimaryExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 33: // PrimaryExpr ::= LITERAL             {              Expr RESULT = null;		int leleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;		int leright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;		String le = (String)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;		 RESULT = new LiteralExpr(le);               CUP$parser$result = new java_cup.runtime.Symbol(16/*PrimaryExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 32: // PrimaryExpr ::= LP Expr RP             {              Expr RESULT = null;		int eleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;		int eright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;		Expr e = (Expr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;		 RESULT = e;               CUP$parser$result = new java_cup.runtime.Symbol(16/*PrimaryExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 31: // PrimaryExpr ::= VariableReference             {              Expr RESULT = null;              CUP$parser$result = new java_cup.runtime.Symbol(16/*PrimaryExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 30: // FilterExpr ::= FilterExpr Predicate             {              Expr RESULT = null;		int feleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;		int feright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;		Expr fe = (Expr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;		int pleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;		int pright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;		Predicate p = (Predicate)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;		 RESULT = new FilterExpr(fe, p);              CUP$parser$result = new java_cup.runtime.Symbol(14/*FilterExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 29: // FilterExpr ::= PrimaryExpr             {              Expr RESULT = null;		int peleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;		int peright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;		Expr pe = (Expr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;		 RESULT = pe;               CUP$parser$result = new java_cup.runtime.Symbol(14/*FilterExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 28: // PathExpr ::= FilterExpr DSLASH RelativeLocationPath             {              Expr RESULT = null;		int feleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;		int feright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;		Expr fe = (Expr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;		int rlpleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;		int rlpright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;		Step rlp = (Step)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;		   parser.tempStep = new Step();		     parser.tempStep.setAxisType(AxisType.DESCENDANT_OR_SELF);		     parser.tempNt = new NodeTest();		     parser.tempNt.setTestType(NodeTest.NODE);		     parser.tempStep.setNodeTest(parser.tempNt);		     parser.tempStep.setNextStep(rlp);		     rlp.setPrevStep(parser.tempStep);		     		     /*parser.tempStep2 = new Step();		     parser.tempNt = new NodeTest();		     parser.tempStep2.setAxisType(AxisType.SELF);		     parser.tempNt.setTestType(NodeTest.NODE);		     parser.tempStep2.setNodeTest(parser.tempNt);	  		     parser.tempStep2.setNextStep(parser.tempStep);		     parser.tempStep.setPrevStep(parser.tempStep2);*/		     parser.tempLPExpr = new LocationPathExpr();		     parser.tempLPExpr.setStep(parser.tempStep);		     RESULT = new PathExpr(fe, parser.tempLPExpr);		              CUP$parser$result = new java_cup.runtime.Symbol(13/*PathExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 27: // PathExpr ::= FilterExpr SLASH RelativeLocationPath             {              Expr RESULT = null;		int feleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;		int feright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;		Expr fe = (Expr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;		int rlpleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;		int rlpright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;		Step rlp = (Step)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;		   parser.tempLPExpr = new LocationPathExpr();		     parser.tempLPExpr.setStep(rlp);		     RESULT = new PathExpr(fe, parser.tempLPExpr);			              CUP$parser$result = new java_cup.runtime.Symbol(13/*PathExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 26: // PathExpr ::= FilterExpr             {              Expr RESULT = null;		int feleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;		int feright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;		Expr fe = (Expr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;		  RESULT = fe;               CUP$parser$result = new java_cup.runtime.Symbol(13/*PathExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 25: // PathExpr ::= LocationPath             {              Expr RESULT = null;		int lpleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;		int lpright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;		LocationPathExpr lp = (LocationPathExpr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;		  RESULT = lp;               CUP$parser$result = new java_cup.runtime.Symbol(13/*PathExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 24: // UnionExpr ::= UnionExpr UNION PathExpr             {              Expr RESULT = null;		int uneleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;		int uneright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;		Expr une = (Expr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;		int peleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;		int peright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;		Expr pe = (Expr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;		 RESULT = new BinaryExpr(une, BinaryExpr.UNION, pe);		   //throw new XPathParseException("Union not yet supported"); 		              CUP$parser$result = new java_cup.runtime.Symbol(12/*UnionExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 23: // UnionExpr ::= PathExpr             {              Expr RESULT = null;		int peleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;		int peright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;		Expr pe = (Expr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;		 RESULT = pe;               CUP$parser$result = new java_cup.runtime.Symbol(12/*UnionExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 22: // UnaryExpr ::= SUB UnaryExpr             {              Expr RESULT = null;		int ueleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;		int ueright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;		Expr ue = (Expr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;		 RESULT = new UnaryExpr( BinaryExpr.SUB, ue);               CUP$parser$result = new java_cup.runtime.Symbol(11/*UnaryExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 21: // UnaryExpr ::= UnionExpr             {              Expr RESULT = null;		int ueleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;		int ueright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;		Expr ue = (Expr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;		 RESULT = ue;               CUP$parser$result = new java_cup.runtime.Symbol(11/*UnaryExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 20: // MultiplicativeExpr ::= MultiplicativeExpr MOD UnaryExpr             {              Expr RESULT = null;		int meleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;		int meright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;		Expr me = (Expr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;		int ueleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;		int ueright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;		Expr ue = (Expr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;		 RESULT = new BinaryExpr(me, BinaryExpr.MOD, ue);               CUP$parser$result = new java_cup.runtime.Symbol(10/*MultiplicativeExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 19: // MultiplicativeExpr ::= MultiplicativeExpr DIV UnaryExpr             {              Expr RESULT = null;		int meleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;		int meright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;		Expr me = (Expr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;		int ueleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;		int ueright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;		Expr ue = (Expr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;		 RESULT = new BinaryExpr(me, BinaryExpr.DIV, ue);               CUP$parser$result = new java_cup.runtime.Symbol(10/*MultiplicativeExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 18: // MultiplicativeExpr ::= MultiplicativeExpr MULT UnaryExpr             {              Expr RESULT = null;		int meleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;		int meright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;		Expr me = (Expr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;		int ueleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;		int ueright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;		Expr ue = (Expr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;		 RESULT = new BinaryExpr(me, BinaryExpr.MULT, ue);               CUP$parser$result = new java_cup.runtime.Symbol(10/*MultiplicativeExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 17: // MultiplicativeExpr ::= UnaryExpr             {              Expr RESULT = null;		int ueleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;		int ueright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;		Expr ue = (Expr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;		 RESULT = ue;               CUP$parser$result = new java_cup.runtime.Symbol(10/*MultiplicativeExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 16: // AdditiveExpr ::= AdditiveExpr SUB MultiplicativeExpr             {              Expr RESULT = null;		int aeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;		int aeright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;		Expr ae = (Expr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;		int meleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;		int meright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;		Expr me = (Expr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;		 RESULT = new BinaryExpr(ae, BinaryExpr.SUB, me);               CUP$parser$result = new java_cup.runtime.Symbol(9/*AdditiveExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 15: // AdditiveExpr ::= AdditiveExpr ADD MultiplicativeExpr             {              Expr RESULT = null;		int aeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;		int aeright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;		Expr ae = (Expr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;		int meleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;		int meright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;		Expr me = (Expr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;		 RESULT = new BinaryExpr(ae, BinaryExpr.ADD, me);               CUP$parser$result = new java_cup.runtime.Symbol(9/*AdditiveExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 14: // AdditiveExpr ::= MultiplicativeExpr             {              Expr RESULT = null;		int meleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;		int meright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;		Expr me = (Expr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;		 RESULT = me;               CUP$parser$result = new java_cup.runtime.Symbol(9/*AdditiveExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 13: // RelationalExpr ::= RelationalExpr GE AdditiveExpr             {              Expr RESULT = null;		int releft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;		int reright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;		Expr re = (Expr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;		int aeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;		int aeright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;		Expr ae = (Expr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;		 RESULT = new BinaryExpr(re, BinaryExpr.GE, ae);               CUP$parser$result = new java_cup.runtime.Symbol(8/*RelationalExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 12: // RelationalExpr ::= RelationalExpr LE AdditiveExpr             {              Expr RESULT = null;		int releft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;		int reright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;		Expr re = (Expr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;		int aeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;		int aeright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;		Expr ae = (Expr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;		 RESULT = new BinaryExpr(re, BinaryExpr.LE, ae);                CUP$parser$result = new java_cup.runtime.Symbol(8/*RelationalExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 11: // RelationalExpr ::= RelationalExpr GT AdditiveExpr             {              Expr RESULT = null;		int releft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;		int reright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;		Expr re = (Expr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;		int aeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;		int aeright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;		Expr ae = (Expr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;		 RESULT = new BinaryExpr(re, BinaryExpr.GT, ae);               CUP$parser$result = new java_cup.runtime.Symbol(8/*RelationalExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 10: // RelationalExpr ::= RelationalExpr LT AdditiveExpr             {              Expr RESULT = null;		int releft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;		int reright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;		Expr re = (Expr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;		int aeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;		int aeright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;		Expr ae = (Expr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;		 RESULT = new BinaryExpr(re, BinaryExpr.LT, ae);               CUP$parser$result = new java_cup.runtime.Symbol(8/*RelationalExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 9: // RelationalExpr ::= AdditiveExpr             {              Expr RESULT = null;		int aeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;		int aeright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;		Expr ae = (Expr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;		 RESULT = ae;               CUP$parser$result = new java_cup.runtime.Symbol(8/*RelationalExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 8: // EqualityExpr ::= EqualityExpr NE RelationalExpr             {              Expr RESULT = null;		int eeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;		int eeright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;		Expr ee = (Expr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;		int releft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;		int reright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;		Expr re = (Expr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;		 RESULT = new BinaryExpr(ee, BinaryExpr.NE, re);               CUP$parser$result = new java_cup.runtime.Symbol(6/*EqualityExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 7: // EqualityExpr ::= EqualityExpr EQ RelationalExpr             {              Expr RESULT = null;		int eeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;		int eeright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;		Expr ee = (Expr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;		int releft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;		int reright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;		Expr re = (Expr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;		 RESULT = new BinaryExpr(ee, BinaryExpr.EQ, re);               CUP$parser$result = new java_cup.runtime.Symbol(6/*EqualityExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 6: // EqualityExpr ::= RelationalExpr             {              Expr RESULT = null;		int releft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;		int reright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;		Expr re = (Expr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;		 RESULT = re;               CUP$parser$result = new java_cup.runtime.Symbol(6/*EqualityExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 5: // AndExpr ::= AndExpr AND EqualityExpr             {              Expr RESULT = null;		int aleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;		int aright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;		Expr a = (Expr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;		int eeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;		int eeright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;		Expr ee = (Expr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;		 RESULT = new BinaryExpr(a, BinaryExpr.AND, ee);               CUP$parser$result = new java_cup.runtime.Symbol(7/*AndExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 4: // AndExpr ::= EqualityExpr             {              Expr RESULT = null;		int eeleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;		int eeright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;		Expr ee = (Expr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;		 RESULT = ee;               CUP$parser$result = new java_cup.runtime.Symbol(7/*AndExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 3: // OrExpr ::= OrExpr OR AndExpr             {              Expr RESULT = null;		int oleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left;		int oright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).right;		Expr o = (Expr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-2)).value;		int aleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;		int aright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;		Expr a = (Expr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;		 RESULT = new BinaryExpr(o,BinaryExpr.OR,a);              CUP$parser$result = new java_cup.runtime.Symbol(5/*OrExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-2)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 2: // OrExpr ::= AndExpr             {              Expr RESULT = null;		int aleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;		int aright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;		Expr a = (Expr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;		 RESULT = a;               CUP$parser$result = new java_cup.runtime.Symbol(5/*OrExpr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 1: // $START ::= Expr EOF             {              Object RESULT = null;		int start_valleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left;		int start_valright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).right;		Expr start_val = (Expr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-1)).value;		RESULT = start_val;              CUP$parser$result = new java_cup.runtime.Symbol(0/*$START*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-1)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          /* ACCEPT */          CUP$parser$parser.done_parsing();          return CUP$parser$result;          /*. . . . . . . . . . . . . . . . . . . .*/          case 0: // Expr ::= OrExpr             {              Expr RESULT = null;		int oleft = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left;		int oright = ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right;		Expr o = (Expr)((java_cup.runtime.Symbol) CUP$parser$stack.elementAt(CUP$parser$top-0)).value;		 RESULT = o;               CUP$parser$result = new java_cup.runtime.Symbol(4/*Expr*/, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).left, ((java_cup.runtime.Symbol)CUP$parser$stack.elementAt(CUP$parser$top-0)).right, RESULT);            }          return CUP$parser$result;          /* . . . . . .*/          default:            throw new Exception(               "Invalid action number found in internal parse table");        }    }