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;
 
  23  * This php parser is inspired by the Java 1.2 grammar example 
 
  24  * given with JavaCC. You can get JavaCC at http://www.webgain.com
 
  25  * You can test the parser with the PHPParserTestCase2.java
 
  26  * @author Matthieu Casanova
 
  28 public class PHPParser extends PHPParserSuperclass implements PHPParserConstants {
 
  30   private static IFile fileToParse;
 
  32   /** The current segment */
 
  33   private static PHPSegmentWithChildren currentSegment;
 
  35   private static final String PARSE_ERROR_STRING = "Parse error"; //$NON-NLS-1$
 
  36   private static final String PARSE_WARNING_STRING = "Warning"; //$NON-NLS-1$
 
  37   public static final int ERROR = 2;
 
  38   public static final int WARNING = 1;
 
  39   public static final int INFO = 0;
 
  40   PHPOutlineInfo outlineInfo;
 
  41   private static int errorLevel = ERROR;
 
  42   private static String errorMessage;
 
  47   public void setFileToParse(IFile fileToParse) {
 
  48     this.fileToParse = fileToParse;
 
  51   public PHPParser(IFile fileToParse) {
 
  52     this(new StringReader(""));
 
  53     this.fileToParse = fileToParse;
 
  56   public void phpParserTester(String strEval) throws CoreException, ParseException {
 
  57     PHPParserTokenManager.SwitchTo(PHPParserTokenManager.PHPPARSING);
 
  58     StringReader stream = new StringReader(strEval);
 
  59     if (jj_input_stream == null) {
 
  60       jj_input_stream = new SimpleCharStream(stream, 1, 1);
 
  62     ReInit(new StringReader(strEval));
 
  66   public void htmlParserTester(String strEval) throws CoreException, ParseException {
 
  67     StringReader stream = new StringReader(strEval);
 
  68     if (jj_input_stream == null) {
 
  69       jj_input_stream = new SimpleCharStream(stream, 1, 1);
 
  75   public PHPOutlineInfo parseInfo(Object parent, String s) {
 
  76     outlineInfo = new PHPOutlineInfo(parent);
 
  77     currentSegment = outlineInfo.getDeclarations();
 
  78     StringReader stream = new StringReader(s);
 
  79     if (jj_input_stream == null) {
 
  80       jj_input_stream = new SimpleCharStream(stream, 1, 1);
 
  85     } catch (ParseException e) {
 
  86       if (errorMessage == null) {
 
  87         PHPeclipsePlugin.log(e);
 
  89         setMarker(errorMessage, e.currentToken.beginLine, errorLevel);
 
  98    * Create marker for the parse error
 
 100   private static void setMarker(String message, int lineNumber, int errorLevel) {
 
 102       setMarker(fileToParse, message, lineNumber, errorLevel);
 
 103     } catch (CoreException e) {
 
 104       PHPeclipsePlugin.log(e);
 
 108   public static void setMarker(IFile file, String message, int lineNumber, int errorLevel) throws CoreException {
 
 110       Hashtable attributes = new Hashtable();
 
 111       MarkerUtilities.setMessage(attributes, message);
 
 112       switch (errorLevel) {
 
 114           attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_ERROR));
 
 117           attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_WARNING));
 
 120           attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_INFO));
 
 123       MarkerUtilities.setLineNumber(attributes, lineNumber);
 
 124       MarkerUtilities.createMarker(file, attributes, IMarker.PROBLEM);
 
 129    * Create markers according to the external parser output
 
 131   private static void createMarkers(String output, IFile file) throws CoreException {
 
 132     // delete all markers
 
 133     file.deleteMarkers(IMarker.PROBLEM, false, 0);
 
 138     while ((brIndx = output.indexOf("<br />", indx)) != -1) {
 
 139       // newer php error output (tested with 4.2.3)
 
 140       scanLine(output, file, indx, brIndx);
 
 145       while ((brIndx = output.indexOf("<br>", indx)) != -1) {
 
 146         // older php error output (tested with 4.2.3)
 
 147         scanLine(output, file, indx, brIndx);
 
 153   private static void scanLine(String output, IFile file, int indx, int brIndx) throws CoreException {
 
 155     StringBuffer lineNumberBuffer = new StringBuffer(10);
 
 157     current = output.substring(indx, brIndx);
 
 159     if (current.indexOf(PARSE_WARNING_STRING) != -1 || current.indexOf(PARSE_ERROR_STRING) != -1) {
 
 160       int onLine = current.indexOf("on line <b>");
 
 162         lineNumberBuffer.delete(0, lineNumberBuffer.length());
 
 163         for (int i = onLine; i < current.length(); i++) {
 
 164           ch = current.charAt(i);
 
 165           if ('0' <= ch && '9' >= ch) {
 
 166             lineNumberBuffer.append(ch);
 
 170         int lineNumber = Integer.parseInt(lineNumberBuffer.toString());
 
 172         Hashtable attributes = new Hashtable();
 
 174         current = current.replaceAll("\n", "");
 
 175         current = current.replaceAll("<b>", "");
 
 176         current = current.replaceAll("</b>", "");
 
 177         MarkerUtilities.setMessage(attributes, current);
 
 179         if (current.indexOf(PARSE_ERROR_STRING) != -1)
 
 180           attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_ERROR));
 
 181         else if (current.indexOf(PARSE_WARNING_STRING) != -1)
 
 182           attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_WARNING));
 
 184           attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_INFO));
 
 185         MarkerUtilities.setLineNumber(attributes, lineNumber);
 
 186         MarkerUtilities.createMarker(file, attributes, IMarker.PROBLEM);
 
 191   public void parse(String s) throws CoreException {
 
 192     ReInit(new StringReader(s));
 
 195     } catch (ParseException e) {
 
 196       if (errorMessage == null) {
 
 197         PHPeclipsePlugin.log(e);
 
 199         setMarker(errorMessage, e.currentToken.beginLine, errorLevel);
 
 206    * Call the php parse command ( php -l -f <filename> )
 
 207    * and create markers according to the external parser output
 
 209   public static void phpExternalParse(IFile file) {
 
 210     IPreferenceStore store = PHPeclipsePlugin.getDefault().getPreferenceStore();
 
 211     String filename = file.getLocation().toString();
 
 213     String[] arguments = { filename };
 
 214     MessageFormat form = new MessageFormat(store.getString(PHPeclipsePlugin.EXTERNAL_PARSER_PREF));
 
 215     String command = form.format(arguments);
 
 217     String parserResult = PHPStartApacheAction.getParserOutput(command, "External parser: ");
 
 220       // parse the buffer to find the errors and warnings
 
 221       createMarkers(parserResult, file);
 
 222     } catch (CoreException e) {
 
 223       PHPeclipsePlugin.log(e);
 
 227   public void parse() throws ParseException {
 
 231 /*****************************************
 
 232  * THE JAVA LANGUAGE GRAMMAR STARTS HERE *
 
 233  *****************************************/
 
 236  * Program structuring syntax follows.
 
 238   static final public void phpTest() throws ParseException {
 
 243   static final public void phpFile() throws ParseException {
 
 246       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 254       jj_consume_token(PHPSTART);
 
 256       jj_consume_token(PHPEND);
 
 261   static final public void Php() throws ParseException {
 
 264       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 288       case INTEGER_LITERAL:
 
 289       case FLOATING_POINT_LITERAL:
 
 314   static final public void ClassDeclaration() throws ParseException {
 
 315   PHPClassDeclaration classDeclaration;
 
 317   int pos = jj_input_stream.bufpos;
 
 318     jj_consume_token(CLASS);
 
 319     className = jj_consume_token(IDENTIFIER);
 
 320     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 322       jj_consume_token(EXTENDS);
 
 323       jj_consume_token(IDENTIFIER);
 
 329     classDeclaration = new PHPClassDeclaration(currentSegment,className.image,pos);
 
 330     currentSegment.add(classDeclaration);
 
 331     currentSegment = classDeclaration;
 
 333     currentSegment = (PHPSegmentWithChildren) currentSegment.getParent();
 
 336   static final public void ClassBody() throws ParseException {
 
 337     jj_consume_token(LBRACE);
 
 340       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 349       ClassBodyDeclaration();
 
 351     jj_consume_token(RBRACE);
 
 354   static final public void ClassBodyDeclaration() throws ParseException {
 
 355     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 364       jj_consume_token(-1);
 
 365       throw new ParseException();
 
 369   static final public void FieldDeclaration() throws ParseException {
 
 370     jj_consume_token(VAR);
 
 371     VariableDeclarator();
 
 374       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 382       jj_consume_token(COMMA);
 
 383       VariableDeclarator();
 
 385     jj_consume_token(SEMICOLON);
 
 388   static final public String VariableDeclarator() throws ParseException {
 
 390   StringBuffer buff = new StringBuffer();
 
 391     expr = VariableDeclaratorId();
 
 393     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 395       jj_consume_token(ASSIGN);
 
 396       expr = VariableInitializer();
 
 397      buff.append("=").append(expr);
 
 403    {if (true) return buff.toString();}
 
 404     throw new Error("Missing return statement in function");
 
 407   static final public String VariableDeclaratorId() throws ParseException {
 
 409   StringBuffer buff = new StringBuffer();
 
 419       expr = VariableSuffix();
 
 422    {if (true) return buff.toString();}
 
 423     throw new Error("Missing return statement in function");
 
 426   static final public String Variable() throws ParseException {
 
 429     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 431       token = jj_consume_token(DOLLAR_ID);
 
 432       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 434         jj_consume_token(LBRACE);
 
 436         jj_consume_token(RBRACE);
 
 443       {if (true) return token.image;}
 
 445     {if (true) return token + "{" + expr + "}";}
 
 448       jj_consume_token(DOLLAR);
 
 449       expr = VariableName();
 
 450    {if (true) return "$" + expr;}
 
 454       jj_consume_token(-1);
 
 455       throw new ParseException();
 
 457     throw new Error("Missing return statement in function");
 
 460   static final public String VariableName() throws ParseException {
 
 463     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 465       jj_consume_token(LBRACE);
 
 467       jj_consume_token(RBRACE);
 
 468    {if (true) return "{"+expr+"}";}
 
 471       token = jj_consume_token(IDENTIFIER);
 
 472       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 474         jj_consume_token(LBRACE);
 
 476         jj_consume_token(RBRACE);
 
 483       {if (true) return token.image;}
 
 485     {if (true) return token + "{" + expr + "}";}
 
 488       jj_consume_token(DOLLAR);
 
 489       expr = VariableName();
 
 490    {if (true) return "$" + expr;}
 
 494       jj_consume_token(-1);
 
 495       throw new ParseException();
 
 497     throw new Error("Missing return statement in function");
 
 500   static final public String VariableInitializer() throws ParseException {
 
 503    {if (true) return expr;}
 
 504     throw new Error("Missing return statement in function");
 
 507   static final public String ArrayVariable() throws ParseException {
 
 509 StringBuffer buff = new StringBuffer();
 
 512     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 514       jj_consume_token(ARRAYASSIGN);
 
 516     buff.append("=>").append(expr);
 
 522    {if (true) return buff.toString();}
 
 523     throw new Error("Missing return statement in function");
 
 526   static final public String ArrayInitializer() throws ParseException {
 
 528 StringBuffer buff = new StringBuffer("(");
 
 529     jj_consume_token(LPAREN);
 
 530     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 537     case INTEGER_LITERAL:
 
 538     case FLOATING_POINT_LITERAL:
 
 551       expr = ArrayVariable();
 
 560         jj_consume_token(COMMA);
 
 561         expr = ArrayVariable();
 
 562              buff.append(",").append(expr);
 
 569     jj_consume_token(RPAREN);
 
 571     {if (true) return buff.toString();}
 
 572     throw new Error("Missing return statement in function");
 
 575   static final public void MethodDeclaration() throws ParseException {
 
 576   PHPFunctionDeclaration functionDeclaration;
 
 577     jj_consume_token(FUNCTION);
 
 578     functionDeclaration = MethodDeclarator();
 
 579     currentSegment.add(functionDeclaration);
 
 580     currentSegment = functionDeclaration;
 
 581     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 586       jj_consume_token(SEMICOLON);
 
 590       jj_consume_token(-1);
 
 591       throw new ParseException();
 
 593     currentSegment = (PHPSegmentWithChildren) currentSegment.getParent();
 
 596   static final public PHPFunctionDeclaration MethodDeclarator() throws ParseException {
 
 598   StringBuffer methodDeclaration = new StringBuffer();
 
 599   String formalParameters;
 
 600   int pos = jj_input_stream.bufpos;
 
 601     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 603       jj_consume_token(BIT_AND);
 
 604                methodDeclaration.append("&");
 
 610     identifier = jj_consume_token(IDENTIFIER);
 
 611     formalParameters = FormalParameters();
 
 612     methodDeclaration.append(identifier).append(formalParameters);
 
 613     {if (true) return new PHPFunctionDeclaration(currentSegment,methodDeclaration.toString(),pos);}
 
 614     throw new Error("Missing return statement in function");
 
 617   static final public String FormalParameters() throws ParseException {
 
 619   StringBuffer buff = new StringBuffer("(");
 
 620     jj_consume_token(LPAREN);
 
 621     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 625       expr = FormalParameter();
 
 629         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 637         jj_consume_token(COMMA);
 
 638         expr = FormalParameter();
 
 639              buff.append(",").append(expr);
 
 646     jj_consume_token(RPAREN);
 
 648   {if (true) return buff.toString();}
 
 649     throw new Error("Missing return statement in function");
 
 652   static final public String FormalParameter() throws ParseException {
 
 654   StringBuffer buff = new StringBuffer();
 
 655     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 657       jj_consume_token(BIT_AND);
 
 664     expr = VariableDeclarator();
 
 666     {if (true) return buff.toString();}
 
 667     throw new Error("Missing return statement in function");
 
 670   static final public String Type() throws ParseException {
 
 671     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 673       jj_consume_token(STRING);
 
 674    {if (true) return "string";}
 
 677       jj_consume_token(BOOL);
 
 678    {if (true) return "bool";}
 
 681       jj_consume_token(BOOLEAN);
 
 682    {if (true) return "boolean";}
 
 685       jj_consume_token(REAL);
 
 686    {if (true) return "real";}
 
 689       jj_consume_token(DOUBLE);
 
 690    {if (true) return "double";}
 
 693       jj_consume_token(FLOAT);
 
 694    {if (true) return "float";}
 
 697       jj_consume_token(INT);
 
 698    {if (true) return "int";}
 
 701       jj_consume_token(INTEGER);
 
 702    {if (true) return "integer";}
 
 706       jj_consume_token(-1);
 
 707       throw new ParseException();
 
 709     throw new Error("Missing return statement in function");
 
 712   static final public String Expression() throws ParseException {
 
 714   String assignOperator = null;
 
 716     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 718       expr = PrintExpression();
 
 719    {if (true) return expr;}
 
 726     case INTEGER_LITERAL:
 
 727     case FLOATING_POINT_LITERAL:
 
 740       expr = ConditionalExpression();
 
 741       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 753       case RSIGNEDSHIFTASSIGN:
 
 754       case RUNSIGNEDSHIFTASSIGN:
 
 755         assignOperator = AssignmentOperator();
 
 756         expr2 = Expression();
 
 763       {if (true) return expr;}
 
 765       {if (true) return expr + assignOperator + expr2;}
 
 770       jj_consume_token(-1);
 
 771       throw new ParseException();
 
 773     throw new Error("Missing return statement in function");
 
 776   static final public String AssignmentOperator() throws ParseException {
 
 777   Token assignOperator;
 
 778     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 780       jj_consume_token(ASSIGN);
 
 781  {if (true) return "=";}
 
 784       jj_consume_token(STARASSIGN);
 
 785  {if (true) return "*=";}
 
 788       jj_consume_token(SLASHASSIGN);
 
 789  {if (true) return "/=";}
 
 792       jj_consume_token(REMASSIGN);
 
 793  {if (true) return "%=";}
 
 796       jj_consume_token(PLUSASSIGN);
 
 797  {if (true) return "+=";}
 
 800       jj_consume_token(MINUSASSIGN);
 
 801  {if (true) return "-=";}
 
 804       jj_consume_token(LSHIFTASSIGN);
 
 805  {if (true) return "<<=";}
 
 807     case RSIGNEDSHIFTASSIGN:
 
 808       jj_consume_token(RSIGNEDSHIFTASSIGN);
 
 809  {if (true) return ">>=";}
 
 811     case RUNSIGNEDSHIFTASSIGN:
 
 812       jj_consume_token(RUNSIGNEDSHIFTASSIGN);
 
 813  {if (true) return ">>>=";}
 
 816       jj_consume_token(ANDASSIGN);
 
 817  {if (true) return "&=";}
 
 820       jj_consume_token(XORASSIGN);
 
 821  {if (true) return "|=";}
 
 824       jj_consume_token(ORASSIGN);
 
 825  {if (true) return "|=";}
 
 828       jj_consume_token(DOTASSIGN);
 
 829  {if (true) return ".=";}
 
 833       jj_consume_token(-1);
 
 834       throw new ParseException();
 
 836     throw new Error("Missing return statement in function");
 
 839   static final public String ConditionalExpression() throws ParseException {
 
 843     expr = ConditionalOrExpression();
 
 844     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 846       jj_consume_token(HOOK);
 
 847       expr2 = Expression();
 
 848       jj_consume_token(COLON);
 
 849       expr3 = ConditionalExpression();
 
 856     {if (true) return expr;}
 
 858     {if (true) return expr + "?" + expr2 + ":" + expr3;}
 
 860     throw new Error("Missing return statement in function");
 
 863   static final public String ConditionalOrExpression() throws ParseException {
 
 867   StringBuffer buff = new StringBuffer();
 
 868     expr = ConditionalAndExpression();
 
 872       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 881       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 883         operator = jj_consume_token(SC_OR);
 
 886         operator = jj_consume_token(_ORL);
 
 890         jj_consume_token(-1);
 
 891         throw new ParseException();
 
 893       expr2 = ConditionalAndExpression();
 
 894       buff.append(operator.image);
 
 897     {if (true) return buff.toString();}
 
 898     throw new Error("Missing return statement in function");
 
 901   static final public String ConditionalAndExpression() throws ParseException {
 
 905   StringBuffer buff = new StringBuffer();
 
 906     expr = ConcatExpression();
 
 910       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 919       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 921         operator = jj_consume_token(SC_AND);
 
 924         operator = jj_consume_token(_ANDL);
 
 928         jj_consume_token(-1);
 
 929         throw new ParseException();
 
 931       expr2 = ConcatExpression();
 
 932       buff.append(operator.image);
 
 935     {if (true) return buff.toString();}
 
 936     throw new Error("Missing return statement in function");
 
 939   static final public String ConcatExpression() throws ParseException {
 
 942   StringBuffer buff = new StringBuffer();
 
 943     expr = InclusiveOrExpression();
 
 947       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 955       jj_consume_token(DOT);
 
 956       expr2 = InclusiveOrExpression();
 
 960     {if (true) return buff.toString();}
 
 961     throw new Error("Missing return statement in function");
 
 964   static final public String InclusiveOrExpression() throws ParseException {
 
 967   StringBuffer buff = new StringBuffer();
 
 968     expr = ExclusiveOrExpression();
 
 972       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
 980       jj_consume_token(BIT_OR);
 
 981       expr2 = ExclusiveOrExpression();
 
 985     {if (true) return buff.toString();}
 
 986     throw new Error("Missing return statement in function");
 
 989   static final public String ExclusiveOrExpression() throws ParseException {
 
 992   StringBuffer buff = new StringBuffer();
 
 993     expr = AndExpression();
 
 997       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1002         jj_la1[29] = jj_gen;
 
1005       jj_consume_token(XOR);
 
1006       expr2 = AndExpression();
 
1010     {if (true) return buff.toString();}
 
1011     throw new Error("Missing return statement in function");
 
1014   static final public String AndExpression() throws ParseException {
 
1016   String expr2 = null;
 
1017   StringBuffer buff = new StringBuffer();
 
1018     expr = EqualityExpression();
 
1022       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1027         jj_la1[30] = jj_gen;
 
1030       jj_consume_token(BIT_AND);
 
1031       expr2 = EqualityExpression();
 
1035     {if (true) return buff.toString();}
 
1036     throw new Error("Missing return statement in function");
 
1039   static final public String EqualityExpression() throws ParseException {
 
1043   StringBuffer buff = new StringBuffer();
 
1044     expr = RelationalExpression();
 
1048       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1054         jj_la1[31] = jj_gen;
 
1057       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1059         operator = jj_consume_token(EQ);
 
1062         operator = jj_consume_token(NE);
 
1065         jj_la1[32] = jj_gen;
 
1066         jj_consume_token(-1);
 
1067         throw new ParseException();
 
1069       expr2 = RelationalExpression();
 
1070     buff.append(operator.image);
 
1073    {if (true) return buff.toString();}
 
1074     throw new Error("Missing return statement in function");
 
1077   static final public String RelationalExpression() throws ParseException {
 
1081   StringBuffer buff = new StringBuffer();
 
1082     expr = ShiftExpression();
 
1086       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1094         jj_la1[33] = jj_gen;
 
1097       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1099         operator = jj_consume_token(LT);
 
1102         operator = jj_consume_token(GT);
 
1105         operator = jj_consume_token(LE);
 
1108         operator = jj_consume_token(GE);
 
1111         jj_la1[34] = jj_gen;
 
1112         jj_consume_token(-1);
 
1113         throw new ParseException();
 
1115       expr2 = ShiftExpression();
 
1116     buff.append(operator.image);
 
1119    {if (true) return buff.toString();}
 
1120     throw new Error("Missing return statement in function");
 
1123   static final public String ShiftExpression() throws ParseException {
 
1127   StringBuffer buff = new StringBuffer();
 
1128     expr = AdditiveExpression();
 
1132       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1135       case RUNSIGNEDSHIFT:
 
1139         jj_la1[35] = jj_gen;
 
1142       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1144         operator = jj_consume_token(LSHIFT);
 
1147         operator = jj_consume_token(RSIGNEDSHIFT);
 
1149       case RUNSIGNEDSHIFT:
 
1150         operator = jj_consume_token(RUNSIGNEDSHIFT);
 
1153         jj_la1[36] = jj_gen;
 
1154         jj_consume_token(-1);
 
1155         throw new ParseException();
 
1157       expr2 = AdditiveExpression();
 
1158     buff.append(operator.image);
 
1161    {if (true) return buff.toString();}
 
1162     throw new Error("Missing return statement in function");
 
1165   static final public String AdditiveExpression() throws ParseException {
 
1169   StringBuffer buff = new StringBuffer();
 
1170     expr = MultiplicativeExpression();
 
1174       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1180         jj_la1[37] = jj_gen;
 
1183       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1185         operator = jj_consume_token(PLUS);
 
1188         operator = jj_consume_token(MINUS);
 
1191         jj_la1[38] = jj_gen;
 
1192         jj_consume_token(-1);
 
1193         throw new ParseException();
 
1195       expr2 = MultiplicativeExpression();
 
1196     buff.append(operator.image);
 
1199    {if (true) return buff.toString();}
 
1200     throw new Error("Missing return statement in function");
 
1203   static final public String MultiplicativeExpression() throws ParseException {
 
1207   StringBuffer buff = new StringBuffer();
 
1208     expr = UnaryExpression();
 
1212       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1219         jj_la1[39] = jj_gen;
 
1222       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1224         operator = jj_consume_token(STAR);
 
1227         operator = jj_consume_token(SLASH);
 
1230         operator = jj_consume_token(REM);
 
1233         jj_la1[40] = jj_gen;
 
1234         jj_consume_token(-1);
 
1235         throw new ParseException();
 
1237       expr2 = UnaryExpression();
 
1238     buff.append(operator.image);
 
1241    {if (true) return buff.toString();}
 
1242     throw new Error("Missing return statement in function");
 
1245   static final public String UnaryExpression() throws ParseException {
 
1247   StringBuffer buff = new StringBuffer();
 
1248     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1250       jj_consume_token(AT);
 
1251       expr = UnaryExpression();
 
1252    {if (true) return "@" + expr;}
 
1256       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1258         jj_consume_token(PLUS);
 
1262         jj_consume_token(MINUS);
 
1266         jj_la1[41] = jj_gen;
 
1267         jj_consume_token(-1);
 
1268         throw new ParseException();
 
1270       expr = UnaryExpression();
 
1272     {if (true) return buff.toString();}
 
1275       expr = PreIncrementExpression();
 
1276    {if (true) return expr;}
 
1279       expr = PreDecrementExpression();
 
1280    {if (true) return expr;}
 
1287     case INTEGER_LITERAL:
 
1288     case FLOATING_POINT_LITERAL:
 
1289     case STRING_LITERAL:
 
1296       expr = UnaryExpressionNotPlusMinus();
 
1297    {if (true) return buff.toString();}
 
1300       jj_la1[42] = jj_gen;
 
1301       jj_consume_token(-1);
 
1302       throw new ParseException();
 
1304     throw new Error("Missing return statement in function");
 
1307   static final public String PreIncrementExpression() throws ParseException {
 
1309     jj_consume_token(INCR);
 
1310     expr = PrimaryExpression();
 
1311    {if (true) return "++"+expr;}
 
1312     throw new Error("Missing return statement in function");
 
1315   static final public String PreDecrementExpression() throws ParseException {
 
1317     jj_consume_token(DECR);
 
1318     expr = PrimaryExpression();
 
1319    {if (true) return "--"+expr;}
 
1320     throw new Error("Missing return statement in function");
 
1323   static final public String UnaryExpressionNotPlusMinus() throws ParseException {
 
1325     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1327       jj_consume_token(BANG);
 
1328       expr = UnaryExpression();
 
1329    {if (true) return "!" + expr;}
 
1332       jj_la1[43] = jj_gen;
 
1333       if (jj_2_3(2147483647)) {
 
1334         expr = CastExpression();
 
1335    {if (true) return expr;}
 
1337         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1344           expr = PostfixExpression();
 
1345    {if (true) return expr;}
 
1350         case INTEGER_LITERAL:
 
1351         case FLOATING_POINT_LITERAL:
 
1352         case STRING_LITERAL:
 
1354    {if (true) return expr;}
 
1357           jj_consume_token(LPAREN);
 
1358           expr = Expression();
 
1359           jj_consume_token(RPAREN);
 
1360    {if (true) return "("+expr+")";}
 
1363           jj_la1[44] = jj_gen;
 
1364           jj_consume_token(-1);
 
1365           throw new ParseException();
 
1369     throw new Error("Missing return statement in function");
 
1372   static final public String CastExpression() throws ParseException {
 
1375     jj_consume_token(LPAREN);
 
1377     jj_consume_token(RPAREN);
 
1378     expr = UnaryExpression();
 
1379    {if (true) return "(" + type + ")" + expr;}
 
1380     throw new Error("Missing return statement in function");
 
1383   static final public String PostfixExpression() throws ParseException {
 
1385   Token operator = null;
 
1386     expr = PrimaryExpression();
 
1387     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1390       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1392         operator = jj_consume_token(INCR);
 
1395         operator = jj_consume_token(DECR);
 
1398         jj_la1[45] = jj_gen;
 
1399         jj_consume_token(-1);
 
1400         throw new ParseException();
 
1404       jj_la1[46] = jj_gen;
 
1407     if (operator == null) {
 
1408       {if (true) return expr;}
 
1410     {if (true) return expr + operator.image;}
 
1411     throw new Error("Missing return statement in function");
 
1414   static final public String PrimaryExpression() throws ParseException {
 
1417   StringBuffer buff = new StringBuffer();
 
1419       identifier = jj_consume_token(IDENTIFIER);
 
1420       jj_consume_token(STATICCLASSACCESS);
 
1421       expr = ClassIdentifier();
 
1422    buff.append(identifier.image).append("::").append(expr);
 
1425         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1432           jj_la1[47] = jj_gen;
 
1435         expr = PrimarySuffix();
 
1438    {if (true) return buff.toString();}
 
1440       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1446         expr = PrimaryPrefix();
 
1450           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1457             jj_la1[48] = jj_gen;
 
1460           expr = PrimarySuffix();
 
1463    {if (true) return buff.toString();}
 
1466         jj_consume_token(ARRAY);
 
1467         expr = ArrayInitializer();
 
1468    {if (true) return "array" + expr;}
 
1471         jj_la1[49] = jj_gen;
 
1472         jj_consume_token(-1);
 
1473         throw new ParseException();
 
1476     throw new Error("Missing return statement in function");
 
1479   static final public String PrimaryPrefix() throws ParseException {
 
1482     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1484       token = jj_consume_token(IDENTIFIER);
 
1485    {if (true) return token.image;}
 
1489       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1491         token = jj_consume_token(BIT_AND);
 
1494         jj_la1[50] = jj_gen;
 
1497       jj_consume_token(NEW);
 
1498       expr = ClassIdentifier();
 
1499     if (token == null) {
 
1500       {if (true) return "new " + expr;}
 
1502     {if (true) return "new " + expr;}
 
1506       expr = VariableDeclaratorId();
 
1507    {if (true) return expr;}
 
1510       jj_la1[51] = jj_gen;
 
1511       jj_consume_token(-1);
 
1512       throw new ParseException();
 
1514     throw new Error("Missing return statement in function");
 
1517   static final public String ClassIdentifier() throws ParseException {
 
1520     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1522       token = jj_consume_token(IDENTIFIER);
 
1523    {if (true) return token.image;}
 
1527       expr = VariableDeclaratorId();
 
1528    {if (true) return expr;}
 
1531       jj_la1[52] = jj_gen;
 
1532       jj_consume_token(-1);
 
1533       throw new ParseException();
 
1535     throw new Error("Missing return statement in function");
 
1538   static final public String PrimarySuffix() throws ParseException {
 
1540     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1543    {if (true) return expr;}
 
1547       expr = VariableSuffix();
 
1548    {if (true) return expr;}
 
1551       jj_la1[53] = jj_gen;
 
1552       jj_consume_token(-1);
 
1553       throw new ParseException();
 
1555     throw new Error("Missing return statement in function");
 
1558   static final public String VariableSuffix() throws ParseException {
 
1560     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1562       jj_consume_token(CLASSACCESS);
 
1563       expr = VariableName();
 
1564    {if (true) return "->" + expr;}
 
1567       jj_consume_token(LBRACKET);
 
1568       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1575       case INTEGER_LITERAL:
 
1576       case FLOATING_POINT_LITERAL:
 
1577       case STRING_LITERAL:
 
1589         expr = Expression();
 
1592         jj_la1[54] = jj_gen;
 
1595       jj_consume_token(RBRACKET);
 
1597       {if (true) return "[]";}
 
1599     {if (true) return "[" + expr + "]";}
 
1602       jj_la1[55] = jj_gen;
 
1603       jj_consume_token(-1);
 
1604       throw new ParseException();
 
1606     throw new Error("Missing return statement in function");
 
1609   static final public String Literal() throws ParseException {
 
1612     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1613     case INTEGER_LITERAL:
 
1614       token = jj_consume_token(INTEGER_LITERAL);
 
1615    {if (true) return token.image;}
 
1617     case FLOATING_POINT_LITERAL:
 
1618       token = jj_consume_token(FLOATING_POINT_LITERAL);
 
1619    {if (true) return token.image;}
 
1621     case STRING_LITERAL:
 
1623         token = jj_consume_token(STRING_LITERAL);
 
1624    {if (true) return token.image;}
 
1625       } catch (TokenMgrError e) {
 
1626     errorMessage = "unterminated string";
 
1628     {if (true) throw generateParseException();}
 
1633       expr = BooleanLiteral();
 
1634    {if (true) return expr;}
 
1637       expr = NullLiteral();
 
1638    {if (true) return expr;}
 
1641       jj_la1[56] = jj_gen;
 
1642       jj_consume_token(-1);
 
1643       throw new ParseException();
 
1645     throw new Error("Missing return statement in function");
 
1648   static final public String BooleanLiteral() throws ParseException {
 
1649     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1651       jj_consume_token(TRUE);
 
1652    {if (true) return "true";}
 
1655       jj_consume_token(FALSE);
 
1656    {if (true) return "false";}
 
1659       jj_la1[57] = jj_gen;
 
1660       jj_consume_token(-1);
 
1661       throw new ParseException();
 
1663     throw new Error("Missing return statement in function");
 
1666   static final public String NullLiteral() throws ParseException {
 
1667     jj_consume_token(NULL);
 
1668    {if (true) return "null";}
 
1669     throw new Error("Missing return statement in function");
 
1672   static final public String Arguments() throws ParseException {
 
1674     jj_consume_token(LPAREN);
 
1675     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1682     case INTEGER_LITERAL:
 
1683     case FLOATING_POINT_LITERAL:
 
1684     case STRING_LITERAL:
 
1696       expr = ArgumentList();
 
1699       jj_la1[58] = jj_gen;
 
1703       jj_consume_token(RPAREN);
 
1704     } catch (ParseException e) {
 
1705     errorMessage = "')' expected to close the argument list";
 
1707     {if (true) throw e;}
 
1710     {if (true) return "()";}
 
1712   {if (true) return "(" + expr + ")";}
 
1713     throw new Error("Missing return statement in function");
 
1716   static final public String ArgumentList() throws ParseException {
 
1718 StringBuffer buff = new StringBuffer();
 
1719     expr = Expression();
 
1723       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1728         jj_la1[59] = jj_gen;
 
1731       jj_consume_token(COMMA);
 
1733         expr = Expression();
 
1734       } catch (ParseException e) {
 
1735         errorMessage = "expression expected after a comma in argument list";
 
1737         {if (true) throw e;}
 
1739       buff.append(",").append("expr");
 
1741     {if (true) return buff.toString();}
 
1742     throw new Error("Missing return statement in function");
 
1746  * Statement syntax follows.
 
1748   static final public void Statement() throws ParseException {
 
1751       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1753         jj_consume_token(SEMICOLON);
 
1756         jj_consume_token(127);
 
1759         jj_la1[60] = jj_gen;
 
1760         jj_consume_token(-1);
 
1761         throw new ParseException();
 
1763     } else if (jj_2_6(2)) {
 
1766       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1781         StatementExpression();
 
1783           jj_consume_token(SEMICOLON);
 
1784         } catch (ParseException e) {
 
1785     errorMessage = "';' expected after expression";
 
1787     {if (true) throw e;}
 
1809         ContinueStatement();
 
1830         jj_la1[61] = jj_gen;
 
1831         jj_consume_token(-1);
 
1832         throw new ParseException();
 
1837   static final public void IncludeStatement() throws ParseException {
 
1838     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1840       jj_consume_token(REQUIRE);
 
1842       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1844         jj_consume_token(SEMICOLON);
 
1847         jj_consume_token(127);
 
1850         jj_la1[62] = jj_gen;
 
1851         jj_consume_token(-1);
 
1852         throw new ParseException();
 
1856       jj_consume_token(REQUIRE_ONCE);
 
1858       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1860         jj_consume_token(SEMICOLON);
 
1863         jj_consume_token(127);
 
1866         jj_la1[63] = jj_gen;
 
1867         jj_consume_token(-1);
 
1868         throw new ParseException();
 
1872       jj_consume_token(INCLUDE);
 
1874       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1876         jj_consume_token(SEMICOLON);
 
1879         jj_consume_token(127);
 
1882         jj_la1[64] = jj_gen;
 
1883         jj_consume_token(-1);
 
1884         throw new ParseException();
 
1888       jj_consume_token(INCLUDE_ONCE);
 
1890       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1892         jj_consume_token(SEMICOLON);
 
1895         jj_consume_token(127);
 
1898         jj_la1[65] = jj_gen;
 
1899         jj_consume_token(-1);
 
1900         throw new ParseException();
 
1904       jj_la1[66] = jj_gen;
 
1905       jj_consume_token(-1);
 
1906       throw new ParseException();
 
1910   static final public String PrintExpression() throws ParseException {
 
1911   StringBuffer buff = new StringBuffer("print ");
 
1913     jj_consume_token(PRINT);
 
1914     expr = Expression();
 
1916     {if (true) return buff.toString();}
 
1917     throw new Error("Missing return statement in function");
 
1920   static final public void EchoStatement() throws ParseException {
 
1921     jj_consume_token(ECHO);
 
1925       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1930         jj_la1[67] = jj_gen;
 
1933       jj_consume_token(COMMA);
 
1937       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1939         jj_consume_token(SEMICOLON);
 
1942         jj_consume_token(127);
 
1945         jj_la1[68] = jj_gen;
 
1946         jj_consume_token(-1);
 
1947         throw new ParseException();
 
1949     } catch (ParseException e) {
 
1950     errorMessage = "';' expected after 'echo' statement";
 
1952     {if (true) throw e;}
 
1956   static final public void GlobalStatement() throws ParseException {
 
1957     jj_consume_token(GLOBAL);
 
1958     VariableDeclaratorId();
 
1961       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1966         jj_la1[69] = jj_gen;
 
1969       jj_consume_token(COMMA);
 
1970       VariableDeclaratorId();
 
1972     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1974       jj_consume_token(SEMICOLON);
 
1977       jj_consume_token(127);
 
1980       jj_la1[70] = jj_gen;
 
1981       jj_consume_token(-1);
 
1982       throw new ParseException();
 
1986   static final public void StaticStatement() throws ParseException {
 
1987     jj_consume_token(STATIC);
 
1988     VariableDeclarator();
 
1991       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
1996         jj_la1[71] = jj_gen;
 
1999       jj_consume_token(COMMA);
 
2000       VariableDeclarator();
 
2002     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
2004       jj_consume_token(SEMICOLON);
 
2007       jj_consume_token(127);
 
2010       jj_la1[72] = jj_gen;
 
2011       jj_consume_token(-1);
 
2012       throw new ParseException();
 
2016   static final public void LabeledStatement() throws ParseException {
 
2017     jj_consume_token(IDENTIFIER);
 
2018     jj_consume_token(COLON);
 
2022   static final public void Block() throws ParseException {
 
2023     jj_consume_token(LBRACE);
 
2026       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
2050       case INTEGER_LITERAL:
 
2051       case FLOATING_POINT_LITERAL:
 
2052       case STRING_LITERAL:
 
2069         jj_la1[73] = jj_gen;
 
2074     jj_consume_token(RBRACE);
 
2077   static final public void BlockStatement() throws ParseException {
 
2078     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
2100     case INTEGER_LITERAL:
 
2101     case FLOATING_POINT_LITERAL:
 
2102     case STRING_LITERAL:
 
2122       MethodDeclaration();
 
2125       jj_la1[74] = jj_gen;
 
2126       jj_consume_token(-1);
 
2127       throw new ParseException();
 
2131   static final public void LocalVariableDeclaration() throws ParseException {
 
2132     VariableDeclarator();
 
2135       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
2140         jj_la1[75] = jj_gen;
 
2143       jj_consume_token(COMMA);
 
2144       VariableDeclarator();
 
2148   static final public void EmptyStatement() throws ParseException {
 
2149     jj_consume_token(SEMICOLON);
 
2152   static final public void StatementExpression() throws ParseException {
 
2153     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
2155       PreIncrementExpression();
 
2158       PreDecrementExpression();
 
2166       PrimaryExpression();
 
2167       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
2181       case RSIGNEDSHIFTASSIGN:
 
2182       case RUNSIGNEDSHIFTASSIGN:
 
2183         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
2185           jj_consume_token(INCR);
 
2188           jj_consume_token(DECR);
 
2201         case RSIGNEDSHIFTASSIGN:
 
2202         case RUNSIGNEDSHIFTASSIGN:
 
2203           AssignmentOperator();
 
2207           jj_la1[76] = jj_gen;
 
2208           jj_consume_token(-1);
 
2209           throw new ParseException();
 
2213         jj_la1[77] = jj_gen;
 
2218       jj_la1[78] = jj_gen;
 
2219       jj_consume_token(-1);
 
2220       throw new ParseException();
 
2224   static final public void SwitchStatement() throws ParseException {
 
2225     jj_consume_token(SWITCH);
 
2226     jj_consume_token(LPAREN);
 
2228     jj_consume_token(RPAREN);
 
2229     jj_consume_token(LBRACE);
 
2232       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
2238         jj_la1[79] = jj_gen;
 
2244         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
2268         case INTEGER_LITERAL:
 
2269         case FLOATING_POINT_LITERAL:
 
2270         case STRING_LITERAL:
 
2287           jj_la1[80] = jj_gen;
 
2293     jj_consume_token(RBRACE);
 
2296   static final public void SwitchLabel() throws ParseException {
 
2297     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
2299       jj_consume_token(CASE);
 
2301       jj_consume_token(COLON);
 
2304       jj_consume_token(_DEFAULT);
 
2305       jj_consume_token(COLON);
 
2308       jj_la1[81] = jj_gen;
 
2309       jj_consume_token(-1);
 
2310       throw new ParseException();
 
2314   static final public void IfStatement() throws ParseException {
 
2315     jj_consume_token(IF);
 
2320       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
2325         jj_la1[82] = jj_gen;
 
2330     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
2332       jj_consume_token(ELSE);
 
2336       jj_la1[83] = jj_gen;
 
2341   static final public void Condition(String keyword) throws ParseException {
 
2343       jj_consume_token(LPAREN);
 
2344     } catch (ParseException e) {
 
2345     errorMessage = "'(' expected after " + keyword + " keyword";
 
2347     {if (true) throw e;}
 
2351       jj_consume_token(RPAREN);
 
2352     } catch (ParseException e) {
 
2353     errorMessage = "')' expected after " + keyword + " keyword";
 
2355     {if (true) throw e;}
 
2359   static final public void ElseIfStatement() throws ParseException {
 
2360     jj_consume_token(ELSEIF);
 
2361     Condition("elseif");
 
2365   static final public void WhileStatement() throws ParseException {
 
2366     jj_consume_token(WHILE);
 
2371   static final public void WhileStatement0() throws ParseException {
 
2372     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
2374       jj_consume_token(COLON);
 
2377         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
2399         case INTEGER_LITERAL:
 
2400         case FLOATING_POINT_LITERAL:
 
2401         case STRING_LITERAL:
 
2418           jj_la1[84] = jj_gen;
 
2423       jj_consume_token(ENDWHILE);
 
2424       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
2426         jj_consume_token(SEMICOLON);
 
2429         jj_consume_token(127);
 
2432         jj_la1[85] = jj_gen;
 
2433         jj_consume_token(-1);
 
2434         throw new ParseException();
 
2458     case INTEGER_LITERAL:
 
2459     case FLOATING_POINT_LITERAL:
 
2460     case STRING_LITERAL:
 
2477       jj_la1[86] = jj_gen;
 
2478       jj_consume_token(-1);
 
2479       throw new ParseException();
 
2483   static final public void DoStatement() throws ParseException {
 
2484     jj_consume_token(DO);
 
2486     jj_consume_token(WHILE);
 
2488     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
2490       jj_consume_token(SEMICOLON);
 
2493       jj_consume_token(127);
 
2496       jj_la1[87] = jj_gen;
 
2497       jj_consume_token(-1);
 
2498       throw new ParseException();
 
2502   static final public void ForStatement() throws ParseException {
 
2503     jj_consume_token(FOR);
 
2504     jj_consume_token(LPAREN);
 
2505     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
2517       jj_la1[88] = jj_gen;
 
2520     jj_consume_token(SEMICOLON);
 
2521     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
2528     case INTEGER_LITERAL:
 
2529     case FLOATING_POINT_LITERAL:
 
2530     case STRING_LITERAL:
 
2545       jj_la1[89] = jj_gen;
 
2548     jj_consume_token(SEMICOLON);
 
2549     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
2561       jj_la1[90] = jj_gen;
 
2564     jj_consume_token(RPAREN);
 
2568   static final public void ForInit() throws ParseException {
 
2569     if (jj_2_7(2147483647)) {
 
2570       LocalVariableDeclaration();
 
2572       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
2581         StatementExpressionList();
 
2584         jj_la1[91] = jj_gen;
 
2585         jj_consume_token(-1);
 
2586         throw new ParseException();
 
2591   static final public void StatementExpressionList() throws ParseException {
 
2592     StatementExpression();
 
2595       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
2600         jj_la1[92] = jj_gen;
 
2603       jj_consume_token(COMMA);
 
2604       StatementExpression();
 
2608   static final public void ForUpdate() throws ParseException {
 
2609     StatementExpressionList();
 
2612   static final public void BreakStatement() throws ParseException {
 
2613     jj_consume_token(BREAK);
 
2614     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
2616       jj_consume_token(IDENTIFIER);
 
2619       jj_la1[93] = jj_gen;
 
2622     jj_consume_token(SEMICOLON);
 
2625   static final public void ContinueStatement() throws ParseException {
 
2626     jj_consume_token(CONTINUE);
 
2627     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
2629       jj_consume_token(IDENTIFIER);
 
2632       jj_la1[94] = jj_gen;
 
2635     jj_consume_token(SEMICOLON);
 
2638   static final public void ReturnStatement() throws ParseException {
 
2639     jj_consume_token(RETURN);
 
2640     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
 
2647     case INTEGER_LITERAL:
 
2648     case FLOATING_POINT_LITERAL:
 
2649     case STRING_LITERAL:
 
2664       jj_la1[95] = jj_gen;
 
2667     jj_consume_token(SEMICOLON);
 
2670   static final private boolean jj_2_1(int xla) {
 
2671     jj_la = xla; jj_lastpos = jj_scanpos = token;
 
2672     boolean retval = !jj_3_1();
 
2677   static final private boolean jj_2_2(int xla) {
 
2678     jj_la = xla; jj_lastpos = jj_scanpos = token;
 
2679     boolean retval = !jj_3_2();
 
2684   static final private boolean jj_2_3(int xla) {
 
2685     jj_la = xla; jj_lastpos = jj_scanpos = token;
 
2686     boolean retval = !jj_3_3();
 
2691   static final private boolean jj_2_4(int xla) {
 
2692     jj_la = xla; jj_lastpos = jj_scanpos = token;
 
2693     boolean retval = !jj_3_4();
 
2698   static final private boolean jj_2_5(int xla) {
 
2699     jj_la = xla; jj_lastpos = jj_scanpos = token;
 
2700     boolean retval = !jj_3_5();
 
2705   static final private boolean jj_2_6(int xla) {
 
2706     jj_la = xla; jj_lastpos = jj_scanpos = token;
 
2707     boolean retval = !jj_3_6();
 
2712   static final private boolean jj_2_7(int xla) {
 
2713     jj_la = xla; jj_lastpos = jj_scanpos = token;
 
2714     boolean retval = !jj_3_7();
 
2719   static final private boolean jj_3R_43() {
 
2720     if (jj_scan_token(BOOL)) return true;
 
2721     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2725   static final private boolean jj_3R_135() {
 
2736     if (jj_3R_141()) return true;
 
2737     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2738     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2739     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2740     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2741     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2745   static final private boolean jj_3R_137() {
 
2746     if (jj_scan_token(BANG)) return true;
 
2747     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2748     if (jj_3R_119()) return true;
 
2749     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2753   static final private boolean jj_3R_34() {
 
2770     if (jj_3R_49()) return true;
 
2771     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2772     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2773     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2774     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2775     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2776     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2777     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2778     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2782   static final private boolean jj_3R_42() {
 
2783     if (jj_scan_token(STRING)) return true;
 
2784     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2788   static final private boolean jj_3R_132() {
 
2789     if (jj_scan_token(MINUS)) return true;
 
2790     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2794   static final private boolean jj_3R_134() {
 
2795     if (jj_scan_token(DECR)) return true;
 
2796     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2797     if (jj_3R_136()) return true;
 
2798     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2802   static final private boolean jj_3R_53() {
 
2803     if (jj_scan_token(COMMA)) return true;
 
2804     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2805     if (jj_3R_52()) return true;
 
2806     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2810   static final private boolean jj_3R_130() {
 
2811     if (jj_scan_token(REM)) return true;
 
2812     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2816   static final private boolean jj_3R_133() {
 
2817     if (jj_scan_token(INCR)) return true;
 
2818     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2819     if (jj_3R_136()) return true;
 
2820     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2824   static final private boolean jj_3R_127() {
 
2825     if (jj_3R_135()) return true;
 
2826     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2830   static final private boolean jj_3R_126() {
 
2831     if (jj_3R_134()) return true;
 
2832     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2836   static final private boolean jj_3R_125() {
 
2837     if (jj_3R_133()) return true;
 
2838     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2842   static final private boolean jj_3R_129() {
 
2843     if (jj_scan_token(SLASH)) return true;
 
2844     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2848   static final private boolean jj_3R_39() {
 
2849     if (jj_3R_52()) return true;
 
2850     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2854       if (jj_3R_53()) { jj_scanpos = xsp; break; }
 
2855       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2860   static final private boolean jj_3R_131() {
 
2861     if (jj_scan_token(PLUS)) return true;
 
2862     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2866   static final private boolean jj_3R_124() {
 
2871     if (jj_3R_132()) return true;
 
2872     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2873     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2874     if (jj_3R_119()) return true;
 
2875     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2879   static final private boolean jj_3R_119() {
 
2890     if (jj_3R_127()) return true;
 
2891     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2892     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2893     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2894     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2895     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2899   static final private boolean jj_3R_123() {
 
2900     if (jj_scan_token(AT)) return true;
 
2901     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2902     if (jj_3R_119()) return true;
 
2903     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2907   static final private boolean jj_3R_118() {
 
2908     if (jj_scan_token(RUNSIGNEDSHIFT)) return true;
 
2909     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2913   static final private boolean jj_3R_122() {
 
2914     if (jj_scan_token(MINUS)) return true;
 
2915     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2919   static final private boolean jj_3R_128() {
 
2920     if (jj_scan_token(STAR)) return true;
 
2921     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2925   static final private boolean jj_3R_120() {
 
2932     if (jj_3R_130()) return true;
 
2933     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2934     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2935     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2936     if (jj_3R_119()) return true;
 
2937     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2941   static final private boolean jj_3R_38() {
 
2942     if (jj_scan_token(IDENTIFIER)) return true;
 
2943     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2944     if (jj_scan_token(COLON)) return true;
 
2945     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2949   static final private boolean jj_3R_113() {
 
2950     if (jj_scan_token(GE)) return true;
 
2951     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2955   static final private boolean jj_3R_114() {
 
2956     if (jj_3R_119()) return true;
 
2957     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2961       if (jj_3R_120()) { jj_scanpos = xsp; break; }
 
2962       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2967   static final private boolean jj_3_2() {
 
2968     if (jj_scan_token(COMMA)) return true;
 
2969     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2970     if (jj_3R_33()) return true;
 
2971     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2975   static final private boolean jj_3R_174() {
 
2976     if (jj_3R_33()) return true;
 
2977     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2981       if (jj_3_2()) { jj_scanpos = xsp; break; }
 
2982       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2987   static final private boolean jj_3R_117() {
 
2988     if (jj_scan_token(RSIGNEDSHIFT)) return true;
 
2989     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2993   static final private boolean jj_3R_121() {
 
2994     if (jj_scan_token(PLUS)) return true;
 
2995     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
2999   static final private boolean jj_3R_115() {
 
3004     if (jj_3R_122()) return true;
 
3005     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3006     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3007     if (jj_3R_114()) return true;
 
3008     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3012   static final private boolean jj_3R_112() {
 
3013     if (jj_scan_token(LE)) return true;
 
3014     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3018   static final private boolean jj_3R_163() {
 
3019     if (jj_scan_token(LPAREN)) return true;
 
3020     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3023     if (jj_3R_174()) jj_scanpos = xsp;
 
3024     else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3025     if (jj_scan_token(RPAREN)) return true;
 
3026     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3030   static final private boolean jj_3R_108() {
 
3031     if (jj_3R_114()) return true;
 
3032     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3036       if (jj_3R_115()) { jj_scanpos = xsp; break; }
 
3037       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3042   static final private boolean jj_3R_175() {
 
3043     if (jj_scan_token(ARRAYASSIGN)) return true;
 
3044     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3045     if (jj_3R_35()) return true;
 
3046     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3050   static final private boolean jj_3R_33() {
 
3051     if (jj_3R_35()) return true;
 
3052     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3055     if (jj_3R_175()) jj_scanpos = xsp;
 
3056     else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3060   static final private boolean jj_3R_56() {
 
3061     if (jj_scan_token(PRINT)) return true;
 
3062     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3063     if (jj_3R_35()) return true;
 
3064     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3068   static final private boolean jj_3R_116() {
 
3069     if (jj_scan_token(LSHIFT)) return true;
 
3070     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3074   static final private boolean jj_3R_97() {
 
3075     if (jj_scan_token(LBRACE)) return true;
 
3076     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3077     if (jj_3R_35()) return true;
 
3078     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3079     if (jj_scan_token(RBRACE)) return true;
 
3080     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3084   static final private boolean jj_3R_109() {
 
3091     if (jj_3R_118()) return true;
 
3092     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3093     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3094     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3095     if (jj_3R_108()) return true;
 
3096     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3100   static final private boolean jj_3R_111() {
 
3101     if (jj_scan_token(GT)) return true;
 
3102     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3106   static final private boolean jj_3R_104() {
 
3107     if (jj_3R_108()) return true;
 
3108     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3112       if (jj_3R_109()) { jj_scanpos = xsp; break; }
 
3113       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3118   static final private boolean jj_3R_68() {
 
3119     if (jj_3R_35()) return true;
 
3120     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3124   static final private boolean jj_3R_63() {
 
3125     if (jj_scan_token(DOLLAR)) return true;
 
3126     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3127     if (jj_3R_54()) return true;
 
3128     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3132   static final private boolean jj_3R_110() {
 
3133     if (jj_scan_token(LT)) return true;
 
3134     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3138   static final private boolean jj_3R_105() {
 
3147     if (jj_3R_113()) return true;
 
3148     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3149     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3150     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3151     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3152     if (jj_3R_104()) return true;
 
3153     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3157   static final private boolean jj_3R_107() {
 
3158     if (jj_scan_token(NE)) return true;
 
3159     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3163   static final private boolean jj_3R_90() {
 
3164     if (jj_scan_token(LBRACE)) return true;
 
3165     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3166     if (jj_3R_35()) return true;
 
3167     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3168     if (jj_scan_token(RBRACE)) return true;
 
3169     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3173   static final private boolean jj_3R_62() {
 
3174     if (jj_scan_token(IDENTIFIER)) return true;
 
3175     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3178     if (jj_3R_97()) jj_scanpos = xsp;
 
3179     else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3183   static final private boolean jj_3R_102() {
 
3184     if (jj_3R_104()) return true;
 
3185     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3189       if (jj_3R_105()) { jj_scanpos = xsp; break; }
 
3190       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3195   static final private boolean jj_3R_61() {
 
3196     if (jj_scan_token(LBRACE)) return true;
 
3197     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3198     if (jj_3R_35()) return true;
 
3199     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3200     if (jj_scan_token(RBRACE)) return true;
 
3201     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3205   static final private boolean jj_3R_54() {
 
3212     if (jj_3R_63()) return true;
 
3213     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3214     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3215     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3219   static final private boolean jj_3R_37() {
 
3220     if (jj_scan_token(127)) return true;
 
3221     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3225   static final private boolean jj_3R_85() {
 
3226     if (jj_scan_token(DOLLAR)) return true;
 
3227     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3228     if (jj_3R_54()) return true;
 
3229     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3233   static final private boolean jj_3R_106() {
 
3234     if (jj_scan_token(EQ)) return true;
 
3235     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3239   static final private boolean jj_3R_103() {
 
3244     if (jj_3R_107()) return true;
 
3245     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3246     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3247     if (jj_3R_102()) return true;
 
3248     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3252   static final private boolean jj_3R_36() {
 
3253     if (jj_scan_token(SEMICOLON)) return true;
 
3254     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3258   static final private boolean jj_3R_84() {
 
3259     if (jj_scan_token(DOLLAR_ID)) return true;
 
3260     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3263     if (jj_3R_90()) jj_scanpos = xsp;
 
3264     else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3268   static final private boolean jj_3R_67() {
 
3273     if (jj_3R_85()) return true;
 
3274     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3275     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3279   static final private boolean jj_3R_100() {
 
3280     if (jj_3R_102()) return true;
 
3281     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3285       if (jj_3R_103()) { jj_scanpos = xsp; break; }
 
3286       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3291   static final private boolean jj_3_1() {
 
3292     if (jj_3R_32()) return true;
 
3293     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3297   static final private boolean jj_3_6() {
 
3298     if (jj_3R_38()) return true;
 
3299     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3303   static final private boolean jj_3R_59() {
 
3304     if (jj_3R_67()) return true;
 
3305     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3309       if (jj_3_1()) { jj_scanpos = xsp; break; }
 
3310       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3315   static final private boolean jj_3_5() {
 
3316     if (jj_3R_35()) return true;
 
3317     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3322     if (jj_3R_37()) return true;
 
3323     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3324     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3328   static final private boolean jj_3R_101() {
 
3329     if (jj_scan_token(BIT_AND)) return true;
 
3330     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3331     if (jj_3R_100()) return true;
 
3332     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3336   static final private boolean jj_3R_60() {
 
3337     if (jj_scan_token(ASSIGN)) return true;
 
3338     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3339     if (jj_3R_68()) return true;
 
3340     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3344   static final private boolean jj_3R_98() {
 
3345     if (jj_3R_100()) return true;
 
3346     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3350       if (jj_3R_101()) { jj_scanpos = xsp; break; }
 
3351       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3356   static final private boolean jj_3R_52() {
 
3357     if (jj_3R_59()) return true;
 
3358     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3361     if (jj_3R_60()) jj_scanpos = xsp;
 
3362     else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3366   static final private boolean jj_3R_178() {
 
3367     if (jj_scan_token(COMMA)) return true;
 
3368     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3369     if (jj_3R_35()) return true;
 
3370     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3374   static final private boolean jj_3R_177() {
 
3375     if (jj_3R_35()) return true;
 
3376     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3380       if (jj_3R_178()) { jj_scanpos = xsp; break; }
 
3381       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3386   static final private boolean jj_3R_99() {
 
3387     if (jj_scan_token(XOR)) return true;
 
3388     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3389     if (jj_3R_98()) return true;
 
3390     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3394   static final private boolean jj_3R_95() {
 
3395     if (jj_3R_98()) return true;
 
3396     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3400       if (jj_3R_99()) { jj_scanpos = xsp; break; }
 
3401       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3406   static final private boolean jj_3R_176() {
 
3407     if (jj_3R_177()) return true;
 
3408     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3412   static final private boolean jj_3R_173() {
 
3413     if (jj_scan_token(LPAREN)) return true;
 
3414     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3417     if (jj_3R_176()) jj_scanpos = xsp;
 
3418     else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3419     if (jj_scan_token(RPAREN)) return true;
 
3420     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3424   static final private boolean jj_3R_96() {
 
3425     if (jj_scan_token(BIT_OR)) return true;
 
3426     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3427     if (jj_3R_95()) return true;
 
3428     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3432   static final private boolean jj_3R_91() {
 
3433     if (jj_3R_95()) return true;
 
3434     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3438       if (jj_3R_96()) { jj_scanpos = xsp; break; }
 
3439       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3444   static final private boolean jj_3R_160() {
 
3445     if (jj_scan_token(NULL)) return true;
 
3446     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3450   static final private boolean jj_3R_165() {
 
3451     if (jj_scan_token(FALSE)) return true;
 
3452     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3456   static final private boolean jj_3R_159() {
 
3461     if (jj_3R_165()) return true;
 
3462     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3463     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3467   static final private boolean jj_3R_164() {
 
3468     if (jj_scan_token(TRUE)) return true;
 
3469     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3473   static final private boolean jj_3R_153() {
 
3474     if (jj_3R_160()) return true;
 
3475     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3479   static final private boolean jj_3R_94() {
 
3480     if (jj_scan_token(_ANDL)) return true;
 
3481     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3485   static final private boolean jj_3R_92() {
 
3486     if (jj_scan_token(DOT)) return true;
 
3487     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3488     if (jj_3R_91()) return true;
 
3489     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3493   static final private boolean jj_3R_152() {
 
3494     if (jj_3R_159()) return true;
 
3495     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3499   static final private boolean jj_3R_86() {
 
3500     if (jj_3R_91()) return true;
 
3501     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3505       if (jj_3R_92()) { jj_scanpos = xsp; break; }
 
3506       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3511   static final private boolean jj_3R_151() {
 
3512     if (jj_scan_token(STRING_LITERAL)) return true;
 
3513     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3517   static final private boolean jj_3R_150() {
 
3518     if (jj_scan_token(FLOATING_POINT_LITERAL)) return true;
 
3519     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3523   static final private boolean jj_3R_146() {
 
3534     if (jj_3R_153()) return true;
 
3535     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3536     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3537     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3538     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3539     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3543   static final private boolean jj_3R_149() {
 
3544     if (jj_scan_token(INTEGER_LITERAL)) return true;
 
3545     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3549   static final private boolean jj_3R_55() {
 
3550     if (jj_3R_35()) return true;
 
3551     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3555   static final private boolean jj_3R_93() {
 
3556     if (jj_scan_token(SC_AND)) return true;
 
3557     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3561   static final private boolean jj_3R_89() {
 
3562     if (jj_scan_token(_ORL)) return true;
 
3563     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3567   static final private boolean jj_3R_87() {
 
3572     if (jj_3R_94()) return true;
 
3573     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3574     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3575     if (jj_3R_86()) return true;
 
3576     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3580   static final private boolean jj_3R_69() {
 
3581     if (jj_3R_86()) return true;
 
3582     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3586       if (jj_3R_87()) { jj_scanpos = xsp; break; }
 
3587       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3592   static final private boolean jj_3R_41() {
 
3593     if (jj_scan_token(LBRACKET)) return true;
 
3594     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3597     if (jj_3R_55()) jj_scanpos = xsp;
 
3598     else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3599     if (jj_scan_token(RBRACKET)) return true;
 
3600     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3604   static final private boolean jj_3R_65() {
 
3605     if (jj_scan_token(HOOK)) return true;
 
3606     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3607     if (jj_3R_35()) return true;
 
3608     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3609     if (jj_scan_token(COLON)) return true;
 
3610     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3611     if (jj_3R_57()) return true;
 
3612     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3616   static final private boolean jj_3R_40() {
 
3617     if (jj_scan_token(CLASSACCESS)) return true;
 
3618     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3619     if (jj_3R_54()) return true;
 
3620     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3624   static final private boolean jj_3R_32() {
 
3629     if (jj_3R_41()) return true;
 
3630     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3631     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3635   static final private boolean jj_3R_169() {
 
3636     if (jj_3R_32()) return true;
 
3637     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3641   static final private boolean jj_3R_88() {
 
3642     if (jj_scan_token(SC_OR)) return true;
 
3643     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3647   static final private boolean jj_3R_70() {
 
3652     if (jj_3R_89()) return true;
 
3653     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3654     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3655     if (jj_3R_69()) return true;
 
3656     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3660   static final private boolean jj_3R_168() {
 
3661     if (jj_3R_173()) return true;
 
3662     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3666   static final private boolean jj_3R_166() {
 
3671     if (jj_3R_169()) return true;
 
3672     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3673     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3677   static final private boolean jj_3R_64() {
 
3678     if (jj_3R_69()) return true;
 
3679     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3683       if (jj_3R_70()) { jj_scanpos = xsp; break; }
 
3684       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3689   static final private boolean jj_3R_172() {
 
3690     if (jj_3R_59()) return true;
 
3691     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3695   static final private boolean jj_3R_171() {
 
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_167() {
 
3706     if (jj_3R_172()) return true;
 
3707     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3708     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3712   static final private boolean jj_3_7() {
 
3713     if (jj_3R_39()) return true;
 
3714     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3718   static final private boolean jj_3R_156() {
 
3719     if (jj_3R_59()) return true;
 
3720     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3724   static final private boolean jj_3R_57() {
 
3725     if (jj_3R_64()) return true;
 
3726     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3729     if (jj_3R_65()) jj_scanpos = xsp;
 
3730     else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3734   static final private boolean jj_3R_158() {
 
3735     if (jj_scan_token(DECR)) return true;
 
3736     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3740   static final private boolean jj_3R_161() {
 
3741     if (jj_scan_token(BIT_AND)) return true;
 
3742     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3746   static final private boolean jj_3R_155() {
 
3749     if (jj_3R_161()) jj_scanpos = xsp;
 
3750     else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3751     if (jj_scan_token(NEW)) return true;
 
3752     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3753     if (jj_3R_167()) return true;
 
3754     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3758   static final private boolean jj_3R_147() {
 
3765     if (jj_3R_156()) return true;
 
3766     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3767     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3768     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3772   static final private boolean jj_3R_154() {
 
3773     if (jj_scan_token(IDENTIFIER)) return true;
 
3774     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3778   static final private boolean jj_3R_83() {
 
3779     if (jj_scan_token(DOTASSIGN)) return true;
 
3780     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3784   static final private boolean jj_3R_82() {
 
3785     if (jj_scan_token(ORASSIGN)) return true;
 
3786     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3790   static final private boolean jj_3R_81() {
 
3791     if (jj_scan_token(XORASSIGN)) return true;
 
3792     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3796   static final private boolean jj_3R_80() {
 
3797     if (jj_scan_token(ANDASSIGN)) return true;
 
3798     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3802   static final private boolean jj_3R_79() {
 
3803     if (jj_scan_token(RUNSIGNEDSHIFTASSIGN)) return true;
 
3804     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3808   static final private boolean jj_3R_143() {
 
3809     if (jj_scan_token(ARRAY)) return true;
 
3810     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3811     if (jj_3R_163()) return true;
 
3812     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3816   static final private boolean jj_3R_78() {
 
3817     if (jj_scan_token(RSIGNEDSHIFTASSIGN)) return true;
 
3818     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3822   static final private boolean jj_3R_77() {
 
3823     if (jj_scan_token(LSHIFTASSIGN)) return true;
 
3824     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3828   static final private boolean jj_3R_148() {
 
3833     if (jj_3R_158()) return true;
 
3834     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3835     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3839   static final private boolean jj_3R_157() {
 
3840     if (jj_scan_token(INCR)) return true;
 
3841     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3845   static final private boolean jj_3R_76() {
 
3846     if (jj_scan_token(MINUSASSIGN)) return true;
 
3847     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3851   static final private boolean jj_3R_162() {
 
3852     if (jj_3R_166()) return true;
 
3853     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3857   static final private boolean jj_3R_75() {
 
3858     if (jj_scan_token(PLUSASSIGN)) return true;
 
3859     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3863   static final private boolean jj_3R_142() {
 
3864     if (jj_3R_147()) return true;
 
3865     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3869       if (jj_3R_162()) { jj_scanpos = xsp; break; }
 
3870       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3875   static final private boolean jj_3R_74() {
 
3876     if (jj_scan_token(REMASSIGN)) return true;
 
3877     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3881   static final private boolean jj_3R_73() {
 
3882     if (jj_scan_token(SLASHASSIGN)) return true;
 
3883     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3887   static final private boolean jj_3R_170() {
 
3888     if (jj_3R_166()) return true;
 
3889     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3893   static final private boolean jj_3R_72() {
 
3894     if (jj_scan_token(STARASSIGN)) return true;
 
3895     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3899   static final private boolean jj_3R_71() {
 
3900     if (jj_scan_token(ASSIGN)) return true;
 
3901     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3905   static final private boolean jj_3R_66() {
 
3932     if (jj_3R_83()) return true;
 
3933     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3934     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3935     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3936     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3937     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3938     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3939     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3940     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3941     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3942     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3943     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3944     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3945     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3949   static final private boolean jj_3_4() {
 
3950     if (jj_scan_token(IDENTIFIER)) return true;
 
3951     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3952     if (jj_scan_token(STATICCLASSACCESS)) return true;
 
3953     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3954     if (jj_3R_167()) return true;
 
3955     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3959       if (jj_3R_170()) { jj_scanpos = xsp; break; }
 
3960       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3965   static final private boolean jj_3R_136() {
 
3972     if (jj_3R_143()) return true;
 
3973     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3974     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3975     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3979   static final private boolean jj_3R_58() {
 
3980     if (jj_3R_66()) return true;
 
3981     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3982     if (jj_3R_35()) return true;
 
3983     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3987   static final private boolean jj_3R_145() {
 
3988     if (jj_3R_136()) return true;
 
3989     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3992     if (jj_3R_148()) jj_scanpos = xsp;
 
3993     else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
3997   static final private boolean jj_3R_51() {
 
3998     if (jj_3R_57()) return true;
 
3999     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4002     if (jj_3R_58()) jj_scanpos = xsp;
 
4003     else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4007   static final private boolean jj_3R_35() {
 
4012     if (jj_3R_51()) return true;
 
4013     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4014     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4018   static final private boolean jj_3R_50() {
 
4019     if (jj_3R_56()) return true;
 
4020     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4024   static final private boolean jj_3R_144() {
 
4025     if (jj_scan_token(LPAREN)) return true;
 
4026     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4027     if (jj_3R_34()) return true;
 
4028     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4029     if (jj_scan_token(RPAREN)) return true;
 
4030     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4031     if (jj_3R_119()) return true;
 
4032     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4036   static final private boolean jj_3R_49() {
 
4037     if (jj_scan_token(INTEGER)) return true;
 
4038     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4042   static final private boolean jj_3R_48() {
 
4043     if (jj_scan_token(INT)) return true;
 
4044     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4048   static final private boolean jj_3_3() {
 
4049     if (jj_scan_token(LPAREN)) return true;
 
4050     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4051     if (jj_3R_34()) return true;
 
4052     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4053     if (jj_scan_token(RPAREN)) return true;
 
4054     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4058   static final private boolean jj_3R_141() {
 
4059     if (jj_scan_token(LPAREN)) return true;
 
4060     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4061     if (jj_3R_35()) return true;
 
4062     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4063     if (jj_scan_token(RPAREN)) return true;
 
4064     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4068   static final private boolean jj_3R_47() {
 
4069     if (jj_scan_token(FLOAT)) return true;
 
4070     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4074   static final private boolean jj_3R_140() {
 
4075     if (jj_3R_146()) return true;
 
4076     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4080   static final private boolean jj_3R_46() {
 
4081     if (jj_scan_token(DOUBLE)) return true;
 
4082     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4086   static final private boolean jj_3R_139() {
 
4087     if (jj_3R_145()) return true;
 
4088     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4092   static final private boolean jj_3R_45() {
 
4093     if (jj_scan_token(REAL)) return true;
 
4094     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4098   static final private boolean jj_3R_44() {
 
4099     if (jj_scan_token(BOOLEAN)) return true;
 
4100     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4104   static final private boolean jj_3R_138() {
 
4105     if (jj_3R_144()) return true;
 
4106     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
 
4110   static private boolean jj_initialized_once = false;
 
4111   static public PHPParserTokenManager token_source;
 
4112   static SimpleCharStream jj_input_stream;
 
4113   static public Token token, jj_nt;
 
4114   static private int jj_ntk;
 
4115   static private Token jj_scanpos, jj_lastpos;
 
4116   static private int jj_la;
 
4117   static public boolean lookingAhead = false;
 
4118   static private boolean jj_semLA;
 
4119   static private int jj_gen;
 
4120   static final private int[] jj_la1 = new int[96];
 
4121   static final private int[] jj_la1_0 = {0x2,0x7fcb0000,0x0,0x60000,0x60000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc00000,0x0,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,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,};
 
4122   static final private int[] jj_la1_1 = {0x0,0xd76a4,0x100,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2,0x43200,0x0,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,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,};
 
4123   static final private int[] jj_la1_2 = {0x0,0x11914451,0x0,0x0,0x0,0x200000,0x2000000,0x10000,0x1000000,0x10000,0x1010400,0x0,0x11804451,0x110000,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,0x1110400,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,};
 
4124   static final private int[] jj_la1_3 = {0x0,0x400009e0,0x0,0x0,0x0,0x0,0x0,0x0,0x40000000,0x0,0x0,0x0,0x400009e0,0x0,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,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,};
 
4125   static final private JJCalls[] jj_2_rtns = new JJCalls[7];
 
4126   static private boolean jj_rescan = false;
 
4127   static private int jj_gc = 0;
 
4129   public PHPParser(java.io.InputStream stream) {
 
4130     if (jj_initialized_once) {
 
4131       System.out.println("ERROR: Second call to constructor of static parser.  You must");
 
4132       System.out.println("       either use ReInit() or set the JavaCC option STATIC to false");
 
4133       System.out.println("       during parser generation.");
 
4136     jj_initialized_once = true;
 
4137     jj_input_stream = new SimpleCharStream(stream, 1, 1);
 
4138     token_source = new PHPParserTokenManager(jj_input_stream);
 
4139     token = new Token();
 
4142     for (int i = 0; i < 96; i++) jj_la1[i] = -1;
 
4143     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
 
4146   static public void ReInit(java.io.InputStream stream) {
 
4147     jj_input_stream.ReInit(stream, 1, 1);
 
4148     token_source.ReInit(jj_input_stream);
 
4149     token = new Token();
 
4152     for (int i = 0; i < 96; i++) jj_la1[i] = -1;
 
4153     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
 
4156   public PHPParser(java.io.Reader stream) {
 
4157     if (jj_initialized_once) {
 
4158       System.out.println("ERROR: Second call to constructor of static parser.  You must");
 
4159       System.out.println("       either use ReInit() or set the JavaCC option STATIC to false");
 
4160       System.out.println("       during parser generation.");
 
4163     jj_initialized_once = true;
 
4164     jj_input_stream = new SimpleCharStream(stream, 1, 1);
 
4165     token_source = new PHPParserTokenManager(jj_input_stream);
 
4166     token = new Token();
 
4169     for (int i = 0; i < 96; i++) jj_la1[i] = -1;
 
4170     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
 
4173   static public void ReInit(java.io.Reader stream) {
 
4174     jj_input_stream.ReInit(stream, 1, 1);
 
4175     token_source.ReInit(jj_input_stream);
 
4176     token = new Token();
 
4179     for (int i = 0; i < 96; i++) jj_la1[i] = -1;
 
4180     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
 
4183   public PHPParser(PHPParserTokenManager tm) {
 
4184     if (jj_initialized_once) {
 
4185       System.out.println("ERROR: Second call to constructor of static parser.  You must");
 
4186       System.out.println("       either use ReInit() or set the JavaCC option STATIC to false");
 
4187       System.out.println("       during parser generation.");
 
4190     jj_initialized_once = true;
 
4192     token = new Token();
 
4195     for (int i = 0; i < 96; i++) jj_la1[i] = -1;
 
4196     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
 
4199   public void ReInit(PHPParserTokenManager tm) {
 
4201     token = new Token();
 
4204     for (int i = 0; i < 96; i++) jj_la1[i] = -1;
 
4205     for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
 
4208   static final private Token jj_consume_token(int kind) throws ParseException {
 
4210     if ((oldToken = token).next != null) token = token.next;
 
4211     else token = token.next = token_source.getNextToken();
 
4213     if (token.kind == kind) {
 
4215       if (++jj_gc > 100) {
 
4217         for (int i = 0; i < jj_2_rtns.length; i++) {
 
4218           JJCalls c = jj_2_rtns[i];
 
4220             if (c.gen < jj_gen) c.first = null;
 
4229     throw generateParseException();
 
4232   static final private boolean jj_scan_token(int kind) {
 
4233     if (jj_scanpos == jj_lastpos) {
 
4235       if (jj_scanpos.next == null) {
 
4236         jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken();
 
4238         jj_lastpos = jj_scanpos = jj_scanpos.next;
 
4241       jj_scanpos = jj_scanpos.next;
 
4244       int i = 0; Token tok = token;
 
4245       while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; }
 
4246       if (tok != null) jj_add_error_token(kind, i);
 
4248     return (jj_scanpos.kind != kind);
 
4251   static final public Token getNextToken() {
 
4252     if (token.next != null) token = token.next;
 
4253     else token = token.next = token_source.getNextToken();
 
4259   static final public Token getToken(int index) {
 
4260     Token t = lookingAhead ? jj_scanpos : token;
 
4261     for (int i = 0; i < index; i++) {
 
4262       if (t.next != null) t = t.next;
 
4263       else t = t.next = token_source.getNextToken();
 
4268   static final private int jj_ntk() {
 
4269     if ((jj_nt=token.next) == null)
 
4270       return (jj_ntk = (token.next=token_source.getNextToken()).kind);
 
4272       return (jj_ntk = jj_nt.kind);
 
4275   static private java.util.Vector jj_expentries = new java.util.Vector();
 
4276   static private int[] jj_expentry;
 
4277   static private int jj_kind = -1;
 
4278   static private int[] jj_lasttokens = new int[100];
 
4279   static private int jj_endpos;
 
4281   static private void jj_add_error_token(int kind, int pos) {
 
4282     if (pos >= 100) return;
 
4283     if (pos == jj_endpos + 1) {
 
4284       jj_lasttokens[jj_endpos++] = kind;
 
4285     } else if (jj_endpos != 0) {
 
4286       jj_expentry = new int[jj_endpos];
 
4287       for (int i = 0; i < jj_endpos; i++) {
 
4288         jj_expentry[i] = jj_lasttokens[i];
 
4290       boolean exists = false;
 
4291       for (java.util.Enumeration enum = jj_expentries.elements(); enum.hasMoreElements();) {
 
4292         int[] oldentry = (int[])(enum.nextElement());
 
4293         if (oldentry.length == jj_expentry.length) {
 
4295           for (int i = 0; i < jj_expentry.length; i++) {
 
4296             if (oldentry[i] != jj_expentry[i]) {
 
4304       if (!exists) jj_expentries.addElement(jj_expentry);
 
4305       if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind;
 
4309   static final public ParseException generateParseException() {
 
4310     jj_expentries.removeAllElements();
 
4311     boolean[] la1tokens = new boolean[128];
 
4312     for (int i = 0; i < 128; i++) {
 
4313       la1tokens[i] = false;
 
4316       la1tokens[jj_kind] = true;
 
4319     for (int i = 0; i < 96; i++) {
 
4320       if (jj_la1[i] == jj_gen) {
 
4321         for (int j = 0; j < 32; j++) {
 
4322           if ((jj_la1_0[i] & (1<<j)) != 0) {
 
4323             la1tokens[j] = true;
 
4325           if ((jj_la1_1[i] & (1<<j)) != 0) {
 
4326             la1tokens[32+j] = true;
 
4328           if ((jj_la1_2[i] & (1<<j)) != 0) {
 
4329             la1tokens[64+j] = true;
 
4331           if ((jj_la1_3[i] & (1<<j)) != 0) {
 
4332             la1tokens[96+j] = true;
 
4337     for (int i = 0; i < 128; i++) {
 
4339         jj_expentry = new int[1];
 
4341         jj_expentries.addElement(jj_expentry);
 
4346     jj_add_error_token(0, 0);
 
4347     int[][] exptokseq = new int[jj_expentries.size()][];
 
4348     for (int i = 0; i < jj_expentries.size(); i++) {
 
4349       exptokseq[i] = (int[])jj_expentries.elementAt(i);
 
4351     return new ParseException(token, exptokseq, tokenImage);
 
4354   static final public void enable_tracing() {
 
4357   static final public void disable_tracing() {
 
4360   static final private void jj_rescan_token() {
 
4362     for (int i = 0; i < 7; i++) {
 
4363       JJCalls p = jj_2_rtns[i];
 
4365         if (p.gen > jj_gen) {
 
4366           jj_la = p.arg; jj_lastpos = jj_scanpos = p.first;
 
4368             case 0: jj_3_1(); break;
 
4369             case 1: jj_3_2(); break;
 
4370             case 2: jj_3_3(); break;
 
4371             case 3: jj_3_4(); break;
 
4372             case 4: jj_3_5(); break;
 
4373             case 5: jj_3_6(); break;
 
4374             case 6: jj_3_7(); break;
 
4378       } while (p != null);
 
4383   static final private void jj_save(int index, int xla) {
 
4384     JJCalls p = jj_2_rtns[index];
 
4385     while (p.gen > jj_gen) {
 
4386       if (p.next == null) { p = p.next = new JJCalls(); break; }
 
4389     p.gen = jj_gen + xla - jj_la; p.first = token; p.arg = xla;
 
4392   static final class JJCalls {