Package org.jboss.byteman.rule.grammar

Examples of org.jboss.byteman.rule.grammar.ParseNode


      switch (CUP$ECAGrammarParser$act_num)
        {
          /*. . . . . . . . . . . . . . . . . . . .*/
          case 133: // path ::= path DOT IDENTIFIER
            {
              ParseNode RESULT =null;
    int pleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int pright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode p = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int ileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int iright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    String i = (String)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.PATH, ileft, iright, i, p);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("path",32, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 132: // path ::= IDENTIFIER
            {
              ParseNode RESULT =null;
    int ileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int iright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    String i = (String)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.PATH, ileft, iright, i, null);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("path",32, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 131: // simple_name ::= IDENTIFIER
            {
              ParseNode RESULT =null;
    int ileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int iright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    String i = (String)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.IDENTIFIER, ileft, iright, i, null);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("simple_name",31, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 130: // name ::= path DOT IDENTIFIER
            {
              ParseNode RESULT =null;
    int pleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int pright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode p = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int ileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int iright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    String i = (String)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.IDENTIFIER, ileft, iright, i, p);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("name",30, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 129: // name ::= simple_name
            {
              ParseNode RESULT =null;
    int nleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int nright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode n = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = n;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("name",30, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 128: // null_expr ::= NULL_LITERAL
            {
              ParseNode RESULT =null;
    int nleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int nright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    Object n = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.NULL_LITERAL, nleft, nright);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("null_expr",25, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 127: // simple_expr ::= LPAREN expr RPAREN
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
     RESULT = e;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("simple_expr",24, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 126: // simple_expr ::= DOLLAR
            {
              ParseNode RESULT =null;
    int sleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int sright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    Object s = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.DOLLAR, sleft, sright, s);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("simple_expr",24, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 125: // simple_expr ::= STRING_LITERAL
            {
              ParseNode RESULT =null;
    int sleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int sright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    String s = (String)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.STRING_LITERAL, sleft, sright, s);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("simple_expr",24, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 124: // simple_expr ::= BOOLEAN_LITERAL
            {
              ParseNode RESULT =null;
    int bleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int bright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    Boolean b = (Boolean)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT =  node(ParseNode.BOOLEAN_LITERAL, bleft, bright, b);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("simple_expr",24, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 123: // simple_expr ::= FLOAT_LITERAL
            {
              ParseNode RESULT =null;
    int fleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int fright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    Float f = (Float)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT =  node(ParseNode.FLOAT_LITERAL, fleft, fright, f);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("simple_expr",24, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 122: // simple_expr ::= INTEGER_LITERAL
            {
              ParseNode RESULT =null;
    int ileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int iright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    Integer i = (Integer)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT =  node(ParseNode.INTEGER_LITERAL, ileft, iright, i);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("simple_expr",24, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 121: // new_array_idx_list ::= LSQUARE expr RSQUARE new_array_idx_list
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int asleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int asright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode as = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.COMMA, eleft, eright, e, as);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("new_array_idx_list",23, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 120: // new_array_idx_list ::= LSQUARE RSQUARE new_array_idx_list
            {
              ParseNode RESULT =null;
    int lleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int lright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    Object l = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int asleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int asright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode as = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.COMMA, lleft, lright, node(ParseNode.NOTHING, lleft, lright), as);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("new_array_idx_list",23, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 119: // new_array_idx_list ::= LSQUARE expr RSQUARE
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
     RESULT = e;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("new_array_idx_list",23, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 118: // new_array_idx_list ::= LSQUARE RSQUARE
            {
              ParseNode RESULT =null;
    int lleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int lright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object l = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
     RESULT = node(ParseNode.NOTHING, lleft, lright);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("new_array_idx_list",23, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 117: // new_expr ::= NEW name LPAREN expr_list RPAREN
            {
              ParseNode RESULT =null;
    int ileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).left;
    int iright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).right;
    ParseNode i = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).value;
    int argsleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int argsright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode args = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
     RESULT = node(ParseNode.NEW, ileft, iright, i, args, null);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("new_expr",22, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 116: // new_expr ::= NEW name new_array_idx_list
            {
              ParseNode RESULT =null;
    int ileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int iright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode i = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int asleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int asright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode as = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.NEW, ileft, iright, i, null, as);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("new_expr",22, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 115: // new_expr ::= NEW name LPAREN RPAREN
            {
              ParseNode RESULT =null;
    int ileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int iright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode i = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
     RESULT = node(ParseNode.NEW, ileft, iright, i, null, null);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("new_expr",22, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 114: // expr_meth_expr ::= expr_field_expr DOT simple_name LPAREN expr_list RPAREN
            {
              ParseNode RESULT =null;
    int efeleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)).left;
    int eferight = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)).right;
    ParseNode efe = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)).value;
    int mleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).left;
    int mright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).right;
    ParseNode m = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).value;
    int argsleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int argsright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode args = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
     RESULT = node(ParseNode.METH, mleft, mright, m, efe, args);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr_meth_expr",21, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 113: // expr_meth_expr ::= expr_field_expr DOT simple_name LPAREN RPAREN
            {
              ParseNode RESULT =null;
    int efeleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).left;
    int eferight = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).right;
    ParseNode efe = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).value;
    int mleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int mright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode m = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
     RESULT = node(ParseNode.METH, mleft, mright, m, efe, null);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr_meth_expr",21, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 112: // expr_meth_expr ::= meth_expr DOT simple_name LPAREN expr_list RPAREN
            {
              ParseNode RESULT =null;
    int emeleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)).left;
    int emeright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)).right;
    ParseNode eme = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)).value;
    int mleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).left;
    int mright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).right;
    ParseNode m = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).value;
    int argsleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int argsright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode args = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
     RESULT = node(ParseNode.METH, mleft, mright, m, eme, args);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr_meth_expr",21, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 111: // expr_meth_expr ::= meth_expr DOT simple_name LPAREN RPAREN
            {
              ParseNode RESULT =null;
    int emeleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).left;
    int emeright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).right;
    ParseNode eme = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).value;
    int mleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int mright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode m = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
     RESULT = node(ParseNode.METH, mleft, mright, m, eme, null);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr_meth_expr",21, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 110: // expr_meth_expr ::= simple_expr DOT simple_name LPAREN expr_list RPAREN
            {
              ParseNode RESULT =null;
    int seleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)).left;
    int seright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)).right;
    ParseNode se = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)).value;
    int mleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).left;
    int mright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).right;
    ParseNode m = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).value;
    int argsleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int argsright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode args = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
     RESULT = node(ParseNode.METH, mleft, mright, m, se, args);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr_meth_expr",21, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 109: // expr_meth_expr ::= simple_expr DOT simple_name LPAREN RPAREN
            {
              ParseNode RESULT =null;
    int seleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).left;
    int seright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).right;
    ParseNode se = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).value;
    int mleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int mright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode m = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
     RESULT = node(ParseNode.METH, mleft, mright, m, se, null);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr_meth_expr",21, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 108: // meth_expr ::= expr_meth_expr
            {
              ParseNode RESULT =null;
    int emeleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int emeright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode eme = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = eme;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("meth_expr",20, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 107: // meth_expr ::= path DOT simple_name LPAREN expr_list RPAREN
            {
              ParseNode RESULT =null;
    int pleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)).left;
    int pright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)).right;
    ParseNode p = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)).value;
    int mleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).left;
    int mright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).right;
    ParseNode m = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).value;
    int argsleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int argsright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode args = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
     RESULT = node(ParseNode.METH, mleft, mright, m, p, args);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("meth_expr",20, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 106: // meth_expr ::= path DOT simple_name LPAREN RPAREN
            {
              ParseNode RESULT =null;
    int pleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).left;
    int pright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).right;
    ParseNode p = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).value;
    int mleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int mright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode m = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
     RESULT = node(ParseNode.METH, mleft, mright, m, p, null);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("meth_expr",20, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 105: // meth_expr ::= simple_name LPAREN expr_list RPAREN
            {
              ParseNode RESULT =null;
    int mleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).left;
    int mright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).right;
    ParseNode m = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).value;
    int argsleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int argsright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode args = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
     RESULT = node(ParseNode.METH, mleft, mright, m, null, args);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("meth_expr",20, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 104: // meth_expr ::= simple_name LPAREN RPAREN
            {
              ParseNode RESULT =null;
    int mleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int mright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode m = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
     RESULT = node(ParseNode.METH, mleft, mright, m, null, null);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("meth_expr",20, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 103: // expr_field_expr ::= expr_field_expr DOT simple_name
            {
              ParseNode RESULT =null;
    int efeleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int eferight = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode efe = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int fleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int fright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode f = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.FIELD, fleft, fright, f, efe);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr_field_expr",19, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 102: // expr_field_expr ::= meth_expr DOT simple_name
            {
              ParseNode RESULT =null;
    int meleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int meright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode me = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int fleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int fright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode f = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.FIELD, fleft, fright, f, me);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr_field_expr",19, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 101: // expr_field_expr ::= simple_expr DOT simple_name
            {
              ParseNode RESULT =null;
    int seleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int seright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode se = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int fleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int fright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode f = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.FIELD, fleft, fright, f, se);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr_field_expr",19, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 100: // field_expr ::= expr_field_expr
            {
              ParseNode RESULT =null;
    int efeleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eferight = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode efe = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = efe;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("field_expr",18, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 99: // field_expr ::= path DOT simple_name
            {
              ParseNode RESULT =null;
    int pleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int pright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode p = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int fleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int fright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode f = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.FIELD, fleft, fright, f, p);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("field_expr",18, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 98: // array_idx ::= LSQUARE expr RSQUARE
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
     RESULT = e;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("array_idx",27, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 97: // array_idx_list ::= array_idx
            {
              ParseNode RESULT =null;
    int aileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int airight = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode ai = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = ai;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("array_idx_list",26, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 96: // array_idx_list ::= array_idx array_idx_list
            {
              ParseNode RESULT =null;
    int aileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int airight = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode ai = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int ailleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int ailright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode ail = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT =  node(ParseNode.SEMI, aileft, airight, ai, ail);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("array_idx_list",26, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 95: // array_expr ::= meth_expr array_idx_list
            {
              ParseNode RESULT =null;
    int meleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int meright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode me = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int ailleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int ailright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode ail = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.ARRAY, meleft, meright, me, ail);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("array_expr",17, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 94: // array_expr ::= field_expr array_idx_list
            {
              ParseNode RESULT =null;
    int feleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int feright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode fe = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int ailleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int ailright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode ail = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.ARRAY, feleft, feright, fe, ail);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("array_expr",17, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 93: // array_expr ::= simple_name array_idx_list
            {
              ParseNode RESULT =null;
    int nameleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int nameright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode name = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int ailleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int ailright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode ail = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.ARRAY, nameleft, nameright, name, ail);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("array_expr",17, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 92: // array_expr ::= simple_expr array_idx_list
            {
              ParseNode RESULT =null;
    int seleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int seright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode se = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int ailleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int ailright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode ail = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.ARRAY, seleft, seright, se, ail);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("array_expr",17, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 91: // unary_oper_expr ::= MINUS expr
            {
              ParseNode RESULT =null;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.UNOP, eleft, eright, node(ParseNode.UMINUS, oleft, oright), e);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("unary_oper_expr",16, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 90: // unary_oper_expr ::= TWIDDLE expr
            {
              ParseNode RESULT =null;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.UNOP, eleft, eright, node(ParseNode.TWIDDLE, oleft, oright), e);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("unary_oper_expr",16, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 89: // unary_oper_expr ::= NOT expr
            {
              ParseNode RESULT =null;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.UNOP, eleft, eright, node(ParseNode.NOT, oleft, oright), e);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("unary_oper_expr",16, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 88: // binary_oper_expr ::= expr MOD expr
            {
              ParseNode RESULT =null;
    int e1left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int e1right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e1 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int e2left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.MOD, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("binary_oper_expr",15, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 87: // binary_oper_expr ::= expr DIV expr
            {
              ParseNode RESULT =null;
    int e1left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int e1right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e1 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int e2left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.DIV, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("binary_oper_expr",15, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 86: // binary_oper_expr ::= expr MUL expr
            {
              ParseNode RESULT =null;
    int e1left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int e1right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e1 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int e2left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.MUL, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("binary_oper_expr",15, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 85: // binary_oper_expr ::= expr MINUS expr
            {
              ParseNode RESULT =null;
    int e1left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int e1right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e1 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int e2left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.MINUS, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("binary_oper_expr",15, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 84: // binary_oper_expr ::= expr PLUS expr
            {
              ParseNode RESULT =null;
    int e1left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int e1right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e1 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int e2left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.PLUS, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("binary_oper_expr",15, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 83: // binary_oper_expr ::= expr BXOR expr
            {
              ParseNode RESULT =null;
    int e1left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int e1right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e1 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int e2left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.BXOR, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("binary_oper_expr",15, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 82: // binary_oper_expr ::= expr BAND expr
            {
              ParseNode RESULT =null;
    int e1left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int e1right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e1 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int e2left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.BAND, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("binary_oper_expr",15, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 81: // binary_oper_expr ::= expr BOR expr
            {
              ParseNode RESULT =null;
    int e1left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int e1right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e1 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int e2left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.BOR, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("binary_oper_expr",15, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 80: // binary_oper_expr ::= expr GT expr
            {
              ParseNode RESULT =null;
    int e1left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int e1right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e1 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int e2left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.GT, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("binary_oper_expr",15, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 79: // binary_oper_expr ::= expr GE expr
            {
              ParseNode RESULT =null;
    int e1left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int e1right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e1 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int e2left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.GE, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("binary_oper_expr",15, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 78: // binary_oper_expr ::= expr NE expr
            {
              ParseNode RESULT =null;
    int e1left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int e1right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e1 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int e2left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.NE, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("binary_oper_expr",15, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 77: // binary_oper_expr ::= expr EQ expr
            {
              ParseNode RESULT =null;
    int e1left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int e1right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e1 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int e2left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.EQ, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("binary_oper_expr",15, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 76: // binary_oper_expr ::= expr LE expr
            {
              ParseNode RESULT =null;
    int e1left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int e1right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e1 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int e2left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.LE, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("binary_oper_expr",15, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 75: // binary_oper_expr ::= expr LT expr
            {
              ParseNode RESULT =null;
    int e1left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int e1right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e1 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int e2left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.LT, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("binary_oper_expr",15, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 74: // binary_oper_expr ::= expr AND expr
            {
              ParseNode RESULT =null;
    int e1left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int e1right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e1 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int e2left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.AND, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("binary_oper_expr",15, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 73: // binary_oper_expr ::= expr OR expr
            {
              ParseNode RESULT =null;
    int e1left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int e1right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e1 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int oleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int oright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object o = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int e2left = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int e2right = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e2 = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BINOP, e1left, e1right, node(ParseNode.OR, oleft, oright), e1, e2);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("binary_oper_expr",15, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 72: // ternary_oper_expr ::= expr TERN_IF expr COLON expr
            {
              ParseNode RESULT =null;
    int condleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).left;
    int condright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).right;
    ParseNode cond = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).value;
    int iftrueleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int iftrueright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode iftrue = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int iffalseleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int iffalseright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode iffalse = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.TERNOP, condleft, condright, cond, iftrue, iffalse);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("ternary_oper_expr",14, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 71: // expr ::= error expr
            {
              ParseNode RESULT =null;
    int errleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int errright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object err = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     error("invalid expression", errleft, errright); RESULT = e;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr",13, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 70: // expr ::= array_expr ASSIGN expr
            {
              ParseNode RESULT =null;
    int aleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode a = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.ASSIGN, aleft, aright, a, e);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr",13, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 69: // expr ::= field_expr ASSIGN expr
            {
              ParseNode RESULT =null;
    int fleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int fright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode f = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.ASSIGN, fleft, fright, f, e);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr",13, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 68: // expr ::= DOLLAR ASSIGN expr
            {
              ParseNode RESULT =null;
    int dleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int dright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    Object d = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.ASSIGN, dleft, dright, node(ParseNode.DOLLAR, dleft, dright, d), e);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr",13, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 67: // expr ::= simple_name ASSIGN expr
            {
              ParseNode RESULT =null;
    int sleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int sright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode s = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.ASSIGN, sleft, sright, s, e);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr",13, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 66: // expr ::= simple_name
            {
              ParseNode RESULT =null;
    int nleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int nright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode n = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = n;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr",13, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 65: // expr ::= null_expr
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = e;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr",13, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 64: // expr ::= simple_expr
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = e;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr",13, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 63: // expr ::= new_expr
            {
              ParseNode RESULT =null;
    int neleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int neright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode ne = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = ne;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr",13, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 62: // expr ::= meth_expr
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = e;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr",13, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 61: // expr ::= field_expr
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = e;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr",13, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 60: // expr ::= array_expr
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = e;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr",13, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 59: // expr ::= unary_oper_expr
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = e;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr",13, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 58: // expr ::= binary_oper_expr
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = e;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr",13, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 57: // expr ::= ternary_oper_expr
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = e;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr",13, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 56: // expr_list ::= error SEMI expr_list
            {
              ParseNode RESULT =null;
    int errleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int errright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    Object err = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int elleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int elright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode el = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     error("invalid expression", errleft, errright);
       RESULT = el;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr_list",12, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 55: // expr_list ::= expr SEMI expr_list
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int elleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int elright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode el = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.COMMA, eleft, eright, e, el);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr_list",12, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 54: // expr_list ::= expr COMMA expr_list
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int elleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int elright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode el = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.COMMA, eleft, eright, e, el);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr_list",12, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 53: // expr_list ::= expr
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = e;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("expr_list",12, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 52: // throw_return_expr ::= THROW NEW name LPAREN expr_list RPAREN
            {
              ParseNode RESULT =null;
    int ileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).left;
    int iright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).right;
    ParseNode i = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).value;
    int argsleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int argsright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode args = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
     RESULT = node(ParseNode.THROW, ileft, iright, i, args);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("throw_return_expr",11, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 51: // throw_return_expr ::= THROW NEW name LPAREN RPAREN
            {
              ParseNode RESULT =null;
    int ileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int iright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode i = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
     RESULT = node(ParseNode.THROW, ileft, iright, i, null);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("throw_return_expr",11, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 50: // throw_return_expr ::= THROW name LPAREN expr_list RPAREN
            {
              ParseNode RESULT =null;
    int ileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).left;
    int iright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).right;
    ParseNode i = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)).value;
    int argsleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int argsright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode args = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
     RESULT = node(ParseNode.THROW, ileft, iright, i, args);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("throw_return_expr",11, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 49: // throw_return_expr ::= THROW name LPAREN RPAREN
            {
              ParseNode RESULT =null;
    int ileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int iright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode i = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
     RESULT = node(ParseNode.THROW, ileft, iright, i, null);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("throw_return_expr",11, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 48: // throw_return_expr ::= RETURN expr
            {
              ParseNode RESULT =null;
    int rleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int rright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object r = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.RETURN, rleft, rright, e);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("throw_return_expr",11, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 47: // throw_return_expr ::= RETURN
            {
              ParseNode RESULT =null;
    int rleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int rright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    Object r = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.RETURN, rleft, rright, null);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("throw_return_expr",11, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 46: // action_expr ::= throw_return_expr SEMI
            {
              ParseNode RESULT =null;
    int treleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int treright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode tre = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
     RESULT = tre;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("action_expr",10, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 45: // action_expr ::= throw_return_expr
            {
              ParseNode RESULT =null;
    int treleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int treright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode tre = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = tre;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("action_expr",10, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 44: // action_expr ::= expr SEMI
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
     RESULT = e;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("action_expr",10, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 43: // action_expr ::= expr
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = e;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("action_expr",10, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 42: // action_expr_list ::= action_expr
            {
              ParseNode RESULT =null;
    int aeleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int aeright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode ae = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = ae;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("action_expr_list",9, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 41: // action_expr_list ::= expr SEMI error
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int errleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int errright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    Object err = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     error("invalid action", errleft, errright);
       RESULT = e;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("action_expr_list",9, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 40: // action_expr_list ::= error SEMI action_expr_list
            {
              ParseNode RESULT =null;
    int errleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int errright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    Object err = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int aelleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int aelright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode ael = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     error("invalid action", errleft, errright);
       RESULT = ael;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("action_expr_list",9, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 39: // action_expr_list ::= expr COMMA action_expr_list
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int aelleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int aelright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode ael = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.SEMI, eleft, eright, e, ael);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("action_expr_list",9, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 38: // action_expr_list ::= expr SEMI action_expr_list
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int aelleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int aelright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode ael = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.SEMI, eleft, eright, e, ael);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("action_expr_list",9, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 37: // actions ::= action_expr_list
            {
              ParseNode RESULT =null;
    int aelleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int aelright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode ael = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = ael;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("actions",8, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 36: // actions ::= NOTHING
            {
              ParseNode RESULT =null;
    int nleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int nright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    Object n = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.NOTHING, nleft, nright);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("actions",8, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 35: // condition ::= expr
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = e;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("condition",7, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 34: // arraydims ::= LSQUARE RSQUARE
            {
              Integer RESULT =null;
     RESULT =  1;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("arraydims",29, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 33: // arraydims ::= LSQUARE RSQUARE arraydims
            {
              Integer RESULT =null;
    int aleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int aright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    Integer a = (Integer)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = a + 1;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("arraydims",29, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 32: // typename ::= name
            {
              ParseNode RESULT =null;
    int tleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int tright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode t = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = t;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("typename",28, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 31: // typename ::= name arraydims
            {
              ParseNode RESULT =null;
    int tleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int tright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode t = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    int dleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int dright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    Integer d = (Integer)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
   
            ParseNode tmp = t;
            for (int i = 0; i < d; i++) {
                tmp =  node(ParseNode.ARRAY, tleft, tright, tmp);
            }
            RESULT = tmp;
       
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("typename",28, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 30: // bind_sym ::= simple_name
            {
              ParseNode RESULT =null;
    int varleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int varright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode var = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = var;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("bind_sym",6, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 29: // bind_sym ::= simple_name COLON typename
            {
              ParseNode RESULT =null;
    int varleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int varright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode var = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int typeleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int typeright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode type = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.COLON, varleft, varright, var, type);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("bind_sym",6, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 28: // binding ::= bind_sym ASSIGN expr
            {
              ParseNode RESULT =null;
    int sleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int sright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode s = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.ASSIGN, sleft, sright, s, e);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("binding",5, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 27: // bindings ::= binding
            {
              ParseNode RESULT =null;
    int bleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int bright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode b = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = b;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("bindings",4, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 26: // bindings ::= binding SEMI
            {
              ParseNode RESULT =null;
    int bleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode b = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
     RESULT = b;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("bindings",4, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 25: // bindings ::= binding SEMI error
            {
              ParseNode RESULT =null;
    int bleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode b = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int errleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int errright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    Object err = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     error("invalid binding", errleft, errright);
         RESULT = b;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("bindings",4, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 24: // bindings ::= error SEMI bindings
            {
              ParseNode RESULT =null;
    int errleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int errright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    Object err = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int bsleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int bsright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode bs = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     error("invalid binding", errleft, errright);
         RESULT = bs;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("bindings",4, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 23: // bindings ::= binding SEMI bindings
            {
              ParseNode RESULT =null;
    int bleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode b = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int bsleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int bsright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode bs = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.COMMA, bleft, bright, b, bs);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("bindings",4, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 22: // bindings ::= binding COMMA bindings
            {
              ParseNode RESULT =null;
    int bleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode b = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int bsleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int bsright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode bs = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.COMMA, bleft, bright, b, bs);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("bindings",4, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 21: // event ::= bindings
            {
              ParseNode RESULT =null;
    int bleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int bright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode b = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = b;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("event",3, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 20: // event ::= NOTHING
            {
              ParseNode RESULT =null;
    int nleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int nright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    Object n = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.NOTHING, nleft, nright);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("event",3, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 19: // ca_error_in_action ::= IF condition DO error
            {
              ParseNode RESULT =null;
    int cleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int cright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode c = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int dleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int dright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object d = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
     error("invalid action", dleft, dright);
                      RESULT = node(ParseNode.BIND, cleft, cright, null, c, null);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("ca_error_in_action",39, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 18: // ca_error_in_condition ::= IF error NT$2 DO actions
            {
              ParseNode RESULT =null;
              // propagate RESULT from NT$2
                RESULT = (ParseNode) ((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int ileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).left;
    int iright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).right;
    Object i = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).value;
    int aleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int aright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode a = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BIND, ileft, iright, null, null, a);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("ca_error_in_condition",38, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 17: // NT$2 ::=
            {
              ParseNode RESULT =null;
    int ileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int iright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object i = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
error("invalid condition", ileft, iright);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("NT$2",42, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 16: // ca_error ::= ca_error_in_action
            {
              ParseNode RESULT =null;

              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("ca_error",37, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 15: // ca_error ::= ca_error_in_condition
            {
              ParseNode RESULT =null;

              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("ca_error",37, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 14: // ca ::= ca_error
            {
              ParseNode RESULT =null;

              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("ca",2, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 13: // ca ::= IF condition DO actions
            {
              ParseNode RESULT =null;
    int cleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int cright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode c = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int aleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int aright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode a = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BIND, cleft, cright, null, c, a);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("ca",2, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-3)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 12: // eca_error_in_action ::= BIND event IF condition DO error
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).value;
    int cleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int cright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode c = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int dleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int dright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object d = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
     error("invalid action", dleft, dright);
                      RESULT = node(ParseNode.BIND, eleft, eright, e, c, null);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("eca_error_in_action",36, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 11: // eca_error_in_condition ::= BIND event IF error NT$1 DO actions
            {
              ParseNode RESULT =null;
              // propagate RESULT from NT$1
                RESULT = (ParseNode) ((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)).value;
    int ileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).left;
    int iright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).right;
    Object i = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).value;
    int aleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int aright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode a = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BIND, eleft, eright, e, null, a);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("eca_error_in_condition",35, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-6)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 10: // NT$1 ::=
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int ileft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int iright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object i = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
error("invalid condition", ileft, iright);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("NT$1",41, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 9: // eca_error_in_event ::= BIND error NT$0 IF condition DO actions
            {
              ParseNode RESULT =null;
              // propagate RESULT from NT$0
                RESULT = (ParseNode) ((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-6)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-6)).right;
    Object b = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-6)).value;
    int cleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int cright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode c = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int aleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int aright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode a = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BIND, bleft, bright, null, c, a);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("eca_error_in_event",34, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-6)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 8: // NT$0 ::=
            {
              ParseNode RESULT =null;
    int bleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    Object b = (Object)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
error("invalid event", bleft, bright);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("NT$0",40, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 7: // eca_error ::= eca_error_in_action
            {
              ParseNode RESULT =null;

              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("eca_error",33, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 6: // eca_error ::= eca_error_in_condition
            {
              ParseNode RESULT =null;

              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("eca_error",33, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 5: // eca_error ::= eca_error_in_event
            {
              ParseNode RESULT =null;

              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("eca_error",33, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 4: // eca ::= eca_error
            {
              ParseNode RESULT =null;

              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("eca",1, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 3: // eca ::= BIND event IF condition DO actions
            {
              ParseNode RESULT =null;
    int eleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).right;
    ParseNode e = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-4)).value;
    int cleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).left;
    int cright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).right;
    ParseNode c = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-2)).value;
    int aleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int aright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode a = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = node(ParseNode.BIND, eleft, eright, e, c, a);
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("eca",1, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-5)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 2: // eca_rule ::= ca
            {
              ParseNode RESULT =null;
    int ruleleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int ruleright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode rule = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = rule;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("eca_rule",0, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 1: // $START ::= eca_rule EOF
            {
              Object RESULT =null;
    int start_valleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).left;
    int start_valright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).right;
    ParseNode start_val = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)).value;
    RESULT = start_val;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("$START",0, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.elementAt(CUP$ECAGrammarParser$top-1)), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          /* ACCEPT */
          CUP$ECAGrammarParser$parser.done_parsing();
          return CUP$ECAGrammarParser$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 0: // eca_rule ::= eca
            {
              ParseNode RESULT =null;
    int ruleleft = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).left;
    int ruleright = ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()).right;
    ParseNode rule = (ParseNode)((java_cup.runtime.Symbol) CUP$ECAGrammarParser$stack.peek()).value;
     RESULT = rule;
              CUP$ECAGrammarParser$result = parser.getSymbolFactory().newSymbol("eca_rule",0, ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), ((java_cup.runtime.Symbol)CUP$ECAGrammarParser$stack.peek()), RESULT);
            }
          return CUP$ECAGrammarParser$result;

View Full Code Here


    public static Expression createBinaryExpression(Rule rule, Bindings bindings, ParseNode exprTree, Type type)
            throws TypeException
    {
        // we expect ^(BINOP infix_oper simple_expr expr)

        ParseNode child0 = (ParseNode) exprTree.getChild(0);
        ParseNode child1 = (ParseNode) exprTree.getChild(1);
        ParseNode child2 = (ParseNode) exprTree.getChild(2);
        Expression expr;
        int oper = child0.getTag();

        switch (oper)
        {
View Full Code Here

    public static Expression createTernaryExpression(Rule rule, Bindings bindings, ParseNode exprTree, Type type)
            throws TypeException
    {
        // we only expect ^(TERNOP ternary_oper simple_expr expr expr)

        ParseNode child0 = (ParseNode) exprTree.getChild(0);
        ParseNode child1 = (ParseNode) exprTree.getChild(1);
        ParseNode child2 = (ParseNode) exprTree.getChild(2);
        Expression expr;
        int oper = exprTree.getTag();

        switch (oper)
        {
View Full Code Here

        // we allow assignment to identifiers or dollar symbols
        int tag = exprTree.getTag();
        switch(tag) {
            case FIELD:
            {
                ParseNode child0 = (ParseNode) exprTree.getChild(0);
                ParseNode child1 = (ParseNode) exprTree.getChild(1);
                expr = createFieldExpression(rule, bindings, child0, child1, type);
            }
            break;
            case IDENTIFIER:
            {
                String name = (String)exprTree.getChild(0);
                ParseNode child1 = (ParseNode)exprTree.getChild(1);

                if (child1 == null && bindings.lookup(name) != null) {
                    // a clear cut direct variable reference
                    expr = new Variable(rule, type, exprTree, name);
                } else {
                    // we should only get these as identifiers for binding types or throw types which are
                    // explicitly caught by the bindings or throw processing case handlers so this is an error

                    throw new TypeException("ExpressionHelper.createAssignableExpression : unexpected IDENTIFIER " + exprTree.getText() + " in "  + exprTree.getPos());
                }
            }
            break;
            case DOLLAR:
            {
                String text = (String)exprTree.getChild(0);
                char leading = text.charAt(1);
                if (Character.isDigit(leading)) {
                    int index = Integer.valueOf(text.substring(1));
                    expr = new DollarExpression(rule, type, exprTree, index);
                } else if (text.equals("$!")) {
                    expr = new DollarExpression(rule, type, exprTree, DollarExpression.RETURN_VALUE_IDX);
                } else if (text.equals("$^")) {
                    expr = new DollarExpression(rule, type, exprTree, DollarExpression.THROWABLE_VALUE_IDX);
                } else if (text.equals("$#")) {
                    expr = new DollarExpression(rule, Type.I, exprTree, DollarExpression.PARAM_COUNT_IDX);
                } else if (text.equals("$*")) {
                    expr = new DollarExpression(rule, rule.getTypeGroup().createArray(Type.OBJECT), exprTree, DollarExpression.PARAM_ARRAY_IDX);
                } else if (text.equals("$@")) {
                    expr = new DollarExpression(rule, rule.getTypeGroup().createArray(Type.OBJECT), exprTree, DollarExpression.INVOKE_PARAM_ARRAY_IDX);
                } else {
                    expr = new DollarExpression(rule, type, exprTree, text.substring(1));
                }
            }
            break;
            case ARRAY:
            {
                ParseNode child0 = (ParseNode) exprTree.getChild(0);
                ParseNode child1 = (ParseNode) exprTree.getChild(1);

                Expression arrayRef = createExpression(rule, bindings, child0, Type.UNDEFINED);

                List<Expression> indices = createExpressionList(rule, bindings, child1, Type.I);

View Full Code Here

                switch (exprTree.getTag())
                {
                    case SEMI:
                    case COMMA:
                    {
                        ParseNode child0 = (ParseNode) exprTree.getChild(0);
                        // assign tree before we risk an exception
                        exprTree = (ParseNode) exprTree.getChild(1);
                        Expression expr = createExpression(rule, bindings, child0, type);
                        exprList.add(expr);
                    }
                    break;
                    default:
                    {
                        // assign tree before we risk an exception
                        ParseNode saveTree = exprTree;
                        exprTree = null;
                        Expression expr = createExpression(rule, bindings, saveTree, type);
                        exprList.add(expr);
                    }
                    break;
View Full Code Here

        int emptyDimCount = 0;

        while (exprTree != null)
        {
            try {
                ParseNode saveTree = exprTree;
                ParseNode child;
                if (exprTree.getTag() == COMMA) {
                    child = (ParseNode) exprTree.getChild(0);
                    exprTree = (ParseNode) exprTree.getChild(1);
                } else {
                    child = exprTree;
                    exprTree = null;
                }
                // count an extra array dimension
                arrayDimCount++;

                if (child.getTag() == NOTHING) {
                    //  this is an empty array dimension
                    emptyDimCount++;
                    foundEmptyDim = true;
                    // append null to the list to represent the empty dimension
                    exprList.add(null);
                } else  if (!foundEmptyDim){
                    Expression expr = createExpression(rule, bindings, child, Type.I);
                    exprList.add(expr);
                } else {
                    // once we see an empty dim we expect to see al empty dims
                    throw new TypeException("ExpressionHelper.createNewExpressionIndexList : invalid array dimension " + child.getPos());
                }
            } catch (TypeException te) {
                exceptions.add(te);
            }
        }
View Full Code Here

            case IDENTIFIER:
            {
                // check for path qualifier

                String name = (String)exprTree.getChild(0);
                ParseNode child1 = (ParseNode)exprTree.getChild(1);

                if (child1 == null && bindings.lookup(name) != null) {
                    // a clear cut direct variable reference
                    expr = new Variable(rule, type, exprTree);
                } else {
                    // we should only get these as identifiers for binding types or throw types which are
                    // explicitly caught by the bindings or throw processing case handlers so this is an error

                    throw new TypeException("ExpressionHelper.createExpression : unexpected IDENTIFIER " + exprTree.getText() + " in "  + exprTree.getPos());
                }
            }
            break;
            case ARRAY:
            {
                ParseNode child0 = (ParseNode) exprTree.getChild(0);
                ParseNode child1 = (ParseNode) exprTree.getChild(1);

                Expression arrayRef = createExpression(rule, bindings, child0, Type.UNDEFINED);

                List<Expression> indices = createExpressionList(rule, bindings, child1, Type.I);

                if (indices != null) {
                    expr = new ArrayExpression(rule, type, exprTree, arrayRef, indices);
                } else {
                    throw new TypeException("ExpressionHelper.createExpression : invalid array index expression " + exprTree.getPos());
                }
            }
            break;
            case FIELD:
            {
                ParseNode child0 = (ParseNode) exprTree.getChild(0);
                ParseNode child1 = (ParseNode) exprTree.getChild(1);
                expr = createFieldExpression(rule, bindings, child0, child1, type);
            }
            break;
            case METH:
            {
                ParseNode child0 = (ParseNode) exprTree.getChild(0);
                ParseNode child1 = (ParseNode) exprTree.getChild(1);
                ParseNode child2 = (ParseNode) exprTree.getChild(2);
                int tag0 = child0.getTag();
                if (tag0 != IDENTIFIER) {
                    // uurgh we expected a method name
                    throw new TypeException("ExpressionHelper.createExpression : invalid method selector " + tag + " in expression " + child0.getText() + child0.getPos());
                }

                expr = createCallExpression(rule, bindings, child0, child1, child2, type);
            }
            break;
            case THROW:
            {
                ParseNode child0 = (ParseNode) exprTree.getChild(0);
                ParseNode child1 = (ParseNode) exprTree.getChild(1);
                int tag0 = child0.getTag();

                if (tag0 != IDENTIFIER) {
                    throw new TypeException("ExpressionHelper.createExpression : invalid throw type " + tag + " in expression " + child0.getText() + child0.getPos());
                } else {
                    expr = createThrowExpression(rule, bindings, child0, child1);
                }
            }
            break;
            case NEW:
            {
                ParseNode child0 = (ParseNode) exprTree.getChild(0);
                ParseNode child1 = (ParseNode) exprTree.getChild(1);
                ParseNode child2 = (ParseNode) exprTree.getChild(2);
                int tag0 = child0.getTag();

                if (tag0 != IDENTIFIER) {
                    throw new TypeException("ExpressionHelper.createExpression : invalid new type " + tag + " in expression " + child0.getText() + child0.getPos());
                } else {
                    expr = createNewExpression(rule, bindings, child0, child1, child2);
                }
            }
            break;
            case INTEGER_LITERAL:
            {
                expr = new NumericLiteral(rule, Type.I, exprTree);
            }
            break;
            case FLOAT_LITERAL:
            {
                expr = new NumericLiteral(rule, Type.F, exprTree);
            }
            break;
            case STRING_LITERAL:
            {
                expr = new StringLiteral(rule, exprTree);
            }
            break;
            case BOOLEAN_LITERAL:
            {
                expr = new BooleanLiteral(rule, exprTree);
            }
            break;
            case NULL_LITERAL:
            {
                expr = new NullLiteral(rule, exprTree);
            }
            break;
            case RETURN:
            {
                Expression returnValue;
                ParseNode child0 = (ParseNode) exprTree.getChild(0);
                if (child0 != null) {
                    returnValue = createExpression(rule, bindings, child0);
                } else {
                    returnValue = null;
                }
                expr = new ReturnExpression(rule, exprTree, returnValue);
            }
            break;
            case DOLLAR:
            {
                String text = (String)exprTree.getChild(0);
                char leading = text.charAt(1);
                if (Character.isDigit(leading)) {
                    int index = Integer.valueOf(text.substring(1));
                    expr = new DollarExpression(rule, type, exprTree, index);
                } else if (text.equals("$!")) {
                    expr = new DollarExpression(rule, type, exprTree, DollarExpression.RETURN_VALUE_IDX);
                } else if (text.equals("$^")) {
                    expr = new DollarExpression(rule, type, exprTree, DollarExpression.THROWABLE_VALUE_IDX);
                } else if (text.equals("$#")) {
                    expr = new DollarExpression(rule, Type.I, exprTree, DollarExpression.PARAM_COUNT_IDX);
                } else if (text.equals("$*")) {
                    expr = new DollarExpression(rule, rule.getTypeGroup().createArray(Type.OBJECT), exprTree, DollarExpression.PARAM_ARRAY_IDX);
                } else if (text.equals("$@")) {
                    expr = new DollarExpression(rule, rule.getTypeGroup().createArray(Type.OBJECT), exprTree, DollarExpression.INVOKE_PARAM_ARRAY_IDX);
                } else {
                    expr = new DollarExpression(rule, type, exprTree, text.substring(1));
                }
            }
            break;
            case ASSIGN:
            {
                ParseNode child0 = (ParseNode) exprTree.getChild(0);
                ParseNode child1 = (ParseNode) exprTree.getChild(1);
                // the left hand side is special but nay expression will do for the right hand side

                AssignableExpression left = createAssignableExpression(rule, bindings, child0, type);;
                Expression right = createExpression(rule, bindings, child1, type);

View Full Code Here

    }

    public static String[] createPathList(ParseNode pathTree)
    {
        int l = 0;
        ParseNode p = pathTree;

        while (p != null) {
            l++;
            p = (ParseNode)p.getChild(1);
        }

        String[] pathList = new String[l];

        p = pathTree;
        while (p != null) {
            l--;
            pathList[l] = (String)p.getText();
            p = (ParseNode)p.getChild(1);
        }

        return pathList;
    }
View Full Code Here

    public static Expression createUnaryExpression(Rule rule, Bindings bindings, ParseNode exprTree, Type type)
            throws TypeException
    {
        // we expect ^(UNOP unary_oper expr)

        ParseNode child0 = (ParseNode) exprTree.getChild(0);
        ParseNode child1 = (ParseNode) exprTree.getChild(1);
        Expression expr;
        int tag = child0.getTag();

        switch (tag)
        {
            case TWIDDLE:
            {
                // the argument must be a numeric expression
                if (!type.isUndefined() && !type.isVoid() && !type.isNumeric()) {
                    throw new TypeException("ExpressionHelper.createUnaryExpression : invalid numeric expression" + exprTree.getPos());
                }
                Expression operand = createExpression(rule, bindings, child1, Type.NUMBER);
                expr = new TwiddleExpression(rule, exprTree, operand);
            }
            break;
            case NOT:
            {
                // the argument must be a boolean expression
                if (!type.isUndefined() && !type.isVoid() && !type.isBoolean()) {
                    throw new TypeException("ExpressionHelper.createUnaryExpression : invalid boolean expression" + exprTree.getPos());
                }
                Expression operand = createExpression(rule, bindings, child1, Type.BOOLEAN);
                expr = new NotExpression(rule, exprTree, operand);
            }
            break;
            case UMINUS:
            {
                // the argument must be a numeric expression
                if (!type.isUndefined() && !type.isVoid() && !type.isBoolean()) {
                    throw new TypeException("ExpressionHelper.createUnaryExpression : invalid boolean expression" + exprTree.getPos());
                }
                Expression operand = createExpression(rule, bindings, child1, Type.NUMBER);
                expr = new MinusExpression(rule, exprTree, operand);
            }
            break;
            case DOLLAR:
            {
                if (child1.getTag() == IDENTIFIER) {
                    if (child1.getText().equals("!")) {
                        expr = new DollarExpression(rule, type, exprTree, DollarExpression.RETURN_VALUE_IDX);
                    } else if (child1.getText().equals("^")) {
                        expr = new DollarExpression(rule, type, exprTree, DollarExpression.THROWABLE_VALUE_IDX);
                    } else if (child1.getText().equals("#")) {
                        expr = new DollarExpression(rule, Type.I, exprTree, DollarExpression.PARAM_COUNT_IDX);
                    } else if (child1.getText().equals("*")) {
                        expr = new DollarExpression(rule, rule.getTypeGroup().createArray(Type.OBJECT), exprTree, DollarExpression.PARAM_ARRAY_IDX);
                    } else if (child1.getText().equals("@")) {
                        expr = new DollarExpression(rule, rule.getTypeGroup().createArray(Type.OBJECT), exprTree, DollarExpression.INVOKE_PARAM_ARRAY_IDX);
                    } else {
                        expr = new DollarExpression(rule, type, exprTree, child1.getText());
                    }
                } else if (child1.getTag() == INTEGER_LITERAL) {
                    Integer intObject = (Integer) child1.getChild(0);
                    expr = new DollarExpression(rule, type, exprTree, intObject.intValue());
                } else {
                    throw new TypeException("ExpressionHelper.createUnaryExpression : unexpected token type " + child1.getTag() + " for dollar expression tree " + child1.getText() + "" + child1.getPos());
                }
            }
            break;
            default:
            {
View Full Code Here

    public static Expression createBinaryExpression(Rule rule, Bindings bindings, ParseNode exprTree, Type type)
            throws TypeException
    {
        // we expect ^(BINOP infix_oper simple_expr expr)

        ParseNode child0 = (ParseNode) exprTree.getChild(0);
        ParseNode child1 = (ParseNode) exprTree.getChild(1);
        ParseNode child2 = (ParseNode) exprTree.getChild(2);
        Expression expr;
        int oper = child0.getTag();

        switch (oper)
        {
View Full Code Here

TOP

Related Classes of org.jboss.byteman.rule.grammar.ParseNode

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.