]> source.dussan.org Git - vaadin-framework.git/commitdiff
Add license header for a couple of files 15/615/1
authorHaijian Wang <haijian@vaadin.com>
Thu, 10 Jan 2013 13:23:29 +0000 (15:23 +0200)
committerHaijian Wang <haijian@vaadin.com>
Thu, 10 Jan 2013 13:23:29 +0000 (15:23 +0200)
Change-Id: I859dcc23397f4eee4b7f4e296f69520e8d6b07f6

theme-compiler/src/com/vaadin/sass/internal/parser/Parser.java
theme-compiler/src/com/vaadin/sass/internal/parser/Parser.jj
theme-compiler/src/com/vaadin/sass/internal/parser/ParserConstants.java
theme-compiler/src/com/vaadin/sass/internal/parser/ParserTokenManager.java
theme-compiler/src/com/vaadin/sass/internal/tree/KeyframeSelectorNode.java
theme-compiler/src/com/vaadin/sass/internal/tree/KeyframesNode.java

index 70fab6413a970edfe9fcb55c0cc86d1f6e408e96..9ae0d0ac8ec844203c2e8b07417c8e4dc03c189b 100644 (file)
@@ -1,39 +1,53 @@
+/*
+ * Copyright 2000-2013 Vaadin Ltd.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
 /* Generated By:JavaCC: Do not edit this line. Parser.java */
 package com.vaadin.sass.internal.parser;
 
-import java.io.*;
-import java.net.*;
+import java.io.BufferedInputStream;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.net.URL;
 import java.util.ArrayList;
 import java.util.Locale;
-import java.util.Map;
 import java.util.UUID;
 
+import org.w3c.css.sac.CSSException;
+import org.w3c.css.sac.CSSParseException;
 import org.w3c.css.sac.ConditionFactory;
-import org.w3c.css.sac.Condition;
-import org.w3c.css.sac.SelectorFactory;
-import org.w3c.css.sac.SelectorList;
-import org.w3c.css.sac.Selector;
-import org.w3c.css.sac.SimpleSelector;
 import org.w3c.css.sac.DocumentHandler;
-import org.w3c.css.sac.InputSource;
 import org.w3c.css.sac.ErrorHandler;
-import org.w3c.css.sac.CSSException;
-import org.w3c.css.sac.CSSParseException;
-import org.w3c.css.sac.Locator;
+import org.w3c.css.sac.InputSource;
 import org.w3c.css.sac.LexicalUnit;
-
-import org.w3c.flute.parser.selectors.SelectorFactoryImpl;
+import org.w3c.css.sac.Locator;
+import org.w3c.css.sac.SelectorFactory;
+import org.w3c.css.sac.SelectorList;
 import org.w3c.flute.parser.selectors.ConditionFactoryImpl;
-
+import org.w3c.flute.parser.selectors.SelectorFactoryImpl;
 import org.w3c.flute.util.Encoding;
 
-import com.vaadin.sass.internal.handler.*;
-
-import com.vaadin.sass.internal.tree.*;
+import com.vaadin.sass.internal.handler.SCSSDocumentHandlerImpl;
+import com.vaadin.sass.internal.tree.Node;
+import com.vaadin.sass.internal.tree.VariableNode;
 
 /**
  * A CSS2 parser
- *
+ * 
  * @author Philippe Le H�garet
  * @version $Revision: 1.15 $
  */
@@ -64,13 +78,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
 
     /**
      * @@TODO
-     * @exception CSSException Not yet implemented
+     * @exception CSSException
+     *                Not yet implemented
      */
     public void setLocale(Locale locale) throws CSSException {
         throw new CSSException(CSSException.SAC_NOT_SUPPORTED_ERR);
     }
 
-    public InputSource getInputSource(){
+    public InputSource getInputSource() {
         return source;
     }
 
@@ -78,7 +93,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
      * Set the document handler for this parser
      */
     public void setDocumentHandler(DocumentHandler handler) {
-        this.documentHandler = (SCSSDocumentHandlerImpl) handler;
+        documentHandler = (SCSSDocumentHandlerImpl) handler;
     }
 
     public void setSelectorFactory(SelectorFactory selectorFactory) {
@@ -93,18 +108,21 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
      * Set the error handler for this parser
      */
     public void setErrorHandler(ErrorHandler error) {
-        this.errorHandler = error;
+        errorHandler = error;
     }
 
     /**
      * Main parse methods
-     *
-     * @param source the source of the style sheet.
-     * @exception IOException the source can't be parsed.
-     * @exception CSSException the source is not CSS valid.
+     * 
+     * @param source
+     *            the source of the style sheet.
+     * @exception IOException
+     *                the source can't be parsed.
+     * @exception CSSException
+     *                the source is not CSS valid.
      */
-    public void parseStyleSheet(InputSource source)
-            throws CSSException, IOException {
+    public void parseStyleSheet(InputSource source) throws CSSException,
+            IOException {
         this.source = source;
         ReInit(getCharStreamWithLurk(source));
         if (selectorFactory == null) {
@@ -119,25 +137,31 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
 
     /**
      * Convenient method for URIs.
-     *
-     * @param systemId the fully resolved URI of the style sheet.
-     * @exception IOException the source can't be parsed.
-     * @exception CSSException the source is not CSS valid.
+     * 
+     * @param systemId
+     *            the fully resolved URI of the style sheet.
+     * @exception IOException
+     *                the source can't be parsed.
+     * @exception CSSException
+     *                the source is not CSS valid.
      */
-    public void parseStyleSheet(String systemId)
-            throws CSSException, IOException {
+    public void parseStyleSheet(String systemId) throws CSSException,
+            IOException {
         parseStyleSheet(new InputSource(systemId));
     }
 
     /**
-     * This method parses only one rule (style rule or at-rule, except @charset).
-     *
-     * @param source the source of the rule.
-     * @exception IOException the source can't be parsed.
-     * @exception CSSException the source is not CSS valid.
+     * This method parses only one rule (style rule or at-rule, except
+     * @charset).
+     * 
+     * @param source
+     *            the source of the rule.
+     * @exception IOException
+     *                the source can't be parsed.
+     * @exception CSSException
+     *                the source is not CSS valid.
      */
-    public void parseRule(InputSource source)
-            throws CSSException, IOException {
+    public void parseRule(InputSource source) throws CSSException, IOException {
         this.source = source;
         ReInit(getCharStreamWithLurk(source));
 
@@ -153,13 +177,16 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
     /**
      * This method parses a style declaration (including the surrounding curly
      * braces).
-     *
-     * @param source the source of the style declaration.
-     * @exception IOException the source can't be parsed.
-     * @exception CSSException the source is not CSS valid.
+     * 
+     * @param source
+     *            the source of the style declaration.
+     * @exception IOException
+     *                the source can't be parsed.
+     * @exception CSSException
+     *                the source is not CSS valid.
      */
-    public void parseStyleDeclaration(InputSource source)
-            throws CSSException, IOException {
+    public void parseStyleDeclaration(InputSource source) throws CSSException,
+            IOException {
         this.source = source;
         ReInit(getCharStreamWithLurk(source));
 
@@ -174,6 +201,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
 
     /**
      * This methods returns "http://www.w3.org/TR/REC-CSS2".
+     * 
      * @return the string "http://www.w3.org/TR/REC-CSS2".
      */
     public String getParserVersion() {
@@ -183,8 +211,8 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
     /**
      * Parse methods used by DOM Level 2 implementation.
      */
-    public void parseImportRule(InputSource source)
-            throws CSSException, IOException {
+    public void parseImportRule(InputSource source) throws CSSException,
+            IOException {
         this.source = source;
         ReInit(getCharStreamWithLurk(source));
 
@@ -197,8 +225,8 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         _parseImportRule();
     }
 
-    public void parseMediaRule(InputSource source)
-            throws CSSException, IOException {
+    public void parseMediaRule(InputSource source) throws CSSException,
+            IOException {
         this.source = source;
         ReInit(getCharStreamWithLurk(source));
 
@@ -211,8 +239,8 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         _parseMediaRule();
     }
 
-    public SelectorList parseSelectors(InputSource source)
-            throws CSSException, IOException {
+    public SelectorList parseSelectors(InputSource source) throws CSSException,
+            IOException {
         this.source = source;
         ReInit(getCharStreamWithLurk(source));
 
@@ -227,8 +255,8 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         return expr();
     }
 
-    public boolean parsePriority(InputSource source)
-            throws CSSException, IOException {
+    public boolean parsePriority(InputSource source) throws CSSException,
+            IOException {
         this.source = source;
         ReInit(getCharStreamWithLurk(source));
 
@@ -236,7 +264,8 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
     }
 
     /**
-     * Convert the source into a Reader. Used only by DOM Level 2 parser methods.
+     * Convert the source into a Reader. Used only by DOM Level 2 parser
+     * methods.
      */
     private Reader getReader(InputSource source) throws IOException {
         if (source.getCharacterStream() != null) {
@@ -248,7 +277,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
                 return new InputStreamReader(source.getByteStream(), "ASCII");
             } else {
                 return new InputStreamReader(source.getByteStream(),
-                                             source.getEncoding());
+                        source.getEncoding());
             }
         } else {
             // systemId
@@ -258,11 +287,10 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
     }
 
     /**
-     * Convert the source into a CharStream with encoding informations.
-     * The encoding can be found in the InputSource or in the CSS document.
-     * Since this method marks the reader and make a reset after looking for
-     * the charset declaration, you'll find the charset declaration into the
-     * stream.  
+     * Convert the source into a CharStream with encoding informations. The
+     * encoding can be found in the InputSource or in the CSS document. Since
+     * this method marks the reader and make a reset after looking for the
+     * charset declaration, you'll find the charset declaration into the stream.
      */
     private CharStream getCharStreamWithLurk(InputSource source)
             throws CSSException, IOException {
@@ -282,7 +310,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
                 }
             }
         }
-        //use UTF-8 as the default encoding.
+        // use UTF-8 as the default encoding.
         String encoding = source.getEncoding();
         InputStream input = source.getByteStream();
         if (!input.markSupported()) {
@@ -290,7 +318,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
             source.setByteStream(input);
             input.mark(100);
         }
-        if(encoding == null){
+        if (encoding == null) {
             encoding = "ASCII";
 
             char c = ' ';
@@ -299,14 +327,15 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
 
             if (c == '@') {
                 // hum, is it a charset ?
-                int size   = 100;
+                int size = 100;
                 byte[] buf = new byte[size];
                 input.read(buf, 0, 7);
                 String keyword = new String(buf, 0, 7);
                 if (keyword.equals("charset")) {
                     // Yes, this is the charset declaration !
 
-                    // here I don't use the right declaration : white space are ' '.
+                    // here I don't use the right declaration : white space are
+                    // ' '.
                     while ((c = (char) input.read()) == ' ') {
                         // find the first quote
                     }
@@ -333,15 +362,17 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
                     if (c != ';') {
                         // no semi colon at the end ?
                         throw new CSSException("invalid charset declaration: "
-                                           + "missing semi colon");
+                                + "missing semi colon");
                     }
                     encoding = new String(buf, 0, i);
                     if (source.getEncoding() != null) {
                         // compare the two encoding informations.
-                        // For example, I don't accept to have ASCII and after UTF-8.
+                        // For example, I don't accept to have ASCII and after
+                        // UTF-8.
                         // Is it really good ? That is the question.
                         if (!encoding.equals(source.getEncoding())) {
-                            throw new CSSException("invalid encoding information.");
+                            throw new CSSException(
+                                    "invalid encoding information.");
                         }
                     }
                 } // else no charset declaration available
@@ -351,7 +382,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         source.setEncoding(encoding);
         // set the real reader of this source.
         source.setCharacterStream(new InputStreamReader(source.getByteStream(),
-                                             Encoding.getJavaEncoding(encoding)));
+                Encoding.getJavaEncoding(encoding)));
         // reset the stream (leave the charset declaration in the stream).
         input.reset();
 
@@ -359,6 +390,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
     }
 
     private LocatorImpl currentLocator;
+
     private Locator getLocator() {
         if (currentLocator == null) {
             currentLocator = new LocatorImpl(this);
@@ -366,6 +398,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         }
         return currentLocator.reInit(this);
     }
+
     private LocatorImpl getLocator(Token save) {
         if (currentLocator == null) {
             currentLocator = new LocatorImpl(this, save);
@@ -382,8 +415,8 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
                 if (pe.specialConstructor) {
                     StringBuffer errorM = new StringBuffer();
                     if (pe.currentToken != null) {
-                        errorM.append("encountered \u005c"")
-                            .append(pe.currentToken.next);
+                        errorM.append("encountered \u005c"").append(
+                                pe.currentToken.next);
                     }
                     errorM.append('"');
                     if (pe.expectedTokenSequences.length != 0) {
@@ -399,10 +432,10 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
                         }
                     }
                     errorHandler.error(new CSSParseException(errorM.toString(),
-                                                             l, e));
+                            l, e));
                 } else {
-                    errorHandler.error(new CSSParseException(e.getMessage(),
-                                                             l, e));
+                    errorHandler.error(new CSSParseException(e.getMessage(), l,
+                            e));
                 }
             } else if (e == null) {
                 errorHandler.error(new CSSParseException("error", l, null));
@@ -413,7803 +446,9027 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
     }
 
     private void reportWarningSkipText(Locator l, String text) {
-        if (errorHandler != null && text  != null) {
+        if (errorHandler != null && text != null) {
             errorHandler.warning(new CSSParseException("Skipping: " + text, l));
         }
     }
 
-/*
- * The grammar of CSS2
- */
+    /*
    * The grammar of CSS2
    */
 
-/**
- * The main entry for the parser.
- *
- * @exception ParseException exception during the parse
- */
-  final public void parserUnit() throws ParseException {
-    try {
-          documentHandler.startDocument(source);
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case CHARSET_SYM:
-        charset();
-        break;
-      default:
-        jj_la1[0] = jj_gen;
-        ;
-      }
-      label_1:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-        case CDO:
-        case CDC:
-        case ATKEYWORD:
-          ;
-          break;
-        default:
-          jj_la1[1] = jj_gen;
-          break label_1;
-        }
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          jj_consume_token(S);
-          comments();
-          break;
-        case CDO:
-        case CDC:
-        case ATKEYWORD:
-          ignoreStatement();
-          break;
-        default:
-          jj_la1[2] = jj_gen;
-          jj_consume_token(-1);
-          throw new ParseException();
-        }
-      }
-      label_2:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case IMPORT_SYM:
-          ;
-          break;
-        default:
-          jj_la1[3] = jj_gen;
-          break label_2;
-        }
-        importDeclaration();
-        label_3:
-        while (true) {
-          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-          case CDO:
-          case CDC:
-          case ATKEYWORD:
-            ;
-            break;
-          default:
-            jj_la1[4] = jj_gen;
-            break label_3;
-          }
-          ignoreStatement();
-          label_4:
-          while (true) {
-            switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-            case S:
-              ;
-              break;
+    /**
+     * The main entry for the parser.
+     * 
+     * @exception ParseException
+     *                exception during the parse
+     */
+    final public void parserUnit() throws ParseException {
+        try {
+            documentHandler.startDocument(source);
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case CHARSET_SYM:
+                charset();
+                break;
             default:
-              jj_la1[5] = jj_gen;
-              break label_4;
+                jj_la1[0] = jj_gen;
+                ;
             }
-            jj_consume_token(S);
-          }
-        }
-      }
-      afterImportDeclaration();
-      jj_consume_token(0);
-    } finally {
-        documentHandler.endDocument(source);
-    }
-  }
-
-  final public void charset() throws ParseException {
-  Token n;
-    try {
-      jj_consume_token(CHARSET_SYM);
-      label_5:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          ;
-          break;
-        default:
-          jj_la1[6] = jj_gen;
-          break label_5;
-        }
-        jj_consume_token(S);
-      }
-      n = jj_consume_token(STRING);
-      label_6:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          ;
-          break;
-        default:
-          jj_la1[7] = jj_gen;
-          break label_6;
-        }
-        jj_consume_token(S);
-      }
-      jj_consume_token(SEMICOLON);
-    } catch (ParseException e) {
-        reportError(getLocator(e.currentToken.next), e);
-        skipStatement();
-        // reportWarningSkipText(getLocator(), skipStatement());
-
-    } catch (Exception e) {
-        reportError(getLocator(), e);
-        skipStatement();
-        // reportWarningSkipText(getLocator(), skipStatement());
-
-    }
-  }
-
-  final public void afterImportDeclaration() throws ParseException {
- String ret;
- Locator l;
-    label_7:
-    while (true) {
-      ;
-      if (jj_2_1(5)) {
-        listModifyDirective();
-      } else {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case VARIABLE:
-          variable();
-          break;
-        case DEBUG_SYM:
-        case WARN_SYM:
-          debuggingDirective();
-          break;
-        case MIXIN_SYM:
-          mixinDirective();
-          break;
-        case EACH_SYM:
-        case IF_SYM:
-          controlDirective();
-          break;
-        case INCLUDE_SYM:
-          includeDirective();
-          break;
-        case LBRACKET:
-        case ANY:
-        case PARENT:
-        case DOT:
-        case COLON:
-        case INTERPOLATION:
-        case IDENT:
-        case HASH:
-          styleRule();
-          break;
-        case MEDIA_SYM:
-          media();
-          break;
-        case PAGE_SYM:
-          page();
-          break;
-        case FONT_FACE_SYM:
-          fontFace();
-          break;
-        case KEY_FRAME_SYM:
-          keyframes();
-          break;
-        default:
-          jj_la1[8] = jj_gen;
-          l = getLocator();
-          ret = skipStatement();
-          if ((ret == null) || (ret.length() == 0)) {
-              {if (true) return;}
-          }
-          if (ret.charAt(0) == '@') {
-              documentHandler.unrecognizedRule(ret);
-          } else {
-              reportWarningSkipText(l, ret);
-          }
-        }
-      }
-      label_8:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case CDO:
-        case CDC:
-        case ATKEYWORD:
-          ;
-          break;
-        default:
-          jj_la1[9] = jj_gen;
-          break label_8;
+            label_1: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                case CDO:
+                case CDC:
+                case ATKEYWORD:
+                    ;
+                    break;
+                default:
+                    jj_la1[1] = jj_gen;
+                    break label_1;
+                }
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    jj_consume_token(S);
+                    comments();
+                    break;
+                case CDO:
+                case CDC:
+                case ATKEYWORD:
+                    ignoreStatement();
+                    break;
+                default:
+                    jj_la1[2] = jj_gen;
+                    jj_consume_token(-1);
+                    throw new ParseException();
+                }
+            }
+            label_2: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case IMPORT_SYM:
+                    ;
+                    break;
+                default:
+                    jj_la1[3] = jj_gen;
+                    break label_2;
+                }
+                importDeclaration();
+                label_3: while (true) {
+                    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                    case CDO:
+                    case CDC:
+                    case ATKEYWORD:
+                        ;
+                        break;
+                    default:
+                        jj_la1[4] = jj_gen;
+                        break label_3;
+                    }
+                    ignoreStatement();
+                    label_4: while (true) {
+                        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                        case S:
+                            ;
+                            break;
+                        default:
+                            jj_la1[5] = jj_gen;
+                            break label_4;
+                        }
+                        jj_consume_token(S);
+                    }
+                }
+            }
+            afterImportDeclaration();
+            jj_consume_token(0);
+        } finally {
+            documentHandler.endDocument(source);
         }
-        ignoreStatement();
-        label_9:
-        while (true) {
-          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-          case S:
-            ;
-            break;
-          default:
-            jj_la1[10] = jj_gen;
-            break label_9;
-          }
-          jj_consume_token(S);
-        }
-      }
-    }
-  }
-
-  final public void ignoreStatement() throws ParseException {
-    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-    case CDO:
-      jj_consume_token(CDO);
-      break;
-    case CDC:
-      jj_consume_token(CDC);
-      break;
-    case ATKEYWORD:
-      atRuleDeclaration();
-      break;
-    default:
-      jj_la1[11] = jj_gen;
-      jj_consume_token(-1);
-      throw new ParseException();
-    }
-  }
+    }
 
-/**
- * The import statement
- *
- * @exception ParseException exception during the parse
- */
-  final public void importDeclaration() throws ParseException {
- Token n;
- String uri;
- MediaListImpl ml = new MediaListImpl();
- boolean isURL = false;
-    try {
-      jj_consume_token(IMPORT_SYM);
-      label_10:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          ;
-          break;
-        default:
-          jj_la1[12] = jj_gen;
-          break label_10;
-        }
-        jj_consume_token(S);
-      }
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case STRING:
-        n = jj_consume_token(STRING);
-                               uri = convertStringIndex(n.image, 1,
-                                                        n.image.length() -1);
-        break;
-      case URL:
-        n = jj_consume_token(URL);
-               isURL=true;
-               uri = n.image.substring(4, n.image.length()-1).trim();
-               if ((uri.charAt(0) == '"')
-                   || (uri.charAt(0) == '\u005c'')) {
-                   uri = uri.substring(1, uri.length()-1);
-               }
-        break;
-      default:
-        jj_la1[13] = jj_gen;
-        jj_consume_token(-1);
-        throw new ParseException();
-      }
-      label_11:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          ;
-          break;
-        default:
-          jj_la1[14] = jj_gen;
-          break label_11;
-        }
-        jj_consume_token(S);
-      }
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case IDENT:
-        mediaStatement(ml);
-        break;
-      default:
-        jj_la1[15] = jj_gen;
-        ;
-      }
-      jj_consume_token(SEMICOLON);
-      label_12:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          ;
-          break;
-        default:
-          jj_la1[16] = jj_gen;
-          break label_12;
-        }
-        jj_consume_token(S);
-      }
-               if (ml.getLength() == 0) {
-                   // see section 6.3 of the CSS2 recommandation.
-                   ml.addItem("all");
-               }
-               documentHandler.importStyle(uri, ml, isURL);
-    } catch (ParseException e) {
-     reportError(getLocator(), e);
-     skipStatement();
-     // reportWarningSkipText(getLocator(), skipStatement());
+    final public void charset() throws ParseException {
+        Token n;
+        try {
+            jj_consume_token(CHARSET_SYM);
+            label_5: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[6] = jj_gen;
+                    break label_5;
+                }
+                jj_consume_token(S);
+            }
+            n = jj_consume_token(STRING);
+            label_6: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[7] = jj_gen;
+                    break label_6;
+                }
+                jj_consume_token(S);
+            }
+            jj_consume_token(SEMICOLON);
+        } catch (ParseException e) {
+            reportError(getLocator(e.currentToken.next), e);
+            skipStatement();
+            // reportWarningSkipText(getLocator(), skipStatement());
 
-    }
-  }
+        } catch (Exception e) {
+            reportError(getLocator(), e);
+            skipStatement();
+            // reportWarningSkipText(getLocator(), skipStatement());
 
-/**
- * @exception ParseException exception during the parse
- */
-  final public void keyframes() throws ParseException {
-    Token n;
-    boolean start = false;
-    String keyframeName = null;
-    String animationname = "";
-    try {
-      n = jj_consume_token(KEY_FRAME_SYM);
-      label_13:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          ;
-          break;
-        default:
-          jj_la1[17] = jj_gen;
-          break label_13;
-        }
-        jj_consume_token(S);
-      }
-                              keyframeName = n.image;
-      label_14:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case IDENT:
-          n = jj_consume_token(IDENT);
-               animationname += n.image;
-          break;
-        case INTERPOLATION:
-          n = jj_consume_token(INTERPOLATION);
-                                                                  animationname += n.image;
-          break;
-        default:
-          jj_la1[18] = jj_gen;
-          jj_consume_token(-1);
-          throw new ParseException();
-        }
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case INTERPOLATION:
-        case IDENT:
-          ;
-          break;
-        default:
-          jj_la1[19] = jj_gen;
-          break label_14;
         }
-      }
-      label_15:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          ;
-          break;
-        default:
-          jj_la1[20] = jj_gen;
-          break label_15;
-        }
-        jj_consume_token(S);
-      }
-    start = true; documentHandler.startKeyFrames(keyframeName, animationname);
-      jj_consume_token(LBRACE);
-      label_16:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          ;
-          break;
-        default:
-          jj_la1[21] = jj_gen;
-          break label_16;
-        }
-        jj_consume_token(S);
-      }
-      label_17:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case TO:
-        case FROM:
-        case PERCENTAGE:
-          ;
-          break;
-        default:
-          jj_la1[22] = jj_gen;
-          break label_17;
-        }
-        keyframeSelector();
-      }
-      jj_consume_token(RBRACE);
-      label_18:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          ;
-          break;
-        default:
-          jj_la1[23] = jj_gen;
-          break label_18;
-        }
-        jj_consume_token(S);
-      }
-    } catch (ParseException e) {
-     reportError(getLocator(), e);
-     skipStatement();
-    } finally {
-     if (start) {
-         documentHandler.endKeyFrames();
-     }
-    }
-  }
-
-  final public void keyframeSelector() throws ParseException {
-    Token n;
-    boolean start = false;
-    try {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case FROM:
-        n = jj_consume_token(FROM);
-        break;
-      case TO:
-        n = jj_consume_token(TO);
-        break;
-      case PERCENTAGE:
-        n = jj_consume_token(PERCENTAGE);
-        break;
-      default:
-        jj_la1[24] = jj_gen;
-        jj_consume_token(-1);
-        throw new ParseException();
-      }
-      label_19:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          ;
-          break;
-        default:
-          jj_la1[25] = jj_gen;
-          break label_19;
-        }
-        jj_consume_token(S);
-      }
-      jj_consume_token(LBRACE);
-      label_20:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          ;
-          break;
-        default:
-          jj_la1[26] = jj_gen;
-          break label_20;
-        }
-        jj_consume_token(S);
-      }
-          start = true;
-          documentHandler.startKeyframeSelector(n.image);
-      label_21:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case LBRACKET:
-        case ANY:
-        case PARENT:
-        case DOT:
-        case COLON:
-        case INTERPOLATION:
-        case INCLUDE_SYM:
-        case DEBUG_SYM:
-        case WARN_SYM:
-        case EACH_SYM:
-        case IF_SYM:
-        case EXTEND_SYM:
-        case MICROSOFT_RULE:
-        case IDENT:
-        case VARIABLE:
-        case HASH:
-        case MEDIA_SYM:
-        case KEY_FRAME_SYM:
-        case CONTAINS:
-          ;
-          break;
-        default:
-          jj_la1[27] = jj_gen;
-          break label_21;
+    }
+
+    final public void afterImportDeclaration() throws ParseException {
+        String ret;
+        Locator l;
+        label_7: while (true) {
+            ;
+            if (jj_2_1(5)) {
+                listModifyDirective();
+            } else {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case VARIABLE:
+                    variable();
+                    break;
+                case DEBUG_SYM:
+                case WARN_SYM:
+                    debuggingDirective();
+                    break;
+                case MIXIN_SYM:
+                    mixinDirective();
+                    break;
+                case EACH_SYM:
+                case IF_SYM:
+                    controlDirective();
+                    break;
+                case INCLUDE_SYM:
+                    includeDirective();
+                    break;
+                case LBRACKET:
+                case ANY:
+                case PARENT:
+                case DOT:
+                case COLON:
+                case INTERPOLATION:
+                case IDENT:
+                case HASH:
+                    styleRule();
+                    break;
+                case MEDIA_SYM:
+                    media();
+                    break;
+                case PAGE_SYM:
+                    page();
+                    break;
+                case FONT_FACE_SYM:
+                    fontFace();
+                    break;
+                case KEY_FRAME_SYM:
+                    keyframes();
+                    break;
+                default:
+                    jj_la1[8] = jj_gen;
+                    l = getLocator();
+                    ret = skipStatement();
+                    if ((ret == null) || (ret.length() == 0)) {
+                        {
+                            if (true) {
+                                return;
+                            }
+                        }
+                    }
+                    if (ret.charAt(0) == '@') {
+                        documentHandler.unrecognizedRule(ret);
+                    } else {
+                        reportWarningSkipText(l, ret);
+                    }
+                }
+            }
+            label_8: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case CDO:
+                case CDC:
+                case ATKEYWORD:
+                    ;
+                    break;
+                default:
+                    jj_la1[9] = jj_gen;
+                    break label_8;
+                }
+                ignoreStatement();
+                label_9: while (true) {
+                    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                    case S:
+                        ;
+                        break;
+                    default:
+                        jj_la1[10] = jj_gen;
+                        break label_9;
+                    }
+                    jj_consume_token(S);
+                }
+            }
         }
-        if (jj_2_2(5)) {
-          ifContentStatement();
-        } else {
-          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-          case EACH_SYM:
-          case IF_SYM:
-            controlDirective();
+    }
+
+    final public void ignoreStatement() throws ParseException {
+        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+        case CDO:
+            jj_consume_token(CDO);
+            break;
+        case CDC:
+            jj_consume_token(CDC);
             break;
-          case MICROSOFT_RULE:
-            microsoftExtension();
+        case ATKEYWORD:
+            atRuleDeclaration();
             break;
-          default:
-            jj_la1[28] = jj_gen;
+        default:
+            jj_la1[11] = jj_gen;
             jj_consume_token(-1);
             throw new ParseException();
-          }
-        }
-      }
-      jj_consume_token(RBRACE);
-      label_22:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          ;
-          break;
-        default:
-          jj_la1[29] = jj_gen;
-          break label_22;
-        }
-        jj_consume_token(S);
-      }
-    } catch (ThrowedParseException e) {
-        if (errorHandler != null) {
-            LocatorImpl li = new LocatorImpl(this,
-                                             e.e.currentToken.next.beginLine,
-                                             e.e.currentToken.next.beginColumn-1);
-            reportError(li, e.e);
         }
-    } catch (ParseException e) {
-        reportError(getLocator(), e);
-        skipStatement();
-        // reportWarningSkipText(getLocator(), skipStatement());
+    }
+
+    /**
+     * The import statement
+     * 
+     * @exception ParseException
+     *                exception during the parse
+     */
+    final public void importDeclaration() throws ParseException {
+        Token n;
+        String uri;
+        MediaListImpl ml = new MediaListImpl();
+        boolean isURL = false;
+        try {
+            jj_consume_token(IMPORT_SYM);
+            label_10: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[12] = jj_gen;
+                    break label_10;
+                }
+                jj_consume_token(S);
+            }
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case STRING:
+                n = jj_consume_token(STRING);
+                uri = convertStringIndex(n.image, 1, n.image.length() - 1);
+                break;
+            case URL:
+                n = jj_consume_token(URL);
+                isURL = true;
+                uri = n.image.substring(4, n.image.length() - 1).trim();
+                if ((uri.charAt(0) == '"') || (uri.charAt(0) == '\u005c'')) {
+                    uri = uri.substring(1, uri.length() - 1);
+                }
+                break;
+            default:
+                jj_la1[13] = jj_gen;
+                jj_consume_token(-1);
+                throw new ParseException();
+            }
+            label_11: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[14] = jj_gen;
+                    break label_11;
+                }
+                jj_consume_token(S);
+            }
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case IDENT:
+                mediaStatement(ml);
+                break;
+            default:
+                jj_la1[15] = jj_gen;
+                ;
+            }
+            jj_consume_token(SEMICOLON);
+            label_12: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[16] = jj_gen;
+                    break label_12;
+                }
+                jj_consume_token(S);
+            }
+            if (ml.getLength() == 0) {
+                // see section 6.3 of the CSS2 recommandation.
+                ml.addItem("all");
+            }
+            documentHandler.importStyle(uri, ml, isURL);
+        } catch (ParseException e) {
+            reportError(getLocator(), e);
+            skipStatement();
+            // reportWarningSkipText(getLocator(), skipStatement());
 
-    } catch (TokenMgrError e) {
-        reportWarningSkipText(getLocator(), skipStatement());
-    } finally {
-        if (start) {
-            documentHandler.endKeyframeSelector();
         }
     }
-  }
 
-/**
- * @exception ParseException exception during the parse
- */
-  final public void media() throws ParseException {
-    boolean start = false;
-    String ret;
-    MediaListImpl ml = new MediaListImpl();
-    try {
-      jj_consume_token(MEDIA_SYM);
-      label_23:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          ;
-          break;
-        default:
-          jj_la1[30] = jj_gen;
-          break label_23;
-        }
-        jj_consume_token(S);
-      }
-      mediaStatement(ml);
-     start = true; documentHandler.startMedia(ml);
-      jj_consume_token(LBRACE);
-      label_24:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          ;
-          break;
-        default:
-          jj_la1[31] = jj_gen;
-          break label_24;
-        }
-        jj_consume_token(S);
-      }
-      label_25:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case CDO:
-        case LBRACE:
-        case DASHMATCH:
-        case INCLUDES:
-        case PLUS:
-        case MINUS:
-        case COMMA:
-        case SEMICOLON:
-        case PRECEDES:
-        case SIBLING:
-        case LBRACKET:
-        case ANY:
-        case PARENT:
-        case DOT:
-        case COLON:
-        case INTERPOLATION:
-        case NONASCII:
-        case DEBUG_SYM:
-        case WARN_SYM:
-        case STRING:
-        case IDENT:
-        case NUMBER:
-        case URL:
-        case PERCENTAGE:
-        case HASH:
-        case IMPORT_SYM:
-        case MEDIA_SYM:
+    /**
+     * @exception ParseException
+     *                exception during the parse
+     */
+    final public void keyframes() throws ParseException {
+        Token n;
+        boolean start = false;
+        String keyframeName = null;
+        String animationname = "";
+        try {
+            n = jj_consume_token(KEY_FRAME_SYM);
+            label_13: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[17] = jj_gen;
+                    break label_13;
+                }
+                jj_consume_token(S);
+            }
+            keyframeName = n.image;
+            label_14: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case IDENT:
+                    n = jj_consume_token(IDENT);
+                    animationname += n.image;
+                    break;
+                case INTERPOLATION:
+                    n = jj_consume_token(INTERPOLATION);
+                    animationname += n.image;
+                    break;
+                default:
+                    jj_la1[18] = jj_gen;
+                    jj_consume_token(-1);
+                    throw new ParseException();
+                }
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case INTERPOLATION:
+                case IDENT:
+                    ;
+                    break;
+                default:
+                    jj_la1[19] = jj_gen;
+                    break label_14;
+                }
+            }
+            label_15: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[20] = jj_gen;
+                    break label_15;
+                }
+                jj_consume_token(S);
+            }
+            start = true;
+            documentHandler.startKeyFrames(keyframeName, animationname);
+            jj_consume_token(LBRACE);
+            label_16: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[21] = jj_gen;
+                    break label_16;
+                }
+                jj_consume_token(S);
+            }
+            label_17: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case TO:
+                case FROM:
+                case PERCENTAGE:
+                    ;
+                    break;
+                default:
+                    jj_la1[22] = jj_gen;
+                    break label_17;
+                }
+                keyframeSelector();
+            }
+            jj_consume_token(RBRACE);
+            label_18: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[23] = jj_gen;
+                    break label_18;
+                }
+                jj_consume_token(S);
+            }
+        } catch (ParseException e) {
+            reportError(getLocator(), e);
+            skipStatement();
+        } finally {
+            if (start) {
+                documentHandler.endKeyFrames();
+            }
+        }
+    }
+
+    final public void keyframeSelector() throws ParseException {
+        Token n;
+        boolean start = false;
+        try {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case FROM:
+                n = jj_consume_token(FROM);
+                break;
+            case TO:
+                n = jj_consume_token(TO);
+                break;
+            case PERCENTAGE:
+                n = jj_consume_token(PERCENTAGE);
+                break;
+            default:
+                jj_la1[24] = jj_gen;
+                jj_consume_token(-1);
+                throw new ParseException();
+            }
+            label_19: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[25] = jj_gen;
+                    break label_19;
+                }
+                jj_consume_token(S);
+            }
+            jj_consume_token(LBRACE);
+            label_20: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[26] = jj_gen;
+                    break label_20;
+                }
+                jj_consume_token(S);
+            }
+            start = true;
+            documentHandler.startKeyframeSelector(n.image);
+            label_21: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case LBRACKET:
+                case ANY:
+                case PARENT:
+                case DOT:
+                case COLON:
+                case INTERPOLATION:
+                case INCLUDE_SYM:
+                case DEBUG_SYM:
+                case WARN_SYM:
+                case EACH_SYM:
+                case IF_SYM:
+                case EXTEND_SYM:
+                case MICROSOFT_RULE:
+                case IDENT:
+                case VARIABLE:
+                case HASH:
+                case MEDIA_SYM:
+                case KEY_FRAME_SYM:
+                case CONTAINS:
+                    ;
+                    break;
+                default:
+                    jj_la1[27] = jj_gen;
+                    break label_21;
+                }
+                if (jj_2_2(5)) {
+                    ifContentStatement();
+                } else {
+                    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                    case EACH_SYM:
+                    case IF_SYM:
+                        controlDirective();
+                        break;
+                    case MICROSOFT_RULE:
+                        microsoftExtension();
+                        break;
+                    default:
+                        jj_la1[28] = jj_gen;
+                        jj_consume_token(-1);
+                        throw new ParseException();
+                    }
+                }
+            }
+            jj_consume_token(RBRACE);
+            label_22: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[29] = jj_gen;
+                    break label_22;
+                }
+                jj_consume_token(S);
+            }
+        } catch (ThrowedParseException e) {
+            if (errorHandler != null) {
+                LocatorImpl li = new LocatorImpl(this,
+                        e.e.currentToken.next.beginLine,
+                        e.e.currentToken.next.beginColumn - 1);
+                reportError(li, e.e);
+            }
+        } catch (ParseException e) {
+            reportError(getLocator(), e);
+            skipStatement();
+            // reportWarningSkipText(getLocator(), skipStatement());
+
+        } catch (TokenMgrError e) {
+            reportWarningSkipText(getLocator(), skipStatement());
+        } finally {
+            if (start) {
+                documentHandler.endKeyframeSelector();
+            }
+        }
+    }
+
+    /**
+     * @exception ParseException
+     *                exception during the parse
+     */
+    final public void media() throws ParseException {
+        boolean start = false;
+        String ret;
+        MediaListImpl ml = new MediaListImpl();
+        try {
+            jj_consume_token(MEDIA_SYM);
+            label_23: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[30] = jj_gen;
+                    break label_23;
+                }
+                jj_consume_token(S);
+            }
+            mediaStatement(ml);
+            start = true;
+            documentHandler.startMedia(ml);
+            jj_consume_token(LBRACE);
+            label_24: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[31] = jj_gen;
+                    break label_24;
+                }
+                jj_consume_token(S);
+            }
+            label_25: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case CDO:
+                case LBRACE:
+                case DASHMATCH:
+                case INCLUDES:
+                case PLUS:
+                case MINUS:
+                case COMMA:
+                case SEMICOLON:
+                case PRECEDES:
+                case SIBLING:
+                case LBRACKET:
+                case ANY:
+                case PARENT:
+                case DOT:
+                case COLON:
+                case INTERPOLATION:
+                case NONASCII:
+                case DEBUG_SYM:
+                case WARN_SYM:
+                case STRING:
+                case IDENT:
+                case NUMBER:
+                case URL:
+                case PERCENTAGE:
+                case HASH:
+                case IMPORT_SYM:
+                case MEDIA_SYM:
+                case CHARSET_SYM:
+                case PAGE_SYM:
+                case FONT_FACE_SYM:
+                case ATKEYWORD:
+                case IMPORTANT_SYM:
+                case UNICODERANGE:
+                case FUNCTION:
+                case UNKNOWN:
+                    ;
+                    break;
+                default:
+                    jj_la1[32] = jj_gen;
+                    break label_25;
+                }
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case DEBUG_SYM:
+                case WARN_SYM:
+                    debuggingDirective();
+                    break;
+                case LBRACKET:
+                case ANY:
+                case PARENT:
+                case DOT:
+                case COLON:
+                case INTERPOLATION:
+                case IDENT:
+                case HASH:
+                    styleRule();
+                    break;
+                case CDO:
+                case LBRACE:
+                case DASHMATCH:
+                case INCLUDES:
+                case PLUS:
+                case MINUS:
+                case COMMA:
+                case SEMICOLON:
+                case PRECEDES:
+                case SIBLING:
+                case NONASCII:
+                case STRING:
+                case NUMBER:
+                case URL:
+                case PERCENTAGE:
+                case IMPORT_SYM:
+                case MEDIA_SYM:
+                case CHARSET_SYM:
+                case PAGE_SYM:
+                case FONT_FACE_SYM:
+                case ATKEYWORD:
+                case IMPORTANT_SYM:
+                case UNICODERANGE:
+                case FUNCTION:
+                case UNKNOWN:
+                    skipUnknownRule();
+                    break;
+                default:
+                    jj_la1[33] = jj_gen;
+                    jj_consume_token(-1);
+                    throw new ParseException();
+                }
+            }
+            jj_consume_token(RBRACE);
+            label_26: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[34] = jj_gen;
+                    break label_26;
+                }
+                jj_consume_token(S);
+            }
+        } catch (ParseException e) {
+            reportError(getLocator(), e);
+            skipStatement();
+            // reportWarningSkipText(getLocator(), skipStatement());
+
+        } finally {
+            if (start) {
+                documentHandler.endMedia(ml);
+            }
+        }
+    }
+
+    final public void mediaStatement(MediaListImpl ml) throws ParseException {
+        String m;
+        m = medium();
+        label_27: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case COMMA:
+                ;
+                break;
+            default:
+                jj_la1[35] = jj_gen;
+                break label_27;
+            }
+            jj_consume_token(COMMA);
+            label_28: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[36] = jj_gen;
+                    break label_28;
+                }
+                jj_consume_token(S);
+            }
+            ml.addItem(m);
+            m = medium();
+        }
+        ml.addItem(m);
+    }
+
+    /**
+     * @exception ParseException
+     *                exception during the parse
+     */
+    final public String medium() throws ParseException {
+        Token n;
+        n = jj_consume_token(IDENT);
+        label_29: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case S:
+                ;
+                break;
+            default:
+                jj_la1[37] = jj_gen;
+                break label_29;
+            }
+            jj_consume_token(S);
+        }
+        {
+            if (true) {
+                return convertIdent(n.image);
+            }
+        }
+        throw new Error("Missing return statement in function");
+    }
+
+    /**
+     * @exception ParseException
+     *                exception during the parse
+     */
+    final public void page() throws ParseException {
+        boolean start = false;
+        Token n = null;
+        String page = null;
+        String pseudo = null;
+        try {
+            jj_consume_token(PAGE_SYM);
+            label_30: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[38] = jj_gen;
+                    break label_30;
+                }
+                jj_consume_token(S);
+            }
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case IDENT:
+                n = jj_consume_token(IDENT);
+                label_31: while (true) {
+                    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                    case S:
+                        ;
+                        break;
+                    default:
+                        jj_la1[39] = jj_gen;
+                        break label_31;
+                    }
+                    jj_consume_token(S);
+                }
+                break;
+            default:
+                jj_la1[40] = jj_gen;
+                ;
+            }
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case COLON:
+                pseudo = pseudo_page();
+                break;
+            default:
+                jj_la1[41] = jj_gen;
+                ;
+            }
+            if (n != null) {
+                page = convertIdent(n.image);
+            }
+            jj_consume_token(LBRACE);
+            label_32: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[42] = jj_gen;
+                    break label_32;
+                }
+                jj_consume_token(S);
+            }
+            start = true;
+            documentHandler.startPage(page, pseudo);
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case INTERPOLATION:
+            case IDENT:
+                declaration();
+                break;
+            default:
+                jj_la1[43] = jj_gen;
+                ;
+            }
+            label_33: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case SEMICOLON:
+                    ;
+                    break;
+                default:
+                    jj_la1[44] = jj_gen;
+                    break label_33;
+                }
+                jj_consume_token(SEMICOLON);
+                label_34: while (true) {
+                    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                    case S:
+                        ;
+                        break;
+                    default:
+                        jj_la1[45] = jj_gen;
+                        break label_34;
+                    }
+                    jj_consume_token(S);
+                }
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case INTERPOLATION:
+                case IDENT:
+                    declaration();
+                    break;
+                default:
+                    jj_la1[46] = jj_gen;
+                    ;
+                }
+            }
+            jj_consume_token(RBRACE);
+            label_35: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[47] = jj_gen;
+                    break label_35;
+                }
+                jj_consume_token(S);
+            }
+        } catch (ParseException e) {
+            if (errorHandler != null) {
+                LocatorImpl li = new LocatorImpl(this,
+                        e.currentToken.next.beginLine,
+                        e.currentToken.next.beginColumn - 1);
+                reportError(li, e);
+                skipStatement();
+                // reportWarningSkipText(li, skipStatement());
+            } else {
+                skipStatement();
+            }
+        } finally {
+            if (start) {
+                documentHandler.endPage(page, pseudo);
+            }
+        }
+    }
+
+    final public String pseudo_page() throws ParseException {
+        Token n;
+        jj_consume_token(COLON);
+        n = jj_consume_token(IDENT);
+        label_36: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case S:
+                ;
+                break;
+            default:
+                jj_la1[48] = jj_gen;
+                break label_36;
+            }
+            jj_consume_token(S);
+        }
+        {
+            if (true) {
+                return convertIdent(n.image);
+            }
+        }
+        throw new Error("Missing return statement in function");
+    }
+
+    final public void fontFace() throws ParseException {
+        boolean start = false;
+        try {
+            jj_consume_token(FONT_FACE_SYM);
+            label_37: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[49] = jj_gen;
+                    break label_37;
+                }
+                jj_consume_token(S);
+            }
+            jj_consume_token(LBRACE);
+            label_38: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[50] = jj_gen;
+                    break label_38;
+                }
+                jj_consume_token(S);
+            }
+            start = true;
+            documentHandler.startFontFace();
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case INTERPOLATION:
+            case IDENT:
+                declaration();
+                break;
+            default:
+                jj_la1[51] = jj_gen;
+                ;
+            }
+            label_39: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case SEMICOLON:
+                    ;
+                    break;
+                default:
+                    jj_la1[52] = jj_gen;
+                    break label_39;
+                }
+                jj_consume_token(SEMICOLON);
+                label_40: while (true) {
+                    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                    case S:
+                        ;
+                        break;
+                    default:
+                        jj_la1[53] = jj_gen;
+                        break label_40;
+                    }
+                    jj_consume_token(S);
+                }
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case INTERPOLATION:
+                case IDENT:
+                    declaration();
+                    break;
+                default:
+                    jj_la1[54] = jj_gen;
+                    ;
+                }
+            }
+            jj_consume_token(RBRACE);
+            label_41: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[55] = jj_gen;
+                    break label_41;
+                }
+                jj_consume_token(S);
+            }
+        } catch (ParseException e) {
+            reportError(getLocator(), e);
+            skipStatement();
+            // reportWarningSkipText(getLocator(), skipStatement());
+
+        } finally {
+            if (start) {
+                documentHandler.endFontFace();
+            }
+        }
+    }
+
+    /**
+     * @exception ParseException
+     *                exception during the parse
+     */
+    final public void atRuleDeclaration() throws ParseException {
+        Token n;
+        String ret;
+        n = jj_consume_token(ATKEYWORD);
+        ret = skipStatement();
+        if ((ret != null) && (ret.charAt(0) == '@')) {
+            documentHandler.unrecognizedRule(ret);
+        } else {
+            reportWarningSkipText(getLocator(), ret);
+        }
+    }
+
+    final public void skipUnknownRule() throws ParseException {
+        Token n;
+        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+        case ATKEYWORD:
+            n = jj_consume_token(ATKEYWORD);
+            break;
+        case CDO:
+            n = jj_consume_token(CDO);
+            break;
         case CHARSET_SYM:
-        case PAGE_SYM:
+            n = jj_consume_token(CHARSET_SYM);
+            break;
+        case COMMA:
+            n = jj_consume_token(COMMA);
+            break;
+        case DASHMATCH:
+            n = jj_consume_token(DASHMATCH);
+            break;
         case FONT_FACE_SYM:
-        case ATKEYWORD:
-        case IMPORTANT_SYM:
-        case UNICODERANGE:
+            n = jj_consume_token(FONT_FACE_SYM);
+            break;
         case FUNCTION:
-        case UNKNOWN:
-          ;
-          break;
-        default:
-          jj_la1[32] = jj_gen;
-          break label_25;
-        }
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case DEBUG_SYM:
-        case WARN_SYM:
-          debuggingDirective();
-          break;
-        case LBRACKET:
-        case ANY:
-        case PARENT:
-        case DOT:
-        case COLON:
-        case INTERPOLATION:
-        case IDENT:
-        case HASH:
-          styleRule();
-          break;
-        case CDO:
-        case LBRACE:
-        case DASHMATCH:
+            n = jj_consume_token(FUNCTION);
+            break;
+        case IMPORTANT_SYM:
+            n = jj_consume_token(IMPORTANT_SYM);
+            break;
+        case IMPORT_SYM:
+            n = jj_consume_token(IMPORT_SYM);
+            break;
         case INCLUDES:
-        case PLUS:
-        case MINUS:
-        case COMMA:
-        case SEMICOLON:
-        case PRECEDES:
-        case SIBLING:
+            n = jj_consume_token(INCLUDES);
+            break;
+        case LBRACE:
+            n = jj_consume_token(LBRACE);
+            break;
+        case MEDIA_SYM:
+            n = jj_consume_token(MEDIA_SYM);
+            break;
         case NONASCII:
-        case STRING:
+            n = jj_consume_token(NONASCII);
+            break;
         case NUMBER:
-        case URL:
-        case PERCENTAGE:
-        case IMPORT_SYM:
-        case MEDIA_SYM:
-        case CHARSET_SYM:
+            n = jj_consume_token(NUMBER);
+            break;
         case PAGE_SYM:
-        case FONT_FACE_SYM:
-        case ATKEYWORD:
-        case IMPORTANT_SYM:
+            n = jj_consume_token(PAGE_SYM);
+            break;
+        case PERCENTAGE:
+            n = jj_consume_token(PERCENTAGE);
+            break;
+        case STRING:
+            n = jj_consume_token(STRING);
+            break;
         case UNICODERANGE:
-        case FUNCTION:
+            n = jj_consume_token(UNICODERANGE);
+            break;
+        case URL:
+            n = jj_consume_token(URL);
+            break;
+        case SEMICOLON:
+            n = jj_consume_token(SEMICOLON);
+            break;
+        case PLUS:
+            n = jj_consume_token(PLUS);
+            break;
+        case PRECEDES:
+            n = jj_consume_token(PRECEDES);
+            break;
+        case SIBLING:
+            n = jj_consume_token(SIBLING);
+            break;
+        case MINUS:
+            n = jj_consume_token(MINUS);
+            break;
         case UNKNOWN:
-          skipUnknownRule();
-          break;
-        default:
-          jj_la1[33] = jj_gen;
-          jj_consume_token(-1);
-          throw new ParseException();
-        }
-      }
-      jj_consume_token(RBRACE);
-      label_26:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          ;
-          break;
+            n = jj_consume_token(UNKNOWN);
+            break;
         default:
-          jj_la1[34] = jj_gen;
-          break label_26;
-        }
-        jj_consume_token(S);
-      }
-    } catch (ParseException e) {
-     reportError(getLocator(), e);
-     skipStatement();
-     // reportWarningSkipText(getLocator(), skipStatement());
-
-    } finally {
-     if (start) {
-         documentHandler.endMedia(ml);
-     }
-    }
-  }
-
-  final public void mediaStatement(MediaListImpl ml) throws ParseException {
-    String m;
-    m = medium();
-    label_27:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case COMMA:
-        ;
-        break;
-      default:
-        jj_la1[35] = jj_gen;
-        break label_27;
-      }
-      jj_consume_token(COMMA);
-      label_28:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+            jj_la1[56] = jj_gen;
+            jj_consume_token(-1);
+            throw new ParseException();
+        }
+        String ret;
+        Locator loc = getLocator();
+        ret = skipStatement();
+        if ((ret != null) && (n.image.charAt(0) == '@')) {
+            documentHandler.unrecognizedRule(ret);
+        } else {
+            reportWarningSkipText(loc, ret);
+        }
+    }
+
+    /**
+     * @exception ParseException
+     *                exception during the parse
+     */
+    final public char combinator() throws ParseException {
+        char connector = ' ';
+        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+        case PLUS:
+            jj_consume_token(PLUS);
+            label_42: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[57] = jj_gen;
+                    break label_42;
+                }
+                jj_consume_token(S);
+            }
+            {
+                if (true) {
+                    return '+';
+                }
+            }
+            break;
+        case PRECEDES:
+            jj_consume_token(PRECEDES);
+            label_43: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[58] = jj_gen;
+                    break label_43;
+                }
+                jj_consume_token(S);
+            }
+            {
+                if (true) {
+                    return '>';
+                }
+            }
+            break;
+        case SIBLING:
+            jj_consume_token(SIBLING);
+            label_44: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[59] = jj_gen;
+                    break label_44;
+                }
+                jj_consume_token(S);
+            }
+            {
+                if (true) {
+                    return '~';
+                }
+            }
+            break;
         case S:
-          ;
-          break;
+            jj_consume_token(S);
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case PLUS:
+            case PRECEDES:
+            case SIBLING:
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case PLUS:
+                    jj_consume_token(PLUS);
+                    connector = '+';
+                    break;
+                case PRECEDES:
+                    jj_consume_token(PRECEDES);
+                    connector = '>';
+                    break;
+                case SIBLING:
+                    jj_consume_token(SIBLING);
+                    connector = '~';
+                    break;
+                default:
+                    jj_la1[60] = jj_gen;
+                    jj_consume_token(-1);
+                    throw new ParseException();
+                }
+                label_45: while (true) {
+                    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                    case S:
+                        ;
+                        break;
+                    default:
+                        jj_la1[61] = jj_gen;
+                        break label_45;
+                    }
+                    jj_consume_token(S);
+                }
+                break;
+            default:
+                jj_la1[62] = jj_gen;
+                ;
+            }
+            {
+                if (true) {
+                    return connector;
+                }
+            }
+            break;
         default:
-          jj_la1[36] = jj_gen;
-          break label_28;
+            jj_la1[63] = jj_gen;
+            jj_consume_token(-1);
+            throw new ParseException();
+        }
+        throw new Error("Missing return statement in function");
+    }
+
+    final public void microsoftExtension() throws ParseException {
+        Token n;
+        String name = "";
+        String value = "";
+        // This is not really taking the syntax of filter rules into account
+        n = jj_consume_token(MICROSOFT_RULE);
+        label_46: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case S:
+                ;
+                break;
+            default:
+                jj_la1[64] = jj_gen;
+                break label_46;
+            }
+            jj_consume_token(S);
+        }
+        name = n.image;
+        jj_consume_token(COLON);
+        label_47: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case IDENT:
+                n = jj_consume_token(IDENT);
+                value += n.image;
+                break;
+            case NUMBER:
+                n = jj_consume_token(NUMBER);
+                value += n.image;
+                break;
+            case STRING:
+                n = jj_consume_token(STRING);
+                value += n.image;
+                break;
+            case COMMA:
+                n = jj_consume_token(COMMA);
+                value += n.image;
+                break;
+            case INTERPOLATION:
+                n = jj_consume_token(INTERPOLATION);
+                value += n.image;
+                break;
+            case COLON:
+                n = jj_consume_token(COLON);
+                value += n.image;
+                break;
+            case FUNCTION:
+                n = jj_consume_token(FUNCTION);
+                value += n.image;
+                break;
+            case RPARAN:
+                n = jj_consume_token(RPARAN);
+                value += n.image;
+                break;
+            case EQ:
+                n = jj_consume_token(EQ);
+                value += n.image;
+                break;
+            case DOT:
+                n = jj_consume_token(DOT);
+                value += n.image;
+                break;
+            case S:
+                n = jj_consume_token(S);
+                if (value.lastIndexOf(' ') != value.length() - 1) {
+                    value += n.image;
+                }
+                break;
+            default:
+                jj_la1[65] = jj_gen;
+                jj_consume_token(-1);
+                throw new ParseException();
+            }
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case S:
+            case EQ:
+            case COMMA:
+            case DOT:
+            case RPARAN:
+            case COLON:
+            case INTERPOLATION:
+            case STRING:
+            case IDENT:
+            case NUMBER:
+            case FUNCTION:
+                ;
+                break;
+            default:
+                jj_la1[66] = jj_gen;
+                break label_47;
+            }
+        }
+        jj_consume_token(SEMICOLON);
+        label_48: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case S:
+                ;
+                break;
+            default:
+                jj_la1[67] = jj_gen;
+                break label_48;
+            }
+            jj_consume_token(S);
+        }
+        documentHandler.microsoftDirective(name, value);
+    }
+
+    /**
+     * @exception ParseException
+     *                exception during the parse
+     */
+    final public String property() throws ParseException {
+        Token t;
+        String s = "";
+        label_49: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case IDENT:
+                t = jj_consume_token(IDENT);
+                s += t.image;
+                break;
+            case INTERPOLATION:
+                t = jj_consume_token(INTERPOLATION);
+                s += t.image;
+                break;
+            default:
+                jj_la1[68] = jj_gen;
+                jj_consume_token(-1);
+                throw new ParseException();
+            }
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case INTERPOLATION:
+            case IDENT:
+                ;
+                break;
+            default:
+                jj_la1[69] = jj_gen;
+                break label_49;
+            }
+        }
+        label_50: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case S:
+                ;
+                break;
+            default:
+                jj_la1[70] = jj_gen;
+                break label_50;
+            }
+            jj_consume_token(S);
+        }
+        {
+            if (true) {
+                return s;
+            }
+        }
+        throw new Error("Missing return statement in function");
+    }
+
+    final public String variableName() throws ParseException {
+        Token n;
+        n = jj_consume_token(VARIABLE);
+        label_51: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case S:
+                ;
+                break;
+            default:
+                jj_la1[71] = jj_gen;
+                break label_51;
+            }
+            jj_consume_token(S);
+        }
+        {
+            if (true) {
+                return convertIdent(n.image.substring(1));
+            }
+        }
+        throw new Error("Missing return statement in function");
+    }
+
+    final public String functionName() throws ParseException {
+        Token n;
+        n = jj_consume_token(FUNCTION);
+        label_52: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case S:
+                ;
+                break;
+            default:
+                jj_la1[72] = jj_gen;
+                break label_52;
+            }
+            jj_consume_token(S);
+        }
+        {
+            if (true) {
+                return convertIdent(n.image.substring(0, n.image.length() - 1));
+            }
+        }
+        throw new Error("Missing return statement in function");
+    }
+
+    /**
+     * @exception ParseException
+     *                exception during the parse
+     */
+    final public void styleRule() throws ParseException {
+        boolean start = false;
+        ArrayList<String> l = null;
+        Token save;
+        Locator loc;
+        try {
+            l = selectorList();
+            save = token;
+            jj_consume_token(LBRACE);
+            label_53: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[73] = jj_gen;
+                    break label_53;
+                }
+                jj_consume_token(S);
+            }
+            start = true;
+            documentHandler.startSelector(l);
+            label_54: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case LBRACKET:
+                case ANY:
+                case PARENT:
+                case DOT:
+                case COLON:
+                case INTERPOLATION:
+                case INCLUDE_SYM:
+                case DEBUG_SYM:
+                case WARN_SYM:
+                case EACH_SYM:
+                case IF_SYM:
+                case EXTEND_SYM:
+                case MICROSOFT_RULE:
+                case IDENT:
+                case VARIABLE:
+                case HASH:
+                case MEDIA_SYM:
+                case KEY_FRAME_SYM:
+                case CONTAINS:
+                    ;
+                    break;
+                default:
+                    jj_la1[74] = jj_gen;
+                    break label_54;
+                }
+                if (jj_2_3(5)) {
+                    ifContentStatement();
+                } else {
+                    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                    case EACH_SYM:
+                    case IF_SYM:
+                        controlDirective();
+                        break;
+                    case MICROSOFT_RULE:
+                        microsoftExtension();
+                        break;
+                    default:
+                        jj_la1[75] = jj_gen;
+                        jj_consume_token(-1);
+                        throw new ParseException();
+                    }
+                }
+            }
+            jj_consume_token(RBRACE);
+            label_55: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[76] = jj_gen;
+                    break label_55;
+                }
+                jj_consume_token(S);
+            }
+        } catch (ThrowedParseException e) {
+            if (errorHandler != null) {
+                LocatorImpl li = new LocatorImpl(this,
+                        e.e.currentToken.next.beginLine,
+                        e.e.currentToken.next.beginColumn - 1);
+                reportError(li, e.e);
+            }
+        } catch (ParseException e) {
+            reportError(getLocator(), e);
+            skipStatement();
+            // reportWarningSkipText(getLocator(), skipStatement());
+
+        } catch (TokenMgrError e) {
+            reportWarningSkipText(getLocator(), skipStatement());
+        } finally {
+            if (start) {
+                documentHandler.endSelector();
+            }
+        }
+    }
+
+    final public ArrayList<String> selectorList() throws ParseException {
+        ArrayList<String> selectors = new ArrayList<String>();
+        String selector;
+        selector = selector();
+        label_56: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case COMMA:
+                ;
+                break;
+            default:
+                jj_la1[77] = jj_gen;
+                break label_56;
+            }
+            jj_consume_token(COMMA);
+            label_57: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[78] = jj_gen;
+                    break label_57;
+                }
+                jj_consume_token(S);
+            }
+            selectors.add(selector);
+            selector = selector();
+        }
+        selectors.add(selector);
+        {
+            if (true) {
+                return selectors;
+            }
+        }
+        throw new Error("Missing return statement in function");
+    }
+
+    /**
+     * @exception ParseException
+     *                exception during the parse
+     */
+    final public String selector() throws ParseException {
+        String selector;
+        char comb;
+        try {
+            selector = simple_selector(null, ' ');
+            label_58: while (true) {
+                if (jj_2_4(2)) {
+                    ;
+                } else {
+                    break label_58;
+                }
+                comb = combinator();
+                selector = simple_selector(selector, comb);
+            }
+            label_59: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[79] = jj_gen;
+                    break label_59;
+                }
+                jj_consume_token(S);
+            }
+            {
+                if (true) {
+                    return selector;
+                }
+            }
+        } catch (ParseException e) {
+            /*
+             * Token t = getToken(1); StringBuffer s = new StringBuffer();
+             * s.append(getToken(0).image); while ((t.kind != COMMA) && (t.kind
+             * != SEMICOLON) && (t.kind != LBRACE) && (t.kind != EOF)) {
+             * s.append(t.image); getNextToken(); t = getToken(1); }
+             * reportWarningSkipText(getLocator(), s.toString());
+             */
+            Token t = getToken(1);
+            while ((t.kind != COMMA) && (t.kind != SEMICOLON)
+                    && (t.kind != LBRACE) && (t.kind != EOF)) {
+                getNextToken();
+                t = getToken(1);
+            }
+
+            {
+                if (true) {
+                    throw new ThrowedParseException(e);
+                }
+            }
+        }
+        throw new Error("Missing return statement in function");
+    }
+
+    /**
+     * @exception ParseException
+     *                exception during the parse
+     */
+    final public String simple_selector(String selector, char comb)
+            throws ParseException {
+        String simple_current = null;
+        String cond = null;
+
+        pseudoElt = null;
+        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+        case ANY:
+        case PARENT:
+        case INTERPOLATION:
+        case IDENT:
+            simple_current = element_name();
+            label_60: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case LBRACKET:
+                case DOT:
+                case COLON:
+                case HASH:
+                    ;
+                    break;
+                default:
+                    jj_la1[80] = jj_gen;
+                    break label_60;
+                }
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case HASH:
+                    cond = hash(cond);
+                    break;
+                case DOT:
+                    cond = _class(cond);
+                    break;
+                case LBRACKET:
+                    cond = attrib(cond);
+                    break;
+                case COLON:
+                    cond = pseudo(cond);
+                    break;
+                default:
+                    jj_la1[81] = jj_gen;
+                    jj_consume_token(-1);
+                    throw new ParseException();
+                }
+            }
+            break;
+        case HASH:
+            cond = hash(cond);
+            label_61: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case LBRACKET:
+                case DOT:
+                case COLON:
+                    ;
+                    break;
+                default:
+                    jj_la1[82] = jj_gen;
+                    break label_61;
+                }
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case DOT:
+                    cond = _class(cond);
+                    break;
+                case LBRACKET:
+                    cond = attrib(cond);
+                    break;
+                case COLON:
+                    cond = pseudo(cond);
+                    break;
+                default:
+                    jj_la1[83] = jj_gen;
+                    jj_consume_token(-1);
+                    throw new ParseException();
+                }
+            }
+            break;
+        case DOT:
+            cond = _class(cond);
+            label_62: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case LBRACKET:
+                case DOT:
+                case COLON:
+                case HASH:
+                    ;
+                    break;
+                default:
+                    jj_la1[84] = jj_gen;
+                    break label_62;
+                }
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case HASH:
+                    cond = hash(cond);
+                    break;
+                case DOT:
+                    cond = _class(cond);
+                    break;
+                case LBRACKET:
+                    cond = attrib(cond);
+                    break;
+                case COLON:
+                    cond = pseudo(cond);
+                    break;
+                default:
+                    jj_la1[85] = jj_gen;
+                    jj_consume_token(-1);
+                    throw new ParseException();
+                }
+            }
+            break;
+        case COLON:
+            cond = pseudo(cond);
+            label_63: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case LBRACKET:
+                case DOT:
+                case COLON:
+                case HASH:
+                    ;
+                    break;
+                default:
+                    jj_la1[86] = jj_gen;
+                    break label_63;
+                }
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case HASH:
+                    cond = hash(cond);
+                    break;
+                case DOT:
+                    cond = _class(cond);
+                    break;
+                case LBRACKET:
+                    cond = attrib(cond);
+                    break;
+                case COLON:
+                    cond = pseudo(cond);
+                    break;
+                default:
+                    jj_la1[87] = jj_gen;
+                    jj_consume_token(-1);
+                    throw new ParseException();
+                }
+            }
+            break;
+        case LBRACKET:
+            cond = attrib(cond);
+            label_64: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case LBRACKET:
+                case DOT:
+                case COLON:
+                case HASH:
+                    ;
+                    break;
+                default:
+                    jj_la1[88] = jj_gen;
+                    break label_64;
+                }
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case HASH:
+                    cond = hash(cond);
+                    break;
+                case DOT:
+                    cond = _class(cond);
+                    break;
+                case LBRACKET:
+                    cond = attrib(cond);
+                    break;
+                case COLON:
+                    cond = pseudo(cond);
+                    break;
+                default:
+                    jj_la1[89] = jj_gen;
+                    jj_consume_token(-1);
+                    throw new ParseException();
+                }
+            }
+            break;
+        default:
+            jj_la1[90] = jj_gen;
+            jj_consume_token(-1);
+            throw new ParseException();
+        }
+        if (simple_current == null) {
+            simple_current = "";
+        }
+        if (cond != null) {
+            simple_current = simple_current + cond;
+        }
+        if (selector != null) {
+            switch (comb) {
+            case ' ':
+                selector = selector + comb + simple_current;
+                break;
+            case '+':
+            case '>':
+            case '~':
+                selector = selector + " " + comb + " " + simple_current;
+                break;
+            default: {
+                if (true) {
+                    throw new ParseException("invalid state. send a bug report");
+                }
+            }
+            }
+        } else {
+            selector = simple_current;
+        }
+        if (pseudoElt != null) {
+            selector = selector + pseudoElt;
+        }
+        {
+            if (true) {
+                return selector;
+            }
+        }
+        throw new Error("Missing return statement in function");
+    }
+
+    /**
+     * @exception ParseException
+     *                exception during the parse
+     */
+    final public String _class(String pred) throws ParseException {
+        Token t;
+        String s = ".";
+        jj_consume_token(DOT);
+        label_65: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case IDENT:
+                t = jj_consume_token(IDENT);
+                s += t.image;
+                break;
+            case INTERPOLATION:
+                t = jj_consume_token(INTERPOLATION);
+                s += t.image;
+                break;
+            default:
+                jj_la1[91] = jj_gen;
+                jj_consume_token(-1);
+                throw new ParseException();
+            }
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case INTERPOLATION:
+            case IDENT:
+                ;
+                break;
+            default:
+                jj_la1[92] = jj_gen;
+                break label_65;
+            }
+        }
+        if (pred == null) {
+            {
+                if (true) {
+                    return s;
+                }
+            }
+        } else {
+            {
+                if (true) {
+                    return pred + s;
+                }
+            }
+        }
+        throw new Error("Missing return statement in function");
+    }
+
+    /**
+     * @exception ParseException
+     *                exception during the parse
+     */
+    final public String element_name() throws ParseException {
+        Token t;
+        String s = "";
+        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+        case INTERPOLATION:
+        case IDENT:
+            label_66: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case IDENT:
+                    t = jj_consume_token(IDENT);
+                    s += t.image;
+                    break;
+                case INTERPOLATION:
+                    t = jj_consume_token(INTERPOLATION);
+                    s += t.image;
+                    break;
+                default:
+                    jj_la1[93] = jj_gen;
+                    jj_consume_token(-1);
+                    throw new ParseException();
+                }
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case INTERPOLATION:
+                case IDENT:
+                    ;
+                    break;
+                default:
+                    jj_la1[94] = jj_gen;
+                    break label_66;
+                }
+            }
+            {
+                if (true) {
+                    return s;
+                }
+            }
+            break;
+        case ANY:
+            jj_consume_token(ANY);
+            {
+                if (true) {
+                    return "*";
+                }
+            }
+            break;
+        case PARENT:
+            jj_consume_token(PARENT);
+            {
+                if (true) {
+                    return "&";
+                }
+            }
+            break;
+        default:
+            jj_la1[95] = jj_gen;
+            jj_consume_token(-1);
+            throw new ParseException();
+        }
+        throw new Error("Missing return statement in function");
+    }
+
+    /**
+     * @exception ParseException
+     *                exception during the parse
+     */
+    final public String attrib(String pred) throws ParseException {
+        int cases = 0;
+        Token att = null;
+        Token val = null;
+        String attValue = null;
+        jj_consume_token(LBRACKET);
+        label_67: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case S:
+                ;
+                break;
+            default:
+                jj_la1[96] = jj_gen;
+                break label_67;
+            }
+            jj_consume_token(S);
+        }
+        att = jj_consume_token(IDENT);
+        label_68: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case S:
+                ;
+                break;
+            default:
+                jj_la1[97] = jj_gen;
+                break label_68;
+            }
+            jj_consume_token(S);
+        }
+        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+        case DASHMATCH:
+        case CARETMATCH:
+        case DOLLARMATCH:
+        case STARMATCH:
+        case INCLUDES:
+        case EQ:
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case EQ:
+                jj_consume_token(EQ);
+                cases = 1;
+                break;
+            case INCLUDES:
+                jj_consume_token(INCLUDES);
+                cases = 2;
+                break;
+            case DASHMATCH:
+                jj_consume_token(DASHMATCH);
+                cases = 3;
+                break;
+            case CARETMATCH:
+                jj_consume_token(CARETMATCH);
+                cases = 4;
+                break;
+            case DOLLARMATCH:
+                jj_consume_token(DOLLARMATCH);
+                cases = 5;
+                break;
+            case STARMATCH:
+                jj_consume_token(STARMATCH);
+                cases = 6;
+                break;
+            default:
+                jj_la1[98] = jj_gen;
+                jj_consume_token(-1);
+                throw new ParseException();
+            }
+            label_69: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[99] = jj_gen;
+                    break label_69;
+                }
+                jj_consume_token(S);
+            }
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case IDENT:
+                val = jj_consume_token(IDENT);
+                attValue = val.image;
+                break;
+            case STRING:
+                val = jj_consume_token(STRING);
+                attValue = val.image;
+                break;
+            default:
+                jj_la1[100] = jj_gen;
+                jj_consume_token(-1);
+                throw new ParseException();
+            }
+            label_70: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[101] = jj_gen;
+                    break label_70;
+                }
+                jj_consume_token(S);
+            }
+            break;
+        default:
+            jj_la1[102] = jj_gen;
+            ;
+        }
+        jj_consume_token(RBRACKET);
+        String name = convertIdent(att.image);
+        String c;
+        switch (cases) {
+        case 0:
+            c = name;
+            break;
+        case 1:
+            c = name + "=" + attValue;
+            break;
+        case 2:
+            c = name + "~=" + attValue;
+            break;
+        case 3:
+            c = name + "|=" + attValue;
+            break;
+        case 4:
+            c = name + "^=" + attValue;
+            break;
+        case 5:
+            c = name + "$=" + attValue;
+            break;
+        case 6:
+            c = name + "*=" + attValue;
+            break;
+        default:
+            // never reached.
+            c = null;
+        }
+        c = "[" + c + "]";
+        if (pred == null) {
+            {
+                if (true) {
+                    return c;
+                }
+            }
+        } else {
+            {
+                if (true) {
+                    return pred + c;
+                }
+            }
+        }
+        throw new Error("Missing return statement in function");
+    }
+
+    /**
+     * @exception ParseException
+     *                exception during the parse
+     */
+    final public String pseudo(String pred) throws ParseException {
+        Token n;
+        Token param;
+        String d;
+        boolean isPseudoElement = false;
+        jj_consume_token(COLON);
+        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+        case COLON:
+            jj_consume_token(COLON);
+            isPseudoElement = true;
+            break;
+        default:
+            jj_la1[103] = jj_gen;
+            ;
+        }
+        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+        case IDENT:
+            n = jj_consume_token(IDENT);
+            String s = ":" + convertIdent(n.image);
+            if (isPseudoElement) {
+                if (pseudoElt != null) {
+                    {
+                        if (true) {
+                            throw new CSSParseException(
+                                    "duplicate pseudo element definition " + s,
+                                    getLocator());
+                        }
+                    }
+                } else {
+                    pseudoElt = ":" + s;
+                    {
+                        if (true) {
+                            return pred;
+                        }
+                    }
+                }
+            } else {
+                String c = s;
+                if (pred == null) {
+                    {
+                        if (true) {
+                            return c;
+                        }
+                    }
+                } else {
+                    {
+                        if (true) {
+                            return pred + c;
+                        }
+                    }
+                }
+            }
+            break;
+        case FUNCTION:
+            n = jj_consume_token(FUNCTION);
+            label_71: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[104] = jj_gen;
+                    break label_71;
+                }
+                jj_consume_token(S);
+            }
+            d = skipStatementUntilRightParan();
+            jj_consume_token(RPARAN);
+            // accept anything between function and a right parenthesis
+            String f = convertIdent(n.image);
+            String colons = isPseudoElement ? "::" : ":";
+            String pseudofn = colons + f + d + ")";
+            if (pred == null) {
+                {
+                    if (true) {
+                        return pseudofn;
+                    }
+                }
+            } else {
+                {
+                    if (true) {
+                        return pred + pseudofn;
+                    }
+                }
+            }
+            break;
+        default:
+            jj_la1[105] = jj_gen;
+            jj_consume_token(-1);
+            throw new ParseException();
+        }
+        throw new Error("Missing return statement in function");
+    }
+
+    /**
+     * @exception ParseException
+     *                exception during the parse
+     */
+    final public String hash(String pred) throws ParseException {
+        Token n;
+        n = jj_consume_token(HASH);
+        String d = n.image;
+        if (pred == null) {
+            {
+                if (true) {
+                    return d;
+                }
+            }
+        } else {
+            {
+                if (true) {
+                    return pred + d;
+                }
+            }
+        }
+        throw new Error("Missing return statement in function");
+    }
+
+    final public void variable() throws ParseException {
+        String name;
+        LexicalUnitImpl exp = null;
+        boolean guarded = false;
+        String raw;
+        try {
+            name = variableName();
+            jj_consume_token(COLON);
+            label_72: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[106] = jj_gen;
+                    break label_72;
+                }
+                jj_consume_token(S);
+            }
+            exp = expr();
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case GUARDED_SYM:
+                guarded = guarded();
+                break;
+            default:
+                jj_la1[107] = jj_gen;
+                ;
+            }
+            label_73: while (true) {
+                jj_consume_token(SEMICOLON);
+                label_74: while (true) {
+                    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                    case S:
+                        ;
+                        break;
+                    default:
+                        jj_la1[108] = jj_gen;
+                        break label_74;
+                    }
+                    jj_consume_token(S);
+                }
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case SEMICOLON:
+                    ;
+                    break;
+                default:
+                    jj_la1[109] = jj_gen;
+                    break label_73;
+                }
+            }
+            documentHandler.variable(name, exp, guarded);
+        } catch (JumpException e) {
+            skipAfterExpression();
+        } catch (NumberFormatException e) {
+            if (errorHandler != null) {
+                errorHandler.error(new CSSParseException("Invalid number "
+                        + e.getMessage(), getLocator(), e));
+            }
+            reportWarningSkipText(getLocator(), skipAfterExpression());
+        } catch (ParseException e) {
+            if (errorHandler != null) {
+                if (e.currentToken != null) {
+                    LocatorImpl li = new LocatorImpl(this,
+                            e.currentToken.next.beginLine,
+                            e.currentToken.next.beginColumn - 1);
+                    reportError(li, e);
+                } else {
+                    reportError(getLocator(), e);
+                }
+                skipAfterExpression();
+            } else {
+                skipAfterExpression();
+            }
+        }
+    }
+
+    final public void controlDirective() throws ParseException {
+        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+        case IF_SYM:
+            ifDirective();
+            break;
+        case EACH_SYM:
+            eachDirective();
+            break;
+        default:
+            jj_la1[110] = jj_gen;
+            jj_consume_token(-1);
+            throw new ParseException();
+        }
+    }
+
+    final public void ifContentStatement() throws ParseException {
+        if (jj_2_5(5)) {
+            listModifyDirective();
+        } else {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case INCLUDE_SYM:
+                includeDirective();
+                break;
+            case MEDIA_SYM:
+                media();
+                break;
+            case EXTEND_SYM:
+                extendDirective();
+                break;
+            case VARIABLE:
+                variable();
+                break;
+            case LBRACKET:
+            case ANY:
+            case PARENT:
+            case DOT:
+            case COLON:
+            case INTERPOLATION:
+            case DEBUG_SYM:
+            case WARN_SYM:
+            case IDENT:
+            case HASH:
+                styleRuleOrDeclarationOrNestedProperties();
+                break;
+            case KEY_FRAME_SYM:
+                keyframes();
+                break;
+            default:
+                jj_la1[111] = jj_gen;
+                jj_consume_token(-1);
+                throw new ParseException();
+            }
+        }
+    }
+
+    final public void ifDirective() throws ParseException {
+        Token n = null;
+        String s = null;
+        String evaluator = "";
+        jj_consume_token(IF_SYM);
+        label_75: while (true) {
+            s = booleanExpressionToken();
+            evaluator += s;
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case S:
+            case EQ:
+            case PLUS:
+            case MINUS:
+            case PRECEDES:
+            case SUCCEEDS:
+            case DIV:
+            case ANY:
+            case LPARAN:
+            case RPARAN:
+            case COMPARE:
+            case OR:
+            case AND:
+            case NOT_EQ:
+            case IDENT:
+            case NUMBER:
+            case VARIABLE:
+            case CONTAINS:
+                ;
+                break;
+            default:
+                jj_la1[112] = jj_gen;
+                break label_75;
+            }
+        }
+        jj_consume_token(LBRACE);
+        label_76: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case S:
+                ;
+                break;
+            default:
+                jj_la1[113] = jj_gen;
+                break label_76;
+            }
+            jj_consume_token(S);
+        }
+        documentHandler.startIfElseDirective();
+        documentHandler.ifDirective(evaluator);
+        label_77: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case LBRACKET:
+            case ANY:
+            case PARENT:
+            case DOT:
+            case COLON:
+            case INTERPOLATION:
+            case INCLUDE_SYM:
+            case DEBUG_SYM:
+            case WARN_SYM:
+            case EXTEND_SYM:
+            case IDENT:
+            case VARIABLE:
+            case HASH:
+            case MEDIA_SYM:
+            case KEY_FRAME_SYM:
+            case CONTAINS:
+                ;
+                break;
+            default:
+                jj_la1[114] = jj_gen;
+                break label_77;
+            }
+            ifContentStatement();
+        }
+        jj_consume_token(RBRACE);
+        label_78: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case S:
+                ;
+                break;
+            default:
+                jj_la1[115] = jj_gen;
+                break label_78;
+            }
+            jj_consume_token(S);
+        }
+        label_79: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case ELSE_SYM:
+                ;
+                break;
+            default:
+                jj_la1[116] = jj_gen;
+                break label_79;
+            }
+            elseDirective();
+        }
+        documentHandler.endIfElseDirective();
+    }
+
+    final public void elseDirective() throws ParseException {
+        String evaluator = "";
+        Token n = null;
+        String s = null;
+        jj_consume_token(ELSE_SYM);
+        label_80: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case S:
+                ;
+                break;
+            default:
+                jj_la1[117] = jj_gen;
+                break label_80;
+            }
+            jj_consume_token(S);
+        }
+        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+        case IF:
+            jj_consume_token(IF);
+            label_81: while (true) {
+                s = booleanExpressionToken();
+                evaluator += s;
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                case EQ:
+                case PLUS:
+                case MINUS:
+                case PRECEDES:
+                case SUCCEEDS:
+                case DIV:
+                case ANY:
+                case LPARAN:
+                case RPARAN:
+                case COMPARE:
+                case OR:
+                case AND:
+                case NOT_EQ:
+                case IDENT:
+                case NUMBER:
+                case VARIABLE:
+                case CONTAINS:
+                    ;
+                    break;
+                default:
+                    jj_la1[118] = jj_gen;
+                    break label_81;
+                }
+            }
+            break;
+        default:
+            jj_la1[119] = jj_gen;
+            ;
+        }
+        jj_consume_token(LBRACE);
+        label_82: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case S:
+                ;
+                break;
+            default:
+                jj_la1[120] = jj_gen;
+                break label_82;
+            }
+            jj_consume_token(S);
+        }
+        if (!evaluator.trim().equals("")) {
+            documentHandler.ifDirective(evaluator);
+        } else {
+            documentHandler.elseDirective();
+        }
+        label_83: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case LBRACKET:
+            case ANY:
+            case PARENT:
+            case DOT:
+            case COLON:
+            case INTERPOLATION:
+            case INCLUDE_SYM:
+            case DEBUG_SYM:
+            case WARN_SYM:
+            case EXTEND_SYM:
+            case IDENT:
+            case VARIABLE:
+            case HASH:
+            case MEDIA_SYM:
+            case KEY_FRAME_SYM:
+            case CONTAINS:
+                ;
+                break;
+            default:
+                jj_la1[121] = jj_gen;
+                break label_83;
+            }
+            ifContentStatement();
+        }
+        jj_consume_token(RBRACE);
+        label_84: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case S:
+                ;
+                break;
+            default:
+                jj_la1[122] = jj_gen;
+                break label_84;
+            }
+            jj_consume_token(S);
+        }
+    }
+
+    final public String booleanExpressionToken() throws ParseException {
+        Token n = null;
+        String s = null;
+        if (jj_2_6(2)) {
+            s = containsDirective();
+        } else {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case VARIABLE:
+                n = jj_consume_token(VARIABLE);
+                break;
+            case IDENT:
+                n = jj_consume_token(IDENT);
+                break;
+            case NUMBER:
+                n = jj_consume_token(NUMBER);
+                break;
+            case LPARAN:
+                n = jj_consume_token(LPARAN);
+                break;
+            case RPARAN:
+                n = jj_consume_token(RPARAN);
+                break;
+            case PLUS:
+                n = jj_consume_token(PLUS);
+                break;
+            case MINUS:
+                n = jj_consume_token(MINUS);
+                break;
+            case DIV:
+                n = jj_consume_token(DIV);
+                break;
+            case ANY:
+                n = jj_consume_token(ANY);
+                break;
+            case COMPARE:
+                n = jj_consume_token(COMPARE);
+                break;
+            case EQ:
+                n = jj_consume_token(EQ);
+                break;
+            case PRECEDES:
+                n = jj_consume_token(PRECEDES);
+                break;
+            case SUCCEEDS:
+                n = jj_consume_token(SUCCEEDS);
+                break;
+            case OR:
+                n = jj_consume_token(OR);
+                break;
+            case AND:
+                n = jj_consume_token(AND);
+                break;
+            case S:
+                n = jj_consume_token(S);
+                break;
+            case NOT_EQ:
+                n = jj_consume_token(NOT_EQ);
+                break;
+            default:
+                jj_la1[123] = jj_gen;
+                jj_consume_token(-1);
+                throw new ParseException();
+            }
+        }
+        if (n != null) {
+            {
+                if (true) {
+                    return n.image;
+                }
+            }
+        } else {
+            {
+                if (true) {
+                    return s;
+                }
+            }
+        }
+        throw new Error("Missing return statement in function");
+    }
+
+    final public void eachDirective() throws ParseException {
+        Token var;
+        ArrayList<String> list = null;
+        String listVariable = null;
+        jj_consume_token(EACH_SYM);
+        label_85: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case S:
+                ;
+                break;
+            default:
+                jj_la1[124] = jj_gen;
+                break label_85;
+            }
+            jj_consume_token(S);
+        }
+        var = jj_consume_token(VARIABLE);
+        label_86: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case S:
+                ;
+                break;
+            default:
+                jj_la1[125] = jj_gen;
+                break label_86;
+            }
+            jj_consume_token(S);
+        }
+        jj_consume_token(EACH_IN);
+        label_87: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case S:
+                ;
+                break;
+            default:
+                jj_la1[126] = jj_gen;
+                break label_87;
+            }
+            jj_consume_token(S);
+        }
+        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+        case IDENT:
+            list = stringList();
+            documentHandler.startEachDirective(var.image, list);
+            break;
+        case VARIABLE:
+            listVariable = variableName();
+            documentHandler.startEachDirective(var.image, listVariable);
+            break;
+        default:
+            jj_la1[127] = jj_gen;
+            jj_consume_token(-1);
+            throw new ParseException();
+        }
+        jj_consume_token(LBRACE);
+        label_88: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case S:
+                ;
+                break;
+            default:
+                jj_la1[128] = jj_gen;
+                break label_88;
+            }
+            jj_consume_token(S);
+        }
+        label_89: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case LBRACKET:
+            case ANY:
+            case PARENT:
+            case DOT:
+            case COLON:
+            case INTERPOLATION:
+            case INCLUDE_SYM:
+            case DEBUG_SYM:
+            case WARN_SYM:
+            case EXTEND_SYM:
+            case IDENT:
+            case VARIABLE:
+            case HASH:
+            case MEDIA_SYM:
+            case KEY_FRAME_SYM:
+            case CONTAINS:
+                ;
+                break;
+            default:
+                jj_la1[129] = jj_gen;
+                break label_89;
+            }
+            ifContentStatement();
+        }
+        jj_consume_token(RBRACE);
+        label_90: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case S:
+                ;
+                break;
+            default:
+                jj_la1[130] = jj_gen;
+                break label_90;
+            }
+            jj_consume_token(S);
+        }
+        documentHandler.endEachDirective();
+    }
+
+    final public ArrayList<String> stringList() throws ParseException {
+        ArrayList<String> strings = new ArrayList<String>();
+        Token input;
+        input = jj_consume_token(IDENT);
+        label_91: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case S:
+                ;
+                break;
+            default:
+                jj_la1[131] = jj_gen;
+                break label_91;
+            }
+            jj_consume_token(S);
+        }
+        strings.add(input.image);
+        label_92: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case COMMA:
+                ;
+                break;
+            default:
+                jj_la1[132] = jj_gen;
+                break label_92;
+            }
+            jj_consume_token(COMMA);
+            label_93: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[133] = jj_gen;
+                    break label_93;
+                }
+                jj_consume_token(S);
+            }
+            input = jj_consume_token(IDENT);
+            strings.add(input.image);
+            label_94: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[134] = jj_gen;
+                    break label_94;
+                }
+                jj_consume_token(S);
+            }
+        }
+        {
+            if (true) {
+                return strings;
+            }
+        }
+        throw new Error("Missing return statement in function");
+    }
+
+    final public void mixinDirective() throws ParseException {
+        String name;
+        ArrayList<VariableNode> args = null;
+        String body;
+        jj_consume_token(MIXIN_SYM);
+        label_95: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case S:
+                ;
+                break;
+            default:
+                jj_la1[135] = jj_gen;
+                break label_95;
+            }
+            jj_consume_token(S);
+        }
+        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+        case INTERPOLATION:
+        case IDENT:
+            name = property();
+            break;
+        case FUNCTION:
+            name = functionName();
+            args = arglist();
+            jj_consume_token(RPARAN);
+            label_96: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[136] = jj_gen;
+                    break label_96;
+                }
+                jj_consume_token(S);
+            }
+            break;
+        default:
+            jj_la1[137] = jj_gen;
+            jj_consume_token(-1);
+            throw new ParseException();
+        }
+        jj_consume_token(LBRACE);
+        label_97: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case S:
+                ;
+                break;
+            default:
+                jj_la1[138] = jj_gen;
+                break label_97;
+            }
+            jj_consume_token(S);
+        }
+        documentHandler.startMixinDirective(name, args);
+        label_98: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case LBRACKET:
+            case ANY:
+            case PARENT:
+            case DOT:
+            case COLON:
+            case INTERPOLATION:
+            case INCLUDE_SYM:
+            case DEBUG_SYM:
+            case WARN_SYM:
+            case EACH_SYM:
+            case IF_SYM:
+            case EXTEND_SYM:
+            case IDENT:
+            case VARIABLE:
+            case HASH:
+            case MEDIA_SYM:
+            case PAGE_SYM:
+            case FONT_FACE_SYM:
+            case KEY_FRAME_SYM:
+            case CONTAINS:
+                ;
+                break;
+            default:
+                jj_la1[139] = jj_gen;
+                break label_98;
+            }
+            if (jj_2_7(5)) {
+                ifContentStatement();
+            } else {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case EACH_SYM:
+                case IF_SYM:
+                    controlDirective();
+                    break;
+                case FONT_FACE_SYM:
+                    fontFace();
+                    break;
+                case PAGE_SYM:
+                    page();
+                    break;
+                default:
+                    jj_la1[140] = jj_gen;
+                    jj_consume_token(-1);
+                    throw new ParseException();
+                }
+            }
+        }
+        jj_consume_token(RBRACE);
+        label_99: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case S:
+                ;
+                break;
+            default:
+                jj_la1[141] = jj_gen;
+                break label_99;
+            }
+            jj_consume_token(S);
+        }
+        documentHandler.endMixinDirective(name, args);
+    }
+
+    final public ArrayList<VariableNode> arglist() throws ParseException {
+        ArrayList<VariableNode> args = new ArrayList<VariableNode>();
+        VariableNode arg;
+        boolean hasNonOptionalArgument = false;
+        arg = mixinArg();
+        label_100: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case COMMA:
+                ;
+                break;
+            default:
+                jj_la1[142] = jj_gen;
+                break label_100;
+            }
+            jj_consume_token(COMMA);
+            label_101: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[143] = jj_gen;
+                    break label_101;
+                }
+                jj_consume_token(S);
+            }
+            hasNonOptionalArgument = checkMixinForNonOptionalArguments(arg,
+                    hasNonOptionalArgument);
+            args.add(arg);
+            arg = mixinArg();
+        }
+        hasNonOptionalArgument = checkMixinForNonOptionalArguments(arg,
+                hasNonOptionalArgument);
+        args.add(arg);
+        {
+            if (true) {
+                return args;
+            }
+        }
+        throw new Error("Missing return statement in function");
+    }
+
+    boolean checkMixinForNonOptionalArguments(VariableNode arg,
+            boolean hasNonOptionalArguments) throws ParseException {
+        boolean currentArgHasArguments = arg.getExpr() != null
+                && arg.getExpr().getLexicalUnitType() == LexicalUnitImpl.SCSS_VARIABLE
+                && arg.getExpr().getNextLexicalUnit() != null;
+
+        if (currentArgHasArguments) {
+            if (hasNonOptionalArguments) {
+                throw new ParseException("Sass Error: Required argument $"
+                        + arg.getName()
+                        + " must come before any optional arguments.");
+            }
+            return hasNonOptionalArguments;
+        } else {
+            return true;
+        }
+    }
+
+    final public VariableNode mixinArg() throws ParseException {
+        String name;
+        Token variable = null;
+        LexicalUnitImpl first = null;
+        LexicalUnitImpl prev = null;
+        LexicalUnitImpl next = null;
+        name = variableName();
+        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+        case COLON:
+        case VARIABLE:
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case COLON:
+                jj_consume_token(COLON);
+                label_102: while (true) {
+                    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                    case S:
+                        ;
+                        break;
+                    default:
+                        jj_la1[144] = jj_gen;
+                        break label_102;
+                    }
+                    jj_consume_token(S);
+                }
+                first = nonVariableTerm(null);
+                prev = first;
+                label_103: while (true) {
+                    if (jj_2_8(3)) {
+                        ;
+                    } else {
+                        break label_103;
+                    }
+                    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                    case COMMA:
+                        jj_consume_token(COMMA);
+                        label_104: while (true) {
+                            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                            case S:
+                                ;
+                                break;
+                            default:
+                                jj_la1[145] = jj_gen;
+                                break label_104;
+                            }
+                            jj_consume_token(S);
+                        }
+                        break;
+                    default:
+                        jj_la1[146] = jj_gen;
+                        ;
+                    }
+                    prev = nonVariableTerm(prev);
+                }
+                break;
+            case VARIABLE:
+                variable = jj_consume_token(VARIABLE);
+                first = LexicalUnitImpl.createVariable(token.beginLine,
+                        token.beginColumn, prev, variable.image);
+                break;
+            default:
+                jj_la1[147] = jj_gen;
+                jj_consume_token(-1);
+                throw new ParseException();
+            }
+            break;
+        default:
+            jj_la1[148] = jj_gen;
+            ;
+        }
+        VariableNode arg = new VariableNode(name, first, false);
+        {
+            if (true) {
+                return arg;
+            }
+        }
+        throw new Error("Missing return statement in function");
+    }
+
+    final public ArrayList<LexicalUnitImpl> argValuelist()
+            throws ParseException {
+        ArrayList<LexicalUnitImpl> args = new ArrayList<LexicalUnitImpl>();
+        LexicalUnitImpl first = null;
+        LexicalUnitImpl next = null;
+        LexicalUnitImpl prev = null;
+        first = term(null);
+        args.add(first);
+        prev = first;
+        label_105: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case PLUS:
+            case MINUS:
+            case DOT:
+            case COLON:
+            case STRING:
+            case IDENT:
+            case NUMBER:
+            case URL:
+            case VARIABLE:
+            case PERCENTAGE:
+            case PT:
+            case MM:
+            case CM:
+            case PC:
+            case IN:
+            case PX:
+            case EMS:
+            case EXS:
+            case DEG:
+            case RAD:
+            case GRAD:
+            case MS:
+            case SECOND:
+            case HZ:
+            case KHZ:
+            case DIMEN:
+            case HASH:
+            case UNICODERANGE:
+            case FUNCTION:
+                ;
+                break;
+            default:
+                jj_la1[149] = jj_gen;
+                break label_105;
+            }
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case COLON:
+                jj_consume_token(COLON);
+                label_106: while (true) {
+                    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                    case S:
+                        ;
+                        break;
+                    default:
+                        jj_la1[150] = jj_gen;
+                        break label_106;
+                    }
+                    jj_consume_token(S);
+                }
+                break;
+            default:
+                jj_la1[151] = jj_gen;
+                ;
+            }
+            next = term(prev);
+            prev.setNextLexicalUnit(next);
+            prev = next;
+        }
+        label_107: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case COMMA:
+                ;
+                break;
+            default:
+                jj_la1[152] = jj_gen;
+                break label_107;
+            }
+            jj_consume_token(COMMA);
+            label_108: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[153] = jj_gen;
+                    break label_108;
+                }
+                jj_consume_token(S);
+            }
+            first = term(null);
+            args.add(first);
+            prev = first;
+            label_109: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case PLUS:
+                case MINUS:
+                case DOT:
+                case COLON:
+                case STRING:
+                case IDENT:
+                case NUMBER:
+                case URL:
+                case VARIABLE:
+                case PERCENTAGE:
+                case PT:
+                case MM:
+                case CM:
+                case PC:
+                case IN:
+                case PX:
+                case EMS:
+                case EXS:
+                case DEG:
+                case RAD:
+                case GRAD:
+                case MS:
+                case SECOND:
+                case HZ:
+                case KHZ:
+                case DIMEN:
+                case HASH:
+                case UNICODERANGE:
+                case FUNCTION:
+                    ;
+                    break;
+                default:
+                    jj_la1[154] = jj_gen;
+                    break label_109;
+                }
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case COLON:
+                    jj_consume_token(COLON);
+                    label_110: while (true) {
+                        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                        case S:
+                            ;
+                            break;
+                        default:
+                            jj_la1[155] = jj_gen;
+                            break label_110;
+                        }
+                        jj_consume_token(S);
+                    }
+                    break;
+                default:
+                    jj_la1[156] = jj_gen;
+                    ;
+                }
+                next = term(prev);
+                prev.setNextLexicalUnit(next);
+                prev = next;
+            }
+        }
+        {
+            if (true) {
+                return args;
+            }
+        }
+        throw new Error("Missing return statement in function");
+    }
+
+    final public void includeDirective() throws ParseException {
+        String name;
+        ArrayList<LexicalUnitImpl> args = null;
+        jj_consume_token(INCLUDE_SYM);
+        label_111: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case S:
+                ;
+                break;
+            default:
+                jj_la1[157] = jj_gen;
+                break label_111;
+            }
+            jj_consume_token(S);
+        }
+        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+        case INTERPOLATION:
+        case IDENT:
+            name = property();
+            break;
+        case VARIABLE:
+            name = variableName();
+            name = "$" + name;
+            break;
+        case FUNCTION:
+            name = functionName();
+            args = argValuelist();
+            jj_consume_token(RPARAN);
+            break;
+        default:
+            jj_la1[158] = jj_gen;
+            jj_consume_token(-1);
+            throw new ParseException();
+        }
+        label_112: while (true) {
+            jj_consume_token(SEMICOLON);
+            label_113: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[159] = jj_gen;
+                    break label_113;
+                }
+                jj_consume_token(S);
+            }
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case SEMICOLON:
+                ;
+                break;
+            default:
+                jj_la1[160] = jj_gen;
+                break label_112;
+            }
+        }
+        documentHandler.includeDirective(name, args);
+    }
+
+    final public String interpolation() throws ParseException {
+        Token n;
+        n = jj_consume_token(INTERPOLATION);
+        {
+            if (true) {
+                return n.image;
+            }
+        }
+        throw new Error("Missing return statement in function");
+    }
+
+    final public void listModifyDirective() throws ParseException {
+        if (jj_2_9(5)) {
+            removeDirective();
+        } else if (jj_2_10(5)) {
+            appendDirective();
+        } else if (jj_2_11(5)) {
+            containsDirective();
+        } else {
+            jj_consume_token(-1);
+            throw new ParseException();
+        }
+        label_114: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case S:
+                ;
+                break;
+            default:
+                jj_la1[161] = jj_gen;
+                break label_114;
+            }
+            jj_consume_token(S);
+        }
+        jj_consume_token(SEMICOLON);
+        label_115: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case S:
+                ;
+                break;
+            default:
+                jj_la1[162] = jj_gen;
+                break label_115;
+            }
+            jj_consume_token(S);
+        }
+    }
+
+    /**
+     * @exception ParseException
+     *                exception during the parse
+     */
+    final public void appendDirective() throws ParseException {
+        String list = null;
+        String remove = null;
+        String separator = null;
+        String variable = null;
+        Token n = null;
+        n = jj_consume_token(VARIABLE);
+        variable = n.image;
+        label_116: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case S:
+                ;
+                break;
+            default:
+                jj_la1[163] = jj_gen;
+                break label_116;
+            }
+            jj_consume_token(S);
+        }
+        jj_consume_token(COLON);
+        label_117: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case S:
+                ;
+                break;
+            default:
+                jj_la1[164] = jj_gen;
+                break label_117;
+            }
+            jj_consume_token(S);
+        }
+        jj_consume_token(APPEND);
+        label_118: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case S:
+                ;
+                break;
+            default:
+                jj_la1[165] = jj_gen;
+                break label_118;
+            }
+            jj_consume_token(S);
+        }
+        list = listModifyDirectiveArgs(0);
+        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+        case RPARAN:
+            jj_consume_token(RPARAN);
+            break;
+        default:
+            jj_la1[166] = jj_gen;
+            ;
+        }
+        jj_consume_token(COMMA);
+        label_119: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case S:
+                ;
+                break;
+            default:
+                jj_la1[167] = jj_gen;
+                break label_119;
+            }
+            jj_consume_token(S);
+        }
+        remove = listModifyDirectiveArgs(1);
+        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+        case COMMA:
+            jj_consume_token(COMMA);
+            label_120: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[168] = jj_gen;
+                    break label_120;
+                }
+                jj_consume_token(S);
+            }
+            n = jj_consume_token(IDENT);
+            separator = n.image;
+            label_121: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[169] = jj_gen;
+                    break label_121;
+                }
+                jj_consume_token(S);
+            }
+            break;
+        default:
+            jj_la1[170] = jj_gen;
+            ;
+        }
+        jj_consume_token(RPARAN);
+        documentHandler.appendDirective(variable, list, remove, separator);
+    }
+
+    /**
+     * @exception ParseException
+     *                exception during the parse
+     */
+    final public void removeDirective() throws ParseException {
+        String list = null;
+        String remove = null;
+        String separator = null;
+        String variable = null;
+        Token n = null;
+        n = jj_consume_token(VARIABLE);
+        variable = n.image;
+        label_122: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case S:
+                ;
+                break;
+            default:
+                jj_la1[171] = jj_gen;
+                break label_122;
+            }
+            jj_consume_token(S);
+        }
+        jj_consume_token(COLON);
+        label_123: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case S:
+                ;
+                break;
+            default:
+                jj_la1[172] = jj_gen;
+                break label_123;
+            }
+            jj_consume_token(S);
+        }
+        jj_consume_token(REMOVE);
+        label_124: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case S:
+                ;
+                break;
+            default:
+                jj_la1[173] = jj_gen;
+                break label_124;
+            }
+            jj_consume_token(S);
+        }
+        list = listModifyDirectiveArgs(0);
+        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+        case RPARAN:
+            jj_consume_token(RPARAN);
+            break;
+        default:
+            jj_la1[174] = jj_gen;
+            ;
+        }
+        jj_consume_token(COMMA);
+        label_125: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case S:
+                ;
+                break;
+            default:
+                jj_la1[175] = jj_gen;
+                break label_125;
+            }
+            jj_consume_token(S);
+        }
+        remove = listModifyDirectiveArgs(1);
+        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+        case COMMA:
+            jj_consume_token(COMMA);
+            label_126: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[176] = jj_gen;
+                    break label_126;
+                }
+                jj_consume_token(S);
+            }
+            n = jj_consume_token(IDENT);
+            separator = n.image;
+            label_127: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[177] = jj_gen;
+                    break label_127;
+                }
+                jj_consume_token(S);
+            }
+            break;
+        default:
+            jj_la1[178] = jj_gen;
+            ;
+        }
+        jj_consume_token(RPARAN);
+        documentHandler.removeDirective(variable, list, remove, separator);
+    }
+
+    /**
+     * @exception ParseException
+     *                exception during the parse
+     */
+    final public String containsDirective() throws ParseException {
+        String list = null;
+        String remove = null;
+        String separator = null;
+        String variable = null;
+        Token n = null;
+        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+        case VARIABLE:
+            n = jj_consume_token(VARIABLE);
+            variable = n.image;
+            label_128: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[179] = jj_gen;
+                    break label_128;
+                }
+                jj_consume_token(S);
+            }
+            jj_consume_token(COLON);
+            label_129: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[180] = jj_gen;
+                    break label_129;
+                }
+                jj_consume_token(S);
+            }
+            break;
+        default:
+            jj_la1[181] = jj_gen;
+            ;
+        }
+        jj_consume_token(CONTAINS);
+        label_130: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case S:
+                ;
+                break;
+            default:
+                jj_la1[182] = jj_gen;
+                break label_130;
+            }
+            jj_consume_token(S);
+        }
+        list = listModifyDirectiveArgs(0);
+        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+        case RPARAN:
+            jj_consume_token(RPARAN);
+            break;
+        default:
+            jj_la1[183] = jj_gen;
+            ;
+        }
+        jj_consume_token(COMMA);
+        label_131: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case S:
+                ;
+                break;
+            default:
+                jj_la1[184] = jj_gen;
+                break label_131;
+            }
+            jj_consume_token(S);
+        }
+        remove = listModifyDirectiveArgs(1);
+        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+        case COMMA:
+            jj_consume_token(COMMA);
+            label_132: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[185] = jj_gen;
+                    break label_132;
+                }
+                jj_consume_token(S);
+            }
+            n = jj_consume_token(IDENT);
+            separator = n.image;
+            label_133: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[186] = jj_gen;
+                    break label_133;
+                }
+                jj_consume_token(S);
+            }
+            break;
+        default:
+            jj_la1[187] = jj_gen;
+            ;
+        }
+        jj_consume_token(RPARAN);
+        /*
+         * if it is not in the form like
+         * "$contains : contains($items, .v-button);"for example in @if, like
+         * "@if (contains(a b c, b))", then create a tempvariable for contains(a
+         * b c, b);
+         */
+        if (variable == null) {
+            variable = "$var_" + UUID.randomUUID();
+        }
+        documentHandler.containsDirective(variable, list, remove, separator);
+        {
+            if (true) {
+                return variable;
+            }
+        }
+        throw new Error("Missing return statement in function");
+    }
+
+    String listModifyDirectiveArgs(int nest) throws ParseException {
+        String list = "";
+        int nesting = nest;
+        Token t = null;
+
+        while (true) {
+            t = getToken(1);
+            String s = t.image;
+            if (t.kind == VARIABLE || t.kind == IDENT) {
+                list += s;
+            } else if (s.toLowerCase().equals("auto")
+                    || s.toLowerCase().equals("space")
+                    || s.toLowerCase().equals("comma")) {
+                int i = 2;
+                Token temp = getToken(i);
+                boolean isLast = true;
+                while (temp.kind != SEMICOLON) {
+                    if (temp.kind != RPARAN || temp.kind != S) {
+                        isLast = false;
+                    }
+                    i++;
+                    temp = getToken(i);
+                }
+
+                if (isLast) {
+                    return list;
+                }
+            } else if (t.kind == STRING) {
+                list += s.substring(1, s.length()).substring(0, s.length() - 2);
+
+            } else if (t.kind == LPARAN) {
+                nesting++;
+                if (nesting > nest + 1) {
+                    throw new CSSParseException(
+                            "Only one ( ) pair per parameter allowed",
+                            getLocator());
+                }
+            } else if (t.kind == RPARAN) {
+                nesting--;
+                if (nesting == 0) {
+                    return list;
+                }
+            } else if (t.kind == COMMA) {
+                if (nesting == nest) {
+                    return list;
+                } else {
+                    list += ",";
+                }
+
+            } else if (t.kind == S) {
+                list += " ";
+            } else if (t.kind == LBRACE) {
+                throw new CSSParseException("Invalid token,'{' found",
+                        getLocator());
+            }
+
+            getNextToken();
+        }
+    }
+
+    final public Node returnDirective() throws ParseException {
+        String raw;
+        raw = skipStatement();
+        {
+            if (true) {
+                return null;
+            }
+        }
+        throw new Error("Missing return statement in function");
+    }
+
+    final public void debuggingDirective() throws ParseException {
+        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+        case DEBUG_SYM:
+            debugDirective();
+            break;
+        case WARN_SYM:
+            warnDirective();
+            break;
+        default:
+            jj_la1[188] = jj_gen;
+            jj_consume_token(-1);
+            throw new ParseException();
+        }
+    }
+
+    final public void debugDirective() throws ParseException {
+        jj_consume_token(DEBUG_SYM);
+        String content = skipStatementUntilSemiColon();
+        // TODO should evaluate the content expression, call
+        // documentHandler.debugDirective() etc.
+        System.out.println(content);
+        label_134: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case S:
+                ;
+                break;
+            default:
+                jj_la1[189] = jj_gen;
+                break label_134;
+            }
+            jj_consume_token(S);
+        }
+    }
+
+    final public void warnDirective() throws ParseException {
+        jj_consume_token(WARN_SYM);
+        String content = skipStatementUntilSemiColon();
+        // TODO should evaluate the content expression, call
+        // documentHandler.warnDirective() etc.
+        System.err.println(content);
+        label_135: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case S:
+                ;
+                break;
+            default:
+                jj_la1[190] = jj_gen;
+                break label_135;
+            }
+            jj_consume_token(S);
+        }
+    }
+
+    final public Node forDirective() throws ParseException {
+        String var;
+        String from;
+        String to;
+        boolean exclusive;
+        String body;
+        Token tok;
+        var = variableName();
+        int[] toThrough = { TO, THROUGH };
+        from = skipStatementUntil(toThrough);
+        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+        case TO:
+            tok = jj_consume_token(TO);
+            exclusive = true;
+            break;
+        case THROUGH:
+            tok = jj_consume_token(THROUGH);
+            exclusive = false;
+            break;
+        default:
+            jj_la1[191] = jj_gen;
+            jj_consume_token(-1);
+            throw new ParseException();
+        }
+        to = skipStatementUntilLeftBrace();
+        label_136: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case S:
+                ;
+                break;
+            default:
+                jj_la1[192] = jj_gen;
+                break label_136;
+            }
+            jj_consume_token(S);
+        }
+        body = skipStatement();
+        {
+            if (true) {
+                return documentHandler.forDirective(var, from, to, exclusive,
+                        body);
+            }
+        }
+        throw new Error("Missing return statement in function");
+    }
+
+    final public Node whileDirective() throws ParseException {
+        String condition;
+        String body;
+        condition = skipStatementUntilLeftBrace();
+        body = skipStatement();
+        {
+            if (true) {
+                return documentHandler.whileDirective(condition, body);
+            }
+        }
+        throw new Error("Missing return statement in function");
+    }
+
+    final public void extendDirective() throws ParseException {
+        ArrayList<String> list;
+        jj_consume_token(EXTEND_SYM);
+        label_137: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case S:
+                ;
+                break;
+            default:
+                jj_la1[193] = jj_gen;
+                break label_137;
+            }
+            jj_consume_token(S);
+        }
+        list = selectorList();
+        label_138: while (true) {
+            jj_consume_token(SEMICOLON);
+            label_139: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[194] = jj_gen;
+                    break label_139;
+                }
+                jj_consume_token(S);
+            }
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case SEMICOLON:
+                ;
+                break;
+            default:
+                jj_la1[195] = jj_gen;
+                break label_138;
+            }
+        }
+        documentHandler.extendDirective(list);
+    }
+
+    Node importDirective() throws ParseException {
+        return null;
+    }
+
+    Node charsetDirective() throws ParseException {
+        return null;
+    }
+
+    Node mozDocumentDirective() throws ParseException {
+        return null;
+    }
+
+    Node supportsDirective() throws ParseException {
+        return null;
+    }
+
+    final public void nestedProperties() throws ParseException {
+        String name;
+        LexicalUnit exp;
+        name = property();
+        jj_consume_token(COLON);
+        label_140: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case S:
+                ;
+                break;
+            default:
+                jj_la1[196] = jj_gen;
+                break label_140;
+            }
+            jj_consume_token(S);
+        }
+        jj_consume_token(LBRACE);
+        label_141: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case S:
+                ;
+                break;
+            default:
+                jj_la1[197] = jj_gen;
+                break label_141;
+            }
+            jj_consume_token(S);
+        }
+        documentHandler.startNestedProperties(name);
+        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+        case INTERPOLATION:
+        case IDENT:
+            declaration();
+            break;
+        default:
+            jj_la1[198] = jj_gen;
+            ;
+        }
+        label_142: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case SEMICOLON:
+                ;
+                break;
+            default:
+                jj_la1[199] = jj_gen;
+                break label_142;
+            }
+            jj_consume_token(SEMICOLON);
+            label_143: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[200] = jj_gen;
+                    break label_143;
+                }
+                jj_consume_token(S);
+            }
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case INTERPOLATION:
+            case IDENT:
+                declaration();
+                break;
+            default:
+                jj_la1[201] = jj_gen;
+                ;
+            }
+        }
+        jj_consume_token(RBRACE);
+        documentHandler.endNestedProperties(name);
+        label_144: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case S:
+                ;
+                break;
+            default:
+                jj_la1[202] = jj_gen;
+                break label_144;
+            }
+            jj_consume_token(S);
+        }
+    }
+
+    /**
+     * @exception ParseException
+     *                exception during the parse
+     */
+    final public void styleRuleOrDeclarationOrNestedProperties()
+            throws ParseException {
+        try {
+            if (jj_2_12(5)) {
+                styleRule();
+            } else {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case DEBUG_SYM:
+                case WARN_SYM:
+                    debuggingDirective();
+                    break;
+                case INTERPOLATION:
+                case IDENT:
+                    declarationOrNestedProperties();
+                    break;
+                default:
+                    jj_la1[203] = jj_gen;
+                    jj_consume_token(-1);
+                    throw new ParseException();
+                }
+            }
+        } catch (JumpException e) {
+            skipAfterExpression();
+            // reportWarningSkipText(getLocator(), skipAfterExpression());
+
+        } catch (ParseException e) {
+            if (errorHandler != null) {
+                if (e.currentToken != null) {
+                    LocatorImpl li = new LocatorImpl(this,
+                            e.currentToken.next.beginLine,
+                            e.currentToken.next.beginColumn - 1);
+                    reportError(li, e);
+                } else {
+                    reportError(getLocator(), e);
+                }
+                skipAfterExpression();
+                /*
+                 * LocatorImpl loc = (LocatorImpl) getLocator(); loc.column--;
+                 * reportWarningSkipText(loc, skipAfterExpression());
+                 */
+            } else {
+                skipAfterExpression();
+            }
+        }
+    }
+
+    /**
+     * @exception ParseException
+     *                exception during the parse
+     */
+    final public void declarationOrNestedProperties() throws ParseException {
+        boolean important = false;
+        String name;
+        LexicalUnitImpl exp;
+        Token save;
+        String comment = null;
+        try {
+            name = property();
+            save = token;
+            jj_consume_token(COLON);
+            label_145: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[204] = jj_gen;
+                    break label_145;
+                }
+                jj_consume_token(S);
+            }
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case PLUS:
+            case MINUS:
+            case DOT:
+            case STRING:
+            case IDENT:
+            case NUMBER:
+            case URL:
+            case VARIABLE:
+            case PERCENTAGE:
+            case PT:
+            case MM:
+            case CM:
+            case PC:
+            case IN:
+            case PX:
+            case EMS:
+            case EXS:
+            case DEG:
+            case RAD:
+            case GRAD:
+            case MS:
+            case SECOND:
+            case HZ:
+            case KHZ:
+            case DIMEN:
+            case HASH:
+            case UNICODERANGE:
+            case FUNCTION:
+                exp = expr();
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case IMPORTANT_SYM:
+                    important = prio();
+                    break;
+                default:
+                    jj_la1[205] = jj_gen;
+                    ;
+                }
+                Token next = getToken(1);
+                if (next.kind == SEMICOLON || next.kind == RBRACE) {
+                    while (next.kind == SEMICOLON) {
+                        skipStatement();
+                        next = getToken(1);
+                    }
+                    if (token.specialToken != null) {
+                        documentHandler.property(name, exp, important,
+                                token.specialToken.image);
+                    } else {
+                        documentHandler.property(name, exp, important, null);
+                    }
+                }
+                break;
+            case LBRACE:
+                jj_consume_token(LBRACE);
+                label_146: while (true) {
+                    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                    case S:
+                        ;
+                        break;
+                    default:
+                        jj_la1[206] = jj_gen;
+                        break label_146;
+                    }
+                    jj_consume_token(S);
+                }
+                documentHandler.startNestedProperties(name);
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case INTERPOLATION:
+                case IDENT:
+                    declaration();
+                    break;
+                default:
+                    jj_la1[207] = jj_gen;
+                    ;
+                }
+                label_147: while (true) {
+                    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                    case SEMICOLON:
+                        ;
+                        break;
+                    default:
+                        jj_la1[208] = jj_gen;
+                        break label_147;
+                    }
+                    jj_consume_token(SEMICOLON);
+                    label_148: while (true) {
+                        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                        case S:
+                            ;
+                            break;
+                        default:
+                            jj_la1[209] = jj_gen;
+                            break label_148;
+                        }
+                        jj_consume_token(S);
+                    }
+                    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                    case INTERPOLATION:
+                    case IDENT:
+                        declaration();
+                        break;
+                    default:
+                        jj_la1[210] = jj_gen;
+                        ;
+                    }
+                }
+                jj_consume_token(RBRACE);
+                label_149: while (true) {
+                    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                    case S:
+                        ;
+                        break;
+                    default:
+                        jj_la1[211] = jj_gen;
+                        break label_149;
+                    }
+                    jj_consume_token(S);
+                }
+                documentHandler.endNestedProperties(name);
+                break;
+            default:
+                jj_la1[212] = jj_gen;
+                jj_consume_token(-1);
+                throw new ParseException();
+            }
+        } catch (JumpException e) {
+            skipAfterExpression();
+            // reportWarningSkipText(getLocator(), skipAfterExpression());
+
+        } catch (NumberFormatException e) {
+            if (errorHandler != null) {
+                errorHandler.error(new CSSParseException("Invalid number "
+                        + e.getMessage(), getLocator(), e));
+            }
+            reportWarningSkipText(getLocator(), skipAfterExpression());
+        } catch (ParseException e) {
+            if (errorHandler != null) {
+                if (e.currentToken != null) {
+                    LocatorImpl li = new LocatorImpl(this,
+                            e.currentToken.next.beginLine,
+                            e.currentToken.next.beginColumn - 1);
+                    reportError(li, e);
+                } else {
+                    reportError(getLocator(), e);
+                }
+                skipAfterExpression();
+                /*
+                 * LocatorImpl loc = (LocatorImpl) getLocator(); loc.column--;
+                 * reportWarningSkipText(loc, skipAfterExpression());
+                 */
+            } else {
+                skipAfterExpression();
+            }
+        }
+    }
+
+    /**
+     * @exception ParseException
+     *                exception during the parse
+     */
+    final public void declaration() throws ParseException {
+        boolean important = false;
+        String name;
+        LexicalUnit exp;
+        Token save;
+        try {
+            name = property();
+            save = token;
+            jj_consume_token(COLON);
+            label_150: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[213] = jj_gen;
+                    break label_150;
+                }
+                jj_consume_token(S);
+            }
+            exp = expr();
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case IMPORTANT_SYM:
+                important = prio();
+                break;
+            default:
+                jj_la1[214] = jj_gen;
+                ;
+            }
+            documentHandler.property(name, exp, important);
+        } catch (JumpException e) {
+            skipAfterExpression();
+            // reportWarningSkipText(getLocator(), skipAfterExpression());
+
+        } catch (NumberFormatException e) {
+            if (errorHandler != null) {
+                errorHandler.error(new CSSParseException("Invalid number "
+                        + e.getMessage(), getLocator(), e));
+            }
+            reportWarningSkipText(getLocator(), skipAfterExpression());
+        } catch (ParseException e) {
+            if (errorHandler != null) {
+                if (e.currentToken != null) {
+                    LocatorImpl li = new LocatorImpl(this,
+                            e.currentToken.next.beginLine,
+                            e.currentToken.next.beginColumn - 1);
+                    reportError(li, e);
+                } else {
+                    reportError(getLocator(), e);
+                }
+                skipAfterExpression();
+                /*
+                 * LocatorImpl loc = (LocatorImpl) getLocator(); loc.column--;
+                 * reportWarningSkipText(loc, skipAfterExpression());
+                 */
+            } else {
+                skipAfterExpression();
+            }
+        }
+    }
+
+    /**
+     * @exception ParseException
+     *                exception during the parse
+     */
+    final public boolean prio() throws ParseException {
+        jj_consume_token(IMPORTANT_SYM);
+        label_151: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case S:
+                ;
+                break;
+            default:
+                jj_la1[215] = jj_gen;
+                break label_151;
+            }
+            jj_consume_token(S);
+        }
+        {
+            if (true) {
+                return true;
+            }
+        }
+        throw new Error("Missing return statement in function");
+    }
+
+    final public boolean guarded() throws ParseException {
+        jj_consume_token(GUARDED_SYM);
+        label_152: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case S:
+                ;
+                break;
+            default:
+                jj_la1[216] = jj_gen;
+                break label_152;
+            }
+            jj_consume_token(S);
+        }
+        {
+            if (true) {
+                return true;
+            }
+        }
+        throw new Error("Missing return statement in function");
+    }
+
+    /**
+     * @exception ParseException
+     *                exception during the parse
+     */
+    final public LexicalUnitImpl operator(LexicalUnitImpl prev)
+            throws ParseException {
+        Token n;
+        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+        case DIV:
+            n = jj_consume_token(DIV);
+            label_153: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[217] = jj_gen;
+                    break label_153;
+                }
+                jj_consume_token(S);
+            }
+            {
+                if (true) {
+                    return LexicalUnitImpl.createSlash(n.beginLine,
+                            n.beginColumn, prev);
+                }
+            }
+            break;
+        case COMMA:
+            n = jj_consume_token(COMMA);
+            label_154: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[218] = jj_gen;
+                    break label_154;
+                }
+                jj_consume_token(S);
+            }
+            {
+                if (true) {
+                    return LexicalUnitImpl.createComma(n.beginLine,
+                            n.beginColumn, prev);
+                }
+            }
+            break;
+        default:
+            jj_la1[219] = jj_gen;
+            jj_consume_token(-1);
+            throw new ParseException();
+        }
+        throw new Error("Missing return statement in function");
+    }
+
+    /**
+     * @exception ParseException
+     *                exception during the parse
+     */
+    final public LexicalUnitImpl expr() throws ParseException {
+        LexicalUnitImpl first, res;
+        char op;
+        first = term(null);
+        res = first;
+        label_155: while (true) {
+            if (jj_2_13(2)) {
+                ;
+            } else {
+                break label_155;
+            }
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case COMMA:
+            case DIV:
+                res = operator(res);
+                break;
+            default:
+                jj_la1[220] = jj_gen;
+                ;
+            }
+            res = term(res);
+        }
+        {
+            if (true) {
+                return first;
+            }
+        }
+        throw new Error("Missing return statement in function");
+    }
+
+    /**
+     * @exception ParseException
+     *                exception during the parse
+     */
+    final public char unaryOperator() throws ParseException {
+        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+        case MINUS:
+            jj_consume_token(MINUS);
+            {
+                if (true) {
+                    return '-';
+                }
+            }
+            break;
+        case PLUS:
+            jj_consume_token(PLUS);
+            {
+                if (true) {
+                    return '+';
+                }
+            }
+            break;
+        default:
+            jj_la1[221] = jj_gen;
+            jj_consume_token(-1);
+            throw new ParseException();
+        }
+        throw new Error("Missing return statement in function");
+    }
+
+    /**
+     * @exception ParseException
+     *                exception during the parse
+     */
+    final public LexicalUnitImpl term(LexicalUnitImpl prev)
+            throws ParseException {
+        LexicalUnitImpl result = null;
+        Token n = null;
+        char op = ' ';
+        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+        case PLUS:
+        case MINUS:
+        case DOT:
+        case STRING:
+        case IDENT:
+        case NUMBER:
+        case URL:
+        case PERCENTAGE:
+        case PT:
+        case MM:
+        case CM:
+        case PC:
+        case IN:
+        case PX:
+        case EMS:
+        case EXS:
+        case DEG:
+        case RAD:
+        case GRAD:
+        case MS:
+        case SECOND:
+        case HZ:
+        case KHZ:
+        case DIMEN:
+        case HASH:
+        case UNICODERANGE:
+        case FUNCTION:
+            result = nonVariableTerm(prev);
+            break;
+        case VARIABLE:
+            result = variableTerm(prev);
+            break;
+        default:
+            jj_la1[222] = jj_gen;
+            jj_consume_token(-1);
+            throw new ParseException();
+        }
+        {
+            if (true) {
+                return result;
+            }
+        }
+        throw new Error("Missing return statement in function");
+    }
+
+    final public LexicalUnitImpl variableTerm(LexicalUnitImpl prev)
+            throws ParseException {
+        LexicalUnitImpl result = null;
+        String varName = "";
+        varName = variableName();
+        result = LexicalUnitImpl.createVariable(token.beginLine,
+                token.beginColumn, prev, varName);
+        {
+            if (true) {
+                return result;
+            }
+        }
+        throw new Error("Missing return statement in function");
+    }
+
+    final public LexicalUnitImpl nonVariableTerm(LexicalUnitImpl prev)
+            throws ParseException {
+        LexicalUnitImpl result = null;
+        Token n = null;
+        char op = ' ';
+        String varName;
+        String s = "";
+        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+        case PLUS:
+        case MINUS:
+        case NUMBER:
+        case PERCENTAGE:
+        case PT:
+        case MM:
+        case CM:
+        case PC:
+        case IN:
+        case PX:
+        case EMS:
+        case EXS:
+        case DEG:
+        case RAD:
+        case GRAD:
+        case MS:
+        case SECOND:
+        case HZ:
+        case KHZ:
+        case DIMEN:
+        case FUNCTION:
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case PLUS:
+            case MINUS:
+                op = unaryOperator();
+                break;
+            default:
+                jj_la1[223] = jj_gen;
+                ;
+            }
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case NUMBER:
+                n = jj_consume_token(NUMBER);
+                result = LexicalUnitImpl.createNumber(n.beginLine,
+                        n.beginColumn, prev, number(op, n, 0));
+                break;
+            case PERCENTAGE:
+                n = jj_consume_token(PERCENTAGE);
+                result = LexicalUnitImpl.createPercentage(n.beginLine,
+                        n.beginColumn, prev, number(op, n, 1));
+                break;
+            case PT:
+                n = jj_consume_token(PT);
+                result = LexicalUnitImpl.createPT(n.beginLine, n.beginColumn,
+                        prev, number(op, n, 2));
+                break;
+            case CM:
+                n = jj_consume_token(CM);
+                result = LexicalUnitImpl.createCM(n.beginLine, n.beginColumn,
+                        prev, number(op, n, 2));
+                break;
+            case MM:
+                n = jj_consume_token(MM);
+                result = LexicalUnitImpl.createMM(n.beginLine, n.beginColumn,
+                        prev, number(op, n, 2));
+                break;
+            case PC:
+                n = jj_consume_token(PC);
+                result = LexicalUnitImpl.createPC(n.beginLine, n.beginColumn,
+                        prev, number(op, n, 2));
+                break;
+            case IN:
+                n = jj_consume_token(IN);
+                result = LexicalUnitImpl.createIN(n.beginLine, n.beginColumn,
+                        prev, number(op, n, 2));
+                break;
+            case PX:
+                n = jj_consume_token(PX);
+                result = LexicalUnitImpl.createPX(n.beginLine, n.beginColumn,
+                        prev, number(op, n, 2));
+                break;
+            case EMS:
+                n = jj_consume_token(EMS);
+                result = LexicalUnitImpl.createEMS(n.beginLine, n.beginColumn,
+                        prev, number(op, n, 2));
+                break;
+            case EXS:
+                n = jj_consume_token(EXS);
+                result = LexicalUnitImpl.createEXS(n.beginLine, n.beginColumn,
+                        prev, number(op, n, 2));
+                break;
+            case DEG:
+                n = jj_consume_token(DEG);
+                result = LexicalUnitImpl.createDEG(n.beginLine, n.beginColumn,
+                        prev, number(op, n, 3));
+                break;
+            case RAD:
+                n = jj_consume_token(RAD);
+                result = LexicalUnitImpl.createRAD(n.beginLine, n.beginColumn,
+                        prev, number(op, n, 3));
+                break;
+            case GRAD:
+                n = jj_consume_token(GRAD);
+                result = LexicalUnitImpl.createGRAD(n.beginLine, n.beginColumn,
+                        prev, number(op, n, 3));
+                break;
+            case SECOND:
+                n = jj_consume_token(SECOND);
+                result = LexicalUnitImpl.createS(n.beginLine, n.beginColumn,
+                        prev, number(op, n, 1));
+                break;
+            case MS:
+                n = jj_consume_token(MS);
+                result = LexicalUnitImpl.createMS(n.beginLine, n.beginColumn,
+                        prev, number(op, n, 2));
+                break;
+            case HZ:
+                n = jj_consume_token(HZ);
+                result = LexicalUnitImpl.createHZ(n.beginLine, n.beginColumn,
+                        prev, number(op, n, 2));
+                break;
+            case KHZ:
+                n = jj_consume_token(KHZ);
+                result = LexicalUnitImpl.createKHZ(n.beginLine, n.beginColumn,
+                        prev, number(op, n, 3));
+                break;
+            case DIMEN:
+                n = jj_consume_token(DIMEN);
+                s = n.image;
+                int i = 0;
+                while (i < s.length()
+                        && (Character.isDigit(s.charAt(i)) || (s.charAt(i) == '.'))) {
+                    i++;
+                }
+                result = LexicalUnitImpl.createDimen(n.beginLine,
+                        n.beginColumn, prev, Float.valueOf(s.substring(0, i))
+                                .floatValue(), s.substring(i));
+                break;
+            case FUNCTION:
+                result = function(op, prev);
+                break;
+            default:
+                jj_la1[224] = jj_gen;
+                jj_consume_token(-1);
+                throw new ParseException();
+            }
+            break;
+        case DOT:
+        case STRING:
+        case IDENT:
+        case URL:
+        case HASH:
+        case UNICODERANGE:
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case STRING:
+                n = jj_consume_token(STRING);
+                result = LexicalUnitImpl.createString(n.beginLine,
+                        n.beginColumn, prev,
+                        convertStringIndex(n.image, 1, n.image.length() - 1));
+                break;
+            case DOT:
+            case IDENT:
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case DOT:
+                    jj_consume_token(DOT);
+                    s += ".";
+                    break;
+                default:
+                    jj_la1[225] = jj_gen;
+                    ;
+                }
+                n = jj_consume_token(IDENT);
+                s += convertIdent(n.image);
+                if ("inherit".equals(s)) {
+                    result = LexicalUnitImpl.createInherit(n.beginLine,
+                            n.beginColumn, prev);
+                } else {
+                    result = LexicalUnitImpl.createIdent(n.beginLine,
+                            n.beginColumn, prev, convertIdent(n.image));
+                }
+
+                /*
+                 * / Auto correction code used in the CSS Validator but must not
+                 * be used by a conformant CSS2 parser. Common error : H1 {
+                 * color : black background : white }
+                 * 
+                 * Token t = getToken(1); Token semicolon = new Token();
+                 * semicolon.kind = SEMICOLON; semicolon.image = ";"; if (t.kind
+                 * == COLON) { // @@SEEME. (generate a warning?) // @@SEEME if
+                 * expression is a single ident, generate an error ?
+                 * rejectToken(semicolon);
+                 * 
+                 * result = prev; } /
+                 */
+
+                break;
+            case HASH:
+                result = hexcolor(prev);
+                break;
+            case URL:
+                result = url(prev);
+                break;
+            case UNICODERANGE:
+                result = unicode(prev);
+                break;
+            default:
+                jj_la1[226] = jj_gen;
+                jj_consume_token(-1);
+                throw new ParseException();
+            }
+            break;
+        default:
+            jj_la1[227] = jj_gen;
+            jj_consume_token(-1);
+            throw new ParseException();
+        }
+        label_156: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case S:
+                ;
+                break;
+            default:
+                jj_la1[228] = jj_gen;
+                break label_156;
+            }
+            jj_consume_token(S);
+        }
+        {
+            if (true) {
+                return result;
+            }
+        }
+        throw new Error("Missing return statement in function");
+    }
+
+    /**
+     * Handle all CSS2 functions.
+     * 
+     * @exception ParseException
+     *                exception during the parse
+     */
+    final public LexicalUnitImpl function(char operator, LexicalUnitImpl prev)
+            throws ParseException {
+        Token n;
+        LexicalUnit params = null;
+        n = jj_consume_token(FUNCTION);
+        label_157: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case S:
+                ;
+                break;
+            default:
+                jj_la1[229] = jj_gen;
+                break label_157;
+            }
+            jj_consume_token(S);
+        }
+        String fname = convertIdent(n.image);
+        if ("alpha(".equals(fname)) {
+            String body = skipStatementUntilSemiColon();
+            {
+                if (true) {
+                    return LexicalUnitImpl.createIdent(n.beginLine,
+                            n.beginColumn, null, "alpha(" + body);
+                }
+            }
+        }
+        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+        case PLUS:
+        case MINUS:
+        case DOT:
+        case STRING:
+        case IDENT:
+        case NUMBER:
+        case URL:
+        case VARIABLE:
+        case PERCENTAGE:
+        case PT:
+        case MM:
+        case CM:
+        case PC:
+        case IN:
+        case PX:
+        case EMS:
+        case EXS:
+        case DEG:
+        case RAD:
+        case GRAD:
+        case MS:
+        case SECOND:
+        case HZ:
+        case KHZ:
+        case DIMEN:
+        case HASH:
+        case UNICODERANGE:
+        case FUNCTION:
+            params = expr();
+            break;
+        default:
+            jj_la1[230] = jj_gen;
+            ;
+        }
+        jj_consume_token(RPARAN);
+        if (operator != ' ') {
+            {
+                if (true) {
+                    throw new CSSParseException(
+                            "invalid operator before a function.", getLocator());
+                }
+            }
+        }
+        String f = convertIdent(n.image);
+        LexicalUnitImpl l = (LexicalUnitImpl) params;
+        boolean loop = true;
+        if ("rgb(".equals(f)) {
+            // this is a RGB declaration (e.g. rgb(255, 50%, 0) )
+            int i = 0;
+            while (loop && l != null && i < 5) {
+                switch (i) {
+                case 0:
+                case 2:
+                case 4:
+                    if ((l.getLexicalUnitType() != LexicalUnit.SAC_INTEGER)
+                            && (l.getLexicalUnitType() != LexicalUnit.SAC_PERCENTAGE)) {
+                        loop = false;
+                    }
+                    break;
+                case 1:
+                case 3:
+                    if (l.getLexicalUnitType() != LexicalUnit.SAC_OPERATOR_COMMA) {
+                        loop = false;
+                    }
+                    break;
+                default: {
+                    if (true) {
+                        throw new ParseException("implementation error");
+                    }
+                }
+                }
+                if (loop) {
+                    l = l.getNextLexicalUnit();
+                    i++;
+                }
+            }
+            if ((i == 5) && loop && (l == null)) {
+                {
+                    if (true) {
+                        return LexicalUnitImpl.createRGBColor(n.beginLine,
+                                n.beginColumn, prev, params);
+                    }
+                }
+            } else {
+                if (errorHandler != null) {
+                    String errorText;
+                    Locator loc;
+                    if (i < 5) {
+                        if (params == null) {
+                            loc = new LocatorImpl(this, n.beginLine,
+                                    n.beginColumn - 1);
+                            errorText = "not enough parameters.";
+                        } else if (l == null) {
+                            loc = new LocatorImpl(this, n.beginLine,
+                                    n.beginColumn - 1);
+                            errorText = "not enough parameters: "
+                                    + params.toString();
+                        } else {
+                            loc = new LocatorImpl(this, l.getLineNumber(),
+                                    l.getColumnNumber());
+                            errorText = "invalid parameter: " + l.toString();
+                        }
+                    } else {
+                        loc = new LocatorImpl(this, l.getLineNumber(),
+                                l.getColumnNumber());
+                        errorText = "too many parameters: " + l.toString();
+                    }
+                    errorHandler.error(new CSSParseException(errorText, loc));
+                }
+
+                {
+                    if (true) {
+                        throw new JumpException();
+                    }
+                }
+            }
+        } else if ("counter".equals(f)) {
+            int i = 0;
+            while (loop && l != null && i < 3) {
+                switch (i) {
+                case 0:
+                case 2:
+                    if (l.getLexicalUnitType() != LexicalUnit.SAC_IDENT) {
+                        loop = false;
+                    }
+                    break;
+                case 1:
+                    if (l.getLexicalUnitType() != LexicalUnit.SAC_OPERATOR_COMMA) {
+                        loop = false;
+                    }
+                    break;
+                default: {
+                    if (true) {
+                        throw new ParseException("implementation error");
+                    }
+                }
+                }
+                l = l.getNextLexicalUnit();
+                i++;
+            }
+            if (((i == 1) || (i == 3)) && loop && (l == null)) {
+                {
+                    if (true) {
+                        return LexicalUnitImpl.createCounter(n.beginLine,
+                                n.beginColumn, prev, params);
+                    }
+                }
+            }
+
+        } else if ("counters(".equals(f)) {
+
+            int i = 0;
+            while (loop && l != null && i < 5) {
+                switch (i) {
+                case 0:
+                case 4:
+                    if (l.getLexicalUnitType() != LexicalUnit.SAC_IDENT) {
+                        loop = false;
+                    }
+                    break;
+                case 2:
+                    if (l.getLexicalUnitType() != LexicalUnit.SAC_STRING_VALUE) {
+                        loop = false;
+                    }
+                    break;
+                case 1:
+                case 3:
+                    if (l.getLexicalUnitType() != LexicalUnit.SAC_OPERATOR_COMMA) {
+                        loop = false;
+                    }
+                    break;
+                default: {
+                    if (true) {
+                        throw new ParseException("implementation error");
+                    }
+                }
+                }
+                l = l.getNextLexicalUnit();
+                i++;
+            }
+            if (((i == 3) || (i == 5)) && loop && (l == null)) {
+                {
+                    if (true) {
+                        return LexicalUnitImpl.createCounters(n.beginLine,
+                                n.beginColumn, prev, params);
+                    }
+                }
+            }
+        } else if ("attr(".equals(f)) {
+            if ((l != null) && (l.getNextLexicalUnit() == null)
+                    && (l.getLexicalUnitType() == LexicalUnit.SAC_IDENT)) {
+                {
+                    if (true) {
+                        return LexicalUnitImpl.createAttr(l.getLineNumber(),
+                                l.getColumnNumber(), prev, l.getStringValue());
+                    }
+                }
+            }
+        } else if ("rect(".equals(f)) {
+            int i = 0;
+            while (loop && l != null && i < 7) {
+                switch (i) {
+                case 0:
+                case 2:
+                case 4:
+                case 6:
+                    switch (l.getLexicalUnitType()) {
+                    case LexicalUnit.SAC_INTEGER:
+                        if (l.getIntegerValue() != 0) {
+                            loop = false;
+                        }
+                        break;
+                    case LexicalUnit.SAC_IDENT:
+                        if (!l.getStringValue().equals("auto")) {
+                            loop = false;
+                        }
+                        break;
+                    case LexicalUnit.SAC_EM:
+                    case LexicalUnit.SAC_EX:
+                    case LexicalUnit.SAC_PIXEL:
+                    case LexicalUnit.SAC_CENTIMETER:
+                    case LexicalUnit.SAC_MILLIMETER:
+                    case LexicalUnit.SAC_INCH:
+                    case LexicalUnit.SAC_POINT:
+                    case LexicalUnit.SAC_PICA:
+                        // nothing
+                        break;
+                    default:
+                        loop = false;
+                    }
+                    break;
+                case 1:
+                case 3:
+                case 5:
+                    if (l.getLexicalUnitType() != LexicalUnit.SAC_OPERATOR_COMMA) {
+                        loop = false;
+                    }
+                    break;
+                default: {
+                    if (true) {
+                        throw new ParseException("implementation error");
+                    }
+                }
+                }
+                l = l.getNextLexicalUnit();
+                i++;
+            }
+            if ((i == 7) && loop && (l == null)) {
+                {
+                    if (true) {
+                        return LexicalUnitImpl.createRect(n.beginLine,
+                                n.beginColumn, prev, params);
+                    }
+                }
+            }
+        }
+        {
+            if (true) {
+                return LexicalUnitImpl.createFunction(n.beginLine,
+                        n.beginColumn, prev, f.substring(0, f.length() - 1),
+                        params);
+            }
+        }
+        throw new Error("Missing return statement in function");
+    }
+
+    final public LexicalUnitImpl unicode(LexicalUnitImpl prev)
+            throws ParseException {
+        Token n;
+        n = jj_consume_token(UNICODERANGE);
+        LexicalUnitImpl params = null;
+        String s = n.image.substring(2);
+        int index = s.indexOf('-');
+        if (index == -1) {
+            params = LexicalUnitImpl.createInteger(n.beginLine, n.beginColumn,
+                    params, Integer.parseInt(s, 16));
+        } else {
+            String s1 = s.substring(0, index);
+            String s2 = s.substring(index);
+
+            params = LexicalUnitImpl.createInteger(n.beginLine, n.beginColumn,
+                    params, Integer.parseInt(s1, 16));
+            params = LexicalUnitImpl.createInteger(n.beginLine, n.beginColumn,
+                    params, Integer.parseInt(s2, 16));
+        }
+
+        {
+            if (true) {
+                return LexicalUnitImpl.createUnicodeRange(n.beginLine,
+                        n.beginColumn, prev, params);
+            }
+        }
+        throw new Error("Missing return statement in function");
+    }
+
+    final public LexicalUnitImpl url(LexicalUnitImpl prev)
+            throws ParseException {
+        Token n;
+        n = jj_consume_token(URL);
+        String urlname = n.image.substring(4, n.image.length() - 1).trim();
+        {
+            if (true) {
+                return LexicalUnitImpl.createURL(n.beginLine, n.beginColumn,
+                        prev, urlname);
+            }
+        }
+        throw new Error("Missing return statement in function");
+    }
+
+    /**
+     * @exception ParseException
+     *                exception during the parse
+     */
+    final public LexicalUnitImpl hexcolor(LexicalUnitImpl prev)
+            throws ParseException {
+        Token n;
+        n = jj_consume_token(HASH);
+        int r;
+        LexicalUnitImpl first, params = null;
+        String s = n.image.substring(1);
+
+        if (s.length() != 3 && s.length() != 6) {
+            first = null;
+            {
+                if (true) {
+                    throw new CSSParseException(
+                            "invalid hexadecimal notation for RGB: " + s,
+                            getLocator());
+                }
+            }
+        }
+        {
+            if (true) {
+                return LexicalUnitImpl.createIdent(n.beginLine, n.beginColumn,
+                        prev, n.image);
+            }
+        }
+        throw new Error("Missing return statement in function");
+    }
+
+    float number(char operator, Token n, int lengthUnit) throws ParseException {
+        String image = n.image;
+        float f = 0;
+
+        if (lengthUnit != 0) {
+            image = image.substring(0, image.length() - lengthUnit);
+        }
+        f = Float.valueOf(image).floatValue();
+        return (operator == '-') ? -f : f;
+    }
+
+    String skipStatementUntilSemiColon() throws ParseException {
+        int[] semicolon = { SEMICOLON };
+        return skipStatementUntil(semicolon);
+    }
+
+    String skipStatementUntilLeftBrace() throws ParseException {
+        int[] lBrace = { LBRACE };
+        return skipStatementUntil(lBrace);
+    }
+
+    String skipStatementUntilRightParan() throws ParseException {
+        int[] rParan = { RPARAN };
+        return skipStatementUntil(rParan);
+    }
+
+    String skipStatementUntil(int[] symbols) throws ParseException {
+        StringBuffer s = new StringBuffer();
+        boolean stop = false;
+        Token tok;
+        while (!stop) {
+            tok = getToken(1);
+            if (tok.kind == EOF) {
+                return null;
+            }
+            for (int sym : symbols) {
+                if (tok.kind == sym) {
+                    stop = true;
+                    break;
+                }
+            }
+            if (!stop) {
+                if (tok.image != null) {
+                    s.append(tok.image);
+                }
+                getNextToken();
+            }
+        }
+        return s.toString().trim();
+    }
+
+    String skipStatement() throws ParseException {
+        StringBuffer s = new StringBuffer();
+        Token tok = getToken(0);
+        if (tok.image != null) {
+            s.append(tok.image);
+        }
+        while (true) {
+            tok = getToken(1);
+            if (tok.kind == EOF) {
+                return null;
+            }
+            s.append(tok.image);
+            if (tok.kind == LBRACE) {
+                getNextToken();
+                s.append(skip_to_matching_brace());
+                getNextToken();
+                tok = getToken(1);
+                break;
+            } else if (tok.kind == RBRACE) {
+                getNextToken();
+                tok = getToken(1);
+                break;
+            } else if (tok.kind == SEMICOLON) {
+                getNextToken();
+                tok = getToken(1);
+                break;
+            }
+            getNextToken();
+        }
+
+        // skip white space
+        while (true) {
+            if (tok.kind != S) {
+                break;
+            }
+            tok = getNextToken();
+            tok = getToken(1);
+        }
+
+        return s.toString().trim();
+    }
+
+    String skip_to_matching_brace() throws ParseException {
+        StringBuffer s = new StringBuffer();
+        Token tok;
+        int nesting = 1;
+        while (true) {
+            tok = getToken(1);
+            if (tok.kind == EOF) {
+                break;
+            }
+            s.append(tok.image);
+            if (tok.kind == LBRACE) {
+                nesting++;
+            } else if (tok.kind == RBRACE) {
+                nesting--;
+                if (nesting == 0) {
+                    break;
+                }
+            }
+            getNextToken();
+        }
+        return s.toString();
+    }
+
+    String convertStringIndex(String s, int start, int len)
+            throws ParseException {
+        StringBuffer buf = new StringBuffer(len);
+        int index = start;
+
+        while (index < len) {
+            char c = s.charAt(index);
+            if (c == '\u005c\u005c') {
+                if (++index < len) {
+                    c = s.charAt(index);
+                    switch (c) {
+                    case '0':
+                    case '1':
+                    case '2':
+                    case '3':
+                    case '4':
+                    case '5':
+                    case '6':
+                    case '7':
+                    case '8':
+                    case '9':
+                    case 'a':
+                    case 'b':
+                    case 'c':
+                    case 'd':
+                    case 'e':
+                    case 'f':
+                    case 'A':
+                    case 'B':
+                    case 'C':
+                    case 'D':
+                    case 'E':
+                    case 'F':
+                        buf.append('\u005c\u005c');
+                        while (index < len) {
+                            buf.append(s.charAt(index++));
+                        }
+                        break;
+                    case '\u005cn':
+                    case '\u005cf':
+                        break;
+                    case '\u005cr':
+                        if (index + 1 < len) {
+                            if (s.charAt(index + 1) == '\u005cn') {
+                                index++;
+                            }
+                        }
+                        break;
+                    default:
+                        buf.append(c);
+                    }
+                } else {
+                    throw new CSSParseException("invalid string " + s,
+                            getLocator());
+                }
+            } else {
+                buf.append(c);
+            }
+            index++;
+        }
+
+        return buf.toString();
+    }
+
+    String convertIdent(String s) throws ParseException {
+        return convertStringIndex(s, 0, s.length());
+    }
+
+    String convertString(String s) throws ParseException {
+        return convertStringIndex(s, 0, s.length());
+    }
+
+    void comments() throws ParseException {
+        if (token.specialToken != null) {
+            Token tmp_t = token.specialToken;
+            while (tmp_t.specialToken != null) {
+                tmp_t = tmp_t.specialToken;
+            }
+            while (tmp_t != null) {
+                documentHandler.comment(tmp_t.image);
+                tmp_t = tmp_t.next;
+            }
+        }
+    }
+
+    void rejectToken(Token t) throws ParseException {
+        Token fakeToken = new Token();
+        t.next = token;
+        fakeToken.next = t;
+        token = fakeToken;
+    }
+
+    String skipAfterExpression() throws ParseException {
+        Token t = getToken(1);
+        StringBuffer s = new StringBuffer();
+        s.append(getToken(0).image);
+
+        while ((t.kind != RBRACE) && (t.kind != SEMICOLON) && (t.kind != EOF)) {
+            s.append(t.image);
+            getNextToken();
+            t = getToken(1);
+        }
+
+        return s.toString();
+    }
+
+    /**
+     * The following functions are useful for a DOM CSS implementation only and
+     * are not part of the general CSS2 parser.
+     */
+    final public void _parseRule() throws ParseException {
+        String ret = null;
+        label_158: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case S:
+                ;
+                break;
+            default:
+                jj_la1[231] = jj_gen;
+                break label_158;
+            }
+            jj_consume_token(S);
+        }
+        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+        case IMPORT_SYM:
+            importDeclaration();
+            break;
+        case DEBUG_SYM:
+        case WARN_SYM:
+            debuggingDirective();
+            break;
+        case LBRACKET:
+        case ANY:
+        case PARENT:
+        case DOT:
+        case COLON:
+        case INTERPOLATION:
+        case IDENT:
+        case HASH:
+            styleRule();
+            break;
+        case MEDIA_SYM:
+            media();
+            break;
+        case PAGE_SYM:
+            page();
+            break;
+        case FONT_FACE_SYM:
+            fontFace();
+            break;
+        default:
+            jj_la1[232] = jj_gen;
+            ret = skipStatement();
+            if ((ret == null) || (ret.length() == 0)) {
+                {
+                    if (true) {
+                        return;
+                    }
+                }
+            }
+            if (ret.charAt(0) == '@') {
+                documentHandler.unrecognizedRule(ret);
+            } else {
+                {
+                    if (true) {
+                        throw new CSSParseException("unrecognize rule: " + ret,
+                                getLocator());
+                    }
+                }
+            }
+        }
+    }
+
+    final public void _parseImportRule() throws ParseException {
+        label_159: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case S:
+                ;
+                break;
+            default:
+                jj_la1[233] = jj_gen;
+                break label_159;
+            }
+            jj_consume_token(S);
+        }
+        importDeclaration();
+    }
+
+    final public void _parseMediaRule() throws ParseException {
+        label_160: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case S:
+                ;
+                break;
+            default:
+                jj_la1[234] = jj_gen;
+                break label_160;
+            }
+            jj_consume_token(S);
+        }
+        media();
+    }
+
+    final public void _parseDeclarationBlock() throws ParseException {
+        label_161: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case S:
+                ;
+                break;
+            default:
+                jj_la1[235] = jj_gen;
+                break label_161;
+            }
+            jj_consume_token(S);
+        }
+        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+        case INTERPOLATION:
+        case IDENT:
+            declaration();
+            break;
+        default:
+            jj_la1[236] = jj_gen;
+            ;
+        }
+        label_162: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case SEMICOLON:
+                ;
+                break;
+            default:
+                jj_la1[237] = jj_gen;
+                break label_162;
+            }
+            jj_consume_token(SEMICOLON);
+            label_163: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[238] = jj_gen;
+                    break label_163;
+                }
+                jj_consume_token(S);
+            }
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case INTERPOLATION:
+            case IDENT:
+                declaration();
+                break;
+            default:
+                jj_la1[239] = jj_gen;
+                ;
+            }
+        }
+    }
+
+    final public ArrayList<String> _parseSelectors() throws ParseException {
+        ArrayList<String> p = null;
+        try {
+            label_164: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[240] = jj_gen;
+                    break label_164;
+                }
+                jj_consume_token(S);
+            }
+            p = selectorList();
+            {
+                if (true) {
+                    return p;
+                }
+            }
+        } catch (ThrowedParseException e) {
+            {
+                if (true) {
+                    throw (ParseException) e.e.fillInStackTrace();
+                }
+            }
+        }
+        throw new Error("Missing return statement in function");
+    }
+
+    private boolean jj_2_1(int xla) {
+        jj_la = xla;
+        jj_lastpos = jj_scanpos = token;
+        try {
+            return !jj_3_1();
+        } catch (LookaheadSuccess ls) {
+            return true;
+        } finally {
+            jj_save(0, xla);
+        }
+    }
+
+    private boolean jj_2_2(int xla) {
+        jj_la = xla;
+        jj_lastpos = jj_scanpos = token;
+        try {
+            return !jj_3_2();
+        } catch (LookaheadSuccess ls) {
+            return true;
+        } finally {
+            jj_save(1, xla);
+        }
+    }
+
+    private boolean jj_2_3(int xla) {
+        jj_la = xla;
+        jj_lastpos = jj_scanpos = token;
+        try {
+            return !jj_3_3();
+        } catch (LookaheadSuccess ls) {
+            return true;
+        } finally {
+            jj_save(2, xla);
+        }
+    }
+
+    private boolean jj_2_4(int xla) {
+        jj_la = xla;
+        jj_lastpos = jj_scanpos = token;
+        try {
+            return !jj_3_4();
+        } catch (LookaheadSuccess ls) {
+            return true;
+        } finally {
+            jj_save(3, xla);
+        }
+    }
+
+    private boolean jj_2_5(int xla) {
+        jj_la = xla;
+        jj_lastpos = jj_scanpos = token;
+        try {
+            return !jj_3_5();
+        } catch (LookaheadSuccess ls) {
+            return true;
+        } finally {
+            jj_save(4, xla);
+        }
+    }
+
+    private boolean jj_2_6(int xla) {
+        jj_la = xla;
+        jj_lastpos = jj_scanpos = token;
+        try {
+            return !jj_3_6();
+        } catch (LookaheadSuccess ls) {
+            return true;
+        } finally {
+            jj_save(5, xla);
+        }
+    }
+
+    private boolean jj_2_7(int xla) {
+        jj_la = xla;
+        jj_lastpos = jj_scanpos = token;
+        try {
+            return !jj_3_7();
+        } catch (LookaheadSuccess ls) {
+            return true;
+        } finally {
+            jj_save(6, xla);
+        }
+    }
+
+    private boolean jj_2_8(int xla) {
+        jj_la = xla;
+        jj_lastpos = jj_scanpos = token;
+        try {
+            return !jj_3_8();
+        } catch (LookaheadSuccess ls) {
+            return true;
+        } finally {
+            jj_save(7, xla);
+        }
+    }
+
+    private boolean jj_2_9(int xla) {
+        jj_la = xla;
+        jj_lastpos = jj_scanpos = token;
+        try {
+            return !jj_3_9();
+        } catch (LookaheadSuccess ls) {
+            return true;
+        } finally {
+            jj_save(8, xla);
+        }
+    }
+
+    private boolean jj_2_10(int xla) {
+        jj_la = xla;
+        jj_lastpos = jj_scanpos = token;
+        try {
+            return !jj_3_10();
+        } catch (LookaheadSuccess ls) {
+            return true;
+        } finally {
+            jj_save(9, xla);
+        }
+    }
+
+    private boolean jj_2_11(int xla) {
+        jj_la = xla;
+        jj_lastpos = jj_scanpos = token;
+        try {
+            return !jj_3_11();
+        } catch (LookaheadSuccess ls) {
+            return true;
+        } finally {
+            jj_save(10, xla);
+        }
+    }
+
+    private boolean jj_2_12(int xla) {
+        jj_la = xla;
+        jj_lastpos = jj_scanpos = token;
+        try {
+            return !jj_3_12();
+        } catch (LookaheadSuccess ls) {
+            return true;
+        } finally {
+            jj_save(11, xla);
+        }
+    }
+
+    private boolean jj_2_13(int xla) {
+        jj_la = xla;
+        jj_lastpos = jj_scanpos = token;
+        try {
+            return !jj_3_13();
+        } catch (LookaheadSuccess ls) {
+            return true;
+        } finally {
+            jj_save(12, xla);
+        }
+    }
+
+    private boolean jj_3R_368() {
+        Token xsp;
+        xsp = jj_scanpos;
+        if (jj_3_6()) {
+            jj_scanpos = xsp;
+            if (jj_scan_token(76)) {
+                jj_scanpos = xsp;
+                if (jj_scan_token(72)) {
+                    jj_scanpos = xsp;
+                    if (jj_scan_token(73)) {
+                        jj_scanpos = xsp;
+                        if (jj_scan_token(33)) {
+                            jj_scanpos = xsp;
+                            if (jj_scan_token(34)) {
+                                jj_scanpos = xsp;
+                                if (jj_scan_token(20)) {
+                                    jj_scanpos = xsp;
+                                    if (jj_scan_token(21)) {
+                                        jj_scanpos = xsp;
+                                        if (jj_scan_token(27)) {
+                                            jj_scanpos = xsp;
+                                            if (jj_scan_token(30)) {
+                                                jj_scanpos = xsp;
+                                                if (jj_scan_token(35)) {
+                                                    jj_scanpos = xsp;
+                                                    if (jj_scan_token(19)) {
+                                                        jj_scanpos = xsp;
+                                                        if (jj_scan_token(24)) {
+                                                            jj_scanpos = xsp;
+                                                            if (jj_scan_token(26)) {
+                                                                jj_scanpos = xsp;
+                                                                if (jj_scan_token(36)) {
+                                                                    jj_scanpos = xsp;
+                                                                    if (jj_scan_token(37)) {
+                                                                        jj_scanpos = xsp;
+                                                                        if (jj_scan_token(1)) {
+                                                                            jj_scanpos = xsp;
+                                                                            if (jj_scan_token(38)) {
+                                                                                return true;
+                                                                            }
+                                                                        }
+                                                                    }
+                                                                }
+                                                            }
+                                                        }
+                                                    }
+                                                }
+                                            }
+                                        }
+                                    }
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+        return false;
+    }
+
+    private boolean jj_3R_230() {
+        if (jj_scan_token(DIMEN)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_323() {
+        if (jj_scan_token(INTERPOLATION)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_229() {
+        if (jj_scan_token(KHZ)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_174() {
+        if (jj_3R_195()) {
+            return true;
+        }
+        if (jj_scan_token(LBRACE)) {
+            return true;
+        }
+        Token xsp;
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_3R_196()) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        if (jj_scan_token(RBRACE)) {
+            return true;
+        }
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        return false;
+    }
+
+    private boolean jj_3R_228() {
+        if (jj_scan_token(HZ)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_177() {
+        if (jj_3R_200()) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_326() {
+        if (jj_scan_token(WARN_SYM)) {
+            return true;
+        }
+        Token xsp;
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        return false;
+    }
+
+    private boolean jj_3R_227() {
+        if (jj_scan_token(MS)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_299() {
+        if (jj_3R_326()) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_226() {
+        if (jj_scan_token(SECOND)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_225() {
+        if (jj_scan_token(GRAD)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_274() {
+        if (jj_scan_token(FUNCTION)) {
+            return true;
+        }
+        Token xsp;
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        return false;
+    }
+
+    private boolean jj_3R_224() {
+        if (jj_scan_token(RAD)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_325() {
+        if (jj_scan_token(DEBUG_SYM)) {
+            return true;
+        }
+        Token xsp;
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        return false;
+    }
+
+    private boolean jj_3R_223() {
+        if (jj_scan_token(DEG)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_251() {
+        if (jj_scan_token(VARIABLE)) {
+            return true;
+        }
+        Token xsp;
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        return false;
+    }
+
+    private boolean jj_3R_254() {
+        if (jj_scan_token(SEMICOLON)) {
+            return true;
+        }
+        Token xsp;
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        return false;
+    }
+
+    private boolean jj_3R_222() {
+        if (jj_scan_token(EXS)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_221() {
+        if (jj_scan_token(EMS)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_298() {
+        if (jj_3R_325()) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_282() {
+        Token xsp;
+        xsp = jj_scanpos;
+        if (jj_3R_298()) {
+            jj_scanpos = xsp;
+            if (jj_3R_299()) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    private boolean jj_3R_322() {
+        if (jj_scan_token(IDENT)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_294() {
+        Token xsp;
+        xsp = jj_scanpos;
+        if (jj_3R_322()) {
+            jj_scanpos = xsp;
+            if (jj_3R_323()) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    private boolean jj_3R_220() {
+        if (jj_scan_token(PX)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_354() {
+        if (jj_3R_368()) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_273() {
+        Token xsp;
+        if (jj_3R_294()) {
+            return true;
+        }
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_3R_294()) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        return false;
+    }
+
+    private boolean jj_3R_219() {
+        if (jj_scan_token(IN)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_309() {
+        if (jj_scan_token(IF_SYM)) {
+            return true;
+        }
+        Token xsp;
+        if (jj_3R_354()) {
+            return true;
+        }
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_3R_354()) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        if (jj_scan_token(LBRACE)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_292() {
+        if (jj_3R_310()) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_218() {
+        if (jj_scan_token(PC)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_217() {
+        if (jj_scan_token(MM)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_321() {
+        if (jj_scan_token(S)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_320() {
+        if (jj_scan_token(DOT)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_319() {
+        if (jj_scan_token(EQ)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_216() {
+        if (jj_scan_token(CM)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_318() {
+        if (jj_scan_token(RPARAN)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_317() {
+        if (jj_scan_token(FUNCTION)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_166() {
+        Token xsp;
+        xsp = jj_scanpos;
+        if (jj_3_5()) {
+            jj_scanpos = xsp;
+            if (jj_3R_177()) {
+                jj_scanpos = xsp;
+                if (jj_3R_178()) {
+                    jj_scanpos = xsp;
+                    if (jj_3R_179()) {
+                        jj_scanpos = xsp;
+                        if (jj_3R_180()) {
+                            jj_scanpos = xsp;
+                            if (jj_3R_181()) {
+                                jj_scanpos = xsp;
+                                if (jj_3R_182()) {
+                                    return true;
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+        return false;
+    }
+
+    private boolean jj_3_5() {
+        if (jj_3R_165()) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_316() {
+        if (jj_scan_token(COLON)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_253() {
+        if (jj_3R_281()) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_215() {
+        if (jj_scan_token(PT)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_315() {
+        if (jj_scan_token(INTERPOLATION)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_314() {
+        if (jj_scan_token(COMMA)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_313() {
+        if (jj_scan_token(STRING)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_214() {
+        if (jj_scan_token(PERCENTAGE)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_312() {
+        if (jj_scan_token(NUMBER)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_271() {
+        Token xsp;
+        xsp = jj_scanpos;
+        if (jj_3R_291()) {
+            jj_scanpos = xsp;
+            if (jj_3R_292()) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    private boolean jj_3R_291() {
+        if (jj_3R_309()) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_199() {
+        if (jj_3R_243()) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_311() {
+        if (jj_scan_token(IDENT)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_293() {
+        Token xsp;
+        xsp = jj_scanpos;
+        if (jj_3R_311()) {
+            jj_scanpos = xsp;
+            if (jj_3R_312()) {
+                jj_scanpos = xsp;
+                if (jj_3R_313()) {
+                    jj_scanpos = xsp;
+                    if (jj_3R_314()) {
+                        jj_scanpos = xsp;
+                        if (jj_3R_315()) {
+                            jj_scanpos = xsp;
+                            if (jj_3R_316()) {
+                                jj_scanpos = xsp;
+                                if (jj_3R_317()) {
+                                    jj_scanpos = xsp;
+                                    if (jj_3R_318()) {
+                                        jj_scanpos = xsp;
+                                        if (jj_3R_319()) {
+                                            jj_scanpos = xsp;
+                                            if (jj_3R_320()) {
+                                                jj_scanpos = xsp;
+                                                if (jj_3R_321()) {
+                                                    return true;
+                                                }
+                                            }
+                                        }
+                                    }
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+        return false;
+    }
+
+    private boolean jj_3R_213() {
+        if (jj_scan_token(NUMBER)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_212() {
+        if (jj_3R_265()) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_193() {
+        Token xsp;
+        xsp = jj_scanpos;
+        if (jj_3R_212()) {
+            jj_scanpos = xsp;
+        }
+        xsp = jj_scanpos;
+        if (jj_3R_213()) {
+            jj_scanpos = xsp;
+            if (jj_3R_214()) {
+                jj_scanpos = xsp;
+                if (jj_3R_215()) {
+                    jj_scanpos = xsp;
+                    if (jj_3R_216()) {
+                        jj_scanpos = xsp;
+                        if (jj_3R_217()) {
+                            jj_scanpos = xsp;
+                            if (jj_3R_218()) {
+                                jj_scanpos = xsp;
+                                if (jj_3R_219()) {
+                                    jj_scanpos = xsp;
+                                    if (jj_3R_220()) {
+                                        jj_scanpos = xsp;
+                                        if (jj_3R_221()) {
+                                            jj_scanpos = xsp;
+                                            if (jj_3R_222()) {
+                                                jj_scanpos = xsp;
+                                                if (jj_3R_223()) {
+                                                    jj_scanpos = xsp;
+                                                    if (jj_3R_224()) {
+                                                        jj_scanpos = xsp;
+                                                        if (jj_3R_225()) {
+                                                            jj_scanpos = xsp;
+                                                            if (jj_3R_226()) {
+                                                                jj_scanpos = xsp;
+                                                                if (jj_3R_227()) {
+                                                                    jj_scanpos = xsp;
+                                                                    if (jj_3R_228()) {
+                                                                        jj_scanpos = xsp;
+                                                                        if (jj_3R_229()) {
+                                                                            jj_scanpos = xsp;
+                                                                            if (jj_3R_230()) {
+                                                                                jj_scanpos = xsp;
+                                                                                if (jj_3R_231()) {
+                                                                                    return true;
+                                                                                }
+                                                                            }
+                                                                        }
+                                                                    }
+                                                                }
+                                                            }
+                                                        }
+                                                    }
+                                                }
+                                            }
+                                        }
+                                    }
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+        return false;
+    }
+
+    private boolean jj_3R_171() {
+        Token xsp;
+        xsp = jj_scanpos;
+        if (jj_3R_193()) {
+            jj_scanpos = xsp;
+            if (jj_3R_194()) {
+                return true;
+            }
+        }
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        return false;
+    }
+
+    private boolean jj_3R_272() {
+        if (jj_scan_token(MICROSOFT_RULE)) {
+            return true;
+        }
+        Token xsp;
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        if (jj_scan_token(COLON)) {
+            return true;
+        }
+        if (jj_3R_293()) {
+            return true;
+        }
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_3R_293()) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        return false;
+    }
+
+    private boolean jj_3R_261() {
+        if (jj_scan_token(SIBLING)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_260() {
+        if (jj_scan_token(PRECEDES)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_259() {
+        if (jj_scan_token(PLUS)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_206() {
+        Token xsp;
+        xsp = jj_scanpos;
+        if (jj_3R_259()) {
+            jj_scanpos = xsp;
+            if (jj_3R_260()) {
+                jj_scanpos = xsp;
+                if (jj_3R_261()) {
+                    return true;
+                }
+            }
+        }
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        return false;
+    }
+
+    private boolean jj_3R_268() {
+        if (jj_scan_token(HASH)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_243() {
+        if (jj_3R_251()) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_185() {
+        if (jj_scan_token(SIBLING)) {
+            return true;
+        }
+        Token xsp;
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        return false;
+    }
+
+    private boolean jj_3R_184() {
+        if (jj_scan_token(PRECEDES)) {
+            return true;
+        }
+        Token xsp;
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        return false;
+    }
+
+    private boolean jj_3R_186() {
+        if (jj_scan_token(S)) {
+            return true;
+        }
+        Token xsp;
+        xsp = jj_scanpos;
+        if (jj_3R_206()) {
+            jj_scanpos = xsp;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_167() {
+        Token xsp;
+        xsp = jj_scanpos;
+        if (jj_3R_183()) {
+            jj_scanpos = xsp;
+            if (jj_3R_184()) {
+                jj_scanpos = xsp;
+                if (jj_3R_185()) {
+                    jj_scanpos = xsp;
+                    if (jj_3R_186()) {
+                        return true;
+                    }
+                }
+            }
+        }
+        return false;
+    }
+
+    private boolean jj_3R_183() {
+        if (jj_scan_token(PLUS)) {
+            return true;
+        }
+        Token xsp;
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        return false;
+    }
+
+    private boolean jj_3R_203() {
+        if (jj_3R_251()) {
+            return true;
+        }
+        if (jj_scan_token(COLON)) {
+            return true;
+        }
+        Token xsp;
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        if (jj_3R_252()) {
+            return true;
+        }
+        xsp = jj_scanpos;
+        if (jj_3R_253()) {
+            jj_scanpos = xsp;
+        }
+        if (jj_3R_254()) {
+            return true;
+        }
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_3R_254()) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        return false;
+    }
+
+    private boolean jj_3R_198() {
+        if (jj_3R_171()) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_176() {
+        Token xsp;
+        xsp = jj_scanpos;
+        if (jj_3R_198()) {
+            jj_scanpos = xsp;
+            if (jj_3R_199()) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    private boolean jj_3R_269() {
+        if (jj_scan_token(URL)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_175() {
+        if (jj_3R_197()) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_289() {
+        if (jj_scan_token(PLUS)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_265() {
+        Token xsp;
+        xsp = jj_scanpos;
+        if (jj_3R_288()) {
+            jj_scanpos = xsp;
+            if (jj_3R_289()) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    private boolean jj_3R_288() {
+        if (jj_scan_token(MINUS)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3_13() {
+        Token xsp;
+        xsp = jj_scanpos;
+        if (jj_3R_175()) {
+            jj_scanpos = xsp;
+        }
+        if (jj_3R_176()) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_252() {
+        if (jj_3R_176()) {
+            return true;
+        }
+        Token xsp;
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_3_13()) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        return false;
+    }
+
+    private boolean jj_3R_208() {
+        if (jj_scan_token(HASH)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_270() {
+        if (jj_scan_token(UNICODERANGE)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_343() {
+        if (jj_scan_token(IDENT)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_344() {
+        if (jj_scan_token(FUNCTION)) {
+            return true;
+        }
+        Token xsp;
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        if (true) {
+            jj_la = 0;
+            jj_scanpos = jj_lastpos;
+            return false;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_242() {
+        if (jj_scan_token(COMMA)) {
+            return true;
+        }
+        Token xsp;
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        return false;
+    }
+
+    private boolean jj_3R_297() {
+        Token xsp;
+        xsp = jj_scanpos;
+        if (jj_scan_token(101)) {
+            jj_scanpos = xsp;
+            if (jj_scan_token(10)) {
+                jj_scanpos = xsp;
+                if (jj_scan_token(97)) {
+                    jj_scanpos = xsp;
+                    if (jj_scan_token(22)) {
+                        jj_scanpos = xsp;
+                        if (jj_scan_token(14)) {
+                            jj_scanpos = xsp;
+                            if (jj_scan_token(99)) {
+                                jj_scanpos = xsp;
+                                if (jj_scan_token(116)) {
+                                    jj_scanpos = xsp;
+                                    if (jj_scan_token(102)) {
+                                        jj_scanpos = xsp;
+                                        if (jj_scan_token(95)) {
+                                            jj_scanpos = xsp;
+                                            if (jj_scan_token(18)) {
+                                                jj_scanpos = xsp;
+                                                if (jj_scan_token(12)) {
+                                                    jj_scanpos = xsp;
+                                                    if (jj_scan_token(96)) {
+                                                        jj_scanpos = xsp;
+                                                        if (jj_scan_token(41)) {
+                                                            jj_scanpos = xsp;
+                                                            if (jj_scan_token(73)) {
+                                                                jj_scanpos = xsp;
+                                                                if (jj_scan_token(98)) {
+                                                                    jj_scanpos = xsp;
+                                                                    if (jj_scan_token(77)) {
+                                                                        jj_scanpos = xsp;
+                                                                        if (jj_scan_token(71)) {
+                                                                            jj_scanpos = xsp;
+                                                                            if (jj_scan_token(112)) {
+                                                                                jj_scanpos = xsp;
+                                                                                if (jj_scan_token(75)) {
+                                                                                    jj_scanpos = xsp;
+                                                                                    if (jj_scan_token(23)) {
+                                                                                        jj_scanpos = xsp;
+                                                                                        if (jj_scan_token(20)) {
+                                                                                            jj_scanpos = xsp;
+                                                                                            if (jj_scan_token(24)) {
+                                                                                                jj_scanpos = xsp;
+                                                                                                if (jj_scan_token(25)) {
+                                                                                                    jj_scanpos = xsp;
+                                                                                                    if (jj_scan_token(21)) {
+                                                                                                        jj_scanpos = xsp;
+                                                                                                        if (jj_scan_token(117)) {
+                                                                                                            return true;
+                                                                                                        }
+                                                                                                    }
+                                                                                                }
+                                                                                            }
+                                                                                        }
+                                                                                    }
+                                                                                }
+                                                                            }
+                                                                        }
+                                                                    }
+                                                                }
+                                                            }
+                                                        }
+                                                    }
+                                                }
+                                            }
+                                        }
+                                    }
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+        return false;
+    }
+
+    private boolean jj_3R_197() {
+        Token xsp;
+        xsp = jj_scanpos;
+        if (jj_3R_241()) {
+            jj_scanpos = xsp;
+            if (jj_3R_242()) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    private boolean jj_3R_241() {
+        if (jj_scan_token(DIV)) {
+            return true;
+        }
+        Token xsp;
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        return false;
+    }
+
+    private boolean jj_3R_281() {
+        if (jj_scan_token(GUARDED_SYM)) {
+            return true;
+        }
+        Token xsp;
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        return false;
+    }
+
+    private boolean jj_3R_192() {
+        if (jj_scan_token(VARIABLE)) {
+            return true;
+        }
+        Token xsp;
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        if (jj_scan_token(COLON)) {
+            return true;
+        }
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        return false;
+    }
+
+    private boolean jj_3R_169() {
+        Token xsp;
+        xsp = jj_scanpos;
+        if (jj_3R_192()) {
+            jj_scanpos = xsp;
+        }
+        if (jj_scan_token(CONTAINS)) {
+            return true;
+        }
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        if (true) {
+            jj_la = 0;
+            jj_scanpos = jj_lastpos;
+            return false;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_355() {
+        if (jj_scan_token(IMPORTANT_SYM)) {
+            return true;
+        }
+        Token xsp;
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        return false;
+    }
+
+    private boolean jj_3_11() {
+        if (jj_3R_169()) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_342() {
+        if (jj_scan_token(COLON)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_210() {
+        if (jj_scan_token(COLON)) {
+            return true;
+        }
+        Token xsp;
+        xsp = jj_scanpos;
+        if (jj_3R_342()) {
+            jj_scanpos = xsp;
+        }
+        xsp = jj_scanpos;
+        if (jj_3R_343()) {
+            jj_scanpos = xsp;
+            if (jj_3R_344()) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    private boolean jj_3R_172() {
+        if (jj_scan_token(VARIABLE)) {
+            return true;
+        }
+        Token xsp;
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        if (jj_scan_token(COLON)) {
+            return true;
+        }
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        if (jj_scan_token(REMOVE)) {
+            return true;
+        }
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        if (true) {
+            jj_la = 0;
+            jj_scanpos = jj_lastpos;
+            return false;
+        }
+        return false;
+    }
+
+    private boolean jj_3_10() {
+        if (jj_3R_173()) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_247() {
+        if (jj_scan_token(SEMICOLON)) {
+            return true;
+        }
+        Token xsp;
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        return false;
+    }
+
+    private boolean jj_3R_324() {
+        if (jj_scan_token(COLON)) {
+            return true;
+        }
+        Token xsp;
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        return false;
+    }
+
+    private boolean jj_3R_295() {
+        Token xsp;
+        xsp = jj_scanpos;
+        if (jj_3R_324()) {
+            jj_scanpos = xsp;
+        }
+        if (jj_3R_176()) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_173() {
+        if (jj_scan_token(VARIABLE)) {
+            return true;
+        }
+        Token xsp;
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        if (jj_scan_token(COLON)) {
+            return true;
+        }
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        if (jj_scan_token(APPEND)) {
+            return true;
+        }
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        if (true) {
+            jj_la = 0;
+            jj_scanpos = jj_lastpos;
+            return false;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_356() {
+        if (jj_3R_273()) {
+            return true;
+        }
+        if (jj_scan_token(COLON)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_280() {
+        if (jj_3R_297()) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_367() {
+        if (jj_scan_token(STRING)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_365() {
+        if (jj_scan_token(STARMATCH)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_366() {
+        if (jj_scan_token(IDENT)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_364() {
+        if (jj_scan_token(DOLLARMATCH)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_363() {
+        if (jj_scan_token(CARETMATCH)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_362() {
+        if (jj_scan_token(DASHMATCH)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_361() {
+        if (jj_scan_token(INCLUDES)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_357() {
+        if (jj_3R_356()) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_303() {
+        if (jj_scan_token(INTERPOLATION)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_245() {
+        if (jj_3R_251()) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_360() {
+        if (jj_scan_token(EQ)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3_9() {
+        if (jj_3R_172()) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_165() {
+        Token xsp;
+        xsp = jj_scanpos;
+        if (jj_3_9()) {
+            jj_scanpos = xsp;
+            if (jj_3_10()) {
+                jj_scanpos = xsp;
+                if (jj_3_11()) {
+                    return true;
+                }
+            }
+        }
+        return false;
+    }
+
+    private boolean jj_3R_349() {
+        Token xsp;
+        xsp = jj_scanpos;
+        if (jj_3R_360()) {
+            jj_scanpos = xsp;
+            if (jj_3R_361()) {
+                jj_scanpos = xsp;
+                if (jj_3R_362()) {
+                    jj_scanpos = xsp;
+                    if (jj_3R_363()) {
+                        jj_scanpos = xsp;
+                        if (jj_3R_364()) {
+                            jj_scanpos = xsp;
+                            if (jj_3R_365()) {
+                                return true;
+                            }
+                        }
+                    }
+                }
+            }
+        }
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
         }
-        jj_consume_token(S);
-      }
-                                   ml.addItem(m);
-      m = medium();
+        xsp = jj_scanpos;
+        if (jj_3R_366()) {
+            jj_scanpos = xsp;
+            if (jj_3R_367()) {
+                return true;
+            }
+        }
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        return false;
     }
-     ml.addItem(m);
-  }
 
-/**
- * @exception ParseException exception during the parse
- */
-  final public String medium() throws ParseException {
- Token n;
-    n = jj_consume_token(IDENT);
-    label_29:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case S:
-        ;
-        break;
-      default:
-        jj_la1[37] = jj_gen;
-        break label_29;
-      }
-      jj_consume_token(S);
-    }
-                         {if (true) return convertIdent(n.image);}
-    throw new Error("Missing return statement in function");
-  }
+    private boolean jj_3R_279() {
+        if (jj_3R_174()) {
+            return true;
+        }
+        return false;
+    }
 
-/**
- * @exception ParseException exception during the parse
- */
-  final public void page() throws ParseException {
- boolean start = false;
- Token n = null;
- String page = null;
- String pseudo = null;
-    try {
-      jj_consume_token(PAGE_SYM);
-      label_30:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          ;
-          break;
-        default:
-          jj_la1[38] = jj_gen;
-          break label_30;
+    private boolean jj_3R_211() {
+        if (jj_scan_token(LBRACKET)) {
+            return true;
         }
-        jj_consume_token(S);
-      }
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case IDENT:
-        n = jj_consume_token(IDENT);
-        label_31:
+        Token xsp;
         while (true) {
-          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-          case S:
-            ;
-            break;
-          default:
-            jj_la1[39] = jj_gen;
-            break label_31;
-          }
-          jj_consume_token(S);
-        }
-        break;
-      default:
-        jj_la1[40] = jj_gen;
-        ;
-      }
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case COLON:
-        pseudo = pseudo_page();
-        break;
-      default:
-        jj_la1[41] = jj_gen;
-        ;
-      }
-          if (n != null) {
-              page = convertIdent(n.image);
-          }
-      jj_consume_token(LBRACE);
-      label_32:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          ;
-          break;
-        default:
-          jj_la1[42] = jj_gen;
-          break label_32;
-        }
-        jj_consume_token(S);
-      }
-          start = true;
-          documentHandler.startPage(page, pseudo);
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case INTERPOLATION:
-      case IDENT:
-        declaration();
-        break;
-      default:
-        jj_la1[43] = jj_gen;
-        ;
-      }
-      label_33:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case SEMICOLON:
-          ;
-          break;
-        default:
-          jj_la1[44] = jj_gen;
-          break label_33;
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        if (jj_scan_token(IDENT)) {
+            return true;
         }
-        jj_consume_token(SEMICOLON);
-        label_34:
         while (true) {
-          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-          case S:
-            ;
-            break;
-          default:
-            jj_la1[45] = jj_gen;
-            break label_34;
-          }
-          jj_consume_token(S);
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
         }
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case INTERPOLATION:
-        case IDENT:
-          declaration();
-          break;
-        default:
-          jj_la1[46] = jj_gen;
-          ;
-        }
-      }
-      jj_consume_token(RBRACE);
-      label_35:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          ;
-          break;
-        default:
-          jj_la1[47] = jj_gen;
-          break label_35;
-        }
-        jj_consume_token(S);
-      }
-    } catch (ParseException e) {
-     if (errorHandler != null) {
-         LocatorImpl li = new LocatorImpl(this,
-                                          e.currentToken.next.beginLine,
-                                          e.currentToken.next.beginColumn-1);
-         reportError(li, e);
-         skipStatement();
-         // reportWarningSkipText(li, skipStatement());
-     } else {
-         skipStatement();
-     }
-    } finally {
-     if (start) {
-         documentHandler.endPage(page, pseudo);
-     }
-    }
-  }
-
-  final public String pseudo_page() throws ParseException {
-  Token n;
-    jj_consume_token(COLON);
-    n = jj_consume_token(IDENT);
-    label_36:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case S:
-        ;
-        break;
-      default:
-        jj_la1[48] = jj_gen;
-        break label_36;
-      }
-      jj_consume_token(S);
-    }
-                             {if (true) return convertIdent(n.image);}
-    throw new Error("Missing return statement in function");
-  }
-
-  final public void fontFace() throws ParseException {
-    boolean start = false;
-    try {
-      jj_consume_token(FONT_FACE_SYM);
-      label_37:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          ;
-          break;
-        default:
-          jj_la1[49] = jj_gen;
-          break label_37;
-        }
-        jj_consume_token(S);
-      }
-      jj_consume_token(LBRACE);
-      label_38:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          ;
-          break;
-        default:
-          jj_la1[50] = jj_gen;
-          break label_38;
-        }
-        jj_consume_token(S);
-      }
-        start = true; documentHandler.startFontFace();
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case INTERPOLATION:
-      case IDENT:
-        declaration();
-        break;
-      default:
-        jj_la1[51] = jj_gen;
-        ;
-      }
-      label_39:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case SEMICOLON:
-          ;
-          break;
-        default:
-          jj_la1[52] = jj_gen;
-          break label_39;
+        xsp = jj_scanpos;
+        if (jj_3R_349()) {
+            jj_scanpos = xsp;
         }
-        jj_consume_token(SEMICOLON);
-        label_40:
-        while (true) {
-          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-          case S:
-            ;
-            break;
-          default:
-            jj_la1[53] = jj_gen;
-            break label_40;
-          }
-          jj_consume_token(S);
+        if (jj_scan_token(RBRACKET)) {
+            return true;
         }
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case INTERPOLATION:
-        case IDENT:
-          declaration();
-          break;
-        default:
-          jj_la1[54] = jj_gen;
-          ;
-        }
-      }
-      jj_consume_token(RBRACE);
-      label_41:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          ;
-          break;
-        default:
-          jj_la1[55] = jj_gen;
-          break label_41;
+        return false;
+    }
+
+    private boolean jj_3R_246() {
+        if (jj_3R_274()) {
+            return true;
+        }
+        if (jj_3R_275()) {
+            return true;
         }
-        jj_consume_token(S);
-      }
-    } catch (ParseException e) {
-     reportError(getLocator(), e);
-     skipStatement();
-     // reportWarningSkipText(getLocator(), skipStatement());
+        if (jj_scan_token(RPARAN)) {
+            return true;
+        }
+        return false;
+    }
 
-    } finally {
-     if (start) {
-         documentHandler.endFontFace();
-     }
+    private boolean jj_3R_329() {
+        if (jj_scan_token(SEMICOLON)) {
+            return true;
+        }
+        Token xsp;
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        xsp = jj_scanpos;
+        if (jj_3R_357()) {
+            jj_scanpos = xsp;
+        }
+        return false;
     }
-  }
 
-/**
- * @exception ParseException exception during the parse
- */
-  final public void atRuleDeclaration() throws ParseException {
- Token n;
- String ret;
-    n = jj_consume_token(ATKEYWORD);
-        ret=skipStatement();
-        if ((ret != null) && (ret.charAt(0) == '@')) {
-            documentHandler.unrecognizedRule(ret);
-        } else {
-            reportWarningSkipText(getLocator(), ret);
+    private boolean jj_3R_359() {
+        if (jj_scan_token(INTERPOLATION)) {
+            return true;
         }
-  }
-
-  final public void skipUnknownRule() throws ParseException {
-  Token n;
-    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-    case ATKEYWORD:
-      n = jj_consume_token(ATKEYWORD);
-      break;
-    case CDO:
-      n = jj_consume_token(CDO);
-      break;
-    case CHARSET_SYM:
-      n = jj_consume_token(CHARSET_SYM);
-      break;
-    case COMMA:
-      n = jj_consume_token(COMMA);
-      break;
-    case DASHMATCH:
-      n = jj_consume_token(DASHMATCH);
-      break;
-    case FONT_FACE_SYM:
-      n = jj_consume_token(FONT_FACE_SYM);
-      break;
-    case FUNCTION:
-      n = jj_consume_token(FUNCTION);
-      break;
-    case IMPORTANT_SYM:
-      n = jj_consume_token(IMPORTANT_SYM);
-      break;
-    case IMPORT_SYM:
-      n = jj_consume_token(IMPORT_SYM);
-      break;
-    case INCLUDES:
-      n = jj_consume_token(INCLUDES);
-      break;
-    case LBRACE:
-      n = jj_consume_token(LBRACE);
-      break;
-    case MEDIA_SYM:
-      n = jj_consume_token(MEDIA_SYM);
-      break;
-    case NONASCII:
-      n = jj_consume_token(NONASCII);
-      break;
-    case NUMBER:
-      n = jj_consume_token(NUMBER);
-      break;
-    case PAGE_SYM:
-      n = jj_consume_token(PAGE_SYM);
-      break;
-    case PERCENTAGE:
-      n = jj_consume_token(PERCENTAGE);
-      break;
-    case STRING:
-      n = jj_consume_token(STRING);
-      break;
-    case UNICODERANGE:
-      n = jj_consume_token(UNICODERANGE);
-      break;
-    case URL:
-      n = jj_consume_token(URL);
-      break;
-    case SEMICOLON:
-      n = jj_consume_token(SEMICOLON);
-      break;
-    case PLUS:
-      n = jj_consume_token(PLUS);
-      break;
-    case PRECEDES:
-      n = jj_consume_token(PRECEDES);
-      break;
-    case SIBLING:
-      n = jj_consume_token(SIBLING);
-      break;
-    case MINUS:
-      n = jj_consume_token(MINUS);
-      break;
-    case UNKNOWN:
-      n = jj_consume_token(UNKNOWN);
-      break;
-    default:
-      jj_la1[56] = jj_gen;
-      jj_consume_token(-1);
-      throw new ParseException();
-    }
-     String ret;
-     Locator loc = getLocator();
-     ret=skipStatement();
-     if ((ret != null) && (n.image.charAt(0) == '@')) {
-         documentHandler.unrecognizedRule(ret);
-     } else {
-     reportWarningSkipText(loc, ret);
-     }
-  }
+        return false;
+    }
 
-/**
- * @exception ParseException exception during the parse
- */
-  final public char combinator() throws ParseException {
-char connector = ' ';
-    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-    case PLUS:
-      jj_consume_token(PLUS);
-      label_42:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          ;
-          break;
-        default:
-          jj_la1[57] = jj_gen;
-          break label_42;
-        }
-        jj_consume_token(S);
-      }
-                   {if (true) return '+';}
-      break;
-    case PRECEDES:
-      jj_consume_token(PRECEDES);
-      label_43:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          ;
-          break;
-        default:
-          jj_la1[58] = jj_gen;
-          break label_43;
-        }
-        jj_consume_token(S);
-      }
-                     {if (true) return '>';}
-      break;
-    case SIBLING:
-      jj_consume_token(SIBLING);
-      label_44:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          ;
-          break;
-        default:
-          jj_la1[59] = jj_gen;
-          break label_44;
-        }
-        jj_consume_token(S);
-      }
-                     {if (true) return '~';}
-      break;
-    case S:
-      jj_consume_token(S);
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case PLUS:
-      case PRECEDES:
-      case SIBLING:
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case PLUS:
-          jj_consume_token(PLUS);
-                 connector = '+';
-          break;
-        case PRECEDES:
-          jj_consume_token(PRECEDES);
-                   connector = '>';
-          break;
-        case SIBLING:
-          jj_consume_token(SIBLING);
-                   connector = '~';
-          break;
-        default:
-          jj_la1[60] = jj_gen;
-          jj_consume_token(-1);
-          throw new ParseException();
+    private boolean jj_3R_277() {
+        if (jj_scan_token(COMMA)) {
+            return true;
         }
-        label_45:
+        Token xsp;
         while (true) {
-          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-          case S:
-            ;
-            break;
-          default:
-            jj_la1[61] = jj_gen;
-            break label_45;
-          }
-          jj_consume_token(S);
-        }
-        break;
-      default:
-        jj_la1[62] = jj_gen;
-        ;
-      }
-               {if (true) return connector;}
-      break;
-    default:
-      jj_la1[63] = jj_gen;
-      jj_consume_token(-1);
-      throw new ParseException();
-    }
-    throw new Error("Missing return statement in function");
-  }
-
-  final public void microsoftExtension() throws ParseException {
-  Token n;
-  String name = "";
-  String value = "";
-    // This is not really taking the syntax of filter rules into account
-      n = jj_consume_token(MICROSOFT_RULE);
-    label_46:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case S:
-        ;
-        break;
-      default:
-        jj_la1[64] = jj_gen;
-        break label_46;
-      }
-      jj_consume_token(S);
-    }
-                                    name = n.image;
-    jj_consume_token(COLON);
-    label_47:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case IDENT:
-        n = jj_consume_token(IDENT);
-                          value += n.image;
-        break;
-      case NUMBER:
-        n = jj_consume_token(NUMBER);
-                            value += n.image;
-        break;
-      case STRING:
-        n = jj_consume_token(STRING);
-                            value += n.image;
-        break;
-      case COMMA:
-        n = jj_consume_token(COMMA);
-                           value += n.image;
-        break;
-      case INTERPOLATION:
-        n = jj_consume_token(INTERPOLATION);
-                                   value += n.image;
-        break;
-      case COLON:
-        n = jj_consume_token(COLON);
-                           value += n.image;
-        break;
-      case FUNCTION:
-        n = jj_consume_token(FUNCTION);
-                              value += n.image;
-        break;
-      case RPARAN:
-        n = jj_consume_token(RPARAN);
-                            value += n.image;
-        break;
-      case EQ:
-        n = jj_consume_token(EQ);
-                        value += n.image;
-        break;
-      case DOT:
-        n = jj_consume_token(DOT);
-                         value += n.image;
-        break;
-      case S:
-        n = jj_consume_token(S);
-                       if(value.lastIndexOf(' ') != value.length()-1)
-        { value += n.image; }
-        break;
-      default:
-        jj_la1[65] = jj_gen;
-        jj_consume_token(-1);
-        throw new ParseException();
-      }
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case S:
-      case EQ:
-      case COMMA:
-      case DOT:
-      case RPARAN:
-      case COLON:
-      case INTERPOLATION:
-      case STRING:
-      case IDENT:
-      case NUMBER:
-      case FUNCTION:
-        ;
-        break;
-      default:
-        jj_la1[66] = jj_gen;
-        break label_47;
-      }
-    }
-    jj_consume_token(SEMICOLON);
-    label_48:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case S:
-        ;
-        break;
-      default:
-        jj_la1[67] = jj_gen;
-        break label_48;
-      }
-      jj_consume_token(S);
-    }
-          documentHandler.microsoftDirective(name, value);
-  }
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        if (jj_3R_276()) {
+            return true;
+        }
+        return false;
+    }
 
-/**
- * @exception ParseException exception during the parse
- */
-  final public String property() throws ParseException {
- Token t;String s = "";
-    label_49:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case IDENT:
-        t = jj_consume_token(IDENT);
-                 s += t.image;
-        break;
-      case INTERPOLATION:
-        t = jj_consume_token(INTERPOLATION);
-                                                        s += t.image;
-        break;
-      default:
-        jj_la1[68] = jj_gen;
-        jj_consume_token(-1);
-        throw new ParseException();
-      }
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case INTERPOLATION:
-      case IDENT:
-        ;
-        break;
-      default:
-        jj_la1[69] = jj_gen;
-        break label_49;
-      }
-    }
-    label_50:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case S:
-        ;
-        break;
-      default:
-        jj_la1[70] = jj_gen;
-        break label_50;
-      }
-      jj_consume_token(S);
-    }
-        {if (true) return s;}
-    throw new Error("Missing return statement in function");
-  }
-
-  final public String variableName() throws ParseException {
- Token n;
-    n = jj_consume_token(VARIABLE);
-    label_51:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case S:
-        ;
-        break;
-      default:
-        jj_la1[71] = jj_gen;
-        break label_51;
-      }
-      jj_consume_token(S);
-    }
-                         {if (true) return convertIdent(n.image.substring(1));}
-    throw new Error("Missing return statement in function");
-  }
-
-  final public String functionName() throws ParseException {
- Token n;
-    n = jj_consume_token(FUNCTION);
-    label_52:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case S:
-        ;
-        break;
-      default:
-        jj_la1[72] = jj_gen;
-        break label_52;
-      }
-      jj_consume_token(S);
-    }
-                           {if (true) return convertIdent(n.image.substring(0, n.image.length()-1));}
-    throw new Error("Missing return statement in function");
-  }
+    private boolean jj_3R_244() {
+        if (jj_3R_273()) {
+            return true;
+        }
+        return false;
+    }
 
-/**
- * @exception ParseException exception during the parse
- */
-  final public void styleRule() throws ParseException {
-    boolean start = false;
-    ArrayList<String> l = null;
-    Token save;
-    Locator loc;
-    try {
-      l = selectorList();
-                        save = token;
-      jj_consume_token(LBRACE);
-      label_53:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          ;
-          break;
-        default:
-          jj_la1[73] = jj_gen;
-          break label_53;
-        }
-        jj_consume_token(S);
-      }
-         start = true;
-         documentHandler.startSelector(l);
-      label_54:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case LBRACKET:
-        case ANY:
-        case PARENT:
-        case DOT:
-        case COLON:
-        case INTERPOLATION:
-        case INCLUDE_SYM:
-        case DEBUG_SYM:
-        case WARN_SYM:
-        case EACH_SYM:
-        case IF_SYM:
-        case EXTEND_SYM:
-        case MICROSOFT_RULE:
-        case IDENT:
-        case VARIABLE:
-        case HASH:
-        case MEDIA_SYM:
-        case KEY_FRAME_SYM:
-        case CONTAINS:
-          ;
-          break;
-        default:
-          jj_la1[74] = jj_gen;
-          break label_54;
+    private boolean jj_3R_264() {
+        if (jj_scan_token(PARENT)) {
+            return true;
         }
-        if (jj_2_3(5)) {
-          ifContentStatement();
-        } else {
-          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-          case EACH_SYM:
-          case IF_SYM:
-            controlDirective();
-            break;
-          case MICROSOFT_RULE:
-            microsoftExtension();
-            break;
-          default:
-            jj_la1[75] = jj_gen;
-            jj_consume_token(-1);
-            throw new ParseException();
-          }
+        return false;
+    }
+
+    private boolean jj_3R_276() {
+        if (jj_scan_token(IDENT)) {
+            return true;
         }
-      }
-      jj_consume_token(RBRACE);
-      label_55:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          ;
-          break;
-        default:
-          jj_la1[76] = jj_gen;
-          break label_55;
-        }
-        jj_consume_token(S);
-      }
-    } catch (ThrowedParseException e) {
-     if (errorHandler != null) {
-         LocatorImpl li = new LocatorImpl(this,
-                                          e.e.currentToken.next.beginLine,
-                                          e.e.currentToken.next.beginColumn-1);
-         reportError(li, e.e);
-     }
-    } catch (ParseException e) {
-     reportError(getLocator(), e);
-     skipStatement();
-     // reportWarningSkipText(getLocator(), skipStatement());
-
-    } catch (TokenMgrError e) {
-     reportWarningSkipText(getLocator(), skipStatement());
-    } finally {
-     if (start) {
-         documentHandler.endSelector();
-     }
-    }
-  }
-
-  final public ArrayList<String> selectorList() throws ParseException {
-     ArrayList<String> selectors = new  ArrayList<String>();
-     String selector;
-    selector = selector();
-    label_56:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case COMMA:
-        ;
-        break;
-      default:
-        jj_la1[77] = jj_gen;
-        break label_56;
-      }
-      jj_consume_token(COMMA);
-      label_57:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          ;
-          break;
-        default:
-          jj_la1[78] = jj_gen;
-          break label_57;
+        Token xsp;
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
         }
-        jj_consume_token(S);
-      }
-                                        selectors.add(selector);
-      selector = selector();
+        return false;
     }
-    selectors.add(selector);
-    {if (true) return selectors;}
-    throw new Error("Missing return statement in function");
-  }
-
-/**
- * @exception ParseException exception during the parse
- */
-  final public String selector() throws ParseException {
-    String selector;
-    char    comb;
-    try {
-      selector = simple_selector(null, ' ');
-      label_58:
-      while (true) {
-        if (jj_2_4(2)) {
-          ;
-        } else {
-          break label_58;
-        }
-        comb = combinator();
-        selector = simple_selector(selector, comb);
-      }
-      label_59:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          ;
-          break;
-        default:
-          jj_la1[79] = jj_gen;
-          break label_59;
-        }
-        jj_consume_token(S);
-      }
-       {if (true) return selector;}
-    } catch (ParseException e) {
-     /*
-     Token t = getToken(1);
-     StringBuffer s = new StringBuffer();
-     s.append(getToken(0).image);
-     while ((t.kind != COMMA) && (t.kind != SEMICOLON) 
-           && (t.kind != LBRACE) && (t.kind != EOF)) {
-        s.append(t.image);
-        getNextToken();
-        t = getToken(1);
-     }
-     reportWarningSkipText(getLocator(), s.toString());
-     */
-     Token t = getToken(1);
-     while ((t.kind != COMMA) && (t.kind != SEMICOLON)
-            && (t.kind != LBRACE) && (t.kind != EOF)) {
-         getNextToken();
-         t = getToken(1);
-     }
 
-     {if (true) throw new ThrowedParseException(e);}
+    private boolean jj_3R_263() {
+        if (jj_scan_token(ANY)) {
+            return true;
+        }
+        return false;
     }
-    throw new Error("Missing return statement in function");
-  }
 
-/**
- * @exception ParseException exception during the parse
- */
-  final public String simple_selector(String selector, char comb) throws ParseException {
-    String simple_current = null;
-    String cond = null;
-
-    pseudoElt = null;
-    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-    case ANY:
-    case PARENT:
-    case INTERPOLATION:
-    case IDENT:
-      simple_current = element_name();
-      label_60:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case LBRACKET:
-        case DOT:
-        case COLON:
-        case HASH:
-          ;
-          break;
-        default:
-          jj_la1[80] = jj_gen;
-          break label_60;
+    private boolean jj_3R_200() {
+        if (jj_scan_token(INCLUDE_SYM)) {
+            return true;
         }
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case HASH:
-          cond = hash(cond);
-          break;
-        case DOT:
-          cond = _class(cond);
-          break;
-        case LBRACKET:
-          cond = attrib(cond);
-          break;
-        case COLON:
-          cond = pseudo(cond);
-          break;
-        default:
-          jj_la1[81] = jj_gen;
-          jj_consume_token(-1);
-          throw new ParseException();
-        }
-      }
-      break;
-    case HASH:
-      cond = hash(cond);
-      label_61:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case LBRACKET:
-        case DOT:
-        case COLON:
-          ;
-          break;
-        default:
-          jj_la1[82] = jj_gen;
-          break label_61;
+        Token xsp;
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
         }
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case DOT:
-          cond = _class(cond);
-          break;
-        case LBRACKET:
-          cond = attrib(cond);
-          break;
-        case COLON:
-          cond = pseudo(cond);
-          break;
-        default:
-          jj_la1[83] = jj_gen;
-          jj_consume_token(-1);
-          throw new ParseException();
-        }
-      }
-      break;
-    case DOT:
-      cond = _class(cond);
-      label_62:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case LBRACKET:
-        case DOT:
-        case COLON:
-        case HASH:
-          ;
-          break;
-        default:
-          jj_la1[84] = jj_gen;
-          break label_62;
+        xsp = jj_scanpos;
+        if (jj_3R_244()) {
+            jj_scanpos = xsp;
+            if (jj_3R_245()) {
+                jj_scanpos = xsp;
+                if (jj_3R_246()) {
+                    return true;
+                }
+            }
         }
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case HASH:
-          cond = hash(cond);
-          break;
-        case DOT:
-          cond = _class(cond);
-          break;
-        case LBRACKET:
-          cond = attrib(cond);
-          break;
-        case COLON:
-          cond = pseudo(cond);
-          break;
-        default:
-          jj_la1[85] = jj_gen;
-          jj_consume_token(-1);
-          throw new ParseException();
-        }
-      }
-      break;
-    case COLON:
-      cond = pseudo(cond);
-      label_63:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case LBRACKET:
-        case DOT:
-        case COLON:
-        case HASH:
-          ;
-          break;
-        default:
-          jj_la1[86] = jj_gen;
-          break label_63;
+        if (jj_3R_247()) {
+            return true;
         }
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case HASH:
-          cond = hash(cond);
-          break;
-        case DOT:
-          cond = _class(cond);
-          break;
-        case LBRACKET:
-          cond = attrib(cond);
-          break;
-        case COLON:
-          cond = pseudo(cond);
-          break;
-        default:
-          jj_la1[87] = jj_gen;
-          jj_consume_token(-1);
-          throw new ParseException();
-        }
-      }
-      break;
-    case LBRACKET:
-      cond = attrib(cond);
-      label_64:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case LBRACKET:
-        case DOT:
-        case COLON:
-        case HASH:
-          ;
-          break;
-        default:
-          jj_la1[88] = jj_gen;
-          break label_64;
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_3R_247()) {
+                jj_scanpos = xsp;
+                break;
+            }
         }
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case HASH:
-          cond = hash(cond);
-          break;
-        case DOT:
-          cond = _class(cond);
-          break;
-        case LBRACKET:
-          cond = attrib(cond);
-          break;
-        case COLON:
-          cond = pseudo(cond);
-          break;
-        default:
-          jj_la1[89] = jj_gen;
-          jj_consume_token(-1);
-          throw new ParseException();
+        return false;
+    }
+
+    private boolean jj_3R_302() {
+        if (jj_scan_token(IDENT)) {
+            return true;
         }
-      }
-      break;
-    default:
-      jj_la1[90] = jj_gen;
-      jj_consume_token(-1);
-      throw new ParseException();
+        return false;
     }
-            if (simple_current == null) {
-                simple_current = "";
-            }
-            if (cond != null) {
-                simple_current = simple_current + cond;
-            }
-            if (selector != null) {
-                switch (comb) {
-                case ' ':
-                    selector = selector + comb + simple_current;
-                    break;
-                case '+':
-                case '>':
-                case '~':
-                        selector = selector + " " + comb + " " + simple_current;
-                    break;
-                default:
-                    {if (true) throw new ParseException("invalid state. send a bug report");}
+
+    private boolean jj_3R_249() {
+        Token xsp;
+        xsp = jj_scanpos;
+        if (jj_3R_278()) {
+            jj_scanpos = xsp;
+            if (jj_3R_279()) {
+                jj_scanpos = xsp;
+                if (jj_3R_280()) {
+                    return true;
                 }
-            } else {
-                selector= simple_current;
-            }
-            if (pseudoElt != null) {
-                selector = selector + pseudoElt;
             }
-            {if (true) return selector;}
-    throw new Error("Missing return statement in function");
-  }
-
-/**
- * @exception ParseException exception during the parse
- */
-  final public String _class(String pred) throws ParseException {
- Token t;
-String s = ".";
-    jj_consume_token(DOT);
-    label_65:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case IDENT:
-        t = jj_consume_token(IDENT);
-                   s += t.image;
-        break;
-      case INTERPOLATION:
-        t = jj_consume_token(INTERPOLATION);
-                                                           s += t.image;
-        break;
-      default:
-        jj_la1[91] = jj_gen;
-        jj_consume_token(-1);
-        throw new ParseException();
-      }
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case INTERPOLATION:
-      case IDENT:
-        ;
-        break;
-      default:
-        jj_la1[92] = jj_gen;
-        break label_65;
-      }
-    }
-          if (pred == null) {
-              {if (true) return s;}
-          } else {
-              {if (true) return pred + s;}
-          }
-    throw new Error("Missing return statement in function");
-  }
+        }
+        return false;
+    }
 
-/**
- * @exception ParseException exception during the parse
- */
-  final public String element_name() throws ParseException {
- Token t; String s = "";
-    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-    case INTERPOLATION:
-    case IDENT:
-      label_66:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case IDENT:
-          t = jj_consume_token(IDENT);
-                 s += t.image;
-          break;
-        case INTERPOLATION:
-          t = jj_consume_token(INTERPOLATION);
-                                                        s += t.image;
-          break;
-        default:
-          jj_la1[93] = jj_gen;
-          jj_consume_token(-1);
-          throw new ParseException();
+    private boolean jj_3R_278() {
+        if (jj_3R_282()) {
+            return true;
         }
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case INTERPOLATION:
-        case IDENT:
-          ;
-          break;
-        default:
-          jj_la1[94] = jj_gen;
-          break label_66;
-        }
-      }
-      {if (true) return s;}
-      break;
-    case ANY:
-      jj_consume_token(ANY);
-      {if (true) return "*";}
-      break;
-    case PARENT:
-      jj_consume_token(PARENT);
-      {if (true) return "&";}
-      break;
-    default:
-      jj_la1[95] = jj_gen;
-      jj_consume_token(-1);
-      throw new ParseException();
-    }
-    throw new Error("Missing return statement in function");
-  }
+        return false;
+    }
 
-/**
- * @exception ParseException exception during the parse
- */
-  final public String attrib(String pred) throws ParseException {
-    int cases = 0;
-    Token att = null;
-    Token val = null;
-    String attValue = null;
-    jj_consume_token(LBRACKET);
-    label_67:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case S:
-        ;
-        break;
-      default:
-        jj_la1[96] = jj_gen;
-        break label_67;
-      }
-      jj_consume_token(S);
-    }
-    att = jj_consume_token(IDENT);
-    label_68:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case S:
-        ;
-        break;
-      default:
-        jj_la1[97] = jj_gen;
-        break label_68;
-      }
-      jj_consume_token(S);
-    }
-    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-    case DASHMATCH:
-    case CARETMATCH:
-    case DOLLARMATCH:
-    case STARMATCH:
-    case INCLUDES:
-    case EQ:
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case EQ:
-        jj_consume_token(EQ);
-                          cases = 1;
-        break;
-      case INCLUDES:
-        jj_consume_token(INCLUDES);
-                          cases = 2;
-        break;
-      case DASHMATCH:
-        jj_consume_token(DASHMATCH);
-                          cases = 3;
-        break;
-      case CARETMATCH:
-        jj_consume_token(CARETMATCH);
-                           cases = 4;
-        break;
-      case DOLLARMATCH:
-        jj_consume_token(DOLLARMATCH);
-                            cases = 5;
-        break;
-      case STARMATCH:
-        jj_consume_token(STARMATCH);
-                          cases = 6;
-        break;
-      default:
-        jj_la1[98] = jj_gen;
-        jj_consume_token(-1);
-        throw new ParseException();
-      }
-      label_69:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          ;
-          break;
-        default:
-          jj_la1[99] = jj_gen;
-          break label_69;
-        }
-        jj_consume_token(S);
-      }
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case IDENT:
-        val = jj_consume_token(IDENT);
-                        attValue = val.image;
-        break;
-      case STRING:
-        val = jj_consume_token(STRING);
-                           attValue = val.image;
-        break;
-      default:
-        jj_la1[100] = jj_gen;
-        jj_consume_token(-1);
-        throw new ParseException();
-      }
-      label_70:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          ;
-          break;
-        default:
-          jj_la1[101] = jj_gen;
-          break label_70;
-        }
-        jj_consume_token(S);
-      }
-      break;
-    default:
-      jj_la1[102] = jj_gen;
-      ;
-    }
-    jj_consume_token(RBRACKET);
-      String name = convertIdent(att.image);
-      String c;
-      switch (cases) {
-          case 0:
-          c = name;
-          break;
-          case 1:
-          c = name + "=" + attValue;
-          break;
-          case 2:
-          c = name + "~=" + attValue;
-          break;
-          case 3:
-          c = name + "|=" +attValue;
-          break;
-          case 4:
-          c = name + "^=" +attValue;
-          break;
-          case 5:
-          c = name + "$=" +attValue;
-          break;
-          case 6:
-          c = name + "*=" +attValue;
-          break;
-          default:
-          // never reached.
-          c = null;
-      }
-      c = "[" + c + "]";
-      if (pred == null) {
-          {if (true) return c;}
-      } else {
-          {if (true) return pred + c;}
-      }
-    throw new Error("Missing return statement in function");
-  }
+    private boolean jj_3R_287() {
+        Token xsp;
+        xsp = jj_scanpos;
+        if (jj_3R_302()) {
+            jj_scanpos = xsp;
+            if (jj_3R_303()) {
+                return true;
+            }
+        }
+        return false;
+    }
 
-/**
- * @exception ParseException exception during the parse
- */
-  final public String pseudo(String pred) throws ParseException {
- Token n;
-Token param;
-String d;
-boolean isPseudoElement = false;
-    jj_consume_token(COLON);
-    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-    case COLON:
-      jj_consume_token(COLON);
-             isPseudoElement=true;
-      break;
-    default:
-      jj_la1[103] = jj_gen;
-      ;
-    }
-    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-    case IDENT:
-      n = jj_consume_token(IDENT);
-            String s = ":" + convertIdent(n.image);
-            if (isPseudoElement) {
-                if (pseudoElt != null) {
-                    {if (true) throw new CSSParseException("duplicate pseudo element definition "
-                                                + s, getLocator());}
-                } else {
-                    pseudoElt = ":"+s;
-                    {if (true) return pred;}
-                }
-            } else {
-                String c = s;
-                if (pred == null) {
-                    {if (true) return c;}
-                } else {
-                    {if (true) return pred + c;}
+    private boolean jj_3R_207() {
+        Token xsp;
+        xsp = jj_scanpos;
+        if (jj_3R_262()) {
+            jj_scanpos = xsp;
+            if (jj_3R_263()) {
+                jj_scanpos = xsp;
+                if (jj_3R_264()) {
+                    return true;
                 }
             }
-      break;
-    case FUNCTION:
-      n = jj_consume_token(FUNCTION);
-      label_71:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          ;
-          break;
-        default:
-          jj_la1[104] = jj_gen;
-          break label_71;
-        }
-        jj_consume_token(S);
-      }
-      d = skipStatementUntilRightParan();
-      jj_consume_token(RPARAN);
-                  // accept anything between function and a right parenthesis
-                  String f = convertIdent(n.image);
-                  String colons = isPseudoElement ? "::" : ":";
-                  String pseudofn = colons + f + d + ")";
-                      if (pred == null) {
-                          {if (true) return pseudofn;}
-                      } else {
-                          {if (true) return pred + pseudofn;}
-                  }
-      break;
-    default:
-      jj_la1[105] = jj_gen;
-      jj_consume_token(-1);
-      throw new ParseException();
-    }
-    throw new Error("Missing return statement in function");
-  }
+        }
+        return false;
+    }
 
-/**
- * @exception ParseException exception during the parse
- */
-  final public String hash(String pred) throws ParseException {
- Token n;
-    n = jj_consume_token(HASH);
-      String d = n.image;
-      if (pred == null) {
-          {if (true) return d;}
-      } else {
-          {if (true) return pred + d;}
-      }
-    throw new Error("Missing return statement in function");
-  }
-
-  final public void variable() throws ParseException {
-        String name;
-        LexicalUnitImpl exp = null;
-        boolean guarded = false;
-        String raw;
-    try {
-      name = variableName();
-      jj_consume_token(COLON);
-      label_72:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          ;
-          break;
-        default:
-          jj_la1[106] = jj_gen;
-          break label_72;
-        }
-        jj_consume_token(S);
-      }
-      exp = expr();
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case GUARDED_SYM:
-        guarded = guarded();
-        break;
-      default:
-        jj_la1[107] = jj_gen;
-        ;
-      }
-      label_73:
-      while (true) {
-        jj_consume_token(SEMICOLON);
-        label_74:
+    private boolean jj_3R_262() {
+        Token xsp;
+        if (jj_3R_287()) {
+            return true;
+        }
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_3R_287()) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        return false;
+    }
+
+    private boolean jj_3R_296() {
+        if (jj_scan_token(COMMA)) {
+            return true;
+        }
+        Token xsp;
         while (true) {
-          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-          case S:
-            ;
-            break;
-          default:
-            jj_la1[108] = jj_gen;
-            break label_74;
-          }
-          jj_consume_token(S);
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
         }
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case SEMICOLON:
-          ;
-          break;
-        default:
-          jj_la1[109] = jj_gen;
-          break label_73;
+        if (jj_3R_176()) {
+            return true;
         }
-      }
-                    documentHandler.variable(name, exp, guarded);
-    } catch (JumpException e) {
-            skipAfterExpression();
-    } catch (NumberFormatException e) {
-            if (errorHandler != null) {
-                errorHandler.error(new CSSParseException("Invalid number "
-                                                  + e.getMessage(),
-                                                  getLocator(),
-                                                  e));
+        return false;
+    }
+
+    private boolean jj_3R_248() {
+        if (jj_3R_276()) {
+            return true;
+        }
+        Token xsp;
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_3R_277()) {
+                jj_scanpos = xsp;
+                break;
             }
-            reportWarningSkipText(getLocator(), skipAfterExpression());
-    } catch (ParseException e) {
-            if (errorHandler != null) {
-                if (e.currentToken != null) {
-                        LocatorImpl li = new LocatorImpl(this,
-                                                      e.currentToken.next.beginLine,
-                                                      e.currentToken.next.beginColumn-1);
-                        reportError(li, e);
-                } else {
-                        reportError(getLocator(), e);
+        }
+        return false;
+    }
+
+    private boolean jj_3R_328() {
+        if (jj_3R_356()) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_275() {
+        if (jj_3R_176()) {
+            return true;
+        }
+        Token xsp;
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_3R_295()) {
+                jj_scanpos = xsp;
+                break;
             }
-                skipAfterExpression();
-            } else {
-                skipAfterExpression();
+        }
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_3R_296()) {
+                jj_scanpos = xsp;
+                break;
             }
-    }
-  }
-
-  final public void controlDirective() throws ParseException {
-    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-    case IF_SYM:
-      ifDirective();
-      break;
-    case EACH_SYM:
-      eachDirective();
-      break;
-    default:
-      jj_la1[110] = jj_gen;
-      jj_consume_token(-1);
-      throw new ParseException();
-    }
-  }
-
-  final public void ifContentStatement() throws ParseException {
-    if (jj_2_5(5)) {
-      listModifyDirective();
-    } else {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case INCLUDE_SYM:
-        includeDirective();
-        break;
-      case MEDIA_SYM:
-        media();
-        break;
-      case EXTEND_SYM:
-        extendDirective();
-        break;
-      case VARIABLE:
-        variable();
-        break;
-      case LBRACKET:
-      case ANY:
-      case PARENT:
-      case DOT:
-      case COLON:
-      case INTERPOLATION:
-      case DEBUG_SYM:
-      case WARN_SYM:
-      case IDENT:
-      case HASH:
-        styleRuleOrDeclarationOrNestedProperties();
-        break;
-      case KEY_FRAME_SYM:
-        keyframes();
-        break;
-      default:
-        jj_la1[111] = jj_gen;
-        jj_consume_token(-1);
-        throw new ParseException();
-      }
-    }
-  }
-
-  final public void ifDirective() throws ParseException {
-  Token n = null;
-  String s = null;
-  String evaluator = "";
-    jj_consume_token(IF_SYM);
-    label_75:
-    while (true) {
-      s = booleanExpressionToken();
-                                   evaluator += s;
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case S:
-      case EQ:
-      case PLUS:
-      case MINUS:
-      case PRECEDES:
-      case SUCCEEDS:
-      case DIV:
-      case ANY:
-      case LPARAN:
-      case RPARAN:
-      case COMPARE:
-      case OR:
-      case AND:
-      case NOT_EQ:
-      case IDENT:
-      case NUMBER:
-      case VARIABLE:
-      case CONTAINS:
-        ;
-        break;
-      default:
-        jj_la1[112] = jj_gen;
-        break label_75;
-      }
-    }
-    jj_consume_token(LBRACE);
-    label_76:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case S:
-        ;
-        break;
-      default:
-        jj_la1[113] = jj_gen;
-        break label_76;
-      }
-      jj_consume_token(S);
-    }
-    documentHandler.startIfElseDirective();
-    documentHandler.ifDirective(evaluator);
-    label_77:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case LBRACKET:
-      case ANY:
-      case PARENT:
-      case DOT:
-      case COLON:
-      case INTERPOLATION:
-      case INCLUDE_SYM:
-      case DEBUG_SYM:
-      case WARN_SYM:
-      case EXTEND_SYM:
-      case IDENT:
-      case VARIABLE:
-      case HASH:
-      case MEDIA_SYM:
-      case KEY_FRAME_SYM:
-      case CONTAINS:
-        ;
-        break;
-      default:
-        jj_la1[114] = jj_gen;
-        break label_77;
-      }
-      ifContentStatement();
-    }
-    jj_consume_token(RBRACE);
-    label_78:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case S:
-        ;
-        break;
-      default:
-        jj_la1[115] = jj_gen;
-        break label_78;
-      }
-      jj_consume_token(S);
-    }
-    label_79:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case ELSE_SYM:
-        ;
-        break;
-      default:
-        jj_la1[116] = jj_gen;
-        break label_79;
-      }
-      elseDirective();
-    }
-    documentHandler.endIfElseDirective();
-  }
-
-  final public void elseDirective() throws ParseException {
-  String evaluator = "";
-  Token n = null;
-  String s = null;
-    jj_consume_token(ELSE_SYM);
-    label_80:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case S:
-        ;
-        break;
-      default:
-        jj_la1[117] = jj_gen;
-        break label_80;
-      }
-      jj_consume_token(S);
-    }
-    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-    case IF:
-      jj_consume_token(IF);
-      label_81:
-      while (true) {
-        s = booleanExpressionToken();
-                                            evaluator += s;
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-        case EQ:
-        case PLUS:
-        case MINUS:
-        case PRECEDES:
-        case SUCCEEDS:
-        case DIV:
-        case ANY:
-        case LPARAN:
-        case RPARAN:
-        case COMPARE:
-        case OR:
-        case AND:
-        case NOT_EQ:
-        case IDENT:
-        case NUMBER:
-        case VARIABLE:
-        case CONTAINS:
-          ;
-          break;
-        default:
-          jj_la1[118] = jj_gen;
-          break label_81;
-        }
-      }
-      break;
-    default:
-      jj_la1[119] = jj_gen;
-      ;
-    }
-    jj_consume_token(LBRACE);
-    label_82:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case S:
-        ;
-        break;
-      default:
-        jj_la1[120] = jj_gen;
-        break label_82;
-      }
-      jj_consume_token(S);
-    }
-    if(!evaluator.trim().equals("")){ documentHandler.ifDirective(evaluator); }
-    else{ documentHandler.elseDirective(); }
-    label_83:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case LBRACKET:
-      case ANY:
-      case PARENT:
-      case DOT:
-      case COLON:
-      case INTERPOLATION:
-      case INCLUDE_SYM:
-      case DEBUG_SYM:
-      case WARN_SYM:
-      case EXTEND_SYM:
-      case IDENT:
-      case VARIABLE:
-      case HASH:
-      case MEDIA_SYM:
-      case KEY_FRAME_SYM:
-      case CONTAINS:
-        ;
-        break;
-      default:
-        jj_la1[121] = jj_gen;
-        break label_83;
-      }
-      ifContentStatement();
-    }
-    jj_consume_token(RBRACE);
-    label_84:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case S:
-        ;
-        break;
-      default:
-        jj_la1[122] = jj_gen;
-        break label_84;
-      }
-      jj_consume_token(S);
-    }
-  }
-
-  final public String booleanExpressionToken() throws ParseException {
-  Token n = null;
-  String s = null;
-    if (jj_2_6(2)) {
-      s = containsDirective();
-    } else {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case VARIABLE:
-        n = jj_consume_token(VARIABLE);
-        break;
-      case IDENT:
-        n = jj_consume_token(IDENT);
-        break;
-      case NUMBER:
-        n = jj_consume_token(NUMBER);
-        break;
-      case LPARAN:
-        n = jj_consume_token(LPARAN);
-        break;
-      case RPARAN:
-        n = jj_consume_token(RPARAN);
-        break;
-      case PLUS:
-        n = jj_consume_token(PLUS);
-        break;
-      case MINUS:
-        n = jj_consume_token(MINUS);
-        break;
-      case DIV:
-        n = jj_consume_token(DIV);
-        break;
-      case ANY:
-        n = jj_consume_token(ANY);
-        break;
-      case COMPARE:
-        n = jj_consume_token(COMPARE);
-        break;
-      case EQ:
-        n = jj_consume_token(EQ);
-        break;
-      case PRECEDES:
-        n = jj_consume_token(PRECEDES);
-        break;
-      case SUCCEEDS:
-        n = jj_consume_token(SUCCEEDS);
-        break;
-      case OR:
-        n = jj_consume_token(OR);
-        break;
-      case AND:
-        n = jj_consume_token(AND);
-        break;
-      case S:
-        n = jj_consume_token(S);
-        break;
-      case NOT_EQ:
-        n = jj_consume_token(NOT_EQ);
-        break;
-      default:
-        jj_la1[123] = jj_gen;
-        jj_consume_token(-1);
-        throw new ParseException();
-      }
-    }
-   if(n!=null){{if (true) return n.image;}}
-   else{{if (true) return s;}}
-    throw new Error("Missing return statement in function");
-  }
-
-  final public void eachDirective() throws ParseException {
-  Token var;
-  ArrayList<String> list = null;
-  String listVariable = null;
-    jj_consume_token(EACH_SYM);
-    label_85:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case S:
-        ;
-        break;
-      default:
-        jj_la1[124] = jj_gen;
-        break label_85;
-      }
-      jj_consume_token(S);
-    }
-    var = jj_consume_token(VARIABLE);
-    label_86:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case S:
-        ;
-        break;
-      default:
-        jj_la1[125] = jj_gen;
-        break label_86;
-      }
-      jj_consume_token(S);
-    }
-    jj_consume_token(EACH_IN);
-    label_87:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case S:
-        ;
-        break;
-      default:
-        jj_la1[126] = jj_gen;
-        break label_87;
-      }
-      jj_consume_token(S);
-    }
-    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-    case IDENT:
-      list = stringList();
-   documentHandler.startEachDirective(var.image, list);
-      break;
-    case VARIABLE:
-      listVariable = variableName();
-   documentHandler.startEachDirective(var.image, listVariable);
-      break;
-    default:
-      jj_la1[127] = jj_gen;
-      jj_consume_token(-1);
-      throw new ParseException();
-    }
-    jj_consume_token(LBRACE);
-    label_88:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case S:
-        ;
-        break;
-      default:
-        jj_la1[128] = jj_gen;
-        break label_88;
-      }
-      jj_consume_token(S);
-    }
-    label_89:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case LBRACKET:
-      case ANY:
-      case PARENT:
-      case DOT:
-      case COLON:
-      case INTERPOLATION:
-      case INCLUDE_SYM:
-      case DEBUG_SYM:
-      case WARN_SYM:
-      case EXTEND_SYM:
-      case IDENT:
-      case VARIABLE:
-      case HASH:
-      case MEDIA_SYM:
-      case KEY_FRAME_SYM:
-      case CONTAINS:
-        ;
-        break;
-      default:
-        jj_la1[129] = jj_gen;
-        break label_89;
-      }
-      ifContentStatement();
-    }
-    jj_consume_token(RBRACE);
-    label_90:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case S:
-        ;
-        break;
-      default:
-        jj_la1[130] = jj_gen;
-        break label_90;
-      }
-      jj_consume_token(S);
-    }
-    documentHandler.endEachDirective();
-  }
-
-  final public ArrayList<String > stringList() throws ParseException {
-        ArrayList<String > strings = new ArrayList<String >();
-        Token input;
-    input = jj_consume_token(IDENT);
-    label_91:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case S:
-        ;
-        break;
-      default:
-        jj_la1[131] = jj_gen;
-        break label_91;
-      }
-      jj_consume_token(S);
-    }
-          strings.add(input.image);
-    label_92:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case COMMA:
-        ;
-        break;
-      default:
-        jj_la1[132] = jj_gen;
-        break label_92;
-      }
-      jj_consume_token(COMMA);
-      label_93:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          ;
-          break;
-        default:
-          jj_la1[133] = jj_gen;
-          break label_93;
-        }
-        jj_consume_token(S);
-      }
-      input = jj_consume_token(IDENT);
-                                               strings.add(input.image);
-      label_94:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          ;
-          break;
-        default:
-          jj_la1[134] = jj_gen;
-          break label_94;
-        }
-        jj_consume_token(S);
-      }
-    }
-          {if (true) return strings;}
-    throw new Error("Missing return statement in function");
-  }
-
-  final public void mixinDirective() throws ParseException {
-    String name;
-    ArrayList<VariableNode> args = null;
-    String body;
-    jj_consume_token(MIXIN_SYM);
-    label_95:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case S:
-        ;
-        break;
-      default:
-        jj_la1[135] = jj_gen;
-        break label_95;
-      }
-      jj_consume_token(S);
-    }
-    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-    case INTERPOLATION:
-    case IDENT:
-      name = property();
-      break;
-    case FUNCTION:
-      name = functionName();
-      args = arglist();
-      jj_consume_token(RPARAN);
-      label_96:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          ;
-          break;
-        default:
-          jj_la1[136] = jj_gen;
-          break label_96;
-        }
-        jj_consume_token(S);
-      }
-      break;
-    default:
-      jj_la1[137] = jj_gen;
-      jj_consume_token(-1);
-      throw new ParseException();
-    }
-    jj_consume_token(LBRACE);
-    label_97:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case S:
-        ;
-        break;
-      default:
-        jj_la1[138] = jj_gen;
-        break label_97;
-      }
-      jj_consume_token(S);
-    }
-     documentHandler.startMixinDirective(name, args);
-    label_98:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case LBRACKET:
-      case ANY:
-      case PARENT:
-      case DOT:
-      case COLON:
-      case INTERPOLATION:
-      case INCLUDE_SYM:
-      case DEBUG_SYM:
-      case WARN_SYM:
-      case EACH_SYM:
-      case IF_SYM:
-      case EXTEND_SYM:
-      case IDENT:
-      case VARIABLE:
-      case HASH:
-      case MEDIA_SYM:
-      case PAGE_SYM:
-      case FONT_FACE_SYM:
-      case KEY_FRAME_SYM:
-      case CONTAINS:
-        ;
-        break;
-      default:
-        jj_la1[139] = jj_gen;
-        break label_98;
-      }
-      if (jj_2_7(5)) {
-        ifContentStatement();
-      } else {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case EACH_SYM:
-        case IF_SYM:
-          controlDirective();
-          break;
-        case FONT_FACE_SYM:
-          fontFace();
-          break;
-        case PAGE_SYM:
-          page();
-          break;
-        default:
-          jj_la1[140] = jj_gen;
-          jj_consume_token(-1);
-          throw new ParseException();
-        }
-      }
-    }
-    jj_consume_token(RBRACE);
-    label_99:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case S:
-        ;
-        break;
-      default:
-        jj_la1[141] = jj_gen;
-        break label_99;
-      }
-      jj_consume_token(S);
-    }
-     documentHandler.endMixinDirective(name, args);
-  }
-
-  final public ArrayList<VariableNode> arglist() throws ParseException {
-    ArrayList<VariableNode> args = new ArrayList<VariableNode>();
-    VariableNode arg;
-    boolean hasNonOptionalArgument = false;
-    arg = mixinArg();
-    label_100:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case COMMA:
-        ;
-        break;
-      default:
-        jj_la1[142] = jj_gen;
-        break label_100;
-      }
-      jj_consume_token(COMMA);
-      label_101:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          ;
-          break;
-        default:
-          jj_la1[143] = jj_gen;
-          break label_101;
         }
-        jj_consume_token(S);
-      }
-                                      hasNonOptionalArgument = checkMixinForNonOptionalArguments(arg, hasNonOptionalArgument); args.add(arg);
-      arg = mixinArg();
+        return false;
     }
-      hasNonOptionalArgument = checkMixinForNonOptionalArguments(arg, hasNonOptionalArgument); args.add(arg);
-        {if (true) return args;}
-    throw new Error("Missing return statement in function");
-  }
 
-  boolean checkMixinForNonOptionalArguments(VariableNode arg, boolean hasNonOptionalArguments) throws ParseException {
-        boolean currentArgHasArguments = arg.getExpr() != null && arg.getExpr().getLexicalUnitType() == LexicalUnitImpl.SCSS_VARIABLE && arg.getExpr().getNextLexicalUnit() != null;
+    private boolean jj_3R_170() {
+        if (jj_scan_token(COMMA)) {
+            return true;
+        }
+        Token xsp;
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        return false;
+    }
 
-        if(currentArgHasArguments)
-        {
-                if(hasNonOptionalArguments)
-                {
-                        throw new ParseException("Sass Error: Required argument $"+ arg.getName() +" must come before any optional arguments.");
-                }
-                return hasNonOptionalArguments;
-        }else
-        {
-        return true;
-        }
-  }
-
-  final public VariableNode mixinArg() throws ParseException {
-    String name;
-    Token variable = null;
-    LexicalUnitImpl first = null;
-    LexicalUnitImpl prev = null;
-    LexicalUnitImpl next = null;
-    name = variableName();
-    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-    case COLON:
-    case VARIABLE:
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case COLON:
-        jj_consume_token(COLON);
-        label_102:
+    private boolean jj_3R_301() {
+        if (jj_scan_token(LBRACE)) {
+            return true;
+        }
+        Token xsp;
         while (true) {
-          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-          case S:
-            ;
-            break;
-          default:
-            jj_la1[144] = jj_gen;
-            break label_102;
-          }
-          jj_consume_token(S);
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        xsp = jj_scanpos;
+        if (jj_3R_328()) {
+            jj_scanpos = xsp;
         }
-        first = nonVariableTerm(null);
-        prev = first;
-        label_103:
         while (true) {
-          if (jj_2_8(3)) {
-            ;
-          } else {
-            break label_103;
-          }
-          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-          case COMMA:
-            jj_consume_token(COMMA);
-            label_104:
-            while (true) {
-              switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-              case S:
-                ;
+            xsp = jj_scanpos;
+            if (jj_3R_329()) {
+                jj_scanpos = xsp;
                 break;
-              default:
-                jj_la1[145] = jj_gen;
-                break label_104;
-              }
-              jj_consume_token(S);
             }
-            break;
-          default:
-            jj_la1[146] = jj_gen;
-            ;
-          }
-          prev = nonVariableTerm(prev);
-        }
-        break;
-      case VARIABLE:
-        variable = jj_consume_token(VARIABLE);
-                                    first = LexicalUnitImpl.createVariable(token.beginLine, token.beginColumn,
-                 prev, variable.image);
-        break;
-      default:
-        jj_la1[147] = jj_gen;
-        jj_consume_token(-1);
-        throw new ParseException();
-      }
-      break;
-    default:
-      jj_la1[148] = jj_gen;
-      ;
-    }
-        VariableNode arg = new VariableNode(name, first, false);
-        {if (true) return arg;}
-    throw new Error("Missing return statement in function");
-  }
-
-  final public ArrayList<LexicalUnitImpl> argValuelist() throws ParseException {
-    ArrayList<LexicalUnitImpl> args = new ArrayList<LexicalUnitImpl>();
-    LexicalUnitImpl first = null;
-    LexicalUnitImpl next = null;
-    LexicalUnitImpl prev = null;
-    first = term(null);
-                         args.add(first); prev = first;
-    label_105:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case PLUS:
-      case MINUS:
-      case DOT:
-      case COLON:
-      case STRING:
-      case IDENT:
-      case NUMBER:
-      case URL:
-      case VARIABLE:
-      case PERCENTAGE:
-      case PT:
-      case MM:
-      case CM:
-      case PC:
-      case IN:
-      case PX:
-      case EMS:
-      case EXS:
-      case DEG:
-      case RAD:
-      case GRAD:
-      case MS:
-      case SECOND:
-      case HZ:
-      case KHZ:
-      case DIMEN:
-      case HASH:
-      case UNICODERANGE:
-      case FUNCTION:
-        ;
-        break;
-      default:
-        jj_la1[149] = jj_gen;
-        break label_105;
-      }
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case COLON:
-        jj_consume_token(COLON);
-        label_106:
+        }
+        if (jj_scan_token(RBRACE)) {
+            return true;
+        }
         while (true) {
-          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-          case S:
-            ;
-            break;
-          default:
-            jj_la1[150] = jj_gen;
-            break label_106;
-          }
-          jj_consume_token(S);
-        }
-        break;
-      default:
-        jj_la1[151] = jj_gen;
-        ;
-      }
-      next = term(prev);
-                                                                                              prev.setNextLexicalUnit(next); prev = next;
-    }
-    label_107:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case COMMA:
-        ;
-        break;
-      default:
-        jj_la1[152] = jj_gen;
-        break label_107;
-      }
-      jj_consume_token(COMMA);
-      label_108:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          ;
-          break;
-        default:
-          jj_la1[153] = jj_gen;
-          break label_108;
-        }
-        jj_consume_token(S);
-      }
-      first = term(null);
-                         args.add(first); prev = first;
-      label_109:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case PLUS:
-        case MINUS:
-        case DOT:
-        case COLON:
-        case STRING:
-        case IDENT:
-        case NUMBER:
-        case URL:
-        case VARIABLE:
-        case PERCENTAGE:
-        case PT:
-        case MM:
-        case CM:
-        case PC:
-        case IN:
-        case PX:
-        case EMS:
-        case EXS:
-        case DEG:
-        case RAD:
-        case GRAD:
-        case MS:
-        case SECOND:
-        case HZ:
-        case KHZ:
-        case DIMEN:
-        case HASH:
-        case UNICODERANGE:
-        case FUNCTION:
-          ;
-          break;
-        default:
-          jj_la1[154] = jj_gen;
-          break label_109;
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
         }
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case COLON:
-          jj_consume_token(COLON);
-          label_110:
-          while (true) {
-            switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-            case S:
-              ;
-              break;
-            default:
-              jj_la1[155] = jj_gen;
-              break label_110;
+        return false;
+    }
+
+    private boolean jj_3R_327() {
+        if (jj_3R_355()) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_353() {
+        if (jj_3R_210()) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_358() {
+        if (jj_scan_token(IDENT)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_337() {
+        Token xsp;
+        xsp = jj_scanpos;
+        if (jj_3R_358()) {
+            jj_scanpos = xsp;
+            if (jj_3R_359()) {
+                return true;
             }
-            jj_consume_token(S);
-          }
-          break;
-        default:
-          jj_la1[156] = jj_gen;
-          ;
-        }
-        next = term(prev);
-                                                                                              prev.setNextLexicalUnit(next); prev = next;
-      }
-    }
-     {if (true) return args;}
-    throw new Error("Missing return statement in function");
-  }
-
-  final public void includeDirective() throws ParseException {
-    String name;
-    ArrayList<LexicalUnitImpl> args=null;
-    jj_consume_token(INCLUDE_SYM);
-    label_111:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case S:
-        ;
-        break;
-      default:
-        jj_la1[157] = jj_gen;
-        break label_111;
-      }
-      jj_consume_token(S);
-    }
-    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-    case INTERPOLATION:
-    case IDENT:
-      name = property();
-      break;
-    case VARIABLE:
-      name = variableName();
-                                              name = "$"+name;
-      break;
-    case FUNCTION:
-      name = functionName();
-      args = argValuelist();
-      jj_consume_token(RPARAN);
-      break;
-    default:
-      jj_la1[158] = jj_gen;
-      jj_consume_token(-1);
-      throw new ParseException();
-    }
-    label_112:
-    while (true) {
-      jj_consume_token(SEMICOLON);
-      label_113:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          ;
-          break;
-        default:
-          jj_la1[159] = jj_gen;
-          break label_113;
-        }
-        jj_consume_token(S);
-      }
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case SEMICOLON:
-        ;
-        break;
-      default:
-        jj_la1[160] = jj_gen;
-        break label_112;
-      }
-    }
-            documentHandler.includeDirective(name, args);
-  }
-
-  final public String interpolation() throws ParseException {
-  Token n;
-    n = jj_consume_token(INTERPOLATION);
-    {if (true) return n.image;}
-    throw new Error("Missing return statement in function");
-  }
-
-  final public void listModifyDirective() throws ParseException {
-    if (jj_2_9(5)) {
-      removeDirective();
-    } else if (jj_2_10(5)) {
-      appendDirective();
-    } else if (jj_2_11(5)) {
-      containsDirective();
-    } else {
-      jj_consume_token(-1);
-      throw new ParseException();
-    }
-    label_114:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case S:
-        ;
-        break;
-      default:
-        jj_la1[161] = jj_gen;
-        break label_114;
-      }
-      jj_consume_token(S);
-    }
-    jj_consume_token(SEMICOLON);
-    label_115:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case S:
-        ;
-        break;
-      default:
-        jj_la1[162] = jj_gen;
-        break label_115;
-      }
-      jj_consume_token(S);
-    }
-  }
+        }
+        return false;
+    }
 
-/**
- * @exception ParseException exception during the parse
- */
-  final public void appendDirective() throws ParseException {
-        String list = null;
-        String remove = null;
-        String separator = null;
-        String variable = null;
-        Token n = null;
-    n = jj_consume_token(VARIABLE);
-                    variable = n.image;
-    label_116:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case S:
-        ;
-        break;
-      default:
-        jj_la1[163] = jj_gen;
-        break label_116;
-      }
-      jj_consume_token(S);
-    }
-    jj_consume_token(COLON);
-    label_117:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case S:
-        ;
-        break;
-      default:
-        jj_la1[164] = jj_gen;
-        break label_117;
-      }
-      jj_consume_token(S);
-    }
-    jj_consume_token(APPEND);
-    label_118:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case S:
-        ;
-        break;
-      default:
-        jj_la1[165] = jj_gen;
-        break label_118;
-      }
-      jj_consume_token(S);
-    }
-    list = listModifyDirectiveArgs(0);
-    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-    case RPARAN:
-      jj_consume_token(RPARAN);
-      break;
-    default:
-      jj_la1[166] = jj_gen;
-      ;
-    }
-    jj_consume_token(COMMA);
-    label_119:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case S:
-        ;
-        break;
-      default:
-        jj_la1[167] = jj_gen;
-        break label_119;
-      }
-      jj_consume_token(S);
-    }
-    remove = listModifyDirectiveArgs(1);
-    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-    case COMMA:
-      jj_consume_token(COMMA);
-      label_120:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          ;
-          break;
-        default:
-          jj_la1[168] = jj_gen;
-          break label_120;
-        }
-        jj_consume_token(S);
-      }
-      n = jj_consume_token(IDENT);
-                                     separator = n.image;
-      label_121:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          ;
-          break;
-        default:
-          jj_la1[169] = jj_gen;
-          break label_121;
+    private boolean jj_3R_256() {
+        if (jj_3R_283()) {
+            return true;
         }
-        jj_consume_token(S);
-      }
-      break;
-    default:
-      jj_la1[170] = jj_gen;
-      ;
+        return false;
     }
-    jj_consume_token(RPARAN);
-    documentHandler.appendDirective(variable,list,remove,separator);
-  }
 
-/**
- * @exception ParseException exception during the parse
- */
-  final public void removeDirective() throws ParseException {
-    String list = null;
-    String remove = null;
-    String separator = null;
-    String variable = null;
-    Token n = null;
-    n = jj_consume_token(VARIABLE);
-                    variable = n.image;
-    label_122:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case S:
-        ;
-        break;
-      default:
-        jj_la1[171] = jj_gen;
-        break label_122;
-      }
-      jj_consume_token(S);
-    }
-    jj_consume_token(COLON);
-    label_123:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case S:
-        ;
-        break;
-      default:
-        jj_la1[172] = jj_gen;
-        break label_123;
-      }
-      jj_consume_token(S);
-    }
-    jj_consume_token(REMOVE);
-    label_124:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case S:
-        ;
-        break;
-      default:
-        jj_la1[173] = jj_gen;
-        break label_124;
-      }
-      jj_consume_token(S);
-    }
-    list = listModifyDirectiveArgs(0);
-    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-    case RPARAN:
-      jj_consume_token(RPARAN);
-      break;
-    default:
-      jj_la1[174] = jj_gen;
-      ;
-    }
-    jj_consume_token(COMMA);
-    label_125:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case S:
-        ;
-        break;
-      default:
-        jj_la1[175] = jj_gen;
-        break label_125;
-      }
-      jj_consume_token(S);
-    }
-    remove = listModifyDirectiveArgs(1);
-    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-    case COMMA:
-      jj_consume_token(COMMA);
-      label_126:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          ;
-          break;
-        default:
-          jj_la1[176] = jj_gen;
-          break label_126;
-        }
-        jj_consume_token(S);
-      }
-      n = jj_consume_token(IDENT);
-                                     separator = n.image;
-      label_127:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          ;
-          break;
-        default:
-          jj_la1[177] = jj_gen;
-          break label_127;
+    private boolean jj_3R_351() {
+        if (jj_3R_209()) {
+            return true;
         }
-        jj_consume_token(S);
-      }
-      break;
-    default:
-      jj_la1[178] = jj_gen;
-      ;
+        return false;
     }
-    jj_consume_token(RPARAN);
-    documentHandler.removeDirective(variable,list,remove,separator);
-  }
 
-/**
- * @exception ParseException exception during the parse
- */
-  final public String containsDirective() throws ParseException {
-        String list = null;
-        String remove = null;
-        String separator = null;
-        String variable = null;
-        Token n = null;
-    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-    case VARIABLE:
-      n = jj_consume_token(VARIABLE);
-                     variable = n.image;
-      label_128:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          ;
-          break;
-        default:
-          jj_la1[179] = jj_gen;
-          break label_128;
-        }
-        jj_consume_token(S);
-      }
-      jj_consume_token(COLON);
-      label_129:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          ;
-          break;
-        default:
-          jj_la1[180] = jj_gen;
-          break label_129;
-        }
-        jj_consume_token(S);
-      }
-      break;
-    default:
-      jj_la1[181] = jj_gen;
-      ;
-    }
-    jj_consume_token(CONTAINS);
-    label_130:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case S:
-        ;
-        break;
-      default:
-        jj_la1[182] = jj_gen;
-        break label_130;
-      }
-      jj_consume_token(S);
-    }
-    list = listModifyDirectiveArgs(0);
-    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-    case RPARAN:
-      jj_consume_token(RPARAN);
-      break;
-    default:
-      jj_la1[183] = jj_gen;
-      ;
-    }
-    jj_consume_token(COMMA);
-    label_131:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case S:
-        ;
-        break;
-      default:
-        jj_la1[184] = jj_gen;
-        break label_131;
-      }
-      jj_consume_token(S);
-    }
-    remove = listModifyDirectiveArgs(1);
-    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-    case COMMA:
-      jj_consume_token(COMMA);
-      label_132:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          ;
-          break;
-        default:
-          jj_la1[185] = jj_gen;
-          break label_132;
-        }
-        jj_consume_token(S);
-      }
-      n = jj_consume_token(IDENT);
-                                     separator = n.image;
-      label_133:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          ;
-          break;
-        default:
-          jj_la1[186] = jj_gen;
-          break label_133;
-        }
-        jj_consume_token(S);
-      }
-      break;
-    default:
-      jj_la1[187] = jj_gen;
-      ;
-    }
-    jj_consume_token(RPARAN);
-      /*
-       *if it is not in the form like "$contains : contains($items, .v-button);"
-       *for example in @if, like "@if (contains(a b c, b))", then create a temp
-       *variable for contains(a b c, b);
-       */
-      if(variable == null){
-          variable = "$var_"+UUID.randomUUID();
-      }
-      documentHandler.containsDirective(variable,list,remove,separator);
-      {if (true) return variable;}
-    throw new Error("Missing return statement in function");
-  }
-
-  String listModifyDirectiveArgs(int nest) throws ParseException {
-        String list = "";
-        int nesting = nest;
-        Token t = null;
+    private boolean jj_3R_348() {
+        if (jj_3R_210()) {
+            return true;
+        }
+        return false;
+    }
 
-        while(true)
-        {
-                t = getToken(1);
-                String s = t.image;
-                if(t.kind == VARIABLE||t.kind == IDENT)
-                {
-                  list += s;
-                }else if(s.toLowerCase().equals("auto")||s.toLowerCase().equals("space")||s.toLowerCase().equals("comma"))
-                {
-                        int i = 2;
-                        Token temp = getToken(i);
-                        boolean isLast = true;
-                        while(temp.kind != SEMICOLON)
-                        {
-                                if(temp.kind != RPARAN || temp.kind != S)
-                                {
-                                  isLast = false;
-                                }
-                                i++;
-                                temp = getToken(i);
-                        }
+    private boolean jj_3R_346() {
+        if (jj_3R_209()) {
+            return true;
+        }
+        return false;
+    }
 
-                        if(isLast)
-                        {
-                        return list;
-                        }
-                }
-                else if(t.kind == STRING)
-                {
-                        list += s.substring(1,s.length()).substring(0,s.length()-2);
+    private boolean jj_3R_336() {
+        if (jj_3R_210()) {
+            return true;
+        }
+        return false;
+    }
 
-                }else if(t.kind == LPARAN)
-                {
-                        nesting++;
-                        if(nesting > nest+1)
-                        {
-                                throw new CSSParseException("Only one ( ) pair per parameter allowed", getLocator());
-                        }
-                }else if(t.kind == RPARAN)
-                {
-                        nesting--;
-                        if(nesting == 0)
-                        {
-                                return list;
-                        }
-                } else if(t.kind == COMMA)
-                {
-                        if(nesting == nest)
-                        {
-                          return list;
-                        }else
-                        {
-                          list += ",";
-                        }
+    private boolean jj_3R_209() {
+        if (jj_scan_token(DOT)) {
+            return true;
+        }
+        Token xsp;
+        if (jj_3R_337()) {
+            return true;
+        }
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_3R_337()) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        return false;
+    }
 
-                }else if(t.kind == S)
-                {
-                  list += " ";
-                } else if(t.kind == LBRACE)
-                {
-                  throw new CSSParseException("Invalid token,'{' found", getLocator());
-                }
+    private boolean jj_3_8() {
+        Token xsp;
+        xsp = jj_scanpos;
+        if (jj_3R_170()) {
+            jj_scanpos = xsp;
+        }
+        if (jj_3R_171()) {
+            return true;
+        }
+        return false;
+    }
 
-                getNextToken();
+    private boolean jj_3R_341() {
+        if (jj_3R_210()) {
+            return true;
         }
-  }
-
-  final public Node returnDirective() throws ParseException {
-    String raw;
-    raw = skipStatement();
-         {if (true) return null;}
-    throw new Error("Missing return statement in function");
-  }
-
-  final public void debuggingDirective() throws ParseException {
-    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-    case DEBUG_SYM:
-      debugDirective();
-      break;
-    case WARN_SYM:
-      warnDirective();
-      break;
-    default:
-      jj_la1[188] = jj_gen;
-      jj_consume_token(-1);
-      throw new ParseException();
-    }
-  }
-
-  final public void debugDirective() throws ParseException {
-    jj_consume_token(DEBUG_SYM);
-    String content = skipStatementUntilSemiColon();
-    // TODO should evaluate the content expression, call documentHandler.debugDirective() etc.
-    System.out.println(content);
-    label_134:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case S:
-        ;
-        break;
-      default:
-        jj_la1[189] = jj_gen;
-        break label_134;
-      }
-      jj_consume_token(S);
-    }
-  }
-
-  final public void warnDirective() throws ParseException {
-    jj_consume_token(WARN_SYM);
-    String content = skipStatementUntilSemiColon();
-    // TODO should evaluate the content expression, call documentHandler.warnDirective() etc.
-    System.err.println(content);
-    label_135:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case S:
-        ;
-        break;
-      default:
-        jj_la1[190] = jj_gen;
-        break label_135;
-      }
-      jj_consume_token(S);
-    }
-  }
-
-  final public Node forDirective() throws ParseException {
-    String var;
-    String from;
-    String to;
-    boolean exclusive;
-    String body;
-    Token tok;
-    var = variableName();
-        int[] toThrough = {TO, THROUGH};
-        from = skipStatementUntil(toThrough);
-    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-    case TO:
-      tok = jj_consume_token(TO);
-                 exclusive = true;
-      break;
-    case THROUGH:
-      tok = jj_consume_token(THROUGH);
-                       exclusive = false;
-      break;
-    default:
-      jj_la1[191] = jj_gen;
-      jj_consume_token(-1);
-      throw new ParseException();
-    }
-    to = skipStatementUntilLeftBrace();
-    label_136:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case S:
-        ;
-        break;
-      default:
-        jj_la1[192] = jj_gen;
-        break label_136;
-      }
-      jj_consume_token(S);
-    }
-    body = skipStatement();
-     {if (true) return documentHandler.forDirective(var, from, to, exclusive, body);}
-    throw new Error("Missing return statement in function");
-  }
-
-  final public Node whileDirective() throws ParseException {
-    String condition;
-    String body;
-    condition = skipStatementUntilLeftBrace();
-    body = skipStatement();
-        {if (true) return documentHandler.whileDirective(condition, body);}
-    throw new Error("Missing return statement in function");
-  }
-
-  final public void extendDirective() throws ParseException {
- ArrayList<String> list;
-    jj_consume_token(EXTEND_SYM);
-    label_137:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case S:
-        ;
-        break;
-      default:
-        jj_la1[193] = jj_gen;
-        break label_137;
-      }
-      jj_consume_token(S);
-    }
-    list = selectorList();
-    label_138:
-    while (true) {
-      jj_consume_token(SEMICOLON);
-      label_139:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          ;
-          break;
-        default:
-          jj_la1[194] = jj_gen;
-          break label_139;
-        }
-        jj_consume_token(S);
-      }
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case SEMICOLON:
-        ;
-        break;
-      default:
-        jj_la1[195] = jj_gen;
-        break label_138;
-      }
-    }
-     documentHandler.extendDirective(list);
-  }
-
-  Node importDirective() throws ParseException {
-    return null;
-  }
-
-  Node charsetDirective() throws ParseException {
-    return null;
-  }
-
-  Node mozDocumentDirective() throws ParseException {
-    return null;
-  }
-
-  Node supportsDirective() throws ParseException {
-    return null;
-  }
-
-  final public void nestedProperties() throws ParseException {
- String name;
-LexicalUnit exp;
-    name = property();
-    jj_consume_token(COLON);
-    label_140:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case S:
-        ;
-        break;
-      default:
-        jj_la1[196] = jj_gen;
-        break label_140;
-      }
-      jj_consume_token(S);
-    }
-    jj_consume_token(LBRACE);
-    label_141:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case S:
-        ;
-        break;
-      default:
-        jj_la1[197] = jj_gen;
-        break label_141;
-      }
-      jj_consume_token(S);
-    }
-      documentHandler.startNestedProperties(name);
-    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-    case INTERPOLATION:
-    case IDENT:
-      declaration();
-      break;
-    default:
-      jj_la1[198] = jj_gen;
-      ;
-    }
-    label_142:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case SEMICOLON:
-        ;
-        break;
-      default:
-        jj_la1[199] = jj_gen;
-        break label_142;
-      }
-      jj_consume_token(SEMICOLON);
-      label_143:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          ;
-          break;
-        default:
-          jj_la1[200] = jj_gen;
-          break label_143;
-        }
-        jj_consume_token(S);
-      }
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case INTERPOLATION:
-      case IDENT:
-        declaration();
-        break;
-      default:
-        jj_la1[201] = jj_gen;
-        ;
-      }
-    }
-    jj_consume_token(RBRACE);
-      documentHandler.endNestedProperties(name);
-    label_144:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case S:
-        ;
-        break;
-      default:
-        jj_la1[202] = jj_gen;
-        break label_144;
-      }
-      jj_consume_token(S);
-    }
-  }
+        return false;
+    }
 
-/**
- * @exception ParseException exception during the parse
- */
-  final public void styleRuleOrDeclarationOrNestedProperties() throws ParseException {
-    try {
-      if (jj_2_12(5)) {
-        styleRule();
-      } else {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case DEBUG_SYM:
-        case WARN_SYM:
-          debuggingDirective();
-          break;
-        case INTERPOLATION:
-        case IDENT:
-          declarationOrNestedProperties();
-          break;
-        default:
-          jj_la1[203] = jj_gen;
-          jj_consume_token(-1);
-          throw new ParseException();
-        }
-      }
-    } catch (JumpException e) {
-     skipAfterExpression();
-     // reportWarningSkipText(getLocator(), skipAfterExpression());
-
-    } catch (ParseException e) {
-     if (errorHandler != null) {
-         if (e.currentToken != null) {
-             LocatorImpl li = new LocatorImpl(this,
-                                              e.currentToken.next.beginLine,
-                                              e.currentToken.next.beginColumn-1);
-             reportError(li, e);
-         } else {
-             reportError(getLocator(), e);
-         }
-         skipAfterExpression();
-         /*
-         LocatorImpl loc = (LocatorImpl) getLocator();
-         loc.column--;
-         reportWarningSkipText(loc, skipAfterExpression());
-         */
-     } else {
-         skipAfterExpression();
-     }
+    private boolean jj_3R_339() {
+        if (jj_3R_209()) {
+            return true;
+        }
+        return false;
     }
-  }
 
-/**
- * @exception ParseException exception during the parse
- */
-  final public void declarationOrNestedProperties() throws ParseException {
-  boolean important = false;
-  String name;
-  LexicalUnitImpl exp;
-  Token save;
-  String comment = null;
-    try {
-      name = property();
-       save = token;
-      jj_consume_token(COLON);
-      label_145:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          ;
-          break;
-        default:
-          jj_la1[204] = jj_gen;
-          break label_145;
-        }
-        jj_consume_token(S);
-      }
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case PLUS:
-      case MINUS:
-      case DOT:
-      case STRING:
-      case IDENT:
-      case NUMBER:
-      case URL:
-      case VARIABLE:
-      case PERCENTAGE:
-      case PT:
-      case MM:
-      case CM:
-      case PC:
-      case IN:
-      case PX:
-      case EMS:
-      case EXS:
-      case DEG:
-      case RAD:
-      case GRAD:
-      case MS:
-      case SECOND:
-      case HZ:
-      case KHZ:
-      case DIMEN:
-      case HASH:
-      case UNICODERANGE:
-      case FUNCTION:
-        exp = expr();
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case IMPORTANT_SYM:
-          important = prio();
-          break;
-        default:
-          jj_la1[205] = jj_gen;
-          ;
-        }
-         Token next = getToken(1);
-         if(next.kind == SEMICOLON || next.kind == RBRACE){
-             while(next.kind == SEMICOLON){
-                 skipStatement();
-                 next = getToken(1);
-             }
-             if(token.specialToken!=null){
-                 documentHandler.property(name, exp, important, token.specialToken.image);
-             }else{
-                 documentHandler.property(name, exp, important, null);
-             }
-         }
-        break;
-      case LBRACE:
-        jj_consume_token(LBRACE);
-        label_146:
+    private boolean jj_3R_300() {
+        if (jj_3R_252()) {
+            return true;
+        }
+        Token xsp;
+        xsp = jj_scanpos;
+        if (jj_3R_327()) {
+            jj_scanpos = xsp;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_201() {
+        if (jj_scan_token(MEDIA_SYM)) {
+            return true;
+        }
+        Token xsp;
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        if (jj_3R_248()) {
+            return true;
+        }
+        if (jj_scan_token(LBRACE)) {
+            return true;
+        }
         while (true) {
-          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-          case S:
-            ;
-            break;
-          default:
-            jj_la1[206] = jj_gen;
-            break label_146;
-          }
-          jj_consume_token(S);
-        }
-         documentHandler.startNestedProperties(name);
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case INTERPOLATION:
-        case IDENT:
-          declaration();
-          break;
-        default:
-          jj_la1[207] = jj_gen;
-          ;
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
         }
-        label_147:
         while (true) {
-          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-          case SEMICOLON:
-            ;
-            break;
-          default:
-            jj_la1[208] = jj_gen;
-            break label_147;
-          }
-          jj_consume_token(SEMICOLON);
-          label_148:
-          while (true) {
-            switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-            case S:
-              ;
-              break;
-            default:
-              jj_la1[209] = jj_gen;
-              break label_148;
+            xsp = jj_scanpos;
+            if (jj_3R_249()) {
+                jj_scanpos = xsp;
+                break;
             }
-            jj_consume_token(S);
-          }
-          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-          case INTERPOLATION:
-          case IDENT:
-            declaration();
-            break;
-          default:
-            jj_la1[210] = jj_gen;
-            ;
-          }
         }
-        jj_consume_token(RBRACE);
-        label_149:
+        if (jj_scan_token(RBRACE)) {
+            return true;
+        }
         while (true) {
-          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-          case S:
-            ;
-            break;
-          default:
-            jj_la1[211] = jj_gen;
-            break label_149;
-          }
-          jj_consume_token(S);
-        }
-         documentHandler.endNestedProperties(name);
-        break;
-      default:
-        jj_la1[212] = jj_gen;
-        jj_consume_token(-1);
-        throw new ParseException();
-      }
-    } catch (JumpException e) {
-     skipAfterExpression();
-     // reportWarningSkipText(getLocator(), skipAfterExpression());
-
-    } catch (NumberFormatException e) {
-     if (errorHandler != null) {
-         errorHandler.error(new CSSParseException("Invalid number "
-                                                  + e.getMessage(),
-                                                  getLocator(),
-                                                  e));
-     }
-     reportWarningSkipText(getLocator(), skipAfterExpression());
-    } catch (ParseException e) {
-     if (errorHandler != null) {
-         if (e.currentToken != null) {
-             LocatorImpl li = new LocatorImpl(this,
-                                              e.currentToken.next.beginLine,
-                                              e.currentToken.next.beginColumn-1);
-             reportError(li, e);
-         } else {
-             reportError(getLocator(), e);
-         }
-         skipAfterExpression();
-         /*
-         LocatorImpl loc = (LocatorImpl) getLocator();
-         loc.column--;
-         reportWarningSkipText(loc, skipAfterExpression());
-         */
-     } else {
-         skipAfterExpression();
-     }
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        return false;
     }
-  }
 
-/**
- * @exception ParseException exception during the parse
- */
-  final public void declaration() throws ParseException {
-  boolean important = false;
-  String name;
-  LexicalUnit exp;
-  Token save;
-    try {
-      name = property();
-       save = token;
-      jj_consume_token(COLON);
-      label_150:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          ;
-          break;
-        default:
-          jj_la1[213] = jj_gen;
-          break label_150;
-        }
-        jj_consume_token(S);
-      }
-      exp = expr();
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case IMPORTANT_SYM:
-        important = prio();
-        break;
-      default:
-        jj_la1[214] = jj_gen;
-        ;
-      }
-         documentHandler.property(name, exp, important);
-    } catch (JumpException e) {
-     skipAfterExpression();
-     // reportWarningSkipText(getLocator(), skipAfterExpression());
-
-    } catch (NumberFormatException e) {
-     if (errorHandler != null) {
-         errorHandler.error(new CSSParseException("Invalid number "
-                                                  + e.getMessage(),
-                                                  getLocator(),
-                                                  e));
-     }
-     reportWarningSkipText(getLocator(), skipAfterExpression());
-    } catch (ParseException e) {
-     if (errorHandler != null) {
-         if (e.currentToken != null) {
-             LocatorImpl li = new LocatorImpl(this,
-                                              e.currentToken.next.beginLine,
-                                              e.currentToken.next.beginColumn-1);
-             reportError(li, e);
-         } else {
-             reportError(getLocator(), e);
-         }
-         skipAfterExpression();
-         /*
-        LocatorImpl loc = (LocatorImpl) getLocator();
-        loc.column--;
-        reportWarningSkipText(loc, skipAfterExpression());
-        */
-     } else {
-         skipAfterExpression();
-     }
-    }
-  }
+    private boolean jj_3R_352() {
+        if (jj_3R_211()) {
+            return true;
+        }
+        return false;
+    }
 
-/**
- * @exception ParseException exception during the parse
- */
-  final public boolean prio() throws ParseException {
-    jj_consume_token(IMPORTANT_SYM);
-    label_151:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case S:
-        ;
-        break;
-      default:
-        jj_la1[215] = jj_gen;
-        break label_151;
-      }
-      jj_consume_token(S);
-    }
-                             {if (true) return true;}
-    throw new Error("Missing return statement in function");
-  }
-
-  final public boolean guarded() throws ParseException {
-    jj_consume_token(GUARDED_SYM);
-    label_152:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case S:
-        ;
-        break;
-      default:
-        jj_la1[216] = jj_gen;
-        break label_152;
-      }
-      jj_consume_token(S);
-    }
-                          {if (true) return true;}
-    throw new Error("Missing return statement in function");
-  }
+    private boolean jj_3R_283() {
+        if (jj_3R_273()) {
+            return true;
+        }
+        if (jj_scan_token(COLON)) {
+            return true;
+        }
+        Token xsp;
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        xsp = jj_scanpos;
+        if (jj_3R_300()) {
+            jj_scanpos = xsp;
+            if (jj_3R_301()) {
+                return true;
+            }
+        }
+        return false;
+    }
 
-/**
- * @exception ParseException exception during the parse
- */
-  final public LexicalUnitImpl operator(LexicalUnitImpl prev) throws ParseException {
- Token n;
-    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-    case DIV:
-      n = jj_consume_token(DIV);
-      label_153:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          ;
-          break;
-        default:
-          jj_la1[217] = jj_gen;
-          break label_153;
-        }
-        jj_consume_token(S);
-      }
-                 {if (true) return LexicalUnitImpl.createSlash(n.beginLine,
-                                                       n.beginColumn,
-                                                       prev);}
-      break;
-    case COMMA:
-      n = jj_consume_token(COMMA);
-      label_154:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          ;
-          break;
-        default:
-          jj_la1[218] = jj_gen;
-          break label_154;
-        }
-        jj_consume_token(S);
-      }
-                   {if (true) return LexicalUnitImpl.createComma(n.beginLine,
-                                                         n.beginColumn,
-                                                         prev);}
-      break;
-    default:
-      jj_la1[219] = jj_gen;
-      jj_consume_token(-1);
-      throw new ParseException();
-    }
-    throw new Error("Missing return statement in function");
-  }
+    private boolean jj_3R_350() {
+        if (jj_3R_208()) {
+            return true;
+        }
+        return false;
+    }
 
-/**
- * @exception ParseException exception during the parse
- */
-  final public LexicalUnitImpl expr() throws ParseException {
-    LexicalUnitImpl first, res;
-    char op;
-    first = term(null);
-                      res = first;
-    label_155:
-    while (true) {
-      if (jj_2_13(2)) {
-        ;
-      } else {
-        break label_155;
-      }
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case COMMA:
-      case DIV:
-        res = operator(res);
-        break;
-      default:
-        jj_la1[220] = jj_gen;
-        ;
-      }
-      res = term(res);
-    }
-    {if (true) return first;}
-    throw new Error("Missing return statement in function");
-  }
+    private boolean jj_3R_308() {
+        Token xsp;
+        xsp = jj_scanpos;
+        if (jj_3R_350()) {
+            jj_scanpos = xsp;
+            if (jj_3R_351()) {
+                jj_scanpos = xsp;
+                if (jj_3R_352()) {
+                    jj_scanpos = xsp;
+                    if (jj_3R_353()) {
+                        return true;
+                    }
+                }
+            }
+        }
+        return false;
+    }
 
-/**
- * @exception ParseException exception during the parse
- */
-  final public char unaryOperator() throws ParseException {
-    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-    case MINUS:
-      jj_consume_token(MINUS);
-        {if (true) return '-';}
-      break;
-    case PLUS:
-      jj_consume_token(PLUS);
-        {if (true) return '+';}
-      break;
-    default:
-      jj_la1[221] = jj_gen;
-      jj_consume_token(-1);
-      throw new ParseException();
-    }
-    throw new Error("Missing return statement in function");
-  }
+    private boolean jj_3R_345() {
+        if (jj_3R_208()) {
+            return true;
+        }
+        return false;
+    }
 
-/**
- * @exception ParseException exception during the parse
- */
-  final public LexicalUnitImpl term(LexicalUnitImpl prev) throws ParseException {
-  LexicalUnitImpl result = null;
-  Token n = null;
-  char op = ' ';
-    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-    case PLUS:
-    case MINUS:
-    case DOT:
-    case STRING:
-    case IDENT:
-    case NUMBER:
-    case URL:
-    case PERCENTAGE:
-    case PT:
-    case MM:
-    case CM:
-    case PC:
-    case IN:
-    case PX:
-    case EMS:
-    case EXS:
-    case DEG:
-    case RAD:
-    case GRAD:
-    case MS:
-    case SECOND:
-    case HZ:
-    case KHZ:
-    case DIMEN:
-    case HASH:
-    case UNICODERANGE:
-    case FUNCTION:
-      result = nonVariableTerm(prev);
-      break;
-    case VARIABLE:
-      result = variableTerm(prev);
-      break;
-    default:
-      jj_la1[222] = jj_gen;
-      jj_consume_token(-1);
-      throw new ParseException();
-    }
-          {if (true) return result;}
-    throw new Error("Missing return statement in function");
-  }
-
-  final public LexicalUnitImpl variableTerm(LexicalUnitImpl prev) throws ParseException {
-  LexicalUnitImpl result = null;
-  String varName = "";
-    varName = variableName();
-          result = LexicalUnitImpl.createVariable(token.beginLine, token.beginColumn,
-                 prev, varName); {if (true) return result;}
-    throw new Error("Missing return statement in function");
-  }
-
-  final public LexicalUnitImpl nonVariableTerm(LexicalUnitImpl prev) throws ParseException {
-LexicalUnitImpl result = null;
-  Token n = null;
-  char op = ' ';
-  String varName;
-  String s = "";
-    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-    case PLUS:
-    case MINUS:
-    case NUMBER:
-    case PERCENTAGE:
-    case PT:
-    case MM:
-    case CM:
-    case PC:
-    case IN:
-    case PX:
-    case EMS:
-    case EXS:
-    case DEG:
-    case RAD:
-    case GRAD:
-    case MS:
-    case SECOND:
-    case HZ:
-    case KHZ:
-    case DIMEN:
-    case FUNCTION:
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case PLUS:
-      case MINUS:
-        op = unaryOperator();
-        break;
-      default:
-        jj_la1[223] = jj_gen;
-        ;
-      }
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case NUMBER:
-        n = jj_consume_token(NUMBER);
-          result = LexicalUnitImpl.createNumber(n.beginLine, n.beginColumn,
-                                                prev, number(op, n, 0));
-        break;
-      case PERCENTAGE:
-        n = jj_consume_token(PERCENTAGE);
-          result = LexicalUnitImpl.createPercentage(n.beginLine, n.beginColumn,
-                                                    prev, number(op, n, 1));
-        break;
-      case PT:
-        n = jj_consume_token(PT);
-          result = LexicalUnitImpl.createPT(n.beginLine, n.beginColumn,
-                                            prev, number(op, n, 2));
-        break;
-      case CM:
-        n = jj_consume_token(CM);
-          result = LexicalUnitImpl.createCM(n.beginLine, n.beginColumn,
-                                            prev, number(op, n, 2));
-        break;
-      case MM:
-        n = jj_consume_token(MM);
-          result = LexicalUnitImpl.createMM(n.beginLine, n.beginColumn,
-                                            prev, number(op, n, 2));
-        break;
-      case PC:
-        n = jj_consume_token(PC);
-          result = LexicalUnitImpl.createPC(n.beginLine, n.beginColumn,
-                                            prev, number(op, n, 2));
-        break;
-      case IN:
-        n = jj_consume_token(IN);
-          result = LexicalUnitImpl.createIN(n.beginLine, n.beginColumn,
-                                            prev, number(op, n, 2));
-        break;
-      case PX:
-        n = jj_consume_token(PX);
-          result = LexicalUnitImpl.createPX(n.beginLine, n.beginColumn,
-                                            prev, number(op, n, 2));
-        break;
-      case EMS:
-        n = jj_consume_token(EMS);
-          result = LexicalUnitImpl.createEMS(n.beginLine, n.beginColumn,
-                                             prev, number(op, n, 2));
-        break;
-      case EXS:
-        n = jj_consume_token(EXS);
-          result = LexicalUnitImpl.createEXS(n.beginLine, n.beginColumn,
-                                             prev, number(op, n, 2));
-        break;
-      case DEG:
-        n = jj_consume_token(DEG);
-          result = LexicalUnitImpl.createDEG(n.beginLine, n.beginColumn,
-                                             prev, number(op, n, 3));
-        break;
-      case RAD:
-        n = jj_consume_token(RAD);
-          result = LexicalUnitImpl.createRAD(n.beginLine, n.beginColumn,
-                                             prev, number(op, n, 3));
-        break;
-      case GRAD:
-        n = jj_consume_token(GRAD);
-          result = LexicalUnitImpl.createGRAD(n.beginLine, n.beginColumn,
-                                              prev, number(op, n, 3));
-        break;
-      case SECOND:
-        n = jj_consume_token(SECOND);
-          result = LexicalUnitImpl.createS(n.beginLine, n.beginColumn,
-                                           prev, number(op, n, 1));
-        break;
-      case MS:
-        n = jj_consume_token(MS);
-          result = LexicalUnitImpl.createMS(n.beginLine, n.beginColumn,
-                                            prev, number(op, n, 2));
-        break;
-      case HZ:
-        n = jj_consume_token(HZ);
-          result = LexicalUnitImpl.createHZ(n.beginLine, n.beginColumn,
-                                            prev, number(op, n, 2));
-        break;
-      case KHZ:
-        n = jj_consume_token(KHZ);
-          result = LexicalUnitImpl.createKHZ(n.beginLine, n.beginColumn,
-                                             prev, number(op, n, 3));
-        break;
-      case DIMEN:
-        n = jj_consume_token(DIMEN);
-            s = n.image;
-            int i = 0;
-            while (i < s.length()
-                   && (Character.isDigit(s.charAt(i)) || (s.charAt(i) == '.'))) {
-                i++;
+    private boolean jj_3R_307() {
+        Token xsp;
+        xsp = jj_scanpos;
+        if (jj_3R_345()) {
+            jj_scanpos = xsp;
+            if (jj_3R_346()) {
+                jj_scanpos = xsp;
+                if (jj_3R_347()) {
+                    jj_scanpos = xsp;
+                    if (jj_3R_348()) {
+                        return true;
+                    }
+                }
             }
-            result = LexicalUnitImpl.createDimen(n.beginLine, n.beginColumn, prev,
-                                                 Float.valueOf(s.substring(0, i)).floatValue(),
-                                                 s.substring(i));
-        break;
-      case FUNCTION:
-        result = function(op, prev);
-        break;
-      default:
-        jj_la1[224] = jj_gen;
-        jj_consume_token(-1);
-        throw new ParseException();
-      }
-      break;
-    case DOT:
-    case STRING:
-    case IDENT:
-    case URL:
-    case HASH:
-    case UNICODERANGE:
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case STRING:
-        n = jj_consume_token(STRING);
-          result =
-          LexicalUnitImpl.createString(n.beginLine, n.beginColumn, prev,
-                                       convertStringIndex(n.image, 1,
-                                                          n.image.length() -1));
-        break;
-      case DOT:
-      case IDENT:
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case DOT:
-          jj_consume_token(DOT);
-                   s+=".";
-          break;
-        default:
-          jj_la1[225] = jj_gen;
-          ;
         }
-        n = jj_consume_token(IDENT);
-        s += convertIdent(n.image);
-        if ("inherit".equals(s)) {
-            result = LexicalUnitImpl.createInherit(n.beginLine, n.beginColumn,
-                                               prev);
-        } else {
-            result = LexicalUnitImpl.createIdent(n.beginLine, n.beginColumn,
-                                               prev, convertIdent(n.image));
-        }
-
-          /* /
-         Auto correction code used in the CSS Validator but must not
-          be used by a conformant CSS2 parser.
-        * Common error :
-        * H1 {
-        *   color : black
-        *   background : white
-        * }
-        *
-       Token t = getToken(1);
-       Token semicolon = new Token();
-       semicolon.kind = SEMICOLON;
-       semicolon.image = ";";
-       if (t.kind == COLON) {
-           // @@SEEME. (generate a warning?)
-           // @@SEEME if expression is a single ident, 
-              generate an error ?
-           rejectToken(semicolon);
-           
-           result = prev;
-       }
-       / */
-
-        break;
-      case HASH:
-        result = hexcolor(prev);
-        break;
-      case URL:
-        result = url(prev);
-        break;
-      case UNICODERANGE:
-        result = unicode(prev);
-        break;
-      default:
-        jj_la1[226] = jj_gen;
-        jj_consume_token(-1);
-        throw new ParseException();
-      }
-      break;
-    default:
-      jj_la1[227] = jj_gen;
-      jj_consume_token(-1);
-      throw new ParseException();
-    }
-    label_156:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case S:
-        ;
-        break;
-      default:
-        jj_la1[228] = jj_gen;
-        break label_156;
-      }
-      jj_consume_token(S);
-    }
-    {if (true) return result;}
-    throw new Error("Missing return statement in function");
-  }
+        return false;
+    }
 
-/**
- * Handle all CSS2 functions.
- * @exception ParseException exception during the parse
- */
-  final public LexicalUnitImpl function(char operator, LexicalUnitImpl prev) throws ParseException {
- Token n;
- LexicalUnit params = null;
-    n = jj_consume_token(FUNCTION);
-    label_157:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case S:
-        ;
-        break;
-      default:
-        jj_la1[229] = jj_gen;
-        break label_157;
-      }
-      jj_consume_token(S);
+    private boolean jj_3R_333() {
+        if (jj_3R_210()) {
+            return true;
+        }
+        return false;
     }
-        String fname = convertIdent(n.image);
-        if("alpha(".equals(fname)){
-            String body = skipStatementUntilSemiColon();
-            {if (true) return LexicalUnitImpl.createIdent(n.beginLine, n.beginColumn,
-                 null, "alpha("+body);}
-        }
-    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-    case PLUS:
-    case MINUS:
-    case DOT:
-    case STRING:
-    case IDENT:
-    case NUMBER:
-    case URL:
-    case VARIABLE:
-    case PERCENTAGE:
-    case PT:
-    case MM:
-    case CM:
-    case PC:
-    case IN:
-    case PX:
-    case EMS:
-    case EXS:
-    case DEG:
-    case RAD:
-    case GRAD:
-    case MS:
-    case SECOND:
-    case HZ:
-    case KHZ:
-    case DIMEN:
-    case HASH:
-    case UNICODERANGE:
-    case FUNCTION:
-      params = expr();
-      break;
-    default:
-      jj_la1[230] = jj_gen;
-      ;
-    }
-    jj_consume_token(RPARAN);
-        if (operator != ' ') {
-            {if (true) throw new CSSParseException("invalid operator before a function.",
-                                        getLocator());}
+
+    private boolean jj_3R_255() {
+        if (jj_3R_282()) {
+            return true;
         }
-        String f = convertIdent(n.image);
-        LexicalUnitImpl l = (LexicalUnitImpl) params;
-        boolean loop = true;
-        if ("rgb(".equals(f)) {
-            // this is a RGB declaration (e.g. rgb(255, 50%, 0) )
-            int i = 0;
-            while (loop && l != null && i < 5) {
-                switch (i) {
-                    case 0:
-                    case 2:
-                    case 4:
-                        if ((l.getLexicalUnitType() != LexicalUnit.SAC_INTEGER)
-                            && (l.getLexicalUnitType() != LexicalUnit.SAC_PERCENTAGE)) {
-                            loop = false;
-                        }
-                        break;
-                    case 1:
-                    case 3:
-                        if (l.getLexicalUnitType() != LexicalUnit.SAC_OPERATOR_COMMA) {
-                            loop = false;
-                        }
-                        break;
-                    default:
-                        {if (true) throw new ParseException("implementation error");}
-                }
-                if (loop) {
-                    l = (LexicalUnitImpl) l.getNextLexicalUnit();
-                    i ++;
-                }
-            }
-            if ((i == 5) && loop && (l == null)) {
-                {if (true) return LexicalUnitImpl.createRGBColor(n.beginLine,
-                                                      n.beginColumn,
-                                                      prev, params);}
-            } else {
-                if (errorHandler != null) {
-                    String errorText;
-                    Locator loc;
-                    if (i < 5) {
-                        if (params == null) {
-                            loc = new LocatorImpl(this, n.beginLine,
-                                                  n.beginColumn-1);
-                            errorText = "not enough parameters.";
-                        } else if (l == null) {
-                            loc = new LocatorImpl(this, n.beginLine,
-                                                  n.beginColumn-1);
-                            errorText = "not enough parameters: "
-                                + params.toString();
-                        } else {
-                            loc = new LocatorImpl(this, l.getLineNumber(),
-                                                  l.getColumnNumber());
-                            errorText = "invalid parameter: "
-                                + l.toString();
-                        }
-                    } else {
-                        loc = new LocatorImpl(this, l.getLineNumber(),
-                                              l.getColumnNumber());
-                        errorText = "too many parameters: "
-                            + l.toString();
+        return false;
+    }
+
+    private boolean jj_3R_347() {
+        if (jj_3R_211()) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_338() {
+        if (jj_3R_208()) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_306() {
+        Token xsp;
+        xsp = jj_scanpos;
+        if (jj_3R_338()) {
+            jj_scanpos = xsp;
+            if (jj_3R_339()) {
+                jj_scanpos = xsp;
+                if (jj_3R_340()) {
+                    jj_scanpos = xsp;
+                    if (jj_3R_341()) {
+                        return true;
                     }
-                    errorHandler.error(new CSSParseException(errorText, loc));
                 }
-
-                {if (true) throw new JumpException();}
             }
-        } else if ("counter".equals(f)) {
-            int i = 0;
-            while (loop && l != null && i < 3) {
-                switch (i) {
-                    case 0:
-                    case 2:
-                        if (l.getLexicalUnitType() != LexicalUnit.SAC_IDENT) {
-                            loop = false;
-                        }
-                        break;
-                    case 1:
-                        if (l.getLexicalUnitType() != LexicalUnit.SAC_OPERATOR_COMMA) {
-                            loop = false;
-                        }
-                        break;
-                    default:
-                        {if (true) throw new ParseException("implementation error");}
+        }
+        return false;
+    }
+
+    private boolean jj_3R_335() {
+        if (jj_3R_211()) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_340() {
+        if (jj_3R_211()) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_285() {
+        if (jj_scan_token(INTERPOLATION)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_334() {
+        if (jj_3R_209()) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_331() {
+        if (jj_3R_209()) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_305() {
+        Token xsp;
+        xsp = jj_scanpos;
+        if (jj_3R_334()) {
+            jj_scanpos = xsp;
+            if (jj_3R_335()) {
+                jj_scanpos = xsp;
+                if (jj_3R_336()) {
+                    return true;
                 }
-                l = (LexicalUnitImpl) l.getNextLexicalUnit();
-                i ++;
-            }
-            if (((i == 1) || (i == 3)) && loop && (l == null)) {
-                {if (true) return LexicalUnitImpl.createCounter(n.beginLine, n.beginColumn,
-                                                     prev, params);}
             }
+        }
+        return false;
+    }
 
-        } else if ("counters(".equals(f)) {
+    private boolean jj_3_2() {
+        if (jj_3R_166()) {
+            return true;
+        }
+        return false;
+    }
 
-            int i = 0;
-            while (loop && l != null && i < 5) {
-                switch (i) {
-                    case 0:
-                    case 4:
-                        if (l.getLexicalUnitType() != LexicalUnit.SAC_IDENT) {
-                            loop = false;
-                        }
-                        break;
-                    case 2:
-                        if (l.getLexicalUnitType() != LexicalUnit.SAC_STRING_VALUE) {
-                            loop = false;
-                        }
-                        break;
-                    case 1:
-                    case 3:
-                        if (l.getLexicalUnitType() != LexicalUnit.SAC_OPERATOR_COMMA) {
-                            loop = false;
-                        }
-                        break;
-                    default:
-                        {if (true) throw new ParseException("implementation error");}
-                }
-                l = (LexicalUnitImpl) l.getNextLexicalUnit();
-                i ++;
+    private boolean jj_3R_191() {
+        if (jj_3R_211()) {
+            return true;
+        }
+        Token xsp;
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_3R_308()) {
+                jj_scanpos = xsp;
+                break;
             }
-            if (((i == 3) || (i == 5)) && loop && (l == null)) {
-                {if (true) return LexicalUnitImpl.createCounters(n.beginLine, n.beginColumn,
-                                                      prev, params);}
+        }
+        return false;
+    }
+
+    private boolean jj_3R_182() {
+        if (jj_3R_205()) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_190() {
+        if (jj_3R_210()) {
+            return true;
+        }
+        Token xsp;
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_3R_307()) {
+                jj_scanpos = xsp;
+                break;
             }
-        } else if ("attr(".equals(f)) {
-            if ((l != null)
-                && (l.getNextLexicalUnit() == null)
-                && (l.getLexicalUnitType() == LexicalUnit.SAC_IDENT)) {
-                {if (true) return LexicalUnitImpl.createAttr(l.getLineNumber(),
-                                                  l.getColumnNumber(),
-                                                  prev, l.getStringValue());}
+        }
+        return false;
+    }
+
+    private boolean jj_3R_332() {
+        if (jj_3R_211()) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_189() {
+        if (jj_3R_209()) {
+            return true;
+        }
+        Token xsp;
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_3R_306()) {
+                jj_scanpos = xsp;
+                break;
             }
-        } else if ("rect(".equals(f)) {
-            int i = 0;
-            while (loop && l != null && i < 7) {
-                switch (i) {
-                    case 0:
-                    case 2:
-                    case 4:
-                    case 6:
-                        switch (l.getLexicalUnitType()) {
-                        case LexicalUnit.SAC_INTEGER:
-                            if (l.getIntegerValue() != 0) {
-                                loop = false;
-                            }
-                            break;
-                        case LexicalUnit.SAC_IDENT:
-                            if (!l.getStringValue().equals("auto")) {
-                                loop = false;
-                            }
-                            break;
-                        case LexicalUnit.SAC_EM:
-                        case LexicalUnit.SAC_EX:
-                        case LexicalUnit.SAC_PIXEL:
-                        case LexicalUnit.SAC_CENTIMETER:
-                        case LexicalUnit.SAC_MILLIMETER:
-                        case LexicalUnit.SAC_INCH:
-                        case LexicalUnit.SAC_POINT:
-                        case LexicalUnit.SAC_PICA:
-                            // nothing
-                            break;
-                        default:
-                            loop = false;
-                        }
-                        break;
-                    case 1:
-                    case 3:
-                    case 5:
-                        if (l.getLexicalUnitType() != LexicalUnit.SAC_OPERATOR_COMMA) {
-                            loop = false;
-                        }
-                        break;
-                    default:
-                        {if (true) throw new ParseException("implementation error");}
+        }
+        return false;
+    }
+
+    private boolean jj_3R_258() {
+        if (jj_3R_286()) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_330() {
+        if (jj_3R_208()) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_304() {
+        Token xsp;
+        xsp = jj_scanpos;
+        if (jj_3R_330()) {
+            jj_scanpos = xsp;
+            if (jj_3R_331()) {
+                jj_scanpos = xsp;
+                if (jj_3R_332()) {
+                    jj_scanpos = xsp;
+                    if (jj_3R_333()) {
+                        return true;
+                    }
                 }
-                l = (LexicalUnitImpl) l.getNextLexicalUnit();
-                i ++;
             }
-            if ((i == 7) && loop && (l == null)) {
-                {if (true) return LexicalUnitImpl.createRect(n.beginLine, n.beginColumn,
-                                                  prev, params);}
-            }
-        }
-        {if (true) return LexicalUnitImpl.createFunction(n.beginLine, n.beginColumn, prev,
-                                              f.substring(0,
-                                                        f.length() -1),
-                                              params);}
-    throw new Error("Missing return statement in function");
-  }
-
-  final public LexicalUnitImpl unicode(LexicalUnitImpl prev) throws ParseException {
-  Token n;
-    n = jj_consume_token(UNICODERANGE);
-     LexicalUnitImpl params = null;
-     String s = n.image.substring(2);
-     int index = s.indexOf('-');
-     if (index == -1) {
-         params = LexicalUnitImpl.createInteger(n.beginLine, n.beginColumn,
-                                                params, Integer.parseInt(s, 16));
-     } else {
-         String s1 = s.substring(0, index);
-         String s2 = s.substring(index);
-
-         params = LexicalUnitImpl.createInteger(n.beginLine, n.beginColumn,
-                                                params, Integer.parseInt(s1, 16));
-         params = LexicalUnitImpl.createInteger(n.beginLine, n.beginColumn,
-                                                params, Integer.parseInt(s2, 16));
-     }
-
-     {if (true) return LexicalUnitImpl.createUnicodeRange(n.beginLine, n.beginColumn,
-                                               prev, params);}
-    throw new Error("Missing return statement in function");
-  }
-
-  final public LexicalUnitImpl url(LexicalUnitImpl prev) throws ParseException {
-  Token n;
-    n = jj_consume_token(URL);
-   String urlname = n.image.substring(4, n.image.length()-1).trim();
-   {if (true) return LexicalUnitImpl.createURL(n.beginLine, n.beginColumn, prev, urlname);}
-    throw new Error("Missing return statement in function");
-  }
+        }
+        return false;
+    }
 
-/**
- * @exception ParseException exception during the parse
- */
-  final public LexicalUnitImpl hexcolor(LexicalUnitImpl prev) throws ParseException {
- Token n;
-    n = jj_consume_token(HASH);
-     int r;
-     LexicalUnitImpl first, params = null;
-     String s = n.image.substring(1);
-
-     if(s.length()!=3 && s.length()!=6) {
-         first = null;
-         {if (true) throw new CSSParseException("invalid hexadecimal notation for RGB: " + s,
-                                     getLocator());}
-     }
-     {if (true) return LexicalUnitImpl.createIdent(n.beginLine, n.beginColumn,
-             prev, n.image);}
-    throw new Error("Missing return statement in function");
-  }
-
-  float number(char operator, Token n, int lengthUnit) throws ParseException {
-    String image  = n.image;
-    float f = 0;
-
-    if (lengthUnit != 0) {
-        image = image.substring(0, image.length() - lengthUnit);
-    }
-    f = Float.valueOf(image).floatValue();
-    return (operator == '-')? -f: f;
-  }
-
-  String skipStatementUntilSemiColon() throws ParseException {
-    int[] semicolon = {SEMICOLON};
-    return skipStatementUntil(semicolon);
-  }
-
-  String skipStatementUntilLeftBrace() throws ParseException {
-    int[] lBrace = {LBRACE};
-    return skipStatementUntil(lBrace);
-  }
-
-  String skipStatementUntilRightParan() throws ParseException {
-    int[] rParan = {RPARAN};
-    return skipStatementUntil(rParan);
-  }
-
-  String skipStatementUntil(int[] symbols) throws ParseException {
-    StringBuffer s = new StringBuffer();
-    boolean stop = false;
-    Token tok;
-    while(!stop){
-        tok = getToken(1);
-        if(tok.kind == EOF) {
-            return null;
-        }
-        for(int sym : symbols){
-            if(tok.kind == sym){
-                stop = true;
-                break;
-            }
-        }
-        if(!stop){
-            if (tok.image != null) {
-                s.append(tok.image);
+    private boolean jj_3R_188() {
+        if (jj_3R_208()) {
+            return true;
+        }
+        Token xsp;
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_3R_305()) {
+                jj_scanpos = xsp;
+                break;
             }
-            getNextToken();
         }
+        return false;
     }
-    return s.toString().trim();
-  }
 
-  String skipStatement() throws ParseException {
-    StringBuffer s = new StringBuffer();
-    Token tok = getToken(0);
-    if (tok.image != null) {
-        s.append(tok.image);
-    }
-    while (true) {
-        tok = getToken(1);
-        if (tok.kind == EOF) {
-            return null;
+    private boolean jj_3R_286() {
+        Token xsp;
+        xsp = jj_scanpos;
+        if (jj_scan_token(53)) {
+            jj_scanpos = xsp;
+            if (jj_scan_token(50)) {
+                jj_scanpos = xsp;
+                if (jj_scan_token(77)) {
+                    return true;
+                }
+            }
         }
-        s.append(tok.image);
-        if (tok.kind == LBRACE) {
-            getNextToken();
-            s.append(skip_to_matching_brace());
-            getNextToken();
-            tok = getToken(1);
-            break;
-        } else if (tok.kind == RBRACE) {
-            getNextToken();
-            tok = getToken(1);
-            break;
-        } else if (tok.kind == SEMICOLON) {
-            getNextToken();
-            tok = getToken(1);
-            break;
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        if (jj_scan_token(LBRACE)) {
+            return true;
         }
-        getNextToken();
+        return false;
     }
 
-    // skip white space
-    while (true) {
-        if (tok.kind != S) {
-            break;
+    private boolean jj_3_12() {
+        if (jj_3R_174()) {
+            return true;
         }
-        tok = getNextToken();
-        tok = getToken(1);
+        return false;
     }
 
-    return s.toString().trim();
-  }
-
-  String skip_to_matching_brace() throws ParseException {
-    StringBuffer s = new StringBuffer();
-    Token tok;
-    int nesting = 1;
-    while (true) {
-        tok = getToken(1);
-        if (tok.kind == EOF) {
-            break;
+    private boolean jj_3R_187() {
+        if (jj_3R_207()) {
+            return true;
+        }
+        Token xsp;
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_3R_304()) {
+                jj_scanpos = xsp;
+                break;
+            }
         }
-        s.append(tok.image);
-        if (tok.kind == LBRACE) {
-            nesting++;
-        } else if (tok.kind == RBRACE) {
-            nesting--;
-            if (nesting == 0) {
-                break;
-            }
-        }
-        getNextToken();
-    }
-    return s.toString();
-  }
-
-  String convertStringIndex(String s, int start, int len) throws ParseException {
-    StringBuffer buf = new StringBuffer(len);
-    int index = start;
-
-    while (index < len) {
-        char c = s.charAt(index);
-        if (c == '\u005c\u005c') {
-            if (++index < len) {
-                c = s.charAt(index);
-                switch (c) {
-                case '0': case '1': case '2': case '3': case '4':
-                case '5': case '6': case '7': case '8': case '9':
-                case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
-                case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
-                    buf.append('\u005c\u005c');
-                    while (index < len) {
-                        buf.append(s.charAt(index++));
-                    }
-                    break;
-                case '\u005cn':
-                case '\u005cf':
-                    break;
-                case '\u005cr':
-                    if (index + 1 < len) {
-                        if (s.charAt(index + 1) == '\u005cn') {
-                            index ++;
+        return false;
+    }
+
+    private boolean jj_3R_168() {
+        Token xsp;
+        xsp = jj_scanpos;
+        if (jj_3R_187()) {
+            jj_scanpos = xsp;
+            if (jj_3R_188()) {
+                jj_scanpos = xsp;
+                if (jj_3R_189()) {
+                    jj_scanpos = xsp;
+                    if (jj_3R_190()) {
+                        jj_scanpos = xsp;
+                        if (jj_3R_191()) {
+                            return true;
                         }
                     }
-                    break;
-                default:
-                    buf.append(c);
                 }
-            } else {
-                throw new CSSParseException("invalid string " + s, getLocator());
             }
-        } else {
-            buf.append(c);
         }
-        index++;
+        return false;
     }
 
-    return buf.toString();
-  }
-
-  String convertIdent(String s) throws ParseException {
-    return convertStringIndex(s, 0, s.length());
-  }
-
-  String convertString(String s) throws ParseException {
-    return convertStringIndex(s, 0, s.length());
-  }
-
-  void comments() throws ParseException {
-    if (token.specialToken != null){
-        Token tmp_t = token.specialToken;
-        while (tmp_t.specialToken != null) tmp_t = tmp_t.specialToken;
-        while (tmp_t != null) {
-            documentHandler.comment(tmp_t.image);
-            tmp_t = tmp_t.next;
+    private boolean jj_3R_204() {
+        Token xsp;
+        xsp = jj_scanpos;
+        if (jj_3_12()) {
+            jj_scanpos = xsp;
+            if (jj_3R_255()) {
+                jj_scanpos = xsp;
+                if (jj_3R_256()) {
+                    return true;
+                }
+            }
         }
+        return false;
     }
-  }
-
-  void rejectToken(Token t) throws ParseException {
-    Token fakeToken = new Token();
-    t.next = token;
-    fakeToken.next = t;
-    token = fakeToken;
-  }
 
-  String skipAfterExpression() throws ParseException {
-    Token t = getToken(1);
-    StringBuffer s = new StringBuffer();
-    s.append(getToken(0).image);
-
-    while ((t.kind != RBRACE) && (t.kind != SEMICOLON) && (t.kind != EOF)) {
-        s.append(t.image);
-        getNextToken();
-        t = getToken(1);
+    private boolean jj_3_7() {
+        if (jj_3R_166()) {
+            return true;
+        }
+        return false;
     }
 
-    return s.toString();
-  }
-
-/**
- * The following functions are useful for a DOM CSS implementation only and are
- * not part of the general CSS2 parser.
- */
-  final public void _parseRule() throws ParseException {
- String ret = null;
-    label_158:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case S:
-        ;
-        break;
-      default:
-        jj_la1[231] = jj_gen;
-        break label_158;
-      }
-      jj_consume_token(S);
-    }
-    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-    case IMPORT_SYM:
-      importDeclaration();
-      break;
-    case DEBUG_SYM:
-    case WARN_SYM:
-      debuggingDirective();
-      break;
-    case LBRACKET:
-    case ANY:
-    case PARENT:
-    case DOT:
-    case COLON:
-    case INTERPOLATION:
-    case IDENT:
-    case HASH:
-      styleRule();
-      break;
-    case MEDIA_SYM:
-      media();
-      break;
-    case PAGE_SYM:
-      page();
-      break;
-    case FONT_FACE_SYM:
-      fontFace();
-      break;
-    default:
-      jj_la1[232] = jj_gen;
-      ret = skipStatement();
-                    if ((ret == null) || (ret.length() == 0)) {
-                        {if (true) return;}
-                    }
-                    if (ret.charAt(0) == '@') {
-                        documentHandler.unrecognizedRule(ret);
-                    } else {
-                        {if (true) throw new CSSParseException("unrecognize rule: " + ret,
-                                                    getLocator());}
-                    }
+    private boolean jj_3R_290() {
+        if (jj_3R_252()) {
+            return true;
+        }
+        return false;
     }
-  }
-
-  final public void _parseImportRule() throws ParseException {
-    label_159:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case S:
-        ;
-        break;
-      default:
-        jj_la1[233] = jj_gen;
-        break label_159;
-      }
-      jj_consume_token(S);
-    }
-    importDeclaration();
-  }
-
-  final public void _parseMediaRule() throws ParseException {
-    label_160:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case S:
-        ;
-        break;
-      default:
-        jj_la1[234] = jj_gen;
-        break label_160;
-      }
-      jj_consume_token(S);
-    }
-    media();
-  }
-
-  final public void _parseDeclarationBlock() throws ParseException {
-    label_161:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case S:
-        ;
-        break;
-      default:
-        jj_la1[235] = jj_gen;
-        break label_161;
-      }
-      jj_consume_token(S);
-    }
-    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-    case INTERPOLATION:
-    case IDENT:
-      declaration();
-      break;
-    default:
-      jj_la1[236] = jj_gen;
-      ;
-    }
-    label_162:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case SEMICOLON:
-        ;
-        break;
-      default:
-        jj_la1[237] = jj_gen;
-        break label_162;
-      }
-      jj_consume_token(SEMICOLON);
-      label_163:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          ;
-          break;
-        default:
-          jj_la1[238] = jj_gen;
-          break label_163;
-        }
-        jj_consume_token(S);
-      }
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case INTERPOLATION:
-      case IDENT:
-        declaration();
-        break;
-      default:
-        jj_la1[239] = jj_gen;
-        ;
-      }
-    }
-  }
-
-  final public ArrayList<String> _parseSelectors() throws ParseException {
-  ArrayList<String> p = null;
-    try {
-      label_164:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case S:
-          ;
-          break;
-        default:
-          jj_la1[240] = jj_gen;
-          break label_164;
-        }
-        jj_consume_token(S);
-      }
-      p = selectorList();
-          {if (true) return p;}
-    } catch (ThrowedParseException e) {
-        {if (true) throw (ParseException) e.e.fillInStackTrace();}
-    }
-    throw new Error("Missing return statement in function");
-  }
-
-  private boolean jj_2_1(int xla) {
-    jj_la = xla; jj_lastpos = jj_scanpos = token;
-    try { return !jj_3_1(); }
-    catch(LookaheadSuccess ls) { return true; }
-    finally { jj_save(0, xla); }
-  }
-
-  private boolean jj_2_2(int xla) {
-    jj_la = xla; jj_lastpos = jj_scanpos = token;
-    try { return !jj_3_2(); }
-    catch(LookaheadSuccess ls) { return true; }
-    finally { jj_save(1, xla); }
-  }
-
-  private boolean jj_2_3(int xla) {
-    jj_la = xla; jj_lastpos = jj_scanpos = token;
-    try { return !jj_3_3(); }
-    catch(LookaheadSuccess ls) { return true; }
-    finally { jj_save(2, xla); }
-  }
-
-  private boolean jj_2_4(int xla) {
-    jj_la = xla; jj_lastpos = jj_scanpos = token;
-    try { return !jj_3_4(); }
-    catch(LookaheadSuccess ls) { return true; }
-    finally { jj_save(3, xla); }
-  }
-
-  private boolean jj_2_5(int xla) {
-    jj_la = xla; jj_lastpos = jj_scanpos = token;
-    try { return !jj_3_5(); }
-    catch(LookaheadSuccess ls) { return true; }
-    finally { jj_save(4, xla); }
-  }
-
-  private boolean jj_2_6(int xla) {
-    jj_la = xla; jj_lastpos = jj_scanpos = token;
-    try { return !jj_3_6(); }
-    catch(LookaheadSuccess ls) { return true; }
-    finally { jj_save(5, xla); }
-  }
-
-  private boolean jj_2_7(int xla) {
-    jj_la = xla; jj_lastpos = jj_scanpos = token;
-    try { return !jj_3_7(); }
-    catch(LookaheadSuccess ls) { return true; }
-    finally { jj_save(6, xla); }
-  }
-
-  private boolean jj_2_8(int xla) {
-    jj_la = xla; jj_lastpos = jj_scanpos = token;
-    try { return !jj_3_8(); }
-    catch(LookaheadSuccess ls) { return true; }
-    finally { jj_save(7, xla); }
-  }
-
-  private boolean jj_2_9(int xla) {
-    jj_la = xla; jj_lastpos = jj_scanpos = token;
-    try { return !jj_3_9(); }
-    catch(LookaheadSuccess ls) { return true; }
-    finally { jj_save(8, xla); }
-  }
-
-  private boolean jj_2_10(int xla) {
-    jj_la = xla; jj_lastpos = jj_scanpos = token;
-    try { return !jj_3_10(); }
-    catch(LookaheadSuccess ls) { return true; }
-    finally { jj_save(9, xla); }
-  }
-
-  private boolean jj_2_11(int xla) {
-    jj_la = xla; jj_lastpos = jj_scanpos = token;
-    try { return !jj_3_11(); }
-    catch(LookaheadSuccess ls) { return true; }
-    finally { jj_save(10, xla); }
-  }
-
-  private boolean jj_2_12(int xla) {
-    jj_la = xla; jj_lastpos = jj_scanpos = token;
-    try { return !jj_3_12(); }
-    catch(LookaheadSuccess ls) { return true; }
-    finally { jj_save(11, xla); }
-  }
-
-  private boolean jj_2_13(int xla) {
-    jj_la = xla; jj_lastpos = jj_scanpos = token;
-    try { return !jj_3_13(); }
-    catch(LookaheadSuccess ls) { return true; }
-    finally { jj_save(12, xla); }
-  }
-
-  private boolean jj_3R_368() {
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3_6()) {
-    jj_scanpos = xsp;
-    if (jj_scan_token(76)) {
-    jj_scanpos = xsp;
-    if (jj_scan_token(72)) {
-    jj_scanpos = xsp;
-    if (jj_scan_token(73)) {
-    jj_scanpos = xsp;
-    if (jj_scan_token(33)) {
-    jj_scanpos = xsp;
-    if (jj_scan_token(34)) {
-    jj_scanpos = xsp;
-    if (jj_scan_token(20)) {
-    jj_scanpos = xsp;
-    if (jj_scan_token(21)) {
-    jj_scanpos = xsp;
-    if (jj_scan_token(27)) {
-    jj_scanpos = xsp;
-    if (jj_scan_token(30)) {
-    jj_scanpos = xsp;
-    if (jj_scan_token(35)) {
-    jj_scanpos = xsp;
-    if (jj_scan_token(19)) {
-    jj_scanpos = xsp;
-    if (jj_scan_token(24)) {
-    jj_scanpos = xsp;
-    if (jj_scan_token(26)) {
-    jj_scanpos = xsp;
-    if (jj_scan_token(36)) {
-    jj_scanpos = xsp;
-    if (jj_scan_token(37)) {
-    jj_scanpos = xsp;
-    if (jj_scan_token(1)) {
-    jj_scanpos = xsp;
-    if (jj_scan_token(38)) return true;
-    }
-    }
-    }
-    }
-    }
-    }
-    }
-    }
-    }
-    }
-    }
-    }
-    }
-    }
-    }
-    }
-    }
-    return false;
-  }
-
-  private boolean jj_3R_230() {
-    if (jj_scan_token(DIMEN)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_323() {
-    if (jj_scan_token(INTERPOLATION)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_229() {
-    if (jj_scan_token(KHZ)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_174() {
-    if (jj_3R_195()) return true;
-    if (jj_scan_token(LBRACE)) return true;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
-    }
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_3R_196()) { jj_scanpos = xsp; break; }
-    }
-    if (jj_scan_token(RBRACE)) return true;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
-    }
-    return false;
-  }
-
-  private boolean jj_3R_228() {
-    if (jj_scan_token(HZ)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_177() {
-    if (jj_3R_200()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_326() {
-    if (jj_scan_token(WARN_SYM)) return true;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
-    }
-    return false;
-  }
-
-  private boolean jj_3R_227() {
-    if (jj_scan_token(MS)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_299() {
-    if (jj_3R_326()) return true;
-    return false;
-  }
 
-  private boolean jj_3R_226() {
-    if (jj_scan_token(SECOND)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_225() {
-    if (jj_scan_token(GRAD)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_274() {
-    if (jj_scan_token(FUNCTION)) return true;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
+    private boolean jj_3R_257() {
+        Token xsp;
+        xsp = jj_scanpos;
+        if (jj_3R_284()) {
+            jj_scanpos = xsp;
+            if (jj_3R_285()) {
+                return true;
+            }
+        }
+        return false;
     }
-    return false;
-  }
 
-  private boolean jj_3R_224() {
-    if (jj_scan_token(RAD)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_325() {
-    if (jj_scan_token(DEBUG_SYM)) return true;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
-    }
-    return false;
-  }
-
-  private boolean jj_3R_223() {
-    if (jj_scan_token(DEG)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_251() {
-    if (jj_scan_token(VARIABLE)) return true;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
-    }
-    return false;
-  }
-
-  private boolean jj_3R_254() {
-    if (jj_scan_token(SEMICOLON)) return true;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
-    }
-    return false;
-  }
-
-  private boolean jj_3R_222() {
-    if (jj_scan_token(EXS)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_221() {
-    if (jj_scan_token(EMS)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_298() {
-    if (jj_3R_325()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_282() {
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_298()) {
-    jj_scanpos = xsp;
-    if (jj_3R_299()) return true;
-    }
-    return false;
-  }
-
-  private boolean jj_3R_322() {
-    if (jj_scan_token(IDENT)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_294() {
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_322()) {
-    jj_scanpos = xsp;
-    if (jj_3R_323()) return true;
-    }
-    return false;
-  }
-
-  private boolean jj_3R_220() {
-    if (jj_scan_token(PX)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_354() {
-    if (jj_3R_368()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_273() {
-    Token xsp;
-    if (jj_3R_294()) return true;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_3R_294()) { jj_scanpos = xsp; break; }
-    }
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
-    }
-    return false;
-  }
-
-  private boolean jj_3R_219() {
-    if (jj_scan_token(IN)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_309() {
-    if (jj_scan_token(IF_SYM)) return true;
-    Token xsp;
-    if (jj_3R_354()) return true;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_3R_354()) { jj_scanpos = xsp; break; }
-    }
-    if (jj_scan_token(LBRACE)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_292() {
-    if (jj_3R_310()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_218() {
-    if (jj_scan_token(PC)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_217() {
-    if (jj_scan_token(MM)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_321() {
-    if (jj_scan_token(S)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_320() {
-    if (jj_scan_token(DOT)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_319() {
-    if (jj_scan_token(EQ)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_216() {
-    if (jj_scan_token(CM)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_318() {
-    if (jj_scan_token(RPARAN)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_317() {
-    if (jj_scan_token(FUNCTION)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_166() {
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3_5()) {
-    jj_scanpos = xsp;
-    if (jj_3R_177()) {
-    jj_scanpos = xsp;
-    if (jj_3R_178()) {
-    jj_scanpos = xsp;
-    if (jj_3R_179()) {
-    jj_scanpos = xsp;
-    if (jj_3R_180()) {
-    jj_scanpos = xsp;
-    if (jj_3R_181()) {
-    jj_scanpos = xsp;
-    if (jj_3R_182()) return true;
-    }
-    }
-    }
-    }
-    }
-    }
-    return false;
-  }
-
-  private boolean jj_3_5() {
-    if (jj_3R_165()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_316() {
-    if (jj_scan_token(COLON)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_253() {
-    if (jj_3R_281()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_215() {
-    if (jj_scan_token(PT)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_315() {
-    if (jj_scan_token(INTERPOLATION)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_314() {
-    if (jj_scan_token(COMMA)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_313() {
-    if (jj_scan_token(STRING)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_214() {
-    if (jj_scan_token(PERCENTAGE)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_312() {
-    if (jj_scan_token(NUMBER)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_271() {
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_291()) {
-    jj_scanpos = xsp;
-    if (jj_3R_292()) return true;
-    }
-    return false;
-  }
-
-  private boolean jj_3R_291() {
-    if (jj_3R_309()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_199() {
-    if (jj_3R_243()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_311() {
-    if (jj_scan_token(IDENT)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_293() {
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_311()) {
-    jj_scanpos = xsp;
-    if (jj_3R_312()) {
-    jj_scanpos = xsp;
-    if (jj_3R_313()) {
-    jj_scanpos = xsp;
-    if (jj_3R_314()) {
-    jj_scanpos = xsp;
-    if (jj_3R_315()) {
-    jj_scanpos = xsp;
-    if (jj_3R_316()) {
-    jj_scanpos = xsp;
-    if (jj_3R_317()) {
-    jj_scanpos = xsp;
-    if (jj_3R_318()) {
-    jj_scanpos = xsp;
-    if (jj_3R_319()) {
-    jj_scanpos = xsp;
-    if (jj_3R_320()) {
-    jj_scanpos = xsp;
-    if (jj_3R_321()) return true;
-    }
+    private boolean jj_3R_284() {
+        if (jj_scan_token(IDENT)) {
+            return true;
+        }
+        return false;
     }
+
+    private boolean jj_3R_205() {
+        if (jj_scan_token(KEY_FRAME_SYM)) {
+            return true;
+        }
+        Token xsp;
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        if (jj_3R_257()) {
+            return true;
+        }
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_3R_257()) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        if (jj_scan_token(LBRACE)) {
+            return true;
+        }
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_3R_258()) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        if (jj_scan_token(RBRACE)) {
+            return true;
+        }
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        return false;
     }
+
+    private boolean jj_3R_266() {
+        if (jj_scan_token(FUNCTION)) {
+            return true;
+        }
+        Token xsp;
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        xsp = jj_scanpos;
+        if (jj_3R_290()) {
+            jj_scanpos = xsp;
+        }
+        if (jj_scan_token(RPARAN)) {
+            return true;
+        }
+        return false;
     }
+
+    private boolean jj_3R_240() {
+        if (jj_3R_272()) {
+            return true;
+        }
+        return false;
     }
+
+    private boolean jj_3R_236() {
+        if (jj_3R_270()) {
+            return true;
+        }
+        return false;
     }
+
+    private boolean jj_3R_181() {
+        if (jj_3R_204()) {
+            return true;
+        }
+        return false;
     }
+
+    private boolean jj_3R_235() {
+        if (jj_3R_269()) {
+            return true;
+        }
+        return false;
     }
+
+    private boolean jj_3R_234() {
+        if (jj_3R_268()) {
+            return true;
+        }
+        return false;
     }
+
+    private boolean jj_3_4() {
+        if (jj_3R_167()) {
+            return true;
+        }
+        if (jj_3R_168()) {
+            return true;
+        }
+        return false;
     }
-    return false;
-  }
 
-  private boolean jj_3R_213() {
-    if (jj_scan_token(NUMBER)) return true;
-    return false;
-  }
+    private boolean jj_3R_238() {
+        if (jj_scan_token(COMMA)) {
+            return true;
+        }
+        Token xsp;
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        if (jj_3R_237()) {
+            return true;
+        }
+        return false;
+    }
 
-  private boolean jj_3R_212() {
-    if (jj_3R_265()) return true;
-    return false;
-  }
+    private boolean jj_3R_237() {
+        if (jj_3R_168()) {
+            return true;
+        }
+        Token xsp;
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_3_4()) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        return false;
+    }
 
-  private boolean jj_3R_193() {
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_212()) jj_scanpos = xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_213()) {
-    jj_scanpos = xsp;
-    if (jj_3R_214()) {
-    jj_scanpos = xsp;
-    if (jj_3R_215()) {
-    jj_scanpos = xsp;
-    if (jj_3R_216()) {
-    jj_scanpos = xsp;
-    if (jj_3R_217()) {
-    jj_scanpos = xsp;
-    if (jj_3R_218()) {
-    jj_scanpos = xsp;
-    if (jj_3R_219()) {
-    jj_scanpos = xsp;
-    if (jj_3R_220()) {
-    jj_scanpos = xsp;
-    if (jj_3R_221()) {
-    jj_scanpos = xsp;
-    if (jj_3R_222()) {
-    jj_scanpos = xsp;
-    if (jj_3R_223()) {
-    jj_scanpos = xsp;
-    if (jj_3R_224()) {
-    jj_scanpos = xsp;
-    if (jj_3R_225()) {
-    jj_scanpos = xsp;
-    if (jj_3R_226()) {
-    jj_scanpos = xsp;
-    if (jj_3R_227()) {
-    jj_scanpos = xsp;
-    if (jj_3R_228()) {
-    jj_scanpos = xsp;
-    if (jj_3R_229()) {
-    jj_scanpos = xsp;
-    if (jj_3R_230()) {
-    jj_scanpos = xsp;
-    if (jj_3R_231()) return true;
+    private boolean jj_3R_180() {
+        if (jj_3R_203()) {
+            return true;
+        }
+        return false;
     }
+
+    private boolean jj_3R_239() {
+        if (jj_3R_271()) {
+            return true;
+        }
+        return false;
     }
+
+    private boolean jj_3R_250() {
+        if (jj_scan_token(SEMICOLON)) {
+            return true;
+        }
+        Token xsp;
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        return false;
     }
+
+    private boolean jj_3R_202() {
+        if (jj_scan_token(EXTEND_SYM)) {
+            return true;
+        }
+        Token xsp;
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        if (jj_3R_195()) {
+            return true;
+        }
+        if (jj_3R_250()) {
+            return true;
+        }
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_3R_250()) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        return false;
     }
+
+    private boolean jj_3R_310() {
+        if (jj_scan_token(EACH_SYM)) {
+            return true;
+        }
+        Token xsp;
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        if (jj_scan_token(VARIABLE)) {
+            return true;
+        }
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        if (jj_scan_token(EACH_IN)) {
+            return true;
+        }
+        return false;
     }
+
+    private boolean jj_3R_195() {
+        if (jj_3R_237()) {
+            return true;
+        }
+        Token xsp;
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_3R_238()) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        return false;
     }
+
+    private boolean jj_3R_179() {
+        if (jj_3R_202()) {
+            return true;
+        }
+        return false;
     }
+
+    private boolean jj_3R_267() {
+        if (jj_scan_token(DOT)) {
+            return true;
+        }
+        return false;
     }
+
+    private boolean jj_3R_233() {
+        Token xsp;
+        xsp = jj_scanpos;
+        if (jj_3R_267()) {
+            jj_scanpos = xsp;
+        }
+        if (jj_scan_token(IDENT)) {
+            return true;
+        }
+        return false;
     }
+
+    private boolean jj_3R_178() {
+        if (jj_3R_201()) {
+            return true;
+        }
+        return false;
     }
+
+    private boolean jj_3R_232() {
+        if (jj_scan_token(STRING)) {
+            return true;
+        }
+        return false;
     }
+
+    private boolean jj_3R_231() {
+        if (jj_3R_266()) {
+            return true;
+        }
+        return false;
     }
+
+    private boolean jj_3R_194() {
+        Token xsp;
+        xsp = jj_scanpos;
+        if (jj_3R_232()) {
+            jj_scanpos = xsp;
+            if (jj_3R_233()) {
+                jj_scanpos = xsp;
+                if (jj_3R_234()) {
+                    jj_scanpos = xsp;
+                    if (jj_3R_235()) {
+                        jj_scanpos = xsp;
+                        if (jj_3R_236()) {
+                            return true;
+                        }
+                    }
+                }
+            }
+        }
+        return false;
     }
+
+    private boolean jj_3R_196() {
+        Token xsp;
+        xsp = jj_scanpos;
+        if (jj_3_3()) {
+            jj_scanpos = xsp;
+            if (jj_3R_239()) {
+                jj_scanpos = xsp;
+                if (jj_3R_240()) {
+                    return true;
+                }
+            }
+        }
+        return false;
+    }
+
+    private boolean jj_3_3() {
+        if (jj_3R_166()) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3_6() {
+        if (jj_3R_169()) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3_1() {
+        if (jj_3R_165()) {
+            return true;
+        }
+        return false;
+    }
+
+    /** Generated Token Manager. */
+    public ParserTokenManager token_source;
+    /** Current token. */
+    public Token token;
+    /** Next token. */
+    public Token jj_nt;
+    private int jj_ntk;
+    private Token jj_scanpos, jj_lastpos;
+    private int jj_la;
+    private int jj_gen;
+    final private int[] jj_la1 = new int[241];
+    static private int[] jj_la1_0;
+    static private int[] jj_la1_1;
+    static private int[] jj_la1_2;
+    static private int[] jj_la1_3;
+    static {
+        jj_la1_init_0();
+        jj_la1_init_1();
+        jj_la1_init_2();
+        jj_la1_init_3();
+    }
+
+    private static void jj_la1_init_0() {
+        jj_la1_0 = new int[] { 0x0, 0xc02, 0xc02, 0x0, 0xc00, 0x2, 0x2, 0x2,
+                0xd0000000, 0xc00, 0x2, 0xc00, 0x2, 0x0, 0x2, 0x0, 0x2, 0x2,
+                0x0, 0x0, 0x2, 0x2, 0x0, 0x2, 0x0, 0x2, 0x2, 0xd0000000, 0x0,
+                0x2, 0x2, 0x2, 0xd3f45400, 0xd3f45400, 0x2, 0x400000, 0x2, 0x2,
+                0x2, 0x2, 0x0, 0x0, 0x2, 0x0, 0x800000, 0x2, 0x0, 0x2, 0x2,
+                0x2, 0x2, 0x0, 0x800000, 0x2, 0x0, 0x2, 0x3f45400, 0x2, 0x2,
+                0x2, 0x3100000, 0x2, 0x3100000, 0x3100002, 0x2, 0x480002,
+                0x480002, 0x2, 0x0, 0x0, 0x2, 0x2, 0x2, 0x2, 0xd0000000, 0x0,
+                0x2, 0x400000, 0x2, 0x2, 0x10000000, 0x10000000, 0x10000000,
+                0x10000000, 0x10000000, 0x10000000, 0x10000000, 0x10000000,
+                0x10000000, 0x10000000, 0xd0000000, 0x0, 0x0, 0x0, 0x0,
+                0xc0000000, 0x2, 0x2, 0xfc000, 0x2, 0x0, 0x2, 0xfc000, 0x0,
+                0x2, 0x0, 0x2, 0x0, 0x2, 0x800000, 0x0, 0xd0000000, 0x4d380002,
+                0x2, 0xd0000000, 0x2, 0x0, 0x2, 0x4d380002, 0x0, 0x2,
+                0xd0000000, 0x2, 0x4d380002, 0x2, 0x2, 0x2, 0x0, 0x2,
+                0xd0000000, 0x2, 0x2, 0x400000, 0x2, 0x2, 0x2, 0x2, 0x0, 0x2,
+                0xd0000000, 0x0, 0x2, 0x400000, 0x2, 0x2, 0x2, 0x400000, 0x0,
+                0x0, 0x300000, 0x2, 0x0, 0x400000, 0x2, 0x300000, 0x2, 0x0,
+                0x2, 0x0, 0x2, 0x800000, 0x2, 0x2, 0x2, 0x2, 0x2, 0x0, 0x2,
+                0x2, 0x2, 0x400000, 0x2, 0x2, 0x2, 0x0, 0x2, 0x2, 0x2,
+                0x400000, 0x2, 0x2, 0x0, 0x2, 0x0, 0x2, 0x2, 0x2, 0x400000,
+                0x0, 0x2, 0x2, 0x0, 0x2, 0x2, 0x2, 0x800000, 0x2, 0x2, 0x0,
+                0x800000, 0x2, 0x0, 0x2, 0x0, 0x2, 0x0, 0x2, 0x0, 0x800000,
+                0x2, 0x0, 0x2, 0x301000, 0x2, 0x0, 0x2, 0x2, 0x2, 0x2,
+                0x8400000, 0x8400000, 0x300000, 0x300000, 0x300000, 0x0, 0x0,
+                0x0, 0x300000, 0x2, 0x2, 0x300000, 0x2, 0xd0000000, 0x2, 0x2,
+                0x2, 0x0, 0x800000, 0x2, 0x0, 0x2, };
+    }
+
+    private static void jj_la1_init_1() {
+        jj_la1_1 = new int[] { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+                0xacc00181, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x100,
+                0x100, 0x0, 0x0, 0x240000, 0x0, 0x240000, 0x0, 0x0, 0xac800181,
+                0xa0000000, 0x0, 0x0, 0x0, 0xc000381, 0xc000381, 0x0, 0x0, 0x0,
+                0x0, 0x0, 0x0, 0x0, 0x80, 0x0, 0x100, 0x0, 0x0, 0x100, 0x0,
+                0x0, 0x0, 0x0, 0x100, 0x0, 0x0, 0x100, 0x0, 0x200, 0x0, 0x0,
+                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x185, 0x185, 0x0, 0x100, 0x100,
+                0x0, 0x0, 0x0, 0x0, 0xac800181, 0xa0000000, 0x0, 0x0, 0x0, 0x0,
+                0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
+                0x181, 0x100, 0x100, 0x100, 0x100, 0x100, 0x0, 0x0, 0x0, 0x0,
+                0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa0000000,
+                0xc800181, 0x7e, 0x0, 0xc800181, 0x0, 0x0, 0x0, 0x7e, 0x0, 0x0,
+                0xc800181, 0x0, 0x7e, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc800181, 0x0,
+                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x100, 0x0, 0xac800181,
+                0xa0000000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x80, 0x81,
+                0x0, 0x80, 0x0, 0x0, 0x81, 0x0, 0x80, 0x0, 0x100, 0x0, 0x0,
+                0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+                0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x0,
+                0x0, 0x0, 0x0, 0xc000000, 0x0, 0x0, 0xc0000, 0x0, 0x0, 0x0,
+                0x0, 0x0, 0x0, 0x100, 0x0, 0x0, 0x100, 0x0, 0xc000100, 0x0,
+                0x0, 0x0, 0x100, 0x0, 0x0, 0x100, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0,
+                0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x1, 0x0,
+                0x0, 0x1, 0x0, 0xc000181, 0x0, 0x0, 0x0, 0x100, 0x0, 0x0,
+                0x100, 0x0, };
+    }
+
+    private static void jj_la1_init_2() {
+        jj_la1_2 = new int[] { 0x0, 0x0, 0x0, 0x80000000, 0x0, 0x0, 0x0, 0x0,
+                0x40001100, 0x0, 0x0, 0x0, 0x0, 0x880, 0x0, 0x100, 0x0, 0x0,
+                0x100, 0x100, 0x0, 0x0, 0x2000, 0x0, 0x2000, 0x0, 0x0,
+                0x40001112, 0x10, 0x0, 0x0, 0x0, 0xc0002b80, 0xc0002b80, 0x0,
+                0x0, 0x0, 0x0, 0x0, 0x0, 0x100, 0x0, 0x0, 0x100, 0x0, 0x0,
+                0x100, 0x0, 0x0, 0x0, 0x0, 0x100, 0x0, 0x0, 0x100, 0x0,
+                0x80002a80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x380,
+                0x380, 0x0, 0x100, 0x100, 0x0, 0x0, 0x0, 0x0, 0x40001112, 0x10,
+                0x0, 0x0, 0x0, 0x0, 0x40000000, 0x40000000, 0x0, 0x0,
+                0x40000000, 0x40000000, 0x40000000, 0x40000000, 0x40000000,
+                0x40000000, 0x40000100, 0x100, 0x100, 0x100, 0x100, 0x100, 0x0,
+                0x0, 0x0, 0x0, 0x180, 0x0, 0x0, 0x0, 0x0, 0x100, 0x0, 0x40,
+                0x0, 0x0, 0x0, 0x40001102, 0x1300, 0x0, 0x40001102, 0x0, 0x1,
+                0x0, 0x1300, 0x20, 0x0, 0x40001102, 0x0, 0x1300, 0x0, 0x0, 0x0,
+                0x1100, 0x0, 0x40001102, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+                0x100, 0x0, 0x40001102, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+                0x1000, 0x1000, 0x7ffffb80, 0x0, 0x0, 0x0, 0x0, 0x7ffffb80,
+                0x0, 0x0, 0x0, 0x1100, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+                0x0, 0x0, 0x1000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x100, 0x0, 0x0, 0x100, 0x0,
+                0x100, 0x0, 0x0, 0x0, 0x100, 0x0, 0x0, 0x100, 0x0, 0x7ffffb80,
+                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7ffffb80, 0x0,
+                0x3fffe200, 0x0, 0x40000980, 0x7fffeb80, 0x0, 0x0, 0x7ffffb80,
+                0x0, 0xc0000100, 0x0, 0x0, 0x0, 0x100, 0x0, 0x0, 0x100, 0x0, };
+    }
+
+    private static void jj_la1_init_3() {
+        jj_la1_3 = new int[] { 0x2, 0x20, 0x20, 0x0, 0x20, 0x0, 0x0, 0x0, 0x1d,
+                0x20, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80011, 0x0, 0x0, 0x0, 0x0,
+                0x31006f, 0x31006f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+                0x0, 0x0, 0x31006f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+                0x100000, 0x100000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80011,
+                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x100000, 0x0, 0x0, 0x0, 0x0,
+                0x0, 0x11, 0x80000, 0x0, 0x80011, 0x0, 0x0, 0x0, 0x80000, 0x0,
+                0x0, 0x80011, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80011, 0x0,
+                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x100000, 0x0, 0x8001d, 0xc, 0x0,
+                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x110000, 0x0, 0x0, 0x0,
+                0x0, 0x110000, 0x0, 0x0, 0x0, 0x100000, 0x0, 0x0, 0x0, 0x0,
+                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0,
+                0x0, 0x110000, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+                0x110000, 0x0, 0x100000, 0x0, 0x10000, 0x110000, 0x0, 0x0,
+                0x110000, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, };
+    }
+
+    final private JJCalls[] jj_2_rtns = new JJCalls[13];
+    private boolean jj_rescan = false;
+    private int jj_gc = 0;
+
+    /** Constructor with user supplied CharStream. */
+    public Parser(CharStream stream) {
+        token_source = new ParserTokenManager(stream);
+        token = new Token();
+        jj_ntk = -1;
+        jj_gen = 0;
+        for (int i = 0; i < 241; i++) {
+            jj_la1[i] = -1;
+        }
+        for (int i = 0; i < jj_2_rtns.length; i++) {
+            jj_2_rtns[i] = new JJCalls();
+        }
     }
+
+    /** Reinitialise. */
+    public void ReInit(CharStream stream) {
+        token_source.ReInit(stream);
+        token = new Token();
+        jj_ntk = -1;
+        jj_gen = 0;
+        for (int i = 0; i < 241; i++) {
+            jj_la1[i] = -1;
+        }
+        for (int i = 0; i < jj_2_rtns.length; i++) {
+            jj_2_rtns[i] = new JJCalls();
+        }
     }
+
+    /** Constructor with generated Token Manager. */
+    public Parser(ParserTokenManager tm) {
+        token_source = tm;
+        token = new Token();
+        jj_ntk = -1;
+        jj_gen = 0;
+        for (int i = 0; i < 241; i++) {
+            jj_la1[i] = -1;
+        }
+        for (int i = 0; i < jj_2_rtns.length; i++) {
+            jj_2_rtns[i] = new JJCalls();
+        }
     }
+
+    /** Reinitialise. */
+    public void ReInit(ParserTokenManager tm) {
+        token_source = tm;
+        token = new Token();
+        jj_ntk = -1;
+        jj_gen = 0;
+        for (int i = 0; i < 241; i++) {
+            jj_la1[i] = -1;
+        }
+        for (int i = 0; i < jj_2_rtns.length; i++) {
+            jj_2_rtns[i] = new JJCalls();
+        }
     }
+
+    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++;
+            if (++jj_gc > 100) {
+                jj_gc = 0;
+                for (int i = 0; i < jj_2_rtns.length; i++) {
+                    JJCalls c = jj_2_rtns[i];
+                    while (c != null) {
+                        if (c.gen < jj_gen) {
+                            c.first = null;
+                        }
+                        c = c.next;
+                    }
+                }
+            }
+            return token;
+        }
+        token = oldToken;
+        jj_kind = kind;
+        throw generateParseException();
     }
-    return false;
-  }
 
-  private boolean jj_3R_171() {
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_193()) {
-    jj_scanpos = xsp;
-    if (jj_3R_194()) return true;
+    static private final class LookaheadSuccess extends java.lang.Error {
     }
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
+
+    final private LookaheadSuccess jj_ls = new LookaheadSuccess();
+
+    private boolean jj_scan_token(int kind) {
+        if (jj_scanpos == jj_lastpos) {
+            jj_la--;
+            if (jj_scanpos.next == null) {
+                jj_lastpos = jj_scanpos = jj_scanpos.next = token_source
+                        .getNextToken();
+            } else {
+                jj_lastpos = jj_scanpos = jj_scanpos.next;
+            }
+        } else {
+            jj_scanpos = jj_scanpos.next;
+        }
+        if (jj_rescan) {
+            int i = 0;
+            Token tok = token;
+            while (tok != null && tok != jj_scanpos) {
+                i++;
+                tok = tok.next;
+            }
+            if (tok != null) {
+                jj_add_error_token(kind, i);
+            }
+        }
+        if (jj_scanpos.kind != kind) {
+            return true;
+        }
+        if (jj_la == 0 && jj_scanpos == jj_lastpos) {
+            throw jj_ls;
+        }
+        return false;
     }
-    return false;
-  }
 
-  private boolean jj_3R_272() {
-    if (jj_scan_token(MICROSOFT_RULE)) return true;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
+    /** 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;
     }
-    if (jj_scan_token(COLON)) return true;
-    if (jj_3R_293()) return true;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_3R_293()) { jj_scanpos = xsp; break; }
-    }
-    return false;
-  }
-
-  private boolean jj_3R_261() {
-    if (jj_scan_token(SIBLING)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_260() {
-    if (jj_scan_token(PRECEDES)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_259() {
-    if (jj_scan_token(PLUS)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_206() {
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_259()) {
-    jj_scanpos = xsp;
-    if (jj_3R_260()) {
-    jj_scanpos = xsp;
-    if (jj_3R_261()) return true;
-    }
-    }
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
+
+    /** 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;
     }
-    return false;
-  }
 
-  private boolean jj_3R_268() {
-    if (jj_scan_token(HASH)) return true;
-    return false;
-  }
+    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 boolean jj_3R_243() {
-    if (jj_3R_251()) return true;
-    return false;
-  }
+    private java.util.List<int[]> jj_expentries = new java.util.ArrayList<int[]>();
+    private int[] jj_expentry;
+    private int jj_kind = -1;
+    private int[] jj_lasttokens = new int[100];
+    private int jj_endpos;
 
-  private boolean jj_3R_185() {
-    if (jj_scan_token(SIBLING)) return true;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
+    private void jj_add_error_token(int kind, int pos) {
+        if (pos >= 100) {
+            return;
+        }
+        if (pos == jj_endpos + 1) {
+            jj_lasttokens[jj_endpos++] = kind;
+        } else if (jj_endpos != 0) {
+            jj_expentry = new int[jj_endpos];
+            for (int i = 0; i < jj_endpos; i++) {
+                jj_expentry[i] = jj_lasttokens[i];
+            }
+            jj_entries_loop: for (java.util.Iterator<?> it = jj_expentries
+                    .iterator(); it.hasNext();) {
+                int[] oldentry = (int[]) (it.next());
+                if (oldentry.length == jj_expentry.length) {
+                    for (int i = 0; i < jj_expentry.length; i++) {
+                        if (oldentry[i] != jj_expentry[i]) {
+                            continue jj_entries_loop;
+                        }
+                    }
+                    jj_expentries.add(jj_expentry);
+                    break jj_entries_loop;
+                }
+            }
+            if (pos != 0) {
+                jj_lasttokens[(jj_endpos = pos) - 1] = kind;
+            }
+        }
     }
-    return false;
-  }
 
-  private boolean jj_3R_184() {
-    if (jj_scan_token(PRECEDES)) return true;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
-    }
-    return false;
-  }
-
-  private boolean jj_3R_186() {
-    if (jj_scan_token(S)) return true;
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_206()) jj_scanpos = xsp;
-    return false;
-  }
-
-  private boolean jj_3R_167() {
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_183()) {
-    jj_scanpos = xsp;
-    if (jj_3R_184()) {
-    jj_scanpos = xsp;
-    if (jj_3R_185()) {
-    jj_scanpos = xsp;
-    if (jj_3R_186()) return true;
-    }
-    }
-    }
-    return false;
-  }
-
-  private boolean jj_3R_183() {
-    if (jj_scan_token(PLUS)) return true;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
-    }
-    return false;
-  }
-
-  private boolean jj_3R_203() {
-    if (jj_3R_251()) return true;
-    if (jj_scan_token(COLON)) return true;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
-    }
-    if (jj_3R_252()) return true;
-    xsp = jj_scanpos;
-    if (jj_3R_253()) jj_scanpos = xsp;
-    if (jj_3R_254()) return true;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_3R_254()) { jj_scanpos = xsp; break; }
-    }
-    return false;
-  }
-
-  private boolean jj_3R_198() {
-    if (jj_3R_171()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_176() {
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_198()) {
-    jj_scanpos = xsp;
-    if (jj_3R_199()) return true;
-    }
-    return false;
-  }
-
-  private boolean jj_3R_269() {
-    if (jj_scan_token(URL)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_175() {
-    if (jj_3R_197()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_289() {
-    if (jj_scan_token(PLUS)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_265() {
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_288()) {
-    jj_scanpos = xsp;
-    if (jj_3R_289()) return true;
-    }
-    return false;
-  }
-
-  private boolean jj_3R_288() {
-    if (jj_scan_token(MINUS)) return true;
-    return false;
-  }
-
-  private boolean jj_3_13() {
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_175()) jj_scanpos = xsp;
-    if (jj_3R_176()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_252() {
-    if (jj_3R_176()) return true;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_3_13()) { jj_scanpos = xsp; break; }
-    }
-    return false;
-  }
-
-  private boolean jj_3R_208() {
-    if (jj_scan_token(HASH)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_270() {
-    if (jj_scan_token(UNICODERANGE)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_343() {
-    if (jj_scan_token(IDENT)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_344() {
-    if (jj_scan_token(FUNCTION)) return true;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
-    }
-    if (true) { jj_la = 0; jj_scanpos = jj_lastpos; return false;}
-    return false;
-  }
-
-  private boolean jj_3R_242() {
-    if (jj_scan_token(COMMA)) return true;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
-    }
-    return false;
-  }
-
-  private boolean jj_3R_297() {
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_scan_token(101)) {
-    jj_scanpos = xsp;
-    if (jj_scan_token(10)) {
-    jj_scanpos = xsp;
-    if (jj_scan_token(97)) {
-    jj_scanpos = xsp;
-    if (jj_scan_token(22)) {
-    jj_scanpos = xsp;
-    if (jj_scan_token(14)) {
-    jj_scanpos = xsp;
-    if (jj_scan_token(99)) {
-    jj_scanpos = xsp;
-    if (jj_scan_token(116)) {
-    jj_scanpos = xsp;
-    if (jj_scan_token(102)) {
-    jj_scanpos = xsp;
-    if (jj_scan_token(95)) {
-    jj_scanpos = xsp;
-    if (jj_scan_token(18)) {
-    jj_scanpos = xsp;
-    if (jj_scan_token(12)) {
-    jj_scanpos = xsp;
-    if (jj_scan_token(96)) {
-    jj_scanpos = xsp;
-    if (jj_scan_token(41)) {
-    jj_scanpos = xsp;
-    if (jj_scan_token(73)) {
-    jj_scanpos = xsp;
-    if (jj_scan_token(98)) {
-    jj_scanpos = xsp;
-    if (jj_scan_token(77)) {
-    jj_scanpos = xsp;
-    if (jj_scan_token(71)) {
-    jj_scanpos = xsp;
-    if (jj_scan_token(112)) {
-    jj_scanpos = xsp;
-    if (jj_scan_token(75)) {
-    jj_scanpos = xsp;
-    if (jj_scan_token(23)) {
-    jj_scanpos = xsp;
-    if (jj_scan_token(20)) {
-    jj_scanpos = xsp;
-    if (jj_scan_token(24)) {
-    jj_scanpos = xsp;
-    if (jj_scan_token(25)) {
-    jj_scanpos = xsp;
-    if (jj_scan_token(21)) {
-    jj_scanpos = xsp;
-    if (jj_scan_token(117)) return true;
-    }
-    }
-    }
-    }
-    }
-    }
-    }
-    }
-    }
-    }
-    }
-    }
-    }
-    }
-    }
-    }
-    }
-    }
-    }
-    }
-    }
-    }
-    }
-    }
-    return false;
-  }
-
-  private boolean jj_3R_197() {
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_241()) {
-    jj_scanpos = xsp;
-    if (jj_3R_242()) return true;
-    }
-    return false;
-  }
-
-  private boolean jj_3R_241() {
-    if (jj_scan_token(DIV)) return true;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
-    }
-    return false;
-  }
-
-  private boolean jj_3R_281() {
-    if (jj_scan_token(GUARDED_SYM)) return true;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
-    }
-    return false;
-  }
-
-  private boolean jj_3R_192() {
-    if (jj_scan_token(VARIABLE)) return true;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
-    }
-    if (jj_scan_token(COLON)) return true;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
+    /** Generate ParseException. */
+    public ParseException generateParseException() {
+        jj_expentries.clear();
+        boolean[] la1tokens = new boolean[118];
+        if (jj_kind >= 0) {
+            la1tokens[jj_kind] = true;
+            jj_kind = -1;
+        }
+        for (int i = 0; i < 241; 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;
+                    }
+                    if ((jj_la1_2[i] & (1 << j)) != 0) {
+                        la1tokens[64 + j] = true;
+                    }
+                    if ((jj_la1_3[i] & (1 << j)) != 0) {
+                        la1tokens[96 + j] = true;
+                    }
+                }
+            }
+        }
+        for (int i = 0; i < 118; i++) {
+            if (la1tokens[i]) {
+                jj_expentry = new int[1];
+                jj_expentry[0] = i;
+                jj_expentries.add(jj_expentry);
+            }
+        }
+        jj_endpos = 0;
+        jj_rescan_token();
+        jj_add_error_token(0, 0);
+        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);
     }
-    return false;
-  }
 
-  private boolean jj_3R_169() {
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_192()) jj_scanpos = xsp;
-    if (jj_scan_token(CONTAINS)) return true;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
+    /** Enable tracing. */
+    final public void enable_tracing() {
     }
-    if (true) { jj_la = 0; jj_scanpos = jj_lastpos; return false;}
-    return false;
-  }
 
-  private boolean jj_3R_355() {
-    if (jj_scan_token(IMPORTANT_SYM)) return true;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
+    /** Disable tracing. */
+    final public void disable_tracing() {
     }
-    return false;
-  }
 
-  private boolean jj_3_11() {
-    if (jj_3R_169()) return true;
-    return false;
-  }
+    private void jj_rescan_token() {
+        jj_rescan = true;
+        for (int i = 0; i < 13; i++) {
+            try {
+                JJCalls p = jj_2_rtns[i];
+                do {
+                    if (p.gen > jj_gen) {
+                        jj_la = p.arg;
+                        jj_lastpos = jj_scanpos = p.first;
+                        switch (i) {
+                        case 0:
+                            jj_3_1();
+                            break;
+                        case 1:
+                            jj_3_2();
+                            break;
+                        case 2:
+                            jj_3_3();
+                            break;
+                        case 3:
+                            jj_3_4();
+                            break;
+                        case 4:
+                            jj_3_5();
+                            break;
+                        case 5:
+                            jj_3_6();
+                            break;
+                        case 6:
+                            jj_3_7();
+                            break;
+                        case 7:
+                            jj_3_8();
+                            break;
+                        case 8:
+                            jj_3_9();
+                            break;
+                        case 9:
+                            jj_3_10();
+                            break;
+                        case 10:
+                            jj_3_11();
+                            break;
+                        case 11:
+                            jj_3_12();
+                            break;
+                        case 12:
+                            jj_3_13();
+                            break;
+                        }
+                    }
+                    p = p.next;
+                } while (p != null);
+            } catch (LookaheadSuccess ls) {
+            }
+        }
+        jj_rescan = false;
+    }
 
-  private boolean jj_3R_342() {
-    if (jj_scan_token(COLON)) return true;
-    return false;
-  }
+    private void jj_save(int index, int xla) {
+        JJCalls p = jj_2_rtns[index];
+        while (p.gen > jj_gen) {
+            if (p.next == null) {
+                p = p.next = new JJCalls();
+                break;
+            }
+            p = p.next;
+        }
+        p.gen = jj_gen + xla - jj_la;
+        p.first = token;
+        p.arg = xla;
+    }
 
-  private boolean jj_3R_210() {
-    if (jj_scan_token(COLON)) return true;
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_342()) jj_scanpos = xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_343()) {
-    jj_scanpos = xsp;
-    if (jj_3R_344()) return true;
-    }
-    return false;
-  }
-
-  private boolean jj_3R_172() {
-    if (jj_scan_token(VARIABLE)) return true;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
-    }
-    if (jj_scan_token(COLON)) return true;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
-    }
-    if (jj_scan_token(REMOVE)) return true;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
-    }
-    if (true) { jj_la = 0; jj_scanpos = jj_lastpos; return false;}
-    return false;
-  }
-
-  private boolean jj_3_10() {
-    if (jj_3R_173()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_247() {
-    if (jj_scan_token(SEMICOLON)) return true;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
-    }
-    return false;
-  }
-
-  private boolean jj_3R_324() {
-    if (jj_scan_token(COLON)) return true;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
-    }
-    return false;
-  }
-
-  private boolean jj_3R_295() {
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_324()) jj_scanpos = xsp;
-    if (jj_3R_176()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_173() {
-    if (jj_scan_token(VARIABLE)) return true;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
-    }
-    if (jj_scan_token(COLON)) return true;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
-    }
-    if (jj_scan_token(APPEND)) return true;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
-    }
-    if (true) { jj_la = 0; jj_scanpos = jj_lastpos; return false;}
-    return false;
-  }
-
-  private boolean jj_3R_356() {
-    if (jj_3R_273()) return true;
-    if (jj_scan_token(COLON)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_280() {
-    if (jj_3R_297()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_367() {
-    if (jj_scan_token(STRING)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_365() {
-    if (jj_scan_token(STARMATCH)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_366() {
-    if (jj_scan_token(IDENT)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_364() {
-    if (jj_scan_token(DOLLARMATCH)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_363() {
-    if (jj_scan_token(CARETMATCH)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_362() {
-    if (jj_scan_token(DASHMATCH)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_361() {
-    if (jj_scan_token(INCLUDES)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_357() {
-    if (jj_3R_356()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_303() {
-    if (jj_scan_token(INTERPOLATION)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_245() {
-    if (jj_3R_251()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_360() {
-    if (jj_scan_token(EQ)) return true;
-    return false;
-  }
-
-  private boolean jj_3_9() {
-    if (jj_3R_172()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_165() {
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3_9()) {
-    jj_scanpos = xsp;
-    if (jj_3_10()) {
-    jj_scanpos = xsp;
-    if (jj_3_11()) return true;
-    }
-    }
-    return false;
-  }
-
-  private boolean jj_3R_349() {
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_360()) {
-    jj_scanpos = xsp;
-    if (jj_3R_361()) {
-    jj_scanpos = xsp;
-    if (jj_3R_362()) {
-    jj_scanpos = xsp;
-    if (jj_3R_363()) {
-    jj_scanpos = xsp;
-    if (jj_3R_364()) {
-    jj_scanpos = xsp;
-    if (jj_3R_365()) return true;
-    }
-    }
-    }
-    }
-    }
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
-    }
-    xsp = jj_scanpos;
-    if (jj_3R_366()) {
-    jj_scanpos = xsp;
-    if (jj_3R_367()) return true;
-    }
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
-    }
-    return false;
-  }
-
-  private boolean jj_3R_279() {
-    if (jj_3R_174()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_211() {
-    if (jj_scan_token(LBRACKET)) return true;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
-    }
-    if (jj_scan_token(IDENT)) return true;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
-    }
-    xsp = jj_scanpos;
-    if (jj_3R_349()) jj_scanpos = xsp;
-    if (jj_scan_token(RBRACKET)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_246() {
-    if (jj_3R_274()) return true;
-    if (jj_3R_275()) return true;
-    if (jj_scan_token(RPARAN)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_329() {
-    if (jj_scan_token(SEMICOLON)) return true;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
-    }
-    xsp = jj_scanpos;
-    if (jj_3R_357()) jj_scanpos = xsp;
-    return false;
-  }
-
-  private boolean jj_3R_359() {
-    if (jj_scan_token(INTERPOLATION)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_277() {
-    if (jj_scan_token(COMMA)) return true;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
-    }
-    if (jj_3R_276()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_244() {
-    if (jj_3R_273()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_264() {
-    if (jj_scan_token(PARENT)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_276() {
-    if (jj_scan_token(IDENT)) return true;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
-    }
-    return false;
-  }
-
-  private boolean jj_3R_263() {
-    if (jj_scan_token(ANY)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_200() {
-    if (jj_scan_token(INCLUDE_SYM)) return true;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
-    }
-    xsp = jj_scanpos;
-    if (jj_3R_244()) {
-    jj_scanpos = xsp;
-    if (jj_3R_245()) {
-    jj_scanpos = xsp;
-    if (jj_3R_246()) return true;
-    }
-    }
-    if (jj_3R_247()) return true;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_3R_247()) { jj_scanpos = xsp; break; }
-    }
-    return false;
-  }
-
-  private boolean jj_3R_302() {
-    if (jj_scan_token(IDENT)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_249() {
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_278()) {
-    jj_scanpos = xsp;
-    if (jj_3R_279()) {
-    jj_scanpos = xsp;
-    if (jj_3R_280()) return true;
-    }
-    }
-    return false;
-  }
-
-  private boolean jj_3R_278() {
-    if (jj_3R_282()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_287() {
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_302()) {
-    jj_scanpos = xsp;
-    if (jj_3R_303()) return true;
-    }
-    return false;
-  }
-
-  private boolean jj_3R_207() {
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_262()) {
-    jj_scanpos = xsp;
-    if (jj_3R_263()) {
-    jj_scanpos = xsp;
-    if (jj_3R_264()) return true;
-    }
-    }
-    return false;
-  }
-
-  private boolean jj_3R_262() {
-    Token xsp;
-    if (jj_3R_287()) return true;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_3R_287()) { jj_scanpos = xsp; break; }
-    }
-    return false;
-  }
-
-  private boolean jj_3R_296() {
-    if (jj_scan_token(COMMA)) return true;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
-    }
-    if (jj_3R_176()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_248() {
-    if (jj_3R_276()) return true;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_3R_277()) { jj_scanpos = xsp; break; }
-    }
-    return false;
-  }
-
-  private boolean jj_3R_328() {
-    if (jj_3R_356()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_275() {
-    if (jj_3R_176()) return true;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_3R_295()) { jj_scanpos = xsp; break; }
-    }
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_3R_296()) { jj_scanpos = xsp; break; }
-    }
-    return false;
-  }
-
-  private boolean jj_3R_170() {
-    if (jj_scan_token(COMMA)) return true;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
-    }
-    return false;
-  }
-
-  private boolean jj_3R_301() {
-    if (jj_scan_token(LBRACE)) return true;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
-    }
-    xsp = jj_scanpos;
-    if (jj_3R_328()) jj_scanpos = xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_3R_329()) { jj_scanpos = xsp; break; }
-    }
-    if (jj_scan_token(RBRACE)) return true;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
-    }
-    return false;
-  }
-
-  private boolean jj_3R_327() {
-    if (jj_3R_355()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_353() {
-    if (jj_3R_210()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_358() {
-    if (jj_scan_token(IDENT)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_337() {
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_358()) {
-    jj_scanpos = xsp;
-    if (jj_3R_359()) return true;
-    }
-    return false;
-  }
-
-  private boolean jj_3R_256() {
-    if (jj_3R_283()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_351() {
-    if (jj_3R_209()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_348() {
-    if (jj_3R_210()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_346() {
-    if (jj_3R_209()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_336() {
-    if (jj_3R_210()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_209() {
-    if (jj_scan_token(DOT)) return true;
-    Token xsp;
-    if (jj_3R_337()) return true;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_3R_337()) { jj_scanpos = xsp; break; }
-    }
-    return false;
-  }
-
-  private boolean jj_3_8() {
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_170()) jj_scanpos = xsp;
-    if (jj_3R_171()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_341() {
-    if (jj_3R_210()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_339() {
-    if (jj_3R_209()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_300() {
-    if (jj_3R_252()) return true;
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_327()) jj_scanpos = xsp;
-    return false;
-  }
-
-  private boolean jj_3R_201() {
-    if (jj_scan_token(MEDIA_SYM)) return true;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
-    }
-    if (jj_3R_248()) return true;
-    if (jj_scan_token(LBRACE)) return true;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
-    }
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_3R_249()) { jj_scanpos = xsp; break; }
-    }
-    if (jj_scan_token(RBRACE)) return true;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
-    }
-    return false;
-  }
-
-  private boolean jj_3R_352() {
-    if (jj_3R_211()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_283() {
-    if (jj_3R_273()) return true;
-    if (jj_scan_token(COLON)) return true;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
-    }
-    xsp = jj_scanpos;
-    if (jj_3R_300()) {
-    jj_scanpos = xsp;
-    if (jj_3R_301()) return true;
-    }
-    return false;
-  }
-
-  private boolean jj_3R_350() {
-    if (jj_3R_208()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_308() {
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_350()) {
-    jj_scanpos = xsp;
-    if (jj_3R_351()) {
-    jj_scanpos = xsp;
-    if (jj_3R_352()) {
-    jj_scanpos = xsp;
-    if (jj_3R_353()) return true;
-    }
-    }
-    }
-    return false;
-  }
-
-  private boolean jj_3R_345() {
-    if (jj_3R_208()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_307() {
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_345()) {
-    jj_scanpos = xsp;
-    if (jj_3R_346()) {
-    jj_scanpos = xsp;
-    if (jj_3R_347()) {
-    jj_scanpos = xsp;
-    if (jj_3R_348()) return true;
-    }
-    }
-    }
-    return false;
-  }
-
-  private boolean jj_3R_333() {
-    if (jj_3R_210()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_255() {
-    if (jj_3R_282()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_347() {
-    if (jj_3R_211()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_338() {
-    if (jj_3R_208()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_306() {
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_338()) {
-    jj_scanpos = xsp;
-    if (jj_3R_339()) {
-    jj_scanpos = xsp;
-    if (jj_3R_340()) {
-    jj_scanpos = xsp;
-    if (jj_3R_341()) return true;
-    }
-    }
-    }
-    return false;
-  }
-
-  private boolean jj_3R_335() {
-    if (jj_3R_211()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_340() {
-    if (jj_3R_211()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_285() {
-    if (jj_scan_token(INTERPOLATION)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_334() {
-    if (jj_3R_209()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_331() {
-    if (jj_3R_209()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_305() {
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_334()) {
-    jj_scanpos = xsp;
-    if (jj_3R_335()) {
-    jj_scanpos = xsp;
-    if (jj_3R_336()) return true;
-    }
-    }
-    return false;
-  }
-
-  private boolean jj_3_2() {
-    if (jj_3R_166()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_191() {
-    if (jj_3R_211()) return true;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_3R_308()) { jj_scanpos = xsp; break; }
-    }
-    return false;
-  }
-
-  private boolean jj_3R_182() {
-    if (jj_3R_205()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_190() {
-    if (jj_3R_210()) return true;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_3R_307()) { jj_scanpos = xsp; break; }
-    }
-    return false;
-  }
-
-  private boolean jj_3R_332() {
-    if (jj_3R_211()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_189() {
-    if (jj_3R_209()) return true;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_3R_306()) { jj_scanpos = xsp; break; }
-    }
-    return false;
-  }
-
-  private boolean jj_3R_258() {
-    if (jj_3R_286()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_330() {
-    if (jj_3R_208()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_304() {
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_330()) {
-    jj_scanpos = xsp;
-    if (jj_3R_331()) {
-    jj_scanpos = xsp;
-    if (jj_3R_332()) {
-    jj_scanpos = xsp;
-    if (jj_3R_333()) return true;
-    }
-    }
-    }
-    return false;
-  }
-
-  private boolean jj_3R_188() {
-    if (jj_3R_208()) return true;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_3R_305()) { jj_scanpos = xsp; break; }
-    }
-    return false;
-  }
-
-  private boolean jj_3R_286() {
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_scan_token(53)) {
-    jj_scanpos = xsp;
-    if (jj_scan_token(50)) {
-    jj_scanpos = xsp;
-    if (jj_scan_token(77)) return true;
-    }
-    }
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
-    }
-    if (jj_scan_token(LBRACE)) return true;
-    return false;
-  }
-
-  private boolean jj_3_12() {
-    if (jj_3R_174()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_187() {
-    if (jj_3R_207()) return true;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_3R_304()) { jj_scanpos = xsp; break; }
-    }
-    return false;
-  }
-
-  private boolean jj_3R_168() {
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_187()) {
-    jj_scanpos = xsp;
-    if (jj_3R_188()) {
-    jj_scanpos = xsp;
-    if (jj_3R_189()) {
-    jj_scanpos = xsp;
-    if (jj_3R_190()) {
-    jj_scanpos = xsp;
-    if (jj_3R_191()) return true;
-    }
-    }
-    }
-    }
-    return false;
-  }
-
-  private boolean jj_3R_204() {
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3_12()) {
-    jj_scanpos = xsp;
-    if (jj_3R_255()) {
-    jj_scanpos = xsp;
-    if (jj_3R_256()) return true;
-    }
-    }
-    return false;
-  }
-
-  private boolean jj_3_7() {
-    if (jj_3R_166()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_290() {
-    if (jj_3R_252()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_257() {
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_284()) {
-    jj_scanpos = xsp;
-    if (jj_3R_285()) return true;
-    }
-    return false;
-  }
-
-  private boolean jj_3R_284() {
-    if (jj_scan_token(IDENT)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_205() {
-    if (jj_scan_token(KEY_FRAME_SYM)) return true;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
-    }
-    if (jj_3R_257()) return true;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_3R_257()) { jj_scanpos = xsp; break; }
-    }
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
-    }
-    if (jj_scan_token(LBRACE)) return true;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
-    }
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_3R_258()) { jj_scanpos = xsp; break; }
-    }
-    if (jj_scan_token(RBRACE)) return true;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
-    }
-    return false;
-  }
-
-  private boolean jj_3R_266() {
-    if (jj_scan_token(FUNCTION)) return true;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
-    }
-    xsp = jj_scanpos;
-    if (jj_3R_290()) jj_scanpos = xsp;
-    if (jj_scan_token(RPARAN)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_240() {
-    if (jj_3R_272()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_236() {
-    if (jj_3R_270()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_181() {
-    if (jj_3R_204()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_235() {
-    if (jj_3R_269()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_234() {
-    if (jj_3R_268()) return true;
-    return false;
-  }
-
-  private boolean jj_3_4() {
-    if (jj_3R_167()) return true;
-    if (jj_3R_168()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_238() {
-    if (jj_scan_token(COMMA)) return true;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
-    }
-    if (jj_3R_237()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_237() {
-    if (jj_3R_168()) return true;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_3_4()) { jj_scanpos = xsp; break; }
-    }
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
-    }
-    return false;
-  }
-
-  private boolean jj_3R_180() {
-    if (jj_3R_203()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_239() {
-    if (jj_3R_271()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_250() {
-    if (jj_scan_token(SEMICOLON)) return true;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
-    }
-    return false;
-  }
-
-  private boolean jj_3R_202() {
-    if (jj_scan_token(EXTEND_SYM)) return true;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
-    }
-    if (jj_3R_195()) return true;
-    if (jj_3R_250()) return true;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_3R_250()) { jj_scanpos = xsp; break; }
-    }
-    return false;
-  }
-
-  private boolean jj_3R_310() {
-    if (jj_scan_token(EACH_SYM)) return true;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
-    }
-    if (jj_scan_token(VARIABLE)) return true;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_scan_token(1)) { jj_scanpos = xsp; break; }
-    }
-    if (jj_scan_token(EACH_IN)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_195() {
-    if (jj_3R_237()) return true;
-    Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_3R_238()) { jj_scanpos = xsp; break; }
-    }
-    return false;
-  }
-
-  private boolean jj_3R_179() {
-    if (jj_3R_202()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_267() {
-    if (jj_scan_token(DOT)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_233() {
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_267()) jj_scanpos = xsp;
-    if (jj_scan_token(IDENT)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_178() {
-    if (jj_3R_201()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_232() {
-    if (jj_scan_token(STRING)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_231() {
-    if (jj_3R_266()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_194() {
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_232()) {
-    jj_scanpos = xsp;
-    if (jj_3R_233()) {
-    jj_scanpos = xsp;
-    if (jj_3R_234()) {
-    jj_scanpos = xsp;
-    if (jj_3R_235()) {
-    jj_scanpos = xsp;
-    if (jj_3R_236()) return true;
-    }
-    }
-    }
-    }
-    return false;
-  }
-
-  private boolean jj_3R_196() {
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3_3()) {
-    jj_scanpos = xsp;
-    if (jj_3R_239()) {
-    jj_scanpos = xsp;
-    if (jj_3R_240()) return true;
-    }
-    }
-    return false;
-  }
-
-  private boolean jj_3_3() {
-    if (jj_3R_166()) return true;
-    return false;
-  }
-
-  private boolean jj_3_6() {
-    if (jj_3R_169()) return true;
-    return false;
-  }
-
-  private boolean jj_3_1() {
-    if (jj_3R_165()) return true;
-    return false;
-  }
-
-  /** Generated Token Manager. */
-  public ParserTokenManager token_source;
-  /** Current token. */
-  public Token token;
-  /** Next token. */
-  public Token jj_nt;
-  private int jj_ntk;
-  private Token jj_scanpos, jj_lastpos;
-  private int jj_la;
-  private int jj_gen;
-  final private int[] jj_la1 = new int[241];
-  static private int[] jj_la1_0;
-  static private int[] jj_la1_1;
-  static private int[] jj_la1_2;
-  static private int[] jj_la1_3;
-  static {
-      jj_la1_init_0();
-      jj_la1_init_1();
-      jj_la1_init_2();
-      jj_la1_init_3();
-   }
-   private static void jj_la1_init_0() {
-      jj_la1_0 = new int[] {0x0,0xc02,0xc02,0x0,0xc00,0x2,0x2,0x2,0xd0000000,0xc00,0x2,0xc00,0x2,0x0,0x2,0x0,0x2,0x2,0x0,0x0,0x2,0x2,0x0,0x2,0x0,0x2,0x2,0xd0000000,0x0,0x2,0x2,0x2,0xd3f45400,0xd3f45400,0x2,0x400000,0x2,0x2,0x2,0x2,0x0,0x0,0x2,0x0,0x800000,0x2,0x0,0x2,0x2,0x2,0x2,0x0,0x800000,0x2,0x0,0x2,0x3f45400,0x2,0x2,0x2,0x3100000,0x2,0x3100000,0x3100002,0x2,0x480002,0x480002,0x2,0x0,0x0,0x2,0x2,0x2,0x2,0xd0000000,0x0,0x2,0x400000,0x2,0x2,0x10000000,0x10000000,0x10000000,0x10000000,0x10000000,0x10000000,0x10000000,0x10000000,0x10000000,0x10000000,0xd0000000,0x0,0x0,0x0,0x0,0xc0000000,0x2,0x2,0xfc000,0x2,0x0,0x2,0xfc000,0x0,0x2,0x0,0x2,0x0,0x2,0x800000,0x0,0xd0000000,0x4d380002,0x2,0xd0000000,0x2,0x0,0x2,0x4d380002,0x0,0x2,0xd0000000,0x2,0x4d380002,0x2,0x2,0x2,0x0,0x2,0xd0000000,0x2,0x2,0x400000,0x2,0x2,0x2,0x2,0x0,0x2,0xd0000000,0x0,0x2,0x400000,0x2,0x2,0x2,0x400000,0x0,0x0,0x300000,0x2,0x0,0x400000,0x2,0x300000,0x2,0x0,0x2,0x0,0x2,0x800000,0x2,0x2,0x2,0x2,0x2,0x0,0x2,0x2,0x2,0x400000,0x2,0x2,0x2,0x0,0x2,0x2,0x2,0x400000,0x2,0x2,0x0,0x2,0x0,0x2,0x2,0x2,0x400000,0x0,0x2,0x2,0x0,0x2,0x2,0x2,0x800000,0x2,0x2,0x0,0x800000,0x2,0x0,0x2,0x0,0x2,0x0,0x2,0x0,0x800000,0x2,0x0,0x2,0x301000,0x2,0x0,0x2,0x2,0x2,0x2,0x8400000,0x8400000,0x300000,0x300000,0x300000,0x0,0x0,0x0,0x300000,0x2,0x2,0x300000,0x2,0xd0000000,0x2,0x2,0x2,0x0,0x800000,0x2,0x0,0x2,};
-   }
-   private static void jj_la1_init_1() {
-      jj_la1_1 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xacc00181,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x100,0x100,0x0,0x0,0x240000,0x0,0x240000,0x0,0x0,0xac800181,0xa0000000,0x0,0x0,0x0,0xc000381,0xc000381,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80,0x0,0x100,0x0,0x0,0x100,0x0,0x0,0x0,0x0,0x100,0x0,0x0,0x100,0x0,0x200,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x185,0x185,0x0,0x100,0x100,0x0,0x0,0x0,0x0,0xac800181,0xa0000000,0x0,0x0,0x0,0x0,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x181,0x100,0x100,0x100,0x100,0x100,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0xa0000000,0xc800181,0x7e,0x0,0xc800181,0x0,0x0,0x0,0x7e,0x0,0x0,0xc800181,0x0,0x7e,0x0,0x0,0x0,0x0,0x0,0xc800181,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x100,0x0,0xac800181,0xa0000000,0x0,0x0,0x0,0x0,0x0,0x0,0x80,0x80,0x81,0x0,0x80,0x0,0x0,0x81,0x0,0x80,0x0,0x100,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x0,0xc000000,0x0,0x0,0xc0000,0x0,0x0,0x0,0x0,0x0,0x0,0x100,0x0,0x0,0x100,0x0,0xc000100,0x0,0x0,0x0,0x100,0x0,0x0,0x100,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x1,0x1,0x1,0x0,0x0,0x1,0x0,0xc000181,0x0,0x0,0x0,0x100,0x0,0x0,0x100,0x0,};
-   }
-   private static void jj_la1_init_2() {
-      jj_la1_2 = new int[] {0x0,0x0,0x0,0x80000000,0x0,0x0,0x0,0x0,0x40001100,0x0,0x0,0x0,0x0,0x880,0x0,0x100,0x0,0x0,0x100,0x100,0x0,0x0,0x2000,0x0,0x2000,0x0,0x0,0x40001112,0x10,0x0,0x0,0x0,0xc0002b80,0xc0002b80,0x0,0x0,0x0,0x0,0x0,0x0,0x100,0x0,0x0,0x100,0x0,0x0,0x100,0x0,0x0,0x0,0x0,0x100,0x0,0x0,0x100,0x0,0x80002a80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x380,0x380,0x0,0x100,0x100,0x0,0x0,0x0,0x0,0x40001112,0x10,0x0,0x0,0x0,0x0,0x40000000,0x40000000,0x0,0x0,0x40000000,0x40000000,0x40000000,0x40000000,0x40000000,0x40000000,0x40000100,0x100,0x100,0x100,0x100,0x100,0x0,0x0,0x0,0x0,0x180,0x0,0x0,0x0,0x0,0x100,0x0,0x40,0x0,0x0,0x0,0x40001102,0x1300,0x0,0x40001102,0x0,0x1,0x0,0x1300,0x20,0x0,0x40001102,0x0,0x1300,0x0,0x0,0x0,0x1100,0x0,0x40001102,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x100,0x0,0x40001102,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1000,0x1000,0x7ffffb80,0x0,0x0,0x0,0x0,0x7ffffb80,0x0,0x0,0x0,0x1100,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x100,0x0,0x0,0x100,0x0,0x100,0x0,0x0,0x0,0x100,0x0,0x0,0x100,0x0,0x7ffffb80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7ffffb80,0x0,0x3fffe200,0x0,0x40000980,0x7fffeb80,0x0,0x0,0x7ffffb80,0x0,0xc0000100,0x0,0x0,0x0,0x100,0x0,0x0,0x100,0x0,};
-   }
-   private static void jj_la1_init_3() {
-      jj_la1_3 = new int[] {0x2,0x20,0x20,0x0,0x20,0x0,0x0,0x0,0x1d,0x20,0x0,0x20,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80011,0x0,0x0,0x0,0x0,0x31006f,0x31006f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x31006f,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x100000,0x100000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80011,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x100000,0x0,0x0,0x0,0x0,0x0,0x11,0x80000,0x0,0x80011,0x0,0x0,0x0,0x80000,0x0,0x0,0x80011,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80011,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x100000,0x0,0x8001d,0xc,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x110000,0x0,0x0,0x0,0x0,0x110000,0x0,0x0,0x0,0x100000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x110000,0x0,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x110000,0x0,0x100000,0x0,0x10000,0x110000,0x0,0x0,0x110000,0x0,0xd,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,};
-   }
-  final private JJCalls[] jj_2_rtns = new JJCalls[13];
-  private boolean jj_rescan = false;
-  private int jj_gc = 0;
-
-  /** Constructor with user supplied CharStream. */
-  public Parser(CharStream stream) {
-    token_source = new ParserTokenManager(stream);
-    token = new Token();
-    jj_ntk = -1;
-    jj_gen = 0;
-    for (int i = 0; i < 241; i++) jj_la1[i] = -1;
-    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
-  }
-
-  /** Reinitialise. */
-  public void ReInit(CharStream stream) {
-    token_source.ReInit(stream);
-    token = new Token();
-    jj_ntk = -1;
-    jj_gen = 0;
-    for (int i = 0; i < 241; i++) jj_la1[i] = -1;
-    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
-  }
-
-  /** Constructor with generated Token Manager. */
-  public Parser(ParserTokenManager tm) {
-    token_source = tm;
-    token = new Token();
-    jj_ntk = -1;
-    jj_gen = 0;
-    for (int i = 0; i < 241; i++) jj_la1[i] = -1;
-    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
-  }
-
-  /** Reinitialise. */
-  public void ReInit(ParserTokenManager tm) {
-    token_source = tm;
-    token = new Token();
-    jj_ntk = -1;
-    jj_gen = 0;
-    for (int i = 0; i < 241; i++) jj_la1[i] = -1;
-    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
-  }
-
-  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++;
-      if (++jj_gc > 100) {
-        jj_gc = 0;
-        for (int i = 0; i < jj_2_rtns.length; i++) {
-          JJCalls c = jj_2_rtns[i];
-          while (c != null) {
-            if (c.gen < jj_gen) c.first = null;
-            c = c.next;
-          }
-        }
-      }
-      return token;
-    }
-    token = oldToken;
-    jj_kind = kind;
-    throw generateParseException();
-  }
-
-  static private final class LookaheadSuccess extends java.lang.Error { }
-  final private LookaheadSuccess jj_ls = new LookaheadSuccess();
-  private boolean jj_scan_token(int kind) {
-    if (jj_scanpos == jj_lastpos) {
-      jj_la--;
-      if (jj_scanpos.next == null) {
-        jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken();
-      } else {
-        jj_lastpos = jj_scanpos = jj_scanpos.next;
-      }
-    } else {
-      jj_scanpos = jj_scanpos.next;
-    }
-    if (jj_rescan) {
-      int i = 0; Token tok = token;
-      while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; }
-      if (tok != null) jj_add_error_token(kind, i);
-    }
-    if (jj_scanpos.kind != kind) return true;
-    if (jj_la == 0 && jj_scanpos == jj_lastpos) throw jj_ls;
-    return false;
-  }
-
-
-/** 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;
-  private int[] jj_lasttokens = new int[100];
-  private int jj_endpos;
-
-  private void jj_add_error_token(int kind, int pos) {
-    if (pos >= 100) return;
-    if (pos == jj_endpos + 1) {
-      jj_lasttokens[jj_endpos++] = kind;
-    } else if (jj_endpos != 0) {
-      jj_expentry = new int[jj_endpos];
-      for (int i = 0; i < jj_endpos; i++) {
-        jj_expentry[i] = jj_lasttokens[i];
-      }
-      jj_entries_loop: for (java.util.Iterator<?> it = jj_expentries.iterator(); it.hasNext();) {
-        int[] oldentry = (int[])(it.next());
-        if (oldentry.length == jj_expentry.length) {
-          for (int i = 0; i < jj_expentry.length; i++) {
-            if (oldentry[i] != jj_expentry[i]) {
-              continue jj_entries_loop;
-            }
-          }
-          jj_expentries.add(jj_expentry);
-          break jj_entries_loop;
-        }
-      }
-      if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind;
-    }
-  }
-
-  /** Generate ParseException. */
-  public ParseException generateParseException() {
-    jj_expentries.clear();
-    boolean[] la1tokens = new boolean[118];
-    if (jj_kind >= 0) {
-      la1tokens[jj_kind] = true;
-      jj_kind = -1;
-    }
-    for (int i = 0; i < 241; 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;
-          }
-          if ((jj_la1_2[i] & (1<<j)) != 0) {
-            la1tokens[64+j] = true;
-          }
-          if ((jj_la1_3[i] & (1<<j)) != 0) {
-            la1tokens[96+j] = true;
-          }
-        }
-      }
-    }
-    for (int i = 0; i < 118; i++) {
-      if (la1tokens[i]) {
-        jj_expentry = new int[1];
-        jj_expentry[0] = i;
-        jj_expentries.add(jj_expentry);
-      }
-    }
-    jj_endpos = 0;
-    jj_rescan_token();
-    jj_add_error_token(0, 0);
-    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() {
-  }
-
-  private void jj_rescan_token() {
-    jj_rescan = true;
-    for (int i = 0; i < 13; i++) {
-    try {
-      JJCalls p = jj_2_rtns[i];
-      do {
-        if (p.gen > jj_gen) {
-          jj_la = p.arg; jj_lastpos = jj_scanpos = p.first;
-          switch (i) {
-            case 0: jj_3_1(); break;
-            case 1: jj_3_2(); break;
-            case 2: jj_3_3(); break;
-            case 3: jj_3_4(); break;
-            case 4: jj_3_5(); break;
-            case 5: jj_3_6(); break;
-            case 6: jj_3_7(); break;
-            case 7: jj_3_8(); break;
-            case 8: jj_3_9(); break;
-            case 9: jj_3_10(); break;
-            case 10: jj_3_11(); break;
-            case 11: jj_3_12(); break;
-            case 12: jj_3_13(); break;
-          }
-        }
-        p = p.next;
-      } while (p != null);
-      } catch(LookaheadSuccess ls) { }
-    }
-    jj_rescan = false;
-  }
-
-  private void jj_save(int index, int xla) {
-    JJCalls p = jj_2_rtns[index];
-    while (p.gen > jj_gen) {
-      if (p.next == null) { p = p.next = new JJCalls(); break; }
-      p = p.next;
-    }
-    p.gen = jj_gen + xla - jj_la; p.first = token; p.arg = xla;
-  }
-
-  static final class JJCalls {
-    int gen;
-    Token first;
-    int arg;
-    JJCalls next;
-  }
+    static final class JJCalls {
+        int gen;
+        Token first;
+        int arg;
+        JJCalls next;
+    }
 
 }
index 4e76022ae1a84d3049c3908c4d3b85318d9a853e..1d689dec2c2c7549cf16c5f8f0c58a0dc79259c7 100644 (file)
@@ -1,3 +1,18 @@
+/*
+ * Copyright 2000-2013 Vaadin Ltd.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
 /* -*-java-extended-*-
  * Copyright (c) 1999 World Wide Web Consortium
  * (Massachusetts Institute of Technology, Institut National de Recherche
index a764598cb61a5ef94b3725a4707409c210e59632..ebe1f10cd4b38581b750b1e616a5a086bb288a99 100644 (file)
+/*
+ * Copyright 2000-2013 Vaadin Ltd.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
 /* Generated By:JavaCC: Do not edit this line. ParserConstants.java */
 package com.vaadin.sass.internal.parser;
 
-
 /**
- * Token literal values and constants.
- * Generated by org.javacc.parser.OtherFilesGen#start()
+ * Token literal values and constants. Generated by
+ * org.javacc.parser.OtherFilesGen#start()
  */
 public interface ParserConstants {
 
-  /** End of File. */
-  int EOF = 0;
-  /** RegularExpression Id. */
-  int S = 1;
-  /** RegularExpression Id. */
-  int FORMAL_COMMENT = 7;
-  /** RegularExpression Id. */
-  int MULTI_LINE_COMMENT = 8;
-  /** RegularExpression Id. */
-  int CDO = 10;
-  /** RegularExpression Id. */
-  int CDC = 11;
-  /** RegularExpression Id. */
-  int LBRACE = 12;
-  /** RegularExpression Id. */
-  int RBRACE = 13;
-  /** RegularExpression Id. */
-  int DASHMATCH = 14;
-  /** RegularExpression Id. */
-  int CARETMATCH = 15;
-  /** RegularExpression Id. */
-  int DOLLARMATCH = 16;
-  /** RegularExpression Id. */
-  int STARMATCH = 17;
-  /** RegularExpression Id. */
-  int INCLUDES = 18;
-  /** RegularExpression Id. */
-  int EQ = 19;
-  /** RegularExpression Id. */
-  int PLUS = 20;
-  /** RegularExpression Id. */
-  int MINUS = 21;
-  /** RegularExpression Id. */
-  int COMMA = 22;
-  /** RegularExpression Id. */
-  int SEMICOLON = 23;
-  /** RegularExpression Id. */
-  int PRECEDES = 24;
-  /** RegularExpression Id. */
-  int SIBLING = 25;
-  /** RegularExpression Id. */
-  int SUCCEEDS = 26;
-  /** RegularExpression Id. */
-  int DIV = 27;
-  /** RegularExpression Id. */
-  int LBRACKET = 28;
-  /** RegularExpression Id. */
-  int RBRACKET = 29;
-  /** RegularExpression Id. */
-  int ANY = 30;
-  /** RegularExpression Id. */
-  int PARENT = 31;
-  /** RegularExpression Id. */
-  int DOT = 32;
-  /** RegularExpression Id. */
-  int LPARAN = 33;
-  /** RegularExpression Id. */
-  int RPARAN = 34;
-  /** RegularExpression Id. */
-  int COMPARE = 35;
-  /** RegularExpression Id. */
-  int OR = 36;
-  /** RegularExpression Id. */
-  int AND = 37;
-  /** RegularExpression Id. */
-  int NOT_EQ = 38;
-  /** RegularExpression Id. */
-  int COLON = 39;
-  /** RegularExpression Id. */
-  int INTERPOLATION = 40;
-  /** RegularExpression Id. */
-  int NONASCII = 41;
-  /** RegularExpression Id. */
-  int H = 42;
-  /** RegularExpression Id. */
-  int UNICODE = 43;
-  /** RegularExpression Id. */
-  int ESCAPE = 44;
-  /** RegularExpression Id. */
-  int NMSTART = 45;
-  /** RegularExpression Id. */
-  int NMCHAR = 46;
-  /** RegularExpression Id. */
-  int STRINGCHAR = 47;
-  /** RegularExpression Id. */
-  int D = 48;
-  /** RegularExpression Id. */
-  int NAME = 49;
-  /** RegularExpression Id. */
-  int TO = 50;
-  /** RegularExpression Id. */
-  int THROUGH = 51;
-  /** RegularExpression Id. */
-  int EACH_IN = 52;
-  /** RegularExpression Id. */
-  int FROM = 53;
-  /** RegularExpression Id. */
-  int MIXIN_SYM = 54;
-  /** RegularExpression Id. */
-  int INCLUDE_SYM = 55;
-  /** RegularExpression Id. */
-  int FUNCTION_SYM = 56;
-  /** RegularExpression Id. */
-  int RETURN_SYM = 57;
-  /** RegularExpression Id. */
-  int DEBUG_SYM = 58;
-  /** RegularExpression Id. */
-  int WARN_SYM = 59;
-  /** RegularExpression Id. */
-  int FOR_SYM = 60;
-  /** RegularExpression Id. */
-  int EACH_SYM = 61;
-  /** RegularExpression Id. */
-  int WHILE_SYM = 62;
-  /** RegularExpression Id. */
-  int IF_SYM = 63;
-  /** RegularExpression Id. */
-  int ELSE_SYM = 64;
-  /** RegularExpression Id. */
-  int EXTEND_SYM = 65;
-  /** RegularExpression Id. */
-  int MOZ_DOCUMENT_SYM = 66;
-  /** RegularExpression Id. */
-  int SUPPORTS_SYM = 67;
-  /** RegularExpression Id. */
-  int MICROSOFT_RULE = 68;
-  /** RegularExpression Id. */
-  int IF = 69;
-  /** RegularExpression Id. */
-  int GUARDED_SYM = 70;
-  /** RegularExpression Id. */
-  int STRING = 71;
-  /** RegularExpression Id. */
-  int IDENT = 72;
-  /** RegularExpression Id. */
-  int NUMBER = 73;
-  /** RegularExpression Id. */
-  int _URL = 74;
-  /** RegularExpression Id. */
-  int URL = 75;
-  /** RegularExpression Id. */
-  int VARIABLE = 76;
-  /** RegularExpression Id. */
-  int PERCENTAGE = 77;
-  /** RegularExpression Id. */
-  int PT = 78;
-  /** RegularExpression Id. */
-  int MM = 79;
-  /** RegularExpression Id. */
-  int CM = 80;
-  /** RegularExpression Id. */
-  int PC = 81;
-  /** RegularExpression Id. */
-  int IN = 82;
-  /** RegularExpression Id. */
-  int PX = 83;
-  /** RegularExpression Id. */
-  int EMS = 84;
-  /** RegularExpression Id. */
-  int EXS = 85;
-  /** RegularExpression Id. */
-  int DEG = 86;
-  /** RegularExpression Id. */
-  int RAD = 87;
-  /** RegularExpression Id. */
-  int GRAD = 88;
-  /** RegularExpression Id. */
-  int MS = 89;
-  /** RegularExpression Id. */
-  int SECOND = 90;
-  /** RegularExpression Id. */
-  int HZ = 91;
-  /** RegularExpression Id. */
-  int KHZ = 92;
-  /** RegularExpression Id. */
-  int DIMEN = 93;
-  /** RegularExpression Id. */
-  int HASH = 94;
-  /** RegularExpression Id. */
-  int IMPORT_SYM = 95;
-  /** RegularExpression Id. */
-  int MEDIA_SYM = 96;
-  /** RegularExpression Id. */
-  int CHARSET_SYM = 97;
-  /** RegularExpression Id. */
-  int PAGE_SYM = 98;
-  /** RegularExpression Id. */
-  int FONT_FACE_SYM = 99;
-  /** RegularExpression Id. */
-  int KEY_FRAME_SYM = 100;
-  /** RegularExpression Id. */
-  int ATKEYWORD = 101;
-  /** RegularExpression Id. */
-  int IMPORTANT_SYM = 102;
-  /** RegularExpression Id. */
-  int RANGE0 = 103;
-  /** RegularExpression Id. */
-  int RANGE1 = 104;
-  /** RegularExpression Id. */
-  int RANGE2 = 105;
-  /** RegularExpression Id. */
-  int RANGE3 = 106;
-  /** RegularExpression Id. */
-  int RANGE4 = 107;
-  /** RegularExpression Id. */
-  int RANGE5 = 108;
-  /** RegularExpression Id. */
-  int RANGE6 = 109;
-  /** RegularExpression Id. */
-  int RANGE = 110;
-  /** RegularExpression Id. */
-  int UNI = 111;
-  /** RegularExpression Id. */
-  int UNICODERANGE = 112;
-  /** RegularExpression Id. */
-  int REMOVE = 113;
-  /** RegularExpression Id. */
-  int APPEND = 114;
-  /** RegularExpression Id. */
-  int CONTAINS = 115;
-  /** RegularExpression Id. */
-  int FUNCTION = 116;
-  /** RegularExpression Id. */
-  int UNKNOWN = 117;
+    /** End of File. */
+    int EOF = 0;
+    /** RegularExpression Id. */
+    int S = 1;
+    /** RegularExpression Id. */
+    int FORMAL_COMMENT = 7;
+    /** RegularExpression Id. */
+    int MULTI_LINE_COMMENT = 8;
+    /** RegularExpression Id. */
+    int CDO = 10;
+    /** RegularExpression Id. */
+    int CDC = 11;
+    /** RegularExpression Id. */
+    int LBRACE = 12;
+    /** RegularExpression Id. */
+    int RBRACE = 13;
+    /** RegularExpression Id. */
+    int DASHMATCH = 14;
+    /** RegularExpression Id. */
+    int CARETMATCH = 15;
+    /** RegularExpression Id. */
+    int DOLLARMATCH = 16;
+    /** RegularExpression Id. */
+    int STARMATCH = 17;
+    /** RegularExpression Id. */
+    int INCLUDES = 18;
+    /** RegularExpression Id. */
+    int EQ = 19;
+    /** RegularExpression Id. */
+    int PLUS = 20;
+    /** RegularExpression Id. */
+    int MINUS = 21;
+    /** RegularExpression Id. */
+    int COMMA = 22;
+    /** RegularExpression Id. */
+    int SEMICOLON = 23;
+    /** RegularExpression Id. */
+    int PRECEDES = 24;
+    /** RegularExpression Id. */
+    int SIBLING = 25;
+    /** RegularExpression Id. */
+    int SUCCEEDS = 26;
+    /** RegularExpression Id. */
+    int DIV = 27;
+    /** RegularExpression Id. */
+    int LBRACKET = 28;
+    /** RegularExpression Id. */
+    int RBRACKET = 29;
+    /** RegularExpression Id. */
+    int ANY = 30;
+    /** RegularExpression Id. */
+    int PARENT = 31;
+    /** RegularExpression Id. */
+    int DOT = 32;
+    /** RegularExpression Id. */
+    int LPARAN = 33;
+    /** RegularExpression Id. */
+    int RPARAN = 34;
+    /** RegularExpression Id. */
+    int COMPARE = 35;
+    /** RegularExpression Id. */
+    int OR = 36;
+    /** RegularExpression Id. */
+    int AND = 37;
+    /** RegularExpression Id. */
+    int NOT_EQ = 38;
+    /** RegularExpression Id. */
+    int COLON = 39;
+    /** RegularExpression Id. */
+    int INTERPOLATION = 40;
+    /** RegularExpression Id. */
+    int NONASCII = 41;
+    /** RegularExpression Id. */
+    int H = 42;
+    /** RegularExpression Id. */
+    int UNICODE = 43;
+    /** RegularExpression Id. */
+    int ESCAPE = 44;
+    /** RegularExpression Id. */
+    int NMSTART = 45;
+    /** RegularExpression Id. */
+    int NMCHAR = 46;
+    /** RegularExpression Id. */
+    int STRINGCHAR = 47;
+    /** RegularExpression Id. */
+    int D = 48;
+    /** RegularExpression Id. */
+    int NAME = 49;
+    /** RegularExpression Id. */
+    int TO = 50;
+    /** RegularExpression Id. */
+    int THROUGH = 51;
+    /** RegularExpression Id. */
+    int EACH_IN = 52;
+    /** RegularExpression Id. */
+    int FROM = 53;
+    /** RegularExpression Id. */
+    int MIXIN_SYM = 54;
+    /** RegularExpression Id. */
+    int INCLUDE_SYM = 55;
+    /** RegularExpression Id. */
+    int FUNCTION_SYM = 56;
+    /** RegularExpression Id. */
+    int RETURN_SYM = 57;
+    /** RegularExpression Id. */
+    int DEBUG_SYM = 58;
+    /** RegularExpression Id. */
+    int WARN_SYM = 59;
+    /** RegularExpression Id. */
+    int FOR_SYM = 60;
+    /** RegularExpression Id. */
+    int EACH_SYM = 61;
+    /** RegularExpression Id. */
+    int WHILE_SYM = 62;
+    /** RegularExpression Id. */
+    int IF_SYM = 63;
+    /** RegularExpression Id. */
+    int ELSE_SYM = 64;
+    /** RegularExpression Id. */
+    int EXTEND_SYM = 65;
+    /** RegularExpression Id. */
+    int MOZ_DOCUMENT_SYM = 66;
+    /** RegularExpression Id. */
+    int SUPPORTS_SYM = 67;
+    /** RegularExpression Id. */
+    int MICROSOFT_RULE = 68;
+    /** RegularExpression Id. */
+    int IF = 69;
+    /** RegularExpression Id. */
+    int GUARDED_SYM = 70;
+    /** RegularExpression Id. */
+    int STRING = 71;
+    /** RegularExpression Id. */
+    int IDENT = 72;
+    /** RegularExpression Id. */
+    int NUMBER = 73;
+    /** RegularExpression Id. */
+    int _URL = 74;
+    /** RegularExpression Id. */
+    int URL = 75;
+    /** RegularExpression Id. */
+    int VARIABLE = 76;
+    /** RegularExpression Id. */
+    int PERCENTAGE = 77;
+    /** RegularExpression Id. */
+    int PT = 78;
+    /** RegularExpression Id. */
+    int MM = 79;
+    /** RegularExpression Id. */
+    int CM = 80;
+    /** RegularExpression Id. */
+    int PC = 81;
+    /** RegularExpression Id. */
+    int IN = 82;
+    /** RegularExpression Id. */
+    int PX = 83;
+    /** RegularExpression Id. */
+    int EMS = 84;
+    /** RegularExpression Id. */
+    int EXS = 85;
+    /** RegularExpression Id. */
+    int DEG = 86;
+    /** RegularExpression Id. */
+    int RAD = 87;
+    /** RegularExpression Id. */
+    int GRAD = 88;
+    /** RegularExpression Id. */
+    int MS = 89;
+    /** RegularExpression Id. */
+    int SECOND = 90;
+    /** RegularExpression Id. */
+    int HZ = 91;
+    /** RegularExpression Id. */
+    int KHZ = 92;
+    /** RegularExpression Id. */
+    int DIMEN = 93;
+    /** RegularExpression Id. */
+    int HASH = 94;
+    /** RegularExpression Id. */
+    int IMPORT_SYM = 95;
+    /** RegularExpression Id. */
+    int MEDIA_SYM = 96;
+    /** RegularExpression Id. */
+    int CHARSET_SYM = 97;
+    /** RegularExpression Id. */
+    int PAGE_SYM = 98;
+    /** RegularExpression Id. */
+    int FONT_FACE_SYM = 99;
+    /** RegularExpression Id. */
+    int KEY_FRAME_SYM = 100;
+    /** RegularExpression Id. */
+    int ATKEYWORD = 101;
+    /** RegularExpression Id. */
+    int IMPORTANT_SYM = 102;
+    /** RegularExpression Id. */
+    int RANGE0 = 103;
+    /** RegularExpression Id. */
+    int RANGE1 = 104;
+    /** RegularExpression Id. */
+    int RANGE2 = 105;
+    /** RegularExpression Id. */
+    int RANGE3 = 106;
+    /** RegularExpression Id. */
+    int RANGE4 = 107;
+    /** RegularExpression Id. */
+    int RANGE5 = 108;
+    /** RegularExpression Id. */
+    int RANGE6 = 109;
+    /** RegularExpression Id. */
+    int RANGE = 110;
+    /** RegularExpression Id. */
+    int UNI = 111;
+    /** RegularExpression Id. */
+    int UNICODERANGE = 112;
+    /** RegularExpression Id. */
+    int REMOVE = 113;
+    /** RegularExpression Id. */
+    int APPEND = 114;
+    /** RegularExpression Id. */
+    int CONTAINS = 115;
+    /** RegularExpression Id. */
+    int FUNCTION = 116;
+    /** RegularExpression Id. */
+    int UNKNOWN = 117;
 
-  /** Lexical state. */
-  int DEFAULT = 0;
-  /** Lexical state. */
-  int IN_SINGLE_LINE_COMMENT = 1;
-  /** Lexical state. */
-  int IN_FORMAL_COMMENT = 2;
-  /** Lexical state. */
-  int IN_MULTI_LINE_COMMENT = 3;
+    /** Lexical state. */
+    int DEFAULT = 0;
+    /** Lexical state. */
+    int IN_SINGLE_LINE_COMMENT = 1;
+    /** Lexical state. */
+    int IN_FORMAL_COMMENT = 2;
+    /** Lexical state. */
+    int IN_MULTI_LINE_COMMENT = 3;
 
-  /** Literal token values. */
-  String[] tokenImage = {
-    "<EOF>",
-    "<S>",
-    "\"//\"",
-    "<token of kind 3>",
-    "<token of kind 4>",
-    "<token of kind 5>",
-    "\"/*\"",
-    "\"*/\"",
-    "\"*/\"",
-    "<token of kind 9>",
-    "\"<!--\"",
-    "\"-->\"",
-    "\"{\"",
-    "\"}\"",
-    "\"|=\"",
-    "\"^=\"",
-    "\"$=\"",
-    "\"*=\"",
-    "\"~=\"",
-    "\"=\"",
-    "\"+\"",
-    "\"-\"",
-    "\",\"",
-    "\";\"",
-    "\">\"",
-    "\"~\"",
-    "\"<\"",
-    "\"/\"",
-    "\"[\"",
-    "\"]\"",
-    "\"*\"",
-    "\"&\"",
-    "\".\"",
-    "\"(\"",
-    "\")\"",
-    "\"==\"",
-    "\"||\"",
-    "\"&&\"",
-    "\"!=\"",
-    "\":\"",
-    "<INTERPOLATION>",
-    "<NONASCII>",
-    "<H>",
-    "<UNICODE>",
-    "<ESCAPE>",
-    "<NMSTART>",
-    "<NMCHAR>",
-    "<STRINGCHAR>",
-    "<D>",
-    "<NAME>",
-    "\"to\"",
-    "\"through\"",
-    "\"in\"",
-    "\"from\"",
-    "\"@mixin\"",
-    "\"@include\"",
-    "\"@function\"",
-    "\"@return\"",
-    "\"@debug\"",
-    "\"@warn\"",
-    "\"@for\"",
-    "\"@each\"",
-    "\"@while\"",
-    "\"@if\"",
-    "\"@else\"",
-    "\"@extend\"",
-    "\"@-moz-document\"",
-    "\"@supports\"",
-    "<MICROSOFT_RULE>",
-    "\"if\"",
-    "<GUARDED_SYM>",
-    "<STRING>",
-    "<IDENT>",
-    "<NUMBER>",
-    "<_URL>",
-    "<URL>",
-    "<VARIABLE>",
-    "<PERCENTAGE>",
-    "<PT>",
-    "<MM>",
-    "<CM>",
-    "<PC>",
-    "<IN>",
-    "<PX>",
-    "<EMS>",
-    "<EXS>",
-    "<DEG>",
-    "<RAD>",
-    "<GRAD>",
-    "<MS>",
-    "<SECOND>",
-    "<HZ>",
-    "<KHZ>",
-    "<DIMEN>",
-    "<HASH>",
-    "\"@import\"",
-    "\"@media\"",
-    "\"@charset\"",
-    "\"@page\"",
-    "\"@font-face\"",
-    "<KEY_FRAME_SYM>",
-    "<ATKEYWORD>",
-    "<IMPORTANT_SYM>",
-    "<RANGE0>",
-    "<RANGE1>",
-    "<RANGE2>",
-    "<RANGE3>",
-    "<RANGE4>",
-    "<RANGE5>",
-    "<RANGE6>",
-    "<RANGE>",
-    "<UNI>",
-    "<UNICODERANGE>",
-    "<REMOVE>",
-    "<APPEND>",
-    "<CONTAINS>",
-    "<FUNCTION>",
-    "<UNKNOWN>",
-  };
+    /** Literal token values. */
+    String[] tokenImage = { "<EOF>", "<S>", "\"//\"", "<token of kind 3>",
+            "<token of kind 4>", "<token of kind 5>", "\"/*\"", "\"*/\"",
+            "\"*/\"", "<token of kind 9>", "\"<!--\"", "\"-->\"", "\"{\"",
+            "\"}\"", "\"|=\"", "\"^=\"", "\"$=\"", "\"*=\"", "\"~=\"", "\"=\"",
+            "\"+\"", "\"-\"", "\",\"", "\";\"", "\">\"", "\"~\"", "\"<\"",
+            "\"/\"", "\"[\"", "\"]\"", "\"*\"", "\"&\"", "\".\"", "\"(\"",
+            "\")\"", "\"==\"", "\"||\"", "\"&&\"", "\"!=\"", "\":\"",
+            "<INTERPOLATION>", "<NONASCII>", "<H>", "<UNICODE>", "<ESCAPE>",
+            "<NMSTART>", "<NMCHAR>", "<STRINGCHAR>", "<D>", "<NAME>", "\"to\"",
+            "\"through\"", "\"in\"", "\"from\"", "\"@mixin\"", "\"@include\"",
+            "\"@function\"", "\"@return\"", "\"@debug\"", "\"@warn\"",
+            "\"@for\"", "\"@each\"", "\"@while\"", "\"@if\"", "\"@else\"",
+            "\"@extend\"", "\"@-moz-document\"", "\"@supports\"",
+            "<MICROSOFT_RULE>", "\"if\"", "<GUARDED_SYM>", "<STRING>",
+            "<IDENT>", "<NUMBER>", "<_URL>", "<URL>", "<VARIABLE>",
+            "<PERCENTAGE>", "<PT>", "<MM>", "<CM>", "<PC>", "<IN>", "<PX>",
+            "<EMS>", "<EXS>", "<DEG>", "<RAD>", "<GRAD>", "<MS>", "<SECOND>",
+            "<HZ>", "<KHZ>", "<DIMEN>", "<HASH>", "\"@import\"", "\"@media\"",
+            "\"@charset\"", "\"@page\"", "\"@font-face\"", "<KEY_FRAME_SYM>",
+            "<ATKEYWORD>", "<IMPORTANT_SYM>", "<RANGE0>", "<RANGE1>",
+            "<RANGE2>", "<RANGE3>", "<RANGE4>", "<RANGE5>", "<RANGE6>",
+            "<RANGE>", "<UNI>", "<UNICODERANGE>", "<REMOVE>", "<APPEND>",
+            "<CONTAINS>", "<FUNCTION>", "<UNKNOWN>", };
 
 }
index e058251cbd07defe9c73f18db5cfcedca9008560..6f0ae24631f2bb5b62be5d7d654251e05ac582d9 100644 (file)
+/*
+ * Copyright 2000-2013 Vaadin Ltd.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
 /* Generated By:JavaCC: Do not edit this line. ParserTokenManager.java */
 package com.vaadin.sass.internal.parser;
-import java.io.*;
-import java.net.*;
-import java.util.ArrayList;
-import java.util.Locale;
-import java.util.Map;
-import java.util.UUID;
-import org.w3c.css.sac.ConditionFactory;
-import org.w3c.css.sac.Condition;
-import org.w3c.css.sac.SelectorFactory;
-import org.w3c.css.sac.SelectorList;
-import org.w3c.css.sac.Selector;
-import org.w3c.css.sac.SimpleSelector;
-import org.w3c.css.sac.DocumentHandler;
-import org.w3c.css.sac.InputSource;
-import org.w3c.css.sac.ErrorHandler;
-import org.w3c.css.sac.CSSException;
-import org.w3c.css.sac.CSSParseException;
-import org.w3c.css.sac.Locator;
-import org.w3c.css.sac.LexicalUnit;
-import org.w3c.flute.parser.selectors.SelectorFactoryImpl;
-import org.w3c.flute.parser.selectors.ConditionFactoryImpl;
-import org.w3c.flute.util.Encoding;
-import com.vaadin.sass.internal.handler.*;
-import com.vaadin.sass.internal.tree.*;
 
 /** Token Manager. */
-public class ParserTokenManager implements ParserConstants
-{
+public class ParserTokenManager implements ParserConstants {
 
-  /** 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, long active1)
-{
-   switch (pos)
-   {
-      case 0:
-         if ((active0 & 0x1c000000000000L) != 0L || (active1 & 0x20L) != 0L)
-         {
-            jjmatchedKind = 72;
-            return 503;
-         }
-         if ((active0 & 0x4000000000L) != 0L)
-            return 504;
-         if ((active0 & 0x100000000L) != 0L)
-            return 505;
-         if ((active0 & 0x10000L) != 0L)
-            return 79;
-         if ((active0 & 0x200800L) != 0L)
-            return 42;
-         if ((active0 & 0x20000000000000L) != 0L)
-         {
-            jjmatchedKind = 72;
-            return 33;
-         }
-         if ((active0 & 0x8000044L) != 0L)
-            return 3;
-         if ((active0 & 0xffc0000000000000L) != 0L || (active1 & 0xf8000000fL) != 0L)
-            return 166;
-         return -1;
-      case 1:
-         if ((active0 & 0xffc0000000000000L) != 0L || (active1 & 0xf8000000bL) != 0L)
-         {
-            jjmatchedKind = 101;
-            jjmatchedPos = 1;
-            return 506;
-         }
-         if ((active1 & 0x4L) != 0L)
-            return 178;
-         if ((active0 & 0x40L) != 0L)
+    /** 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,
+            long active1) {
+        switch (pos) {
+        case 0:
+            if ((active0 & 0x1c000000000000L) != 0L || (active1 & 0x20L) != 0L) {
+                jjmatchedKind = 72;
+                return 503;
+            }
+            if ((active0 & 0x4000000000L) != 0L) {
+                return 504;
+            }
+            if ((active0 & 0x100000000L) != 0L) {
+                return 505;
+            }
+            if ((active0 & 0x10000L) != 0L) {
+                return 79;
+            }
+            if ((active0 & 0x200800L) != 0L) {
+                return 42;
+            }
+            if ((active0 & 0x20000000000000L) != 0L) {
+                jjmatchedKind = 72;
+                return 33;
+            }
+            if ((active0 & 0x8000044L) != 0L) {
+                return 3;
+            }
+            if ((active0 & 0xffc0000000000000L) != 0L
+                    || (active1 & 0xf8000000fL) != 0L) {
+                return 166;
+            }
+            return -1;
+        case 1:
+            if ((active0 & 0xffc0000000000000L) != 0L
+                    || (active1 & 0xf8000000bL) != 0L) {
+                jjmatchedKind = 101;
+                jjmatchedPos = 1;
+                return 506;
+            }
+            if ((active1 & 0x4L) != 0L) {
+                return 178;
+            }
+            if ((active0 & 0x40L) != 0L) {
+                return 1;
+            }
+            if ((active0 & 0x28000000000000L) != 0L) {
+                jjmatchedKind = 72;
+                jjmatchedPos = 1;
+                return 503;
+            }
+            if ((active0 & 0x14000000000000L) != 0L || (active1 & 0x20L) != 0L) {
+                return 503;
+            }
+            return -1;
+        case 2:
+            if ((active0 & 0x7fc0000000000000L) != 0L
+                    || (active1 & 0xf8000000bL) != 0L) {
+                jjmatchedKind = 101;
+                jjmatchedPos = 2;
+                return 506;
+            }
+            if ((active0 & 0x8000000000000000L) != 0L) {
+                return 506;
+            }
+            if ((active0 & 0x28000000000000L) != 0L) {
+                jjmatchedKind = 72;
+                jjmatchedPos = 2;
+                return 503;
+            }
+            if ((active1 & 0x4L) != 0L) {
+                jjmatchedKind = 101;
+                jjmatchedPos = 2;
+                return 177;
+            }
+            return -1;
+        case 3:
+            if ((active0 & 0x1000000000000000L) != 0L) {
+                return 506;
+            }
+            if ((active0 & 0x6fc0000000000000L) != 0L
+                    || (active1 & 0xf8000000bL) != 0L) {
+                jjmatchedKind = 101;
+                jjmatchedPos = 3;
+                return 506;
+            }
+            if ((active0 & 0x20000000000000L) != 0L) {
+                return 503;
+            }
+            if ((active1 & 0x4L) != 0L) {
+                jjmatchedKind = 101;
+                jjmatchedPos = 3;
+                return 176;
+            }
+            if ((active0 & 0x8000000000000L) != 0L) {
+                jjmatchedKind = 72;
+                jjmatchedPos = 3;
+                return 503;
+            }
+            return -1;
+        case 4:
+            if ((active0 & 0x8000000000000L) != 0L) {
+                jjmatchedKind = 72;
+                jjmatchedPos = 4;
+                return 503;
+            }
+            if ((active1 & 0x4L) != 0L) {
+                jjmatchedKind = 101;
+                jjmatchedPos = 4;
+                return 175;
+            }
+            if ((active0 & 0x2800000000000000L) != 0L
+                    || (active1 & 0x400000001L) != 0L) {
+                return 506;
+            }
+            if ((active0 & 0x47c0000000000000L) != 0L
+                    || (active1 & 0xb8000000aL) != 0L) {
+                jjmatchedKind = 101;
+                jjmatchedPos = 4;
+                return 506;
+            }
+            return -1;
+        case 5:
+            if ((active1 & 0x4L) != 0L) {
+                jjmatchedKind = 101;
+                jjmatchedPos = 5;
+                return 174;
+            }
+            if ((active0 & 0x380000000000000L) != 0L
+                    || (active1 & 0xa8000000aL) != 0L) {
+                jjmatchedKind = 101;
+                jjmatchedPos = 5;
+                return 506;
+            }
+            if ((active0 & 0x4440000000000000L) != 0L
+                    || (active1 & 0x100000000L) != 0L) {
+                return 506;
+            }
+            if ((active0 & 0x8000000000000L) != 0L) {
+                jjmatchedKind = 72;
+                jjmatchedPos = 5;
+                return 503;
+            }
+            return -1;
+        case 6:
+            if ((active0 & 0x180000000000000L) != 0L
+                    || (active1 & 0xa0000000cL) != 0L) {
+                jjmatchedKind = 101;
+                jjmatchedPos = 6;
+                return 506;
+            }
+            if ((active0 & 0x200000000000000L) != 0L
+                    || (active1 & 0x80000002L) != 0L) {
+                return 506;
+            }
+            if ((active0 & 0x8000000000000L) != 0L) {
+                return 503;
+            }
+            return -1;
+        case 7:
+            if ((active0 & 0x100000000000000L) != 0L
+                    || (active1 & 0x80000000cL) != 0L) {
+                jjmatchedKind = 101;
+                jjmatchedPos = 7;
+                return 506;
+            }
+            if ((active0 & 0x80000000000000L) != 0L
+                    || (active1 & 0x200000000L) != 0L) {
+                return 506;
+            }
+            return -1;
+        case 8:
+            if ((active1 & 0x800000004L) != 0L) {
+                jjmatchedKind = 101;
+                jjmatchedPos = 8;
+                return 506;
+            }
+            if ((active0 & 0x100000000000000L) != 0L || (active1 & 0x8L) != 0L) {
+                return 506;
+            }
+            return -1;
+        case 9:
+            if ((active1 & 0x800000000L) != 0L) {
+                return 506;
+            }
+            if ((active1 & 0x4L) != 0L) {
+                jjmatchedKind = 101;
+                jjmatchedPos = 9;
+                return 506;
+            }
+            return -1;
+        case 10:
+            if ((active1 & 0x4L) != 0L) {
+                jjmatchedKind = 101;
+                jjmatchedPos = 10;
+                return 506;
+            }
+            return -1;
+        case 11:
+            if ((active1 & 0x4L) != 0L) {
+                jjmatchedKind = 101;
+                jjmatchedPos = 11;
+                return 506;
+            }
+            return -1;
+        case 12:
+            if ((active1 & 0x4L) != 0L) {
+                jjmatchedKind = 101;
+                jjmatchedPos = 12;
+                return 506;
+            }
+            return -1;
+        default:
+            return -1;
+        }
+    }
+
+    private final int jjStartNfa_0(int pos, long active0, long active1) {
+        return jjMoveNfa_0(jjStopStringLiteralDfa_0(pos, active0, active1),
+                pos + 1);
+    }
+
+    private int jjStopAtPos(int pos, int kind) {
+        jjmatchedKind = kind;
+        jjmatchedPos = pos;
+        return pos + 1;
+    }
+
+    private int jjMoveStringLiteralDfa0_0() {
+        switch (curChar) {
+        case 33:
+            return jjMoveStringLiteralDfa1_0(0x4000000000L, 0x0L);
+        case 36:
+            return jjMoveStringLiteralDfa1_0(0x10000L, 0x0L);
+        case 38:
+            jjmatchedKind = 31;
+            return jjMoveStringLiteralDfa1_0(0x2000000000L, 0x0L);
+        case 40:
+            return jjStopAtPos(0, 33);
+        case 41:
+            return jjStopAtPos(0, 34);
+        case 42:
+            jjmatchedKind = 30;
+            return jjMoveStringLiteralDfa1_0(0x20000L, 0x0L);
+        case 43:
+            return jjStopAtPos(0, 20);
+        case 44:
+            return jjStopAtPos(0, 22);
+        case 45:
+            jjmatchedKind = 21;
+            return jjMoveStringLiteralDfa1_0(0x800L, 0x0L);
+        case 46:
+            return jjStartNfaWithStates_0(0, 32, 505);
+        case 47:
+            jjmatchedKind = 27;
+            return jjMoveStringLiteralDfa1_0(0x44L, 0x0L);
+        case 58:
+            return jjStopAtPos(0, 39);
+        case 59:
+            return jjStopAtPos(0, 23);
+        case 60:
+            jjmatchedKind = 26;
+            return jjMoveStringLiteralDfa1_0(0x400L, 0x0L);
+        case 61:
+            jjmatchedKind = 19;
+            return jjMoveStringLiteralDfa1_0(0x800000000L, 0x0L);
+        case 62:
+            return jjStopAtPos(0, 24);
+        case 64:
+            return jjMoveStringLiteralDfa1_0(0xffc0000000000000L, 0xf8000000fL);
+        case 91:
+            return jjStopAtPos(0, 28);
+        case 93:
+            return jjStopAtPos(0, 29);
+        case 94:
+            return jjMoveStringLiteralDfa1_0(0x8000L, 0x0L);
+        case 70:
+        case 102:
+            return jjMoveStringLiteralDfa1_0(0x20000000000000L, 0x0L);
+        case 73:
+        case 105:
+            return jjMoveStringLiteralDfa1_0(0x10000000000000L, 0x20L);
+        case 84:
+        case 116:
+            return jjMoveStringLiteralDfa1_0(0xc000000000000L, 0x0L);
+        case 123:
+            return jjStopAtPos(0, 12);
+        case 124:
+            return jjMoveStringLiteralDfa1_0(0x1000004000L, 0x0L);
+        case 125:
+            return jjStopAtPos(0, 13);
+        case 126:
+            jjmatchedKind = 25;
+            return jjMoveStringLiteralDfa1_0(0x40000L, 0x0L);
+        default:
+            return jjMoveNfa_0(4, 0);
+        }
+    }
+
+    private int jjMoveStringLiteralDfa1_0(long active0, long active1) {
+        try {
+            curChar = input_stream.readChar();
+        } catch (java.io.IOException e) {
+            jjStopStringLiteralDfa_0(0, active0, active1);
             return 1;
-         if ((active0 & 0x28000000000000L) != 0L)
-         {
-            jjmatchedKind = 72;
-            jjmatchedPos = 1;
-            return 503;
-         }
-         if ((active0 & 0x14000000000000L) != 0L || (active1 & 0x20L) != 0L)
-            return 503;
-         return -1;
-      case 2:
-         if ((active0 & 0x7fc0000000000000L) != 0L || (active1 & 0xf8000000bL) != 0L)
-         {
-            jjmatchedKind = 101;
-            jjmatchedPos = 2;
-            return 506;
-         }
-         if ((active0 & 0x8000000000000000L) != 0L)
-            return 506;
-         if ((active0 & 0x28000000000000L) != 0L)
-         {
-            jjmatchedKind = 72;
-            jjmatchedPos = 2;
-            return 503;
-         }
-         if ((active1 & 0x4L) != 0L)
-         {
-            jjmatchedKind = 101;
-            jjmatchedPos = 2;
-            return 177;
-         }
-         return -1;
-      case 3:
-         if ((active0 & 0x1000000000000000L) != 0L)
-            return 506;
-         if ((active0 & 0x6fc0000000000000L) != 0L || (active1 & 0xf8000000bL) != 0L)
-         {
-            jjmatchedKind = 101;
-            jjmatchedPos = 3;
-            return 506;
-         }
-         if ((active0 & 0x20000000000000L) != 0L)
-            return 503;
-         if ((active1 & 0x4L) != 0L)
-         {
-            jjmatchedKind = 101;
-            jjmatchedPos = 3;
-            return 176;
-         }
-         if ((active0 & 0x8000000000000L) != 0L)
-         {
-            jjmatchedKind = 72;
-            jjmatchedPos = 3;
-            return 503;
-         }
-         return -1;
-      case 4:
-         if ((active0 & 0x8000000000000L) != 0L)
-         {
-            jjmatchedKind = 72;
-            jjmatchedPos = 4;
-            return 503;
-         }
-         if ((active1 & 0x4L) != 0L)
-         {
-            jjmatchedKind = 101;
-            jjmatchedPos = 4;
-            return 175;
-         }
-         if ((active0 & 0x2800000000000000L) != 0L || (active1 & 0x400000001L) != 0L)
-            return 506;
-         if ((active0 & 0x47c0000000000000L) != 0L || (active1 & 0xb8000000aL) != 0L)
-         {
-            jjmatchedKind = 101;
-            jjmatchedPos = 4;
-            return 506;
-         }
-         return -1;
-      case 5:
-         if ((active1 & 0x4L) != 0L)
-         {
-            jjmatchedKind = 101;
-            jjmatchedPos = 5;
-            return 174;
-         }
-         if ((active0 & 0x380000000000000L) != 0L || (active1 & 0xa8000000aL) != 0L)
-         {
-            jjmatchedKind = 101;
-            jjmatchedPos = 5;
-            return 506;
-         }
-         if ((active0 & 0x4440000000000000L) != 0L || (active1 & 0x100000000L) != 0L)
-            return 506;
-         if ((active0 & 0x8000000000000L) != 0L)
-         {
-            jjmatchedKind = 72;
-            jjmatchedPos = 5;
-            return 503;
-         }
-         return -1;
-      case 6:
-         if ((active0 & 0x180000000000000L) != 0L || (active1 & 0xa0000000cL) != 0L)
-         {
-            jjmatchedKind = 101;
-            jjmatchedPos = 6;
-            return 506;
-         }
-         if ((active0 & 0x200000000000000L) != 0L || (active1 & 0x80000002L) != 0L)
-            return 506;
-         if ((active0 & 0x8000000000000L) != 0L)
-            return 503;
-         return -1;
-      case 7:
-         if ((active0 & 0x100000000000000L) != 0L || (active1 & 0x80000000cL) != 0L)
-         {
-            jjmatchedKind = 101;
-            jjmatchedPos = 7;
-            return 506;
-         }
-         if ((active0 & 0x80000000000000L) != 0L || (active1 & 0x200000000L) != 0L)
-            return 506;
-         return -1;
-      case 8:
-         if ((active1 & 0x800000004L) != 0L)
-         {
-            jjmatchedKind = 101;
-            jjmatchedPos = 8;
-            return 506;
-         }
-         if ((active0 & 0x100000000000000L) != 0L || (active1 & 0x8L) != 0L)
-            return 506;
-         return -1;
-      case 9:
-         if ((active1 & 0x800000000L) != 0L)
-            return 506;
-         if ((active1 & 0x4L) != 0L)
-         {
-            jjmatchedKind = 101;
-            jjmatchedPos = 9;
-            return 506;
-         }
-         return -1;
-      case 10:
-         if ((active1 & 0x4L) != 0L)
-         {
-            jjmatchedKind = 101;
-            jjmatchedPos = 10;
-            return 506;
-         }
-         return -1;
-      case 11:
-         if ((active1 & 0x4L) != 0L)
-         {
-            jjmatchedKind = 101;
-            jjmatchedPos = 11;
-            return 506;
-         }
-         return -1;
-      case 12:
-         if ((active1 & 0x4L) != 0L)
-         {
-            jjmatchedKind = 101;
-            jjmatchedPos = 12;
-            return 506;
-         }
-         return -1;
-      default :
-         return -1;
-   }
-}
-private final int jjStartNfa_0(int pos, long active0, long active1)
-{
-   return jjMoveNfa_0(jjStopStringLiteralDfa_0(pos, active0, active1), pos + 1);
-}
-private int jjStopAtPos(int pos, int kind)
-{
-   jjmatchedKind = kind;
-   jjmatchedPos = pos;
-   return pos + 1;
-}
-private int jjMoveStringLiteralDfa0_0()
-{
-   switch(curChar)
-   {
-      case 33:
-         return jjMoveStringLiteralDfa1_0(0x4000000000L, 0x0L);
-      case 36:
-         return jjMoveStringLiteralDfa1_0(0x10000L, 0x0L);
-      case 38:
-         jjmatchedKind = 31;
-         return jjMoveStringLiteralDfa1_0(0x2000000000L, 0x0L);
-      case 40:
-         return jjStopAtPos(0, 33);
-      case 41:
-         return jjStopAtPos(0, 34);
-      case 42:
-         jjmatchedKind = 30;
-         return jjMoveStringLiteralDfa1_0(0x20000L, 0x0L);
-      case 43:
-         return jjStopAtPos(0, 20);
-      case 44:
-         return jjStopAtPos(0, 22);
-      case 45:
-         jjmatchedKind = 21;
-         return jjMoveStringLiteralDfa1_0(0x800L, 0x0L);
-      case 46:
-         return jjStartNfaWithStates_0(0, 32, 505);
-      case 47:
-         jjmatchedKind = 27;
-         return jjMoveStringLiteralDfa1_0(0x44L, 0x0L);
-      case 58:
-         return jjStopAtPos(0, 39);
-      case 59:
-         return jjStopAtPos(0, 23);
-      case 60:
-         jjmatchedKind = 26;
-         return jjMoveStringLiteralDfa1_0(0x400L, 0x0L);
-      case 61:
-         jjmatchedKind = 19;
-         return jjMoveStringLiteralDfa1_0(0x800000000L, 0x0L);
-      case 62:
-         return jjStopAtPos(0, 24);
-      case 64:
-         return jjMoveStringLiteralDfa1_0(0xffc0000000000000L, 0xf8000000fL);
-      case 91:
-         return jjStopAtPos(0, 28);
-      case 93:
-         return jjStopAtPos(0, 29);
-      case 94:
-         return jjMoveStringLiteralDfa1_0(0x8000L, 0x0L);
-      case 70:
-      case 102:
-         return jjMoveStringLiteralDfa1_0(0x20000000000000L, 0x0L);
-      case 73:
-      case 105:
-         return jjMoveStringLiteralDfa1_0(0x10000000000000L, 0x20L);
-      case 84:
-      case 116:
-         return jjMoveStringLiteralDfa1_0(0xc000000000000L, 0x0L);
-      case 123:
-         return jjStopAtPos(0, 12);
-      case 124:
-         return jjMoveStringLiteralDfa1_0(0x1000004000L, 0x0L);
-      case 125:
-         return jjStopAtPos(0, 13);
-      case 126:
-         jjmatchedKind = 25;
-         return jjMoveStringLiteralDfa1_0(0x40000L, 0x0L);
-      default :
-         return jjMoveNfa_0(4, 0);
-   }
-}
-private int jjMoveStringLiteralDfa1_0(long active0, long active1)
-{
-   try { curChar = input_stream.readChar(); }
-   catch(java.io.IOException e) {
-      jjStopStringLiteralDfa_0(0, active0, active1);
-      return 1;
-   }
-   switch(curChar)
-   {
-      case 33:
-         return jjMoveStringLiteralDfa2_0(active0, 0x400L, active1, 0L);
-      case 38:
-         if ((active0 & 0x2000000000L) != 0L)
-            return jjStopAtPos(1, 37);
-         break;
-      case 42:
-         if ((active0 & 0x40L) != 0L)
-            return jjStartNfaWithStates_0(1, 6, 1);
-         break;
-      case 45:
-         return jjMoveStringLiteralDfa2_0(active0, 0x800L, active1, 0x4L);
-      case 47:
-         if ((active0 & 0x4L) != 0L)
-            return jjStopAtPos(1, 2);
-         break;
-      case 61:
-         if ((active0 & 0x4000L) != 0L)
-            return jjStopAtPos(1, 14);
-         else if ((active0 & 0x8000L) != 0L)
-            return jjStopAtPos(1, 15);
-         else if ((active0 & 0x10000L) != 0L)
-            return jjStopAtPos(1, 16);
-         else if ((active0 & 0x20000L) != 0L)
-            return jjStopAtPos(1, 17);
-         else if ((active0 & 0x40000L) != 0L)
-            return jjStopAtPos(1, 18);
-         else if ((active0 & 0x800000000L) != 0L)
-            return jjStopAtPos(1, 35);
-         else if ((active0 & 0x4000000000L) != 0L)
-            return jjStopAtPos(1, 38);
-         break;
-      case 67:
-      case 99:
-         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x200000000L);
-      case 68:
-      case 100:
-         return jjMoveStringLiteralDfa2_0(active0, 0x400000000000000L, active1, 0L);
-      case 69:
-      case 101:
-         return jjMoveStringLiteralDfa2_0(active0, 0x2000000000000000L, active1, 0x3L);
-      case 70:
-      case 102:
-         if ((active1 & 0x20L) != 0L)
-            return jjStartNfaWithStates_0(1, 69, 503);
-         return jjMoveStringLiteralDfa2_0(active0, 0x1100000000000000L, active1, 0x800000000L);
-      case 72:
-      case 104:
-         return jjMoveStringLiteralDfa2_0(active0, 0x8000000000000L, active1, 0L);
-      case 73:
-      case 105:
-         return jjMoveStringLiteralDfa2_0(active0, 0x8080000000000000L, active1, 0x80000000L);
-      case 77:
-      case 109:
-         return jjMoveStringLiteralDfa2_0(active0, 0x40000000000000L, active1, 0x100000000L);
-      case 78:
-      case 110:
-         if ((active0 & 0x10000000000000L) != 0L)
-            return jjStartNfaWithStates_0(1, 52, 503);
-         break;
-      case 79:
-      case 111:
-         if ((active0 & 0x4000000000000L) != 0L)
-            return jjStartNfaWithStates_0(1, 50, 503);
-         break;
-      case 80:
-      case 112:
-         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x400000000L);
-      case 82:
-      case 114:
-         return jjMoveStringLiteralDfa2_0(active0, 0x220000000000000L, active1, 0L);
-      case 83:
-      case 115:
-         return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x8L);
-      case 87:
-      case 119:
-         return jjMoveStringLiteralDfa2_0(active0, 0x4800000000000000L, active1, 0L);
-      case 124:
-         if ((active0 & 0x1000000000L) != 0L)
-            return jjStopAtPos(1, 36);
-         break;
-      default :
-         break;
-   }
-   return jjStartNfa_0(0, active0, active1);
-}
-private int jjMoveStringLiteralDfa2_0(long old0, long active0, long old1, long active1)
-{
-   if (((active0 &= old0) | (active1 &= old1)) == 0L)
-      return jjStartNfa_0(0, old0, old1);
-   try { curChar = input_stream.readChar(); }
-   catch(java.io.IOException e) {
-      jjStopStringLiteralDfa_0(1, active0, active1);
-      return 2;
-   }
-   switch(curChar)
-   {
-      case 45:
-         return jjMoveStringLiteralDfa3_0(active0, 0x400L, active1, 0L);
-      case 62:
-         if ((active0 & 0x800L) != 0L)
-            return jjStopAtPos(2, 11);
-         break;
-      case 65:
-      case 97:
-         return jjMoveStringLiteralDfa3_0(active0, 0x2800000000000000L, active1, 0x400000000L);
-      case 69:
-      case 101:
-         return jjMoveStringLiteralDfa3_0(active0, 0x600000000000000L, active1, 0x100000000L);
-      case 70:
-      case 102:
-         if ((active0 & 0x8000000000000000L) != 0L)
-            return jjStartNfaWithStates_0(2, 63, 506);
-         break;
-      case 72:
-      case 104:
-         return jjMoveStringLiteralDfa3_0(active0, 0x4000000000000000L, active1, 0x200000000L);
-      case 73:
-      case 105:
-         return jjMoveStringLiteralDfa3_0(active0, 0x40000000000000L, active1, 0L);
-      case 76:
-      case 108:
-         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x1L);
-      case 77:
-      case 109:
-         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x80000004L);
-      case 78:
-      case 110:
-         return jjMoveStringLiteralDfa3_0(active0, 0x80000000000000L, active1, 0L);
-      case 79:
-      case 111:
-         return jjMoveStringLiteralDfa3_0(active0, 0x1020000000000000L, active1, 0x800000000L);
-      case 82:
-      case 114:
-         return jjMoveStringLiteralDfa3_0(active0, 0x8000000000000L, active1, 0L);
-      case 85:
-      case 117:
-         return jjMoveStringLiteralDfa3_0(active0, 0x100000000000000L, active1, 0x8L);
-      case 88:
-      case 120:
-         return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x2L);
-      default :
-         break;
-   }
-   return jjStartNfa_0(1, active0, active1);
-}
-private int jjMoveStringLiteralDfa3_0(long old0, long active0, long old1, long active1)
-{
-   if (((active0 &= old0) | (active1 &= old1)) == 0L)
-      return jjStartNfa_0(1, old0, old1);
-   try { curChar = input_stream.readChar(); }
-   catch(java.io.IOException e) {
-      jjStopStringLiteralDfa_0(2, active0, active1);
-      return 3;
-   }
-   switch(curChar)
-   {
-      case 45:
-         if ((active0 & 0x400L) != 0L)
-            return jjStopAtPos(3, 10);
-         break;
-      case 65:
-      case 97:
-         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x200000000L);
-      case 66:
-      case 98:
-         return jjMoveStringLiteralDfa4_0(active0, 0x400000000000000L, active1, 0L);
-      case 67:
-      case 99:
-         return jjMoveStringLiteralDfa4_0(active0, 0x2080000000000000L, active1, 0L);
-      case 68:
-      case 100:
-         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x100000000L);
-      case 71:
-      case 103:
-         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x400000000L);
-      case 73:
-      case 105:
-         return jjMoveStringLiteralDfa4_0(active0, 0x4000000000000000L, active1, 0L);
-      case 77:
-      case 109:
-         if ((active0 & 0x20000000000000L) != 0L)
-            return jjStartNfaWithStates_0(3, 53, 503);
-         break;
-      case 78:
-      case 110:
-         return jjMoveStringLiteralDfa4_0(active0, 0x100000000000000L, active1, 0x800000000L);
-      case 79:
-      case 111:
-         return jjMoveStringLiteralDfa4_0(active0, 0x8000000000000L, active1, 0x4L);
-      case 80:
-      case 112:
-         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x80000008L);
-      case 82:
-      case 114:
-         if ((active0 & 0x1000000000000000L) != 0L)
-            return jjStartNfaWithStates_0(3, 60, 506);
-         return jjMoveStringLiteralDfa4_0(active0, 0x800000000000000L, active1, 0L);
-      case 83:
-      case 115:
-         return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x1L);
-      case 84:
-      case 116:
-         return jjMoveStringLiteralDfa4_0(active0, 0x200000000000000L, active1, 0x2L);
-      case 88:
-      case 120:
-         return jjMoveStringLiteralDfa4_0(active0, 0x40000000000000L, active1, 0L);
-      default :
-         break;
-   }
-   return jjStartNfa_0(2, active0, active1);
-}
-private int jjMoveStringLiteralDfa4_0(long old0, long active0, long old1, long active1)
-{
-   if (((active0 &= old0) | (active1 &= old1)) == 0L)
-      return jjStartNfa_0(2, old0, old1);
-   try { curChar = input_stream.readChar(); }
-   catch(java.io.IOException e) {
-      jjStopStringLiteralDfa_0(3, active0, active1);
-      return 4;
-   }
-   switch(curChar)
-   {
-      case 67:
-      case 99:
-         return jjMoveStringLiteralDfa5_0(active0, 0x100000000000000L, active1, 0L);
-      case 69:
-      case 101:
-         if ((active1 & 0x1L) != 0L)
-            return jjStartNfaWithStates_0(4, 64, 506);
-         else if ((active1 & 0x400000000L) != 0L)
-            return jjStartNfaWithStates_0(4, 98, 506);
-         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x2L);
-      case 72:
-      case 104:
-         if ((active0 & 0x2000000000000000L) != 0L)
-            return jjStartNfaWithStates_0(4, 61, 506);
-         break;
-      case 73:
-      case 105:
-         return jjMoveStringLiteralDfa5_0(active0, 0x40000000000000L, active1, 0x100000000L);
-      case 76:
-      case 108:
-         return jjMoveStringLiteralDfa5_0(active0, 0x4080000000000000L, active1, 0L);
-      case 78:
-      case 110:
-         if ((active0 & 0x800000000000000L) != 0L)
-            return jjStartNfaWithStates_0(4, 59, 506);
-         break;
-      case 79:
-      case 111:
-         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x80000000L);
-      case 80:
-      case 112:
-         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x8L);
-      case 82:
-      case 114:
-         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x200000000L);
-      case 84:
-      case 116:
-         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x800000000L);
-      case 85:
-      case 117:
-         return jjMoveStringLiteralDfa5_0(active0, 0x608000000000000L, active1, 0L);
-      case 90:
-      case 122:
-         return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x4L);
-      default :
-         break;
-   }
-   return jjStartNfa_0(3, active0, active1);
-}
-private int jjMoveStringLiteralDfa5_0(long old0, long active0, long old1, long active1)
-{
-   if (((active0 &= old0) | (active1 &= old1)) == 0L)
-      return jjStartNfa_0(3, old0, old1);
-   try { curChar = input_stream.readChar(); }
-   catch(java.io.IOException e) {
-      jjStopStringLiteralDfa_0(4, active0, active1);
-      return 5;
-   }
-   switch(curChar)
-   {
-      case 45:
-         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x800000004L);
-      case 65:
-      case 97:
-         if ((active1 & 0x100000000L) != 0L)
-            return jjStartNfaWithStates_0(5, 96, 506);
-         break;
-      case 69:
-      case 101:
-         if ((active0 & 0x4000000000000000L) != 0L)
-            return jjStartNfaWithStates_0(5, 62, 506);
-         break;
-      case 71:
-      case 103:
-         if ((active0 & 0x400000000000000L) != 0L)
-            return jjStartNfaWithStates_0(5, 58, 506);
-         return jjMoveStringLiteralDfa6_0(active0, 0x8000000000000L, active1, 0L);
-      case 78:
-      case 110:
-         if ((active0 & 0x40000000000000L) != 0L)
-            return jjStartNfaWithStates_0(5, 54, 506);
-         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x2L);
-      case 79:
-      case 111:
-         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x8L);
-      case 82:
-      case 114:
-         return jjMoveStringLiteralDfa6_0(active0, 0x200000000000000L, active1, 0x80000000L);
-      case 83:
-      case 115:
-         return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x200000000L);
-      case 84:
-      case 116:
-         return jjMoveStringLiteralDfa6_0(active0, 0x100000000000000L, active1, 0L);
-      case 85:
-      case 117:
-         return jjMoveStringLiteralDfa6_0(active0, 0x80000000000000L, active1, 0L);
-      default :
-         break;
-   }
-   return jjStartNfa_0(4, active0, active1);
-}
-private int jjMoveStringLiteralDfa6_0(long old0, long active0, long old1, long active1)
-{
-   if (((active0 &= old0) | (active1 &= old1)) == 0L)
-      return jjStartNfa_0(4, old0, old1);
-   try { curChar = input_stream.readChar(); }
-   catch(java.io.IOException e) {
-      jjStopStringLiteralDfa_0(5, active0, active1);
-      return 6;
-   }
-   switch(curChar)
-   {
-      case 68:
-      case 100:
-         if ((active1 & 0x2L) != 0L)
-            return jjStartNfaWithStates_0(6, 65, 506);
-         return jjMoveStringLiteralDfa7_0(active0, 0x80000000000000L, active1, 0x4L);
-      case 69:
-      case 101:
-         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x200000000L);
-      case 70:
-      case 102:
-         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x800000000L);
-      case 72:
-      case 104:
-         if ((active0 & 0x8000000000000L) != 0L)
-            return jjStartNfaWithStates_0(6, 51, 503);
-         break;
-      case 73:
-      case 105:
-         return jjMoveStringLiteralDfa7_0(active0, 0x100000000000000L, active1, 0L);
-      case 78:
-      case 110:
-         if ((active0 & 0x200000000000000L) != 0L)
-            return jjStartNfaWithStates_0(6, 57, 506);
-         break;
-      case 82:
-      case 114:
-         return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x8L);
-      case 84:
-      case 116:
-         if ((active1 & 0x80000000L) != 0L)
-            return jjStartNfaWithStates_0(6, 95, 506);
-         break;
-      default :
-         break;
-   }
-   return jjStartNfa_0(5, active0, active1);
-}
-private int jjMoveStringLiteralDfa7_0(long old0, long active0, long old1, long active1)
-{
-   if (((active0 &= old0) | (active1 &= old1)) == 0L)
-      return jjStartNfa_0(5, old0, old1);
-   try { curChar = input_stream.readChar(); }
-   catch(java.io.IOException e) {
-      jjStopStringLiteralDfa_0(6, active0, active1);
-      return 7;
-   }
-   switch(curChar)
-   {
-      case 65:
-      case 97:
-         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x800000000L);
-      case 69:
-      case 101:
-         if ((active0 & 0x80000000000000L) != 0L)
-            return jjStartNfaWithStates_0(7, 55, 506);
-         break;
-      case 79:
-      case 111:
-         return jjMoveStringLiteralDfa8_0(active0, 0x100000000000000L, active1, 0x4L);
-      case 84:
-      case 116:
-         if ((active1 & 0x200000000L) != 0L)
-            return jjStartNfaWithStates_0(7, 97, 506);
-         return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x8L);
-      default :
-         break;
-   }
-   return jjStartNfa_0(6, active0, active1);
-}
-private int jjMoveStringLiteralDfa8_0(long old0, long active0, long old1, long active1)
-{
-   if (((active0 &= old0) | (active1 &= old1)) == 0L)
-      return jjStartNfa_0(6, old0, old1);
-   try { curChar = input_stream.readChar(); }
-   catch(java.io.IOException e) {
-      jjStopStringLiteralDfa_0(7, active0, active1);
-      return 8;
-   }
-   switch(curChar)
-   {
-      case 67:
-      case 99:
-         return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0x800000004L);
-      case 78:
-      case 110:
-         if ((active0 & 0x100000000000000L) != 0L)
-            return jjStartNfaWithStates_0(8, 56, 506);
-         break;
-      case 83:
-      case 115:
-         if ((active1 & 0x8L) != 0L)
-            return jjStartNfaWithStates_0(8, 67, 506);
-         break;
-      default :
-         break;
-   }
-   return jjStartNfa_0(7, active0, active1);
-}
-private int jjMoveStringLiteralDfa9_0(long old0, long active0, long old1, long active1)
-{
-   if (((active0 &= old0) | (active1 &= old1)) == 0L)
-      return jjStartNfa_0(7, old0, old1);
-   try { curChar = input_stream.readChar(); }
-   catch(java.io.IOException e) {
-      jjStopStringLiteralDfa_0(8, 0L, active1);
-      return 9;
-   }
-   switch(curChar)
-   {
-      case 69:
-      case 101:
-         if ((active1 & 0x800000000L) != 0L)
-            return jjStartNfaWithStates_0(9, 99, 506);
-         break;
-      case 85:
-      case 117:
-         return jjMoveStringLiteralDfa10_0(active1, 0x4L);
-      default :
-         break;
-   }
-   return jjStartNfa_0(8, 0L, active1);
-}
-private int jjMoveStringLiteralDfa10_0(long old1, long active1)
-{
-   if (((active1 &= old1)) == 0L)
-      return jjStartNfa_0(8, 0L, old1);
-   try { curChar = input_stream.readChar(); }
-   catch(java.io.IOException e) {
-      jjStopStringLiteralDfa_0(9, 0L, active1);
-      return 10;
-   }
-   switch(curChar)
-   {
-      case 77:
-      case 109:
-         return jjMoveStringLiteralDfa11_0(active1, 0x4L);
-      default :
-         break;
-   }
-   return jjStartNfa_0(9, 0L, active1);
-}
-private int jjMoveStringLiteralDfa11_0(long old1, long active1)
-{
-   if (((active1 &= old1)) == 0L)
-      return jjStartNfa_0(9, 0L, old1);
-   try { curChar = input_stream.readChar(); }
-   catch(java.io.IOException e) {
-      jjStopStringLiteralDfa_0(10, 0L, active1);
-      return 11;
-   }
-   switch(curChar)
-   {
-      case 69:
-      case 101:
-         return jjMoveStringLiteralDfa12_0(active1, 0x4L);
-      default :
-         break;
-   }
-   return jjStartNfa_0(10, 0L, active1);
-}
-private int jjMoveStringLiteralDfa12_0(long old1, long active1)
-{
-   if (((active1 &= old1)) == 0L)
-      return jjStartNfa_0(10, 0L, old1);
-   try { curChar = input_stream.readChar(); }
-   catch(java.io.IOException e) {
-      jjStopStringLiteralDfa_0(11, 0L, active1);
-      return 12;
-   }
-   switch(curChar)
-   {
-      case 78:
-      case 110:
-         return jjMoveStringLiteralDfa13_0(active1, 0x4L);
-      default :
-         break;
-   }
-   return jjStartNfa_0(11, 0L, active1);
-}
-private int jjMoveStringLiteralDfa13_0(long old1, long active1)
-{
-   if (((active1 &= old1)) == 0L)
-      return jjStartNfa_0(11, 0L, old1);
-   try { curChar = input_stream.readChar(); }
-   catch(java.io.IOException e) {
-      jjStopStringLiteralDfa_0(12, 0L, active1);
-      return 13;
-   }
-   switch(curChar)
-   {
-      case 84:
-      case 116:
-         if ((active1 & 0x4L) != 0L)
-            return jjStartNfaWithStates_0(13, 66, 506);
-         break;
-      default :
-         break;
-   }
-   return jjStartNfa_0(12, 0L, active1);
-}
-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 = {
-   0x0L, 0x0L, 0xffffffffffffffffL, 0xffffffffffffffffL
-};
-private int jjMoveNfa_0(int startState, int curPos)
-{
-   int startsAt = 0;
-   jjnewStateCnt = 503;
-   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 506:
-               case 113:
-                  if ((0x3ff200000000000L & l) == 0L)
-                     break;
-                  if (kind > 101)
-                     kind = 101;
-                  jjCheckNAddTwoStates(113, 114);
-                  break;
-               case 166:
-                  if (curChar == 45)
-                     jjstateSet[jjnewStateCnt++] = 112;
-                  if (curChar == 45)
-                     jjstateSet[jjnewStateCnt++] = 217;
-                  if (curChar == 45)
-                     jjstateSet[jjnewStateCnt++] = 205;
-                  if (curChar == 45)
-                     jjstateSet[jjnewStateCnt++] = 189;
-                  if (curChar == 45)
-                     jjstateSet[jjnewStateCnt++] = 178;
-                  break;
-               case 174:
-                  if ((0x3ff200000000000L & l) == 0L)
-                     break;
-                  if (kind > 101)
-                     kind = 101;
-                  jjCheckNAddTwoStates(113, 114);
-                  break;
-               case 504:
-                  if ((0x100003600L & l) != 0L)
-                     jjCheckNAddTwoStates(251, 260);
-                  if ((0x100003600L & l) != 0L)
-                     jjCheckNAddTwoStates(243, 250);
-                  break;
-               case 503:
-                  if ((0x3ff200000000000L & l) != 0L)
-                     jjCheckNAddStates(0, 3);
-                  else if ((0x100003600L & l) != 0L)
-                     jjCheckNAddTwoStates(231, 232);
-                  else if (curChar == 40)
-                  {
-                     if (kind > 116)
-                        kind = 116;
-                  }
-                  if ((0x3ff200000000000L & l) != 0L)
-                  {
-                     if (kind > 72)
-                        kind = 72;
-                     jjCheckNAddTwoStates(220, 221);
-                  }
-                  break;
-               case 4:
-                  if ((0x3ff000000000000L & l) != 0L)
-                  {
-                     if (kind > 73)
-                        kind = 73;
-                     jjCheckNAddStates(4, 77);
-                  }
-                  else if ((0x100003600L & l) != 0L)
-                  {
-                     if (kind > 1)
-                        kind = 1;
-                     jjCheckNAdd(0);
-                  }
-                  else if (curChar == 46)
-                     jjCheckNAddStates(78, 95);
-                  else if (curChar == 45)
-                     jjAddStates(96, 97);
-                  else if (curChar == 33)
-                     jjCheckNAddStates(98, 101);
-                  else if (curChar == 35)
-                     jjCheckNAddTwoStates(100, 101);
-                  else if (curChar == 36)
-                     jjCheckNAddStates(102, 105);
-                  else if (curChar == 39)
-                     jjCheckNAddStates(106, 109);
-                  else if (curChar == 34)
-                     jjCheckNAddStates(110, 113);
-                  else if (curChar == 47)
-                     jjstateSet[jjnewStateCnt++] = 3;
-                  if (curChar == 45)
-                     jjstateSet[jjnewStateCnt++] = 42;
-                  else if (curChar == 35)
-                     jjstateSet[jjnewStateCnt++] = 5;
-                  break;
-               case 175:
-                  if ((0x3ff200000000000L & l) != 0L)
-                  {
-                     if (kind > 101)
-                        kind = 101;
-                     jjCheckNAddTwoStates(113, 114);
-                  }
-                  if (curChar == 45)
-                     jjstateSet[jjnewStateCnt++] = 174;
-                  break;
-               case 33:
-                  if ((0x3ff200000000000L & l) != 0L)
-                     jjCheckNAddStates(0, 3);
-                  else if ((0x100003600L & l) != 0L)
-                     jjCheckNAddTwoStates(231, 232);
-                  else if (curChar == 40)
-                  {
-                     if (kind > 116)
-                        kind = 116;
-                  }
-                  if ((0x3ff200000000000L & l) != 0L)
-                  {
-                     if (kind > 72)
-                        kind = 72;
-                     jjCheckNAddTwoStates(220, 221);
-                  }
-                  break;
-               case 505:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(114, 118);
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(314, 317);
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(311, 313);
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(309, 310);
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(306, 308);
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(301, 305);
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(297, 300);
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(293, 296);
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(290, 292);
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(287, 289);
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(284, 286);
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(281, 283);
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(278, 280);
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(275, 277);
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(272, 274);
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(269, 271);
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(267, 268);
-                  if ((0x3ff000000000000L & l) != 0L)
-                  {
-                     if (kind > 73)
-                        kind = 73;
-                     jjCheckNAdd(266);
-                  }
-                  break;
-               case 176:
-                  if ((0x3ff200000000000L & l) == 0L)
-                     break;
-                  if (kind > 101)
-                     kind = 101;
-                  jjCheckNAddTwoStates(113, 114);
-                  break;
-               case 177:
-                  if ((0x3ff200000000000L & l) == 0L)
-                     break;
-                  if (kind > 101)
-                     kind = 101;
-                  jjCheckNAddTwoStates(113, 114);
-                  break;
-               case 79:
-                  if (curChar == 45)
-                     jjCheckNAdd(80);
-                  break;
-               case 0:
-                  if ((0x100003600L & l) == 0L)
-                     break;
-                  if (kind > 1)
-                     kind = 1;
-                  jjCheckNAdd(0);
-                  break;
-               case 1:
-                  if (curChar == 42)
-                     jjstateSet[jjnewStateCnt++] = 2;
-                  break;
-               case 2:
-                  if ((0xffff7fffffffffffL & l) != 0L && kind > 5)
-                     kind = 5;
-                  break;
-               case 3:
-                  if (curChar == 42)
-                     jjstateSet[jjnewStateCnt++] = 1;
-                  break;
-               case 6:
-                  if (curChar == 36)
-                     jjCheckNAddStates(119, 122);
-                  break;
-               case 7:
-                  if (curChar == 45)
-                     jjCheckNAdd(8);
-                  break;
-               case 9:
-                  if ((0x3ff200000000000L & l) != 0L)
-                     jjCheckNAddStates(123, 125);
-                  break;
-               case 12:
-                  if ((0xffffffff00000000L & l) != 0L)
-                     jjCheckNAddStates(123, 125);
-                  break;
-               case 13:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(126, 130);
-                  break;
-               case 14:
-                  if ((0x100003600L & l) != 0L)
-                     jjCheckNAddStates(123, 125);
-                  break;
-               case 15:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(131, 138);
-                  break;
-               case 16:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(139, 142);
-                  break;
-               case 17:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(143, 147);
-                  break;
-               case 18:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(148, 153);
-                  break;
-               case 19:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(154, 160);
-                  break;
-               case 22:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(161, 165);
-                  break;
-               case 23:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(166, 173);
-                  break;
-               case 24:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(174, 177);
-                  break;
-               case 25:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(178, 182);
-                  break;
-               case 26:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(183, 188);
-                  break;
-               case 27:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(189, 195);
-                  break;
-               case 28:
-                  if (curChar == 35)
-                     jjstateSet[jjnewStateCnt++] = 5;
-                  break;
-               case 40:
-                  if (curChar == 45)
-                     jjstateSet[jjnewStateCnt++] = 39;
-                  break;
-               case 43:
-                  if (curChar == 45)
-                     jjstateSet[jjnewStateCnt++] = 42;
-                  break;
-               case 44:
-                  if (curChar == 34)
-                     jjCheckNAddStates(110, 113);
-                  break;
-               case 45:
-                  if ((0xfffffffb00000200L & l) != 0L)
-                     jjCheckNAddStates(110, 113);
-                  break;
-               case 46:
-                  if (curChar == 34 && kind > 71)
-                     kind = 71;
-                  break;
-               case 48:
-                  if (curChar == 12)
-                     jjCheckNAddStates(110, 113);
-                  break;
-               case 50:
-                  if ((0xffffffff00000000L & l) != 0L)
-                     jjCheckNAddStates(110, 113);
-                  break;
-               case 51:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(196, 201);
-                  break;
-               case 52:
-                  if ((0x100003600L & l) != 0L)
-                     jjCheckNAddStates(110, 113);
-                  break;
-               case 53:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(202, 210);
-                  break;
-               case 54:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(211, 215);
-                  break;
-               case 55:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(216, 221);
-                  break;
-               case 56:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(222, 228);
-                  break;
-               case 57:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(229, 236);
-                  break;
-               case 58:
-                  if (curChar == 13)
-                     jjCheckNAddStates(110, 113);
-                  break;
-               case 59:
-                  if (curChar == 10)
-                     jjCheckNAddStates(110, 113);
-                  break;
-               case 60:
-                  if (curChar == 13)
-                     jjstateSet[jjnewStateCnt++] = 59;
-                  break;
-               case 61:
-                  if (curChar == 39)
-                     jjCheckNAddStates(106, 109);
-                  break;
-               case 62:
-                  if ((0xffffff7f00000200L & l) != 0L)
-                     jjCheckNAddStates(106, 109);
-                  break;
-               case 63:
-                  if (curChar == 39 && kind > 71)
-                     kind = 71;
-                  break;
-               case 65:
-                  if (curChar == 12)
-                     jjCheckNAddStates(106, 109);
-                  break;
-               case 67:
-                  if ((0xffffffff00000000L & l) != 0L)
-                     jjCheckNAddStates(106, 109);
-                  break;
-               case 68:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(237, 242);
-                  break;
-               case 69:
-                  if ((0x100003600L & l) != 0L)
-                     jjCheckNAddStates(106, 109);
-                  break;
-               case 70:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(243, 251);
-                  break;
-               case 71:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(252, 256);
-                  break;
-               case 72:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(257, 262);
-                  break;
-               case 73:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(263, 269);
-                  break;
-               case 74:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(270, 277);
-                  break;
-               case 75:
-                  if (curChar == 13)
-                     jjCheckNAddStates(106, 109);
-                  break;
-               case 76:
-                  if (curChar == 10)
-                     jjCheckNAddStates(106, 109);
-                  break;
-               case 77:
-                  if (curChar == 13)
-                     jjstateSet[jjnewStateCnt++] = 76;
-                  break;
-               case 78:
-                  if (curChar == 36)
-                     jjCheckNAddStates(102, 105);
-                  break;
-               case 81:
-                  if ((0x3ff200000000000L & l) == 0L)
-                     break;
-                  if (kind > 76)
-                     kind = 76;
-                  jjCheckNAddTwoStates(81, 82);
-                  break;
-               case 83:
-                  if ((0xffffffff00000000L & l) == 0L)
-                     break;
-                  if (kind > 76)
-                     kind = 76;
-                  jjCheckNAddTwoStates(81, 82);
-                  break;
-               case 84:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 76)
-                     kind = 76;
-                  jjCheckNAddStates(278, 281);
-                  break;
-               case 85:
-                  if ((0x100003600L & l) == 0L)
-                     break;
-                  if (kind > 76)
-                     kind = 76;
-                  jjCheckNAddTwoStates(81, 82);
-                  break;
-               case 86:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 76)
-                     kind = 76;
-                  jjCheckNAddStates(282, 288);
-                  break;
-               case 87:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 76)
-                     kind = 76;
-                  jjCheckNAddStates(289, 291);
-                  break;
-               case 88:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 76)
-                     kind = 76;
-                  jjCheckNAddStates(292, 295);
-                  break;
-               case 89:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 76)
-                     kind = 76;
-                  jjCheckNAddStates(296, 300);
-                  break;
-               case 90:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 76)
-                     kind = 76;
-                  jjCheckNAddStates(301, 306);
-                  break;
-               case 93:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 76)
-                     kind = 76;
-                  jjCheckNAddStates(307, 310);
-                  break;
-               case 94:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 76)
-                     kind = 76;
-                  jjCheckNAddStates(311, 317);
-                  break;
-               case 95:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 76)
-                     kind = 76;
-                  jjCheckNAddStates(318, 320);
-                  break;
-               case 96:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 76)
-                     kind = 76;
-                  jjCheckNAddStates(321, 324);
-                  break;
-               case 97:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 76)
-                     kind = 76;
-                  jjCheckNAddStates(325, 329);
-                  break;
-               case 98:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 76)
-                     kind = 76;
-                  jjCheckNAddStates(330, 335);
-                  break;
-               case 99:
-                  if (curChar == 35)
-                     jjCheckNAddTwoStates(100, 101);
-                  break;
-               case 100:
-                  if ((0x3ff200000000000L & l) == 0L)
-                     break;
-                  if (kind > 94)
-                     kind = 94;
-                  jjCheckNAddTwoStates(100, 101);
-                  break;
-               case 102:
-                  if ((0xffffffff00000000L & l) == 0L)
-                     break;
-                  if (kind > 94)
-                     kind = 94;
-                  jjCheckNAddTwoStates(100, 101);
-                  break;
-               case 103:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 94)
-                     kind = 94;
-                  jjCheckNAddStates(336, 339);
-                  break;
-               case 104:
-                  if ((0x100003600L & l) == 0L)
-                     break;
-                  if (kind > 94)
-                     kind = 94;
-                  jjCheckNAddTwoStates(100, 101);
-                  break;
-               case 105:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 94)
-                     kind = 94;
-                  jjCheckNAddStates(340, 346);
-                  break;
-               case 106:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 94)
-                     kind = 94;
-                  jjCheckNAddStates(347, 349);
-                  break;
-               case 107:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 94)
-                     kind = 94;
-                  jjCheckNAddStates(350, 353);
-                  break;
-               case 108:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 94)
-                     kind = 94;
-                  jjCheckNAddStates(354, 358);
-                  break;
-               case 109:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 94)
-                     kind = 94;
-                  jjCheckNAddStates(359, 364);
-                  break;
-               case 111:
-                  if (curChar == 45)
-                     jjstateSet[jjnewStateCnt++] = 112;
-                  break;
-               case 115:
-                  if ((0xffffffff00000000L & l) == 0L)
-                     break;
-                  if (kind > 101)
-                     kind = 101;
-                  jjCheckNAddTwoStates(113, 114);
-                  break;
-               case 116:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 101)
-                     kind = 101;
-                  jjCheckNAddStates(365, 368);
-                  break;
-               case 117:
-                  if ((0x100003600L & l) == 0L)
-                     break;
-                  if (kind > 101)
-                     kind = 101;
-                  jjCheckNAddTwoStates(113, 114);
-                  break;
-               case 118:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 101)
-                     kind = 101;
-                  jjCheckNAddStates(369, 375);
-                  break;
-               case 119:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 101)
-                     kind = 101;
-                  jjCheckNAddStates(376, 378);
-                  break;
-               case 120:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 101)
-                     kind = 101;
-                  jjCheckNAddStates(379, 382);
-                  break;
-               case 121:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 101)
-                     kind = 101;
-                  jjCheckNAddStates(383, 387);
-                  break;
-               case 122:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 101)
-                     kind = 101;
-                  jjCheckNAddStates(388, 393);
-                  break;
-               case 125:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 101)
-                     kind = 101;
-                  jjCheckNAddStates(394, 397);
-                  break;
-               case 126:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 101)
-                     kind = 101;
-                  jjCheckNAddStates(398, 404);
-                  break;
-               case 127:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 101)
-                     kind = 101;
-                  jjCheckNAddStates(405, 407);
-                  break;
-               case 128:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 101)
-                     kind = 101;
-                  jjCheckNAddStates(408, 411);
-                  break;
-               case 129:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 101)
-                     kind = 101;
-                  jjCheckNAddStates(412, 416);
-                  break;
-               case 130:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 101)
-                     kind = 101;
-                  jjCheckNAddStates(417, 422);
-                  break;
-               case 132:
-                  if ((0x100003600L & l) != 0L)
-                     jjAddStates(423, 424);
-                  break;
-               case 133:
-                  if (curChar == 40 && kind > 113)
-                     kind = 113;
-                  break;
-               case 140:
-                  if ((0x100003600L & l) != 0L)
-                     jjAddStates(425, 426);
-                  break;
-               case 141:
-                  if (curChar == 40 && kind > 114)
-                     kind = 114;
-                  break;
-               case 148:
-                  if ((0x100003600L & l) != 0L)
-                     jjAddStates(427, 428);
-                  break;
-               case 149:
-                  if (curChar == 40 && kind > 115)
-                     kind = 115;
-                  break;
-               case 179:
-                  if (curChar == 45)
-                     jjstateSet[jjnewStateCnt++] = 178;
-                  break;
-               case 188:
-                  if (curChar == 45)
-                     jjstateSet[jjnewStateCnt++] = 187;
-                  break;
-               case 190:
-                  if (curChar == 45)
-                     jjstateSet[jjnewStateCnt++] = 189;
-                  break;
-               case 199:
-                  if (curChar == 45)
-                     jjstateSet[jjnewStateCnt++] = 198;
-                  break;
-               case 206:
-                  if (curChar == 45)
-                     jjstateSet[jjnewStateCnt++] = 205;
-                  break;
-               case 215:
-                  if (curChar == 45)
-                     jjstateSet[jjnewStateCnt++] = 214;
-                  break;
-               case 218:
-                  if (curChar == 45)
-                     jjstateSet[jjnewStateCnt++] = 217;
-                  break;
-               case 220:
-                  if ((0x3ff200000000000L & l) == 0L)
-                     break;
-                  if (kind > 72)
-                     kind = 72;
-                  jjCheckNAddTwoStates(220, 221);
-                  break;
-               case 222:
-                  if ((0xffffffff00000000L & l) == 0L)
-                     break;
-                  if (kind > 72)
-                     kind = 72;
-                  jjCheckNAddTwoStates(220, 221);
-                  break;
-               case 223:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 72)
-                     kind = 72;
-                  jjCheckNAddStates(429, 432);
-                  break;
-               case 224:
-                  if ((0x100003600L & l) == 0L)
-                     break;
-                  if (kind > 72)
-                     kind = 72;
-                  jjCheckNAddTwoStates(220, 221);
-                  break;
-               case 225:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 72)
-                     kind = 72;
-                  jjCheckNAddStates(433, 439);
-                  break;
-               case 226:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 72)
-                     kind = 72;
-                  jjCheckNAddStates(440, 442);
-                  break;
-               case 227:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 72)
-                     kind = 72;
-                  jjCheckNAddStates(443, 446);
-                  break;
-               case 228:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 72)
-                     kind = 72;
-                  jjCheckNAddStates(447, 451);
-                  break;
-               case 229:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 72)
-                     kind = 72;
-                  jjCheckNAddStates(452, 457);
-                  break;
-               case 230:
-                  if ((0x3ff200000000000L & l) != 0L)
-                     jjCheckNAddStates(0, 3);
-                  break;
-               case 231:
-                  if ((0x100003600L & l) != 0L)
-                     jjCheckNAddTwoStates(231, 232);
-                  break;
-               case 232:
-                  if (curChar == 40 && kind > 116)
-                     kind = 116;
-                  break;
-               case 234:
-                  if ((0xffffffff00000000L & l) != 0L)
-                     jjCheckNAddStates(0, 3);
-                  break;
-               case 235:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(458, 462);
-                  break;
-               case 236:
-                  if ((0x100003600L & l) != 0L)
-                     jjCheckNAddStates(0, 3);
-                  break;
-               case 237:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(463, 470);
-                  break;
-               case 238:
-               case 444:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(471, 474);
-                  break;
-               case 239:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(475, 479);
-                  break;
-               case 240:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(480, 485);
-                  break;
-               case 241:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(486, 492);
-                  break;
-               case 242:
-                  if (curChar == 33)
-                     jjCheckNAddStates(98, 101);
-                  break;
-               case 243:
-                  if ((0x100003600L & l) != 0L)
-                     jjCheckNAddTwoStates(243, 250);
-                  break;
-               case 251:
-                  if ((0x100003600L & l) != 0L)
-                     jjCheckNAddTwoStates(251, 260);
-                  break;
-               case 261:
-                  if (curChar == 45)
-                     jjAddStates(96, 97);
-                  break;
-               case 265:
-                  if (curChar == 46)
-                     jjCheckNAddStates(78, 95);
-                  break;
-               case 266:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 73)
-                     kind = 73;
-                  jjCheckNAdd(266);
-                  break;
-               case 267:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(267, 268);
-                  break;
-               case 268:
-                  if (curChar == 37 && kind > 77)
-                     kind = 77;
-                  break;
-               case 269:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(269, 271);
-                  break;
-               case 272:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(272, 274);
-                  break;
-               case 275:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(275, 277);
-                  break;
-               case 278:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(278, 280);
-                  break;
-               case 281:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(281, 283);
-                  break;
-               case 284:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(284, 286);
-                  break;
-               case 287:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(287, 289);
-                  break;
-               case 290:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(290, 292);
-                  break;
-               case 293:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(293, 296);
-                  break;
-               case 297:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(297, 300);
-                  break;
-               case 301:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(301, 305);
-                  break;
-               case 306:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(306, 308);
-                  break;
-               case 309:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(309, 310);
-                  break;
-               case 311:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(311, 313);
-                  break;
-               case 314:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(314, 317);
-                  break;
-               case 318:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(114, 118);
-                  break;
-               case 319:
-                  if (curChar == 45)
-                     jjCheckNAdd(320);
-                  break;
-               case 321:
-                  if ((0x3ff200000000000L & l) == 0L)
-                     break;
-                  if (kind > 93)
-                     kind = 93;
-                  jjCheckNAddTwoStates(321, 322);
-                  break;
-               case 323:
-                  if ((0xffffffff00000000L & l) == 0L)
-                     break;
-                  if (kind > 93)
-                     kind = 93;
-                  jjCheckNAddTwoStates(321, 322);
-                  break;
-               case 324:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 93)
-                     kind = 93;
-                  jjCheckNAddStates(493, 496);
-                  break;
-               case 325:
-                  if ((0x100003600L & l) == 0L)
-                     break;
-                  if (kind > 93)
-                     kind = 93;
-                  jjCheckNAddTwoStates(321, 322);
-                  break;
-               case 326:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 93)
-                     kind = 93;
-                  jjCheckNAddStates(497, 503);
-                  break;
-               case 327:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 93)
-                     kind = 93;
-                  jjCheckNAddStates(504, 506);
-                  break;
-               case 328:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 93)
-                     kind = 93;
-                  jjCheckNAddStates(507, 510);
-                  break;
-               case 329:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 93)
-                     kind = 93;
-                  jjCheckNAddStates(511, 515);
-                  break;
-               case 330:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 93)
-                     kind = 93;
-                  jjCheckNAddStates(516, 521);
-                  break;
-               case 333:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 93)
-                     kind = 93;
-                  jjCheckNAddStates(522, 525);
-                  break;
-               case 334:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 93)
-                     kind = 93;
-                  jjCheckNAddStates(526, 532);
-                  break;
-               case 335:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 93)
-                     kind = 93;
-                  jjCheckNAddStates(533, 535);
-                  break;
-               case 336:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 93)
-                     kind = 93;
-                  jjCheckNAddStates(536, 539);
-                  break;
-               case 337:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 93)
-                     kind = 93;
-                  jjCheckNAddStates(540, 544);
-                  break;
-               case 338:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 93)
-                     kind = 93;
-                  jjCheckNAddStates(545, 550);
-                  break;
-               case 340:
-                  if (curChar == 40)
-                     jjCheckNAddStates(551, 556);
-                  break;
-               case 341:
-                  if ((0xfffffc7a00000000L & l) != 0L)
-                     jjCheckNAddStates(557, 560);
-                  break;
-               case 342:
-                  if ((0x100003600L & l) != 0L)
-                     jjCheckNAddTwoStates(342, 343);
-                  break;
-               case 343:
-                  if (curChar == 41 && kind > 75)
-                     kind = 75;
-                  break;
-               case 345:
-                  if ((0xffffffff00000000L & l) != 0L)
-                     jjCheckNAddStates(557, 560);
-                  break;
-               case 346:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(561, 565);
-                  break;
-               case 347:
-                  if ((0x100003600L & l) != 0L)
-                     jjCheckNAddStates(557, 560);
-                  break;
-               case 348:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(566, 573);
-                  break;
-               case 349:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(574, 577);
-                  break;
-               case 350:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(578, 582);
-                  break;
-               case 351:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(583, 588);
-                  break;
-               case 352:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(589, 595);
-                  break;
-               case 353:
-                  if (curChar == 39)
-                     jjCheckNAddStates(596, 599);
-                  break;
-               case 354:
-                  if ((0xffffff7f00000200L & l) != 0L)
-                     jjCheckNAddStates(596, 599);
-                  break;
-               case 355:
-                  if (curChar == 39)
-                     jjCheckNAddTwoStates(342, 343);
-                  break;
-               case 357:
-                  if (curChar == 12)
-                     jjCheckNAddStates(596, 599);
-                  break;
-               case 359:
-                  if ((0xffffffff00000000L & l) != 0L)
-                     jjCheckNAddStates(596, 599);
-                  break;
-               case 360:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(600, 605);
-                  break;
-               case 361:
-                  if ((0x100003600L & l) != 0L)
-                     jjCheckNAddStates(596, 599);
-                  break;
-               case 362:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(606, 614);
-                  break;
-               case 363:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(615, 619);
-                  break;
-               case 364:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(620, 625);
-                  break;
-               case 365:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(626, 632);
-                  break;
-               case 366:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(633, 640);
-                  break;
-               case 367:
-                  if (curChar == 13)
-                     jjCheckNAddStates(596, 599);
-                  break;
-               case 368:
-                  if (curChar == 10)
-                     jjCheckNAddStates(596, 599);
-                  break;
-               case 369:
-                  if (curChar == 13)
-                     jjstateSet[jjnewStateCnt++] = 368;
-                  break;
-               case 370:
-                  if (curChar == 34)
-                     jjCheckNAddStates(641, 644);
-                  break;
-               case 371:
-                  if ((0xfffffffb00000200L & l) != 0L)
-                     jjCheckNAddStates(641, 644);
-                  break;
-               case 372:
-                  if (curChar == 34)
-                     jjCheckNAddTwoStates(342, 343);
-                  break;
-               case 374:
-                  if (curChar == 12)
-                     jjCheckNAddStates(641, 644);
-                  break;
-               case 376:
-                  if ((0xffffffff00000000L & l) != 0L)
-                     jjCheckNAddStates(641, 644);
-                  break;
-               case 377:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(645, 650);
-                  break;
-               case 378:
-                  if ((0x100003600L & l) != 0L)
-                     jjCheckNAddStates(641, 644);
-                  break;
-               case 379:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(651, 659);
-                  break;
-               case 380:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(660, 664);
-                  break;
-               case 381:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(665, 670);
-                  break;
-               case 382:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(671, 677);
-                  break;
-               case 383:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(678, 685);
-                  break;
-               case 384:
-                  if (curChar == 13)
-                     jjCheckNAddStates(641, 644);
-                  break;
-               case 385:
-                  if (curChar == 10)
-                     jjCheckNAddStates(641, 644);
-                  break;
-               case 386:
-                  if (curChar == 13)
-                     jjstateSet[jjnewStateCnt++] = 385;
-                  break;
-               case 387:
-                  if ((0x100003600L & l) != 0L)
-                     jjCheckNAddStates(686, 692);
-                  break;
-               case 390:
-                  if (curChar == 43)
-                     jjAddStates(693, 694);
-                  break;
-               case 391:
-                  if (curChar != 63)
-                     break;
-                  if (kind > 112)
-                     kind = 112;
-                  jjstateSet[jjnewStateCnt++] = 392;
-                  break;
-               case 392:
-                  if (curChar != 63)
-                     break;
-                  if (kind > 112)
-                     kind = 112;
-                  jjCheckNAddStates(695, 698);
-                  break;
-               case 393:
-                  if (curChar == 63 && kind > 112)
-                     kind = 112;
-                  break;
-               case 394:
-               case 409:
-               case 413:
-               case 416:
-               case 419:
-                  if (curChar != 63)
-                     break;
-                  if (kind > 112)
-                     kind = 112;
-                  jjCheckNAdd(393);
-                  break;
-               case 395:
-                  if (curChar != 63)
-                     break;
-                  if (kind > 112)
-                     kind = 112;
-                  jjCheckNAddTwoStates(393, 394);
-                  break;
-               case 396:
-                  if (curChar != 63)
-                     break;
-                  if (kind > 112)
-                     kind = 112;
-                  jjCheckNAddStates(699, 701);
-                  break;
-               case 397:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 112)
-                     kind = 112;
-                  jjAddStates(702, 707);
-                  break;
-               case 398:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 399;
-                  break;
-               case 399:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 400;
-                  break;
-               case 400:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAdd(401);
-                  break;
-               case 401:
-                  if ((0x3ff000000000000L & l) != 0L && kind > 112)
-                     kind = 112;
-                  break;
-               case 402:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 403;
-                  break;
-               case 403:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 404;
-                  break;
-               case 404:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 405;
-                  break;
-               case 405:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 112)
-                     kind = 112;
-                  jjCheckNAdd(393);
-                  break;
-               case 406:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 407;
-                  break;
-               case 407:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 408;
-                  break;
-               case 408:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 112)
-                     kind = 112;
-                  jjstateSet[jjnewStateCnt++] = 409;
-                  break;
-               case 410:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 411;
-                  break;
-               case 411:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 112)
-                     kind = 112;
-                  jjstateSet[jjnewStateCnt++] = 412;
-                  break;
-               case 412:
-                  if (curChar != 63)
-                     break;
-                  if (kind > 112)
-                     kind = 112;
-                  jjCheckNAddTwoStates(393, 413);
-                  break;
-               case 414:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 112)
-                     kind = 112;
-                  jjstateSet[jjnewStateCnt++] = 415;
-                  break;
-               case 415:
-                  if (curChar != 63)
-                     break;
-                  if (kind > 112)
-                     kind = 112;
-                  jjCheckNAddStates(708, 710);
-                  break;
-               case 417:
-                  if (curChar != 63)
-                     break;
-                  if (kind > 112)
-                     kind = 112;
-                  jjCheckNAddTwoStates(393, 416);
-                  break;
-               case 418:
-                  if (curChar != 63)
-                     break;
-                  if (kind > 112)
-                     kind = 112;
-                  jjCheckNAddStates(711, 714);
-                  break;
-               case 420:
-                  if (curChar != 63)
-                     break;
-                  if (kind > 112)
-                     kind = 112;
-                  jjCheckNAddTwoStates(393, 419);
-                  break;
-               case 421:
-                  if (curChar != 63)
-                     break;
-                  if (kind > 112)
-                     kind = 112;
-                  jjCheckNAddStates(715, 717);
-                  break;
-               case 422:
-                  if (curChar == 43)
-                     jjstateSet[jjnewStateCnt++] = 423;
-                  break;
-               case 423:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(424, 430);
-                  break;
-               case 424:
-                  if (curChar == 45)
-                     jjstateSet[jjnewStateCnt++] = 425;
-                  break;
-               case 425:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 112)
-                     kind = 112;
-                  jjstateSet[jjnewStateCnt++] = 426;
-                  break;
-               case 426:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 112)
-                     kind = 112;
-                  jjCheckNAddStates(718, 721);
-                  break;
-               case 427:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 112)
-                     kind = 112;
-                  jjCheckNAdd(401);
-                  break;
-               case 428:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 112)
-                     kind = 112;
-                  jjCheckNAddTwoStates(401, 427);
-                  break;
-               case 429:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 112)
-                     kind = 112;
-                  jjCheckNAddStates(722, 724);
-                  break;
-               case 430:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(725, 729);
-                  break;
-               case 431:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAdd(424);
-                  break;
-               case 432:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(431, 424);
-                  break;
-               case 433:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(730, 732);
-                  break;
-               case 434:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(733, 736);
-                  break;
-               case 436:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 72)
-                     kind = 72;
-                  jjCheckNAddStates(737, 740);
-                  break;
-               case 437:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 72)
-                     kind = 72;
-                  jjCheckNAddStates(741, 747);
-                  break;
-               case 438:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 72)
-                     kind = 72;
-                  jjCheckNAddStates(748, 750);
-                  break;
-               case 439:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 72)
-                     kind = 72;
-                  jjCheckNAddStates(751, 754);
-                  break;
-               case 440:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 72)
-                     kind = 72;
-                  jjCheckNAddStates(755, 759);
-                  break;
-               case 441:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 72)
-                     kind = 72;
-                  jjCheckNAddStates(760, 765);
-                  break;
-               case 442:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(766, 770);
-                  break;
-               case 443:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(771, 778);
-                  break;
-               case 445:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(779, 783);
-                  break;
-               case 446:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(784, 789);
-                  break;
-               case 447:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(790, 796);
-                  break;
-               case 448:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 73)
-                     kind = 73;
-                  jjCheckNAddStates(4, 77);
-                  break;
-               case 449:
-                  if ((0x3ff000000000000L & l) == 0L)
-                     break;
-                  if (kind > 73)
-                     kind = 73;
-                  jjCheckNAdd(449);
-                  break;
-               case 450:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(450, 451);
-                  break;
-               case 451:
-                  if (curChar == 46)
-                     jjCheckNAdd(266);
-                  break;
-               case 452:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(452, 268);
-                  break;
-               case 453:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(453, 454);
-                  break;
-               case 454:
-                  if (curChar == 46)
-                     jjCheckNAdd(267);
-                  break;
-               case 455:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(455, 271);
-                  break;
-               case 456:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(456, 457);
-                  break;
-               case 457:
-                  if (curChar == 46)
-                     jjCheckNAdd(269);
-                  break;
-               case 458:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(458, 274);
-                  break;
-               case 459:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(459, 460);
-                  break;
-               case 460:
-                  if (curChar == 46)
-                     jjCheckNAdd(272);
-                  break;
-               case 461:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(461, 277);
-                  break;
-               case 462:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(462, 463);
-                  break;
-               case 463:
-                  if (curChar == 46)
-                     jjCheckNAdd(275);
-                  break;
-               case 464:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(464, 280);
-                  break;
-               case 465:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(465, 466);
-                  break;
-               case 466:
-                  if (curChar == 46)
-                     jjCheckNAdd(278);
-                  break;
-               case 467:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(467, 283);
-                  break;
-               case 468:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(468, 469);
-                  break;
-               case 469:
-                  if (curChar == 46)
-                     jjCheckNAdd(281);
-                  break;
-               case 470:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(470, 286);
-                  break;
-               case 471:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(471, 472);
-                  break;
-               case 472:
-                  if (curChar == 46)
-                     jjCheckNAdd(284);
-                  break;
-               case 473:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(473, 289);
-                  break;
-               case 474:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(474, 475);
-                  break;
-               case 475:
-                  if (curChar == 46)
-                     jjCheckNAdd(287);
-                  break;
-               case 476:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(476, 292);
-                  break;
-               case 477:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(477, 478);
-                  break;
-               case 478:
-                  if (curChar == 46)
-                     jjCheckNAdd(290);
-                  break;
-               case 479:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(479, 296);
-                  break;
-               case 480:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(480, 481);
-                  break;
-               case 481:
-                  if (curChar == 46)
-                     jjCheckNAdd(293);
-                  break;
-               case 482:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(482, 300);
-                  break;
-               case 483:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(483, 484);
-                  break;
-               case 484:
-                  if (curChar == 46)
-                     jjCheckNAdd(297);
-                  break;
-               case 485:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(485, 305);
-                  break;
-               case 486:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(486, 487);
-                  break;
-               case 487:
-                  if (curChar == 46)
-                     jjCheckNAdd(301);
-                  break;
-               case 488:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(488, 308);
-                  break;
-               case 489:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(489, 490);
-                  break;
-               case 490:
-                  if (curChar == 46)
-                     jjCheckNAdd(306);
-                  break;
-               case 491:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(491, 310);
-                  break;
-               case 492:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(492, 493);
-                  break;
-               case 493:
-                  if (curChar == 46)
-                     jjCheckNAdd(309);
-                  break;
-               case 494:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(494, 313);
-                  break;
-               case 495:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(495, 496);
-                  break;
-               case 496:
-                  if (curChar == 46)
-                     jjCheckNAdd(311);
-                  break;
-               case 497:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(497, 317);
-                  break;
-               case 498:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(498, 499);
-                  break;
-               case 499:
-                  if (curChar == 46)
-                     jjCheckNAdd(314);
-                  break;
-               case 500:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddStates(797, 801);
-                  break;
-               case 501:
-                  if ((0x3ff000000000000L & l) != 0L)
-                     jjCheckNAddTwoStates(501, 502);
-                  break;
-               case 502:
-                  if (curChar == 46)
-                     jjCheckNAdd(318);
-                  break;
-               default : break;
+        }
+        switch (curChar) {
+        case 33:
+            return jjMoveStringLiteralDfa2_0(active0, 0x400L, active1, 0L);
+        case 38:
+            if ((active0 & 0x2000000000L) != 0L) {
+                return jjStopAtPos(1, 37);
             }
-         } while(i != startsAt);
-      }
-      else if (curChar < 128)
-      {
-         long l = 1L << (curChar & 077);
-         do
-         {
-            switch(jjstateSet[--i])
-            {
-               case 506:
-                  if ((0x7fffffe87fffffeL & l) != 0L)
-                  {
-                     if (kind > 101)
-                        kind = 101;
-                     jjCheckNAddTwoStates(113, 114);
-                  }
-                  else if (curChar == 92)
-                     jjCheckNAddTwoStates(115, 116);
-                  break;
-               case 166:
-                  if ((0x7fffffe07fffffeL & l) != 0L)
-                  {
-                     if (kind > 101)
-                        kind = 101;
-                     jjCheckNAddTwoStates(113, 114);
-                  }
-                  else if (curChar == 92)
-                     jjCheckNAddTwoStates(115, 125);
-                  if ((0x80000000800L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 165;
-                  break;
-               case 174:
-                  if ((0x7fffffe87fffffeL & l) != 0L)
-                  {
-                     if (kind > 101)
-                        kind = 101;
-                     jjCheckNAddTwoStates(113, 114);
-                  }
-                  else if (curChar == 92)
-                     jjCheckNAddTwoStates(115, 116);
-                  if ((0x80000000800L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 173;
-                  break;
-               case 504:
-                  if ((0x20000000200L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 259;
-                  else if ((0x1000000010L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 249;
-                  break;
-               case 178:
-                  if ((0x7fffffe07fffffeL & l) != 0L)
-                  {
-                     if (kind > 101)
-                        kind = 101;
-                     jjCheckNAddTwoStates(113, 114);
-                  }
-                  if ((0x200000002000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 216;
-                  else if ((0x80000000800000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 204;
-                  else if ((0x800000008000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 188;
-                  if ((0x200000002000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 177;
-                  break;
-               case 503:
-                  if ((0x7fffffe87fffffeL & l) != 0L)
-                     jjCheckNAddStates(0, 3);
-                  else if (curChar == 92)
-                     jjCheckNAddTwoStates(222, 223);
-                  if ((0x7fffffe87fffffeL & l) != 0L)
-                  {
-                     if (kind > 72)
-                        kind = 72;
-                     jjCheckNAddTwoStates(220, 221);
-                  }
-                  else if (curChar == 92)
-                     jjCheckNAddTwoStates(234, 235);
-                  break;
-               case 4:
-                  if ((0x7fffffe07fffffeL & l) != 0L)
-                  {
-                     if (kind > 72)
-                        kind = 72;
-                     jjCheckNAddStates(802, 807);
-                  }
-                  else if (curChar == 92)
-                     jjCheckNAddStates(808, 811);
-                  else if (curChar == 64)
-                     jjAddStates(812, 816);
-                  if ((0x20000000200000L & l) != 0L)
-                     jjAddStates(817, 819);
-                  else if ((0x800000008L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 155;
-                  else if ((0x200000002L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 145;
-                  else if ((0x4000000040000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 137;
-                  else if ((0x4000000040L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 33;
-                  else if (curChar == 64)
-                     jjAddStates(820, 823);
-                  break;
-               case 175:
-                  if ((0x7fffffe87fffffeL & l) != 0L)
-                  {
-                     if (kind > 101)
-                        kind = 101;
-                     jjCheckNAddTwoStates(113, 114);
-                  }
-                  else if (curChar == 92)
-                     jjCheckNAddTwoStates(115, 116);
-                  break;
-               case 33:
-                  if ((0x7fffffe87fffffeL & l) != 0L)
-                     jjCheckNAddStates(0, 3);
-                  else if (curChar == 92)
-                     jjCheckNAddTwoStates(222, 223);
-                  if ((0x7fffffe87fffffeL & l) != 0L)
-                  {
-                     if (kind > 72)
-                        kind = 72;
-                     jjCheckNAddTwoStates(220, 221);
-                  }
-                  else if (curChar == 92)
-                     jjCheckNAddTwoStates(234, 235);
-                  if ((0x20000000200L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 32;
-                  break;
-               case 176:
-                  if ((0x7fffffe87fffffeL & l) != 0L)
-                  {
-                     if (kind > 101)
-                        kind = 101;
-                     jjCheckNAddTwoStates(113, 114);
-                  }
-                  else if (curChar == 92)
-                     jjCheckNAddTwoStates(115, 116);
-                  if ((0x400000004000000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 175;
-                  break;
-               case 42:
-                  if ((0x7fffffe07fffffeL & l) != 0L)
-                     jjCheckNAddStates(0, 3);
-                  if ((0x7fffffe07fffffeL & l) != 0L)
-                  {
-                     if (kind > 72)
-                        kind = 72;
-                     jjCheckNAddTwoStates(220, 221);
-                  }
-                  if ((0x200000002000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 41;
-                  break;
-               case 177:
-                  if ((0x7fffffe87fffffeL & l) != 0L)
-                  {
-                     if (kind > 101)
-                        kind = 101;
-                     jjCheckNAddTwoStates(113, 114);
-                  }
-                  else if (curChar == 92)
-                     jjCheckNAddTwoStates(115, 116);
-                  if ((0x8000000080000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 215;
-                  else if ((0x800000008000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 176;
-                  break;
-               case 79:
-                  if ((0x7fffffe07fffffeL & l) != 0L)
-                  {
-                     if (kind > 76)
-                        kind = 76;
-                     jjCheckNAddTwoStates(81, 82);
-                  }
-                  else if (curChar == 92)
-                     jjCheckNAddTwoStates(83, 93);
-                  break;
-               case 2:
-                  if (kind > 5)
-                     kind = 5;
-                  break;
-               case 5:
-                  if (curChar == 123)
-                     jjstateSet[jjnewStateCnt++] = 6;
-                  break;
-               case 8:
-                  if ((0x7fffffe07fffffeL & l) != 0L)
-                     jjCheckNAddStates(123, 125);
-                  break;
-               case 9:
-                  if ((0x7fffffe87fffffeL & l) != 0L)
-                     jjCheckNAddStates(123, 125);
-                  break;
-               case 10:
-                  if (curChar == 125 && kind > 40)
-                     kind = 40;
-                  break;
-               case 11:
-                  if (curChar == 92)
-                     jjCheckNAddTwoStates(12, 13);
-                  break;
-               case 12:
-                  if ((0x7fffffffffffffffL & l) != 0L)
-                     jjCheckNAddStates(123, 125);
-                  break;
-               case 13:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(126, 130);
-                  break;
-               case 15:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(131, 138);
-                  break;
-               case 16:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(139, 142);
-                  break;
-               case 17:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(143, 147);
-                  break;
-               case 18:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(148, 153);
-                  break;
-               case 19:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(154, 160);
-                  break;
-               case 21:
-                  if (curChar == 92)
-                     jjCheckNAddTwoStates(12, 22);
-                  break;
-               case 22:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(161, 165);
-                  break;
-               case 23:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(166, 173);
-                  break;
-               case 24:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(174, 177);
-                  break;
-               case 25:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(178, 182);
-                  break;
-               case 26:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(183, 188);
-                  break;
-               case 27:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(189, 195);
-                  break;
-               case 29:
-                  if ((0x4000000040000L & l) != 0L && kind > 68)
-                     kind = 68;
-                  break;
-               case 30:
-               case 35:
-                  if ((0x2000000020L & l) != 0L)
-                     jjCheckNAdd(29);
-                  break;
-               case 31:
-                  if ((0x10000000100000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 30;
-                  break;
-               case 32:
-                  if ((0x100000001000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 31;
-                  break;
-               case 34:
-                  if ((0x4000000040L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 33;
-                  break;
-               case 36:
-                  if ((0x10000000100000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 35;
-                  break;
-               case 37:
-                  if ((0x100000001000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 36;
-                  break;
-               case 38:
-                  if ((0x20000000200L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 37;
-                  break;
-               case 39:
-                  if ((0x4000000040L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 38;
-                  break;
-               case 41:
-                  if ((0x8000000080000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 40;
-                  break;
-               case 45:
-               case 50:
-                  if ((0x7fffffffffffffffL & l) != 0L)
-                     jjCheckNAddStates(110, 113);
-                  break;
-               case 47:
-                  if (curChar == 92)
-                     jjAddStates(824, 827);
-                  break;
-               case 49:
-                  if (curChar == 92)
-                     jjAddStates(828, 829);
-                  break;
-               case 51:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(196, 201);
-                  break;
-               case 53:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(202, 210);
-                  break;
-               case 54:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(211, 215);
-                  break;
-               case 55:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(216, 221);
-                  break;
-               case 56:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(222, 228);
-                  break;
-               case 57:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(229, 236);
-                  break;
-               case 62:
-               case 67:
-                  if ((0x7fffffffffffffffL & l) != 0L)
-                     jjCheckNAddStates(106, 109);
-                  break;
-               case 64:
-                  if (curChar == 92)
-                     jjAddStates(830, 833);
-                  break;
-               case 66:
-                  if (curChar == 92)
-                     jjAddStates(834, 835);
-                  break;
-               case 68:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(237, 242);
-                  break;
-               case 70:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(243, 251);
-                  break;
-               case 71:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(252, 256);
-                  break;
-               case 72:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(257, 262);
-                  break;
-               case 73:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(263, 269);
-                  break;
-               case 74:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(270, 277);
-                  break;
-               case 80:
-                  if ((0x7fffffe07fffffeL & l) == 0L)
-                     break;
-                  if (kind > 76)
-                     kind = 76;
-                  jjCheckNAddTwoStates(81, 82);
-                  break;
-               case 81:
-                  if ((0x7fffffe87fffffeL & l) == 0L)
-                     break;
-                  if (kind > 76)
-                     kind = 76;
-                  jjCheckNAddTwoStates(81, 82);
-                  break;
-               case 82:
-                  if (curChar == 92)
-                     jjCheckNAddTwoStates(83, 84);
-                  break;
-               case 83:
-                  if ((0x7fffffffffffffffL & l) == 0L)
-                     break;
-                  if (kind > 76)
-                     kind = 76;
-                  jjCheckNAddTwoStates(81, 82);
-                  break;
-               case 84:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 76)
-                     kind = 76;
-                  jjCheckNAddStates(278, 281);
-                  break;
-               case 86:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 76)
-                     kind = 76;
-                  jjCheckNAddStates(282, 288);
-                  break;
-               case 87:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 76)
-                     kind = 76;
-                  jjCheckNAddStates(289, 291);
-                  break;
-               case 88:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 76)
-                     kind = 76;
-                  jjCheckNAddStates(292, 295);
-                  break;
-               case 89:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 76)
-                     kind = 76;
-                  jjCheckNAddStates(296, 300);
-                  break;
-               case 90:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 76)
-                     kind = 76;
-                  jjCheckNAddStates(301, 306);
-                  break;
-               case 92:
-                  if (curChar == 92)
-                     jjCheckNAddTwoStates(83, 93);
-                  break;
-               case 93:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 76)
-                     kind = 76;
-                  jjCheckNAddStates(307, 310);
-                  break;
-               case 94:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 76)
-                     kind = 76;
-                  jjCheckNAddStates(311, 317);
-                  break;
-               case 95:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 76)
-                     kind = 76;
-                  jjCheckNAddStates(318, 320);
-                  break;
-               case 96:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 76)
-                     kind = 76;
-                  jjCheckNAddStates(321, 324);
-                  break;
-               case 97:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 76)
-                     kind = 76;
-                  jjCheckNAddStates(325, 329);
-                  break;
-               case 98:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 76)
-                     kind = 76;
-                  jjCheckNAddStates(330, 335);
-                  break;
-               case 100:
-                  if ((0x7fffffe87fffffeL & l) == 0L)
-                     break;
-                  if (kind > 94)
-                     kind = 94;
-                  jjCheckNAddTwoStates(100, 101);
-                  break;
-               case 101:
-                  if (curChar == 92)
-                     jjAddStates(836, 837);
-                  break;
-               case 102:
-                  if ((0x7fffffffffffffffL & l) == 0L)
-                     break;
-                  if (kind > 94)
-                     kind = 94;
-                  jjCheckNAddTwoStates(100, 101);
-                  break;
-               case 103:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 94)
-                     kind = 94;
-                  jjCheckNAddStates(336, 339);
-                  break;
-               case 105:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 94)
-                     kind = 94;
-                  jjCheckNAddStates(340, 346);
-                  break;
-               case 106:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 94)
-                     kind = 94;
-                  jjCheckNAddStates(347, 349);
-                  break;
-               case 107:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 94)
-                     kind = 94;
-                  jjCheckNAddStates(350, 353);
-                  break;
-               case 108:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 94)
-                     kind = 94;
-                  jjCheckNAddStates(354, 358);
-                  break;
-               case 109:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 94)
-                     kind = 94;
-                  jjCheckNAddStates(359, 364);
-                  break;
-               case 110:
-                  if (curChar == 64)
-                     jjAddStates(820, 823);
-                  break;
-               case 112:
-                  if ((0x7fffffe07fffffeL & l) == 0L)
-                     break;
-                  if (kind > 101)
-                     kind = 101;
-                  jjCheckNAddTwoStates(113, 114);
-                  break;
-               case 113:
-                  if ((0x7fffffe87fffffeL & l) == 0L)
-                     break;
-                  if (kind > 101)
-                     kind = 101;
-                  jjCheckNAddTwoStates(113, 114);
-                  break;
-               case 114:
-                  if (curChar == 92)
-                     jjCheckNAddTwoStates(115, 116);
-                  break;
-               case 115:
-                  if ((0x7fffffffffffffffL & l) == 0L)
-                     break;
-                  if (kind > 101)
-                     kind = 101;
-                  jjCheckNAddTwoStates(113, 114);
-                  break;
-               case 116:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 101)
-                     kind = 101;
-                  jjCheckNAddStates(365, 368);
-                  break;
-               case 118:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 101)
-                     kind = 101;
-                  jjCheckNAddStates(369, 375);
-                  break;
-               case 119:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 101)
-                     kind = 101;
-                  jjCheckNAddStates(376, 378);
-                  break;
-               case 120:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 101)
-                     kind = 101;
-                  jjCheckNAddStates(379, 382);
-                  break;
-               case 121:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 101)
-                     kind = 101;
-                  jjCheckNAddStates(383, 387);
-                  break;
-               case 122:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 101)
-                     kind = 101;
-                  jjCheckNAddStates(388, 393);
-                  break;
-               case 124:
-                  if (curChar == 92)
-                     jjCheckNAddTwoStates(115, 125);
-                  break;
-               case 125:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 101)
-                     kind = 101;
-                  jjCheckNAddStates(394, 397);
-                  break;
-               case 126:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 101)
-                     kind = 101;
-                  jjCheckNAddStates(398, 404);
-                  break;
-               case 127:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 101)
-                     kind = 101;
-                  jjCheckNAddStates(405, 407);
-                  break;
-               case 128:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 101)
-                     kind = 101;
-                  jjCheckNAddStates(408, 411);
-                  break;
-               case 129:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 101)
-                     kind = 101;
-                  jjCheckNAddStates(412, 416);
-                  break;
-               case 130:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 101)
-                     kind = 101;
-                  jjCheckNAddStates(417, 422);
-                  break;
-               case 131:
-                  if ((0x2000000020L & l) != 0L)
-                     jjAddStates(423, 424);
-                  break;
-               case 134:
-                  if ((0x40000000400000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 131;
-                  break;
-               case 135:
-                  if ((0x800000008000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 134;
-                  break;
-               case 136:
-                  if ((0x200000002000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 135;
-                  break;
-               case 137:
-                  if ((0x2000000020L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 136;
-                  break;
-               case 138:
-                  if ((0x4000000040000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 137;
-                  break;
-               case 139:
-                  if ((0x1000000010L & l) != 0L)
-                     jjAddStates(425, 426);
-                  break;
-               case 142:
-                  if ((0x400000004000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 139;
-                  break;
-               case 143:
-                  if ((0x2000000020L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 142;
-                  break;
-               case 144:
-                  if ((0x1000000010000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 143;
-                  break;
-               case 145:
-                  if ((0x1000000010000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 144;
-                  break;
-               case 146:
-                  if ((0x200000002L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 145;
-                  break;
-               case 147:
-                  if ((0x8000000080000L & l) != 0L)
-                     jjAddStates(427, 428);
-                  break;
-               case 150:
-                  if ((0x400000004000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 147;
-                  break;
-               case 151:
-                  if ((0x20000000200L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 150;
-                  break;
-               case 152:
-                  if ((0x200000002L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 151;
-                  break;
-               case 153:
-                  if ((0x10000000100000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 152;
-                  break;
-               case 154:
-                  if ((0x400000004000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 153;
-                  break;
-               case 155:
-                  if ((0x800000008000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 154;
-                  break;
-               case 156:
-                  if ((0x800000008L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 155;
-                  break;
-               case 157:
-                  if (curChar == 64)
-                     jjAddStates(812, 816);
-                  break;
-               case 158:
-                  if ((0x8000000080000L & l) != 0L && kind > 100)
-                     kind = 100;
-                  break;
-               case 159:
-               case 167:
-               case 180:
-               case 191:
-               case 207:
-                  if ((0x2000000020L & l) != 0L)
-                     jjCheckNAdd(158);
-                  break;
-               case 160:
-                  if ((0x200000002000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 159;
-                  break;
-               case 161:
-                  if ((0x200000002L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 160;
-                  break;
-               case 162:
-                  if ((0x4000000040000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 161;
-                  break;
-               case 163:
-                  if ((0x4000000040L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 162;
-                  break;
-               case 164:
-                  if ((0x200000002000000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 163;
-                  break;
-               case 165:
-                  if ((0x2000000020L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 164;
-                  break;
-               case 168:
-                  if ((0x200000002000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 167;
-                  break;
-               case 169:
-                  if ((0x200000002L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 168;
-                  break;
-               case 170:
-                  if ((0x4000000040000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 169;
-                  break;
-               case 171:
-                  if ((0x4000000040L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 170;
-                  break;
-               case 172:
-                  if ((0x200000002000000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 171;
-                  break;
-               case 173:
-                  if ((0x2000000020L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 172;
-                  break;
-               case 181:
-                  if ((0x200000002000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 180;
-                  break;
-               case 182:
-                  if ((0x200000002L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 181;
-                  break;
-               case 183:
-                  if ((0x4000000040000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 182;
-                  break;
-               case 184:
-                  if ((0x4000000040L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 183;
-                  break;
-               case 185:
-                  if ((0x200000002000000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 184;
-                  break;
-               case 186:
-                  if ((0x2000000020L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 185;
-                  break;
-               case 187:
-                  if ((0x80000000800L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 186;
-                  break;
-               case 189:
-                  if ((0x800000008000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 188;
-                  break;
-               case 192:
-                  if ((0x200000002000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 191;
-                  break;
-               case 193:
-                  if ((0x200000002L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 192;
-                  break;
-               case 194:
-                  if ((0x4000000040000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 193;
-                  break;
-               case 195:
-                  if ((0x4000000040L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 194;
-                  break;
-               case 196:
-                  if ((0x200000002000000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 195;
-                  break;
-               case 197:
-                  if ((0x2000000020L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 196;
-                  break;
-               case 198:
-                  if ((0x80000000800L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 197;
-                  break;
-               case 200:
-                  if ((0x10000000100000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 199;
-                  break;
-               case 201:
-                  if ((0x20000000200L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 200;
-                  break;
-               case 202:
-                  if ((0x80000000800L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 201;
-                  break;
-               case 203:
-                  if ((0x400000004L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 202;
-                  break;
-               case 204:
-                  if ((0x2000000020L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 203;
-                  break;
-               case 205:
-                  if ((0x80000000800000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 204;
-                  break;
-               case 208:
-                  if ((0x200000002000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 207;
-                  break;
-               case 209:
-                  if ((0x200000002L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 208;
-                  break;
-               case 210:
-                  if ((0x4000000040000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 209;
-                  break;
-               case 211:
-                  if ((0x4000000040L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 210;
-                  break;
-               case 212:
-                  if ((0x200000002000000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 211;
-                  break;
-               case 213:
-                  if ((0x2000000020L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 212;
-                  break;
-               case 214:
-                  if ((0x80000000800L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 213;
-                  break;
-               case 216:
-                  if ((0x8000000080000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 215;
-                  break;
-               case 217:
-                  if ((0x200000002000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 216;
-                  break;
-               case 220:
-                  if ((0x7fffffe87fffffeL & l) == 0L)
-                     break;
-                  if (kind > 72)
-                     kind = 72;
-                  jjCheckNAddTwoStates(220, 221);
-                  break;
-               case 221:
-                  if (curChar == 92)
-                     jjCheckNAddTwoStates(222, 223);
-                  break;
-               case 222:
-                  if ((0x7fffffffffffffffL & l) == 0L)
-                     break;
-                  if (kind > 72)
-                     kind = 72;
-                  jjCheckNAddTwoStates(220, 221);
-                  break;
-               case 223:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 72)
-                     kind = 72;
-                  jjCheckNAddStates(429, 432);
-                  break;
-               case 225:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 72)
-                     kind = 72;
-                  jjCheckNAddStates(433, 439);
-                  break;
-               case 226:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 72)
-                     kind = 72;
-                  jjCheckNAddStates(440, 442);
-                  break;
-               case 227:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 72)
-                     kind = 72;
-                  jjCheckNAddStates(443, 446);
-                  break;
-               case 228:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 72)
-                     kind = 72;
-                  jjCheckNAddStates(447, 451);
-                  break;
-               case 229:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 72)
-                     kind = 72;
-                  jjCheckNAddStates(452, 457);
-                  break;
-               case 230:
-                  if ((0x7fffffe87fffffeL & l) != 0L)
-                     jjCheckNAddStates(0, 3);
-                  break;
-               case 233:
-                  if (curChar == 92)
-                     jjCheckNAddTwoStates(234, 235);
-                  break;
-               case 234:
-                  if ((0x7fffffffffffffffL & l) != 0L)
-                     jjCheckNAddStates(0, 3);
-                  break;
-               case 235:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(458, 462);
-                  break;
-               case 237:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(463, 470);
-                  break;
-               case 238:
-               case 444:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(471, 474);
-                  break;
-               case 239:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(475, 479);
-                  break;
-               case 240:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(480, 485);
-                  break;
-               case 241:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(486, 492);
-                  break;
-               case 244:
-                  if ((0x10000000100000L & l) != 0L && kind > 70)
-                     kind = 70;
-                  break;
-               case 245:
-                  if ((0x100000001000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 244;
-                  break;
-               case 246:
-                  if ((0x20000000200000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 245;
-                  break;
-               case 247:
-                  if ((0x200000002L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 246;
-                  break;
-               case 248:
-                  if ((0x4000000040L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 247;
-                  break;
-               case 249:
-                  if ((0x2000000020L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 248;
-                  break;
-               case 250:
-                  if ((0x1000000010L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 249;
-                  break;
-               case 252:
-                  if ((0x10000000100000L & l) != 0L && kind > 102)
-                     kind = 102;
-                  break;
-               case 253:
-                  if ((0x400000004000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 252;
-                  break;
-               case 254:
-                  if ((0x200000002L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 253;
-                  break;
-               case 255:
-                  if ((0x10000000100000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 254;
-                  break;
-               case 256:
-                  if ((0x4000000040000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 255;
-                  break;
-               case 257:
-                  if ((0x800000008000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 256;
-                  break;
-               case 258:
-                  if ((0x1000000010000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 257;
-                  break;
-               case 259:
-                  if ((0x200000002000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 258;
-                  break;
-               case 260:
-                  if ((0x20000000200L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 259;
-                  break;
-               case 262:
-                  if ((0x7fffffe07fffffeL & l) == 0L)
-                     break;
-                  if (kind > 72)
-                     kind = 72;
-                  jjCheckNAddTwoStates(220, 221);
-                  break;
-               case 263:
-                  if ((0x7fffffe07fffffeL & l) != 0L)
-                     jjCheckNAddStates(0, 3);
-                  break;
-               case 264:
-                  if ((0x7fffffe07fffffeL & l) == 0L)
-                     break;
-                  if (kind > 72)
-                     kind = 72;
-                  jjCheckNAddStates(802, 807);
-                  break;
-               case 270:
-                  if ((0x10000000100000L & l) != 0L && kind > 78)
-                     kind = 78;
-                  break;
-               case 271:
-                  if ((0x1000000010000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 270;
-                  break;
-               case 273:
-                  if ((0x200000002000L & l) != 0L && kind > 79)
-                     kind = 79;
-                  break;
-               case 274:
-                  if ((0x200000002000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 273;
-                  break;
-               case 276:
-                  if ((0x200000002000L & l) != 0L && kind > 80)
-                     kind = 80;
-                  break;
-               case 277:
-                  if ((0x800000008L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 276;
-                  break;
-               case 279:
-                  if ((0x800000008L & l) != 0L && kind > 81)
-                     kind = 81;
-                  break;
-               case 280:
-                  if ((0x1000000010000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 279;
-                  break;
-               case 282:
-                  if ((0x400000004000L & l) != 0L && kind > 82)
-                     kind = 82;
-                  break;
-               case 283:
-                  if ((0x20000000200L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 282;
-                  break;
-               case 285:
-                  if ((0x100000001000000L & l) != 0L && kind > 83)
-                     kind = 83;
-                  break;
-               case 286:
-                  if ((0x1000000010000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 285;
-                  break;
-               case 288:
-                  if ((0x200000002000L & l) != 0L && kind > 84)
-                     kind = 84;
-                  break;
-               case 289:
-                  if ((0x2000000020L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 288;
-                  break;
-               case 291:
-                  if ((0x100000001000000L & l) != 0L && kind > 85)
-                     kind = 85;
-                  break;
-               case 292:
-                  if ((0x2000000020L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 291;
-                  break;
-               case 294:
-                  if ((0x8000000080L & l) != 0L && kind > 86)
-                     kind = 86;
-                  break;
-               case 295:
-                  if ((0x2000000020L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 294;
-                  break;
-               case 296:
-                  if ((0x1000000010L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 295;
-                  break;
-               case 298:
-                  if ((0x1000000010L & l) != 0L && kind > 87)
-                     kind = 87;
-                  break;
-               case 299:
-                  if ((0x200000002L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 298;
-                  break;
-               case 300:
-                  if ((0x4000000040000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 299;
-                  break;
-               case 302:
-                  if ((0x1000000010L & l) != 0L && kind > 88)
-                     kind = 88;
-                  break;
-               case 303:
-                  if ((0x200000002L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 302;
-                  break;
-               case 304:
-                  if ((0x4000000040000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 303;
-                  break;
-               case 305:
-                  if ((0x8000000080L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 304;
-                  break;
-               case 307:
-                  if ((0x8000000080000L & l) != 0L && kind > 89)
-                     kind = 89;
-                  break;
-               case 308:
-                  if ((0x200000002000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 307;
-                  break;
-               case 310:
-                  if ((0x8000000080000L & l) != 0L && kind > 90)
-                     kind = 90;
-                  break;
-               case 312:
-                  if ((0x400000004000000L & l) != 0L && kind > 91)
-                     kind = 91;
-                  break;
-               case 313:
-                  if ((0x10000000100L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 312;
-                  break;
-               case 315:
-                  if ((0x400000004000000L & l) != 0L && kind > 92)
-                     kind = 92;
-                  break;
-               case 316:
-                  if ((0x10000000100L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 315;
-                  break;
-               case 317:
-                  if ((0x80000000800L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 316;
-                  break;
-               case 320:
-                  if ((0x7fffffe07fffffeL & l) == 0L)
-                     break;
-                  if (kind > 93)
-                     kind = 93;
-                  jjCheckNAddTwoStates(321, 322);
-                  break;
-               case 321:
-                  if ((0x7fffffe87fffffeL & l) == 0L)
-                     break;
-                  if (kind > 93)
-                     kind = 93;
-                  jjCheckNAddTwoStates(321, 322);
-                  break;
-               case 322:
-                  if (curChar == 92)
-                     jjCheckNAddTwoStates(323, 324);
-                  break;
-               case 323:
-                  if ((0x7fffffffffffffffL & l) == 0L)
-                     break;
-                  if (kind > 93)
-                     kind = 93;
-                  jjCheckNAddTwoStates(321, 322);
-                  break;
-               case 324:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 93)
-                     kind = 93;
-                  jjCheckNAddStates(493, 496);
-                  break;
-               case 326:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 93)
-                     kind = 93;
-                  jjCheckNAddStates(497, 503);
-                  break;
-               case 327:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 93)
-                     kind = 93;
-                  jjCheckNAddStates(504, 506);
-                  break;
-               case 328:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 93)
-                     kind = 93;
-                  jjCheckNAddStates(507, 510);
-                  break;
-               case 329:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 93)
-                     kind = 93;
-                  jjCheckNAddStates(511, 515);
-                  break;
-               case 330:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 93)
-                     kind = 93;
-                  jjCheckNAddStates(516, 521);
-                  break;
-               case 332:
-                  if (curChar == 92)
-                     jjCheckNAddTwoStates(323, 333);
-                  break;
-               case 333:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 93)
-                     kind = 93;
-                  jjCheckNAddStates(522, 525);
-                  break;
-               case 334:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 93)
-                     kind = 93;
-                  jjCheckNAddStates(526, 532);
-                  break;
-               case 335:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 93)
-                     kind = 93;
-                  jjCheckNAddStates(533, 535);
-                  break;
-               case 336:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 93)
-                     kind = 93;
-                  jjCheckNAddStates(536, 539);
-                  break;
-               case 337:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 93)
-                     kind = 93;
-                  jjCheckNAddStates(540, 544);
-                  break;
-               case 338:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 93)
-                     kind = 93;
-                  jjCheckNAddStates(545, 550);
-                  break;
-               case 339:
-                  if ((0x20000000200000L & l) != 0L)
-                     jjAddStates(817, 819);
-                  break;
-               case 341:
-               case 345:
-                  if ((0x7fffffffffffffffL & l) != 0L)
-                     jjCheckNAddStates(557, 560);
-                  break;
-               case 344:
-                  if (curChar == 92)
-                     jjAddStates(838, 839);
-                  break;
-               case 346:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(561, 565);
-                  break;
-               case 348:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(566, 573);
-                  break;
-               case 349:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(574, 577);
-                  break;
-               case 350:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(578, 582);
-                  break;
-               case 351:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(583, 588);
-                  break;
-               case 352:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(589, 595);
-                  break;
-               case 354:
-               case 359:
-                  if ((0x7fffffffffffffffL & l) != 0L)
-                     jjCheckNAddStates(596, 599);
-                  break;
-               case 356:
-                  if (curChar == 92)
-                     jjAddStates(840, 843);
-                  break;
-               case 358:
-                  if (curChar == 92)
-                     jjAddStates(844, 845);
-                  break;
-               case 360:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(600, 605);
-                  break;
-               case 362:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(606, 614);
-                  break;
-               case 363:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(615, 619);
-                  break;
-               case 364:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(620, 625);
-                  break;
-               case 365:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(626, 632);
-                  break;
-               case 366:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(633, 640);
-                  break;
-               case 371:
-               case 376:
-                  if ((0x7fffffffffffffffL & l) != 0L)
-                     jjCheckNAddStates(641, 644);
-                  break;
-               case 373:
-                  if (curChar == 92)
-                     jjAddStates(846, 849);
-                  break;
-               case 375:
-                  if (curChar == 92)
-                     jjAddStates(850, 851);
-                  break;
-               case 377:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(645, 650);
-                  break;
-               case 379:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(651, 659);
-                  break;
-               case 380:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(660, 664);
-                  break;
-               case 381:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(665, 670);
-                  break;
-               case 382:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(671, 677);
-                  break;
-               case 383:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(678, 685);
-                  break;
-               case 388:
-                  if ((0x100000001000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 340;
-                  break;
-               case 389:
-                  if ((0x4000000040000L & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 388;
-                  break;
-               case 397:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 112)
-                     kind = 112;
-                  jjAddStates(702, 707);
-                  break;
-               case 398:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 399;
-                  break;
-               case 399:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 400;
-                  break;
-               case 400:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAdd(401);
-                  break;
-               case 401:
-                  if ((0x7e0000007eL & l) != 0L && kind > 112)
-                     kind = 112;
-                  break;
-               case 402:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 403;
-                  break;
-               case 403:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 404;
-                  break;
-               case 404:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 405;
-                  break;
-               case 405:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 112)
-                     kind = 112;
-                  jjstateSet[jjnewStateCnt++] = 393;
-                  break;
-               case 406:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 407;
-                  break;
-               case 407:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 408;
-                  break;
-               case 408:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 112)
-                     kind = 112;
-                  jjstateSet[jjnewStateCnt++] = 409;
-                  break;
-               case 410:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjstateSet[jjnewStateCnt++] = 411;
-                  break;
-               case 411:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 112)
-                     kind = 112;
-                  jjstateSet[jjnewStateCnt++] = 412;
-                  break;
-               case 414:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 112)
-                     kind = 112;
-                  jjstateSet[jjnewStateCnt++] = 415;
-                  break;
-               case 423:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddTwoStates(424, 430);
-                  break;
-               case 425:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 112)
-                     kind = 112;
-                  jjstateSet[jjnewStateCnt++] = 426;
-                  break;
-               case 426:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 112)
-                     kind = 112;
-                  jjCheckNAddStates(718, 721);
-                  break;
-               case 427:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 112)
-                     kind = 112;
-                  jjCheckNAdd(401);
-                  break;
-               case 428:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 112)
-                     kind = 112;
-                  jjCheckNAddTwoStates(401, 427);
-                  break;
-               case 429:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 112)
-                     kind = 112;
-                  jjCheckNAddStates(722, 724);
-                  break;
-               case 430:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(725, 729);
-                  break;
-               case 431:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAdd(424);
-                  break;
-               case 432:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddTwoStates(431, 424);
-                  break;
-               case 433:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(730, 732);
-                  break;
-               case 434:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(733, 736);
-                  break;
-               case 435:
-                  if (curChar == 92)
-                     jjCheckNAddStates(808, 811);
-                  break;
-               case 436:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 72)
-                     kind = 72;
-                  jjCheckNAddStates(737, 740);
-                  break;
-               case 437:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 72)
-                     kind = 72;
-                  jjCheckNAddStates(741, 747);
-                  break;
-               case 438:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 72)
-                     kind = 72;
-                  jjCheckNAddStates(748, 750);
-                  break;
-               case 439:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 72)
-                     kind = 72;
-                  jjCheckNAddStates(751, 754);
-                  break;
-               case 440:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 72)
-                     kind = 72;
-                  jjCheckNAddStates(755, 759);
-                  break;
-               case 441:
-                  if ((0x7e0000007eL & l) == 0L)
-                     break;
-                  if (kind > 72)
-                     kind = 72;
-                  jjCheckNAddStates(760, 765);
-                  break;
-               case 442:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(766, 770);
-                  break;
-               case 443:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(771, 778);
-                  break;
-               case 445:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(779, 783);
-                  break;
-               case 446:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(784, 789);
-                  break;
-               case 447:
-                  if ((0x7e0000007eL & l) != 0L)
-                     jjCheckNAddStates(790, 796);
-                  break;
-               default : break;
+            break;
+        case 42:
+            if ((active0 & 0x40L) != 0L) {
+                return jjStartNfaWithStates_0(1, 6, 1);
             }
-         } while(i != startsAt);
-      }
-      else
-      {
-         int i2 = (curChar & 0xff) >> 6;
-         long l2 = 1L << (curChar & 077);
-         do
-         {
-            switch(jjstateSet[--i])
-            {
-               case 506:
-               case 113:
-               case 115:
-                  if ((jjbitVec0[i2] & l2) == 0L)
-                     break;
-                  if (kind > 101)
-                     kind = 101;
-                  jjCheckNAddTwoStates(113, 114);
-                  break;
-               case 166:
-                  if ((jjbitVec0[i2] & l2) == 0L)
-                     break;
-                  if (kind > 101)
-                     kind = 101;
-                  jjCheckNAddTwoStates(113, 114);
-                  break;
-               case 174:
-                  if ((jjbitVec0[i2] & l2) == 0L)
-                     break;
-                  if (kind > 101)
-                     kind = 101;
-                  jjCheckNAddTwoStates(113, 114);
-                  break;
-               case 503:
-                  if ((jjbitVec0[i2] & l2) != 0L)
-                  {
-                     if (kind > 72)
-                        kind = 72;
-                     jjCheckNAddTwoStates(220, 221);
-                  }
-                  if ((jjbitVec0[i2] & l2) != 0L)
-                     jjCheckNAddStates(0, 3);
-                  break;
-               case 4:
-                  if ((jjbitVec0[i2] & l2) == 0L)
-                     break;
-                  if (kind > 41)
-                     kind = 41;
-                  jjCheckNAddStates(802, 807);
-                  break;
-               case 175:
-                  if ((jjbitVec0[i2] & l2) == 0L)
-                     break;
-                  if (kind > 101)
-                     kind = 101;
-                  jjCheckNAddTwoStates(113, 114);
-                  break;
-               case 33:
-                  if ((jjbitVec0[i2] & l2) != 0L)
-                  {
-                     if (kind > 72)
-                        kind = 72;
-                     jjCheckNAddTwoStates(220, 221);
-                  }
-                  if ((jjbitVec0[i2] & l2) != 0L)
-                     jjCheckNAddStates(0, 3);
-                  break;
-               case 176:
-                  if ((jjbitVec0[i2] & l2) == 0L)
-                     break;
-                  if (kind > 101)
-                     kind = 101;
-                  jjCheckNAddTwoStates(113, 114);
-                  break;
-               case 177:
-                  if ((jjbitVec0[i2] & l2) == 0L)
-                     break;
-                  if (kind > 101)
-                     kind = 101;
-                  jjCheckNAddTwoStates(113, 114);
-                  break;
-               case 79:
-               case 81:
-               case 83:
-                  if ((jjbitVec0[i2] & l2) == 0L)
-                     break;
-                  if (kind > 76)
-                     kind = 76;
-                  jjCheckNAddTwoStates(81, 82);
-                  break;
-               case 2:
-                  if ((jjbitVec0[i2] & l2) != 0L && kind > 5)
-                     kind = 5;
-                  break;
-               case 9:
-               case 12:
-               case 20:
-                  if ((jjbitVec0[i2] & l2) != 0L)
-                     jjCheckNAddStates(123, 125);
-                  break;
-               case 45:
-               case 50:
-                  if ((jjbitVec0[i2] & l2) != 0L)
-                     jjCheckNAddStates(110, 113);
-                  break;
-               case 62:
-               case 67:
-                  if ((jjbitVec0[i2] & l2) != 0L)
-                     jjCheckNAddStates(106, 109);
-                  break;
-               case 100:
-               case 102:
-                  if ((jjbitVec0[i2] & l2) == 0L)
-                     break;
-                  if (kind > 94)
-                     kind = 94;
-                  jjCheckNAddTwoStates(100, 101);
-                  break;
-               case 220:
-               case 222:
-                  if ((jjbitVec0[i2] & l2) == 0L)
-                     break;
-                  if (kind > 72)
-                     kind = 72;
-                  jjCheckNAddTwoStates(220, 221);
-                  break;
-               case 230:
-               case 234:
-                  if ((jjbitVec0[i2] & l2) != 0L)
-                     jjCheckNAddStates(0, 3);
-                  break;
-               case 321:
-               case 323:
-               case 331:
-                  if ((jjbitVec0[i2] & l2) == 0L)
-                     break;
-                  if (kind > 93)
-                     kind = 93;
-                  jjCheckNAddTwoStates(321, 322);
-                  break;
-               case 341:
-               case 345:
-                  if ((jjbitVec0[i2] & l2) != 0L)
-                     jjCheckNAddStates(557, 560);
-                  break;
-               case 354:
-               case 359:
-                  if ((jjbitVec0[i2] & l2) != 0L)
-                     jjCheckNAddStates(596, 599);
-                  break;
-               case 371:
-               case 376:
-                  if ((jjbitVec0[i2] & l2) != 0L)
-                     jjCheckNAddStates(641, 644);
-                  break;
-               default : break;
+            break;
+        case 45:
+            return jjMoveStringLiteralDfa2_0(active0, 0x800L, active1, 0x4L);
+        case 47:
+            if ((active0 & 0x4L) != 0L) {
+                return jjStopAtPos(1, 2);
             }
-         } while(i != startsAt);
-      }
-      if (kind != 0x7fffffff)
-      {
-         jjmatchedKind = kind;
-         jjmatchedPos = curPos;
-         kind = 0x7fffffff;
-      }
-      ++curPos;
-      if ((i = jjnewStateCnt) == (startsAt = 503 - (jjnewStateCnt = startsAt)))
-         return curPos;
-      try { curChar = input_stream.readChar(); }
-      catch(java.io.IOException e) { return curPos; }
-   }
-}
-private int jjMoveStringLiteralDfa0_3()
-{
-   switch(curChar)
-   {
-      case 42:
-         return jjMoveStringLiteralDfa1_3(0x100L);
-      default :
-         return 1;
-   }
-}
-private int jjMoveStringLiteralDfa1_3(long active0)
-{
-   try { curChar = input_stream.readChar(); }
-   catch(java.io.IOException e) {
-      return 1;
-   }
-   switch(curChar)
-   {
-      case 47:
-         if ((active0 & 0x100L) != 0L)
-            return jjStopAtPos(1, 8);
-         break;
-      default :
-         return 2;
-   }
-   return 2;
-}
-private int jjMoveStringLiteralDfa0_1()
-{
-   return jjMoveNfa_1(0, 0);
-}
-private int jjMoveNfa_1(int startState, int curPos)
-{
-   int startsAt = 0;
-   jjnewStateCnt = 4;
-   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 ((0xffffffffffffdbffL & l) != 0L)
-                  {
-                     if (kind > 3)
-                        kind = 3;
-                  }
-                  else if ((0x2400L & l) != 0L)
-                  {
-                     if (kind > 4)
-                        kind = 4;
-                  }
-                  if (curChar == 13)
-                     jjstateSet[jjnewStateCnt++] = 2;
-                  break;
-               case 1:
-                  if ((0x2400L & l) != 0L && kind > 4)
-                     kind = 4;
-                  break;
-               case 2:
-                  if (curChar == 10 && kind > 4)
-                     kind = 4;
-                  break;
-               case 3:
-                  if (curChar == 13)
-                     jjstateSet[jjnewStateCnt++] = 2;
-                  break;
-               default : break;
+            break;
+        case 61:
+            if ((active0 & 0x4000L) != 0L) {
+                return jjStopAtPos(1, 14);
+            } else if ((active0 & 0x8000L) != 0L) {
+                return jjStopAtPos(1, 15);
+            } else if ((active0 & 0x10000L) != 0L) {
+                return jjStopAtPos(1, 16);
+            } else if ((active0 & 0x20000L) != 0L) {
+                return jjStopAtPos(1, 17);
+            } else if ((active0 & 0x40000L) != 0L) {
+                return jjStopAtPos(1, 18);
+            } else if ((active0 & 0x800000000L) != 0L) {
+                return jjStopAtPos(1, 35);
+            } else if ((active0 & 0x4000000000L) != 0L) {
+                return jjStopAtPos(1, 38);
             }
-         } while(i != startsAt);
-      }
-      else if (curChar < 128)
-      {
-         long l = 1L << (curChar & 077);
-         do
-         {
-            switch(jjstateSet[--i])
-            {
-               case 0:
-                  kind = 3;
-                  break;
-               default : break;
+            break;
+        case 67:
+        case 99:
+            return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x200000000L);
+        case 68:
+        case 100:
+            return jjMoveStringLiteralDfa2_0(active0, 0x400000000000000L,
+                    active1, 0L);
+        case 69:
+        case 101:
+            return jjMoveStringLiteralDfa2_0(active0, 0x2000000000000000L,
+                    active1, 0x3L);
+        case 70:
+        case 102:
+            if ((active1 & 0x20L) != 0L) {
+                return jjStartNfaWithStates_0(1, 69, 503);
             }
-         } while(i != startsAt);
-      }
-      else
-      {
-         int i2 = (curChar & 0xff) >> 6;
-         long l2 = 1L << (curChar & 077);
-         do
-         {
-            switch(jjstateSet[--i])
-            {
-               case 0:
-                  if ((jjbitVec0[i2] & l2) != 0L && kind > 3)
-                     kind = 3;
-                  break;
-               default : break;
+            return jjMoveStringLiteralDfa2_0(active0, 0x1100000000000000L,
+                    active1, 0x800000000L);
+        case 72:
+        case 104:
+            return jjMoveStringLiteralDfa2_0(active0, 0x8000000000000L,
+                    active1, 0L);
+        case 73:
+        case 105:
+            return jjMoveStringLiteralDfa2_0(active0, 0x8080000000000000L,
+                    active1, 0x80000000L);
+        case 77:
+        case 109:
+            return jjMoveStringLiteralDfa2_0(active0, 0x40000000000000L,
+                    active1, 0x100000000L);
+        case 78:
+        case 110:
+            if ((active0 & 0x10000000000000L) != 0L) {
+                return jjStartNfaWithStates_0(1, 52, 503);
             }
-         } while(i != startsAt);
-      }
-      if (kind != 0x7fffffff)
-      {
-         jjmatchedKind = kind;
-         jjmatchedPos = curPos;
-         kind = 0x7fffffff;
-      }
-      ++curPos;
-      if ((i = jjnewStateCnt) == (startsAt = 4 - (jjnewStateCnt = startsAt)))
-         return curPos;
-      try { curChar = input_stream.readChar(); }
-      catch(java.io.IOException e) { return curPos; }
-   }
-}
-private int jjMoveStringLiteralDfa0_2()
-{
-   switch(curChar)
-   {
-      case 42:
-         return jjMoveStringLiteralDfa1_2(0x80L);
-      default :
-         return 1;
-   }
-}
-private int jjMoveStringLiteralDfa1_2(long active0)
-{
-   try { curChar = input_stream.readChar(); }
-   catch(java.io.IOException e) {
-      return 1;
-   }
-   switch(curChar)
-   {
-      case 47:
-         if ((active0 & 0x80L) != 0L)
-            return jjStopAtPos(1, 7);
-         break;
-      default :
-         return 2;
-   }
-   return 2;
-}
-static final int[] jjnextStates = {
-   230, 231, 232, 233, 449, 450, 451, 452, 453, 454, 268, 455, 456, 457, 271, 458, 
-   459, 460, 274, 461, 462, 463, 277, 464, 465, 466, 280, 467, 468, 469, 283, 470, 
-   471, 472, 286, 473, 474, 475, 289, 476, 477, 478, 292, 479, 480, 481, 296, 482, 
-   483, 484, 300, 485, 486, 487, 305, 488, 489, 490, 308, 491, 492, 493, 310, 494, 
-   495, 496, 313, 497, 498, 499, 317, 500, 501, 502, 319, 320, 331, 332, 266, 267, 
-   269, 272, 275, 278, 281, 284, 287, 290, 293, 297, 301, 306, 309, 311, 314, 318, 
-   262, 263, 243, 250, 251, 260, 79, 80, 91, 92, 62, 63, 64, 66, 45, 46, 
-   47, 49, 318, 319, 320, 331, 332, 7, 8, 20, 21, 9, 10, 11, 9, 14, 
-   10, 11, 15, 9, 16, 14, 10, 11, 17, 18, 19, 9, 14, 10, 11, 9, 
-   16, 14, 10, 11, 9, 16, 14, 10, 11, 17, 9, 16, 14, 10, 11, 17, 
-   18, 14, 9, 10, 11, 23, 24, 14, 9, 10, 11, 25, 26, 27, 14, 9, 
-   10, 11, 24, 14, 9, 10, 11, 24, 14, 9, 10, 11, 25, 24, 14, 9, 
-   10, 11, 25, 26, 45, 52, 46, 47, 49, 53, 45, 54, 52, 46, 47, 49, 
-   55, 56, 57, 45, 52, 46, 47, 49, 45, 54, 52, 46, 47, 49, 45, 54, 
-   52, 46, 47, 49, 55, 45, 54, 52, 46, 47, 49, 55, 56, 62, 69, 63, 
-   64, 66, 70, 62, 71, 69, 63, 64, 66, 72, 73, 74, 62, 69, 63, 64, 
-   66, 62, 71, 69, 63, 64, 66, 62, 71, 69, 63, 64, 66, 72, 62, 71, 
-   69, 63, 64, 66, 72, 73, 81, 85, 82, 86, 81, 87, 85, 82, 88, 89, 
-   90, 81, 85, 82, 81, 87, 85, 82, 81, 87, 85, 82, 88, 81, 87, 85, 
-   82, 88, 89, 85, 81, 82, 94, 95, 85, 81, 82, 96, 97, 98, 85, 81, 
-   82, 95, 85, 81, 82, 95, 85, 81, 82, 96, 95, 85, 81, 82, 96, 97, 
-   100, 104, 101, 105, 100, 106, 104, 101, 107, 108, 109, 100, 104, 101, 100, 106, 
-   104, 101, 100, 106, 104, 101, 107, 100, 106, 104, 101, 107, 108, 113, 117, 114, 
-   118, 113, 119, 117, 114, 120, 121, 122, 113, 117, 114, 113, 119, 117, 114, 113, 
-   119, 117, 114, 120, 113, 119, 117, 114, 120, 121, 117, 113, 114, 126, 127, 117, 
-   113, 114, 128, 129, 130, 117, 113, 114, 127, 117, 113, 114, 127, 117, 113, 114, 
-   128, 127, 117, 113, 114, 128, 129, 132, 133, 140, 141, 148, 149, 220, 224, 221, 
-   225, 220, 226, 224, 221, 227, 228, 229, 220, 224, 221, 220, 226, 224, 221, 220, 
-   226, 224, 221, 227, 220, 226, 224, 221, 227, 228, 230, 232, 233, 236, 237, 230, 
-   238, 232, 233, 236, 239, 240, 241, 230, 232, 233, 236, 230, 238, 232, 233, 236, 
-   230, 238, 232, 233, 236, 239, 230, 238, 232, 233, 236, 239, 240, 321, 325, 322, 
-   326, 321, 327, 325, 322, 328, 329, 330, 321, 325, 322, 321, 327, 325, 322, 321, 
-   327, 325, 322, 328, 321, 327, 325, 322, 328, 329, 325, 321, 322, 334, 335, 325, 
-   321, 322, 336, 337, 338, 325, 321, 322, 335, 325, 321, 322, 335, 325, 321, 322, 
-   336, 335, 325, 321, 322, 336, 337, 341, 353, 370, 343, 344, 387, 341, 342, 343, 
-   344, 341, 343, 344, 347, 348, 341, 349, 343, 344, 347, 350, 351, 352, 341, 343, 
-   344, 347, 341, 349, 343, 344, 347, 341, 349, 343, 344, 347, 350, 341, 349, 343, 
-   344, 347, 350, 351, 354, 355, 356, 358, 354, 361, 355, 356, 358, 362, 354, 363, 
-   361, 355, 356, 358, 364, 365, 366, 354, 361, 355, 356, 358, 354, 363, 361, 355, 
-   356, 358, 354, 363, 361, 355, 356, 358, 364, 354, 363, 361, 355, 356, 358, 364, 
-   365, 371, 372, 373, 375, 371, 378, 372, 373, 375, 379, 371, 380, 378, 372, 373, 
-   375, 381, 382, 383, 371, 378, 372, 373, 375, 371, 380, 378, 372, 373, 375, 371, 
-   380, 378, 372, 373, 375, 381, 371, 380, 378, 372, 373, 375, 381, 382, 341, 353, 
-   370, 342, 343, 344, 387, 391, 397, 393, 394, 395, 396, 393, 394, 395, 398, 402, 
-   406, 410, 414, 418, 393, 416, 417, 393, 419, 420, 421, 393, 419, 420, 401, 427, 
-   428, 429, 401, 427, 428, 431, 424, 432, 433, 434, 431, 424, 432, 431, 424, 432, 
-   433, 224, 220, 221, 437, 438, 224, 220, 221, 439, 440, 441, 224, 220, 221, 438, 
-   224, 220, 221, 438, 224, 220, 221, 439, 438, 224, 220, 221, 439, 440, 230, 232, 
-   233, 236, 443, 444, 230, 232, 233, 236, 445, 446, 447, 444, 230, 232, 233, 236, 
-   444, 230, 232, 233, 236, 445, 444, 230, 232, 233, 236, 445, 446, 500, 319, 320, 
-   331, 332, 220, 230, 231, 232, 233, 221, 222, 436, 234, 442, 166, 179, 190, 206, 
-   218, 389, 390, 422, 111, 112, 123, 124, 48, 58, 60, 59, 50, 51, 65, 75, 
-   77, 76, 67, 68, 102, 103, 345, 346, 357, 367, 369, 368, 359, 360, 374, 384, 
-   386, 385, 376, 377, 
-};
+            break;
+        case 79:
+        case 111:
+            if ((active0 & 0x4000000000000L) != 0L) {
+                return jjStartNfaWithStates_0(1, 50, 503);
+            }
+            break;
+        case 80:
+        case 112:
+            return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x400000000L);
+        case 82:
+        case 114:
+            return jjMoveStringLiteralDfa2_0(active0, 0x220000000000000L,
+                    active1, 0L);
+        case 83:
+        case 115:
+            return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x8L);
+        case 87:
+        case 119:
+            return jjMoveStringLiteralDfa2_0(active0, 0x4800000000000000L,
+                    active1, 0L);
+        case 124:
+            if ((active0 & 0x1000000000L) != 0L) {
+                return jjStopAtPos(1, 36);
+            }
+            break;
+        default:
+            break;
+        }
+        return jjStartNfa_0(0, active0, active1);
+    }
 
-/** Token literal values. */
-public static final String[] jjstrLiteralImages = {
-"", null, null, null, null, null, null, null, null, null, "\74\41\55\55", 
-"\55\55\76", "\173", "\175", "\174\75", "\136\75", "\44\75", "\52\75", "\176\75", "\75", 
-"\53", "\55", "\54", "\73", "\76", "\176", "\74", "\57", "\133", "\135", "\52", 
-"\46", "\56", "\50", "\51", "\75\75", "\174\174", "\46\46", "\41\75", "\72", null, 
-null, null, null, null, null, null, null, null, null, null, null, null, null, null, 
-null, null, null, null, null, null, null, null, null, null, null, null, null, null, 
-null, null, null, null, null, null, null, null, null, null, null, null, null, null, 
-null, null, null, null, null, null, null, null, null, null, null, null, null, null, 
-null, null, null, null, null, null, null, null, null, null, null, null, null, null, 
-null, null, null, null, null, null, null, };
+    private int jjMoveStringLiteralDfa2_0(long old0, long active0, long old1,
+            long active1) {
+        if (((active0 &= old0) | (active1 &= old1)) == 0L) {
+            return jjStartNfa_0(0, old0, old1);
+        }
+        try {
+            curChar = input_stream.readChar();
+        } catch (java.io.IOException e) {
+            jjStopStringLiteralDfa_0(1, active0, active1);
+            return 2;
+        }
+        switch (curChar) {
+        case 45:
+            return jjMoveStringLiteralDfa3_0(active0, 0x400L, active1, 0L);
+        case 62:
+            if ((active0 & 0x800L) != 0L) {
+                return jjStopAtPos(2, 11);
+            }
+            break;
+        case 65:
+        case 97:
+            return jjMoveStringLiteralDfa3_0(active0, 0x2800000000000000L,
+                    active1, 0x400000000L);
+        case 69:
+        case 101:
+            return jjMoveStringLiteralDfa3_0(active0, 0x600000000000000L,
+                    active1, 0x100000000L);
+        case 70:
+        case 102:
+            if ((active0 & 0x8000000000000000L) != 0L) {
+                return jjStartNfaWithStates_0(2, 63, 506);
+            }
+            break;
+        case 72:
+        case 104:
+            return jjMoveStringLiteralDfa3_0(active0, 0x4000000000000000L,
+                    active1, 0x200000000L);
+        case 73:
+        case 105:
+            return jjMoveStringLiteralDfa3_0(active0, 0x40000000000000L,
+                    active1, 0L);
+        case 76:
+        case 108:
+            return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x1L);
+        case 77:
+        case 109:
+            return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x80000004L);
+        case 78:
+        case 110:
+            return jjMoveStringLiteralDfa3_0(active0, 0x80000000000000L,
+                    active1, 0L);
+        case 79:
+        case 111:
+            return jjMoveStringLiteralDfa3_0(active0, 0x1020000000000000L,
+                    active1, 0x800000000L);
+        case 82:
+        case 114:
+            return jjMoveStringLiteralDfa3_0(active0, 0x8000000000000L,
+                    active1, 0L);
+        case 85:
+        case 117:
+            return jjMoveStringLiteralDfa3_0(active0, 0x100000000000000L,
+                    active1, 0x8L);
+        case 88:
+        case 120:
+            return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x2L);
+        default:
+            break;
+        }
+        return jjStartNfa_0(1, active0, active1);
+    }
 
-/** Lexer state names. */
-public static final String[] lexStateNames = {
-   "DEFAULT",
-   "IN_SINGLE_LINE_COMMENT",
-   "IN_FORMAL_COMMENT",
-   "IN_MULTI_LINE_COMMENT",
-};
+    private int jjMoveStringLiteralDfa3_0(long old0, long active0, long old1,
+            long active1) {
+        if (((active0 &= old0) | (active1 &= old1)) == 0L) {
+            return jjStartNfa_0(1, old0, old1);
+        }
+        try {
+            curChar = input_stream.readChar();
+        } catch (java.io.IOException e) {
+            jjStopStringLiteralDfa_0(2, active0, active1);
+            return 3;
+        }
+        switch (curChar) {
+        case 45:
+            if ((active0 & 0x400L) != 0L) {
+                return jjStopAtPos(3, 10);
+            }
+            break;
+        case 65:
+        case 97:
+            return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x200000000L);
+        case 66:
+        case 98:
+            return jjMoveStringLiteralDfa4_0(active0, 0x400000000000000L,
+                    active1, 0L);
+        case 67:
+        case 99:
+            return jjMoveStringLiteralDfa4_0(active0, 0x2080000000000000L,
+                    active1, 0L);
+        case 68:
+        case 100:
+            return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x100000000L);
+        case 71:
+        case 103:
+            return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x400000000L);
+        case 73:
+        case 105:
+            return jjMoveStringLiteralDfa4_0(active0, 0x4000000000000000L,
+                    active1, 0L);
+        case 77:
+        case 109:
+            if ((active0 & 0x20000000000000L) != 0L) {
+                return jjStartNfaWithStates_0(3, 53, 503);
+            }
+            break;
+        case 78:
+        case 110:
+            return jjMoveStringLiteralDfa4_0(active0, 0x100000000000000L,
+                    active1, 0x800000000L);
+        case 79:
+        case 111:
+            return jjMoveStringLiteralDfa4_0(active0, 0x8000000000000L,
+                    active1, 0x4L);
+        case 80:
+        case 112:
+            return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x80000008L);
+        case 82:
+        case 114:
+            if ((active0 & 0x1000000000000000L) != 0L) {
+                return jjStartNfaWithStates_0(3, 60, 506);
+            }
+            return jjMoveStringLiteralDfa4_0(active0, 0x800000000000000L,
+                    active1, 0L);
+        case 83:
+        case 115:
+            return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x1L);
+        case 84:
+        case 116:
+            return jjMoveStringLiteralDfa4_0(active0, 0x200000000000000L,
+                    active1, 0x2L);
+        case 88:
+        case 120:
+            return jjMoveStringLiteralDfa4_0(active0, 0x40000000000000L,
+                    active1, 0L);
+        default:
+            break;
+        }
+        return jjStartNfa_0(2, active0, active1);
+    }
 
-/** Lex State array. */
-public static final int[] jjnewLexState = {
-   -1, -1, 1, -1, 0, 2, 3, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
-   -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
-   -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
-   -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
-   -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
-};
-static final long[] jjtoToken = {
-   0xfffc03fffffffc03L, 0x3f007ffffffbffL, 
-};
-static final long[] jjtoSkip = {
-   0x190L, 0x0L, 
-};
-static final long[] jjtoSpecial = {
-   0x80L, 0x0L, 
-};
-static final long[] jjtoMore = {
-   0x26cL, 0x0L, 
-};
-protected CharStream input_stream;
-private final int[] jjrounds = new int[503];
-private final int[] jjstateSet = new int[1006];
-private final StringBuilder jjimage = new StringBuilder();
-private StringBuilder image = jjimage;
-private int jjimageLen;
-private int lengthOfMatch;
-protected char curChar;
-/** Constructor. */
-public ParserTokenManager(CharStream stream){
-   input_stream = stream;
-}
+    private int jjMoveStringLiteralDfa4_0(long old0, long active0, long old1,
+            long active1) {
+        if (((active0 &= old0) | (active1 &= old1)) == 0L) {
+            return jjStartNfa_0(2, old0, old1);
+        }
+        try {
+            curChar = input_stream.readChar();
+        } catch (java.io.IOException e) {
+            jjStopStringLiteralDfa_0(3, active0, active1);
+            return 4;
+        }
+        switch (curChar) {
+        case 67:
+        case 99:
+            return jjMoveStringLiteralDfa5_0(active0, 0x100000000000000L,
+                    active1, 0L);
+        case 69:
+        case 101:
+            if ((active1 & 0x1L) != 0L) {
+                return jjStartNfaWithStates_0(4, 64, 506);
+            } else if ((active1 & 0x400000000L) != 0L) {
+                return jjStartNfaWithStates_0(4, 98, 506);
+            }
+            return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x2L);
+        case 72:
+        case 104:
+            if ((active0 & 0x2000000000000000L) != 0L) {
+                return jjStartNfaWithStates_0(4, 61, 506);
+            }
+            break;
+        case 73:
+        case 105:
+            return jjMoveStringLiteralDfa5_0(active0, 0x40000000000000L,
+                    active1, 0x100000000L);
+        case 76:
+        case 108:
+            return jjMoveStringLiteralDfa5_0(active0, 0x4080000000000000L,
+                    active1, 0L);
+        case 78:
+        case 110:
+            if ((active0 & 0x800000000000000L) != 0L) {
+                return jjStartNfaWithStates_0(4, 59, 506);
+            }
+            break;
+        case 79:
+        case 111:
+            return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x80000000L);
+        case 80:
+        case 112:
+            return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x8L);
+        case 82:
+        case 114:
+            return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x200000000L);
+        case 84:
+        case 116:
+            return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x800000000L);
+        case 85:
+        case 117:
+            return jjMoveStringLiteralDfa5_0(active0, 0x608000000000000L,
+                    active1, 0L);
+        case 90:
+        case 122:
+            return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x4L);
+        default:
+            break;
+        }
+        return jjStartNfa_0(3, active0, active1);
+    }
 
-/** Constructor. */
-public ParserTokenManager(CharStream stream, int lexState){
-   this(stream);
-   SwitchTo(lexState);
-}
+    private int jjMoveStringLiteralDfa5_0(long old0, long active0, long old1,
+            long active1) {
+        if (((active0 &= old0) | (active1 &= old1)) == 0L) {
+            return jjStartNfa_0(3, old0, old1);
+        }
+        try {
+            curChar = input_stream.readChar();
+        } catch (java.io.IOException e) {
+            jjStopStringLiteralDfa_0(4, active0, active1);
+            return 5;
+        }
+        switch (curChar) {
+        case 45:
+            return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x800000004L);
+        case 65:
+        case 97:
+            if ((active1 & 0x100000000L) != 0L) {
+                return jjStartNfaWithStates_0(5, 96, 506);
+            }
+            break;
+        case 69:
+        case 101:
+            if ((active0 & 0x4000000000000000L) != 0L) {
+                return jjStartNfaWithStates_0(5, 62, 506);
+            }
+            break;
+        case 71:
+        case 103:
+            if ((active0 & 0x400000000000000L) != 0L) {
+                return jjStartNfaWithStates_0(5, 58, 506);
+            }
+            return jjMoveStringLiteralDfa6_0(active0, 0x8000000000000L,
+                    active1, 0L);
+        case 78:
+        case 110:
+            if ((active0 & 0x40000000000000L) != 0L) {
+                return jjStartNfaWithStates_0(5, 54, 506);
+            }
+            return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x2L);
+        case 79:
+        case 111:
+            return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x8L);
+        case 82:
+        case 114:
+            return jjMoveStringLiteralDfa6_0(active0, 0x200000000000000L,
+                    active1, 0x80000000L);
+        case 83:
+        case 115:
+            return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x200000000L);
+        case 84:
+        case 116:
+            return jjMoveStringLiteralDfa6_0(active0, 0x100000000000000L,
+                    active1, 0L);
+        case 85:
+        case 117:
+            return jjMoveStringLiteralDfa6_0(active0, 0x80000000000000L,
+                    active1, 0L);
+        default:
+            break;
+        }
+        return jjStartNfa_0(4, active0, active1);
+    }
 
-/** Reinitialise parser. */
-public void ReInit(CharStream stream)
-{
-   jjmatchedPos = jjnewStateCnt = 0;
-   curLexState = defaultLexState;
-   input_stream = stream;
-   ReInitRounds();
-}
-private void ReInitRounds()
-{
-   int i;
-   jjround = 0x80000001;
-   for (i = 503; i-- > 0;)
-      jjrounds[i] = 0x80000000;
-}
+    private int jjMoveStringLiteralDfa6_0(long old0, long active0, long old1,
+            long active1) {
+        if (((active0 &= old0) | (active1 &= old1)) == 0L) {
+            return jjStartNfa_0(4, old0, old1);
+        }
+        try {
+            curChar = input_stream.readChar();
+        } catch (java.io.IOException e) {
+            jjStopStringLiteralDfa_0(5, active0, active1);
+            return 6;
+        }
+        switch (curChar) {
+        case 68:
+        case 100:
+            if ((active1 & 0x2L) != 0L) {
+                return jjStartNfaWithStates_0(6, 65, 506);
+            }
+            return jjMoveStringLiteralDfa7_0(active0, 0x80000000000000L,
+                    active1, 0x4L);
+        case 69:
+        case 101:
+            return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x200000000L);
+        case 70:
+        case 102:
+            return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x800000000L);
+        case 72:
+        case 104:
+            if ((active0 & 0x8000000000000L) != 0L) {
+                return jjStartNfaWithStates_0(6, 51, 503);
+            }
+            break;
+        case 73:
+        case 105:
+            return jjMoveStringLiteralDfa7_0(active0, 0x100000000000000L,
+                    active1, 0L);
+        case 78:
+        case 110:
+            if ((active0 & 0x200000000000000L) != 0L) {
+                return jjStartNfaWithStates_0(6, 57, 506);
+            }
+            break;
+        case 82:
+        case 114:
+            return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x8L);
+        case 84:
+        case 116:
+            if ((active1 & 0x80000000L) != 0L) {
+                return jjStartNfaWithStates_0(6, 95, 506);
+            }
+            break;
+        default:
+            break;
+        }
+        return jjStartNfa_0(5, active0, active1);
+    }
 
-/** Reinitialise parser. */
-public void ReInit(CharStream stream, int lexState)
-{
-   ReInit(stream);
-   SwitchTo(lexState);
-}
+    private int jjMoveStringLiteralDfa7_0(long old0, long active0, long old1,
+            long active1) {
+        if (((active0 &= old0) | (active1 &= old1)) == 0L) {
+            return jjStartNfa_0(5, old0, old1);
+        }
+        try {
+            curChar = input_stream.readChar();
+        } catch (java.io.IOException e) {
+            jjStopStringLiteralDfa_0(6, active0, active1);
+            return 7;
+        }
+        switch (curChar) {
+        case 65:
+        case 97:
+            return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x800000000L);
+        case 69:
+        case 101:
+            if ((active0 & 0x80000000000000L) != 0L) {
+                return jjStartNfaWithStates_0(7, 55, 506);
+            }
+            break;
+        case 79:
+        case 111:
+            return jjMoveStringLiteralDfa8_0(active0, 0x100000000000000L,
+                    active1, 0x4L);
+        case 84:
+        case 116:
+            if ((active1 & 0x200000000L) != 0L) {
+                return jjStartNfaWithStates_0(7, 97, 506);
+            }
+            return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x8L);
+        default:
+            break;
+        }
+        return jjStartNfa_0(6, active0, active1);
+    }
 
-/** Switch to specified lex state. */
-public void SwitchTo(int lexState)
-{
-   if (lexState >= 4 || lexState < 0)
-      throw new TokenMgrError("Error: Ignoring invalid lexical state : " + lexState + ". State unchanged.", TokenMgrError.INVALID_LEXICAL_STATE);
-   else
-      curLexState = lexState;
-}
+    private int jjMoveStringLiteralDfa8_0(long old0, long active0, long old1,
+            long active1) {
+        if (((active0 &= old0) | (active1 &= old1)) == 0L) {
+            return jjStartNfa_0(6, old0, old1);
+        }
+        try {
+            curChar = input_stream.readChar();
+        } catch (java.io.IOException e) {
+            jjStopStringLiteralDfa_0(7, active0, active1);
+            return 8;
+        }
+        switch (curChar) {
+        case 67:
+        case 99:
+            return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0x800000004L);
+        case 78:
+        case 110:
+            if ((active0 & 0x100000000000000L) != 0L) {
+                return jjStartNfaWithStates_0(8, 56, 506);
+            }
+            break;
+        case 83:
+        case 115:
+            if ((active1 & 0x8L) != 0L) {
+                return jjStartNfaWithStates_0(8, 67, 506);
+            }
+            break;
+        default:
+            break;
+        }
+        return jjStartNfa_0(7, active0, active1);
+    }
 
-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);
+    private int jjMoveStringLiteralDfa9_0(long old0, long active0, long old1,
+            long active1) {
+        if (((active0 &= old0) | (active1 &= old1)) == 0L) {
+            return jjStartNfa_0(7, old0, old1);
+        }
+        try {
+            curChar = input_stream.readChar();
+        } catch (java.io.IOException e) {
+            jjStopStringLiteralDfa_0(8, 0L, active1);
+            return 9;
+        }
+        switch (curChar) {
+        case 69:
+        case 101:
+            if ((active1 & 0x800000000L) != 0L) {
+                return jjStartNfaWithStates_0(9, 99, 506);
+            }
+            break;
+        case 85:
+        case 117:
+            return jjMoveStringLiteralDfa10_0(active1, 0x4L);
+        default:
+            break;
+        }
+        return jjStartNfa_0(8, 0L, active1);
+    }
+
+    private int jjMoveStringLiteralDfa10_0(long old1, long active1) {
+        if (((active1 &= old1)) == 0L) {
+            return jjStartNfa_0(8, 0L, old1);
+        }
+        try {
+            curChar = input_stream.readChar();
+        } catch (java.io.IOException e) {
+            jjStopStringLiteralDfa_0(9, 0L, active1);
+            return 10;
+        }
+        switch (curChar) {
+        case 77:
+        case 109:
+            return jjMoveStringLiteralDfa11_0(active1, 0x4L);
+        default:
+            break;
+        }
+        return jjStartNfa_0(9, 0L, active1);
+    }
 
-   t.beginLine = beginLine;
-   t.endLine = endLine;
-   t.beginColumn = beginColumn;
-   t.endColumn = endColumn;
+    private int jjMoveStringLiteralDfa11_0(long old1, long active1) {
+        if (((active1 &= old1)) == 0L) {
+            return jjStartNfa_0(9, 0L, old1);
+        }
+        try {
+            curChar = input_stream.readChar();
+        } catch (java.io.IOException e) {
+            jjStopStringLiteralDfa_0(10, 0L, active1);
+            return 11;
+        }
+        switch (curChar) {
+        case 69:
+        case 101:
+            return jjMoveStringLiteralDfa12_0(active1, 0x4L);
+        default:
+            break;
+        }
+        return jjStartNfa_0(10, 0L, active1);
+    }
 
-   return t;
-}
+    private int jjMoveStringLiteralDfa12_0(long old1, long active1) {
+        if (((active1 &= old1)) == 0L) {
+            return jjStartNfa_0(10, 0L, old1);
+        }
+        try {
+            curChar = input_stream.readChar();
+        } catch (java.io.IOException e) {
+            jjStopStringLiteralDfa_0(11, 0L, active1);
+            return 12;
+        }
+        switch (curChar) {
+        case 78:
+        case 110:
+            return jjMoveStringLiteralDfa13_0(active1, 0x4L);
+        default:
+            break;
+        }
+        return jjStartNfa_0(11, 0L, active1);
+    }
 
-int curLexState = 0;
-int defaultLexState = 0;
-int jjnewStateCnt;
-int jjround;
-int jjmatchedPos;
-int jjmatchedKind;
+    private int jjMoveStringLiteralDfa13_0(long old1, long active1) {
+        if (((active1 &= old1)) == 0L) {
+            return jjStartNfa_0(11, 0L, old1);
+        }
+        try {
+            curChar = input_stream.readChar();
+        } catch (java.io.IOException e) {
+            jjStopStringLiteralDfa_0(12, 0L, active1);
+            return 13;
+        }
+        switch (curChar) {
+        case 84:
+        case 116:
+            if ((active1 & 0x4L) != 0L) {
+                return jjStartNfaWithStates_0(13, 66, 506);
+            }
+            break;
+        default:
+            break;
+        }
+        return jjStartNfa_0(12, 0L, active1);
+    }
 
-/** Get the next Token. */
-public Token getNextToken() 
-{
-  Token specialToken = null;
-  Token matchedToken;
-  int curPos = 0;
+    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);
+    }
 
-  EOFLoop :
-  for (;;)
-  {
-   try
-   {
-      curChar = input_stream.BeginToken();
-   }
-   catch(java.io.IOException e)
-   {
-      jjmatchedKind = 0;
-      matchedToken = jjFillToken();
-      matchedToken.specialToken = specialToken;
-      return matchedToken;
-   }
-   image = jjimage;
-   image.setLength(0);
-   jjimageLen = 0;
+    static final long[] jjbitVec0 = { 0x0L, 0x0L, 0xffffffffffffffffL,
+            0xffffffffffffffffL };
 
-   for (;;)
-   {
-     switch(curLexState)
-     {
-       case 0:
-         jjmatchedKind = 0x7fffffff;
-         jjmatchedPos = 0;
-         curPos = jjMoveStringLiteralDfa0_0();
-         if (jjmatchedPos == 0 && jjmatchedKind > 117)
-         {
-            jjmatchedKind = 117;
-         }
-         break;
-       case 1:
-         jjmatchedKind = 0x7fffffff;
-         jjmatchedPos = 0;
-         curPos = jjMoveStringLiteralDfa0_1();
-         break;
-       case 2:
-         jjmatchedKind = 0x7fffffff;
-         jjmatchedPos = 0;
-         curPos = jjMoveStringLiteralDfa0_2();
-         if (jjmatchedPos == 0 && jjmatchedKind > 9)
-         {
-            jjmatchedKind = 9;
-         }
-         break;
-       case 3:
-         jjmatchedKind = 0x7fffffff;
-         jjmatchedPos = 0;
-         curPos = jjMoveStringLiteralDfa0_3();
-         if (jjmatchedPos == 0 && jjmatchedKind > 9)
-         {
-            jjmatchedKind = 9;
-         }
-         break;
-     }
-     if (jjmatchedKind != 0x7fffffff)
-     {
-        if (jjmatchedPos + 1 < curPos)
-           input_stream.backup(curPos - jjmatchedPos - 1);
-        if ((jjtoToken[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L)
-        {
-           matchedToken = jjFillToken();
-           matchedToken.specialToken = specialToken;
-           TokenLexicalActions(matchedToken);
-       if (jjnewLexState[jjmatchedKind] != -1)
-         curLexState = jjnewLexState[jjmatchedKind];
-           return matchedToken;
+    private int jjMoveNfa_0(int startState, int curPos) {
+        int startsAt = 0;
+        jjnewStateCnt = 503;
+        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 506:
+                    case 113:
+                        if ((0x3ff200000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 101) {
+                            kind = 101;
+                        }
+                        jjCheckNAddTwoStates(113, 114);
+                        break;
+                    case 166:
+                        if (curChar == 45) {
+                            jjstateSet[jjnewStateCnt++] = 112;
+                        }
+                        if (curChar == 45) {
+                            jjstateSet[jjnewStateCnt++] = 217;
+                        }
+                        if (curChar == 45) {
+                            jjstateSet[jjnewStateCnt++] = 205;
+                        }
+                        if (curChar == 45) {
+                            jjstateSet[jjnewStateCnt++] = 189;
+                        }
+                        if (curChar == 45) {
+                            jjstateSet[jjnewStateCnt++] = 178;
+                        }
+                        break;
+                    case 174:
+                        if ((0x3ff200000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 101) {
+                            kind = 101;
+                        }
+                        jjCheckNAddTwoStates(113, 114);
+                        break;
+                    case 504:
+                        if ((0x100003600L & l) != 0L) {
+                            jjCheckNAddTwoStates(251, 260);
+                        }
+                        if ((0x100003600L & l) != 0L) {
+                            jjCheckNAddTwoStates(243, 250);
+                        }
+                        break;
+                    case 503:
+                        if ((0x3ff200000000000L & l) != 0L) {
+                            jjCheckNAddStates(0, 3);
+                        } else if ((0x100003600L & l) != 0L) {
+                            jjCheckNAddTwoStates(231, 232);
+                        } else if (curChar == 40) {
+                            if (kind > 116) {
+                                kind = 116;
+                            }
+                        }
+                        if ((0x3ff200000000000L & l) != 0L) {
+                            if (kind > 72) {
+                                kind = 72;
+                            }
+                            jjCheckNAddTwoStates(220, 221);
+                        }
+                        break;
+                    case 4:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            if (kind > 73) {
+                                kind = 73;
+                            }
+                            jjCheckNAddStates(4, 77);
+                        } else if ((0x100003600L & l) != 0L) {
+                            if (kind > 1) {
+                                kind = 1;
+                            }
+                            jjCheckNAdd(0);
+                        } else if (curChar == 46) {
+                            jjCheckNAddStates(78, 95);
+                        } else if (curChar == 45) {
+                            jjAddStates(96, 97);
+                        } else if (curChar == 33) {
+                            jjCheckNAddStates(98, 101);
+                        } else if (curChar == 35) {
+                            jjCheckNAddTwoStates(100, 101);
+                        } else if (curChar == 36) {
+                            jjCheckNAddStates(102, 105);
+                        } else if (curChar == 39) {
+                            jjCheckNAddStates(106, 109);
+                        } else if (curChar == 34) {
+                            jjCheckNAddStates(110, 113);
+                        } else if (curChar == 47) {
+                            jjstateSet[jjnewStateCnt++] = 3;
+                        }
+                        if (curChar == 45) {
+                            jjstateSet[jjnewStateCnt++] = 42;
+                        } else if (curChar == 35) {
+                            jjstateSet[jjnewStateCnt++] = 5;
+                        }
+                        break;
+                    case 175:
+                        if ((0x3ff200000000000L & l) != 0L) {
+                            if (kind > 101) {
+                                kind = 101;
+                            }
+                            jjCheckNAddTwoStates(113, 114);
+                        }
+                        if (curChar == 45) {
+                            jjstateSet[jjnewStateCnt++] = 174;
+                        }
+                        break;
+                    case 33:
+                        if ((0x3ff200000000000L & l) != 0L) {
+                            jjCheckNAddStates(0, 3);
+                        } else if ((0x100003600L & l) != 0L) {
+                            jjCheckNAddTwoStates(231, 232);
+                        } else if (curChar == 40) {
+                            if (kind > 116) {
+                                kind = 116;
+                            }
+                        }
+                        if ((0x3ff200000000000L & l) != 0L) {
+                            if (kind > 72) {
+                                kind = 72;
+                            }
+                            jjCheckNAddTwoStates(220, 221);
+                        }
+                        break;
+                    case 505:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(114, 118);
+                        }
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(314, 317);
+                        }
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(311, 313);
+                        }
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(309, 310);
+                        }
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(306, 308);
+                        }
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(301, 305);
+                        }
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(297, 300);
+                        }
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(293, 296);
+                        }
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(290, 292);
+                        }
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(287, 289);
+                        }
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(284, 286);
+                        }
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(281, 283);
+                        }
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(278, 280);
+                        }
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(275, 277);
+                        }
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(272, 274);
+                        }
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(269, 271);
+                        }
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(267, 268);
+                        }
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            if (kind > 73) {
+                                kind = 73;
+                            }
+                            jjCheckNAdd(266);
+                        }
+                        break;
+                    case 176:
+                        if ((0x3ff200000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 101) {
+                            kind = 101;
+                        }
+                        jjCheckNAddTwoStates(113, 114);
+                        break;
+                    case 177:
+                        if ((0x3ff200000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 101) {
+                            kind = 101;
+                        }
+                        jjCheckNAddTwoStates(113, 114);
+                        break;
+                    case 79:
+                        if (curChar == 45) {
+                            jjCheckNAdd(80);
+                        }
+                        break;
+                    case 0:
+                        if ((0x100003600L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 1) {
+                            kind = 1;
+                        }
+                        jjCheckNAdd(0);
+                        break;
+                    case 1:
+                        if (curChar == 42) {
+                            jjstateSet[jjnewStateCnt++] = 2;
+                        }
+                        break;
+                    case 2:
+                        if ((0xffff7fffffffffffL & l) != 0L && kind > 5) {
+                            kind = 5;
+                        }
+                        break;
+                    case 3:
+                        if (curChar == 42) {
+                            jjstateSet[jjnewStateCnt++] = 1;
+                        }
+                        break;
+                    case 6:
+                        if (curChar == 36) {
+                            jjCheckNAddStates(119, 122);
+                        }
+                        break;
+                    case 7:
+                        if (curChar == 45) {
+                            jjCheckNAdd(8);
+                        }
+                        break;
+                    case 9:
+                        if ((0x3ff200000000000L & l) != 0L) {
+                            jjCheckNAddStates(123, 125);
+                        }
+                        break;
+                    case 12:
+                        if ((0xffffffff00000000L & l) != 0L) {
+                            jjCheckNAddStates(123, 125);
+                        }
+                        break;
+                    case 13:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(126, 130);
+                        }
+                        break;
+                    case 14:
+                        if ((0x100003600L & l) != 0L) {
+                            jjCheckNAddStates(123, 125);
+                        }
+                        break;
+                    case 15:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(131, 138);
+                        }
+                        break;
+                    case 16:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(139, 142);
+                        }
+                        break;
+                    case 17:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(143, 147);
+                        }
+                        break;
+                    case 18:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(148, 153);
+                        }
+                        break;
+                    case 19:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(154, 160);
+                        }
+                        break;
+                    case 22:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(161, 165);
+                        }
+                        break;
+                    case 23:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(166, 173);
+                        }
+                        break;
+                    case 24:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(174, 177);
+                        }
+                        break;
+                    case 25:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(178, 182);
+                        }
+                        break;
+                    case 26:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(183, 188);
+                        }
+                        break;
+                    case 27:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(189, 195);
+                        }
+                        break;
+                    case 28:
+                        if (curChar == 35) {
+                            jjstateSet[jjnewStateCnt++] = 5;
+                        }
+                        break;
+                    case 40:
+                        if (curChar == 45) {
+                            jjstateSet[jjnewStateCnt++] = 39;
+                        }
+                        break;
+                    case 43:
+                        if (curChar == 45) {
+                            jjstateSet[jjnewStateCnt++] = 42;
+                        }
+                        break;
+                    case 44:
+                        if (curChar == 34) {
+                            jjCheckNAddStates(110, 113);
+                        }
+                        break;
+                    case 45:
+                        if ((0xfffffffb00000200L & l) != 0L) {
+                            jjCheckNAddStates(110, 113);
+                        }
+                        break;
+                    case 46:
+                        if (curChar == 34 && kind > 71) {
+                            kind = 71;
+                        }
+                        break;
+                    case 48:
+                        if (curChar == 12) {
+                            jjCheckNAddStates(110, 113);
+                        }
+                        break;
+                    case 50:
+                        if ((0xffffffff00000000L & l) != 0L) {
+                            jjCheckNAddStates(110, 113);
+                        }
+                        break;
+                    case 51:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(196, 201);
+                        }
+                        break;
+                    case 52:
+                        if ((0x100003600L & l) != 0L) {
+                            jjCheckNAddStates(110, 113);
+                        }
+                        break;
+                    case 53:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(202, 210);
+                        }
+                        break;
+                    case 54:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(211, 215);
+                        }
+                        break;
+                    case 55:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(216, 221);
+                        }
+                        break;
+                    case 56:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(222, 228);
+                        }
+                        break;
+                    case 57:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(229, 236);
+                        }
+                        break;
+                    case 58:
+                        if (curChar == 13) {
+                            jjCheckNAddStates(110, 113);
+                        }
+                        break;
+                    case 59:
+                        if (curChar == 10) {
+                            jjCheckNAddStates(110, 113);
+                        }
+                        break;
+                    case 60:
+                        if (curChar == 13) {
+                            jjstateSet[jjnewStateCnt++] = 59;
+                        }
+                        break;
+                    case 61:
+                        if (curChar == 39) {
+                            jjCheckNAddStates(106, 109);
+                        }
+                        break;
+                    case 62:
+                        if ((0xffffff7f00000200L & l) != 0L) {
+                            jjCheckNAddStates(106, 109);
+                        }
+                        break;
+                    case 63:
+                        if (curChar == 39 && kind > 71) {
+                            kind = 71;
+                        }
+                        break;
+                    case 65:
+                        if (curChar == 12) {
+                            jjCheckNAddStates(106, 109);
+                        }
+                        break;
+                    case 67:
+                        if ((0xffffffff00000000L & l) != 0L) {
+                            jjCheckNAddStates(106, 109);
+                        }
+                        break;
+                    case 68:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(237, 242);
+                        }
+                        break;
+                    case 69:
+                        if ((0x100003600L & l) != 0L) {
+                            jjCheckNAddStates(106, 109);
+                        }
+                        break;
+                    case 70:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(243, 251);
+                        }
+                        break;
+                    case 71:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(252, 256);
+                        }
+                        break;
+                    case 72:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(257, 262);
+                        }
+                        break;
+                    case 73:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(263, 269);
+                        }
+                        break;
+                    case 74:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(270, 277);
+                        }
+                        break;
+                    case 75:
+                        if (curChar == 13) {
+                            jjCheckNAddStates(106, 109);
+                        }
+                        break;
+                    case 76:
+                        if (curChar == 10) {
+                            jjCheckNAddStates(106, 109);
+                        }
+                        break;
+                    case 77:
+                        if (curChar == 13) {
+                            jjstateSet[jjnewStateCnt++] = 76;
+                        }
+                        break;
+                    case 78:
+                        if (curChar == 36) {
+                            jjCheckNAddStates(102, 105);
+                        }
+                        break;
+                    case 81:
+                        if ((0x3ff200000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 76) {
+                            kind = 76;
+                        }
+                        jjCheckNAddTwoStates(81, 82);
+                        break;
+                    case 83:
+                        if ((0xffffffff00000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 76) {
+                            kind = 76;
+                        }
+                        jjCheckNAddTwoStates(81, 82);
+                        break;
+                    case 84:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 76) {
+                            kind = 76;
+                        }
+                        jjCheckNAddStates(278, 281);
+                        break;
+                    case 85:
+                        if ((0x100003600L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 76) {
+                            kind = 76;
+                        }
+                        jjCheckNAddTwoStates(81, 82);
+                        break;
+                    case 86:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 76) {
+                            kind = 76;
+                        }
+                        jjCheckNAddStates(282, 288);
+                        break;
+                    case 87:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 76) {
+                            kind = 76;
+                        }
+                        jjCheckNAddStates(289, 291);
+                        break;
+                    case 88:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 76) {
+                            kind = 76;
+                        }
+                        jjCheckNAddStates(292, 295);
+                        break;
+                    case 89:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 76) {
+                            kind = 76;
+                        }
+                        jjCheckNAddStates(296, 300);
+                        break;
+                    case 90:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 76) {
+                            kind = 76;
+                        }
+                        jjCheckNAddStates(301, 306);
+                        break;
+                    case 93:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 76) {
+                            kind = 76;
+                        }
+                        jjCheckNAddStates(307, 310);
+                        break;
+                    case 94:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 76) {
+                            kind = 76;
+                        }
+                        jjCheckNAddStates(311, 317);
+                        break;
+                    case 95:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 76) {
+                            kind = 76;
+                        }
+                        jjCheckNAddStates(318, 320);
+                        break;
+                    case 96:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 76) {
+                            kind = 76;
+                        }
+                        jjCheckNAddStates(321, 324);
+                        break;
+                    case 97:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 76) {
+                            kind = 76;
+                        }
+                        jjCheckNAddStates(325, 329);
+                        break;
+                    case 98:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 76) {
+                            kind = 76;
+                        }
+                        jjCheckNAddStates(330, 335);
+                        break;
+                    case 99:
+                        if (curChar == 35) {
+                            jjCheckNAddTwoStates(100, 101);
+                        }
+                        break;
+                    case 100:
+                        if ((0x3ff200000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 94) {
+                            kind = 94;
+                        }
+                        jjCheckNAddTwoStates(100, 101);
+                        break;
+                    case 102:
+                        if ((0xffffffff00000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 94) {
+                            kind = 94;
+                        }
+                        jjCheckNAddTwoStates(100, 101);
+                        break;
+                    case 103:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 94) {
+                            kind = 94;
+                        }
+                        jjCheckNAddStates(336, 339);
+                        break;
+                    case 104:
+                        if ((0x100003600L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 94) {
+                            kind = 94;
+                        }
+                        jjCheckNAddTwoStates(100, 101);
+                        break;
+                    case 105:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 94) {
+                            kind = 94;
+                        }
+                        jjCheckNAddStates(340, 346);
+                        break;
+                    case 106:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 94) {
+                            kind = 94;
+                        }
+                        jjCheckNAddStates(347, 349);
+                        break;
+                    case 107:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 94) {
+                            kind = 94;
+                        }
+                        jjCheckNAddStates(350, 353);
+                        break;
+                    case 108:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 94) {
+                            kind = 94;
+                        }
+                        jjCheckNAddStates(354, 358);
+                        break;
+                    case 109:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 94) {
+                            kind = 94;
+                        }
+                        jjCheckNAddStates(359, 364);
+                        break;
+                    case 111:
+                        if (curChar == 45) {
+                            jjstateSet[jjnewStateCnt++] = 112;
+                        }
+                        break;
+                    case 115:
+                        if ((0xffffffff00000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 101) {
+                            kind = 101;
+                        }
+                        jjCheckNAddTwoStates(113, 114);
+                        break;
+                    case 116:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 101) {
+                            kind = 101;
+                        }
+                        jjCheckNAddStates(365, 368);
+                        break;
+                    case 117:
+                        if ((0x100003600L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 101) {
+                            kind = 101;
+                        }
+                        jjCheckNAddTwoStates(113, 114);
+                        break;
+                    case 118:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 101) {
+                            kind = 101;
+                        }
+                        jjCheckNAddStates(369, 375);
+                        break;
+                    case 119:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 101) {
+                            kind = 101;
+                        }
+                        jjCheckNAddStates(376, 378);
+                        break;
+                    case 120:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 101) {
+                            kind = 101;
+                        }
+                        jjCheckNAddStates(379, 382);
+                        break;
+                    case 121:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 101) {
+                            kind = 101;
+                        }
+                        jjCheckNAddStates(383, 387);
+                        break;
+                    case 122:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 101) {
+                            kind = 101;
+                        }
+                        jjCheckNAddStates(388, 393);
+                        break;
+                    case 125:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 101) {
+                            kind = 101;
+                        }
+                        jjCheckNAddStates(394, 397);
+                        break;
+                    case 126:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 101) {
+                            kind = 101;
+                        }
+                        jjCheckNAddStates(398, 404);
+                        break;
+                    case 127:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 101) {
+                            kind = 101;
+                        }
+                        jjCheckNAddStates(405, 407);
+                        break;
+                    case 128:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 101) {
+                            kind = 101;
+                        }
+                        jjCheckNAddStates(408, 411);
+                        break;
+                    case 129:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 101) {
+                            kind = 101;
+                        }
+                        jjCheckNAddStates(412, 416);
+                        break;
+                    case 130:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 101) {
+                            kind = 101;
+                        }
+                        jjCheckNAddStates(417, 422);
+                        break;
+                    case 132:
+                        if ((0x100003600L & l) != 0L) {
+                            jjAddStates(423, 424);
+                        }
+                        break;
+                    case 133:
+                        if (curChar == 40 && kind > 113) {
+                            kind = 113;
+                        }
+                        break;
+                    case 140:
+                        if ((0x100003600L & l) != 0L) {
+                            jjAddStates(425, 426);
+                        }
+                        break;
+                    case 141:
+                        if (curChar == 40 && kind > 114) {
+                            kind = 114;
+                        }
+                        break;
+                    case 148:
+                        if ((0x100003600L & l) != 0L) {
+                            jjAddStates(427, 428);
+                        }
+                        break;
+                    case 149:
+                        if (curChar == 40 && kind > 115) {
+                            kind = 115;
+                        }
+                        break;
+                    case 179:
+                        if (curChar == 45) {
+                            jjstateSet[jjnewStateCnt++] = 178;
+                        }
+                        break;
+                    case 188:
+                        if (curChar == 45) {
+                            jjstateSet[jjnewStateCnt++] = 187;
+                        }
+                        break;
+                    case 190:
+                        if (curChar == 45) {
+                            jjstateSet[jjnewStateCnt++] = 189;
+                        }
+                        break;
+                    case 199:
+                        if (curChar == 45) {
+                            jjstateSet[jjnewStateCnt++] = 198;
+                        }
+                        break;
+                    case 206:
+                        if (curChar == 45) {
+                            jjstateSet[jjnewStateCnt++] = 205;
+                        }
+                        break;
+                    case 215:
+                        if (curChar == 45) {
+                            jjstateSet[jjnewStateCnt++] = 214;
+                        }
+                        break;
+                    case 218:
+                        if (curChar == 45) {
+                            jjstateSet[jjnewStateCnt++] = 217;
+                        }
+                        break;
+                    case 220:
+                        if ((0x3ff200000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 72) {
+                            kind = 72;
+                        }
+                        jjCheckNAddTwoStates(220, 221);
+                        break;
+                    case 222:
+                        if ((0xffffffff00000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 72) {
+                            kind = 72;
+                        }
+                        jjCheckNAddTwoStates(220, 221);
+                        break;
+                    case 223:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 72) {
+                            kind = 72;
+                        }
+                        jjCheckNAddStates(429, 432);
+                        break;
+                    case 224:
+                        if ((0x100003600L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 72) {
+                            kind = 72;
+                        }
+                        jjCheckNAddTwoStates(220, 221);
+                        break;
+                    case 225:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 72) {
+                            kind = 72;
+                        }
+                        jjCheckNAddStates(433, 439);
+                        break;
+                    case 226:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 72) {
+                            kind = 72;
+                        }
+                        jjCheckNAddStates(440, 442);
+                        break;
+                    case 227:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 72) {
+                            kind = 72;
+                        }
+                        jjCheckNAddStates(443, 446);
+                        break;
+                    case 228:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 72) {
+                            kind = 72;
+                        }
+                        jjCheckNAddStates(447, 451);
+                        break;
+                    case 229:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 72) {
+                            kind = 72;
+                        }
+                        jjCheckNAddStates(452, 457);
+                        break;
+                    case 230:
+                        if ((0x3ff200000000000L & l) != 0L) {
+                            jjCheckNAddStates(0, 3);
+                        }
+                        break;
+                    case 231:
+                        if ((0x100003600L & l) != 0L) {
+                            jjCheckNAddTwoStates(231, 232);
+                        }
+                        break;
+                    case 232:
+                        if (curChar == 40 && kind > 116) {
+                            kind = 116;
+                        }
+                        break;
+                    case 234:
+                        if ((0xffffffff00000000L & l) != 0L) {
+                            jjCheckNAddStates(0, 3);
+                        }
+                        break;
+                    case 235:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(458, 462);
+                        }
+                        break;
+                    case 236:
+                        if ((0x100003600L & l) != 0L) {
+                            jjCheckNAddStates(0, 3);
+                        }
+                        break;
+                    case 237:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(463, 470);
+                        }
+                        break;
+                    case 238:
+                    case 444:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(471, 474);
+                        }
+                        break;
+                    case 239:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(475, 479);
+                        }
+                        break;
+                    case 240:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(480, 485);
+                        }
+                        break;
+                    case 241:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(486, 492);
+                        }
+                        break;
+                    case 242:
+                        if (curChar == 33) {
+                            jjCheckNAddStates(98, 101);
+                        }
+                        break;
+                    case 243:
+                        if ((0x100003600L & l) != 0L) {
+                            jjCheckNAddTwoStates(243, 250);
+                        }
+                        break;
+                    case 251:
+                        if ((0x100003600L & l) != 0L) {
+                            jjCheckNAddTwoStates(251, 260);
+                        }
+                        break;
+                    case 261:
+                        if (curChar == 45) {
+                            jjAddStates(96, 97);
+                        }
+                        break;
+                    case 265:
+                        if (curChar == 46) {
+                            jjCheckNAddStates(78, 95);
+                        }
+                        break;
+                    case 266:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 73) {
+                            kind = 73;
+                        }
+                        jjCheckNAdd(266);
+                        break;
+                    case 267:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(267, 268);
+                        }
+                        break;
+                    case 268:
+                        if (curChar == 37 && kind > 77) {
+                            kind = 77;
+                        }
+                        break;
+                    case 269:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(269, 271);
+                        }
+                        break;
+                    case 272:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(272, 274);
+                        }
+                        break;
+                    case 275:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(275, 277);
+                        }
+                        break;
+                    case 278:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(278, 280);
+                        }
+                        break;
+                    case 281:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(281, 283);
+                        }
+                        break;
+                    case 284:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(284, 286);
+                        }
+                        break;
+                    case 287:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(287, 289);
+                        }
+                        break;
+                    case 290:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(290, 292);
+                        }
+                        break;
+                    case 293:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(293, 296);
+                        }
+                        break;
+                    case 297:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(297, 300);
+                        }
+                        break;
+                    case 301:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(301, 305);
+                        }
+                        break;
+                    case 306:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(306, 308);
+                        }
+                        break;
+                    case 309:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(309, 310);
+                        }
+                        break;
+                    case 311:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(311, 313);
+                        }
+                        break;
+                    case 314:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(314, 317);
+                        }
+                        break;
+                    case 318:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(114, 118);
+                        }
+                        break;
+                    case 319:
+                        if (curChar == 45) {
+                            jjCheckNAdd(320);
+                        }
+                        break;
+                    case 321:
+                        if ((0x3ff200000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 93) {
+                            kind = 93;
+                        }
+                        jjCheckNAddTwoStates(321, 322);
+                        break;
+                    case 323:
+                        if ((0xffffffff00000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 93) {
+                            kind = 93;
+                        }
+                        jjCheckNAddTwoStates(321, 322);
+                        break;
+                    case 324:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 93) {
+                            kind = 93;
+                        }
+                        jjCheckNAddStates(493, 496);
+                        break;
+                    case 325:
+                        if ((0x100003600L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 93) {
+                            kind = 93;
+                        }
+                        jjCheckNAddTwoStates(321, 322);
+                        break;
+                    case 326:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 93) {
+                            kind = 93;
+                        }
+                        jjCheckNAddStates(497, 503);
+                        break;
+                    case 327:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 93) {
+                            kind = 93;
+                        }
+                        jjCheckNAddStates(504, 506);
+                        break;
+                    case 328:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 93) {
+                            kind = 93;
+                        }
+                        jjCheckNAddStates(507, 510);
+                        break;
+                    case 329:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 93) {
+                            kind = 93;
+                        }
+                        jjCheckNAddStates(511, 515);
+                        break;
+                    case 330:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 93) {
+                            kind = 93;
+                        }
+                        jjCheckNAddStates(516, 521);
+                        break;
+                    case 333:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 93) {
+                            kind = 93;
+                        }
+                        jjCheckNAddStates(522, 525);
+                        break;
+                    case 334:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 93) {
+                            kind = 93;
+                        }
+                        jjCheckNAddStates(526, 532);
+                        break;
+                    case 335:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 93) {
+                            kind = 93;
+                        }
+                        jjCheckNAddStates(533, 535);
+                        break;
+                    case 336:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 93) {
+                            kind = 93;
+                        }
+                        jjCheckNAddStates(536, 539);
+                        break;
+                    case 337:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 93) {
+                            kind = 93;
+                        }
+                        jjCheckNAddStates(540, 544);
+                        break;
+                    case 338:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 93) {
+                            kind = 93;
+                        }
+                        jjCheckNAddStates(545, 550);
+                        break;
+                    case 340:
+                        if (curChar == 40) {
+                            jjCheckNAddStates(551, 556);
+                        }
+                        break;
+                    case 341:
+                        if ((0xfffffc7a00000000L & l) != 0L) {
+                            jjCheckNAddStates(557, 560);
+                        }
+                        break;
+                    case 342:
+                        if ((0x100003600L & l) != 0L) {
+                            jjCheckNAddTwoStates(342, 343);
+                        }
+                        break;
+                    case 343:
+                        if (curChar == 41 && kind > 75) {
+                            kind = 75;
+                        }
+                        break;
+                    case 345:
+                        if ((0xffffffff00000000L & l) != 0L) {
+                            jjCheckNAddStates(557, 560);
+                        }
+                        break;
+                    case 346:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(561, 565);
+                        }
+                        break;
+                    case 347:
+                        if ((0x100003600L & l) != 0L) {
+                            jjCheckNAddStates(557, 560);
+                        }
+                        break;
+                    case 348:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(566, 573);
+                        }
+                        break;
+                    case 349:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(574, 577);
+                        }
+                        break;
+                    case 350:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(578, 582);
+                        }
+                        break;
+                    case 351:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(583, 588);
+                        }
+                        break;
+                    case 352:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(589, 595);
+                        }
+                        break;
+                    case 353:
+                        if (curChar == 39) {
+                            jjCheckNAddStates(596, 599);
+                        }
+                        break;
+                    case 354:
+                        if ((0xffffff7f00000200L & l) != 0L) {
+                            jjCheckNAddStates(596, 599);
+                        }
+                        break;
+                    case 355:
+                        if (curChar == 39) {
+                            jjCheckNAddTwoStates(342, 343);
+                        }
+                        break;
+                    case 357:
+                        if (curChar == 12) {
+                            jjCheckNAddStates(596, 599);
+                        }
+                        break;
+                    case 359:
+                        if ((0xffffffff00000000L & l) != 0L) {
+                            jjCheckNAddStates(596, 599);
+                        }
+                        break;
+                    case 360:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(600, 605);
+                        }
+                        break;
+                    case 361:
+                        if ((0x100003600L & l) != 0L) {
+                            jjCheckNAddStates(596, 599);
+                        }
+                        break;
+                    case 362:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(606, 614);
+                        }
+                        break;
+                    case 363:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(615, 619);
+                        }
+                        break;
+                    case 364:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(620, 625);
+                        }
+                        break;
+                    case 365:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(626, 632);
+                        }
+                        break;
+                    case 366:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(633, 640);
+                        }
+                        break;
+                    case 367:
+                        if (curChar == 13) {
+                            jjCheckNAddStates(596, 599);
+                        }
+                        break;
+                    case 368:
+                        if (curChar == 10) {
+                            jjCheckNAddStates(596, 599);
+                        }
+                        break;
+                    case 369:
+                        if (curChar == 13) {
+                            jjstateSet[jjnewStateCnt++] = 368;
+                        }
+                        break;
+                    case 370:
+                        if (curChar == 34) {
+                            jjCheckNAddStates(641, 644);
+                        }
+                        break;
+                    case 371:
+                        if ((0xfffffffb00000200L & l) != 0L) {
+                            jjCheckNAddStates(641, 644);
+                        }
+                        break;
+                    case 372:
+                        if (curChar == 34) {
+                            jjCheckNAddTwoStates(342, 343);
+                        }
+                        break;
+                    case 374:
+                        if (curChar == 12) {
+                            jjCheckNAddStates(641, 644);
+                        }
+                        break;
+                    case 376:
+                        if ((0xffffffff00000000L & l) != 0L) {
+                            jjCheckNAddStates(641, 644);
+                        }
+                        break;
+                    case 377:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(645, 650);
+                        }
+                        break;
+                    case 378:
+                        if ((0x100003600L & l) != 0L) {
+                            jjCheckNAddStates(641, 644);
+                        }
+                        break;
+                    case 379:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(651, 659);
+                        }
+                        break;
+                    case 380:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(660, 664);
+                        }
+                        break;
+                    case 381:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(665, 670);
+                        }
+                        break;
+                    case 382:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(671, 677);
+                        }
+                        break;
+                    case 383:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(678, 685);
+                        }
+                        break;
+                    case 384:
+                        if (curChar == 13) {
+                            jjCheckNAddStates(641, 644);
+                        }
+                        break;
+                    case 385:
+                        if (curChar == 10) {
+                            jjCheckNAddStates(641, 644);
+                        }
+                        break;
+                    case 386:
+                        if (curChar == 13) {
+                            jjstateSet[jjnewStateCnt++] = 385;
+                        }
+                        break;
+                    case 387:
+                        if ((0x100003600L & l) != 0L) {
+                            jjCheckNAddStates(686, 692);
+                        }
+                        break;
+                    case 390:
+                        if (curChar == 43) {
+                            jjAddStates(693, 694);
+                        }
+                        break;
+                    case 391:
+                        if (curChar != 63) {
+                            break;
+                        }
+                        if (kind > 112) {
+                            kind = 112;
+                        }
+                        jjstateSet[jjnewStateCnt++] = 392;
+                        break;
+                    case 392:
+                        if (curChar != 63) {
+                            break;
+                        }
+                        if (kind > 112) {
+                            kind = 112;
+                        }
+                        jjCheckNAddStates(695, 698);
+                        break;
+                    case 393:
+                        if (curChar == 63 && kind > 112) {
+                            kind = 112;
+                        }
+                        break;
+                    case 394:
+                    case 409:
+                    case 413:
+                    case 416:
+                    case 419:
+                        if (curChar != 63) {
+                            break;
+                        }
+                        if (kind > 112) {
+                            kind = 112;
+                        }
+                        jjCheckNAdd(393);
+                        break;
+                    case 395:
+                        if (curChar != 63) {
+                            break;
+                        }
+                        if (kind > 112) {
+                            kind = 112;
+                        }
+                        jjCheckNAddTwoStates(393, 394);
+                        break;
+                    case 396:
+                        if (curChar != 63) {
+                            break;
+                        }
+                        if (kind > 112) {
+                            kind = 112;
+                        }
+                        jjCheckNAddStates(699, 701);
+                        break;
+                    case 397:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 112) {
+                            kind = 112;
+                        }
+                        jjAddStates(702, 707);
+                        break;
+                    case 398:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 399;
+                        }
+                        break;
+                    case 399:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 400;
+                        }
+                        break;
+                    case 400:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAdd(401);
+                        }
+                        break;
+                    case 401:
+                        if ((0x3ff000000000000L & l) != 0L && kind > 112) {
+                            kind = 112;
+                        }
+                        break;
+                    case 402:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 403;
+                        }
+                        break;
+                    case 403:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 404;
+                        }
+                        break;
+                    case 404:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 405;
+                        }
+                        break;
+                    case 405:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 112) {
+                            kind = 112;
+                        }
+                        jjCheckNAdd(393);
+                        break;
+                    case 406:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 407;
+                        }
+                        break;
+                    case 407:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 408;
+                        }
+                        break;
+                    case 408:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 112) {
+                            kind = 112;
+                        }
+                        jjstateSet[jjnewStateCnt++] = 409;
+                        break;
+                    case 410:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 411;
+                        }
+                        break;
+                    case 411:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 112) {
+                            kind = 112;
+                        }
+                        jjstateSet[jjnewStateCnt++] = 412;
+                        break;
+                    case 412:
+                        if (curChar != 63) {
+                            break;
+                        }
+                        if (kind > 112) {
+                            kind = 112;
+                        }
+                        jjCheckNAddTwoStates(393, 413);
+                        break;
+                    case 414:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 112) {
+                            kind = 112;
+                        }
+                        jjstateSet[jjnewStateCnt++] = 415;
+                        break;
+                    case 415:
+                        if (curChar != 63) {
+                            break;
+                        }
+                        if (kind > 112) {
+                            kind = 112;
+                        }
+                        jjCheckNAddStates(708, 710);
+                        break;
+                    case 417:
+                        if (curChar != 63) {
+                            break;
+                        }
+                        if (kind > 112) {
+                            kind = 112;
+                        }
+                        jjCheckNAddTwoStates(393, 416);
+                        break;
+                    case 418:
+                        if (curChar != 63) {
+                            break;
+                        }
+                        if (kind > 112) {
+                            kind = 112;
+                        }
+                        jjCheckNAddStates(711, 714);
+                        break;
+                    case 420:
+                        if (curChar != 63) {
+                            break;
+                        }
+                        if (kind > 112) {
+                            kind = 112;
+                        }
+                        jjCheckNAddTwoStates(393, 419);
+                        break;
+                    case 421:
+                        if (curChar != 63) {
+                            break;
+                        }
+                        if (kind > 112) {
+                            kind = 112;
+                        }
+                        jjCheckNAddStates(715, 717);
+                        break;
+                    case 422:
+                        if (curChar == 43) {
+                            jjstateSet[jjnewStateCnt++] = 423;
+                        }
+                        break;
+                    case 423:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(424, 430);
+                        }
+                        break;
+                    case 424:
+                        if (curChar == 45) {
+                            jjstateSet[jjnewStateCnt++] = 425;
+                        }
+                        break;
+                    case 425:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 112) {
+                            kind = 112;
+                        }
+                        jjstateSet[jjnewStateCnt++] = 426;
+                        break;
+                    case 426:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 112) {
+                            kind = 112;
+                        }
+                        jjCheckNAddStates(718, 721);
+                        break;
+                    case 427:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 112) {
+                            kind = 112;
+                        }
+                        jjCheckNAdd(401);
+                        break;
+                    case 428:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 112) {
+                            kind = 112;
+                        }
+                        jjCheckNAddTwoStates(401, 427);
+                        break;
+                    case 429:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 112) {
+                            kind = 112;
+                        }
+                        jjCheckNAddStates(722, 724);
+                        break;
+                    case 430:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(725, 729);
+                        }
+                        break;
+                    case 431:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAdd(424);
+                        }
+                        break;
+                    case 432:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(431, 424);
+                        }
+                        break;
+                    case 433:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(730, 732);
+                        }
+                        break;
+                    case 434:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(733, 736);
+                        }
+                        break;
+                    case 436:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 72) {
+                            kind = 72;
+                        }
+                        jjCheckNAddStates(737, 740);
+                        break;
+                    case 437:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 72) {
+                            kind = 72;
+                        }
+                        jjCheckNAddStates(741, 747);
+                        break;
+                    case 438:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 72) {
+                            kind = 72;
+                        }
+                        jjCheckNAddStates(748, 750);
+                        break;
+                    case 439:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 72) {
+                            kind = 72;
+                        }
+                        jjCheckNAddStates(751, 754);
+                        break;
+                    case 440:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 72) {
+                            kind = 72;
+                        }
+                        jjCheckNAddStates(755, 759);
+                        break;
+                    case 441:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 72) {
+                            kind = 72;
+                        }
+                        jjCheckNAddStates(760, 765);
+                        break;
+                    case 442:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(766, 770);
+                        }
+                        break;
+                    case 443:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(771, 778);
+                        }
+                        break;
+                    case 445:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(779, 783);
+                        }
+                        break;
+                    case 446:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(784, 789);
+                        }
+                        break;
+                    case 447:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(790, 796);
+                        }
+                        break;
+                    case 448:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 73) {
+                            kind = 73;
+                        }
+                        jjCheckNAddStates(4, 77);
+                        break;
+                    case 449:
+                        if ((0x3ff000000000000L & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 73) {
+                            kind = 73;
+                        }
+                        jjCheckNAdd(449);
+                        break;
+                    case 450:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(450, 451);
+                        }
+                        break;
+                    case 451:
+                        if (curChar == 46) {
+                            jjCheckNAdd(266);
+                        }
+                        break;
+                    case 452:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(452, 268);
+                        }
+                        break;
+                    case 453:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(453, 454);
+                        }
+                        break;
+                    case 454:
+                        if (curChar == 46) {
+                            jjCheckNAdd(267);
+                        }
+                        break;
+                    case 455:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(455, 271);
+                        }
+                        break;
+                    case 456:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(456, 457);
+                        }
+                        break;
+                    case 457:
+                        if (curChar == 46) {
+                            jjCheckNAdd(269);
+                        }
+                        break;
+                    case 458:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(458, 274);
+                        }
+                        break;
+                    case 459:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(459, 460);
+                        }
+                        break;
+                    case 460:
+                        if (curChar == 46) {
+                            jjCheckNAdd(272);
+                        }
+                        break;
+                    case 461:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(461, 277);
+                        }
+                        break;
+                    case 462:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(462, 463);
+                        }
+                        break;
+                    case 463:
+                        if (curChar == 46) {
+                            jjCheckNAdd(275);
+                        }
+                        break;
+                    case 464:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(464, 280);
+                        }
+                        break;
+                    case 465:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(465, 466);
+                        }
+                        break;
+                    case 466:
+                        if (curChar == 46) {
+                            jjCheckNAdd(278);
+                        }
+                        break;
+                    case 467:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(467, 283);
+                        }
+                        break;
+                    case 468:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(468, 469);
+                        }
+                        break;
+                    case 469:
+                        if (curChar == 46) {
+                            jjCheckNAdd(281);
+                        }
+                        break;
+                    case 470:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(470, 286);
+                        }
+                        break;
+                    case 471:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(471, 472);
+                        }
+                        break;
+                    case 472:
+                        if (curChar == 46) {
+                            jjCheckNAdd(284);
+                        }
+                        break;
+                    case 473:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(473, 289);
+                        }
+                        break;
+                    case 474:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(474, 475);
+                        }
+                        break;
+                    case 475:
+                        if (curChar == 46) {
+                            jjCheckNAdd(287);
+                        }
+                        break;
+                    case 476:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(476, 292);
+                        }
+                        break;
+                    case 477:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(477, 478);
+                        }
+                        break;
+                    case 478:
+                        if (curChar == 46) {
+                            jjCheckNAdd(290);
+                        }
+                        break;
+                    case 479:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(479, 296);
+                        }
+                        break;
+                    case 480:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(480, 481);
+                        }
+                        break;
+                    case 481:
+                        if (curChar == 46) {
+                            jjCheckNAdd(293);
+                        }
+                        break;
+                    case 482:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(482, 300);
+                        }
+                        break;
+                    case 483:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(483, 484);
+                        }
+                        break;
+                    case 484:
+                        if (curChar == 46) {
+                            jjCheckNAdd(297);
+                        }
+                        break;
+                    case 485:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(485, 305);
+                        }
+                        break;
+                    case 486:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(486, 487);
+                        }
+                        break;
+                    case 487:
+                        if (curChar == 46) {
+                            jjCheckNAdd(301);
+                        }
+                        break;
+                    case 488:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(488, 308);
+                        }
+                        break;
+                    case 489:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(489, 490);
+                        }
+                        break;
+                    case 490:
+                        if (curChar == 46) {
+                            jjCheckNAdd(306);
+                        }
+                        break;
+                    case 491:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(491, 310);
+                        }
+                        break;
+                    case 492:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(492, 493);
+                        }
+                        break;
+                    case 493:
+                        if (curChar == 46) {
+                            jjCheckNAdd(309);
+                        }
+                        break;
+                    case 494:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(494, 313);
+                        }
+                        break;
+                    case 495:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(495, 496);
+                        }
+                        break;
+                    case 496:
+                        if (curChar == 46) {
+                            jjCheckNAdd(311);
+                        }
+                        break;
+                    case 497:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(497, 317);
+                        }
+                        break;
+                    case 498:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(498, 499);
+                        }
+                        break;
+                    case 499:
+                        if (curChar == 46) {
+                            jjCheckNAdd(314);
+                        }
+                        break;
+                    case 500:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddStates(797, 801);
+                        }
+                        break;
+                    case 501:
+                        if ((0x3ff000000000000L & l) != 0L) {
+                            jjCheckNAddTwoStates(501, 502);
+                        }
+                        break;
+                    case 502:
+                        if (curChar == 46) {
+                            jjCheckNAdd(318);
+                        }
+                        break;
+                    default:
+                        break;
+                    }
+                } while (i != startsAt);
+            } else if (curChar < 128) {
+                long l = 1L << (curChar & 077);
+                do {
+                    switch (jjstateSet[--i]) {
+                    case 506:
+                        if ((0x7fffffe87fffffeL & l) != 0L) {
+                            if (kind > 101) {
+                                kind = 101;
+                            }
+                            jjCheckNAddTwoStates(113, 114);
+                        } else if (curChar == 92) {
+                            jjCheckNAddTwoStates(115, 116);
+                        }
+                        break;
+                    case 166:
+                        if ((0x7fffffe07fffffeL & l) != 0L) {
+                            if (kind > 101) {
+                                kind = 101;
+                            }
+                            jjCheckNAddTwoStates(113, 114);
+                        } else if (curChar == 92) {
+                            jjCheckNAddTwoStates(115, 125);
+                        }
+                        if ((0x80000000800L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 165;
+                        }
+                        break;
+                    case 174:
+                        if ((0x7fffffe87fffffeL & l) != 0L) {
+                            if (kind > 101) {
+                                kind = 101;
+                            }
+                            jjCheckNAddTwoStates(113, 114);
+                        } else if (curChar == 92) {
+                            jjCheckNAddTwoStates(115, 116);
+                        }
+                        if ((0x80000000800L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 173;
+                        }
+                        break;
+                    case 504:
+                        if ((0x20000000200L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 259;
+                        } else if ((0x1000000010L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 249;
+                        }
+                        break;
+                    case 178:
+                        if ((0x7fffffe07fffffeL & l) != 0L) {
+                            if (kind > 101) {
+                                kind = 101;
+                            }
+                            jjCheckNAddTwoStates(113, 114);
+                        }
+                        if ((0x200000002000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 216;
+                        } else if ((0x80000000800000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 204;
+                        } else if ((0x800000008000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 188;
+                        }
+                        if ((0x200000002000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 177;
+                        }
+                        break;
+                    case 503:
+                        if ((0x7fffffe87fffffeL & l) != 0L) {
+                            jjCheckNAddStates(0, 3);
+                        } else if (curChar == 92) {
+                            jjCheckNAddTwoStates(222, 223);
+                        }
+                        if ((0x7fffffe87fffffeL & l) != 0L) {
+                            if (kind > 72) {
+                                kind = 72;
+                            }
+                            jjCheckNAddTwoStates(220, 221);
+                        } else if (curChar == 92) {
+                            jjCheckNAddTwoStates(234, 235);
+                        }
+                        break;
+                    case 4:
+                        if ((0x7fffffe07fffffeL & l) != 0L) {
+                            if (kind > 72) {
+                                kind = 72;
+                            }
+                            jjCheckNAddStates(802, 807);
+                        } else if (curChar == 92) {
+                            jjCheckNAddStates(808, 811);
+                        } else if (curChar == 64) {
+                            jjAddStates(812, 816);
+                        }
+                        if ((0x20000000200000L & l) != 0L) {
+                            jjAddStates(817, 819);
+                        } else if ((0x800000008L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 155;
+                        } else if ((0x200000002L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 145;
+                        } else if ((0x4000000040000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 137;
+                        } else if ((0x4000000040L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 33;
+                        } else if (curChar == 64) {
+                            jjAddStates(820, 823);
+                        }
+                        break;
+                    case 175:
+                        if ((0x7fffffe87fffffeL & l) != 0L) {
+                            if (kind > 101) {
+                                kind = 101;
+                            }
+                            jjCheckNAddTwoStates(113, 114);
+                        } else if (curChar == 92) {
+                            jjCheckNAddTwoStates(115, 116);
+                        }
+                        break;
+                    case 33:
+                        if ((0x7fffffe87fffffeL & l) != 0L) {
+                            jjCheckNAddStates(0, 3);
+                        } else if (curChar == 92) {
+                            jjCheckNAddTwoStates(222, 223);
+                        }
+                        if ((0x7fffffe87fffffeL & l) != 0L) {
+                            if (kind > 72) {
+                                kind = 72;
+                            }
+                            jjCheckNAddTwoStates(220, 221);
+                        } else if (curChar == 92) {
+                            jjCheckNAddTwoStates(234, 235);
+                        }
+                        if ((0x20000000200L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 32;
+                        }
+                        break;
+                    case 176:
+                        if ((0x7fffffe87fffffeL & l) != 0L) {
+                            if (kind > 101) {
+                                kind = 101;
+                            }
+                            jjCheckNAddTwoStates(113, 114);
+                        } else if (curChar == 92) {
+                            jjCheckNAddTwoStates(115, 116);
+                        }
+                        if ((0x400000004000000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 175;
+                        }
+                        break;
+                    case 42:
+                        if ((0x7fffffe07fffffeL & l) != 0L) {
+                            jjCheckNAddStates(0, 3);
+                        }
+                        if ((0x7fffffe07fffffeL & l) != 0L) {
+                            if (kind > 72) {
+                                kind = 72;
+                            }
+                            jjCheckNAddTwoStates(220, 221);
+                        }
+                        if ((0x200000002000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 41;
+                        }
+                        break;
+                    case 177:
+                        if ((0x7fffffe87fffffeL & l) != 0L) {
+                            if (kind > 101) {
+                                kind = 101;
+                            }
+                            jjCheckNAddTwoStates(113, 114);
+                        } else if (curChar == 92) {
+                            jjCheckNAddTwoStates(115, 116);
+                        }
+                        if ((0x8000000080000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 215;
+                        } else if ((0x800000008000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 176;
+                        }
+                        break;
+                    case 79:
+                        if ((0x7fffffe07fffffeL & l) != 0L) {
+                            if (kind > 76) {
+                                kind = 76;
+                            }
+                            jjCheckNAddTwoStates(81, 82);
+                        } else if (curChar == 92) {
+                            jjCheckNAddTwoStates(83, 93);
+                        }
+                        break;
+                    case 2:
+                        if (kind > 5) {
+                            kind = 5;
+                        }
+                        break;
+                    case 5:
+                        if (curChar == 123) {
+                            jjstateSet[jjnewStateCnt++] = 6;
+                        }
+                        break;
+                    case 8:
+                        if ((0x7fffffe07fffffeL & l) != 0L) {
+                            jjCheckNAddStates(123, 125);
+                        }
+                        break;
+                    case 9:
+                        if ((0x7fffffe87fffffeL & l) != 0L) {
+                            jjCheckNAddStates(123, 125);
+                        }
+                        break;
+                    case 10:
+                        if (curChar == 125 && kind > 40) {
+                            kind = 40;
+                        }
+                        break;
+                    case 11:
+                        if (curChar == 92) {
+                            jjCheckNAddTwoStates(12, 13);
+                        }
+                        break;
+                    case 12:
+                        if ((0x7fffffffffffffffL & l) != 0L) {
+                            jjCheckNAddStates(123, 125);
+                        }
+                        break;
+                    case 13:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(126, 130);
+                        }
+                        break;
+                    case 15:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(131, 138);
+                        }
+                        break;
+                    case 16:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(139, 142);
+                        }
+                        break;
+                    case 17:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(143, 147);
+                        }
+                        break;
+                    case 18:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(148, 153);
+                        }
+                        break;
+                    case 19:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(154, 160);
+                        }
+                        break;
+                    case 21:
+                        if (curChar == 92) {
+                            jjCheckNAddTwoStates(12, 22);
+                        }
+                        break;
+                    case 22:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(161, 165);
+                        }
+                        break;
+                    case 23:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(166, 173);
+                        }
+                        break;
+                    case 24:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(174, 177);
+                        }
+                        break;
+                    case 25:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(178, 182);
+                        }
+                        break;
+                    case 26:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(183, 188);
+                        }
+                        break;
+                    case 27:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(189, 195);
+                        }
+                        break;
+                    case 29:
+                        if ((0x4000000040000L & l) != 0L && kind > 68) {
+                            kind = 68;
+                        }
+                        break;
+                    case 30:
+                    case 35:
+                        if ((0x2000000020L & l) != 0L) {
+                            jjCheckNAdd(29);
+                        }
+                        break;
+                    case 31:
+                        if ((0x10000000100000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 30;
+                        }
+                        break;
+                    case 32:
+                        if ((0x100000001000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 31;
+                        }
+                        break;
+                    case 34:
+                        if ((0x4000000040L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 33;
+                        }
+                        break;
+                    case 36:
+                        if ((0x10000000100000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 35;
+                        }
+                        break;
+                    case 37:
+                        if ((0x100000001000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 36;
+                        }
+                        break;
+                    case 38:
+                        if ((0x20000000200L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 37;
+                        }
+                        break;
+                    case 39:
+                        if ((0x4000000040L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 38;
+                        }
+                        break;
+                    case 41:
+                        if ((0x8000000080000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 40;
+                        }
+                        break;
+                    case 45:
+                    case 50:
+                        if ((0x7fffffffffffffffL & l) != 0L) {
+                            jjCheckNAddStates(110, 113);
+                        }
+                        break;
+                    case 47:
+                        if (curChar == 92) {
+                            jjAddStates(824, 827);
+                        }
+                        break;
+                    case 49:
+                        if (curChar == 92) {
+                            jjAddStates(828, 829);
+                        }
+                        break;
+                    case 51:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(196, 201);
+                        }
+                        break;
+                    case 53:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(202, 210);
+                        }
+                        break;
+                    case 54:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(211, 215);
+                        }
+                        break;
+                    case 55:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(216, 221);
+                        }
+                        break;
+                    case 56:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(222, 228);
+                        }
+                        break;
+                    case 57:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(229, 236);
+                        }
+                        break;
+                    case 62:
+                    case 67:
+                        if ((0x7fffffffffffffffL & l) != 0L) {
+                            jjCheckNAddStates(106, 109);
+                        }
+                        break;
+                    case 64:
+                        if (curChar == 92) {
+                            jjAddStates(830, 833);
+                        }
+                        break;
+                    case 66:
+                        if (curChar == 92) {
+                            jjAddStates(834, 835);
+                        }
+                        break;
+                    case 68:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(237, 242);
+                        }
+                        break;
+                    case 70:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(243, 251);
+                        }
+                        break;
+                    case 71:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(252, 256);
+                        }
+                        break;
+                    case 72:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(257, 262);
+                        }
+                        break;
+                    case 73:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(263, 269);
+                        }
+                        break;
+                    case 74:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(270, 277);
+                        }
+                        break;
+                    case 80:
+                        if ((0x7fffffe07fffffeL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 76) {
+                            kind = 76;
+                        }
+                        jjCheckNAddTwoStates(81, 82);
+                        break;
+                    case 81:
+                        if ((0x7fffffe87fffffeL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 76) {
+                            kind = 76;
+                        }
+                        jjCheckNAddTwoStates(81, 82);
+                        break;
+                    case 82:
+                        if (curChar == 92) {
+                            jjCheckNAddTwoStates(83, 84);
+                        }
+                        break;
+                    case 83:
+                        if ((0x7fffffffffffffffL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 76) {
+                            kind = 76;
+                        }
+                        jjCheckNAddTwoStates(81, 82);
+                        break;
+                    case 84:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 76) {
+                            kind = 76;
+                        }
+                        jjCheckNAddStates(278, 281);
+                        break;
+                    case 86:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 76) {
+                            kind = 76;
+                        }
+                        jjCheckNAddStates(282, 288);
+                        break;
+                    case 87:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 76) {
+                            kind = 76;
+                        }
+                        jjCheckNAddStates(289, 291);
+                        break;
+                    case 88:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 76) {
+                            kind = 76;
+                        }
+                        jjCheckNAddStates(292, 295);
+                        break;
+                    case 89:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 76) {
+                            kind = 76;
+                        }
+                        jjCheckNAddStates(296, 300);
+                        break;
+                    case 90:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 76) {
+                            kind = 76;
+                        }
+                        jjCheckNAddStates(301, 306);
+                        break;
+                    case 92:
+                        if (curChar == 92) {
+                            jjCheckNAddTwoStates(83, 93);
+                        }
+                        break;
+                    case 93:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 76) {
+                            kind = 76;
+                        }
+                        jjCheckNAddStates(307, 310);
+                        break;
+                    case 94:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 76) {
+                            kind = 76;
+                        }
+                        jjCheckNAddStates(311, 317);
+                        break;
+                    case 95:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 76) {
+                            kind = 76;
+                        }
+                        jjCheckNAddStates(318, 320);
+                        break;
+                    case 96:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 76) {
+                            kind = 76;
+                        }
+                        jjCheckNAddStates(321, 324);
+                        break;
+                    case 97:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 76) {
+                            kind = 76;
+                        }
+                        jjCheckNAddStates(325, 329);
+                        break;
+                    case 98:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 76) {
+                            kind = 76;
+                        }
+                        jjCheckNAddStates(330, 335);
+                        break;
+                    case 100:
+                        if ((0x7fffffe87fffffeL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 94) {
+                            kind = 94;
+                        }
+                        jjCheckNAddTwoStates(100, 101);
+                        break;
+                    case 101:
+                        if (curChar == 92) {
+                            jjAddStates(836, 837);
+                        }
+                        break;
+                    case 102:
+                        if ((0x7fffffffffffffffL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 94) {
+                            kind = 94;
+                        }
+                        jjCheckNAddTwoStates(100, 101);
+                        break;
+                    case 103:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 94) {
+                            kind = 94;
+                        }
+                        jjCheckNAddStates(336, 339);
+                        break;
+                    case 105:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 94) {
+                            kind = 94;
+                        }
+                        jjCheckNAddStates(340, 346);
+                        break;
+                    case 106:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 94) {
+                            kind = 94;
+                        }
+                        jjCheckNAddStates(347, 349);
+                        break;
+                    case 107:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 94) {
+                            kind = 94;
+                        }
+                        jjCheckNAddStates(350, 353);
+                        break;
+                    case 108:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 94) {
+                            kind = 94;
+                        }
+                        jjCheckNAddStates(354, 358);
+                        break;
+                    case 109:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 94) {
+                            kind = 94;
+                        }
+                        jjCheckNAddStates(359, 364);
+                        break;
+                    case 110:
+                        if (curChar == 64) {
+                            jjAddStates(820, 823);
+                        }
+                        break;
+                    case 112:
+                        if ((0x7fffffe07fffffeL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 101) {
+                            kind = 101;
+                        }
+                        jjCheckNAddTwoStates(113, 114);
+                        break;
+                    case 113:
+                        if ((0x7fffffe87fffffeL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 101) {
+                            kind = 101;
+                        }
+                        jjCheckNAddTwoStates(113, 114);
+                        break;
+                    case 114:
+                        if (curChar == 92) {
+                            jjCheckNAddTwoStates(115, 116);
+                        }
+                        break;
+                    case 115:
+                        if ((0x7fffffffffffffffL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 101) {
+                            kind = 101;
+                        }
+                        jjCheckNAddTwoStates(113, 114);
+                        break;
+                    case 116:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 101) {
+                            kind = 101;
+                        }
+                        jjCheckNAddStates(365, 368);
+                        break;
+                    case 118:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 101) {
+                            kind = 101;
+                        }
+                        jjCheckNAddStates(369, 375);
+                        break;
+                    case 119:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 101) {
+                            kind = 101;
+                        }
+                        jjCheckNAddStates(376, 378);
+                        break;
+                    case 120:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 101) {
+                            kind = 101;
+                        }
+                        jjCheckNAddStates(379, 382);
+                        break;
+                    case 121:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 101) {
+                            kind = 101;
+                        }
+                        jjCheckNAddStates(383, 387);
+                        break;
+                    case 122:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 101) {
+                            kind = 101;
+                        }
+                        jjCheckNAddStates(388, 393);
+                        break;
+                    case 124:
+                        if (curChar == 92) {
+                            jjCheckNAddTwoStates(115, 125);
+                        }
+                        break;
+                    case 125:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 101) {
+                            kind = 101;
+                        }
+                        jjCheckNAddStates(394, 397);
+                        break;
+                    case 126:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 101) {
+                            kind = 101;
+                        }
+                        jjCheckNAddStates(398, 404);
+                        break;
+                    case 127:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 101) {
+                            kind = 101;
+                        }
+                        jjCheckNAddStates(405, 407);
+                        break;
+                    case 128:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 101) {
+                            kind = 101;
+                        }
+                        jjCheckNAddStates(408, 411);
+                        break;
+                    case 129:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 101) {
+                            kind = 101;
+                        }
+                        jjCheckNAddStates(412, 416);
+                        break;
+                    case 130:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 101) {
+                            kind = 101;
+                        }
+                        jjCheckNAddStates(417, 422);
+                        break;
+                    case 131:
+                        if ((0x2000000020L & l) != 0L) {
+                            jjAddStates(423, 424);
+                        }
+                        break;
+                    case 134:
+                        if ((0x40000000400000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 131;
+                        }
+                        break;
+                    case 135:
+                        if ((0x800000008000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 134;
+                        }
+                        break;
+                    case 136:
+                        if ((0x200000002000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 135;
+                        }
+                        break;
+                    case 137:
+                        if ((0x2000000020L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 136;
+                        }
+                        break;
+                    case 138:
+                        if ((0x4000000040000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 137;
+                        }
+                        break;
+                    case 139:
+                        if ((0x1000000010L & l) != 0L) {
+                            jjAddStates(425, 426);
+                        }
+                        break;
+                    case 142:
+                        if ((0x400000004000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 139;
+                        }
+                        break;
+                    case 143:
+                        if ((0x2000000020L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 142;
+                        }
+                        break;
+                    case 144:
+                        if ((0x1000000010000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 143;
+                        }
+                        break;
+                    case 145:
+                        if ((0x1000000010000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 144;
+                        }
+                        break;
+                    case 146:
+                        if ((0x200000002L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 145;
+                        }
+                        break;
+                    case 147:
+                        if ((0x8000000080000L & l) != 0L) {
+                            jjAddStates(427, 428);
+                        }
+                        break;
+                    case 150:
+                        if ((0x400000004000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 147;
+                        }
+                        break;
+                    case 151:
+                        if ((0x20000000200L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 150;
+                        }
+                        break;
+                    case 152:
+                        if ((0x200000002L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 151;
+                        }
+                        break;
+                    case 153:
+                        if ((0x10000000100000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 152;
+                        }
+                        break;
+                    case 154:
+                        if ((0x400000004000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 153;
+                        }
+                        break;
+                    case 155:
+                        if ((0x800000008000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 154;
+                        }
+                        break;
+                    case 156:
+                        if ((0x800000008L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 155;
+                        }
+                        break;
+                    case 157:
+                        if (curChar == 64) {
+                            jjAddStates(812, 816);
+                        }
+                        break;
+                    case 158:
+                        if ((0x8000000080000L & l) != 0L && kind > 100) {
+                            kind = 100;
+                        }
+                        break;
+                    case 159:
+                    case 167:
+                    case 180:
+                    case 191:
+                    case 207:
+                        if ((0x2000000020L & l) != 0L) {
+                            jjCheckNAdd(158);
+                        }
+                        break;
+                    case 160:
+                        if ((0x200000002000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 159;
+                        }
+                        break;
+                    case 161:
+                        if ((0x200000002L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 160;
+                        }
+                        break;
+                    case 162:
+                        if ((0x4000000040000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 161;
+                        }
+                        break;
+                    case 163:
+                        if ((0x4000000040L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 162;
+                        }
+                        break;
+                    case 164:
+                        if ((0x200000002000000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 163;
+                        }
+                        break;
+                    case 165:
+                        if ((0x2000000020L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 164;
+                        }
+                        break;
+                    case 168:
+                        if ((0x200000002000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 167;
+                        }
+                        break;
+                    case 169:
+                        if ((0x200000002L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 168;
+                        }
+                        break;
+                    case 170:
+                        if ((0x4000000040000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 169;
+                        }
+                        break;
+                    case 171:
+                        if ((0x4000000040L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 170;
+                        }
+                        break;
+                    case 172:
+                        if ((0x200000002000000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 171;
+                        }
+                        break;
+                    case 173:
+                        if ((0x2000000020L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 172;
+                        }
+                        break;
+                    case 181:
+                        if ((0x200000002000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 180;
+                        }
+                        break;
+                    case 182:
+                        if ((0x200000002L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 181;
+                        }
+                        break;
+                    case 183:
+                        if ((0x4000000040000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 182;
+                        }
+                        break;
+                    case 184:
+                        if ((0x4000000040L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 183;
+                        }
+                        break;
+                    case 185:
+                        if ((0x200000002000000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 184;
+                        }
+                        break;
+                    case 186:
+                        if ((0x2000000020L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 185;
+                        }
+                        break;
+                    case 187:
+                        if ((0x80000000800L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 186;
+                        }
+                        break;
+                    case 189:
+                        if ((0x800000008000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 188;
+                        }
+                        break;
+                    case 192:
+                        if ((0x200000002000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 191;
+                        }
+                        break;
+                    case 193:
+                        if ((0x200000002L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 192;
+                        }
+                        break;
+                    case 194:
+                        if ((0x4000000040000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 193;
+                        }
+                        break;
+                    case 195:
+                        if ((0x4000000040L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 194;
+                        }
+                        break;
+                    case 196:
+                        if ((0x200000002000000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 195;
+                        }
+                        break;
+                    case 197:
+                        if ((0x2000000020L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 196;
+                        }
+                        break;
+                    case 198:
+                        if ((0x80000000800L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 197;
+                        }
+                        break;
+                    case 200:
+                        if ((0x10000000100000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 199;
+                        }
+                        break;
+                    case 201:
+                        if ((0x20000000200L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 200;
+                        }
+                        break;
+                    case 202:
+                        if ((0x80000000800L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 201;
+                        }
+                        break;
+                    case 203:
+                        if ((0x400000004L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 202;
+                        }
+                        break;
+                    case 204:
+                        if ((0x2000000020L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 203;
+                        }
+                        break;
+                    case 205:
+                        if ((0x80000000800000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 204;
+                        }
+                        break;
+                    case 208:
+                        if ((0x200000002000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 207;
+                        }
+                        break;
+                    case 209:
+                        if ((0x200000002L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 208;
+                        }
+                        break;
+                    case 210:
+                        if ((0x4000000040000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 209;
+                        }
+                        break;
+                    case 211:
+                        if ((0x4000000040L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 210;
+                        }
+                        break;
+                    case 212:
+                        if ((0x200000002000000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 211;
+                        }
+                        break;
+                    case 213:
+                        if ((0x2000000020L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 212;
+                        }
+                        break;
+                    case 214:
+                        if ((0x80000000800L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 213;
+                        }
+                        break;
+                    case 216:
+                        if ((0x8000000080000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 215;
+                        }
+                        break;
+                    case 217:
+                        if ((0x200000002000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 216;
+                        }
+                        break;
+                    case 220:
+                        if ((0x7fffffe87fffffeL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 72) {
+                            kind = 72;
+                        }
+                        jjCheckNAddTwoStates(220, 221);
+                        break;
+                    case 221:
+                        if (curChar == 92) {
+                            jjCheckNAddTwoStates(222, 223);
+                        }
+                        break;
+                    case 222:
+                        if ((0x7fffffffffffffffL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 72) {
+                            kind = 72;
+                        }
+                        jjCheckNAddTwoStates(220, 221);
+                        break;
+                    case 223:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 72) {
+                            kind = 72;
+                        }
+                        jjCheckNAddStates(429, 432);
+                        break;
+                    case 225:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 72) {
+                            kind = 72;
+                        }
+                        jjCheckNAddStates(433, 439);
+                        break;
+                    case 226:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 72) {
+                            kind = 72;
+                        }
+                        jjCheckNAddStates(440, 442);
+                        break;
+                    case 227:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 72) {
+                            kind = 72;
+                        }
+                        jjCheckNAddStates(443, 446);
+                        break;
+                    case 228:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 72) {
+                            kind = 72;
+                        }
+                        jjCheckNAddStates(447, 451);
+                        break;
+                    case 229:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 72) {
+                            kind = 72;
+                        }
+                        jjCheckNAddStates(452, 457);
+                        break;
+                    case 230:
+                        if ((0x7fffffe87fffffeL & l) != 0L) {
+                            jjCheckNAddStates(0, 3);
+                        }
+                        break;
+                    case 233:
+                        if (curChar == 92) {
+                            jjCheckNAddTwoStates(234, 235);
+                        }
+                        break;
+                    case 234:
+                        if ((0x7fffffffffffffffL & l) != 0L) {
+                            jjCheckNAddStates(0, 3);
+                        }
+                        break;
+                    case 235:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(458, 462);
+                        }
+                        break;
+                    case 237:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(463, 470);
+                        }
+                        break;
+                    case 238:
+                    case 444:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(471, 474);
+                        }
+                        break;
+                    case 239:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(475, 479);
+                        }
+                        break;
+                    case 240:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(480, 485);
+                        }
+                        break;
+                    case 241:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(486, 492);
+                        }
+                        break;
+                    case 244:
+                        if ((0x10000000100000L & l) != 0L && kind > 70) {
+                            kind = 70;
+                        }
+                        break;
+                    case 245:
+                        if ((0x100000001000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 244;
+                        }
+                        break;
+                    case 246:
+                        if ((0x20000000200000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 245;
+                        }
+                        break;
+                    case 247:
+                        if ((0x200000002L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 246;
+                        }
+                        break;
+                    case 248:
+                        if ((0x4000000040L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 247;
+                        }
+                        break;
+                    case 249:
+                        if ((0x2000000020L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 248;
+                        }
+                        break;
+                    case 250:
+                        if ((0x1000000010L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 249;
+                        }
+                        break;
+                    case 252:
+                        if ((0x10000000100000L & l) != 0L && kind > 102) {
+                            kind = 102;
+                        }
+                        break;
+                    case 253:
+                        if ((0x400000004000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 252;
+                        }
+                        break;
+                    case 254:
+                        if ((0x200000002L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 253;
+                        }
+                        break;
+                    case 255:
+                        if ((0x10000000100000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 254;
+                        }
+                        break;
+                    case 256:
+                        if ((0x4000000040000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 255;
+                        }
+                        break;
+                    case 257:
+                        if ((0x800000008000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 256;
+                        }
+                        break;
+                    case 258:
+                        if ((0x1000000010000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 257;
+                        }
+                        break;
+                    case 259:
+                        if ((0x200000002000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 258;
+                        }
+                        break;
+                    case 260:
+                        if ((0x20000000200L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 259;
+                        }
+                        break;
+                    case 262:
+                        if ((0x7fffffe07fffffeL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 72) {
+                            kind = 72;
+                        }
+                        jjCheckNAddTwoStates(220, 221);
+                        break;
+                    case 263:
+                        if ((0x7fffffe07fffffeL & l) != 0L) {
+                            jjCheckNAddStates(0, 3);
+                        }
+                        break;
+                    case 264:
+                        if ((0x7fffffe07fffffeL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 72) {
+                            kind = 72;
+                        }
+                        jjCheckNAddStates(802, 807);
+                        break;
+                    case 270:
+                        if ((0x10000000100000L & l) != 0L && kind > 78) {
+                            kind = 78;
+                        }
+                        break;
+                    case 271:
+                        if ((0x1000000010000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 270;
+                        }
+                        break;
+                    case 273:
+                        if ((0x200000002000L & l) != 0L && kind > 79) {
+                            kind = 79;
+                        }
+                        break;
+                    case 274:
+                        if ((0x200000002000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 273;
+                        }
+                        break;
+                    case 276:
+                        if ((0x200000002000L & l) != 0L && kind > 80) {
+                            kind = 80;
+                        }
+                        break;
+                    case 277:
+                        if ((0x800000008L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 276;
+                        }
+                        break;
+                    case 279:
+                        if ((0x800000008L & l) != 0L && kind > 81) {
+                            kind = 81;
+                        }
+                        break;
+                    case 280:
+                        if ((0x1000000010000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 279;
+                        }
+                        break;
+                    case 282:
+                        if ((0x400000004000L & l) != 0L && kind > 82) {
+                            kind = 82;
+                        }
+                        break;
+                    case 283:
+                        if ((0x20000000200L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 282;
+                        }
+                        break;
+                    case 285:
+                        if ((0x100000001000000L & l) != 0L && kind > 83) {
+                            kind = 83;
+                        }
+                        break;
+                    case 286:
+                        if ((0x1000000010000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 285;
+                        }
+                        break;
+                    case 288:
+                        if ((0x200000002000L & l) != 0L && kind > 84) {
+                            kind = 84;
+                        }
+                        break;
+                    case 289:
+                        if ((0x2000000020L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 288;
+                        }
+                        break;
+                    case 291:
+                        if ((0x100000001000000L & l) != 0L && kind > 85) {
+                            kind = 85;
+                        }
+                        break;
+                    case 292:
+                        if ((0x2000000020L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 291;
+                        }
+                        break;
+                    case 294:
+                        if ((0x8000000080L & l) != 0L && kind > 86) {
+                            kind = 86;
+                        }
+                        break;
+                    case 295:
+                        if ((0x2000000020L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 294;
+                        }
+                        break;
+                    case 296:
+                        if ((0x1000000010L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 295;
+                        }
+                        break;
+                    case 298:
+                        if ((0x1000000010L & l) != 0L && kind > 87) {
+                            kind = 87;
+                        }
+                        break;
+                    case 299:
+                        if ((0x200000002L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 298;
+                        }
+                        break;
+                    case 300:
+                        if ((0x4000000040000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 299;
+                        }
+                        break;
+                    case 302:
+                        if ((0x1000000010L & l) != 0L && kind > 88) {
+                            kind = 88;
+                        }
+                        break;
+                    case 303:
+                        if ((0x200000002L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 302;
+                        }
+                        break;
+                    case 304:
+                        if ((0x4000000040000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 303;
+                        }
+                        break;
+                    case 305:
+                        if ((0x8000000080L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 304;
+                        }
+                        break;
+                    case 307:
+                        if ((0x8000000080000L & l) != 0L && kind > 89) {
+                            kind = 89;
+                        }
+                        break;
+                    case 308:
+                        if ((0x200000002000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 307;
+                        }
+                        break;
+                    case 310:
+                        if ((0x8000000080000L & l) != 0L && kind > 90) {
+                            kind = 90;
+                        }
+                        break;
+                    case 312:
+                        if ((0x400000004000000L & l) != 0L && kind > 91) {
+                            kind = 91;
+                        }
+                        break;
+                    case 313:
+                        if ((0x10000000100L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 312;
+                        }
+                        break;
+                    case 315:
+                        if ((0x400000004000000L & l) != 0L && kind > 92) {
+                            kind = 92;
+                        }
+                        break;
+                    case 316:
+                        if ((0x10000000100L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 315;
+                        }
+                        break;
+                    case 317:
+                        if ((0x80000000800L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 316;
+                        }
+                        break;
+                    case 320:
+                        if ((0x7fffffe07fffffeL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 93) {
+                            kind = 93;
+                        }
+                        jjCheckNAddTwoStates(321, 322);
+                        break;
+                    case 321:
+                        if ((0x7fffffe87fffffeL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 93) {
+                            kind = 93;
+                        }
+                        jjCheckNAddTwoStates(321, 322);
+                        break;
+                    case 322:
+                        if (curChar == 92) {
+                            jjCheckNAddTwoStates(323, 324);
+                        }
+                        break;
+                    case 323:
+                        if ((0x7fffffffffffffffL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 93) {
+                            kind = 93;
+                        }
+                        jjCheckNAddTwoStates(321, 322);
+                        break;
+                    case 324:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 93) {
+                            kind = 93;
+                        }
+                        jjCheckNAddStates(493, 496);
+                        break;
+                    case 326:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 93) {
+                            kind = 93;
+                        }
+                        jjCheckNAddStates(497, 503);
+                        break;
+                    case 327:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 93) {
+                            kind = 93;
+                        }
+                        jjCheckNAddStates(504, 506);
+                        break;
+                    case 328:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 93) {
+                            kind = 93;
+                        }
+                        jjCheckNAddStates(507, 510);
+                        break;
+                    case 329:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 93) {
+                            kind = 93;
+                        }
+                        jjCheckNAddStates(511, 515);
+                        break;
+                    case 330:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 93) {
+                            kind = 93;
+                        }
+                        jjCheckNAddStates(516, 521);
+                        break;
+                    case 332:
+                        if (curChar == 92) {
+                            jjCheckNAddTwoStates(323, 333);
+                        }
+                        break;
+                    case 333:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 93) {
+                            kind = 93;
+                        }
+                        jjCheckNAddStates(522, 525);
+                        break;
+                    case 334:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 93) {
+                            kind = 93;
+                        }
+                        jjCheckNAddStates(526, 532);
+                        break;
+                    case 335:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 93) {
+                            kind = 93;
+                        }
+                        jjCheckNAddStates(533, 535);
+                        break;
+                    case 336:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 93) {
+                            kind = 93;
+                        }
+                        jjCheckNAddStates(536, 539);
+                        break;
+                    case 337:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 93) {
+                            kind = 93;
+                        }
+                        jjCheckNAddStates(540, 544);
+                        break;
+                    case 338:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 93) {
+                            kind = 93;
+                        }
+                        jjCheckNAddStates(545, 550);
+                        break;
+                    case 339:
+                        if ((0x20000000200000L & l) != 0L) {
+                            jjAddStates(817, 819);
+                        }
+                        break;
+                    case 341:
+                    case 345:
+                        if ((0x7fffffffffffffffL & l) != 0L) {
+                            jjCheckNAddStates(557, 560);
+                        }
+                        break;
+                    case 344:
+                        if (curChar == 92) {
+                            jjAddStates(838, 839);
+                        }
+                        break;
+                    case 346:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(561, 565);
+                        }
+                        break;
+                    case 348:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(566, 573);
+                        }
+                        break;
+                    case 349:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(574, 577);
+                        }
+                        break;
+                    case 350:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(578, 582);
+                        }
+                        break;
+                    case 351:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(583, 588);
+                        }
+                        break;
+                    case 352:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(589, 595);
+                        }
+                        break;
+                    case 354:
+                    case 359:
+                        if ((0x7fffffffffffffffL & l) != 0L) {
+                            jjCheckNAddStates(596, 599);
+                        }
+                        break;
+                    case 356:
+                        if (curChar == 92) {
+                            jjAddStates(840, 843);
+                        }
+                        break;
+                    case 358:
+                        if (curChar == 92) {
+                            jjAddStates(844, 845);
+                        }
+                        break;
+                    case 360:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(600, 605);
+                        }
+                        break;
+                    case 362:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(606, 614);
+                        }
+                        break;
+                    case 363:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(615, 619);
+                        }
+                        break;
+                    case 364:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(620, 625);
+                        }
+                        break;
+                    case 365:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(626, 632);
+                        }
+                        break;
+                    case 366:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(633, 640);
+                        }
+                        break;
+                    case 371:
+                    case 376:
+                        if ((0x7fffffffffffffffL & l) != 0L) {
+                            jjCheckNAddStates(641, 644);
+                        }
+                        break;
+                    case 373:
+                        if (curChar == 92) {
+                            jjAddStates(846, 849);
+                        }
+                        break;
+                    case 375:
+                        if (curChar == 92) {
+                            jjAddStates(850, 851);
+                        }
+                        break;
+                    case 377:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(645, 650);
+                        }
+                        break;
+                    case 379:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(651, 659);
+                        }
+                        break;
+                    case 380:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(660, 664);
+                        }
+                        break;
+                    case 381:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(665, 670);
+                        }
+                        break;
+                    case 382:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(671, 677);
+                        }
+                        break;
+                    case 383:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(678, 685);
+                        }
+                        break;
+                    case 388:
+                        if ((0x100000001000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 340;
+                        }
+                        break;
+                    case 389:
+                        if ((0x4000000040000L & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 388;
+                        }
+                        break;
+                    case 397:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 112) {
+                            kind = 112;
+                        }
+                        jjAddStates(702, 707);
+                        break;
+                    case 398:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 399;
+                        }
+                        break;
+                    case 399:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 400;
+                        }
+                        break;
+                    case 400:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAdd(401);
+                        }
+                        break;
+                    case 401:
+                        if ((0x7e0000007eL & l) != 0L && kind > 112) {
+                            kind = 112;
+                        }
+                        break;
+                    case 402:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 403;
+                        }
+                        break;
+                    case 403:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 404;
+                        }
+                        break;
+                    case 404:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 405;
+                        }
+                        break;
+                    case 405:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 112) {
+                            kind = 112;
+                        }
+                        jjstateSet[jjnewStateCnt++] = 393;
+                        break;
+                    case 406:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 407;
+                        }
+                        break;
+                    case 407:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 408;
+                        }
+                        break;
+                    case 408:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 112) {
+                            kind = 112;
+                        }
+                        jjstateSet[jjnewStateCnt++] = 409;
+                        break;
+                    case 410:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjstateSet[jjnewStateCnt++] = 411;
+                        }
+                        break;
+                    case 411:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 112) {
+                            kind = 112;
+                        }
+                        jjstateSet[jjnewStateCnt++] = 412;
+                        break;
+                    case 414:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 112) {
+                            kind = 112;
+                        }
+                        jjstateSet[jjnewStateCnt++] = 415;
+                        break;
+                    case 423:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddTwoStates(424, 430);
+                        }
+                        break;
+                    case 425:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 112) {
+                            kind = 112;
+                        }
+                        jjstateSet[jjnewStateCnt++] = 426;
+                        break;
+                    case 426:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 112) {
+                            kind = 112;
+                        }
+                        jjCheckNAddStates(718, 721);
+                        break;
+                    case 427:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 112) {
+                            kind = 112;
+                        }
+                        jjCheckNAdd(401);
+                        break;
+                    case 428:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 112) {
+                            kind = 112;
+                        }
+                        jjCheckNAddTwoStates(401, 427);
+                        break;
+                    case 429:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 112) {
+                            kind = 112;
+                        }
+                        jjCheckNAddStates(722, 724);
+                        break;
+                    case 430:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(725, 729);
+                        }
+                        break;
+                    case 431:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAdd(424);
+                        }
+                        break;
+                    case 432:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddTwoStates(431, 424);
+                        }
+                        break;
+                    case 433:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(730, 732);
+                        }
+                        break;
+                    case 434:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(733, 736);
+                        }
+                        break;
+                    case 435:
+                        if (curChar == 92) {
+                            jjCheckNAddStates(808, 811);
+                        }
+                        break;
+                    case 436:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 72) {
+                            kind = 72;
+                        }
+                        jjCheckNAddStates(737, 740);
+                        break;
+                    case 437:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 72) {
+                            kind = 72;
+                        }
+                        jjCheckNAddStates(741, 747);
+                        break;
+                    case 438:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 72) {
+                            kind = 72;
+                        }
+                        jjCheckNAddStates(748, 750);
+                        break;
+                    case 439:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 72) {
+                            kind = 72;
+                        }
+                        jjCheckNAddStates(751, 754);
+                        break;
+                    case 440:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 72) {
+                            kind = 72;
+                        }
+                        jjCheckNAddStates(755, 759);
+                        break;
+                    case 441:
+                        if ((0x7e0000007eL & l) == 0L) {
+                            break;
+                        }
+                        if (kind > 72) {
+                            kind = 72;
+                        }
+                        jjCheckNAddStates(760, 765);
+                        break;
+                    case 442:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(766, 770);
+                        }
+                        break;
+                    case 443:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(771, 778);
+                        }
+                        break;
+                    case 445:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(779, 783);
+                        }
+                        break;
+                    case 446:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(784, 789);
+                        }
+                        break;
+                    case 447:
+                        if ((0x7e0000007eL & l) != 0L) {
+                            jjCheckNAddStates(790, 796);
+                        }
+                        break;
+                    default:
+                        break;
+                    }
+                } while (i != startsAt);
+            } else {
+                int i2 = (curChar & 0xff) >> 6;
+                long l2 = 1L << (curChar & 077);
+                do {
+                    switch (jjstateSet[--i]) {
+                    case 506:
+                    case 113:
+                    case 115:
+                        if ((jjbitVec0[i2] & l2) == 0L) {
+                            break;
+                        }
+                        if (kind > 101) {
+                            kind = 101;
+                        }
+                        jjCheckNAddTwoStates(113, 114);
+                        break;
+                    case 166:
+                        if ((jjbitVec0[i2] & l2) == 0L) {
+                            break;
+                        }
+                        if (kind > 101) {
+                            kind = 101;
+                        }
+                        jjCheckNAddTwoStates(113, 114);
+                        break;
+                    case 174:
+                        if ((jjbitVec0[i2] & l2) == 0L) {
+                            break;
+                        }
+                        if (kind > 101) {
+                            kind = 101;
+                        }
+                        jjCheckNAddTwoStates(113, 114);
+                        break;
+                    case 503:
+                        if ((jjbitVec0[i2] & l2) != 0L) {
+                            if (kind > 72) {
+                                kind = 72;
+                            }
+                            jjCheckNAddTwoStates(220, 221);
+                        }
+                        if ((jjbitVec0[i2] & l2) != 0L) {
+                            jjCheckNAddStates(0, 3);
+                        }
+                        break;
+                    case 4:
+                        if ((jjbitVec0[i2] & l2) == 0L) {
+                            break;
+                        }
+                        if (kind > 41) {
+                            kind = 41;
+                        }
+                        jjCheckNAddStates(802, 807);
+                        break;
+                    case 175:
+                        if ((jjbitVec0[i2] & l2) == 0L) {
+                            break;
+                        }
+                        if (kind > 101) {
+                            kind = 101;
+                        }
+                        jjCheckNAddTwoStates(113, 114);
+                        break;
+                    case 33:
+                        if ((jjbitVec0[i2] & l2) != 0L) {
+                            if (kind > 72) {
+                                kind = 72;
+                            }
+                            jjCheckNAddTwoStates(220, 221);
+                        }
+                        if ((jjbitVec0[i2] & l2) != 0L) {
+                            jjCheckNAddStates(0, 3);
+                        }
+                        break;
+                    case 176:
+                        if ((jjbitVec0[i2] & l2) == 0L) {
+                            break;
+                        }
+                        if (kind > 101) {
+                            kind = 101;
+                        }
+                        jjCheckNAddTwoStates(113, 114);
+                        break;
+                    case 177:
+                        if ((jjbitVec0[i2] & l2) == 0L) {
+                            break;
+                        }
+                        if (kind > 101) {
+                            kind = 101;
+                        }
+                        jjCheckNAddTwoStates(113, 114);
+                        break;
+                    case 79:
+                    case 81:
+                    case 83:
+                        if ((jjbitVec0[i2] & l2) == 0L) {
+                            break;
+                        }
+                        if (kind > 76) {
+                            kind = 76;
+                        }
+                        jjCheckNAddTwoStates(81, 82);
+                        break;
+                    case 2:
+                        if ((jjbitVec0[i2] & l2) != 0L && kind > 5) {
+                            kind = 5;
+                        }
+                        break;
+                    case 9:
+                    case 12:
+                    case 20:
+                        if ((jjbitVec0[i2] & l2) != 0L) {
+                            jjCheckNAddStates(123, 125);
+                        }
+                        break;
+                    case 45:
+                    case 50:
+                        if ((jjbitVec0[i2] & l2) != 0L) {
+                            jjCheckNAddStates(110, 113);
+                        }
+                        break;
+                    case 62:
+                    case 67:
+                        if ((jjbitVec0[i2] & l2) != 0L) {
+                            jjCheckNAddStates(106, 109);
+                        }
+                        break;
+                    case 100:
+                    case 102:
+                        if ((jjbitVec0[i2] & l2) == 0L) {
+                            break;
+                        }
+                        if (kind > 94) {
+                            kind = 94;
+                        }
+                        jjCheckNAddTwoStates(100, 101);
+                        break;
+                    case 220:
+                    case 222:
+                        if ((jjbitVec0[i2] & l2) == 0L) {
+                            break;
+                        }
+                        if (kind > 72) {
+                            kind = 72;
+                        }
+                        jjCheckNAddTwoStates(220, 221);
+                        break;
+                    case 230:
+                    case 234:
+                        if ((jjbitVec0[i2] & l2) != 0L) {
+                            jjCheckNAddStates(0, 3);
+                        }
+                        break;
+                    case 321:
+                    case 323:
+                    case 331:
+                        if ((jjbitVec0[i2] & l2) == 0L) {
+                            break;
+                        }
+                        if (kind > 93) {
+                            kind = 93;
+                        }
+                        jjCheckNAddTwoStates(321, 322);
+                        break;
+                    case 341:
+                    case 345:
+                        if ((jjbitVec0[i2] & l2) != 0L) {
+                            jjCheckNAddStates(557, 560);
+                        }
+                        break;
+                    case 354:
+                    case 359:
+                        if ((jjbitVec0[i2] & l2) != 0L) {
+                            jjCheckNAddStates(596, 599);
+                        }
+                        break;
+                    case 371:
+                    case 376:
+                        if ((jjbitVec0[i2] & l2) != 0L) {
+                            jjCheckNAddStates(641, 644);
+                        }
+                        break;
+                    default:
+                        break;
+                    }
+                } while (i != startsAt);
+            }
+            if (kind != 0x7fffffff) {
+                jjmatchedKind = kind;
+                jjmatchedPos = curPos;
+                kind = 0x7fffffff;
+            }
+            ++curPos;
+            if ((i = jjnewStateCnt) == (startsAt = 503 - (jjnewStateCnt = startsAt))) {
+                return curPos;
+            }
+            try {
+                curChar = input_stream.readChar();
+            } catch (java.io.IOException e) {
+                return curPos;
+            }
         }
-        else if ((jjtoSkip[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L)
-        {
-           if ((jjtoSpecial[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L)
-           {
-              matchedToken = jjFillToken();
-              if (specialToken == null)
-                 specialToken = matchedToken;
-              else
-              {
-                 matchedToken.specialToken = specialToken;
-                 specialToken = (specialToken.next = matchedToken);
-              }
-              SkipLexicalActions(matchedToken);
-           }
-           else
-              SkipLexicalActions(null);
-         if (jjnewLexState[jjmatchedKind] != -1)
-           curLexState = jjnewLexState[jjmatchedKind];
-           continue EOFLoop;
+    }
+
+    private int jjMoveStringLiteralDfa0_3() {
+        switch (curChar) {
+        case 42:
+            return jjMoveStringLiteralDfa1_3(0x100L);
+        default:
+            return 1;
         }
-        MoreLexicalActions();
-      if (jjnewLexState[jjmatchedKind] != -1)
-        curLexState = jjnewLexState[jjmatchedKind];
-        curPos = 0;
-        jjmatchedKind = 0x7fffffff;
+    }
+
+    private int jjMoveStringLiteralDfa1_3(long active0) {
         try {
-           curChar = input_stream.readChar();
-           continue;
+            curChar = input_stream.readChar();
+        } catch (java.io.IOException e) {
+            return 1;
         }
-        catch (java.io.IOException e1) { }
-     }
-     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;
+        switch (curChar) {
+        case 47:
+            if ((active0 & 0x100L) != 0L) {
+                return jjStopAtPos(1, 8);
+            }
+            break;
+        default:
+            return 2;
         }
-        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);
-   }
-  }
-}
+        return 2;
+    }
 
-void SkipLexicalActions(Token matchedToken)
-{
-   switch(jjmatchedKind)
-   {
-      default :
-         break;
-   }
-}
-void MoreLexicalActions()
-{
-   jjimageLen += (lengthOfMatch = jjmatchedPos + 1);
-   switch(jjmatchedKind)
-   {
-      case 5 :
-         image.append(input_stream.GetSuffix(jjimageLen));
-         jjimageLen = 0;
-                   input_stream.backup(1);
-         break;
-      default :
-         break;
-   }
-}
-void TokenLexicalActions(Token matchedToken)
-{
-   switch(jjmatchedKind)
-   {
-      case 1 :
-        image.append(input_stream.GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1)));
-          image = Parser.SPACE;
-         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 int jjMoveStringLiteralDfa0_1() {
+        return jjMoveNfa_1(0, 0);
+    }
 
-private void jjCheckNAddStates(int start, int end)
-{
-   do {
-      jjCheckNAdd(jjnextStates[start]);
-   } while (start++ != end);
-}
+    private int jjMoveNfa_1(int startState, int curPos) {
+        int startsAt = 0;
+        jjnewStateCnt = 4;
+        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 ((0xffffffffffffdbffL & l) != 0L) {
+                            if (kind > 3) {
+                                kind = 3;
+                            }
+                        } else if ((0x2400L & l) != 0L) {
+                            if (kind > 4) {
+                                kind = 4;
+                            }
+                        }
+                        if (curChar == 13) {
+                            jjstateSet[jjnewStateCnt++] = 2;
+                        }
+                        break;
+                    case 1:
+                        if ((0x2400L & l) != 0L && kind > 4) {
+                            kind = 4;
+                        }
+                        break;
+                    case 2:
+                        if (curChar == 10 && kind > 4) {
+                            kind = 4;
+                        }
+                        break;
+                    case 3:
+                        if (curChar == 13) {
+                            jjstateSet[jjnewStateCnt++] = 2;
+                        }
+                        break;
+                    default:
+                        break;
+                    }
+                } while (i != startsAt);
+            } else if (curChar < 128) {
+                long l = 1L << (curChar & 077);
+                do {
+                    switch (jjstateSet[--i]) {
+                    case 0:
+                        kind = 3;
+                        break;
+                    default:
+                        break;
+                    }
+                } while (i != startsAt);
+            } else {
+                int i2 = (curChar & 0xff) >> 6;
+                long l2 = 1L << (curChar & 077);
+                do {
+                    switch (jjstateSet[--i]) {
+                    case 0:
+                        if ((jjbitVec0[i2] & l2) != 0L && kind > 3) {
+                            kind = 3;
+                        }
+                        break;
+                    default:
+                        break;
+                    }
+                } while (i != startsAt);
+            }
+            if (kind != 0x7fffffff) {
+                jjmatchedKind = kind;
+                jjmatchedPos = curPos;
+                kind = 0x7fffffff;
+            }
+            ++curPos;
+            if ((i = jjnewStateCnt) == (startsAt = 4 - (jjnewStateCnt = startsAt))) {
+                return curPos;
+            }
+            try {
+                curChar = input_stream.readChar();
+            } catch (java.io.IOException e) {
+                return curPos;
+            }
+        }
+    }
+
+    private int jjMoveStringLiteralDfa0_2() {
+        switch (curChar) {
+        case 42:
+            return jjMoveStringLiteralDfa1_2(0x80L);
+        default:
+            return 1;
+        }
+    }
+
+    private int jjMoveStringLiteralDfa1_2(long active0) {
+        try {
+            curChar = input_stream.readChar();
+        } catch (java.io.IOException e) {
+            return 1;
+        }
+        switch (curChar) {
+        case 47:
+            if ((active0 & 0x80L) != 0L) {
+                return jjStopAtPos(1, 7);
+            }
+            break;
+        default:
+            return 2;
+        }
+        return 2;
+    }
+
+    static final int[] jjnextStates = { 230, 231, 232, 233, 449, 450, 451, 452,
+            453, 454, 268, 455, 456, 457, 271, 458, 459, 460, 274, 461, 462,
+            463, 277, 464, 465, 466, 280, 467, 468, 469, 283, 470, 471, 472,
+            286, 473, 474, 475, 289, 476, 477, 478, 292, 479, 480, 481, 296,
+            482, 483, 484, 300, 485, 486, 487, 305, 488, 489, 490, 308, 491,
+            492, 493, 310, 494, 495, 496, 313, 497, 498, 499, 317, 500, 501,
+            502, 319, 320, 331, 332, 266, 267, 269, 272, 275, 278, 281, 284,
+            287, 290, 293, 297, 301, 306, 309, 311, 314, 318, 262, 263, 243,
+            250, 251, 260, 79, 80, 91, 92, 62, 63, 64, 66, 45, 46, 47, 49, 318,
+            319, 320, 331, 332, 7, 8, 20, 21, 9, 10, 11, 9, 14, 10, 11, 15, 9,
+            16, 14, 10, 11, 17, 18, 19, 9, 14, 10, 11, 9, 16, 14, 10, 11, 9,
+            16, 14, 10, 11, 17, 9, 16, 14, 10, 11, 17, 18, 14, 9, 10, 11, 23,
+            24, 14, 9, 10, 11, 25, 26, 27, 14, 9, 10, 11, 24, 14, 9, 10, 11,
+            24, 14, 9, 10, 11, 25, 24, 14, 9, 10, 11, 25, 26, 45, 52, 46, 47,
+            49, 53, 45, 54, 52, 46, 47, 49, 55, 56, 57, 45, 52, 46, 47, 49, 45,
+            54, 52, 46, 47, 49, 45, 54, 52, 46, 47, 49, 55, 45, 54, 52, 46, 47,
+            49, 55, 56, 62, 69, 63, 64, 66, 70, 62, 71, 69, 63, 64, 66, 72, 73,
+            74, 62, 69, 63, 64, 66, 62, 71, 69, 63, 64, 66, 62, 71, 69, 63, 64,
+            66, 72, 62, 71, 69, 63, 64, 66, 72, 73, 81, 85, 82, 86, 81, 87, 85,
+            82, 88, 89, 90, 81, 85, 82, 81, 87, 85, 82, 81, 87, 85, 82, 88, 81,
+            87, 85, 82, 88, 89, 85, 81, 82, 94, 95, 85, 81, 82, 96, 97, 98, 85,
+            81, 82, 95, 85, 81, 82, 95, 85, 81, 82, 96, 95, 85, 81, 82, 96, 97,
+            100, 104, 101, 105, 100, 106, 104, 101, 107, 108, 109, 100, 104,
+            101, 100, 106, 104, 101, 100, 106, 104, 101, 107, 100, 106, 104,
+            101, 107, 108, 113, 117, 114, 118, 113, 119, 117, 114, 120, 121,
+            122, 113, 117, 114, 113, 119, 117, 114, 113, 119, 117, 114, 120,
+            113, 119, 117, 114, 120, 121, 117, 113, 114, 126, 127, 117, 113,
+            114, 128, 129, 130, 117, 113, 114, 127, 117, 113, 114, 127, 117,
+            113, 114, 128, 127, 117, 113, 114, 128, 129, 132, 133, 140, 141,
+            148, 149, 220, 224, 221, 225, 220, 226, 224, 221, 227, 228, 229,
+            220, 224, 221, 220, 226, 224, 221, 220, 226, 224, 221, 227, 220,
+            226, 224, 221, 227, 228, 230, 232, 233, 236, 237, 230, 238, 232,
+            233, 236, 239, 240, 241, 230, 232, 233, 236, 230, 238, 232, 233,
+            236, 230, 238, 232, 233, 236, 239, 230, 238, 232, 233, 236, 239,
+            240, 321, 325, 322, 326, 321, 327, 325, 322, 328, 329, 330, 321,
+            325, 322, 321, 327, 325, 322, 321, 327, 325, 322, 328, 321, 327,
+            325, 322, 328, 329, 325, 321, 322, 334, 335, 325, 321, 322, 336,
+            337, 338, 325, 321, 322, 335, 325, 321, 322, 335, 325, 321, 322,
+            336, 335, 325, 321, 322, 336, 337, 341, 353, 370, 343, 344, 387,
+            341, 342, 343, 344, 341, 343, 344, 347, 348, 341, 349, 343, 344,
+            347, 350, 351, 352, 341, 343, 344, 347, 341, 349, 343, 344, 347,
+            341, 349, 343, 344, 347, 350, 341, 349, 343, 344, 347, 350, 351,
+            354, 355, 356, 358, 354, 361, 355, 356, 358, 362, 354, 363, 361,
+            355, 356, 358, 364, 365, 366, 354, 361, 355, 356, 358, 354, 363,
+            361, 355, 356, 358, 354, 363, 361, 355, 356, 358, 364, 354, 363,
+            361, 355, 356, 358, 364, 365, 371, 372, 373, 375, 371, 378, 372,
+            373, 375, 379, 371, 380, 378, 372, 373, 375, 381, 382, 383, 371,
+            378, 372, 373, 375, 371, 380, 378, 372, 373, 375, 371, 380, 378,
+            372, 373, 375, 381, 371, 380, 378, 372, 373, 375, 381, 382, 341,
+            353, 370, 342, 343, 344, 387, 391, 397, 393, 394, 395, 396, 393,
+            394, 395, 398, 402, 406, 410, 414, 418, 393, 416, 417, 393, 419,
+            420, 421, 393, 419, 420, 401, 427, 428, 429, 401, 427, 428, 431,
+            424, 432, 433, 434, 431, 424, 432, 431, 424, 432, 433, 224, 220,
+            221, 437, 438, 224, 220, 221, 439, 440, 441, 224, 220, 221, 438,
+            224, 220, 221, 438, 224, 220, 221, 439, 438, 224, 220, 221, 439,
+            440, 230, 232, 233, 236, 443, 444, 230, 232, 233, 236, 445, 446,
+            447, 444, 230, 232, 233, 236, 444, 230, 232, 233, 236, 445, 444,
+            230, 232, 233, 236, 445, 446, 500, 319, 320, 331, 332, 220, 230,
+            231, 232, 233, 221, 222, 436, 234, 442, 166, 179, 190, 206, 218,
+            389, 390, 422, 111, 112, 123, 124, 48, 58, 60, 59, 50, 51, 65, 75,
+            77, 76, 67, 68, 102, 103, 345, 346, 357, 367, 369, 368, 359, 360,
+            374, 384, 386, 385, 376, 377, };
+
+    /** Token literal values. */
+    public static final String[] jjstrLiteralImages = { "", null, null, null,
+            null, null, null, null, null, null, "\74\41\55\55", "\55\55\76",
+            "\173", "\175", "\174\75", "\136\75", "\44\75", "\52\75",
+            "\176\75", "\75", "\53", "\55", "\54", "\73", "\76", "\176", "\74",
+            "\57", "\133", "\135", "\52", "\46", "\56", "\50", "\51", "\75\75",
+            "\174\174", "\46\46", "\41\75", "\72", null, null, null, null,
+            null, null, null, null, null, null, null, null, null, null, null,
+            null, null, null, null, null, null, null, null, null, null, null,
+            null, null, null, null, null, null, null, null, null, null, null,
+            null, null, null, null, null, null, null, null, null, null, null,
+            null, null, null, null, null, null, null, null, null, null, null,
+            null, null, null, null, null, null, null, null, null, null, null,
+            null, null, null, null, null, null, null, null, };
+
+    /** Lexer state names. */
+    public static final String[] lexStateNames = { "DEFAULT",
+            "IN_SINGLE_LINE_COMMENT", "IN_FORMAL_COMMENT",
+            "IN_MULTI_LINE_COMMENT", };
+
+    /** Lex State array. */
+    public static final int[] jjnewLexState = { -1, -1, 1, -1, 0, 2, 3, 0, 0,
+            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+            -1, -1, -1, -1, -1, -1, -1, };
+    static final long[] jjtoToken = { 0xfffc03fffffffc03L, 0x3f007ffffffbffL, };
+    static final long[] jjtoSkip = { 0x190L, 0x0L, };
+    static final long[] jjtoSpecial = { 0x80L, 0x0L, };
+    static final long[] jjtoMore = { 0x26cL, 0x0L, };
+    protected CharStream input_stream;
+    private final int[] jjrounds = new int[503];
+    private final int[] jjstateSet = new int[1006];
+    private final StringBuilder jjimage = new StringBuilder();
+    private StringBuilder image = jjimage;
+    private int jjimageLen;
+    private int lengthOfMatch;
+    protected char curChar;
+
+    /** Constructor. */
+    public ParserTokenManager(CharStream stream) {
+        input_stream = stream;
+    }
+
+    /** Constructor. */
+    public ParserTokenManager(CharStream stream, int lexState) {
+        this(stream);
+        SwitchTo(lexState);
+    }
+
+    /** Reinitialise parser. */
+    public void ReInit(CharStream stream) {
+        jjmatchedPos = jjnewStateCnt = 0;
+        curLexState = defaultLexState;
+        input_stream = stream;
+        ReInitRounds();
+    }
+
+    private void ReInitRounds() {
+        int i;
+        jjround = 0x80000001;
+        for (i = 503; i-- > 0;) {
+            jjrounds[i] = 0x80000000;
+        }
+    }
+
+    /** Reinitialise parser. */
+    public void ReInit(CharStream stream, int lexState) {
+        ReInit(stream);
+        SwitchTo(lexState);
+    }
+
+    /** Switch to specified lex state. */
+    public void SwitchTo(int lexState) {
+        if (lexState >= 4 || 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 specialToken = null;
+        Token matchedToken;
+        int curPos = 0;
+
+        EOFLoop: for (;;) {
+            try {
+                curChar = input_stream.BeginToken();
+            } catch (java.io.IOException e) {
+                jjmatchedKind = 0;
+                matchedToken = jjFillToken();
+                matchedToken.specialToken = specialToken;
+                return matchedToken;
+            }
+            image = jjimage;
+            image.setLength(0);
+            jjimageLen = 0;
+
+            for (;;) {
+                switch (curLexState) {
+                case 0:
+                    jjmatchedKind = 0x7fffffff;
+                    jjmatchedPos = 0;
+                    curPos = jjMoveStringLiteralDfa0_0();
+                    if (jjmatchedPos == 0 && jjmatchedKind > 117) {
+                        jjmatchedKind = 117;
+                    }
+                    break;
+                case 1:
+                    jjmatchedKind = 0x7fffffff;
+                    jjmatchedPos = 0;
+                    curPos = jjMoveStringLiteralDfa0_1();
+                    break;
+                case 2:
+                    jjmatchedKind = 0x7fffffff;
+                    jjmatchedPos = 0;
+                    curPos = jjMoveStringLiteralDfa0_2();
+                    if (jjmatchedPos == 0 && jjmatchedKind > 9) {
+                        jjmatchedKind = 9;
+                    }
+                    break;
+                case 3:
+                    jjmatchedKind = 0x7fffffff;
+                    jjmatchedPos = 0;
+                    curPos = jjMoveStringLiteralDfa0_3();
+                    if (jjmatchedPos == 0 && jjmatchedKind > 9) {
+                        jjmatchedKind = 9;
+                    }
+                    break;
+                }
+                if (jjmatchedKind != 0x7fffffff) {
+                    if (jjmatchedPos + 1 < curPos) {
+                        input_stream.backup(curPos - jjmatchedPos - 1);
+                    }
+                    if ((jjtoToken[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L) {
+                        matchedToken = jjFillToken();
+                        matchedToken.specialToken = specialToken;
+                        TokenLexicalActions(matchedToken);
+                        if (jjnewLexState[jjmatchedKind] != -1) {
+                            curLexState = jjnewLexState[jjmatchedKind];
+                        }
+                        return matchedToken;
+                    } else if ((jjtoSkip[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L) {
+                        if ((jjtoSpecial[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L) {
+                            matchedToken = jjFillToken();
+                            if (specialToken == null) {
+                                specialToken = matchedToken;
+                            } else {
+                                matchedToken.specialToken = specialToken;
+                                specialToken = (specialToken.next = matchedToken);
+                            }
+                            SkipLexicalActions(matchedToken);
+                        } else {
+                            SkipLexicalActions(null);
+                        }
+                        if (jjnewLexState[jjmatchedKind] != -1) {
+                            curLexState = jjnewLexState[jjmatchedKind];
+                        }
+                        continue EOFLoop;
+                    }
+                    MoreLexicalActions();
+                    if (jjnewLexState[jjmatchedKind] != -1) {
+                        curLexState = jjnewLexState[jjmatchedKind];
+                    }
+                    curPos = 0;
+                    jjmatchedKind = 0x7fffffff;
+                    try {
+                        curChar = input_stream.readChar();
+                        continue;
+                    } catch (java.io.IOException e1) {
+                    }
+                }
+                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 SkipLexicalActions(Token matchedToken) {
+        switch (jjmatchedKind) {
+        default:
+            break;
+        }
+    }
+
+    void MoreLexicalActions() {
+        jjimageLen += (lengthOfMatch = jjmatchedPos + 1);
+        switch (jjmatchedKind) {
+        case 5:
+            image.append(input_stream.GetSuffix(jjimageLen));
+            jjimageLen = 0;
+            input_stream.backup(1);
+            break;
+        default:
+            break;
+        }
+    }
+
+    void TokenLexicalActions(Token matchedToken) {
+        switch (jjmatchedKind) {
+        case 1:
+            image.append(input_stream.GetSuffix(jjimageLen
+                    + (lengthOfMatch = jjmatchedPos + 1)));
+            image = Parser.SPACE;
+            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);
+    }
 
 }
index 52fbac0dec2493b412b883884702483e862325af..085cd46d312482b50f641f80c3d4e478fbd7e70d 100644 (file)
@@ -1,3 +1,19 @@
+/*
+ * Copyright 2000-2013 Vaadin Ltd.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
 package com.vaadin.sass.internal.tree;
 
 public class KeyframeSelectorNode extends Node {
index b9984bc647ca78cb884aefe2d37efc270c8bddfe..af4fec1ec38529836f0cea950db7eb91c4305d5b 100644 (file)
@@ -1,3 +1,19 @@
+/*
+ * Copyright 2000-2013 Vaadin Ltd.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
 package com.vaadin.sass.internal.tree;
 
 import java.util.ArrayList;