*** empty log message ***
authorkpouer <kpouer>
Wed, 18 Jun 2003 20:09:32 +0000 (20:09 +0000)
committerkpouer <kpouer>
Wed, 18 Jun 2003 20:09:32 +0000 (20:09 +0000)
net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/Define.java [new file with mode: 0644]
net.sourceforge.phpeclipse/src/test/PHPParser.java
net.sourceforge.phpeclipse/src/test/PHPParser.jj
net.sourceforge.phpeclipse/src/test/PHPParserConstants.java
net.sourceforge.phpeclipse/src/test/PHPParserTokenManager.java

diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/Define.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/Define.java
new file mode 100644 (file)
index 0000000..ad05eb7
--- /dev/null
@@ -0,0 +1,59 @@
+package net.sourceforge.phpdt.internal.compiler.ast;
+
+import org.eclipse.jface.text.Position;
+import org.eclipse.jface.resource.ImageDescriptor;
+import net.sourceforge.phpdt.internal.compiler.parser.Outlineable;
+import net.sourceforge.phpdt.internal.ui.PHPUiImages;
+
+/**
+ * a Define.
+ * define(expression,expression)
+ * @author Matthieu Casanova
+ */
+public class Define extends Statement implements Outlineable {
+
+  public Expression defineName,defineValue;
+
+  private Object parent;
+  private Position position;
+
+  public Define(Object parent,
+                Expression defineName,
+                Expression defineValue,
+                int sourceStart,
+                int sourceEnd) {
+    super(sourceStart, sourceEnd);
+    this.parent = parent;
+    this.defineName = defineName;
+    this.defineValue = defineValue;
+    position = new Position(sourceStart, sourceEnd);
+  }
+
+  public String toString(int tab) {
+    final StringBuffer buff = new StringBuffer(tabString(tab));
+    buff.append("define(");
+    buff.append(defineName.toStringExpression());
+    buff.append(defineValue.toStringExpression());
+    buff.append(")");
+    return buff.toString();
+  }
+
+  public String toString() {
+    final StringBuffer buff = new StringBuffer(defineName.toStringExpression());
+    buff.append(" = ");
+    buff.append(defineValue.toStringExpression());
+    return buff.toString();
+  }
+
+  public ImageDescriptor getImage() {
+    return PHPUiImages.DESC_VAR;
+  }
+
+  public Object getParent() {
+    return parent;
+  }
+
+  public Position getPosition() {
+    return position;
+  }
+}
index ac04d6b..8f6e050 100644 (file)
@@ -17,6 +17,7 @@ import net.sourceforge.phpeclipse.actions.PHPStartApacheAction;
 import net.sourceforge.phpeclipse.PHPeclipsePlugin;
 import net.sourceforge.phpdt.internal.compiler.ast.*;
 import net.sourceforge.phpdt.internal.compiler.parser.OutlineableWithChildren;
+import net.sourceforge.phpdt.internal.compiler.parser.Outlineable;
 import net.sourceforge.phpdt.internal.compiler.parser.PHPOutlineInfo;
 
 /**
@@ -300,6 +301,7 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon
         case INCLUDE_ONCE:
         case REQUIRE_ONCE:
         case GLOBAL:
+        case DEFINE:
         case STATIC:
         case CONTINUE:
         case DO:
@@ -376,6 +378,7 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon
     case INCLUDE_ONCE:
     case REQUIRE_ONCE:
     case GLOBAL:
+    case DEFINE:
     case STATIC:
     case CONTINUE:
     case DO:
@@ -490,6 +493,7 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon
       case INCLUDE_ONCE:
       case REQUIRE_ONCE:
       case GLOBAL:
+      case DEFINE:
       case STATIC:
       case CONTINUE:
       case DO:
@@ -2050,7 +2054,7 @@ final int pos = SimpleCharStream.getPosition();
   final Token identifier;
   Expression expr;
   final int pos = SimpleCharStream.getPosition();
-    if (jj_2_5(2)) {
+    if (jj_2_7(2)) {
       identifier = jj_consume_token(IDENTIFIER);
       jj_consume_token(STATICCLASSACCESS);
       expr = ClassIdentifier();
@@ -2061,14 +2065,9 @@ final int pos = SimpleCharStream.getPosition();
                           ClassAccess.STATIC);
       label_19:
       while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case CLASSACCESS:
-        case LPAREN:
-        case LBRACKET:
+        if (jj_2_5(2147483647)) {
           ;
-          break;
-        default:
-          jj_la1[58] = jj_gen;
+        } else {
           break label_19;
         }
         expr = PrimarySuffix(expr);
@@ -2083,14 +2082,9 @@ final int pos = SimpleCharStream.getPosition();
         expr = PrimaryPrefix();
         label_20:
         while (true) {
-          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-          case CLASSACCESS:
-          case LPAREN:
-          case LBRACKET:
+          if (jj_2_6(2147483647)) {
             ;
-            break;
-          default:
-            jj_la1[59] = jj_gen;
+          } else {
             break label_20;
           }
           expr = PrimarySuffix(expr);
@@ -2102,7 +2096,7 @@ final int pos = SimpleCharStream.getPosition();
    {if (true) return expr;}
         break;
       default:
-        jj_la1[60] = jj_gen;
+        jj_la1[58] = jj_gen;
         jj_consume_token(-1);
         throw new ParseException();
       }
@@ -2110,6 +2104,11 @@ final int pos = SimpleCharStream.getPosition();
     throw new Error("Missing return statement in function");
   }
 
+/**
+ * An array declarator.
+ * array(vars)
+ * @return an array
+ */
   static final public ArrayInitializer ArrayDeclarator() throws ParseException {
   final ArrayVariableDeclaration[] vars;
   final int pos = SimpleCharStream.getPosition();
@@ -2147,7 +2146,7 @@ final int pos = SimpleCharStream.getPosition();
                                                                 SimpleCharStream.getPosition());}
       break;
     default:
-      jj_la1[61] = jj_gen;
+      jj_la1[59] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -2174,7 +2173,7 @@ final int pos = SimpleCharStream.getPosition();
                                   SimpleCharStream.getPosition());
       break;
     default:
-      jj_la1[62] = jj_gen;
+      jj_la1[60] = jj_gen;
       ;
     }
    {if (true) return new PrefixedUnaryExpression(expr,
@@ -2202,7 +2201,7 @@ final int pos = SimpleCharStream.getPosition();
                                                                SimpleCharStream.getPosition());}
       break;
     default:
-      jj_la1[63] = jj_gen;
+      jj_la1[61] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -2222,7 +2221,7 @@ final int pos = SimpleCharStream.getPosition();
                                  {if (true) return expr;}
       break;
     default:
-      jj_la1[64] = jj_gen;
+      jj_la1[62] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -2318,13 +2317,13 @@ final int pos = SimpleCharStream.getPosition();
           expression = Type();
           break;
         default:
-          jj_la1[65] = jj_gen;
+          jj_la1[63] = jj_gen;
           jj_consume_token(-1);
           throw new ParseException();
         }
         break;
       default:
-        jj_la1[66] = jj_gen;
+        jj_la1[64] = jj_gen;
         ;
       }
       try {
@@ -2339,7 +2338,7 @@ final int pos = SimpleCharStream.getPosition();
    {if (true) return new ArrayDeclarator(prefix,expression,SimpleCharStream.getPosition());}
       break;
     default:
-      jj_la1[67] = jj_gen;
+      jj_la1[65] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -2381,7 +2380,7 @@ final int pos = SimpleCharStream.getPosition();
                                     {if (true) return new NullLiteral(pos-4,pos);}
       break;
     default:
-      jj_la1[68] = jj_gen;
+      jj_la1[66] = jj_gen;
       jj_consume_token(-1);
       throw new ParseException();
     }
@@ -2416,7 +2415,7 @@ Expression[] args = null;
       args = ArgumentList();
       break;
     default:
-      jj_la1[69] = jj_gen;
+      jj_la1[67] = jj_gen;
       ;
     }
     try {
@@ -2449,7 +2448,7 @@ final ArrayList list = new ArrayList();
         ;
         break;
       default:
-        jj_la1[70] = jj_gen;
+        jj_la1[68] = jj_gen;
         break label_21;
       }
       jj_consume_token(COMMA);
@@ -2476,7 +2475,7 @@ final ArrayList list = new ArrayList();
   static final public Statement StatementNoBreak() throws ParseException {
   final Statement statement;
   Token token = null;
-    if (jj_2_6(2)) {
+    if (jj_2_8(2)) {
       statement = Expression();
       try {
         jj_consume_token(SEMICOLON);
@@ -2490,7 +2489,7 @@ final ArrayList list = new ArrayList();
     }
       }
    {if (true) return statement;}
-    } else if (jj_2_7(2)) {
+    } else if (jj_2_9(2)) {
       statement = LabeledStatement();
                                   {if (true) return statement;}
     } else {
@@ -2568,7 +2567,7 @@ final ArrayList list = new ArrayList();
           token = jj_consume_token(AT);
           break;
         default:
-          jj_la1[71] = jj_gen;
+          jj_la1[69] = jj_gen;
           ;
         }
         statement = IncludeStatement();
@@ -2585,8 +2584,12 @@ final ArrayList list = new ArrayList();
         statement = GlobalStatement();
                                          {if (true) return statement;}
         break;
+      case DEFINE:
+        statement = defineStatement();
+                                         currentSegment.add((Outlineable)statement);{if (true) return statement;}
+        break;
       default:
-        jj_la1[72] = jj_gen;
+        jj_la1[70] = jj_gen;
         jj_consume_token(-1);
         throw new ParseException();
       }
@@ -2594,6 +2597,100 @@ final ArrayList list = new ArrayList();
     throw new Error("Missing return statement in function");
   }
 
+  static final public Define defineStatement() throws ParseException {
+  final int start = SimpleCharStream.getPosition();
+  Expression defineName,defineValue;
+    jj_consume_token(DEFINE);
+    try {
+      jj_consume_token(LPAREN);
+    } catch (ParseException e) {
+    errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', '(' expected";
+    errorLevel   = ERROR;
+    errorStart   = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
+    errorEnd     = SimpleCharStream.getPosition() + 1;
+    processParseException(e);
+    }
+    try {
+      defineName = Expression();
+    } catch (ParseException e) {
+    errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', expression expected";
+    errorLevel   = ERROR;
+    errorStart   = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
+    errorEnd     = SimpleCharStream.getPosition() + 1;
+    {if (true) throw e;}
+    }
+    try {
+      jj_consume_token(COMMA);
+    } catch (ParseException e) {
+    errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ',' expected";
+    errorLevel   = ERROR;
+    errorStart   = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
+    errorEnd     = SimpleCharStream.getPosition() + 1;
+    processParseException(e);
+    }
+    try {
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case PRINT:
+        defineValue = PrintExpression();
+        break;
+      default:
+        jj_la1[71] = jj_gen;
+        if (jj_2_10(2147483647)) {
+          defineValue = varAssignation();
+        } else {
+          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+          case ARRAY:
+          case NEW:
+          case NULL:
+          case TRUE:
+          case FALSE:
+          case AT:
+          case DOLLAR:
+          case BANG:
+          case PLUS_PLUS:
+          case MINUS_MINUS:
+          case PLUS:
+          case MINUS:
+          case BIT_AND:
+          case INTEGER_LITERAL:
+          case FLOATING_POINT_LITERAL:
+          case STRING_LITERAL:
+          case IDENTIFIER:
+          case LPAREN:
+          case DOLLAR_ID:
+            defineValue = ConditionalExpression();
+            break;
+          default:
+            jj_la1[72] = jj_gen;
+            jj_consume_token(-1);
+            throw new ParseException();
+          }
+        }
+      }
+    } catch (ParseException e) {
+    errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', expression expected";
+    errorLevel   = ERROR;
+    errorStart   = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
+    errorEnd     = SimpleCharStream.getPosition() + 1;
+    {if (true) throw e;}
+    }
+    try {
+      jj_consume_token(RPAREN);
+    } catch (ParseException e) {
+    errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ')' expected";
+    errorLevel   = ERROR;
+    errorStart   = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
+    errorEnd     = SimpleCharStream.getPosition() + 1;
+    processParseException(e);
+    }
+   {if (true) return new Define(currentSegment,
+                     defineName,
+                     defineValue,
+                     start,
+                     SimpleCharStream.getPosition());}
+    throw new Error("Missing return statement in function");
+  }
+
 /**
  * A Normal statement.
  */
@@ -2610,6 +2707,7 @@ final ArrayList list = new ArrayList();
     case INCLUDE_ONCE:
     case REQUIRE_ONCE:
     case GLOBAL:
+    case DEFINE:
     case STATIC:
     case CONTINUE:
     case DO:
@@ -3018,6 +3116,7 @@ final ArrayList list = new ArrayList();
       case INCLUDE_ONCE:
       case REQUIRE_ONCE:
       case GLOBAL:
+      case DEFINE:
       case STATIC:
       case CONTINUE:
       case DO:
@@ -3066,6 +3165,7 @@ final ArrayList list = new ArrayList();
       case INCLUDE_ONCE:
       case REQUIRE_ONCE:
       case GLOBAL:
+      case DEFINE:
       case STATIC:
       case CONTINUE:
       case DO:
@@ -3136,6 +3236,7 @@ final ArrayList list = new ArrayList();
     case INCLUDE_ONCE:
     case REQUIRE_ONCE:
     case GLOBAL:
+    case DEFINE:
     case STATIC:
     case CONTINUE:
     case DO:
@@ -3211,6 +3312,7 @@ final ArrayList list = new ArrayList();
     case INCLUDE_ONCE:
     case REQUIRE_ONCE:
     case GLOBAL:
+    case DEFINE:
     case STATIC:
     case CONTINUE:
     case DO:
@@ -3563,6 +3665,7 @@ final ArrayList list = new ArrayList();
       case INCLUDE_ONCE:
       case REQUIRE_ONCE:
       case GLOBAL:
+      case DEFINE:
       case STATIC:
       case CONTINUE:
       case DO:
@@ -3610,6 +3713,7 @@ final ArrayList list = new ArrayList();
       case INCLUDE_ONCE:
       case REQUIRE_ONCE:
       case GLOBAL:
+      case DEFINE:
       case STATIC:
       case CONTINUE:
       case DO:
@@ -3833,6 +3937,7 @@ final ArrayList list = new ArrayList();
         case INCLUDE_ONCE:
         case REQUIRE_ONCE:
         case GLOBAL:
+        case DEFINE:
         case STATIC:
         case CONTINUE:
         case DO:
@@ -3879,6 +3984,7 @@ final ArrayList list = new ArrayList();
         case INCLUDE_ONCE:
         case REQUIRE_ONCE:
         case GLOBAL:
+        case DEFINE:
         case STATIC:
         case CONTINUE:
         case DO:
@@ -4002,6 +4108,7 @@ final ArrayList list = new ArrayList();
     case INCLUDE_ONCE:
     case REQUIRE_ONCE:
     case GLOBAL:
+    case DEFINE:
     case STATIC:
     case CONTINUE:
     case DO:
@@ -4042,6 +4149,7 @@ final ArrayList list = new ArrayList();
       case INCLUDE_ONCE:
       case REQUIRE_ONCE:
       case GLOBAL:
+      case DEFINE:
       case STATIC:
       case CONTINUE:
       case DO:
@@ -4155,6 +4263,7 @@ final ArrayList list = new ArrayList();
       case INCLUDE_ONCE:
       case REQUIRE_ONCE:
       case GLOBAL:
+      case DEFINE:
       case STATIC:
       case CONTINUE:
       case DO:
@@ -4201,6 +4310,7 @@ final ArrayList list = new ArrayList();
       case INCLUDE_ONCE:
       case REQUIRE_ONCE:
       case GLOBAL:
+      case DEFINE:
       case STATIC:
       case CONTINUE:
       case DO:
@@ -4269,6 +4379,7 @@ final ArrayList list = new ArrayList();
       case INCLUDE_ONCE:
       case REQUIRE_ONCE:
       case GLOBAL:
+      case DEFINE:
       case STATIC:
       case CONTINUE:
       case DO:
@@ -4315,6 +4426,7 @@ final ArrayList list = new ArrayList();
       case INCLUDE_ONCE:
       case REQUIRE_ONCE:
       case GLOBAL:
+      case DEFINE:
       case STATIC:
       case CONTINUE:
       case DO:
@@ -4409,6 +4521,7 @@ final ArrayList list = new ArrayList();
         case INCLUDE_ONCE:
         case REQUIRE_ONCE:
         case GLOBAL:
+        case DEFINE:
         case STATIC:
         case CONTINUE:
         case DO:
@@ -4489,6 +4602,7 @@ final ArrayList list = new ArrayList();
     case INCLUDE_ONCE:
     case REQUIRE_ONCE:
     case GLOBAL:
+    case DEFINE:
     case STATIC:
     case CONTINUE:
     case DO:
@@ -4708,6 +4822,7 @@ final int startBlock, endBlock;
     case INCLUDE_ONCE:
     case REQUIRE_ONCE:
     case GLOBAL:
+    case DEFINE:
     case STATIC:
     case CONTINUE:
     case DO:
@@ -4756,6 +4871,7 @@ final int startBlock, endBlock;
         case INCLUDE_ONCE:
         case REQUIRE_ONCE:
         case GLOBAL:
+        case DEFINE:
         case STATIC:
         case CONTINUE:
         case DO:
@@ -4836,7 +4952,7 @@ final int startBlock, endBlock;
 
   static final public Expression[] ForInit() throws ParseException {
   Expression[] exprs;
-    if (jj_2_8(2147483647)) {
+    if (jj_2_11(2147483647)) {
       exprs = LocalVariableDeclaration();
    {if (true) return exprs;}
     } else {
@@ -5031,120 +5147,199 @@ final int startBlock, endBlock;
     return retval;
   }
 
-  static final private boolean jj_3R_81() {
-    if (jj_scan_token(INT)) return true;
+  static final private boolean jj_2_9(int xla) {
+    jj_la = xla; jj_lastpos = jj_scanpos = token;
+    boolean retval = !jj_3_9();
+    jj_save(8, xla);
+    return retval;
+  }
+
+  static final private boolean jj_2_10(int xla) {
+    jj_la = xla; jj_lastpos = jj_scanpos = token;
+    boolean retval = !jj_3_10();
+    jj_save(9, xla);
+    return retval;
+  }
+
+  static final private boolean jj_2_11(int xla) {
+    jj_la = xla; jj_lastpos = jj_scanpos = token;
+    boolean retval = !jj_3_11();
+    jj_save(10, xla);
+    return retval;
+  }
+
+  static final private boolean jj_3R_59() {
+    if (jj_3R_90()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_44() {
-    if (jj_scan_token(ARRAY)) return true;
+  static final private boolean jj_3R_58() {
+    if (jj_3R_42()) 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(FLOAT)) return true;
+  static final private boolean jj_3R_57() {
+    if (jj_3R_89()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_184() {
-    if (jj_scan_token(ARRAY)) return true;
+  static final private boolean jj_3R_46() {
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_56()) {
+    jj_scanpos = xsp;
+    if (jj_3R_57()) {
+    jj_scanpos = xsp;
+    if (jj_3R_58()) {
+    jj_scanpos = xsp;
+    if (jj_3R_59()) 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_79() {
-    if (jj_scan_token(DOUBLE)) return true;
+  static final private boolean jj_3R_56() {
+    if (jj_3R_88()) 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(LIST)) return true;
+  static final private boolean jj_3R_200() {
+    if (jj_scan_token(MINUS_MINUS)) 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_199() {
+    if (jj_scan_token(PLUS_PLUS)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    return false;
+  }
+
+  static final private boolean jj_3R_192() {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_99()) jj_scanpos = xsp;
-    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_3R_100()) { jj_scanpos = xsp; break; }
-      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    }
-    if (jj_scan_token(RPAREN)) return true;
+    if (jj_3R_199()) {
+    jj_scanpos = xsp;
+    if (jj_3R_200()) 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_175() {
+    if (jj_3R_173()) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_101()) jj_scanpos = xsp;
+    if (jj_3R_192()) jj_scanpos = xsp;
     else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_183() {
-    if (jj_3R_52()) return true;
+  static final private boolean jj_3R_86() {
+    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_78() {
+  static final private boolean jj_3R_85() {
+    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_84() {
+    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_44() {
+    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_83() {
+    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_191() {
+    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_82() {
+    if (jj_scan_token(DOUBLE)) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    return false;
+  }
+
+  static final private boolean jj_3R_190() {
+    if (jj_3R_53()) 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(REAL)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_167() {
+  static final private boolean jj_3R_174() {
     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_183()) {
+    if (jj_3R_190()) {
     jj_scanpos = xsp;
-    if (jj_3R_184()) return true;
+    if (jj_3R_191()) 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_139()) return true;
+    if (jj_3R_146()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_77() {
+  static final private boolean jj_3R_80() {
     if (jj_scan_token(BOOLEAN)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_76() {
+  static final private boolean jj_3R_79() {
     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_43() {
-    if (jj_3R_52()) return true;
+    if (jj_3R_53()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_75() {
+  static final private boolean jj_3R_78() {
     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_52() {
+  static final private boolean jj_3R_53() {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_75()) {
-    jj_scanpos = xsp;
-    if (jj_3R_76()) {
-    jj_scanpos = xsp;
-    if (jj_3R_77()) {
-    jj_scanpos = xsp;
     if (jj_3R_78()) {
     jj_scanpos = xsp;
     if (jj_3R_79()) {
@@ -5155,7 +5350,13 @@ final int startBlock, endBlock;
     jj_scanpos = xsp;
     if (jj_3R_82()) {
     jj_scanpos = xsp;
-    if (jj_3R_83()) return true;
+    if (jj_3R_83()) {
+    jj_scanpos = xsp;
+    if (jj_3R_84()) {
+    jj_scanpos = xsp;
+    if (jj_3R_85()) {
+    jj_scanpos = xsp;
+    if (jj_3R_86()) 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;
@@ -5168,14 +5369,6 @@ final int startBlock, endBlock;
     return false;
   }
 
-  static final private boolean jj_3R_84() {
-    if (jj_scan_token(PRINT)) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_45()) 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;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
@@ -5191,46 +5384,54 @@ final int startBlock, endBlock;
     return false;
   }
 
-  static final private boolean jj_3R_165() {
+  static final private boolean jj_3R_91() {
+    if (jj_scan_token(ASSIGN)) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    if (jj_3R_46()) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    return false;
+  }
+
+  static final private boolean jj_3R_172() {
     if (jj_scan_token(LPAREN)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_45()) return true;
+    if (jj_3R_46()) 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_164() {
-    if (jj_3R_169()) return true;
+  static final private boolean jj_3R_171() {
+    if (jj_3R_176()) 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_170() {
+    if (jj_3R_175()) 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_169() {
+    if (jj_3R_174()) 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_165() {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_161()) {
+    if (jj_3R_168()) {
     jj_scanpos = xsp;
-    if (jj_3R_162()) {
+    if (jj_3R_169()) {
     jj_scanpos = xsp;
-    if (jj_3R_163()) {
+    if (jj_3R_170()) {
     jj_scanpos = xsp;
-    if (jj_3R_164()) {
+    if (jj_3R_171()) {
     jj_scanpos = xsp;
-    if (jj_3R_165()) return true;
+    if (jj_3R_172()) 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;
@@ -5239,231 +5440,255 @@ final int startBlock, endBlock;
     return false;
   }
 
-  static final private boolean jj_3R_161() {
+  static final private boolean jj_3R_168() {
     if (jj_scan_token(BANG)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_139()) return true;
+    if (jj_3R_146()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_160() {
+  static final private boolean jj_3R_167() {
     if (jj_scan_token(MINUS_MINUS)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_159() {
+  static final private boolean jj_3R_166() {
     if (jj_scan_token(PLUS_PLUS)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_157() {
+  static final private boolean jj_3R_164() {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_159()) {
+    if (jj_3R_166()) {
     jj_scanpos = xsp;
-    if (jj_3R_160()) return true;
+    if (jj_3R_167()) 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_3R_173()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_152() {
-    if (jj_3R_158()) return true;
+  static final private boolean jj_3_10() {
+    if (jj_3R_42()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_151() {
-    if (jj_3R_157()) return true;
+  static final private boolean jj_3R_159() {
+    if (jj_3R_165()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_156() {
+  static final private boolean jj_3R_158() {
+    if (jj_3R_164()) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    return false;
+  }
+
+  static final private boolean jj_3R_163() {
     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_155() {
+  static final private boolean jj_3R_60() {
+    if (jj_3R_51()) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_91()) jj_scanpos = xsp;
+    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    return false;
+  }
+
+  static final private boolean jj_3R_162() {
     if (jj_scan_token(PLUS)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_148() {
+  static final private boolean jj_3R_155() {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_150()) {
+    if (jj_3R_157()) {
     jj_scanpos = xsp;
-    if (jj_3R_151()) {
+    if (jj_3R_158()) {
     jj_scanpos = xsp;
-    if (jj_3R_152()) return true;
+    if (jj_3R_159()) 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_150() {
+  static final private boolean jj_3R_157() {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_155()) {
+    if (jj_3R_162()) {
     jj_scanpos = xsp;
-    if (jj_3R_156()) return true;
+    if (jj_3R_163()) 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_139()) return true;
+    if (jj_3R_146()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_154() {
-    if (jj_3R_148()) return true;
+  static final private boolean jj_3R_61() {
+    if (jj_scan_token(COMMA)) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    if (jj_3R_60()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_149() {
+  static final private boolean jj_3R_161() {
+    if (jj_3R_155()) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    return false;
+  }
+
+  static final private boolean jj_3R_48() {
+    if (jj_3R_60()) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    Token xsp;
+    while (true) {
+      xsp = jj_scanpos;
+      if (jj_3R_61()) { jj_scanpos = xsp; break; }
+      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    }
+    return false;
+  }
+
+  static final private boolean jj_3R_156() {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_153()) {
+    if (jj_3R_160()) {
     jj_scanpos = xsp;
-    if (jj_3R_154()) return true;
+    if (jj_3R_161()) 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_153() {
+  static final private boolean jj_3R_160() {
     if (jj_scan_token(AT)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_149()) return true;
+    if (jj_3R_156()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_144() {
-    if (jj_3R_149()) return true;
+  static final private boolean jj_3R_151() {
+    if (jj_3R_156()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_139() {
+  static final private boolean jj_3R_146() {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_143()) {
+    if (jj_3R_150()) {
     jj_scanpos = xsp;
-    if (jj_3R_144()) return true;
+    if (jj_3R_151()) 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_143() {
+  static final private boolean jj_3R_150() {
     if (jj_scan_token(BIT_AND)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_148()) return true;
+    if (jj_3R_155()) 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(ASSIGN)) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_45()) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    return false;
-  }
-
-  static final private boolean jj_3R_147() {
+  static final private boolean jj_3R_154() {
     if (jj_scan_token(REMAINDER)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_146() {
+  static final private boolean jj_3R_153() {
     if (jj_scan_token(SLASH)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_145() {
+  static final private boolean jj_3R_152() {
     if (jj_scan_token(STAR)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_140() {
+  static final private boolean jj_3R_147() {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_145()) {
+    if (jj_3R_152()) {
     jj_scanpos = xsp;
-    if (jj_3R_146()) {
+    if (jj_3R_153()) {
     jj_scanpos = xsp;
-    if (jj_3R_147()) return true;
+    if (jj_3R_154()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_139()) return true;
+    if (jj_3R_146()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_134() {
-    if (jj_3R_139()) return true;
+  static final private boolean jj_3R_141() {
+    if (jj_3R_146()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     Token xsp;
     while (true) {
       xsp = jj_scanpos;
-      if (jj_3R_140()) { jj_scanpos = xsp; break; }
+      if (jj_3R_147()) { jj_scanpos = xsp; break; }
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     }
     return false;
   }
 
-  static final private boolean jj_3R_142() {
-    if (jj_scan_token(MINUS)) return true;
+  static final private boolean jj_3_9() {
+    if (jj_3R_47()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_141() {
-    if (jj_scan_token(PLUS)) return true;
+  static final private boolean jj_3R_149() {
+    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_57() {
-    if (jj_3R_50()) return true;
+  static final private boolean jj_3R_148() {
+    if (jj_scan_token(PLUS)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_87()) jj_scanpos = xsp;
-    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_198() {
+  static final private boolean jj_3R_202() {
     if (jj_scan_token(COMMA)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_135() {
+  static final private boolean jj_3R_142() {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_141()) {
+    if (jj_3R_148()) {
     jj_scanpos = xsp;
-    if (jj_3R_142()) return true;
+    if (jj_3R_149()) 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_134()) return true;
+    if (jj_3R_141()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
@@ -5476,19 +5701,19 @@ final int startBlock, endBlock;
     return false;
   }
 
-  static final private boolean jj_3R_128() {
-    if (jj_3R_134()) return true;
+  static final private boolean jj_3R_135() {
+    if (jj_3R_141()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     Token xsp;
     while (true) {
       xsp = jj_scanpos;
-      if (jj_3R_135()) { jj_scanpos = xsp; break; }
+      if (jj_3R_142()) { jj_scanpos = xsp; break; }
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     }
     return false;
   }
 
-  static final private boolean jj_3R_197() {
+  static final private boolean jj_3R_201() {
     if (jj_3R_41()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     Token xsp;
@@ -5500,380 +5725,352 @@ final int startBlock, endBlock;
     return false;
   }
 
-  static final private boolean jj_3_7() {
+  static final private boolean jj_3_8() {
     if (jj_3R_46()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    return false;
-  }
-
-  static final private boolean jj_3R_58() {
-    if (jj_scan_token(COMMA)) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_57()) return true;
+    if (jj_scan_token(SEMICOLON)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_138() {
+  static final private boolean jj_3R_145() {
     if (jj_scan_token(RUNSIGNEDSHIFT)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_47() {
-    if (jj_3R_57()) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_3R_58()) { jj_scanpos = xsp; break; }
-      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    }
-    return false;
-  }
-
-  static final private boolean jj_3R_192() {
+  static final private boolean jj_3R_198() {
     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_197()) jj_scanpos = xsp;
+    if (jj_3R_201()) jj_scanpos = xsp;
     else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     xsp = jj_scanpos;
-    if (jj_3R_198()) jj_scanpos = xsp;
+    if (jj_3R_202()) 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_137() {
+  static final private boolean jj_3R_144() {
     if (jj_scan_token(RSIGNEDSHIFT)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_136() {
+  static final private boolean jj_3R_143() {
     if (jj_scan_token(LSHIFT)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_129() {
+  static final private boolean jj_3R_136() {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_136()) {
+    if (jj_3R_143()) {
     jj_scanpos = xsp;
-    if (jj_3R_137()) {
+    if (jj_3R_144()) {
     jj_scanpos = xsp;
-    if (jj_3R_138()) return true;
+    if (jj_3R_145()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_128()) return true;
+    if (jj_3R_135()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3_6() {
-    if (jj_3R_45()) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_scan_token(SEMICOLON)) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    return false;
-  }
-
-  static final private boolean jj_3R_121() {
-    if (jj_3R_128()) return true;
+  static final private boolean jj_3R_128() {
+    if (jj_3R_135()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     Token xsp;
     while (true) {
       xsp = jj_scanpos;
-      if (jj_3R_129()) { jj_scanpos = xsp; break; }
+      if (jj_3R_136()) { jj_scanpos = xsp; break; }
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     }
     return false;
   }
 
-  static final private boolean jj_3R_201() {
+  static final private boolean jj_3_11() {
+    if (jj_3R_48()) 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_45()) return true;
+    if (jj_3R_46()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
   static final private boolean jj_3R_41() {
-    if (jj_3R_45()) return true;
+    if (jj_3R_46()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_201()) jj_scanpos = xsp;
+    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_133() {
+  static final private boolean jj_3R_47() {
+    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_140() {
     if (jj_scan_token(GE)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_132() {
+  static final private boolean jj_3R_139() {
     if (jj_scan_token(LE)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_131() {
+  static final private boolean jj_3R_138() {
     if (jj_scan_token(GT)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_130() {
+  static final private boolean jj_3R_137() {
     if (jj_scan_token(LT)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_122() {
+  static final private boolean jj_3R_110() {
+    if (jj_scan_token(COMMA)) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    if (jj_3R_46()) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    return false;
+  }
+
+  static final private boolean jj_3R_129() {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_130()) {
+    if (jj_3R_137()) {
     jj_scanpos = xsp;
-    if (jj_3R_131()) {
+    if (jj_3R_138()) {
     jj_scanpos = xsp;
-    if (jj_3R_132()) {
+    if (jj_3R_139()) {
     jj_scanpos = xsp;
-    if (jj_3R_133()) return true;
+    if (jj_3R_140()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_121()) return true;
+    if (jj_3R_128()) 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_126() {
+    if (jj_3R_128()) 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_129()) { 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(COMMA)) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_45()) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    return false;
-  }
-
-  static final private boolean jj_3R_202() {
-    if (jj_3R_45()) return true;
+  static final private boolean jj_3R_107() {
+    if (jj_3R_46()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     Token xsp;
     while (true) {
       xsp = jj_scanpos;
-      if (jj_3R_203()) { jj_scanpos = xsp; break; }
+      if (jj_3R_110()) { jj_scanpos = xsp; break; }
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     }
     return false;
   }
 
-  static final private boolean jj_3R_200() {
-    if (jj_3R_202()) return true;
+  static final private boolean jj_3R_100() {
+    if (jj_3R_107()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_127() {
+  static final private boolean jj_3R_97() {
+    if (jj_3R_53()) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    return false;
+  }
+
+  static final private boolean jj_3R_134() {
     if (jj_scan_token(TRIPLEEQUAL)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_126() {
+  static final private boolean jj_3R_133() {
     if (jj_scan_token(BANGDOUBLEEQUAL)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_125() {
+  static final private boolean jj_3R_132() {
     if (jj_scan_token(NOT_EQUAL)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_108() {
+  static final private boolean jj_3R_87() {
+    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_100()) 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_115() {
     if (jj_scan_token(LBRACE)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_45()) return true;
+    if (jj_3R_46()) 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_124() {
+  static final private boolean jj_3R_131() {
     if (jj_scan_token(DIF)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_123() {
+  static final private boolean jj_3R_130() {
     if (jj_scan_token(EQUAL_EQUAL)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_91() {
+  static final private boolean jj_3R_95() {
     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_120() {
+  static final private boolean jj_3R_127() {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_123()) {
+    if (jj_3R_130()) {
     jj_scanpos = xsp;
-    if (jj_3R_124()) {
+    if (jj_3R_131()) {
     jj_scanpos = xsp;
-    if (jj_3R_125()) {
+    if (jj_3R_132()) {
     jj_scanpos = xsp;
-    if (jj_3R_126()) {
+    if (jj_3R_133()) {
     jj_scanpos = xsp;
-    if (jj_3R_127()) return true;
+    if (jj_3R_134()) 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;
-    if (jj_3R_119()) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    return false;
-  }
-
-  static final private boolean jj_3R_93() {
-    if (jj_3R_52()) return true;
+    if (jj_3R_126()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_117() {
-    if (jj_3R_119()) return true;
+  static final private boolean jj_3R_124() {
+    if (jj_3R_126()) 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_3R_127()) { 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_scan_token(LPAREN)) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    Token xsp;
-    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_90() {
-    if (jj_scan_token(DOLLAR)) 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_177() {
+  static final private boolean jj_3R_184() {
     if (jj_scan_token(NULL)) 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(BIT_AND)) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_117()) return true;
+  static final private boolean jj_3R_183() {
+    if (jj_scan_token(FALSE)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_176() {
-    if (jj_scan_token(FALSE)) return true;
+  static final private boolean jj_3R_94() {
+    if (jj_scan_token(DOLLAR)) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    if (jj_3R_62()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_175() {
+  static final private boolean jj_3R_182() {
     if (jj_scan_token(TRUE)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_115() {
-    if (jj_3R_117()) return true;
+  static final private boolean jj_3R_181() {
+    if (jj_scan_token(STRING_LITERAL)) 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;
   }
 
-  static final private boolean jj_3R_89() {
-    if (jj_scan_token(IDENTIFIER)) return true;
+  static final private boolean jj_3R_180() {
+    if (jj_scan_token(FLOATING_POINT_LITERAL)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_108()) jj_scanpos = xsp;
-    else 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;
+  static final private boolean jj_3R_125() {
+    if (jj_scan_token(BIT_AND)) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    if (jj_3R_124()) 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;
+  static final private boolean jj_3R_179() {
+    if (jj_scan_token(INTEGER_LITERAL)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_169() {
+  static final private boolean jj_3R_176() {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_172()) {
+    if (jj_3R_179()) {
     jj_scanpos = xsp;
-    if (jj_3R_173()) {
+    if (jj_3R_180()) {
     jj_scanpos = xsp;
-    if (jj_3R_174()) {
+    if (jj_3R_181()) {
     jj_scanpos = xsp;
-    if (jj_3R_175()) {
+    if (jj_3R_182()) {
     jj_scanpos = xsp;
-    if (jj_3R_176()) {
+    if (jj_3R_183()) {
     jj_scanpos = xsp;
-    if (jj_3R_177()) return true;
+    if (jj_3R_184()) 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;
@@ -5883,304 +6080,314 @@ final int startBlock, endBlock;
     return false;
   }
 
-  static final private boolean jj_3R_172() {
-    if (jj_scan_token(INTEGER_LITERAL)) return true;
+  static final private boolean jj_3R_122() {
+    if (jj_3R_124()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    Token xsp;
+    while (true) {
+      xsp = jj_scanpos;
+      if (jj_3R_125()) { jj_scanpos = xsp; break; }
+      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    }
     return false;
   }
 
-  static final private boolean jj_3R_88() {
-    if (jj_scan_token(LBRACE)) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_45()) return true;
+  static final private boolean jj_3R_93() {
+    if (jj_scan_token(IDENTIFIER)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_scan_token(RBRACE)) return true;
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_115()) 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_3R_46()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_59() {
+  static final private boolean jj_3R_63() {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_88()) {
-    jj_scanpos = xsp;
-    if (jj_3R_89()) {
-    jj_scanpos = xsp;
-    if (jj_3R_90()) {
+    if (jj_3R_96()) {
     jj_scanpos = xsp;
-    if (jj_3R_91()) 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;
-    } 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_116() {
-    if (jj_scan_token(XOR)) return true;
+  static final private boolean jj_3R_92() {
+    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_46()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    return false;
-  }
-
-  static final private boolean jj_3R_92() {
-    if (jj_3R_45()) return true;
+    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_60() {
+  static final private boolean jj_3R_62() {
     Token xsp;
     xsp = jj_scanpos;
     if (jj_3R_92()) {
     jj_scanpos = xsp;
-    if (jj_3R_93()) return true;
+    if (jj_3R_93()) {
+    jj_scanpos = xsp;
+    if (jj_3R_94()) {
+    jj_scanpos = xsp;
+    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;
+    } 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_3_8() {
-    if (jj_3R_47()) return true;
+  static final private boolean jj_3R_123() {
+    if (jj_scan_token(XOR)) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    if (jj_3R_122()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_113() {
-    if (jj_3R_115()) return true;
+  static final private boolean jj_3R_120() {
+    if (jj_3R_122()) 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_3R_123()) { jj_scanpos = xsp; break; }
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     }
     return false;
   }
 
-  static final private boolean jj_3R_98() {
+  static final private boolean jj_3R_103() {
     if (jj_scan_token(LBRACE)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_45()) return true;
+    if (jj_3R_46()) 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_46() {
-    if (jj_scan_token(IDENTIFIER)) return true;
+  static final private boolean jj_3R_50() {
+    if (jj_scan_token(LBRACKET)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_scan_token(COLON)) return true;
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_63()) 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;
   }
 
-  static final private boolean jj_3R_95() {
+  static final private boolean jj_3R_99() {
     if (jj_scan_token(DOLLAR)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_59()) return true;
+    if (jj_3R_62()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_114() {
+  static final private boolean jj_3R_121() {
     if (jj_scan_token(BIT_OR)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_113()) return true;
+    if (jj_3R_120()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_109() {
-    if (jj_3R_113()) return true;
+  static final private boolean jj_3R_116() {
+    if (jj_3R_120()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     Token xsp;
     while (true) {
       xsp = jj_scanpos;
-      if (jj_3R_114()) { jj_scanpos = xsp; break; }
+      if (jj_3R_121()) { jj_scanpos = xsp; break; }
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     }
     return false;
   }
 
-  static final private boolean jj_3R_49() {
-    if (jj_scan_token(LBRACKET)) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+  static final private boolean jj_3R_40() {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_60()) jj_scanpos = xsp;
-    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_scan_token(RBRACKET)) return true;
+    if (jj_3R_49()) {
+    jj_scanpos = xsp;
+    if (jj_3R_50()) 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() {
+  static final private boolean jj_3R_49() {
+    if (jj_scan_token(CLASSACCESS)) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    if (jj_3R_62()) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    return false;
+  }
+
+  static final private boolean jj_3R_117() {
     if (jj_scan_token(DOT)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_109()) return true;
+    if (jj_3R_116()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_94() {
+  static final private boolean jj_3R_98() {
     if (jj_scan_token(DOLLAR_ID)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_98()) jj_scanpos = xsp;
+    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_61() {
+  static final private boolean jj_3R_64() {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_94()) {
+    if (jj_3R_98()) {
     jj_scanpos = xsp;
-    if (jj_3R_95()) return true;
+    if (jj_3R_99()) 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_104() {
-    if (jj_3R_109()) return true;
+  static final private boolean jj_3R_111() {
+    if (jj_3R_116()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     Token xsp;
     while (true) {
       xsp = jj_scanpos;
-      if (jj_3R_110()) { jj_scanpos = xsp; break; }
+      if (jj_3R_117()) { 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(CLASSACCESS)) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_59()) return true;
+  static final private boolean jj_3R_55() {
+    if (jj_3R_40()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_40() {
+  static final private boolean jj_3R_45() {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_48()) {
+    if (jj_3R_54()) {
     jj_scanpos = xsp;
-    if (jj_3R_49()) return true;
+    if (jj_3R_55()) 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_112() {
-    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_111() {
-    if (jj_scan_token(AND_AND)) return true;
+  static final private boolean jj_3R_54() {
+    if (jj_3R_87()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_196() {
-    if (jj_3R_40()) return true;
+  static final private boolean jj_3R_119() {
+    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_195() {
-    if (jj_3R_199()) return true;
+  static final private boolean jj_3R_118() {
+    if (jj_scan_token(AND_AND)) return true;
     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_112() {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_195()) {
+    if (jj_3R_118()) {
     jj_scanpos = xsp;
-    if (jj_3R_196()) return true;
+    if (jj_3R_119()) 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_111()) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_105() {
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_111()) {
-    jj_scanpos = xsp;
-    if (jj_3R_112()) 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_104()) return true;
+  static final private boolean jj_3R_194() {
+    if (jj_3R_51()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_97() {
+  static final private boolean jj_3R_102() {
     if (jj_scan_token(HOOK)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_45()) return true;
+    if (jj_3R_46()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     if (jj_scan_token(COLON)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_86()) return true;
+    if (jj_3R_90()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_102() {
-    if (jj_3R_104()) return true;
+  static final private boolean jj_3R_108() {
+    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_105()) { jj_scanpos = xsp; break; }
+      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_187() {
-    if (jj_3R_50()) return true;
+  static final private boolean jj_3R_193() {
+    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_107() {
-    if (jj_scan_token(_ORL)) return true;
+  static final private boolean jj_3R_185() {
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_193()) {
+    jj_scanpos = xsp;
+    if (jj_3R_194()) 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_106() {
-    if (jj_scan_token(OR_OR)) return true;
+    if (jj_scan_token(ASSIGN)) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    if (jj_3R_46()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_186() {
-    if (jj_scan_token(IDENTIFIER)) return true;
+  static final private boolean jj_3R_114() {
+    if (jj_scan_token(_ORL)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_178() {
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_186()) {
-    jj_scanpos = xsp;
-    if (jj_3R_187()) return true;
+  static final private boolean jj_3R_113() {
+    if (jj_scan_token(OR_OR)) 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;
   }
 
@@ -6190,21 +6397,21 @@ final int startBlock, endBlock;
     return false;
   }
 
-  static final private boolean jj_3R_103() {
+  static final private boolean jj_3R_109() {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_106()) {
+    if (jj_3R_113()) {
     jj_scanpos = xsp;
-    if (jj_3R_107()) return true;
+    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_102()) return true;
+    if (jj_3R_108()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_50() {
-    if (jj_3R_61()) return true;
+  static final private boolean jj_3R_51() {
+    if (jj_3R_64()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     Token xsp;
     while (true) {
@@ -6215,143 +6422,195 @@ final int startBlock, endBlock;
     return false;
   }
 
-  static final private boolean jj_3R_96() {
-    if (jj_3R_102()) return true;
+  static final private boolean jj_3R_101() {
+    if (jj_3R_108()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     Token xsp;
     while (true) {
       xsp = jj_scanpos;
-      if (jj_3R_103()) { jj_scanpos = xsp; break; }
+      if (jj_3R_109()) { jj_scanpos = xsp; break; }
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     }
     return false;
   }
 
-  static final private boolean jj_3R_86() {
-    if (jj_3R_96()) return true;
+  static final private boolean jj_3R_105() {
+    if (jj_scan_token(COMMA)) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    if (jj_3R_51()) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    return false;
+  }
+
+  static final private boolean jj_3R_104() {
+    if (jj_3R_51()) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    return false;
+  }
+
+  static final private boolean jj_3R_90() {
+    if (jj_3R_101()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_97()) jj_scanpos = xsp;
+    if (jj_3R_102()) jj_scanpos = xsp;
     else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_74() {
-    if (jj_scan_token(TILDEEQUAL)) return true;
+  static final private boolean jj_3R_197() {
+    if (jj_3R_51()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_191() {
-    if (jj_3R_50()) return true;
+  static final private boolean jj_3R_196() {
+    if (jj_scan_token(NEW)) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    if (jj_3R_185()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_73() {
-    if (jj_scan_token(DOTASSIGN)) return true;
+  static final private boolean jj_3R_195() {
+    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_72() {
-    if (jj_scan_token(ORASSIGN)) return true;
+  static final private boolean jj_3R_187() {
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_195()) {
+    jj_scanpos = xsp;
+    if (jj_3R_196()) {
+    jj_scanpos = xsp;
+    if (jj_3R_197()) 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_71() {
-    if (jj_scan_token(XORASSIGN)) return true;
+  static final private boolean jj_3R_77() {
+    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(NEW)) return true;
+  static final private boolean jj_3R_89() {
+    if (jj_scan_token(LIST)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_178()) return true;
+    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_104()) jj_scanpos = xsp;
+    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    while (true) {
+      xsp = jj_scanpos;
+      if (jj_3R_105()) { 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_106()) jj_scanpos = xsp;
+    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_70() {
-    if (jj_scan_token(ANDASSIGN)) return true;
+  static final private boolean jj_3R_76() {
+    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_69() {
-    if (jj_scan_token(RSIGNEDSHIFTASSIGN)) return true;
+  static final private boolean jj_3R_75() {
+    if (jj_scan_token(ORASSIGN)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_68() {
-    if (jj_scan_token(LSHIFTASSIGN)) return true;
+  static final private boolean jj_3R_74() {
+    if (jj_scan_token(XORASSIGN)) 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(IDENTIFIER)) return true;
+  static final private boolean jj_3R_73() {
+    if (jj_scan_token(ANDASSIGN)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_180() {
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_189()) {
-    jj_scanpos = xsp;
-    if (jj_3R_190()) {
-    jj_scanpos = xsp;
-    if (jj_3R_191()) return true;
+  static final private boolean jj_3R_72() {
+    if (jj_scan_token(RSIGNEDSHIFTASSIGN)) 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_67() {
+  static final private boolean jj_3R_71() {
+    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_70() {
     if (jj_scan_token(MINUSASSIGN)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_66() {
+  static final private boolean jj_3R_69() {
     if (jj_scan_token(PLUSASSIGN)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_65() {
+  static final private boolean jj_3R_68() {
     if (jj_scan_token(REMASSIGN)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_64() {
+  static final private boolean jj_3R_189() {
+    if (jj_scan_token(ARRAY)) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    if (jj_3R_198()) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    return false;
+  }
+
+  static final private boolean jj_3R_67() {
     if (jj_scan_token(SLASHASSIGN)) return true;
     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_66() {
     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_51() {
+  static final private boolean jj_3R_88() {
+    if (jj_scan_token(PRINT)) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    if (jj_3R_46()) 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(ASSIGN)) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    return false;
+  }
+
+  static final private boolean jj_3R_52() {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_62()) {
-    jj_scanpos = xsp;
-    if (jj_3R_63()) {
-    jj_scanpos = xsp;
-    if (jj_3R_64()) {
-    jj_scanpos = xsp;
     if (jj_3R_65()) {
     jj_scanpos = xsp;
     if (jj_3R_66()) {
@@ -6370,7 +6629,13 @@ final int startBlock, endBlock;
     jj_scanpos = xsp;
     if (jj_3R_73()) {
     jj_scanpos = xsp;
-    if (jj_3R_74()) return true;
+    if (jj_3R_74()) {
+    jj_scanpos = xsp;
+    if (jj_3R_75()) {
+    jj_scanpos = xsp;
+    if (jj_3R_76()) {
+    jj_scanpos = xsp;
+    if (jj_3R_77()) 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;
@@ -6387,201 +6652,91 @@ final int startBlock, endBlock;
     return false;
   }
 
-  static final private boolean jj_3R_62() {
-    if (jj_scan_token(ASSIGN)) return true;
+  static final private boolean jj_3_6() {
+    if (jj_3R_45()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_182() {
-    if (jj_scan_token(ARRAY)) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_192()) return true;
+  static final private boolean jj_3R_178() {
+    if (jj_3R_189()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_171() {
-    if (jj_3R_182()) return true;
+  static final private boolean jj_3_5() {
+    if (jj_3R_45()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_181() {
-    if (jj_3R_188()) return true;
+  static final private boolean jj_3R_188() {
+    if (jj_3R_45()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_170() {
-    if (jj_3R_180()) return true;
+  static final private boolean jj_3R_177() {
+    if (jj_3R_187()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     Token xsp;
     while (true) {
       xsp = jj_scanpos;
-      if (jj_3R_181()) { jj_scanpos = xsp; break; }
+      if (jj_3R_188()) { jj_scanpos = xsp; break; }
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     }
     return false;
   }
 
-  static final private boolean jj_3R_101() {
-    if (jj_scan_token(ASSIGN)) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+  static final private boolean jj_3R_186() {
     if (jj_3R_45()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_179() {
-    if (jj_3R_188()) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    return false;
-  }
-
   static final private boolean jj_3R_42() {
-    if (jj_3R_50()) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     if (jj_3R_51()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_45()) return true;
+    if (jj_3R_52()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    return false;
-  }
-
-  static final private boolean jj_3_3() {
-    if (jj_3R_42()) return true;
+    if (jj_3R_46()) 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_178()) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_3R_179()) { jj_scanpos = xsp; break; }
-      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    }
-    return false;
-  }
-
-  static final private boolean jj_3R_166() {
+  static final private boolean jj_3R_173() {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3_5()) {
+    if (jj_3_7()) {
     jj_scanpos = xsp;
-    if (jj_3R_170()) {
+    if (jj_3R_177()) {
     jj_scanpos = xsp;
-    if (jj_3R_171()) return true;
+    if (jj_3R_178()) 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_56() {
-    if (jj_3R_86()) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    return false;
-  }
-
-  static final private boolean jj_3R_55() {
+  static final private boolean jj_3_3() {
     if (jj_3R_42()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_54() {
-    if (jj_3R_85()) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    return false;
-  }
-
-  static final private boolean jj_3R_100() {
-    if (jj_scan_token(COMMA)) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_50()) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    return false;
-  }
-
-  static final private boolean jj_3R_45() {
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_53()) {
-    jj_scanpos = xsp;
-    if (jj_3R_54()) {
-    jj_scanpos = xsp;
-    if (jj_3R_55()) {
-    jj_scanpos = xsp;
-    if (jj_3R_56()) 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_53() {
-    if (jj_3R_84()) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    return false;
-  }
-
-  static final private boolean jj_3R_194() {
-    if (jj_scan_token(MINUS_MINUS)) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    return false;
-  }
-
-  static final private boolean jj_3R_193() {
-    if (jj_scan_token(PLUS_PLUS)) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    return false;
-  }
-
-  static final private boolean jj_3R_185() {
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_193()) {
-    jj_scanpos = xsp;
-    if (jj_3R_194()) return true;
+  static final private boolean jj_3_7() {
+    if (jj_scan_token(IDENTIFIER)) 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_99() {
-    if (jj_3R_50()) return true;
+    if (jj_scan_token(STATICCLASSACCESS)) 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_3R_185()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_185()) jj_scanpos = xsp;
-    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    return false;
-  }
-
-  static final private boolean jj_3R_83() {
-    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_82() {
-    if (jj_scan_token(INTEGER)) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    while (true) {
+      xsp = jj_scanpos;
+      if (jj_3R_186()) { jj_scanpos = xsp; break; }
+      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    }
     return false;
   }
 
@@ -6609,21 +6764,21 @@ final int startBlock, endBlock;
       jj_la1_4();
    }
    private static void jj_la1_0() {
-      jj_la1_0 = new int[] {0xf960001e,0x6,0x6,0xf960001e,0x0,0xf9600000,0x0,0xc00000,0xc00000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8000000,0x0,0x68000000,0x0,0x0,0x0,0x0,0x0,0x0,0x60000000,0x8000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8000000,0x8000000,0x0,0x8000000,0x0,0x0,0x8000000,0x8000000,0x0,0x0,0x0,0x0,0x8000000,0x0,0x8000000,0x0,0x0,0x68000000,0x68000000,0x0,0x0,0x68000000,0x0,0x0,0x89000000,0xf9000000,0x8,0x6,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xf9600010,0xf9600010,0xf9600000,0xe9600000,0x0,0x0,0x0,0x0,0x8000000,0x0,0x0,0x0,0xe9600010,0xe9600010,0x10000000,0x0,0x68000000,0xf9000010,0xf9000010,0x2000000,0x4000000,0xf9000010,0x2000000,0x4000000,0xf9000010,0xf9000010,0xf9000010,0xf9000010,0xf9000010,0xf9000000,0xf9000000,0x8000000,0x68000000,0x8000000,0xf9000000,0xf9000000,0x8000000,0x0,0x68000000,0x68000000,};
+      jj_la1_0 = new int[] {0xf960001e,0x6,0x6,0xf960001e,0x0,0xf9600000,0x0,0xc00000,0xc00000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8000000,0x0,0x68000000,0x0,0x0,0x0,0x0,0x0,0x0,0x60000000,0x8000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8000000,0x8000000,0x0,0x8000000,0x0,0x0,0x8000000,0x8000000,0x0,0x0,0x8000000,0x0,0x8000000,0x0,0x0,0x68000000,0x68000000,0x0,0x0,0x68000000,0x0,0x0,0x89000000,0x40000000,0x8000000,0xf9000000,0x8,0x6,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xf9600010,0xf9600010,0xf9600000,0xe9600000,0x0,0x0,0x0,0x0,0x8000000,0x0,0x0,0x0,0xe9600010,0xe9600010,0x10000000,0x0,0x68000000,0xf9000010,0xf9000010,0x2000000,0x4000000,0xf9000010,0x2000000,0x4000000,0xf9000010,0xf9000010,0xf9000010,0xf9000010,0xf9000010,0xf9000000,0xf9000000,0x8000000,0x68000000,0x8000000,0xf9000000,0xf9000000,0x8000000,0x0,0x68000000,0x68000000,};
    }
    private static void jj_la1_1() {
-      jj_la1_1 = new int[] {0x43aea83f,0x0,0x0,0x43aea83f,0x0,0x43aea83f,0x4000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1840000,0x100,0x1860000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1860000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1860000,0x1860000,0x0,0x1860000,0x0,0x0,0x1860000,0x0,0x0,0x0,0x40,0x40,0x20000,0x20000,0x20000,0x0,0x40,0x1860000,0x1860000,0x40,0x1840000,0x1860000,0x0,0x0,0x422aa83f,0x43aea83f,0x0,0x0,0xf,0x0,0x0,0x0,0x0,0x0,0x0,0x43aea83f,0x43aea83f,0x43aea83f,0x43aea83f,0x0,0x0,0x0,0x0,0x20000,0x0,0x1200,0x1200,0x43aea83f,0x43aea83f,0x0,0x1200,0x1860000,0x43aea83f,0x43aea83f,0x0,0x0,0x43aea83f,0x0,0x0,0x43aea83f,0x43aea83f,0x43aea83f,0x43aea83f,0x43aea83f,0x43aea83f,0x43aea83f,0x20000,0x1860000,0x20000,0x43aea83f,0x43aea83f,0x20000,0x0,0x1860000,0x1860000,};
+      jj_la1_1 = new int[] {0x875d507f,0x0,0x0,0x875d507f,0x0,0x875d507f,0x8000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3080000,0x200,0x30c0000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x30c0000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x30c0000,0x30c0000,0x0,0x30c0000,0x0,0x0,0x30c0000,0x0,0x0,0x0,0x40000,0x40000,0x40000,0x0,0x80,0x30c0000,0x30c0000,0x80,0x3080000,0x30c0000,0x0,0x0,0x8455507f,0x0,0x30c0000,0x875d507f,0x0,0x0,0xf,0x0,0x0,0x0,0x0,0x0,0x0,0x875d507f,0x875d507f,0x875d507f,0x875d507f,0x0,0x0,0x0,0x0,0x40000,0x0,0x2400,0x2400,0x875d507f,0x875d507f,0x0,0x2400,0x30c0000,0x875d507f,0x875d507f,0x0,0x0,0x875d507f,0x0,0x0,0x875d507f,0x875d507f,0x875d507f,0x875d507f,0x875d507f,0x875d507f,0x875d507f,0x40000,0x30c0000,0x40000,0x875d507f,0x875d507f,0x40000,0x0,0x30c0000,0x30c0000,};
    }
    private static void jj_la1_2() {
-      jj_la1_2 = new int[] {0x9e0e00,0x0,0x0,0x9e0e00,0x0,0x9e0e00,0x0,0x0,0x0,0x0,0x0,0x0,0x400,0x0,0x400,0x0,0x0,0x180000,0x0,0x9e0e00,0x0,0x800000,0x0,0x800400,0x800000,0x1ff,0x0,0x9e0e00,0x0,0x2000,0x40008000,0x40008000,0x80010000,0x80010000,0x0,0x1000000,0x2000000,0x800000,0x0,0x0,0x0,0x0,0x38000000,0x38000000,0x180000,0x180000,0x4600000,0x4600000,0x9e0e00,0x1e0e00,0x180000,0x1e0c00,0x60000,0x800,0x400,0x1ff,0x60000,0x60000,0x0,0x0,0x400,0x400,0x400,0x400,0x0,0x9e0fff,0x9e0fff,0x0,0x0,0x9e0e00,0x0,0x200,0x60600,0x9e0e00,0x0,0x0,0x0,0x400,0x0,0x0,0x0,0x0,0x0,0x9e0e00,0x9e0e00,0x9e0e00,0x9e0e00,0x0,0x0,0x60000,0x60000,0x60400,0x4000,0x0,0x0,0x9e0e00,0x9e0e00,0x0,0x0,0x9e0e00,0x9e0e00,0x9e0e00,0x0,0x0,0x9e0e00,0x0,0x0,0x9e4e00,0x9e0e00,0x9e0e00,0x9e0e00,0x9e0e00,0x9e0e00,0x9e4e00,0x60400,0x9e0e00,0x60400,0x9e0e00,0x9e4e00,0x60400,0x0,0x9e0e00,0x9e0e00,};
+      jj_la1_2 = new int[] {0x13c1c00,0x0,0x0,0x13c1c00,0x0,0x13c1c00,0x0,0x0,0x0,0x0,0x0,0x0,0x800,0x0,0x800,0x0,0x0,0x300000,0x0,0x13c1c00,0x0,0x1000000,0x0,0x1000800,0x1000000,0x3fe,0x0,0x13c1c00,0x0,0x4000,0x80010000,0x80010000,0x20000,0x20000,0x0,0x2000000,0x4000000,0x1000000,0x0,0x0,0x0,0x0,0x70000000,0x70000000,0x300000,0x300000,0x8c00000,0x8c00000,0x13c1c00,0x3c1c00,0x300000,0x3c1800,0xc0000,0x1000,0x800,0x3fe,0xc0000,0xc0000,0x800,0x800,0x800,0x800,0x0,0x13c1ffe,0x13c1ffe,0x0,0x0,0x13c1c00,0x0,0x400,0xc0c00,0x0,0x13c1c00,0x13c1c00,0x0,0x0,0x0,0x800,0x0,0x0,0x0,0x0,0x0,0x13c1c00,0x13c1c00,0x13c1c00,0x13c1c00,0x0,0x0,0xc0000,0xc0000,0xc0800,0x8000,0x0,0x0,0x13c1c00,0x13c1c00,0x0,0x0,0x13c1c00,0x13c1c00,0x13c1c00,0x0,0x0,0x13c1c00,0x0,0x0,0x13c9c00,0x13c1c00,0x13c1c00,0x13c1c00,0x13c1c00,0x13c1c00,0x13c9c00,0xc0800,0x13c1c00,0xc0800,0x13c1c00,0x13c9c00,0xc0800,0x0,0x13c1c00,0x13c1c00,};
    }
    private static void jj_la1_3() {
-      jj_la1_3 = new int[] {0x114451,0x0,0x0,0x114451,0x100000,0x114451,0x0,0x0,0x0,0x200000,0x0,0x10000,0x0,0x10000,0x10400,0x11,0x11,0x451,0x0,0x4451,0x200000,0x0,0x200000,0x0,0x0,0x0,0x0,0x4451,0x0,0x0,0x0,0x0,0x0,0x0,0x400000,0x0,0x0,0x0,0xf2000000,0xf2000000,0xd800000,0xd800000,0x0,0x0,0x0,0x0,0x0,0x0,0x4451,0x4451,0x0,0x4451,0x0,0x0,0x4451,0x0,0x0,0x0,0x44000,0x44000,0x400,0x400,0x400,0x400,0x44000,0x4451,0x4451,0x40000,0x51,0x4451,0x200000,0x0,0x110400,0x114451,0x0,0x0,0x0,0x0,0x200000,0x0,0x200000,0x200000,0x200000,0x114451,0x114451,0x114451,0x114451,0x200000,0x0,0x0,0x0,0x400,0x10000,0x0,0x0,0x114451,0x114451,0x0,0x0,0x4451,0x114451,0x114451,0x0,0x0,0x114451,0x0,0x0,0x114451,0x114451,0x114451,0x114451,0x114451,0x114451,0x114451,0x400,0x4451,0x400,0x114451,0x114451,0x400,0x200000,0x4451,0x4451,};
+      jj_la1_3 = new int[] {0x2288a2,0x0,0x0,0x2288a2,0x200000,0x2288a2,0x0,0x0,0x0,0x400000,0x0,0x20000,0x0,0x20000,0x20800,0x22,0x22,0x8a2,0x0,0x88a2,0x400000,0x0,0x400000,0x0,0x0,0x0,0x0,0x88a2,0x0,0x0,0x0,0x0,0x1,0x1,0x800000,0x0,0x0,0x0,0xe4000000,0xe4000000,0x1b000000,0x1b000000,0x0,0x0,0x0,0x0,0x0,0x0,0x88a2,0x88a2,0x0,0x88a2,0x0,0x0,0x88a2,0x0,0x0,0x0,0x800,0x800,0x800,0x800,0x88000,0x88a2,0x88a2,0x80000,0xa2,0x88a2,0x400000,0x0,0x220800,0x0,0x88a2,0x2288a2,0x0,0x0,0x0,0x0,0x400000,0x0,0x400000,0x400000,0x400000,0x2288a2,0x2288a2,0x2288a2,0x2288a2,0x400000,0x0,0x0,0x0,0x800,0x20000,0x0,0x0,0x2288a2,0x2288a2,0x0,0x0,0x88a2,0x2288a2,0x2288a2,0x0,0x0,0x2288a2,0x0,0x0,0x2288a2,0x2288a2,0x2288a2,0x2288a2,0x2288a2,0x2288a2,0x2288a2,0x800,0x88a2,0x800,0x2288a2,0x2288a2,0x800,0x400000,0x88a2,0x88a2,};
    }
    private static void jj_la1_4() {
-      jj_la1_4 = new int[] {0x2000,0x0,0x0,0x2000,0x0,0x2000,0x0,0x0,0x0,0x0,0x1,0x0,0x2000,0x0,0x2000,0x0,0x0,0x0,0x0,0x2000,0x0,0x0,0x0,0x2000,0x0,0x0,0x0,0x2000,0x1fff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2000,0x2000,0x0,0x2000,0x0,0x0,0x2000,0x0,0x0,0x0,0x0,0x0,0x2000,0x2000,0x2000,0x2000,0x0,0x2000,0x2000,0x0,0x0,0x2000,0x0,0x0,0x2000,0x2000,0x0,0x0,0x0,0x2000,0x0,0x1,0x0,0x0,0x0,0x2000,0x2000,0x2000,0x2000,0x0,0x1,0x1fff,0x1fff,0x2000,0x0,0x0,0x0,0x2000,0x2000,0x0,0x0,0x2000,0x2000,0x2000,0x0,0x0,0x2000,0x0,0x0,0x2000,0x2000,0x2000,0x2000,0x2000,0x2000,0x2000,0x2000,0x2000,0x2000,0x2000,0x2000,0x2000,0x0,0x2000,0x2000,};
+      jj_la1_4 = new int[] {0x4000,0x0,0x0,0x4000,0x0,0x4000,0x0,0x0,0x0,0x0,0x2,0x0,0x4000,0x0,0x4000,0x0,0x0,0x0,0x0,0x4000,0x0,0x0,0x0,0x4000,0x0,0x0,0x0,0x4000,0x3ffe,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4000,0x4000,0x0,0x4000,0x0,0x0,0x4000,0x0,0x0,0x0,0x4000,0x4000,0x4000,0x4000,0x0,0x4000,0x4000,0x0,0x0,0x4000,0x0,0x0,0x4000,0x0,0x4000,0x4000,0x0,0x0,0x0,0x4000,0x0,0x2,0x0,0x0,0x0,0x4000,0x4000,0x4000,0x4000,0x0,0x2,0x3ffe,0x3ffe,0x4000,0x0,0x0,0x0,0x4000,0x4000,0x0,0x0,0x4000,0x4000,0x4000,0x0,0x0,0x4000,0x0,0x0,0x4000,0x4000,0x4000,0x4000,0x4000,0x4000,0x4000,0x4000,0x4000,0x4000,0x4000,0x4000,0x4000,0x0,0x4000,0x4000,};
    }
-  static final private JJCalls[] jj_2_rtns = new JJCalls[8];
+  static final private JJCalls[] jj_2_rtns = new JJCalls[11];
   static private boolean jj_rescan = false;
   static private int jj_gc = 0;
 
@@ -6809,8 +6964,8 @@ final int startBlock, endBlock;
 
   static public ParseException generateParseException() {
     jj_expentries.removeAllElements();
-    boolean[] la1tokens = new boolean[142];
-    for (int i = 0; i < 142; i++) {
+    boolean[] la1tokens = new boolean[143];
+    for (int i = 0; i < 143; i++) {
       la1tokens[i] = false;
     }
     if (jj_kind >= 0) {
@@ -6838,7 +6993,7 @@ final int startBlock, endBlock;
         }
       }
     }
-    for (int i = 0; i < 142; i++) {
+    for (int i = 0; i < 143; i++) {
       if (la1tokens[i]) {
         jj_expentry = new int[1];
         jj_expentry[0] = i;
@@ -6863,7 +7018,7 @@ final int startBlock, endBlock;
 
   static final private void jj_rescan_token() {
     jj_rescan = true;
-    for (int i = 0; i < 8; i++) {
+    for (int i = 0; i < 11; i++) {
       JJCalls p = jj_2_rtns[i];
       do {
         if (p.gen > jj_gen) {
@@ -6877,6 +7032,9 @@ final int startBlock, endBlock;
             case 5: jj_3_6(); break;
             case 6: jj_3_7(); break;
             case 7: jj_3_8(); break;
+            case 8: jj_3_9(); break;
+            case 9: jj_3_10(); break;
+            case 10: jj_3_11(); break;
           }
         }
         p = p.next;
index 00cc6c9..17511d5 100644 (file)
@@ -38,6 +38,7 @@ import net.sourceforge.phpeclipse.actions.PHPStartApacheAction;
 import net.sourceforge.phpeclipse.PHPeclipsePlugin;
 import net.sourceforge.phpdt.internal.compiler.ast.*;
 import net.sourceforge.phpdt.internal.compiler.parser.OutlineableWithChildren;
+import net.sourceforge.phpdt.internal.compiler.parser.Outlineable;
 import net.sourceforge.phpdt.internal.compiler.parser.PHPOutlineInfo;
 
 /**
@@ -391,6 +392,7 @@ MORE :
 | <INCLUDE_ONCE       : "include_once">
 | <REQUIRE_ONCE       : "require_once">
 | <GLOBAL             : "global">
+| <DEFINE             : "define">
 | <STATIC             : "static">
 | <CLASSACCESS        : "->">
 | <STATICCLASSACCESS  : "::">
@@ -498,32 +500,9 @@ MORE :
   <#EXPONENT: ["e","E"] (["+","-"])? (["0"-"9"])+ >
 |
   <STRING_LITERAL: (<STRING_1> | <STRING_2> | <STRING_3>)>
-|    <STRING_1:
-      "\""
-      (
-          ~["\""]
-        | "\\\""
-        | "\\"
-      )*
-      "\""
-    >
-|    <STRING_2:
-      "'"
-      (
-         ~["'"]
-       | "\\'"
-      )*
-
-      "'"
-    >
-|   <STRING_3:
-      "`"
-      (
-        ~["`"]
-      | "\\`"
-      )*
-      "`"
-    >
+|   <STRING_1: "\"" ( ~["\""] | "\\\"" | "\\" )* "\"">
+|   <STRING_2: "'" ( ~["'"] | "\\'" )* "'">
+|   <STRING_3: "`" ( ~["`"] | "\\`" )* "`">
 }
 
 /* IDENTIFIERS */
@@ -1556,11 +1535,15 @@ Expression PrimaryExpression() :
                                                  SimpleCharStream.getPosition()),
                           expr,
                           ClassAccess.STATIC);}
-  (expr = PrimarySuffix(expr))*
+  (
+  LOOKAHEAD(PrimarySuffix())
+  expr = PrimarySuffix(expr))*
   {return expr;}
 |
   expr = PrimaryPrefix()
-  (expr = PrimarySuffix(expr))*
+  (
+  LOOKAHEAD(PrimarySuffix())
+  expr = PrimarySuffix(expr))*
   {return expr;}
 |
   expr = ArrayDeclarator()
@@ -1804,6 +1787,69 @@ Statement StatementNoBreak() :
   return statement;}
 | statement = StaticStatement()         {return statement;}
 | statement = GlobalStatement()         {return statement;}
+| statement = defineStatement()         {currentSegment.add((Outlineable)statement);return statement;}
+}
+
+Define defineStatement() :
+{
+  final int start = SimpleCharStream.getPosition();
+  Expression defineName,defineValue;
+}
+{
+  <DEFINE>
+  try {
+    <LPAREN>
+  } catch (ParseException e) {
+    errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', '(' expected";
+    errorLevel   = ERROR;
+    errorStart   = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
+    errorEnd     = SimpleCharStream.getPosition() + 1;
+    processParseException(e);
+  }
+  try {
+    defineName = Expression()
+  } catch (ParseException e) {
+    errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', expression expected";
+    errorLevel   = ERROR;
+    errorStart   = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
+    errorEnd     = SimpleCharStream.getPosition() + 1;
+    throw e;
+  }
+  try {
+    <COMMA>
+  } catch (ParseException e) {
+    errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ',' expected";
+    errorLevel   = ERROR;
+    errorStart   = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
+    errorEnd     = SimpleCharStream.getPosition() + 1;
+    processParseException(e);
+  }
+  try {
+    (   defineValue = PrintExpression()
+      | LOOKAHEAD(varAssignation())
+        defineValue = varAssignation()
+      | defineValue = ConditionalExpression())
+  } catch (ParseException e) {
+    errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', expression expected";
+    errorLevel   = ERROR;
+    errorStart   = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
+    errorEnd     = SimpleCharStream.getPosition() + 1;
+    throw e;
+  }
+  try {
+    <RPAREN>
+  } catch (ParseException e) {
+    errorMessage = "unexpected token : '"+ e.currentToken.next.image +"', ')' expected";
+    errorLevel   = ERROR;
+    errorStart   = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
+    errorEnd     = SimpleCharStream.getPosition() + 1;
+    processParseException(e);
+  }
+  {return new Define(currentSegment,
+                     defineName,
+                     defineValue,
+                     start,
+                     SimpleCharStream.getPosition());}
 }
 
 /**
index 663594d..888a8b9 100644 (file)
@@ -25,111 +25,112 @@ public interface PHPParserConstants {
   int INCLUDE_ONCE = 34;
   int REQUIRE_ONCE = 35;
   int GLOBAL = 36;
-  int STATIC = 37;
-  int CLASSACCESS = 38;
-  int STATICCLASSACCESS = 39;
-  int ARRAYASSIGN = 40;
-  int CASE = 41;
-  int CONST = 42;
-  int CONTINUE = 43;
-  int _DEFAULT = 44;
-  int DO = 45;
-  int EXTENDS = 46;
-  int FOR = 47;
-  int GOTO = 48;
-  int NEW = 49;
-  int NULL = 50;
-  int RETURN = 51;
-  int SUPER = 52;
-  int SWITCH = 53;
-  int THIS = 54;
-  int TRUE = 55;
-  int FALSE = 56;
-  int WHILE = 57;
-  int ENDWHILE = 58;
-  int ENDSWITCH = 59;
-  int ENDIF = 60;
-  int ENDFOR = 61;
-  int FOREACH = 62;
-  int AS = 63;
-  int STRING = 64;
-  int OBJECT = 65;
-  int BOOL = 66;
-  int BOOLEAN = 67;
-  int REAL = 68;
-  int DOUBLE = 69;
-  int FLOAT = 70;
-  int INT = 71;
-  int INTEGER = 72;
-  int AT = 73;
-  int DOLLAR = 74;
-  int BANG = 75;
-  int TILDE = 76;
-  int HOOK = 77;
-  int COLON = 78;
-  int OR_OR = 79;
-  int AND_AND = 80;
-  int PLUS_PLUS = 81;
-  int MINUS_MINUS = 82;
-  int PLUS = 83;
-  int MINUS = 84;
-  int STAR = 85;
-  int SLASH = 86;
-  int BIT_AND = 87;
-  int BIT_OR = 88;
-  int XOR = 89;
-  int REMAINDER = 90;
-  int LSHIFT = 91;
-  int RSIGNEDSHIFT = 92;
-  int RUNSIGNEDSHIFT = 93;
-  int _ORL = 94;
-  int _ANDL = 95;
-  int INTEGER_LITERAL = 96;
-  int DECIMAL_LITERAL = 97;
-  int HEX_LITERAL = 98;
-  int OCTAL_LITERAL = 99;
-  int FLOATING_POINT_LITERAL = 100;
-  int EXPONENT = 101;
-  int STRING_LITERAL = 102;
-  int STRING_1 = 103;
-  int STRING_2 = 104;
-  int STRING_3 = 105;
-  int IDENTIFIER = 106;
-  int LETTER = 107;
-  int DIGIT = 108;
-  int SPECIAL = 109;
-  int LPAREN = 110;
-  int RPAREN = 111;
-  int LBRACE = 112;
-  int RBRACE = 113;
-  int LBRACKET = 114;
-  int RBRACKET = 115;
-  int SEMICOLON = 116;
-  int COMMA = 117;
-  int DOT = 118;
-  int GT = 119;
-  int LT = 120;
-  int EQUAL_EQUAL = 121;
-  int LE = 122;
-  int GE = 123;
-  int NOT_EQUAL = 124;
-  int DIF = 125;
-  int BANGDOUBLEEQUAL = 126;
-  int TRIPLEEQUAL = 127;
-  int ASSIGN = 128;
-  int PLUSASSIGN = 129;
-  int MINUSASSIGN = 130;
-  int STARASSIGN = 131;
-  int SLASHASSIGN = 132;
-  int ANDASSIGN = 133;
-  int ORASSIGN = 134;
-  int XORASSIGN = 135;
-  int DOTASSIGN = 136;
-  int REMASSIGN = 137;
-  int TILDEEQUAL = 138;
-  int LSHIFTASSIGN = 139;
-  int RSIGNEDSHIFTASSIGN = 140;
-  int DOLLAR_ID = 141;
+  int DEFINE = 37;
+  int STATIC = 38;
+  int CLASSACCESS = 39;
+  int STATICCLASSACCESS = 40;
+  int ARRAYASSIGN = 41;
+  int CASE = 42;
+  int CONST = 43;
+  int CONTINUE = 44;
+  int _DEFAULT = 45;
+  int DO = 46;
+  int EXTENDS = 47;
+  int FOR = 48;
+  int GOTO = 49;
+  int NEW = 50;
+  int NULL = 51;
+  int RETURN = 52;
+  int SUPER = 53;
+  int SWITCH = 54;
+  int THIS = 55;
+  int TRUE = 56;
+  int FALSE = 57;
+  int WHILE = 58;
+  int ENDWHILE = 59;
+  int ENDSWITCH = 60;
+  int ENDIF = 61;
+  int ENDFOR = 62;
+  int FOREACH = 63;
+  int AS = 64;
+  int STRING = 65;
+  int OBJECT = 66;
+  int BOOL = 67;
+  int BOOLEAN = 68;
+  int REAL = 69;
+  int DOUBLE = 70;
+  int FLOAT = 71;
+  int INT = 72;
+  int INTEGER = 73;
+  int AT = 74;
+  int DOLLAR = 75;
+  int BANG = 76;
+  int TILDE = 77;
+  int HOOK = 78;
+  int COLON = 79;
+  int OR_OR = 80;
+  int AND_AND = 81;
+  int PLUS_PLUS = 82;
+  int MINUS_MINUS = 83;
+  int PLUS = 84;
+  int MINUS = 85;
+  int STAR = 86;
+  int SLASH = 87;
+  int BIT_AND = 88;
+  int BIT_OR = 89;
+  int XOR = 90;
+  int REMAINDER = 91;
+  int LSHIFT = 92;
+  int RSIGNEDSHIFT = 93;
+  int RUNSIGNEDSHIFT = 94;
+  int _ORL = 95;
+  int _ANDL = 96;
+  int INTEGER_LITERAL = 97;
+  int DECIMAL_LITERAL = 98;
+  int HEX_LITERAL = 99;
+  int OCTAL_LITERAL = 100;
+  int FLOATING_POINT_LITERAL = 101;
+  int EXPONENT = 102;
+  int STRING_LITERAL = 103;
+  int STRING_1 = 104;
+  int STRING_2 = 105;
+  int STRING_3 = 106;
+  int IDENTIFIER = 107;
+  int LETTER = 108;
+  int DIGIT = 109;
+  int SPECIAL = 110;
+  int LPAREN = 111;
+  int RPAREN = 112;
+  int LBRACE = 113;
+  int RBRACE = 114;
+  int LBRACKET = 115;
+  int RBRACKET = 116;
+  int SEMICOLON = 117;
+  int COMMA = 118;
+  int DOT = 119;
+  int GT = 120;
+  int LT = 121;
+  int EQUAL_EQUAL = 122;
+  int LE = 123;
+  int GE = 124;
+  int NOT_EQUAL = 125;
+  int DIF = 126;
+  int BANGDOUBLEEQUAL = 127;
+  int TRIPLEEQUAL = 128;
+  int ASSIGN = 129;
+  int PLUSASSIGN = 130;
+  int MINUSASSIGN = 131;
+  int STARASSIGN = 132;
+  int SLASHASSIGN = 133;
+  int ANDASSIGN = 134;
+  int ORASSIGN = 135;
+  int XORASSIGN = 136;
+  int DOTASSIGN = 137;
+  int REMASSIGN = 138;
+  int TILDEEQUAL = 139;
+  int LSHIFTASSIGN = 140;
+  int RSIGNEDSHIFTASSIGN = 141;
+  int DOLLAR_ID = 142;
 
   int DEFAULT = 0;
   int PHPPARSING = 1;
@@ -175,6 +176,7 @@ public interface PHPParserConstants {
     "\"include_once\"",
     "\"require_once\"",
     "\"global\"",
+    "\"define\"",
     "\"static\"",
     "\"->\"",
     "\"::\"",
index b7f86bf..8fd6c8f 100644 (file)
@@ -14,6 +14,7 @@ import net.sourceforge.phpeclipse.actions.PHPStartApacheAction;
 import net.sourceforge.phpeclipse.PHPeclipsePlugin;
 import net.sourceforge.phpdt.internal.compiler.ast.*;
 import net.sourceforge.phpdt.internal.compiler.parser.OutlineableWithChildren;
+import net.sourceforge.phpdt.internal.compiler.parser.Outlineable;
 import net.sourceforge.phpdt.internal.compiler.parser.PHPOutlineInfo;
 
 public class PHPParserTokenManager implements PHPParserConstants
@@ -389,116 +390,116 @@ private static final int jjStopStringLiteralDfa_1(int pos, long active0, long ac
    switch (pos)
    {
       case 0:
-         if ((active0 & 0x4800L) != 0L || (active1 & 0x400000L) != 0L || (active2 & 0x10L) != 0L)
+         if ((active0 & 0x4800L) != 0L || (active1 & 0x800000L) != 0L || (active2 & 0x20L) != 0L)
             return 2;
-         if ((active1 & 0x400L) != 0L)
+         if ((active1 & 0x800L) != 0L)
             return 16;
-         if ((active1 & 0x40000000000000L) != 0L || (active2 & 0x100L) != 0L)
+         if ((active1 & 0x80000000000000L) != 0L || (active2 & 0x200L) != 0L)
             return 8;
-         if ((active0 & 0xfffffe3fffe00000L) != 0L || (active1 & 0xc00001ffL) != 0L)
+         if ((active0 & 0xfffffc7fffe00000L) != 0L || (active1 & 0x1800003ffL) != 0L)
          {
-            jjmatchedKind = 106;
+            jjmatchedKind = 107;
             return 14;
          }
          return -1;
       case 1:
          if ((active0 & 0x4000L) != 0L)
             return 0;
-         if ((active0 & 0x7fffde3ffee00000L) != 0L || (active1 & 0x800001dfL) != 0L)
+         if ((active0 & 0x400001000000L) != 0L || (active1 & 0x80000041L) != 0L)
+            return 14;
+         if ((active0 & 0xffffbc7ffee00000L) != 0L || (active1 & 0x1000003beL) != 0L)
          {
             if (jjmatchedPos != 1)
             {
-               jjmatchedKind = 106;
+               jjmatchedKind = 107;
                jjmatchedPos = 1;
             }
             return 14;
          }
-         if ((active0 & 0x8000200001000000L) != 0L || (active1 & 0x40000020L) != 0L)
-            return 14;
          return -1;
       case 2:
-         if ((active0 & 0x4002800000800000L) != 0L || (active1 & 0x80000180L) != 0L)
+         if ((active0 & 0x8005000000800000L) != 0L || (active1 & 0x100000300L) != 0L)
             return 14;
-         if ((active0 & 0x3ffd5e3ffe600000L) != 0L || (active1 & 0x7fL) != 0L)
+         if ((active0 & 0x7ffabc7ffe600000L) != 0L || (active1 & 0xfeL) != 0L)
          {
             if (jjmatchedPos != 2)
             {
-               jjmatchedKind = 106;
+               jjmatchedKind = 107;
                jjmatchedPos = 2;
             }
             return 14;
          }
          return -1;
       case 3:
-         if ((active0 & 0xc50200a6000000L) != 0L || (active1 & 0x1cL) != 0L)
+         if ((active0 & 0x18a0400a6000000L) != 0L || (active1 & 0x38L) != 0L)
             return 14;
-         if ((active0 & 0x7f385c3f58600000L) != 0L || (active1 & 0x163L) != 0L)
+         if ((active0 & 0xfe70b87f58600000L) != 0L || (active1 & 0x2c6L) != 0L)
          {
             if (jjmatchedPos != 3)
             {
-               jjmatchedKind = 106;
+               jjmatchedKind = 107;
                jjmatchedPos = 3;
             }
             return 14;
          }
          return -1;
       case 4:
-         if ((active0 & 0x1310040058200000L) != 0L || (active1 & 0x40L) != 0L)
+         if ((active0 & 0x2620080058200000L) != 0L || (active1 & 0x80L) != 0L)
             return 14;
-         if ((active0 & 0x6c28583f02400000L) != 0L || (active1 & 0x12bL) != 0L)
+         if ((active0 & 0xd850b07f02400000L) != 0L || (active1 & 0x256L) != 0L)
          {
-            jjmatchedKind = 106;
+            jjmatchedKind = 107;
             jjmatchedPos = 4;
             return 14;
          }
          return -1;
       case 5:
-         if ((active0 & 0x2028003002000000L) != 0L || (active1 & 0x23L) != 0L)
+         if ((active0 & 0x4050007002000000L) != 0L || (active1 & 0x46L) != 0L)
             return 14;
-         if ((active0 & 0x4c00580f00400000L) != 0L || (active1 & 0x108L) != 0L)
+         if ((active0 & 0x9800b00f00400000L) != 0L || (active1 & 0x210L) != 0L)
          {
-            jjmatchedKind = 106;
+            jjmatchedKind = 107;
             jjmatchedPos = 5;
             return 14;
          }
          return -1;
       case 6:
-         if ((active0 & 0x4000500f00000000L) != 0L || (active1 & 0x108L) != 0L)
+         if ((active0 & 0x8000a00f00000000L) != 0L || (active1 & 0x210L) != 0L)
             return 14;
-         if ((active0 & 0xc00080000400000L) != 0L)
+         if ((active0 & 0x1800100000400000L) != 0L)
          {
             if (jjmatchedPos != 6)
             {
-               jjmatchedKind = 106;
+               jjmatchedKind = 107;
                jjmatchedPos = 6;
             }
             return 14;
          }
          return -1;
       case 7:
-         if ((active0 & 0x400080000400000L) != 0L)
+         if ((active0 & 0x800100000400000L) != 0L)
             return 14;
-         if ((active0 & 0x800000c00000000L) != 0L)
+         if ((active0 & 0x1000000c00000000L) != 0L)
          {
-            jjmatchedKind = 106;
+            jjmatchedKind = 107;
             jjmatchedPos = 7;
             return 14;
          }
          return -1;
       case 8:
-         if ((active0 & 0x800000000000000L) != 0L)
-            return 14;
          if ((active0 & 0xc00000000L) != 0L)
          {
-            jjmatchedKind = 106;
+            jjmatchedKind = 107;
             jjmatchedPos = 8;
             return 14;
          }
+         if ((active0 & 0x1000000000000000L) != 0L)
+            return 14;
          return -1;
       case 9:
          if ((active0 & 0xc00000000L) != 0L)
          {
-            jjmatchedKind = 106;
+            jjmatchedKind = 107;
             jjmatchedPos = 9;
             return 14;
          }
@@ -506,7 +507,7 @@ private static final int jjStopStringLiteralDfa_1(int pos, long active0, long ac
       case 10:
          if ((active0 & 0xc00000000L) != 0L)
          {
-            jjmatchedKind = 106;
+            jjmatchedKind = 107;
             jjmatchedPos = 10;
             return 14;
          }
@@ -532,126 +533,126 @@ static private final int jjMoveStringLiteralDfa0_1()
    switch(curChar)
    {
       case 33:
-         jjmatchedKind = 75;
-         return jjMoveStringLiteralDfa1_1(0x0L, 0x5000000000000000L, 0x0L);
+         jjmatchedKind = 76;
+         return jjMoveStringLiteralDfa1_1(0x0L, 0xa000000000000000L, 0x0L);
       case 35:
          return jjStopAtPos(0, 12);
       case 36:
-         return jjStartNfaWithStates_1(0, 74, 16);
+         return jjStartNfaWithStates_1(0, 75, 16);
       case 37:
-         jjmatchedKind = 90;
-         return jjMoveStringLiteralDfa1_1(0x0L, 0x0L, 0x200L);
+         jjmatchedKind = 91;
+         return jjMoveStringLiteralDfa1_1(0x0L, 0x0L, 0x400L);
       case 38:
-         jjmatchedKind = 87;
-         return jjMoveStringLiteralDfa1_1(0x0L, 0x10000L, 0x20L);
+         jjmatchedKind = 88;
+         return jjMoveStringLiteralDfa1_1(0x0L, 0x20000L, 0x40L);
       case 40:
-         return jjStopAtPos(0, 110);
-      case 41:
          return jjStopAtPos(0, 111);
+      case 41:
+         return jjStopAtPos(0, 112);
       case 42:
-         jjmatchedKind = 85;
-         return jjMoveStringLiteralDfa1_1(0x0L, 0x0L, 0x8L);
+         jjmatchedKind = 86;
+         return jjMoveStringLiteralDfa1_1(0x0L, 0x0L, 0x10L);
       case 43:
-         jjmatchedKind = 83;
-         return jjMoveStringLiteralDfa1_1(0x0L, 0x20000L, 0x2L);
+         jjmatchedKind = 84;
+         return jjMoveStringLiteralDfa1_1(0x0L, 0x40000L, 0x4L);
       case 44:
-         return jjStopAtPos(0, 117);
+         return jjStopAtPos(0, 118);
       case 45:
-         jjmatchedKind = 84;
-         return jjMoveStringLiteralDfa1_1(0x4000000000L, 0x40000L, 0x4L);
+         jjmatchedKind = 85;
+         return jjMoveStringLiteralDfa1_1(0x8000000000L, 0x80000L, 0x8L);
       case 46:
-         jjmatchedKind = 118;
-         return jjMoveStringLiteralDfa1_1(0x0L, 0x0L, 0x100L);
+         jjmatchedKind = 119;
+         return jjMoveStringLiteralDfa1_1(0x0L, 0x0L, 0x200L);
       case 47:
-         jjmatchedKind = 86;
-         return jjMoveStringLiteralDfa1_1(0x4800L, 0x0L, 0x10L);
+         jjmatchedKind = 87;
+         return jjMoveStringLiteralDfa1_1(0x4800L, 0x0L, 0x20L);
       case 58:
-         jjmatchedKind = 78;
-         return jjMoveStringLiteralDfa1_1(0x8000000000L, 0x0L, 0x0L);
+         jjmatchedKind = 79;
+         return jjMoveStringLiteralDfa1_1(0x10000000000L, 0x0L, 0x0L);
       case 59:
-         return jjStopAtPos(0, 116);
+         return jjStopAtPos(0, 117);
       case 60:
-         jjmatchedKind = 120;
-         return jjMoveStringLiteralDfa1_1(0x0L, 0x2400000008000000L, 0x800L);
+         jjmatchedKind = 121;
+         return jjMoveStringLiteralDfa1_1(0x0L, 0x4800000010000000L, 0x1000L);
       case 61:
-         jjmatchedKind = 128;
-         return jjMoveStringLiteralDfa1_1(0x10000000000L, 0x8200000000000000L, 0x0L);
+         jjmatchedKind = 129;
+         return jjMoveStringLiteralDfa1_1(0x20000000000L, 0x400000000000000L, 0x1L);
       case 62:
-         jjmatchedKind = 119;
-         return jjMoveStringLiteralDfa1_1(0x0L, 0x800000030000000L, 0x1000L);
+         jjmatchedKind = 120;
+         return jjMoveStringLiteralDfa1_1(0x0L, 0x1000000060000000L, 0x2000L);
       case 63:
-         jjmatchedKind = 77;
+         jjmatchedKind = 78;
          return jjMoveStringLiteralDfa1_1(0x10L, 0x0L, 0x0L);
       case 64:
-         return jjStopAtPos(0, 73);
+         return jjStopAtPos(0, 74);
       case 91:
-         return jjStopAtPos(0, 114);
-      case 93:
          return jjStopAtPos(0, 115);
+      case 93:
+         return jjStopAtPos(0, 116);
       case 94:
-         jjmatchedKind = 89;
-         return jjMoveStringLiteralDfa1_1(0x0L, 0x0L, 0x80L);
+         jjmatchedKind = 90;
+         return jjMoveStringLiteralDfa1_1(0x0L, 0x0L, 0x100L);
       case 65:
       case 97:
-         return jjMoveStringLiteralDfa1_1(0x8000000008000000L, 0x80000000L, 0x0L);
+         return jjMoveStringLiteralDfa1_1(0x8000000L, 0x100000001L, 0x0L);
       case 66:
       case 98:
-         return jjMoveStringLiteralDfa1_1(0x10000000L, 0xcL, 0x0L);
+         return jjMoveStringLiteralDfa1_1(0x10000000L, 0x18L, 0x0L);
       case 67:
       case 99:
-         return jjMoveStringLiteralDfa1_1(0xe0000200000L, 0x0L, 0x0L);
+         return jjMoveStringLiteralDfa1_1(0x1c0000200000L, 0x0L, 0x0L);
       case 68:
       case 100:
-         return jjMoveStringLiteralDfa1_1(0x300000000000L, 0x20L, 0x0L);
+         return jjMoveStringLiteralDfa1_1(0x602000000000L, 0x40L, 0x0L);
       case 69:
       case 101:
-         return jjMoveStringLiteralDfa1_1(0x3c00400086000000L, 0x0L, 0x0L);
+         return jjMoveStringLiteralDfa1_1(0x7800800086000000L, 0x0L, 0x0L);
       case 70:
       case 102:
-         return jjMoveStringLiteralDfa1_1(0x4100800000400000L, 0x40L, 0x0L);
+         return jjMoveStringLiteralDfa1_1(0x8201000000400000L, 0x80L, 0x0L);
       case 71:
       case 103:
-         return jjMoveStringLiteralDfa1_1(0x1001000000000L, 0x0L, 0x0L);
+         return jjMoveStringLiteralDfa1_1(0x2001000000000L, 0x0L, 0x0L);
       case 73:
       case 105:
-         return jjMoveStringLiteralDfa1_1(0x501000000L, 0x180L, 0x0L);
+         return jjMoveStringLiteralDfa1_1(0x501000000L, 0x300L, 0x0L);
       case 76:
       case 108:
          return jjMoveStringLiteralDfa1_1(0x20000000L, 0x0L, 0x0L);
       case 78:
       case 110:
-         return jjMoveStringLiteralDfa1_1(0x6000000000000L, 0x0L, 0x0L);
+         return jjMoveStringLiteralDfa1_1(0xc000000000000L, 0x0L, 0x0L);
       case 79:
       case 111:
-         return jjMoveStringLiteralDfa1_1(0x0L, 0x40000002L, 0x0L);
+         return jjMoveStringLiteralDfa1_1(0x0L, 0x80000004L, 0x0L);
       case 80:
       case 112:
          return jjMoveStringLiteralDfa1_1(0x40000000L, 0x0L, 0x0L);
       case 82:
       case 114:
-         return jjMoveStringLiteralDfa1_1(0x8000a00000000L, 0x10L, 0x0L);
+         return jjMoveStringLiteralDfa1_1(0x10000a00000000L, 0x20L, 0x0L);
       case 83:
       case 115:
-         return jjMoveStringLiteralDfa1_1(0x30002000000000L, 0x1L, 0x0L);
+         return jjMoveStringLiteralDfa1_1(0x60004000000000L, 0x2L, 0x0L);
       case 84:
       case 116:
-         return jjMoveStringLiteralDfa1_1(0xc0000000000000L, 0x0L, 0x0L);
+         return jjMoveStringLiteralDfa1_1(0x180000000000000L, 0x0L, 0x0L);
       case 86:
       case 118:
          return jjMoveStringLiteralDfa1_1(0x800000L, 0x0L, 0x0L);
       case 87:
       case 119:
-         return jjMoveStringLiteralDfa1_1(0x200000000000000L, 0x0L, 0x0L);
+         return jjMoveStringLiteralDfa1_1(0x400000000000000L, 0x0L, 0x0L);
       case 123:
-         return jjStopAtPos(0, 112);
+         return jjStopAtPos(0, 113);
       case 124:
-         jjmatchedKind = 88;
-         return jjMoveStringLiteralDfa1_1(0x0L, 0x8000L, 0x40L);
+         jjmatchedKind = 89;
+         return jjMoveStringLiteralDfa1_1(0x0L, 0x10000L, 0x80L);
       case 125:
-         return jjStopAtPos(0, 113);
+         return jjStopAtPos(0, 114);
       case 126:
-         jjmatchedKind = 76;
-         return jjMoveStringLiteralDfa1_1(0x0L, 0x0L, 0x400L);
+         jjmatchedKind = 77;
+         return jjMoveStringLiteralDfa1_1(0x0L, 0x0L, 0x800L);
       default :
          return jjMoveNfa_1(3, 0);
    }
@@ -666,53 +667,51 @@ static private final int jjMoveStringLiteralDfa1_1(long active0, long active1, l
    switch(curChar)
    {
       case 38:
-         if ((active1 & 0x10000L) != 0L)
-            return jjStopAtPos(1, 80);
+         if ((active1 & 0x20000L) != 0L)
+            return jjStopAtPos(1, 81);
          break;
       case 42:
          if ((active0 & 0x4000L) != 0L)
             return jjStartNfaWithStates_1(1, 14, 0);
          break;
       case 43:
-         if ((active1 & 0x20000L) != 0L)
-            return jjStopAtPos(1, 81);
-         break;
-      case 45:
          if ((active1 & 0x40000L) != 0L)
             return jjStopAtPos(1, 82);
          break;
+      case 45:
+         if ((active1 & 0x80000L) != 0L)
+            return jjStopAtPos(1, 83);
+         break;
       case 47:
          if ((active0 & 0x800L) != 0L)
             return jjStopAtPos(1, 11);
          break;
       case 58:
-         if ((active0 & 0x8000000000L) != 0L)
-            return jjStopAtPos(1, 39);
+         if ((active0 & 0x10000000000L) != 0L)
+            return jjStopAtPos(1, 40);
          break;
       case 60:
-         if ((active1 & 0x8000000L) != 0L)
+         if ((active1 & 0x10000000L) != 0L)
          {
-            jjmatchedKind = 91;
+            jjmatchedKind = 92;
             jjmatchedPos = 1;
          }
-         return jjMoveStringLiteralDfa2_1(active0, 0L, active1, 0L, active2, 0x800L);
+         return jjMoveStringLiteralDfa2_1(active0, 0L, active1, 0L, active2, 0x1000L);
       case 61:
-         if ((active1 & 0x200000000000000L) != 0L)
+         if ((active1 & 0x400000000000000L) != 0L)
          {
-            jjmatchedKind = 121;
+            jjmatchedKind = 122;
             jjmatchedPos = 1;
          }
-         else if ((active1 & 0x400000000000000L) != 0L)
-            return jjStopAtPos(1, 122);
          else if ((active1 & 0x800000000000000L) != 0L)
             return jjStopAtPos(1, 123);
          else if ((active1 & 0x1000000000000000L) != 0L)
+            return jjStopAtPos(1, 124);
+         else if ((active1 & 0x2000000000000000L) != 0L)
          {
-            jjmatchedKind = 124;
+            jjmatchedKind = 125;
             jjmatchedPos = 1;
          }
-         else if ((active2 & 0x2L) != 0L)
-            return jjStopAtPos(1, 129);
          else if ((active2 & 0x4L) != 0L)
             return jjStopAtPos(1, 130);
          else if ((active2 & 0x8L) != 0L)
@@ -731,34 +730,36 @@ static private final int jjMoveStringLiteralDfa1_1(long active0, long active1, l
             return jjStopAtPos(1, 137);
          else if ((active2 & 0x400L) != 0L)
             return jjStopAtPos(1, 138);
-         return jjMoveStringLiteralDfa2_1(active0, 0L, active1, 0xc000000000000000L, active2, 0L);
+         else if ((active2 & 0x800L) != 0L)
+            return jjStopAtPos(1, 139);
+         return jjMoveStringLiteralDfa2_1(active0, 0L, active1, 0x8000000000000000L, active2, 0x1L);
       case 62:
          if ((active0 & 0x10L) != 0L)
             return jjStopAtPos(1, 4);
-         else if ((active0 & 0x4000000000L) != 0L)
-            return jjStopAtPos(1, 38);
-         else if ((active0 & 0x10000000000L) != 0L)
-            return jjStopAtPos(1, 40);
-         else if ((active1 & 0x10000000L) != 0L)
+         else if ((active0 & 0x8000000000L) != 0L)
+            return jjStopAtPos(1, 39);
+         else if ((active0 & 0x20000000000L) != 0L)
+            return jjStopAtPos(1, 41);
+         else if ((active1 & 0x20000000L) != 0L)
          {
-            jjmatchedKind = 92;
+            jjmatchedKind = 93;
             jjmatchedPos = 1;
          }
-         else if ((active1 & 0x2000000000000000L) != 0L)
-            return jjStopAtPos(1, 125);
-         return jjMoveStringLiteralDfa2_1(active0, 0L, active1, 0x20000000L, active2, 0x1000L);
+         else if ((active1 & 0x4000000000000000L) != 0L)
+            return jjStopAtPos(1, 126);
+         return jjMoveStringLiteralDfa2_1(active0, 0L, active1, 0x40000000L, active2, 0x2000L);
       case 65:
       case 97:
-         return jjMoveStringLiteralDfa2_1(active0, 0x100020000800000L, active1, 0L, active2, 0L);
+         return jjMoveStringLiteralDfa2_1(active0, 0x200040000800000L, active1, 0L, active2, 0L);
       case 66:
       case 98:
-         return jjMoveStringLiteralDfa2_1(active0, 0L, active1, 0x2L, active2, 0L);
+         return jjMoveStringLiteralDfa2_1(active0, 0L, active1, 0x4L, active2, 0L);
       case 67:
       case 99:
          return jjMoveStringLiteralDfa2_1(active0, 0x80000000L, active1, 0L, active2, 0L);
       case 69:
       case 101:
-         return jjMoveStringLiteralDfa2_1(active0, 0xa100a00000000L, active1, 0x10L, active2, 0L);
+         return jjMoveStringLiteralDfa2_1(active0, 0x14202a00000000L, active1, 0x20L, active2, 0L);
       case 70:
       case 102:
          if ((active0 & 0x1000000L) != 0L)
@@ -766,49 +767,49 @@ static private final int jjMoveStringLiteralDfa1_1(long active0, long active1, l
          break;
       case 72:
       case 104:
-         return jjMoveStringLiteralDfa2_1(active0, 0x240000000000000L, active1, 0L, active2, 0L);
+         return jjMoveStringLiteralDfa2_1(active0, 0x480000000000000L, active1, 0L, active2, 0L);
       case 73:
       case 105:
          return jjMoveStringLiteralDfa2_1(active0, 0x20000000L, active1, 0L, active2, 0L);
       case 76:
       case 108:
-         return jjMoveStringLiteralDfa2_1(active0, 0x1006200000L, active1, 0x40L, active2, 0L);
+         return jjMoveStringLiteralDfa2_1(active0, 0x1006200000L, active1, 0x80L, active2, 0L);
       case 78:
       case 110:
-         return jjMoveStringLiteralDfa2_1(active0, 0x3c00000500000000L, active1, 0x80000180L, active2, 0L);
+         return jjMoveStringLiteralDfa2_1(active0, 0x7800000500000000L, active1, 0x100000300L, active2, 0L);
       case 79:
       case 111:
-         if ((active0 & 0x200000000000L) != 0L)
+         if ((active0 & 0x400000000000L) != 0L)
          {
-            jjmatchedKind = 45;
+            jjmatchedKind = 46;
             jjmatchedPos = 1;
          }
-         return jjMoveStringLiteralDfa2_1(active0, 0x40018c0000000000L, active1, 0x2cL, active2, 0L);
+         return jjMoveStringLiteralDfa2_1(active0, 0x8003180000000000L, active1, 0x58L, active2, 0L);
       case 82:
       case 114:
-         if ((active1 & 0x40000000L) != 0L)
-            return jjStartNfaWithStates_1(1, 94, 14);
-         return jjMoveStringLiteralDfa2_1(active0, 0x80000058000000L, active1, 0L, active2, 0L);
+         if ((active1 & 0x80000000L) != 0L)
+            return jjStartNfaWithStates_1(1, 95, 14);
+         return jjMoveStringLiteralDfa2_1(active0, 0x100000058000000L, active1, 0L, active2, 0L);
       case 83:
       case 115:
-         if ((active0 & 0x8000000000000000L) != 0L)
-            return jjStartNfaWithStates_1(1, 63, 14);
+         if ((active1 & 0x1L) != 0L)
+            return jjStartNfaWithStates_1(1, 64, 14);
          break;
       case 84:
       case 116:
-         return jjMoveStringLiteralDfa2_1(active0, 0x2000000000L, active1, 0x1L, active2, 0L);
+         return jjMoveStringLiteralDfa2_1(active0, 0x4000000000L, active1, 0x2L, active2, 0L);
       case 85:
       case 117:
-         return jjMoveStringLiteralDfa2_1(active0, 0x14000000400000L, active1, 0L, active2, 0L);
+         return jjMoveStringLiteralDfa2_1(active0, 0x28000000400000L, active1, 0L, active2, 0L);
       case 87:
       case 119:
-         return jjMoveStringLiteralDfa2_1(active0, 0x20000000000000L, active1, 0L, active2, 0L);
+         return jjMoveStringLiteralDfa2_1(active0, 0x40000000000000L, active1, 0L, active2, 0L);
       case 88:
       case 120:
-         return jjMoveStringLiteralDfa2_1(active0, 0x400000000000L, active1, 0L, active2, 0L);
+         return jjMoveStringLiteralDfa2_1(active0, 0x800000000000L, active1, 0L, active2, 0L);
       case 124:
-         if ((active1 & 0x8000L) != 0L)
-            return jjStopAtPos(1, 79);
+         if ((active1 & 0x10000L) != 0L)
+            return jjStopAtPos(1, 80);
          break;
       default :
          break;
@@ -827,57 +828,57 @@ static private final int jjMoveStringLiteralDfa2_1(long old0, long active0, long
    switch(curChar)
    {
       case 61:
-         if ((active1 & 0x4000000000000000L) != 0L)
-            return jjStopAtPos(2, 126);
-         else if ((active1 & 0x8000000000000000L) != 0L)
+         if ((active1 & 0x8000000000000000L) != 0L)
             return jjStopAtPos(2, 127);
-         else if ((active2 & 0x800L) != 0L)
-            return jjStopAtPos(2, 139);
+         else if ((active2 & 0x1L) != 0L)
+            return jjStopAtPos(2, 128);
          else if ((active2 & 0x1000L) != 0L)
             return jjStopAtPos(2, 140);
+         else if ((active2 & 0x2000L) != 0L)
+            return jjStopAtPos(2, 141);
          break;
       case 62:
-         if ((active1 & 0x20000000L) != 0L)
-            return jjStopAtPos(2, 93);
+         if ((active1 & 0x40000000L) != 0L)
+            return jjStopAtPos(2, 94);
          break;
       case 65:
       case 97:
-         return jjMoveStringLiteralDfa3_1(active0, 0x2000200000L, active1, 0x10L, active2, 0L);
+         return jjMoveStringLiteralDfa3_1(active0, 0x4000200000L, active1, 0x20L, active2, 0L);
       case 67:
       case 99:
          return jjMoveStringLiteralDfa3_1(active0, 0x500000000L, active1, 0L, active2, 0L);
       case 68:
       case 100:
-         if ((active1 & 0x80000000L) != 0L)
-            return jjStartNfaWithStates_1(2, 95, 14);
-         return jjMoveStringLiteralDfa3_1(active0, 0x3c00000000000000L, active1, 0L, active2, 0L);
+         if ((active1 & 0x100000000L) != 0L)
+            return jjStartNfaWithStates_1(2, 96, 14);
+         return jjMoveStringLiteralDfa3_1(active0, 0x7800000000000000L, active1, 0L, active2, 0L);
       case 69:
       case 101:
          return jjMoveStringLiteralDfa3_1(active0, 0x10000000L, active1, 0L, active2, 0L);
       case 70:
       case 102:
-         return jjMoveStringLiteralDfa3_1(active0, 0x100000000000L, active1, 0L, active2, 0L);
+         return jjMoveStringLiteralDfa3_1(active0, 0x202000000000L, active1, 0L, active2, 0L);
       case 72:
       case 104:
          return jjMoveStringLiteralDfa3_1(active0, 0x80000000L, active1, 0L, active2, 0L);
       case 73:
       case 105:
-         return jjMoveStringLiteralDfa3_1(active0, 0x260000040000000L, active1, 0L, active2, 0L);
+         return jjMoveStringLiteralDfa3_1(active0, 0x4c0000040000000L, active1, 0L, active2, 0L);
       case 74:
       case 106:
-         return jjMoveStringLiteralDfa3_1(active0, 0L, active1, 0x2L, active2, 0L);
+         return jjMoveStringLiteralDfa3_1(active0, 0L, active1, 0x4L, active2, 0L);
       case 76:
       case 108:
-         return jjMoveStringLiteralDfa3_1(active0, 0x104000000000000L, active1, 0L, active2, 0L);
+         return jjMoveStringLiteralDfa3_1(active0, 0x208000000000000L, active1, 0L, active2, 0L);
       case 78:
       case 110:
-         return jjMoveStringLiteralDfa3_1(active0, 0xc0000400000L, active1, 0L, active2, 0L);
+         return jjMoveStringLiteralDfa3_1(active0, 0x180000400000L, active1, 0L, active2, 0L);
       case 79:
       case 111:
-         return jjMoveStringLiteralDfa3_1(active0, 0x1000000000L, active1, 0x4cL, active2, 0L);
+         return jjMoveStringLiteralDfa3_1(active0, 0x1000000000L, active1, 0x98L, active2, 0L);
       case 80:
       case 112:
-         return jjMoveStringLiteralDfa3_1(active0, 0x10000000000000L, active1, 0L, active2, 0L);
+         return jjMoveStringLiteralDfa3_1(active0, 0x20000000000000L, active1, 0L, active2, 0L);
       case 81:
       case 113:
          return jjMoveStringLiteralDfa3_1(active0, 0xa00000000L, active1, 0L, active2, 0L);
@@ -885,30 +886,30 @@ static private final int jjMoveStringLiteralDfa2_1(long old0, long active0, long
       case 114:
          if ((active0 & 0x800000L) != 0L)
             return jjStartNfaWithStates_1(2, 23, 14);
-         else if ((active0 & 0x800000000000L) != 0L)
+         else if ((active0 & 0x1000000000000L) != 0L)
          {
-            jjmatchedKind = 47;
+            jjmatchedKind = 48;
             jjmatchedPos = 2;
          }
-         return jjMoveStringLiteralDfa3_1(active0, 0x4000000008000000L, active1, 0x1L, active2, 0L);
+         return jjMoveStringLiteralDfa3_1(active0, 0x8000000008000000L, active1, 0x2L, active2, 0L);
       case 83:
       case 115:
-         return jjMoveStringLiteralDfa3_1(active0, 0x20026000000L, active1, 0L, active2, 0L);
+         return jjMoveStringLiteralDfa3_1(active0, 0x40026000000L, active1, 0L, active2, 0L);
       case 84:
       case 116:
-         if ((active1 & 0x80L) != 0L)
+         if ((active1 & 0x100L) != 0L)
          {
-            jjmatchedKind = 71;
+            jjmatchedKind = 72;
             jjmatchedPos = 2;
          }
-         return jjMoveStringLiteralDfa3_1(active0, 0x9400000000000L, active1, 0x100L, active2, 0L);
+         return jjMoveStringLiteralDfa3_1(active0, 0x12800000000000L, active1, 0x200L, active2, 0L);
       case 85:
       case 117:
-         return jjMoveStringLiteralDfa3_1(active0, 0x80000000000000L, active1, 0x20L, active2, 0L);
+         return jjMoveStringLiteralDfa3_1(active0, 0x100000000000000L, active1, 0x40L, active2, 0L);
       case 87:
       case 119:
-         if ((active0 & 0x2000000000000L) != 0L)
-            return jjStartNfaWithStates_1(2, 49, 14);
+         if ((active0 & 0x4000000000000L) != 0L)
+            return jjStartNfaWithStates_1(2, 50, 14);
          break;
       default :
          break;
@@ -928,10 +929,10 @@ static private final int jjMoveStringLiteralDfa3_1(long old0, long active0, long
    {
       case 65:
       case 97:
-         return jjMoveStringLiteralDfa4_1(active0, 0x100018000000L, active1, 0x40L);
+         return jjMoveStringLiteralDfa4_1(active0, 0x200018000000L, active1, 0x80L);
       case 66:
       case 98:
-         return jjMoveStringLiteralDfa4_1(active0, 0x1000000000L, active1, 0x20L);
+         return jjMoveStringLiteralDfa4_1(active0, 0x1000000000L, active1, 0x40L);
       case 67:
       case 99:
          return jjMoveStringLiteralDfa4_1(active0, 0x400000L, active1, 0L);
@@ -942,29 +943,29 @@ static private final int jjMoveStringLiteralDfa3_1(long old0, long active0, long
             jjmatchedKind = 26;
             jjmatchedPos = 3;
          }
-         else if ((active0 & 0x20000000000L) != 0L)
-            return jjStartNfaWithStates_1(3, 41, 14);
-         else if ((active0 & 0x80000000000000L) != 0L)
-            return jjStartNfaWithStates_1(3, 55, 14);
-         return jjMoveStringLiteralDfa4_1(active0, 0x4010400002000000L, active1, 0x102L);
+         else if ((active0 & 0x40000000000L) != 0L)
+            return jjStartNfaWithStates_1(3, 42, 14);
+         else if ((active0 & 0x100000000000000L) != 0L)
+            return jjStartNfaWithStates_1(3, 56, 14);
+         return jjMoveStringLiteralDfa4_1(active0, 0x8020800002000000L, active1, 0x204L);
       case 70:
       case 102:
-         return jjMoveStringLiteralDfa4_1(active0, 0x2000000000000000L, active1, 0L);
+         return jjMoveStringLiteralDfa4_1(active0, 0x4000000000000000L, active1, 0L);
       case 73:
       case 105:
-         return jjMoveStringLiteralDfa4_1(active0, 0x1000000000000000L, active1, 0x1L);
+         return jjMoveStringLiteralDfa4_1(active0, 0x2000002000000000L, active1, 0x2L);
       case 76:
       case 108:
-         if ((active0 & 0x4000000000000L) != 0L)
-            return jjStartNfaWithStates_1(3, 50, 14);
-         else if ((active1 & 0x4L) != 0L)
+         if ((active0 & 0x8000000000000L) != 0L)
+            return jjStartNfaWithStates_1(3, 51, 14);
+         else if ((active1 & 0x8L) != 0L)
          {
-            jjmatchedKind = 66;
+            jjmatchedKind = 67;
             jjmatchedPos = 3;
          }
-         else if ((active1 & 0x10L) != 0L)
-            return jjStartNfaWithStates_1(3, 68, 14);
-         return jjMoveStringLiteralDfa4_1(active0, 0x200000500000000L, active1, 0x8L);
+         else if ((active1 & 0x20L) != 0L)
+            return jjStartNfaWithStates_1(3, 69, 14);
+         return jjMoveStringLiteralDfa4_1(active0, 0x400000500000000L, active1, 0x10L);
       case 78:
       case 110:
          return jjMoveStringLiteralDfa4_1(active0, 0x40000000L, active1, 0L);
@@ -972,25 +973,25 @@ static private final int jjMoveStringLiteralDfa3_1(long old0, long active0, long
       case 111:
          if ((active0 & 0x80000000L) != 0L)
             return jjStartNfaWithStates_1(3, 31, 14);
-         else if ((active0 & 0x1000000000000L) != 0L)
-            return jjStartNfaWithStates_1(3, 48, 14);
+         else if ((active0 & 0x2000000000000L) != 0L)
+            return jjStartNfaWithStates_1(3, 49, 14);
          break;
       case 83:
       case 115:
-         if ((active0 & 0x40000000000000L) != 0L)
-            return jjStartNfaWithStates_1(3, 54, 14);
-         return jjMoveStringLiteralDfa4_1(active0, 0x900040000200000L, active1, 0L);
+         if ((active0 & 0x80000000000000L) != 0L)
+            return jjStartNfaWithStates_1(3, 55, 14);
+         return jjMoveStringLiteralDfa4_1(active0, 0x1200080000200000L, active1, 0L);
       case 84:
       case 116:
          if ((active0 & 0x20000000L) != 0L)
             return jjStartNfaWithStates_1(3, 29, 14);
-         return jjMoveStringLiteralDfa4_1(active0, 0x20082000000000L, active1, 0L);
+         return jjMoveStringLiteralDfa4_1(active0, 0x40104000000000L, active1, 0L);
       case 85:
       case 117:
-         return jjMoveStringLiteralDfa4_1(active0, 0x8000a00000000L, active1, 0L);
+         return jjMoveStringLiteralDfa4_1(active0, 0x10000a00000000L, active1, 0L);
       case 87:
       case 119:
-         return jjMoveStringLiteralDfa4_1(active0, 0x400000000000000L, active1, 0L);
+         return jjMoveStringLiteralDfa4_1(active0, 0x800000000000000L, active1, 0L);
       default :
          break;
    }
@@ -1009,31 +1010,31 @@ static private final int jjMoveStringLiteralDfa4_1(long old0, long active0, long
    {
       case 65:
       case 97:
-         return jjMoveStringLiteralDfa5_1(active0, 0x4000001000000000L, active1, 0L);
+         return jjMoveStringLiteralDfa5_1(active0, 0x8000001000000000L, active1, 0L);
       case 67:
       case 99:
-         return jjMoveStringLiteralDfa5_1(active0, 0x20000000000000L, active1, 0x2L);
+         return jjMoveStringLiteralDfa5_1(active0, 0x40000000000000L, active1, 0x4L);
       case 69:
       case 101:
-         if ((active0 & 0x100000000000000L) != 0L)
-            return jjStartNfaWithStates_1(4, 56, 14);
-         else if ((active0 & 0x200000000000000L) != 0L)
+         if ((active0 & 0x200000000000000L) != 0L)
             return jjStartNfaWithStates_1(4, 57, 14);
-         return jjMoveStringLiteralDfa5_1(active0, 0L, active1, 0x8L);
+         else if ((active0 & 0x400000000000000L) != 0L)
+            return jjStartNfaWithStates_1(4, 58, 14);
+         return jjMoveStringLiteralDfa5_1(active0, 0L, active1, 0x10L);
       case 70:
       case 102:
-         if ((active0 & 0x1000000000000000L) != 0L)
-            return jjStartNfaWithStates_1(4, 60, 14);
+         if ((active0 & 0x2000000000000000L) != 0L)
+            return jjStartNfaWithStates_1(4, 61, 14);
          break;
       case 71:
       case 103:
-         return jjMoveStringLiteralDfa5_1(active0, 0L, active1, 0x100L);
+         return jjMoveStringLiteralDfa5_1(active0, 0L, active1, 0x200L);
       case 72:
       case 104:
-         return jjMoveStringLiteralDfa5_1(active0, 0x400000000000000L, active1, 0L);
+         return jjMoveStringLiteralDfa5_1(active0, 0x800000000000000L, active1, 0L);
       case 73:
       case 105:
-         return jjMoveStringLiteralDfa5_1(active0, 0x82a02000000L, active1, 0L);
+         return jjMoveStringLiteralDfa5_1(active0, 0x104a02000000L, active1, 0L);
       case 75:
       case 107:
          if ((active0 & 0x10000000L) != 0L)
@@ -1041,18 +1042,18 @@ static private final int jjMoveStringLiteralDfa4_1(long old0, long active0, long
          break;
       case 76:
       case 108:
-         return jjMoveStringLiteralDfa5_1(active0, 0L, active1, 0x20L);
+         return jjMoveStringLiteralDfa5_1(active0, 0L, active1, 0x40L);
       case 78:
       case 110:
-         return jjMoveStringLiteralDfa5_1(active0, 0x400000000000L, active1, 0x1L);
+         return jjMoveStringLiteralDfa5_1(active0, 0x802000000000L, active1, 0x2L);
       case 79:
       case 111:
-         return jjMoveStringLiteralDfa5_1(active0, 0x2000000000000000L, active1, 0L);
+         return jjMoveStringLiteralDfa5_1(active0, 0x4000000000000000L, active1, 0L);
       case 82:
       case 114:
-         if ((active0 & 0x10000000000000L) != 0L)
-            return jjStartNfaWithStates_1(4, 52, 14);
-         return jjMoveStringLiteralDfa5_1(active0, 0x8000000000000L, active1, 0L);
+         if ((active0 & 0x20000000000000L) != 0L)
+            return jjStartNfaWithStates_1(4, 53, 14);
+         return jjMoveStringLiteralDfa5_1(active0, 0x10000000000000L, active1, 0L);
       case 83:
       case 115:
          if ((active0 & 0x200000L) != 0L)
@@ -1062,17 +1063,17 @@ static private final int jjMoveStringLiteralDfa4_1(long old0, long active0, long
       case 116:
          if ((active0 & 0x40000000L) != 0L)
             return jjStartNfaWithStates_1(4, 30, 14);
-         else if ((active0 & 0x40000000000L) != 0L)
-            return jjStartNfaWithStates_1(4, 42, 14);
-         else if ((active1 & 0x40L) != 0L)
-            return jjStartNfaWithStates_1(4, 70, 14);
+         else if ((active0 & 0x80000000000L) != 0L)
+            return jjStartNfaWithStates_1(4, 43, 14);
+         else if ((active1 & 0x80L) != 0L)
+            return jjStartNfaWithStates_1(4, 71, 14);
          return jjMoveStringLiteralDfa5_1(active0, 0x400000L, active1, 0L);
       case 85:
       case 117:
-         return jjMoveStringLiteralDfa5_1(active0, 0x100500000000L, active1, 0L);
+         return jjMoveStringLiteralDfa5_1(active0, 0x200500000000L, active1, 0L);
       case 87:
       case 119:
-         return jjMoveStringLiteralDfa5_1(active0, 0x800000000000000L, active1, 0L);
+         return jjMoveStringLiteralDfa5_1(active0, 0x1000000000000000L, active1, 0L);
       case 89:
       case 121:
          if ((active0 & 0x8000000L) != 0L)
@@ -1096,20 +1097,22 @@ static private final int jjMoveStringLiteralDfa5_1(long old0, long active0, long
    {
       case 65:
       case 97:
-         return jjMoveStringLiteralDfa6_1(active0, 0L, active1, 0x8L);
+         return jjMoveStringLiteralDfa6_1(active0, 0L, active1, 0x10L);
       case 67:
       case 99:
-         if ((active0 & 0x2000000000L) != 0L)
-            return jjStartNfaWithStates_1(5, 37, 14);
-         return jjMoveStringLiteralDfa6_1(active0, 0x4000000000000000L, active1, 0L);
+         if ((active0 & 0x4000000000L) != 0L)
+            return jjStartNfaWithStates_1(5, 38, 14);
+         return jjMoveStringLiteralDfa6_1(active0, 0x8000000000000000L, active1, 0L);
       case 68:
       case 100:
-         return jjMoveStringLiteralDfa6_1(active0, 0x400500000000L, active1, 0L);
+         return jjMoveStringLiteralDfa6_1(active0, 0x800500000000L, active1, 0L);
       case 69:
       case 101:
-         if ((active1 & 0x20L) != 0L)
-            return jjStartNfaWithStates_1(5, 69, 14);
-         return jjMoveStringLiteralDfa6_1(active0, 0L, active1, 0x100L);
+         if ((active0 & 0x2000000000L) != 0L)
+            return jjStartNfaWithStates_1(5, 37, 14);
+         else if ((active1 & 0x40L) != 0L)
+            return jjStartNfaWithStates_1(5, 70, 14);
+         return jjMoveStringLiteralDfa6_1(active0, 0L, active1, 0x200L);
       case 70:
       case 102:
          if ((active0 & 0x2000000L) != 0L)
@@ -1117,36 +1120,36 @@ static private final int jjMoveStringLiteralDfa5_1(long old0, long active0, long
          break;
       case 71:
       case 103:
-         if ((active1 & 0x1L) != 0L)
-            return jjStartNfaWithStates_1(5, 64, 14);
+         if ((active1 & 0x2L) != 0L)
+            return jjStartNfaWithStates_1(5, 65, 14);
          break;
       case 72:
       case 104:
-         if ((active0 & 0x20000000000000L) != 0L)
-            return jjStartNfaWithStates_1(5, 53, 14);
+         if ((active0 & 0x40000000000000L) != 0L)
+            return jjStartNfaWithStates_1(5, 54, 14);
          break;
       case 73:
       case 105:
-         return jjMoveStringLiteralDfa6_1(active0, 0xc00000000400000L, active1, 0L);
+         return jjMoveStringLiteralDfa6_1(active0, 0x1800000000400000L, active1, 0L);
       case 76:
       case 108:
          if ((active0 & 0x1000000000L) != 0L)
             return jjStartNfaWithStates_1(5, 36, 14);
-         return jjMoveStringLiteralDfa6_1(active0, 0x100000000000L, active1, 0L);
+         return jjMoveStringLiteralDfa6_1(active0, 0x200000000000L, active1, 0L);
       case 78:
       case 110:
-         if ((active0 & 0x8000000000000L) != 0L)
-            return jjStartNfaWithStates_1(5, 51, 14);
-         return jjMoveStringLiteralDfa6_1(active0, 0x80000000000L, active1, 0L);
+         if ((active0 & 0x10000000000000L) != 0L)
+            return jjStartNfaWithStates_1(5, 52, 14);
+         return jjMoveStringLiteralDfa6_1(active0, 0x100000000000L, active1, 0L);
       case 82:
       case 114:
-         if ((active0 & 0x2000000000000000L) != 0L)
-            return jjStartNfaWithStates_1(5, 61, 14);
+         if ((active0 & 0x4000000000000000L) != 0L)
+            return jjStartNfaWithStates_1(5, 62, 14);
          return jjMoveStringLiteralDfa6_1(active0, 0xa00000000L, active1, 0L);
       case 84:
       case 116:
-         if ((active1 & 0x2L) != 0L)
-            return jjStartNfaWithStates_1(5, 65, 14);
+         if ((active1 & 0x4L) != 0L)
+            return jjStartNfaWithStates_1(5, 66, 14);
          break;
       default :
          break;
@@ -1179,38 +1182,38 @@ static private final int jjMoveStringLiteralDfa6_1(long old0, long active0, long
          return jjMoveStringLiteralDfa7_1(active0, 0xc00000000L, active1, 0L);
       case 72:
       case 104:
-         if ((active0 & 0x4000000000000000L) != 0L)
-            return jjStartNfaWithStates_1(6, 62, 14);
+         if ((active0 & 0x8000000000000000L) != 0L)
+            return jjStartNfaWithStates_1(6, 63, 14);
          break;
       case 76:
       case 108:
-         return jjMoveStringLiteralDfa7_1(active0, 0x400000000000000L, active1, 0L);
+         return jjMoveStringLiteralDfa7_1(active0, 0x800000000000000L, active1, 0L);
       case 78:
       case 110:
-         if ((active1 & 0x8L) != 0L)
-            return jjStartNfaWithStates_1(6, 67, 14);
+         if ((active1 & 0x10L) != 0L)
+            return jjStartNfaWithStates_1(6, 68, 14);
          break;
       case 79:
       case 111:
          return jjMoveStringLiteralDfa7_1(active0, 0x400000L, active1, 0L);
       case 82:
       case 114:
-         if ((active1 & 0x100L) != 0L)
-            return jjStartNfaWithStates_1(6, 72, 14);
+         if ((active1 & 0x200L) != 0L)
+            return jjStartNfaWithStates_1(6, 73, 14);
          break;
       case 83:
       case 115:
-         if ((active0 & 0x400000000000L) != 0L)
-            return jjStartNfaWithStates_1(6, 46, 14);
+         if ((active0 & 0x800000000000L) != 0L)
+            return jjStartNfaWithStates_1(6, 47, 14);
          break;
       case 84:
       case 116:
-         if ((active0 & 0x100000000000L) != 0L)
-            return jjStartNfaWithStates_1(6, 44, 14);
-         return jjMoveStringLiteralDfa7_1(active0, 0x800000000000000L, active1, 0L);
+         if ((active0 & 0x200000000000L) != 0L)
+            return jjStartNfaWithStates_1(6, 45, 14);
+         return jjMoveStringLiteralDfa7_1(active0, 0x1000000000000000L, active1, 0L);
       case 85:
       case 117:
-         return jjMoveStringLiteralDfa7_1(active0, 0x80000000000L, active1, 0L);
+         return jjMoveStringLiteralDfa7_1(active0, 0x100000000000L, active1, 0L);
       default :
          break;
    }
@@ -1231,13 +1234,13 @@ static private final int jjMoveStringLiteralDfa7_1(long old0, long active0, long
          return jjMoveStringLiteralDfa8_1(active0, 0xc00000000L);
       case 67:
       case 99:
-         return jjMoveStringLiteralDfa8_1(active0, 0x800000000000000L);
+         return jjMoveStringLiteralDfa8_1(active0, 0x1000000000000000L);
       case 69:
       case 101:
-         if ((active0 & 0x80000000000L) != 0L)
-            return jjStartNfaWithStates_1(7, 43, 14);
-         else if ((active0 & 0x400000000000000L) != 0L)
-            return jjStartNfaWithStates_1(7, 58, 14);
+         if ((active0 & 0x100000000000L) != 0L)
+            return jjStartNfaWithStates_1(7, 44, 14);
+         else if ((active0 & 0x800000000000000L) != 0L)
+            return jjStartNfaWithStates_1(7, 59, 14);
          break;
       case 78:
       case 110:
@@ -1262,8 +1265,8 @@ static private final int jjMoveStringLiteralDfa8_1(long old0, long active0)
    {
       case 72:
       case 104:
-         if ((active0 & 0x800000000000000L) != 0L)
-            return jjStartNfaWithStates_1(8, 59, 14);
+         if ((active0 & 0x1000000000000000L) != 0L)
+            return jjStartNfaWithStates_1(8, 60, 14);
          break;
       case 79:
       case 111:
@@ -1371,14 +1374,14 @@ static private final int jjMoveNfa_1(int startState, int curPos)
                      jjstateSet[jjnewStateCnt++] = 2;
                   if ((0x3fe000000000000L & l) != 0L)
                   {
-                     if (kind > 96)
-                        kind = 96;
+                     if (kind > 97)
+                        kind = 97;
                      jjCheckNAddTwoStates(5, 6);
                   }
                   else if (curChar == 48)
                   {
-                     if (kind > 96)
-                        kind = 96;
+                     if (kind > 97)
+                        kind = 97;
                      jjCheckNAddStates(19, 21);
                   }
                   break;
@@ -1397,15 +1400,15 @@ static private final int jjMoveNfa_1(int startState, int curPos)
                case 4:
                   if ((0x3fe000000000000L & l) == 0L)
                      break;
-                  if (kind > 96)
-                     kind = 96;
+                  if (kind > 97)
+                     kind = 97;
                   jjCheckNAddTwoStates(5, 6);
                   break;
                case 5:
                   if ((0x3ff000000000000L & l) == 0L)
                      break;
-                  if (kind > 96)
-                     kind = 96;
+                  if (kind > 97)
+                     kind = 97;
                   jjCheckNAddTwoStates(5, 6);
                   break;
                case 7:
@@ -1415,8 +1418,8 @@ static private final int jjMoveNfa_1(int startState, int curPos)
                case 8:
                   if ((0x3ff000000000000L & l) == 0L)
                      break;
-                  if (kind > 100)
-                     kind = 100;
+                  if (kind > 101)
+                     kind = 101;
                   jjCheckNAddStates(22, 24);
                   break;
                case 10:
@@ -1426,15 +1429,15 @@ static private final int jjMoveNfa_1(int startState, int curPos)
                case 11:
                   if ((0x3ff000000000000L & l) == 0L)
                      break;
-                  if (kind > 100)
-                     kind = 100;
+                  if (kind > 101)
+                     kind = 101;
                   jjCheckNAddTwoStates(11, 12);
                   break;
                case 14:
                   if ((0x3ff000000000000L & l) == 0L)
                      break;
-                  if (kind > 106)
-                     kind = 106;
+                  if (kind > 107)
+                     kind = 107;
                   jjstateSet[jjnewStateCnt++] = 14;
                   break;
                case 15:
@@ -1444,8 +1447,8 @@ static private final int jjMoveNfa_1(int startState, int curPos)
                case 17:
                   if ((0x3ff000000000000L & l) == 0L)
                      break;
-                  if (kind > 141)
-                     kind = 141;
+                  if (kind > 142)
+                     kind = 142;
                   jjstateSet[jjnewStateCnt++] = 17;
                   break;
                case 18:
@@ -1459,15 +1462,15 @@ static private final int jjMoveNfa_1(int startState, int curPos)
                case 20:
                   if (curChar != 46)
                      break;
-                  if (kind > 100)
-                     kind = 100;
+                  if (kind > 101)
+                     kind = 101;
                   jjCheckNAddStates(25, 27);
                   break;
                case 21:
                   if ((0x3ff000000000000L & l) == 0L)
                      break;
-                  if (kind > 100)
-                     kind = 100;
+                  if (kind > 101)
+                     kind = 101;
                   jjCheckNAddStates(25, 27);
                   break;
                case 23:
@@ -1477,8 +1480,8 @@ static private final int jjMoveNfa_1(int startState, int curPos)
                case 24:
                   if ((0x3ff000000000000L & l) == 0L)
                      break;
-                  if (kind > 100)
-                     kind = 100;
+                  if (kind > 101)
+                     kind = 101;
                   jjCheckNAddTwoStates(24, 12);
                   break;
                case 25:
@@ -1492,8 +1495,8 @@ static private final int jjMoveNfa_1(int startState, int curPos)
                case 28:
                   if ((0x3ff000000000000L & l) == 0L)
                      break;
-                  if (kind > 100)
-                     kind = 100;
+                  if (kind > 101)
+                     kind = 101;
                   jjCheckNAddTwoStates(28, 12);
                   break;
                case 29:
@@ -1511,22 +1514,22 @@ static private final int jjMoveNfa_1(int startState, int curPos)
                case 33:
                   if (curChar != 48)
                      break;
-                  if (kind > 96)
-                     kind = 96;
+                  if (kind > 97)
+                     kind = 97;
                   jjCheckNAddStates(19, 21);
                   break;
                case 35:
                   if ((0x3ff000000000000L & l) == 0L)
                      break;
-                  if (kind > 96)
-                     kind = 96;
+                  if (kind > 97)
+                     kind = 97;
                   jjCheckNAddTwoStates(35, 6);
                   break;
                case 36:
                   if ((0xff000000000000L & l) == 0L)
                      break;
-                  if (kind > 96)
-                     kind = 96;
+                  if (kind > 97)
+                     kind = 97;
                   jjCheckNAddTwoStates(36, 6);
                   break;
                case 37:
@@ -1542,8 +1545,8 @@ static private final int jjMoveNfa_1(int startState, int curPos)
                      jjCheckNAddStates(31, 33);
                   break;
                case 41:
-                  if (curChar == 34 && kind > 102)
-                     kind = 102;
+                  if (curChar == 34 && kind > 103)
+                     kind = 103;
                   break;
                case 42:
                   if ((0xfffffffbffffffffL & l) != 0L)
@@ -1554,8 +1557,8 @@ static private final int jjMoveNfa_1(int startState, int curPos)
                      jjCheckNAddStates(34, 36);
                   break;
                case 45:
-                  if (curChar == 34 && kind > 103)
-                     kind = 103;
+                  if (curChar == 34 && kind > 104)
+                     kind = 104;
                   break;
                case 46:
                   if (curChar == 39)
@@ -1570,8 +1573,8 @@ static private final int jjMoveNfa_1(int startState, int curPos)
                      jjCheckNAddStates(37, 39);
                   break;
                case 50:
-                  if (curChar == 39 && kind > 102)
-                     kind = 102;
+                  if (curChar == 39 && kind > 103)
+                     kind = 103;
                   break;
                case 51:
                   if ((0xffffff7fffffffffL & l) != 0L)
@@ -1582,8 +1585,8 @@ static private final int jjMoveNfa_1(int startState, int curPos)
                      jjCheckNAddStates(40, 42);
                   break;
                case 54:
-                  if (curChar == 39 && kind > 104)
-                     kind = 104;
+                  if (curChar == 39 && kind > 105)
+                     kind = 105;
                   break;
                case 56:
                   jjAddStates(43, 45);
@@ -1605,8 +1608,8 @@ static private final int jjMoveNfa_1(int startState, int curPos)
                case 3:
                   if ((0x87fffffe87fffffeL & l) != 0L)
                   {
-                     if (kind > 106)
-                        kind = 106;
+                     if (kind > 107)
+                        kind = 107;
                      jjCheckNAdd(14);
                   }
                   else if (curChar == 96)
@@ -1617,31 +1620,31 @@ static private final int jjMoveNfa_1(int startState, int curPos)
                      kind = 13;
                   break;
                case 6:
-                  if ((0x100000001000L & l) != 0L && kind > 96)
-                     kind = 96;
+                  if ((0x100000001000L & l) != 0L && kind > 97)
+                     kind = 97;
                   break;
                case 9:
                   if ((0x2000000020L & l) != 0L)
                      jjAddStates(55, 56);
                   break;
                case 12:
-                  if ((0x5000000050L & l) != 0L && kind > 100)
-                     kind = 100;
+                  if ((0x5000000050L & l) != 0L && kind > 101)
+                     kind = 101;
                   break;
                case 13:
                case 14:
                   if ((0x87fffffe87fffffeL & l) == 0L)
                      break;
-                  if (kind > 106)
-                     kind = 106;
+                  if (kind > 107)
+                     kind = 107;
                   jjCheckNAdd(14);
                   break;
                case 16:
                case 17:
                   if ((0x87fffffe87fffffeL & l) == 0L)
                      break;
-                  if (kind > 141)
-                     kind = 141;
+                  if (kind > 142)
+                     kind = 142;
                   jjCheckNAdd(17);
                   break;
                case 22:
@@ -1663,8 +1666,8 @@ static private final int jjMoveNfa_1(int startState, int curPos)
                case 35:
                   if ((0x7e0000007eL & l) == 0L)
                      break;
-                  if (kind > 96)
-                     kind = 96;
+                  if (kind > 97)
+                     kind = 97;
                   jjCheckNAddTwoStates(35, 6);
                   break;
                case 38:
@@ -1712,8 +1715,8 @@ static private final int jjMoveNfa_1(int startState, int curPos)
                      jjstateSet[jjnewStateCnt++] = 57;
                   break;
                case 59:
-                  if (curChar == 96 && kind > 102)
-                     kind = 102;
+                  if (curChar == 96 && kind > 103)
+                     kind = 103;
                   break;
                case 60:
                   if ((0xfffffffeffffffffL & l) != 0L)
@@ -1728,8 +1731,8 @@ static private final int jjMoveNfa_1(int startState, int curPos)
                      jjstateSet[jjnewStateCnt++] = 61;
                   break;
                case 63:
-                  if (curChar == 96 && kind > 105)
-                     kind = 105;
+                  if (curChar == 96 && kind > 106)
+                     kind = 106;
                   break;
                default : break;
             }
@@ -1747,8 +1750,8 @@ static private final int jjMoveNfa_1(int startState, int curPos)
                case 14:
                   if ((jjbitVec0[i2] & l2) == 0L)
                      break;
-                  if (kind > 106)
-                     kind = 106;
+                  if (kind > 107)
+                     kind = 107;
                   jjCheckNAdd(14);
                   break;
                case 1:
@@ -1759,8 +1762,8 @@ static private final int jjMoveNfa_1(int startState, int curPos)
                case 17:
                   if ((jjbitVec0[i2] & l2) == 0L)
                      break;
-                  if (kind > 141)
-                     kind = 141;
+                  if (kind > 142)
+                     kind = 142;
                   jjCheckNAdd(17);
                   break;
                case 38:
@@ -1883,7 +1886,7 @@ static final int[] jjnextStates = {
 public static final String[] jjstrLiteralImages = {
 "", "\74\77", null, "\74\77\75", "\77\76", null, null, null, null, null, null, 
 null, null, null, null, null, null, null, null, null, null, null, null, null, null, 
-null, null, null, null, null, null, null, null, null, null, null, null, null, 
+null, null, null, null, null, null, null, null, null, null, null, null, null, null, 
 "\55\76", "\72\72", "\75\76", null, null, null, null, null, null, null, null, null, null, 
 null, null, null, null, null, null, null, null, null, null, null, null, null, null, 
 null, null, null, null, null, null, null, null, "\100", "\44", "\41", "\176", "\77", 
@@ -1907,10 +1910,10 @@ public static final int[] jjnewLexState = {
    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
-   -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
+   -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
 };
 static final long[] jjtoToken = {
-   0xffffffffffe0001fL, 0xffffc7d1ffffffffL, 0x3fffL, 
+   0xffffffffffe0001fL, 0xffff8fa3ffffffffL, 0x7fffL, 
 };
 static final long[] jjtoSkip = {
    0xfffe0L, 0x0L, 0x0L,