Package polyglot.ext.jl.parse

Examples of polyglot.ext.jl.parse.Name


          case 355: // left_hand_side ::= name
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Name a = (Name)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a.toExpr()
              CUP$Grm$result = new java_cup.runtime.Symbol(149/*left_hand_side*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 354: // assignment ::= left_hand_side assignment_operator assignment_expression
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    Assign.Operator b = (Assign.Operator)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
    int cleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int cright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr c = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                                   RESULT = parser.nf.Assign(parser.pos(a), a, b, c);
                                                                  
              CUP$Grm$result = new java_cup.runtime.Symbol(148/*assignment*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 353: // assignment_expression ::= assignment
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(147/*assignment_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 352: // assignment_expression ::= conditional_expression
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(147/*assignment_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 351: // conditional_expression ::= conditional_or_expression QUESTION expression COLON conditional_expression
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-4)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Expr b = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int cleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int cright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr c = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                                                     RESULT = parser.nf.Conditional(parser.pos(a), a,
                b, c);
                                                                                    
              CUP$Grm$result = new java_cup.runtime.Symbol(146/*conditional_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 350: // conditional_expression ::= conditional_or_expression
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(146/*conditional_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 349: // conditional_or_expression ::= conditional_or_expression OROR conditional_and_expression
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr b = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                                  RESULT = parser.nf.Binary(parser.pos(a), a,
                Binary.COND_OR, b);
                                                                 
              CUP$Grm$result = new java_cup.runtime.Symbol(145/*conditional_or_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 348: // conditional_or_expression ::= conditional_and_expression
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(145/*conditional_or_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 347: // conditional_and_expression ::= conditional_and_expression ANDAND inclusive_or_expression
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr b = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                                  RESULT = parser.nf.Binary(parser.pos(a), a,
                Binary.COND_AND, b);
                                                                 
              CUP$Grm$result = new java_cup.runtime.Symbol(144/*conditional_and_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 346: // conditional_and_expression ::= inclusive_or_expression
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(144/*conditional_and_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 345: // inclusive_or_expression ::= inclusive_or_expression OR exclusive_or_expression
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr b = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                           RESULT = parser.nf.Binary(parser.pos(a), a,
                Binary.BIT_OR, b);
                                                          
              CUP$Grm$result = new java_cup.runtime.Symbol(143/*inclusive_or_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 344: // inclusive_or_expression ::= exclusive_or_expression
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(143/*inclusive_or_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 343: // exclusive_or_expression ::= exclusive_or_expression XOR and_expression
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr b = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                   RESULT = parser.nf.Binary(parser.pos(a), a,
                Binary.BIT_XOR, b);
                                                  
              CUP$Grm$result = new java_cup.runtime.Symbol(142/*exclusive_or_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 342: // exclusive_or_expression ::= and_expression
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(142/*exclusive_or_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 341: // and_expression ::= and_expression AND equality_expression
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr b = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                               RESULT = parser.nf.Binary(parser.pos(a), a,
                Binary.BIT_AND, b);
                                              
              CUP$Grm$result = new java_cup.runtime.Symbol(141/*and_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 340: // and_expression ::= equality_expression
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(141/*and_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 339: // equality_expression ::= equality_expression NOTEQ relational_expression
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr b = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                        RESULT = parser.nf.Binary(parser.pos(a), a,
                Binary.NE, b);
                                                       
              CUP$Grm$result = new java_cup.runtime.Symbol(140/*equality_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 338: // equality_expression ::= equality_expression EQEQ relational_expression
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr b = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                       RESULT = parser.nf.Binary(parser.pos(a), a,
                Binary.EQ, b);
                                                      
              CUP$Grm$result = new java_cup.runtime.Symbol(140/*equality_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 337: // equality_expression ::= relational_expression
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(140/*equality_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 336: // relational_expression ::= relational_expression INSTANCEOF reference_type
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    TypeNode b = (TypeNode)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                        RESULT = parser.nf.Instanceof(parser.pos(a), a, b);
                                                       
              CUP$Grm$result = new java_cup.runtime.Symbol(139/*relational_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 335: // relational_expression ::= relational_expression GTEQ shift_expression
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr b = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                    RESULT = parser.nf.Binary(parser.pos(a), a,
                Binary.GE, b);
                                                   
              CUP$Grm$result = new java_cup.runtime.Symbol(139/*relational_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 334: // relational_expression ::= relational_expression LTEQ shift_expression
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr b = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                    RESULT = parser.nf.Binary(parser.pos(a), a,
                Binary.LE, b);
                                                   
              CUP$Grm$result = new java_cup.runtime.Symbol(139/*relational_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 333: // relational_expression ::= relational_expression GT shift_expression
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr b = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                  RESULT = parser.nf.Binary(parser.pos(a), a,
                Binary.GT, b);
                                                 
              CUP$Grm$result = new java_cup.runtime.Symbol(139/*relational_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 332: // relational_expression ::= relational_expression LT shift_expression
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr b = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                  RESULT = parser.nf.Binary(parser.pos(a), a,
                Binary.LT, b);
                                                 
              CUP$Grm$result = new java_cup.runtime.Symbol(139/*relational_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 331: // relational_expression ::= shift_expression
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(139/*relational_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 330: // shift_expression ::= shift_expression URSHIFT additive_expression
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr b = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                     RESULT = parser.nf.Binary(parser.pos(a), a,
                Binary.USHR, b);
                                                    
              CUP$Grm$result = new java_cup.runtime.Symbol(138/*shift_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 329: // shift_expression ::= shift_expression RSHIFT additive_expression
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr b = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                    RESULT = parser.nf.Binary(parser.pos(a), a,
                Binary.SHR, b);
                                                   
              CUP$Grm$result = new java_cup.runtime.Symbol(138/*shift_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 328: // shift_expression ::= shift_expression LSHIFT additive_expression
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr b = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                    RESULT = parser.nf.Binary(parser.pos(a), a,
                Binary.SHL, b);
                                                   
              CUP$Grm$result = new java_cup.runtime.Symbol(138/*shift_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 327: // shift_expression ::= additive_expression
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(138/*shift_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 326: // additive_expression ::= additive_expression MINUS multiplicative_expression
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr b = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                            RESULT = parser.nf.Binary(parser.pos(a), a,
                Binary.SUB, b);
                                                           
              CUP$Grm$result = new java_cup.runtime.Symbol(137/*additive_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 325: // additive_expression ::= additive_expression PLUS multiplicative_expression
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr b = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                           RESULT = parser.nf.Binary(parser.pos(a), a,
                Binary.ADD, b);
                                                          
              CUP$Grm$result = new java_cup.runtime.Symbol(137/*additive_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 324: // additive_expression ::= multiplicative_expression
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(137/*additive_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 323: // multiplicative_expression ::= multiplicative_expression MOD unary_expression
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr b = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                       RESULT = parser.nf.Binary(parser.pos(a), a,
                Binary.MOD, b);
                                                      
              CUP$Grm$result = new java_cup.runtime.Symbol(136/*multiplicative_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 322: // multiplicative_expression ::= multiplicative_expression DIV unary_expression
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr b = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                       RESULT = parser.nf.Binary(parser.pos(a), a,
                Binary.DIV, b);
                                                      
              CUP$Grm$result = new java_cup.runtime.Symbol(136/*multiplicative_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 321: // multiplicative_expression ::= multiplicative_expression MULT unary_expression
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr b = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                        RESULT = parser.nf.Binary(parser.pos(a), a,
                Binary.MUL, b);
                                                       
              CUP$Grm$result = new java_cup.runtime.Symbol(136/*multiplicative_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 320: // multiplicative_expression ::= unary_expression
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(136/*multiplicative_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 319: // cast_expression ::= LPAREN relation_type RPAREN unary_expression_not_plus_minus
            {
              Cast RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    BDDTypeNode a = (BDDTypeNode)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr b = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                                    RESULT = parser.nf.Cast(parser.pos(a), a, b);
                                                                   
              CUP$Grm$result = new java_cup.runtime.Symbol(135/*cast_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 318: // cast_expression ::= LPAREN name dims RPAREN unary_expression_not_plus_minus
            {
              Cast RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).right;
    Name a = (Name)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-3)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Integer b = (Integer)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int cleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int cright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr c = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                                  RESULT = parser.nf.Cast(parser.pos(a),
                parser.array(a.toType(), b.intValue()), c);
                                                                 
              CUP$Grm$result = new java_cup.runtime.Symbol(135/*cast_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 317: // cast_expression ::= LPAREN expression RPAREN unary_expression_not_plus_minus
            {
              Cast RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr b = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                                 RESULT = parser.nf.Cast(parser.pos(a),
                parser.exprToType(a), b);
                                                                
              CUP$Grm$result = new java_cup.runtime.Symbol(135/*cast_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 316: // cast_expression ::= LPAREN primitive_type dims_opt RPAREN unary_expression
            {
              Cast RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).right;
    TypeNode a = (TypeNode)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-3)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Integer b = (Integer)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int cleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int cright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr c = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                                 RESULT = parser.nf.Cast(parser.pos(a),
                parser.array(a, b.intValue()), c);
                                                                
              CUP$Grm$result = new java_cup.runtime.Symbol(135/*cast_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 315: // unary_expression_not_plus_minus ::= class_instance_creation_expression
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(132/*unary_expression_not_plus_minus*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 314: // unary_expression_not_plus_minus ::= relation_expr_or_relprod
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(132/*unary_expression_not_plus_minus*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 313: // unary_expression_not_plus_minus ::= cast_expression
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Cast a = (Cast)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(132/*unary_expression_not_plus_minus*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 312: // unary_expression_not_plus_minus ::= NOT unary_expression
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                           RESULT = parser.nf.Unary(parser.pos(a), Unary.NOT, a);
                          
              CUP$Grm$result = new java_cup.runtime.Symbol(132/*unary_expression_not_plus_minus*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 311: // unary_expression_not_plus_minus ::= COMP unary_expression
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                            RESULT = parser.nf.Unary(parser.pos(a), Unary.BIT_NOT, a);
                           
              CUP$Grm$result = new java_cup.runtime.Symbol(132/*unary_expression_not_plus_minus*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 310: // predecrement_expression ::= MINUSMINUS unary_expression
            {
              Unary RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                  RESULT = parser.nf.Unary(parser.pos(a), Unary.PRE_DEC, a);
                                 
              CUP$Grm$result = new java_cup.runtime.Symbol(134/*predecrement_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 309: // preincrement_expression ::= PLUSPLUS unary_expression
            {
              Unary RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                RESULT = parser.nf.Unary(parser.pos(a), Unary.PRE_INC, a);
                               
              CUP$Grm$result = new java_cup.runtime.Symbol(133/*preincrement_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 308: // unary_expression ::= unary_expression_not_plus_minus
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(131/*unary_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 307: // unary_expression ::= MINUS unary_expression
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                             RESULT = parser.nf.Unary(parser.pos(a), Unary.NEG, a);
                            
              CUP$Grm$result = new java_cup.runtime.Symbol(131/*unary_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 306: // unary_expression ::= PLUS unary_expression
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                            RESULT = parser.nf.Unary(parser.pos(a), Unary.POS, a);
                           
              CUP$Grm$result = new java_cup.runtime.Symbol(131/*unary_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 305: // unary_expression ::= predecrement_expression
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Unary a = (Unary)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(131/*unary_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 304: // unary_expression ::= preincrement_expression
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Unary a = (Unary)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(131/*unary_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 303: // postdecrement_expression ::= postfix_expression MINUSMINUS
            {
              Unary RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
   
                                    RESULT = parser.nf.Unary(parser.pos(a), a, Unary.POST_DEC);
                                   
              CUP$Grm$result = new java_cup.runtime.Symbol(130/*postdecrement_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 302: // postincrement_expression ::= postfix_expression PLUSPLUS
            {
              Unary RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
   
                                  RESULT = parser.nf.Unary(parser.pos(a), a, Unary.POST_INC);
                                 
              CUP$Grm$result = new java_cup.runtime.Symbol(129/*postincrement_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 301: // postfix_expression ::= postdecrement_expression
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Unary a = (Unary)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(128/*postfix_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 300: // postfix_expression ::= postincrement_expression
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Unary a = (Unary)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(128/*postfix_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 299: // postfix_expression ::= name
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Name a = (Name)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a.toExpr()
              CUP$Grm$result = new java_cup.runtime.Symbol(128/*postfix_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 298: // postfix_expression ::= primary
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(128/*postfix_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 297: // array_access ::= class_instance_creation_expression LBRACK expression RBRACK
            {
              ArrayAccess RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-3)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    Expr b = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
    int eleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Token e = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                                      RESULT = parser.nf.ArrayAccess(parser.pos(a, e), a, b);
                                                                     
              CUP$Grm$result = new java_cup.runtime.Symbol(127/*array_access*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 296: // array_access ::= primary_no_new_array LBRACK expression RBRACK
            {
              ArrayAccess RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-3)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    Expr b = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
   
                                                      RESULT = parser.nf.ArrayAccess(parser.pos(a), a, b);
                                                     
              CUP$Grm$result = new java_cup.runtime.Symbol(127/*array_access*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 295: // array_access ::= name LBRACK expression RBRACK
            {
              ArrayAccess RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).right;
    Name a = (Name)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-3)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    Expr b = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
   
                                      RESULT = parser.nf.ArrayAccess(parser.pos(a), a.toExpr(), b);
                                     
              CUP$Grm$result = new java_cup.runtime.Symbol(127/*array_access*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 294: // method_invocation ::= class_instance_creation_expression DOT IDENTIFIER LPAREN argument_list_opt RPAREN
            {
              Call RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-5)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-5)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-5)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).right;
    Identifier b = (Identifier)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-3)).value;
    int cleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int cright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    List c = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
    int eleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Token e = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                                                              RESULT = parser.nf.Call(parser.pos(a, e), a, b.getIdentifier(), c);
                                                                                             
              CUP$Grm$result = new java_cup.runtime.Symbol(126/*method_invocation*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-5)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 293: // method_invocation ::= name DOT SUPER DOT IDENTIFIER LPAREN argument_list_opt RPAREN
            {
              Call RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-7)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-7)).right;
    Name a = (Name)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-7)).value;
    int nleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-5)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-5)).right;
    Token n = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-5)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).right;
    Identifier b = (Identifier)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-3)).value;
    int cleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int cright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    List c = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
   
                                                                          RESULT = parser.nf.Call(parser.pos(b),
                parser.nf.Super(parser.pos(n), a.toType()),
                b.getIdentifier(), c);
                                                                         
              CUP$Grm$result = new java_cup.runtime.Symbol(126/*method_invocation*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-7)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 292: // method_invocation ::= SUPER DOT IDENTIFIER LPAREN argument_list_opt RPAREN
            {
              Call RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-5)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-5)).right;
    Token a = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-5)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).right;
    Identifier b = (Identifier)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-3)).value;
    int cleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int cright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    List c = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
   
                                                               RESULT = parser.nf.Call(parser.pos(b),
                parser.nf.Super(parser.pos(a)),
                b.getIdentifier(), c);
                                                              
              CUP$Grm$result = new java_cup.runtime.Symbol(126/*method_invocation*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-5)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 291: // method_invocation ::= primary DOT IDENTIFIER LPAREN argument_list_opt RPAREN
            {
              Call RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-5)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-5)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-5)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).right;
    Identifier b = (Identifier)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-3)).value;
    int cleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int cright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    List c = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
   
                                                                 RESULT = parser.nf.Call(parser.pos(b), a,
                b.getIdentifier(), c);
                                                                
              CUP$Grm$result = new java_cup.runtime.Symbol(126/*method_invocation*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-5)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 290: // method_invocation ::= name LPAREN argument_list_opt RPAREN
            {
              Call RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).right;
    Name a = (Name)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-3)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    List b = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
   
                                             RESULT = parser.nf.Call(parser.pos(a),
                a.prefix == null ? null : a.prefix.toReceiver(),
                a.name, b);
                                            
              CUP$Grm$result = new java_cup.runtime.Symbol(126/*method_invocation*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 289: // field_access ::= class_instance_creation_expression DOT IDENTIFIER
            {
              Field RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Identifier b = (Identifier)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                          RESULT = parser.nf.Field(parser.pos(a, b), a, b.getIdentifier());
                                                         
              CUP$Grm$result = new java_cup.runtime.Symbol(125/*field_access*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 288: // field_access ::= name DOT SUPER DOT IDENTIFIER
            {
              Field RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).right;
    Name a = (Name)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-4)).value;
    int nleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Token n = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Identifier b = (Identifier)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                        RESULT = parser.nf.Field(parser.pos(b),
                parser.nf.Super(parser.pos(n), a.toType()),
                b.getIdentifier());
                                       
              CUP$Grm$result = new java_cup.runtime.Symbol(125/*field_access*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 287: // field_access ::= SUPER DOT IDENTIFIER
            {
              Field RESULT = null;
    int nleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Token n = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Identifier a = (Identifier)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                             RESULT = parser.nf.Field(parser.pos(a),
                parser.nf.Super(parser.pos(n)),
                a.getIdentifier());
                            
              CUP$Grm$result = new java_cup.runtime.Symbol(125/*field_access*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 286: // field_access ::= primary DOT IDENTIFIER
            {
              Field RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Identifier b = (Identifier)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                               RESULT = parser.nf.Field(parser.pos(b), a,
                b.getIdentifier());
                              
              CUP$Grm$result = new java_cup.runtime.Symbol(125/*field_access*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 285: // dims ::= dims LBRACK RBRACK
            {
              Integer RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Integer a = (Integer)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
   
                         RESULT = new Integer(a.intValue() + 1);
                        
              CUP$Grm$result = new java_cup.runtime.Symbol(124/*dims*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 284: // dims ::= LBRACK RBRACK
            {
              Integer RESULT = null;
      RESULT = new Integer(1)
              CUP$Grm$result = new java_cup.runtime.Symbol(124/*dims*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 283: // dims_opt ::= dims
            {
              Integer RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Integer a = (Integer)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(123/*dims_opt*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 282: // dims_opt ::=
            {
              Integer RESULT = null;
      RESULT = new Integer(0)
              CUP$Grm$result = new java_cup.runtime.Symbol(123/*dims_opt*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 281: // dim_expr ::= LBRACK expression RBRACK
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(122/*dim_expr*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 280: // dim_exprs ::= dim_exprs dim_expr
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr b = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a;
               a.add(b)
              CUP$Grm$result = new java_cup.runtime.Symbol(121/*dim_exprs*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 279: // dim_exprs ::= dim_expr
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
               List l = new TypedList(new LinkedList(), Expr.class, false);
               l.add(a);
               RESULT = l;
              
              CUP$Grm$result = new java_cup.runtime.Symbol(121/*dim_exprs*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 278: // array_creation_expression ::= NEW class_or_interface_type dims array_initializer
            {
              NewArray RESULT = null;
    int nleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).right;
    Token n = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-3)).value;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    TypeNode a = (TypeNode)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    Integer b = (Integer)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
    int cleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int cright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    ArrayInit c = (ArrayInit)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                               RESULT = parser.nf.NewArray(parser.pos(n), a,
                b.intValue(), c);
                                                              
              CUP$Grm$result = new java_cup.runtime.Symbol(120/*array_creation_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 277: // array_creation_expression ::= NEW primitive_type dims array_initializer
            {
              NewArray RESULT = null;
    int nleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).right;
    Token n = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-3)).value;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    TypeNode a = (TypeNode)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    Integer b = (Integer)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
    int cleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int cright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    ArrayInit c = (ArrayInit)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                      RESULT = parser.nf.NewArray(parser.pos(n), a,
                b.intValue(), c);
                                                     
              CUP$Grm$result = new java_cup.runtime.Symbol(120/*array_creation_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 276: // array_creation_expression ::= NEW class_or_interface_type dim_exprs dims_opt
            {
              NewArray RESULT = null;
    int nleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).right;
    Token n = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-3)).value;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    TypeNode a = (TypeNode)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    List b = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
    int cleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int cright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Integer c = (Integer)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                           RESULT = parser.nf.NewArray(parser.pos(n), a, b,
                c.intValue());
                                                          
              CUP$Grm$result = new java_cup.runtime.Symbol(120/*array_creation_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 275: // array_creation_expression ::= NEW primitive_type dim_exprs dims_opt
            {
              NewArray RESULT = null;
    int nleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).right;
    Token n = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-3)).value;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    TypeNode a = (TypeNode)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    List b = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
    int cleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int cright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Integer c = (Integer)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                  RESULT = parser.nf.NewArray(parser.pos(n), a, b,
                c.intValue());
                                                 
              CUP$Grm$result = new java_cup.runtime.Symbol(120/*array_creation_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 274: // argument_list ::= argument_list COMMA expression
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr b = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                       RESULT = a;
               a.add(b);
                                      
              CUP$Grm$result = new java_cup.runtime.Symbol(119/*argument_list*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 273: // argument_list ::= expression
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                 List l = new TypedList(new LinkedList(), Expr.class, false);
               l.add(a);
               RESULT = l;
                
              CUP$Grm$result = new java_cup.runtime.Symbol(119/*argument_list*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 272: // argument_list_opt ::= argument_list
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(118/*argument_list_opt*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 271: // argument_list_opt ::=
            {
              List RESULT = null;
      RESULT = new TypedList(new LinkedList(), Expr.class, false)
              CUP$Grm$result = new java_cup.runtime.Symbol(118/*argument_list_opt*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 270: // class_instance_creation_expression ::= class_instance_creation_expression DOT NEW simple_name LPAREN argument_list_opt RPAREN class_body
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-7)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-7)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-7)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).right;
    Name b = (Name)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-4)).value;
    int cleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int cright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    List c = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int dleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int dright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    ClassBody d = (ClassBody)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                                                                              RESULT = parser.nf.New(parser.pos(a, d), a, b.toType(), c, d);
                                                                                                             
              CUP$Grm$result = new java_cup.runtime.Symbol(117/*class_instance_creation_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-7)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 269: // class_instance_creation_expression ::= class_instance_creation_expression DOT NEW simple_name LPAREN argument_list_opt RPAREN
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-6)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-6)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-6)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).right;
    Name b = (Name)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-3)).value;
    int cleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int cright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    List c = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
    int eleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Token e = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                                                                   RESULT = parser.nf.New(parser.pos(a, e), a, b.toType(), c);
                                                                                                  
              CUP$Grm$result = new java_cup.runtime.Symbol(117/*class_instance_creation_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-6)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 268: // class_instance_creation_expression ::= name DOT NEW simple_name LPAREN argument_list_opt RPAREN class_body
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-7)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-7)).right;
    Name a = (Name)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-7)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).right;
    Name b = (Name)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-4)).value;
    int cleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int cright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    List c = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int dleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int dright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    ClassBody d = (ClassBody)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                                                RESULT = parser.nf.New(parser.pos(a), a.toExpr(),
              b.toType(), c, d);
                                                                               
              CUP$Grm$result = new java_cup.runtime.Symbol(117/*class_instance_creation_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-7)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 267: // class_instance_creation_expression ::= name DOT NEW simple_name LPAREN argument_list_opt RPAREN
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-6)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-6)).right;
    Name a = (Name)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-6)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).right;
    Name b = (Name)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-3)).value;
    int cleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int cright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    List c = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
   
                                                                   RESULT = parser.nf.New(parser.pos(a), a.toExpr(),
              b.toType(), c);
                                                                  
              CUP$Grm$result = new java_cup.runtime.Symbol(117/*class_instance_creation_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-6)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 266: // class_instance_creation_expression ::= primary DOT NEW simple_name LPAREN argument_list_opt RPAREN class_body
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-7)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-7)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-7)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).right;
    Name b = (Name)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-4)).value;
    int cleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int cright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    List c = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int dleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int dright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    ClassBody d = (ClassBody)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                                                   RESULT = parser.nf.New(parser.pos(a), a,
              b.toType(), c, d);
                                                                                  
              CUP$Grm$result = new java_cup.runtime.Symbol(117/*class_instance_creation_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-7)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 265: // class_instance_creation_expression ::= primary DOT NEW simple_name LPAREN argument_list_opt RPAREN
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-6)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-6)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-6)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).right;
    Name b = (Name)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-3)).value;
    int cleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int cright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    List c = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
   
                                                                      RESULT = parser.nf.New(parser.pos(a), a,
              b.toType(), c);
                                                                     
              CUP$Grm$result = new java_cup.runtime.Symbol(117/*class_instance_creation_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-6)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 264: // class_instance_creation_expression ::= NEW class_type LPAREN argument_list_opt RPAREN class_body
            {
              Expr RESULT = null;
    int nleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-5)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-5)).right;
    Token n = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-5)).value;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).right;
    TypeNode a = (TypeNode)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-4)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    List b = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int cleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int cright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    ClassBody c = (ClassBody)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                                      RESULT = parser.nf.New(parser.pos(n), a, b, c);
                                                                     
              CUP$Grm$result = new java_cup.runtime.Symbol(117/*class_instance_creation_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-5)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 263: // class_instance_creation_expression ::= NEW class_type LPAREN argument_list_opt RPAREN
            {
              Expr RESULT = null;
    int nleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).right;
    Token n = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-4)).value;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).right;
    TypeNode a = (TypeNode)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-3)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    List b = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
   
                                                         RESULT = parser.nf.New(parser.pos(n), a, b);
                                                        
              CUP$Grm$result = new java_cup.runtime.Symbol(117/*class_instance_creation_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 262: // primary_no_new_array ::= name DOT THIS
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Name a = (Name)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int nleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Token n = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                      RESULT = parser.nf.This(parser.pos(n), a.toType());
                     
              CUP$Grm$result = new java_cup.runtime.Symbol(116/*primary_no_new_array*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 261: // primary_no_new_array ::= name DOT CLASS
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Name a = (Name)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int nleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Token n = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                       RESULT = parser.nf.Field(parser.pos(n), a.toType(), "class");
                      
              CUP$Grm$result = new java_cup.runtime.Symbol(116/*primary_no_new_array*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 260: // primary_no_new_array ::= array_type DOT CLASS
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    TypeNode a = (TypeNode)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int nleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Token n = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                             RESULT = parser.nf.Field(parser.pos(n), a, "class");
                            
              CUP$Grm$result = new java_cup.runtime.Symbol(116/*primary_no_new_array*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 259: // primary_no_new_array ::= VOID DOT CLASS
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Token a = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int nleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Token n = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                       RESULT = parser.nf.Field(parser.pos(n),
                parser.nf.CanonicalTypeNode(parser.pos(a),
                parser.ts.Void()), "class");
                      
              CUP$Grm$result = new java_cup.runtime.Symbol(116/*primary_no_new_array*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 258: // primary_no_new_array ::= primitive_type DOT CLASS
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    TypeNode a = (TypeNode)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int nleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Token n = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                 RESULT = parser.nf.Field(parser.pos(n), a, "class");
                                
              CUP$Grm$result = new java_cup.runtime.Symbol(116/*primary_no_new_array*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 257: // primary_no_new_array ::= array_access
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    ArrayAccess a = (ArrayAccess)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(116/*primary_no_new_array*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 256: // primary_no_new_array ::= method_invocation
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Call a = (Call)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(116/*primary_no_new_array*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 255: // primary_no_new_array ::= field_access
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Field a = (Field)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(116/*primary_no_new_array*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 254: // primary_no_new_array ::= LPAREN expression RPAREN
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(116/*primary_no_new_array*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 253: // primary_no_new_array ::= THIS
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Token a = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = parser.nf.This(parser.pos(a))
              CUP$Grm$result = new java_cup.runtime.Symbol(116/*primary_no_new_array*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 252: // primary_no_new_array ::= literal
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    polyglot.ast.Lit a = (polyglot.ast.Lit)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(116/*primary_no_new_array*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 251: // primary ::= array_creation_expression
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    NewArray a = (NewArray)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(115/*primary*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 250: // primary ::= primary_no_new_array
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(115/*primary*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 249: // assert_statement ::= ASSERT expression COLON expression SEMICOLON
            {
              Assert RESULT = null;
    int xleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).left;
    int xright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).right;
    Token x = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-4)).value;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-3)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    Expr b = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
   
                                                       RESULT = parser.nf.Assert(parser.pos(x), a, b);
                                                      
              CUP$Grm$result = new java_cup.runtime.Symbol(114/*assert_statement*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 248: // assert_statement ::= ASSERT expression SEMICOLON
            {
              Assert RESULT = null;
    int xleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int xright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Token x = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
   
                                    RESULT = parser.nf.Assert(parser.pos(x), a);
                                   
              CUP$Grm$result = new java_cup.runtime.Symbol(114/*assert_statement*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 247: // finally ::= FINALLY block
            {
              Block RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Block a = (Block)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(113/*finally*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 246: // catch_clause ::= CATCH LPAREN formal_parameter RPAREN block
            {
              Catch RESULT = null;
    int nleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).right;
    Token n = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-4)).value;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Formal a = (Formal)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Block b = (Block)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                     RESULT = parser.nf.Catch(parser.pos(n), a, b);
                                                    
              CUP$Grm$result = new java_cup.runtime.Symbol(112/*catch_clause*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 245: // catches ::= catches catch_clause
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Catch b = (Catch)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                             RESULT = a;
               a.add(b);
                            
              CUP$Grm$result = new java_cup.runtime.Symbol(111/*catches*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 244: // catches ::= catch_clause
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Catch a = (Catch)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                   List l = new TypedList(new LinkedList(), Catch.class, false);
               l.add(a);
               RESULT = l;
                  
              CUP$Grm$result = new java_cup.runtime.Symbol(111/*catches*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 243: // catches_opt ::= catches
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(110/*catches_opt*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 242: // catches_opt ::=
            {
              List RESULT = null;
   
    RESULT = new TypedList(new LinkedList(), Catch.class, false);
   
              CUP$Grm$result = new java_cup.runtime.Symbol(110/*catches_opt*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 241: // try_statement ::= TRY block catches_opt finally
            {
              Try RESULT = null;
    int nleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).right;
    Token n = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-3)).value;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Block a = (Block)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    List b = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
    int cleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int cright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Block c = (Block)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                          RESULT = parser.nf.Try(parser.pos(n), a, b, c);
                                         
              CUP$Grm$result = new java_cup.runtime.Symbol(109/*try_statement*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 240: // try_statement ::= TRY block catches
            {
              Try RESULT = null;
    int nleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Token n = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    Block a = (Block)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    List b = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                            RESULT = parser.nf.Try(parser.pos(n), a, b);
                           
              CUP$Grm$result = new java_cup.runtime.Symbol(109/*try_statement*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 239: // synchronized_statement ::= SYNCHRONIZED LPAREN expression RPAREN block
            {
              Synchronized RESULT = null;
    int nleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).right;
    Token n = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-4)).value;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Block b = (Block)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                      RESULT = parser.nf.Synchronized(parser.pos(n), a, b);
                                                     
              CUP$Grm$result = new java_cup.runtime.Symbol(108/*synchronized_statement*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 238: // throw_statement ::= THROW expression SEMICOLON
            {
              Throw RESULT = null;
    int nleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Token n = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
   
                                   RESULT = parser.nf.Throw(parser.pos(n), a);
                                  
              CUP$Grm$result = new java_cup.runtime.Symbol(107/*throw_statement*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 237: // return_statement ::= RETURN expression_opt SEMICOLON
            {
              Return RESULT = null;
    int nleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Token n = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
   
                                        RESULT = parser.nf.Return(parser.pos(n), a);
                                       
              CUP$Grm$result = new java_cup.runtime.Symbol(106/*return_statement*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 236: // continue_statement ::= CONTINUE identifier_opt SEMICOLON
            {
              Branch RESULT = null;
    int nleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Token n = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    Name a = (Name)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
   
                                          if (a == null)
                   RESULT = parser.nf.Continue(parser.pos(n));
               else
                   RESULT = parser.nf.Continue(parser.pos(n), a.toString());
                                         
              CUP$Grm$result = new java_cup.runtime.Symbol(105/*continue_statement*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 235: // break_statement ::= BREAK identifier_opt SEMICOLON
            {
              Branch RESULT = null;
    int nleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Token n = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    Name a = (Name)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
   
                                       if (a == null)
                   RESULT = parser.nf.Break(parser.pos(n));
               else
                   RESULT = parser.nf.Break(parser.pos(n), a.toString());
                                      
              CUP$Grm$result = new java_cup.runtime.Symbol(104/*break_statement*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 234: // identifier_opt ::= IDENTIFIER
            {
              Name RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Identifier a = (Identifier)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                 RESULT = new Name(parser, parser.pos(a),
                a.getIdentifier());
                
              CUP$Grm$result = new java_cup.runtime.Symbol(103/*identifier_opt*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 233: // identifier_opt ::=
            {
              Name RESULT = null;
      RESULT = null
              CUP$Grm$result = new java_cup.runtime.Symbol(103/*identifier_opt*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 232: // statement_expression_list ::= statement_expression_list COMMA statement_expression
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr b = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                             RESULT = a;
               a.add(parser.nf.Eval(parser.pos(b), b));
                                                            
              CUP$Grm$result = new java_cup.runtime.Symbol(102/*statement_expression_list*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 231: // statement_expression_list ::= statement_expression
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                           List l = new TypedList(new LinkedList(), Eval.class, false);
               l.add(parser.nf.Eval(parser.pos(a), a));
               RESULT = l;
                          
              CUP$Grm$result = new java_cup.runtime.Symbol(102/*statement_expression_list*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 230: // for_update ::= statement_expression_list
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(101/*for_update*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 229: // for_update_opt ::= for_update
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(100/*for_update_opt*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 228: // for_update_opt ::=
            {
              List RESULT = null;
   
    RESULT = new TypedList(new LinkedList(), ForUpdate.class, false);
   
              CUP$Grm$result = new java_cup.runtime.Symbol(100/*for_update_opt*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 227: // for_init ::= local_variable_declaration
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                 List l = new TypedList(new LinkedList(), ForInit.class, false);
               l.addAll(a);
               RESULT = l;
                                
              CUP$Grm$result = new java_cup.runtime.Symbol(99/*for_init*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 226: // for_init ::= statement_expression_list
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(99/*for_init*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 225: // for_init_opt ::= for_init
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(98/*for_init_opt*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 224: // for_init_opt ::=
            {
              List RESULT = null;
   
    RESULT = new TypedList(new LinkedList(), ForInit.class, false);
   
              CUP$Grm$result = new java_cup.runtime.Symbol(98/*for_init_opt*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 223: // for_statement_no_short_if ::= FOR LPAREN for_init_opt SEMICOLON expression_opt SEMICOLON for_update_opt RPAREN statement_no_short_if
            {
              For RESULT = null;
    int nleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-8)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-8)).right;
    Token n = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-8)).value;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-6)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-6)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-6)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).right;
    Expr b = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-4)).value;
    int cleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int cright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    List c = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int dleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int dright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Stmt d = (Stmt)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                                                                                     RESULT = parser.nf.For(parser.pos(n), a, b, c, d);
                                                                                                                    
              CUP$Grm$result = new java_cup.runtime.Symbol(97/*for_statement_no_short_if*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-8)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 222: // for_statement ::= FOR LPAREN for_init_opt SEMICOLON expression_opt SEMICOLON for_update_opt RPAREN statement
            {
              For RESULT = null;
    int nleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-8)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-8)).right;
    Token n = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-8)).value;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-6)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-6)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-6)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).right;
    Expr b = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-4)).value;
    int cleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int cright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    List c = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int dleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int dright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Stmt d = (Stmt)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                                                                         RESULT = parser.nf.For(parser.pos(n), a, b, c, d);
                                                                                                        
              CUP$Grm$result = new java_cup.runtime.Symbol(96/*for_statement*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-8)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 221: // do_statement ::= DO statement WHILE LPAREN expression RPAREN SEMICOLON
            {
              Do RESULT = null;
    int nleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-6)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-6)).right;
    Token n = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-6)).value;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-5)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-5)).right;
    Stmt a = (Stmt)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-5)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Expr b = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
   
                                                                RESULT = parser.nf.Do(parser.pos(n), a, b);
                                                               
              CUP$Grm$result = new java_cup.runtime.Symbol(95/*do_statement*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-6)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 220: // while_statement_no_short_if ::= WHILE LPAREN expression RPAREN statement_no_short_if
            {
              While RESULT = null;
    int nleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).right;
    Token n = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-4)).value;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Stmt b = (Stmt)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                               RESULT = parser.nf.While(parser.pos(n), a, b);
                                                              
              CUP$Grm$result = new java_cup.runtime.Symbol(94/*while_statement_no_short_if*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 219: // while_statement ::= WHILE LPAREN expression RPAREN statement
            {
              While RESULT = null;
    int nleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).right;
    Token n = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-4)).value;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Stmt b = (Stmt)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                   RESULT = parser.nf.While(parser.pos(n), a, b);
                                                  
              CUP$Grm$result = new java_cup.runtime.Symbol(93/*while_statement*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 218: // switch_label ::= DEFAULT COLON
            {
              Case RESULT = null;
    int nleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    Token n = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
      RESULT = parser.nf.Default(parser.pos(n))
              CUP$Grm$result = new java_cup.runtime.Symbol(92/*switch_label*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 217: // switch_label ::= CASE constant_expression COLON
            {
              Case RESULT = null;
    int nleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Token n = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
   
                                       RESULT = parser.nf.Case(parser.pos(n), a);
                                      
              CUP$Grm$result = new java_cup.runtime.Symbol(92/*switch_label*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 216: // switch_labels ::= switch_labels switch_label
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Case b = (Case)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                   RESULT = a;
               a.add(b);
                                  
              CUP$Grm$result = new java_cup.runtime.Symbol(91/*switch_labels*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 215: // switch_labels ::= switch_label
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Case a = (Case)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                   List l = new TypedList(new LinkedList(), Case.class, false);
               l.add(a);
               RESULT = l;
                  
              CUP$Grm$result = new java_cup.runtime.Symbol(91/*switch_labels*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 214: // switch_block_statement_group ::= switch_labels block_statements
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    List b = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                       List l = new TypedList(new LinkedList(), SwitchElement.class, false);
               l.addAll(a);
               l.add(parser.nf.SwitchBlock(parser.pos(a), b));
               RESULT = l;
                                      
              CUP$Grm$result = new java_cup.runtime.Symbol(90/*switch_block_statement_group*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 213: // switch_block_statement_groups ::= switch_block_statement_groups switch_block_statement_group
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    List b = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                                   RESULT = a;
               a.addAll(b);
                                                                  
              CUP$Grm$result = new java_cup.runtime.Symbol(89/*switch_block_statement_groups*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 212: // switch_block_statement_groups ::= switch_block_statement_group
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(89/*switch_block_statement_groups*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 211: // switch_block ::= LBRACE RBRACE
            {
              List RESULT = null;
   
                  RESULT = new TypedList(new LinkedList(), SwitchElement.class, false);
                 
              CUP$Grm$result = new java_cup.runtime.Symbol(88/*switch_block*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 210: // switch_block ::= LBRACE switch_labels RBRACE
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(88/*switch_block*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 209: // switch_block ::= LBRACE switch_block_statement_groups RBRACE
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(88/*switch_block*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 208: // switch_block ::= LBRACE switch_block_statement_groups switch_labels RBRACE
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    List b = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
   
                                                                  RESULT = a;
               a.addAll(b);
                                                                 
              CUP$Grm$result = new java_cup.runtime.Symbol(88/*switch_block*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 207: // switch_statement ::= SWITCH LPAREN expression RPAREN switch_block
            {
              Switch RESULT = null;
    int nleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).right;
    Token n = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-4)).value;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    List b = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                       RESULT = parser.nf.Switch(parser.pos(n), a, b);
                                                      
              CUP$Grm$result = new java_cup.runtime.Symbol(87/*switch_statement*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 206: // if_then_else_statement_no_short_if ::= IF LPAREN expression RPAREN statement_no_short_if ELSE statement_no_short_if
            {
              If RESULT = null;
    int nleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-6)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-6)).right;
    Token n = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-6)).value;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-4)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Stmt b = (Stmt)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int cleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int cright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Stmt c = (Stmt)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                                                         RESULT = parser.nf.If(parser.pos(n), a, b, c);
                                                                                        
              CUP$Grm$result = new java_cup.runtime.Symbol(86/*if_then_else_statement_no_short_if*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-6)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 205: // if_then_else_statement ::= IF LPAREN expression RPAREN statement_no_short_if ELSE statement
            {
              If RESULT = null;
    int nleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-6)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-6)).right;
    Token n = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-6)).value;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-4)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Stmt b = (Stmt)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int cleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int cright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Stmt c = (Stmt)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                                             RESULT = parser.nf.If(parser.pos(n), a, b, c);
                                                                            
              CUP$Grm$result = new java_cup.runtime.Symbol(85/*if_then_else_statement*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-6)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 204: // if_then_statement ::= IF LPAREN expression RPAREN statement
            {
              If RESULT = null;
    int nleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).right;
    Token n = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-4)).value;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Stmt b = (Stmt)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                RESULT = parser.nf.If(parser.pos(n), a, b);
                                               
              CUP$Grm$result = new java_cup.runtime.Symbol(84/*if_then_statement*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 203: // statement_expression ::= class_instance_creation_expression
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(83/*statement_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 202: // statement_expression ::= method_invocation
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Call a = (Call)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(83/*statement_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 201: // statement_expression ::= postdecrement_expression
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Unary a = (Unary)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(83/*statement_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 200: // statement_expression ::= postincrement_expression
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Unary a = (Unary)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(83/*statement_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 199: // statement_expression ::= predecrement_expression
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Unary a = (Unary)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(83/*statement_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 198: // statement_expression ::= preincrement_expression
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Unary a = (Unary)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(83/*statement_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 197: // statement_expression ::= assignment
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(83/*statement_expression*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 196: // expression_statement ::= statement_expression SEMICOLON
            {
              Stmt RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
   
                                     RESULT = parser.nf.Eval(parser.pos(a), a);
                                    
              CUP$Grm$result = new java_cup.runtime.Symbol(82/*expression_statement*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 195: // labeled_statement_no_short_if ::= IDENTIFIER COLON statement_no_short_if
            {
              Labeled RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Identifier a = (Identifier)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Stmt b = (Stmt)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                               RESULT = parser.nf.Labeled(parser.pos(a),
                                      a.getIdentifier(), b);
                                              
              CUP$Grm$result = new java_cup.runtime.Symbol(81/*labeled_statement_no_short_if*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 194: // labeled_statement ::= IDENTIFIER COLON statement
            {
              Labeled RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Identifier a = (Identifier)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Stmt b = (Stmt)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                   RESULT = parser.nf.Labeled(parser.pos(a),
                                      a.getIdentifier(), b);
                                  
              CUP$Grm$result = new java_cup.runtime.Symbol(80/*labeled_statement*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 193: // empty_statement ::= SEMICOLON
            {
              Empty RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Token a = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = parser.nf.Empty(parser.pos(a))
              CUP$Grm$result = new java_cup.runtime.Symbol(79/*empty_statement*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 192: // statement_without_trailing_substatement ::= assert_statement
            {
              Stmt RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Assert a = (Assert)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(78/*statement_without_trailing_substatement*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 191: // statement_without_trailing_substatement ::= try_statement
            {
              Stmt RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Try a = (Try)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(78/*statement_without_trailing_substatement*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 190: // statement_without_trailing_substatement ::= throw_statement
            {
              Stmt RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Throw a = (Throw)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(78/*statement_without_trailing_substatement*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 189: // statement_without_trailing_substatement ::= synchronized_statement
            {
              Stmt RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Synchronized a = (Synchronized)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(78/*statement_without_trailing_substatement*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 188: // statement_without_trailing_substatement ::= return_statement
            {
              Stmt RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Return a = (Return)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(78/*statement_without_trailing_substatement*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 187: // statement_without_trailing_substatement ::= continue_statement
            {
              Stmt RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Branch a = (Branch)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(78/*statement_without_trailing_substatement*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 186: // statement_without_trailing_substatement ::= break_statement
            {
              Stmt RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Branch a = (Branch)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(78/*statement_without_trailing_substatement*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 185: // statement_without_trailing_substatement ::= do_statement
            {
              Stmt RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Do a = (Do)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(78/*statement_without_trailing_substatement*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 184: // statement_without_trailing_substatement ::= switch_statement
            {
              Stmt RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Switch a = (Switch)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(78/*statement_without_trailing_substatement*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 183: // statement_without_trailing_substatement ::= expression_statement
            {
              Stmt RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Stmt a = (Stmt)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(78/*statement_without_trailing_substatement*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 182: // statement_without_trailing_substatement ::= empty_statement
            {
              Stmt RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Empty a = (Empty)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(78/*statement_without_trailing_substatement*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 181: // statement_without_trailing_substatement ::= block
            {
              Stmt RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Block a = (Block)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(78/*statement_without_trailing_substatement*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 180: // statement_no_short_if ::= for_statement_no_short_if
            {
              Stmt RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    For a = (For)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(77/*statement_no_short_if*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 179: // statement_no_short_if ::= while_statement_no_short_if
            {
              Stmt RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    While a = (While)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(77/*statement_no_short_if*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 178: // statement_no_short_if ::= if_then_else_statement_no_short_if
            {
              Stmt RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    If a = (If)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(77/*statement_no_short_if*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 177: // statement_no_short_if ::= labeled_statement_no_short_if
            {
              Stmt RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Labeled a = (Labeled)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(77/*statement_no_short_if*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 176: // statement_no_short_if ::= statement_without_trailing_substatement
            {
              Stmt RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Stmt a = (Stmt)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(77/*statement_no_short_if*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 175: // statement ::= for_statement
            {
              Stmt RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    For a = (For)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(76/*statement*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 174: // statement ::= while_statement
            {
              Stmt RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    While a = (While)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(76/*statement*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 173: // statement ::= if_then_else_statement
            {
              Stmt RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    If a = (If)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(76/*statement*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 172: // statement ::= if_then_statement
            {
              Stmt RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    If a = (If)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(76/*statement*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 171: // statement ::= labeled_statement
            {
              Stmt RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Labeled a = (Labeled)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(76/*statement*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 170: // statement ::= statement_without_trailing_substatement
            {
              Stmt RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Stmt a = (Stmt)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(76/*statement*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 169: // local_variable_declaration ::= FINAL type variable_declarators
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    TypeNode a = (TypeNode)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    List b = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                        RESULT = parser.variableDeclarators(a, b, Flags.FINAL);
                                       
              CUP$Grm$result = new java_cup.runtime.Symbol(75/*local_variable_declaration*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 168: // local_variable_declaration ::= type variable_declarators
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    TypeNode a = (TypeNode)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    List b = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                  RESULT = parser.variableDeclarators(a, b, Flags.NONE);
                                 
              CUP$Grm$result = new java_cup.runtime.Symbol(75/*local_variable_declaration*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 167: // local_variable_declaration_statement ::= local_variable_declaration SEMICOLON
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(74/*local_variable_declaration_statement*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 166: // block_statement ::= interface_declaration
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    ClassDecl a = (ClassDecl)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                            List l = new TypedList(new LinkedList(), Stmt.class, false);
               l.add(parser.nf.LocalClassDecl(parser.pos(a), a));
               RESULT = l;
                           
              CUP$Grm$result = new java_cup.runtime.Symbol(73/*block_statement*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 165: // block_statement ::= class_declaration
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    ClassDecl a = (ClassDecl)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                        List l = new TypedList(new LinkedList(), Stmt.class, false);
               l.add(parser.nf.LocalClassDecl(parser.pos(a), a));
               RESULT = l;
                       
              CUP$Grm$result = new java_cup.runtime.Symbol(73/*block_statement*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 164: // block_statement ::= statement
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Stmt a = (Stmt)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                List l = new TypedList(new LinkedList(), Stmt.class, false);
               l.add(a);
               RESULT = l;
               
              CUP$Grm$result = new java_cup.runtime.Symbol(73/*block_statement*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 163: // block_statement ::= local_variable_declaration_statement
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(73/*block_statement*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 162: // block_statements ::= block_statements block_statement
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    List b = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                         RESULT = a;
               a.addAll(b);
                                        
              CUP$Grm$result = new java_cup.runtime.Symbol(72/*block_statements*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 161: // block_statements ::= block_statement
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                      List l = new TypedList(new LinkedList(), Stmt.class, false);
               l.addAll(a);
               RESULT = l;
                     
              CUP$Grm$result = new java_cup.runtime.Symbol(72/*block_statements*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 160: // block_statements_opt ::= block_statements
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(71/*block_statements_opt*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 159: // block_statements_opt ::=
            {
              List RESULT = null;
      RESULT = new TypedList(new LinkedList(), Stmt.class, false)
              CUP$Grm$result = new java_cup.runtime.Symbol(71/*block_statements_opt*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 158: // block ::= LBRACE block_statements_opt RBRACE
            {
              Block RESULT = null;
    int nleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Token n = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
   
                                           RESULT = parser.nf.Block(parser.pos(n), a);
                                          
              CUP$Grm$result = new java_cup.runtime.Symbol(70/*block*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 157: // variable_initializers ::= variable_initializers COMMA variable_initializer
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr b = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                         RESULT = a; a.add(b);
                                                        
              CUP$Grm$result = new java_cup.runtime.Symbol(69/*variable_initializers*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 156: // variable_initializers ::= variable_initializer
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                           List l = new TypedList(new LinkedList(), Expr.class, false);
           l.add(a);
           RESULT = l;
                          
              CUP$Grm$result = new java_cup.runtime.Symbol(69/*variable_initializers*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 155: // array_initializer ::= LBRACE RBRACE
            {
              ArrayInit RESULT = null;
    int nleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    Token n = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
      RESULT = parser.nf.ArrayInit(parser.pos(n))
              CUP$Grm$result = new java_cup.runtime.Symbol(68/*array_initializer*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 154: // array_initializer ::= LBRACE COMMA RBRACE
            {
              ArrayInit RESULT = null;
    int nleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Token n = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
   
                          RESULT = parser.nf.ArrayInit(parser.pos(n));
                         
              CUP$Grm$result = new java_cup.runtime.Symbol(68/*array_initializer*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 153: // array_initializer ::= LBRACE variable_initializers RBRACE
            {
              ArrayInit RESULT = null;
    int nleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Token n = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
   
                                            RESULT = parser.nf.ArrayInit(parser.pos(n), a);
                                           
              CUP$Grm$result = new java_cup.runtime.Symbol(68/*array_initializer*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 152: // array_initializer ::= LBRACE variable_initializers COMMA RBRACE
            {
              ArrayInit RESULT = null;
    int nleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).right;
    Token n = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-3)).value;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
   
                                                  RESULT = parser.nf.ArrayInit(parser.pos(n), a);
                                                 
              CUP$Grm$result = new java_cup.runtime.Symbol(68/*array_initializer*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 151: // abstract_method_declaration ::= method_header SEMICOLON
            {
              MethodDecl RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    MethodDecl a = (MethodDecl)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(67/*abstract_method_declaration*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 150: // constant_declaration ::= field_declaration
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(66/*constant_declaration*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 149: // interface_member_declaration ::= SEMICOLON
            {
              List RESULT = null;
      RESULT = Collections.EMPTY_LIST; 
              CUP$Grm$result = new java_cup.runtime.Symbol(65/*interface_member_declaration*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 148: // interface_member_declaration ::= interface_declaration
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    ClassDecl a = (ClassDecl)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                            List l = new TypedList(new LinkedList(), ClassMember.class, false);
               l.add(a);
               RESULT = l;
                           
              CUP$Grm$result = new java_cup.runtime.Symbol(65/*interface_member_declaration*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 147: // interface_member_declaration ::= class_declaration
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    ClassDecl a = (ClassDecl)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                        List l = new TypedList(new LinkedList(), ClassMember.class, false);
               l.add(a);
               RESULT = l;
                       
              CUP$Grm$result = new java_cup.runtime.Symbol(65/*interface_member_declaration*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 146: // interface_member_declaration ::= abstract_method_declaration
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    MethodDecl a = (MethodDecl)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                  List l = new TypedList(new LinkedList(), ClassMember.class, false);
               l.add(a);
               RESULT = l;
                                 
              CUP$Grm$result = new java_cup.runtime.Symbol(65/*interface_member_declaration*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 145: // interface_member_declaration ::= constant_declaration
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(65/*interface_member_declaration*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 144: // interface_member_declarations ::= interface_member_declarations interface_member_declaration
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    List b = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                                   RESULT = a;
               a.addAll(b);
                                                                  
              CUP$Grm$result = new java_cup.runtime.Symbol(64/*interface_member_declarations*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 143: // interface_member_declarations ::= interface_member_declaration
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(64/*interface_member_declarations*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 142: // interface_member_declarations_opt ::= interface_member_declarations
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(63/*interface_member_declarations_opt*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 141: // interface_member_declarations_opt ::=
            {
              List RESULT = null;
   
    RESULT = new TypedList(new LinkedList(), ClassMember.class, false);
   
              CUP$Grm$result = new java_cup.runtime.Symbol(63/*interface_member_declarations_opt*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 140: // interface_body ::= LBRACE interface_member_declarations_opt RBRACE
            {
              ClassBody RESULT = null;
    int nleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Token n = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
   
                                                        RESULT = parser.nf.ClassBody(parser.pos(n), a);
                                                       
              CUP$Grm$result = new java_cup.runtime.Symbol(62/*interface_body*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 139: // extends_interfaces ::= extends_interfaces COMMA interface_type
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    TypeNode b = (TypeNode)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                RESULT = a;
               a.add(b);
                                               
              CUP$Grm$result = new java_cup.runtime.Symbol(61/*extends_interfaces*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 138: // extends_interfaces ::= EXTENDS interface_type
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    TypeNode a = (TypeNode)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                             List l = new TypedList(new LinkedList(), TypeNode.class, false);
               l.add(a);
               RESULT = l;
                            
              CUP$Grm$result = new java_cup.runtime.Symbol(61/*extends_interfaces*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 137: // extends_interfaces_opt ::= extends_interfaces
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(60/*extends_interfaces_opt*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 136: // extends_interfaces_opt ::=
            {
              List RESULT = null;
   
    RESULT = new TypedList(new LinkedList(), TypeNode.class, false);
   
              CUP$Grm$result = new java_cup.runtime.Symbol(60/*extends_interfaces_opt*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 135: // interface_declaration ::= modifiers_opt INTERFACE IDENTIFIER extends_interfaces_opt interface_body
            {
              ClassDecl RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).right;
    Flags a = (Flags)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-4)).value;
    int nleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).right;
    Token n = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-3)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Identifier b = (Identifier)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int cleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int cright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    List c = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
    int dleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int dright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    ClassBody d = (ClassBody)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                                                       RESULT = parser.nf.ClassDecl(
                    parser.pos(n), a.Interface(),
                        b.getIdentifier(), null, c, d);
                                                                                      
              CUP$Grm$result = new java_cup.runtime.Symbol(59/*interface_declaration*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 134: // explicit_constructor_invocation ::= class_instance_creation_expression DOT SUPER LPAREN argument_list_opt RPAREN SEMICOLON
            {
              ConstructorCall RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-6)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-6)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-6)).value;
    int nleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).right;
    Token n = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-4)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    List b = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int eleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Token e = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                                                                   RESULT = parser.nf.SuperCall(parser.pos(a, e), a, b);
                                                                                                  
              CUP$Grm$result = new java_cup.runtime.Symbol(58/*explicit_constructor_invocation*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-6)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 133: // explicit_constructor_invocation ::= class_instance_creation_expression DOT THIS LPAREN argument_list_opt RPAREN SEMICOLON
            {
              ConstructorCall RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-6)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-6)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-6)).value;
    int nleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).right;
    Token n = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-4)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    List b = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int eleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Token e = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                                                                  RESULT = parser.nf.ThisCall(parser.pos(a, e), a, b);
                                                                                                 
              CUP$Grm$result = new java_cup.runtime.Symbol(58/*explicit_constructor_invocation*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-6)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 132: // explicit_constructor_invocation ::= primary DOT SUPER LPAREN argument_list_opt RPAREN SEMICOLON
            {
              ConstructorCall RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-6)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-6)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-6)).value;
    int nleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).right;
    Token n = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-4)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    List b = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
   
                                                                      RESULT = parser.nf.SuperCall(parser.pos(n), a, b);
                                                                     
              CUP$Grm$result = new java_cup.runtime.Symbol(58/*explicit_constructor_invocation*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-6)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 131: // explicit_constructor_invocation ::= primary DOT THIS LPAREN argument_list_opt RPAREN SEMICOLON
            {
              ConstructorCall RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-6)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-6)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-6)).value;
    int nleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).right;
    Token n = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-4)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    List b = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
   
                                                                     RESULT = parser.nf.ThisCall(parser.pos(n), a, b);
                                                                    
              CUP$Grm$result = new java_cup.runtime.Symbol(58/*explicit_constructor_invocation*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-6)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 130: // explicit_constructor_invocation ::= SUPER LPAREN argument_list_opt RPAREN SEMICOLON
            {
              ConstructorCall RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).right;
    Token a = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-4)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    List b = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
   
                                                        RESULT = parser.nf.SuperCall(parser.pos(a), b);
                                                       
              CUP$Grm$result = new java_cup.runtime.Symbol(58/*explicit_constructor_invocation*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 129: // explicit_constructor_invocation ::= THIS LPAREN argument_list_opt RPAREN SEMICOLON
            {
              ConstructorCall RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).right;
    Token a = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-4)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    List b = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
   
                                                       RESULT = parser.nf.ThisCall(parser.pos(a), b);
                                                      
              CUP$Grm$result = new java_cup.runtime.Symbol(58/*explicit_constructor_invocation*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 128: // constructor_body ::= LBRACE RBRACE
            {
              Block RESULT = null;
    int nleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    Token n = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
   
                    RESULT = parser.nf.Block(parser.pos(n),
                parser.nf.SuperCall(parser.pos(n),
                Collections.EMPTY_LIST));
                   
              CUP$Grm$result = new java_cup.runtime.Symbol(57/*constructor_body*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 127: // constructor_body ::= LBRACE block_statements RBRACE
            {
              Block RESULT = null;
    int nleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Token n = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
   
                                       a.add(0, parser.nf.SuperCall(parser.pos(n),
                Collections.EMPTY_LIST));
               RESULT = parser.nf.Block(parser.pos(n), a);
                                      
              CUP$Grm$result = new java_cup.runtime.Symbol(57/*constructor_body*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 126: // constructor_body ::= LBRACE explicit_constructor_invocation RBRACE
            {
              Block RESULT = null;
    int nleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Token n = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    ConstructorCall a = (ConstructorCall)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
   
                                                      RESULT = parser.nf.Block(parser.pos(n), a);
                                                     
              CUP$Grm$result = new java_cup.runtime.Symbol(57/*constructor_body*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 125: // constructor_body ::= LBRACE explicit_constructor_invocation block_statements RBRACE
            {
              Block RESULT = null;
    int nleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).right;
    Token n = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-3)).value;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    ConstructorCall a = (ConstructorCall)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    List b = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
   
                                                                         List l = new TypedList(new LinkedList(), Stmt.class, false);
               l.add(a);
               l.addAll(b);
               RESULT = parser.nf.Block(parser.pos(n), l);
                                                                        
              CUP$Grm$result = new java_cup.runtime.Symbol(57/*constructor_body*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 124: // constructor_declaration ::= modifiers_opt simple_name LPAREN formal_parameter_list_opt RPAREN throws_opt constructor_body
            {
              ConstructorDecl RESULT = null;
    int mleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-6)).left;
    int mright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-6)).right;
    Flags m = (Flags)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-6)).value;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-5)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-5)).right;
    Name a = (Name)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-5)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).right;
    List b = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-3)).value;
    int cleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int cright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    List c = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
    int dleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int dright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Block d = (Block)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                                                                            RESULT = parser.nf.ConstructorDecl(parser.pos(a), m, a.toString(), b,
                c, d);
                                                                                                           
              CUP$Grm$result = new java_cup.runtime.Symbol(56/*constructor_declaration*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-6)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 123: // static_initializer ::= STATIC block
            {
              Block RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Block a = (Block)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(55/*static_initializer*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 122: // method_body ::= SEMICOLON
            {
              Block RESULT = null;
      RESULT = null
              CUP$Grm$result = new java_cup.runtime.Symbol(54/*method_body*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 121: // method_body ::= block
            {
              Block RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Block a = (Block)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(54/*method_body*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 120: // class_type_list ::= class_type_list COMMA class_type
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    TypeNode b = (TypeNode)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                         RESULT = a;
               a.add(b);
                                        
              CUP$Grm$result = new java_cup.runtime.Symbol(53/*class_type_list*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 119: // class_type_list ::= class_type
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    TypeNode a = (TypeNode)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                 List l = new TypedList(new LinkedList(), TypeNode.class, false);
               l.add(a);
               RESULT = l;
                
              CUP$Grm$result = new java_cup.runtime.Symbol(53/*class_type_list*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 118: // throws ::= THROWS class_type_list
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(52/*throws*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 117: // throws_opt ::= throws
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(51/*throws_opt*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 116: // throws_opt ::=
            {
              List RESULT = null;
   
    RESULT = new TypedList(new LinkedList(), TypeNode.class, false);
   
              CUP$Grm$result = new java_cup.runtime.Symbol(51/*throws_opt*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 115: // formal_parameter ::= FINAL type variable_declarator_id
            {
              Formal RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    TypeNode a = (TypeNode)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    VarDeclarator b = (VarDeclarator)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                          RESULT = parser.nf.Formal(parser.pos(b), Flags.FINAL,
                     parser.array(a, b.dims), b.name);
                                         
              CUP$Grm$result = new java_cup.runtime.Symbol(50/*formal_parameter*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 114: // formal_parameter ::= type variable_declarator_id
            {
              Formal RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    TypeNode a = (TypeNode)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    VarDeclarator b = (VarDeclarator)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                    RESULT = parser.nf.Formal(parser.pos(b), Flags.NONE,
                                         parser.array(a, b.dims), b.name);
                                   
              CUP$Grm$result = new java_cup.runtime.Symbol(50/*formal_parameter*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 113: // formal_parameter_list ::= formal_parameter_list COMMA formal_parameter
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Formal b = (Formal)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                     RESULT = a;
               a.add(b);
                                                    
              CUP$Grm$result = new java_cup.runtime.Symbol(49/*formal_parameter_list*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 112: // formal_parameter_list ::= formal_parameter
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Formal a = (Formal)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                       List l = new TypedList(new LinkedList(), Formal.class, false);
               l.add(a);
               RESULT = l;
                      
              CUP$Grm$result = new java_cup.runtime.Symbol(49/*formal_parameter_list*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 111: // formal_parameter_list_opt ::= formal_parameter_list
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(48/*formal_parameter_list_opt*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 110: // formal_parameter_list_opt ::=
            {
              List RESULT = null;
   
    RESULT = new TypedList(new LinkedList(), Formal.class, false);
   
              CUP$Grm$result = new java_cup.runtime.Symbol(48/*formal_parameter_list_opt*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 109: // method_header ::= modifiers_opt VOID IDENTIFIER LPAREN formal_parameter_list_opt RPAREN throws_opt
            {
              MethodDecl RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-6)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-6)).right;
    Flags a = (Flags)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-6)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-5)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-5)).right;
    Token b = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-5)).value;
    int cleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).left;
    int cright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).right;
    Identifier c = (Identifier)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-4)).value;
    int dleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int dright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    List d = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int fleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int fright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    List f = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                                                               RESULT = parser.nf.MethodDecl(parser.pos(c), a,
                parser.nf.CanonicalTypeNode(parser.pos(b),
                parser.ts.Void()), c.getIdentifier(), d, f, null);
                                                                                              
              CUP$Grm$result = new java_cup.runtime.Symbol(47/*method_header*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-6)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 108: // method_header ::= modifiers_opt type IDENTIFIER LPAREN formal_parameter_list_opt RPAREN dims_opt throws_opt
            {
              MethodDecl RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-7)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-7)).right;
    Flags a = (Flags)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-7)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-6)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-6)).right;
    TypeNode b = (TypeNode)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-6)).value;
    int cleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-5)).left;
    int cright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-5)).right;
    Identifier c = (Identifier)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-5)).value;
    int dleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).left;
    int dright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).right;
    List d = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-3)).value;
    int eleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    Integer e = (Integer)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
    int fleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int fright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    List f = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                                                                          RESULT = parser.nf.MethodDecl(parser.pos(c), a,
                parser.array(b, e.intValue()), c.getIdentifier(),
                d, f, null);
                                                                                                         
              CUP$Grm$result = new java_cup.runtime.Symbol(47/*method_header*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-7)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 107: // method_declaration ::= method_header method_body
            {
              MethodDecl RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    MethodDecl a = (MethodDecl)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Block b = (Block)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                  RESULT = (MethodDecl) a.body(b);
                                 
              CUP$Grm$result = new java_cup.runtime.Symbol(46/*method_declaration*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 106: // variable_initializer ::= array_initializer
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    ArrayInit a = (ArrayInit)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(45/*variable_initializer*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 105: // variable_initializer ::= expression
            {
              Expr RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr a = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(45/*variable_initializer*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 104: // variable_declarator_id ::= variable_declarator_id LBRACK RBRACK
            {
              VarDeclarator RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    VarDeclarator a = (VarDeclarator)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
   
                                           RESULT = a;
               a.dims++;
                                          
              CUP$Grm$result = new java_cup.runtime.Symbol(44/*variable_declarator_id*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 103: // variable_declarator_id ::= IDENTIFIER
            {
              VarDeclarator RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Identifier a = (Identifier)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                 RESULT = new VarDeclarator(parser.pos(a),
                            a.getIdentifier());
                
              CUP$Grm$result = new java_cup.runtime.Symbol(44/*variable_declarator_id*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 102: // variable_declarator ::= variable_declarator_id EQ variable_initializer
            {
              VarDeclarator RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    VarDeclarator a = (VarDeclarator)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Expr b = (Expr)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                       RESULT = a;
               a.init = b;
                                                      
              CUP$Grm$result = new java_cup.runtime.Symbol(43/*variable_declarator*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 101: // variable_declarator ::= variable_declarator_id
            {
              VarDeclarator RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    VarDeclarator a = (VarDeclarator)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(43/*variable_declarator*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 100: // variable_declarators ::= variable_declarators COMMA variable_declarator
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    VarDeclarator b = (VarDeclarator)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                       RESULT = a;
               a.add(b);
                                                      
              CUP$Grm$result = new java_cup.runtime.Symbol(42/*variable_declarators*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 99: // variable_declarators ::= variable_declarator
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    VarDeclarator a = (VarDeclarator)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                          List l = new TypedList(new LinkedList(), VarDeclarator.class, false);
               l.add(a);
               RESULT = l;
                         
              CUP$Grm$result = new java_cup.runtime.Symbol(42/*variable_declarators*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 98: // field_declaration ::= modifiers_opt type variable_declarators SEMICOLON
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).right;
    Flags a = (Flags)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-3)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    TypeNode b = (TypeNode)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int cleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int cright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    List c = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
   
                                                            List l = new TypedList(new LinkedList(), ClassMember.class, false);
               for (Iterator i = c.iterator(); i.hasNext(); ) {
                   VarDeclarator d = (VarDeclarator) i.next();
                   l.add(parser.nf.FieldDecl(parser.pos(b),
                                             a, parser.array(b, d.dims),
                                             d.name, d.init));
               }
               RESULT = l;
                                                           
              CUP$Grm$result = new java_cup.runtime.Symbol(41/*field_declaration*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 97: // class_member_declaration ::= interface_declaration
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    ClassDecl a = (ClassDecl)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                            List l = new TypedList(new LinkedList(), ClassMember.class, false);
               l.add(a);
               RESULT = l;
                           
              CUP$Grm$result = new java_cup.runtime.Symbol(40/*class_member_declaration*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 96: // class_member_declaration ::= modifiers_opt CLASS IDENTIFIER super_opt interfaces_opt class_body
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-5)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-5)).right;
    Flags a = (Flags)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-5)).value;
    int nleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).right;
    Token n = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-4)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).right;
    Identifier b = (Identifier)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-3)).value;
    int cleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int cright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    TypeNode c = (TypeNode)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int dleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int dright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    List d = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
    int eleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    ClassBody e = (ClassBody)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                                                   List l = new TypedList(new LinkedList(), ClassMember.class, false);
               l.add(parser.nf.ClassDecl(parser.pos(n),
                        a, b.getIdentifier(), c, d, e));
               RESULT = l;
                                                                                  
              CUP$Grm$result = new java_cup.runtime.Symbol(40/*class_member_declaration*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-5)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 95: // class_member_declaration ::= method_declaration
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    MethodDecl a = (MethodDecl)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                         List l = new TypedList(new LinkedList(), ClassMember.class, false);
               l.add(a);
               RESULT = l;
                        
              CUP$Grm$result = new java_cup.runtime.Symbol(40/*class_member_declaration*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 94: // class_member_declaration ::= field_declaration
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(40/*class_member_declaration*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 93: // class_body_declaration ::= SEMICOLON
            {
              List RESULT = null;
      RESULT = Collections.EMPTY_LIST; 
              CUP$Grm$result = new java_cup.runtime.Symbol(39/*class_body_declaration*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 92: // class_body_declaration ::= block
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Block a = (Block)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
            List l = new TypedList(new LinkedList(), ClassMember.class, false);
               l.add(parser.nf.Initializer(parser.pos(a), Flags.NONE, a));
               RESULT = l;
           
              CUP$Grm$result = new java_cup.runtime.Symbol(39/*class_body_declaration*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 91: // class_body_declaration ::= constructor_declaration
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    ConstructorDecl a = (ConstructorDecl)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                              List l = new TypedList(new LinkedList(), ClassMember.class, false);
               l.add(a);
               RESULT = l;
                             
              CUP$Grm$result = new java_cup.runtime.Symbol(39/*class_body_declaration*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 90: // class_body_declaration ::= static_initializer
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Block a = (Block)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                         List l = new TypedList(new LinkedList(), ClassMember.class, false);
               l.add(parser.nf.Initializer(parser.pos(a), Flags.STATIC, a));
               RESULT = l;
                        
              CUP$Grm$result = new java_cup.runtime.Symbol(39/*class_body_declaration*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 89: // class_body_declaration ::= class_member_declaration
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(39/*class_body_declaration*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 88: // class_body_declarations ::= class_body_declarations class_body_declaration
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    List b = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                       RESULT = a;
               a.addAll(b);
                                                      
              CUP$Grm$result = new java_cup.runtime.Symbol(37/*class_body_declarations*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 87: // class_body_declarations ::= class_body_declaration
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(37/*class_body_declarations*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 86: // class_body_declarations_opt ::= class_body_declarations
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(38/*class_body_declarations_opt*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 85: // class_body_declarations_opt ::=
            {
              List RESULT = null;
   
    RESULT = new TypedList(new LinkedList(), ClassMember.class, false);
   
              CUP$Grm$result = new java_cup.runtime.Symbol(38/*class_body_declarations_opt*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 84: // class_body ::= LBRACE class_body_declarations_opt RBRACE
            {
              ClassBody RESULT = null;
    int nleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Token n = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
   
                                                  RESULT = parser.nf.ClassBody(parser.pos(n), a);
                                                 
              CUP$Grm$result = new java_cup.runtime.Symbol(36/*class_body*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 83: // interface_type_list ::= interface_type_list COMMA interface_type
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    TypeNode b = (TypeNode)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                 RESULT = a;
               a.add(b);
                                                
              CUP$Grm$result = new java_cup.runtime.Symbol(35/*interface_type_list*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 82: // interface_type_list ::= interface_type
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    TypeNode a = (TypeNode)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                     List l = new TypedList(new LinkedList(), TypeNode.class, false);
               l.add(a);
               RESULT = l;
                    
              CUP$Grm$result = new java_cup.runtime.Symbol(35/*interface_type_list*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 81: // interfaces_opt ::= interfaces
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(34/*interfaces_opt*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 80: // interfaces_opt ::=
            {
              List RESULT = null;
   
    RESULT = new TypedList(new LinkedList(), TypeNode.class, false);
   
              CUP$Grm$result = new java_cup.runtime.Symbol(34/*interfaces_opt*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 79: // interfaces ::= IMPLEMENTS interface_type_list
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(33/*interfaces*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 78: // super_opt ::= super
            {
              TypeNode RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    TypeNode a = (TypeNode)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(32/*super_opt*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 77: // super_opt ::=
            {
              TypeNode RESULT = null;

              CUP$Grm$result = new java_cup.runtime.Symbol(32/*super_opt*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 76: // super ::= EXTENDS class_type
            {
              TypeNode RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    TypeNode a = (TypeNode)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(31/*super*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 75: // class_declaration ::= modifiers_opt CLASS IDENTIFIER LPAREN RPAREN super_opt interfaces_opt class_body
            {
              ClassDecl RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-7)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-7)).right;
    Flags a = (Flags)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-7)).value;
    int nleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-6)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-6)).right;
    Token n = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-6)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-5)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-5)).right;
    Identifier b = (Identifier)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-5)).value;
    int cleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int cright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    TypeNode c = (TypeNode)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int dleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int dright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    List d = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
    int eleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    ClassBody e = (ClassBody)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                                                                 RESULT = parser.nf.ClassDeclPhysDom(parser.pos(n, e),
                a, b.getIdentifier(), c, d, e, parser.ts );
                                                                                                
              CUP$Grm$result = new java_cup.runtime.Symbol(30/*class_declaration*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-7)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 74: // class_declaration ::= modifiers_opt CLASS IDENTIFIER LPAREN INTEGER_LITERAL RPAREN super_opt interfaces_opt class_body
            {
              ClassDecl RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-8)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-8)).right;
    Flags a = (Flags)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-8)).value;
    int nleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-7)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-7)).right;
    Token n = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-7)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-6)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-6)).right;
    Identifier b = (Identifier)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-6)).value;
    int bitsleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).left;
    int bitsright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).right;
    polyglot.lex.IntegerLiteral bits = (polyglot.lex.IntegerLiteral)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-4)).value;
    int cleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int cright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    TypeNode c = (TypeNode)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int dleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int dright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    List d = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
    int eleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    ClassBody e = (ClassBody)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                                                                                      RESULT = parser.nf.ClassDeclDomain(parser.pos(n, e),
                a, b.getIdentifier(), c, d, e,
                parser.nf.IntLit(parser.pos(bits, e), IntLit.INT,
                    bits.getValue().intValue()), parser.ts );
                                                                                                                     
              CUP$Grm$result = new java_cup.runtime.Symbol(30/*class_declaration*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-8)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 73: // class_declaration ::= modifiers_opt CLASS IDENTIFIER LPAREN class_type RPAREN super_opt interfaces_opt class_body
            {
              ClassDecl RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-8)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-8)).right;
    Flags a = (Flags)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-8)).value;
    int nleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-7)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-7)).right;
    Token n = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-7)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-6)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-6)).right;
    Identifier b = (Identifier)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-6)).value;
    int domainleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).left;
    int domainright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).right;
    TypeNode domain = (TypeNode)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-4)).value;
    int cleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int cright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    TypeNode c = (TypeNode)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int dleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int dright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    List d = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
    int eleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    ClassBody e = (ClassBody)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                                                                                   RESULT = parser.nf.ClassDeclAttribute(parser.pos(n, e),
                a, b.getIdentifier(), c, d, e, domain, parser.ts );
                                                                                                                  
              CUP$Grm$result = new java_cup.runtime.Symbol(30/*class_declaration*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-8)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 72: // class_declaration ::= modifiers_opt CLASS IDENTIFIER super_opt interfaces_opt class_body
            {
              ClassDecl RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-5)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-5)).right;
    Flags a = (Flags)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-5)).value;
    int nleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).left;
    int nright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).right;
    Token n = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-4)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).right;
    Identifier b = (Identifier)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-3)).value;
    int cleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int cright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    TypeNode c = (TypeNode)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int dleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int dright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    List d = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
    int eleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    ClassBody e = (ClassBody)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                                                   RESULT = parser.nf.ClassDecl(parser.pos(n),
                a, b.getIdentifier(), c, d, e);
                                                                                  
              CUP$Grm$result = new java_cup.runtime.Symbol(30/*class_declaration*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-5)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 71: // modifier ::= STRICTFP
            {
              Flags RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Token a = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = Flags.STRICTFP; 
              CUP$Grm$result = new java_cup.runtime.Symbol(29/*modifier*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 70: // modifier ::= VOLATILE
            {
              Flags RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Token a = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = Flags.VOLATILE; 
              CUP$Grm$result = new java_cup.runtime.Symbol(29/*modifier*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 69: // modifier ::= TRANSIENT
            {
              Flags RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Token a = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = Flags.TRANSIENT; 
              CUP$Grm$result = new java_cup.runtime.Symbol(29/*modifier*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 68: // modifier ::= SYNCHRONIZED
            {
              Flags RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Token a = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = Flags.SYNCHRONIZED; 
              CUP$Grm$result = new java_cup.runtime.Symbol(29/*modifier*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 67: // modifier ::= NATIVE
            {
              Flags RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Token a = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = Flags.NATIVE; 
              CUP$Grm$result = new java_cup.runtime.Symbol(29/*modifier*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 66: // modifier ::= FINAL
            {
              Flags RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Token a = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = Flags.FINAL; 
              CUP$Grm$result = new java_cup.runtime.Symbol(29/*modifier*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 65: // modifier ::= ABSTRACT
            {
              Flags RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Token a = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = Flags.ABSTRACT; 
              CUP$Grm$result = new java_cup.runtime.Symbol(29/*modifier*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 64: // modifier ::= STATIC
            {
              Flags RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Token a = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = Flags.STATIC; 
              CUP$Grm$result = new java_cup.runtime.Symbol(29/*modifier*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 63: // modifier ::= PRIVATE
            {
              Flags RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Token a = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = Flags.PRIVATE; 
              CUP$Grm$result = new java_cup.runtime.Symbol(29/*modifier*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 62: // modifier ::= PROTECTED
            {
              Flags RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Token a = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = Flags.PROTECTED; 
              CUP$Grm$result = new java_cup.runtime.Symbol(29/*modifier*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 61: // modifier ::= PUBLIC
            {
              Flags RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Token a = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = Flags.PUBLIC; 
              CUP$Grm$result = new java_cup.runtime.Symbol(29/*modifier*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 60: // modifiers ::= modifiers modifier
            {
              Flags RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    Flags a = (Flags)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Flags b = (Flags)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                           if (a.intersects(b)) parser.die(parser.position());
               RESULT = a.set(b);
                          
              CUP$Grm$result = new java_cup.runtime.Symbol(28/*modifiers*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 59: // modifiers ::= modifier
            {
              Flags RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Flags a = (Flags)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(28/*modifiers*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 58: // modifiers_opt ::= modifiers
            {
              Flags RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Flags a = (Flags)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(27/*modifiers_opt*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 57: // modifiers_opt ::=
            {
              Flags RESULT = null;
      RESULT = Flags.NONE; 
              CUP$Grm$result = new java_cup.runtime.Symbol(27/*modifiers_opt*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 56: // type_declaration ::= SEMICOLON
            {
              ClassDecl RESULT = null;
      RESULT = null
              CUP$Grm$result = new java_cup.runtime.Symbol(26/*type_declaration*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 55: // type_declaration ::= interface_declaration
            {
              ClassDecl RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    ClassDecl a = (ClassDecl)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(26/*type_declaration*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 54: // type_declaration ::= class_declaration
            {
              ClassDecl RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    ClassDecl a = (ClassDecl)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(26/*type_declaration*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 53: // type_import_on_demand_declaration ::= IMPORT name DOT MULT SEMICOLON
            {
              Import RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).right;
    Name a = (Name)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-3)).value;
   
                                     RESULT = parser.nf.Import(parser.pos(a), Import.PACKAGE, a.toString());
                                    
              CUP$Grm$result = new java_cup.runtime.Symbol(25/*type_import_on_demand_declaration*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 52: // single_type_import_declaration ::= IMPORT name SEMICOLON
            {
              Import RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    Name a = (Name)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
   
                            RESULT = parser.nf.Import(parser.pos(a), Import.CLASS, a.toString());
                           
              CUP$Grm$result = new java_cup.runtime.Symbol(24/*single_type_import_declaration*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 51: // import_declaration ::= type_import_on_demand_declaration
            {
              Import RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Import a = (Import)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(23/*import_declaration*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 50: // import_declaration ::= single_type_import_declaration
            {
              Import RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Import a = (Import)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(23/*import_declaration*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 49: // package_declaration ::= PACKAGE name SEMICOLON
            {
              PackageNode RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    Name a = (Name)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
      RESULT = a.toPackage()
              CUP$Grm$result = new java_cup.runtime.Symbol(18/*package_declaration*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 48: // type_declarations ::= type_declarations type_declaration
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    ClassDecl b = (ClassDecl)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                           RESULT = a;
               if (b != null)
                   a.add(b);
                                          
              CUP$Grm$result = new java_cup.runtime.Symbol(22/*type_declarations*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 47: // type_declarations ::= type_declaration
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    ClassDecl a = (ClassDecl)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                       List l = new TypedList(new LinkedList(), ClassDecl.class, false);
               if (a != null)
                   l.add(a);
               RESULT = l;
                      
              CUP$Grm$result = new java_cup.runtime.Symbol(22/*type_declarations*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 46: // import_declarations ::= import_declarations import_declaration
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Import b = (Import)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                               RESULT = a;
               a.add(b);
                                              
              CUP$Grm$result = new java_cup.runtime.Symbol(20/*import_declarations*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 45: // import_declarations ::= import_declaration
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Import a = (Import)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                         List l = new TypedList(new LinkedList(), Import.class, false);
               l.add(a);
               RESULT = l;
                        
              CUP$Grm$result = new java_cup.runtime.Symbol(20/*import_declarations*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 44: // type_declarations_opt ::=
            {
              List RESULT = null;
   
    RESULT = new TypedList(new LinkedList(), ClassDecl.class, false);
   
              CUP$Grm$result = new java_cup.runtime.Symbol(21/*type_declarations_opt*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 43: // type_declarations_opt ::= type_declarations
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(21/*type_declarations_opt*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 42: // import_declarations_opt ::=
            {
              List RESULT = null;
   
    RESULT = new TypedList(new LinkedList(), Import.class, false);
   
              CUP$Grm$result = new java_cup.runtime.Symbol(19/*import_declarations_opt*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 41: // import_declarations_opt ::= import_declarations
            {
              List RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    List a = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(19/*import_declarations_opt*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 40: // package_declaration_opt ::=
            {
              PackageNode RESULT = null;
      RESULT = null
              CUP$Grm$result = new java_cup.runtime.Symbol(17/*package_declaration_opt*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 39: // package_declaration_opt ::= package_declaration
            {
              PackageNode RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    PackageNode a = (PackageNode)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(17/*package_declaration_opt*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 38: // compilation_unit ::= package_declaration_opt import_declarations_opt type_declarations_opt
            {
              SourceFile RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    PackageNode a = (PackageNode)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    List b = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
    int cleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int cright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    List c = (List)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                                                RESULT = parser.nf.SourceFile(new Position(parser.lexer.file()),
               a, b, c);
     
                                                                               
              CUP$Grm$result = new java_cup.runtime.Symbol(16/*compilation_unit*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 37: // qualified_name ::= name DOT IDENTIFIER
            {
              Name RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    Name a = (Name)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Identifier b = (Identifier)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                            RESULT = new Name(parser, parser.pos(a), a, b.getIdentifier());
                           
              CUP$Grm$result = new java_cup.runtime.Symbol(15/*qualified_name*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 36: // simple_name ::= IDENTIFIER
            {
              Name RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Identifier a = (Identifier)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                 RESULT = new Name(parser, parser.pos(a), a.getIdentifier());
                
              CUP$Grm$result = new java_cup.runtime.Symbol(14/*simple_name*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 35: // name ::= qualified_name
            {
              Name RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Name a = (Name)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(13/*name*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 34: // name ::= simple_name
            {
              Name RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Name a = (Name)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(13/*name*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 33: // array_type ::= name dims
            {
              TypeNode RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    Name a = (Name)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Integer b = (Integer)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                  RESULT = parser.array(a.toType(), b.intValue());
                 
              CUP$Grm$result = new java_cup.runtime.Symbol(12/*array_type*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 32: // array_type ::= primitive_type dims
            {
              TypeNode RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    TypeNode a = (TypeNode)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Integer b = (Integer)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                            RESULT = parser.array(a, b.intValue());
                           
              CUP$Grm$result = new java_cup.runtime.Symbol(12/*array_type*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 31: // interface_type ::= class_or_interface_type
            {
              TypeNode RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    TypeNode a = (TypeNode)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(11/*interface_type*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 30: // class_type ::= class_or_interface_type
            {
              TypeNode RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    TypeNode a = (TypeNode)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(10/*class_type*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 29: // class_or_interface_type ::= name
            {
              TypeNode RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Name a = (Name)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a.toType()
              CUP$Grm$result = new java_cup.runtime.Symbol(9/*class_or_interface_type*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 28: // reference_type ::= array_type
            {
              TypeNode RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    TypeNode a = (TypeNode)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(8/*reference_type*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 27: // reference_type ::= class_or_interface_type
            {
              TypeNode RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    TypeNode a = (TypeNode)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(8/*reference_type*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 26: // floating_point_type ::= DOUBLE
            {
              TypeNode RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Token a = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
             RESULT = parser.nf.CanonicalTypeNode(parser.pos(a),
                       parser.ts.Double());
            
              CUP$Grm$result = new java_cup.runtime.Symbol(7/*floating_point_type*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 25: // floating_point_type ::= FLOAT
            {
              TypeNode RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Token a = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
            RESULT = parser.nf.CanonicalTypeNode(parser.pos(a),
                       parser.ts.Float());
           
              CUP$Grm$result = new java_cup.runtime.Symbol(7/*floating_point_type*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 24: // integral_type ::= LONG
            {
              TypeNode RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Token a = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
           RESULT = parser.nf.CanonicalTypeNode(parser.pos(a), parser.ts.Long());
          
              CUP$Grm$result = new java_cup.runtime.Symbol(6/*integral_type*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 23: // integral_type ::= INT
            {
              TypeNode RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Token a = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
          RESULT = parser.nf.CanonicalTypeNode(parser.pos(a), parser.ts.Int());
         
              CUP$Grm$result = new java_cup.runtime.Symbol(6/*integral_type*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 22: // integral_type ::= SHORT
            {
              TypeNode RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Token a = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
            RESULT = parser.nf.CanonicalTypeNode(parser.pos(a), parser.ts.Short());
           
              CUP$Grm$result = new java_cup.runtime.Symbol(6/*integral_type*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 21: // integral_type ::= CHAR
            {
              TypeNode RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Token a = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
           RESULT = parser.nf.CanonicalTypeNode(parser.pos(a), parser.ts.Char());
          
              CUP$Grm$result = new java_cup.runtime.Symbol(6/*integral_type*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 20: // integral_type ::= BYTE
            {
              TypeNode RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Token a = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
           RESULT = parser.nf.CanonicalTypeNode(parser.pos(a), parser.ts.Byte());
          
              CUP$Grm$result = new java_cup.runtime.Symbol(6/*integral_type*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 19: // numeric_type ::= floating_point_type
            {
              TypeNode RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    TypeNode a = (TypeNode)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(5/*numeric_type*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 18: // numeric_type ::= integral_type
            {
              TypeNode RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    TypeNode a = (TypeNode)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(5/*numeric_type*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 17: // primitive_type ::= BOOLEAN
            {
              TypeNode RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Token a = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
              RESULT = parser.nf.CanonicalTypeNode(parser.pos(a), parser.ts.Boolean());
             
              CUP$Grm$result = new java_cup.runtime.Symbol(4/*primitive_type*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 16: // primitive_type ::= numeric_type
            {
              TypeNode RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    TypeNode a = (TypeNode)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(4/*primitive_type*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 15: // type ::= relation_type
            {
              TypeNode RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    BDDTypeNode a = (BDDTypeNode)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(3/*type*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 14: // type ::= reference_type
            {
              TypeNode RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    TypeNode a = (TypeNode)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(3/*type*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 13: // type ::= primitive_type
            {
              TypeNode RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    TypeNode a = (TypeNode)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = a; 
              CUP$Grm$result = new java_cup.runtime.Symbol(3/*type*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 12: // literal ::= BDDFALSE
            {
              polyglot.ast.Lit RESULT = null;
    int pleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int pright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Token p = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
               RESULT = parser.nf.BDDTrueFalse( parser.pos(p, p), false );
              
              CUP$Grm$result = new java_cup.runtime.Symbol(2/*literal*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 11: // literal ::= BDDTRUE
            {
              polyglot.ast.Lit RESULT = null;
    int pleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int pright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Token p = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
              RESULT = parser.nf.BDDTrueFalse( parser.pos(p, p), true );
             
              CUP$Grm$result = new java_cup.runtime.Symbol(2/*literal*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 10: // literal ::= NEW LBRACE relation_literal_piece relation_literal_tail RBRACE
            {
              polyglot.ast.Lit RESULT = null;
    int pleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).left;
    int pright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-3)).right;
    Token p = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-3)).value;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-2)).right;
    BDDLitPiece a = (BDDLitPiece)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-2)).value;
    int bleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).left;
    int bright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-1)).right;
    LinkedList b = (LinkedList)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-1)).value;
    int eleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int eright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    Token e = (Token)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                                                                          
                b.addFirst(a);
                RESULT = parser.nf.BDDLit( parser.pos(p, e), b );
           
                                                                          
              CUP$Grm$result = new java_cup.runtime.Symbol(2/*literal*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-4)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 9: // literal ::= NULL_LITERAL
            {
              polyglot.ast.Lit RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    polyglot.lex.NullLiteral a = (polyglot.lex.NullLiteral)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
      RESULT = parser.nf.NullLit(parser.pos(a))
              CUP$Grm$result = new java_cup.runtime.Symbol(2/*literal*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 8: // literal ::= STRING_LITERAL
            {
              polyglot.ast.Lit RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    polyglot.lex.StringLiteral a = (polyglot.lex.StringLiteral)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                     RESULT = parser.nf.StringLit(parser.pos(a), a.getValue());
                    
              CUP$Grm$result = new java_cup.runtime.Symbol(2/*literal*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 7: // literal ::= CHARACTER_LITERAL
            {
              polyglot.ast.Lit RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    polyglot.lex.CharacterLiteral a = (polyglot.lex.CharacterLiteral)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                        RESULT = parser.nf.CharLit(parser.pos(a),
                      a.getValue().charValue());
                       
              CUP$Grm$result = new java_cup.runtime.Symbol(2/*literal*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 6: // literal ::= BOOLEAN_LITERAL
            {
              polyglot.ast.Lit RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    polyglot.lex.BooleanLiteral a = (polyglot.lex.BooleanLiteral)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                      RESULT = parser.nf.BooleanLit(parser.pos(a),
                                         a.getValue().booleanValue());
                     
              CUP$Grm$result = new java_cup.runtime.Symbol(2/*literal*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 5: // literal ::= FLOAT_LITERAL
            {
              polyglot.ast.Lit RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    polyglot.lex.FloatLiteral a = (polyglot.lex.FloatLiteral)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                    RESULT = parser.nf.FloatLit(parser.pos(a), FloatLit.FLOAT,
                                           a.getValue().floatValue());
                   
              CUP$Grm$result = new java_cup.runtime.Symbol(2/*literal*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 4: // literal ::= DOUBLE_LITERAL
            {
              polyglot.ast.Lit RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    polyglot.lex.DoubleLiteral a = (polyglot.lex.DoubleLiteral)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                     RESULT = parser.nf.FloatLit(parser.pos(a), FloatLit.DOUBLE,
                                           a.getValue().doubleValue());
                    
              CUP$Grm$result = new java_cup.runtime.Symbol(2/*literal*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 3: // literal ::= LONG_LITERAL
            {
              polyglot.ast.Lit RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    polyglot.lex.LongLiteral a = (polyglot.lex.LongLiteral)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                   RESULT = parser.nf.IntLit(parser.pos(a), IntLit.LONG,
                     a.getValue().longValue());
                  
              CUP$Grm$result = new java_cup.runtime.Symbol(2/*literal*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

          /*. . . . . . . . . . . . . . . . . . . .*/
          case 2: // literal ::= INTEGER_LITERAL
            {
              polyglot.ast.Lit RESULT = null;
    int aleft = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left;
    int aright = ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right;
    polyglot.lex.IntegerLiteral a = (polyglot.lex.IntegerLiteral)((java_cup.runtime.Symbol) CUP$Grm$stack.elementAt(CUP$Grm$top-0)).value;
   
                      RESULT = parser.nf.IntLit(parser.pos(a), IntLit.INT,
                                     a.getValue().intValue());
                     
              CUP$Grm$result = new java_cup.runtime.Symbol(2/*literal*/, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).left, ((java_cup.runtime.Symbol)CUP$Grm$stack.elementAt(CUP$Grm$top-0)).right, RESULT);
            }
          return CUP$Grm$result;

View Full Code Here

TOP

Related Classes of polyglot.ext.jl.parse.Name

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.