1 /* Generated By:JavaCC: Do not edit this line. PHPParser.java */
 
   4 import org.eclipse.core.resources.IFile;
 
   5 import org.eclipse.core.resources.IMarker;
 
   6 import org.eclipse.core.runtime.CoreException;
 
   7 import org.eclipse.ui.texteditor.MarkerUtilities;
 
   8 import org.eclipse.jface.preference.IPreferenceStore;
 
  10 import java.util.Hashtable;
 
  11 import java.io.StringReader;
 
  12 import java.text.MessageFormat;
 
  14 import net.sourceforge.phpeclipse.actions.PHPStartApacheAction;
 
  15 import net.sourceforge.phpeclipse.PHPeclipsePlugin;
 
  16 import net.sourceforge.phpdt.internal.compiler.parser.PHPOutlineInfo;
 
  17 import net.sourceforge.phpdt.internal.compiler.parser.PHPSegmentWithChildren;
 
  18 import net.sourceforge.phpdt.internal.compiler.parser.PHPFunctionDeclaration;
 
  19 import net.sourceforge.phpdt.internal.compiler.parser.PHPClassDeclaration;
 
  20 import net.sourceforge.phpdt.internal.compiler.parser.PHPVarDeclaration;
 
  21 import net.sourceforge.phpdt.internal.compiler.parser.PHPReqIncDeclaration;
 
  25  * This php parser is inspired by the Java 1.2 grammar example 
 
  26  * given with JavaCC. You can get JavaCC at http://www.webgain.com
 
  27  * You can test the parser with the PHPParserTestCase2.java
 
  28  * @author Matthieu Casanova
 
  30 public class PHPParser extends PHPParserSuperclass implements PHPParserConstants {
 
  32   private static IFile fileToParse;
 
  34   /** The current segment */
 
  35   private static PHPSegmentWithChildren currentSegment;
 
  37   private static final String PARSE_ERROR_STRING = "Parse error"; //$NON-NLS-1$
 
  38   private static final String PARSE_WARNING_STRING = "Warning"; //$NON-NLS-1$
 
  39   PHPOutlineInfo outlineInfo;
 
  40   private static int errorLevel = ERROR;
 
  41   private static String errorMessage;
 
  46   public void setFileToParse(IFile fileToParse) {
 
  47     this.fileToParse = fileToParse;
 
  50   public PHPParser(IFile fileToParse) {
 
  51     this(new StringReader(""));
 
  52     this.fileToParse = fileToParse;
 
  55   public void phpParserTester(String strEval) throws CoreException, ParseException {
 
  56     PHPParserTokenManager.SwitchTo(PHPParserTokenManager.PHPPARSING);
 
  57     StringReader stream = new StringReader(strEval);
 
  58     if (jj_input_stream == null) {
 
  59       jj_input_stream = new SimpleCharStream(stream, 1, 1);
 
  61     ReInit(new StringReader(strEval));
 
  65   public void htmlParserTester(String strEval) throws CoreException, ParseException {
 
  66     StringReader stream = new StringReader(strEval);
 
  67     if (jj_input_stream == null) {
 
  68       jj_input_stream = new SimpleCharStream(stream, 1, 1);
 
  74   public PHPOutlineInfo parseInfo(Object parent, String s) {
 
  75     outlineInfo = new PHPOutlineInfo(parent);
 
  76     currentSegment = outlineInfo.getDeclarations();
 
  77     StringReader stream = new StringReader(s);
 
  78     if (jj_input_stream == null) {
 
  79       jj_input_stream = new SimpleCharStream(stream, 1, 1);
 
  84     } catch (ParseException e) {
 
  85       processParseException(e);
 
  91    * This method will process the parse exception.
 
  92    * If the error message is null, the parse exception wasn't catched and a trace is written in the log
 
  93    * @param e the ParseException
 
  95   private static void processParseException(final ParseException e) {
 
  96     if (errorMessage == null) {
 
  97       PHPeclipsePlugin.log(e);
 
  98       errorMessage = "this exception wasn't handled by the parser please tell us how to reproduce it";
 
 105    * Create marker for the parse error
 
 107   private static void setMarker(ParseException e) {
 
 109       setMarker(fileToParse, errorMessage, jj_input_stream.tokenBegin,jj_input_stream.tokenBegin+e.currentToken.image.length(), errorLevel);
 
 110     } catch (CoreException e2) {
 
 111       PHPeclipsePlugin.log(e2);
 
 116    * Create markers according to the external parser output
 
 118   private static void createMarkers(String output, IFile file) throws CoreException {
 
 119     // delete all markers
 
 120     file.deleteMarkers(IMarker.PROBLEM, false, 0);
 
 125     while ((brIndx = output.indexOf("<br />", indx)) != -1) {
 
 126       // newer php error output (tested with 4.2.3)
 
 127       scanLine(output, file, indx, brIndx);
 
 132       while ((brIndx = output.indexOf("<br>", indx)) != -1) {
 
 133         // older php error output (tested with 4.2.3)
 
 134         scanLine(output, file, indx, brIndx);
 
 140   private static void scanLine(String output, IFile file, int indx, int brIndx) throws CoreException {
 
 142     StringBuffer lineNumberBuffer = new StringBuffer(10);
 
 144     current = output.substring(indx, brIndx);
 
 146     if (current.indexOf(PARSE_WARNING_STRING) != -1 || current.indexOf(PARSE_ERROR_STRING) != -1) {
 
 147       int onLine = current.indexOf("on line <b>");
 
 149         lineNumberBuffer.delete(0, lineNumberBuffer.length());
 
 150         for (int i = onLine; i < current.length(); i++) {
 
 151           ch = current.charAt(i);
 
 152           if ('0' <= ch && '9' >= ch) {
 
 153             lineNumberBuffer.append(ch);
 
 157         int lineNumber = Integer.parseInt(lineNumberBuffer.toString());
 
 159         Hashtable attributes = new Hashtable();
 
 161         current = current.replaceAll("\n", "");
 
 162         current = current.replaceAll("<b>", "");
 
 163         current = current.replaceAll("</b>", "");
 
 164         MarkerUtilities.setMessage(attributes, current);
 
 166         if (current.indexOf(PARSE_ERROR_STRING) != -1)
 
 167           attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_ERROR));
 
 168         else if (current.indexOf(PARSE_WARNING_STRING) != -1)
 
 169           attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_WARNING));
 
 171           attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_INFO));
 
 172         MarkerUtilities.setLineNumber(attributes, lineNumber);
 
 173         MarkerUtilities.createMarker(file, attributes, IMarker.PROBLEM);
 
 178   public void parse(String s) throws CoreException {
 
 179     ReInit(new StringReader(s));
 
 182     } catch (ParseException e) {
 
 183       processParseException(e);
 
 188    * Call the php parse command ( php -l -f <filename> )
 
 189    * and create markers according to the external parser output
 
 191   public static void phpExternalParse(IFile file) {
 
 192     IPreferenceStore store = PHPeclipsePlugin.getDefault().getPreferenceStore();
 
 193     String filename = file.getLocation().toString();
 
 195     String[] arguments = { filename };
 
 196     MessageFormat form = new MessageFormat(store.getString(PHPeclipsePlugin.EXTERNAL_PARSER_PREF));
 
 197     String command = form.format(arguments);
 
 199     String parserResult = PHPStartApacheAction.getParserOutput(command, "External parser: ");
 
 202       // parse the buffer to find the errors and warnings
 
 203       createMarkers(parserResult, file);
 
 204     } catch (CoreException e) {
 
 205       PHPeclipsePlugin.log(e);
 
 209   public void parse() throws ParseException {
 
 213 /*****************************************
 
 214  * THE JAVA LANGUAGE GRAMMAR STARTS HERE *
 
 215  *****************************************/
 
 218  * Program structuring syntax follows.
 
 220   static final public void phpTest() throws ParseException {
 
 225   static final public void phpFile() throws ParseException {
 
 228       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 236       jj_consume_token(PHPSTART);
 
 238       jj_consume_token(PHPEND);
 
 243   static final public void Php() throws ParseException {
 
 246       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 270       case INTEGER_LITERAL:
 
 271       case FLOATING_POINT_LITERAL:
 
 296   static final public void ClassDeclaration() throws ParseException {
 
 297   PHPClassDeclaration classDeclaration;
 
 299   int pos = jj_input_stream.bufpos;
 
 300     jj_consume_token(CLASS);
 
 301     className = jj_consume_token(IDENTIFIER);
 
 302     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 304       jj_consume_token(EXTENDS);
 
 305       jj_consume_token(IDENTIFIER);
 
 311     classDeclaration = new PHPClassDeclaration(currentSegment,className.image,pos);
 
 312     currentSegment.add(classDeclaration);
 
 313     currentSegment = classDeclaration;
 
 315     currentSegment = (PHPSegmentWithChildren) currentSegment.getParent();
 
 318   static final public void ClassBody() throws ParseException {
 
 320       jj_consume_token(LBRACE);
 
 321     } catch (ParseException e) {
 
 322     errorMessage = "'{' expected";
 
 328       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 337       ClassBodyDeclaration();
 
 340       jj_consume_token(RBRACE);
 
 341     } catch (ParseException e) {
 
 342     errorMessage = "'var', 'function' or '}' expected";
 
 348   static final public void ClassBodyDeclaration() throws ParseException {
 
 349     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 358       jj_consume_token(-1);
 
 359       throw new ParseException();
 
 363   static final public void FieldDeclaration() throws ParseException {
 
 364   PHPVarDeclaration variableDeclaration;
 
 365     jj_consume_token(VAR);
 
 366     variableDeclaration = VariableDeclarator();
 
 367    currentSegment.add(variableDeclaration);
 
 370       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 378       jj_consume_token(COMMA);
 
 379       variableDeclaration = VariableDeclarator();
 
 380      currentSegment.add(variableDeclaration);
 
 383       jj_consume_token(SEMICOLON);
 
 384     } catch (ParseException e) {
 
 385     errorMessage = "';' expected after variable declaration";
 
 391   static final public PHPVarDeclaration VariableDeclarator() throws ParseException {
 
 393   String varValue = null;
 
 394   int pos = jj_input_stream.bufpos;
 
 395     varName = VariableDeclaratorId();
 
 396     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 398       jj_consume_token(ASSIGN);
 
 400         varValue = VariableInitializer();
 
 401       } catch (ParseException e) {
 
 402       errorMessage = "Literal expression expected in variable initializer";
 
 411     if (varValue == null) {
 
 412       {if (true) return new PHPVarDeclaration(currentSegment,varName,pos);}
 
 414     {if (true) return new PHPVarDeclaration(currentSegment,varName,pos,varValue);}
 
 415     throw new Error("Missing return statement in function");
 
 418   static final public String VariableDeclaratorId() throws ParseException {
 
 420   StringBuffer buff = new StringBuffer();
 
 431         expr = VariableSuffix();
 
 434      {if (true) return buff.toString();}
 
 435     } catch (ParseException e) {
 
 436     errorMessage = "'$' expected for variable identifier";
 
 440     throw new Error("Missing return statement in function");
 
 443   static final public String Variable() throws ParseException {
 
 446     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 448       token = jj_consume_token(DOLLAR_ID);
 
 449       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 451         jj_consume_token(LBRACE);
 
 453         jj_consume_token(RBRACE);
 
 460       {if (true) return token.image;}
 
 462     {if (true) return token + "{" + expr + "}";}
 
 465       jj_consume_token(DOLLAR);
 
 466       expr = VariableName();
 
 467    {if (true) return "$" + expr;}
 
 471       jj_consume_token(-1);
 
 472       throw new ParseException();
 
 474     throw new Error("Missing return statement in function");
 
 477   static final public String VariableName() throws ParseException {
 
 480     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 482       jj_consume_token(LBRACE);
 
 484       jj_consume_token(RBRACE);
 
 485    {if (true) return "{"+expr+"}";}
 
 488       token = jj_consume_token(IDENTIFIER);
 
 489       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 491         jj_consume_token(LBRACE);
 
 493         jj_consume_token(RBRACE);
 
 500       {if (true) return token.image;}
 
 502     {if (true) return token + "{" + expr + "}";}
 
 505       jj_consume_token(DOLLAR);
 
 506       expr = VariableName();
 
 507    {if (true) return "$" + expr;}
 
 510       token = jj_consume_token(DOLLAR_ID);
 
 511       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 516         expr = VariableName();
 
 523     {if (true) return token.image;}
 
 525   {if (true) return token.image + expr;}
 
 529       jj_consume_token(-1);
 
 530       throw new ParseException();
 
 532     throw new Error("Missing return statement in function");
 
 535   static final public String VariableInitializer() throws ParseException {
 
 537     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 541     case INTEGER_LITERAL:
 
 542     case FLOATING_POINT_LITERAL:
 
 545    {if (true) return expr;}
 
 548       expr = ArrayDeclarator();
 
 549    {if (true) return expr;}
 
 553       jj_consume_token(-1);
 
 554       throw new ParseException();
 
 556     throw new Error("Missing return statement in function");
 
 559   static final public String ArrayVariable() throws ParseException {
 
 561 StringBuffer buff = new StringBuffer();
 
 564     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 566       jj_consume_token(ARRAYASSIGN);
 
 568     buff.append("=>").append(expr);
 
 574    {if (true) return buff.toString();}
 
 575     throw new Error("Missing return statement in function");
 
 578   static final public String ArrayInitializer() throws ParseException {
 
 580 StringBuffer buff = new StringBuffer("(");
 
 581     jj_consume_token(LPAREN);
 
 582     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 589     case INTEGER_LITERAL:
 
 590     case FLOATING_POINT_LITERAL:
 
 603       expr = ArrayVariable();
 
 612         jj_consume_token(COMMA);
 
 613         expr = ArrayVariable();
 
 614              buff.append(",").append(expr);
 
 621     jj_consume_token(RPAREN);
 
 623     {if (true) return buff.toString();}
 
 624     throw new Error("Missing return statement in function");
 
 627   static final public void MethodDeclaration() throws ParseException {
 
 628   PHPFunctionDeclaration functionDeclaration;
 
 629     jj_consume_token(FUNCTION);
 
 630     functionDeclaration = MethodDeclarator();
 
 631     currentSegment.add(functionDeclaration);
 
 632     currentSegment = functionDeclaration;
 
 634     currentSegment = (PHPSegmentWithChildren) currentSegment.getParent();
 
 637   static final public PHPFunctionDeclaration MethodDeclarator() throws ParseException {
 
 639   StringBuffer methodDeclaration = new StringBuffer();
 
 640   String formalParameters;
 
 641   int pos = jj_input_stream.bufpos;
 
 642     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 644       jj_consume_token(BIT_AND);
 
 645                methodDeclaration.append("&");
 
 651     identifier = jj_consume_token(IDENTIFIER);
 
 652    methodDeclaration.append(identifier);
 
 653     formalParameters = FormalParameters();
 
 654     methodDeclaration.append(formalParameters);
 
 655     {if (true) return new PHPFunctionDeclaration(currentSegment,methodDeclaration.toString(),pos);}
 
 656     throw new Error("Missing return statement in function");
 
 659   static final public String FormalParameters() throws ParseException {
 
 661   final StringBuffer buff = new StringBuffer("(");
 
 663       jj_consume_token(LPAREN);
 
 664     } catch (ParseException e) {
 
 665     errorMessage = "Formal parameter expected after function identifier";
 
 667     jj_consume_token(token.kind);
 
 669     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 673       expr = FormalParameter();
 
 677         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 685         jj_consume_token(COMMA);
 
 686         expr = FormalParameter();
 
 687                  buff.append(",").append(expr);
 
 695       jj_consume_token(RPAREN);
 
 696     } catch (ParseException e) {
 
 697     errorMessage = "')' expected";
 
 702   {if (true) return buff.toString();}
 
 703     throw new Error("Missing return statement in function");
 
 706   static final public String FormalParameter() throws ParseException {
 
 707   PHPVarDeclaration variableDeclaration;
 
 708   StringBuffer buff = new StringBuffer();
 
 709     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 711       jj_consume_token(BIT_AND);
 
 718     variableDeclaration = VariableDeclarator();
 
 719     buff.append(variableDeclaration.toString());
 
 720     {if (true) return buff.toString();}
 
 721     throw new Error("Missing return statement in function");
 
 724   static final public String Type() throws ParseException {
 
 725     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 727       jj_consume_token(STRING);
 
 728    {if (true) return "string";}
 
 731       jj_consume_token(BOOL);
 
 732    {if (true) return "bool";}
 
 735       jj_consume_token(BOOLEAN);
 
 736    {if (true) return "boolean";}
 
 739       jj_consume_token(REAL);
 
 740    {if (true) return "real";}
 
 743       jj_consume_token(DOUBLE);
 
 744    {if (true) return "double";}
 
 747       jj_consume_token(FLOAT);
 
 748    {if (true) return "float";}
 
 751       jj_consume_token(INT);
 
 752    {if (true) return "int";}
 
 755       jj_consume_token(INTEGER);
 
 756    {if (true) return "integer";}
 
 760       jj_consume_token(-1);
 
 761       throw new ParseException();
 
 763     throw new Error("Missing return statement in function");
 
 766   static final public String Expression() throws ParseException {
 
 768   String assignOperator = null;
 
 770     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 772       expr = PrintExpression();
 
 773    {if (true) return expr;}
 
 780     case INTEGER_LITERAL:
 
 781     case FLOATING_POINT_LITERAL:
 
 794       expr = ConditionalExpression();
 
 795       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 807       case RSIGNEDSHIFTASSIGN:
 
 808       case RUNSIGNEDSHIFTASSIGN:
 
 809         assignOperator = AssignmentOperator();
 
 811           expr2 = Expression();
 
 812         } catch (ParseException e) {
 
 813       errorMessage = "expression expected";
 
 815       {if (true) throw generateParseException();}
 
 823       {if (true) return expr;}
 
 825       {if (true) return expr + assignOperator + expr2;}
 
 830       jj_consume_token(-1);
 
 831       throw new ParseException();
 
 833     throw new Error("Missing return statement in function");
 
 836   static final public String AssignmentOperator() throws ParseException {
 
 837     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 839       jj_consume_token(ASSIGN);
 
 840  {if (true) return "=";}
 
 843       jj_consume_token(STARASSIGN);
 
 844  {if (true) return "*=";}
 
 847       jj_consume_token(SLASHASSIGN);
 
 848  {if (true) return "/=";}
 
 851       jj_consume_token(REMASSIGN);
 
 852  {if (true) return "%=";}
 
 855       jj_consume_token(PLUSASSIGN);
 
 856  {if (true) return "+=";}
 
 859       jj_consume_token(MINUSASSIGN);
 
 860  {if (true) return "-=";}
 
 863       jj_consume_token(LSHIFTASSIGN);
 
 864  {if (true) return "<<=";}
 
 866     case RSIGNEDSHIFTASSIGN:
 
 867       jj_consume_token(RSIGNEDSHIFTASSIGN);
 
 868  {if (true) return ">>=";}
 
 870     case RUNSIGNEDSHIFTASSIGN:
 
 871       jj_consume_token(RUNSIGNEDSHIFTASSIGN);
 
 872  {if (true) return ">>>=";}
 
 875       jj_consume_token(ANDASSIGN);
 
 876  {if (true) return "&=";}
 
 879       jj_consume_token(XORASSIGN);
 
 880  {if (true) return "|=";}
 
 883       jj_consume_token(ORASSIGN);
 
 884  {if (true) return "|=";}
 
 887       jj_consume_token(DOTASSIGN);
 
 888  {if (true) return ".=";}
 
 892       jj_consume_token(-1);
 
 893       throw new ParseException();
 
 895     throw new Error("Missing return statement in function");
 
 898   static final public String ConditionalExpression() throws ParseException {
 
 902     expr = ConditionalOrExpression();
 
 903     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 905       jj_consume_token(HOOK);
 
 906       expr2 = Expression();
 
 907       jj_consume_token(COLON);
 
 908       expr3 = ConditionalExpression();
 
 915     {if (true) return expr;}
 
 917     {if (true) return expr + "?" + expr2 + ":" + expr3;}
 
 919     throw new Error("Missing return statement in function");
 
 922   static final public String ConditionalOrExpression() throws ParseException {
 
 926   StringBuffer buff = new StringBuffer();
 
 927     expr = ConditionalAndExpression();
 
 931       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 940       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 942         operator = jj_consume_token(SC_OR);
 
 945         operator = jj_consume_token(_ORL);
 
 949         jj_consume_token(-1);
 
 950         throw new ParseException();
 
 952       expr2 = ConditionalAndExpression();
 
 953       buff.append(operator.image);
 
 956     {if (true) return buff.toString();}
 
 957     throw new Error("Missing return statement in function");
 
 960   static final public String ConditionalAndExpression() throws ParseException {
 
 964   StringBuffer buff = new StringBuffer();
 
 965     expr = ConcatExpression();
 
 969       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 978       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 980         operator = jj_consume_token(SC_AND);
 
 983         operator = jj_consume_token(_ANDL);
 
 987         jj_consume_token(-1);
 
 988         throw new ParseException();
 
 990       expr2 = ConcatExpression();
 
 991       buff.append(operator.image);
 
 994     {if (true) return buff.toString();}
 
 995     throw new Error("Missing return statement in function");
 
 998   static final public String ConcatExpression() throws ParseException {
 
1000   String expr2 = null;
 
1001   StringBuffer buff = new StringBuffer();
 
1002     expr = InclusiveOrExpression();
 
1006       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1011         jj_la1[28] = jj_gen;
 
1014       jj_consume_token(DOT);
 
1015       expr2 = InclusiveOrExpression();
 
1019     {if (true) return buff.toString();}
 
1020     throw new Error("Missing return statement in function");
 
1023   static final public String InclusiveOrExpression() throws ParseException {
 
1025   String expr2 = null;
 
1026   StringBuffer buff = new StringBuffer();
 
1027     expr = ExclusiveOrExpression();
 
1031       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1036         jj_la1[29] = jj_gen;
 
1039       jj_consume_token(BIT_OR);
 
1040       expr2 = ExclusiveOrExpression();
 
1044     {if (true) return buff.toString();}
 
1045     throw new Error("Missing return statement in function");
 
1048   static final public String ExclusiveOrExpression() throws ParseException {
 
1050   String expr2 = null;
 
1051   StringBuffer buff = new StringBuffer();
 
1052     expr = AndExpression();
 
1056       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1061         jj_la1[30] = jj_gen;
 
1064       jj_consume_token(XOR);
 
1065       expr2 = AndExpression();
 
1069     {if (true) return buff.toString();}
 
1070     throw new Error("Missing return statement in function");
 
1073   static final public String AndExpression() throws ParseException {
 
1075   String expr2 = null;
 
1076   StringBuffer buff = new StringBuffer();
 
1077     expr = EqualityExpression();
 
1081       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1086         jj_la1[31] = jj_gen;
 
1089       jj_consume_token(BIT_AND);
 
1090       expr2 = EqualityExpression();
 
1094     {if (true) return buff.toString();}
 
1095     throw new Error("Missing return statement in function");
 
1098   static final public String EqualityExpression() throws ParseException {
 
1102   StringBuffer buff = new StringBuffer();
 
1103     expr = RelationalExpression();
 
1107       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1113         jj_la1[32] = jj_gen;
 
1116       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1118         operator = jj_consume_token(EQ);
 
1121         operator = jj_consume_token(NE);
 
1124         jj_la1[33] = jj_gen;
 
1125         jj_consume_token(-1);
 
1126         throw new ParseException();
 
1128       expr2 = RelationalExpression();
 
1129     buff.append(operator.image);
 
1132    {if (true) return buff.toString();}
 
1133     throw new Error("Missing return statement in function");
 
1136   static final public String RelationalExpression() throws ParseException {
 
1140   StringBuffer buff = new StringBuffer();
 
1141     expr = ShiftExpression();
 
1145       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1153         jj_la1[34] = jj_gen;
 
1156       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1158         operator = jj_consume_token(LT);
 
1161         operator = jj_consume_token(GT);
 
1164         operator = jj_consume_token(LE);
 
1167         operator = jj_consume_token(GE);
 
1170         jj_la1[35] = jj_gen;
 
1171         jj_consume_token(-1);
 
1172         throw new ParseException();
 
1174       expr2 = ShiftExpression();
 
1175     buff.append(operator.image);
 
1178    {if (true) return buff.toString();}
 
1179     throw new Error("Missing return statement in function");
 
1182   static final public String ShiftExpression() throws ParseException {
 
1186   StringBuffer buff = new StringBuffer();
 
1187     expr = AdditiveExpression();
 
1191       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1194       case RUNSIGNEDSHIFT:
 
1198         jj_la1[36] = jj_gen;
 
1201       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1203         operator = jj_consume_token(LSHIFT);
 
1206         operator = jj_consume_token(RSIGNEDSHIFT);
 
1208       case RUNSIGNEDSHIFT:
 
1209         operator = jj_consume_token(RUNSIGNEDSHIFT);
 
1212         jj_la1[37] = jj_gen;
 
1213         jj_consume_token(-1);
 
1214         throw new ParseException();
 
1216       expr2 = AdditiveExpression();
 
1217     buff.append(operator.image);
 
1220    {if (true) return buff.toString();}
 
1221     throw new Error("Missing return statement in function");
 
1224   static final public String AdditiveExpression() throws ParseException {
 
1228   StringBuffer buff = new StringBuffer();
 
1229     expr = MultiplicativeExpression();
 
1233       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1239         jj_la1[38] = jj_gen;
 
1242       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1244         operator = jj_consume_token(PLUS);
 
1247         operator = jj_consume_token(MINUS);
 
1250         jj_la1[39] = jj_gen;
 
1251         jj_consume_token(-1);
 
1252         throw new ParseException();
 
1254       expr2 = MultiplicativeExpression();
 
1255     buff.append(operator.image);
 
1258    {if (true) return buff.toString();}
 
1259     throw new Error("Missing return statement in function");
 
1262   static final public String MultiplicativeExpression() throws ParseException {
 
1265   final StringBuffer buff = new StringBuffer();
 
1266     expr = UnaryExpression();
 
1270       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1277         jj_la1[40] = jj_gen;
 
1280       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1282         operator = jj_consume_token(STAR);
 
1285         operator = jj_consume_token(SLASH);
 
1288         operator = jj_consume_token(REM);
 
1291         jj_la1[41] = jj_gen;
 
1292         jj_consume_token(-1);
 
1293         throw new ParseException();
 
1295       expr2 = UnaryExpression();
 
1296     buff.append(operator.image);
 
1299    {if (true) return buff.toString();}
 
1300     throw new Error("Missing return statement in function");
 
1303   static final public String UnaryExpression() throws ParseException {
 
1306     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1308       jj_consume_token(AT);
 
1309       expr = UnaryExpression();
 
1310    {if (true) return "@" + expr;}
 
1314       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1316         token = jj_consume_token(PLUS);
 
1319         token = jj_consume_token(MINUS);
 
1322         jj_la1[42] = jj_gen;
 
1323         jj_consume_token(-1);
 
1324         throw new ParseException();
 
1326       expr = UnaryExpression();
 
1327     {if (true) return token.image + expr;}
 
1330       expr = PreIncrementExpression();
 
1331    {if (true) return expr;}
 
1334       expr = PreDecrementExpression();
 
1335    {if (true) return expr;}
 
1342     case INTEGER_LITERAL:
 
1343     case FLOATING_POINT_LITERAL:
 
1344     case STRING_LITERAL:
 
1351       expr = UnaryExpressionNotPlusMinus();
 
1352    {if (true) return expr;}
 
1355       jj_la1[43] = jj_gen;
 
1356       jj_consume_token(-1);
 
1357       throw new ParseException();
 
1359     throw new Error("Missing return statement in function");
 
1362   static final public String PreIncrementExpression() throws ParseException {
 
1364     jj_consume_token(INCR);
 
1365     expr = PrimaryExpression();
 
1366    {if (true) return "++"+expr;}
 
1367     throw new Error("Missing return statement in function");
 
1370   static final public String PreDecrementExpression() throws ParseException {
 
1372     jj_consume_token(DECR);
 
1373     expr = PrimaryExpression();
 
1374    {if (true) return "--"+expr;}
 
1375     throw new Error("Missing return statement in function");
 
1378   static final public String UnaryExpressionNotPlusMinus() throws ParseException {
 
1380     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1382       jj_consume_token(BANG);
 
1383       expr = UnaryExpression();
 
1384    {if (true) return "!" + expr;}
 
1387       jj_la1[44] = jj_gen;
 
1388       if (jj_2_3(2147483647)) {
 
1389         expr = CastExpression();
 
1390    {if (true) return expr;}
 
1392         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1399           expr = PostfixExpression();
 
1400    {if (true) return expr;}
 
1405         case INTEGER_LITERAL:
 
1406         case FLOATING_POINT_LITERAL:
 
1407         case STRING_LITERAL:
 
1409    {if (true) return expr;}
 
1412           jj_consume_token(LPAREN);
 
1413           expr = Expression();
 
1414           jj_consume_token(RPAREN);
 
1415    {if (true) return "("+expr+")";}
 
1418           jj_la1[45] = jj_gen;
 
1419           jj_consume_token(-1);
 
1420           throw new ParseException();
 
1424     throw new Error("Missing return statement in function");
 
1427   static final public String CastExpression() throws ParseException {
 
1430     jj_consume_token(LPAREN);
 
1432     jj_consume_token(RPAREN);
 
1433     expr = UnaryExpression();
 
1434    {if (true) return "(" + type + ")" + expr;}
 
1435     throw new Error("Missing return statement in function");
 
1438   static final public String PostfixExpression() throws ParseException {
 
1440   Token operator = null;
 
1441     expr = PrimaryExpression();
 
1442     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1445       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1447         operator = jj_consume_token(INCR);
 
1450         operator = jj_consume_token(DECR);
 
1453         jj_la1[46] = jj_gen;
 
1454         jj_consume_token(-1);
 
1455         throw new ParseException();
 
1459       jj_la1[47] = jj_gen;
 
1462     if (operator == null) {
 
1463       {if (true) return expr;}
 
1465     {if (true) return expr + operator.image;}
 
1466     throw new Error("Missing return statement in function");
 
1469   static final public String PrimaryExpression() throws ParseException {
 
1472   final StringBuffer buff = new StringBuffer();
 
1474       identifier = jj_consume_token(IDENTIFIER);
 
1475       jj_consume_token(STATICCLASSACCESS);
 
1476       expr = ClassIdentifier();
 
1477    buff.append(identifier.image).append("::").append(expr);
 
1480         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1487           jj_la1[48] = jj_gen;
 
1490         expr = PrimarySuffix();
 
1493    {if (true) return buff.toString();}
 
1495       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1501         expr = PrimaryPrefix();
 
1505           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1512             jj_la1[49] = jj_gen;
 
1515           expr = PrimarySuffix();
 
1518    {if (true) return buff.toString();}
 
1521         expr = ArrayDeclarator();
 
1522    {if (true) return "array" + expr;}
 
1525         jj_la1[50] = jj_gen;
 
1526         jj_consume_token(-1);
 
1527         throw new ParseException();
 
1530     throw new Error("Missing return statement in function");
 
1533   static final public String ArrayDeclarator() throws ParseException {
 
1535     jj_consume_token(ARRAY);
 
1536     expr = ArrayInitializer();
 
1537    {if (true) return "array" + expr;}
 
1538     throw new Error("Missing return statement in function");
 
1541   static final public String PrimaryPrefix() throws ParseException {
 
1544     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1546       token = jj_consume_token(IDENTIFIER);
 
1547    {if (true) return token.image;}
 
1551       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1553         token = jj_consume_token(BIT_AND);
 
1556         jj_la1[51] = jj_gen;
 
1559       jj_consume_token(NEW);
 
1560       expr = ClassIdentifier();
 
1561     if (token == null) {
 
1562       {if (true) return "new " + expr;}
 
1564     {if (true) return "new &" + expr;}
 
1568       expr = VariableDeclaratorId();
 
1569    {if (true) return expr;}
 
1572       jj_la1[52] = jj_gen;
 
1573       jj_consume_token(-1);
 
1574       throw new ParseException();
 
1576     throw new Error("Missing return statement in function");
 
1579   static final public String ClassIdentifier() throws ParseException {
 
1582     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1584       token = jj_consume_token(IDENTIFIER);
 
1585    {if (true) return token.image;}
 
1589       expr = VariableDeclaratorId();
 
1590    {if (true) return expr;}
 
1593       jj_la1[53] = jj_gen;
 
1594       jj_consume_token(-1);
 
1595       throw new ParseException();
 
1597     throw new Error("Missing return statement in function");
 
1600   static final public String PrimarySuffix() throws ParseException {
 
1602     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1605    {if (true) return expr;}
 
1609       expr = VariableSuffix();
 
1610    {if (true) return expr;}
 
1613       jj_la1[54] = jj_gen;
 
1614       jj_consume_token(-1);
 
1615       throw new ParseException();
 
1617     throw new Error("Missing return statement in function");
 
1620   static final public String VariableSuffix() throws ParseException {
 
1622     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1624       jj_consume_token(CLASSACCESS);
 
1625       expr = VariableName();
 
1626    {if (true) return "->" + expr;}
 
1629       jj_consume_token(LBRACKET);
 
1630       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1637       case INTEGER_LITERAL:
 
1638       case FLOATING_POINT_LITERAL:
 
1639       case STRING_LITERAL:
 
1651         expr = Expression();
 
1654         jj_la1[55] = jj_gen;
 
1658         jj_consume_token(RBRACKET);
 
1659       } catch (ParseException e) {
 
1660     errorMessage = "']' expected";
 
1662     {if (true) throw generateParseException();}
 
1665       {if (true) return "[]";}
 
1667     {if (true) return "[" + expr + "]";}
 
1670       jj_la1[56] = jj_gen;
 
1671       jj_consume_token(-1);
 
1672       throw new ParseException();
 
1674     throw new Error("Missing return statement in function");
 
1677   static final public String Literal() throws ParseException {
 
1680     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1681     case INTEGER_LITERAL:
 
1682       token = jj_consume_token(INTEGER_LITERAL);
 
1683    {if (true) return token.image;}
 
1685     case FLOATING_POINT_LITERAL:
 
1686       token = jj_consume_token(FLOATING_POINT_LITERAL);
 
1687    {if (true) return token.image;}
 
1689     case STRING_LITERAL:
 
1691         token = jj_consume_token(STRING_LITERAL);
 
1692    {if (true) return token.image;}
 
1693       } catch (TokenMgrError e) {
 
1694     errorMessage = "unterminated string";
 
1696     {if (true) throw generateParseException();}
 
1701       expr = BooleanLiteral();
 
1702    {if (true) return expr;}
 
1705       expr = NullLiteral();
 
1706    {if (true) return expr;}
 
1709       jj_la1[57] = jj_gen;
 
1710       jj_consume_token(-1);
 
1711       throw new ParseException();
 
1713     throw new Error("Missing return statement in function");
 
1716   static final public String BooleanLiteral() throws ParseException {
 
1717     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1719       jj_consume_token(TRUE);
 
1720    {if (true) return "true";}
 
1723       jj_consume_token(FALSE);
 
1724    {if (true) return "false";}
 
1727       jj_la1[58] = jj_gen;
 
1728       jj_consume_token(-1);
 
1729       throw new ParseException();
 
1731     throw new Error("Missing return statement in function");
 
1734   static final public String NullLiteral() throws ParseException {
 
1735     jj_consume_token(NULL);
 
1736    {if (true) return "null";}
 
1737     throw new Error("Missing return statement in function");
 
1740   static final public String Arguments() throws ParseException {
 
1742     jj_consume_token(LPAREN);
 
1743     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1750     case INTEGER_LITERAL:
 
1751     case FLOATING_POINT_LITERAL:
 
1752     case STRING_LITERAL:
 
1764       expr = ArgumentList();
 
1767       jj_la1[59] = jj_gen;
 
1771       jj_consume_token(RPAREN);
 
1772     } catch (ParseException e) {
 
1773     errorMessage = "')' expected to close the argument list";
 
1775     {if (true) throw e;}
 
1778     {if (true) return "()";}
 
1780   {if (true) return "(" + expr + ")";}
 
1781     throw new Error("Missing return statement in function");
 
1784   static final public String ArgumentList() throws ParseException {
 
1786 StringBuffer buff = new StringBuffer();
 
1787     expr = Expression();
 
1791       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1796         jj_la1[60] = jj_gen;
 
1799       jj_consume_token(COMMA);
 
1801         expr = Expression();
 
1802       } catch (ParseException e) {
 
1803         errorMessage = "expression expected after a comma in argument list";
 
1805         {if (true) throw e;}
 
1807       buff.append(",").append("expr");
 
1809     {if (true) return buff.toString();}
 
1810     throw new Error("Missing return statement in function");
 
1814  * Statement syntax follows.
 
1816   static final public void Statement() throws ParseException {
 
1820         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1822           jj_consume_token(SEMICOLON);
 
1825           jj_consume_token(127);
 
1828           jj_la1[61] = jj_gen;
 
1829           jj_consume_token(-1);
 
1830           throw new ParseException();
 
1832       } catch (ParseException e) {
 
1833     errorMessage = "';' expected";
 
1835     {if (true) throw e;}
 
1837     } else if (jj_2_6(2)) {
 
1840       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1855         StatementExpression();
 
1857           jj_consume_token(SEMICOLON);
 
1858         } catch (ParseException e) {
 
1859     errorMessage = "';' expected after expression";
 
1861     {if (true) throw e;}
 
1883         ContinueStatement();
 
1896         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1898           jj_consume_token(AT);
 
1901           jj_la1[62] = jj_gen;
 
1913         jj_la1[63] = jj_gen;
 
1914         jj_consume_token(-1);
 
1915         throw new ParseException();
 
1920   static final public void IncludeStatement() throws ParseException {
 
1922   int pos = jj_input_stream.bufpos;
 
1923     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1925       jj_consume_token(REQUIRE);
 
1926       expr = Expression();
 
1927    currentSegment.add(new PHPReqIncDeclaration(currentSegment, "require",pos,expr));
 
1929         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1931           jj_consume_token(SEMICOLON);
 
1934           jj_consume_token(127);
 
1937           jj_la1[64] = jj_gen;
 
1938           jj_consume_token(-1);
 
1939           throw new ParseException();
 
1941       } catch (ParseException e) {
 
1942     errorMessage = "';' expected";
 
1944     {if (true) throw e;}
 
1948       jj_consume_token(REQUIRE_ONCE);
 
1949       expr = Expression();
 
1950    currentSegment.add(new PHPReqIncDeclaration(currentSegment, "require_once",pos,expr));
 
1952         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1954           jj_consume_token(SEMICOLON);
 
1957           jj_consume_token(127);
 
1960           jj_la1[65] = jj_gen;
 
1961           jj_consume_token(-1);
 
1962           throw new ParseException();
 
1964       } catch (ParseException e) {
 
1965     errorMessage = "';' expected";
 
1967     {if (true) throw e;}
 
1971       jj_consume_token(INCLUDE);
 
1972       expr = Expression();
 
1973    currentSegment.add(new PHPReqIncDeclaration(currentSegment, "include",pos,expr));
 
1975         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1977           jj_consume_token(SEMICOLON);
 
1980           jj_consume_token(127);
 
1983           jj_la1[66] = jj_gen;
 
1984           jj_consume_token(-1);
 
1985           throw new ParseException();
 
1987       } catch (ParseException e) {
 
1988     errorMessage = "';' expected";
 
1990     {if (true) throw e;}
 
1994       jj_consume_token(INCLUDE_ONCE);
 
1995       expr = Expression();
 
1996    currentSegment.add(new PHPReqIncDeclaration(currentSegment, "include_once",pos,expr));
 
1998         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
2000           jj_consume_token(SEMICOLON);
 
2003           jj_consume_token(127);
 
2006           jj_la1[67] = jj_gen;
 
2007           jj_consume_token(-1);
 
2008           throw new ParseException();
 
2010       } catch (ParseException e) {
 
2011     errorMessage = "';' expected";
 
2013     {if (true) throw e;}
 
2017       jj_la1[68] = jj_gen;
 
2018       jj_consume_token(-1);
 
2019       throw new ParseException();
 
2023   static final public String PrintExpression() throws ParseException {
 
2024   StringBuffer buff = new StringBuffer("print ");
 
2026     jj_consume_token(PRINT);
 
2027     expr = Expression();
 
2029     {if (true) return buff.toString();}
 
2030     throw new Error("Missing return statement in function");
 
2033   static final public void EchoStatement() throws ParseException {
 
2034     jj_consume_token(ECHO);
 
2038       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
2043         jj_la1[69] = jj_gen;
 
2046       jj_consume_token(COMMA);
 
2050       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
2052         jj_consume_token(SEMICOLON);
 
2055         jj_consume_token(127);
 
2058         jj_la1[70] = jj_gen;
 
2059         jj_consume_token(-1);
 
2060         throw new ParseException();
 
2062     } catch (ParseException e) {
 
2063     errorMessage = "';' expected after 'echo' statement";
 
2065     {if (true) throw e;}
 
2069   static final public void GlobalStatement() throws ParseException {
 
2070     jj_consume_token(GLOBAL);
 
2071     VariableDeclaratorId();
 
2074       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
2079         jj_la1[71] = jj_gen;
 
2082       jj_consume_token(COMMA);
 
2083       VariableDeclaratorId();
 
2086       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
2088         jj_consume_token(SEMICOLON);
 
2091         jj_consume_token(127);
 
2094         jj_la1[72] = jj_gen;
 
2095         jj_consume_token(-1);
 
2096         throw new ParseException();
 
2098     } catch (ParseException e) {
 
2099     errorMessage = "';' expected";
 
2101     {if (true) throw e;}
 
2105   static final public void StaticStatement() throws ParseException {
 
2106     jj_consume_token(STATIC);
 
2107     VariableDeclarator();
 
2110       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
2115         jj_la1[73] = jj_gen;
 
2118       jj_consume_token(COMMA);
 
2119       VariableDeclarator();
 
2122       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
2124         jj_consume_token(SEMICOLON);
 
2127         jj_consume_token(127);
 
2130         jj_la1[74] = jj_gen;
 
2131         jj_consume_token(-1);
 
2132         throw new ParseException();
 
2134     } catch (ParseException e) {
 
2135     errorMessage = "';' expected";
 
2137     {if (true) throw e;}
 
2141   static final public void LabeledStatement() throws ParseException {
 
2142     jj_consume_token(IDENTIFIER);
 
2143     jj_consume_token(COLON);
 
2147   static final public void Block() throws ParseException {
 
2149       jj_consume_token(LBRACE);
 
2150     } catch (ParseException e) {
 
2151     errorMessage = "'{' expected";
 
2153     {if (true) throw e;}
 
2157       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
2181       case INTEGER_LITERAL:
 
2182       case FLOATING_POINT_LITERAL:
 
2183       case STRING_LITERAL:
 
2200         jj_la1[75] = jj_gen;
 
2205     jj_consume_token(RBRACE);
 
2208   static final public void BlockStatement() throws ParseException {
 
2209     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
2231     case INTEGER_LITERAL:
 
2232     case FLOATING_POINT_LITERAL:
 
2233     case STRING_LITERAL:
 
2253       MethodDeclaration();
 
2256       jj_la1[76] = jj_gen;
 
2257       jj_consume_token(-1);
 
2258       throw new ParseException();
 
2262   static final public void LocalVariableDeclaration() throws ParseException {
 
2263     VariableDeclarator();
 
2266       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
2271         jj_la1[77] = jj_gen;
 
2274       jj_consume_token(COMMA);
 
2275       VariableDeclarator();
 
2279   static final public void EmptyStatement() throws ParseException {
 
2280     jj_consume_token(SEMICOLON);
 
2283   static final public void StatementExpression() throws ParseException {
 
2284     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
2286       PreIncrementExpression();
 
2289       PreDecrementExpression();
 
2297       PrimaryExpression();
 
2298       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
2312       case RSIGNEDSHIFTASSIGN:
 
2313       case RUNSIGNEDSHIFTASSIGN:
 
2314         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
2316           jj_consume_token(INCR);
 
2319           jj_consume_token(DECR);
 
2332         case RSIGNEDSHIFTASSIGN:
 
2333         case RUNSIGNEDSHIFTASSIGN:
 
2334           AssignmentOperator();
 
2338           jj_la1[78] = jj_gen;
 
2339           jj_consume_token(-1);
 
2340           throw new ParseException();
 
2344         jj_la1[79] = jj_gen;
 
2349       jj_la1[80] = jj_gen;
 
2350       jj_consume_token(-1);
 
2351       throw new ParseException();
 
2355   static final public void SwitchStatement() throws ParseException {
 
2356     jj_consume_token(SWITCH);
 
2357     jj_consume_token(LPAREN);
 
2359     jj_consume_token(RPAREN);
 
2360     jj_consume_token(LBRACE);
 
2363       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
2369         jj_la1[81] = jj_gen;
 
2375         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
2399         case INTEGER_LITERAL:
 
2400         case FLOATING_POINT_LITERAL:
 
2401         case STRING_LITERAL:
 
2418           jj_la1[82] = jj_gen;
 
2424     jj_consume_token(RBRACE);
 
2427   static final public void SwitchLabel() throws ParseException {
 
2428     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
2430       jj_consume_token(CASE);
 
2432       jj_consume_token(COLON);
 
2435       jj_consume_token(_DEFAULT);
 
2436       jj_consume_token(COLON);
 
2439       jj_la1[83] = jj_gen;
 
2440       jj_consume_token(-1);
 
2441       throw new ParseException();
 
2445   static final public void IfStatement() throws ParseException {
 
2446     jj_consume_token(IF);
 
2451       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
2456         jj_la1[84] = jj_gen;
 
2461     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
2463       jj_consume_token(ELSE);
 
2467       jj_la1[85] = jj_gen;
 
2472   static final public void Condition(String keyword) throws ParseException {
 
2474       jj_consume_token(LPAREN);
 
2475     } catch (ParseException e) {
 
2476     errorMessage = "'(' expected after " + keyword + " keyword";
 
2478     {if (true) throw e;}
 
2482       jj_consume_token(RPAREN);
 
2483     } catch (ParseException e) {
 
2484     errorMessage = "')' expected after " + keyword + " keyword";
 
2486     {if (true) throw e;}
 
2490   static final public void ElseIfStatement() throws ParseException {
 
2491     jj_consume_token(ELSEIF);
 
2492     Condition("elseif");
 
2496   static final public void WhileStatement() throws ParseException {
 
2497     jj_consume_token(WHILE);
 
2502   static final public void WhileStatement0() throws ParseException {
 
2503     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
2505       jj_consume_token(COLON);
 
2508         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
2530         case INTEGER_LITERAL:
 
2531         case FLOATING_POINT_LITERAL:
 
2532         case STRING_LITERAL:
 
2549           jj_la1[86] = jj_gen;
 
2554       jj_consume_token(ENDWHILE);
 
2556         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
2558           jj_consume_token(SEMICOLON);
 
2561           jj_consume_token(127);
 
2564           jj_la1[87] = jj_gen;
 
2565           jj_consume_token(-1);
 
2566           throw new ParseException();
 
2568       } catch (ParseException e) {
 
2569     errorMessage = "';' expected";
 
2571     {if (true) throw e;}
 
2595     case INTEGER_LITERAL:
 
2596     case FLOATING_POINT_LITERAL:
 
2597     case STRING_LITERAL:
 
2614       jj_la1[88] = jj_gen;
 
2615       jj_consume_token(-1);
 
2616       throw new ParseException();
 
2620   static final public void DoStatement() throws ParseException {
 
2621     jj_consume_token(DO);
 
2623     jj_consume_token(WHILE);
 
2626       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
2628         jj_consume_token(SEMICOLON);
 
2631         jj_consume_token(127);
 
2634         jj_la1[89] = jj_gen;
 
2635         jj_consume_token(-1);
 
2636         throw new ParseException();
 
2638     } catch (ParseException e) {
 
2639     errorMessage = "';' expected";
 
2641     {if (true) throw e;}
 
2645   static final public void ForStatement() throws ParseException {
 
2646     jj_consume_token(FOR);
 
2647     jj_consume_token(LPAREN);
 
2648     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
2660       jj_la1[90] = jj_gen;
 
2663     jj_consume_token(SEMICOLON);
 
2664     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
2671     case INTEGER_LITERAL:
 
2672     case FLOATING_POINT_LITERAL:
 
2673     case STRING_LITERAL:
 
2688       jj_la1[91] = jj_gen;
 
2691     jj_consume_token(SEMICOLON);
 
2692     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
2704       jj_la1[92] = jj_gen;
 
2707     jj_consume_token(RPAREN);
 
2711   static final public void ForInit() throws ParseException {
 
2712     if (jj_2_7(2147483647)) {
 
2713       LocalVariableDeclaration();
 
2715       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
2724         StatementExpressionList();
 
2727         jj_la1[93] = jj_gen;
 
2728         jj_consume_token(-1);
 
2729         throw new ParseException();
 
2734   static final public void StatementExpressionList() throws ParseException {
 
2735     StatementExpression();
 
2738       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
2743         jj_la1[94] = jj_gen;
 
2746       jj_consume_token(COMMA);
 
2747       StatementExpression();
 
2751   static final public void ForUpdate() throws ParseException {
 
2752     StatementExpressionList();
 
2755   static final public void BreakStatement() throws ParseException {
 
2756     jj_consume_token(BREAK);
 
2757     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
2759       jj_consume_token(IDENTIFIER);
 
2762       jj_la1[95] = jj_gen;
 
2765     jj_consume_token(SEMICOLON);
 
2768   static final public void ContinueStatement() throws ParseException {
 
2769     jj_consume_token(CONTINUE);
 
2770     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
2772       jj_consume_token(IDENTIFIER);
 
2775       jj_la1[96] = jj_gen;
 
2778     jj_consume_token(SEMICOLON);
 
2781   static final public void ReturnStatement() throws ParseException {
 
2782     jj_consume_token(RETURN);
 
2783     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
2790     case INTEGER_LITERAL:
 
2791     case FLOATING_POINT_LITERAL:
 
2792     case STRING_LITERAL:
 
2807       jj_la1[97] = jj_gen;
 
2810     jj_consume_token(SEMICOLON);
 
2813   static final private boolean jj_2_1(int xla) {
 
2814     jj_la = xla; jj_lastpos = jj_scanpos = token;
 
2815     boolean retval = !jj_3_1();
 
2820   static final private boolean jj_2_2(int xla) {
 
2821     jj_la = xla; jj_lastpos = jj_scanpos = token;
 
2822     boolean retval = !jj_3_2();
 
2827   static final private boolean jj_2_3(int xla) {
 
2828     jj_la = xla; jj_lastpos = jj_scanpos = token;
 
2829     boolean retval = !jj_3_3();
 
2834   static final private boolean jj_2_4(int xla) {
 
2835     jj_la = xla; jj_lastpos = jj_scanpos = token;
 
2836     boolean retval = !jj_3_4();
 
2841   static final private boolean jj_2_5(int xla) {
 
2842     jj_la = xla; jj_lastpos = jj_scanpos = token;
 
2843     boolean retval = !jj_3_5();
 
2848   static final private boolean jj_2_6(int xla) {
 
2849     jj_la = xla; jj_lastpos = jj_scanpos = token;
 
2850     boolean retval = !jj_3_6();
 
2855   static final private boolean jj_2_7(int xla) {
 
2856     jj_la = xla; jj_lastpos = jj_scanpos = token;
 
2857     boolean retval = !jj_3_7();
 
2862   static final private boolean jj_3R_135() {
 
2863     if (jj_scan_token(RSIGNEDSHIFT)) return true;
 
2864     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2868   static final private boolean jj_3R_139() {
 
2869     if (jj_scan_token(PLUS)) return true;
 
2870     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2874   static final private boolean jj_3R_133() {
 
2879     if (jj_3R_140()) return true;
 
2880     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2881     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2882     if (jj_3R_132()) return true;
 
2883     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2887   static final private boolean jj_3R_130() {
 
2888     if (jj_scan_token(LE)) return true;
 
2889     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2893   static final private boolean jj_3R_126() {
 
2894     if (jj_3R_132()) return true;
 
2895     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2899       if (jj_3R_133()) { jj_scanpos = xsp; break; }
 
2900       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2905   static final private boolean jj_3_2() {
 
2906     if (jj_scan_token(COMMA)) return true;
 
2907     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2908     if (jj_3R_33()) return true;
 
2909     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2913   static final private boolean jj_3R_112() {
 
2914     if (jj_3R_33()) return true;
 
2915     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2919       if (jj_3_2()) { jj_scanpos = xsp; break; }
 
2920       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2925   static final private boolean jj_3R_134() {
 
2926     if (jj_scan_token(LSHIFT)) return true;
 
2927     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2931   static final private boolean jj_3R_127() {
 
2938     if (jj_3R_136()) return true;
 
2939     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2940     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2941     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2942     if (jj_3R_126()) return true;
 
2943     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2947   static final private boolean jj_3R_129() {
 
2948     if (jj_scan_token(GT)) return true;
 
2949     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2953   static final private boolean jj_3R_122() {
 
2954     if (jj_3R_126()) return true;
 
2955     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2959       if (jj_3R_127()) { jj_scanpos = xsp; break; }
 
2960       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2965   static final private boolean jj_3R_105() {
 
2966     if (jj_scan_token(LPAREN)) return true;
 
2967     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2970     if (jj_3R_112()) jj_scanpos = xsp;
 
2971     else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2972     if (jj_scan_token(RPAREN)) return true;
 
2973     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2977   static final private boolean jj_3R_119() {
 
2978     if (jj_scan_token(ARRAYASSIGN)) return true;
 
2979     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2980     if (jj_3R_35()) return true;
 
2981     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2985   static final private boolean jj_3R_128() {
 
2986     if (jj_scan_token(LT)) return true;
 
2987     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2991   static final private boolean jj_3R_33() {
 
2992     if (jj_3R_35()) return true;
 
2993     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2996     if (jj_3R_119()) jj_scanpos = xsp;
 
2997     else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3001   static final private boolean jj_3R_123() {
 
3010     if (jj_3R_131()) return true;
 
3011     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3012     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3013     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3014     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3015     if (jj_3R_122()) return true;
 
3016     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3020   static final private boolean jj_3R_125() {
 
3021     if (jj_scan_token(NE)) return true;
 
3022     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3026   static final private boolean jj_3R_120() {
 
3027     if (jj_3R_122()) return true;
 
3028     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3032       if (jj_3R_123()) { jj_scanpos = xsp; break; }
 
3033       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3038   static final private boolean jj_3R_109() {
 
3039     if (jj_3R_54()) return true;
 
3040     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3044   static final private boolean jj_3R_37() {
 
3045     if (jj_scan_token(127)) return true;
 
3046     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3050   static final private boolean jj_3R_88() {
 
3051     if (jj_3R_95()) return true;
 
3052     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3056   static final private boolean jj_3R_87() {
 
3057     if (jj_3R_94()) return true;
 
3058     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3062   static final private boolean jj_3R_69() {
 
3067     if (jj_3R_88()) return true;
 
3068     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3069     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3073   static final private boolean jj_3R_108() {
 
3074     if (jj_scan_token(LBRACE)) return true;
 
3075     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3076     if (jj_3R_35()) return true;
 
3077     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3078     if (jj_scan_token(RBRACE)) return true;
 
3079     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3083   static final private boolean jj_3R_124() {
 
3084     if (jj_scan_token(EQ)) return true;
 
3085     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3089   static final private boolean jj_3_6() {
 
3090     if (jj_3R_38()) return true;
 
3091     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3095   static final private boolean jj_3R_121() {
 
3100     if (jj_3R_125()) return true;
 
3101     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3102     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3103     if (jj_3R_120()) return true;
 
3104     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3108   static final private boolean jj_3R_36() {
 
3109     if (jj_scan_token(SEMICOLON)) return true;
 
3110     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3114   static final private boolean jj_3R_117() {
 
3115     if (jj_3R_120()) return true;
 
3116     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3120       if (jj_3R_121()) { jj_scanpos = xsp; break; }
 
3121       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3126   static final private boolean jj_3R_64() {
 
3127     if (jj_scan_token(DOLLAR_ID)) return true;
 
3128     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3131     if (jj_3R_109()) jj_scanpos = xsp;
 
3132     else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3136   static final private boolean jj_3_5() {
 
3137     if (jj_3R_35()) return true;
 
3138     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3143     if (jj_3R_37()) return true;
 
3144     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3145     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3149   static final private boolean jj_3R_63() {
 
3150     if (jj_scan_token(DOLLAR)) return true;
 
3151     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3152     if (jj_3R_54()) return true;
 
3153     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3157   static final private boolean jj_3R_93() {
 
3158     if (jj_scan_token(LBRACE)) return true;
 
3159     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3160     if (jj_3R_35()) return true;
 
3161     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3162     if (jj_scan_token(RBRACE)) return true;
 
3163     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3167   static final private boolean jj_3R_62() {
 
3168     if (jj_scan_token(IDENTIFIER)) return true;
 
3169     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3172     if (jj_3R_108()) jj_scanpos = xsp;
 
3173     else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3177   static final private boolean jj_3R_61() {
 
3178     if (jj_scan_token(LBRACE)) return true;
 
3179     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3180     if (jj_3R_35()) return true;
 
3181     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3182     if (jj_scan_token(RBRACE)) return true;
 
3183     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3187   static final private boolean jj_3R_54() {
 
3196     if (jj_3R_64()) return true;
 
3197     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3198     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3199     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3200     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3204   static final private boolean jj_3R_118() {
 
3205     if (jj_scan_token(BIT_AND)) return true;
 
3206     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3207     if (jj_3R_117()) return true;
 
3208     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3212   static final private boolean jj_3R_113() {
 
3213     if (jj_3R_117()) return true;
 
3214     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3218       if (jj_3R_118()) { jj_scanpos = xsp; break; }
 
3219       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3224   static final private boolean jj_3R_183() {
 
3225     if (jj_scan_token(COMMA)) return true;
 
3226     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3227     if (jj_3R_35()) return true;
 
3228     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3232   static final private boolean jj_3R_86() {
 
3233     if (jj_scan_token(DOLLAR)) return true;
 
3234     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3235     if (jj_3R_54()) return true;
 
3236     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3240   static final private boolean jj_3R_182() {
 
3241     if (jj_3R_35()) return true;
 
3242     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3246       if (jj_3R_183()) { jj_scanpos = xsp; break; }
 
3247       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3252   static final private boolean jj_3R_85() {
 
3253     if (jj_scan_token(DOLLAR_ID)) return true;
 
3254     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3257     if (jj_3R_93()) jj_scanpos = xsp;
 
3258     else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3262   static final private boolean jj_3R_68() {
 
3267     if (jj_3R_86()) return true;
 
3268     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3269     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3273   static final private boolean jj_3R_181() {
 
3274     if (jj_3R_182()) return true;
 
3275     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3279   static final private boolean jj_3R_114() {
 
3280     if (jj_scan_token(XOR)) return true;
 
3281     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3282     if (jj_3R_113()) return true;
 
3283     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3287   static final private boolean jj_3R_106() {
 
3288     if (jj_3R_113()) return true;
 
3289     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3293       if (jj_3R_114()) { jj_scanpos = xsp; break; }
 
3294       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3299   static final private boolean jj_3_1() {
 
3300     if (jj_3R_32()) return true;
 
3301     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3305   static final private boolean jj_3R_179() {
 
3306     if (jj_scan_token(LPAREN)) return true;
 
3307     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3310     if (jj_3R_181()) jj_scanpos = xsp;
 
3311     else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3312     if (jj_scan_token(RPAREN)) return true;
 
3313     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3317   static final private boolean jj_3R_59() {
 
3318     if (jj_3R_68()) return true;
 
3319     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3323       if (jj_3_1()) { jj_scanpos = xsp; break; }
 
3324       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3329   static final private boolean jj_3R_111() {
 
3330     if (jj_scan_token(NULL)) return true;
 
3331     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3335   static final private boolean jj_3R_107() {
 
3336     if (jj_scan_token(BIT_OR)) return true;
 
3337     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3338     if (jj_3R_106()) return true;
 
3339     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3343   static final private boolean jj_3R_116() {
 
3344     if (jj_scan_token(FALSE)) return true;
 
3345     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3349   static final private boolean jj_3_7() {
 
3350     if (jj_3R_39()) return true;
 
3351     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3355   static final private boolean jj_3R_96() {
 
3356     if (jj_3R_106()) return true;
 
3357     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3361       if (jj_3R_107()) { jj_scanpos = xsp; break; }
 
3362       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3367   static final private boolean jj_3R_110() {
 
3372     if (jj_3R_116()) return true;
 
3373     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3374     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3378   static final private boolean jj_3R_115() {
 
3379     if (jj_scan_token(TRUE)) return true;
 
3380     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3384   static final private boolean jj_3R_60() {
 
3385     if (jj_scan_token(ASSIGN)) return true;
 
3386     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3387     if (jj_3R_69()) return true;
 
3388     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3392   static final private boolean jj_3R_104() {
 
3393     if (jj_3R_111()) return true;
 
3394     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3398   static final private boolean jj_3R_52() {
 
3399     if (jj_3R_59()) return true;
 
3400     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3403     if (jj_3R_60()) jj_scanpos = xsp;
 
3404     else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3408   static final private boolean jj_3R_103() {
 
3409     if (jj_3R_110()) return true;
 
3410     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3414   static final private boolean jj_3R_97() {
 
3415     if (jj_scan_token(DOT)) return true;
 
3416     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3417     if (jj_3R_96()) return true;
 
3418     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3422   static final private boolean jj_3R_99() {
 
3423     if (jj_scan_token(_ANDL)) return true;
 
3424     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3428   static final private boolean jj_3R_102() {
 
3429     if (jj_scan_token(STRING_LITERAL)) return true;
 
3430     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3434   static final private boolean jj_3R_101() {
 
3435     if (jj_scan_token(FLOATING_POINT_LITERAL)) return true;
 
3436     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3440   static final private boolean jj_3R_89() {
 
3441     if (jj_3R_96()) return true;
 
3442     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3446       if (jj_3R_97()) { jj_scanpos = xsp; break; }
 
3447       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3452   static final private boolean jj_3R_94() {
 
3463     if (jj_3R_104()) return true;
 
3464     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3465     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3466     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3467     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3468     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3472   static final private boolean jj_3R_100() {
 
3473     if (jj_scan_token(INTEGER_LITERAL)) return true;
 
3474     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3478   static final private boolean jj_3R_55() {
 
3479     if (jj_3R_35()) return true;
 
3480     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3484   static final private boolean jj_3R_98() {
 
3485     if (jj_scan_token(SC_AND)) return true;
 
3486     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3490   static final private boolean jj_3R_92() {
 
3491     if (jj_scan_token(_ORL)) return true;
 
3492     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3496   static final private boolean jj_3R_90() {
 
3501     if (jj_3R_99()) return true;
 
3502     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3503     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3504     if (jj_3R_89()) return true;
 
3505     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3509   static final private boolean jj_3R_70() {
 
3510     if (jj_3R_89()) return true;
 
3511     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3515       if (jj_3R_90()) { jj_scanpos = xsp; break; }
 
3516       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3521   static final private boolean jj_3R_41() {
 
3522     if (jj_scan_token(LBRACKET)) return true;
 
3523     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3526     if (jj_3R_55()) jj_scanpos = xsp;
 
3527     else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3528     if (jj_scan_token(RBRACKET)) return true;
 
3529     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3533   static final private boolean jj_3R_40() {
 
3534     if (jj_scan_token(CLASSACCESS)) return true;
 
3535     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3536     if (jj_3R_54()) return true;
 
3537     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3541   static final private boolean jj_3R_32() {
 
3546     if (jj_3R_41()) return true;
 
3547     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3548     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3552   static final private boolean jj_3R_66() {
 
3553     if (jj_scan_token(HOOK)) return true;
 
3554     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3555     if (jj_3R_35()) return true;
 
3556     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3557     if (jj_scan_token(COLON)) return true;
 
3558     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3559     if (jj_3R_57()) return true;
 
3560     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3564   static final private boolean jj_3R_176() {
 
3565     if (jj_3R_32()) return true;
 
3566     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3570   static final private boolean jj_3R_175() {
 
3571     if (jj_3R_179()) return true;
 
3572     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3576   static final private boolean jj_3R_173() {
 
3581     if (jj_3R_176()) return true;
 
3582     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3583     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3587   static final private boolean jj_3R_91() {
 
3588     if (jj_scan_token(SC_OR)) return true;
 
3589     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3593   static final private boolean jj_3R_71() {
 
3598     if (jj_3R_92()) return true;
 
3599     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3600     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3601     if (jj_3R_70()) return true;
 
3602     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3606   static final private boolean jj_3R_65() {
 
3607     if (jj_3R_70()) return true;
 
3608     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3612       if (jj_3R_71()) { jj_scanpos = xsp; break; }
 
3613       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3618   static final private boolean jj_3R_178() {
 
3619     if (jj_3R_59()) return true;
 
3620     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3624   static final private boolean jj_3R_177() {
 
3625     if (jj_scan_token(IDENTIFIER)) return true;
 
3626     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3630   static final private boolean jj_3R_174() {
 
3635     if (jj_3R_178()) return true;
 
3636     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3637     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3641   static final private boolean jj_3R_168() {
 
3642     if (jj_3R_59()) return true;
 
3643     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3647   static final private boolean jj_3R_57() {
 
3648     if (jj_3R_65()) return true;
 
3649     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3652     if (jj_3R_66()) jj_scanpos = xsp;
 
3653     else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3657   static final private boolean jj_3R_171() {
 
3658     if (jj_scan_token(BIT_AND)) return true;
 
3659     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3663   static final private boolean jj_3R_167() {
 
3666     if (jj_3R_171()) jj_scanpos = xsp;
 
3667     else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3668     if (jj_scan_token(NEW)) return true;
 
3669     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3670     if (jj_3R_174()) return true;
 
3671     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3675   static final private boolean jj_3R_170() {
 
3676     if (jj_scan_token(DECR)) return true;
 
3677     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3681   static final private boolean jj_3R_164() {
 
3688     if (jj_3R_168()) return true;
 
3689     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3690     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3691     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3695   static final private boolean jj_3R_166() {
 
3696     if (jj_scan_token(IDENTIFIER)) return true;
 
3697     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3701   static final private boolean jj_3R_84() {
 
3702     if (jj_scan_token(DOTASSIGN)) return true;
 
3703     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3707   static final private boolean jj_3R_83() {
 
3708     if (jj_scan_token(ORASSIGN)) return true;
 
3709     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3713   static final private boolean jj_3R_82() {
 
3714     if (jj_scan_token(XORASSIGN)) return true;
 
3715     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3719   static final private boolean jj_3R_81() {
 
3720     if (jj_scan_token(ANDASSIGN)) return true;
 
3721     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3725   static final private boolean jj_3R_95() {
 
3726     if (jj_scan_token(ARRAY)) return true;
 
3727     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3728     if (jj_3R_105()) return true;
 
3729     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3733   static final private boolean jj_3R_80() {
 
3734     if (jj_scan_token(RUNSIGNEDSHIFTASSIGN)) return true;
 
3735     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3739   static final private boolean jj_3R_53() {
 
3740     if (jj_scan_token(COMMA)) return true;
 
3741     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3742     if (jj_3R_52()) return true;
 
3743     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3747   static final private boolean jj_3R_79() {
 
3748     if (jj_scan_token(RSIGNEDSHIFTASSIGN)) return true;
 
3749     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3753   static final private boolean jj_3R_78() {
 
3754     if (jj_scan_token(LSHIFTASSIGN)) return true;
 
3755     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3759   static final private boolean jj_3R_77() {
 
3760     if (jj_scan_token(MINUSASSIGN)) return true;
 
3761     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3765   static final private boolean jj_3R_169() {
 
3766     if (jj_scan_token(INCR)) return true;
 
3767     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3771   static final private boolean jj_3R_161() {
 
3772     if (jj_3R_95()) return true;
 
3773     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3777   static final private boolean jj_3R_165() {
 
3782     if (jj_3R_170()) return true;
 
3783     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3784     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3788   static final private boolean jj_3R_172() {
 
3789     if (jj_3R_173()) return true;
 
3790     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3794   static final private boolean jj_3R_76() {
 
3795     if (jj_scan_token(PLUSASSIGN)) return true;
 
3796     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3800   static final private boolean jj_3R_75() {
 
3801     if (jj_scan_token(REMASSIGN)) return true;
 
3802     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3806   static final private boolean jj_3R_160() {
 
3807     if (jj_3R_164()) return true;
 
3808     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3812       if (jj_3R_172()) { jj_scanpos = xsp; break; }
 
3813       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3818   static final private boolean jj_3R_74() {
 
3819     if (jj_scan_token(SLASHASSIGN)) return true;
 
3820     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3824   static final private boolean jj_3R_73() {
 
3825     if (jj_scan_token(STARASSIGN)) return true;
 
3826     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3830   static final private boolean jj_3R_180() {
 
3831     if (jj_3R_173()) return true;
 
3832     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3836   static final private boolean jj_3R_72() {
 
3837     if (jj_scan_token(ASSIGN)) return true;
 
3838     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3842   static final private boolean jj_3R_67() {
 
3869     if (jj_3R_84()) return true;
 
3870     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3871     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3872     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3873     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3874     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3875     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3876     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3877     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3878     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3879     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3880     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3881     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3882     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3886   static final private boolean jj_3_4() {
 
3887     if (jj_scan_token(IDENTIFIER)) return true;
 
3888     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3889     if (jj_scan_token(STATICCLASSACCESS)) return true;
 
3890     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3891     if (jj_3R_174()) return true;
 
3892     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3896       if (jj_3R_180()) { jj_scanpos = xsp; break; }
 
3897       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3902   static final private boolean jj_3R_154() {
 
3909     if (jj_3R_161()) return true;
 
3910     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3911     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3912     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3916   static final private boolean jj_3R_39() {
 
3917     if (jj_3R_52()) return true;
 
3918     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3922       if (jj_3R_53()) { jj_scanpos = xsp; break; }
 
3923       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3928   static final private boolean jj_3R_58() {
 
3929     if (jj_3R_67()) return true;
 
3930     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3931     if (jj_3R_35()) return true;
 
3932     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3936   static final private boolean jj_3R_163() {
 
3937     if (jj_3R_154()) return true;
 
3938     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3941     if (jj_3R_165()) jj_scanpos = xsp;
 
3942     else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3946   static final private boolean jj_3R_51() {
 
3947     if (jj_3R_57()) return true;
 
3948     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3951     if (jj_3R_58()) jj_scanpos = xsp;
 
3952     else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3956   static final private boolean jj_3R_35() {
 
3961     if (jj_3R_51()) return true;
 
3962     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3963     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3967   static final private boolean jj_3R_50() {
 
3968     if (jj_3R_56()) return true;
 
3969     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3973   static final private boolean jj_3R_162() {
 
3974     if (jj_scan_token(LPAREN)) return true;
 
3975     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3976     if (jj_3R_34()) return true;
 
3977     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3978     if (jj_scan_token(RPAREN)) return true;
 
3979     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3980     if (jj_3R_137()) return true;
 
3981     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3985   static final private boolean jj_3R_49() {
 
3986     if (jj_scan_token(INTEGER)) return true;
 
3987     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3991   static final private boolean jj_3R_38() {
 
3992     if (jj_scan_token(IDENTIFIER)) return true;
 
3993     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3994     if (jj_scan_token(COLON)) return true;
 
3995     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3999   static final private boolean jj_3_3() {
 
4000     if (jj_scan_token(LPAREN)) return true;
 
4001     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4002     if (jj_3R_34()) return true;
 
4003     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4004     if (jj_scan_token(RPAREN)) return true;
 
4005     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4009   static final private boolean jj_3R_48() {
 
4010     if (jj_scan_token(INT)) return true;
 
4011     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4015   static final private boolean jj_3R_159() {
 
4016     if (jj_scan_token(LPAREN)) return true;
 
4017     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4018     if (jj_3R_35()) return true;
 
4019     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4020     if (jj_scan_token(RPAREN)) return true;
 
4021     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4025   static final private boolean jj_3R_47() {
 
4026     if (jj_scan_token(FLOAT)) return true;
 
4027     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4031   static final private boolean jj_3R_158() {
 
4032     if (jj_3R_94()) return true;
 
4033     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4037   static final private boolean jj_3R_46() {
 
4038     if (jj_scan_token(DOUBLE)) return true;
 
4039     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4043   static final private boolean jj_3R_157() {
 
4044     if (jj_3R_163()) return true;
 
4045     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4049   static final private boolean jj_3R_45() {
 
4050     if (jj_scan_token(REAL)) return true;
 
4051     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4055   static final private boolean jj_3R_156() {
 
4056     if (jj_3R_162()) return true;
 
4057     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4061   static final private boolean jj_3R_44() {
 
4062     if (jj_scan_token(BOOLEAN)) return true;
 
4063     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4067   static final private boolean jj_3R_153() {
 
4078     if (jj_3R_159()) return true;
 
4079     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4080     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4081     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4082     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4083     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4087   static final private boolean jj_3R_155() {
 
4088     if (jj_scan_token(BANG)) return true;
 
4089     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4090     if (jj_3R_137()) return true;
 
4091     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4095   static final private boolean jj_3R_43() {
 
4096     if (jj_scan_token(BOOL)) return true;
 
4097     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4101   static final private boolean jj_3R_34() {
 
4118     if (jj_3R_49()) return true;
 
4119     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4120     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4121     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4122     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4123     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4124     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4125     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4126     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4130   static final private boolean jj_3R_42() {
 
4131     if (jj_scan_token(STRING)) return true;
 
4132     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4136   static final private boolean jj_3R_152() {
 
4137     if (jj_scan_token(DECR)) return true;
 
4138     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4139     if (jj_3R_154()) return true;
 
4140     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4144   static final private boolean jj_3R_148() {
 
4145     if (jj_scan_token(REM)) return true;
 
4146     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4150   static final private boolean jj_3R_151() {
 
4151     if (jj_scan_token(INCR)) return true;
 
4152     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4153     if (jj_3R_154()) return true;
 
4154     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4158   static final private boolean jj_3R_150() {
 
4159     if (jj_scan_token(MINUS)) return true;
 
4160     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4164   static final private boolean jj_3R_145() {
 
4165     if (jj_3R_153()) return true;
 
4166     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4170   static final private boolean jj_3R_144() {
 
4171     if (jj_3R_152()) return true;
 
4172     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4176   static final private boolean jj_3R_143() {
 
4177     if (jj_3R_151()) return true;
 
4178     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4182   static final private boolean jj_3R_147() {
 
4183     if (jj_scan_token(SLASH)) return true;
 
4184     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4188   static final private boolean jj_3R_56() {
 
4189     if (jj_scan_token(PRINT)) return true;
 
4190     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4191     if (jj_3R_35()) return true;
 
4192     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4196   static final private boolean jj_3R_149() {
 
4197     if (jj_scan_token(PLUS)) return true;
 
4198     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4202   static final private boolean jj_3R_142() {
 
4207     if (jj_3R_150()) return true;
 
4208     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4209     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4210     if (jj_3R_137()) return true;
 
4211     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4215   static final private boolean jj_3R_137() {
 
4226     if (jj_3R_145()) return true;
 
4227     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4228     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4229     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4230     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4231     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4235   static final private boolean jj_3R_141() {
 
4236     if (jj_scan_token(AT)) return true;
 
4237     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4238     if (jj_3R_137()) return true;
 
4239     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4243   static final private boolean jj_3R_136() {
 
4244     if (jj_scan_token(RUNSIGNEDSHIFT)) return true;
 
4245     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4249   static final private boolean jj_3R_140() {
 
4250     if (jj_scan_token(MINUS)) return true;
 
4251     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4255   static final private boolean jj_3R_146() {
 
4256     if (jj_scan_token(STAR)) return true;
 
4257     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4261   static final private boolean jj_3R_138() {
 
4268     if (jj_3R_148()) return true;
 
4269     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4270     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4271     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4272     if (jj_3R_137()) return true;
 
4273     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4277   static final private boolean jj_3R_131() {
 
4278     if (jj_scan_token(GE)) return true;
 
4279     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4283   static final private boolean jj_3R_132() {
 
4284     if (jj_3R_137()) return true;
 
4285     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4289       if (jj_3R_138()) { jj_scanpos = xsp; break; }
 
4290       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4295   static private boolean jj_initialized_once = false;
 
4296   static public PHPParserTokenManager token_source;
 
4297   static SimpleCharStream jj_input_stream;
 
4298   static public Token token, jj_nt;
 
4299   static private int jj_ntk;
 
4300   static private Token jj_scanpos, jj_lastpos;
 
4301   static private int jj_la;
 
4302   static public boolean lookingAhead = false;
 
4303   static private boolean jj_semLA;
 
4304   static private int jj_gen;
 
4305   static final private int[] jj_la1 = new int[98];
 
4306   static private int[] jj_la1_0;
 
4307   static private int[] jj_la1_1;
 
4308   static private int[] jj_la1_2;
 
4309   static private int[] jj_la1_3;
 
4316    private static void jj_la1_0() {
 
4317       jj_la1_0 = new int[] {0x2,0x7fcb0000,0x0,0x60000,0x60000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x400000,0x0,0xc00000,0x0,0x0,0x0,0x0,0x0,0x0,0xc00000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x400000,0x0,0x400000,0x0,0x0,0x80000000,0x80000000,0x400000,0x0,0x0,0x0,0x80000000,0xc00000,0x80000000,0x0,0x0,0xc00000,0x0,0x0,0x0,0x7f480000,0x0,0x0,0x0,0x0,0x1e000000,0x0,0x0,0x0,0x0,0x0,0x0,0x7fcb0000,0x7fcb0000,0x0,0x0,0x0,0x400000,0x0,0x7fcb0000,0x0,0x100000,0x200000,0x7fc80000,0x0,0x7fc80000,0x0,0x400000,0xc00000,0x400000,0x400000,0x0,0x0,0x0,0xc00000,};
 
4319    private static void jj_la1_1() {
 
4320       jj_la1_1 = new int[] {0x0,0xd76a4,0x100,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x42200,0x2,0x43200,0x0,0x0,0x0,0x0,0x3fa00000,0x0,0x43200,0x0,0x0,0x40000000,0x40000000,0x80000000,0x80000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x43200,0x0,0x43200,0x0,0x0,0x0,0x0,0x1000,0x0,0x1000,0x0,0x0,0x43200,0x0,0x42200,0x40200,0x43200,0x0,0x0,0x0,0x954a4,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xd76a4,0xd76a4,0x0,0x0,0x0,0x1000,0x48,0xd76a4,0x48,0x0,0x0,0xd76a4,0x0,0xd76a4,0x0,0x1000,0x43200,0x1000,0x1000,0x0,0x0,0x0,0x43200,};
 
4322    private static void jj_la1_2() {
 
4323       jj_la1_2 = new int[] {0x0,0x11914451,0x0,0x0,0x0,0x200000,0x2000000,0x10000,0x1000000,0x10000,0x1010400,0x1010400,0x51,0x0,0x11804451,0x0,0x200000,0x1000000,0x0,0x0,0x2000000,0x11804451,0x2000000,0x20000000,0x0,0x0,0x0,0x0,0x400000,0x0,0x0,0x0,0x80000000,0x80000000,0xc000000,0xc000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x11804451,0x10000000,0x1004451,0x0,0x0,0x44000,0x44000,0x1000400,0x0,0x1000400,0x1000400,0x44000,0x11804451,0x40000,0x51,0x0,0x11804451,0x200000,0x100000,0x800000,0x1910400,0x100000,0x100000,0x100000,0x100000,0x0,0x200000,0x100000,0x200000,0x100000,0x200000,0x100000,0x11914451,0x11914451,0x200000,0x2000000,0x2000000,0x1000400,0x0,0x11914451,0x0,0x0,0x0,0x11914451,0x100000,0x51914451,0x100000,0x1000400,0x11804451,0x1000400,0x1000400,0x200000,0x400,0x400,0x11804451,};
 
4325    private static void jj_la1_3() {
 
4326       jj_la1_3 = new int[] {0x0,0x400009e0,0x0,0x0,0x0,0x0,0x0,0x0,0x40000000,0x0,0x40000000,0x40000000,0x0,0x0,0x400009e0,0x800,0x0,0x40000800,0x800,0x0,0x3ffc0000,0x400009e0,0x3ffc0000,0x0,0x8,0x8,0x10,0x10,0x0,0x1000,0x2000,0x800,0x4,0x4,0x3,0x3,0x38000,0x38000,0x180,0x180,0x4600,0x4600,0x180,0x400009e0,0x0,0x40000800,0x60,0x60,0x0,0x0,0x40000800,0x800,0x40000800,0x40000000,0x0,0x400009e0,0x0,0x0,0x0,0x400009e0,0x0,0x80000000,0x0,0x40000860,0x80000000,0x80000000,0x80000000,0x80000000,0x0,0x0,0x80000000,0x0,0x80000000,0x0,0x80000000,0x400009e0,0x400009e0,0x0,0x3ffc0060,0x3ffc0060,0x40000860,0x0,0x400009e0,0x0,0x0,0x0,0x400009e0,0x80000000,0x400009e0,0x80000000,0x40000860,0x400009e0,0x40000860,0x40000860,0x0,0x0,0x0,0x400009e0,};
 
4328   static final private JJCalls[] jj_2_rtns = new JJCalls[7];
 
4329   static private boolean jj_rescan = false;
 
4330   static private int jj_gc = 0;
 
4332   public PHPParser(java.io.InputStream stream) {
 
4333     if (jj_initialized_once) {
 
4334       System.out.println("ERROR: Second call to constructor of static parser.  You must");
 
4335       System.out.println("       either use ReInit() or set the JavaCC option STATIC to false");
 
4336       System.out.println("       during parser generation.");
 
4339     jj_initialized_once = true;
 
4340     jj_input_stream = new SimpleCharStream(stream, 1, 1);
 
4341     token_source = new PHPParserTokenManager(jj_input_stream);
 
4342     token = new Token();
 
4345     for (int i = 0; i < 98; i++) jj_la1[i] = -1;
 
4346     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
 
4349   static public void ReInit(java.io.InputStream stream) {
 
4350     jj_input_stream.ReInit(stream, 1, 1);
 
4351     token_source.ReInit(jj_input_stream);
 
4352     token = new Token();
 
4355     for (int i = 0; i < 98; i++) jj_la1[i] = -1;
 
4356     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
 
4359   public PHPParser(java.io.Reader stream) {
 
4360     if (jj_initialized_once) {
 
4361       System.out.println("ERROR: Second call to constructor of static parser.  You must");
 
4362       System.out.println("       either use ReInit() or set the JavaCC option STATIC to false");
 
4363       System.out.println("       during parser generation.");
 
4366     jj_initialized_once = true;
 
4367     jj_input_stream = new SimpleCharStream(stream, 1, 1);
 
4368     token_source = new PHPParserTokenManager(jj_input_stream);
 
4369     token = new Token();
 
4372     for (int i = 0; i < 98; i++) jj_la1[i] = -1;
 
4373     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
 
4376   static public void ReInit(java.io.Reader stream) {
 
4377     jj_input_stream.ReInit(stream, 1, 1);
 
4378     token_source.ReInit(jj_input_stream);
 
4379     token = new Token();
 
4382     for (int i = 0; i < 98; i++) jj_la1[i] = -1;
 
4383     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
 
4386   public PHPParser(PHPParserTokenManager tm) {
 
4387     if (jj_initialized_once) {
 
4388       System.out.println("ERROR: Second call to constructor of static parser.  You must");
 
4389       System.out.println("       either use ReInit() or set the JavaCC option STATIC to false");
 
4390       System.out.println("       during parser generation.");
 
4393     jj_initialized_once = true;
 
4395     token = new Token();
 
4398     for (int i = 0; i < 98; i++) jj_la1[i] = -1;
 
4399     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
 
4402   public void ReInit(PHPParserTokenManager tm) {
 
4404     token = new Token();
 
4407     for (int i = 0; i < 98; i++) jj_la1[i] = -1;
 
4408     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
 
4411   static final private Token jj_consume_token(int kind) throws ParseException {
 
4413     if ((oldToken = token).next != null) token = token.next;
 
4414     else token = token.next = token_source.getNextToken();
 
4416     if (token.kind == kind) {
 
4418       if (++jj_gc > 100) {
 
4420         for (int i = 0; i < jj_2_rtns.length; i++) {
 
4421           JJCalls c = jj_2_rtns[i];
 
4423             if (c.gen < jj_gen) c.first = null;
 
4432     throw generateParseException();
 
4435   static final private boolean jj_scan_token(int kind) {
 
4436     if (jj_scanpos == jj_lastpos) {
 
4438       if (jj_scanpos.next == null) {
 
4439         jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken();
 
4441         jj_lastpos = jj_scanpos = jj_scanpos.next;
 
4444       jj_scanpos = jj_scanpos.next;
 
4447       int i = 0; Token tok = token;
 
4448       while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; }
 
4449       if (tok != null) jj_add_error_token(kind, i);
 
4451     return (jj_scanpos.kind != kind);
 
4454   static final public Token getNextToken() {
 
4455     if (token.next != null) token = token.next;
 
4456     else token = token.next = token_source.getNextToken();
 
4462   static final public Token getToken(int index) {
 
4463     Token t = lookingAhead ? jj_scanpos : token;
 
4464     for (int i = 0; i < index; i++) {
 
4465       if (t.next != null) t = t.next;
 
4466       else t = t.next = token_source.getNextToken();
 
4471   static final private int jj_ntk() {
 
4472     if ((jj_nt=token.next) == null)
 
4473       return (jj_ntk = (token.next=token_source.getNextToken()).kind);
 
4475       return (jj_ntk = jj_nt.kind);
 
4478   static private java.util.Vector jj_expentries = new java.util.Vector();
 
4479   static private int[] jj_expentry;
 
4480   static private int jj_kind = -1;
 
4481   static private int[] jj_lasttokens = new int[100];
 
4482   static private int jj_endpos;
 
4484   static private void jj_add_error_token(int kind, int pos) {
 
4485     if (pos >= 100) return;
 
4486     if (pos == jj_endpos + 1) {
 
4487       jj_lasttokens[jj_endpos++] = kind;
 
4488     } else if (jj_endpos != 0) {
 
4489       jj_expentry = new int[jj_endpos];
 
4490       for (int i = 0; i < jj_endpos; i++) {
 
4491         jj_expentry[i] = jj_lasttokens[i];
 
4493       boolean exists = false;
 
4494       for (java.util.Enumeration enum = jj_expentries.elements(); enum.hasMoreElements();) {
 
4495         int[] oldentry = (int[])(enum.nextElement());
 
4496         if (oldentry.length == jj_expentry.length) {
 
4498           for (int i = 0; i < jj_expentry.length; i++) {
 
4499             if (oldentry[i] != jj_expentry[i]) {
 
4507       if (!exists) jj_expentries.addElement(jj_expentry);
 
4508       if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind;
 
4512   static public ParseException generateParseException() {
 
4513     jj_expentries.removeAllElements();
 
4514     boolean[] la1tokens = new boolean[128];
 
4515     for (int i = 0; i < 128; i++) {
 
4516       la1tokens[i] = false;
 
4519       la1tokens[jj_kind] = true;
 
4522     for (int i = 0; i < 98; i++) {
 
4523       if (jj_la1[i] == jj_gen) {
 
4524         for (int j = 0; j < 32; j++) {
 
4525           if ((jj_la1_0[i] & (1<<j)) != 0) {
 
4526             la1tokens[j] = true;
 
4528           if ((jj_la1_1[i] & (1<<j)) != 0) {
 
4529             la1tokens[32+j] = true;
 
4531           if ((jj_la1_2[i] & (1<<j)) != 0) {
 
4532             la1tokens[64+j] = true;
 
4534           if ((jj_la1_3[i] & (1<<j)) != 0) {
 
4535             la1tokens[96+j] = true;
 
4540     for (int i = 0; i < 128; i++) {
 
4542         jj_expentry = new int[1];
 
4544         jj_expentries.addElement(jj_expentry);
 
4549     jj_add_error_token(0, 0);
 
4550     int[][] exptokseq = new int[jj_expentries.size()][];
 
4551     for (int i = 0; i < jj_expentries.size(); i++) {
 
4552       exptokseq[i] = (int[])jj_expentries.elementAt(i);
 
4554     return new ParseException(token, exptokseq, tokenImage);
 
4557   static final public void enable_tracing() {
 
4560   static final public void disable_tracing() {
 
4563   static final private void jj_rescan_token() {
 
4565     for (int i = 0; i < 7; i++) {
 
4566       JJCalls p = jj_2_rtns[i];
 
4568         if (p.gen > jj_gen) {
 
4569           jj_la = p.arg; jj_lastpos = jj_scanpos = p.first;
 
4571             case 0: jj_3_1(); break;
 
4572             case 1: jj_3_2(); break;
 
4573             case 2: jj_3_3(); break;
 
4574             case 3: jj_3_4(); break;
 
4575             case 4: jj_3_5(); break;
 
4576             case 5: jj_3_6(); break;
 
4577             case 6: jj_3_7(); break;
 
4581       } while (p != null);
 
4586   static final private void jj_save(int index, int xla) {
 
4587     JJCalls p = jj_2_rtns[index];
 
4588     while (p.gen > jj_gen) {
 
4589       if (p.next == null) { p = p.next = new JJCalls(); break; }
 
4592     p.gen = jj_gen + xla - jj_la; p.first = token; p.arg = xla;
 
4595   static final class JJCalls {