*** empty log message ***
authorkpouer <kpouer>
Fri, 11 Apr 2003 15:03:01 +0000 (15:03 +0000)
committerkpouer <kpouer>
Fri, 11 Apr 2003 15:03:01 +0000 (15:03 +0000)
net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/Class.java
net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/parser/PHPSegment.java
net.sourceforge.phpeclipse/src/test/PHPParser.java
net.sourceforge.phpeclipse/src/test/PHPParser.jj
net.sourceforge.phpeclipse/src/test/PHPParserTokenManager.java

index cad94c9..2d58b82 100644 (file)
@@ -16,12 +16,12 @@ public class Class extends AstNode {
   public VariableDeclaration[] fields;
 
   public int declarationSourceStart;
-       public int declarationSourceEnd;
-       public int bodyStart;
-       public int bodyEnd;
-
+  public int declarationSourceEnd;
+  public int bodyStart;
+  public int bodyEnd;
+  /** The methods of the class. */
   public MethodDeclaration[] methods;
-
+  /** The constructor of the class. */
   public MethodDeclaration constructor;
 
   /**
@@ -32,40 +32,53 @@ public class Class extends AstNode {
     return constructor != null;
   }
 
-       public String toString(int tab) {
-
-               return tabString(tab) + toStringHeader() + toStringBody(tab);
-       }
+  /**
+   * Return the class as String.
+   * @param tab how many tabs before the class
+   * @return the code of this class into String
+   */
+  public String toString(int tab) {
+    return tabString(tab) + toStringHeader() + toStringBody(tab);
+  }
 
-       public String toStringBody(int tab) {
+  /**
+   * Return the body of the class as String
+   * @param tab how many tabs before the body of the class
+   * @return the body as String
+   */
+  public String toStringBody(int tab) {
     final StringBuffer buff = new StringBuffer(" {");//$NON-NLS-1$
-               if (fields != null) {
-                       for (int fieldI = 0; fieldI < fields.length; fieldI++) {
-                               if (fields[fieldI] != null) {
-                                       buff.append("\n"); //$NON-NLS-1$
+    if (fields != null) {
+      for (int fieldI = 0; fieldI < fields.length; fieldI++) {
+        if (fields[fieldI] != null) {
+          buff.append("\n"); //$NON-NLS-1$
           buff.append(fields[fieldI].toString(tab + 1));
           buff.append(";");//$NON-NLS-1$
-                               }
-                       }
-               }
-               if (methods != null) {
-                       for (int i = 0; i < methods.length; i++) {
-                               if (methods[i] != null) {
-                                       buff.append("\n");//$NON-NLS-1$
+        }
+      }
+    }
+    if (methods != null) {
+      for (int i = 0; i < methods.length; i++) {
+        if (methods[i] != null) {
+          buff.append("\n");//$NON-NLS-1$
           buff.append(methods[i].toString(tab + 1));
-                               }
-                       }
-               }
-               buff.append("\n").append(tabString(tab)).append("}"); //$NON-NLS-2$ //$NON-NLS-1$
-               return buff.toString();
-       }
+        }
+      }
+    }
+    buff.append("\n").append(tabString(tab)).append("}"); //$NON-NLS-2$ //$NON-NLS-1$
+    return buff.toString();
+  }
 
-       public String toStringHeader() {
-    final StringBuffer buff = new StringBuffer("class").append(name);
-               if (superclass != null) {
-                       buff.append(" extends "); //$NON-NLS-1$
+  /**
+   * Return the header of the class as String.
+   * @return the header of the class
+   */
+  public String toStringHeader() {
+    final StringBuffer buff = new StringBuffer("class").append(name);//$NON-NLS-1$
+    if (superclass != null) {
+      buff.append(" extends "); //$NON-NLS-1$
       buff.append(superclass);
     }
-               return buff.toString();
-       }
+    return buff.toString();
+  }
 }
index 628d254..98efdfa 100644 (file)
@@ -18,6 +18,14 @@ public abstract class PHPSegment {
     this.position = new Position(index, name.length());
   }
 
+  /**
+   * Return the name of the segment.
+   * @return the name of the segment
+   */
+  public String getName() {
+    return name;
+  }
+
   public String toString() {
     return name;
   }
index 9e7acc4..bc7c112 100644 (file)
@@ -35,7 +35,7 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon
 
   private static final String PARSE_ERROR_STRING = "Parse error"; //$NON-NLS-1$
   private static final String PARSE_WARNING_STRING = "Warning"; //$NON-NLS-1$
-  PHPOutlineInfo outlineInfo;
+  static PHPOutlineInfo outlineInfo;
 
   private static PHPFunctionDeclaration currentFunction;
   private static boolean assigning;
@@ -48,9 +48,9 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon
   private static int errorStart = -1;
   private static int errorEnd = -1;
 
-        //ast stack
-        private final static int AstStackIncrement = 100;
-        /** The stack of node. */
+  //ast stack
+  private final static int AstStackIncrement = 100;
+  /** The stack of node. */
   private static AstNode[] astStack;
   /** The cursor in expression stack. */
         private static int expressionPtr;
@@ -617,6 +617,7 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon
   PHPVarDeclaration variableDeclaration;
     jj_consume_token(VAR);
     variableDeclaration = VariableDeclarator();
+    outlineInfo.addVariable(variableDeclaration.getVariable().getName());
     if (currentSegment != null) {
       currentSegment.add(variableDeclaration);
     }
@@ -678,7 +679,7 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon
   final StringBuffer buff = new StringBuffer();
     try {
       expr = Variable();
-     buff.append(expr);
+                         buff.append(expr);
       label_5:
       while (true) {
         if (jj_2_1(2)) {
@@ -687,7 +688,7 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon
           break label_5;
         }
         expr = VariableSuffix();
-     buff.append(expr);
+                               buff.append(expr);
       }
      {if (true) return buff.toString();}
     } catch (ParseException e) {
@@ -951,6 +952,7 @@ final StringBuffer buff = new StringBuffer("(");
     functionToken = jj_consume_token(FUNCTION);
     try {
       functionDeclaration = MethodDeclarator();
+     outlineInfo.addVariable(functionDeclaration.getName());
     } catch (ParseException e) {
     if (errorMessage != null) {
       {if (true) throw e;}
@@ -1098,39 +1100,39 @@ final StringBuffer buff = new StringBuffer("(");
     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
     case STRING:
       jj_consume_token(STRING);
-   {if (true) return "string";}
+             {if (true) return "string";}
       break;
     case BOOL:
       jj_consume_token(BOOL);
-   {if (true) return "bool";}
+             {if (true) return "bool";}
       break;
     case BOOLEAN:
       jj_consume_token(BOOLEAN);
-   {if (true) return "boolean";}
+             {if (true) return "boolean";}
       break;
     case REAL:
       jj_consume_token(REAL);
-   {if (true) return "real";}
+             {if (true) return "real";}
       break;
     case DOUBLE:
       jj_consume_token(DOUBLE);
-   {if (true) return "double";}
+             {if (true) return "double";}
       break;
     case FLOAT:
       jj_consume_token(FLOAT);
-   {if (true) return "float";}
+             {if (true) return "float";}
       break;
     case INT:
       jj_consume_token(INT);
-   {if (true) return "int";}
+             {if (true) return "int";}
       break;
     case INTEGER:
       jj_consume_token(INTEGER);
-   {if (true) return "integer";}
+             {if (true) return "integer";}
       break;
     case OBJECT:
       jj_consume_token(OBJECT);
-   {if (true) return "object";}
+             {if (true) return "object";}
       break;
     default:
       jj_la1[25] = jj_gen;
@@ -1147,17 +1149,17 @@ final StringBuffer buff = new StringBuffer("(");
     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
     case PRINT:
       expr = PrintExpression();
-   {if (true) return expr;}
+                                  {if (true) return expr;}
       break;
     case LIST:
       expr = ListExpression();
-   {if (true) return expr;}
+                                  {if (true) return expr;}
       break;
     default:
       jj_la1[26] = jj_gen;
       if (jj_2_3(2147483647)) {
         expr = varAssignation();
-   {if (true) return expr;}
+                                  {if (true) return expr;}
       } else {
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
         case ARRAY:
@@ -1180,7 +1182,7 @@ final StringBuffer buff = new StringBuffer("(");
         case BIT_AND:
         case DOLLAR_ID:
           expr = ConditionalExpression();
-   {if (true) return expr;}
+                                  {if (true) return expr;}
           break;
         default:
           jj_la1[27] = jj_gen;
@@ -1222,55 +1224,55 @@ final StringBuffer buff = new StringBuffer("(");
     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
     case ASSIGN:
       jj_consume_token(ASSIGN);
- {if (true) return "=";}
+                        {if (true) return "=";}
       break;
     case STARASSIGN:
       jj_consume_token(STARASSIGN);
- {if (true) return "*=";}
+                        {if (true) return "*=";}
       break;
     case SLASHASSIGN:
       jj_consume_token(SLASHASSIGN);
- {if (true) return "/=";}
+                        {if (true) return "/=";}
       break;
     case REMASSIGN:
       jj_consume_token(REMASSIGN);
- {if (true) return "%=";}
+                        {if (true) return "%=";}
       break;
     case PLUSASSIGN:
       jj_consume_token(PLUSASSIGN);
- {if (true) return "+=";}
+                        {if (true) return "+=";}
       break;
     case MINUSASSIGN:
       jj_consume_token(MINUSASSIGN);
- {if (true) return "-=";}
+                        {if (true) return "-=";}
       break;
     case LSHIFTASSIGN:
       jj_consume_token(LSHIFTASSIGN);
- {if (true) return "<<=";}
+                        {if (true) return "<<=";}
       break;
     case RSIGNEDSHIFTASSIGN:
       jj_consume_token(RSIGNEDSHIFTASSIGN);
- {if (true) return ">>=";}
+                        {if (true) return ">>=";}
       break;
     case ANDASSIGN:
       jj_consume_token(ANDASSIGN);
- {if (true) return "&=";}
+                        {if (true) return "&=";}
       break;
     case XORASSIGN:
       jj_consume_token(XORASSIGN);
- {if (true) return "|=";}
+                        {if (true) return "|=";}
       break;
     case ORASSIGN:
       jj_consume_token(ORASSIGN);
- {if (true) return "|=";}
+                        {if (true) return "|=";}
       break;
     case DOTASSIGN:
       jj_consume_token(DOTASSIGN);
- {if (true) return ".=";}
+                        {if (true) return ".=";}
       break;
     case TILDEEQUAL:
       jj_consume_token(TILDEEQUAL);
- {if (true) return "~=";}
+                        {if (true) return "~=";}
       break;
     default:
       jj_la1[28] = jj_gen;
@@ -1833,13 +1835,13 @@ final Token token;
     case BANG:
       jj_consume_token(BANG);
       expr = UnaryExpression();
-   {if (true) return "!" + expr;}
+                                   {if (true) return "!" + expr;}
       break;
     default:
       jj_la1[53] = jj_gen;
       if (jj_2_4(2147483647)) {
         expr = CastExpression();
-   {if (true) return expr;}
+                                   {if (true) return expr;}
       } else {
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
         case ARRAY:
@@ -1848,7 +1850,7 @@ final Token token;
         case DOLLAR:
         case DOLLAR_ID:
           expr = PostfixExpression();
-   {if (true) return expr;}
+                                   {if (true) return expr;}
           break;
         case NULL:
         case TRUE:
@@ -1857,7 +1859,7 @@ final Token token;
         case FLOATING_POINT_LITERAL:
         case STRING_LITERAL:
           expr = Literal();
-   {if (true) return expr;}
+                                   {if (true) return expr;}
           break;
         case LPAREN:
           jj_consume_token(LPAREN);
@@ -1867,8 +1869,8 @@ final Token token;
           } catch (ParseException e) {
     errorMessage = "')' expected";
     errorLevel   = ERROR;
-    errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
-    errorEnd   = jj_input_stream.getPosition() + 1;
+    errorStart   = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
+    errorEnd     = jj_input_stream.getPosition() + 1;
     {if (true) throw e;}
           }
    {if (true) return "("+expr+")";}
@@ -2021,17 +2023,17 @@ final String type, expr;
     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
     case IDENTIFIER:
       token = jj_consume_token(IDENTIFIER);
-   {if (true) return token.image;}
+                                  {if (true) return token.image;}
       break;
     case NEW:
       jj_consume_token(NEW);
       expr = ClassIdentifier();
-    {if (true) return "new " + expr;}
+                                  {if (true) return "new " + expr;}
       break;
     case DOLLAR:
     case DOLLAR_ID:
       expr = VariableDeclaratorId();
-   {if (true) return expr;}
+                                  {if (true) return expr;}
       break;
     default:
       jj_la1[61] = jj_gen;
@@ -2070,12 +2072,12 @@ final String type, expr;
     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
     case IDENTIFIER:
       token = jj_consume_token(IDENTIFIER);
-   {if (true) return token.image;}
+                                 {if (true) return token.image;}
       break;
     case DOLLAR:
     case DOLLAR_ID:
       expr = VariableDeclaratorId();
-   {if (true) return expr;}
+                                 {if (true) return expr;}
       break;
     default:
       jj_la1[63] = jj_gen;
@@ -2090,12 +2092,12 @@ final String type, expr;
     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
     case LPAREN:
       expr = Arguments();
-   {if (true) return expr;}
+                           {if (true) return expr;}
       break;
     case CLASSACCESS:
     case LBRACKET:
       expr = VariableSuffix();
-   {if (true) return expr;}
+                           {if (true) return expr;}
       break;
     default:
       jj_la1[64] = jj_gen;
@@ -2227,24 +2229,24 @@ final String type, expr;
     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
     case INTEGER_LITERAL:
       token = jj_consume_token(INTEGER_LITERAL);
-   {if (true) return token.image;}
+                                    {if (true) return token.image;}
       break;
     case FLOATING_POINT_LITERAL:
       token = jj_consume_token(FLOATING_POINT_LITERAL);
-   {if (true) return token.image;}
+                                    {if (true) return token.image;}
       break;
     case STRING_LITERAL:
       token = jj_consume_token(STRING_LITERAL);
-   {if (true) return token.image;}
+                                    {if (true) return token.image;}
       break;
     case TRUE:
     case FALSE:
       expr = BooleanLiteral();
-   {if (true) return expr;}
+                                    {if (true) return expr;}
       break;
     case NULL:
       jj_consume_token(NULL);
-   {if (true) return "null";}
+                                    {if (true) return "null";}
       break;
     default:
       jj_la1[68] = jj_gen;
@@ -2258,11 +2260,11 @@ final String type, expr;
     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
     case TRUE:
       jj_consume_token(TRUE);
-   {if (true) return "true";}
+           {if (true) return "true";}
       break;
     case FALSE:
       jj_consume_token(FALSE);
-   {if (true) return "false";}
+           {if (true) return "false";}
       break;
     default:
       jj_la1[69] = jj_gen;
@@ -2338,20 +2340,20 @@ final StringBuffer buff = new StringBuffer();
       try {
         expr = Expression();
       } catch (ParseException e) {
-        errorMessage = "expression expected after a comma in argument list";
+        errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. An expression expected after a comma in argument list";
         errorLevel   = ERROR;
-        errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
-        errorEnd   = jj_input_stream.getPosition() + 1;
+        errorStart   = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
+        errorEnd     = jj_input_stream.getPosition() + 1;
         {if (true) throw e;}
       }
-      buff.append(",").append(expr);
+     buff.append(",").append(expr);
     }
     {if (true) return buff.toString();}
     throw new Error("Missing return statement in function");
   }
 
 /**
- * A Statement without break
+ * A Statement without break.
  */
   static final public void StatementNoBreak() throws ParseException {
     if (jj_2_6(2)) {
@@ -2390,8 +2392,8 @@ final StringBuffer buff = new StringBuffer();
         } catch (ParseException e) {
     errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected";
     errorLevel   = ERROR;
-    errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
-    errorEnd   = jj_input_stream.getPosition() + 1;
+    errorStart   = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
+    errorEnd     = jj_input_stream.getPosition() + 1;
     {if (true) throw e;}
         }
         break;
@@ -2452,7 +2454,7 @@ final StringBuffer buff = new StringBuffer();
   }
 
 /**
- * A Normal statement
+ * A Normal statement.
  */
   static final public void Statement() throws ParseException {
     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -2506,6 +2508,9 @@ final StringBuffer buff = new StringBuffer();
     }
   }
 
+/**
+ * An html block inside a php syntax.
+ */
   static final public void htmlBlock() throws ParseException {
     jj_consume_token(PHPEND);
     label_23:
@@ -2520,17 +2525,25 @@ final StringBuffer buff = new StringBuffer();
       }
       phpEchoBlock();
     }
-    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-    case PHPSTARTLONG:
-      jj_consume_token(PHPSTARTLONG);
-      break;
-    case PHPSTARTSHORT:
-      jj_consume_token(PHPSTARTSHORT);
-      break;
-    default:
-      jj_la1[76] = jj_gen;
-      jj_consume_token(-1);
-      throw new ParseException();
+    try {
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case PHPSTARTLONG:
+        jj_consume_token(PHPSTARTLONG);
+        break;
+      case PHPSTARTSHORT:
+        jj_consume_token(PHPSTARTSHORT);
+        break;
+      default:
+        jj_la1[76] = jj_gen;
+        jj_consume_token(-1);
+        throw new ParseException();
+      }
+    } catch (ParseException e) {
+    errorMessage = "End of file unexpected, '<?php' expected";
+    errorLevel   = ERROR;
+    errorStart   = jj_input_stream.getPosition();
+    errorEnd     = jj_input_stream.getPosition();
+    {if (true) throw e;}
     }
   }
 
@@ -2559,7 +2572,18 @@ final StringBuffer buff = new StringBuffer();
       jj_consume_token(-1);
       throw new ParseException();
     }
-    expr = Expression();
+    try {
+      expr = Expression();
+    } catch (ParseException e) {
+      if (errorMessage != null) {
+        {if (true) throw e;}
+      }
+      errorMessage = "unexpected token '"+ e.currentToken.next.image+"', expression expected";
+      errorLevel   = ERROR;
+      errorStart   = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
+      errorEnd     = jj_input_stream.getPosition() + 1;
+      {if (true) throw e;}
+    }
     if (currentSegment != null) {
       currentSegment.add(new PHPReqIncDeclaration(currentSegment, token.image,pos,expr));
     }
@@ -2568,19 +2592,17 @@ final StringBuffer buff = new StringBuffer();
     } catch (ParseException e) {
     errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected";
     errorLevel   = ERROR;
-    errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
-    errorEnd   = jj_input_stream.getPosition() + 1;
+    errorStart   = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
+    errorEnd     = jj_input_stream.getPosition() + 1;
     {if (true) throw e;}
     }
   }
 
   static final public String PrintExpression() throws ParseException {
-  final StringBuffer buff = new StringBuffer("print ");
   final String expr;
     jj_consume_token(PRINT);
     expr = Expression();
-    buff.append(expr);
-    {if (true) return buff.toString();}
+                               {if (true) return "print " + expr;}
     throw new Error("Missing return statement in function");
   }
 
@@ -2593,8 +2615,8 @@ final StringBuffer buff = new StringBuffer();
     } catch (ParseException e) {
     errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', '(' expected";
     errorLevel   = ERROR;
-    errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
-    errorEnd   = jj_input_stream.getPosition() + 1;
+    errorStart   = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
+    errorEnd     = jj_input_stream.getPosition() + 1;
     {if (true) throw e;}
     }
     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -2622,8 +2644,8 @@ final StringBuffer buff = new StringBuffer();
       } catch (ParseException e) {
       errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ',' expected";
       errorLevel   = ERROR;
-      errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
-      errorEnd   = jj_input_stream.getPosition() + 1;
+      errorStart   = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
+      errorEnd     = jj_input_stream.getPosition() + 1;
       {if (true) throw e;}
       }
       expr = VariableDeclaratorId();
@@ -2654,7 +2676,8 @@ final StringBuffer buff = new StringBuffer();
   }
 
 /**
- * An echo statement is like this : echo anyexpression (, otherexpression)*
+ * An echo statement.
+ * echo anyexpression (, otherexpression)*
  */
   static final public void EchoStatement() throws ParseException {
     jj_consume_token(ECHO);
@@ -2678,8 +2701,8 @@ final StringBuffer buff = new StringBuffer();
     if (e.currentToken.next.kind != 4) {
       errorMessage = "';' expected after 'echo' statement";
       errorLevel   = ERROR;
-      errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
-      errorEnd   = jj_input_stream.getPosition() + 1;
+      errorStart   = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
+      errorEnd     = jj_input_stream.getPosition() + 1;
       {if (true) throw e;}
     }
     }
@@ -2712,7 +2735,7 @@ final StringBuffer buff = new StringBuffer();
     try {
       jj_consume_token(SEMICOLON);
     } catch (ParseException e) {
-    errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected";
+    errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. a ';' was expected";
     errorLevel   = ERROR;
     errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
     errorEnd   = jj_input_stream.getPosition() + 1;
@@ -2739,7 +2762,7 @@ final StringBuffer buff = new StringBuffer();
     try {
       jj_consume_token(SEMICOLON);
     } catch (ParseException e) {
-    errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected";
+    errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. a ';' was expected";
     errorLevel   = ERROR;
     errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
     errorEnd   = jj_input_stream.getPosition() + 1;
@@ -4581,49 +4604,125 @@ final int pos = jj_input_stream.getPosition();
     return retval;
   }
 
-  static final private boolean jj_3R_58() {
-    if (jj_3R_88()) return true;
+  static final private boolean jj_3R_189() {
+    if (jj_scan_token(INCR)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_102() {
-    if (jj_scan_token(COMMA)) return true;
+  static final private boolean jj_3R_181() {
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_189()) {
+    jj_scanpos = xsp;
+    if (jj_3R_190()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_52()) return true;
+    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    return false;
+  }
+
+  static final private boolean jj_3R_171() {
+    if (jj_3R_178()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_57() {
-    if (jj_3R_44()) return true;
+  static final private boolean jj_3R_184() {
+    if (jj_3R_193()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_56() {
-    if (jj_3R_87()) return true;
+  static final private boolean jj_3R_170() {
+    if (jj_3R_177()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    Token xsp;
+    while (true) {
+      xsp = jj_scanpos;
+      if (jj_3R_184()) { jj_scanpos = xsp; break; }
+      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    }
     return false;
   }
 
-  static final private boolean jj_3R_101() {
+  static final private boolean jj_3R_183() {
+    if (jj_3R_193()) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    return false;
+  }
+
+  static final private boolean jj_3R_44() {
     if (jj_3R_52()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    if (jj_3R_53()) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    if (jj_3R_47()) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3_4() {
-    if (jj_scan_token(LPAREN)) return true;
+  static final private boolean jj_3R_180() {
+    if (jj_scan_token(ARRAY)) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    return false;
+  }
+
+  static final private boolean jj_3_5() {
+    if (jj_scan_token(IDENTIFIER)) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    if (jj_scan_token(STATICCLASSACCESS)) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    if (jj_3R_182()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     Token xsp;
+    while (true) {
+      xsp = jj_scanpos;
+      if (jj_3R_183()) { jj_scanpos = xsp; break; }
+      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    }
+    return false;
+  }
+
+  static final private boolean jj_3R_166() {
+    Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_45()) {
+    if (jj_3_5()) {
     jj_scanpos = xsp;
-    if (jj_3R_46()) return true;
+    if (jj_3R_170()) {
+    jj_scanpos = xsp;
+    if (jj_3R_171()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_scan_token(RPAREN)) return true;
+    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    return false;
+  }
+
+  static final private boolean jj_3_3() {
+    if (jj_3R_44()) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    return false;
+  }
+
+  static final private boolean jj_3R_58() {
+    if (jj_3R_88()) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    return false;
+  }
+
+  static final private boolean jj_3R_57() {
+    if (jj_3R_44()) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    return false;
+  }
+
+  static final private boolean jj_3R_56() {
+    if (jj_3R_87()) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    return false;
+  }
+
+  static final private boolean jj_3R_179() {
+    if (jj_3R_54()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
@@ -4651,218 +4750,264 @@ final int pos = jj_input_stream.getPosition();
     return false;
   }
 
-  static final private boolean jj_3R_165() {
+  static final private boolean jj_3R_168() {
+    if (jj_3R_166()) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_181()) jj_scanpos = xsp;
+    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    return false;
+  }
+
+  static final private boolean jj_3R_46() {
+    if (jj_scan_token(ARRAY)) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    return false;
+  }
+
+  static final private boolean jj_3R_85() {
+    if (jj_scan_token(OBJECT)) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    return false;
+  }
+
+  static final private boolean jj_3R_167() {
     if (jj_scan_token(LPAREN)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_47()) return true;
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_179()) {
+    jj_scanpos = xsp;
+    if (jj_3R_180()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     if (jj_scan_token(RPAREN)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    if (jj_3R_141()) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_164() {
-    if (jj_3R_169()) return true;
+  static final private boolean jj_3R_84() {
+    if (jj_scan_token(INTEGER)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_160() {
-    if (jj_scan_token(DECR)) return true;
+  static final private boolean jj_3R_45() {
+    if (jj_3R_54()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_163() {
-    if (jj_3R_168()) return true;
+  static final private boolean jj_3R_83() {
+    if (jj_scan_token(INT)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_162() {
-    if (jj_3R_167()) return true;
+  static final private boolean jj_3R_82() {
+    if (jj_scan_token(FLOAT)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_87() {
-    if (jj_scan_token(LIST)) return true;
+  static final private boolean jj_3R_81() {
+    if (jj_scan_token(DOUBLE)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_scan_token(LPAREN)) return true;
+    return false;
+  }
+
+  static final private boolean jj_3R_80() {
+    if (jj_scan_token(REAL)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_101()) jj_scanpos = xsp;
-    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_3R_102()) { jj_scanpos = xsp; break; }
-      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    }
-    if (jj_scan_token(RPAREN)) return true;
+    return false;
+  }
+
+  static final private boolean jj_3R_79() {
+    if (jj_scan_token(BOOLEAN)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    xsp = jj_scanpos;
-    if (jj_3R_103()) jj_scanpos = xsp;
-    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_85() {
-    if (jj_scan_token(OBJECT)) return true;
+  static final private boolean jj_3R_78() {
+    if (jj_scan_token(BOOL)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_158() {
+  static final private boolean jj_3R_77() {
+    if (jj_scan_token(STRING)) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    return false;
+  }
+
+  static final private boolean jj_3R_54() {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_161()) {
+    if (jj_3R_77()) {
     jj_scanpos = xsp;
-    if (jj_3R_162()) {
+    if (jj_3R_78()) {
     jj_scanpos = xsp;
-    if (jj_3R_163()) {
+    if (jj_3R_79()) {
     jj_scanpos = xsp;
-    if (jj_3R_164()) {
+    if (jj_3R_80()) {
     jj_scanpos = xsp;
-    if (jj_3R_165()) return true;
+    if (jj_3R_81()) {
+    jj_scanpos = xsp;
+    if (jj_3R_82()) {
+    jj_scanpos = xsp;
+    if (jj_3R_83()) {
+    jj_scanpos = xsp;
+    if (jj_3R_84()) {
+    jj_scanpos = xsp;
+    if (jj_3R_85()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_161() {
-    if (jj_scan_token(BANG)) return true;
+  static final private boolean jj_3_4() {
+    if (jj_scan_token(LPAREN)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_141()) return true;
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_45()) {
+    jj_scanpos = xsp;
+    if (jj_3R_46()) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    if (jj_scan_token(RPAREN)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_84() {
-    if (jj_scan_token(INTEGER)) return true;
+  static final private boolean jj_3R_160() {
+    if (jj_scan_token(DECR)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_83() {
-    if (jj_scan_token(INT)) return true;
+  static final private boolean jj_3R_103() {
+    if (jj_scan_token(ASSIGN)) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    if (jj_3R_47()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_82() {
-    if (jj_scan_token(FLOAT)) return true;
+  static final private boolean jj_3R_165() {
+    if (jj_scan_token(LPAREN)) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    if (jj_3R_47()) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    if (jj_scan_token(RPAREN)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_159() {
-    if (jj_scan_token(INCR)) return true;
+  static final private boolean jj_3R_164() {
+    if (jj_3R_169()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_156() {
-    if (jj_scan_token(MINUS)) return true;
+  static final private boolean jj_3R_163() {
+    if (jj_3R_168()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_157() {
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_159()) {
-    jj_scanpos = xsp;
-    if (jj_3R_160()) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_166()) return true;
+  static final private boolean jj_3R_162() {
+    if (jj_3R_167()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_81() {
-    if (jj_scan_token(DOUBLE)) return true;
+  static final private boolean jj_3R_158() {
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_161()) {
+    jj_scanpos = xsp;
+    if (jj_3R_162()) {
+    jj_scanpos = xsp;
+    if (jj_3R_163()) {
+    jj_scanpos = xsp;
+    if (jj_3R_164()) {
+    jj_scanpos = xsp;
+    if (jj_3R_165()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_86() {
-    if (jj_scan_token(PRINT)) return true;
+  static final private boolean jj_3R_161() {
+    if (jj_scan_token(BANG)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_47()) return true;
+    if (jj_3R_141()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_80() {
-    if (jj_scan_token(REAL)) return true;
+  static final private boolean jj_3R_159() {
+    if (jj_scan_token(INCR)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_79() {
-    if (jj_scan_token(BOOLEAN)) return true;
+  static final private boolean jj_3R_156() {
+    if (jj_scan_token(MINUS)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_78() {
-    if (jj_scan_token(BOOL)) return true;
+  static final private boolean jj_3R_157() {
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_159()) {
+    jj_scanpos = xsp;
+    if (jj_3R_160()) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    if (jj_3R_166()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_149() {
-    if (jj_scan_token(REM)) return true;
+  static final private boolean jj_3R_102() {
+    if (jj_scan_token(COMMA)) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    if (jj_3R_52()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_154() {
-    if (jj_3R_158()) return true;
+  static final private boolean jj_3R_101() {
+    if (jj_3R_52()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_77() {
-    if (jj_scan_token(STRING)) return true;
+  static final private boolean jj_3R_149() {
+    if (jj_scan_token(REM)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_54() {
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_77()) {
-    jj_scanpos = xsp;
-    if (jj_3R_78()) {
-    jj_scanpos = xsp;
-    if (jj_3R_79()) {
-    jj_scanpos = xsp;
-    if (jj_3R_80()) {
-    jj_scanpos = xsp;
-    if (jj_3R_81()) {
-    jj_scanpos = xsp;
-    if (jj_3R_82()) {
-    jj_scanpos = xsp;
-    if (jj_3R_83()) {
-    jj_scanpos = xsp;
-    if (jj_3R_84()) {
-    jj_scanpos = xsp;
-    if (jj_3R_85()) return true;
+  static final private boolean jj_3R_154() {
+    if (jj_3R_158()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
@@ -4905,6 +5050,28 @@ final int pos = jj_input_stream.getPosition();
     return false;
   }
 
+  static final private boolean jj_3R_87() {
+    if (jj_scan_token(LIST)) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    if (jj_scan_token(LPAREN)) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_101()) jj_scanpos = xsp;
+    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    while (true) {
+      xsp = jj_scanpos;
+      if (jj_3R_102()) { jj_scanpos = xsp; break; }
+      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    }
+    if (jj_scan_token(RPAREN)) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    xsp = jj_scanpos;
+    if (jj_3R_103()) jj_scanpos = xsp;
+    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    return false;
+  }
+
   static final private boolean jj_3R_151() {
     if (jj_scan_token(AT)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
@@ -4923,6 +5090,14 @@ final int pos = jj_input_stream.getPosition();
     return false;
   }
 
+  static final private boolean jj_3R_86() {
+    if (jj_scan_token(PRINT)) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    if (jj_3R_47()) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    return false;
+  }
+
   static final private boolean jj_3R_148() {
     if (jj_scan_token(SLASH)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
@@ -5043,24 +5218,12 @@ final int pos = jj_input_stream.getPosition();
     return false;
   }
 
-  static final private boolean jj_3_8() {
-    if (jj_3R_49()) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    return false;
-  }
-
   static final private boolean jj_3R_133() {
     if (jj_scan_token(GT)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3_7() {
-    if (jj_3R_48()) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    return false;
-  }
-
   static final private boolean jj_3R_138() {
     if (jj_scan_token(LSHIFT)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
@@ -5095,10 +5258,8 @@ final int pos = jj_input_stream.getPosition();
     return false;
   }
 
-  static final private boolean jj_3_6() {
-    if (jj_3R_47()) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_scan_token(SEMICOLON)) return true;
+  static final private boolean jj_3R_200() {
+    if (jj_scan_token(COMMA)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
@@ -5109,6 +5270,14 @@ final int pos = jj_input_stream.getPosition();
     return false;
   }
 
+  static final private boolean jj_3_2() {
+    if (jj_scan_token(COMMA)) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    if (jj_3R_43()) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    return false;
+  }
+
   static final private boolean jj_3R_124() {
     Token xsp;
     xsp = jj_scanpos;
@@ -5128,6 +5297,18 @@ final int pos = jj_input_stream.getPosition();
     return false;
   }
 
+  static final private boolean jj_3R_199() {
+    if (jj_3R_43()) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    Token xsp;
+    while (true) {
+      xsp = jj_scanpos;
+      if (jj_3_2()) { jj_scanpos = xsp; break; }
+      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    }
+    return false;
+  }
+
   static final private boolean jj_3R_121() {
     if (jj_3R_123()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
@@ -5140,23 +5321,38 @@ final int pos = jj_input_stream.getPosition();
     return false;
   }
 
-  static final private boolean jj_3R_205() {
-    if (jj_scan_token(COMMA)) return true;
+  static final private boolean jj_3R_194() {
+    if (jj_scan_token(LPAREN)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_47()) return true;
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_199()) jj_scanpos = xsp;
+    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    xsp = jj_scanpos;
+    if (jj_3R_200()) jj_scanpos = xsp;
+    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    if (jj_scan_token(RPAREN)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_204() {
+  static final private boolean jj_3_7() {
+    if (jj_3R_48()) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    return false;
+  }
+
+  static final private boolean jj_3_8() {
+    if (jj_3R_49()) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    return false;
+  }
+
+  static final private boolean jj_3R_203() {
+    if (jj_scan_token(ARRAYASSIGN)) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     if (jj_3R_47()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_3R_205()) { jj_scanpos = xsp; break; }
-      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    }
     return false;
   }
 
@@ -5166,6 +5362,16 @@ final int pos = jj_input_stream.getPosition();
     return false;
   }
 
+  static final private boolean jj_3R_43() {
+    if (jj_3R_47()) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_203()) jj_scanpos = xsp;
+    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    return false;
+  }
+
   static final private boolean jj_3R_128() {
     if (jj_scan_token(BANGDOUBLEEQUAL)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
@@ -5190,14 +5396,10 @@ final int pos = jj_input_stream.getPosition();
     return false;
   }
 
-  static final private boolean jj_3R_202() {
-    if (jj_3R_204()) return true;
+  static final private boolean jj_3_6() {
+    if (jj_3R_47()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    return false;
-  }
-
-  static final private boolean jj_3R_200() {
-    if (jj_scan_token(COMMA)) return true;
+    if (jj_scan_token(SEMICOLON)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
@@ -5224,38 +5426,78 @@ final int pos = jj_input_stream.getPosition();
     return false;
   }
 
-  static final private boolean jj_3_2() {
+  static final private boolean jj_3R_119() {
+    if (jj_3R_121()) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    Token xsp;
+    while (true) {
+      xsp = jj_scanpos;
+      if (jj_3R_122()) { jj_scanpos = xsp; break; }
+      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    }
+    return false;
+  }
+
+  static final private boolean jj_3R_205() {
     if (jj_scan_token(COMMA)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_43()) return true;
+    if (jj_3R_47()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_119() {
-    if (jj_3R_121()) return true;
+  static final private boolean jj_3R_120() {
+    if (jj_scan_token(BIT_AND)) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    if (jj_3R_119()) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    return false;
+  }
+
+  static final private boolean jj_3R_204() {
+    if (jj_3R_47()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     Token xsp;
     while (true) {
       xsp = jj_scanpos;
-      if (jj_3R_122()) { jj_scanpos = xsp; break; }
+      if (jj_3R_205()) { jj_scanpos = xsp; break; }
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     }
     return false;
   }
 
-  static final private boolean jj_3R_199() {
-    if (jj_3R_43()) return true;
+  static final private boolean jj_3R_117() {
+    if (jj_3R_119()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     Token xsp;
     while (true) {
       xsp = jj_scanpos;
-      if (jj_3_2()) { jj_scanpos = xsp; break; }
+      if (jj_3R_120()) { jj_scanpos = xsp; break; }
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     }
     return false;
   }
 
+  static final private boolean jj_3R_202() {
+    if (jj_3R_204()) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    return false;
+  }
+
+  static final private boolean jj_3R_118() {
+    if (jj_scan_token(XOR)) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    if (jj_3R_117()) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    return false;
+  }
+
+  static final private boolean jj_3R_93() {
+    if (jj_scan_token(DOLLAR_ID)) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    return false;
+  }
+
   static final private boolean jj_3R_201() {
     if (jj_scan_token(LPAREN)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
@@ -5268,26 +5510,25 @@ final int pos = jj_input_stream.getPosition();
     return false;
   }
 
-  static final private boolean jj_3R_194() {
-    if (jj_scan_token(LPAREN)) return true;
+  static final private boolean jj_3R_110() {
+    if (jj_scan_token(LBRACE)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_199()) jj_scanpos = xsp;
-    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    xsp = jj_scanpos;
-    if (jj_3R_200()) jj_scanpos = xsp;
-    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_scan_token(RPAREN)) return true;
+    if (jj_3R_47()) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    if (jj_scan_token(RBRACE)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_120() {
-    if (jj_scan_token(BIT_AND)) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_119()) return true;
+  static final private boolean jj_3R_115() {
+    if (jj_3R_117()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    Token xsp;
+    while (true) {
+      xsp = jj_scanpos;
+      if (jj_3R_118()) { jj_scanpos = xsp; break; }
+      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    }
     return false;
   }
 
@@ -5297,6 +5538,20 @@ final int pos = jj_input_stream.getPosition();
     return false;
   }
 
+  static final private boolean jj_3R_92() {
+    if (jj_scan_token(DOLLAR)) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    if (jj_3R_61()) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    return false;
+  }
+
+  static final private boolean jj_3R_95() {
+    if (jj_3R_54()) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    return false;
+  }
+
   static final private boolean jj_3R_195() {
     if (jj_scan_token(TRUE)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
@@ -5314,33 +5569,11 @@ final int pos = jj_input_stream.getPosition();
     return false;
   }
 
-  static final private boolean jj_3R_117() {
-    if (jj_3R_119()) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_3R_120()) { jj_scanpos = xsp; break; }
-      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    }
-    return false;
-  }
-
-  static final private boolean jj_3R_203() {
-    if (jj_scan_token(ARRAYASSIGN)) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_47()) return true;
+  static final private boolean jj_3R_116() {
+    if (jj_scan_token(BIT_OR)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    return false;
-  }
-
-  static final private boolean jj_3R_43() {
-    if (jj_3R_47()) return true;
+    if (jj_3R_115()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_203()) jj_scanpos = xsp;
-    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
@@ -5350,17 +5583,15 @@ final int pos = jj_input_stream.getPosition();
     return false;
   }
 
-  static final private boolean jj_3R_89() {
-    if (jj_scan_token(ASSIGN)) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_47()) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    return false;
-  }
-
-  static final private boolean jj_3R_95() {
-    if (jj_3R_54()) return true;
+  static final private boolean jj_3R_111() {
+    if (jj_3R_115()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    Token xsp;
+    while (true) {
+      xsp = jj_scanpos;
+      if (jj_3R_116()) { jj_scanpos = xsp; break; }
+      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    }
     return false;
   }
 
@@ -5370,28 +5601,12 @@ final int pos = jj_input_stream.getPosition();
     return false;
   }
 
-  static final private boolean jj_3R_60() {
-    if (jj_scan_token(COMMA)) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_59()) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    return false;
-  }
-
   static final private boolean jj_3R_174() {
     if (jj_scan_token(STRING_LITERAL)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_118() {
-    if (jj_scan_token(XOR)) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_117()) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    return false;
-  }
-
   static final private boolean jj_3R_173() {
     if (jj_scan_token(FLOATING_POINT_LITERAL)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
@@ -5424,91 +5639,71 @@ final int pos = jj_input_stream.getPosition();
     return false;
   }
 
-  static final private boolean jj_3R_115() {
-    if (jj_3R_117()) return true;
+  static final private boolean jj_3R_91() {
+    if (jj_scan_token(IDENTIFIER)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_3R_118()) { jj_scanpos = xsp; break; }
-      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    }
+    xsp = jj_scanpos;
+    if (jj_3R_110()) jj_scanpos = xsp;
+    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_94() {
-    if (jj_3R_47()) return true;
+  static final private boolean jj_3R_114() {
+    if (jj_scan_token(_ANDL)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_62() {
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_94()) {
-    jj_scanpos = xsp;
-    if (jj_3R_95()) return true;
+  static final private boolean jj_3R_89() {
+    if (jj_scan_token(ASSIGN)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    return false;
-  }
-
-  static final private boolean jj_3R_59() {
-    if (jj_3R_52()) return true;
+    if (jj_3R_47()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_89()) jj_scanpos = xsp;
-    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_116() {
-    if (jj_scan_token(BIT_OR)) return true;
+  static final private boolean jj_3R_90() {
+    if (jj_scan_token(LBRACE)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_115()) return true;
+    if (jj_3R_47()) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    if (jj_scan_token(RBRACE)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_111() {
-    if (jj_3R_115()) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+  static final private boolean jj_3R_61() {
     Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_3R_116()) { jj_scanpos = xsp; break; }
-      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    }
+    xsp = jj_scanpos;
+    if (jj_3R_90()) {
+    jj_scanpos = xsp;
+    if (jj_3R_91()) {
+    jj_scanpos = xsp;
+    if (jj_3R_92()) {
+    jj_scanpos = xsp;
+    if (jj_3R_93()) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_49() {
+  static final private boolean jj_3R_60() {
+    if (jj_scan_token(COMMA)) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     if (jj_3R_59()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_3R_60()) { jj_scanpos = xsp; break; }
-      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    }
     return false;
   }
 
-  static final private boolean jj_3R_51() {
-    if (jj_scan_token(LBRACKET)) return true;
+  static final private boolean jj_3R_100() {
+    if (jj_scan_token(LBRACE)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_62()) jj_scanpos = xsp;
-    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_scan_token(RBRACKET)) return true;
+    if (jj_3R_47()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    return false;
-  }
-
-  static final private boolean jj_3R_114() {
-    if (jj_scan_token(_ANDL)) return true;
+    if (jj_scan_token(RBRACE)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
@@ -5521,55 +5716,39 @@ final int pos = jj_input_stream.getPosition();
     return false;
   }
 
-  static final private boolean jj_3R_106() {
-    if (jj_3R_111()) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_3R_112()) { jj_scanpos = xsp; break; }
-      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    }
-    return false;
-  }
-
-  static final private boolean jj_3R_93() {
-    if (jj_scan_token(DOLLAR_ID)) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    return false;
-  }
-
-  static final private boolean jj_3R_50() {
-    if (jj_scan_token(CLASSACCESS)) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_61()) return true;
+  static final private boolean jj_3R_94() {
+    if (jj_3R_47()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_42() {
+  static final private boolean jj_3R_62() {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_50()) {
+    if (jj_3R_94()) {
     jj_scanpos = xsp;
-    if (jj_3R_51()) return true;
+    if (jj_3R_95()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_110() {
-    if (jj_scan_token(LBRACE)) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_47()) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_scan_token(RBRACE)) return true;
+  static final private boolean jj_3R_106() {
+    if (jj_3R_111()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    Token xsp;
+    while (true) {
+      xsp = jj_scanpos;
+      if (jj_3R_112()) { jj_scanpos = xsp; break; }
+      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    }
     return false;
   }
 
-  static final private boolean jj_3R_198() {
-    if (jj_3R_42()) return true;
+  static final private boolean jj_3R_97() {
+    if (jj_scan_token(DOLLAR)) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    if (jj_3R_61()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
@@ -5580,10 +5759,14 @@ final int pos = jj_input_stream.getPosition();
     return false;
   }
 
-  static final private boolean jj_3R_92() {
-    if (jj_scan_token(DOLLAR)) return true;
+  static final private boolean jj_3R_51() {
+    if (jj_scan_token(LBRACKET)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_61()) return true;
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_62()) jj_scanpos = xsp;
+    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    if (jj_scan_token(RBRACKET)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
@@ -5594,33 +5777,47 @@ final int pos = jj_input_stream.getPosition();
     return false;
   }
 
-  static final private boolean jj_3R_197() {
-    if (jj_3R_201()) return true;
+  static final private boolean jj_3R_107() {
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_113()) {
+    jj_scanpos = xsp;
+    if (jj_3R_114()) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    if (jj_3R_106()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_193() {
+  static final private boolean jj_3R_59() {
+    if (jj_3R_52()) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_197()) {
-    jj_scanpos = xsp;
-    if (jj_3R_198()) return true;
+    if (jj_3R_89()) jj_scanpos = xsp;
+    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    return false;
+  }
+
+  static final private boolean jj_3R_96() {
+    if (jj_scan_token(DOLLAR_ID)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_100()) jj_scanpos = xsp;
+    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_107() {
+  static final private boolean jj_3R_63() {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_113()) {
+    if (jj_3R_96()) {
     jj_scanpos = xsp;
-    if (jj_3R_114()) return true;
+    if (jj_3R_97()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_106()) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
@@ -5648,72 +5845,62 @@ final int pos = jj_input_stream.getPosition();
     return false;
   }
 
-  static final private boolean jj_3R_192() {
-    if (jj_3R_52()) return true;
+  static final private boolean jj_3R_49() {
+    if (jj_3R_59()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    Token xsp;
+    while (true) {
+      xsp = jj_scanpos;
+      if (jj_3R_60()) { jj_scanpos = xsp; break; }
+      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    }
     return false;
   }
 
-  static final private boolean jj_3R_191() {
-    if (jj_scan_token(IDENTIFIER)) return true;
+  static final private boolean jj_3R_50() {
+    if (jj_scan_token(CLASSACCESS)) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    if (jj_3R_61()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_182() {
+  static final private boolean jj_3R_42() {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_191()) {
+    if (jj_3R_50()) {
     jj_scanpos = xsp;
-    if (jj_3R_192()) return true;
+    if (jj_3R_51()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_91() {
-    if (jj_scan_token(IDENTIFIER)) return true;
+  static final private boolean jj_3R_198() {
+    if (jj_3R_42()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_110()) jj_scanpos = xsp;
-    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_90() {
-    if (jj_scan_token(LBRACE)) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_47()) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_scan_token(RBRACE)) return true;
+  static final private boolean jj_3R_197() {
+    if (jj_3R_201()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_61() {
+  static final private boolean jj_3R_193() {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_90()) {
-    jj_scanpos = xsp;
-    if (jj_3R_91()) {
-    jj_scanpos = xsp;
-    if (jj_3R_92()) {
+    if (jj_3R_197()) {
     jj_scanpos = xsp;
-    if (jj_3R_93()) return true;
+    if (jj_3R_198()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_100() {
-    if (jj_scan_token(LBRACE)) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_47()) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_scan_token(RBRACE)) return true;
+  static final private boolean jj_3_1() {
+    if (jj_3R_42()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
@@ -5737,56 +5924,48 @@ final int pos = jj_input_stream.getPosition();
     return false;
   }
 
-  static final private boolean jj_3R_98() {
-    if (jj_3R_104()) return true;
+  static final private boolean jj_3R_52() {
+    if (jj_3R_63()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     Token xsp;
     while (true) {
       xsp = jj_scanpos;
-      if (jj_3R_105()) { jj_scanpos = xsp; break; }
+      if (jj_3_1()) { jj_scanpos = xsp; break; }
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     }
     return false;
   }
 
-  static final private boolean jj_3R_48() {
-    if (jj_scan_token(IDENTIFIER)) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_scan_token(COLON)) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    return false;
-  }
-
-  static final private boolean jj_3R_97() {
-    if (jj_scan_token(DOLLAR)) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_61()) return true;
+  static final private boolean jj_3R_98() {
+    if (jj_3R_104()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    Token xsp;
+    while (true) {
+      xsp = jj_scanpos;
+      if (jj_3R_105()) { jj_scanpos = xsp; break; }
+      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    }
     return false;
   }
 
-  static final private boolean jj_3R_188() {
+  static final private boolean jj_3R_192() {
     if (jj_3R_52()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_96() {
-    if (jj_scan_token(DOLLAR_ID)) return true;
+  static final private boolean jj_3R_191() {
+    if (jj_scan_token(IDENTIFIER)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_100()) jj_scanpos = xsp;
-    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_63() {
+  static final private boolean jj_3R_182() {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_96()) {
+    if (jj_3R_191()) {
     jj_scanpos = xsp;
-    if (jj_3R_97()) return true;
+    if (jj_3R_192()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
@@ -5802,6 +5981,24 @@ final int pos = jj_input_stream.getPosition();
     return false;
   }
 
+  static final private boolean jj_3R_188() {
+    if (jj_3R_52()) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    return false;
+  }
+
+  static final private boolean jj_3R_76() {
+    if (jj_scan_token(TILDEEQUAL)) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    return false;
+  }
+
+  static final private boolean jj_3R_190() {
+    if (jj_scan_token(DECR)) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    return false;
+  }
+
   static final private boolean jj_3R_187() {
     if (jj_scan_token(NEW)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
@@ -5810,8 +6007,8 @@ final int pos = jj_input_stream.getPosition();
     return false;
   }
 
-  static final private boolean jj_3R_190() {
-    if (jj_scan_token(DECR)) return true;
+  static final private boolean jj_3R_75() {
+    if (jj_scan_token(DOTASSIGN)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
@@ -5836,32 +6033,6 @@ final int pos = jj_input_stream.getPosition();
     return false;
   }
 
-  static final private boolean jj_3R_76() {
-    if (jj_scan_token(TILDEEQUAL)) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    return false;
-  }
-
-  static final private boolean jj_3_1() {
-    if (jj_3R_42()) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    return false;
-  }
-
-  static final private boolean jj_3R_75() {
-    if (jj_scan_token(DOTASSIGN)) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    return false;
-  }
-
-  static final private boolean jj_3R_178() {
-    if (jj_scan_token(ARRAY)) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_194()) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    return false;
-  }
-
   static final private boolean jj_3R_74() {
     if (jj_scan_token(ORASSIGN)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
@@ -5880,55 +6051,22 @@ final int pos = jj_input_stream.getPosition();
     return false;
   }
 
-  static final private boolean jj_3R_52() {
-    if (jj_3R_63()) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_3_1()) { jj_scanpos = xsp; break; }
-      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    }
-    return false;
-  }
-
   static final private boolean jj_3R_71() {
     if (jj_scan_token(RSIGNEDSHIFTASSIGN)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_189() {
-    if (jj_scan_token(INCR)) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    return false;
-  }
-
-  static final private boolean jj_3R_181() {
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_189()) {
-    jj_scanpos = xsp;
-    if (jj_3R_190()) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    return false;
-  }
-
   static final private boolean jj_3R_70() {
     if (jj_scan_token(LSHIFTASSIGN)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_171() {
-    if (jj_3R_178()) return true;
+  static final private boolean jj_3R_48() {
+    if (jj_scan_token(IDENTIFIER)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    return false;
-  }
-
-  static final private boolean jj_3R_184() {
-    if (jj_3R_193()) return true;
+    if (jj_scan_token(COLON)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
@@ -5945,18 +6083,6 @@ final int pos = jj_input_stream.getPosition();
     return false;
   }
 
-  static final private boolean jj_3R_170() {
-    if (jj_3R_177()) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_3R_184()) { jj_scanpos = xsp; break; }
-      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    }
-    return false;
-  }
-
   static final private boolean jj_3R_67() {
     if (jj_scan_token(REMASSIGN)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
@@ -5969,14 +6095,16 @@ final int pos = jj_input_stream.getPosition();
     return false;
   }
 
-  static final private boolean jj_3R_183() {
-    if (jj_3R_193()) return true;
+  static final private boolean jj_3R_65() {
+    if (jj_scan_token(STARASSIGN)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_65() {
-    if (jj_scan_token(STARASSIGN)) return true;
+  static final private boolean jj_3R_178() {
+    if (jj_scan_token(ARRAY)) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    if (jj_3R_194()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
@@ -6031,111 +6159,6 @@ final int pos = jj_input_stream.getPosition();
     return false;
   }
 
-  static final private boolean jj_3R_180() {
-    if (jj_scan_token(ARRAY)) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    return false;
-  }
-
-  static final private boolean jj_3_5() {
-    if (jj_scan_token(IDENTIFIER)) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_scan_token(STATICCLASSACCESS)) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_182()) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_3R_183()) { jj_scanpos = xsp; break; }
-      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    }
-    return false;
-  }
-
-  static final private boolean jj_3R_166() {
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3_5()) {
-    jj_scanpos = xsp;
-    if (jj_3R_170()) {
-    jj_scanpos = xsp;
-    if (jj_3R_171()) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    return false;
-  }
-
-  static final private boolean jj_3R_103() {
-    if (jj_scan_token(ASSIGN)) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_47()) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    return false;
-  }
-
-  static final private boolean jj_3R_179() {
-    if (jj_3R_54()) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    return false;
-  }
-
-  static final private boolean jj_3R_168() {
-    if (jj_3R_166()) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_181()) jj_scanpos = xsp;
-    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    return false;
-  }
-
-  static final private boolean jj_3R_44() {
-    if (jj_3R_52()) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_53()) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_47()) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    return false;
-  }
-
-  static final private boolean jj_3R_46() {
-    if (jj_scan_token(ARRAY)) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    return false;
-  }
-
-  static final private boolean jj_3R_167() {
-    if (jj_scan_token(LPAREN)) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_179()) {
-    jj_scanpos = xsp;
-    if (jj_3R_180()) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_scan_token(RPAREN)) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_141()) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    return false;
-  }
-
-  static final private boolean jj_3_3() {
-    if (jj_3R_44()) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    return false;
-  }
-
-  static final private boolean jj_3R_45() {
-    if (jj_3R_54()) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    return false;
-  }
-
   static private boolean jj_initialized_once = false;
   static public PHPParserTokenManager token_source;
   static SimpleCharStream jj_input_stream;
index e411485..35b3173 100644 (file)
@@ -56,7 +56,7 @@ public final class PHPParser extends PHPParserSuperclass {
 
   private static final String PARSE_ERROR_STRING = "Parse error"; //$NON-NLS-1$
   private static final String PARSE_WARNING_STRING = "Warning"; //$NON-NLS-1$
-  PHPOutlineInfo outlineInfo;
+  static PHPOutlineInfo outlineInfo;
 
   private static PHPFunctionDeclaration currentFunction;
   private static boolean assigning;
@@ -69,9 +69,9 @@ public final class PHPParser extends PHPParserSuperclass {
   private static int errorStart = -1;
   private static int errorEnd = -1;
 
-       //ast stack
-       private final static int AstStackIncrement = 100;
-       /** The stack of node. */
+  //ast stack
+  private final static int AstStackIncrement = 100;
+  /** The stack of node. */
   private static AstNode[] astStack;
   /** The cursor in expression stack. */
        private static int expressionPtr;
@@ -469,9 +469,9 @@ MORE :
 |    < STRING_1:
       "\""
       (
-        ~["\""] | ~["{"]
-        |
-        "\\\""
+          ~["\"","{","}"]
+        | "\\\""
+        | "\\"
         | "{" ~["\""] "}"
       )*
       "\""
@@ -479,9 +479,8 @@ MORE :
 |    < STRING_2:
       "'"
       (
-      ~["'"]
-       |
-       "\\'"
+         ~["'"]
+       | "\\'"
       )*
 
       "'"
@@ -490,8 +489,7 @@ MORE :
       "`"
       (
         ~["`"]
-      |
-        "\\`"
+      | "\\`"
       )*
       "`"
     >
@@ -743,8 +741,7 @@ void ClassBodyDeclaration() :
 {}
 {
   MethodDeclaration()
-|
-  FieldDeclaration()
+| FieldDeclaration()
 }
 
 /**
@@ -757,6 +754,7 @@ void FieldDeclaration() :
 {
   <VAR> variableDeclaration = VariableDeclarator()
   {
+    outlineInfo.addVariable(variableDeclaration.getVariable().getName());
     if (currentSegment != null) {
       currentSegment.add(variableDeclaration);
     }
@@ -810,10 +808,9 @@ String VariableDeclaratorId() :
 }
 {
   try {
-    expr = Variable()
-    {buff.append(expr);}
-    ( LOOKAHEAD(2) expr = VariableSuffix()
-    {buff.append(expr);}
+    expr = Variable()   {buff.append(expr);}
+    ( LOOKAHEAD(2)
+      expr = VariableSuffix() {buff.append(expr);}
     )*
     {return buff.toString();}
   } catch (ParseException e) {
@@ -971,6 +968,7 @@ void MethodDeclaration() :
   functionToken = <FUNCTION>
   try {
     functionDeclaration = MethodDeclarator()
+    {outlineInfo.addVariable(functionDeclaration.getName());}
   } catch (ParseException e) {
     if (errorMessage != null) {
       throw e;
@@ -1097,32 +1095,15 @@ PHPVarDeclaration FormalParameter() :
 String Type() :
 {}
 {
-  <STRING>
-  {return "string";}
-|
-  <BOOL>
-  {return "bool";}
-|
-  <BOOLEAN>
-  {return "boolean";}
-|
-  <REAL>
-  {return "real";}
-|
-  <DOUBLE>
-  {return "double";}
-|
-  <FLOAT>
-  {return "float";}
-|
-  <INT>
-  {return "int";}
-|
-  <INTEGER>
-  {return "integer";}
-|
-  <OBJECT>
-  {return "object";}
+  <STRING>  {return "string";}
+| <BOOL>    {return "bool";}
+| <BOOLEAN> {return "boolean";}
+| <REAL>    {return "real";}
+| <DOUBLE>  {return "double";}
+| <FLOAT>   {return "float";}
+| <INT>     {return "int";}
+| <INTEGER> {return "integer";}
+| <OBJECT>  {return "object";}
 }
 
 String Expression() :
@@ -1132,18 +1113,11 @@ String Expression() :
   final String expr2;
 }
 {
-  expr = PrintExpression()
-  {return expr;}
-|
-  expr = ListExpression()
-  {return expr;}
-|
-  LOOKAHEAD(varAssignation())
-  expr = varAssignation()
-  {return expr;}
-|
-  expr = ConditionalExpression()
-  {return expr;}
+  expr = PrintExpression()       {return expr;}
+| expr = ListExpression()        {return expr;}
+| LOOKAHEAD(varAssignation())
+  expr = varAssignation()        {return expr;}
+| expr = ConditionalExpression() {return expr;}
 }
 
 /**
@@ -1177,32 +1151,19 @@ String varAssignation() :
 String AssignmentOperator() :
 {}
 {
-  <ASSIGN>
-{return "=";}
-| <STARASSIGN>
-{return "*=";}
-| <SLASHASSIGN>
-{return "/=";}
-| <REMASSIGN>
-{return "%=";}
-| <PLUSASSIGN>
-{return "+=";}
-| <MINUSASSIGN>
-{return "-=";}
-| <LSHIFTASSIGN>
-{return "<<=";}
-| <RSIGNEDSHIFTASSIGN>
-{return ">>=";}
-| <ANDASSIGN>
-{return "&=";}
-| <XORASSIGN>
-{return "|=";}
-| <ORASSIGN>
-{return "|=";}
-| <DOTASSIGN>
-{return ".=";}
-| <TILDEEQUAL>
-{return "~=";}
+  <ASSIGN>             {return "=";}
+| <STARASSIGN>         {return "*=";}
+| <SLASHASSIGN>        {return "/=";}
+| <REMASSIGN>          {return "%=";}
+| <PLUSASSIGN>         {return "+=";}
+| <MINUSASSIGN>        {return "-=";}
+| <LSHIFTASSIGN>       {return "<<=";}
+| <RSIGNEDSHIFTASSIGN> {return ">>=";}
+| <ANDASSIGN>          {return "&=";}
+| <XORASSIGN>          {return "|=";}
+| <ORASSIGN>           {return "|=";}
+| <DOTASSIGN>          {return ".=";}
+| <TILDEEQUAL>         {return "~=";}
 }
 
 String ConditionalExpression() :
@@ -1463,8 +1424,8 @@ String UnaryExpression() :
     }
     return token.image + expr;
   }
-|
-  (<AT> {buff.append("@");})* expr = UnaryExpressionNoPrefix()
+| (<AT> {buff.append("@");})*
+  expr = UnaryExpressionNoPrefix()
   {return buff.append(expr).toString();}
 }
 
@@ -1502,27 +1463,19 @@ String UnaryExpressionNotPlusMinus() :
   final String expr;
 }
 {
-  <BANG> expr = UnaryExpression()
-  {return "!" + expr;}
-|
-  LOOKAHEAD( <LPAREN> (Type() | <ARRAY>) <RPAREN> )
-  expr = CastExpression()
-  {return expr;}
-|
-  expr = PostfixExpression()
-  {return expr;}
-|
-  expr = Literal()
-  {return expr;}
-|
-  <LPAREN> expr = Expression()
+  <BANG> expr = UnaryExpression() {return "!" + expr;}
+| LOOKAHEAD( <LPAREN> (Type() | <ARRAY>) <RPAREN> )
+  expr = CastExpression()         {return expr;}
+| expr = PostfixExpression()      {return expr;}
+| expr = Literal()                {return expr;}
+| <LPAREN> expr = Expression()
   try {
     <RPAREN>
   } catch (ParseException e) {
     errorMessage = "')' expected";
     errorLevel   = ERROR;
-    errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
-    errorEnd   = jj_input_stream.getPosition() + 1;
+    errorStart   = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
+    errorEnd     = jj_input_stream.getPosition() + 1;
     throw e;
   }
   {return "("+expr+")";}
@@ -1591,16 +1544,9 @@ String PrimaryPrefix() :
   final Token token;
 }
 {
-  token = <IDENTIFIER>
-  {return token.image;}
-|
-  <NEW> expr = ClassIdentifier()
-  {
-    return "new " + expr;
-  }
-|
-  expr = VariableDeclaratorId()
-  {return expr;}
+  token = <IDENTIFIER>           {return token.image;}
+| <NEW> expr = ClassIdentifier() {return "new " + expr;}
+| expr = VariableDeclaratorId()  {return expr;}
 }
 
 String classInstantiation() :
@@ -1624,11 +1570,8 @@ String ClassIdentifier():
   final Token token;
 }
 {
-  token = <IDENTIFIER>
-  {return token.image;}
-|
-  expr = VariableDeclaratorId()
-  {return expr;}
+  token = <IDENTIFIER>          {return token.image;}
+| expr = VariableDeclaratorId() {return expr;}
 }
 
 String PrimarySuffix() :
@@ -1636,11 +1579,8 @@ String PrimarySuffix() :
   final String expr;
 }
 {
-  expr = Arguments()
-  {return expr;}
-|
-  expr = VariableSuffix()
-  {return expr;}
+  expr = Arguments()      {return expr;}
+| expr = VariableSuffix() {return expr;}
 }
 
 String VariableSuffix() :
@@ -1684,30 +1624,18 @@ String Literal() :
   final Token token;
 }
 {
-  token = <INTEGER_LITERAL>
-  {return token.image;}
-|
-  token = <FLOATING_POINT_LITERAL>
-  {return token.image;}
-|
-  token = <STRING_LITERAL>
-  {return token.image;}
-|
-  expr = BooleanLiteral()
-  {return expr;}
-|
-  <NULL>
-  {return "null";}
+  token = <INTEGER_LITERAL>        {return token.image;}
+| token = <FLOATING_POINT_LITERAL> {return token.image;}
+| token = <STRING_LITERAL>         {return token.image;}
+| expr = BooleanLiteral()          {return expr;}
+| <NULL>                           {return "null";}
 }
 
 String BooleanLiteral() :
 {}
 {
-  <TRUE>
-  {return "true";}
-|
-  <FALSE>
-  {return "false";}
+  <TRUE>  {return "true";}
+| <FALSE> {return "false";}
 }
 
 String Arguments() :
@@ -1745,21 +1673,19 @@ final StringBuffer buff = new StringBuffer();
       try {
         expr = Expression()
       } catch (ParseException e) {
-        errorMessage = "expression expected after a comma in argument list";
+        errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. An expression expected after a comma in argument list";
         errorLevel   = ERROR;
-        errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
-        errorEnd   = jj_input_stream.getPosition() + 1;
+        errorStart   = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
+        errorEnd     = jj_input_stream.getPosition() + 1;
         throw e;
       }
-    {
-      buff.append(",").append(expr);
-    }
+    {buff.append(",").append(expr);}
    )*
    {return buff.toString();}
 }
 
 /**
- * A Statement without break
+ * A Statement without break.
  */
 void StatementNoBreak() :
 {}
@@ -1777,65 +1703,60 @@ void StatementNoBreak() :
       throw e;
     }
   }
-|
-  LOOKAHEAD(2)
+| LOOKAHEAD(2)
   LabeledStatement()
-|
-  Block()
-|
-  EmptyStatement()
-|
-  StatementExpression()
+| Block()
+| EmptyStatement()
+| StatementExpression()
   try {
     <SEMICOLON>
   } catch (ParseException e) {
     errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected";
     errorLevel   = ERROR;
-    errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
-    errorEnd   = jj_input_stream.getPosition() + 1;
+    errorStart   = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
+    errorEnd     = jj_input_stream.getPosition() + 1;
     throw e;
   }
-|
-  SwitchStatement()
-|
-  IfStatement()
-|
-  WhileStatement()
-|
-  DoStatement()
-|
-  ForStatement()
-|
-  ForeachStatement()
-|
-  ContinueStatement()
-|
-  ReturnStatement()
-|
-  EchoStatement()
-|
-  [<AT>] IncludeStatement()
-|
-  StaticStatement()
-|
-  GlobalStatement()
+| SwitchStatement()
+| IfStatement()
+| WhileStatement()
+| DoStatement()
+| ForStatement()
+| ForeachStatement()
+| ContinueStatement()
+| ReturnStatement()
+| EchoStatement()
+| [<AT>] IncludeStatement()
+| StaticStatement()
+| GlobalStatement()
 }
 
 /**
- * A Normal statement
+ * A Normal statement.
  */
 void Statement() :
 {}
 {
   StatementNoBreak()
-|
-  BreakStatement()
+| BreakStatement()
 }
 
+/**
+ * An html block inside a php syntax.
+ */
 void htmlBlock() :
 {}
 {
-  <PHPEND> (phpEchoBlock())* (<PHPSTARTLONG> | <PHPSTARTSHORT>)
+  <PHPEND> (phpEchoBlock())*
+  try {
+    (<PHPSTARTLONG> | <PHPSTARTSHORT>)
+  } catch (ParseException e) {
+    errorMessage = "End of file unexpected, '<?php' expected";
+    errorLevel   = ERROR;
+    errorStart   = jj_input_stream.getPosition();
+    errorEnd     = jj_input_stream.getPosition();
+    throw e;
+  }
 }
 
 /**
@@ -1852,7 +1773,18 @@ void IncludeStatement() :
    | token = <REQUIRE_ONCE>
    | token = <INCLUDE>
    | token = <INCLUDE_ONCE> )
-  expr = Expression()
+    try {
+      expr = Expression()
+    } catch (ParseException e) {
+      if (errorMessage != null) {
+        throw e;
+      }
+      errorMessage = "unexpected token '"+ e.currentToken.next.image+"', expression expected";
+      errorLevel   = ERROR;
+      errorStart   = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
+      errorEnd     = jj_input_stream.getPosition() + 1;
+      throw e;
+    }
   {
     if (currentSegment != null) {
       currentSegment.add(new PHPReqIncDeclaration(currentSegment, token.image,pos,expr));
@@ -1863,23 +1795,18 @@ void IncludeStatement() :
   } catch (ParseException e) {
     errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected";
     errorLevel   = ERROR;
-    errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
-    errorEnd   = jj_input_stream.getPosition() + 1;
+    errorStart   = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
+    errorEnd     = jj_input_stream.getPosition() + 1;
     throw e;
   }
 }
 
 String PrintExpression() :
 {
-  final StringBuffer buff = new StringBuffer("print ");
   final String expr;
 }
 {
-  <PRINT> expr = Expression()
-  {
-    buff.append(expr);
-    return buff.toString();
-  }
+  <PRINT> expr = Expression() {return "print " + expr;}
 }
 
 String ListExpression() :
@@ -1894,8 +1821,8 @@ String ListExpression() :
   } catch (ParseException e) {
     errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', '(' expected";
     errorLevel   = ERROR;
-    errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
-    errorEnd   = jj_input_stream.getPosition() + 1;
+    errorStart   = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
+    errorEnd     = jj_input_stream.getPosition() + 1;
     throw e;
   }
   [
@@ -1908,8 +1835,8 @@ String ListExpression() :
     } catch (ParseException e) {
       errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ',' expected";
       errorLevel   = ERROR;
-      errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
-      errorEnd   = jj_input_stream.getPosition() + 1;
+      errorStart   = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
+      errorEnd     = jj_input_stream.getPosition() + 1;
       throw e;
     }
     expr = VariableDeclaratorId()
@@ -1930,7 +1857,8 @@ String ListExpression() :
 }
 
 /**
- * An echo statement is like this : echo anyexpression (, otherexpression)*
+ * An echo statement.
+ * echo anyexpression (, otherexpression)*
  */
 void EchoStatement() :
 {}
@@ -1942,8 +1870,8 @@ void EchoStatement() :
     if (e.currentToken.next.kind != 4) {
       errorMessage = "';' expected after 'echo' statement";
       errorLevel   = ERROR;
-      errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
-      errorEnd   = jj_input_stream.getPosition() + 1;
+      errorStart   = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
+      errorEnd     = jj_input_stream.getPosition() + 1;
       throw e;
     }
   }
@@ -1969,7 +1897,7 @@ void GlobalStatement() :
   try {
     <SEMICOLON>
   } catch (ParseException e) {
-    errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected";
+    errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. a ';' was expected";
     errorLevel   = ERROR;
     errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
     errorEnd   = jj_input_stream.getPosition() + 1;
@@ -1984,7 +1912,7 @@ void StaticStatement() :
   try {
     <SEMICOLON>
   } catch (ParseException e) {
-    errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. A ';' was expected";
+    errorMessage = "unexpected token : '"+ e.currentToken.next.image +"'. a ';' was expected";
     errorLevel   = ERROR;
     errorStart = jj_input_stream.getPosition() - e.currentToken.next.image.length() + 1;
     errorEnd   = jj_input_stream.getPosition() + 1;
@@ -2026,10 +1954,8 @@ void BlockStatement() :
 {}
 {
   Statement()
-|
-  ClassDeclaration()
-|
-  MethodDeclaration()
+| ClassDeclaration()
+| MethodDeclaration()
 }
 
 /**
@@ -2039,10 +1965,8 @@ void BlockStatementNoBreak() :
 {}
 {
   StatementNoBreak()
-|
-  ClassDeclaration()
-|
-  MethodDeclaration()
+| ClassDeclaration()
+| MethodDeclaration()
 }
 
 void LocalVariableDeclaration() :
@@ -2069,13 +1993,9 @@ void StatementExpression() :
   PreIncDecExpression()
 |
   PrimaryExpression()
-  [
-   <INCR>
-  |
-    <DECR>
-  |
-    AssignmentOperator() Expression()
-  ]
+  [ <INCR>
+  | <DECR>
+  | AssignmentOperator() Expression() ]
 }
 
 void SwitchStatement() :
index beb1960..bffc8ef 100644 (file)
@@ -1444,7 +1444,8 @@ static private final int jjMoveNfa_1(int startState, int curPos)
                      jjCheckNAddStates(13, 20);
                   break;
                case 38:
-                  jjCheckNAddStates(33, 36);
+                  if ((0xfffffffbffffffffL & l) != 0L)
+                     jjCheckNAddStates(33, 36);
                   break;
                case 39:
                   if (curChar == 34)
@@ -1459,7 +1460,8 @@ static private final int jjMoveNfa_1(int startState, int curPos)
                      kind = 80;
                   break;
                case 45:
-                  jjCheckNAddStates(37, 40);
+                  if ((0xfffffffbffffffffL & l) != 0L)
+                     jjCheckNAddStates(37, 40);
                   break;
                case 46:
                   if (curChar == 34)
@@ -1584,7 +1586,8 @@ static private final int jjMoveNfa_1(int startState, int curPos)
                   jjCheckNAddTwoStates(35, 6);
                   break;
                case 38:
-                  jjCheckNAddStates(33, 36);
+                  if ((0xd7ffffffffffffffL & l) != 0L)
+                     jjCheckNAddStates(33, 36);
                   break;
                case 40:
                   if (curChar == 92)
@@ -1602,7 +1605,8 @@ static private final int jjMoveNfa_1(int startState, int curPos)
                      jjCheckNAddStates(33, 36);
                   break;
                case 45:
-                  jjCheckNAddStates(37, 40);
+                  if ((0xd7ffffffffffffffL & l) != 0L)
+                     jjCheckNAddStates(37, 40);
                   break;
                case 47:
                   if (curChar == 92)