*** empty log message ***
authorkpouer <kpouer>
Sun, 15 Jun 2003 14:53:57 +0000 (14:53 +0000)
committerkpouer <kpouer>
Sun, 15 Jun 2003 14:53:57 +0000 (14:53 +0000)
net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/Block.java
net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/ClassDeclaration.java
net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/IfStatement.java
net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/PHPDocument.java
net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/compiler/ast/VarAssignation.java
net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/PHPParserAction.java
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/PHPParserSuperclass.java
net.sourceforge.phpeclipse/src/test/PHPParserTokenManager.java

index 145fb87..b3ef5d1 100644 (file)
@@ -36,10 +36,9 @@ public class Block extends Statement {
     final String s = AstNode.tabString(tab);
     final StringBuffer buff = new StringBuffer(s);
     buff.append("{\n"); //$NON-NLS-1$
-    if (this.statements == null) {
+    if (this.statements != null) {
       for (int i = 0; i < statements.length; i++) {
           buff.append(statements[i].toString(tab+1)).append(";\n");//$NON-NLS-1$
-          buff.append(statements[i].getClass().getName()).append(";\n");//$NON-NLS-1$
       }
     }
     buff.append("}\n"); //$NON-NLS-1$
index 9c5bf07..62420f4 100644 (file)
@@ -72,7 +72,7 @@ public class ClassDeclaration extends Statement implements OutlineableWithChildr
     position = new Position(sourceStart, name.length);
   }
 
-  public void add(MethodDeclaration method) {
+  public void addMethod(MethodDeclaration method) {
     methods.add(method);
     add(method);
     if (method.name.equals(name)) {
@@ -80,7 +80,7 @@ public class ClassDeclaration extends Statement implements OutlineableWithChildr
     }
   }
 
-  public void add(FieldDeclaration var) {
+  public void addField(FieldDeclaration var) {
     for (int i = 0; i < var.vars.length; i++) {
       VariableDeclaration c = var.vars[i];
       children.add(c);
index aebef7b..e424d23 100644 (file)
@@ -16,7 +16,7 @@ public class IfStatement extends Statement {
   public Else els;
 
   /**
-   * Create a new If statement
+   * Create a new If statement.
    * @param condition the condition
    * @param statement a statement or a block of statements
    * @param elseifs the elseifs
@@ -46,11 +46,9 @@ public class IfStatement extends Statement {
     final StringBuffer buff = new StringBuffer(tabString(tab));
     buff.append("if (");
     buff.append(condition.toStringExpression()).append(") ");
-    buff.append("\n");
     buff.append(statement.toString(tab+1));
     for (int i = 0; i < elseifs.length; i++) {
-      ElseIf elseif = elseifs[i];
-      buff.append(elseif.toString(tab+1));
+      buff.append(elseifs[i].toString(tab+1));
       buff.append("\n");
     }
     if (els != null) {
index e2d2fc5..d6a394d 100644 (file)
@@ -24,6 +24,7 @@ public class PHPDocument implements OutlineableWithChildren {
   public AstNode[] nodes;
 
   public char[] name;
+
   /** The parent of the object. */
   public Object parent;
 
@@ -56,7 +57,11 @@ public class PHPDocument implements OutlineableWithChildren {
           break;
         }
         buff.append(node.toString(0));
-        buff.append(";\n");
+        if (node instanceof HTMLCode) {
+          buff.append("\n");
+        } else {
+          buff.append(";\n");
+        }
       }
     }
     return buff.toString();
index dc08043..e54de47 100644 (file)
@@ -1,6 +1,8 @@
 package net.sourceforge.phpdt.internal.compiler.ast;
 
 /**
+ * A Variable assignation.
+ * $varname = initializer
  * @author Matthieu Casanova
  */
 public class VarAssignation extends Expression {
@@ -19,23 +21,34 @@ public class VarAssignation extends Expression {
   public static final int LSHIFT_EQUAL = 11;
   public static final int RSIGNEDSHIFT_EQUAL = 12;
 
-  public char[] variable;
-  public Expression expression;
+  public char[] variableName;
+  public Expression initializer;
   public int operator;
 
-
-  public VarAssignation(char[] variable,
-                        Expression expression,
-                        int operator,
-                        int sourceStart,
-                        int sourceEnd) {
+  /**
+   * Create a new variable assignation.
+   * @param variableName the name of the variable
+   * @param initializer the expression in initializer
+   * @param operator the operator of assignation
+   * @param sourceStart the sourceStart
+   * @param sourceEnd the sourceEnd
+   */
+  public VarAssignation(final char[] variableName,
+                        final Expression initializer,
+                        final int operator,
+                        final int sourceStart,
+                        final int sourceEnd) {
     super(sourceStart, sourceEnd);
-    this.variable = variable;
-    this.expression = expression;
+    this.variableName = variableName;
+    this.initializer = initializer;
     this.operator = operator;
   }
 
-  public String operatorToString() {
+  /**
+   * Return the operator as String.
+    * @return the operator
+   */
+  public final String operatorToString() {
     switch (operator) {
       case EQUAL:
         return "="; //$NON-NLS-1$
@@ -64,7 +77,7 @@ public class VarAssignation extends Expression {
       case RSIGNEDSHIFT_EQUAL:
         return ">>="; //$NON-NLS-1$
     }
-    return " unknown operator ";
+    return " unknown operator ";//$NON-NLS-1$
   }
 
   /**
@@ -72,12 +85,12 @@ public class VarAssignation extends Expression {
    * @return the expression
    */
   public String toStringExpression() {
-    final StringBuffer buff = new StringBuffer();
-    buff.append(variable);
-    buff.append(" ");
+    final StringBuffer buff = new StringBuffer("$");
+    buff.append(variableName);
+    buff.append(" ");//$NON-NLS-1$
     buff.append(operatorToString());
-    buff.append(" ");
-    buff.append(expression.toStringExpression());
+    buff.append(" ");//$NON-NLS-1$
+    buff.append(initializer.toStringExpression());
     return buff.toString();
   }
 }
index 7dc47c4..32015b0 100644 (file)
@@ -79,6 +79,9 @@ public class PHPParserAction extends TextEditorAction {
           // first delete all the previous markers
           fileToParse.deleteMarkers(IMarker.PROBLEM, false, 0);
 
+          //the tasks are removed here
+          fileToParse.deleteMarkers(IMarker.TASK, false, 0);
+
           try {
             InputStream iStream = fileToParse.getContents();
             //        int c = iStream.read();
index aba9b11..8b59f42 100644 (file)
@@ -8,7 +8,6 @@ import org.eclipse.ui.texteditor.MarkerUtilities;
 import org.eclipse.jface.preference.IPreferenceStore;
 
 import java.util.Hashtable;
-import java.util.Enumeration;
 import java.util.ArrayList;
 import java.io.StringReader;
 import java.io.*;
@@ -167,31 +166,6 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon
     }
   }
 
-  /**
-   * Create markers according to the external parser output
-   */
-  private static void createMarkers(final String output, final IFile file) throws CoreException {
-    // delete all markers
-    file.deleteMarkers(IMarker.PROBLEM, false, 0);
-
-    int indx = 0;
-    int brIndx;
-    boolean flag = true;
-    while ((brIndx = output.indexOf("<br />", indx)) != -1) {
-      // newer php error output (tested with 4.2.3)
-      scanLine(output, file, indx, brIndx);
-      indx = brIndx + 6;
-      flag = false;
-    }
-    if (flag) {
-      while ((brIndx = output.indexOf("<br>", indx)) != -1) {
-        // older php error output (tested with 4.2.3)
-        scanLine(output, file, indx, brIndx);
-        indx = brIndx + 4;
-      }
-    }
-  }
-
   private static void scanLine(final String output,
                                final IFile file,
                                final int indx,
@@ -281,6 +255,25 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon
     pushOnAstNodes(new HTMLCode(chars, htmlStart,currentPosition));
   }
 
+  /**
+   * Create a new task.
+   */
+  public static final void createNewTask() {
+    final int currentPosition = SimpleCharStream.getPosition();
+    final String  todo = SimpleCharStream.currentBuffer.substring(currentPosition+1,
+                                                                  SimpleCharStream.currentBuffer.indexOf("\n",
+                                                                                                         currentPosition)-1);
+    try {
+      setMarker(fileToParse,
+                "todo : " + todo,
+                SimpleCharStream.getBeginLine(),
+                TASK,
+                "Line "+SimpleCharStream.getBeginLine());
+    } catch (CoreException e) {
+      PHPeclipsePlugin.log(e);
+    }
+  }
+
   private static final void parse() throws ParseException {
           phpFile();
   }
@@ -343,7 +336,7 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon
         }
         PhpBlock();
       }
-      jj_consume_token(0);
+     PHPParser.createNewHTMLCode();
     } catch (TokenMgrError e) {
     PHPeclipsePlugin.log(e);
     errorStart   = SimpleCharStream.getPosition();
@@ -638,10 +631,11 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon
     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
     case FUNCTION:
       method = MethodDeclaration();
-                                method.setParent(classDeclaration);
+                                classDeclaration.addMethod(method);
       break;
     case VAR:
       field = FieldDeclaration();
+                                classDeclaration.addField(field);
       break;
     default:
       jj_la1[8] = jj_gen;
@@ -662,7 +656,6 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon
     variableDeclaration = VariableDeclarator();
    arrayList.add(variableDeclaration);
    outlineInfo.addVariable(new String(variableDeclaration.name));
-   currentSegment.add(variableDeclaration);
     label_4:
     while (true) {
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -677,7 +670,6 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon
       variableDeclaration = VariableDeclarator();
        arrayList.add(variableDeclaration);
        outlineInfo.addVariable(new String(variableDeclaration.name));
-       currentSegment.add(variableDeclaration);
     }
     try {
       jj_consume_token(SEMICOLON);
@@ -738,13 +730,12 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon
  */
   static final public String VariableDeclaratorId() throws ParseException {
   String expr;
-  Expression expression;
+  Expression expression = null;
   final StringBuffer buff = new StringBuffer();
   final int pos = SimpleCharStream.getPosition();
   ConstantIdentifier ex;
     try {
       expr = Variable();
-                         buff.append(expr);
       label_5:
       while (true) {
         if (jj_2_1(2)) {
@@ -756,9 +747,11 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon
                                    pos,
                                    SimpleCharStream.getPosition());
         expression = VariableSuffix(ex);
-       buff.append(expression.toStringExpression());
       }
-     {if (true) return buff.toString();}
+     if (expression == null) {
+       {if (true) return expr;}
+     }
+     {if (true) return expression.toStringExpression();}
     } catch (ParseException e) {
     errorMessage = "'$' expected for variable identifier";
     errorLevel   = ERROR;
@@ -769,6 +762,10 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon
     throw new Error("Missing return statement in function");
   }
 
+/**
+ * Return a variablename without the $.
+ * @return a variable name
+ */
   static final public String Variable() throws ParseException {
   final StringBuffer buff;
   Expression expression = null;
@@ -799,7 +796,7 @@ public final class PHPParser extends PHPParserSuperclass implements PHPParserCon
     case DOLLAR:
       jj_consume_token(DOLLAR);
       expr = VariableName();
-   {if (true) return "$" + expr;}
+   {if (true) return expr;}
       break;
     default:
       jj_la1[12] = jj_gen;
@@ -1022,6 +1019,7 @@ Expression expr,expr2;
   static final public MethodDeclaration MethodDeclaration() throws ParseException {
   final MethodDeclaration functionDeclaration;
   final Block block;
+  final OutlineableWithChildren seg = currentSegment;
     jj_consume_token(FUNCTION);
     try {
       functionDeclaration = MethodDeclarator();
@@ -1034,16 +1032,11 @@ Expression expr,expr2;
     errorEnd   = SimpleCharStream.getPosition() + 1;
     {if (true) throw e;}
     }
-    if (currentSegment != null) {
-      currentSegment.add(functionDeclaration);
-      currentSegment = functionDeclaration;
-    }
+   currentSegment = functionDeclaration;
     block = Block();
-    functionDeclaration.statements = block.statements;
-    if (currentSegment != null) {
-      currentSegment = (OutlineableWithChildren) currentSegment.getParent();
-    }
-    {if (true) return functionDeclaration;}
+   functionDeclaration.statements = block.statements;
+   currentSegment = seg;
+   {if (true) return functionDeclaration;}
     throw new Error("Missing return statement in function");
   }
 
@@ -1078,11 +1071,11 @@ Expression expr,expr2;
     }
     formalParameters = FormalParameters();
    {if (true) return new MethodDeclaration(currentSegment,
-                                 identifierChar,
-                                 formalParameters,
-                                 reference != null,
-                                 pos,
-                                 SimpleCharStream.getPosition());}
+                                identifierChar,
+                                formalParameters,
+                                reference != null,
+                                pos,
+                                SimpleCharStream.getPosition());}
     throw new Error("Missing return statement in function");
   }
 
@@ -1100,7 +1093,7 @@ Expression expr,expr2;
     errorLevel   = ERROR;
     errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
     errorEnd   = SimpleCharStream.getPosition() + 1;
-    {if (true) throw e;}
+    processParseException(e);
     }
     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
     case DOLLAR:
@@ -1134,7 +1127,7 @@ Expression expr,expr2;
     errorLevel   = ERROR;
     errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
     errorEnd   = SimpleCharStream.getPosition() + 1;
-    {if (true) throw e;}
+    processParseException(e);
     }
   {if (true) return parameters;}
     throw new Error("Missing return statement in function");
@@ -1275,13 +1268,13 @@ Expression expr,expr2;
  */
   static final public VarAssignation varAssignation() throws ParseException {
   String varName;
-  final Expression expression;
+  final Expression initializer;
   final int assignOperator;
   final int pos = SimpleCharStream.getPosition();
     varName = VariableDeclaratorId();
     assignOperator = AssignmentOperator();
     try {
-      expression = Expression();
+      initializer = Expression();
     } catch (ParseException e) {
       if (errorMessage != null) {
         {if (true) throw e;}
@@ -1293,7 +1286,7 @@ Expression expr,expr2;
       {if (true) throw e;}
     }
      {if (true) return new VarAssignation(varName.toCharArray(),
-                               expression,
+                               initializer,
                                assignOperator,
                                pos,
                                SimpleCharStream.getPosition());}
@@ -2693,7 +2686,7 @@ final ArrayList list = new ArrayList();
         throw new ParseException();
       }
     } catch (ParseException e) {
-    errorMessage = "End of file unexpected, '<?php' expected";
+    errorMessage = "unexpected end of file , '<?php' expected";
     errorLevel   = ERROR;
     errorStart   = SimpleCharStream.getPosition();
     errorEnd     = SimpleCharStream.getPosition();
@@ -3175,6 +3168,7 @@ final ArrayList list = new ArrayList();
                                    if (phpDocument == currentSegment) pushOnAstNodes(statement);
                                    {if (true) return statement;}
       } catch (ParseException e) {
+    if (errorMessage != null) {if (true) throw e;}
     errorMessage = "statement expected";
     errorLevel   = ERROR;
     errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
@@ -3189,6 +3183,7 @@ final ArrayList list = new ArrayList();
     case FUNCTION:
       statement = MethodDeclaration();
                                    if (phpDocument == currentSegment) pushOnAstNodes(statement);
+                                   currentSegment.add((MethodDeclaration) statement);
                                    {if (true) return statement;}
       break;
     default:
@@ -3252,6 +3247,7 @@ final ArrayList list = new ArrayList();
       break;
     case FUNCTION:
       statement = MethodDeclaration();
+                                   currentSegment.add((MethodDeclaration) statement);
                                    {if (true) return statement;}
       break;
     default:
@@ -5034,6 +5030,105 @@ final int startBlock, endBlock;
     return retval;
   }
 
+  static final private boolean jj_3R_81() {
+    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_80() {
+    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_184() {
+    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_79() {
+    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_183() {
+    if (jj_3R_52()) 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;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    if (jj_scan_token(LPAREN)) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_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_la == 0 && jj_scanpos == jj_lastpos) return false;
+    xsp = jj_scanpos;
+    if (jj_3R_101()) jj_scanpos = xsp;
+    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    return false;
+  }
+
+  static final private boolean jj_3R_78() {
+    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() {
+    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()) {
+    jj_scanpos = xsp;
+    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;
+    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_la == 0 && jj_scanpos == jj_lastpos) return false;
+    return false;
+  }
+
+  static final private boolean jj_3R_77() {
+    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() {
+    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_la == 0 && jj_scanpos == jj_lastpos) return false;
+    return false;
+  }
+
   static final private boolean jj_3R_75() {
     if (jj_scan_token(STRING)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
@@ -5343,6 +5438,22 @@ final int startBlock, endBlock;
     return false;
   }
 
+  static final private boolean jj_3R_198() {
+    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_57() {
+    if (jj_3R_50()) 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_135() {
     Token xsp;
     xsp = jj_scanpos;
@@ -5356,13 +5467,11 @@ final int startBlock, endBlock;
     return false;
   }
 
-  static final private boolean jj_3R_57() {
-    if (jj_3R_50()) return true;
+  static final private boolean jj_3_2() {
+    if (jj_scan_token(COMMA)) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    if (jj_3R_41()) 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;
   }
 
@@ -5378,48 +5487,49 @@ final int startBlock, endBlock;
     return false;
   }
 
-  static final private boolean jj_3_7() {
-    if (jj_3R_46()) return true;
+  static final private boolean jj_3R_197() {
+    if (jj_3R_41()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    Token xsp;
+    while (true) {
+      xsp = jj_scanpos;
+      if (jj_3_2()) { jj_scanpos = xsp; break; }
+      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    }
     return false;
   }
 
-  static final private boolean jj_3R_198() {
-    if (jj_scan_token(COMMA)) return true;
+  static final private boolean jj_3_7() {
+    if (jj_3R_46()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3_2() {
+  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_41()) return true;
+    if (jj_3R_57()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_197() {
-    if (jj_3R_41()) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_3_2()) { jj_scanpos = xsp; break; }
-      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    }
-    return false;
-  }
-
   static final private boolean jj_3R_138() {
     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_58() {
-    if (jj_scan_token(COMMA)) return true;
+  static final private boolean jj_3R_192() {
+    if (jj_scan_token(LPAREN)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_57()) return true;
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_197()) jj_scanpos = xsp;
+    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    xsp = jj_scanpos;
+    if (jj_3R_198()) 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;
   }
@@ -5430,6 +5540,18 @@ final int startBlock, endBlock;
     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_136() {
     if (jj_scan_token(LSHIFT)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
@@ -5452,18 +5574,6 @@ final int startBlock, endBlock;
     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_121() {
     if (jj_3R_128()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
@@ -5484,18 +5594,21 @@ final int startBlock, endBlock;
     return false;
   }
 
-  static final private boolean jj_3R_192() {
-    if (jj_scan_token(LPAREN)) return true;
+  static final private boolean jj_3R_201() {
+    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_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_la == 0 && jj_scanpos == jj_lastpos) return false;
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_197()) 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_201()) 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;
   }
 
@@ -5517,30 +5630,12 @@ final int startBlock, endBlock;
     return false;
   }
 
-  static final private boolean jj_3R_201() {
-    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_la == 0 && jj_scanpos == jj_lastpos) return false;
-    return false;
-  }
-
   static final private boolean jj_3R_130() {
     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_41() {
-    if (jj_3R_45()) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_201()) jj_scanpos = xsp;
-    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    return false;
-  }
-
   static final private boolean jj_3R_122() {
     Token xsp;
     xsp = jj_scanpos;
@@ -5616,6 +5711,16 @@ final int startBlock, endBlock;
     return false;
   }
 
+  static final private boolean jj_3R_108() {
+    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_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() {
     if (jj_scan_token(DIF)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
@@ -5628,6 +5733,12 @@ final int startBlock, endBlock;
     return false;
   }
 
+  static final private boolean jj_3R_91() {
+    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() {
     Token xsp;
     xsp = jj_scanpos;
@@ -5668,16 +5779,6 @@ final int startBlock, endBlock;
     return false;
   }
 
-  static final private boolean jj_3R_108() {
-    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_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_199() {
     if (jj_scan_token(LPAREN)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
@@ -5690,8 +5791,10 @@ final int startBlock, endBlock;
     return false;
   }
 
-  static final private boolean jj_3R_91() {
-    if (jj_scan_token(DOLLAR_ID)) return true;
+  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;
   }
@@ -5710,14 +5813,6 @@ final int startBlock, endBlock;
     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_176() {
     if (jj_scan_token(FALSE)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
@@ -5742,6 +5837,16 @@ final int startBlock, endBlock;
     return false;
   }
 
+  static final private boolean jj_3R_89() {
+    if (jj_scan_token(IDENTIFIER)) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_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;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
@@ -5754,6 +5859,33 @@ final int startBlock, endBlock;
     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;
+    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_59() {
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_88()) {
+    jj_scanpos = xsp;
+    if (jj_3R_89()) {
+    jj_scanpos = xsp;
+    if (jj_3R_90()) {
+    jj_scanpos = xsp;
+    if (jj_3R_91()) 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_169() {
     Token xsp;
     xsp = jj_scanpos;
@@ -5783,16 +5915,6 @@ final int startBlock, endBlock;
     return false;
   }
 
-  static final private boolean jj_3R_89() {
-    if (jj_scan_token(IDENTIFIER)) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_108()) jj_scanpos = xsp;
-    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    return false;
-  }
-
   static final private boolean jj_3R_116() {
     if (jj_scan_token(XOR)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
@@ -5830,7 +5952,13 @@ final int startBlock, endBlock;
     return false;
   }
 
-  static final private boolean jj_3R_88() {
+  static final private boolean jj_3_8() {
+    if (jj_3R_47()) return true;
+    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    return false;
+  }
+
+  static final private boolean jj_3R_98() {
     if (jj_scan_token(LBRACE)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     if (jj_3R_45()) return true;
@@ -5840,23 +5968,6 @@ final int startBlock, endBlock;
     return false;
   }
 
-  static final private boolean jj_3R_59() {
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_88()) {
-    jj_scanpos = xsp;
-    if (jj_3R_89()) {
-    jj_scanpos = xsp;
-    if (jj_3R_90()) {
-    jj_scanpos = xsp;
-    if (jj_3R_91()) 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_46() {
     if (jj_scan_token(IDENTIFIER)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
@@ -5865,18 +5976,10 @@ final int startBlock, endBlock;
     return false;
   }
 
-  static final private boolean jj_3_8() {
-    if (jj_3R_47()) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    return false;
-  }
-
-  static final private boolean jj_3R_98() {
-    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_95() {
+    if (jj_scan_token(DOLLAR)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_scan_token(RBRACE)) return true;
+    if (jj_3R_59()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
@@ -5913,19 +6016,32 @@ final int startBlock, endBlock;
     return false;
   }
 
-  static final private boolean jj_3R_95() {
-    if (jj_scan_token(DOLLAR)) return true;
+  static final private boolean jj_3R_110() {
+    if (jj_scan_token(DOT)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_59()) return true;
+    if (jj_3R_109()) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
     return false;
   }
 
-  static final private boolean jj_3R_110() {
-    if (jj_scan_token(DOT)) return true;
+  static final private boolean jj_3R_94() {
+    if (jj_scan_token(DOLLAR_ID)) return true;
     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_3R_109()) return true;
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_98()) jj_scanpos = xsp;
+    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+    return false;
+  }
+
+  static final private boolean jj_3R_61() {
+    Token xsp;
+    xsp = jj_scanpos;
+    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;
     return false;
   }
 
@@ -5960,27 +6076,6 @@ final int startBlock, endBlock;
     return false;
   }
 
-  static final private boolean jj_3R_94() {
-    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;
-    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    return false;
-  }
-
-  static final private boolean jj_3R_61() {
-    Token xsp;
-    xsp = jj_scanpos;
-    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;
-    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;
@@ -6489,105 +6584,6 @@ final int startBlock, endBlock;
     return false;
   }
 
-  static final private boolean jj_3R_81() {
-    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_80() {
-    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_184() {
-    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_79() {
-    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_183() {
-    if (jj_3R_52()) 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;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    if (jj_scan_token(LPAREN)) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_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_la == 0 && jj_scanpos == jj_lastpos) return false;
-    xsp = jj_scanpos;
-    if (jj_3R_101()) jj_scanpos = xsp;
-    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
-    return false;
-  }
-
-  static final private boolean jj_3R_78() {
-    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() {
-    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()) {
-    jj_scanpos = xsp;
-    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;
-    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_la == 0 && jj_scanpos == jj_lastpos) return false;
-    return false;
-  }
-
-  static final private boolean jj_3R_77() {
-    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() {
-    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_la == 0 && jj_scanpos == jj_lastpos) return false;
-    return false;
-  }
-
   static private boolean jj_initialized_once = false;
   static public PHPParserTokenManager token_source;
   static SimpleCharStream jj_input_stream;
@@ -6612,19 +6608,19 @@ final int startBlock, endBlock;
       jj_la1_4();
    }
    private static void jj_la1_0() {
-      jj_la1_0 = new int[] {0xfcb0001e,0x6,0x6,0xfcb0001e,0x0,0xfcb00000,0x0,0x600000,0x600000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4000000,0x0,0x34000000,0x0,0x0,0x0,0x0,0x0,0x0,0x30000000,0x4000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4000000,0x4000000,0x0,0x4000000,0x0,0x0,0x4000000,0x4000000,0x0,0x0,0x0,0x0,0x4000000,0x0,0x4000000,0x0,0x0,0x34000000,0x34000000,0x0,0x0,0x34000000,0x0,0x0,0xc4800000,0xfc800000,0x8,0x6,0x80000000,0x0,0x0,0x0,0x0,0x0,0x0,0xfcb00010,0xfcb00010,0xfcb00000,0xf4b00000,0x0,0x0,0x0,0x0,0x4000000,0x0,0x0,0x0,0xf4b00010,0xf4b00010,0x8000000,0x0,0x34000000,0xfc800010,0xfc800010,0x1000000,0x2000000,0xfc800010,0x1000000,0x2000000,0xfc800010,0xfc800010,0xfc800010,0xfc800010,0xfc800010,0xfc800000,0xfc800000,0x4000000,0x34000000,0x4000000,0xfc800000,0xfc800000,0x4000000,0x0,0x34000000,0x34000000,};
+      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,};
    }
    private static void jj_la1_1() {
-      jj_la1_1 = new int[] {0x21d7541f,0x0,0x0,0x21d7541f,0x0,0x21d7541f,0x2000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc20000,0x80,0xc30000,0x0,0x0,0x0,0x0,0x0,0x80000000,0x0,0xc30000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc30000,0xc30000,0x0,0xc30000,0x0,0x0,0xc30000,0x80000000,0x0,0x0,0x20,0x20,0x10000,0x10000,0x10000,0x0,0x20,0x80c30000,0x80c30000,0x20,0xc20000,0xc30000,0x0,0x0,0x2115541f,0x21d7541f,0x0,0x0,0x7,0x0,0x0,0x0,0x0,0x0,0x0,0x21d7541f,0x21d7541f,0x21d7541f,0x21d7541f,0x0,0x0,0x0,0x0,0x10000,0x0,0x900,0x900,0x21d7541f,0x21d7541f,0x0,0x900,0xc30000,0x21d7541f,0x21d7541f,0x0,0x0,0x21d7541f,0x0,0x0,0x21d7541f,0x21d7541f,0x21d7541f,0x21d7541f,0x21d7541f,0x21d7541f,0x21d7541f,0x10000,0xc30000,0x10000,0x21d7541f,0x21d7541f,0x10000,0x0,0xc30000,0xc30000,};
+      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,};
    }
    private static void jj_la1_2() {
-      jj_la1_2 = new int[] {0x804f0700,0x0,0x0,0x804f0700,0x0,0x804f0700,0x0,0x0,0x0,0x0,0x0,0x0,0x200,0x0,0x200,0x80000000,0x80000000,0x800c0000,0x0,0x804f0700,0x0,0x400000,0x0,0x400200,0x400000,0xff,0x0,0x804f0700,0x0,0x1000,0x20004000,0x20004000,0x40008000,0x40008000,0x0,0x800000,0x1000000,0x400000,0x0,0x0,0x0,0x0,0x1c000000,0x1c000000,0xc0000,0xc0000,0x2300000,0x2300000,0x804f0700,0x800f0700,0xc0000,0x800f0600,0x30000,0x400,0x80000200,0xff,0x30000,0x30000,0x0,0x0,0x200,0x200,0x200,0x200,0x0,0x804f07ff,0x804f07ff,0x0,0x80000000,0x804f0700,0x0,0x100,0x30300,0x804f0700,0x0,0x0,0x0,0x200,0x0,0x0,0x0,0x0,0x0,0x804f0700,0x804f0700,0x804f0700,0x804f0700,0x0,0x0,0x30000,0x30000,0x30200,0x2000,0x0,0x0,0x804f0700,0x804f0700,0x0,0x0,0x804f0700,0x804f0700,0x804f0700,0x0,0x0,0x804f0700,0x0,0x0,0x804f2700,0x804f0700,0x804f0700,0x804f0700,0x804f0700,0x804f0700,0x804f2700,0x30200,0x804f0700,0x30200,0x804f0700,0x804f2700,0x30200,0x0,0x804f0700,0x804f0700,};
+      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,};
    }
    private static void jj_la1_3() {
-      jj_la1_3 = new int[] {0x8a228,0x0,0x0,0x8a228,0x80000,0x8a228,0x0,0x0,0x0,0x100000,0x80000000,0x8000,0x0,0x8000,0x8200,0x8,0x8,0x228,0x0,0x2228,0x100000,0x0,0x100000,0x0,0x0,0x0,0x0,0x2228,0x80000000,0x0,0x0,0x0,0x0,0x0,0x200000,0x0,0x0,0x0,0x79000000,0x79000000,0x6c00000,0x6c00000,0x0,0x0,0x0,0x0,0x0,0x0,0x2228,0x2228,0x0,0x2228,0x0,0x0,0x2228,0x0,0x0,0x0,0x22000,0x22000,0x200,0x200,0x200,0x200,0x22000,0x2228,0x2228,0x20000,0x28,0x2228,0x100000,0x0,0x88200,0x8a228,0x0,0x0,0x0,0x0,0x100000,0x80000000,0x100000,0x100000,0x100000,0x8a228,0x8a228,0x8a228,0x8a228,0x100000,0x80000000,0x80000000,0x80000000,0x200,0x8000,0x0,0x0,0x8a228,0x8a228,0x0,0x0,0x2228,0x8a228,0x8a228,0x0,0x0,0x8a228,0x0,0x0,0x8a228,0x8a228,0x8a228,0x8a228,0x8a228,0x8a228,0x8a228,0x200,0x2228,0x200,0x8a228,0x8a228,0x200,0x100000,0x2228,0x2228,};
+      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,};
    }
    private static void jj_la1_4() {
-      jj_la1_4 = new int[] {0x1000,0x0,0x0,0x1000,0x0,0x1000,0x0,0x0,0x0,0x0,0x0,0x0,0x1000,0x0,0x1000,0x0,0x0,0x0,0x0,0x1000,0x0,0x0,0x0,0x1000,0x0,0x0,0x0,0x1000,0xfff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1000,0x1000,0x0,0x1000,0x0,0x0,0x1000,0x0,0x0,0x0,0x0,0x0,0x1000,0x1000,0x1000,0x1000,0x0,0x1000,0x1000,0x0,0x0,0x1000,0x0,0x0,0x1000,0x1000,0x0,0x0,0x0,0x1000,0x0,0x0,0x0,0x0,0x0,0x1000,0x1000,0x1000,0x1000,0x0,0x0,0xfff,0xfff,0x1000,0x0,0x0,0x0,0x1000,0x1000,0x0,0x0,0x1000,0x1000,0x1000,0x0,0x0,0x1000,0x0,0x0,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x0,0x1000,0x1000,};
+      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,};
    }
   static final private JJCalls[] jj_2_rtns = new JJCalls[8];
   static private boolean jj_rescan = false;
@@ -6812,8 +6808,8 @@ final int startBlock, endBlock;
 
   static public ParseException generateParseException() {
     jj_expentries.removeAllElements();
-    boolean[] la1tokens = new boolean[141];
-    for (int i = 0; i < 141; i++) {
+    boolean[] la1tokens = new boolean[142];
+    for (int i = 0; i < 142; i++) {
       la1tokens[i] = false;
     }
     if (jj_kind >= 0) {
@@ -6841,7 +6837,7 @@ final int startBlock, endBlock;
         }
       }
     }
-    for (int i = 0; i < 141; i++) {
+    for (int i = 0; i < 142; i++) {
       if (la1tokens[i]) {
         jj_expentry = new int[1];
         jj_expentry[0] = i;
index 2b4a1e9..c348a5e 100644 (file)
@@ -29,7 +29,6 @@ import org.eclipse.ui.texteditor.MarkerUtilities;
 import org.eclipse.jface.preference.IPreferenceStore;
 
 import java.util.Hashtable;
-import java.util.Enumeration;
 import java.util.ArrayList;
 import java.io.StringReader;
 import java.io.*;
@@ -188,31 +187,6 @@ public final class PHPParser extends PHPParserSuperclass {
     }
   }
 
-  /**
-   * Create markers according to the external parser output
-   */
-  private static void createMarkers(final String output, final IFile file) throws CoreException {
-    // delete all markers
-    file.deleteMarkers(IMarker.PROBLEM, false, 0);
-
-    int indx = 0;
-    int brIndx;
-    boolean flag = true;
-    while ((brIndx = output.indexOf("<br />", indx)) != -1) {
-      // newer php error output (tested with 4.2.3)
-      scanLine(output, file, indx, brIndx);
-      indx = brIndx + 6;
-      flag = false;
-    }
-    if (flag) {
-      while ((brIndx = output.indexOf("<br>", indx)) != -1) {
-        // older php error output (tested with 4.2.3)
-        scanLine(output, file, indx, brIndx);
-        indx = brIndx + 4;
-      }
-    }
-  }
-
   private static void scanLine(final String output,
                                final IFile file,
                                final int indx,
@@ -302,6 +276,25 @@ public final class PHPParser extends PHPParserSuperclass {
     pushOnAstNodes(new HTMLCode(chars, htmlStart,currentPosition));
   }
 
+  /**
+   * Create a new task.
+   */
+  public static final void createNewTask() {
+    final int currentPosition = SimpleCharStream.getPosition();
+    final String  todo = SimpleCharStream.currentBuffer.substring(currentPosition+1,
+                                                                  SimpleCharStream.currentBuffer.indexOf("\n",
+                                                                                                         currentPosition)-1);
+    try {
+      setMarker(fileToParse,
+                "todo : " + todo,
+                SimpleCharStream.getBeginLine(),
+                TASK,
+                "Line "+SimpleCharStream.getBeginLine());
+    } catch (CoreException e) {
+      PHPeclipsePlugin.log(e);
+    }
+  }
+
   private static final void parse() throws ParseException {
          phpFile();
   }
@@ -342,34 +335,30 @@ PARSER_END(PHPParser)
 <PHPPARSING> SPECIAL_TOKEN :
 {
   "//" : IN_SINGLE_LINE_COMMENT
-|
-  "#"  : IN_SINGLE_LINE_COMMENT
-|
-  <"/**" ~["/"]> { input_stream.backup(1); } : IN_FORMAL_COMMENT
-|
-  "/*" : IN_MULTI_LINE_COMMENT
+| "#"  : IN_SINGLE_LINE_COMMENT
+| <"/**" ~["/"]> { input_stream.backup(1); } : IN_FORMAL_COMMENT
+| "/*" : IN_MULTI_LINE_COMMENT
 }
 
 <IN_SINGLE_LINE_COMMENT> SPECIAL_TOKEN :
 {
   <SINGLE_LINE_COMMENT: "\n" | "\r" | "\r\n" > : PHPPARSING
+| "?>" : DEFAULT
 }
 
-<IN_SINGLE_LINE_COMMENT> SPECIAL_TOKEN :
+<IN_SINGLE_LINE_COMMENT,IN_FORMAL_COMMENT,IN_MULTI_LINE_COMMENT> SPECIAL_TOKEN :
 {
-  <SINGLE_LINE_COMMENT_PHPEND : "?>" > : DEFAULT
+ "todo" {PHPParser.createNewTask();}
 }
 
-<IN_FORMAL_COMMENT>
-SPECIAL_TOKEN :
+<IN_FORMAL_COMMENT> SPECIAL_TOKEN :
 {
-  <FORMAL_COMMENT: "*/" > : PHPPARSING
+  "*/" : PHPPARSING
 }
 
-<IN_MULTI_LINE_COMMENT>
-SPECIAL_TOKEN :
+<IN_MULTI_LINE_COMMENT> SPECIAL_TOKEN :
 {
-  <MULTI_LINE_COMMENT: "*/" > : PHPPARSING
+  "*/" : PHPPARSING
 }
 
 <IN_SINGLE_LINE_COMMENT,IN_FORMAL_COMMENT,IN_MULTI_LINE_COMMENT>
@@ -606,7 +595,7 @@ MORE :
 
 <PHPPARSING> TOKEN :
 {
-  < DOLLAR_ID: <DOLLAR> <IDENTIFIER>  >
+  <DOLLAR_ID: <DOLLAR> <IDENTIFIER>>
 }
 
 void phpFile() :
@@ -614,7 +603,7 @@ void phpFile() :
 {
   try {
     (PhpBlock())*
-    <EOF>
+    {PHPParser.createNewHTMLCode();}
   } catch (TokenMgrError e) {
     PHPeclipsePlugin.log(e);
     errorStart   = SimpleCharStream.getPosition();
@@ -776,8 +765,8 @@ void ClassBodyDeclaration(ClassDeclaration classDeclaration) :
   FieldDeclaration field;
 }
 {
-  method = MethodDeclaration() {method.setParent(classDeclaration);}
-| field = FieldDeclaration()
+  method = MethodDeclaration() {classDeclaration.addMethod(method);}
+| field = FieldDeclaration()   {classDeclaration.addField(field);}
 }
 
 /**
@@ -793,12 +782,10 @@ FieldDeclaration FieldDeclaration() :
 {
   <VAR> variableDeclaration = VariableDeclarator()
   {arrayList.add(variableDeclaration);
-   outlineInfo.addVariable(new String(variableDeclaration.name));
-   currentSegment.add(variableDeclaration);}
+   outlineInfo.addVariable(new String(variableDeclaration.name));}
   ( <COMMA> variableDeclaration = VariableDeclarator()
       {arrayList.add(variableDeclaration);
-       outlineInfo.addVariable(new String(variableDeclaration.name));
-       currentSegment.add(variableDeclaration);}
+       outlineInfo.addVariable(new String(variableDeclaration.name));}
   )*
   try {
     <SEMICOLON>
@@ -859,22 +846,26 @@ VariableDeclaration VariableDeclarator() :
 String VariableDeclaratorId() :
 {
   String expr;
-  Expression expression;
+  Expression expression = null;
   final StringBuffer buff = new StringBuffer();
   final int pos = SimpleCharStream.getPosition();
   ConstantIdentifier ex;
 }
 {
   try {
-    expr = Variable()   {buff.append(expr);}
+    expr = Variable()
     ( LOOKAHEAD(2)
       {ex = new ConstantIdentifier(expr.toCharArray(),
                                    pos,
                                    SimpleCharStream.getPosition());}
       expression = VariableSuffix(ex)
-      {buff.append(expression.toStringExpression());}
     )*
-    {return buff.toString();}
+    {
+     if (expression == null) {
+       return expr;
+     }
+     return expression.toStringExpression();
+    }
   } catch (ParseException e) {
     errorMessage = "'$' expected for variable identifier";
     errorLevel   = ERROR;
@@ -884,6 +875,10 @@ String VariableDeclaratorId() :
   }
 }
 
+/**
+ * Return a variablename without the $.
+ * @return a variable name
+ */
 String Variable():
 {
   final StringBuffer buff;
@@ -905,7 +900,7 @@ String Variable():
   }
 |
   <DOLLAR> expr = VariableName()
-  {return "$" + expr;}
+  {return expr;}
 }
 
 /**
@@ -1019,6 +1014,7 @@ MethodDeclaration MethodDeclaration() :
 {
   final MethodDeclaration functionDeclaration;
   final Block block;
+  final OutlineableWithChildren seg = currentSegment;
 }
 {
   <FUNCTION>
@@ -1033,20 +1029,11 @@ MethodDeclaration MethodDeclaration() :
     errorEnd   = SimpleCharStream.getPosition() + 1;
     throw e;
   }
-  {
-    if (currentSegment != null) {
-      currentSegment.add(functionDeclaration);
-      currentSegment = functionDeclaration;
-    }
-  }
+  {currentSegment = functionDeclaration;}
   block = Block()
-  {
-    functionDeclaration.statements = block.statements;
-    if (currentSegment != null) {
-      currentSegment = (OutlineableWithChildren) currentSegment.getParent();
-    }
-    return functionDeclaration;
-  }
+  {functionDeclaration.statements = block.statements;
+   currentSegment = seg;
+   return functionDeclaration;}
 }
 
 /**
@@ -1076,11 +1063,11 @@ MethodDeclaration MethodDeclarator() :
   }
   formalParameters = FormalParameters()
   {return new MethodDeclaration(currentSegment,
-                                 identifierChar,
-                                 formalParameters,
-                                 reference != null,
-                                 pos,
-                                 SimpleCharStream.getPosition());}
+                                identifierChar,
+                                formalParameters,
+                                reference != null,
+                                pos,
+                                SimpleCharStream.getPosition());}
 }
 
 /**
@@ -1100,7 +1087,7 @@ Hashtable FormalParameters() :
     errorLevel   = ERROR;
     errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
     errorEnd   = SimpleCharStream.getPosition() + 1;
-    throw e;
+    processParseException(e);
   }
             [ var = FormalParameter()
               {parameters.put(new String(var.name),var);}
@@ -1116,7 +1103,7 @@ Hashtable FormalParameters() :
     errorLevel   = ERROR;
     errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
     errorEnd   = SimpleCharStream.getPosition() + 1;
-    throw e;
+    processParseException(e);
   }
  {return parameters;}
 }
@@ -1181,7 +1168,7 @@ Expression Expression() :
 VarAssignation varAssignation() :
 {
   String varName;
-  final Expression expression;
+  final Expression initializer;
   final int assignOperator;
   final int pos = SimpleCharStream.getPosition();
 }
@@ -1189,7 +1176,7 @@ VarAssignation varAssignation() :
   varName = VariableDeclaratorId()
   assignOperator = AssignmentOperator()
     try {
-      expression = Expression()
+      initializer = Expression()
     } catch (ParseException e) {
       if (errorMessage != null) {
         throw e;
@@ -1201,7 +1188,7 @@ VarAssignation varAssignation() :
       throw e;
     }
     {return new VarAssignation(varName.toCharArray(),
-                               expression,
+                               initializer,
                                assignOperator,
                                pos,
                                SimpleCharStream.getPosition());}
@@ -1839,7 +1826,7 @@ HTMLBlock htmlBlock() :
   try {
     (<PHPSTARTLONG> | <PHPSTARTSHORT>)
   } catch (ParseException e) {
-    errorMessage = "End of file unexpected, '<?php' expected";
+    errorMessage = "unexpected end of file , '<?php' expected";
     errorLevel   = ERROR;
     errorStart   = SimpleCharStream.getPosition();
     errorEnd     = SimpleCharStream.getPosition();
@@ -2121,6 +2108,7 @@ Statement BlockStatement() :
   statement = Statement()         {if (phpDocument == currentSegment) pushOnAstNodes(statement);
                                    return statement;}
   } catch (ParseException e) {
+    if (errorMessage != null) throw e;
     errorMessage = "statement expected";
     errorLevel   = ERROR;
     errorStart = SimpleCharStream.getPosition() - e.currentToken.next.image.length() + 1;
@@ -2129,6 +2117,7 @@ Statement BlockStatement() :
   }
 | statement = ClassDeclaration()  {return statement;}
 | statement = MethodDeclaration() {if (phpDocument == currentSegment) pushOnAstNodes(statement);
+                                   currentSegment.add((MethodDeclaration) statement);
                                    return statement;}
 }
 
@@ -2142,7 +2131,8 @@ Statement BlockStatementNoBreak() :
 {
   statement = StatementNoBreak()  {return statement;}
 | statement = ClassDeclaration()  {return statement;}
-| statement = MethodDeclaration() {return statement;}
+| statement = MethodDeclaration() {currentSegment.add((MethodDeclaration) statement);
+                                   return statement;}
 }
 
 VariableDeclaration[] LocalVariableDeclaration() :
index 00c5d6a..088a46a 100644 (file)
@@ -9,130 +9,127 @@ public interface PHPParserConstants {
   int PHPECHOSTART = 3;
   int PHPEND = 4;
   int SINGLE_LINE_COMMENT = 15;
-  int SINGLE_LINE_COMMENT_PHPEND = 16;
-  int FORMAL_COMMENT = 17;
-  int MULTI_LINE_COMMENT = 18;
-  int CLASS = 20;
-  int FUNCTION = 21;
-  int VAR = 22;
-  int IF = 23;
-  int ELSEIF = 24;
-  int ELSE = 25;
-  int ARRAY = 26;
-  int BREAK = 27;
-  int LIST = 28;
-  int PRINT = 29;
-  int ECHO = 30;
-  int INCLUDE = 31;
-  int REQUIRE = 32;
-  int INCLUDE_ONCE = 33;
-  int REQUIRE_ONCE = 34;
-  int GLOBAL = 35;
-  int STATIC = 36;
-  int CLASSACCESS = 37;
-  int STATICCLASSACCESS = 38;
-  int ARRAYASSIGN = 39;
-  int CASE = 40;
-  int CONST = 41;
-  int CONTINUE = 42;
-  int _DEFAULT = 43;
-  int DO = 44;
-  int EXTENDS = 45;
-  int FOR = 46;
-  int GOTO = 47;
-  int NEW = 48;
-  int NULL = 49;
-  int RETURN = 50;
-  int SUPER = 51;
-  int SWITCH = 52;
-  int THIS = 53;
-  int TRUE = 54;
-  int FALSE = 55;
-  int WHILE = 56;
-  int ENDWHILE = 57;
-  int ENDSWITCH = 58;
-  int ENDIF = 59;
-  int ENDFOR = 60;
-  int FOREACH = 61;
-  int AS = 62;
-  int STRING = 63;
-  int OBJECT = 64;
-  int BOOL = 65;
-  int BOOLEAN = 66;
-  int REAL = 67;
-  int DOUBLE = 68;
-  int FLOAT = 69;
-  int INT = 70;
-  int INTEGER = 71;
-  int AT = 72;
-  int DOLLAR = 73;
-  int BANG = 74;
-  int TILDE = 75;
-  int HOOK = 76;
-  int COLON = 77;
-  int OR_OR = 78;
-  int AND_AND = 79;
-  int INCR = 80;
-  int DECR = 81;
-  int PLUS = 82;
-  int MINUS = 83;
-  int STAR = 84;
-  int SLASH = 85;
-  int BIT_AND = 86;
-  int BIT_OR = 87;
-  int XOR = 88;
-  int REMAINDER = 89;
-  int LSHIFT = 90;
-  int RSIGNEDSHIFT = 91;
-  int RUNSIGNEDSHIFT = 92;
-  int _ORL = 93;
-  int _ANDL = 94;
-  int INTEGER_LITERAL = 95;
-  int DECIMAL_LITERAL = 96;
-  int HEX_LITERAL = 97;
-  int OCTAL_LITERAL = 98;
-  int FLOATING_POINT_LITERAL = 99;
-  int EXPONENT = 100;
-  int STRING_LITERAL = 101;
-  int STRING_1 = 102;
-  int STRING_2 = 103;
-  int STRING_3 = 104;
-  int IDENTIFIER = 105;
-  int LETTER = 106;
-  int DIGIT = 107;
-  int SPECIAL = 108;
-  int LPAREN = 109;
-  int RPAREN = 110;
-  int LBRACE = 111;
-  int RBRACE = 112;
-  int LBRACKET = 113;
-  int RBRACKET = 114;
-  int SEMICOLON = 115;
-  int COMMA = 116;
-  int DOT = 117;
-  int GT = 118;
-  int LT = 119;
-  int EQUAL_EQUAL = 120;
-  int LE = 121;
-  int GE = 122;
-  int NOT_EQUAL = 123;
-  int DIF = 124;
-  int BANGDOUBLEEQUAL = 125;
-  int TRIPLEEQUAL = 126;
-  int ASSIGN = 127;
-  int PLUSASSIGN = 128;
-  int MINUSASSIGN = 129;
-  int STARASSIGN = 130;
-  int SLASHASSIGN = 131;
-  int ANDASSIGN = 132;
-  int ORASSIGN = 133;
-  int XORASSIGN = 134;
-  int DOTASSIGN = 135;
-  int REMASSIGN = 136;
-  int TILDEEQUAL = 137;
-  int LSHIFTASSIGN = 138;
-  int RSIGNEDSHIFTASSIGN = 139;
-  int DOLLAR_ID = 140;
+  int CLASS = 21;
+  int FUNCTION = 22;
+  int VAR = 23;
+  int IF = 24;
+  int ELSEIF = 25;
+  int ELSE = 26;
+  int ARRAY = 27;
+  int BREAK = 28;
+  int LIST = 29;
+  int PRINT = 30;
+  int ECHO = 31;
+  int INCLUDE = 32;
+  int REQUIRE = 33;
+  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 INCR = 81;
+  int DECR = 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 DEFAULT = 0;
   int PHPPARSING = 1;
@@ -158,9 +155,10 @@ public interface PHPParserConstants {
     "\"/*\"",
     "<SINGLE_LINE_COMMENT>",
     "\"?>\"",
+    "\"todo\"",
     "\"*/\"",
     "\"*/\"",
-    "<token of kind 19>",
+    "<token of kind 20>",
     "\"class\"",
     "\"function\"",
     "\"var\"",
index 1dee6aa..c1bf446 100644 (file)
@@ -24,6 +24,7 @@ public abstract class PHPParserSuperclass {
   public static final int ERROR = 2;
   public static final int WARNING = 1;
   public static final int INFO = 0;
+  public static final int TASK = 3;
 
   /**
    * Call the php parse command ( php -l -f &lt;filename&gt; )
@@ -32,17 +33,17 @@ public abstract class PHPParserSuperclass {
    */
   public static void phpExternalParse(final IFile file) {
     //IFile file = (IFile) resource;
-  //  final IPath path = file.getFullPath();
+    //  final IPath path = file.getFullPath();
     final IPreferenceStore store = PHPeclipsePlugin.getDefault().getPreferenceStore();
     final String filename = file.getLocation().toString();
 
-    final String[] arguments = { filename };
+    final String[] arguments = {filename};
     final MessageFormat form =
-      new MessageFormat(store.getString(PHPeclipsePlugin.EXTERNAL_PARSER_PREF));
+        new MessageFormat(store.getString(PHPeclipsePlugin.EXTERNAL_PARSER_PREF));
     final String command = form.format(arguments);
 
     final String parserResult =
-      PHPStartApacheAction.getParserOutput(command, "External parser: ");
+        PHPStartApacheAction.getParserOutput(command, "External parser: ");
 
     try {
       // parse the buffer to find the errors and warnings
@@ -53,9 +54,11 @@ public abstract class PHPParserSuperclass {
 
   /**
    * Create markers according to the external parser output.
+   * @param output the external parser output
+   * @param file the file that was parsed.
    */
-  private static void createMarkers(final String output, final IFile file)
-    throws CoreException {
+  protected static void createMarkers(final String output, final IFile file)
+      throws CoreException {
     // delete all markers
     file.deleteMarkers(IMarker.PROBLEM, false, 0);
 
@@ -78,15 +81,15 @@ public abstract class PHPParserSuperclass {
   }
 
   private static void scanLine(final String output, final IFile file, final int indx, final int brIndx)
-    throws CoreException {
+      throws CoreException {
     String current;
-  //  String outLineNumberString; never used
+    //  String outLineNumberString; never used
     final StringBuffer lineNumberBuffer = new StringBuffer(10);
     char ch;
     current = output.substring(indx, brIndx);
 
     if (current.indexOf(PARSE_WARNING_STRING) != -1
-      || current.indexOf(PARSE_ERROR_STRING) != -1) {
+        || current.indexOf(PARSE_ERROR_STRING) != -1) {
       final int onLine = current.indexOf("on line <b>");
       if (onLine != -1) {
         lineNumberBuffer.delete(0, lineNumberBuffer.length());
@@ -110,8 +113,8 @@ public abstract class PHPParserSuperclass {
           attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_ERROR));
         else if (current.indexOf(PARSE_WARNING_STRING) != -1)
           attributes.put(
-            IMarker.SEVERITY,
-            new Integer(IMarker.SEVERITY_WARNING));
+              IMarker.SEVERITY,
+              new Integer(IMarker.SEVERITY_WARNING));
         else
           attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_INFO));
         MarkerUtilities.setLineNumber(attributes, lineNumber);
@@ -148,7 +151,7 @@ public abstract class PHPParserSuperclass {
    * @param charStart the starting character
    * @param charEnd the end character
    * @param errorLevel the error level ({@link PHPParserSuperclass#ERROR},
-   *        {@link PHPParserSuperclass#INFO},{@link PHPParserSuperclass#WARNING})
+   *        {@link PHPParserSuperclass#INFO},{@link PHPParserSuperclass#WARNING}),{@link PHPParserSuperclass#TASK})
    * @throws CoreException an exception throwed by the MarkerUtilities
    */
   public static void setMarker(final IFile file,
@@ -156,20 +159,23 @@ public abstract class PHPParserSuperclass {
                                final int charStart,
                                final int charEnd,
                                final int errorLevel)
-    throws CoreException {
+      throws CoreException {
     if (file != null) {
       final Hashtable attributes = new Hashtable();
       MarkerUtilities.setMessage(attributes, message);
       switch (errorLevel) {
-        case Parser.ERROR :
+        case ERROR:
           attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_ERROR));
           break;
-        case Parser.WARNING :
+        case WARNING:
           attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_WARNING));
           break;
-        case Parser.INFO :
+        case INFO:
           attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_INFO));
           break;
+        case TASK:
+          attributes.put(IMarker.SEVERITY, new Integer(IMarker.TASK));
+          break;
       }
       MarkerUtilities.setCharStart(attributes, charStart);
       MarkerUtilities.setCharEnd(attributes, charEnd);
@@ -191,26 +197,32 @@ public abstract class PHPParserSuperclass {
                                final int line,
                                final int errorLevel,
                                final String location)
-    throws CoreException {
+      throws CoreException {
     if (file != null) {
+      String markerKind = IMarker.PROBLEM;
       final Hashtable attributes = new Hashtable();
       MarkerUtilities.setMessage(attributes, message);
       switch (errorLevel) {
-        case Parser.ERROR :
+        case ERROR:
           attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_ERROR));
           break;
-        case Parser.WARNING :
+        case WARNING:
           attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_WARNING));
           break;
-        case Parser.INFO :
+        case INFO:
+          attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_INFO));
+          break;
+        case TASK:
           attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_INFO));
+          markerKind = IMarker.TASK;
           break;
       }
-      attributes.put(IMarker.LOCATION,location);
+      attributes.put(IMarker.LOCATION, location);
       MarkerUtilities.setLineNumber(attributes, line);
-      MarkerUtilities.createMarker(file, attributes, IMarker.PROBLEM);
+      MarkerUtilities.createMarker(file, attributes, markerKind);
     }
   }
+
   /**
    * This will set a marker.
    * @param file the file that generated the marker
@@ -228,22 +240,25 @@ public abstract class PHPParserSuperclass {
                                final int charEnd,
                                final int errorLevel,
                                final String location)
-    throws CoreException {
+      throws CoreException {
     if (file != null) {
       final Hashtable attributes = new Hashtable();
       MarkerUtilities.setMessage(attributes, message);
       switch (errorLevel) {
-        case Parser.ERROR :
+        case ERROR:
           attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_ERROR));
           break;
-        case Parser.WARNING :
+        case WARNING:
           attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_WARNING));
           break;
-        case Parser.INFO :
+        case INFO:
           attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_INFO));
           break;
+        case TASK:
+          attributes.put(IMarker.SEVERITY, new Integer(IMarker.TASK));
+          break;
       }
-      attributes.put(IMarker.LOCATION,location);
+      attributes.put(IMarker.LOCATION, location);
       MarkerUtilities.setCharStart(attributes, charStart);
       MarkerUtilities.setCharEnd(attributes, charEnd);
       MarkerUtilities.createMarker(file, attributes, IMarker.PROBLEM);
index be6ded1..b7f86bf 100644 (file)
@@ -6,7 +6,6 @@ import org.eclipse.core.runtime.CoreException;
 import org.eclipse.ui.texteditor.MarkerUtilities;
 import org.eclipse.jface.preference.IPreferenceStore;
 import java.util.Hashtable;
-import java.util.Enumeration;
 import java.util.ArrayList;
 import java.io.StringReader;
 import java.io.*;
@@ -120,7 +119,10 @@ static private final int jjMoveStringLiteralDfa0_4()
    switch(curChar)
    {
       case 42:
-         return jjMoveStringLiteralDfa1_4(0x40000L);
+         return jjMoveStringLiteralDfa1_4(0x80000L);
+      case 84:
+      case 116:
+         return jjMoveStringLiteralDfa1_4(0x20000L);
       default :
          return 1;
    }
@@ -134,14 +136,54 @@ static private final int jjMoveStringLiteralDfa1_4(long active0)
    switch(curChar)
    {
       case 47:
-         if ((active0 & 0x40000L) != 0L)
-            return jjStopAtPos(1, 18);
+         if ((active0 & 0x80000L) != 0L)
+            return jjStopAtPos(1, 19);
          break;
+      case 79:
+      case 111:
+         return jjMoveStringLiteralDfa2_4(active0, 0x20000L);
       default :
          return 2;
    }
    return 2;
 }
+static private final int jjMoveStringLiteralDfa2_4(long old0, long active0)
+{
+   if (((active0 &= old0)) == 0L)
+      return 2;
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+      return 2;
+   }
+   switch(curChar)
+   {
+      case 68:
+      case 100:
+         return jjMoveStringLiteralDfa3_4(active0, 0x20000L);
+      default :
+         return 3;
+   }
+}
+static private final int jjMoveStringLiteralDfa3_4(long old0, long active0)
+{
+   if (((active0 &= old0)) == 0L)
+      return 3;
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+      return 3;
+   }
+   switch(curChar)
+   {
+      case 79:
+      case 111:
+         if ((active0 & 0x20000L) != 0L)
+            return jjStopAtPos(3, 17);
+         break;
+      default :
+         return 4;
+   }
+   return 4;
+}
 private static final int jjStopStringLiteralDfa_2(int pos, long active0)
 {
    switch (pos)
@@ -168,6 +210,9 @@ static private final int jjMoveStringLiteralDfa0_2()
    {
       case 63:
          return jjMoveStringLiteralDfa1_2(0x10000L);
+      case 84:
+      case 116:
+         return jjMoveStringLiteralDfa1_2(0x20000L);
       default :
          return jjMoveNfa_2(0, 0);
    }
@@ -185,11 +230,54 @@ static private final int jjMoveStringLiteralDfa1_2(long active0)
          if ((active0 & 0x10000L) != 0L)
             return jjStopAtPos(1, 16);
          break;
+      case 79:
+      case 111:
+         return jjMoveStringLiteralDfa2_2(active0, 0x20000L);
       default :
          break;
    }
    return jjStartNfa_2(0, active0);
 }
+static private final int jjMoveStringLiteralDfa2_2(long old0, long active0)
+{
+   if (((active0 &= old0)) == 0L)
+      return jjStartNfa_2(0, old0); 
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+      jjStopStringLiteralDfa_2(1, active0);
+      return 2;
+   }
+   switch(curChar)
+   {
+      case 68:
+      case 100:
+         return jjMoveStringLiteralDfa3_2(active0, 0x20000L);
+      default :
+         break;
+   }
+   return jjStartNfa_2(1, active0);
+}
+static private final int jjMoveStringLiteralDfa3_2(long old0, long active0)
+{
+   if (((active0 &= old0)) == 0L)
+      return jjStartNfa_2(1, old0); 
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+      jjStopStringLiteralDfa_2(2, active0);
+      return 3;
+   }
+   switch(curChar)
+   {
+      case 79:
+      case 111:
+         if ((active0 & 0x20000L) != 0L)
+            return jjStopAtPos(3, 17);
+         break;
+      default :
+         break;
+   }
+   return jjStartNfa_2(2, active0);
+}
 static private final void jjCheckNAdd(int state)
 {
    if (jjrounds[state] != jjround)
@@ -301,124 +389,124 @@ private static final int jjStopStringLiteralDfa_1(int pos, long active0, long ac
    switch (pos)
    {
       case 0:
-         if ((active0 & 0x4800L) != 0L || (active1 & 0x200000L) != 0L || (active2 & 0x8L) != 0L)
+         if ((active0 & 0x4800L) != 0L || (active1 & 0x400000L) != 0L || (active2 & 0x10L) != 0L)
             return 2;
-         if ((active1 & 0x200L) != 0L)
+         if ((active1 & 0x400L) != 0L)
             return 16;
-         if ((active1 & 0x20000000000000L) != 0L || (active2 & 0x80L) != 0L)
+         if ((active1 & 0x40000000000000L) != 0L || (active2 & 0x100L) != 0L)
             return 8;
-         if ((active0 & 0xffffff1ffff00000L) != 0L || (active1 & 0x600000ffL) != 0L)
+         if ((active0 & 0xfffffe3fffe00000L) != 0L || (active1 & 0xc00001ffL) != 0L)
          {
-            jjmatchedKind = 105;
+            jjmatchedKind = 106;
             return 14;
          }
          return -1;
       case 1:
          if ((active0 & 0x4000L) != 0L)
             return 0;
-         if ((active0 & 0xbfffef1fff700000L) != 0L || (active1 & 0x400000efL) != 0L)
+         if ((active0 & 0x7fffde3ffee00000L) != 0L || (active1 & 0x800001dfL) != 0L)
          {
             if (jjmatchedPos != 1)
             {
-               jjmatchedKind = 105;
+               jjmatchedKind = 106;
                jjmatchedPos = 1;
             }
             return 14;
          }
-         if ((active0 & 0x4000100000800000L) != 0L || (active1 & 0x20000010L) != 0L)
+         if ((active0 & 0x8000200001000000L) != 0L || (active1 & 0x40000020L) != 0L)
             return 14;
          return -1;
       case 2:
-         if ((active0 & 0x2001400000400000L) != 0L || (active1 & 0x400000c0L) != 0L)
+         if ((active0 & 0x4002800000800000L) != 0L || (active1 & 0x80000180L) != 0L)
             return 14;
-         if ((active0 & 0x9ffeaf1fff300000L) != 0L || (active1 & 0x3fL) != 0L)
+         if ((active0 & 0x3ffd5e3ffe600000L) != 0L || (active1 & 0x7fL) != 0L)
          {
             if (jjmatchedPos != 2)
             {
-               jjmatchedKind = 105;
+               jjmatchedKind = 106;
                jjmatchedPos = 2;
             }
             return 14;
          }
          return -1;
       case 3:
-         if ((active0 & 0x62810053000000L) != 0L || (active1 & 0xeL) != 0L)
+         if ((active0 & 0xc50200a6000000L) != 0L || (active1 & 0x1cL) != 0L)
             return 14;
-         if ((active0 & 0xbf9c2e1fac300000L) != 0L || (active1 & 0xb1L) != 0L)
+         if ((active0 & 0x7f385c3f58600000L) != 0L || (active1 & 0x163L) != 0L)
          {
             if (jjmatchedPos != 3)
             {
-               jjmatchedKind = 105;
+               jjmatchedKind = 106;
                jjmatchedPos = 3;
             }
             return 14;
          }
          return -1;
       case 4:
-         if ((active0 & 0x98802002c100000L) != 0L || (active1 & 0x20L) != 0L)
+         if ((active0 & 0x1310040058200000L) != 0L || (active1 & 0x40L) != 0L)
             return 14;
-         if ((active0 & 0xb6142c1f81200000L) != 0L || (active1 & 0x95L) != 0L)
+         if ((active0 & 0x6c28583f02400000L) != 0L || (active1 & 0x12bL) != 0L)
          {
-            jjmatchedKind = 105;
+            jjmatchedKind = 106;
             jjmatchedPos = 4;
             return 14;
          }
          return -1;
       case 5:
-         if ((active0 & 0x9014001801000000L) != 0L || (active1 & 0x11L) != 0L)
+         if ((active0 & 0x2028003002000000L) != 0L || (active1 & 0x23L) != 0L)
             return 14;
-         if ((active0 & 0x26002c0780200000L) != 0L || (active1 & 0x84L) != 0L)
+         if ((active0 & 0x4c00580f00400000L) != 0L || (active1 & 0x108L) != 0L)
          {
-            jjmatchedKind = 105;
+            jjmatchedKind = 106;
             jjmatchedPos = 5;
             return 14;
          }
          return -1;
       case 6:
-         if ((active0 & 0x2000280780000000L) != 0L || (active1 & 0x84L) != 0L)
+         if ((active0 & 0x4000500f00000000L) != 0L || (active1 & 0x108L) != 0L)
             return 14;
-         if ((active0 & 0x600040000200000L) != 0L)
+         if ((active0 & 0xc00080000400000L) != 0L)
          {
             if (jjmatchedPos != 6)
             {
-               jjmatchedKind = 105;
+               jjmatchedKind = 106;
                jjmatchedPos = 6;
             }
             return 14;
          }
          return -1;
       case 7:
-         if ((active0 & 0x200040000200000L) != 0L)
+         if ((active0 & 0x400080000400000L) != 0L)
             return 14;
-         if ((active0 & 0x400000600000000L) != 0L)
+         if ((active0 & 0x800000c00000000L) != 0L)
          {
-            jjmatchedKind = 105;
+            jjmatchedKind = 106;
             jjmatchedPos = 7;
             return 14;
          }
          return -1;
       case 8:
-         if ((active0 & 0x400000000000000L) != 0L)
+         if ((active0 & 0x800000000000000L) != 0L)
             return 14;
-         if ((active0 & 0x600000000L) != 0L)
+         if ((active0 & 0xc00000000L) != 0L)
          {
-            jjmatchedKind = 105;
+            jjmatchedKind = 106;
             jjmatchedPos = 8;
             return 14;
          }
          return -1;
       case 9:
-         if ((active0 & 0x600000000L) != 0L)
+         if ((active0 & 0xc00000000L) != 0L)
          {
-            jjmatchedKind = 105;
+            jjmatchedKind = 106;
             jjmatchedPos = 9;
             return 14;
          }
          return -1;
       case 10:
-         if ((active0 & 0x600000000L) != 0L)
+         if ((active0 & 0xc00000000L) != 0L)
          {
-            jjmatchedKind = 105;
+            jjmatchedKind = 106;
             jjmatchedPos = 10;
             return 14;
          }
@@ -444,126 +532,126 @@ static private final int jjMoveStringLiteralDfa0_1()
    switch(curChar)
    {
       case 33:
-         jjmatchedKind = 74;
-         return jjMoveStringLiteralDfa1_1(0x0L, 0x2800000000000000L, 0x0L);
+         jjmatchedKind = 75;
+         return jjMoveStringLiteralDfa1_1(0x0L, 0x5000000000000000L, 0x0L);
       case 35:
          return jjStopAtPos(0, 12);
       case 36:
-         return jjStartNfaWithStates_1(0, 73, 16);
+         return jjStartNfaWithStates_1(0, 74, 16);
       case 37:
-         jjmatchedKind = 89;
-         return jjMoveStringLiteralDfa1_1(0x0L, 0x0L, 0x100L);
+         jjmatchedKind = 90;
+         return jjMoveStringLiteralDfa1_1(0x0L, 0x0L, 0x200L);
       case 38:
-         jjmatchedKind = 86;
-         return jjMoveStringLiteralDfa1_1(0x0L, 0x8000L, 0x10L);
+         jjmatchedKind = 87;
+         return jjMoveStringLiteralDfa1_1(0x0L, 0x10000L, 0x20L);
       case 40:
-         return jjStopAtPos(0, 109);
-      case 41:
          return jjStopAtPos(0, 110);
+      case 41:
+         return jjStopAtPos(0, 111);
       case 42:
-         jjmatchedKind = 84;
-         return jjMoveStringLiteralDfa1_1(0x0L, 0x0L, 0x4L);
+         jjmatchedKind = 85;
+         return jjMoveStringLiteralDfa1_1(0x0L, 0x0L, 0x8L);
       case 43:
-         jjmatchedKind = 82;
-         return jjMoveStringLiteralDfa1_1(0x0L, 0x10000L, 0x1L);
+         jjmatchedKind = 83;
+         return jjMoveStringLiteralDfa1_1(0x0L, 0x20000L, 0x2L);
       case 44:
-         return jjStopAtPos(0, 116);
+         return jjStopAtPos(0, 117);
       case 45:
-         jjmatchedKind = 83;
-         return jjMoveStringLiteralDfa1_1(0x2000000000L, 0x20000L, 0x2L);
+         jjmatchedKind = 84;
+         return jjMoveStringLiteralDfa1_1(0x4000000000L, 0x40000L, 0x4L);
       case 46:
-         jjmatchedKind = 117;
-         return jjMoveStringLiteralDfa1_1(0x0L, 0x0L, 0x80L);
+         jjmatchedKind = 118;
+         return jjMoveStringLiteralDfa1_1(0x0L, 0x0L, 0x100L);
       case 47:
-         jjmatchedKind = 85;
-         return jjMoveStringLiteralDfa1_1(0x4800L, 0x0L, 0x8L);
+         jjmatchedKind = 86;
+         return jjMoveStringLiteralDfa1_1(0x4800L, 0x0L, 0x10L);
       case 58:
-         jjmatchedKind = 77;
-         return jjMoveStringLiteralDfa1_1(0x4000000000L, 0x0L, 0x0L);
+         jjmatchedKind = 78;
+         return jjMoveStringLiteralDfa1_1(0x8000000000L, 0x0L, 0x0L);
       case 59:
-         return jjStopAtPos(0, 115);
+         return jjStopAtPos(0, 116);
       case 60:
-         jjmatchedKind = 119;
-         return jjMoveStringLiteralDfa1_1(0x0L, 0x1200000004000000L, 0x400L);
+         jjmatchedKind = 120;
+         return jjMoveStringLiteralDfa1_1(0x0L, 0x2400000008000000L, 0x800L);
       case 61:
-         jjmatchedKind = 127;
-         return jjMoveStringLiteralDfa1_1(0x8000000000L, 0x4100000000000000L, 0x0L);
+         jjmatchedKind = 128;
+         return jjMoveStringLiteralDfa1_1(0x10000000000L, 0x8200000000000000L, 0x0L);
       case 62:
-         jjmatchedKind = 118;
-         return jjMoveStringLiteralDfa1_1(0x0L, 0x400000018000000L, 0x800L);
+         jjmatchedKind = 119;
+         return jjMoveStringLiteralDfa1_1(0x0L, 0x800000030000000L, 0x1000L);
       case 63:
-         jjmatchedKind = 76;
+         jjmatchedKind = 77;
          return jjMoveStringLiteralDfa1_1(0x10L, 0x0L, 0x0L);
       case 64:
-         return jjStopAtPos(0, 72);
+         return jjStopAtPos(0, 73);
       case 91:
-         return jjStopAtPos(0, 113);
-      case 93:
          return jjStopAtPos(0, 114);
+      case 93:
+         return jjStopAtPos(0, 115);
       case 94:
-         jjmatchedKind = 88;
-         return jjMoveStringLiteralDfa1_1(0x0L, 0x0L, 0x40L);
+         jjmatchedKind = 89;
+         return jjMoveStringLiteralDfa1_1(0x0L, 0x0L, 0x80L);
       case 65:
       case 97:
-         return jjMoveStringLiteralDfa1_1(0x4000000004000000L, 0x40000000L, 0x0L);
+         return jjMoveStringLiteralDfa1_1(0x8000000008000000L, 0x80000000L, 0x0L);
       case 66:
       case 98:
-         return jjMoveStringLiteralDfa1_1(0x8000000L, 0x6L, 0x0L);
+         return jjMoveStringLiteralDfa1_1(0x10000000L, 0xcL, 0x0L);
       case 67:
       case 99:
-         return jjMoveStringLiteralDfa1_1(0x70000100000L, 0x0L, 0x0L);
+         return jjMoveStringLiteralDfa1_1(0xe0000200000L, 0x0L, 0x0L);
       case 68:
       case 100:
-         return jjMoveStringLiteralDfa1_1(0x180000000000L, 0x10L, 0x0L);
+         return jjMoveStringLiteralDfa1_1(0x300000000000L, 0x20L, 0x0L);
       case 69:
       case 101:
-         return jjMoveStringLiteralDfa1_1(0x1e00200043000000L, 0x0L, 0x0L);
+         return jjMoveStringLiteralDfa1_1(0x3c00400086000000L, 0x0L, 0x0L);
       case 70:
       case 102:
-         return jjMoveStringLiteralDfa1_1(0x2080400000200000L, 0x20L, 0x0L);
+         return jjMoveStringLiteralDfa1_1(0x4100800000400000L, 0x40L, 0x0L);
       case 71:
       case 103:
-         return jjMoveStringLiteralDfa1_1(0x800800000000L, 0x0L, 0x0L);
+         return jjMoveStringLiteralDfa1_1(0x1001000000000L, 0x0L, 0x0L);
       case 73:
       case 105:
-         return jjMoveStringLiteralDfa1_1(0x280800000L, 0xc0L, 0x0L);
+         return jjMoveStringLiteralDfa1_1(0x501000000L, 0x180L, 0x0L);
       case 76:
       case 108:
-         return jjMoveStringLiteralDfa1_1(0x10000000L, 0x0L, 0x0L);
+         return jjMoveStringLiteralDfa1_1(0x20000000L, 0x0L, 0x0L);
       case 78:
       case 110:
-         return jjMoveStringLiteralDfa1_1(0x3000000000000L, 0x0L, 0x0L);
+         return jjMoveStringLiteralDfa1_1(0x6000000000000L, 0x0L, 0x0L);
       case 79:
       case 111:
-         return jjMoveStringLiteralDfa1_1(0x0L, 0x20000001L, 0x0L);
+         return jjMoveStringLiteralDfa1_1(0x0L, 0x40000002L, 0x0L);
       case 80:
       case 112:
-         return jjMoveStringLiteralDfa1_1(0x20000000L, 0x0L, 0x0L);
+         return jjMoveStringLiteralDfa1_1(0x40000000L, 0x0L, 0x0L);
       case 82:
       case 114:
-         return jjMoveStringLiteralDfa1_1(0x4000500000000L, 0x8L, 0x0L);
+         return jjMoveStringLiteralDfa1_1(0x8000a00000000L, 0x10L, 0x0L);
       case 83:
       case 115:
-         return jjMoveStringLiteralDfa1_1(0x8018001000000000L, 0x0L, 0x0L);
+         return jjMoveStringLiteralDfa1_1(0x30002000000000L, 0x1L, 0x0L);
       case 84:
       case 116:
-         return jjMoveStringLiteralDfa1_1(0x60000000000000L, 0x0L, 0x0L);
+         return jjMoveStringLiteralDfa1_1(0xc0000000000000L, 0x0L, 0x0L);
       case 86:
       case 118:
-         return jjMoveStringLiteralDfa1_1(0x400000L, 0x0L, 0x0L);
+         return jjMoveStringLiteralDfa1_1(0x800000L, 0x0L, 0x0L);
       case 87:
       case 119:
-         return jjMoveStringLiteralDfa1_1(0x100000000000000L, 0x0L, 0x0L);
+         return jjMoveStringLiteralDfa1_1(0x200000000000000L, 0x0L, 0x0L);
       case 123:
-         return jjStopAtPos(0, 111);
+         return jjStopAtPos(0, 112);
       case 124:
-         jjmatchedKind = 87;
-         return jjMoveStringLiteralDfa1_1(0x0L, 0x4000L, 0x20L);
+         jjmatchedKind = 88;
+         return jjMoveStringLiteralDfa1_1(0x0L, 0x8000L, 0x40L);
       case 125:
-         return jjStopAtPos(0, 112);
+         return jjStopAtPos(0, 113);
       case 126:
-         jjmatchedKind = 75;
-         return jjMoveStringLiteralDfa1_1(0x0L, 0x0L, 0x200L);
+         jjmatchedKind = 76;
+         return jjMoveStringLiteralDfa1_1(0x0L, 0x0L, 0x400L);
       default :
          return jjMoveNfa_1(3, 0);
    }
@@ -578,53 +666,51 @@ static private final int jjMoveStringLiteralDfa1_1(long active0, long active1, l
    switch(curChar)
    {
       case 38:
-         if ((active1 & 0x8000L) != 0L)
-            return jjStopAtPos(1, 79);
+         if ((active1 & 0x10000L) != 0L)
+            return jjStopAtPos(1, 80);
          break;
       case 42:
          if ((active0 & 0x4000L) != 0L)
             return jjStartNfaWithStates_1(1, 14, 0);
          break;
       case 43:
-         if ((active1 & 0x10000L) != 0L)
-            return jjStopAtPos(1, 80);
-         break;
-      case 45:
          if ((active1 & 0x20000L) != 0L)
             return jjStopAtPos(1, 81);
          break;
+      case 45:
+         if ((active1 & 0x40000L) != 0L)
+            return jjStopAtPos(1, 82);
+         break;
       case 47:
          if ((active0 & 0x800L) != 0L)
             return jjStopAtPos(1, 11);
          break;
       case 58:
-         if ((active0 & 0x4000000000L) != 0L)
-            return jjStopAtPos(1, 38);
+         if ((active0 & 0x8000000000L) != 0L)
+            return jjStopAtPos(1, 39);
          break;
       case 60:
-         if ((active1 & 0x4000000L) != 0L)
+         if ((active1 & 0x8000000L) != 0L)
          {
-            jjmatchedKind = 90;
+            jjmatchedKind = 91;
             jjmatchedPos = 1;
          }
-         return jjMoveStringLiteralDfa2_1(active0, 0L, active1, 0L, active2, 0x400L);
+         return jjMoveStringLiteralDfa2_1(active0, 0L, active1, 0L, active2, 0x800L);
       case 61:
-         if ((active1 & 0x100000000000000L) != 0L)
+         if ((active1 & 0x200000000000000L) != 0L)
          {
-            jjmatchedKind = 120;
+            jjmatchedKind = 121;
             jjmatchedPos = 1;
          }
-         else if ((active1 & 0x200000000000000L) != 0L)
-            return jjStopAtPos(1, 121);
          else if ((active1 & 0x400000000000000L) != 0L)
             return jjStopAtPos(1, 122);
          else if ((active1 & 0x800000000000000L) != 0L)
+            return jjStopAtPos(1, 123);
+         else if ((active1 & 0x1000000000000000L) != 0L)
          {
-            jjmatchedKind = 123;
+            jjmatchedKind = 124;
             jjmatchedPos = 1;
          }
-         else if ((active2 & 0x1L) != 0L)
-            return jjStopAtPos(1, 128);
          else if ((active2 & 0x2L) != 0L)
             return jjStopAtPos(1, 129);
          else if ((active2 & 0x4L) != 0L)
@@ -643,84 +729,86 @@ static private final int jjMoveStringLiteralDfa1_1(long active0, long active1, l
             return jjStopAtPos(1, 136);
          else if ((active2 & 0x200L) != 0L)
             return jjStopAtPos(1, 137);
-         return jjMoveStringLiteralDfa2_1(active0, 0L, active1, 0x6000000000000000L, active2, 0L);
+         else if ((active2 & 0x400L) != 0L)
+            return jjStopAtPos(1, 138);
+         return jjMoveStringLiteralDfa2_1(active0, 0L, active1, 0xc000000000000000L, active2, 0L);
       case 62:
          if ((active0 & 0x10L) != 0L)
             return jjStopAtPos(1, 4);
-         else if ((active0 & 0x2000000000L) != 0L)
-            return jjStopAtPos(1, 37);
-         else if ((active0 & 0x8000000000L) != 0L)
-            return jjStopAtPos(1, 39);
-         else if ((active1 & 0x8000000L) != 0L)
+         else if ((active0 & 0x4000000000L) != 0L)
+            return jjStopAtPos(1, 38);
+         else if ((active0 & 0x10000000000L) != 0L)
+            return jjStopAtPos(1, 40);
+         else if ((active1 & 0x10000000L) != 0L)
          {
-            jjmatchedKind = 91;
+            jjmatchedKind = 92;
             jjmatchedPos = 1;
          }
-         else if ((active1 & 0x1000000000000000L) != 0L)
-            return jjStopAtPos(1, 124);
-         return jjMoveStringLiteralDfa2_1(active0, 0L, active1, 0x10000000L, active2, 0x800L);
+         else if ((active1 & 0x2000000000000000L) != 0L)
+            return jjStopAtPos(1, 125);
+         return jjMoveStringLiteralDfa2_1(active0, 0L, active1, 0x20000000L, active2, 0x1000L);
       case 65:
       case 97:
-         return jjMoveStringLiteralDfa2_1(active0, 0x80010000400000L, active1, 0L, active2, 0L);
+         return jjMoveStringLiteralDfa2_1(active0, 0x100020000800000L, active1, 0L, active2, 0L);
       case 66:
       case 98:
-         return jjMoveStringLiteralDfa2_1(active0, 0L, active1, 0x1L, active2, 0L);
+         return jjMoveStringLiteralDfa2_1(active0, 0L, active1, 0x2L, active2, 0L);
       case 67:
       case 99:
-         return jjMoveStringLiteralDfa2_1(active0, 0x40000000L, active1, 0L, active2, 0L);
+         return jjMoveStringLiteralDfa2_1(active0, 0x80000000L, active1, 0L, active2, 0L);
       case 69:
       case 101:
-         return jjMoveStringLiteralDfa2_1(active0, 0x5080500000000L, active1, 0x8L, active2, 0L);
+         return jjMoveStringLiteralDfa2_1(active0, 0xa100a00000000L, active1, 0x10L, active2, 0L);
       case 70:
       case 102:
-         if ((active0 & 0x800000L) != 0L)
-            return jjStartNfaWithStates_1(1, 23, 14);
+         if ((active0 & 0x1000000L) != 0L)
+            return jjStartNfaWithStates_1(1, 24, 14);
          break;
       case 72:
       case 104:
-         return jjMoveStringLiteralDfa2_1(active0, 0x120000000000000L, active1, 0L, active2, 0L);
+         return jjMoveStringLiteralDfa2_1(active0, 0x240000000000000L, active1, 0L, active2, 0L);
       case 73:
       case 105:
-         return jjMoveStringLiteralDfa2_1(active0, 0x10000000L, active1, 0L, active2, 0L);
+         return jjMoveStringLiteralDfa2_1(active0, 0x20000000L, active1, 0L, active2, 0L);
       case 76:
       case 108:
-         return jjMoveStringLiteralDfa2_1(active0, 0x803100000L, active1, 0x20L, active2, 0L);
+         return jjMoveStringLiteralDfa2_1(active0, 0x1006200000L, active1, 0x40L, active2, 0L);
       case 78:
       case 110:
-         return jjMoveStringLiteralDfa2_1(active0, 0x1e00000280000000L, active1, 0x400000c0L, active2, 0L);
+         return jjMoveStringLiteralDfa2_1(active0, 0x3c00000500000000L, active1, 0x80000180L, active2, 0L);
       case 79:
       case 111:
-         if ((active0 & 0x100000000000L) != 0L)
+         if ((active0 & 0x200000000000L) != 0L)
          {
-            jjmatchedKind = 44;
+            jjmatchedKind = 45;
             jjmatchedPos = 1;
          }
-         return jjMoveStringLiteralDfa2_1(active0, 0x2000c60000000000L, active1, 0x16L, active2, 0L);
+         return jjMoveStringLiteralDfa2_1(active0, 0x40018c0000000000L, active1, 0x2cL, active2, 0L);
       case 82:
       case 114:
-         if ((active1 & 0x20000000L) != 0L)
-            return jjStartNfaWithStates_1(1, 93, 14);
-         return jjMoveStringLiteralDfa2_1(active0, 0x4000002c000000L, active1, 0L, active2, 0L);
+         if ((active1 & 0x40000000L) != 0L)
+            return jjStartNfaWithStates_1(1, 94, 14);
+         return jjMoveStringLiteralDfa2_1(active0, 0x80000058000000L, active1, 0L, active2, 0L);
       case 83:
       case 115:
-         if ((active0 & 0x4000000000000000L) != 0L)
-            return jjStartNfaWithStates_1(1, 62, 14);
+         if ((active0 & 0x8000000000000000L) != 0L)
+            return jjStartNfaWithStates_1(1, 63, 14);
          break;
       case 84:
       case 116:
-         return jjMoveStringLiteralDfa2_1(active0, 0x8000001000000000L, active1, 0L, active2, 0L);
+         return jjMoveStringLiteralDfa2_1(active0, 0x2000000000L, active1, 0x1L, active2, 0L);
       case 85:
       case 117:
-         return jjMoveStringLiteralDfa2_1(active0, 0xa000000200000L, active1, 0L, active2, 0L);
+         return jjMoveStringLiteralDfa2_1(active0, 0x14000000400000L, active1, 0L, active2, 0L);
       case 87:
       case 119:
-         return jjMoveStringLiteralDfa2_1(active0, 0x10000000000000L, active1, 0L, active2, 0L);
+         return jjMoveStringLiteralDfa2_1(active0, 0x20000000000000L, active1, 0L, active2, 0L);
       case 88:
       case 120:
-         return jjMoveStringLiteralDfa2_1(active0, 0x200000000000L, active1, 0L, active2, 0L);
+         return jjMoveStringLiteralDfa2_1(active0, 0x400000000000L, active1, 0L, active2, 0L);
       case 124:
-         if ((active1 & 0x4000L) != 0L)
-            return jjStopAtPos(1, 78);
+         if ((active1 & 0x8000L) != 0L)
+            return jjStopAtPos(1, 79);
          break;
       default :
          break;
@@ -739,88 +827,88 @@ static private final int jjMoveStringLiteralDfa2_1(long old0, long active0, long
    switch(curChar)
    {
       case 61:
-         if ((active1 & 0x2000000000000000L) != 0L)
-            return jjStopAtPos(2, 125);
-         else if ((active1 & 0x4000000000000000L) != 0L)
+         if ((active1 & 0x4000000000000000L) != 0L)
             return jjStopAtPos(2, 126);
-         else if ((active2 & 0x400L) != 0L)
-            return jjStopAtPos(2, 138);
+         else if ((active1 & 0x8000000000000000L) != 0L)
+            return jjStopAtPos(2, 127);
          else if ((active2 & 0x800L) != 0L)
             return jjStopAtPos(2, 139);
+         else if ((active2 & 0x1000L) != 0L)
+            return jjStopAtPos(2, 140);
          break;
       case 62:
-         if ((active1 & 0x10000000L) != 0L)
-            return jjStopAtPos(2, 92);
+         if ((active1 & 0x20000000L) != 0L)
+            return jjStopAtPos(2, 93);
          break;
       case 65:
       case 97:
-         return jjMoveStringLiteralDfa3_1(active0, 0x1000100000L, active1, 0x8L, active2, 0L);
+         return jjMoveStringLiteralDfa3_1(active0, 0x2000200000L, active1, 0x10L, active2, 0L);
       case 67:
       case 99:
-         return jjMoveStringLiteralDfa3_1(active0, 0x280000000L, active1, 0L, active2, 0L);
+         return jjMoveStringLiteralDfa3_1(active0, 0x500000000L, active1, 0L, active2, 0L);
       case 68:
       case 100:
-         if ((active1 & 0x40000000L) != 0L)
-            return jjStartNfaWithStates_1(2, 94, 14);
-         return jjMoveStringLiteralDfa3_1(active0, 0x1e00000000000000L, active1, 0L, active2, 0L);
+         if ((active1 & 0x80000000L) != 0L)
+            return jjStartNfaWithStates_1(2, 95, 14);
+         return jjMoveStringLiteralDfa3_1(active0, 0x3c00000000000000L, active1, 0L, active2, 0L);
       case 69:
       case 101:
-         return jjMoveStringLiteralDfa3_1(active0, 0x8000000L, active1, 0L, active2, 0L);
+         return jjMoveStringLiteralDfa3_1(active0, 0x10000000L, active1, 0L, active2, 0L);
       case 70:
       case 102:
-         return jjMoveStringLiteralDfa3_1(active0, 0x80000000000L, active1, 0L, active2, 0L);
+         return jjMoveStringLiteralDfa3_1(active0, 0x100000000000L, active1, 0L, active2, 0L);
       case 72:
       case 104:
-         return jjMoveStringLiteralDfa3_1(active0, 0x40000000L, active1, 0L, active2, 0L);
+         return jjMoveStringLiteralDfa3_1(active0, 0x80000000L, active1, 0L, active2, 0L);
       case 73:
       case 105:
-         return jjMoveStringLiteralDfa3_1(active0, 0x130000020000000L, active1, 0L, active2, 0L);
+         return jjMoveStringLiteralDfa3_1(active0, 0x260000040000000L, active1, 0L, active2, 0L);
       case 74:
       case 106:
-         return jjMoveStringLiteralDfa3_1(active0, 0L, active1, 0x1L, active2, 0L);
+         return jjMoveStringLiteralDfa3_1(active0, 0L, active1, 0x2L, active2, 0L);
       case 76:
       case 108:
-         return jjMoveStringLiteralDfa3_1(active0, 0x82000000000000L, active1, 0L, active2, 0L);
+         return jjMoveStringLiteralDfa3_1(active0, 0x104000000000000L, active1, 0L, active2, 0L);
       case 78:
       case 110:
-         return jjMoveStringLiteralDfa3_1(active0, 0x60000200000L, active1, 0L, active2, 0L);
+         return jjMoveStringLiteralDfa3_1(active0, 0xc0000400000L, active1, 0L, active2, 0L);
       case 79:
       case 111:
-         return jjMoveStringLiteralDfa3_1(active0, 0x800000000L, active1, 0x26L, active2, 0L);
+         return jjMoveStringLiteralDfa3_1(active0, 0x1000000000L, active1, 0x4cL, active2, 0L);
       case 80:
       case 112:
-         return jjMoveStringLiteralDfa3_1(active0, 0x8000000000000L, active1, 0L, active2, 0L);
+         return jjMoveStringLiteralDfa3_1(active0, 0x10000000000000L, active1, 0L, active2, 0L);
       case 81:
       case 113:
-         return jjMoveStringLiteralDfa3_1(active0, 0x500000000L, active1, 0L, active2, 0L);
+         return jjMoveStringLiteralDfa3_1(active0, 0xa00000000L, active1, 0L, active2, 0L);
       case 82:
       case 114:
-         if ((active0 & 0x400000L) != 0L)
-            return jjStartNfaWithStates_1(2, 22, 14);
-         else if ((active0 & 0x400000000000L) != 0L)
+         if ((active0 & 0x800000L) != 0L)
+            return jjStartNfaWithStates_1(2, 23, 14);
+         else if ((active0 & 0x800000000000L) != 0L)
          {
-            jjmatchedKind = 46;
+            jjmatchedKind = 47;
             jjmatchedPos = 2;
          }
-         return jjMoveStringLiteralDfa3_1(active0, 0xa000000004000000L, active1, 0L, active2, 0L);
+         return jjMoveStringLiteralDfa3_1(active0, 0x4000000008000000L, active1, 0x1L, active2, 0L);
       case 83:
       case 115:
-         return jjMoveStringLiteralDfa3_1(active0, 0x10013000000L, active1, 0L, active2, 0L);
+         return jjMoveStringLiteralDfa3_1(active0, 0x20026000000L, active1, 0L, active2, 0L);
       case 84:
       case 116:
-         if ((active1 & 0x40L) != 0L)
+         if ((active1 & 0x80L) != 0L)
          {
-            jjmatchedKind = 70;
+            jjmatchedKind = 71;
             jjmatchedPos = 2;
          }
-         return jjMoveStringLiteralDfa3_1(active0, 0x4a00000000000L, active1, 0x80L, active2, 0L);
+         return jjMoveStringLiteralDfa3_1(active0, 0x9400000000000L, active1, 0x100L, active2, 0L);
       case 85:
       case 117:
-         return jjMoveStringLiteralDfa3_1(active0, 0x40000000000000L, active1, 0x10L, active2, 0L);
+         return jjMoveStringLiteralDfa3_1(active0, 0x80000000000000L, active1, 0x20L, active2, 0L);
       case 87:
       case 119:
-         if ((active0 & 0x1000000000000L) != 0L)
-            return jjStartNfaWithStates_1(2, 48, 14);
+         if ((active0 & 0x2000000000000L) != 0L)
+            return jjStartNfaWithStates_1(2, 49, 14);
          break;
       default :
          break;
@@ -840,69 +928,69 @@ static private final int jjMoveStringLiteralDfa3_1(long old0, long active0, long
    {
       case 65:
       case 97:
-         return jjMoveStringLiteralDfa4_1(active0, 0x8000c000000L, active1, 0x20L);
+         return jjMoveStringLiteralDfa4_1(active0, 0x100018000000L, active1, 0x40L);
       case 66:
       case 98:
-         return jjMoveStringLiteralDfa4_1(active0, 0x800000000L, active1, 0x10L);
+         return jjMoveStringLiteralDfa4_1(active0, 0x1000000000L, active1, 0x20L);
       case 67:
       case 99:
-         return jjMoveStringLiteralDfa4_1(active0, 0x200000L, active1, 0L);
+         return jjMoveStringLiteralDfa4_1(active0, 0x400000L, active1, 0L);
       case 69:
       case 101:
-         if ((active0 & 0x2000000L) != 0L)
+         if ((active0 & 0x4000000L) != 0L)
          {
-            jjmatchedKind = 25;
+            jjmatchedKind = 26;
             jjmatchedPos = 3;
          }
-         else if ((active0 & 0x10000000000L) != 0L)
-            return jjStartNfaWithStates_1(3, 40, 14);
-         else if ((active0 & 0x40000000000000L) != 0L)
-            return jjStartNfaWithStates_1(3, 54, 14);
-         return jjMoveStringLiteralDfa4_1(active0, 0x2008200001000000L, active1, 0x81L);
+         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);
       case 70:
       case 102:
-         return jjMoveStringLiteralDfa4_1(active0, 0x1000000000000000L, active1, 0L);
+         return jjMoveStringLiteralDfa4_1(active0, 0x2000000000000000L, active1, 0L);
       case 73:
       case 105:
-         return jjMoveStringLiteralDfa4_1(active0, 0x8800000000000000L, active1, 0L);
+         return jjMoveStringLiteralDfa4_1(active0, 0x1000000000000000L, active1, 0x1L);
       case 76:
       case 108:
-         if ((active0 & 0x2000000000000L) != 0L)
-            return jjStartNfaWithStates_1(3, 49, 14);
-         else if ((active1 & 0x2L) != 0L)
+         if ((active0 & 0x4000000000000L) != 0L)
+            return jjStartNfaWithStates_1(3, 50, 14);
+         else if ((active1 & 0x4L) != 0L)
          {
-            jjmatchedKind = 65;
+            jjmatchedKind = 66;
             jjmatchedPos = 3;
          }
-         else if ((active1 & 0x8L) != 0L)
-            return jjStartNfaWithStates_1(3, 67, 14);
-         return jjMoveStringLiteralDfa4_1(active0, 0x100000280000000L, active1, 0x4L);
+         else if ((active1 & 0x10L) != 0L)
+            return jjStartNfaWithStates_1(3, 68, 14);
+         return jjMoveStringLiteralDfa4_1(active0, 0x200000500000000L, active1, 0x8L);
       case 78:
       case 110:
-         return jjMoveStringLiteralDfa4_1(active0, 0x20000000L, active1, 0L);
+         return jjMoveStringLiteralDfa4_1(active0, 0x40000000L, active1, 0L);
       case 79:
       case 111:
-         if ((active0 & 0x40000000L) != 0L)
-            return jjStartNfaWithStates_1(3, 30, 14);
-         else if ((active0 & 0x800000000000L) != 0L)
-            return jjStartNfaWithStates_1(3, 47, 14);
+         if ((active0 & 0x80000000L) != 0L)
+            return jjStartNfaWithStates_1(3, 31, 14);
+         else if ((active0 & 0x1000000000000L) != 0L)
+            return jjStartNfaWithStates_1(3, 48, 14);
          break;
       case 83:
       case 115:
-         if ((active0 & 0x20000000000000L) != 0L)
-            return jjStartNfaWithStates_1(3, 53, 14);
-         return jjMoveStringLiteralDfa4_1(active0, 0x480020000100000L, active1, 0L);
+         if ((active0 & 0x40000000000000L) != 0L)
+            return jjStartNfaWithStates_1(3, 54, 14);
+         return jjMoveStringLiteralDfa4_1(active0, 0x900040000200000L, active1, 0L);
       case 84:
       case 116:
-         if ((active0 & 0x10000000L) != 0L)
-            return jjStartNfaWithStates_1(3, 28, 14);
-         return jjMoveStringLiteralDfa4_1(active0, 0x10041000000000L, active1, 0L);
+         if ((active0 & 0x20000000L) != 0L)
+            return jjStartNfaWithStates_1(3, 29, 14);
+         return jjMoveStringLiteralDfa4_1(active0, 0x20082000000000L, active1, 0L);
       case 85:
       case 117:
-         return jjMoveStringLiteralDfa4_1(active0, 0x4000500000000L, active1, 0L);
+         return jjMoveStringLiteralDfa4_1(active0, 0x8000a00000000L, active1, 0L);
       case 87:
       case 119:
-         return jjMoveStringLiteralDfa4_1(active0, 0x200000000000000L, active1, 0L);
+         return jjMoveStringLiteralDfa4_1(active0, 0x400000000000000L, active1, 0L);
       default :
          break;
    }
@@ -921,74 +1009,74 @@ static private final int jjMoveStringLiteralDfa4_1(long old0, long active0, long
    {
       case 65:
       case 97:
-         return jjMoveStringLiteralDfa5_1(active0, 0x2000000800000000L, active1, 0L);
+         return jjMoveStringLiteralDfa5_1(active0, 0x4000001000000000L, active1, 0L);
       case 67:
       case 99:
-         return jjMoveStringLiteralDfa5_1(active0, 0x10000000000000L, active1, 0x1L);
+         return jjMoveStringLiteralDfa5_1(active0, 0x20000000000000L, active1, 0x2L);
       case 69:
       case 101:
-         if ((active0 & 0x80000000000000L) != 0L)
-            return jjStartNfaWithStates_1(4, 55, 14);
-         else if ((active0 & 0x100000000000000L) != 0L)
+         if ((active0 & 0x100000000000000L) != 0L)
             return jjStartNfaWithStates_1(4, 56, 14);
-         return jjMoveStringLiteralDfa5_1(active0, 0L, active1, 0x4L);
+         else if ((active0 & 0x200000000000000L) != 0L)
+            return jjStartNfaWithStates_1(4, 57, 14);
+         return jjMoveStringLiteralDfa5_1(active0, 0L, active1, 0x8L);
       case 70:
       case 102:
-         if ((active0 & 0x800000000000000L) != 0L)
-            return jjStartNfaWithStates_1(4, 59, 14);
+         if ((active0 & 0x1000000000000000L) != 0L)
+            return jjStartNfaWithStates_1(4, 60, 14);
          break;
       case 71:
       case 103:
-         return jjMoveStringLiteralDfa5_1(active0, 0L, active1, 0x80L);
+         return jjMoveStringLiteralDfa5_1(active0, 0L, active1, 0x100L);
       case 72:
       case 104:
-         return jjMoveStringLiteralDfa5_1(active0, 0x200000000000000L, active1, 0L);
+         return jjMoveStringLiteralDfa5_1(active0, 0x400000000000000L, active1, 0L);
       case 73:
       case 105:
-         return jjMoveStringLiteralDfa5_1(active0, 0x41501000000L, active1, 0L);
+         return jjMoveStringLiteralDfa5_1(active0, 0x82a02000000L, active1, 0L);
       case 75:
       case 107:
-         if ((active0 & 0x8000000L) != 0L)
-            return jjStartNfaWithStates_1(4, 27, 14);
+         if ((active0 & 0x10000000L) != 0L)
+            return jjStartNfaWithStates_1(4, 28, 14);
          break;
       case 76:
       case 108:
-         return jjMoveStringLiteralDfa5_1(active0, 0L, active1, 0x10L);
+         return jjMoveStringLiteralDfa5_1(active0, 0L, active1, 0x20L);
       case 78:
       case 110:
-         return jjMoveStringLiteralDfa5_1(active0, 0x8000200000000000L, active1, 0L);
+         return jjMoveStringLiteralDfa5_1(active0, 0x400000000000L, active1, 0x1L);
       case 79:
       case 111:
-         return jjMoveStringLiteralDfa5_1(active0, 0x1000000000000000L, active1, 0L);
+         return jjMoveStringLiteralDfa5_1(active0, 0x2000000000000000L, active1, 0L);
       case 82:
       case 114:
-         if ((active0 & 0x8000000000000L) != 0L)
-            return jjStartNfaWithStates_1(4, 51, 14);
-         return jjMoveStringLiteralDfa5_1(active0, 0x4000000000000L, active1, 0L);
+         if ((active0 & 0x10000000000000L) != 0L)
+            return jjStartNfaWithStates_1(4, 52, 14);
+         return jjMoveStringLiteralDfa5_1(active0, 0x8000000000000L, active1, 0L);
       case 83:
       case 115:
-         if ((active0 & 0x100000L) != 0L)
-            return jjStartNfaWithStates_1(4, 20, 14);
+         if ((active0 & 0x200000L) != 0L)
+            return jjStartNfaWithStates_1(4, 21, 14);
          break;
       case 84:
       case 116:
-         if ((active0 & 0x20000000L) != 0L)
-            return jjStartNfaWithStates_1(4, 29, 14);
-         else if ((active0 & 0x20000000000L) != 0L)
-            return jjStartNfaWithStates_1(4, 41, 14);
-         else if ((active1 & 0x20L) != 0L)
-            return jjStartNfaWithStates_1(4, 69, 14);
-         return jjMoveStringLiteralDfa5_1(active0, 0x200000L, active1, 0L);
+         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);
+         return jjMoveStringLiteralDfa5_1(active0, 0x400000L, active1, 0L);
       case 85:
       case 117:
-         return jjMoveStringLiteralDfa5_1(active0, 0x80280000000L, active1, 0L);
+         return jjMoveStringLiteralDfa5_1(active0, 0x100500000000L, active1, 0L);
       case 87:
       case 119:
-         return jjMoveStringLiteralDfa5_1(active0, 0x400000000000000L, active1, 0L);
+         return jjMoveStringLiteralDfa5_1(active0, 0x800000000000000L, active1, 0L);
       case 89:
       case 121:
-         if ((active0 & 0x4000000L) != 0L)
-            return jjStartNfaWithStates_1(4, 26, 14);
+         if ((active0 & 0x8000000L) != 0L)
+            return jjStartNfaWithStates_1(4, 27, 14);
          break;
       default :
          break;
@@ -1008,57 +1096,57 @@ static private final int jjMoveStringLiteralDfa5_1(long old0, long active0, long
    {
       case 65:
       case 97:
-         return jjMoveStringLiteralDfa6_1(active0, 0L, active1, 0x4L);
+         return jjMoveStringLiteralDfa6_1(active0, 0L, active1, 0x8L);
       case 67:
       case 99:
-         if ((active0 & 0x1000000000L) != 0L)
-            return jjStartNfaWithStates_1(5, 36, 14);
-         return jjMoveStringLiteralDfa6_1(active0, 0x2000000000000000L, active1, 0L);
+         if ((active0 & 0x2000000000L) != 0L)
+            return jjStartNfaWithStates_1(5, 37, 14);
+         return jjMoveStringLiteralDfa6_1(active0, 0x4000000000000000L, active1, 0L);
       case 68:
       case 100:
-         return jjMoveStringLiteralDfa6_1(active0, 0x200280000000L, active1, 0L);
+         return jjMoveStringLiteralDfa6_1(active0, 0x400500000000L, active1, 0L);
       case 69:
       case 101:
-         if ((active1 & 0x10L) != 0L)
-            return jjStartNfaWithStates_1(5, 68, 14);
-         return jjMoveStringLiteralDfa6_1(active0, 0L, active1, 0x80L);
+         if ((active1 & 0x20L) != 0L)
+            return jjStartNfaWithStates_1(5, 69, 14);
+         return jjMoveStringLiteralDfa6_1(active0, 0L, active1, 0x100L);
       case 70:
       case 102:
-         if ((active0 & 0x1000000L) != 0L)
-            return jjStartNfaWithStates_1(5, 24, 14);
+         if ((active0 & 0x2000000L) != 0L)
+            return jjStartNfaWithStates_1(5, 25, 14);
          break;
       case 71:
       case 103:
-         if ((active0 & 0x8000000000000000L) != 0L)
-            return jjStartNfaWithStates_1(5, 63, 14);
+         if ((active1 & 0x1L) != 0L)
+            return jjStartNfaWithStates_1(5, 64, 14);
          break;
       case 72:
       case 104:
-         if ((active0 & 0x10000000000000L) != 0L)
-            return jjStartNfaWithStates_1(5, 52, 14);
+         if ((active0 & 0x20000000000000L) != 0L)
+            return jjStartNfaWithStates_1(5, 53, 14);
          break;
       case 73:
       case 105:
-         return jjMoveStringLiteralDfa6_1(active0, 0x600000000200000L, active1, 0L);
+         return jjMoveStringLiteralDfa6_1(active0, 0xc00000000400000L, active1, 0L);
       case 76:
       case 108:
-         if ((active0 & 0x800000000L) != 0L)
-            return jjStartNfaWithStates_1(5, 35, 14);
-         return jjMoveStringLiteralDfa6_1(active0, 0x80000000000L, active1, 0L);
+         if ((active0 & 0x1000000000L) != 0L)
+            return jjStartNfaWithStates_1(5, 36, 14);
+         return jjMoveStringLiteralDfa6_1(active0, 0x100000000000L, active1, 0L);
       case 78:
       case 110:
-         if ((active0 & 0x4000000000000L) != 0L)
-            return jjStartNfaWithStates_1(5, 50, 14);
-         return jjMoveStringLiteralDfa6_1(active0, 0x40000000000L, active1, 0L);
+         if ((active0 & 0x8000000000000L) != 0L)
+            return jjStartNfaWithStates_1(5, 51, 14);
+         return jjMoveStringLiteralDfa6_1(active0, 0x80000000000L, active1, 0L);
       case 82:
       case 114:
-         if ((active0 & 0x1000000000000000L) != 0L)
-            return jjStartNfaWithStates_1(5, 60, 14);
-         return jjMoveStringLiteralDfa6_1(active0, 0x500000000L, active1, 0L);
+         if ((active0 & 0x2000000000000000L) != 0L)
+            return jjStartNfaWithStates_1(5, 61, 14);
+         return jjMoveStringLiteralDfa6_1(active0, 0xa00000000L, active1, 0L);
       case 84:
       case 116:
-         if ((active1 & 0x1L) != 0L)
-            return jjStartNfaWithStates_1(5, 64, 14);
+         if ((active1 & 0x2L) != 0L)
+            return jjStartNfaWithStates_1(5, 65, 14);
          break;
       default :
          break;
@@ -1078,51 +1166,51 @@ static private final int jjMoveStringLiteralDfa6_1(long old0, long active0, long
    {
       case 69:
       case 101:
-         if ((active0 & 0x80000000L) != 0L)
+         if ((active0 & 0x100000000L) != 0L)
          {
-            jjmatchedKind = 31;
+            jjmatchedKind = 32;
             jjmatchedPos = 6;
          }
-         else if ((active0 & 0x100000000L) != 0L)
+         else if ((active0 & 0x200000000L) != 0L)
          {
-            jjmatchedKind = 32;
+            jjmatchedKind = 33;
             jjmatchedPos = 6;
          }
-         return jjMoveStringLiteralDfa7_1(active0, 0x600000000L, active1, 0L);
+         return jjMoveStringLiteralDfa7_1(active0, 0xc00000000L, active1, 0L);
       case 72:
       case 104:
-         if ((active0 & 0x2000000000000000L) != 0L)
-            return jjStartNfaWithStates_1(6, 61, 14);
+         if ((active0 & 0x4000000000000000L) != 0L)
+            return jjStartNfaWithStates_1(6, 62, 14);
          break;
       case 76:
       case 108:
-         return jjMoveStringLiteralDfa7_1(active0, 0x200000000000000L, active1, 0L);
+         return jjMoveStringLiteralDfa7_1(active0, 0x400000000000000L, active1, 0L);
       case 78:
       case 110:
-         if ((active1 & 0x4L) != 0L)
-            return jjStartNfaWithStates_1(6, 66, 14);
+         if ((active1 & 0x8L) != 0L)
+            return jjStartNfaWithStates_1(6, 67, 14);
          break;
       case 79:
       case 111:
-         return jjMoveStringLiteralDfa7_1(active0, 0x200000L, active1, 0L);
+         return jjMoveStringLiteralDfa7_1(active0, 0x400000L, active1, 0L);
       case 82:
       case 114:
-         if ((active1 & 0x80L) != 0L)
-            return jjStartNfaWithStates_1(6, 71, 14);
+         if ((active1 & 0x100L) != 0L)
+            return jjStartNfaWithStates_1(6, 72, 14);
          break;
       case 83:
       case 115:
-         if ((active0 & 0x200000000000L) != 0L)
-            return jjStartNfaWithStates_1(6, 45, 14);
+         if ((active0 & 0x400000000000L) != 0L)
+            return jjStartNfaWithStates_1(6, 46, 14);
          break;
       case 84:
       case 116:
-         if ((active0 & 0x80000000000L) != 0L)
-            return jjStartNfaWithStates_1(6, 43, 14);
-         return jjMoveStringLiteralDfa7_1(active0, 0x400000000000000L, active1, 0L);
+         if ((active0 & 0x100000000000L) != 0L)
+            return jjStartNfaWithStates_1(6, 44, 14);
+         return jjMoveStringLiteralDfa7_1(active0, 0x800000000000000L, active1, 0L);
       case 85:
       case 117:
-         return jjMoveStringLiteralDfa7_1(active0, 0x40000000000L, active1, 0L);
+         return jjMoveStringLiteralDfa7_1(active0, 0x80000000000L, active1, 0L);
       default :
          break;
    }
@@ -1140,21 +1228,21 @@ static private final int jjMoveStringLiteralDfa7_1(long old0, long active0, long
    switch(curChar)
    {
       case 95:
-         return jjMoveStringLiteralDfa8_1(active0, 0x600000000L);
+         return jjMoveStringLiteralDfa8_1(active0, 0xc00000000L);
       case 67:
       case 99:
-         return jjMoveStringLiteralDfa8_1(active0, 0x400000000000000L);
+         return jjMoveStringLiteralDfa8_1(active0, 0x800000000000000L);
       case 69:
       case 101:
-         if ((active0 & 0x40000000000L) != 0L)
-            return jjStartNfaWithStates_1(7, 42, 14);
-         else if ((active0 & 0x200000000000000L) != 0L)
-            return jjStartNfaWithStates_1(7, 57, 14);
+         if ((active0 & 0x80000000000L) != 0L)
+            return jjStartNfaWithStates_1(7, 43, 14);
+         else if ((active0 & 0x400000000000000L) != 0L)
+            return jjStartNfaWithStates_1(7, 58, 14);
          break;
       case 78:
       case 110:
-         if ((active0 & 0x200000L) != 0L)
-            return jjStartNfaWithStates_1(7, 21, 14);
+         if ((active0 & 0x400000L) != 0L)
+            return jjStartNfaWithStates_1(7, 22, 14);
          break;
       default :
          break;
@@ -1174,12 +1262,12 @@ static private final int jjMoveStringLiteralDfa8_1(long old0, long active0)
    {
       case 72:
       case 104:
-         if ((active0 & 0x400000000000000L) != 0L)
-            return jjStartNfaWithStates_1(8, 58, 14);
+         if ((active0 & 0x800000000000000L) != 0L)
+            return jjStartNfaWithStates_1(8, 59, 14);
          break;
       case 79:
       case 111:
-         return jjMoveStringLiteralDfa9_1(active0, 0x600000000L);
+         return jjMoveStringLiteralDfa9_1(active0, 0xc00000000L);
       default :
          break;
    }
@@ -1198,7 +1286,7 @@ static private final int jjMoveStringLiteralDfa9_1(long old0, long active0)
    {
       case 78:
       case 110:
-         return jjMoveStringLiteralDfa10_1(active0, 0x600000000L);
+         return jjMoveStringLiteralDfa10_1(active0, 0xc00000000L);
       default :
          break;
    }
@@ -1217,7 +1305,7 @@ static private final int jjMoveStringLiteralDfa10_1(long old0, long active0)
    {
       case 67:
       case 99:
-         return jjMoveStringLiteralDfa11_1(active0, 0x600000000L);
+         return jjMoveStringLiteralDfa11_1(active0, 0xc00000000L);
       default :
          break;
    }
@@ -1236,10 +1324,10 @@ static private final int jjMoveStringLiteralDfa11_1(long old0, long active0)
    {
       case 69:
       case 101:
-         if ((active0 & 0x200000000L) != 0L)
-            return jjStartNfaWithStates_1(11, 33, 14);
-         else if ((active0 & 0x400000000L) != 0L)
+         if ((active0 & 0x400000000L) != 0L)
             return jjStartNfaWithStates_1(11, 34, 14);
+         else if ((active0 & 0x800000000L) != 0L)
+            return jjStartNfaWithStates_1(11, 35, 14);
          break;
       default :
          break;
@@ -1283,14 +1371,14 @@ static private final int jjMoveNfa_1(int startState, int curPos)
                      jjstateSet[jjnewStateCnt++] = 2;
                   if ((0x3fe000000000000L & l) != 0L)
                   {
-                     if (kind > 95)
-                        kind = 95;
+                     if (kind > 96)
+                        kind = 96;
                      jjCheckNAddTwoStates(5, 6);
                   }
                   else if (curChar == 48)
                   {
-                     if (kind > 95)
-                        kind = 95;
+                     if (kind > 96)
+                        kind = 96;
                      jjCheckNAddStates(19, 21);
                   }
                   break;
@@ -1309,15 +1397,15 @@ static private final int jjMoveNfa_1(int startState, int curPos)
                case 4:
                   if ((0x3fe000000000000L & l) == 0L)
                      break;
-                  if (kind > 95)
-                     kind = 95;
+                  if (kind > 96)
+                     kind = 96;
                   jjCheckNAddTwoStates(5, 6);
                   break;
                case 5:
                   if ((0x3ff000000000000L & l) == 0L)
                      break;
-                  if (kind > 95)
-                     kind = 95;
+                  if (kind > 96)
+                     kind = 96;
                   jjCheckNAddTwoStates(5, 6);
                   break;
                case 7:
@@ -1327,8 +1415,8 @@ static private final int jjMoveNfa_1(int startState, int curPos)
                case 8:
                   if ((0x3ff000000000000L & l) == 0L)
                      break;
-                  if (kind > 99)
-                     kind = 99;
+                  if (kind > 100)
+                     kind = 100;
                   jjCheckNAddStates(22, 24);
                   break;
                case 10:
@@ -1338,15 +1426,15 @@ static private final int jjMoveNfa_1(int startState, int curPos)
                case 11:
                   if ((0x3ff000000000000L & l) == 0L)
                      break;
-                  if (kind > 99)
-                     kind = 99;
+                  if (kind > 100)
+                     kind = 100;
                   jjCheckNAddTwoStates(11, 12);
                   break;
                case 14:
                   if ((0x3ff000000000000L & l) == 0L)
                      break;
-                  if (kind > 105)
-                     kind = 105;
+                  if (kind > 106)
+                     kind = 106;
                   jjstateSet[jjnewStateCnt++] = 14;
                   break;
                case 15:
@@ -1356,8 +1444,8 @@ static private final int jjMoveNfa_1(int startState, int curPos)
                case 17:
                   if ((0x3ff000000000000L & l) == 0L)
                      break;
-                  if (kind > 140)
-                     kind = 140;
+                  if (kind > 141)
+                     kind = 141;
                   jjstateSet[jjnewStateCnt++] = 17;
                   break;
                case 18:
@@ -1371,15 +1459,15 @@ static private final int jjMoveNfa_1(int startState, int curPos)
                case 20:
                   if (curChar != 46)
                      break;
-                  if (kind > 99)
-                     kind = 99;
+                  if (kind > 100)
+                     kind = 100;
                   jjCheckNAddStates(25, 27);
                   break;
                case 21:
                   if ((0x3ff000000000000L & l) == 0L)
                      break;
-                  if (kind > 99)
-                     kind = 99;
+                  if (kind > 100)
+                     kind = 100;
                   jjCheckNAddStates(25, 27);
                   break;
                case 23:
@@ -1389,8 +1477,8 @@ static private final int jjMoveNfa_1(int startState, int curPos)
                case 24:
                   if ((0x3ff000000000000L & l) == 0L)
                      break;
-                  if (kind > 99)
-                     kind = 99;
+                  if (kind > 100)
+                     kind = 100;
                   jjCheckNAddTwoStates(24, 12);
                   break;
                case 25:
@@ -1404,8 +1492,8 @@ static private final int jjMoveNfa_1(int startState, int curPos)
                case 28:
                   if ((0x3ff000000000000L & l) == 0L)
                      break;
-                  if (kind > 99)
-                     kind = 99;
+                  if (kind > 100)
+                     kind = 100;
                   jjCheckNAddTwoStates(28, 12);
                   break;
                case 29:
@@ -1423,22 +1511,22 @@ static private final int jjMoveNfa_1(int startState, int curPos)
                case 33:
                   if (curChar != 48)
                      break;
-                  if (kind > 95)
-                     kind = 95;
+                  if (kind > 96)
+                     kind = 96;
                   jjCheckNAddStates(19, 21);
                   break;
                case 35:
                   if ((0x3ff000000000000L & l) == 0L)
                      break;
-                  if (kind > 95)
-                     kind = 95;
+                  if (kind > 96)
+                     kind = 96;
                   jjCheckNAddTwoStates(35, 6);
                   break;
                case 36:
                   if ((0xff000000000000L & l) == 0L)
                      break;
-                  if (kind > 95)
-                     kind = 95;
+                  if (kind > 96)
+                     kind = 96;
                   jjCheckNAddTwoStates(36, 6);
                   break;
                case 37:
@@ -1454,8 +1542,8 @@ static private final int jjMoveNfa_1(int startState, int curPos)
                      jjCheckNAddStates(31, 33);
                   break;
                case 41:
-                  if (curChar == 34 && kind > 101)
-                     kind = 101;
+                  if (curChar == 34 && kind > 102)
+                     kind = 102;
                   break;
                case 42:
                   if ((0xfffffffbffffffffL & l) != 0L)
@@ -1466,8 +1554,8 @@ static private final int jjMoveNfa_1(int startState, int curPos)
                      jjCheckNAddStates(34, 36);
                   break;
                case 45:
-                  if (curChar == 34 && kind > 102)
-                     kind = 102;
+                  if (curChar == 34 && kind > 103)
+                     kind = 103;
                   break;
                case 46:
                   if (curChar == 39)
@@ -1482,8 +1570,8 @@ static private final int jjMoveNfa_1(int startState, int curPos)
                      jjCheckNAddStates(37, 39);
                   break;
                case 50:
-                  if (curChar == 39 && kind > 101)
-                     kind = 101;
+                  if (curChar == 39 && kind > 102)
+                     kind = 102;
                   break;
                case 51:
                   if ((0xffffff7fffffffffL & l) != 0L)
@@ -1494,8 +1582,8 @@ static private final int jjMoveNfa_1(int startState, int curPos)
                      jjCheckNAddStates(40, 42);
                   break;
                case 54:
-                  if (curChar == 39 && kind > 103)
-                     kind = 103;
+                  if (curChar == 39 && kind > 104)
+                     kind = 104;
                   break;
                case 56:
                   jjAddStates(43, 45);
@@ -1517,8 +1605,8 @@ static private final int jjMoveNfa_1(int startState, int curPos)
                case 3:
                   if ((0x87fffffe87fffffeL & l) != 0L)
                   {
-                     if (kind > 105)
-                        kind = 105;
+                     if (kind > 106)
+                        kind = 106;
                      jjCheckNAdd(14);
                   }
                   else if (curChar == 96)
@@ -1529,31 +1617,31 @@ static private final int jjMoveNfa_1(int startState, int curPos)
                      kind = 13;
                   break;
                case 6:
-                  if ((0x100000001000L & l) != 0L && kind > 95)
-                     kind = 95;
+                  if ((0x100000001000L & l) != 0L && kind > 96)
+                     kind = 96;
                   break;
                case 9:
                   if ((0x2000000020L & l) != 0L)
                      jjAddStates(55, 56);
                   break;
                case 12:
-                  if ((0x5000000050L & l) != 0L && kind > 99)
-                     kind = 99;
+                  if ((0x5000000050L & l) != 0L && kind > 100)
+                     kind = 100;
                   break;
                case 13:
                case 14:
                   if ((0x87fffffe87fffffeL & l) == 0L)
                      break;
-                  if (kind > 105)
-                     kind = 105;
+                  if (kind > 106)
+                     kind = 106;
                   jjCheckNAdd(14);
                   break;
                case 16:
                case 17:
                   if ((0x87fffffe87fffffeL & l) == 0L)
                      break;
-                  if (kind > 140)
-                     kind = 140;
+                  if (kind > 141)
+                     kind = 141;
                   jjCheckNAdd(17);
                   break;
                case 22:
@@ -1575,8 +1663,8 @@ static private final int jjMoveNfa_1(int startState, int curPos)
                case 35:
                   if ((0x7e0000007eL & l) == 0L)
                      break;
-                  if (kind > 95)
-                     kind = 95;
+                  if (kind > 96)
+                     kind = 96;
                   jjCheckNAddTwoStates(35, 6);
                   break;
                case 38:
@@ -1624,8 +1712,8 @@ static private final int jjMoveNfa_1(int startState, int curPos)
                      jjstateSet[jjnewStateCnt++] = 57;
                   break;
                case 59:
-                  if (curChar == 96 && kind > 101)
-                     kind = 101;
+                  if (curChar == 96 && kind > 102)
+                     kind = 102;
                   break;
                case 60:
                   if ((0xfffffffeffffffffL & l) != 0L)
@@ -1640,8 +1728,8 @@ static private final int jjMoveNfa_1(int startState, int curPos)
                      jjstateSet[jjnewStateCnt++] = 61;
                   break;
                case 63:
-                  if (curChar == 96 && kind > 104)
-                     kind = 104;
+                  if (curChar == 96 && kind > 105)
+                     kind = 105;
                   break;
                default : break;
             }
@@ -1659,8 +1747,8 @@ static private final int jjMoveNfa_1(int startState, int curPos)
                case 14:
                   if ((jjbitVec0[i2] & l2) == 0L)
                      break;
-                  if (kind > 105)
-                     kind = 105;
+                  if (kind > 106)
+                     kind = 106;
                   jjCheckNAdd(14);
                   break;
                case 1:
@@ -1671,8 +1759,8 @@ static private final int jjMoveNfa_1(int startState, int curPos)
                case 17:
                   if ((jjbitVec0[i2] & l2) == 0L)
                      break;
-                  if (kind > 140)
-                     kind = 140;
+                  if (kind > 141)
+                     kind = 141;
                   jjCheckNAdd(17);
                   break;
                case 38:
@@ -1721,6 +1809,9 @@ static private final int jjMoveStringLiteralDfa0_3()
    switch(curChar)
    {
       case 42:
+         return jjMoveStringLiteralDfa1_3(0x40000L);
+      case 84:
+      case 116:
          return jjMoveStringLiteralDfa1_3(0x20000L);
       default :
          return 1;
@@ -1735,14 +1826,54 @@ static private final int jjMoveStringLiteralDfa1_3(long active0)
    switch(curChar)
    {
       case 47:
-         if ((active0 & 0x20000L) != 0L)
-            return jjStopAtPos(1, 17);
+         if ((active0 & 0x40000L) != 0L)
+            return jjStopAtPos(1, 18);
          break;
+      case 79:
+      case 111:
+         return jjMoveStringLiteralDfa2_3(active0, 0x20000L);
       default :
          return 2;
    }
    return 2;
 }
+static private final int jjMoveStringLiteralDfa2_3(long old0, long active0)
+{
+   if (((active0 &= old0)) == 0L)
+      return 2;
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+      return 2;
+   }
+   switch(curChar)
+   {
+      case 68:
+      case 100:
+         return jjMoveStringLiteralDfa3_3(active0, 0x20000L);
+      default :
+         return 3;
+   }
+}
+static private final int jjMoveStringLiteralDfa3_3(long old0, long active0)
+{
+   if (((active0 &= old0)) == 0L)
+      return 3;
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+      return 3;
+   }
+   switch(curChar)
+   {
+      case 79:
+      case 111:
+         if ((active0 & 0x20000L) != 0L)
+            return jjStopAtPos(3, 17);
+         break;
+      default :
+         return 4;
+   }
+   return 4;
+}
 static final int[] jjnextStates = {
    19, 20, 25, 26, 29, 30, 12, 47, 49, 50, 51, 53, 54, 38, 40, 41, 
    42, 44, 45, 34, 36, 6, 8, 9, 12, 21, 22, 12, 29, 30, 12, 38, 
@@ -1752,10 +1883,10 @@ 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, "\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, 
+"\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, "\100", "\44", "\41", "\176", "\77", 
+null, null, null, null, null, null, null, null, "\100", "\44", "\41", "\176", "\77", 
 "\72", "\174\174", "\46\46", "\53\53", "\55\55", "\53", "\55", "\52", "\57", "\46", 
 "\174", "\136", "\45", "\74\74", "\76\76", "\76\76\76", null, null, null, null, null, 
 null, null, null, null, null, null, null, null, null, null, null, "\50", "\51", 
@@ -1771,24 +1902,24 @@ public static final String[] lexStateNames = {
    "IN_MULTI_LINE_COMMENT", 
 };
 public static final int[] jjnewLexState = {
-   -1, 1, 1, 1, 0, -1, -1, -1, -1, -1, -1, 2, 2, 3, 4, 1, 0, 1, 1, -1, -1, -1, -1, -1, -1, 
+   -1, 1, 1, 1, 0, -1, -1, -1, -1, -1, -1, 2, 2, 3, 4, 1, 0, -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, -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 = {
-   0xfffffffffff0001fL, 0xffffe3e8ffffffffL, 0x1fffL, 
+   0xffffffffffe0001fL, 0xffffc7d1ffffffffL, 0x3fffL, 
 };
 static final long[] jjtoSkip = {
-   0x7ffe0L, 0x0L, 0x0L, 
+   0xfffe0L, 0x0L, 0x0L, 
 };
 static final long[] jjtoSpecial = {
-   0x7f800L, 0x0L, 0x0L, 
+   0xff800L, 0x0L, 0x0L, 
 };
 static final long[] jjtoMore = {
-   0x80000L, 0x0L, 0x0L, 
+   0x100000L, 0x0L, 0x0L, 
 };
 static protected SimpleCharStream input_stream;
 static private final int[] jjrounds = new int[64];
@@ -1906,27 +2037,27 @@ public static Token getNextToken()
          jjmatchedKind = 0x7fffffff;
          jjmatchedPos = 0;
          curPos = jjMoveStringLiteralDfa0_2();
-         if (jjmatchedPos == 0 && jjmatchedKind > 19)
+         if (jjmatchedPos == 0 && jjmatchedKind > 20)
          {
-            jjmatchedKind = 19;
+            jjmatchedKind = 20;
          }
          break;
        case 3:
          jjmatchedKind = 0x7fffffff;
          jjmatchedPos = 0;
          curPos = jjMoveStringLiteralDfa0_3();
-         if (jjmatchedPos == 0 && jjmatchedKind > 19)
+         if (jjmatchedPos == 0 && jjmatchedKind > 20)
          {
-            jjmatchedKind = 19;
+            jjmatchedKind = 20;
          }
          break;
        case 4:
          jjmatchedKind = 0x7fffffff;
          jjmatchedPos = 0;
          curPos = jjMoveStringLiteralDfa0_4();
-         if (jjmatchedPos == 0 && jjmatchedKind > 19)
+         if (jjmatchedPos == 0 && jjmatchedKind > 20)
          {
-            jjmatchedKind = 19;
+            jjmatchedKind = 20;
          }
          break;
      }
@@ -2009,6 +2140,13 @@ static void SkipLexicalActions(Token matchedToken)
             image.append(new String(input_stream.GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1))));
                    input_stream.backup(1);
          break;
+      case 17 :
+         if (image == null)
+            image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1))));
+         else
+            image.append(new String(input_stream.GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1))));
+         PHPParser.createNewTask();
+         break;
       default :
          break;
    }