alvinalexander.com | career | drupal | java | mac | mysql | perl | scala | uml | unix  

Java example source code file (ExpressionParser.java)

This example Java source code file (ExpressionParser.java) is included in the alvinalexander.com "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Learn more about this Java project at its project page.

Java - Java tags/keywords

character_literal, false, floating_point_literal, identifier, jdi, jjexpressionparsercalls, lparen, lvalue, name, new, null, parseexception, string_literal, token, true, util

The ExpressionParser.java Java example source code

/*
 * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * This code is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 only, as
 * published by the Free Software Foundation.  Oracle designates this
 * particular file as subject to the "Classpath" exception as provided
 * by Oracle in the LICENSE file that accompanied this code.
 *
 * This code is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 * version 2 for more details (a copy is included in the LICENSE file that
 * accompanied this code).
 *
 * You should have received a copy of the GNU General Public License version
 * 2 along with this work; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 * or visit www.oracle.com if you need additional information or have any
 * questions.
 */

/*
 * This source code is provided to illustrate the usage of a given feature
 * or technique and has been deliberately simplified. Additional steps
 * required for a production-quality application, such as security checks,
 * input validation and proper error handling, might not be present in
 * this sample code.
 */


/* Generated By:JavaCC: Do not edit this line. ExpressionParser.java */
package com.sun.tools.example.debug.expr;

import com.sun.jdi.*;

import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

public class ExpressionParser implements ExpressionParserConstants {

   Stack<LValue> stack = new Stack();
  VirtualMachine vm = null;
  GetFrame frameGetter = null;
  private static GetFrame lastFrameGetter;
  private static LValue lastLValue;

  LValue peek() {
      return stack.peek();
  }

  LValue pop() {
      return stack.pop();
  }

  void push(LValue lval) {
    stack.push(lval);
  }

  public static Value getMassagedValue() throws ParseException {
       return lastLValue.getMassagedValue(lastFrameGetter);
  }

  public interface GetFrame {
        StackFrame get() throws IncompatibleThreadStateException;
  }

  public static Value evaluate(String expr, VirtualMachine vm,
         GetFrame frameGetter) throws ParseException, InvocationException,
         InvalidTypeException, ClassNotLoadedException,
                                            IncompatibleThreadStateException {
        // TODO StringBufferInputStream is deprecated.
        java.io.InputStream in = new java.io.StringBufferInputStream(expr);
        ExpressionParser parser = new ExpressionParser(in);
        parser.vm = vm;
        parser.frameGetter = frameGetter;
        parser.Expression();
        lastFrameGetter = frameGetter;
        lastLValue = parser.pop();
        return lastLValue.getValue();
  }

  public static void main(String args[]) {
    ExpressionParser parser;
    System.out.print("Java Expression Parser:  ");
    if (args.length == 0) {
      System.out.println("Reading from standard input . . .");
      parser = new ExpressionParser(System.in);
    } else if (args.length == 1) {
      System.out.println("Reading from file " + args[0] + " . . .");
      try {
        parser = new ExpressionParser(new java.io.FileInputStream(args[0]));
      } catch (java.io.FileNotFoundException e) {
            System.out.println("Java Parser Version 1.0.2:  File " + args[0]
                  + " not found.");
        return;
      }
    } else {
      System.out.println("Usage is one of:");
      System.out.println("         java ExpressionParser < inputfile");
      System.out.println("OR");
      System.out.println("         java ExpressionParser inputfile");
      return;
    }
    try {
        parser.Expression();
        System.out.print("Java Expression Parser:  ");
        System.out.println("Java program parsed successfully.");
    } catch (ParseException e) {
        System.out.print("Java Expression Parser:  ");
        System.out.println("Encountered errors during parse.");
    }
  }

/*****************************************
 * THE JAVA LANGUAGE GRAMMAR STARTS HERE *
 *****************************************/

/*
 * Type, name and expression syntax follows.
 */
  final public void Type() throws ParseException {
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case BOOLEAN:
    case BYTE:
    case CHAR:
    case DOUBLE:
    case FLOAT:
    case INT:
    case LONG:
    case SHORT:
      PrimitiveType();
      break;
    case IDENTIFIER:
      Name();
      break;
    default:
      jj_la1[0] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
      label_1: while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case LBRACKET:
        ;
        break;
      default:
        jj_la1[1] = jj_gen;
        break label_1;
      }
      jj_consume_token(LBRACKET);
      jj_consume_token(RBRACKET);
    }
  }

  final public void PrimitiveType() throws ParseException {
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case BOOLEAN:
      jj_consume_token(BOOLEAN);
      break;
    case CHAR:
      jj_consume_token(CHAR);
      break;
    case BYTE:
      jj_consume_token(BYTE);
      break;
    case SHORT:
      jj_consume_token(SHORT);
      break;
    case INT:
      jj_consume_token(INT);
      break;
    case LONG:
      jj_consume_token(LONG);
      break;
    case FLOAT:
      jj_consume_token(FLOAT);
      break;
    case DOUBLE:
      jj_consume_token(DOUBLE);
      break;
    default:
      jj_la1[2] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
  }

  final public String Name() throws ParseException {
 StringBuffer sb = new StringBuffer();
    jj_consume_token(IDENTIFIER);
                 sb.append(token);
      label_2: while (true) {
      if (jj_2_1(2)) {
        ;
      } else {
        break label_2;
      }
      jj_consume_token(DOT);
      jj_consume_token(IDENTIFIER);
         sb.append('.');
         sb.append(token);
      }
      if (true) {
         return sb.toString();
      }
    throw new Error("Missing return statement in function");
  }

  final public void NameList() throws ParseException {
    Name();
      label_3: while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case COMMA:
        ;
        break;
      default:
        jj_la1[3] = jj_gen;
        break label_3;
      }
      jj_consume_token(COMMA);
      Name();
    }
  }

/*
 * Expression syntax follows.
 */
  final public void Expression() throws ParseException {
    if (jj_2_2(2147483647)) {
      Assignment();
    } else {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case FALSE:
      case NEW:
      case NULL:
      case SUPER:
      case THIS:
      case TRUE:
      case INTEGER_LITERAL:
      case FLOATING_POINT_LITERAL:
      case CHARACTER_LITERAL:
      case STRING_LITERAL:
      case IDENTIFIER:
      case LPAREN:
      case BANG:
      case TILDE:
      case INCR:
      case DECR:
      case PLUS:
      case MINUS:
        ConditionalExpression();
        break;
      default:
        jj_la1[4] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
    }
  }

  final public void Assignment() throws ParseException {
    PrimaryExpression();
    AssignmentOperator();
    Expression();
      LValue exprVal = pop();
      pop().setValue(exprVal);
      push(exprVal);
  }

  final public void AssignmentOperator() throws ParseException {
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case ASSIGN:
      jj_consume_token(ASSIGN);
      break;
    case STARASSIGN:
      jj_consume_token(STARASSIGN);
      break;
    case SLASHASSIGN:
      jj_consume_token(SLASHASSIGN);
      break;
    case REMASSIGN:
      jj_consume_token(REMASSIGN);
      break;
    case PLUSASSIGN:
      jj_consume_token(PLUSASSIGN);
      break;
    case MINUSASSIGN:
      jj_consume_token(MINUSASSIGN);
      break;
    case LSHIFTASSIGN:
      jj_consume_token(LSHIFTASSIGN);
      break;
    case RSIGNEDSHIFTASSIGN:
      jj_consume_token(RSIGNEDSHIFTASSIGN);
      break;
    case RUNSIGNEDSHIFTASSIGN:
      jj_consume_token(RUNSIGNEDSHIFTASSIGN);
      break;
    case ANDASSIGN:
      jj_consume_token(ANDASSIGN);
      break;
    case XORASSIGN:
      jj_consume_token(XORASSIGN);
      break;
    case ORASSIGN:
      jj_consume_token(ORASSIGN);
      break;
    default:
      jj_la1[5] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
  }

  final public void ConditionalExpression() throws ParseException {
    ConditionalOrExpression();
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case HOOK:
      jj_consume_token(HOOK);
      Expression();
      jj_consume_token(COLON);
      ConditionalExpression();
         LValue falseBranch = pop();
         LValue trueBranch = pop();
                  Value cond = pop().interiorGetValue();
                  if (cond instanceof BooleanValue) {
            push(((BooleanValue) cond).booleanValue() ? trueBranch
                  : falseBranch);
                  } else {
            {
               if (true) {
                  throw new ParseException("Condition must be boolean");
               }
            }
                  }
      break;
    default:
      jj_la1[6] = jj_gen;
      ;
    }
  }

  final public void ConditionalOrExpression() throws ParseException {
    ConditionalAndExpression();
      label_4: while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case SC_OR:
        ;
        break;
      default:
        jj_la1[7] = jj_gen;
        break label_4;
      }
      jj_consume_token(SC_OR);
      ConditionalAndExpression();
         {
            if (true) {
               throw new ParseException("operation not yet supported");
            }
         }
    }
  }

  final public void ConditionalAndExpression() throws ParseException {
    InclusiveOrExpression();
      label_5: while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case SC_AND:
        ;
        break;
      default:
        jj_la1[8] = jj_gen;
        break label_5;
      }
      jj_consume_token(SC_AND);
      InclusiveOrExpression();
         {
            if (true) {
               throw new ParseException("operation not yet supported");
            }
         }
    }
  }

  final public void InclusiveOrExpression() throws ParseException {
    ExclusiveOrExpression();
      label_6: while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case BIT_OR:
        ;
        break;
      default:
        jj_la1[9] = jj_gen;
        break label_6;
      }
      jj_consume_token(BIT_OR);
      ExclusiveOrExpression();
         {
            if (true) {
               throw new ParseException("operation not yet supported");
            }
         }
    }
  }

  final public void ExclusiveOrExpression() throws ParseException {
    AndExpression();
      label_7: while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case XOR:
        ;
        break;
      default:
        jj_la1[10] = jj_gen;
        break label_7;
      }
      jj_consume_token(XOR);
      AndExpression();
         {
            if (true) {
               throw new ParseException("operation not yet supported");
            }
         }
    }
  }

  final public void AndExpression() throws ParseException {
    EqualityExpression();
      label_8: while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case BIT_AND:
        ;
        break;
      default:
        jj_la1[11] = jj_gen;
        break label_8;
      }
      jj_consume_token(BIT_AND);
      EqualityExpression();
         {
            if (true) {
               throw new ParseException("operation not yet supported");
            }
         }
    }
  }

  final public void EqualityExpression() throws ParseException {
 Token tok;
    InstanceOfExpression();
      label_9: while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case EQ:
      case NE:
        ;
        break;
      default:
        jj_la1[12] = jj_gen;
        break label_9;
      }
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case EQ:
        tok = jj_consume_token(EQ);
        break;
      case NE:
        tok = jj_consume_token(NE);
        break;
      default:
        jj_la1[13] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      InstanceOfExpression();
                  LValue left = pop();
                  push( LValue.booleanOperation(vm, tok, pop(), left) );
    }
  }

  final public void InstanceOfExpression() throws ParseException {
    RelationalExpression();
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case INSTANCEOF:
      jj_consume_token(INSTANCEOF);
      Type();
         {
            if (true) {
               throw new ParseException("operation not yet supported");
            }
         }
      break;
    default:
      jj_la1[14] = jj_gen;
      ;
    }
  }

  final public void RelationalExpression() throws ParseException {
 Token tok;
    ShiftExpression();
      label_10: while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case GT:
      case LT:
      case LE:
      case GE:
        ;
        break;
      default:
        jj_la1[15] = jj_gen;
        break label_10;
      }
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case LT:
        tok = jj_consume_token(LT);
        break;
      case GT:
        tok = jj_consume_token(GT);
        break;
      case LE:
        tok = jj_consume_token(LE);
        break;
      case GE:
        tok = jj_consume_token(GE);
        break;
      default:
        jj_la1[16] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      ShiftExpression();
                  LValue left = pop();
                  push( LValue.booleanOperation(vm, tok, pop(), left) );
    }
  }

  final public void ShiftExpression() throws ParseException {
    AdditiveExpression();
      label_11: while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case LSHIFT:
      case RSIGNEDSHIFT:
      case RUNSIGNEDSHIFT:
        ;
        break;
      default:
        jj_la1[17] = jj_gen;
        break label_11;
      }
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case LSHIFT:
        jj_consume_token(LSHIFT);
        break;
      case RSIGNEDSHIFT:
        jj_consume_token(RSIGNEDSHIFT);
        break;
      case RUNSIGNEDSHIFT:
        jj_consume_token(RUNSIGNEDSHIFT);
        break;
      default:
        jj_la1[18] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      AdditiveExpression();
         {
            if (true) {
               throw new ParseException("operation not yet supported");
            }
         }
    }
  }

  final public void AdditiveExpression() throws ParseException {
 Token tok;
    MultiplicativeExpression();
      label_12: while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case PLUS:
      case MINUS:
        ;
        break;
      default:
        jj_la1[19] = jj_gen;
        break label_12;
      }
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case PLUS:
        tok = jj_consume_token(PLUS);
        break;
      case MINUS:
        tok = jj_consume_token(MINUS);
        break;
      default:
        jj_la1[20] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      MultiplicativeExpression();
                  LValue left = pop();
                  push( LValue.operation(vm, tok, pop(), left, frameGetter) );
    }
  }

  final public void MultiplicativeExpression() throws ParseException {
 Token tok;
    UnaryExpression();
      label_13: while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case STAR:
      case SLASH:
      case REM:
        ;
        break;
      default:
        jj_la1[21] = jj_gen;
        break label_13;
      }
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case STAR:
        tok = jj_consume_token(STAR);
        break;
      case SLASH:
        tok = jj_consume_token(SLASH);
        break;
      case REM:
        tok = jj_consume_token(REM);
        break;
      default:
        jj_la1[22] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      UnaryExpression();
                  LValue left = pop();
                  push( LValue.operation(vm, tok, pop(), left, frameGetter) );
    }
  }

  final public void UnaryExpression() throws ParseException {
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case PLUS:
    case MINUS:
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case PLUS:
        jj_consume_token(PLUS);
        break;
      case MINUS:
        jj_consume_token(MINUS);
        break;
      default:
        jj_la1[23] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      UnaryExpression();
         {
            if (true) {
               throw new ParseException("operation not yet supported");
            }
         }
      break;
    case INCR:
      PreIncrementExpression();
      break;
    case DECR:
      PreDecrementExpression();
      break;
    case FALSE:
    case NEW:
    case NULL:
    case SUPER:
    case THIS:
    case TRUE:
    case INTEGER_LITERAL:
    case FLOATING_POINT_LITERAL:
    case CHARACTER_LITERAL:
    case STRING_LITERAL:
    case IDENTIFIER:
    case LPAREN:
    case BANG:
    case TILDE:
      UnaryExpressionNotPlusMinus();
      break;
    default:
      jj_la1[24] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
  }

  final public void PreIncrementExpression() throws ParseException {
    jj_consume_token(INCR);
    PrimaryExpression();
      {
         if (true) {
            throw new ParseException("operation not yet supported");
         }
      }
  }

  final public void PreDecrementExpression() throws ParseException {
    jj_consume_token(DECR);
    PrimaryExpression();
      {
         if (true) {
            throw new ParseException("operation not yet supported");
         }
      }
  }

  final public void UnaryExpressionNotPlusMinus() throws ParseException {
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case BANG:
    case TILDE:
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case TILDE:
        jj_consume_token(TILDE);
        break;
      case BANG:
        jj_consume_token(BANG);
        break;
      default:
        jj_la1[25] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      UnaryExpression();
         {
            if (true) {
               throw new ParseException("operation not yet supported");
            }
         }
      break;
    default:
      jj_la1[26] = jj_gen;
      if (jj_2_3(2147483647)) {
        CastExpression();
      } else {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case FALSE:
        case NEW:
        case NULL:
        case SUPER:
        case THIS:
        case TRUE:
        case INTEGER_LITERAL:
        case FLOATING_POINT_LITERAL:
        case CHARACTER_LITERAL:
        case STRING_LITERAL:
        case IDENTIFIER:
        case LPAREN:
          PostfixExpression();
          break;
        default:
          jj_la1[27] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
      }
    }
  }

   // This production is to determine lookahead only. The LOOKAHEAD
   // specifications
   // below are not used, but they are there just to indicate that we know
   // about
// this.
  final public void CastLookahead() throws ParseException {
    if (jj_2_4(2)) {
      jj_consume_token(LPAREN);
      PrimitiveType();
    } else if (jj_2_5(2147483647)) {
      jj_consume_token(LPAREN);
      Name();
      jj_consume_token(LBRACKET);
      jj_consume_token(RBRACKET);
    } else {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case LPAREN:
        jj_consume_token(LPAREN);
        Name();
        jj_consume_token(RPAREN);
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case TILDE:
          jj_consume_token(TILDE);
          break;
        case BANG:
          jj_consume_token(BANG);
          break;
        case LPAREN:
          jj_consume_token(LPAREN);
          break;
        case IDENTIFIER:
          jj_consume_token(IDENTIFIER);
          break;
        case THIS:
          jj_consume_token(THIS);
          break;
        case SUPER:
          jj_consume_token(SUPER);
          break;
        case NEW:
          jj_consume_token(NEW);
          break;
        case FALSE:
        case NULL:
        case TRUE:
        case INTEGER_LITERAL:
        case FLOATING_POINT_LITERAL:
        case CHARACTER_LITERAL:
        case STRING_LITERAL:
          Literal();
          break;
        default:
          jj_la1[28] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
        break;
      default:
        jj_la1[29] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
    }
  }

  final public void PostfixExpression() throws ParseException {
    PrimaryExpression();
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case INCR:
    case DECR:
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case INCR:
        jj_consume_token(INCR);
        break;
      case DECR:
        jj_consume_token(DECR);
            {
               if (true) {
                  throw new ParseException("operation not yet supported");
               }
            }
        break;
      default:
        jj_la1[30] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
      break;
    default:
      jj_la1[31] = jj_gen;
      ;
    }
  }

  final public void CastExpression() throws ParseException {
    if (jj_2_6(2)) {
      jj_consume_token(LPAREN);
      PrimitiveType();
         label_14: while (true) {
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case LBRACKET:
          ;
          break;
        default:
          jj_la1[32] = jj_gen;
          break label_14;
        }
        jj_consume_token(LBRACKET);
        jj_consume_token(RBRACKET);
      }
      jj_consume_token(RPAREN);
      UnaryExpression();
    } else {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case LPAREN:
        jj_consume_token(LPAREN);
        Name();
            label_15: while (true) {
          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
          case LBRACKET:
            ;
            break;
          default:
            jj_la1[33] = jj_gen;
            break label_15;
          }
          jj_consume_token(LBRACKET);
          jj_consume_token(RBRACKET);
        }
        jj_consume_token(RPAREN);
        UnaryExpressionNotPlusMinus();
        break;
      default:
        jj_la1[34] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
    }
  }

  final public void PrimaryExpression() throws ParseException {
    PrimaryPrefix();
      label_16: while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case LPAREN:
      case LBRACKET:
      case DOT:
        ;
        break;
      default:
        jj_la1[35] = jj_gen;
        break label_16;
      }
      PrimarySuffix();
    }
  }

  final public void PrimaryPrefix() throws ParseException {
 String name;
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case FALSE:
    case NULL:
    case TRUE:
    case INTEGER_LITERAL:
    case FLOATING_POINT_LITERAL:
    case CHARACTER_LITERAL:
    case STRING_LITERAL:
      Literal();
      break;
    case IDENTIFIER:
      name = Name();
                          push(LValue.makeName(vm, frameGetter, name));
      break;
    case THIS:
      jj_consume_token(THIS);
                          push(LValue.makeThisObject(vm, frameGetter, token));
      break;
    case SUPER:
      jj_consume_token(SUPER);
      jj_consume_token(DOT);
      jj_consume_token(IDENTIFIER);
         {
            if (true) {
               throw new ParseException("operation not yet supported");
            }
         }
      break;
    case LPAREN:
      jj_consume_token(LPAREN);
      Expression();
      jj_consume_token(RPAREN);
      break;
    case NEW:
      AllocationExpression();
      break;
    default:
      jj_la1[36] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
  }

  final public void PrimarySuffix() throws ParseException {
      List<Value> argList;
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case LBRACKET:
      jj_consume_token(LBRACKET);
      Expression();
      jj_consume_token(RBRACKET);
                          LValue index = pop();
                          push(pop().arrayElementLValue(index));
      break;
    case DOT:
      jj_consume_token(DOT);
      jj_consume_token(IDENTIFIER);
                          push(pop().memberLValue(frameGetter, token.image));
      break;
    case LPAREN:
      argList = Arguments();
                          peek().invokeWith(argList);
      break;
    default:
      jj_la1[37] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
  }

  final public void Literal() throws ParseException {
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case INTEGER_LITERAL:
      jj_consume_token(INTEGER_LITERAL);
                          push(LValue.makeInteger(vm, token));
      break;
    case FLOATING_POINT_LITERAL:
      jj_consume_token(FLOATING_POINT_LITERAL);
                          push(LValue.makeFloat(vm, token));
      break;
    case CHARACTER_LITERAL:
      jj_consume_token(CHARACTER_LITERAL);
                          push(LValue.makeCharacter(vm, token));
      break;
    case STRING_LITERAL:
      jj_consume_token(STRING_LITERAL);
                          push(LValue.makeString(vm, token));
      break;
    case FALSE:
    case TRUE:
      BooleanLiteral();
                          push(LValue.makeBoolean(vm, token));
      break;
    case NULL:
      NullLiteral();
                          push(LValue.makeNull(vm, token));
      break;
    default:
      jj_la1[38] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
  }

  final public void BooleanLiteral() throws ParseException {
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case TRUE:
      jj_consume_token(TRUE);
      break;
    case FALSE:
      jj_consume_token(FALSE);
      break;
    default:
      jj_la1[39] = jj_gen;
      jj_consume_token(-1);
      throw new ParseException();
    }
  }

  final public void NullLiteral() throws ParseException {
    jj_consume_token(NULL);
  }

   final public List<Value> Arguments() throws ParseException {
      List<Value> argList = new ArrayList();
    jj_consume_token(LPAREN);
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case FALSE:
    case NEW:
    case NULL:
    case SUPER:
    case THIS:
    case TRUE:
    case INTEGER_LITERAL:
    case FLOATING_POINT_LITERAL:
    case CHARACTER_LITERAL:
    case STRING_LITERAL:
    case IDENTIFIER:
    case LPAREN:
    case BANG:
    case TILDE:
    case INCR:
    case DECR:
    case PLUS:
    case MINUS:
      ArgumentList(argList);
      break;
    default:
      jj_la1[40] = jj_gen;
      ;
    }
    jj_consume_token(RPAREN);
      {
         if (true) {
            return argList;
         }
      }
    throw new Error("Missing return statement in function");
  }

   final public void ArgumentList(List<Value> argList) throws ParseException {
    Expression();
                argList.add(pop().interiorGetValue());
      label_17: while (true) {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case COMMA:
        ;
        break;
      default:
        jj_la1[41] = jj_gen;
        break label_17;
      }
      jj_consume_token(COMMA);
      Expression();
                      argList.add(pop().interiorGetValue());
    }
  }

  final public void AllocationExpression() throws ParseException {
      List<Value> argList;
      String className;
    if (jj_2_7(2)) {
      jj_consume_token(NEW);
      PrimitiveType();
      ArrayDimensions();
    } else {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case NEW:
        jj_consume_token(NEW);
        className = Name();
        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
        case LPAREN:
          argList = Arguments();
                          push(LValue.makeNewObject(vm, frameGetter, className, argList));
          break;
        case LBRACKET:
          ArrayDimensions();
               {
                  if (true) {
                     throw new ParseException("operation not yet supported");
                  }
               }
          break;
        default:
          jj_la1[42] = jj_gen;
          jj_consume_token(-1);
          throw new ParseException();
        }
        break;
      default:
        jj_la1[43] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
    }
  }

/*
    * The second LOOKAHEAD specification below is to parse to PrimarySuffix if
    * there is an expression between the "[...]".
 */
  final public void ArrayDimensions() throws ParseException {
      label_18: while (true) {
      jj_consume_token(LBRACKET);
      Expression();
      jj_consume_token(RBRACKET);
      if (jj_2_8(2)) {
        ;
      } else {
        break label_18;
      }
    }
      label_19: while (true) {
      if (jj_2_9(2)) {
        ;
      } else {
        break label_19;
      }
      jj_consume_token(LBRACKET);
      jj_consume_token(RBRACKET);
    }
  }

  final private boolean jj_2_1(int xla) {
      jj_la = xla;
      jj_lastpos = jj_scanpos = token;
    boolean retval = !jj_3_1();
    jj_save(0, xla);
    return retval;
  }

  final private boolean jj_2_2(int xla) {
      jj_la = xla;
      jj_lastpos = jj_scanpos = token;
    boolean retval = !jj_3_2();
    jj_save(1, xla);
    return retval;
  }

  final private boolean jj_2_3(int xla) {
      jj_la = xla;
      jj_lastpos = jj_scanpos = token;
    boolean retval = !jj_3_3();
    jj_save(2, xla);
    return retval;
  }

  final private boolean jj_2_4(int xla) {
      jj_la = xla;
      jj_lastpos = jj_scanpos = token;
    boolean retval = !jj_3_4();
    jj_save(3, xla);
    return retval;
  }

  final private boolean jj_2_5(int xla) {
      jj_la = xla;
      jj_lastpos = jj_scanpos = token;
    boolean retval = !jj_3_5();
    jj_save(4, xla);
    return retval;
  }

  final private boolean jj_2_6(int xla) {
      jj_la = xla;
      jj_lastpos = jj_scanpos = token;
    boolean retval = !jj_3_6();
    jj_save(5, xla);
    return retval;
  }

  final private boolean jj_2_7(int xla) {
      jj_la = xla;
      jj_lastpos = jj_scanpos = token;
    boolean retval = !jj_3_7();
    jj_save(6, xla);
    return retval;
  }

  final private boolean jj_2_8(int xla) {
      jj_la = xla;
      jj_lastpos = jj_scanpos = token;
    boolean retval = !jj_3_8();
    jj_save(7, xla);
    return retval;
  }

  final private boolean jj_2_9(int xla) {
      jj_la = xla;
      jj_lastpos = jj_scanpos = token;
    boolean retval = !jj_3_9();
    jj_save(8, xla);
    return retval;
  }

  final private boolean jj_3R_154() {
      if (jj_scan_token(INCR)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_151() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_154()) {
    jj_scanpos = xsp;
         if (jj_3R_155()) {
            return true;
         }
         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
            return false;
         }
      } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_148() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3_6()) {
    jj_scanpos = xsp;
         if (jj_3R_150()) {
            return true;
         }
         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
            return false;
         }
      } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3_6() {
      if (jj_scan_token(LPAREN)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
      if (jj_3R_23()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
         if (jj_3R_152()) {
            jj_scanpos = xsp;
            break;
         }
         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
            return false;
         }
      }
      if (jj_scan_token(RPAREN)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
      if (jj_3R_115()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_25() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_50()) {
    jj_scanpos = xsp;
         if (jj_3R_51()) {
            return true;
         }
         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
            return false;
         }
      } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_50() {
      if (jj_3R_67()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3_5() {
      if (jj_scan_token(LPAREN)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
      if (jj_3R_24()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
      if (jj_scan_token(LBRACKET)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_149() {
      if (jj_3R_20()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    Token xsp;
    xsp = jj_scanpos;
      if (jj_3R_151()) {
         jj_scanpos = xsp;
      } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_41() {
      if (jj_scan_token(LPAREN)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
      if (jj_3R_24()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
      if (jj_scan_token(RPAREN)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_59()) {
    jj_scanpos = xsp;
    if (jj_3R_60()) {
    jj_scanpos = xsp;
    if (jj_3R_61()) {
    jj_scanpos = xsp;
    if (jj_3R_62()) {
    jj_scanpos = xsp;
    if (jj_3R_63()) {
    jj_scanpos = xsp;
    if (jj_3R_64()) {
    jj_scanpos = xsp;
    if (jj_3R_65()) {
    jj_scanpos = xsp;
                           if (jj_3R_66()) {
                              return true;
                           }
                           if (jj_la == 0 && jj_scanpos == jj_lastpos) {
                              return false;
                           }
                        } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
                           return false;
                        }
                     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
                        return false;
                     }
                  } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
                     return false;
                  }
               } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
                  return false;
               }
            } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
               return false;
            }
         } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
            return false;
         }
      } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_40() {
      if (jj_scan_token(LPAREN)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
      if (jj_3R_24()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
      if (jj_scan_token(LBRACKET)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
      if (jj_scan_token(RBRACKET)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_123() {
      if (jj_scan_token(LBRACKET)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
      if (jj_scan_token(RBRACKET)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3_1() {
      if (jj_scan_token(DOT)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
      if (jj_scan_token(IDENTIFIER)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3_4() {
      if (jj_scan_token(LPAREN)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
      if (jj_3R_23()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_22() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3_4()) {
    jj_scanpos = xsp;
    if (jj_3R_40()) {
    jj_scanpos = xsp;
            if (jj_3R_41()) {
               return true;
            }
            if (jj_la == 0 && jj_scanpos == jj_lastpos) {
               return false;
            }
         } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
            return false;
         }
      } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3_3() {
      if (jj_3R_22()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_24() {
      if (jj_scan_token(IDENTIFIER)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
         if (jj_3_1()) {
            jj_scanpos = xsp;
            break;
         }
         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
            return false;
         }
    }
    return false;
  }

  final private boolean jj_3R_147() {
      if (jj_scan_token(BANG)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_142() {
      if (jj_3R_149()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_122() {
      if (jj_3R_24()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_49() {
      if (jj_scan_token(DOUBLE)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_141() {
      if (jj_3R_148()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_48() {
      if (jj_scan_token(FLOAT)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_146() {
      if (jj_scan_token(TILDE)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_47() {
      if (jj_scan_token(LONG)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_140() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_146()) {
    jj_scanpos = xsp;
         if (jj_3R_147()) {
            return true;
         }
         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
            return false;
         }
      } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
      if (jj_3R_115()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_136() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_140()) {
    jj_scanpos = xsp;
    if (jj_3R_141()) {
    jj_scanpos = xsp;
            if (jj_3R_142()) {
               return true;
            }
            if (jj_la == 0 && jj_scanpos == jj_lastpos) {
               return false;
            }
         } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
            return false;
         }
      } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_46() {
      if (jj_scan_token(INT)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_145() {
      if (jj_scan_token(REM)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_45() {
      if (jj_scan_token(SHORT)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_44() {
      if (jj_scan_token(BYTE)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_135() {
      if (jj_scan_token(DECR)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
      if (jj_3R_20()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_43() {
      if (jj_scan_token(CHAR)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_23() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_42()) {
    jj_scanpos = xsp;
    if (jj_3R_43()) {
    jj_scanpos = xsp;
    if (jj_3R_44()) {
    jj_scanpos = xsp;
    if (jj_3R_45()) {
    jj_scanpos = xsp;
    if (jj_3R_46()) {
    jj_scanpos = xsp;
    if (jj_3R_47()) {
    jj_scanpos = xsp;
    if (jj_3R_48()) {
    jj_scanpos = xsp;
                           if (jj_3R_49()) {
                              return true;
                           }
                           if (jj_la == 0 && jj_scanpos == jj_lastpos) {
                              return false;
                           }
                        } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
                           return false;
                        }
                     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
                        return false;
                     }
                  } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
                     return false;
                  }
               } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
                  return false;
               }
            } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
               return false;
            }
         } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
            return false;
         }
      } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_42() {
      if (jj_scan_token(BOOLEAN)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3_9() {
      if (jj_scan_token(LBRACKET)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
      if (jj_scan_token(RBRACKET)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_121() {
      if (jj_3R_23()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_144() {
      if (jj_scan_token(SLASH)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_134() {
      if (jj_scan_token(INCR)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
      if (jj_3R_20()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_114() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_121()) {
    jj_scanpos = xsp;
         if (jj_3R_122()) {
            return true;
         }
         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
            return false;
         }
      } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    while (true) {
      xsp = jj_scanpos;
         if (jj_3R_123()) {
            jj_scanpos = xsp;
            break;
         }
         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
            return false;
         }
    }
    return false;
  }

  final private boolean jj_3R_120() {
      if (jj_scan_token(GE)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_133() {
      if (jj_scan_token(MINUS)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_127() {
      if (jj_3R_136()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_126() {
      if (jj_3R_135()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_139() {
      if (jj_scan_token(MINUS)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_125() {
      if (jj_3R_134()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_132() {
      if (jj_scan_token(PLUS)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_143() {
      if (jj_scan_token(STAR)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_124() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_132()) {
    jj_scanpos = xsp;
         if (jj_3R_133()) {
            return true;
         }
         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
            return false;
         }
      } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
      if (jj_3R_115()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_115() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_124()) {
    jj_scanpos = xsp;
    if (jj_3R_125()) {
    jj_scanpos = xsp;
    if (jj_3R_126()) {
    jj_scanpos = xsp;
               if (jj_3R_127()) {
                  return true;
               }
               if (jj_la == 0 && jj_scanpos == jj_lastpos) {
                  return false;
               }
            } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
               return false;
            }
         } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
            return false;
         }
      } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_137() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_143()) {
    jj_scanpos = xsp;
    if (jj_3R_144()) {
    jj_scanpos = xsp;
            if (jj_3R_145()) {
               return true;
            }
            if (jj_la == 0 && jj_scanpos == jj_lastpos) {
               return false;
            }
         } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
            return false;
         }
      } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
      if (jj_3R_115()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_131() {
      if (jj_scan_token(RUNSIGNEDSHIFT)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_119() {
      if (jj_scan_token(LE)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_138() {
      if (jj_scan_token(PLUS)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_112() {
      if (jj_3R_115()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
         if (jj_3R_137()) {
            jj_scanpos = xsp;
            break;
         }
         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
            return false;
         }
    }
    return false;
  }

  final private boolean jj_3R_88() {
      if (jj_3R_86()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_130() {
      if (jj_scan_token(RSIGNEDSHIFT)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_128() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_138()) {
    jj_scanpos = xsp;
         if (jj_3R_139()) {
            return true;
         }
         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
            return false;
         }
      } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
      if (jj_3R_112()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_87() {
      if (jj_3R_82()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_118() {
      if (jj_scan_token(GT)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_129() {
      if (jj_scan_token(LSHIFT)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_116() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_129()) {
    jj_scanpos = xsp;
    if (jj_3R_130()) {
    jj_scanpos = xsp;
            if (jj_3R_131()) {
               return true;
            }
            if (jj_la == 0 && jj_scanpos == jj_lastpos) {
               return false;
            }
         } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
            return false;
         }
      } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
      if (jj_3R_108()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_108() {
      if (jj_3R_112()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
         if (jj_3R_128()) {
            jj_scanpos = xsp;
            break;
         }
         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
            return false;
         }
    }
    return false;
  }

  final private boolean jj_3_8() {
      if (jj_scan_token(LBRACKET)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
      if (jj_3R_25()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
      if (jj_scan_token(RBRACKET)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_86() {
    Token xsp;
      if (jj_3_8()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    while (true) {
      xsp = jj_scanpos;
         if (jj_3_8()) {
            jj_scanpos = xsp;
            break;
         }
         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
            return false;
         }
    }
    while (true) {
      xsp = jj_scanpos;
         if (jj_3_9()) {
            jj_scanpos = xsp;
            break;
         }
         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
            return false;
         }
    }
    return false;
  }

  final private boolean jj_3R_117() {
      if (jj_scan_token(LT)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_106() {
      if (jj_3R_108()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
         if (jj_3R_116()) {
            jj_scanpos = xsp;
            break;
         }
         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
            return false;
         }
    }
    return false;
  }

  final private boolean jj_3R_113() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_117()) {
    jj_scanpos = xsp;
    if (jj_3R_118()) {
    jj_scanpos = xsp;
    if (jj_3R_119()) {
    jj_scanpos = xsp;
               if (jj_3R_120()) {
                  return true;
               }
               if (jj_la == 0 && jj_scanpos == jj_lastpos) {
                  return false;
               }
            } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
               return false;
            }
         } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
            return false;
         }
      } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
      if (jj_3R_106()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_111() {
      if (jj_scan_token(NE)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_109() {
      if (jj_scan_token(INSTANCEOF)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
      if (jj_3R_114()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_104() {
      if (jj_3R_106()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
         if (jj_3R_113()) {
            jj_scanpos = xsp;
            break;
         }
         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
            return false;
         }
    }
    return false;
  }

  final private boolean jj_3R_81() {
      if (jj_scan_token(NEW)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
      if (jj_3R_24()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_87()) {
    jj_scanpos = xsp;
         if (jj_3R_88()) {
            return true;
         }
         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
            return false;
         }
      } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3_7() {
      if (jj_scan_token(NEW)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
      if (jj_3R_23()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
      if (jj_3R_86()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_70() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3_7()) {
    jj_scanpos = xsp;
         if (jj_3R_81()) {
            return true;
         }
         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
            return false;
         }
      } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_97() {
      if (jj_scan_token(COMMA)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
      if (jj_3R_25()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_39() {
      if (jj_scan_token(ORASSIGN)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_110() {
      if (jj_scan_token(EQ)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_102() {
      if (jj_3R_104()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    Token xsp;
    xsp = jj_scanpos;
      if (jj_3R_109()) {
         jj_scanpos = xsp;
      } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_107() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_110()) {
    jj_scanpos = xsp;
         if (jj_3R_111()) {
            return true;
         }
         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
            return false;
         }
      } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
      if (jj_3R_102()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_94() {
      if (jj_3R_25()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
         if (jj_3R_97()) {
            jj_scanpos = xsp;
            break;
         }
         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
            return false;
         }
    }
    return false;
  }

  final private boolean jj_3R_89() {
      if (jj_3R_94()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_38() {
      if (jj_scan_token(XORASSIGN)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_82() {
      if (jj_scan_token(LPAREN)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    Token xsp;
    xsp = jj_scanpos;
      if (jj_3R_89()) {
         jj_scanpos = xsp;
      } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
      if (jj_scan_token(RPAREN)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_105() {
      if (jj_scan_token(BIT_AND)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
      if (jj_3R_100()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_100() {
      if (jj_3R_102()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
         if (jj_3R_107()) {
            jj_scanpos = xsp;
            break;
         }
         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
            return false;
         }
    }
    return false;
  }

  final private boolean jj_3R_37() {
      if (jj_scan_token(ANDASSIGN)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_85() {
      if (jj_scan_token(NULL)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_103() {
      if (jj_scan_token(XOR)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
      if (jj_3R_98()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_98() {
      if (jj_3R_100()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
         if (jj_3R_105()) {
            jj_scanpos = xsp;
            break;
         }
         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
            return false;
         }
    }
    return false;
  }

  final private boolean jj_3R_92() {
      if (jj_scan_token(FALSE)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_36() {
      if (jj_scan_token(RUNSIGNEDSHIFTASSIGN)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_91() {
      if (jj_scan_token(TRUE)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_84() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_91()) {
    jj_scanpos = xsp;
         if (jj_3R_92()) {
            return true;
         }
         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
            return false;
         }
      } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_101() {
      if (jj_scan_token(BIT_OR)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
      if (jj_3R_95()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_95() {
      if (jj_3R_98()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
         if (jj_3R_103()) {
            jj_scanpos = xsp;
            break;
         }
         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
            return false;
         }
    }
    return false;
  }

  final private boolean jj_3R_35() {
      if (jj_scan_token(RSIGNEDSHIFTASSIGN)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_80() {
      if (jj_3R_85()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_66() {
      if (jj_3R_69()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_79() {
      if (jj_3R_84()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_78() {
      if (jj_scan_token(STRING_LITERAL)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_99() {
      if (jj_scan_token(SC_AND)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
      if (jj_3R_90()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_90() {
      if (jj_3R_95()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
         if (jj_3R_101()) {
            jj_scanpos = xsp;
            break;
         }
         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
            return false;
         }
    }
    return false;
  }

  final private boolean jj_3R_34() {
      if (jj_scan_token(LSHIFTASSIGN)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_65() {
      if (jj_scan_token(NEW)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_77() {
      if (jj_scan_token(CHARACTER_LITERAL)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_76() {
      if (jj_scan_token(FLOATING_POINT_LITERAL)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_33() {
      if (jj_scan_token(MINUSASSIGN)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_69() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_75()) {
    jj_scanpos = xsp;
    if (jj_3R_76()) {
    jj_scanpos = xsp;
    if (jj_3R_77()) {
    jj_scanpos = xsp;
    if (jj_3R_78()) {
    jj_scanpos = xsp;
    if (jj_3R_79()) {
    jj_scanpos = xsp;
                     if (jj_3R_80()) {
                        return true;
                     }
                     if (jj_la == 0 && jj_scanpos == jj_lastpos) {
                        return false;
                     }
                  } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
                     return false;
                  }
               } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
                  return false;
               }
            } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
               return false;
            }
         } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
            return false;
         }
      } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_75() {
      if (jj_scan_token(INTEGER_LITERAL)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_96() {
      if (jj_scan_token(SC_OR)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
      if (jj_3R_83()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_83() {
      if (jj_3R_90()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
         if (jj_3R_99()) {
            jj_scanpos = xsp;
            break;
         }
         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
            return false;
         }
    }
    return false;
  }

  final private boolean jj_3R_64() {
      if (jj_scan_token(SUPER)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_32() {
      if (jj_scan_token(PLUSASSIGN)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_73() {
      if (jj_3R_82()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_72() {
      if (jj_scan_token(DOT)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
      if (jj_scan_token(IDENTIFIER)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_74() {
      if (jj_3R_83()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
         if (jj_3R_96()) {
            jj_scanpos = xsp;
            break;
         }
         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
            return false;
         }
    }
    return false;
  }

  final private boolean jj_3R_63() {
      if (jj_scan_token(THIS)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_31() {
      if (jj_scan_token(REMASSIGN)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_58() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_71()) {
    jj_scanpos = xsp;
    if (jj_3R_72()) {
    jj_scanpos = xsp;
            if (jj_3R_73()) {
               return true;
            }
            if (jj_la == 0 && jj_scanpos == jj_lastpos) {
               return false;
            }
         } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
            return false;
         }
      } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_71() {
      if (jj_scan_token(LBRACKET)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
      if (jj_3R_25()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
      if (jj_scan_token(RBRACKET)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_93() {
      if (jj_scan_token(HOOK)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
      if (jj_3R_25()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
      if (jj_scan_token(COLON)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
      if (jj_3R_68()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_57() {
      if (jj_3R_70()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_30() {
      if (jj_scan_token(SLASHASSIGN)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_27() {
      if (jj_3R_58()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_56() {
      if (jj_scan_token(LPAREN)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
      if (jj_3R_25()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
      if (jj_scan_token(RPAREN)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_152() {
      if (jj_scan_token(LBRACKET)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
      if (jj_scan_token(RBRACKET)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_55() {
      if (jj_scan_token(SUPER)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
      if (jj_scan_token(DOT)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
      if (jj_scan_token(IDENTIFIER)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_29() {
      if (jj_scan_token(STARASSIGN)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_68() {
      if (jj_3R_74()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    Token xsp;
    xsp = jj_scanpos;
      if (jj_3R_93()) {
         jj_scanpos = xsp;
      } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_54() {
      if (jj_scan_token(THIS)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_62() {
      if (jj_scan_token(IDENTIFIER)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_53() {
      if (jj_3R_24()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_153() {
      if (jj_scan_token(LBRACKET)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
      if (jj_scan_token(RBRACKET)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_26() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_52()) {
    jj_scanpos = xsp;
    if (jj_3R_53()) {
    jj_scanpos = xsp;
    if (jj_3R_54()) {
    jj_scanpos = xsp;
    if (jj_3R_55()) {
    jj_scanpos = xsp;
    if (jj_3R_56()) {
    jj_scanpos = xsp;
                     if (jj_3R_57()) {
                        return true;
                     }
                     if (jj_la == 0 && jj_scanpos == jj_lastpos) {
                        return false;
                     }
                  } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
                     return false;
                  }
               } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
                  return false;
               }
            } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
               return false;
            }
         } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
            return false;
         }
      } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_52() {
      if (jj_3R_69()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_21() {
    Token xsp;
    xsp = jj_scanpos;
    if (jj_3R_28()) {
    jj_scanpos = xsp;
    if (jj_3R_29()) {
    jj_scanpos = xsp;
    if (jj_3R_30()) {
    jj_scanpos = xsp;
    if (jj_3R_31()) {
    jj_scanpos = xsp;
    if (jj_3R_32()) {
    jj_scanpos = xsp;
    if (jj_3R_33()) {
    jj_scanpos = xsp;
    if (jj_3R_34()) {
    jj_scanpos = xsp;
    if (jj_3R_35()) {
    jj_scanpos = xsp;
    if (jj_3R_36()) {
    jj_scanpos = xsp;
    if (jj_3R_37()) {
    jj_scanpos = xsp;
    if (jj_3R_38()) {
    jj_scanpos = xsp;
                                       if (jj_3R_39()) {
                                          return true;
                                       }
                                       if (jj_la == 0
                                             && jj_scanpos == jj_lastpos) {
                                          return false;
                                       }
                                    } else if (jj_la == 0
                                          && jj_scanpos == jj_lastpos) {
                                       return false;
                                    }
                                 } else if (jj_la == 0
                                       && jj_scanpos == jj_lastpos) {
                                    return false;
                                 }
                              } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
                                 return false;
                              }
                           } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
                              return false;
                           }
                        } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
                           return false;
                        }
                     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
                        return false;
                     }
                  } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
                     return false;
                  }
               } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
                  return false;
               }
            } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
               return false;
            }
         } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
            return false;
         }
      } else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_28() {
      if (jj_scan_token(ASSIGN)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_61() {
      if (jj_scan_token(LPAREN)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3_2() {
      if (jj_3R_20()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
      if (jj_3R_21()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_20() {
      if (jj_3R_26()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
         if (jj_3R_27()) {
            jj_scanpos = xsp;
            break;
         }
         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
            return false;
         }
    }
    return false;
  }

  final private boolean jj_3R_60() {
      if (jj_scan_token(BANG)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_155() {
      if (jj_scan_token(DECR)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_67() {
      if (jj_3R_20()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
      if (jj_3R_21()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
      if (jj_3R_25()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_150() {
      if (jj_scan_token(LPAREN)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
      if (jj_3R_24()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    Token xsp;
    while (true) {
      xsp = jj_scanpos;
         if (jj_3R_153()) {
            jj_scanpos = xsp;
            break;
         }
         if (jj_la == 0 && jj_scanpos == jj_lastpos) {
            return false;
         }
      }
      if (jj_scan_token(RPAREN)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
      if (jj_3R_136()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_59() {
      if (jj_scan_token(TILDE)) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  final private boolean jj_3R_51() {
      if (jj_3R_68()) {
         return true;
      }
      if (jj_la == 0 && jj_scanpos == jj_lastpos) {
         return false;
      }
    return false;
  }

  public ExpressionParserTokenManager token_source;
  ASCII_UCodeESC_CharStream jj_input_stream;
  public Token token, jj_nt;
  private int jj_ntk;
  private Token jj_scanpos, jj_lastpos;
  private int jj_la;
  public boolean lookingAhead = false;
  private int jj_gen;
  final private int[] jj_la1 = new int[44];
   final private int[] jj_la1_0 = { 0x8209400, 0x0, 0x8209400, 0x0, 0x1000000,
         0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
         0x0, 0x0, 0x0, 0x0, 0x0, 0x1000000, 0x0, 0x0, 0x1000000, 0x1000000,
         0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1000000, 0x0, 0x1000000,
         0x1000000, 0x1000000, 0x0, 0x0, 0x0, };
   final private int[] jj_la1_1 = { 0x2014, 0x0, 0x2014, 0x0, 0x884480c0, 0x0,
         0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0,
         0x0, 0x0, 0x0, 0x0, 0x884480c0, 0x0, 0x0, 0x884480c0, 0x884480c0, 0x0,
         0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x884480c0, 0x0, 0x88400080, 0x400000,
         0x884480c0, 0x0, 0x0, 0x40, };
   final private int[] jj_la1_2 = { 0x8, 0x400, 0x0, 0x2000, 0xf00c004e,
         0x8000, 0x100000, 0x4000000, 0x8000000, 0x0, 0x0, 0x0, 0x2400000,
         0x2400000, 0x0, 0x1830000, 0x1830000, 0x0, 0x0, 0xc0000000,
         0xc0000000, 0x0, 0x0, 0xc0000000, 0xf00c004e, 0xc0000, 0xc0000, 0x4e,
         0xc004e, 0x40, 0x30000000, 0x30000000, 0x400, 0x400, 0x40, 0x4440,
         0x4e, 0x4440, 0x6, 0x0, 0xf00c004e, 0x2000, 0x440, 0x0, };
   final private int[] jj_la1_3 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0xffe00, 0x0, 0x0,
         0x0, 0x8, 0x10, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1c0, 0x1c0, 0x0, 0x0,
         0x23, 0x23, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
         0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, };
  final private JJExpressionParserCalls[] jj_2_rtns = new JJExpressionParserCalls[9];
  private boolean jj_rescan = false;
  private int jj_gc = 0;

  public ExpressionParser(java.io.InputStream stream) {
    jj_input_stream = new ASCII_UCodeESC_CharStream(stream, 1, 1);
    token_source = new ExpressionParserTokenManager(jj_input_stream);
    token = new Token();
    jj_ntk = -1;
    jj_gen = 0;
      for (int i = 0; i < 44; i++) {
         jj_la1[i] = -1;
      }
      for (int i = 0; i < jj_2_rtns.length; i++) {
         jj_2_rtns[i] = new JJExpressionParserCalls();
      }
  }

  public void ReInit(java.io.InputStream stream) {
    jj_input_stream.ReInit(stream, 1, 1);
    token_source.ReInit(jj_input_stream);
    token = new Token();
    jj_ntk = -1;
    jj_gen = 0;
      for (int i = 0; i < 44; i++) {
         jj_la1[i] = -1;
      }
      for (int i = 0; i < jj_2_rtns.length; i++) {
         jj_2_rtns[i] = new JJExpressionParserCalls();
      }
  }

  public ExpressionParser(ExpressionParserTokenManager tm) {
    token_source = tm;
    token = new Token();
    jj_ntk = -1;
    jj_gen = 0;
      for (int i = 0; i < 44; i++) {
         jj_la1[i] = -1;
      }
      for (int i = 0; i < jj_2_rtns.length; i++) {
         jj_2_rtns[i] = new JJExpressionParserCalls();
      }
  }

  public void ReInit(ExpressionParserTokenManager tm) {
    token_source = tm;
    token = new Token();
    jj_ntk = -1;
    jj_gen = 0;
      for (int i = 0; i < 44; i++) {
         jj_la1[i] = -1;
      }
      for (int i = 0; i < jj_2_rtns.length; i++) {
         jj_2_rtns[i] = new JJExpressionParserCalls();
      }
  }

  final private Token jj_consume_token(int kind) throws ParseException {
    Token oldToken;
      if ((oldToken = token).next != null) {
         token = token.next;
      } else {
         token = token.next = token_source.getNextToken();
      }
    jj_ntk = -1;
    if (token.kind == kind) {
      jj_gen++;
      if (++jj_gc > 100) {
        jj_gc = 0;
            for (JJExpressionParserCalls jj_2_rtn : jj_2_rtns) {
               JJExpressionParserCalls c = jj_2_rtn;
          while (c != null) {
                  if (c.gen < jj_gen) {
                     c.first = null;
                  }
            c = c.next;
          }
        }
      }
      return token;
    }
    token = oldToken;
    jj_kind = kind;
    throw generateParseException();
  }

  final private boolean jj_scan_token(int kind) {
    if (jj_scanpos == jj_lastpos) {
      jj_la--;
      if (jj_scanpos.next == null) {
            jj_lastpos = jj_scanpos = jj_scanpos.next = token_source
                  .getNextToken();
      } else {
        jj_lastpos = jj_scanpos = jj_scanpos.next;
      }
    } else {
      jj_scanpos = jj_scanpos.next;
    }
    if (jj_rescan) {
         int i = 0;
         Token tok = token;
         while (tok != null && tok != jj_scanpos) {
            i++;
            tok = tok.next;
         }
         if (tok != null) {
            jj_add_error_token(kind, i);
         }
    }
    return (jj_scanpos.kind != kind);
  }

  final public Token getNextToken() {
      if (token.next != null) {
         token = token.next;
      } else {
         token = token.next = token_source.getNextToken();
      }
    jj_ntk = -1;
    jj_gen++;
    return token;
  }

  final public Token getToken(int index) {
    Token t = lookingAhead ? jj_scanpos : token;
    for (int i = 0; i < index; i++) {
         if (t.next != null) {
            t = t.next;
         } else {
            t = t.next = token_source.getNextToken();
         }
    }
    return t;
  }

  final private int jj_ntk() {
      if ((jj_nt = token.next) == null) {
      return (jj_ntk = (token.next=token_source.getNextToken()).kind);
      } else {
      return (jj_ntk = jj_nt.kind);
  }
   }

   private java.util.Vector<int[]> jj_expentries = new java.util.Vector();
  private int[] jj_expentry;
  private int jj_kind = -1;
  private int[] jj_lasttokens = new int[100];
  private int jj_endpos;

  private void jj_add_error_token(int kind, int pos) {
      if (pos >= 100) {
         return;
      }
    if (pos == jj_endpos + 1) {
      jj_lasttokens[jj_endpos++] = kind;
    } else if (jj_endpos != 0) {
      jj_expentry = new int[jj_endpos];
      for (int i = 0; i < jj_endpos; i++) {
        jj_expentry[i] = jj_lasttokens[i];
      }
      boolean exists = false;
         for (java.util.Enumeration<int[]> enum_ = jj_expentries.elements(); enum_
               .hasMoreElements();) {
            int[] oldentry = (enum_.nextElement());
        if (oldentry.length == jj_expentry.length) {
          exists = true;
          for (int i = 0; i < jj_expentry.length; i++) {
            if (oldentry[i] != jj_expentry[i]) {
              exists = false;
              break;
            }
          }
               if (exists) {
                  break;
               }
            }
         }
         if (!exists) {
            jj_expentries.addElement(jj_expentry);
         }
         if (pos != 0) {
            jj_lasttokens[(jj_endpos = pos) - 1] = kind;
         }
    }
  }

  final public ParseException generateParseException() {
    jj_expentries.removeAllElements();
    boolean[] la1tokens = new boolean[116];
    for (int i = 0; i < 116; i++) {
      la1tokens[i] = false;
    }
    if (jj_kind >= 0) {
      la1tokens[jj_kind] = true;
      jj_kind = -1;
    }
    for (int i = 0; i < 44; i++) {
      if (jj_la1[i] == jj_gen) {
        for (int j = 0; j < 32; j++) {
          if ((jj_la1_0[i] & (1<

Other Java examples (source code examples)

Here is a short list of links related to this Java ExpressionParser.java source code file:

... this post is sponsored by my books ...

#1 New Release!

FP Best Seller

 

new blog posts

 

Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.

A percentage of advertising revenue from
pages under the /java/jwarehouse URI on this website is
paid back to open source projects.