SLING-11562: upgrade to sling 49
diff --git a/pom.xml b/pom.xml
index 1dd6c5c..2113399 100644
--- a/pom.xml
+++ b/pom.xml
@@ -10,35 +10,33 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.sling</groupId>
-        <artifactId>sling</artifactId>
-        <version>32</version>
+        <artifactId>sling-bundle-parent</artifactId>
+        <version>49</version>
     </parent>
 
     <artifactId>org.apache.sling.resource.filter</artifactId>
     <version>1.0.1-SNAPSHOT</version>
-    <packaging>bundle</packaging>
 
     <name>Apache Sling Resource Filter</name>
+    <description>provides a set of utilities to create and handle streams</description>
 
     <properties>
         <sling.java.version>8</sling.java.version>
     </properties>
 
+    <scm>
+        <url>https://gitbox.apache.org/repos/asf?p=sling-org-apache-sling-resource-filter.git</url>
+        <connection>scm:git:https://gitbox.apache.org/repos/asf/sling-org-apache-sling-resource-filter.git</connection>
+        <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/sling-org-apache-sling-resource-filter.git</developerConnection>
+        <tag>HEAD</tag>
+    </scm>
+
     <build>
         <plugins>
             <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <extensions>true</extensions>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.sling</groupId>
-                <artifactId>maven-sling-plugin</artifactId>
-            </plugin>
-            <plugin>
                 <groupId>org.codehaus.mojo</groupId>
                 <artifactId>javacc-maven-plugin</artifactId>
-                <version>2.6</version>
+                <version>3.0.0</version>
                 <executions>
                     <execution>
                         <id>javacc</id>
@@ -74,12 +72,22 @@
             <version>2.16.4</version>
             <scope>provided</scope>
         </dependency>
+        
+        <!-- OSGi dependencies -->
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.annotation.versioning</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.service.metatype.annotations</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.service.component.annotations</artifactId>
+            <scope>provided</scope>
+        </dependency>
     </dependencies>
-    <description>provides a set of utilities to create and handle streams</description>
-    <scm>
-        <url>https://gitbox.apache.org/repos/asf?p=sling-org-apache-sling-resource-filter.git</url>
-        <connection>scm:git:https://gitbox.apache.org/repos/asf/sling-org-apache-sling-resource-filter.git</connection>
-        <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/sling-org-apache-sling-resource-filter.git</developerConnection>
-        <tag>HEAD</tag>
-    </scm>
 </project>
diff --git a/src/main/java/org/apache/sling/resource/filter/impl/script/FilterParser.java b/src/main/java/org/apache/sling/resource/filter/impl/script/FilterParser.java
index 4ccd22a..872531b 100644
--- a/src/main/java/org/apache/sling/resource/filter/impl/script/FilterParser.java
+++ b/src/main/java/org/apache/sling/resource/filter/impl/script/FilterParser.java
@@ -1,493 +1,493 @@
-/* Generated By:JavaCC: Do not edit this line. FilterParser.java */

-package org.apache.sling.resource.filter.impl.script;

-

-import java.util.ArrayList;

-import java.util.List;

-import org.apache.sling.resource.filter.impl.node.*;

-

-public final class FilterParser implements FilterParserConstants {

-

-  final public Node parse() throws ParseException {

-  final Node node;

-    node = or();

-    jj_consume_token(0);

-    {if (true) return node;}

-    throw new Error("Missing return statement in function");

-  }

-

-  final public Node or() throws ParseException {

-  final List < Node > nodes = new ArrayList < Node > (3);

-  Node node;

-    node = and();

-    nodes.add(node);

-    label_1:

-    while (true) {

-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {

-      case OR:

-        ;

-        break;

-      default:

-        jj_la1[0] = jj_gen;

-        break label_1;

-      }

-      jj_consume_token(OR);

-      node = and();

-      nodes.add(node);

-    }

-    {if (true) return nodes.size() != 1 ? new Node(FilterParserConstants.OR, nodes) : nodes.get(0);}

-    throw new Error("Missing return statement in function");

-  }

-

-  final public Node and() throws ParseException {

-  final List < Node > nodes = new ArrayList < Node > (3);

-  Node node;

-    node = constraint();

-    nodes.add(node);

-    label_2:

-    while (true) {

-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {

-      case AND:

-        ;

-        break;

-      default:

-        jj_la1[1] = jj_gen;

-        break label_2;

-      }

-      jj_consume_token(AND);

-      node = constraint();

-      nodes.add(node);

-    }

-    {if (true) return nodes.size() != 1 ? new Node(FilterParserConstants.AND, nodes) : nodes.get(0);}

-    throw new Error("Missing return statement in function");

-  }

-

-  final public Node constraint() throws ParseException {

-  final Node node;

-    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {

-    case LPAREN:

-      node = group();

-      break;

-    case OFFSETDATETIME:

-    case DATETIME:

-    case DATE:

-    case NUMBER:

-    case STRING:

-    case NULL:

-    case BOOLEAN:

-    case DYNAMIC_ARG:

-    case FUNCTION_NAME:

-    case PROPERTY:

-      node = comparison();

-      break;

-    default:

-      jj_la1[2] = jj_gen;

-      jj_consume_token(-1);

-      throw new ParseException();

-    }

-    {if (true) return node;}

-    throw new Error("Missing return statement in function");

-  }

-

-  final public Node group() throws ParseException {

-  final Node node;

-    jj_consume_token(LPAREN);

-    node = or();

-    jj_consume_token(RPAREN);

-    {if (true) return node;}

-    throw new Error("Missing return statement in function");

-  }

-

-  final public Node comparison() throws ParseException {

-  Node leftValue;

-  Token op;

-  Node rightValue;

-    leftValue = argument();

-    op = comparisonValue();

-    rightValue = argument();

-    {if (true) return new Node(op.kind, op.image, leftValue, rightValue);}

-    throw new Error("Missing return statement in function");

-  }

-

-  final public Token comparisonValue() throws ParseException {

-    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {

-    case EQUAL:

-      jj_consume_token(EQUAL);

-      break;

-    case NOT_EQUAL:

-      jj_consume_token(NOT_EQUAL);

-      break;

-    case GREATER_THAN:

-      jj_consume_token(GREATER_THAN);

-      break;

-    case GREATER_THAN_OR_EQUAL:

-      jj_consume_token(GREATER_THAN_OR_EQUAL);

-      break;

-    case LESS_THAN:

-      jj_consume_token(LESS_THAN);

-      break;

-    case LESS_THAN_OR_EQUAL:

-      jj_consume_token(LESS_THAN_OR_EQUAL);

-      break;

-    case LIKE:

-      jj_consume_token(LIKE);

-      break;

-    case LIKE_NOT:

-      jj_consume_token(LIKE_NOT);

-      break;

-    case CONTAINS:

-      jj_consume_token(CONTAINS);

-      break;

-    case CONTAINS_NOT:

-      jj_consume_token(CONTAINS_NOT);

-      break;

-    case CONTAINS_ANY:

-      jj_consume_token(CONTAINS_ANY);

-      break;

-    case CONTAINS_NOT_ANY:

-      jj_consume_token(CONTAINS_NOT_ANY);

-      break;

-    case IN:

-      jj_consume_token(IN);

-      break;

-    case NOT_IN:

-      jj_consume_token(NOT_IN);

-      break;

-    default:

-      jj_la1[3] = jj_gen;

-      jj_consume_token(-1);

-      throw new ParseException();

-    }

-    {if (true) return token;}

-    throw new Error("Missing return statement in function");

-  }

-

-  final public List < Node > Arguments() throws ParseException {

-  Object value = new ArrayList();

-    jj_consume_token(LPAREN);

-    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {

-    case OFFSETDATETIME:

-    case DATETIME:

-    case DATE:

-    case NUMBER:

-    case STRING:

-    case NULL:

-    case BOOLEAN:

-    case DYNAMIC_ARG:

-    case FUNCTION_NAME:

-    case PROPERTY:

-      value = commaSepArguments();

-      break;

-    default:

-      jj_la1[4] = jj_gen;

-      ;

-    }

-    jj_consume_token(RPAREN);

-    {if (true) return (List) value;}

-    throw new Error("Missing return statement in function");

-  }

-

-  final public List < Node > commaSepArguments() throws ParseException {

-  final List < Node > list = new ArrayList < Node > (3);

-  Node arg;

-    arg = argument();

-    list.add(arg);

-    label_3:

-    while (true) {

-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {

-      case COMMA:

-        ;

-        break;

-      default:

-        jj_la1[5] = jj_gen;

-        break label_3;

-      }

-      jj_consume_token(COMMA);

-      arg = argument();

-      list.add(arg);

-    }

-    {if (true) return list;}

-    throw new Error("Missing return statement in function");

-  }

-

-  final public Node argument() throws ParseException {

-  Node selector = null;

-    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {

-    case OFFSETDATETIME:

-    case DATETIME:

-    case DATE:

-    case NUMBER:

-    case STRING:

-    case NULL:

-    case BOOLEAN:

-      selector = literal();

-      break;

-    case PROPERTY:

-      selector = property();

-      break;

-    case DYNAMIC_ARG:

-      selector = dynamicArg();

-      break;

-    case FUNCTION_NAME:

-      selector = function();

-      break;

-    default:

-      jj_la1[6] = jj_gen;

-      jj_consume_token(-1);

-      throw new ParseException();

-    }

-    {if (true) return selector;}

-    throw new Error("Missing return statement in function");

-  }

-

-  final public Node function() throws ParseException {

-  String functionName = null;

-  List < Node > children = null;

-    jj_consume_token(FUNCTION_NAME);

-    functionName = token.image;

-    jj_consume_token(LPAREN);

-    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {

-    case OFFSETDATETIME:

-    case DATETIME:

-    case DATE:

-    case NUMBER:

-    case STRING:

-    case NULL:

-    case BOOLEAN:

-    case DYNAMIC_ARG:

-    case FUNCTION_NAME:

-    case PROPERTY:

-      children = commaSepArguments();

-      break;

-    default:

-      jj_la1[7] = jj_gen;

-      ;

-    }

-    jj_consume_token(RPAREN);

-    {if (true) return new Node(FilterParserConstants.FUNCTION_NAME, functionName, children);}

-    throw new Error("Missing return statement in function");

-  }

-

-  final public Node dynamicArg() throws ParseException {

-  String functionName = null;

-    jj_consume_token(DYNAMIC_ARG);

-    jj_consume_token(FUNCTION_NAME);

-    functionName = token.image;

-    {if (true) return new Node(FilterParserConstants.DYNAMIC_ARG, functionName);}

-    throw new Error("Missing return statement in function");

-  }

-

-  final public Node literal() throws ParseException {

-    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {

-    case STRING:

-      jj_consume_token(STRING);

-      break;

-    case NUMBER:

-      jj_consume_token(NUMBER);

-      break;

-    case NULL:

-      jj_consume_token(NULL);

-      break;

-    case BOOLEAN:

-      jj_consume_token(BOOLEAN);

-      break;

-    case DATE:

-      jj_consume_token(DATE);

-      break;

-    case DATETIME:

-      jj_consume_token(DATETIME);

-      break;

-    case OFFSETDATETIME:

-      jj_consume_token(OFFSETDATETIME);

-      break;

-    default:

-      jj_la1[8] = jj_gen;

-      jj_consume_token(-1);

-      throw new ParseException();

-    }

-    {if (true) return new Node(token.kind, token.image);}

-    throw new Error("Missing return statement in function");

-  }

-

-  final public Node property() throws ParseException {

-    jj_consume_token(PROPERTY);

-    {if (true) return new Node(token.kind, token.image);}

-    throw new Error("Missing return statement in function");

-  }

-

-  /** Generated Token Manager. */

-  public FilterParserTokenManager token_source;

-  SimpleCharStream jj_input_stream;

-  /** Current token. */

-  public Token token;

-  /** Next token. */

-  public Token jj_nt;

-  private int jj_ntk;

-  private int jj_gen;

-  final private int[] jj_la1 = new int[9];

-  static private int[] jj_la1_0;

-  static private int[] jj_la1_1;

-  static {

-      jj_la1_init_0();

-      jj_la1_init_1();

-   }

-   private static void jj_la1_init_0() {

-      jj_la1_0 = new int[] {0x400000,0x200000,0x9843c00,0xf0000000,0x8843c00,0x4000000,0x8843c00,0x8843c00,0x8843c00,};

-   }

-   private static void jj_la1_init_1() {

-      jj_la1_1 = new int[] {0x0,0x0,0x1c00,0x3ff,0x1c00,0x0,0x1c00,0x1c00,0x0,};

-   }

-

-  /** Constructor with InputStream. */

-  public FilterParser(java.io.InputStream stream) {

-     this(stream, null);

-  }

-  /** Constructor with InputStream and supplied encoding */

-  public FilterParser(java.io.InputStream stream, String encoding) {

-    try { jj_input_stream = new SimpleCharStream(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }

-    token_source = new FilterParserTokenManager(jj_input_stream);

-    token = new Token();

-    jj_ntk = -1;

-    jj_gen = 0;

-    for (int i = 0; i < 9; i++) jj_la1[i] = -1;

-  }

-

-  /** Reinitialise. */

-  public void ReInit(java.io.InputStream stream) {

-     ReInit(stream, null);

-  }

-  /** Reinitialise. */

-  public void ReInit(java.io.InputStream stream, String encoding) {

-    try { jj_input_stream.ReInit(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }

-    token_source.ReInit(jj_input_stream);

-    token = new Token();

-    jj_ntk = -1;

-    jj_gen = 0;

-    for (int i = 0; i < 9; i++) jj_la1[i] = -1;

-  }

-

-  /** Constructor. */

-  public FilterParser(java.io.Reader stream) {

-    jj_input_stream = new SimpleCharStream(stream, 1, 1);

-    token_source = new FilterParserTokenManager(jj_input_stream);

-    token = new Token();

-    jj_ntk = -1;

-    jj_gen = 0;

-    for (int i = 0; i < 9; i++) jj_la1[i] = -1;

-  }

-

-  /** Reinitialise. */

-  public void ReInit(java.io.Reader stream) {

-    jj_input_stream.ReInit(stream, 1, 1);

-    token_source.ReInit(jj_input_stream);

-    token = new Token();

-    jj_ntk = -1;

-    jj_gen = 0;

-    for (int i = 0; i < 9; i++) jj_la1[i] = -1;

-  }

-

-  /** Constructor with generated Token Manager. */

-  public FilterParser(FilterParserTokenManager tm) {

-    token_source = tm;

-    token = new Token();

-    jj_ntk = -1;

-    jj_gen = 0;

-    for (int i = 0; i < 9; i++) jj_la1[i] = -1;

-  }

-

-  /** Reinitialise. */

-  public void ReInit(FilterParserTokenManager tm) {

-    token_source = tm;

-    token = new Token();

-    jj_ntk = -1;

-    jj_gen = 0;

-    for (int i = 0; i < 9; i++) jj_la1[i] = -1;

-  }

-

-  private Token jj_consume_token(int kind) throws ParseException {

-    Token oldToken;

-    if ((oldToken = token).next != null) token = token.next;

-    else token = token.next = token_source.getNextToken();

-    jj_ntk = -1;

-    if (token.kind == kind) {

-      jj_gen++;

-      return token;

-    }

-    token = oldToken;

-    jj_kind = kind;

-    throw generateParseException();

-  }

-

-

-/** Get the next Token. */

-  final public Token getNextToken() {

-    if (token.next != null) token = token.next;

-    else token = token.next = token_source.getNextToken();

-    jj_ntk = -1;

-    jj_gen++;

-    return token;

-  }

-

-/** Get the specific Token. */

-  final public Token getToken(int index) {

-    Token t = token;

-    for (int i = 0; i < index; i++) {

-      if (t.next != null) t = t.next;

-      else t = t.next = token_source.getNextToken();

-    }

-    return t;

-  }

-

-  private int jj_ntk() {

-    if ((jj_nt=token.next) == null)

-      return (jj_ntk = (token.next=token_source.getNextToken()).kind);

-    else

-      return (jj_ntk = jj_nt.kind);

-  }

-

-  private java.util.List<int[]> jj_expentries = new java.util.ArrayList<int[]>();

-  private int[] jj_expentry;

-  private int jj_kind = -1;

-

-  /** Generate ParseException. */

-  public ParseException generateParseException() {

-    jj_expentries.clear();

-    boolean[] la1tokens = new boolean[46];

-    if (jj_kind >= 0) {

-      la1tokens[jj_kind] = true;

-      jj_kind = -1;

-    }

-    for (int i = 0; i < 9; i++) {

-      if (jj_la1[i] == jj_gen) {

-        for (int j = 0; j < 32; j++) {

-          if ((jj_la1_0[i] & (1<<j)) != 0) {

-            la1tokens[j] = true;

-          }

-          if ((jj_la1_1[i] & (1<<j)) != 0) {

-            la1tokens[32+j] = true;

-          }

-        }

-      }

-    }

-    for (int i = 0; i < 46; i++) {

-      if (la1tokens[i]) {

-        jj_expentry = new int[1];

-        jj_expentry[0] = i;

-        jj_expentries.add(jj_expentry);

-      }

-    }

-    int[][] exptokseq = new int[jj_expentries.size()][];

-    for (int i = 0; i < jj_expentries.size(); i++) {

-      exptokseq[i] = jj_expentries.get(i);

-    }

-    return new ParseException(token, exptokseq, tokenImage);

-  }

-

-  /** Enable tracing. */

-  final public void enable_tracing() {

-  }

-

-  /** Disable tracing. */

-  final public void disable_tracing() {

-  }

-

-}

+/* Generated By:JavaCC: Do not edit this line. FilterParser.java */
+package org.apache.sling.resource.filter.impl.script;
+
+import java.util.ArrayList;
+import java.util.List;
+import org.apache.sling.resource.filter.impl.node.*;
+
+public final class FilterParser implements FilterParserConstants {
+
+  final public Node parse() throws ParseException {
+  final Node node;
+    node = or();
+    jj_consume_token(0);
+    {if (true) return node;}
+    throw new Error("Missing return statement in function");
+  }
+
+  final public Node or() throws ParseException {
+  final List < Node > nodes = new ArrayList < Node > (3);
+  Node node;
+    node = and();
+    nodes.add(node);
+    label_1:
+    while (true) {
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case OR:
+        ;
+        break;
+      default:
+        jj_la1[0] = jj_gen;
+        break label_1;
+      }
+      jj_consume_token(OR);
+      node = and();
+      nodes.add(node);
+    }
+    {if (true) return nodes.size() != 1 ? new Node(FilterParserConstants.OR, nodes) : nodes.get(0);}
+    throw new Error("Missing return statement in function");
+  }
+
+  final public Node and() throws ParseException {
+  final List < Node > nodes = new ArrayList < Node > (3);
+  Node node;
+    node = constraint();
+    nodes.add(node);
+    label_2:
+    while (true) {
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case AND:
+        ;
+        break;
+      default:
+        jj_la1[1] = jj_gen;
+        break label_2;
+      }
+      jj_consume_token(AND);
+      node = constraint();
+      nodes.add(node);
+    }
+    {if (true) return nodes.size() != 1 ? new Node(FilterParserConstants.AND, nodes) : nodes.get(0);}
+    throw new Error("Missing return statement in function");
+  }
+
+  final public Node constraint() throws ParseException {
+  final Node node;
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case LPAREN:
+      node = group();
+      break;
+    case OFFSETDATETIME:
+    case DATETIME:
+    case DATE:
+    case NUMBER:
+    case STRING:
+    case NULL:
+    case BOOLEAN:
+    case DYNAMIC_ARG:
+    case FUNCTION_NAME:
+    case PROPERTY:
+      node = comparison();
+      break;
+    default:
+      jj_la1[2] = jj_gen;
+      jj_consume_token(-1);
+      throw new ParseException();
+    }
+    {if (true) return node;}
+    throw new Error("Missing return statement in function");
+  }
+
+  final public Node group() throws ParseException {
+  final Node node;
+    jj_consume_token(LPAREN);
+    node = or();
+    jj_consume_token(RPAREN);
+    {if (true) return node;}
+    throw new Error("Missing return statement in function");
+  }
+
+  final public Node comparison() throws ParseException {
+  Node leftValue;
+  Token op;
+  Node rightValue;
+    leftValue = argument();
+    op = comparisonValue();
+    rightValue = argument();
+    {if (true) return new Node(op.kind, op.image, leftValue, rightValue);}
+    throw new Error("Missing return statement in function");
+  }
+
+  final public Token comparisonValue() throws ParseException {
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case EQUAL:
+      jj_consume_token(EQUAL);
+      break;
+    case NOT_EQUAL:
+      jj_consume_token(NOT_EQUAL);
+      break;
+    case GREATER_THAN:
+      jj_consume_token(GREATER_THAN);
+      break;
+    case GREATER_THAN_OR_EQUAL:
+      jj_consume_token(GREATER_THAN_OR_EQUAL);
+      break;
+    case LESS_THAN:
+      jj_consume_token(LESS_THAN);
+      break;
+    case LESS_THAN_OR_EQUAL:
+      jj_consume_token(LESS_THAN_OR_EQUAL);
+      break;
+    case LIKE:
+      jj_consume_token(LIKE);
+      break;
+    case LIKE_NOT:
+      jj_consume_token(LIKE_NOT);
+      break;
+    case CONTAINS:
+      jj_consume_token(CONTAINS);
+      break;
+    case CONTAINS_NOT:
+      jj_consume_token(CONTAINS_NOT);
+      break;
+    case CONTAINS_ANY:
+      jj_consume_token(CONTAINS_ANY);
+      break;
+    case CONTAINS_NOT_ANY:
+      jj_consume_token(CONTAINS_NOT_ANY);
+      break;
+    case IN:
+      jj_consume_token(IN);
+      break;
+    case NOT_IN:
+      jj_consume_token(NOT_IN);
+      break;
+    default:
+      jj_la1[3] = jj_gen;
+      jj_consume_token(-1);
+      throw new ParseException();
+    }
+    {if (true) return token;}
+    throw new Error("Missing return statement in function");
+  }
+
+  final public List < Node > Arguments() throws ParseException {
+  Object value = new ArrayList();
+    jj_consume_token(LPAREN);
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case OFFSETDATETIME:
+    case DATETIME:
+    case DATE:
+    case NUMBER:
+    case STRING:
+    case NULL:
+    case BOOLEAN:
+    case DYNAMIC_ARG:
+    case FUNCTION_NAME:
+    case PROPERTY:
+      value = commaSepArguments();
+      break;
+    default:
+      jj_la1[4] = jj_gen;
+      ;
+    }
+    jj_consume_token(RPAREN);
+    {if (true) return (List) value;}
+    throw new Error("Missing return statement in function");
+  }
+
+  final public List < Node > commaSepArguments() throws ParseException {
+  final List < Node > list = new ArrayList < Node > (3);
+  Node arg;
+    arg = argument();
+    list.add(arg);
+    label_3:
+    while (true) {
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case COMMA:
+        ;
+        break;
+      default:
+        jj_la1[5] = jj_gen;
+        break label_3;
+      }
+      jj_consume_token(COMMA);
+      arg = argument();
+      list.add(arg);
+    }
+    {if (true) return list;}
+    throw new Error("Missing return statement in function");
+  }
+
+  final public Node argument() throws ParseException {
+  Node selector = null;
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case OFFSETDATETIME:
+    case DATETIME:
+    case DATE:
+    case NUMBER:
+    case STRING:
+    case NULL:
+    case BOOLEAN:
+      selector = literal();
+      break;
+    case PROPERTY:
+      selector = property();
+      break;
+    case DYNAMIC_ARG:
+      selector = dynamicArg();
+      break;
+    case FUNCTION_NAME:
+      selector = function();
+      break;
+    default:
+      jj_la1[6] = jj_gen;
+      jj_consume_token(-1);
+      throw new ParseException();
+    }
+    {if (true) return selector;}
+    throw new Error("Missing return statement in function");
+  }
+
+  final public Node function() throws ParseException {
+  String functionName = null;
+  List < Node > children = null;
+    jj_consume_token(FUNCTION_NAME);
+    functionName = token.image;
+    jj_consume_token(LPAREN);
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case OFFSETDATETIME:
+    case DATETIME:
+    case DATE:
+    case NUMBER:
+    case STRING:
+    case NULL:
+    case BOOLEAN:
+    case DYNAMIC_ARG:
+    case FUNCTION_NAME:
+    case PROPERTY:
+      children = commaSepArguments();
+      break;
+    default:
+      jj_la1[7] = jj_gen;
+      ;
+    }
+    jj_consume_token(RPAREN);
+    {if (true) return new Node(FilterParserConstants.FUNCTION_NAME, functionName, children);}
+    throw new Error("Missing return statement in function");
+  }
+
+  final public Node dynamicArg() throws ParseException {
+  String functionName = null;
+    jj_consume_token(DYNAMIC_ARG);
+    jj_consume_token(FUNCTION_NAME);
+    functionName = token.image;
+    {if (true) return new Node(FilterParserConstants.DYNAMIC_ARG, functionName);}
+    throw new Error("Missing return statement in function");
+  }
+
+  final public Node literal() throws ParseException {
+    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+    case STRING:
+      jj_consume_token(STRING);
+      break;
+    case NUMBER:
+      jj_consume_token(NUMBER);
+      break;
+    case NULL:
+      jj_consume_token(NULL);
+      break;
+    case BOOLEAN:
+      jj_consume_token(BOOLEAN);
+      break;
+    case DATE:
+      jj_consume_token(DATE);
+      break;
+    case DATETIME:
+      jj_consume_token(DATETIME);
+      break;
+    case OFFSETDATETIME:
+      jj_consume_token(OFFSETDATETIME);
+      break;
+    default:
+      jj_la1[8] = jj_gen;
+      jj_consume_token(-1);
+      throw new ParseException();
+    }
+    {if (true) return new Node(token.kind, token.image);}
+    throw new Error("Missing return statement in function");
+  }
+
+  final public Node property() throws ParseException {
+    jj_consume_token(PROPERTY);
+    {if (true) return new Node(token.kind, token.image);}
+    throw new Error("Missing return statement in function");
+  }
+
+  /** Generated Token Manager. */
+  public FilterParserTokenManager token_source;
+  SimpleCharStream jj_input_stream;
+  /** Current token. */
+  public Token token;
+  /** Next token. */
+  public Token jj_nt;
+  private int jj_ntk;
+  private int jj_gen;
+  final private int[] jj_la1 = new int[9];
+  static private int[] jj_la1_0;
+  static private int[] jj_la1_1;
+  static {
+      jj_la1_init_0();
+      jj_la1_init_1();
+   }
+   private static void jj_la1_init_0() {
+      jj_la1_0 = new int[] {0x400000,0x200000,0x9843c00,0xf0000000,0x8843c00,0x4000000,0x8843c00,0x8843c00,0x8843c00,};
+   }
+   private static void jj_la1_init_1() {
+      jj_la1_1 = new int[] {0x0,0x0,0x1c00,0x3ff,0x1c00,0x0,0x1c00,0x1c00,0x0,};
+   }
+
+  /** Constructor with InputStream. */
+  public FilterParser(java.io.InputStream stream) {
+     this(stream, null);
+  }
+  /** Constructor with InputStream and supplied encoding */
+  public FilterParser(java.io.InputStream stream, String encoding) {
+    try { jj_input_stream = new SimpleCharStream(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }
+    token_source = new FilterParserTokenManager(jj_input_stream);
+    token = new Token();
+    jj_ntk = -1;
+    jj_gen = 0;
+    for (int i = 0; i < 9; i++) jj_la1[i] = -1;
+  }
+
+  /** Reinitialise. */
+  public void ReInit(java.io.InputStream stream) {
+     ReInit(stream, null);
+  }
+  /** Reinitialise. */
+  public void ReInit(java.io.InputStream stream, String encoding) {
+    try { jj_input_stream.ReInit(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }
+    token_source.ReInit(jj_input_stream);
+    token = new Token();
+    jj_ntk = -1;
+    jj_gen = 0;
+    for (int i = 0; i < 9; i++) jj_la1[i] = -1;
+  }
+
+  /** Constructor. */
+  public FilterParser(java.io.Reader stream) {
+    jj_input_stream = new SimpleCharStream(stream, 1, 1);
+    token_source = new FilterParserTokenManager(jj_input_stream);
+    token = new Token();
+    jj_ntk = -1;
+    jj_gen = 0;
+    for (int i = 0; i < 9; i++) jj_la1[i] = -1;
+  }
+
+  /** Reinitialise. */
+  public void ReInit(java.io.Reader stream) {
+    jj_input_stream.ReInit(stream, 1, 1);
+    token_source.ReInit(jj_input_stream);
+    token = new Token();
+    jj_ntk = -1;
+    jj_gen = 0;
+    for (int i = 0; i < 9; i++) jj_la1[i] = -1;
+  }
+
+  /** Constructor with generated Token Manager. */
+  public FilterParser(FilterParserTokenManager tm) {
+    token_source = tm;
+    token = new Token();
+    jj_ntk = -1;
+    jj_gen = 0;
+    for (int i = 0; i < 9; i++) jj_la1[i] = -1;
+  }
+
+  /** Reinitialise. */
+  public void ReInit(FilterParserTokenManager tm) {
+    token_source = tm;
+    token = new Token();
+    jj_ntk = -1;
+    jj_gen = 0;
+    for (int i = 0; i < 9; i++) jj_la1[i] = -1;
+  }
+
+  private Token jj_consume_token(int kind) throws ParseException {
+    Token oldToken;
+    if ((oldToken = token).next != null) token = token.next;
+    else token = token.next = token_source.getNextToken();
+    jj_ntk = -1;
+    if (token.kind == kind) {
+      jj_gen++;
+      return token;
+    }
+    token = oldToken;
+    jj_kind = kind;
+    throw generateParseException();
+  }
+
+
+/** Get the next Token. */
+  final public Token getNextToken() {
+    if (token.next != null) token = token.next;
+    else token = token.next = token_source.getNextToken();
+    jj_ntk = -1;
+    jj_gen++;
+    return token;
+  }
+
+/** Get the specific Token. */
+  final public Token getToken(int index) {
+    Token t = token;
+    for (int i = 0; i < index; i++) {
+      if (t.next != null) t = t.next;
+      else t = t.next = token_source.getNextToken();
+    }
+    return t;
+  }
+
+  private int jj_ntk() {
+    if ((jj_nt=token.next) == null)
+      return (jj_ntk = (token.next=token_source.getNextToken()).kind);
+    else
+      return (jj_ntk = jj_nt.kind);
+  }
+
+  private java.util.List<int[]> jj_expentries = new java.util.ArrayList<int[]>();
+  private int[] jj_expentry;
+  private int jj_kind = -1;
+
+  /** Generate ParseException. */
+  public ParseException generateParseException() {
+    jj_expentries.clear();
+    boolean[] la1tokens = new boolean[46];
+    if (jj_kind >= 0) {
+      la1tokens[jj_kind] = true;
+      jj_kind = -1;
+    }
+    for (int i = 0; i < 9; i++) {
+      if (jj_la1[i] == jj_gen) {
+        for (int j = 0; j < 32; j++) {
+          if ((jj_la1_0[i] & (1<<j)) != 0) {
+            la1tokens[j] = true;
+          }
+          if ((jj_la1_1[i] & (1<<j)) != 0) {
+            la1tokens[32+j] = true;
+          }
+        }
+      }
+    }
+    for (int i = 0; i < 46; i++) {
+      if (la1tokens[i]) {
+        jj_expentry = new int[1];
+        jj_expentry[0] = i;
+        jj_expentries.add(jj_expentry);
+      }
+    }
+    int[][] exptokseq = new int[jj_expentries.size()][];
+    for (int i = 0; i < jj_expentries.size(); i++) {
+      exptokseq[i] = jj_expentries.get(i);
+    }
+    return new ParseException(token, exptokseq, tokenImage);
+  }
+
+  /** Enable tracing. */
+  final public void enable_tracing() {
+  }
+
+  /** Disable tracing. */
+  final public void disable_tracing() {
+  }
+
+}
diff --git a/src/main/java/org/apache/sling/resource/filter/impl/script/FilterParserConstants.java b/src/main/java/org/apache/sling/resource/filter/impl/script/FilterParserConstants.java
index 4d34acf..d8e2b7d 100644
--- a/src/main/java/org/apache/sling/resource/filter/impl/script/FilterParserConstants.java
+++ b/src/main/java/org/apache/sling/resource/filter/impl/script/FilterParserConstants.java
@@ -1,153 +1,153 @@
-/* Generated By:JavaCC: Do not edit this line. FilterParserConstants.java */

-package org.apache.sling.resource.filter.impl.script;

-

-

-/**

- * Token literal values and constants.

- * Generated by org.javacc.parser.OtherFilesGen#start()

- */

-public interface FilterParserConstants {

-

-  /** End of File. */

-  int EOF = 0;

-  /** RegularExpression Id. */

-  int PLUS = 3;

-  /** RegularExpression Id. */

-  int MINUS = 4;

-  /** RegularExpression Id. */

-  int DIGIT = 5;

-  /** RegularExpression Id. */

-  int EXP = 6;

-  /** RegularExpression Id. */

-  int OFFSET = 7;

-  /** RegularExpression Id. */

-  int YYYYMMDD = 8;

-  /** RegularExpression Id. */

-  int TIME = 9;

-  /** RegularExpression Id. */

-  int OFFSETDATETIME = 10;

-  /** RegularExpression Id. */

-  int DATETIME = 11;

-  /** RegularExpression Id. */

-  int DATE = 12;

-  /** RegularExpression Id. */

-  int NUMBER = 13;

-  /** RegularExpression Id. */

-  int INTEGER = 14;

-  /** RegularExpression Id. */

-  int FRACTIONAL_DIGITS = 15;

-  /** RegularExpression Id. */

-  int EXPONENT = 16;

-  /** RegularExpression Id. */

-  int DIGITS = 17;

-  /** RegularExpression Id. */

-  int STRING = 18;

-  /** RegularExpression Id. */

-  int SQUOTE = 19;

-  /** RegularExpression Id. */

-  int DQUOTE = 20;

-  /** RegularExpression Id. */

-  int AND = 21;

-  /** RegularExpression Id. */

-  int OR = 22;

-  /** RegularExpression Id. */

-  int NULL = 23;

-  /** RegularExpression Id. */

-  int LPAREN = 24;

-  /** RegularExpression Id. */

-  int RPAREN = 25;

-  /** RegularExpression Id. */

-  int COMMA = 26;

-  /** RegularExpression Id. */

-  int BOOLEAN = 27;

-  /** RegularExpression Id. */

-  int EQUAL = 28;

-  /** RegularExpression Id. */

-  int NOT_EQUAL = 29;

-  /** RegularExpression Id. */

-  int GREATER_THAN = 30;

-  /** RegularExpression Id. */

-  int GREATER_THAN_OR_EQUAL = 31;

-  /** RegularExpression Id. */

-  int LESS_THAN = 32;

-  /** RegularExpression Id. */

-  int LESS_THAN_OR_EQUAL = 33;

-  /** RegularExpression Id. */

-  int LIKE = 34;

-  /** RegularExpression Id. */

-  int LIKE_NOT = 35;

-  /** RegularExpression Id. */

-  int CONTAINS = 36;

-  /** RegularExpression Id. */

-  int CONTAINS_NOT = 37;

-  /** RegularExpression Id. */

-  int CONTAINS_ANY = 38;

-  /** RegularExpression Id. */

-  int CONTAINS_NOT_ANY = 39;

-  /** RegularExpression Id. */

-  int IN = 40;

-  /** RegularExpression Id. */

-  int NOT_IN = 41;

-  /** RegularExpression Id. */

-  int DYNAMIC_ARG = 42;

-  /** RegularExpression Id. */

-  int FUNCTION_NAME = 43;

-  /** RegularExpression Id. */

-  int PROPERTY = 44;

-  /** RegularExpression Id. */

-  int UNKNOWN = 45;

-

-  /** Lexical state. */

-  int DEFAULT = 0;

-

-  /** Literal token values. */

-  String[] tokenImage = {

-    "<EOF>",

-    "\" \"",

-    "\"\\t\"",

-    "\"+\"",

-    "\"-\"",

-    "<DIGIT>",

-    "<EXP>",

-    "<OFFSET>",

-    "<YYYYMMDD>",

-    "<TIME>",

-    "<OFFSETDATETIME>",

-    "<DATETIME>",

-    "<DATE>",

-    "<NUMBER>",

-    "<INTEGER>",

-    "<FRACTIONAL_DIGITS>",

-    "<EXPONENT>",

-    "<DIGITS>",

-    "<STRING>",

-    "<SQUOTE>",

-    "<DQUOTE>",

-    "<AND>",

-    "<OR>",

-    "\"null\"",

-    "\"(\"",

-    "\")\"",

-    "\",\"",

-    "<BOOLEAN>",

-    "<EQUAL>",

-    "<NOT_EQUAL>",

-    "<GREATER_THAN>",

-    "\">=\"",

-    "<LESS_THAN>",

-    "\"<=\"",

-    "<LIKE>",

-    "\"not like\"",

-    "\"contains\"",

-    "\"contains not\"",

-    "\"contains any\"",

-    "\"contains not any\"",

-    "<IN>",

-    "\"not in\"",

-    "\"$\"",

-    "<FUNCTION_NAME>",

-    "<PROPERTY>",

-    "<UNKNOWN>",

-  };

-

-}

+/* Generated By:JavaCC: Do not edit this line. FilterParserConstants.java */
+package org.apache.sling.resource.filter.impl.script;
+
+
+/**
+ * Token literal values and constants.
+ * Generated by org.javacc.parser.OtherFilesGen#start()
+ */
+public interface FilterParserConstants {
+
+  /** End of File. */
+  int EOF = 0;
+  /** RegularExpression Id. */
+  int PLUS = 3;
+  /** RegularExpression Id. */
+  int MINUS = 4;
+  /** RegularExpression Id. */
+  int DIGIT = 5;
+  /** RegularExpression Id. */
+  int EXP = 6;
+  /** RegularExpression Id. */
+  int OFFSET = 7;
+  /** RegularExpression Id. */
+  int YYYYMMDD = 8;
+  /** RegularExpression Id. */
+  int TIME = 9;
+  /** RegularExpression Id. */
+  int OFFSETDATETIME = 10;
+  /** RegularExpression Id. */
+  int DATETIME = 11;
+  /** RegularExpression Id. */
+  int DATE = 12;
+  /** RegularExpression Id. */
+  int NUMBER = 13;
+  /** RegularExpression Id. */
+  int INTEGER = 14;
+  /** RegularExpression Id. */
+  int FRACTIONAL_DIGITS = 15;
+  /** RegularExpression Id. */
+  int EXPONENT = 16;
+  /** RegularExpression Id. */
+  int DIGITS = 17;
+  /** RegularExpression Id. */
+  int STRING = 18;
+  /** RegularExpression Id. */
+  int SQUOTE = 19;
+  /** RegularExpression Id. */
+  int DQUOTE = 20;
+  /** RegularExpression Id. */
+  int AND = 21;
+  /** RegularExpression Id. */
+  int OR = 22;
+  /** RegularExpression Id. */
+  int NULL = 23;
+  /** RegularExpression Id. */
+  int LPAREN = 24;
+  /** RegularExpression Id. */
+  int RPAREN = 25;
+  /** RegularExpression Id. */
+  int COMMA = 26;
+  /** RegularExpression Id. */
+  int BOOLEAN = 27;
+  /** RegularExpression Id. */
+  int EQUAL = 28;
+  /** RegularExpression Id. */
+  int NOT_EQUAL = 29;
+  /** RegularExpression Id. */
+  int GREATER_THAN = 30;
+  /** RegularExpression Id. */
+  int GREATER_THAN_OR_EQUAL = 31;
+  /** RegularExpression Id. */
+  int LESS_THAN = 32;
+  /** RegularExpression Id. */
+  int LESS_THAN_OR_EQUAL = 33;
+  /** RegularExpression Id. */
+  int LIKE = 34;
+  /** RegularExpression Id. */
+  int LIKE_NOT = 35;
+  /** RegularExpression Id. */
+  int CONTAINS = 36;
+  /** RegularExpression Id. */
+  int CONTAINS_NOT = 37;
+  /** RegularExpression Id. */
+  int CONTAINS_ANY = 38;
+  /** RegularExpression Id. */
+  int CONTAINS_NOT_ANY = 39;
+  /** RegularExpression Id. */
+  int IN = 40;
+  /** RegularExpression Id. */
+  int NOT_IN = 41;
+  /** RegularExpression Id. */
+  int DYNAMIC_ARG = 42;
+  /** RegularExpression Id. */
+  int FUNCTION_NAME = 43;
+  /** RegularExpression Id. */
+  int PROPERTY = 44;
+  /** RegularExpression Id. */
+  int UNKNOWN = 45;
+
+  /** Lexical state. */
+  int DEFAULT = 0;
+
+  /** Literal token values. */
+  String[] tokenImage = {
+    "<EOF>",
+    "\" \"",
+    "\"\\t\"",
+    "\"+\"",
+    "\"-\"",
+    "<DIGIT>",
+    "<EXP>",
+    "<OFFSET>",
+    "<YYYYMMDD>",
+    "<TIME>",
+    "<OFFSETDATETIME>",
+    "<DATETIME>",
+    "<DATE>",
+    "<NUMBER>",
+    "<INTEGER>",
+    "<FRACTIONAL_DIGITS>",
+    "<EXPONENT>",
+    "<DIGITS>",
+    "<STRING>",
+    "<SQUOTE>",
+    "<DQUOTE>",
+    "<AND>",
+    "<OR>",
+    "\"null\"",
+    "\"(\"",
+    "\")\"",
+    "\",\"",
+    "<BOOLEAN>",
+    "<EQUAL>",
+    "<NOT_EQUAL>",
+    "<GREATER_THAN>",
+    "\">=\"",
+    "<LESS_THAN>",
+    "\"<=\"",
+    "<LIKE>",
+    "\"not like\"",
+    "\"contains\"",
+    "\"contains not\"",
+    "\"contains any\"",
+    "\"contains not any\"",
+    "<IN>",
+    "\"not in\"",
+    "\"$\"",
+    "<FUNCTION_NAME>",
+    "<PROPERTY>",
+    "<UNKNOWN>",
+  };
+
+}
diff --git a/src/main/java/org/apache/sling/resource/filter/impl/script/FilterParserTokenManager.java b/src/main/java/org/apache/sling/resource/filter/impl/script/FilterParserTokenManager.java
index 6f18c5b..e1899cd 100644
--- a/src/main/java/org/apache/sling/resource/filter/impl/script/FilterParserTokenManager.java
+++ b/src/main/java/org/apache/sling/resource/filter/impl/script/FilterParserTokenManager.java
@@ -1,1482 +1,1482 @@
-/* Generated By:JavaCC: Do not edit this line. FilterParserTokenManager.java */

-package org.apache.sling.resource.filter.impl.script;

-import java.util.ArrayList;

-import java.util.List;

-import org.apache.sling.resource.filter.impl.node.*;

-

-/** Token Manager. */

-public class FilterParserTokenManager implements FilterParserConstants

-{

-

-  /** Debug output. */

-  public  java.io.PrintStream debugStream = System.out;

-  /** Set debug output. */

-  public  void setDebugStream(java.io.PrintStream ds) { debugStream = ds; }

+/* Generated By:JavaCC: Do not edit this line. FilterParserTokenManager.java */
+package org.apache.sling.resource.filter.impl.script;
+import java.util.ArrayList;
+import java.util.List;
+import org.apache.sling.resource.filter.impl.node.*;
+
+/** Token Manager. */
+public class FilterParserTokenManager implements FilterParserConstants
+{
+
+  /** Debug output. */
+  public  java.io.PrintStream debugStream = System.out;
+  /** Set debug output. */
+  public  void setDebugStream(java.io.PrintStream ds) { debugStream = ds; }
 private final int jjStopStringLiteralDfa_0(int pos, long active0)
-{

+{
    switch (pos)
-   {

-      case 0:

-         if ((active0 & 0x200000000L) != 0L)

-         {

-            jjmatchedKind = 32;

-            return -1;

-         }

-         if ((active0 & 0x80000000L) != 0L)

-         {

-            jjmatchedKind = 30;

-            return -1;

-         }

-         if ((active0 & 0x2f800800000L) != 0L)

-         {

-            jjmatchedKind = 43;

-            return 52;

-         }

-         if ((active0 & 0x4L) != 0L)

-            return 52;

-         return -1;

-      case 1:

-         if ((active0 & 0x2f800800000L) != 0L)

-         {

-            jjmatchedKind = 43;

-            jjmatchedPos = 1;

-            return 52;

-         }

-         if ((active0 & 0x200000000L) != 0L)

-         {

-            if (jjmatchedPos == 0)

-            {

-               jjmatchedKind = 32;

-               jjmatchedPos = 0;

-            }

-            return -1;

-         }

-         if ((active0 & 0x80000000L) != 0L)

-         {

-            if (jjmatchedPos == 0)

-            {

-               jjmatchedKind = 30;

-               jjmatchedPos = 0;

-            }

-            return -1;

-         }

-         return -1;

-      case 2:

-         if ((active0 & 0x2f800800000L) != 0L)

-         {

-            jjmatchedKind = 43;

-            jjmatchedPos = 2;

-            return 52;

-         }

-         return -1;

-      case 3:

-         if ((active0 & 0xf000000000L) != 0L)

-         {

-            jjmatchedKind = 43;

-            jjmatchedPos = 3;

-            return 52;

-         }

-         if ((active0 & 0x800000L) != 0L)

-            return 52;

-         if ((active0 & 0x20800000000L) != 0L)

-         {

-            if (jjmatchedPos < 2)

-            {

-               jjmatchedKind = 43;

-               jjmatchedPos = 2;

-            }

-            return -1;

-         }

-         return -1;

-      case 4:

-         if ((active0 & 0xf000000000L) != 0L)

-         {

-            jjmatchedKind = 43;

-            jjmatchedPos = 4;

-            return 52;

-         }

-         if ((active0 & 0x20800000000L) != 0L)

-         {

-            if (jjmatchedPos < 2)

-            {

-               jjmatchedKind = 43;

-               jjmatchedPos = 2;

-            }

-            return -1;

-         }

-         return -1;

-      case 5:

-         if ((active0 & 0xf000000000L) != 0L)

-         {

-            jjmatchedKind = 43;

-            jjmatchedPos = 5;

-            return 52;

-         }

-         if ((active0 & 0x20800000000L) != 0L)

-         {

-            if (jjmatchedPos < 2)

-            {

-               jjmatchedKind = 43;

-               jjmatchedPos = 2;

-            }

-            return -1;

-         }

-         return -1;

-      case 6:

-         if ((active0 & 0xf000000000L) != 0L)

-         {

-            jjmatchedKind = 43;

-            jjmatchedPos = 6;

-            return 52;

-         }

-         if ((active0 & 0x800000000L) != 0L)

-         {

-            if (jjmatchedPos < 2)

-            {

-               jjmatchedKind = 43;

-               jjmatchedPos = 2;

-            }

-            return -1;

-         }

-         return -1;

-      case 7:

-         if ((active0 & 0xf000000000L) != 0L)

-            return 52;

-         if ((active0 & 0x800000000L) != 0L)

-         {

-            if (jjmatchedPos < 2)

-            {

-               jjmatchedKind = 43;

-               jjmatchedPos = 2;

-            }

-            return -1;

-         }

-         return -1;

-      default :

-         return -1;

-   }

-}

+   {
+      case 0:
+         if ((active0 & 0x200000000L) != 0L)
+         {
+            jjmatchedKind = 32;
+            return -1;
+         }
+         if ((active0 & 0x80000000L) != 0L)
+         {
+            jjmatchedKind = 30;
+            return -1;
+         }
+         if ((active0 & 0x2f800800000L) != 0L)
+         {
+            jjmatchedKind = 43;
+            return 52;
+         }
+         if ((active0 & 0x4L) != 0L)
+            return 52;
+         return -1;
+      case 1:
+         if ((active0 & 0x2f800800000L) != 0L)
+         {
+            jjmatchedKind = 43;
+            jjmatchedPos = 1;
+            return 52;
+         }
+         if ((active0 & 0x200000000L) != 0L)
+         {
+            if (jjmatchedPos == 0)
+            {
+               jjmatchedKind = 32;
+               jjmatchedPos = 0;
+            }
+            return -1;
+         }
+         if ((active0 & 0x80000000L) != 0L)
+         {
+            if (jjmatchedPos == 0)
+            {
+               jjmatchedKind = 30;
+               jjmatchedPos = 0;
+            }
+            return -1;
+         }
+         return -1;
+      case 2:
+         if ((active0 & 0x2f800800000L) != 0L)
+         {
+            jjmatchedKind = 43;
+            jjmatchedPos = 2;
+            return 52;
+         }
+         return -1;
+      case 3:
+         if ((active0 & 0xf000000000L) != 0L)
+         {
+            jjmatchedKind = 43;
+            jjmatchedPos = 3;
+            return 52;
+         }
+         if ((active0 & 0x800000L) != 0L)
+            return 52;
+         if ((active0 & 0x20800000000L) != 0L)
+         {
+            if (jjmatchedPos < 2)
+            {
+               jjmatchedKind = 43;
+               jjmatchedPos = 2;
+            }
+            return -1;
+         }
+         return -1;
+      case 4:
+         if ((active0 & 0xf000000000L) != 0L)
+         {
+            jjmatchedKind = 43;
+            jjmatchedPos = 4;
+            return 52;
+         }
+         if ((active0 & 0x20800000000L) != 0L)
+         {
+            if (jjmatchedPos < 2)
+            {
+               jjmatchedKind = 43;
+               jjmatchedPos = 2;
+            }
+            return -1;
+         }
+         return -1;
+      case 5:
+         if ((active0 & 0xf000000000L) != 0L)
+         {
+            jjmatchedKind = 43;
+            jjmatchedPos = 5;
+            return 52;
+         }
+         if ((active0 & 0x20800000000L) != 0L)
+         {
+            if (jjmatchedPos < 2)
+            {
+               jjmatchedKind = 43;
+               jjmatchedPos = 2;
+            }
+            return -1;
+         }
+         return -1;
+      case 6:
+         if ((active0 & 0xf000000000L) != 0L)
+         {
+            jjmatchedKind = 43;
+            jjmatchedPos = 6;
+            return 52;
+         }
+         if ((active0 & 0x800000000L) != 0L)
+         {
+            if (jjmatchedPos < 2)
+            {
+               jjmatchedKind = 43;
+               jjmatchedPos = 2;
+            }
+            return -1;
+         }
+         return -1;
+      case 7:
+         if ((active0 & 0xf000000000L) != 0L)
+            return 52;
+         if ((active0 & 0x800000000L) != 0L)
+         {
+            if (jjmatchedPos < 2)
+            {
+               jjmatchedKind = 43;
+               jjmatchedPos = 2;
+            }
+            return -1;
+         }
+         return -1;
+      default :
+         return -1;
+   }
+}
 private final int jjStartNfa_0(int pos, long active0)
-{

-   return jjMoveNfa_0(jjStopStringLiteralDfa_0(pos, active0), pos + 1);

-}

-private int jjStopAtPos(int pos, int kind)

-{

-   jjmatchedKind = kind;

-   jjmatchedPos = pos;

-   return pos + 1;

-}

-private int jjMoveStringLiteralDfa0_0()

-{

-   switch(curChar)

-   {

-      case 9:

-         return jjStartNfaWithStates_0(0, 2, 52);

-      case 36:

-         return jjStopAtPos(0, 42);

-      case 40:

-         return jjStopAtPos(0, 24);

-      case 41:

-         return jjStopAtPos(0, 25);

-      case 44:

-         return jjStopAtPos(0, 26);

-      case 60:

-         return jjMoveStringLiteralDfa1_0(0x200000000L);

-      case 62:

-         return jjMoveStringLiteralDfa1_0(0x80000000L);

-      case 99:

-         return jjMoveStringLiteralDfa1_0(0xf000000000L);

-      case 110:

-         return jjMoveStringLiteralDfa1_0(0x20800800000L);

-      default :

-         return jjMoveNfa_0(0, 0);

-   }

-}

-private int jjMoveStringLiteralDfa1_0(long active0)

-{

-   try { curChar = input_stream.readChar(); }

-   catch(java.io.IOException e) {

-      jjStopStringLiteralDfa_0(0, active0);

-      return 1;

-   }

-   switch(curChar)

-   {

-      case 61:

-         if ((active0 & 0x80000000L) != 0L)

-            return jjStopAtPos(1, 31);

-         else if ((active0 & 0x200000000L) != 0L)

-            return jjStopAtPos(1, 33);

-         break;

-      case 111:

-         return jjMoveStringLiteralDfa2_0(active0, 0x2f800000000L);

-      case 117:

-         return jjMoveStringLiteralDfa2_0(active0, 0x800000L);

-      default :

-         break;

-   }

-   return jjStartNfa_0(0, active0);

-}

-private int jjMoveStringLiteralDfa2_0(long old0, long active0)

-{

-   if (((active0 &= old0)) == 0L)

-      return jjStartNfa_0(0, old0);

-   try { curChar = input_stream.readChar(); }

-   catch(java.io.IOException e) {

-      jjStopStringLiteralDfa_0(1, active0);

-      return 2;

-   }

-   switch(curChar)

-   {

-      case 108:

-         return jjMoveStringLiteralDfa3_0(active0, 0x800000L);

-      case 110:

-         return jjMoveStringLiteralDfa3_0(active0, 0xf000000000L);

-      case 116:

-         return jjMoveStringLiteralDfa3_0(active0, 0x20800000000L);

-      default :

-         break;

-   }

-   return jjStartNfa_0(1, active0);

-}

-private int jjMoveStringLiteralDfa3_0(long old0, long active0)

-{

-   if (((active0 &= old0)) == 0L)

-      return jjStartNfa_0(1, old0);

-   try { curChar = input_stream.readChar(); }

-   catch(java.io.IOException e) {

-      jjStopStringLiteralDfa_0(2, active0);

-      return 3;

-   }

-   switch(curChar)

-   {

-      case 32:

-         return jjMoveStringLiteralDfa4_0(active0, 0x20800000000L);

-      case 108:

-         if ((active0 & 0x800000L) != 0L)

-            return jjStartNfaWithStates_0(3, 23, 52);

-         break;

-      case 116:

-         return jjMoveStringLiteralDfa4_0(active0, 0xf000000000L);

-      default :

-         break;

-   }

-   return jjStartNfa_0(2, active0);

-}

-private int jjMoveStringLiteralDfa4_0(long old0, long active0)

-{

-   if (((active0 &= old0)) == 0L)

-      return jjStartNfa_0(2, old0);

-   try { curChar = input_stream.readChar(); }

-   catch(java.io.IOException e) {

-      jjStopStringLiteralDfa_0(3, active0);

-      return 4;

-   }

-   switch(curChar)

-   {

-      case 97:

-         return jjMoveStringLiteralDfa5_0(active0, 0xf000000000L);

-      case 105:

-         return jjMoveStringLiteralDfa5_0(active0, 0x20000000000L);

-      case 108:

-         return jjMoveStringLiteralDfa5_0(active0, 0x800000000L);

-      default :

-         break;

-   }

-   return jjStartNfa_0(3, active0);

-}

-private int jjMoveStringLiteralDfa5_0(long old0, long active0)

-{

-   if (((active0 &= old0)) == 0L)

-      return jjStartNfa_0(3, old0);

-   try { curChar = input_stream.readChar(); }

-   catch(java.io.IOException e) {

-      jjStopStringLiteralDfa_0(4, active0);

-      return 5;

-   }

-   switch(curChar)

-   {

-      case 105:

-         return jjMoveStringLiteralDfa6_0(active0, 0xf800000000L);

-      case 110:

-         if ((active0 & 0x20000000000L) != 0L)

-            return jjStopAtPos(5, 41);

-         break;

-      default :

-         break;

-   }

-   return jjStartNfa_0(4, active0);

-}

-private int jjMoveStringLiteralDfa6_0(long old0, long active0)

-{

-   if (((active0 &= old0)) == 0L)

-      return jjStartNfa_0(4, old0);

-   try { curChar = input_stream.readChar(); }

-   catch(java.io.IOException e) {

-      jjStopStringLiteralDfa_0(5, active0);

-      return 6;

-   }

-   switch(curChar)

-   {

-      case 107:

-         return jjMoveStringLiteralDfa7_0(active0, 0x800000000L);

-      case 110:

-         return jjMoveStringLiteralDfa7_0(active0, 0xf000000000L);

-      default :

-         break;

-   }

-   return jjStartNfa_0(5, active0);

-}

-private int jjMoveStringLiteralDfa7_0(long old0, long active0)

-{

-   if (((active0 &= old0)) == 0L)

-      return jjStartNfa_0(5, old0);

-   try { curChar = input_stream.readChar(); }

-   catch(java.io.IOException e) {

-      jjStopStringLiteralDfa_0(6, active0);

-      return 7;

-   }

-   switch(curChar)

-   {

-      case 101:

-         if ((active0 & 0x800000000L) != 0L)

-            return jjStopAtPos(7, 35);

-         break;

-      case 115:

-         if ((active0 & 0x1000000000L) != 0L)

-         {

-            jjmatchedKind = 36;

-            jjmatchedPos = 7;

-         }

-         return jjMoveStringLiteralDfa8_0(active0, 0xe000000000L);

-      default :

-         break;

-   }

-   return jjStartNfa_0(6, active0);

-}

-private int jjMoveStringLiteralDfa8_0(long old0, long active0)

-{

-   if (((active0 &= old0)) == 0L)

-      return jjStartNfa_0(6, old0);

-   try { curChar = input_stream.readChar(); }

-   catch(java.io.IOException e) {

-      jjStopStringLiteralDfa_0(7, active0);

-      return 8;

-   }

-   switch(curChar)

-   {

-      case 32:

-         return jjMoveStringLiteralDfa9_0(active0, 0xe000000000L);

-      default :

-         break;

-   }

-   return jjStartNfa_0(7, active0);

-}

-private int jjMoveStringLiteralDfa9_0(long old0, long active0)

-{

-   if (((active0 &= old0)) == 0L)

-      return jjStartNfa_0(7, old0);

-   try { curChar = input_stream.readChar(); }

-   catch(java.io.IOException e) {

-      jjStopStringLiteralDfa_0(8, active0);

-      return 9;

-   }

-   switch(curChar)

-   {

-      case 97:

-         return jjMoveStringLiteralDfa10_0(active0, 0x4000000000L);

-      case 110:

-         return jjMoveStringLiteralDfa10_0(active0, 0xa000000000L);

-      default :

-         break;

-   }

-   return jjStartNfa_0(8, active0);

-}

-private int jjMoveStringLiteralDfa10_0(long old0, long active0)

-{

-   if (((active0 &= old0)) == 0L)

-      return jjStartNfa_0(8, old0);

-   try { curChar = input_stream.readChar(); }

-   catch(java.io.IOException e) {

-      jjStopStringLiteralDfa_0(9, active0);

-      return 10;

-   }

-   switch(curChar)

-   {

-      case 110:

-         return jjMoveStringLiteralDfa11_0(active0, 0x4000000000L);

-      case 111:

-         return jjMoveStringLiteralDfa11_0(active0, 0xa000000000L);

-      default :

-         break;

-   }

-   return jjStartNfa_0(9, active0);

-}

-private int jjMoveStringLiteralDfa11_0(long old0, long active0)

-{

-   if (((active0 &= old0)) == 0L)

-      return jjStartNfa_0(9, old0);

-   try { curChar = input_stream.readChar(); }

-   catch(java.io.IOException e) {

-      jjStopStringLiteralDfa_0(10, active0);

-      return 11;

-   }

-   switch(curChar)

-   {

-      case 116:

-         if ((active0 & 0x2000000000L) != 0L)

-         {

-            jjmatchedKind = 37;

-            jjmatchedPos = 11;

-         }

-         return jjMoveStringLiteralDfa12_0(active0, 0x8000000000L);

-      case 121:

-         if ((active0 & 0x4000000000L) != 0L)

-            return jjStopAtPos(11, 38);

-         break;

-      default :

-         break;

-   }

-   return jjStartNfa_0(10, active0);

-}

-private int jjMoveStringLiteralDfa12_0(long old0, long active0)

-{

-   if (((active0 &= old0)) == 0L)

-      return jjStartNfa_0(10, old0);

-   try { curChar = input_stream.readChar(); }

-   catch(java.io.IOException e) {

-      jjStopStringLiteralDfa_0(11, active0);

-      return 12;

-   }

-   switch(curChar)

-   {

-      case 32:

-         return jjMoveStringLiteralDfa13_0(active0, 0x8000000000L);

-      default :

-         break;

-   }

-   return jjStartNfa_0(11, active0);

-}

-private int jjMoveStringLiteralDfa13_0(long old0, long active0)

-{

-   if (((active0 &= old0)) == 0L)

-      return jjStartNfa_0(11, old0);

-   try { curChar = input_stream.readChar(); }

-   catch(java.io.IOException e) {

-      jjStopStringLiteralDfa_0(12, active0);

-      return 13;

-   }

-   switch(curChar)

-   {

-      case 97:

-         return jjMoveStringLiteralDfa14_0(active0, 0x8000000000L);

-      default :

-         break;

-   }

-   return jjStartNfa_0(12, active0);

-}

-private int jjMoveStringLiteralDfa14_0(long old0, long active0)

-{

-   if (((active0 &= old0)) == 0L)

-      return jjStartNfa_0(12, old0);

-   try { curChar = input_stream.readChar(); }

-   catch(java.io.IOException e) {

-      jjStopStringLiteralDfa_0(13, active0);

-      return 14;

-   }

-   switch(curChar)

-   {

-      case 110:

-         return jjMoveStringLiteralDfa15_0(active0, 0x8000000000L);

-      default :

-         break;

-   }

-   return jjStartNfa_0(13, active0);

-}

-private int jjMoveStringLiteralDfa15_0(long old0, long active0)

-{

-   if (((active0 &= old0)) == 0L)

-      return jjStartNfa_0(13, old0);

-   try { curChar = input_stream.readChar(); }

-   catch(java.io.IOException e) {

-      jjStopStringLiteralDfa_0(14, active0);

-      return 15;

-   }

-   switch(curChar)

-   {

-      case 121:

-         if ((active0 & 0x8000000000L) != 0L)

-            return jjStopAtPos(15, 39);

-         break;

-      default :

-         break;

-   }

-   return jjStartNfa_0(14, active0);

-}

-private int jjStartNfaWithStates_0(int pos, int kind, int state)

-{

-   jjmatchedKind = kind;

-   jjmatchedPos = pos;

-   try { curChar = input_stream.readChar(); }

-   catch(java.io.IOException e) { return pos + 1; }

-   return jjMoveNfa_0(state, pos + 1);

-}

+{
+   return jjMoveNfa_0(jjStopStringLiteralDfa_0(pos, active0), pos + 1);
+}
+private int jjStopAtPos(int pos, int kind)
+{
+   jjmatchedKind = kind;
+   jjmatchedPos = pos;
+   return pos + 1;
+}
+private int jjMoveStringLiteralDfa0_0()
+{
+   switch(curChar)
+   {
+      case 9:
+         return jjStartNfaWithStates_0(0, 2, 52);
+      case 36:
+         return jjStopAtPos(0, 42);
+      case 40:
+         return jjStopAtPos(0, 24);
+      case 41:
+         return jjStopAtPos(0, 25);
+      case 44:
+         return jjStopAtPos(0, 26);
+      case 60:
+         return jjMoveStringLiteralDfa1_0(0x200000000L);
+      case 62:
+         return jjMoveStringLiteralDfa1_0(0x80000000L);
+      case 99:
+         return jjMoveStringLiteralDfa1_0(0xf000000000L);
+      case 110:
+         return jjMoveStringLiteralDfa1_0(0x20800800000L);
+      default :
+         return jjMoveNfa_0(0, 0);
+   }
+}
+private int jjMoveStringLiteralDfa1_0(long active0)
+{
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+      jjStopStringLiteralDfa_0(0, active0);
+      return 1;
+   }
+   switch(curChar)
+   {
+      case 61:
+         if ((active0 & 0x80000000L) != 0L)
+            return jjStopAtPos(1, 31);
+         else if ((active0 & 0x200000000L) != 0L)
+            return jjStopAtPos(1, 33);
+         break;
+      case 111:
+         return jjMoveStringLiteralDfa2_0(active0, 0x2f800000000L);
+      case 117:
+         return jjMoveStringLiteralDfa2_0(active0, 0x800000L);
+      default :
+         break;
+   }
+   return jjStartNfa_0(0, active0);
+}
+private int jjMoveStringLiteralDfa2_0(long old0, long active0)
+{
+   if (((active0 &= old0)) == 0L)
+      return jjStartNfa_0(0, old0);
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+      jjStopStringLiteralDfa_0(1, active0);
+      return 2;
+   }
+   switch(curChar)
+   {
+      case 108:
+         return jjMoveStringLiteralDfa3_0(active0, 0x800000L);
+      case 110:
+         return jjMoveStringLiteralDfa3_0(active0, 0xf000000000L);
+      case 116:
+         return jjMoveStringLiteralDfa3_0(active0, 0x20800000000L);
+      default :
+         break;
+   }
+   return jjStartNfa_0(1, active0);
+}
+private int jjMoveStringLiteralDfa3_0(long old0, long active0)
+{
+   if (((active0 &= old0)) == 0L)
+      return jjStartNfa_0(1, old0);
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+      jjStopStringLiteralDfa_0(2, active0);
+      return 3;
+   }
+   switch(curChar)
+   {
+      case 32:
+         return jjMoveStringLiteralDfa4_0(active0, 0x20800000000L);
+      case 108:
+         if ((active0 & 0x800000L) != 0L)
+            return jjStartNfaWithStates_0(3, 23, 52);
+         break;
+      case 116:
+         return jjMoveStringLiteralDfa4_0(active0, 0xf000000000L);
+      default :
+         break;
+   }
+   return jjStartNfa_0(2, active0);
+}
+private int jjMoveStringLiteralDfa4_0(long old0, long active0)
+{
+   if (((active0 &= old0)) == 0L)
+      return jjStartNfa_0(2, old0);
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+      jjStopStringLiteralDfa_0(3, active0);
+      return 4;
+   }
+   switch(curChar)
+   {
+      case 97:
+         return jjMoveStringLiteralDfa5_0(active0, 0xf000000000L);
+      case 105:
+         return jjMoveStringLiteralDfa5_0(active0, 0x20000000000L);
+      case 108:
+         return jjMoveStringLiteralDfa5_0(active0, 0x800000000L);
+      default :
+         break;
+   }
+   return jjStartNfa_0(3, active0);
+}
+private int jjMoveStringLiteralDfa5_0(long old0, long active0)
+{
+   if (((active0 &= old0)) == 0L)
+      return jjStartNfa_0(3, old0);
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+      jjStopStringLiteralDfa_0(4, active0);
+      return 5;
+   }
+   switch(curChar)
+   {
+      case 105:
+         return jjMoveStringLiteralDfa6_0(active0, 0xf800000000L);
+      case 110:
+         if ((active0 & 0x20000000000L) != 0L)
+            return jjStopAtPos(5, 41);
+         break;
+      default :
+         break;
+   }
+   return jjStartNfa_0(4, active0);
+}
+private int jjMoveStringLiteralDfa6_0(long old0, long active0)
+{
+   if (((active0 &= old0)) == 0L)
+      return jjStartNfa_0(4, old0);
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+      jjStopStringLiteralDfa_0(5, active0);
+      return 6;
+   }
+   switch(curChar)
+   {
+      case 107:
+         return jjMoveStringLiteralDfa7_0(active0, 0x800000000L);
+      case 110:
+         return jjMoveStringLiteralDfa7_0(active0, 0xf000000000L);
+      default :
+         break;
+   }
+   return jjStartNfa_0(5, active0);
+}
+private int jjMoveStringLiteralDfa7_0(long old0, long active0)
+{
+   if (((active0 &= old0)) == 0L)
+      return jjStartNfa_0(5, old0);
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+      jjStopStringLiteralDfa_0(6, active0);
+      return 7;
+   }
+   switch(curChar)
+   {
+      case 101:
+         if ((active0 & 0x800000000L) != 0L)
+            return jjStopAtPos(7, 35);
+         break;
+      case 115:
+         if ((active0 & 0x1000000000L) != 0L)
+         {
+            jjmatchedKind = 36;
+            jjmatchedPos = 7;
+         }
+         return jjMoveStringLiteralDfa8_0(active0, 0xe000000000L);
+      default :
+         break;
+   }
+   return jjStartNfa_0(6, active0);
+}
+private int jjMoveStringLiteralDfa8_0(long old0, long active0)
+{
+   if (((active0 &= old0)) == 0L)
+      return jjStartNfa_0(6, old0);
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+      jjStopStringLiteralDfa_0(7, active0);
+      return 8;
+   }
+   switch(curChar)
+   {
+      case 32:
+         return jjMoveStringLiteralDfa9_0(active0, 0xe000000000L);
+      default :
+         break;
+   }
+   return jjStartNfa_0(7, active0);
+}
+private int jjMoveStringLiteralDfa9_0(long old0, long active0)
+{
+   if (((active0 &= old0)) == 0L)
+      return jjStartNfa_0(7, old0);
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+      jjStopStringLiteralDfa_0(8, active0);
+      return 9;
+   }
+   switch(curChar)
+   {
+      case 97:
+         return jjMoveStringLiteralDfa10_0(active0, 0x4000000000L);
+      case 110:
+         return jjMoveStringLiteralDfa10_0(active0, 0xa000000000L);
+      default :
+         break;
+   }
+   return jjStartNfa_0(8, active0);
+}
+private int jjMoveStringLiteralDfa10_0(long old0, long active0)
+{
+   if (((active0 &= old0)) == 0L)
+      return jjStartNfa_0(8, old0);
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+      jjStopStringLiteralDfa_0(9, active0);
+      return 10;
+   }
+   switch(curChar)
+   {
+      case 110:
+         return jjMoveStringLiteralDfa11_0(active0, 0x4000000000L);
+      case 111:
+         return jjMoveStringLiteralDfa11_0(active0, 0xa000000000L);
+      default :
+         break;
+   }
+   return jjStartNfa_0(9, active0);
+}
+private int jjMoveStringLiteralDfa11_0(long old0, long active0)
+{
+   if (((active0 &= old0)) == 0L)
+      return jjStartNfa_0(9, old0);
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+      jjStopStringLiteralDfa_0(10, active0);
+      return 11;
+   }
+   switch(curChar)
+   {
+      case 116:
+         if ((active0 & 0x2000000000L) != 0L)
+         {
+            jjmatchedKind = 37;
+            jjmatchedPos = 11;
+         }
+         return jjMoveStringLiteralDfa12_0(active0, 0x8000000000L);
+      case 121:
+         if ((active0 & 0x4000000000L) != 0L)
+            return jjStopAtPos(11, 38);
+         break;
+      default :
+         break;
+   }
+   return jjStartNfa_0(10, active0);
+}
+private int jjMoveStringLiteralDfa12_0(long old0, long active0)
+{
+   if (((active0 &= old0)) == 0L)
+      return jjStartNfa_0(10, old0);
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+      jjStopStringLiteralDfa_0(11, active0);
+      return 12;
+   }
+   switch(curChar)
+   {
+      case 32:
+         return jjMoveStringLiteralDfa13_0(active0, 0x8000000000L);
+      default :
+         break;
+   }
+   return jjStartNfa_0(11, active0);
+}
+private int jjMoveStringLiteralDfa13_0(long old0, long active0)
+{
+   if (((active0 &= old0)) == 0L)
+      return jjStartNfa_0(11, old0);
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+      jjStopStringLiteralDfa_0(12, active0);
+      return 13;
+   }
+   switch(curChar)
+   {
+      case 97:
+         return jjMoveStringLiteralDfa14_0(active0, 0x8000000000L);
+      default :
+         break;
+   }
+   return jjStartNfa_0(12, active0);
+}
+private int jjMoveStringLiteralDfa14_0(long old0, long active0)
+{
+   if (((active0 &= old0)) == 0L)
+      return jjStartNfa_0(12, old0);
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+      jjStopStringLiteralDfa_0(13, active0);
+      return 14;
+   }
+   switch(curChar)
+   {
+      case 110:
+         return jjMoveStringLiteralDfa15_0(active0, 0x8000000000L);
+      default :
+         break;
+   }
+   return jjStartNfa_0(13, active0);
+}
+private int jjMoveStringLiteralDfa15_0(long old0, long active0)
+{
+   if (((active0 &= old0)) == 0L)
+      return jjStartNfa_0(13, old0);
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) {
+      jjStopStringLiteralDfa_0(14, active0);
+      return 15;
+   }
+   switch(curChar)
+   {
+      case 121:
+         if ((active0 & 0x8000000000L) != 0L)
+            return jjStopAtPos(15, 39);
+         break;
+      default :
+         break;
+   }
+   return jjStartNfa_0(14, active0);
+}
+private int jjStartNfaWithStates_0(int pos, int kind, int state)
+{
+   jjmatchedKind = kind;
+   jjmatchedPos = pos;
+   try { curChar = input_stream.readChar(); }
+   catch(java.io.IOException e) { return pos + 1; }
+   return jjMoveNfa_0(state, pos + 1);
+}
 static final long[] jjbitVec0 = {
    0xfffffffffffffffeL, 0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffffffffffffffL
-};

+};
 static final long[] jjbitVec2 = {
    0x0L, 0x0L, 0xffffffffffffffffL, 0xffffffffffffffffL
-};

-private int jjMoveNfa_0(int startState, int curPos)

-{

-   int startsAt = 0;

-   jjnewStateCnt = 187;

-   int i = 1;

-   jjstateSet[0] = startState;

-   int kind = 0x7fffffff;

-   for (;;)

-   {

-      if (++jjround == 0x7fffffff)

-         ReInitRounds();

-      if (curChar < 64)

-      {

-         long l = 1L << curChar;

-         do

-         {

-            switch(jjstateSet[--i])

-            {

-               case 0:

-                  if ((0x8c00846affffffffL & l) != 0L)

-                  {

-                     if (kind > 43)

-                        kind = 43;

-                     jjCheckNAdd(52);

-                  }

-                  else if ((0x3ff000000000000L & l) != 0L)

-                  {

-                     if (kind > 13)

-                        kind = 13;

-                     jjCheckNAddStates(0, 14);

-                  }

-                  else if (curChar == 45)

-                     jjCheckNAddStates(15, 22);

-                  else if (curChar == 60)

-                  {

-                     if (kind > 32)

-                        kind = 32;

-                  }

-                  else if (curChar == 62)

-                  {

-                     if (kind > 30)

-                        kind = 30;

-                  }

-                  else if (curChar == 61)

-                     jjstateSet[jjnewStateCnt++] = 32;

-                  else if (curChar == 34)

-                     jjCheckNAddStates(23, 25);

-                  else if (curChar == 39)

-                     jjCheckNAddStates(26, 28);

-                  else if (curChar == 46)

-                     jjCheckNAdd(1);

-                  if (curChar == 33)

-                     jjstateSet[jjnewStateCnt++] = 34;

-                  else if (curChar == 38)

-                     jjstateSet[jjnewStateCnt++] = 15;

-                  break;

-               case 1:

-                  if ((0x3ff000000000000L & l) == 0L)

-                     break;

-                  if (kind > 15)

-                     kind = 15;

-                  jjCheckNAdd(1);

-                  break;

-               case 3:

-                  if ((0x280000000000L & l) != 0L)

-                     jjCheckNAdd(4);

-                  break;

-               case 4:

-                  if ((0x3ff000000000000L & l) == 0L)

-                     break;

-                  if (kind > 16)

-                     kind = 16;

-                  jjCheckNAdd(4);

-                  break;

-               case 5:

-                  if (curChar == 39)

-                     jjCheckNAddStates(26, 28);

-                  break;

-               case 7:

-                  jjCheckNAddStates(26, 28);

-                  break;

-               case 8:

-                  if ((0xffffff7fffffffffL & l) != 0L)

-                     jjCheckNAddStates(26, 28);

-                  break;

-               case 9:

-                  if (curChar == 39 && kind > 18)

-                     kind = 18;

-                  break;

-               case 10:

-                  if (curChar == 34)

-                     jjCheckNAddStates(23, 25);

-                  break;

-               case 12:

-                  jjCheckNAddStates(23, 25);

-                  break;

-               case 13:

-                  if ((0xfffffffbffffffffL & l) != 0L)

-                     jjCheckNAddStates(23, 25);

-                  break;

-               case 14:

-                  if (curChar == 34 && kind > 18)

-                     kind = 18;

-                  break;

-               case 15:

-                  if (curChar == 38 && kind > 21)

-                     kind = 21;

-                  break;

-               case 16:

-                  if (curChar == 38)

-                     jjstateSet[jjnewStateCnt++] = 15;

-                  break;

-               case 32:

-                  if (curChar == 61 && kind > 28)

-                     kind = 28;

-                  break;

-               case 33:

-                  if (curChar == 61)

-                     jjstateSet[jjnewStateCnt++] = 32;

-                  break;

-               case 34:

-                  if (curChar == 61 && kind > 29)

-                     kind = 29;

-                  break;

-               case 35:

-                  if (curChar == 33)

-                     jjstateSet[jjnewStateCnt++] = 34;

-                  break;

-               case 36:

-                  if (curChar == 62 && kind > 30)

-                     kind = 30;

-                  break;

-               case 41:

-                  if (curChar == 32)

-                     jjstateSet[jjnewStateCnt++] = 40;

-                  break;

-               case 49:

-                  if (curChar == 60 && kind > 32)

-                     kind = 32;

-                  break;

-               case 50:

-                  if (curChar == 61 && kind > 34)

-                     kind = 34;

-                  break;

-               case 52:

-                  if ((0x8c00846affffffffL & l) == 0L)

-                     break;

-                  if (kind > 43)

-                     kind = 43;

-                  jjCheckNAdd(52);

-                  break;

-               case 55:

-               case 56:

-                  jjCheckNAddStates(29, 31);

-                  break;

-               case 58:

-                  if (curChar == 45)

-                     jjCheckNAddStates(15, 22);

-                  break;

-               case 59:

-                  if ((0x3ff000000000000L & l) != 0L)

-                     jjCheckNAddTwoStates(60, 94);

-                  break;

-               case 60:

-                  if (curChar == 45)

-                     jjstateSet[jjnewStateCnt++] = 61;

-                  break;

-               case 61:

-                  if ((0x3ff000000000000L & l) != 0L)

-                     jjCheckNAddTwoStates(62, 93);

-                  break;

-               case 62:

-                  if (curChar == 45)

-                     jjstateSet[jjnewStateCnt++] = 63;

-                  break;

-               case 63:

-                  if ((0x3ff000000000000L & l) != 0L)

-                     jjCheckNAddTwoStates(64, 92);

-                  break;

-               case 64:

-                  if (curChar == 45)

-                     jjCheckNAdd(65);

-                  break;

-               case 65:

-                  if ((0x3ff000000000000L & l) != 0L)

-                     jjCheckNAddTwoStates(65, 66);

-                  break;

-               case 66:

-                  if (curChar == 45)

-                     jjstateSet[jjnewStateCnt++] = 67;

-                  break;

-               case 67:

-                  if ((0x3000000000000L & l) != 0L)

-                     jjCheckNAddTwoStates(68, 69);

-                  break;

-               case 68:

-                  if (curChar == 45)

-                     jjCheckNAdd(69);

-                  break;

-               case 69:

-                  if ((0x3ff000000000000L & l) != 0L)

-                     jjCheckNAddTwoStates(69, 70);

-                  break;

-               case 70:

-                  if (curChar == 45)

-                     jjstateSet[jjnewStateCnt++] = 71;

-                  break;

-               case 71:

-                  if ((0xf000000000000L & l) != 0L)

-                     jjstateSet[jjnewStateCnt++] = 72;

-                  break;

-               case 72:

-                  if ((0x3ff000000000000L & l) != 0L)

-                     jjstateSet[jjnewStateCnt++] = 73;

-                  break;

-               case 74:

-                  if ((0x7000000000000L & l) != 0L)

-                     jjstateSet[jjnewStateCnt++] = 75;

-                  break;

-               case 75:

-                  if ((0x3ff000000000000L & l) != 0L)

-                     jjstateSet[jjnewStateCnt++] = 76;

-                  break;

-               case 76:

-                  if (curChar == 58)

-                     jjstateSet[jjnewStateCnt++] = 77;

-                  break;

-               case 77:

-                  if ((0x3f000000000000L & l) != 0L)

-                     jjstateSet[jjnewStateCnt++] = 78;

-                  break;

-               case 78:

-                  if ((0x3ff000000000000L & l) != 0L)

-                     jjCheckNAddTwoStates(79, 86);

-                  break;

-               case 79:

-                  if (curChar == 58)

-                     jjstateSet[jjnewStateCnt++] = 80;

-                  break;

-               case 80:

-                  if ((0x3f000000000000L & l) != 0L)

-                     jjstateSet[jjnewStateCnt++] = 81;

-                  break;

-               case 81:

-                  if ((0x3ff000000000000L & l) != 0L)

-                     jjCheckNAddTwoStates(82, 86);

-                  break;

-               case 82:

-                  if (curChar == 46)

-                     jjstateSet[jjnewStateCnt++] = 83;

-                  break;

-               case 83:

-                  if ((0x3ff000000000000L & l) != 0L)

-                     jjstateSet[jjnewStateCnt++] = 84;

-                  break;

-               case 84:

-                  if ((0x3ff000000000000L & l) != 0L)

-                     jjstateSet[jjnewStateCnt++] = 85;

-                  break;

-               case 85:

-                  if ((0x3ff000000000000L & l) != 0L)

-                     jjCheckNAdd(86);

-                  break;

-               case 86:

-                  if ((0x280000000000L & l) != 0L)

-                     jjstateSet[jjnewStateCnt++] = 87;

-                  break;

-               case 87:

-                  if ((0x7000000000000L & l) != 0L)

-                     jjstateSet[jjnewStateCnt++] = 88;

-                  break;

-               case 88:

-                  if ((0x3ff000000000000L & l) != 0L)

-                     jjstateSet[jjnewStateCnt++] = 89;

-                  break;

-               case 89:

-                  if (curChar == 58)

-                     jjstateSet[jjnewStateCnt++] = 90;

-                  break;

-               case 90:

-                  if ((0x3f000000000000L & l) != 0L)

-                     jjstateSet[jjnewStateCnt++] = 91;

-                  break;

-               case 91:

-                  if ((0x3ff000000000000L & l) != 0L && kind > 10)

-                     kind = 10;

-                  break;

-               case 92:

-                  if ((0x3ff000000000000L & l) != 0L)

-                     jjCheckNAddStates(32, 35);

-                  break;

-               case 93:

-                  if ((0x3ff000000000000L & l) != 0L)

-                     jjCheckNAddStates(36, 39);

-                  break;

-               case 94:

-                  if ((0x3ff000000000000L & l) != 0L)

-                     jjCheckNAddStates(40, 43);

-                  break;

-               case 95:

-                  if ((0x3ff000000000000L & l) != 0L)

-                     jjCheckNAddTwoStates(96, 124);

-                  break;

-               case 96:

-                  if (curChar == 45)

-                     jjstateSet[jjnewStateCnt++] = 97;

-                  break;

-               case 97:

-                  if ((0x3ff000000000000L & l) != 0L)

-                     jjCheckNAddTwoStates(98, 123);

-                  break;

-               case 98:

-                  if (curChar == 45)

-                     jjstateSet[jjnewStateCnt++] = 99;

-                  break;

-               case 99:

-                  if ((0x3ff000000000000L & l) != 0L)

-                     jjCheckNAddTwoStates(100, 122);

-                  break;

-               case 100:

-                  if (curChar == 45)

-                     jjCheckNAdd(101);

-                  break;

-               case 101:

-                  if ((0x3ff000000000000L & l) != 0L)

-                     jjCheckNAddTwoStates(101, 102);

-                  break;

-               case 102:

-                  if (curChar == 45)

-                     jjstateSet[jjnewStateCnt++] = 103;

-                  break;

-               case 103:

-                  if ((0x3000000000000L & l) != 0L)

-                     jjCheckNAddTwoStates(104, 105);

-                  break;

-               case 104:

-                  if (curChar == 45)

-                     jjCheckNAdd(105);

-                  break;

-               case 105:

-                  if ((0x3ff000000000000L & l) != 0L)

-                     jjCheckNAddTwoStates(105, 106);

-                  break;

-               case 106:

-                  if (curChar == 45)

-                     jjstateSet[jjnewStateCnt++] = 107;

-                  break;

-               case 107:

-                  if ((0xf000000000000L & l) != 0L)

-                     jjstateSet[jjnewStateCnt++] = 108;

-                  break;

-               case 108:

-                  if ((0x3ff000000000000L & l) != 0L)

-                     jjstateSet[jjnewStateCnt++] = 109;

-                  break;

-               case 110:

-                  if ((0x7000000000000L & l) != 0L)

-                     jjstateSet[jjnewStateCnt++] = 111;

-                  break;

-               case 111:

-                  if ((0x3ff000000000000L & l) != 0L)

-                     jjstateSet[jjnewStateCnt++] = 112;

-                  break;

-               case 112:

-                  if (curChar == 58)

-                     jjstateSet[jjnewStateCnt++] = 113;

-                  break;

-               case 113:

-                  if ((0x3f000000000000L & l) != 0L)

-                     jjstateSet[jjnewStateCnt++] = 114;

-                  break;

-               case 114:

-                  if ((0x3ff000000000000L & l) == 0L)

-                     break;

-                  if (kind > 11)

-                     kind = 11;

-                  jjstateSet[jjnewStateCnt++] = 115;

-                  break;

-               case 115:

-                  if (curChar == 58)

-                     jjstateSet[jjnewStateCnt++] = 116;

-                  break;

-               case 116:

-                  if ((0x3f000000000000L & l) != 0L)

-                     jjstateSet[jjnewStateCnt++] = 117;

-                  break;

-               case 117:

-                  if ((0x3ff000000000000L & l) == 0L)

-                     break;

-                  if (kind > 11)

-                     kind = 11;

-                  jjstateSet[jjnewStateCnt++] = 118;

-                  break;

-               case 118:

-                  if (curChar == 46)

-                     jjstateSet[jjnewStateCnt++] = 119;

-                  break;

-               case 119:

-                  if ((0x3ff000000000000L & l) != 0L)

-                     jjstateSet[jjnewStateCnt++] = 120;

-                  break;

-               case 120:

-                  if ((0x3ff000000000000L & l) != 0L)

-                     jjstateSet[jjnewStateCnt++] = 121;

-                  break;

-               case 121:

-                  if ((0x3ff000000000000L & l) != 0L && kind > 11)

-                     kind = 11;

-                  break;

-               case 122:

-                  if ((0x3ff000000000000L & l) != 0L)

-                     jjCheckNAddStates(44, 47);

-                  break;

-               case 123:

-                  if ((0x3ff000000000000L & l) != 0L)

-                     jjCheckNAddStates(48, 51);

-                  break;

-               case 124:

-                  if ((0x3ff000000000000L & l) != 0L)

-                     jjCheckNAddStates(52, 55);

-                  break;

-               case 125:

-                  if ((0x3ff000000000000L & l) != 0L)

-                     jjCheckNAddTwoStates(126, 141);

-                  break;

-               case 126:

-                  if (curChar == 45)

-                     jjstateSet[jjnewStateCnt++] = 127;

-                  break;

-               case 127:

-                  if ((0x3ff000000000000L & l) != 0L)

-                     jjCheckNAddTwoStates(128, 140);

-                  break;

-               case 128:

-                  if (curChar == 45)

-                     jjstateSet[jjnewStateCnt++] = 129;

-                  break;

-               case 129:

-                  if ((0x3ff000000000000L & l) != 0L)

-                     jjCheckNAddTwoStates(130, 139);

-                  break;

-               case 130:

-                  if (curChar == 45)

-                     jjCheckNAdd(131);

-                  break;

-               case 131:

-                  if ((0x3ff000000000000L & l) != 0L)

-                     jjCheckNAddTwoStates(131, 132);

-                  break;

-               case 132:

-                  if (curChar == 45)

-                     jjstateSet[jjnewStateCnt++] = 133;

-                  break;

-               case 133:

-                  if ((0x3000000000000L & l) != 0L)

-                     jjCheckNAddTwoStates(134, 135);

-                  break;

-               case 134:

-                  if (curChar == 45)

-                     jjCheckNAdd(135);

-                  break;

-               case 135:

-                  if ((0x3ff000000000000L & l) != 0L)

-                     jjCheckNAddTwoStates(135, 136);

-                  break;

-               case 136:

-                  if (curChar == 45)

-                     jjstateSet[jjnewStateCnt++] = 137;

-                  break;

-               case 137:

-                  if ((0xf000000000000L & l) != 0L)

-                     jjstateSet[jjnewStateCnt++] = 138;

-                  break;

-               case 138:

-                  if ((0x3ff000000000000L & l) != 0L && kind > 12)

-                     kind = 12;

-                  break;

-               case 139:

-                  if ((0x3ff000000000000L & l) != 0L)

-                     jjCheckNAddStates(56, 59);

-                  break;

-               case 140:

-                  if ((0x3ff000000000000L & l) != 0L)

-                     jjCheckNAddStates(60, 63);

-                  break;

-               case 141:

-                  if ((0x3ff000000000000L & l) != 0L)

-                     jjCheckNAddStates(64, 67);

-                  break;

-               case 142:

-                  if ((0x3ff000000000000L & l) == 0L)

-                     break;

-                  if (kind > 13)

-                     kind = 13;

-                  jjCheckNAdd(142);

-                  break;

-               case 143:

-                  if ((0x3ff000000000000L & l) != 0L)

-                     jjCheckNAddTwoStates(143, 144);

-                  break;

-               case 144:

-                  if (curChar == 46)

-                     jjCheckNAdd(145);

-                  break;

-               case 145:

-                  if ((0x3ff000000000000L & l) == 0L)

-                     break;

-                  if (kind > 13)

-                     kind = 13;

-                  jjCheckNAdd(145);

-                  break;

-               case 146:

-                  if ((0x3ff000000000000L & l) != 0L)

-                     jjCheckNAddTwoStates(146, 147);

-                  break;

-               case 148:

-                  if ((0x280000000000L & l) != 0L)

-                     jjCheckNAdd(149);

-                  break;

-               case 149:

-                  if ((0x3ff000000000000L & l) == 0L)

-                     break;

-                  if (kind > 13)

-                     kind = 13;

-                  jjCheckNAdd(149);

-                  break;

-               case 150:

-                  if ((0x3ff000000000000L & l) != 0L)

-                     jjCheckNAddTwoStates(150, 151);

-                  break;

-               case 151:

-                  if (curChar == 46)

-                     jjCheckNAdd(152);

-                  break;

-               case 152:

-                  if ((0x3ff000000000000L & l) != 0L)

-                     jjCheckNAddTwoStates(152, 153);

-                  break;

-               case 154:

-                  if ((0x280000000000L & l) != 0L)

-                     jjCheckNAdd(155);

-                  break;

-               case 155:

-                  if ((0x3ff000000000000L & l) == 0L)

-                     break;

-                  if (kind > 13)

-                     kind = 13;

-                  jjCheckNAdd(155);

-                  break;

-               case 156:

-                  if ((0x3ff000000000000L & l) == 0L)

-                     break;

-                  if (kind > 14)

-                     kind = 14;

-                  jjCheckNAdd(156);

-                  break;

-               case 157:

-                  if ((0x3ff000000000000L & l) == 0L)

-                     break;

-                  if (kind > 13)

-                     kind = 13;

-                  jjCheckNAddStates(0, 14);

-                  break;

-               case 158:

-                  if ((0x3ff000000000000L & l) == 0L)

-                     break;

-                  if (kind > 17)

-                     kind = 17;

-                  jjCheckNAdd(158);

-                  break;

-               case 164:

-                  if (curChar == 32)

-                     jjstateSet[jjnewStateCnt++] = 163;

-                  break;

-               case 170:

-                  if (curChar == 32)

-                     jjstateSet[jjnewStateCnt++] = 169;

-                  break;

-               case 174:

-                  if (curChar == 32)

-                     jjstateSet[jjnewStateCnt++] = 173;

-                  break;

-               case 181:

-                  if (curChar == 32)

-                     jjstateSet[jjnewStateCnt++] = 180;

-                  break;

-               default : break;

-            }

-         } while(i != startsAt);

-      }

-      else if (curChar < 128)

-      {

-         long l = 1L << (curChar & 077);

-         do

-         {

-            switch(jjstateSet[--i])

-            {

-               case 0:

-                  if ((0xffffffffd7ffffffL & l) != 0L)

-                  {

-                     if (kind > 43)

-                        kind = 43;

-                     jjCheckNAdd(52);

-                  }

-                  else if (curChar == 91)

-                     jjCheckNAddStates(29, 31);

-                  if ((0x2000000020L & l) != 0L)

-                     jjAddStates(68, 69);

-                  else if (curChar == 108)

-                     jjAddStates(70, 71);

-                  else if (curChar == 105)

-                     jjCheckNAddStates(72, 76);

-                  else if (curChar == 126)

-                     jjstateSet[jjnewStateCnt++] = 50;

-                  else if (curChar == 103)

-                     jjstateSet[jjnewStateCnt++] = 47;

-                  else if (curChar == 102)

-                     jjstateSet[jjnewStateCnt++] = 30;

-                  else if (curChar == 116)

-                     jjstateSet[jjnewStateCnt++] = 26;

-                  else if (curChar == 111)

-                     jjstateSet[jjnewStateCnt++] = 22;

-                  else if (curChar == 124)

-                     jjstateSet[jjnewStateCnt++] = 20;

-                  else if (curChar == 97)

-                     jjstateSet[jjnewStateCnt++] = 18;

-                  break;

-               case 2:

-                  if ((0x2000000020L & l) != 0L)

-                     jjAddStates(68, 69);

-                  break;

-               case 6:

-                  if (curChar == 92)

-                     jjstateSet[jjnewStateCnt++] = 7;

-                  break;

-               case 7:

-                  jjCheckNAddStates(26, 28);

-                  break;

-               case 8:

-                  if ((0xffffffffefffffffL & l) != 0L)

-                     jjCheckNAddStates(26, 28);

-                  break;

-               case 11:

-                  if (curChar == 92)

-                     jjstateSet[jjnewStateCnt++] = 12;

-                  break;

-               case 12:

-                  jjCheckNAddStates(23, 25);

-                  break;

-               case 13:

-                  if ((0xffffffffefffffffL & l) != 0L)

-                     jjCheckNAddStates(23, 25);

-                  break;

-               case 17:

-                  if (curChar == 100 && kind > 21)

-                     kind = 21;

-                  break;

-               case 18:

-                  if (curChar == 110)

-                     jjstateSet[jjnewStateCnt++] = 17;

-                  break;

-               case 19:

-                  if (curChar == 97)

-                     jjstateSet[jjnewStateCnt++] = 18;

-                  break;

-               case 20:

-                  if (curChar == 124 && kind > 22)

-                     kind = 22;

-                  break;

-               case 21:

-                  if (curChar == 124)

-                     jjstateSet[jjnewStateCnt++] = 20;

-                  break;

-               case 22:

-                  if (curChar == 114 && kind > 22)

-                     kind = 22;

-                  break;

-               case 23:

-                  if (curChar == 111)

-                     jjstateSet[jjnewStateCnt++] = 22;

-                  break;

-               case 24:

-                  if (curChar == 101 && kind > 27)

-                     kind = 27;

-                  break;

-               case 25:

-                  if (curChar == 117)

-                     jjCheckNAdd(24);

-                  break;

-               case 26:

-                  if (curChar == 114)

-                     jjstateSet[jjnewStateCnt++] = 25;

-                  break;

-               case 27:

-                  if (curChar == 116)

-                     jjstateSet[jjnewStateCnt++] = 26;

-                  break;

-               case 28:

-                  if (curChar == 115)

-                     jjCheckNAdd(24);

-                  break;

-               case 29:

-                  if (curChar == 108)

-                     jjstateSet[jjnewStateCnt++] = 28;

-                  break;

-               case 30:

-                  if (curChar == 97)

-                     jjstateSet[jjnewStateCnt++] = 29;

-                  break;

-               case 31:

-                  if (curChar == 102)

-                     jjstateSet[jjnewStateCnt++] = 30;

-                  break;

-               case 37:

-                  if (curChar == 110 && kind > 30)

-                     kind = 30;

-                  break;

-               case 38:

-                  if (curChar == 97)

-                     jjstateSet[jjnewStateCnt++] = 37;

-                  break;

-               case 39:

-                  if (curChar == 104)

-                     jjstateSet[jjnewStateCnt++] = 38;

-                  break;

-               case 40:

-                  if (curChar == 116)

-                     jjstateSet[jjnewStateCnt++] = 39;

-                  break;

-               case 42:

-                  if (curChar == 114)

-                     jjstateSet[jjnewStateCnt++] = 41;

-                  break;

-               case 43:

-                  if (curChar == 101)

-                     jjstateSet[jjnewStateCnt++] = 42;

-                  break;

-               case 44:

-                  if (curChar == 116)

-                     jjstateSet[jjnewStateCnt++] = 43;

-                  break;

-               case 45:

-                  if (curChar == 97)

-                     jjstateSet[jjnewStateCnt++] = 44;

-                  break;

-               case 46:

-                  if (curChar == 101)

-                     jjstateSet[jjnewStateCnt++] = 45;

-                  break;

-               case 47:

-                  if (curChar == 114)

-                     jjstateSet[jjnewStateCnt++] = 46;

-                  break;

-               case 48:

-                  if (curChar == 103)

-                     jjstateSet[jjnewStateCnt++] = 47;

-                  break;

-               case 51:

-                  if (curChar == 126)

-                     jjstateSet[jjnewStateCnt++] = 50;

-                  break;

-               case 52:

-                  if ((0xffffffffd7ffffffL & l) == 0L)

-                     break;

-                  if (kind > 43)

-                     kind = 43;

-                  jjCheckNAdd(52);

-                  break;

-               case 53:

-                  if (curChar == 91)

-                     jjCheckNAddStates(29, 31);

-                  break;

-               case 54:

-                  if (curChar == 92)

-                     jjstateSet[jjnewStateCnt++] = 55;

-                  break;

-               case 55:

-                  jjCheckNAddStates(29, 31);

-                  break;

-               case 56:

-                  if ((0xffffffffcfffffffL & l) != 0L)

-                     jjCheckNAddStates(29, 31);

-                  break;

-               case 57:

-                  if (curChar == 93 && kind > 44)

-                     kind = 44;

-                  break;

-               case 73:

-                  if (curChar == 84)

-                     jjstateSet[jjnewStateCnt++] = 74;

-                  break;

-               case 109:

-                  if (curChar == 84)

-                     jjstateSet[jjnewStateCnt++] = 110;

-                  break;

-               case 147:

-                  if ((0x2000000020L & l) != 0L)

-                     jjAddStates(77, 78);

-                  break;

-               case 153:

-                  if ((0x2000000020L & l) != 0L)

-                     jjAddStates(79, 80);

-                  break;

-               case 159:

-                  if (curChar == 105)

-                     jjCheckNAddStates(72, 76);

-                  break;

-               case 160:

-                  if (curChar == 115 && kind > 28)

-                     kind = 28;

-                  break;

-               case 161:

-                  if (curChar == 116 && kind > 29)

-                     kind = 29;

-                  break;

-               case 162:

-                  if (curChar == 111)

-                     jjstateSet[jjnewStateCnt++] = 161;

-                  break;

-               case 163:

-                  if (curChar == 110)

-                     jjstateSet[jjnewStateCnt++] = 162;

-                  break;

-               case 165:

-                  if (curChar == 115)

-                     jjstateSet[jjnewStateCnt++] = 164;

-                  break;

-               case 166:

-                  if (curChar == 101 && kind > 34)

-                     kind = 34;

-                  break;

-               case 167:

-               case 185:

-                  if (curChar == 107)

-                     jjCheckNAdd(166);

-                  break;

-               case 168:

-                  if (curChar == 105)

-                     jjstateSet[jjnewStateCnt++] = 167;

-                  break;

-               case 169:

-                  if (curChar == 108)

-                     jjstateSet[jjnewStateCnt++] = 168;

-                  break;

-               case 171:

-                  if (curChar == 115)

-                     jjstateSet[jjnewStateCnt++] = 170;

-                  break;

-               case 172:

-                  if (curChar == 110 && kind > 40)

-                     kind = 40;

-                  break;

-               case 173:

-                  if (curChar == 105)

-                     jjCheckNAdd(172);

-                  break;

-               case 175:

-                  if (curChar == 115)

-                     jjstateSet[jjnewStateCnt++] = 174;

-                  break;

-               case 176:

-                  if (curChar == 108)

-                     jjAddStates(70, 71);

-                  break;

-               case 177:

-                  if (curChar == 110 && kind > 32)

-                     kind = 32;

-                  break;

-               case 178:

-                  if (curChar == 97)

-                     jjstateSet[jjnewStateCnt++] = 177;

-                  break;

-               case 179:

-                  if (curChar == 104)

-                     jjstateSet[jjnewStateCnt++] = 178;

-                  break;

-               case 180:

-                  if (curChar == 116)

-                     jjstateSet[jjnewStateCnt++] = 179;

-                  break;

-               case 182:

-                  if (curChar == 115)

-                     jjstateSet[jjnewStateCnt++] = 181;

-                  break;

-               case 183:

-                  if (curChar == 115)

-                     jjstateSet[jjnewStateCnt++] = 182;

-                  break;

-               case 184:

-                  if (curChar == 101)

-                     jjstateSet[jjnewStateCnt++] = 183;

-                  break;

-               case 186:

-                  if (curChar == 105)

-                     jjstateSet[jjnewStateCnt++] = 185;

-                  break;

-               default : break;

-            }

-         } while(i != startsAt);

-      }

-      else

-      {

-         int hiByte = (int)(curChar >> 8);

-         int i1 = hiByte >> 6;

-         long l1 = 1L << (hiByte & 077);

-         int i2 = (curChar & 0xff) >> 6;

-         long l2 = 1L << (curChar & 077);

-         do

-         {

-            switch(jjstateSet[--i])

-            {

-               case 0:

-               case 52:

-                  if (!jjCanMove_0(hiByte, i1, i2, l1, l2))

-                     break;

-                  if (kind > 43)

-                     kind = 43;

-                  jjCheckNAdd(52);

-                  break;

-               case 7:

-               case 8:

-                  if (jjCanMove_0(hiByte, i1, i2, l1, l2))

-                     jjCheckNAddStates(26, 28);

-                  break;

-               case 12:

-               case 13:

-                  if (jjCanMove_0(hiByte, i1, i2, l1, l2))

-                     jjCheckNAddStates(23, 25);

-                  break;

-               case 55:

-               case 56:

-                  if (jjCanMove_0(hiByte, i1, i2, l1, l2))

-                     jjCheckNAddStates(29, 31);

-                  break;

-               default : break;

-            }

-         } while(i != startsAt);

-      }

-      if (kind != 0x7fffffff)

-      {

-         jjmatchedKind = kind;

-         jjmatchedPos = curPos;

-         kind = 0x7fffffff;

-      }

-      ++curPos;

-      if ((i = jjnewStateCnt) == (startsAt = 187 - (jjnewStateCnt = startsAt)))

-         return curPos;

-      try { curChar = input_stream.readChar(); }

-      catch(java.io.IOException e) { return curPos; }

-   }

-}

+};
+private int jjMoveNfa_0(int startState, int curPos)
+{
+   int startsAt = 0;
+   jjnewStateCnt = 187;
+   int i = 1;
+   jjstateSet[0] = startState;
+   int kind = 0x7fffffff;
+   for (;;)
+   {
+      if (++jjround == 0x7fffffff)
+         ReInitRounds();
+      if (curChar < 64)
+      {
+         long l = 1L << curChar;
+         do
+         {
+            switch(jjstateSet[--i])
+            {
+               case 0:
+                  if ((0x8c00846affffffffL & l) != 0L)
+                  {
+                     if (kind > 43)
+                        kind = 43;
+                     jjCheckNAdd(52);
+                  }
+                  else if ((0x3ff000000000000L & l) != 0L)
+                  {
+                     if (kind > 13)
+                        kind = 13;
+                     jjCheckNAddStates(0, 14);
+                  }
+                  else if (curChar == 45)
+                     jjCheckNAddStates(15, 22);
+                  else if (curChar == 60)
+                  {
+                     if (kind > 32)
+                        kind = 32;
+                  }
+                  else if (curChar == 62)
+                  {
+                     if (kind > 30)
+                        kind = 30;
+                  }
+                  else if (curChar == 61)
+                     jjstateSet[jjnewStateCnt++] = 32;
+                  else if (curChar == 34)
+                     jjCheckNAddStates(23, 25);
+                  else if (curChar == 39)
+                     jjCheckNAddStates(26, 28);
+                  else if (curChar == 46)
+                     jjCheckNAdd(1);
+                  if (curChar == 33)
+                     jjstateSet[jjnewStateCnt++] = 34;
+                  else if (curChar == 38)
+                     jjstateSet[jjnewStateCnt++] = 15;
+                  break;
+               case 1:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 15)
+                     kind = 15;
+                  jjCheckNAdd(1);
+                  break;
+               case 3:
+                  if ((0x280000000000L & l) != 0L)
+                     jjCheckNAdd(4);
+                  break;
+               case 4:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 16)
+                     kind = 16;
+                  jjCheckNAdd(4);
+                  break;
+               case 5:
+                  if (curChar == 39)
+                     jjCheckNAddStates(26, 28);
+                  break;
+               case 7:
+                  jjCheckNAddStates(26, 28);
+                  break;
+               case 8:
+                  if ((0xffffff7fffffffffL & l) != 0L)
+                     jjCheckNAddStates(26, 28);
+                  break;
+               case 9:
+                  if (curChar == 39 && kind > 18)
+                     kind = 18;
+                  break;
+               case 10:
+                  if (curChar == 34)
+                     jjCheckNAddStates(23, 25);
+                  break;
+               case 12:
+                  jjCheckNAddStates(23, 25);
+                  break;
+               case 13:
+                  if ((0xfffffffbffffffffL & l) != 0L)
+                     jjCheckNAddStates(23, 25);
+                  break;
+               case 14:
+                  if (curChar == 34 && kind > 18)
+                     kind = 18;
+                  break;
+               case 15:
+                  if (curChar == 38 && kind > 21)
+                     kind = 21;
+                  break;
+               case 16:
+                  if (curChar == 38)
+                     jjstateSet[jjnewStateCnt++] = 15;
+                  break;
+               case 32:
+                  if (curChar == 61 && kind > 28)
+                     kind = 28;
+                  break;
+               case 33:
+                  if (curChar == 61)
+                     jjstateSet[jjnewStateCnt++] = 32;
+                  break;
+               case 34:
+                  if (curChar == 61 && kind > 29)
+                     kind = 29;
+                  break;
+               case 35:
+                  if (curChar == 33)
+                     jjstateSet[jjnewStateCnt++] = 34;
+                  break;
+               case 36:
+                  if (curChar == 62 && kind > 30)
+                     kind = 30;
+                  break;
+               case 41:
+                  if (curChar == 32)
+                     jjstateSet[jjnewStateCnt++] = 40;
+                  break;
+               case 49:
+                  if (curChar == 60 && kind > 32)
+                     kind = 32;
+                  break;
+               case 50:
+                  if (curChar == 61 && kind > 34)
+                     kind = 34;
+                  break;
+               case 52:
+                  if ((0x8c00846affffffffL & l) == 0L)
+                     break;
+                  if (kind > 43)
+                     kind = 43;
+                  jjCheckNAdd(52);
+                  break;
+               case 55:
+               case 56:
+                  jjCheckNAddStates(29, 31);
+                  break;
+               case 58:
+                  if (curChar == 45)
+                     jjCheckNAddStates(15, 22);
+                  break;
+               case 59:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     jjCheckNAddTwoStates(60, 94);
+                  break;
+               case 60:
+                  if (curChar == 45)
+                     jjstateSet[jjnewStateCnt++] = 61;
+                  break;
+               case 61:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     jjCheckNAddTwoStates(62, 93);
+                  break;
+               case 62:
+                  if (curChar == 45)
+                     jjstateSet[jjnewStateCnt++] = 63;
+                  break;
+               case 63:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     jjCheckNAddTwoStates(64, 92);
+                  break;
+               case 64:
+                  if (curChar == 45)
+                     jjCheckNAdd(65);
+                  break;
+               case 65:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     jjCheckNAddTwoStates(65, 66);
+                  break;
+               case 66:
+                  if (curChar == 45)
+                     jjstateSet[jjnewStateCnt++] = 67;
+                  break;
+               case 67:
+                  if ((0x3000000000000L & l) != 0L)
+                     jjCheckNAddTwoStates(68, 69);
+                  break;
+               case 68:
+                  if (curChar == 45)
+                     jjCheckNAdd(69);
+                  break;
+               case 69:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     jjCheckNAddTwoStates(69, 70);
+                  break;
+               case 70:
+                  if (curChar == 45)
+                     jjstateSet[jjnewStateCnt++] = 71;
+                  break;
+               case 71:
+                  if ((0xf000000000000L & l) != 0L)
+                     jjstateSet[jjnewStateCnt++] = 72;
+                  break;
+               case 72:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     jjstateSet[jjnewStateCnt++] = 73;
+                  break;
+               case 74:
+                  if ((0x7000000000000L & l) != 0L)
+                     jjstateSet[jjnewStateCnt++] = 75;
+                  break;
+               case 75:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     jjstateSet[jjnewStateCnt++] = 76;
+                  break;
+               case 76:
+                  if (curChar == 58)
+                     jjstateSet[jjnewStateCnt++] = 77;
+                  break;
+               case 77:
+                  if ((0x3f000000000000L & l) != 0L)
+                     jjstateSet[jjnewStateCnt++] = 78;
+                  break;
+               case 78:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     jjCheckNAddTwoStates(79, 86);
+                  break;
+               case 79:
+                  if (curChar == 58)
+                     jjstateSet[jjnewStateCnt++] = 80;
+                  break;
+               case 80:
+                  if ((0x3f000000000000L & l) != 0L)
+                     jjstateSet[jjnewStateCnt++] = 81;
+                  break;
+               case 81:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     jjCheckNAddTwoStates(82, 86);
+                  break;
+               case 82:
+                  if (curChar == 46)
+                     jjstateSet[jjnewStateCnt++] = 83;
+                  break;
+               case 83:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     jjstateSet[jjnewStateCnt++] = 84;
+                  break;
+               case 84:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     jjstateSet[jjnewStateCnt++] = 85;
+                  break;
+               case 85:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     jjCheckNAdd(86);
+                  break;
+               case 86:
+                  if ((0x280000000000L & l) != 0L)
+                     jjstateSet[jjnewStateCnt++] = 87;
+                  break;
+               case 87:
+                  if ((0x7000000000000L & l) != 0L)
+                     jjstateSet[jjnewStateCnt++] = 88;
+                  break;
+               case 88:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     jjstateSet[jjnewStateCnt++] = 89;
+                  break;
+               case 89:
+                  if (curChar == 58)
+                     jjstateSet[jjnewStateCnt++] = 90;
+                  break;
+               case 90:
+                  if ((0x3f000000000000L & l) != 0L)
+                     jjstateSet[jjnewStateCnt++] = 91;
+                  break;
+               case 91:
+                  if ((0x3ff000000000000L & l) != 0L && kind > 10)
+                     kind = 10;
+                  break;
+               case 92:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     jjCheckNAddStates(32, 35);
+                  break;
+               case 93:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     jjCheckNAddStates(36, 39);
+                  break;
+               case 94:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     jjCheckNAddStates(40, 43);
+                  break;
+               case 95:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     jjCheckNAddTwoStates(96, 124);
+                  break;
+               case 96:
+                  if (curChar == 45)
+                     jjstateSet[jjnewStateCnt++] = 97;
+                  break;
+               case 97:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     jjCheckNAddTwoStates(98, 123);
+                  break;
+               case 98:
+                  if (curChar == 45)
+                     jjstateSet[jjnewStateCnt++] = 99;
+                  break;
+               case 99:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     jjCheckNAddTwoStates(100, 122);
+                  break;
+               case 100:
+                  if (curChar == 45)
+                     jjCheckNAdd(101);
+                  break;
+               case 101:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     jjCheckNAddTwoStates(101, 102);
+                  break;
+               case 102:
+                  if (curChar == 45)
+                     jjstateSet[jjnewStateCnt++] = 103;
+                  break;
+               case 103:
+                  if ((0x3000000000000L & l) != 0L)
+                     jjCheckNAddTwoStates(104, 105);
+                  break;
+               case 104:
+                  if (curChar == 45)
+                     jjCheckNAdd(105);
+                  break;
+               case 105:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     jjCheckNAddTwoStates(105, 106);
+                  break;
+               case 106:
+                  if (curChar == 45)
+                     jjstateSet[jjnewStateCnt++] = 107;
+                  break;
+               case 107:
+                  if ((0xf000000000000L & l) != 0L)
+                     jjstateSet[jjnewStateCnt++] = 108;
+                  break;
+               case 108:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     jjstateSet[jjnewStateCnt++] = 109;
+                  break;
+               case 110:
+                  if ((0x7000000000000L & l) != 0L)
+                     jjstateSet[jjnewStateCnt++] = 111;
+                  break;
+               case 111:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     jjstateSet[jjnewStateCnt++] = 112;
+                  break;
+               case 112:
+                  if (curChar == 58)
+                     jjstateSet[jjnewStateCnt++] = 113;
+                  break;
+               case 113:
+                  if ((0x3f000000000000L & l) != 0L)
+                     jjstateSet[jjnewStateCnt++] = 114;
+                  break;
+               case 114:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 11)
+                     kind = 11;
+                  jjstateSet[jjnewStateCnt++] = 115;
+                  break;
+               case 115:
+                  if (curChar == 58)
+                     jjstateSet[jjnewStateCnt++] = 116;
+                  break;
+               case 116:
+                  if ((0x3f000000000000L & l) != 0L)
+                     jjstateSet[jjnewStateCnt++] = 117;
+                  break;
+               case 117:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 11)
+                     kind = 11;
+                  jjstateSet[jjnewStateCnt++] = 118;
+                  break;
+               case 118:
+                  if (curChar == 46)
+                     jjstateSet[jjnewStateCnt++] = 119;
+                  break;
+               case 119:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     jjstateSet[jjnewStateCnt++] = 120;
+                  break;
+               case 120:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     jjstateSet[jjnewStateCnt++] = 121;
+                  break;
+               case 121:
+                  if ((0x3ff000000000000L & l) != 0L && kind > 11)
+                     kind = 11;
+                  break;
+               case 122:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     jjCheckNAddStates(44, 47);
+                  break;
+               case 123:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     jjCheckNAddStates(48, 51);
+                  break;
+               case 124:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     jjCheckNAddStates(52, 55);
+                  break;
+               case 125:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     jjCheckNAddTwoStates(126, 141);
+                  break;
+               case 126:
+                  if (curChar == 45)
+                     jjstateSet[jjnewStateCnt++] = 127;
+                  break;
+               case 127:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     jjCheckNAddTwoStates(128, 140);
+                  break;
+               case 128:
+                  if (curChar == 45)
+                     jjstateSet[jjnewStateCnt++] = 129;
+                  break;
+               case 129:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     jjCheckNAddTwoStates(130, 139);
+                  break;
+               case 130:
+                  if (curChar == 45)
+                     jjCheckNAdd(131);
+                  break;
+               case 131:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     jjCheckNAddTwoStates(131, 132);
+                  break;
+               case 132:
+                  if (curChar == 45)
+                     jjstateSet[jjnewStateCnt++] = 133;
+                  break;
+               case 133:
+                  if ((0x3000000000000L & l) != 0L)
+                     jjCheckNAddTwoStates(134, 135);
+                  break;
+               case 134:
+                  if (curChar == 45)
+                     jjCheckNAdd(135);
+                  break;
+               case 135:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     jjCheckNAddTwoStates(135, 136);
+                  break;
+               case 136:
+                  if (curChar == 45)
+                     jjstateSet[jjnewStateCnt++] = 137;
+                  break;
+               case 137:
+                  if ((0xf000000000000L & l) != 0L)
+                     jjstateSet[jjnewStateCnt++] = 138;
+                  break;
+               case 138:
+                  if ((0x3ff000000000000L & l) != 0L && kind > 12)
+                     kind = 12;
+                  break;
+               case 139:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     jjCheckNAddStates(56, 59);
+                  break;
+               case 140:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     jjCheckNAddStates(60, 63);
+                  break;
+               case 141:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     jjCheckNAddStates(64, 67);
+                  break;
+               case 142:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 13)
+                     kind = 13;
+                  jjCheckNAdd(142);
+                  break;
+               case 143:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     jjCheckNAddTwoStates(143, 144);
+                  break;
+               case 144:
+                  if (curChar == 46)
+                     jjCheckNAdd(145);
+                  break;
+               case 145:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 13)
+                     kind = 13;
+                  jjCheckNAdd(145);
+                  break;
+               case 146:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     jjCheckNAddTwoStates(146, 147);
+                  break;
+               case 148:
+                  if ((0x280000000000L & l) != 0L)
+                     jjCheckNAdd(149);
+                  break;
+               case 149:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 13)
+                     kind = 13;
+                  jjCheckNAdd(149);
+                  break;
+               case 150:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     jjCheckNAddTwoStates(150, 151);
+                  break;
+               case 151:
+                  if (curChar == 46)
+                     jjCheckNAdd(152);
+                  break;
+               case 152:
+                  if ((0x3ff000000000000L & l) != 0L)
+                     jjCheckNAddTwoStates(152, 153);
+                  break;
+               case 154:
+                  if ((0x280000000000L & l) != 0L)
+                     jjCheckNAdd(155);
+                  break;
+               case 155:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 13)
+                     kind = 13;
+                  jjCheckNAdd(155);
+                  break;
+               case 156:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 14)
+                     kind = 14;
+                  jjCheckNAdd(156);
+                  break;
+               case 157:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 13)
+                     kind = 13;
+                  jjCheckNAddStates(0, 14);
+                  break;
+               case 158:
+                  if ((0x3ff000000000000L & l) == 0L)
+                     break;
+                  if (kind > 17)
+                     kind = 17;
+                  jjCheckNAdd(158);
+                  break;
+               case 164:
+                  if (curChar == 32)
+                     jjstateSet[jjnewStateCnt++] = 163;
+                  break;
+               case 170:
+                  if (curChar == 32)
+                     jjstateSet[jjnewStateCnt++] = 169;
+                  break;
+               case 174:
+                  if (curChar == 32)
+                     jjstateSet[jjnewStateCnt++] = 173;
+                  break;
+               case 181:
+                  if (curChar == 32)
+                     jjstateSet[jjnewStateCnt++] = 180;
+                  break;
+               default : break;
+            }
+         } while(i != startsAt);
+      }
+      else if (curChar < 128)
+      {
+         long l = 1L << (curChar & 077);
+         do
+         {
+            switch(jjstateSet[--i])
+            {
+               case 0:
+                  if ((0xffffffffd7ffffffL & l) != 0L)
+                  {
+                     if (kind > 43)
+                        kind = 43;
+                     jjCheckNAdd(52);
+                  }
+                  else if (curChar == 91)
+                     jjCheckNAddStates(29, 31);
+                  if ((0x2000000020L & l) != 0L)
+                     jjAddStates(68, 69);
+                  else if (curChar == 108)
+                     jjAddStates(70, 71);
+                  else if (curChar == 105)
+                     jjCheckNAddStates(72, 76);
+                  else if (curChar == 126)
+                     jjstateSet[jjnewStateCnt++] = 50;
+                  else if (curChar == 103)
+                     jjstateSet[jjnewStateCnt++] = 47;
+                  else if (curChar == 102)
+                     jjstateSet[jjnewStateCnt++] = 30;
+                  else if (curChar == 116)
+                     jjstateSet[jjnewStateCnt++] = 26;
+                  else if (curChar == 111)
+                     jjstateSet[jjnewStateCnt++] = 22;
+                  else if (curChar == 124)
+                     jjstateSet[jjnewStateCnt++] = 20;
+                  else if (curChar == 97)
+                     jjstateSet[jjnewStateCnt++] = 18;
+                  break;
+               case 2:
+                  if ((0x2000000020L & l) != 0L)
+                     jjAddStates(68, 69);
+                  break;
+               case 6:
+                  if (curChar == 92)
+                     jjstateSet[jjnewStateCnt++] = 7;
+                  break;
+               case 7:
+                  jjCheckNAddStates(26, 28);
+                  break;
+               case 8:
+                  if ((0xffffffffefffffffL & l) != 0L)
+                     jjCheckNAddStates(26, 28);
+                  break;
+               case 11:
+                  if (curChar == 92)
+                     jjstateSet[jjnewStateCnt++] = 12;
+                  break;
+               case 12:
+                  jjCheckNAddStates(23, 25);
+                  break;
+               case 13:
+                  if ((0xffffffffefffffffL & l) != 0L)
+                     jjCheckNAddStates(23, 25);
+                  break;
+               case 17:
+                  if (curChar == 100 && kind > 21)
+                     kind = 21;
+                  break;
+               case 18:
+                  if (curChar == 110)
+                     jjstateSet[jjnewStateCnt++] = 17;
+                  break;
+               case 19:
+                  if (curChar == 97)
+                     jjstateSet[jjnewStateCnt++] = 18;
+                  break;
+               case 20:
+                  if (curChar == 124 && kind > 22)
+                     kind = 22;
+                  break;
+               case 21:
+                  if (curChar == 124)
+                     jjstateSet[jjnewStateCnt++] = 20;
+                  break;
+               case 22:
+                  if (curChar == 114 && kind > 22)
+                     kind = 22;
+                  break;
+               case 23:
+                  if (curChar == 111)
+                     jjstateSet[jjnewStateCnt++] = 22;
+                  break;
+               case 24:
+                  if (curChar == 101 && kind > 27)
+                     kind = 27;
+                  break;
+               case 25:
+                  if (curChar == 117)
+                     jjCheckNAdd(24);
+                  break;
+               case 26:
+                  if (curChar == 114)
+                     jjstateSet[jjnewStateCnt++] = 25;
+                  break;
+               case 27:
+                  if (curChar == 116)
+                     jjstateSet[jjnewStateCnt++] = 26;
+                  break;
+               case 28:
+                  if (curChar == 115)
+                     jjCheckNAdd(24);
+                  break;
+               case 29:
+                  if (curChar == 108)
+                     jjstateSet[jjnewStateCnt++] = 28;
+                  break;
+               case 30:
+                  if (curChar == 97)
+                     jjstateSet[jjnewStateCnt++] = 29;
+                  break;
+               case 31:
+                  if (curChar == 102)
+                     jjstateSet[jjnewStateCnt++] = 30;
+                  break;
+               case 37:
+                  if (curChar == 110 && kind > 30)
+                     kind = 30;
+                  break;
+               case 38:
+                  if (curChar == 97)
+                     jjstateSet[jjnewStateCnt++] = 37;
+                  break;
+               case 39:
+                  if (curChar == 104)
+                     jjstateSet[jjnewStateCnt++] = 38;
+                  break;
+               case 40:
+                  if (curChar == 116)
+                     jjstateSet[jjnewStateCnt++] = 39;
+                  break;
+               case 42:
+                  if (curChar == 114)
+                     jjstateSet[jjnewStateCnt++] = 41;
+                  break;
+               case 43:
+                  if (curChar == 101)
+                     jjstateSet[jjnewStateCnt++] = 42;
+                  break;
+               case 44:
+                  if (curChar == 116)
+                     jjstateSet[jjnewStateCnt++] = 43;
+                  break;
+               case 45:
+                  if (curChar == 97)
+                     jjstateSet[jjnewStateCnt++] = 44;
+                  break;
+               case 46:
+                  if (curChar == 101)
+                     jjstateSet[jjnewStateCnt++] = 45;
+                  break;
+               case 47:
+                  if (curChar == 114)
+                     jjstateSet[jjnewStateCnt++] = 46;
+                  break;
+               case 48:
+                  if (curChar == 103)
+                     jjstateSet[jjnewStateCnt++] = 47;
+                  break;
+               case 51:
+                  if (curChar == 126)
+                     jjstateSet[jjnewStateCnt++] = 50;
+                  break;
+               case 52:
+                  if ((0xffffffffd7ffffffL & l) == 0L)
+                     break;
+                  if (kind > 43)
+                     kind = 43;
+                  jjCheckNAdd(52);
+                  break;
+               case 53:
+                  if (curChar == 91)
+                     jjCheckNAddStates(29, 31);
+                  break;
+               case 54:
+                  if (curChar == 92)
+                     jjstateSet[jjnewStateCnt++] = 55;
+                  break;
+               case 55:
+                  jjCheckNAddStates(29, 31);
+                  break;
+               case 56:
+                  if ((0xffffffffcfffffffL & l) != 0L)
+                     jjCheckNAddStates(29, 31);
+                  break;
+               case 57:
+                  if (curChar == 93 && kind > 44)
+                     kind = 44;
+                  break;
+               case 73:
+                  if (curChar == 84)
+                     jjstateSet[jjnewStateCnt++] = 74;
+                  break;
+               case 109:
+                  if (curChar == 84)
+                     jjstateSet[jjnewStateCnt++] = 110;
+                  break;
+               case 147:
+                  if ((0x2000000020L & l) != 0L)
+                     jjAddStates(77, 78);
+                  break;
+               case 153:
+                  if ((0x2000000020L & l) != 0L)
+                     jjAddStates(79, 80);
+                  break;
+               case 159:
+                  if (curChar == 105)
+                     jjCheckNAddStates(72, 76);
+                  break;
+               case 160:
+                  if (curChar == 115 && kind > 28)
+                     kind = 28;
+                  break;
+               case 161:
+                  if (curChar == 116 && kind > 29)
+                     kind = 29;
+                  break;
+               case 162:
+                  if (curChar == 111)
+                     jjstateSet[jjnewStateCnt++] = 161;
+                  break;
+               case 163:
+                  if (curChar == 110)
+                     jjstateSet[jjnewStateCnt++] = 162;
+                  break;
+               case 165:
+                  if (curChar == 115)
+                     jjstateSet[jjnewStateCnt++] = 164;
+                  break;
+               case 166:
+                  if (curChar == 101 && kind > 34)
+                     kind = 34;
+                  break;
+               case 167:
+               case 185:
+                  if (curChar == 107)
+                     jjCheckNAdd(166);
+                  break;
+               case 168:
+                  if (curChar == 105)
+                     jjstateSet[jjnewStateCnt++] = 167;
+                  break;
+               case 169:
+                  if (curChar == 108)
+                     jjstateSet[jjnewStateCnt++] = 168;
+                  break;
+               case 171:
+                  if (curChar == 115)
+                     jjstateSet[jjnewStateCnt++] = 170;
+                  break;
+               case 172:
+                  if (curChar == 110 && kind > 40)
+                     kind = 40;
+                  break;
+               case 173:
+                  if (curChar == 105)
+                     jjCheckNAdd(172);
+                  break;
+               case 175:
+                  if (curChar == 115)
+                     jjstateSet[jjnewStateCnt++] = 174;
+                  break;
+               case 176:
+                  if (curChar == 108)
+                     jjAddStates(70, 71);
+                  break;
+               case 177:
+                  if (curChar == 110 && kind > 32)
+                     kind = 32;
+                  break;
+               case 178:
+                  if (curChar == 97)
+                     jjstateSet[jjnewStateCnt++] = 177;
+                  break;
+               case 179:
+                  if (curChar == 104)
+                     jjstateSet[jjnewStateCnt++] = 178;
+                  break;
+               case 180:
+                  if (curChar == 116)
+                     jjstateSet[jjnewStateCnt++] = 179;
+                  break;
+               case 182:
+                  if (curChar == 115)
+                     jjstateSet[jjnewStateCnt++] = 181;
+                  break;
+               case 183:
+                  if (curChar == 115)
+                     jjstateSet[jjnewStateCnt++] = 182;
+                  break;
+               case 184:
+                  if (curChar == 101)
+                     jjstateSet[jjnewStateCnt++] = 183;
+                  break;
+               case 186:
+                  if (curChar == 105)
+                     jjstateSet[jjnewStateCnt++] = 185;
+                  break;
+               default : break;
+            }
+         } while(i != startsAt);
+      }
+      else
+      {
+         int hiByte = (int)(curChar >> 8);
+         int i1 = hiByte >> 6;
+         long l1 = 1L << (hiByte & 077);
+         int i2 = (curChar & 0xff) >> 6;
+         long l2 = 1L << (curChar & 077);
+         do
+         {
+            switch(jjstateSet[--i])
+            {
+               case 0:
+               case 52:
+                  if (!jjCanMove_0(hiByte, i1, i2, l1, l2))
+                     break;
+                  if (kind > 43)
+                     kind = 43;
+                  jjCheckNAdd(52);
+                  break;
+               case 7:
+               case 8:
+                  if (jjCanMove_0(hiByte, i1, i2, l1, l2))
+                     jjCheckNAddStates(26, 28);
+                  break;
+               case 12:
+               case 13:
+                  if (jjCanMove_0(hiByte, i1, i2, l1, l2))
+                     jjCheckNAddStates(23, 25);
+                  break;
+               case 55:
+               case 56:
+                  if (jjCanMove_0(hiByte, i1, i2, l1, l2))
+                     jjCheckNAddStates(29, 31);
+                  break;
+               default : break;
+            }
+         } while(i != startsAt);
+      }
+      if (kind != 0x7fffffff)
+      {
+         jjmatchedKind = kind;
+         jjmatchedPos = curPos;
+         kind = 0x7fffffff;
+      }
+      ++curPos;
+      if ((i = jjnewStateCnt) == (startsAt = 187 - (jjnewStateCnt = startsAt)))
+         return curPos;
+      try { curChar = input_stream.readChar(); }
+      catch(java.io.IOException e) { return curPos; }
+   }
+}
 static final int[] jjnextStates = {
    60, 96, 126, 142, 143, 144, 146, 147, 150, 151, 156, 158, 141, 124, 94, 59, 
    95, 125, 142, 143, 146, 150, 156, 11, 13, 14, 6, 8, 9, 54, 56, 57, 
@@ -1484,237 +1484,237 @@
    98, 100, 122, 123, 96, 98, 123, 124, 130, 131, 132, 139, 128, 130, 139, 140, 
    126, 128, 140, 141, 3, 4, 184, 186, 160, 165, 171, 175, 172, 148, 149, 154, 
    155, 
-};

-private static final boolean jjCanMove_0(int hiByte, int i1, int i2, long l1, long l2)

-{

-   switch(hiByte)

-   {

-      case 0:

-         return ((jjbitVec2[i2] & l2) != 0L);

-      default :

-         if ((jjbitVec0[i1] & l1) != 0L)

-            return true;

-         return false;

-   }

-}

-

-/** Token literal values. */

-public static final String[] jjstrLiteralImages = {

-"", null, null, null, null, null, null, null, null, null, null, null, null, 

-null, null, null, null, null, null, null, null, null, null, "\156\165\154\154", 

-"\50", "\51", "\54", null, null, null, null, "\76\75", null, "\74\75", null, 

-"\156\157\164\40\154\151\153\145", "\143\157\156\164\141\151\156\163", 

-"\143\157\156\164\141\151\156\163\40\156\157\164", "\143\157\156\164\141\151\156\163\40\141\156\171", 

-"\143\157\156\164\141\151\156\163\40\156\157\164\40\141\156\171", null, "\156\157\164\40\151\156", "\44", null, null, null, };

-

-/** Lexer state names. */

-public static final String[] lexStateNames = {

-   "DEFAULT",

-};

+};
+private static final boolean jjCanMove_0(int hiByte, int i1, int i2, long l1, long l2)
+{
+   switch(hiByte)
+   {
+      case 0:
+         return ((jjbitVec2[i2] & l2) != 0L);
+      default :
+         if ((jjbitVec0[i1] & l1) != 0L)
+            return true;
+         return false;
+   }
+}
+
+/** Token literal values. */
+public static final String[] jjstrLiteralImages = {
+"", null, null, null, null, null, null, null, null, null, null, null, null, 
+null, null, null, null, null, null, null, null, null, null, "\156\165\154\154", 
+"\50", "\51", "\54", null, null, null, null, "\76\75", null, "\74\75", null, 
+"\156\157\164\40\154\151\153\145", "\143\157\156\164\141\151\156\163", 
+"\143\157\156\164\141\151\156\163\40\156\157\164", "\143\157\156\164\141\151\156\163\40\141\156\171", 
+"\143\157\156\164\141\151\156\163\40\156\157\164\40\141\156\171", null, "\156\157\164\40\151\156", "\44", null, null, null, };
+
+/** Lexer state names. */
+public static final String[] lexStateNames = {
+   "DEFAULT",
+};
 static final long[] jjtoToken = {
    0x3fffffe7fc01L, 
-};

+};
 static final long[] jjtoSkip = {
    0x6L, 
-};

-protected SimpleCharStream input_stream;

-private final int[] jjrounds = new int[187];

-private final int[] jjstateSet = new int[374];

-private final StringBuilder jjimage = new StringBuilder();

-private StringBuilder image = jjimage;

-private int jjimageLen;

-private int lengthOfMatch;

-protected char curChar;

-/** Constructor. */

-public FilterParserTokenManager(SimpleCharStream stream){

-   if (SimpleCharStream.staticFlag)

-      throw new Error("ERROR: Cannot use a static CharStream class with a non-static lexical analyzer.");

-   input_stream = stream;

-}

-

-/** Constructor. */

-public FilterParserTokenManager(SimpleCharStream stream, int lexState){

-   this(stream);

-   SwitchTo(lexState);

-}

-

-/** Reinitialise parser. */

-public void ReInit(SimpleCharStream stream)

-{

-   jjmatchedPos = jjnewStateCnt = 0;

-   curLexState = defaultLexState;

-   input_stream = stream;

-   ReInitRounds();

-}

-private void ReInitRounds()

-{

-   int i;

-   jjround = 0x80000001;

-   for (i = 187; i-- > 0;)

-      jjrounds[i] = 0x80000000;

-}

-

-/** Reinitialise parser. */

-public void ReInit(SimpleCharStream stream, int lexState)

-{

-   ReInit(stream);

-   SwitchTo(lexState);

-}

-

-/** Switch to specified lex state. */

-public void SwitchTo(int lexState)

-{

-   if (lexState >= 1 || lexState < 0)

-      throw new TokenMgrError("Error: Ignoring invalid lexical state : " + lexState + ". State unchanged.", TokenMgrError.INVALID_LEXICAL_STATE);

-   else

-      curLexState = lexState;

-}

-

-protected Token jjFillToken()

-{

-   final Token t;

-   final String curTokenImage;

-   final int beginLine;

-   final int endLine;

-   final int beginColumn;

-   final int endColumn;

-   String im = jjstrLiteralImages[jjmatchedKind];

-   curTokenImage = (im == null) ? input_stream.GetImage() : im;

-   beginLine = input_stream.getBeginLine();

-   beginColumn = input_stream.getBeginColumn();

-   endLine = input_stream.getEndLine();

-   endColumn = input_stream.getEndColumn();

-   t = Token.newToken(jjmatchedKind, curTokenImage);

-

-   t.beginLine = beginLine;

-   t.endLine = endLine;

-   t.beginColumn = beginColumn;

-   t.endColumn = endColumn;

-

-   return t;

-}

-

-int curLexState = 0;

-int defaultLexState = 0;

-int jjnewStateCnt;

-int jjround;

-int jjmatchedPos;

-int jjmatchedKind;

-

-/** Get the next Token. */

-public Token getNextToken() 

-{

-  Token matchedToken;

-  int curPos = 0;

-

+};
+protected SimpleCharStream input_stream;
+private final int[] jjrounds = new int[187];
+private final int[] jjstateSet = new int[374];
+private final StringBuilder jjimage = new StringBuilder();
+private StringBuilder image = jjimage;
+private int jjimageLen;
+private int lengthOfMatch;
+protected char curChar;
+/** Constructor. */
+public FilterParserTokenManager(SimpleCharStream stream){
+   if (SimpleCharStream.staticFlag)
+      throw new Error("ERROR: Cannot use a static CharStream class with a non-static lexical analyzer.");
+   input_stream = stream;
+}
+
+/** Constructor. */
+public FilterParserTokenManager(SimpleCharStream stream, int lexState){
+   this(stream);
+   SwitchTo(lexState);
+}
+
+/** Reinitialise parser. */
+public void ReInit(SimpleCharStream stream)
+{
+   jjmatchedPos = jjnewStateCnt = 0;
+   curLexState = defaultLexState;
+   input_stream = stream;
+   ReInitRounds();
+}
+private void ReInitRounds()
+{
+   int i;
+   jjround = 0x80000001;
+   for (i = 187; i-- > 0;)
+      jjrounds[i] = 0x80000000;
+}
+
+/** Reinitialise parser. */
+public void ReInit(SimpleCharStream stream, int lexState)
+{
+   ReInit(stream);
+   SwitchTo(lexState);
+}
+
+/** Switch to specified lex state. */
+public void SwitchTo(int lexState)
+{
+   if (lexState >= 1 || lexState < 0)
+      throw new TokenMgrError("Error: Ignoring invalid lexical state : " + lexState + ". State unchanged.", TokenMgrError.INVALID_LEXICAL_STATE);
+   else
+      curLexState = lexState;
+}
+
+protected Token jjFillToken()
+{
+   final Token t;
+   final String curTokenImage;
+   final int beginLine;
+   final int endLine;
+   final int beginColumn;
+   final int endColumn;
+   String im = jjstrLiteralImages[jjmatchedKind];
+   curTokenImage = (im == null) ? input_stream.GetImage() : im;
+   beginLine = input_stream.getBeginLine();
+   beginColumn = input_stream.getBeginColumn();
+   endLine = input_stream.getEndLine();
+   endColumn = input_stream.getEndColumn();
+   t = Token.newToken(jjmatchedKind, curTokenImage);
+
+   t.beginLine = beginLine;
+   t.endLine = endLine;
+   t.beginColumn = beginColumn;
+   t.endColumn = endColumn;
+
+   return t;
+}
+
+int curLexState = 0;
+int defaultLexState = 0;
+int jjnewStateCnt;
+int jjround;
+int jjmatchedPos;
+int jjmatchedKind;
+
+/** Get the next Token. */
+public Token getNextToken() 
+{
+  Token matchedToken;
+  int curPos = 0;
+
   EOFLoop :
-  for (;;)

-  {

-   try

-   {

-      curChar = input_stream.BeginToken();

-   }

-   catch(java.io.IOException e)

-   {

-      jjmatchedKind = 0;

-      matchedToken = jjFillToken();

-      return matchedToken;

-   }

-   image = jjimage;

-   image.setLength(0);

-   jjimageLen = 0;

-

-   try { input_stream.backup(0);

-      while (curChar <= 32 && (0x100000000L & (1L << curChar)) != 0L)

-         curChar = input_stream.BeginToken();

-   }

-   catch (java.io.IOException e1) { continue EOFLoop; }

-   jjmatchedKind = 0x7fffffff;

-   jjmatchedPos = 0;

-   curPos = jjMoveStringLiteralDfa0_0();

-   if (jjmatchedPos == 0 && jjmatchedKind > 45)

-   {

-      jjmatchedKind = 45;

-   }

-   if (jjmatchedKind != 0x7fffffff)

-   {

-      if (jjmatchedPos + 1 < curPos)

-         input_stream.backup(curPos - jjmatchedPos - 1);

-      if ((jjtoToken[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L)

-      {

-         matchedToken = jjFillToken();

-         TokenLexicalActions(matchedToken);

-         return matchedToken;

-      }

-      else

-      {

-         continue EOFLoop;

-      }

-   }

-   int error_line = input_stream.getEndLine();

-   int error_column = input_stream.getEndColumn();

-   String error_after = null;

-   boolean EOFSeen = false;

-   try { input_stream.readChar(); input_stream.backup(1); }

-   catch (java.io.IOException e1) {

-      EOFSeen = true;

-      error_after = curPos <= 1 ? "" : input_stream.GetImage();

-      if (curChar == '\n' || curChar == '\r') {

-         error_line++;

-         error_column = 0;

-      }

-      else

-         error_column++;

-   }

-   if (!EOFSeen) {

-      input_stream.backup(1);

-      error_after = curPos <= 1 ? "" : input_stream.GetImage();

-   }

-   throw new TokenMgrError(EOFSeen, curLexState, error_line, error_column, error_after, curChar, TokenMgrError.LEXICAL_ERROR);

-  }

-}

-

-void TokenLexicalActions(Token matchedToken)

-{

-   switch(jjmatchedKind)

-   {

-      case 18 :

-        image.append(input_stream.GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1)));

-                                       matchedToken.image = image.substring(1, lengthOfMatch - 1);

-         break;

-      case 44 :

-        image.append(input_stream.GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1)));

-                                                        matchedToken.image = image.substring(1, lengthOfMatch - 1);

-         break;

-      default :

-         break;

-   }

-}

-private void jjCheckNAdd(int state)

-{

-   if (jjrounds[state] != jjround)

-   {

-      jjstateSet[jjnewStateCnt++] = state;

-      jjrounds[state] = jjround;

-   }

-}

-private void jjAddStates(int start, int end)

-{

-   do {

-      jjstateSet[jjnewStateCnt++] = jjnextStates[start];

-   } while (start++ != end);

-}

-private void jjCheckNAddTwoStates(int state1, int state2)

-{

-   jjCheckNAdd(state1);

-   jjCheckNAdd(state2);

-}

-

-private void jjCheckNAddStates(int start, int end)

-{

-   do {

-      jjCheckNAdd(jjnextStates[start]);

-   } while (start++ != end);

-}

-

-}

+  for (;;)
+  {
+   try
+   {
+      curChar = input_stream.BeginToken();
+   }
+   catch(java.io.IOException e)
+   {
+      jjmatchedKind = 0;
+      matchedToken = jjFillToken();
+      return matchedToken;
+   }
+   image = jjimage;
+   image.setLength(0);
+   jjimageLen = 0;
+
+   try { input_stream.backup(0);
+      while (curChar <= 32 && (0x100000000L & (1L << curChar)) != 0L)
+         curChar = input_stream.BeginToken();
+   }
+   catch (java.io.IOException e1) { continue EOFLoop; }
+   jjmatchedKind = 0x7fffffff;
+   jjmatchedPos = 0;
+   curPos = jjMoveStringLiteralDfa0_0();
+   if (jjmatchedPos == 0 && jjmatchedKind > 45)
+   {
+      jjmatchedKind = 45;
+   }
+   if (jjmatchedKind != 0x7fffffff)
+   {
+      if (jjmatchedPos + 1 < curPos)
+         input_stream.backup(curPos - jjmatchedPos - 1);
+      if ((jjtoToken[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L)
+      {
+         matchedToken = jjFillToken();
+         TokenLexicalActions(matchedToken);
+         return matchedToken;
+      }
+      else
+      {
+         continue EOFLoop;
+      }
+   }
+   int error_line = input_stream.getEndLine();
+   int error_column = input_stream.getEndColumn();
+   String error_after = null;
+   boolean EOFSeen = false;
+   try { input_stream.readChar(); input_stream.backup(1); }
+   catch (java.io.IOException e1) {
+      EOFSeen = true;
+      error_after = curPos <= 1 ? "" : input_stream.GetImage();
+      if (curChar == '\n' || curChar == '\r') {
+         error_line++;
+         error_column = 0;
+      }
+      else
+         error_column++;
+   }
+   if (!EOFSeen) {
+      input_stream.backup(1);
+      error_after = curPos <= 1 ? "" : input_stream.GetImage();
+   }
+   throw new TokenMgrError(EOFSeen, curLexState, error_line, error_column, error_after, curChar, TokenMgrError.LEXICAL_ERROR);
+  }
+}
+
+void TokenLexicalActions(Token matchedToken)
+{
+   switch(jjmatchedKind)
+   {
+      case 18 :
+        image.append(input_stream.GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1)));
+                                       matchedToken.image = image.substring(1, lengthOfMatch - 1);
+         break;
+      case 44 :
+        image.append(input_stream.GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1)));
+                                                        matchedToken.image = image.substring(1, lengthOfMatch - 1);
+         break;
+      default :
+         break;
+   }
+}
+private void jjCheckNAdd(int state)
+{
+   if (jjrounds[state] != jjround)
+   {
+      jjstateSet[jjnewStateCnt++] = state;
+      jjrounds[state] = jjround;
+   }
+}
+private void jjAddStates(int start, int end)
+{
+   do {
+      jjstateSet[jjnewStateCnt++] = jjnextStates[start];
+   } while (start++ != end);
+}
+private void jjCheckNAddTwoStates(int state1, int state2)
+{
+   jjCheckNAdd(state1);
+   jjCheckNAdd(state2);
+}
+
+private void jjCheckNAddStates(int start, int end)
+{
+   do {
+      jjCheckNAdd(jjnextStates[start]);
+   } while (start++ != end);
+}
+
+}