]> source.dussan.org Git - vaadin-framework.git/commitdiff
support @content directive for Sass compiler (Ticket #10207)
authorHaijian Wang <haijian@vaadin.com>
Thu, 28 Feb 2013 08:17:40 +0000 (10:17 +0200)
committerHaijian Wang <haijian@vaadin.com>
Thu, 28 Feb 2013 08:17:40 +0000 (10:17 +0200)
Change-Id: I8037e1d64afd1ce2044d89d3bdcf408f6162727c

18 files changed:
.classpath
theme-compiler/src/com/vaadin/sass/internal/handler/SCSSDocumentHandler.java
theme-compiler/src/com/vaadin/sass/internal/handler/SCSSDocumentHandlerImpl.java
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/ContentNode.java [new file with mode: 0644]
theme-compiler/src/com/vaadin/sass/internal/tree/MixinDefNode.java
theme-compiler/src/com/vaadin/sass/internal/tree/MixinNode.java
theme-compiler/src/com/vaadin/sass/internal/tree/Node.java
theme-compiler/src/com/vaadin/sass/internal/util/DeepCopy.java
theme-compiler/src/com/vaadin/sass/internal/visitor/ImportNodeHandler.java
theme-compiler/src/com/vaadin/sass/internal/visitor/MixinNodeHandler.java
theme-compiler/tests/resources/automatic/css/mixin-content-directive-with-vars.css [new file with mode: 0644]
theme-compiler/tests/resources/automatic/css/mixin-content-directive.css [new file with mode: 0644]
theme-compiler/tests/resources/automatic/scss/mixin-content-directive-with-vars.scss [new file with mode: 0644]
theme-compiler/tests/resources/automatic/scss/mixin-content-directive.scss [new file with mode: 0644]

index c643b0af4eae40a85638a071e8331ff5efc7b87e..cc95780a5c42d91a991d987fcfb04667705cdd9d 100644 (file)
@@ -17,7 +17,7 @@
        </classpathentry>
        <classpathentry kind="con" path="org.apache.ivyde.eclipse.cpcontainer.IVYDE_CONTAINER/?project=vaadin&amp;ivyXmlPath=client%2Fivy.xml&amp;confs=ide&amp;ivySettingsPath=%24%7Bworkspace_loc%3Avaadin%2Fivysettings.xml%7D&amp;loadSettingsOnDemand=false&amp;propertyFiles="/>
        <classpathentry kind="con" path="org.apache.ivyde.eclipse.cpcontainer.IVYDE_CONTAINER/?project=vaadin&amp;ivyXmlPath=server%2Fivy.xml&amp;confs=ide&amp;ivySettingsPath=%24%7Bworkspace_loc%3Avaadin%2Fivysettings.xml%7D&amp;loadSettingsOnDemand=false&amp;propertyFiles="/>
-       <classpathentry kind="con" path="org.apache.ivyde.eclipse.cpcontainer.IVYDE_CONTAINER/?project=vaadin&amp;ivyXmlPath=shared%2Fivy.xml&amp;confs=ide&amp;ivySettingsPath=%24%7Bworkspace_loc%3Avaadin%2Fivysettings.xml%7D&amp;loadSettingsOnDemand=false&amp;propertyFiles="/>
+       <classpathentry kind="con" path="org.apache.ivyde.eclipse.cpcontainer.IVYDE_CONTAINER/?project=Vaadin&amp;ivyXmlPath=shared%2Fivy.xml&amp;confs=ide&amp;ivySettingsPath=%24%7Bworkspace_loc%3Avaadin%2Fivysettings.xml%7D&amp;loadSettingsOnDemand=false&amp;propertyFiles="/>
        <classpathentry kind="con" path="org.apache.ivyde.eclipse.cpcontainer.IVYDE_CONTAINER/?project=vaadin&amp;ivyXmlPath=client-compiler%2Fivy.xml&amp;confs=ide&amp;ivySettingsPath=%24%7Bworkspace_loc%3Avaadin%2Fivysettings.xml%7D&amp;loadSettingsOnDemand=false&amp;propertyFiles="/>
        <classpathentry kind="con" path="org.apache.ivyde.eclipse.cpcontainer.IVYDE_CONTAINER/?project=vaadin&amp;ivyXmlPath=theme-compiler%2Fivy.xml&amp;confs=ide&amp;ivySettingsPath=%24%7Bworkspace_loc%3Avaadin%2Fivysettings.xml%7D&amp;loadSettingsOnDemand=false&amp;propertyFiles="/>
        <classpathentry kind="con" path="org.apache.ivyde.eclipse.cpcontainer.IVYDE_CONTAINER/?project=vaadin&amp;ivyXmlPath=uitest%2Fivy.xml&amp;confs=ide&amp;ivySettingsPath=%24%7Bworkspace_loc%3Avaadin%2Fivysettings.xml%7D&amp;loadSettingsOnDemand=false&amp;propertyFiles="/>
index 9dc6e33873fd692287e22c69339db7f98e4f8f1c..b9672b6c7878e11e9e04e7e7d638c5c1a255ac38 100644 (file)
@@ -96,4 +96,10 @@ public interface SCSSDocumentHandler extends DocumentHandler {
 
     void endKeyframeSelector();
 
+    void contentDirective();
+
+    void startIncludeContentBlock(String name);
+
+    void endIncludeContentBlock();
+
 }
index d155d8522fc2507dd88d91f2a00c1e5bbf72ec5a..d77a404ae8efe9a69791b0738c2133fa6576df54 100644 (file)
@@ -30,6 +30,7 @@ import com.vaadin.sass.internal.ScssStylesheet;
 import com.vaadin.sass.internal.parser.LexicalUnitImpl;
 import com.vaadin.sass.internal.tree.BlockNode;
 import com.vaadin.sass.internal.tree.CommentNode;
+import com.vaadin.sass.internal.tree.ContentNode;
 import com.vaadin.sass.internal.tree.ExtendNode;
 import com.vaadin.sass.internal.tree.FontFaceNode;
 import com.vaadin.sass.internal.tree.ForNode;
@@ -365,4 +366,23 @@ public class SCSSDocumentHandlerImpl implements SCSSDocumentHandler {
     public void endKeyframeSelector() {
         nodeStack.pop();
     }
+
+    @Override
+    public void contentDirective() {
+        ContentNode node = new ContentNode();
+        nodeStack.peek().appendChild(node);
+    }
+
+    @Override
+    public void startIncludeContentBlock(String name) {
+        MixinNode node = new MixinNode(name);
+        nodeStack.peek().appendChild(node);
+        nodeStack.push(node);
+
+    }
+
+    @Override
+    public void endIncludeContentBlock() {
+        nodeStack.pop();
+    }
 }
index 492b79bbfce54d902ef441dc8cf63034c2fb5cca..34da123085af916b8445ccb7b502017c9fca07ab 100644 (file)
 /* 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.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.omg.IOP.Encoding;
+import org.xml.sax.DocumentHandler;
+import org.xml.sax.InputSource;
+import org.xml.sax.Locator;
 
-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.*;
+import com.vaadin.sass.internal.handler.SCSSDocumentHandlerImpl;
+import com.vaadin.sass.internal.tree.Node;
+import com.vaadin.sass.internal.tree.VariableNode;
 
 /**
  * A CSS2 parser
@@ -959,6 +949,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
                 case EACH_SYM:
                 case IF_SYM:
                 case EXTEND_SYM:
+                case CONTENT_SYM:
                 case MICROSOFT_RULE:
                 case IDENT:
                 case VARIABLE:
@@ -985,6 +976,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
                 case DEBUG_SYM:
                 case WARN_SYM:
                 case EXTEND_SYM:
+                case CONTENT_SYM:
                 case IDENT:
                 case VARIABLE:
                 case HASH:
@@ -1916,6 +1908,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
                 case EACH_SYM:
                 case IF_SYM:
                 case EXTEND_SYM:
+                case CONTENT_SYM:
                 case MICROSOFT_RULE:
                 case IDENT:
                 case VARIABLE:
@@ -1942,6 +1935,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
                 case DEBUG_SYM:
                 case WARN_SYM:
                 case EXTEND_SYM:
+                case CONTENT_SYM:
                 case IDENT:
                 case VARIABLE:
                 case HASH:
@@ -2823,6 +2817,9 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
 
     final public void ifContentStatement() throws ParseException {
         switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+        case CONTENT_SYM:
+            contentDirective();
+            break;
         case INCLUDE_SYM:
             includeDirective();
             break;
@@ -2931,6 +2928,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
             case DEBUG_SYM:
             case WARN_SYM:
             case EXTEND_SYM:
+            case CONTENT_SYM:
             case IDENT:
             case VARIABLE:
             case HASH:
@@ -3055,6 +3053,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
             case DEBUG_SYM:
             case WARN_SYM:
             case EXTEND_SYM:
+            case CONTENT_SYM:
             case IDENT:
             case VARIABLE:
             case HASH:
@@ -3243,6 +3242,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
             case DEBUG_SYM:
             case WARN_SYM:
             case EXTEND_SYM:
+            case CONTENT_SYM:
             case IDENT:
             case VARIABLE:
             case HASH:
@@ -3402,6 +3402,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
             case EACH_SYM:
             case IF_SYM:
             case EXTEND_SYM:
+            case CONTENT_SYM:
             case IDENT:
             case VARIABLE:
             case HASH:
@@ -3429,6 +3430,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
             case DEBUG_SYM:
             case WARN_SYM:
             case EXTEND_SYM:
+            case CONTENT_SYM:
             case IDENT:
             case VARIABLE:
             case HASH:
@@ -3805,29 +3807,88 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
             jj_consume_token(-1);
             throw new ParseException();
         }
-        label_109: while (true) {
-            jj_consume_token(SEMICOLON);
-            label_110: while (true) {
+        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+        case SEMICOLON:
+            label_109: while (true) {
+                jj_consume_token(SEMICOLON);
+                label_110: while (true) {
+                    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                    case S:
+                        ;
+                        break;
+                    default:
+                        jj_la1[159] = jj_gen;
+                        break label_110;
+                    }
+                    jj_consume_token(S);
+                }
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case SEMICOLON:
+                    ;
+                    break;
+                default:
+                    jj_la1[160] = jj_gen;
+                    break label_109;
+                }
+            }
+            documentHandler.includeDirective(name, args);
+            break;
+        case LBRACE:
+            jj_consume_token(LBRACE);
+            label_111: while (true) {
                 switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
                 case S:
                     ;
                     break;
                 default:
-                    jj_la1[159] = jj_gen;
-                    break label_110;
+                    jj_la1[161] = jj_gen;
+                    break label_111;
                 }
                 jj_consume_token(S);
             }
-            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
-            case SEMICOLON:
-                ;
-                break;
-            default:
-                jj_la1[160] = jj_gen;
-                break label_109;
+            documentHandler.startIncludeContentBlock(name);
+            label_112: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case PLUS:
+                case PRECEDES:
+                case SIBLING:
+                case LBRACKET:
+                case ANY:
+                case PARENT:
+                case DOT:
+                case COLON:
+                case INTERPOLATION:
+                case DEBUG_SYM:
+                case WARN_SYM:
+                case IDENT:
+                case HASH:
+                    ;
+                    break;
+                default:
+                    jj_la1[162] = jj_gen;
+                    break label_112;
+                }
+                styleRuleOrDeclarationOrNestedProperties();
+            }
+            jj_consume_token(RBRACE);
+            label_113: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[163] = jj_gen;
+                    break label_113;
+                }
+                jj_consume_token(S);
             }
+            documentHandler.endIncludeContentBlock();
+            break;
+        default:
+            jj_la1[164] = jj_gen;
+            jj_consume_token(-1);
+            throw new ParseException();
         }
-        documentHandler.includeDirective(name, args);
     }
 
     final public String interpolation() throws ParseException {
@@ -3851,26 +3912,26 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         // refactor, remove those 3 LOOKAHEAD(5).
         n = jj_consume_token(VARIABLE);
         variable = n.image;
-        label_111: while (true) {
+        label_114: while (true) {
             switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
             case S:
                 ;
                 break;
             default:
-                jj_la1[161] = jj_gen;
-                break label_111;
+                jj_la1[165] = jj_gen;
+                break label_114;
             }
             jj_consume_token(S);
         }
         jj_consume_token(COLON);
-        label_112: while (true) {
+        label_115: while (true) {
             switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
             case S:
                 ;
                 break;
             default:
-                jj_la1[162] = jj_gen;
-                break label_112;
+                jj_la1[166] = jj_gen;
+                break label_115;
             }
             jj_consume_token(S);
         }
@@ -3885,18 +3946,18 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
             type = jj_consume_token(CONTAINS);
             break;
         default:
-            jj_la1[163] = jj_gen;
+            jj_la1[167] = jj_gen;
             jj_consume_token(-1);
             throw new ParseException();
         }
-        label_113: while (true) {
+        label_116: while (true) {
             switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
             case S:
                 ;
                 break;
             default:
-                jj_la1[164] = jj_gen;
-                break label_113;
+                jj_la1[168] = jj_gen;
+                break label_116;
             }
             jj_consume_token(S);
         }
@@ -3906,18 +3967,18 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
             jj_consume_token(RPARAN);
             break;
         default:
-            jj_la1[165] = jj_gen;
+            jj_la1[169] = jj_gen;
             ;
         }
         jj_consume_token(COMMA);
-        label_114: while (true) {
+        label_117: while (true) {
             switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
             case S:
                 ;
                 break;
             default:
-                jj_la1[166] = jj_gen;
-                break label_114;
+                jj_la1[170] = jj_gen;
+                break label_117;
             }
             jj_consume_token(S);
         }
@@ -3925,33 +3986,33 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
         case COMMA:
             jj_consume_token(COMMA);
-            label_115: while (true) {
+            label_118: while (true) {
                 switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
                 case S:
                     ;
                     break;
                 default:
-                    jj_la1[167] = jj_gen;
-                    break label_115;
+                    jj_la1[171] = jj_gen;
+                    break label_118;
                 }
                 jj_consume_token(S);
             }
             n = jj_consume_token(IDENT);
             separator = n.image;
-            label_116: while (true) {
+            label_119: while (true) {
                 switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
                 case S:
                     ;
                     break;
                 default:
-                    jj_la1[168] = jj_gen;
-                    break label_116;
+                    jj_la1[172] = jj_gen;
+                    break label_119;
                 }
                 jj_consume_token(S);
             }
             break;
         default:
-            jj_la1[169] = jj_gen;
+            jj_la1[173] = jj_gen;
             ;
         }
         jj_consume_token(RPARAN);
@@ -3972,26 +4033,26 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         default:
             break;
         }
-        label_117: while (true) {
+        label_120: while (true) {
             switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
             case S:
                 ;
                 break;
             default:
-                jj_la1[170] = jj_gen;
-                break label_117;
+                jj_la1[174] = jj_gen;
+                break label_120;
             }
             jj_consume_token(S);
         }
         jj_consume_token(SEMICOLON);
-        label_118: while (true) {
+        label_121: while (true) {
             switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
             case S:
                 ;
                 break;
             default:
-                jj_la1[171] = jj_gen;
-                break label_118;
+                jj_la1[175] = jj_gen;
+                break label_121;
             }
             jj_consume_token(S);
         }
@@ -4009,38 +4070,38 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         Token n = null;
         n = jj_consume_token(VARIABLE);
         variable = n.image;
-        label_119: while (true) {
+        label_122: while (true) {
             switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
             case S:
                 ;
                 break;
             default:
-                jj_la1[172] = jj_gen;
-                break label_119;
+                jj_la1[176] = jj_gen;
+                break label_122;
             }
             jj_consume_token(S);
         }
         jj_consume_token(COLON);
-        label_120: while (true) {
+        label_123: while (true) {
             switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
             case S:
                 ;
                 break;
             default:
-                jj_la1[173] = jj_gen;
-                break label_120;
+                jj_la1[177] = jj_gen;
+                break label_123;
             }
             jj_consume_token(S);
         }
         jj_consume_token(APPEND);
-        label_121: while (true) {
+        label_124: while (true) {
             switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
             case S:
                 ;
                 break;
             default:
-                jj_la1[174] = jj_gen;
-                break label_121;
+                jj_la1[178] = jj_gen;
+                break label_124;
             }
             jj_consume_token(S);
         }
@@ -4050,18 +4111,18 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
             jj_consume_token(RPARAN);
             break;
         default:
-            jj_la1[175] = jj_gen;
+            jj_la1[179] = jj_gen;
             ;
         }
         jj_consume_token(COMMA);
-        label_122: while (true) {
+        label_125: while (true) {
             switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
             case S:
                 ;
                 break;
             default:
-                jj_la1[176] = jj_gen;
-                break label_122;
+                jj_la1[180] = jj_gen;
+                break label_125;
             }
             jj_consume_token(S);
         }
@@ -4069,33 +4130,33 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
         case COMMA:
             jj_consume_token(COMMA);
-            label_123: while (true) {
+            label_126: while (true) {
                 switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
                 case S:
                     ;
                     break;
                 default:
-                    jj_la1[177] = jj_gen;
-                    break label_123;
+                    jj_la1[181] = jj_gen;
+                    break label_126;
                 }
                 jj_consume_token(S);
             }
             n = jj_consume_token(IDENT);
             separator = n.image;
-            label_124: while (true) {
+            label_127: while (true) {
                 switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
                 case S:
                     ;
                     break;
                 default:
-                    jj_la1[178] = jj_gen;
-                    break label_124;
+                    jj_la1[182] = jj_gen;
+                    break label_127;
                 }
                 jj_consume_token(S);
             }
             break;
         default:
-            jj_la1[179] = jj_gen;
+            jj_la1[183] = jj_gen;
             ;
         }
         jj_consume_token(RPARAN);
@@ -4114,38 +4175,38 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         Token n = null;
         n = jj_consume_token(VARIABLE);
         variable = n.image;
-        label_125: while (true) {
+        label_128: while (true) {
             switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
             case S:
                 ;
                 break;
             default:
-                jj_la1[180] = jj_gen;
-                break label_125;
+                jj_la1[184] = jj_gen;
+                break label_128;
             }
             jj_consume_token(S);
         }
         jj_consume_token(COLON);
-        label_126: while (true) {
+        label_129: while (true) {
             switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
             case S:
                 ;
                 break;
             default:
-                jj_la1[181] = jj_gen;
-                break label_126;
+                jj_la1[185] = jj_gen;
+                break label_129;
             }
             jj_consume_token(S);
         }
         jj_consume_token(REMOVE);
-        label_127: while (true) {
+        label_130: while (true) {
             switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
             case S:
                 ;
                 break;
             default:
-                jj_la1[182] = jj_gen;
-                break label_127;
+                jj_la1[186] = jj_gen;
+                break label_130;
             }
             jj_consume_token(S);
         }
@@ -4155,18 +4216,18 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
             jj_consume_token(RPARAN);
             break;
         default:
-            jj_la1[183] = jj_gen;
+            jj_la1[187] = jj_gen;
             ;
         }
         jj_consume_token(COMMA);
-        label_128: while (true) {
+        label_131: while (true) {
             switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
             case S:
                 ;
                 break;
             default:
-                jj_la1[184] = jj_gen;
-                break label_128;
+                jj_la1[188] = jj_gen;
+                break label_131;
             }
             jj_consume_token(S);
         }
@@ -4174,33 +4235,33 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
         case COMMA:
             jj_consume_token(COMMA);
-            label_129: while (true) {
+            label_132: while (true) {
                 switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
                 case S:
                     ;
                     break;
                 default:
-                    jj_la1[185] = jj_gen;
-                    break label_129;
+                    jj_la1[189] = jj_gen;
+                    break label_132;
                 }
                 jj_consume_token(S);
             }
             n = jj_consume_token(IDENT);
             separator = n.image;
-            label_130: while (true) {
+            label_133: while (true) {
                 switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
                 case S:
                     ;
                     break;
                 default:
-                    jj_la1[186] = jj_gen;
-                    break label_130;
+                    jj_la1[190] = jj_gen;
+                    break label_133;
                 }
                 jj_consume_token(S);
             }
             break;
         default:
-            jj_la1[187] = jj_gen;
+            jj_la1[191] = jj_gen;
             ;
         }
         jj_consume_token(RPARAN);
@@ -4221,43 +4282,43 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         case VARIABLE:
             n = jj_consume_token(VARIABLE);
             variable = n.image;
-            label_131: while (true) {
+            label_134: while (true) {
                 switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
                 case S:
                     ;
                     break;
                 default:
-                    jj_la1[188] = jj_gen;
-                    break label_131;
+                    jj_la1[192] = jj_gen;
+                    break label_134;
                 }
                 jj_consume_token(S);
             }
             jj_consume_token(COLON);
-            label_132: while (true) {
+            label_135: while (true) {
                 switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
                 case S:
                     ;
                     break;
                 default:
-                    jj_la1[189] = jj_gen;
-                    break label_132;
+                    jj_la1[193] = jj_gen;
+                    break label_135;
                 }
                 jj_consume_token(S);
             }
             break;
         default:
-            jj_la1[190] = jj_gen;
+            jj_la1[194] = jj_gen;
             ;
         }
         jj_consume_token(CONTAINS);
-        label_133: while (true) {
+        label_136: while (true) {
             switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
             case S:
                 ;
                 break;
             default:
-                jj_la1[191] = jj_gen;
-                break label_133;
+                jj_la1[195] = jj_gen;
+                break label_136;
             }
             jj_consume_token(S);
         }
@@ -4267,18 +4328,18 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
             jj_consume_token(RPARAN);
             break;
         default:
-            jj_la1[192] = jj_gen;
+            jj_la1[196] = jj_gen;
             ;
         }
         jj_consume_token(COMMA);
-        label_134: while (true) {
+        label_137: while (true) {
             switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
             case S:
                 ;
                 break;
             default:
-                jj_la1[193] = jj_gen;
-                break label_134;
+                jj_la1[197] = jj_gen;
+                break label_137;
             }
             jj_consume_token(S);
         }
@@ -4286,33 +4347,33 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
         case COMMA:
             jj_consume_token(COMMA);
-            label_135: while (true) {
+            label_138: while (true) {
                 switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
                 case S:
                     ;
                     break;
                 default:
-                    jj_la1[194] = jj_gen;
-                    break label_135;
+                    jj_la1[198] = jj_gen;
+                    break label_138;
                 }
                 jj_consume_token(S);
             }
             n = jj_consume_token(IDENT);
             separator = n.image;
-            label_136: while (true) {
+            label_139: while (true) {
                 switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
                 case S:
                     ;
                     break;
                 default:
-                    jj_la1[195] = jj_gen;
-                    break label_136;
+                    jj_la1[199] = jj_gen;
+                    break label_139;
                 }
                 jj_consume_token(S);
             }
             break;
         default:
-            jj_la1[196] = jj_gen;
+            jj_la1[200] = jj_gen;
             ;
         }
         jj_consume_token(RPARAN);
@@ -4414,7 +4475,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
             warnDirective();
             break;
         default:
-            jj_la1[197] = jj_gen;
+            jj_la1[201] = jj_gen;
             jj_consume_token(-1);
             throw new ParseException();
         }
@@ -4426,14 +4487,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         // TODO should evaluate the content expression, call
         // documentHandler.debugDirective() etc.
         System.out.println(content);
-        label_137: while (true) {
+        label_140: while (true) {
             switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
             case S:
                 ;
                 break;
             default:
-                jj_la1[198] = jj_gen;
-                break label_137;
+                jj_la1[202] = jj_gen;
+                break label_140;
             }
             jj_consume_token(S);
         }
@@ -4445,14 +4506,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         // TODO should evaluate the content expression, call
         // documentHandler.warnDirective() etc.
         System.err.println(content);
-        label_138: while (true) {
+        label_141: while (true) {
             switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
             case S:
                 ;
                 break;
             default:
-                jj_la1[199] = jj_gen;
-                break label_138;
+                jj_la1[203] = jj_gen;
+                break label_141;
             }
             jj_consume_token(S);
         }
@@ -4478,19 +4539,19 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
             exclusive = false;
             break;
         default:
-            jj_la1[200] = jj_gen;
+            jj_la1[204] = jj_gen;
             jj_consume_token(-1);
             throw new ParseException();
         }
         to = skipStatementUntilLeftBrace();
-        label_139: while (true) {
+        label_142: while (true) {
             switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
             case S:
                 ;
                 break;
             default:
-                jj_la1[201] = jj_gen;
-                break label_139;
+                jj_la1[205] = jj_gen;
+                break label_142;
             }
             jj_consume_token(S);
         }
@@ -4520,28 +4581,28 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
     final public void extendDirective() throws ParseException {
         ArrayList<String> list;
         jj_consume_token(EXTEND_SYM);
-        label_140: while (true) {
+        label_143: while (true) {
             switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
             case S:
                 ;
                 break;
             default:
-                jj_la1[202] = jj_gen;
-                break label_140;
+                jj_la1[206] = jj_gen;
+                break label_143;
             }
             jj_consume_token(S);
         }
         list = selectorList();
-        label_141: while (true) {
+        label_144: while (true) {
             jj_consume_token(SEMICOLON);
-            label_142: while (true) {
+            label_145: while (true) {
                 switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
                 case S:
                     ;
                     break;
                 default:
-                    jj_la1[203] = jj_gen;
-                    break label_142;
+                    jj_la1[207] = jj_gen;
+                    break label_145;
                 }
                 jj_consume_token(S);
             }
@@ -4550,13 +4611,51 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
                 ;
                 break;
             default:
-                jj_la1[204] = jj_gen;
-                break label_141;
+                jj_la1[208] = jj_gen;
+                break label_144;
             }
         }
         documentHandler.extendDirective(list);
     }
 
+    final public void contentDirective() throws ParseException {
+        jj_consume_token(CONTENT_SYM);
+        label_146: while (true) {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case S:
+                ;
+                break;
+            default:
+                jj_la1[209] = jj_gen;
+                break label_146;
+            }
+            jj_consume_token(S);
+        }
+        label_147: while (true) {
+            jj_consume_token(SEMICOLON);
+            label_148: while (true) {
+                switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case S:
+                    ;
+                    break;
+                default:
+                    jj_la1[210] = jj_gen;
+                    break label_148;
+                }
+                jj_consume_token(S);
+            }
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case SEMICOLON:
+                ;
+                break;
+            default:
+                jj_la1[211] = jj_gen;
+                break label_147;
+            }
+        }
+        documentHandler.contentDirective();
+    }
+
     Node importDirective() throws ParseException {
         return null;
     }
@@ -4578,26 +4677,26 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         LexicalUnit exp;
         name = property();
         jj_consume_token(COLON);
-        label_143: while (true) {
+        label_149: while (true) {
             switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
             case S:
                 ;
                 break;
             default:
-                jj_la1[205] = jj_gen;
-                break label_143;
+                jj_la1[212] = jj_gen;
+                break label_149;
             }
             jj_consume_token(S);
         }
         jj_consume_token(LBRACE);
-        label_144: while (true) {
+        label_150: while (true) {
             switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
             case S:
                 ;
                 break;
             default:
-                jj_la1[206] = jj_gen;
-                break label_144;
+                jj_la1[213] = jj_gen;
+                break label_150;
             }
             jj_consume_token(S);
         }
@@ -4608,27 +4707,27 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
             declaration();
             break;
         default:
-            jj_la1[207] = jj_gen;
+            jj_la1[214] = jj_gen;
             ;
         }
-        label_145: while (true) {
+        label_151: while (true) {
             switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
             case SEMICOLON:
                 ;
                 break;
             default:
-                jj_la1[208] = jj_gen;
-                break label_145;
+                jj_la1[215] = jj_gen;
+                break label_151;
             }
             jj_consume_token(SEMICOLON);
-            label_146: while (true) {
+            label_152: while (true) {
                 switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
                 case S:
                     ;
                     break;
                 default:
-                    jj_la1[209] = jj_gen;
-                    break label_146;
+                    jj_la1[216] = jj_gen;
+                    break label_152;
                 }
                 jj_consume_token(S);
             }
@@ -4638,20 +4737,20 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
                 declaration();
                 break;
             default:
-                jj_la1[210] = jj_gen;
+                jj_la1[217] = jj_gen;
                 ;
             }
         }
         jj_consume_token(RBRACE);
         documentHandler.endNestedProperties(name);
-        label_147: while (true) {
+        label_153: while (true) {
             switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
             case S:
                 ;
                 break;
             default:
-                jj_la1[211] = jj_gen;
-                break label_147;
+                jj_la1[218] = jj_gen;
+                break label_153;
             }
             jj_consume_token(S);
         }
@@ -4670,7 +4769,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
                 debuggingDirective();
                 break;
             default:
-                jj_la1[212] = jj_gen;
+                jj_la1[219] = jj_gen;
                 if (jj_2_6(2147483647)) {
                     styleRule();
                 } else if (jj_2_7(3)) {
@@ -4691,7 +4790,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
                         styleRule();
                         break;
                     default:
-                        jj_la1[213] = jj_gen;
+                        jj_la1[220] = jj_gen;
                         jj_consume_token(-1);
                         throw new ParseException();
                     }
@@ -4736,14 +4835,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
             name = property();
             save = token;
             jj_consume_token(COLON);
-            label_148: while (true) {
+            label_154: while (true) {
                 switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
                 case S:
                     ;
                     break;
                 default:
-                    jj_la1[214] = jj_gen;
-                    break label_148;
+                    jj_la1[221] = jj_gen;
+                    break label_154;
                 }
                 jj_consume_token(S);
             }
@@ -4784,7 +4883,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
                     important = prio();
                     break;
                 default:
-                    jj_la1[215] = jj_gen;
+                    jj_la1[222] = jj_gen;
                     ;
                 }
                 Token next = getToken(1);
@@ -4803,14 +4902,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
                 break;
             case LBRACE:
                 jj_consume_token(LBRACE);
-                label_149: while (true) {
+                label_155: while (true) {
                     switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
                     case S:
                         ;
                         break;
                     default:
-                        jj_la1[216] = jj_gen;
-                        break label_149;
+                        jj_la1[223] = jj_gen;
+                        break label_155;
                     }
                     jj_consume_token(S);
                 }
@@ -4821,27 +4920,27 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
                     declaration();
                     break;
                 default:
-                    jj_la1[217] = jj_gen;
+                    jj_la1[224] = jj_gen;
                     ;
                 }
-                label_150: while (true) {
+                label_156: while (true) {
                     switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
                     case SEMICOLON:
                         ;
                         break;
                     default:
-                        jj_la1[218] = jj_gen;
-                        break label_150;
+                        jj_la1[225] = jj_gen;
+                        break label_156;
                     }
                     jj_consume_token(SEMICOLON);
-                    label_151: while (true) {
+                    label_157: while (true) {
                         switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
                         case S:
                             ;
                             break;
                         default:
-                            jj_la1[219] = jj_gen;
-                            break label_151;
+                            jj_la1[226] = jj_gen;
+                            break label_157;
                         }
                         jj_consume_token(S);
                     }
@@ -4851,26 +4950,26 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
                         declaration();
                         break;
                     default:
-                        jj_la1[220] = jj_gen;
+                        jj_la1[227] = jj_gen;
                         ;
                     }
                 }
                 jj_consume_token(RBRACE);
-                label_152: while (true) {
+                label_158: while (true) {
                     switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
                     case S:
                         ;
                         break;
                     default:
-                        jj_la1[221] = jj_gen;
-                        break label_152;
+                        jj_la1[228] = jj_gen;
+                        break label_158;
                     }
                     jj_consume_token(S);
                 }
                 documentHandler.endNestedProperties(name);
                 break;
             default:
-                jj_la1[222] = jj_gen;
+                jj_la1[229] = jj_gen;
                 jj_consume_token(-1);
                 throw new ParseException();
             }
@@ -4918,14 +5017,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
             name = property();
             save = token;
             jj_consume_token(COLON);
-            label_153: while (true) {
+            label_159: while (true) {
                 switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
                 case S:
                     ;
                     break;
                 default:
-                    jj_la1[223] = jj_gen;
-                    break label_153;
+                    jj_la1[230] = jj_gen;
+                    break label_159;
                 }
                 jj_consume_token(S);
             }
@@ -4935,7 +5034,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
                 important = prio();
                 break;
             default:
-                jj_la1[224] = jj_gen;
+                jj_la1[231] = jj_gen;
                 ;
             }
             documentHandler.property(name, exp, important);
@@ -4976,14 +5075,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
      */
     final public boolean prio() throws ParseException {
         jj_consume_token(IMPORTANT_SYM);
-        label_154: while (true) {
+        label_160: while (true) {
             switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
             case S:
                 ;
                 break;
             default:
-                jj_la1[225] = jj_gen;
-                break label_154;
+                jj_la1[232] = jj_gen;
+                break label_160;
             }
             jj_consume_token(S);
         }
@@ -4997,14 +5096,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
 
     final public boolean guarded() throws ParseException {
         jj_consume_token(GUARDED_SYM);
-        label_155: while (true) {
+        label_161: while (true) {
             switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
             case S:
                 ;
                 break;
             default:
-                jj_la1[226] = jj_gen;
-                break label_155;
+                jj_la1[233] = jj_gen;
+                break label_161;
             }
             jj_consume_token(S);
         }
@@ -5036,14 +5135,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
              * parenthesis is not supported now.
              */
             n = jj_consume_token(COMMA);
-            label_156: while (true) {
+            label_162: while (true) {
                 switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
                 case S:
                     ;
                     break;
                 default:
-                    jj_la1[227] = jj_gen;
-                    break label_156;
+                    jj_la1[234] = jj_gen;
+                    break label_162;
                 }
                 jj_consume_token(S);
             }
@@ -5056,14 +5155,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
             break;
         case DIV:
             n = jj_consume_token(DIV);
-            label_157: while (true) {
+            label_163: while (true) {
                 switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
                 case S:
                     ;
                     break;
                 default:
-                    jj_la1[228] = jj_gen;
-                    break label_157;
+                    jj_la1[235] = jj_gen;
+                    break label_163;
                 }
                 jj_consume_token(S);
             }
@@ -5076,14 +5175,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
             break;
         case ANY:
             n = jj_consume_token(ANY);
-            label_158: while (true) {
+            label_164: while (true) {
                 switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
                 case S:
                     ;
                     break;
                 default:
-                    jj_la1[229] = jj_gen;
-                    break label_158;
+                    jj_la1[236] = jj_gen;
+                    break label_164;
                 }
                 jj_consume_token(S);
             }
@@ -5096,14 +5195,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
             break;
         case MOD:
             n = jj_consume_token(MOD);
-            label_159: while (true) {
+            label_165: while (true) {
                 switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
                 case S:
                     ;
                     break;
                 default:
-                    jj_la1[230] = jj_gen;
-                    break label_159;
+                    jj_la1[237] = jj_gen;
+                    break label_165;
                 }
                 jj_consume_token(S);
             }
@@ -5116,15 +5215,15 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
             break;
         case PLUS:
             n = jj_consume_token(PLUS);
-            label_160: while (true) {
+            label_166: while (true) {
                 jj_consume_token(S);
                 switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
                 case S:
                     ;
                     break;
                 default:
-                    jj_la1[231] = jj_gen;
-                    break label_160;
+                    jj_la1[238] = jj_gen;
+                    break label_166;
                 }
             }
             {
@@ -5136,15 +5235,15 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
             break;
         case MINUS:
             n = jj_consume_token(MINUS);
-            label_161: while (true) {
+            label_167: while (true) {
                 jj_consume_token(S);
                 switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
                 case S:
                     ;
                     break;
                 default:
-                    jj_la1[232] = jj_gen;
-                    break label_161;
+                    jj_la1[239] = jj_gen;
+                    break label_167;
                 }
             }
             {
@@ -5155,7 +5254,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
             }
             break;
         default:
-            jj_la1[233] = jj_gen;
+            jj_la1[240] = jj_gen;
             jj_consume_token(-1);
             throw new ParseException();
         }
@@ -5171,11 +5270,11 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         char op;
         first = term(null);
         res = first;
-        label_162: while (true) {
+        label_168: while (true) {
             if (jj_2_8(2)) {
                 ;
             } else {
-                break label_162;
+                break label_168;
             }
             if (jj_2_9(2)) {
                 res = operator(res);
@@ -5215,7 +5314,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
             }
             break;
         default:
-            jj_la1[234] = jj_gen;
+            jj_la1[241] = jj_gen;
             jj_consume_token(-1);
             throw new ParseException();
         }
@@ -5267,7 +5366,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
             result = variableTerm(prev);
             break;
         default:
-            jj_la1[235] = jj_gen;
+            jj_la1[242] = jj_gen;
             jj_consume_token(-1);
             throw new ParseException();
         }
@@ -5331,7 +5430,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
                 op = unaryOperator();
                 break;
             default:
-                jj_la1[236] = jj_gen;
+                jj_la1[243] = jj_gen;
                 ;
             }
             switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
@@ -5446,7 +5545,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
                 result = function(op, prev);
                 break;
             default:
-                jj_la1[237] = jj_gen;
+                jj_la1[244] = jj_gen;
                 jj_consume_token(-1);
                 throw new ParseException();
             }
@@ -5472,7 +5571,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
                     s += ".";
                     break;
                 default:
-                    jj_la1[238] = jj_gen;
+                    jj_la1[245] = jj_gen;
                     ;
                 }
                 n = jj_consume_token(IDENT);
@@ -5510,24 +5609,24 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
                 result = unicode(prev);
                 break;
             default:
-                jj_la1[239] = jj_gen;
+                jj_la1[246] = jj_gen;
                 jj_consume_token(-1);
                 throw new ParseException();
             }
             break;
         default:
-            jj_la1[240] = jj_gen;
+            jj_la1[247] = jj_gen;
             jj_consume_token(-1);
             throw new ParseException();
         }
-        label_163: while (true) {
+        label_169: while (true) {
             switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
             case S:
                 ;
                 break;
             default:
-                jj_la1[241] = jj_gen;
-                break label_163;
+                jj_la1[248] = jj_gen;
+                break label_169;
             }
             jj_consume_token(S);
         }
@@ -5550,14 +5649,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         Token n;
         LexicalUnit params = null;
         n = jj_consume_token(FUNCTION);
-        label_164: while (true) {
+        label_170: while (true) {
             switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
             case S:
                 ;
                 break;
             default:
-                jj_la1[242] = jj_gen;
-                break label_164;
+                jj_la1[249] = jj_gen;
+                break label_170;
             }
             jj_consume_token(S);
         }
@@ -5613,7 +5712,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
             params = expr();
             break;
         default:
-            jj_la1[243] = jj_gen;
+            jj_la1[250] = jj_gen;
             ;
         }
         jj_consume_token(RPARAN);
@@ -6150,14 +6249,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
      */
     final public void _parseRule() throws ParseException {
         String ret = null;
-        label_165: while (true) {
+        label_171: while (true) {
             switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
             case S:
                 ;
                 break;
             default:
-                jj_la1[244] = jj_gen;
-                break label_165;
+                jj_la1[251] = jj_gen;
+                break label_171;
             }
             jj_consume_token(S);
         }
@@ -6192,7 +6291,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
             fontFace();
             break;
         default:
-            jj_la1[245] = jj_gen;
+            jj_la1[252] = jj_gen;
             ret = skipStatement();
             if ((ret == null) || (ret.length() == 0)) {
                 {
@@ -6215,14 +6314,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
     }
 
     final public void _parseImportRule() throws ParseException {
-        label_166: while (true) {
+        label_172: while (true) {
             switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
             case S:
                 ;
                 break;
             default:
-                jj_la1[246] = jj_gen;
-                break label_166;
+                jj_la1[253] = jj_gen;
+                break label_172;
             }
             jj_consume_token(S);
         }
@@ -6230,14 +6329,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
     }
 
     final public void _parseMediaRule() throws ParseException {
-        label_167: while (true) {
+        label_173: while (true) {
             switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
             case S:
                 ;
                 break;
             default:
-                jj_la1[247] = jj_gen;
-                break label_167;
+                jj_la1[254] = jj_gen;
+                break label_173;
             }
             jj_consume_token(S);
         }
@@ -6245,14 +6344,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
     }
 
     final public void _parseDeclarationBlock() throws ParseException {
-        label_168: while (true) {
+        label_174: while (true) {
             switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
             case S:
                 ;
                 break;
             default:
-                jj_la1[248] = jj_gen;
-                break label_168;
+                jj_la1[255] = jj_gen;
+                break label_174;
             }
             jj_consume_token(S);
         }
@@ -6262,27 +6361,27 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
             declaration();
             break;
         default:
-            jj_la1[249] = jj_gen;
+            jj_la1[256] = jj_gen;
             ;
         }
-        label_169: while (true) {
+        label_175: while (true) {
             switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
             case SEMICOLON:
                 ;
                 break;
             default:
-                jj_la1[250] = jj_gen;
-                break label_169;
+                jj_la1[257] = jj_gen;
+                break label_175;
             }
             jj_consume_token(SEMICOLON);
-            label_170: while (true) {
+            label_176: while (true) {
                 switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
                 case S:
                     ;
                     break;
                 default:
-                    jj_la1[251] = jj_gen;
-                    break label_170;
+                    jj_la1[258] = jj_gen;
+                    break label_176;
                 }
                 jj_consume_token(S);
             }
@@ -6292,7 +6391,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
                 declaration();
                 break;
             default:
-                jj_la1[252] = jj_gen;
+                jj_la1[259] = jj_gen;
                 ;
             }
         }
@@ -6301,14 +6400,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
     final public ArrayList<String> _parseSelectors() throws ParseException {
         ArrayList<String> p = null;
         try {
-            label_171: while (true) {
+            label_177: while (true) {
                 switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
                 case S:
                     ;
                     break;
                 default:
-                    jj_la1[253] = jj_gen;
-                    break label_171;
+                    jj_la1[260] = jj_gen;
+                    break label_177;
                 }
                 jj_consume_token(S);
             }
@@ -6436,85 +6535,55 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         }
     }
 
-    private boolean jj_3R_182() {
-        if (jj_scan_token(VARIABLE)) {
-            return true;
-        }
+    private boolean jj_3R_252() {
         Token xsp;
-        while (true) {
-            xsp = jj_scanpos;
-            if (jj_scan_token(1)) {
-                jj_scanpos = xsp;
-                break;
+        xsp = jj_scanpos;
+        if (jj_3R_263()) {
+            jj_scanpos = xsp;
+            if (jj_3R_264()) {
+                return true;
             }
         }
         return false;
     }
 
-    private boolean jj_3R_261() {
-        if (jj_scan_token(PLUS)) {
+    private boolean jj_3R_263() {
+        if (jj_scan_token(IDENT)) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_251() {
+    private boolean jj_3R_204() {
         Token xsp;
-        xsp = jj_scanpos;
-        if (jj_3R_260()) {
-            jj_scanpos = xsp;
-            if (jj_3R_261()) {
-                return true;
+        if (jj_3R_252()) {
+            return true;
+        }
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_3R_252()) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_scan_token(1)) {
+                jj_scanpos = xsp;
+                break;
             }
         }
         return false;
     }
 
-    private boolean jj_3R_260() {
+    private boolean jj_3R_214() {
         if (jj_scan_token(MINUS)) {
             return true;
         }
-        return false;
-    }
-
-    private boolean jj_3R_256() {
-        if (jj_scan_token(UNICODERANGE)) {
-            return true;
-        }
-        return false;
-    }
-
-    private boolean jj_3R_246() {
-        Token xsp;
-        xsp = jj_scanpos;
-        if (jj_3R_257()) {
-            jj_scanpos = xsp;
-            if (jj_3R_258()) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    private boolean jj_3R_257() {
-        if (jj_scan_token(IDENT)) {
-            return true;
-        }
-        return false;
-    }
-
-    private boolean jj_3R_198() {
         Token xsp;
-        if (jj_3R_246()) {
+        if (jj_scan_token(1)) {
             return true;
         }
-        while (true) {
-            xsp = jj_scanpos;
-            if (jj_3R_246()) {
-                jj_scanpos = xsp;
-                break;
-            }
-        }
         while (true) {
             xsp = jj_scanpos;
             if (jj_scan_token(1)) {
@@ -6525,26 +6594,24 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         return false;
     }
 
-    private boolean jj_3_8() {
-        Token xsp;
-        xsp = jj_scanpos;
-        if (jj_3_9()) {
-            jj_scanpos = xsp;
-        }
-        if (jj_3R_180()) {
+    private boolean jj_3R_190() {
+        if (jj_3R_215()) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_183() {
-        if (jj_3R_180()) {
+    private boolean jj_3R_213() {
+        if (jj_scan_token(PLUS)) {
             return true;
         }
         Token xsp;
+        if (jj_scan_token(1)) {
+            return true;
+        }
         while (true) {
             xsp = jj_scanpos;
-            if (jj_3_8()) {
+            if (jj_scan_token(1)) {
                 jj_scanpos = xsp;
                 break;
             }
@@ -6552,21 +6619,11 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         return false;
     }
 
-    private boolean jj_3R_184() {
-        if (jj_3R_209()) {
-            return true;
-        }
-        return false;
-    }
-
-    private boolean jj_3R_208() {
-        if (jj_scan_token(MINUS)) {
+    private boolean jj_3R_212() {
+        if (jj_scan_token(MOD)) {
             return true;
         }
         Token xsp;
-        if (jj_scan_token(1)) {
-            return true;
-        }
         while (true) {
             xsp = jj_scanpos;
             if (jj_scan_token(1)) {
@@ -6577,14 +6634,11 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         return false;
     }
 
-    private boolean jj_3R_207() {
-        if (jj_scan_token(PLUS)) {
+    private boolean jj_3R_211() {
+        if (jj_scan_token(ANY)) {
             return true;
         }
         Token xsp;
-        if (jj_scan_token(1)) {
-            return true;
-        }
         while (true) {
             xsp = jj_scanpos;
             if (jj_scan_token(1)) {
@@ -6595,8 +6649,8 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         return false;
     }
 
-    private boolean jj_3R_206() {
-        if (jj_scan_token(MOD)) {
+    private boolean jj_3R_210() {
+        if (jj_scan_token(DIV)) {
             return true;
         }
         Token xsp;
@@ -6610,8 +6664,8 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         return false;
     }
 
-    private boolean jj_3R_205() {
-        if (jj_scan_token(ANY)) {
+    private boolean jj_3R_209() {
+        if (jj_scan_token(COMMA)) {
             return true;
         }
         Token xsp;
@@ -6625,29 +6679,38 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         return false;
     }
 
-    private boolean jj_3R_204() {
-        if (jj_scan_token(DIV)) {
-            return true;
-        }
+    private boolean jj_3R_187() {
         Token xsp;
-        while (true) {
-            xsp = jj_scanpos;
-            if (jj_scan_token(1)) {
+        xsp = jj_scanpos;
+        if (jj_3R_209()) {
+            jj_scanpos = xsp;
+            if (jj_3R_210()) {
                 jj_scanpos = xsp;
-                break;
+                if (jj_3R_211()) {
+                    jj_scanpos = xsp;
+                    if (jj_3R_212()) {
+                        jj_scanpos = xsp;
+                        if (jj_3R_213()) {
+                            jj_scanpos = xsp;
+                            if (jj_3R_214()) {
+                                return true;
+                            }
+                        }
+                    }
+                }
             }
         }
         return false;
     }
 
-    private boolean jj_3R_211() {
-        if (jj_3R_210()) {
+    private boolean jj_3R_217() {
+        if (jj_3R_216()) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_210() {
+    private boolean jj_3R_216() {
         Token xsp;
         xsp = jj_scanpos;
         if (jj_scan_token(20)) {
@@ -6669,8 +6732,8 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         return false;
     }
 
-    private boolean jj_3R_172() {
-        if (jj_3R_182()) {
+    private boolean jj_3R_178() {
+        if (jj_3R_188()) {
             return true;
         }
         if (jj_scan_token(COLON)) {
@@ -6684,19 +6747,19 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
                 break;
             }
         }
-        if (jj_3R_183()) {
+        if (jj_3R_189()) {
             return true;
         }
         xsp = jj_scanpos;
-        if (jj_3R_184()) {
+        if (jj_3R_190()) {
             jj_scanpos = xsp;
         }
-        if (jj_3R_185()) {
+        if (jj_3R_191()) {
             return true;
         }
         while (true) {
             xsp = jj_scanpos;
-            if (jj_3R_185()) {
+            if (jj_3R_191()) {
                 jj_scanpos = xsp;
                 break;
             }
@@ -6704,8 +6767,8 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         return false;
     }
 
-    private boolean jj_3R_203() {
-        if (jj_scan_token(COMMA)) {
+    private boolean jj_3R_215() {
+        if (jj_scan_token(GUARDED_SYM)) {
             return true;
         }
         Token xsp;
@@ -6719,77 +6782,38 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         return false;
     }
 
-    private boolean jj_3R_181() {
-        Token xsp;
-        xsp = jj_scanpos;
-        if (jj_3R_203()) {
-            jj_scanpos = xsp;
-            if (jj_3R_204()) {
-                jj_scanpos = xsp;
-                if (jj_3R_205()) {
-                    jj_scanpos = xsp;
-                    if (jj_3R_206()) {
-                        jj_scanpos = xsp;
-                        if (jj_3R_207()) {
-                            jj_scanpos = xsp;
-                            if (jj_3R_208()) {
-                                return true;
-                            }
-                        }
-                    }
-                }
-            }
-        }
-        return false;
-    }
-
-    private boolean jj_3R_187() {
+    private boolean jj_3R_193() {
         if (jj_scan_token(S)) {
             return true;
         }
         Token xsp;
         xsp = jj_scanpos;
-        if (jj_3R_211()) {
+        if (jj_3R_217()) {
             jj_scanpos = xsp;
         }
         return false;
     }
 
-    private boolean jj_3R_186() {
-        if (jj_3R_210()) {
+    private boolean jj_3R_192() {
+        if (jj_3R_216()) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_173() {
+    private boolean jj_3R_179() {
         Token xsp;
         xsp = jj_scanpos;
-        if (jj_3R_186()) {
+        if (jj_3R_192()) {
             jj_scanpos = xsp;
-            if (jj_3R_187()) {
+            if (jj_3R_193()) {
                 return true;
             }
         }
         return false;
     }
 
-    private boolean jj_3R_209() {
-        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_193() {
+    private boolean jj_3R_199() {
         if (jj_scan_token(VARIABLE)) {
             return true;
         }
@@ -6814,10 +6838,10 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         return false;
     }
 
-    private boolean jj_3R_175() {
+    private boolean jj_3R_181() {
         Token xsp;
         xsp = jj_scanpos;
-        if (jj_3R_193()) {
+        if (jj_3R_199()) {
             jj_scanpos = xsp;
         }
         if (jj_scan_token(CONTAINS)) {
@@ -6838,21 +6862,21 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         return false;
     }
 
-    private boolean jj_3R_213() {
+    private boolean jj_3R_219() {
         if (jj_scan_token(HASH)) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_283() {
+    private boolean jj_3R_289() {
         if (jj_scan_token(IDENT)) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_284() {
+    private boolean jj_3R_290() {
         if (jj_scan_token(FUNCTION)) {
             return true;
         }
@@ -6872,26 +6896,26 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         return false;
     }
 
-    private boolean jj_3R_282() {
+    private boolean jj_3R_288() {
         if (jj_scan_token(COLON)) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_215() {
+    private boolean jj_3R_221() {
         if (jj_scan_token(COLON)) {
             return true;
         }
         Token xsp;
         xsp = jj_scanpos;
-        if (jj_3R_282()) {
+        if (jj_3R_288()) {
             jj_scanpos = xsp;
         }
         xsp = jj_scanpos;
-        if (jj_3R_283()) {
+        if (jj_3R_289()) {
             jj_scanpos = xsp;
-            if (jj_3R_284()) {
+            if (jj_3R_290()) {
                 return true;
             }
         }
@@ -6899,96 +6923,103 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
     }
 
     private boolean jj_3_7() {
-        if (jj_3R_179()) {
+        if (jj_3R_185()) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_303() {
+    private boolean jj_3R_206() {
+        if (jj_scan_token(LBRACE)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_309() {
         if (jj_scan_token(STRING)) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_301() {
+    private boolean jj_3R_307() {
         if (jj_scan_token(STARMATCH)) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_302() {
+    private boolean jj_3R_308() {
         if (jj_scan_token(IDENT)) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_300() {
+    private boolean jj_3R_306() {
         if (jj_scan_token(DOLLARMATCH)) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_299() {
+    private boolean jj_3R_305() {
         if (jj_scan_token(CARETMATCH)) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_298() {
+    private boolean jj_3R_304() {
         if (jj_scan_token(DASHMATCH)) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_297() {
+    private boolean jj_3R_303() {
         if (jj_scan_token(INCLUDES)) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_264() {
+    private boolean jj_3R_270() {
         if (jj_scan_token(INTERPOLATION)) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_296() {
+    private boolean jj_3R_302() {
         if (jj_scan_token(EQ)) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_200() {
-        if (jj_scan_token(LBRACE)) {
+    private boolean jj_3R_205() {
+        if (jj_3R_189()) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_289() {
+    private boolean jj_3R_295() {
         Token xsp;
         xsp = jj_scanpos;
-        if (jj_3R_296()) {
+        if (jj_3R_302()) {
             jj_scanpos = xsp;
-            if (jj_3R_297()) {
+            if (jj_3R_303()) {
                 jj_scanpos = xsp;
-                if (jj_3R_298()) {
+                if (jj_3R_304()) {
                     jj_scanpos = xsp;
-                    if (jj_3R_299()) {
+                    if (jj_3R_305()) {
                         jj_scanpos = xsp;
-                        if (jj_3R_300()) {
+                        if (jj_3R_306()) {
                             jj_scanpos = xsp;
-                            if (jj_3R_301()) {
+                            if (jj_3R_307()) {
                                 return true;
                             }
                         }
@@ -7004,9 +7035,9 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
             }
         }
         xsp = jj_scanpos;
-        if (jj_3R_302()) {
+        if (jj_3R_308()) {
             jj_scanpos = xsp;
-            if (jj_3R_303()) {
+            if (jj_3R_309()) {
                 return true;
             }
         }
@@ -7020,7 +7051,17 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         return false;
     }
 
-    private boolean jj_3R_216() {
+    private boolean jj_3_6() {
+        if (jj_3R_184()) {
+            return true;
+        }
+        if (jj_scan_token(LBRACE)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_222() {
         if (jj_scan_token(LBRACKET)) {
             return true;
         }
@@ -7043,7 +7084,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
             }
         }
         xsp = jj_scanpos;
-        if (jj_3R_289()) {
+        if (jj_3R_295()) {
             jj_scanpos = xsp;
         }
         if (jj_scan_token(RBRACKET)) {
@@ -7052,96 +7093,86 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         return false;
     }
 
-    private boolean jj_3R_295() {
-        if (jj_scan_token(INTERPOLATION)) {
+    private boolean jj_3R_185() {
+        if (jj_3R_204()) {
+            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_205()) {
+            jj_scanpos = xsp;
+            if (jj_3R_206()) {
+                return true;
+            }
+        }
         return false;
     }
 
-    private boolean jj_3R_199() {
-        if (jj_3R_183()) {
+    private boolean jj_3R_301() {
+        if (jj_scan_token(INTERPOLATION)) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_250() {
+    private boolean jj_3R_256() {
         if (jj_scan_token(PARENT)) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_249() {
-        if (jj_scan_token(ANY)) {
+    private boolean jj_3R_268() {
+        if (jj_3R_189()) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3_6() {
-        if (jj_3R_178()) {
-            return true;
-        }
-        if (jj_scan_token(LBRACE)) {
+    private boolean jj_3R_255() {
+        if (jj_scan_token(ANY)) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_179() {
-        if (jj_3R_198()) {
-            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_199()) {
-            jj_scanpos = xsp;
-            if (jj_3R_200()) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    private boolean jj_3R_259() {
+    private boolean jj_3R_265() {
         Token xsp;
         xsp = jj_scanpos;
-        if (jj_3R_263()) {
+        if (jj_3R_269()) {
             jj_scanpos = xsp;
-            if (jj_3R_264()) {
+            if (jj_3R_270()) {
                 return true;
             }
         }
         return false;
     }
 
-    private boolean jj_3R_263() {
+    private boolean jj_3R_269() {
         if (jj_scan_token(IDENT)) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_212() {
+    private boolean jj_3R_218() {
         Token xsp;
         xsp = jj_scanpos;
-        if (jj_3R_248()) {
+        if (jj_3R_254()) {
             jj_scanpos = xsp;
-            if (jj_3R_249()) {
+            if (jj_3R_255()) {
                 jj_scanpos = xsp;
-                if (jj_3R_250()) {
+                if (jj_3R_256()) {
                     return true;
                 }
             }
@@ -7149,14 +7180,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         return false;
     }
 
-    private boolean jj_3R_248() {
+    private boolean jj_3R_254() {
         Token xsp;
-        if (jj_3R_259()) {
+        if (jj_3R_265()) {
             return true;
         }
         while (true) {
             xsp = jj_scanpos;
-            if (jj_3R_259()) {
+            if (jj_3R_265()) {
                 jj_scanpos = xsp;
                 break;
             }
@@ -7164,15 +7195,23 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         return false;
     }
 
-    private boolean jj_3R_262() {
-        if (jj_3R_183()) {
+    private boolean jj_3R_182() {
+        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_176() {
-        if (jj_scan_token(COMMA)) {
+    private boolean jj_3R_258() {
+        if (jj_scan_token(FUNCTION)) {
             return true;
         }
         Token xsp;
@@ -7183,167 +7222,152 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
                 break;
             }
         }
+        xsp = jj_scanpos;
+        if (jj_3R_268()) {
+            jj_scanpos = xsp;
+        }
+        if (jj_scan_token(RPARAN)) {
+            return true;
+        }
         return false;
     }
 
-    private boolean jj_3R_277() {
+    private boolean jj_3R_283() {
         Token xsp;
         xsp = jj_scanpos;
-        if (jj_3R_294()) {
+        if (jj_3R_300()) {
             jj_scanpos = xsp;
-            if (jj_3R_295()) {
+            if (jj_3R_301()) {
                 return true;
             }
         }
         return false;
     }
 
-    private boolean jj_3R_294() {
+    private boolean jj_3R_300() {
         if (jj_scan_token(IDENT)) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_293() {
-        if (jj_3R_215()) {
+    private boolean jj_3R_249() {
+        if (jj_3R_262()) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3_5() {
-        Token xsp;
-        xsp = jj_scanpos;
-        if (jj_3R_176()) {
-            jj_scanpos = xsp;
-        }
-        if (jj_3R_177()) {
+    private boolean jj_3R_299() {
+        if (jj_3R_221()) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_214() {
-        if (jj_scan_token(DOT)) {
-            return true;
-        }
-        Token xsp;
-        if (jj_3R_277()) {
+    private boolean jj_3R_248() {
+        if (jj_3R_261()) {
             return true;
         }
-        while (true) {
-            xsp = jj_scanpos;
-            if (jj_3R_277()) {
-                jj_scanpos = xsp;
-                break;
-            }
-        }
         return false;
     }
 
-    private boolean jj_3R_252() {
-        if (jj_scan_token(FUNCTION)) {
+    private boolean jj_3R_247() {
+        if (jj_3R_260()) {
             return true;
         }
+        return false;
+    }
+
+    private boolean jj_3_5() {
         Token xsp;
-        while (true) {
-            xsp = jj_scanpos;
-            if (jj_scan_token(1)) {
-                jj_scanpos = xsp;
-                break;
-            }
-        }
         xsp = jj_scanpos;
-        if (jj_3R_262()) {
+        if (jj_3R_182()) {
             jj_scanpos = xsp;
         }
-        if (jj_scan_token(RPARAN)) {
+        if (jj_3R_183()) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_291() {
-        if (jj_3R_214()) {
+    private boolean jj_3R_220() {
+        if (jj_scan_token(DOT)) {
             return true;
         }
-        return false;
-    }
-
-    private boolean jj_3R_286() {
-        if (jj_3R_214()) {
+        Token xsp;
+        if (jj_3R_283()) {
             return true;
         }
-        return false;
-    }
-
-    private boolean jj_3R_288() {
-        if (jj_3R_215()) {
-            return true;
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_3R_283()) {
+                jj_scanpos = xsp;
+                break;
+            }
         }
         return false;
     }
 
-    private boolean jj_3R_276() {
-        if (jj_3R_215()) {
+    private boolean jj_3R_297() {
+        if (jj_3R_220()) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_279() {
-        if (jj_3R_214()) {
+    private boolean jj_3R_292() {
+        if (jj_3R_220()) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_281() {
-        if (jj_3R_215()) {
+    private boolean jj_3R_294() {
+        if (jj_3R_221()) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_243() {
-        if (jj_3R_256()) {
+    private boolean jj_3R_282() {
+        if (jj_3R_221()) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_242() {
-        if (jj_3R_255()) {
+    private boolean jj_3R_285() {
+        if (jj_3R_220()) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_241() {
-        if (jj_3R_254()) {
+    private boolean jj_3R_287() {
+        if (jj_3R_221()) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_292() {
-        if (jj_3R_216()) {
+    private boolean jj_3R_298() {
+        if (jj_3R_222()) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_269() {
+    private boolean jj_3R_275() {
         Token xsp;
         xsp = jj_scanpos;
-        if (jj_3R_290()) {
+        if (jj_3R_296()) {
             jj_scanpos = xsp;
-            if (jj_3R_291()) {
+            if (jj_3R_297()) {
                 jj_scanpos = xsp;
-                if (jj_3R_292()) {
+                if (jj_3R_298()) {
                     jj_scanpos = xsp;
-                    if (jj_3R_293()) {
+                    if (jj_3R_299()) {
                         return true;
                     }
                 }
@@ -7352,23 +7376,23 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         return false;
     }
 
-    private boolean jj_3R_290() {
-        if (jj_3R_213()) {
+    private boolean jj_3R_296() {
+        if (jj_3R_219()) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_268() {
+    private boolean jj_3R_274() {
         Token xsp;
         xsp = jj_scanpos;
-        if (jj_3R_285()) {
+        if (jj_3R_291()) {
             jj_scanpos = xsp;
-            if (jj_3R_286()) {
+            if (jj_3R_292()) {
                 jj_scanpos = xsp;
-                if (jj_3R_287()) {
+                if (jj_3R_293()) {
                     jj_scanpos = xsp;
-                    if (jj_3R_288()) {
+                    if (jj_3R_294()) {
                         return true;
                     }
                 }
@@ -7377,30 +7401,30 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         return false;
     }
 
-    private boolean jj_3R_285() {
-        if (jj_3R_213()) {
+    private boolean jj_3R_291() {
+        if (jj_3R_219()) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_273() {
-        if (jj_3R_215()) {
+    private boolean jj_3R_279() {
+        if (jj_3R_221()) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_267() {
+    private boolean jj_3R_273() {
         Token xsp;
         xsp = jj_scanpos;
-        if (jj_3R_278()) {
+        if (jj_3R_284()) {
             jj_scanpos = xsp;
-            if (jj_3R_279()) {
+            if (jj_3R_285()) {
                 jj_scanpos = xsp;
-                if (jj_3R_280()) {
+                if (jj_3R_286()) {
                     jj_scanpos = xsp;
-                    if (jj_3R_281()) {
+                    if (jj_3R_287()) {
                         return true;
                     }
                 }
@@ -7409,42 +7433,42 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         return false;
     }
 
-    private boolean jj_3R_278() {
-        if (jj_3R_213()) {
+    private boolean jj_3R_284() {
+        if (jj_3R_219()) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_287() {
-        if (jj_3R_216()) {
+    private boolean jj_3R_293() {
+        if (jj_3R_222()) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_275() {
-        if (jj_3R_216()) {
+    private boolean jj_3R_281() {
+        if (jj_3R_222()) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_280() {
-        if (jj_3R_216()) {
+    private boolean jj_3R_286() {
+        if (jj_3R_222()) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_266() {
+    private boolean jj_3R_272() {
         Token xsp;
         xsp = jj_scanpos;
-        if (jj_3R_274()) {
+        if (jj_3R_280()) {
             jj_scanpos = xsp;
-            if (jj_3R_275()) {
+            if (jj_3R_281()) {
                 jj_scanpos = xsp;
-                if (jj_3R_276()) {
+                if (jj_3R_282()) {
                     return true;
                 }
             }
@@ -7452,43 +7476,47 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         return false;
     }
 
-    private boolean jj_3R_271() {
-        if (jj_3R_214()) {
+    private boolean jj_3R_277() {
+        if (jj_3R_220()) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_274() {
-        if (jj_3R_214()) {
+    private boolean jj_3R_280() {
+        if (jj_3R_220()) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_192() {
-        if (jj_3R_216()) {
+    private boolean jj_3R_259() {
+        if (jj_scan_token(DOT)) {
             return true;
         }
+        return false;
+    }
+
+    private boolean jj_3R_246() {
         Token xsp;
-        while (true) {
-            xsp = jj_scanpos;
-            if (jj_3R_269()) {
-                jj_scanpos = xsp;
-                break;
-            }
+        xsp = jj_scanpos;
+        if (jj_3R_259()) {
+            jj_scanpos = xsp;
+        }
+        if (jj_scan_token(IDENT)) {
+            return true;
         }
         return false;
     }
 
-    private boolean jj_3R_191() {
-        if (jj_3R_215()) {
+    private boolean jj_3R_198() {
+        if (jj_3R_222()) {
             return true;
         }
         Token xsp;
         while (true) {
             xsp = jj_scanpos;
-            if (jj_3R_268()) {
+            if (jj_3R_275()) {
                 jj_scanpos = xsp;
                 break;
             }
@@ -7496,21 +7524,28 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         return false;
     }
 
-    private boolean jj_3R_272() {
-        if (jj_3R_216()) {
+    private boolean jj_3R_245() {
+        if (jj_scan_token(STRING)) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_190() {
-        if (jj_3R_214()) {
+    private boolean jj_3R_244() {
+        if (jj_3R_258()) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_197() {
+        if (jj_3R_221()) {
             return true;
         }
         Token xsp;
         while (true) {
             xsp = jj_scanpos;
-            if (jj_3R_267()) {
+            if (jj_3R_274()) {
                 jj_scanpos = xsp;
                 break;
             }
@@ -7518,21 +7553,42 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         return false;
     }
 
-    private boolean jj_3R_253() {
-        if (jj_scan_token(DOT)) {
+    private boolean jj_3R_201() {
+        Token xsp;
+        xsp = jj_scanpos;
+        if (jj_3R_245()) {
+            jj_scanpos = xsp;
+            if (jj_3R_246()) {
+                jj_scanpos = xsp;
+                if (jj_3R_247()) {
+                    jj_scanpos = xsp;
+                    if (jj_3R_248()) {
+                        jj_scanpos = xsp;
+                        if (jj_3R_249()) {
+                            return true;
+                        }
+                    }
+                }
+            }
+        }
+        return false;
+    }
+
+    private boolean jj_3R_278() {
+        if (jj_3R_222()) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_189() {
-        if (jj_3R_213()) {
+    private boolean jj_3R_196() {
+        if (jj_3R_220()) {
             return true;
         }
         Token xsp;
         while (true) {
             xsp = jj_scanpos;
-            if (jj_3R_266()) {
+            if (jj_3R_273()) {
                 jj_scanpos = xsp;
                 break;
             }
@@ -7540,16 +7596,31 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         return false;
     }
 
-    private boolean jj_3R_265() {
+    private boolean jj_3R_195() {
+        if (jj_3R_219()) {
+            return true;
+        }
+        Token xsp;
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_3R_272()) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        return false;
+    }
+
+    private boolean jj_3R_271() {
         Token xsp;
         xsp = jj_scanpos;
-        if (jj_3R_270()) {
+        if (jj_3R_276()) {
             jj_scanpos = xsp;
-            if (jj_3R_271()) {
+            if (jj_3R_277()) {
                 jj_scanpos = xsp;
-                if (jj_3R_272()) {
+                if (jj_3R_278()) {
                     jj_scanpos = xsp;
-                    if (jj_3R_273()) {
+                    if (jj_3R_279()) {
                         return true;
                     }
                 }
@@ -7558,33 +7629,21 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         return false;
     }
 
-    private boolean jj_3R_270() {
-        if (jj_3R_213()) {
-            return true;
-        }
-        return false;
-    }
-
-    private boolean jj_3R_240() {
-        Token xsp;
-        xsp = jj_scanpos;
-        if (jj_3R_253()) {
-            jj_scanpos = xsp;
-        }
-        if (jj_scan_token(IDENT)) {
+    private boolean jj_3R_276() {
+        if (jj_3R_219()) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_188() {
-        if (jj_3R_212()) {
+    private boolean jj_3R_194() {
+        if (jj_3R_218()) {
             return true;
         }
         Token xsp;
         while (true) {
             xsp = jj_scanpos;
-            if (jj_3R_265()) {
+            if (jj_3R_271()) {
                 jj_scanpos = xsp;
                 break;
             }
@@ -7592,18 +7651,18 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         return false;
     }
 
-    private boolean jj_3R_174() {
+    private boolean jj_3R_180() {
         Token xsp;
         xsp = jj_scanpos;
-        if (jj_3R_188()) {
+        if (jj_3R_194()) {
             jj_scanpos = xsp;
-            if (jj_3R_189()) {
+            if (jj_3R_195()) {
                 jj_scanpos = xsp;
-                if (jj_3R_190()) {
+                if (jj_3R_196()) {
                     jj_scanpos = xsp;
-                    if (jj_3R_191()) {
+                    if (jj_3R_197()) {
                         jj_scanpos = xsp;
-                        if (jj_3R_192()) {
+                        if (jj_3R_198()) {
                             return true;
                         }
                     }
@@ -7613,132 +7672,132 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         return false;
     }
 
-    private boolean jj_3R_239() {
-        if (jj_scan_token(STRING)) {
+    private boolean jj_3R_243() {
+        if (jj_scan_token(DIMEN)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_251() {
+        if (jj_3R_216()) {
+            return true;
+        }
+        if (jj_3R_180()) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_242() {
+        if (jj_scan_token(KHZ)) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_238() {
-        if (jj_3R_252()) {
+    private boolean jj_3R_241() {
+        if (jj_scan_token(HZ)) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_245() {
-        if (jj_3R_210()) {
+    private boolean jj_3R_240() {
+        if (jj_scan_token(MS)) {
             return true;
         }
-        if (jj_3R_174()) {
+        return false;
+    }
+
+    private boolean jj_3R_239() {
+        if (jj_scan_token(SECOND)) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_195() {
-        Token xsp;
-        xsp = jj_scanpos;
-        if (jj_3R_239()) {
-            jj_scanpos = xsp;
-            if (jj_3R_240()) {
-                jj_scanpos = xsp;
-                if (jj_3R_241()) {
-                    jj_scanpos = xsp;
-                    if (jj_3R_242()) {
-                        jj_scanpos = xsp;
-                        if (jj_3R_243()) {
-                            return true;
-                        }
-                    }
-                }
-            }
+    private boolean jj_3R_238() {
+        if (jj_scan_token(GRAD)) {
+            return true;
         }
         return false;
     }
 
     private boolean jj_3R_237() {
-        if (jj_scan_token(DIMEN)) {
+        if (jj_scan_token(RAD)) {
             return true;
         }
         return false;
     }
 
     private boolean jj_3R_236() {
-        if (jj_scan_token(KHZ)) {
+        if (jj_scan_token(DEG)) {
             return true;
         }
         return false;
     }
 
     private boolean jj_3R_235() {
-        if (jj_scan_token(HZ)) {
+        if (jj_scan_token(EXS)) {
             return true;
         }
         return false;
     }
 
     private boolean jj_3R_234() {
-        if (jj_scan_token(MS)) {
+        if (jj_scan_token(REM)) {
             return true;
         }
         return false;
     }
 
     private boolean jj_3R_233() {
-        if (jj_scan_token(SECOND)) {
+        if (jj_scan_token(LEM)) {
             return true;
         }
         return false;
     }
 
     private boolean jj_3R_232() {
-        if (jj_scan_token(GRAD)) {
-            return true;
-        }
-        return false;
-    }
-
-    private boolean jj_3R_231() {
-        if (jj_scan_token(RAD)) {
+        if (jj_scan_token(EMS)) {
             return true;
         }
         return false;
     }
 
     private boolean jj_3_2() {
-        if (jj_3R_173()) {
+        if (jj_3R_179()) {
             return true;
         }
-        if (jj_3R_174()) {
+        if (jj_3R_180()) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_230() {
-        if (jj_scan_token(DEG)) {
+    private boolean jj_3R_231() {
+        if (jj_scan_token(PX)) {
             return true;
         }
         return false;
     }
 
     private boolean jj_3_1() {
-        if (jj_3R_172()) {
+        if (jj_3R_178()) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_229() {
-        if (jj_scan_token(EXS)) {
+    private boolean jj_3R_230() {
+        if (jj_scan_token(IN)) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_197() {
+    private boolean jj_3R_203() {
         if (jj_scan_token(COMMA)) {
             return true;
         }
@@ -7750,39 +7809,39 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
                 break;
             }
         }
-        if (jj_3R_196()) {
+        if (jj_3R_202()) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_244() {
-        if (jj_3R_174()) {
+    private boolean jj_3R_250() {
+        if (jj_3R_180()) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_228() {
-        if (jj_scan_token(REM)) {
+    private boolean jj_3R_229() {
+        if (jj_scan_token(PC)) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_227() {
-        if (jj_scan_token(LEM)) {
+    private boolean jj_3R_228() {
+        if (jj_scan_token(MM)) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_196() {
+    private boolean jj_3R_202() {
         Token xsp;
         xsp = jj_scanpos;
-        if (jj_3R_244()) {
+        if (jj_3R_250()) {
             jj_scanpos = xsp;
-            if (jj_3R_245()) {
+            if (jj_3R_251()) {
                 return true;
             }
         }
@@ -7803,56 +7862,56 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         return false;
     }
 
-    private boolean jj_3R_226() {
-        if (jj_scan_token(EMS)) {
+    private boolean jj_3R_227() {
+        if (jj_scan_token(CM)) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_225() {
-        if (jj_scan_token(PX)) {
+    private boolean jj_3R_226() {
+        if (jj_scan_token(PT)) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_224() {
-        if (jj_scan_token(IN)) {
+    private boolean jj_3R_225() {
+        if (jj_scan_token(PERCENTAGE)) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_223() {
-        if (jj_scan_token(PC)) {
+    private boolean jj_3R_208() {
+        if (jj_3R_253()) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_222() {
-        if (jj_scan_token(MM)) {
+    private boolean jj_3R_224() {
+        if (jj_scan_token(NUMBER)) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_221() {
-        if (jj_scan_token(CM)) {
+    private boolean jj_3R_223() {
+        if (jj_3R_257()) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_178() {
-        if (jj_3R_196()) {
+    private boolean jj_3R_184() {
+        if (jj_3R_202()) {
             return true;
         }
         Token xsp;
         while (true) {
             xsp = jj_scanpos;
-            if (jj_3R_197()) {
+            if (jj_3R_203()) {
                 jj_scanpos = xsp;
                 break;
             }
@@ -7860,96 +7919,54 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         return false;
     }
 
-    private boolean jj_3R_220() {
-        if (jj_scan_token(PT)) {
-            return true;
-        }
-        return false;
-    }
-
-    private boolean jj_3R_219() {
-        if (jj_scan_token(PERCENTAGE)) {
-            return true;
-        }
-        return false;
-    }
-
-    private boolean jj_3_4() {
-        if (jj_3R_175()) {
-            return true;
-        }
-        return false;
-    }
-
-    private boolean jj_3R_202() {
-        if (jj_3R_247()) {
-            return true;
-        }
-        return false;
-    }
-
-    private boolean jj_3R_218() {
-        if (jj_scan_token(NUMBER)) {
-            return true;
-        }
-        return false;
-    }
-
-    private boolean jj_3R_217() {
-        if (jj_3R_251()) {
-            return true;
-        }
-        return false;
-    }
-
-    private boolean jj_3R_194() {
+    private boolean jj_3R_200() {
         Token xsp;
         xsp = jj_scanpos;
-        if (jj_3R_217()) {
+        if (jj_3R_223()) {
             jj_scanpos = xsp;
         }
         xsp = jj_scanpos;
-        if (jj_3R_218()) {
+        if (jj_3R_224()) {
             jj_scanpos = xsp;
-            if (jj_3R_219()) {
+            if (jj_3R_225()) {
                 jj_scanpos = xsp;
-                if (jj_3R_220()) {
+                if (jj_3R_226()) {
                     jj_scanpos = xsp;
-                    if (jj_3R_221()) {
+                    if (jj_3R_227()) {
                         jj_scanpos = xsp;
-                        if (jj_3R_222()) {
+                        if (jj_3R_228()) {
                             jj_scanpos = xsp;
-                            if (jj_3R_223()) {
+                            if (jj_3R_229()) {
                                 jj_scanpos = xsp;
-                                if (jj_3R_224()) {
+                                if (jj_3R_230()) {
                                     jj_scanpos = xsp;
-                                    if (jj_3R_225()) {
+                                    if (jj_3R_231()) {
                                         jj_scanpos = xsp;
-                                        if (jj_3R_226()) {
+                                        if (jj_3R_232()) {
                                             jj_scanpos = xsp;
-                                            if (jj_3R_227()) {
+                                            if (jj_3R_233()) {
                                                 jj_scanpos = xsp;
-                                                if (jj_3R_228()) {
+                                                if (jj_3R_234()) {
                                                     jj_scanpos = xsp;
-                                                    if (jj_3R_229()) {
+                                                    if (jj_3R_235()) {
                                                         jj_scanpos = xsp;
-                                                        if (jj_3R_230()) {
+                                                        if (jj_3R_236()) {
                                                             jj_scanpos = xsp;
-                                                            if (jj_3R_231()) {
+                                                            if (jj_3R_237()) {
                                                                 jj_scanpos = xsp;
-                                                                if (jj_3R_232()) {
+                                                                if (jj_3R_238()) {
                                                                     jj_scanpos = xsp;
-                                                                    if (jj_3R_233()) {
+                                                                    if (jj_3R_239()) {
                                                                         jj_scanpos = xsp;
-                                                                        if (jj_3R_234()) {
+                                                                        if (jj_3R_240()) {
                                                                             jj_scanpos = xsp;
-                                                                            if (jj_3R_235()) {
+                                                                            if (jj_3R_241()) {
                                                                                 jj_scanpos = xsp;
-                                                                                if (jj_3R_236()) {
+                                                                                if (jj_3R_242()) {
                                                                                     jj_scanpos = xsp;
-                                                                                    if (jj_3R_237()) {
+                                                                                    if (jj_3R_243()) {
                                                                                         jj_scanpos = xsp;
-                                                                                        if (jj_3R_238()) {
+                                                                                        if (jj_3R_244()) {
                                                                                             return true;
                                                                                         }
                                                                                     }
@@ -7975,12 +7992,12 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         return false;
     }
 
-    private boolean jj_3R_177() {
+    private boolean jj_3R_183() {
         Token xsp;
         xsp = jj_scanpos;
-        if (jj_3R_194()) {
+        if (jj_3R_200()) {
             jj_scanpos = xsp;
-            if (jj_3R_195()) {
+            if (jj_3R_201()) {
                 return true;
             }
         }
@@ -7994,68 +8011,108 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         return false;
     }
 
-    private boolean jj_3R_254() {
+    private boolean jj_3R_260() {
         if (jj_scan_token(HASH)) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_247() {
-        if (jj_3R_182()) {
+    private boolean jj_3_4() {
+        if (jj_3R_181()) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_258() {
-        if (jj_scan_token(INTERPOLATION)) {
+    private boolean jj_3R_253() {
+        if (jj_3R_188()) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_255() {
+    private boolean jj_3R_261() {
         if (jj_scan_token(URL)) {
             return true;
         }
         return false;
     }
 
+    private boolean jj_3R_207() {
+        if (jj_3R_183()) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_186() {
+        Token xsp;
+        xsp = jj_scanpos;
+        if (jj_3R_207()) {
+            jj_scanpos = xsp;
+            if (jj_3R_208()) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    private boolean jj_3R_264() {
+        if (jj_scan_token(INTERPOLATION)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3_9() {
+        if (jj_3R_187()) {
+            return true;
+        }
+        return false;
+    }
+
     private boolean jj_3_3() {
-        if (jj_3R_172()) {
+        if (jj_3R_178()) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_201() {
-        if (jj_3R_177()) {
+    private boolean jj_3R_267() {
+        if (jj_scan_token(PLUS)) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_180() {
+    private boolean jj_3R_257() {
         Token xsp;
         xsp = jj_scanpos;
-        if (jj_3R_201()) {
+        if (jj_3R_266()) {
             jj_scanpos = xsp;
-            if (jj_3R_202()) {
+            if (jj_3R_267()) {
                 return true;
             }
         }
         return false;
     }
 
-    private boolean jj_3_9() {
-        if (jj_3R_181()) {
+    private boolean jj_3R_266() {
+        if (jj_scan_token(MINUS)) {
             return true;
         }
         return false;
     }
 
-    private boolean jj_3R_185() {
+    private boolean jj_3R_262() {
+        if (jj_scan_token(UNICODERANGE)) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_191() {
         if (jj_scan_token(SEMICOLON)) {
             return true;
         }
@@ -8070,6 +8127,48 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         return false;
     }
 
+    private boolean jj_3_8() {
+        Token xsp;
+        xsp = jj_scanpos;
+        if (jj_3_9()) {
+            jj_scanpos = xsp;
+        }
+        if (jj_3R_186()) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean jj_3R_189() {
+        if (jj_3R_186()) {
+            return true;
+        }
+        Token xsp;
+        while (true) {
+            xsp = jj_scanpos;
+            if (jj_3_8()) {
+                jj_scanpos = xsp;
+                break;
+            }
+        }
+        return false;
+    }
+
+    private boolean jj_3R_188() {
+        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;
+    }
+
     /** Generated Token Manager. */
     public ParserTokenManager token_source;
     /** Current token. */
@@ -8080,7 +8179,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
     private Token jj_scanpos, jj_lastpos;
     private int jj_la;
     private int jj_gen;
-    final private int[] jj_la1 = new int[254];
+    final private int[] jj_la1 = new int[261];
     static private int[] jj_la1_0;
     static private int[] jj_la1_1;
     static private int[] jj_la1_2;
@@ -8111,17 +8210,17 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
                 0x2, 0x0, 0x2, 0x53100000, 0x2, 0x2, 0x400000, 0x2, 0x2, 0x2,
                 0x2, 0x0, 0x2, 0x53100000, 0x53100000, 0x2, 0x400000, 0x2, 0x2,
                 0x2, 0x400000, 0x0, 0x0, 0x300000, 0x2, 0x0, 0x400000, 0x2,
-                0x300000, 0x2, 0x0, 0x2, 0x0, 0x2, 0x800000, 0x2, 0x2, 0x0,
-                0x2, 0x0, 0x2, 0x2, 0x2, 0x400000, 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, 0x53100000, 0x2, 0x0,
-                0x2, 0x0, 0x800000, 0x2, 0x0, 0x2, 0x301000, 0x2, 0x0, 0x2,
-                0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0xc8700000, 0x300000,
-                0x300000, 0x300000, 0x0, 0x0, 0x0, 0x300000, 0x2, 0x2,
-                0x300000, 0x2, 0x53100000, 0x2, 0x2, 0x2, 0x0, 0x800000, 0x2,
-                0x0, 0x2, };
+                0x300000, 0x2, 0x0, 0x2, 0x0, 0x2, 0x800000, 0x2, 0x53100000,
+                0x2, 0x801000, 0x2, 0x2, 0x0, 0x2, 0x0, 0x2, 0x2, 0x2,
+                0x400000, 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, 0x800000, 0x2, 0x2,
+                0x0, 0x800000, 0x2, 0x0, 0x2, 0x0, 0x53100000, 0x2, 0x0, 0x2,
+                0x0, 0x800000, 0x2, 0x0, 0x2, 0x301000, 0x2, 0x0, 0x2, 0x2,
+                0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0xc8700000, 0x300000, 0x300000,
+                0x300000, 0x0, 0x0, 0x0, 0x300000, 0x2, 0x2, 0x300000, 0x2,
+                0x53100000, 0x2, 0x2, 0x2, 0x0, 0x800000, 0x2, 0x0, 0x2, };
     }
 
     private static void jj_la1_init_1() {
@@ -8141,69 +8240,71 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
                 0x0, 0x0, 0x19000303, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x200,
                 0x0, 0x59000303, 0x59000303, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
                 0x100, 0x100, 0x102, 0x0, 0x100, 0x0, 0x0, 0x102, 0x0, 0x100,
-                0x0, 0x200, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0,
-                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0,
-                0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8,
-                0x0, 0x0, 0x0, 0x0, 0x18000000, 0x0, 0x0, 0x180000, 0x0, 0x0,
-                0x0, 0x0, 0x0, 0x0, 0x200, 0x0, 0x0, 0x200, 0x0, 0x18000000,
-                0x303, 0x0, 0x0, 0x0, 0x200, 0x0, 0x0, 0x200, 0x0, 0x2, 0x0,
-                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2,
-                0x0, 0x0, 0x2, 0x2, 0x2, 0x0, 0x0, 0x2, 0x0, 0x18000303, 0x0,
-                0x0, 0x0, 0x200, 0x0, 0x0, 0x200, 0x0, };
+                0x0, 0x200, 0x0, 0x0, 0x0, 0x18000303, 0x0, 0x0, 0x0, 0x0, 0x0,
+                0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8,
+                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0,
+                0x0, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x18000000, 0x0,
+                0x0, 0x180000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+                0x200, 0x0, 0x0, 0x200, 0x0, 0x18000000, 0x303, 0x0, 0x0, 0x0,
+                0x200, 0x0, 0x0, 0x200, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x2, 0x2, 0x2,
+                0x0, 0x0, 0x2, 0x0, 0x18000303, 0x0, 0x0, 0x0, 0x200, 0x0, 0x0,
+                0x200, 0x0, };
     }
 
     private static void jj_la1_init_2() {
-        jj_la1_2 = new int[] { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x201,
-                0x2000, 0x0, 0x0, 0x0, 0x0, 0x1100, 0x0, 0x200, 0x0, 0x0,
-                0x200, 0x200, 0x0, 0x0, 0x4000, 0x0, 0x4000, 0x0, 0x0, 0x2225,
-                0x2225, 0x0, 0x0, 0x0, 0x5700, 0x5700, 0x0, 0x0, 0x0, 0x0, 0x0,
-                0x0, 0x200, 0x0, 0x0, 0x200, 0x0, 0x0, 0x200, 0x0, 0x0, 0x0,
-                0x0, 0x200, 0x0, 0x0, 0x200, 0x0, 0x5500, 0x0, 0x0, 0x0, 0x0,
-                0x0, 0x700, 0x700, 0x0, 0x200, 0x200, 0x0, 0x0, 0x0, 0x0,
-                0x2225, 0x2225, 0x0, 0x0, 0x0, 0x200, 0x0, 0x0, 0x0, 0x0, 0x0,
-                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x200, 0x200, 0x200, 0x200,
-                0x200, 0x200, 0x0, 0x0, 0x0, 0x0, 0x300, 0x0, 0x0, 0x0, 0x0,
-                0x200, 0x0, 0x80, 0x0, 0x0, 0x1, 0x204, 0x2000, 0x2600, 0x0,
-                0x2204, 0x0, 0x2, 0x0, 0x2600, 0x40, 0x0, 0x2204, 0x0, 0x2600,
-                0x0, 0x0, 0x0, 0x2200, 0x0, 0x2204, 0x0, 0x0, 0x0, 0x0, 0x0,
-                0x0, 0x0, 0x200, 0x0, 0x2205, 0x2205, 0x0, 0x0, 0x0, 0x0, 0x0,
-                0x0, 0x2000, 0x2000, 0xfffff700, 0x0, 0x0, 0x0, 0x0,
-                0xfffff700, 0x0, 0x0, 0x0, 0x2200, 0x0, 0x0, 0x0, 0x0, 0x0,
+        jj_la1_2 = new int[] { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x401,
+                0x4000, 0x0, 0x0, 0x0, 0x0, 0x2200, 0x0, 0x400, 0x0, 0x0,
+                0x400, 0x400, 0x0, 0x0, 0x8000, 0x0, 0x8000, 0x0, 0x0, 0x4465,
+                0x4465, 0x0, 0x0, 0x0, 0xae00, 0xae00, 0x0, 0x0, 0x0, 0x0, 0x0,
+                0x0, 0x400, 0x0, 0x0, 0x400, 0x0, 0x0, 0x400, 0x0, 0x0, 0x0,
+                0x0, 0x400, 0x0, 0x0, 0x400, 0x0, 0xaa00, 0x0, 0x0, 0x0, 0x0,
+                0x0, 0xe00, 0xe00, 0x0, 0x400, 0x400, 0x0, 0x0, 0x0, 0x0,
+                0x4465, 0x4465, 0x0, 0x0, 0x0, 0x400, 0x0, 0x0, 0x0, 0x0, 0x0,
+                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x400, 0x400, 0x400, 0x400,
+                0x400, 0x400, 0x0, 0x0, 0x0, 0x0, 0x600, 0x0, 0x0, 0x0, 0x0,
+                0x400, 0x0, 0x100, 0x0, 0x0, 0x1, 0x424, 0x4000, 0x4c00, 0x0,
+                0x4424, 0x0, 0x2, 0x0, 0x4c00, 0x80, 0x0, 0x4424, 0x0, 0x4c00,
+                0x0, 0x0, 0x0, 0x4400, 0x0, 0x4424, 0x0, 0x0, 0x0, 0x0, 0x0,
+                0x0, 0x0, 0x400, 0x0, 0x4425, 0x4425, 0x0, 0x0, 0x0, 0x0, 0x0,
+                0x0, 0x4000, 0x4000, 0xffffee00, 0x0, 0x0, 0x0, 0x0,
+                0xffffee00, 0x0, 0x0, 0x0, 0x4400, 0x0, 0x0, 0x0, 0x400, 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, 0x2000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x200, 0x0, 0x0, 0x200, 0x0,
-                0x0, 0x200, 0x0, 0x0, 0x0, 0x200, 0x0, 0x0, 0x200, 0x0,
-                0xfffff700, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-                0x0, 0x0, 0xfffff700, 0x0, 0xffffc400, 0x0, 0x1300, 0xffffd700,
-                0x0, 0x0, 0xfffff700, 0x0, 0x200, 0x0, 0x0, 0x0, 0x200, 0x0,
-                0x0, 0x200, 0x0, };
+                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4000, 0x0, 0x0, 0x0, 0x0, 0x0,
+                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+                0x0, 0x0, 0x400, 0x0, 0x0, 0x400, 0x0, 0x0, 0x400, 0x0, 0x0,
+                0x0, 0x400, 0x0, 0x0, 0x400, 0x0, 0xffffee00, 0x0, 0x0, 0x0,
+                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xffffee00, 0x0,
+                0xffff8800, 0x0, 0x2600, 0xffffae00, 0x0, 0x0, 0xffffee00, 0x0,
+                0x400, 0x0, 0x0, 0x0, 0x400, 0x0, 0x0, 0x400, 0x0, };
     }
 
     private static void jj_la1_init_3() {
-        jj_la1_3 = new int[] { 0x10, 0x100, 0x100, 0x4, 0x100, 0x0, 0x0, 0x0,
-                0xea, 0x0, 0x100, 0x0, 0x100, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8a, 0x8a, 0x0,
-                0x0, 0x0, 0x188037e, 0x188037e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+        jj_la1_3 = new int[] { 0x20, 0x200, 0x200, 0x8, 0x200, 0x0, 0x0, 0x0,
+                0x1d4, 0x0, 0x200, 0x0, 0x200, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x114, 0x114, 0x0,
+                0x0, 0x0, 0x31006fc, 0x31006fc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+                0x0, 0x0, 0x0, 0x0, 0x31006f8, 0x0, 0x0, 0x0, 0x0, 0x0,
+                0x1000000, 0x1000000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x114,
+                0x114, 0x0, 0x0, 0x0, 0x4, 0x0, 0x4, 0x4, 0x0, 0x0, 0x4, 0x4,
+                0x4, 0x4, 0x4, 0x4, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1000000, 0x0, 0x0, 0x0,
+                0x0, 0x0, 0x114, 0x0, 0x800000, 0x0, 0x114, 0x0, 0x0, 0x0,
+                0x800000, 0x0, 0x0, 0x114, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+                0x114, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1000000, 0x0,
+                0x1d4, 0x1d4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+                0x1100007, 0x0, 0x0, 0x0, 0x0, 0x1100007, 0x0, 0x0, 0x0,
+                0x1000000, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0xe00000,
                 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-                0x0, 0x0, 0x0, 0x0, 0x188037c, 0x0, 0x0, 0x0, 0x0, 0x0,
-                0x800000, 0x800000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8a,
-                0x8a, 0x0, 0x0, 0x0, 0x2, 0x0, 0x2, 0x2, 0x0, 0x0, 0x2, 0x2,
-                0x2, 0x2, 0x2, 0x2, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-                0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x800000, 0x0, 0x0, 0x0,
-                0x0, 0x0, 0x8a, 0x0, 0x400000, 0x0, 0x8a, 0x0, 0x0, 0x0,
-                0x400000, 0x0, 0x0, 0x8a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-                0x8a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x800000, 0x0, 0xea,
-                0xea, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x880003, 0x0,
-                0x0, 0x0, 0x0, 0x880003, 0x0, 0x0, 0x0, 0x800000, 0x0, 0x0,
-                0x0, 0x0, 0x700000, 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, 0x0, 0x0, 0x0, 0x2, 0x0, 0x200, 0x0, 0x0, 0x0, 0x0,
-                0x0, 0x0, 0x880003, 0x0, 0x200, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-                0x0, 0x0, 0x0, 0x0, 0x880003, 0x0, 0x800001, 0x0, 0x80002,
-                0x880003, 0x0, 0x0, 0x880003, 0x0, 0x6e, 0x0, 0x0, 0x0, 0x0,
+                0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x400, 0x0, 0x0, 0x0, 0x0, 0x0,
+                0x0, 0x1100007, 0x0, 0x400, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+                0x0, 0x0, 0x0, 0x1100007, 0x0, 0x1000003, 0x0, 0x100004,
+                0x1100007, 0x0, 0x0, 0x1100007, 0x0, 0xdc, 0x0, 0x0, 0x0, 0x0,
                 0x0, 0x0, 0x0, 0x0, };
     }
 
@@ -8217,7 +8318,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         token = new Token();
         jj_ntk = -1;
         jj_gen = 0;
-        for (int i = 0; i < 254; i++) {
+        for (int i = 0; i < 261; i++) {
             jj_la1[i] = -1;
         }
         for (int i = 0; i < jj_2_rtns.length; i++) {
@@ -8231,7 +8332,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         token = new Token();
         jj_ntk = -1;
         jj_gen = 0;
-        for (int i = 0; i < 254; i++) {
+        for (int i = 0; i < 261; i++) {
             jj_la1[i] = -1;
         }
         for (int i = 0; i < jj_2_rtns.length; i++) {
@@ -8245,7 +8346,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         token = new Token();
         jj_ntk = -1;
         jj_gen = 0;
-        for (int i = 0; i < 254; i++) {
+        for (int i = 0; i < 261; i++) {
             jj_la1[i] = -1;
         }
         for (int i = 0; i < jj_2_rtns.length; i++) {
@@ -8259,7 +8360,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
         token = new Token();
         jj_ntk = -1;
         jj_gen = 0;
-        for (int i = 0; i < 254; i++) {
+        for (int i = 0; i < 261; i++) {
             jj_la1[i] = -1;
         }
         for (int i = 0; i < jj_2_rtns.length; i++) {
@@ -8405,12 +8506,12 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
     /** Generate ParseException. */
     public ParseException generateParseException() {
         jj_expentries.clear();
-        boolean[] la1tokens = new boolean[121];
+        boolean[] la1tokens = new boolean[122];
         if (jj_kind >= 0) {
             la1tokens[jj_kind] = true;
             jj_kind = -1;
         }
-        for (int i = 0; i < 254; i++) {
+        for (int i = 0; i < 261; i++) {
             if (jj_la1[i] == jj_gen) {
                 for (int j = 0; j < 32; j++) {
                     if ((jj_la1_0[i] & (1 << j)) != 0) {
@@ -8428,7 +8529,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants {
                 }
             }
         }
-        for (int i = 0; i < 121; i++) {
+        for (int i = 0; i < 122; i++) {
             if (la1tokens[i]) {
                 jj_expentry = new int[1];
                 jj_expentry[0] = i;
index 636ecad49b86e346ec32d2aa223033797352d48f..0b664bedc6c7963488487a12fdfffd55d7ff34c7 100644 (file)
@@ -604,6 +604,7 @@ TOKEN :
   | <EXTEND_SYM         : "@extend">
   | <MOZ_DOCUMENT_SYM   : "@-moz-document">
   | <SUPPORTS_SYM       : "@supports">
+  | <CONTENT_SYM        : "@content">
 }
 
 < DEFAULT >
@@ -1510,7 +1511,7 @@ void controlDirective() :
 void ifContentStatement() :
 {}
 {
-    includeDirective() | media() | extendDirective() | styleRuleOrDeclarationOrNestedProperties() 
+    contentDirective() | includeDirective() | media() | extendDirective() | styleRuleOrDeclarationOrNestedProperties() 
     | keyframes() | LOOKAHEAD(variable()) variable() | listModifyDirective()
 }
 
@@ -1710,8 +1711,13 @@ void includeDirective() :
     (<S>)*
     (name = property()|name = variableName(){ name = "$"+name;}
          |(name = functionName() 
-           args = argValuelist()) <RPARAN>)(";"(<S>)*)+
+           args = argValuelist()) <RPARAN>)
+    ((";"(<S>)*)+
            {documentHandler.includeDirective(name, args);}
+    | <LBRACE> (<S>)* {documentHandler.startIncludeContentBlock(name);}
+      (styleRuleOrDeclarationOrNestedProperties())*
+      <RBRACE> (<S>)* {documentHandler.endIncludeContentBlock();}
+    )
 }
 
 String interpolation() :
@@ -1974,6 +1980,15 @@ void extendDirective() :
     {documentHandler.extendDirective(list);}
 }
 
+void contentDirective() : 
+{}
+{
+    <CONTENT_SYM>
+    (<S>)*
+    (";"(<S>)*)+
+    {documentHandler.contentDirective();}
+}
+
 JAVACODE
 Node importDirective(){
     return null;
index 8b944b59739cb2483ffca1c353274d931be020d5..b69ee77862e01d90fca1bb8a8df18c2312410d3c 100644 (file)
@@ -149,109 +149,111 @@ public interface ParserConstants {
     /** RegularExpression Id. */
     int SUPPORTS_SYM = 68;
     /** RegularExpression Id. */
-    int MICROSOFT_RULE = 69;
+    int CONTENT_SYM = 69;
     /** RegularExpression Id. */
-    int IF = 70;
+    int MICROSOFT_RULE = 70;
     /** RegularExpression Id. */
-    int GUARDED_SYM = 71;
+    int IF = 71;
     /** RegularExpression Id. */
-    int STRING = 72;
+    int GUARDED_SYM = 72;
     /** RegularExpression Id. */
-    int IDENT = 73;
+    int STRING = 73;
     /** RegularExpression Id. */
-    int NUMBER = 74;
+    int IDENT = 74;
     /** RegularExpression Id. */
-    int _URL = 75;
+    int NUMBER = 75;
     /** RegularExpression Id. */
-    int URL = 76;
+    int _URL = 76;
     /** RegularExpression Id. */
-    int VARIABLE = 77;
+    int URL = 77;
     /** RegularExpression Id. */
-    int PERCENTAGE = 78;
+    int VARIABLE = 78;
     /** RegularExpression Id. */
-    int PT = 79;
+    int PERCENTAGE = 79;
     /** RegularExpression Id. */
-    int MM = 80;
+    int PT = 80;
     /** RegularExpression Id. */
-    int CM = 81;
+    int MM = 81;
     /** RegularExpression Id. */
-    int PC = 82;
+    int CM = 82;
     /** RegularExpression Id. */
-    int IN = 83;
+    int PC = 83;
     /** RegularExpression Id. */
-    int PX = 84;
+    int IN = 84;
     /** RegularExpression Id. */
-    int EMS = 85;
+    int PX = 85;
     /** RegularExpression Id. */
-    int LEM = 86;
+    int EMS = 86;
     /** RegularExpression Id. */
-    int REM = 87;
+    int LEM = 87;
     /** RegularExpression Id. */
-    int EXS = 88;
+    int REM = 88;
     /** RegularExpression Id. */
-    int DEG = 89;
+    int EXS = 89;
     /** RegularExpression Id. */
-    int RAD = 90;
+    int DEG = 90;
     /** RegularExpression Id. */
-    int GRAD = 91;
+    int RAD = 91;
     /** RegularExpression Id. */
-    int MS = 92;
+    int GRAD = 92;
     /** RegularExpression Id. */
-    int SECOND = 93;
+    int MS = 93;
     /** RegularExpression Id. */
-    int HZ = 94;
+    int SECOND = 94;
     /** RegularExpression Id. */
-    int KHZ = 95;
+    int HZ = 95;
     /** RegularExpression Id. */
-    int DIMEN = 96;
+    int KHZ = 96;
     /** RegularExpression Id. */
-    int HASH = 97;
+    int DIMEN = 97;
     /** RegularExpression Id. */
-    int IMPORT_SYM = 98;
+    int HASH = 98;
     /** RegularExpression Id. */
-    int MEDIA_SYM = 99;
+    int IMPORT_SYM = 99;
     /** RegularExpression Id. */
-    int CHARSET_SYM = 100;
+    int MEDIA_SYM = 100;
     /** RegularExpression Id. */
-    int PAGE_SYM = 101;
+    int CHARSET_SYM = 101;
     /** RegularExpression Id. */
-    int FONT_FACE_SYM = 102;
+    int PAGE_SYM = 102;
     /** RegularExpression Id. */
-    int KEY_FRAME_SYM = 103;
+    int FONT_FACE_SYM = 103;
     /** RegularExpression Id. */
-    int ATKEYWORD = 104;
+    int KEY_FRAME_SYM = 104;
     /** RegularExpression Id. */
-    int IMPORTANT_SYM = 105;
+    int ATKEYWORD = 105;
     /** RegularExpression Id. */
-    int RANGE0 = 106;
+    int IMPORTANT_SYM = 106;
     /** RegularExpression Id. */
-    int RANGE1 = 107;
+    int RANGE0 = 107;
     /** RegularExpression Id. */
-    int RANGE2 = 108;
+    int RANGE1 = 108;
     /** RegularExpression Id. */
-    int RANGE3 = 109;
+    int RANGE2 = 109;
     /** RegularExpression Id. */
-    int RANGE4 = 110;
+    int RANGE3 = 110;
     /** RegularExpression Id. */
-    int RANGE5 = 111;
+    int RANGE4 = 111;
     /** RegularExpression Id. */
-    int RANGE6 = 112;
+    int RANGE5 = 112;
     /** RegularExpression Id. */
-    int RANGE = 113;
+    int RANGE6 = 113;
     /** RegularExpression Id. */
-    int UNI = 114;
+    int RANGE = 114;
     /** RegularExpression Id. */
-    int UNICODERANGE = 115;
+    int UNI = 115;
     /** RegularExpression Id. */
-    int REMOVE = 116;
+    int UNICODERANGE = 116;
     /** RegularExpression Id. */
-    int APPEND = 117;
+    int REMOVE = 117;
     /** RegularExpression Id. */
-    int CONTAINS = 118;
+    int APPEND = 118;
     /** RegularExpression Id. */
-    int FUNCTION = 119;
+    int CONTAINS = 119;
     /** RegularExpression Id. */
-    int UNKNOWN = 120;
+    int FUNCTION = 120;
+    /** RegularExpression Id. */
+    int UNKNOWN = 121;
 
     /** Lexical state. */
     int DEFAULT = 0;
@@ -276,8 +278,8 @@ public interface ParserConstants {
             "\"@function\"", "\"@return\"", "\"@debug\"", "\"@warn\"",
             "\"@for\"", "\"@each\"", "\"@while\"", "\"@if\"", "\"@else\"",
             "\"@extend\"", "\"@-moz-document\"", "\"@supports\"",
-            "<MICROSOFT_RULE>", "\"if\"", "<GUARDED_SYM>", "<STRING>",
-            "<IDENT>", "<NUMBER>", "<_URL>", "<URL>", "<VARIABLE>",
+            "\"@content\"", "<MICROSOFT_RULE>", "\"if\"", "<GUARDED_SYM>",
+            "<STRING>", "<IDENT>", "<NUMBER>", "<_URL>", "<URL>", "<VARIABLE>",
             "<PERCENTAGE>", "<PT>", "<MM>", "<CM>", "<PC>", "<IN>", "<PX>",
             "<EMS>", "<LEM>", "<REM>", "<EXS>", "<DEG>", "<RAD>", "<GRAD>",
             "<MS>", "<SECOND>", "<HZ>", "<KHZ>", "<DIMEN>", "<HASH>",
index 030edb4cf0240abc3b5016b2745fca0f80158d36..be145628a0d9ae1873d1cd0626b20e18e8a963ae 100644 (file)
@@ -32,7 +32,7 @@ public class ParserTokenManager implements ParserConstants {
         switch (pos) {
         case 0:
             if ((active0 & 0x40000000000000L) != 0L) {
-                jjmatchedKind = 73;
+                jjmatchedKind = 74;
                 return 33;
             }
             if ((active0 & 0x8000000000L) != 0L) {
@@ -44,141 +44,141 @@ public class ParserTokenManager implements ParserConstants {
             if ((active0 & 0x200800L) != 0L) {
                 return 42;
             }
-            if ((active0 & 0x38000000000000L) != 0L || (active1 & 0x40L) != 0L) {
-                jjmatchedKind = 73;
-                return 518;
-            }
             if ((active0 & 0x8000044L) != 0L) {
                 return 3;
             }
             if ((active0 & 0xff80000000000000L) != 0L
-                    || (active1 & 0x7c0000001fL) != 0L) {
+                    || (active1 & 0xf80000003fL) != 0L) {
                 return 166;
             }
+            if ((active0 & 0x38000000000000L) != 0L || (active1 & 0x80L) != 0L) {
+                jjmatchedKind = 74;
+                return 518;
+            }
             if ((active0 & 0x200000000L) != 0L) {
                 return 519;
             }
             return -1;
         case 1:
             if ((active0 & 0x50000000000000L) != 0L) {
-                jjmatchedKind = 73;
+                jjmatchedKind = 74;
                 jjmatchedPos = 1;
                 return 518;
             }
             if ((active1 & 0x8L) != 0L) {
                 return 178;
             }
+            if ((active0 & 0xff80000000000000L) != 0L
+                    || (active1 & 0xf800000037L) != 0L) {
+                jjmatchedKind = 105;
+                jjmatchedPos = 1;
+                return 520;
+            }
             if ((active0 & 0x40L) != 0L) {
                 return 1;
             }
-            if ((active0 & 0x28000000000000L) != 0L || (active1 & 0x40L) != 0L) {
+            if ((active0 & 0x28000000000000L) != 0L || (active1 & 0x80L) != 0L) {
                 return 518;
             }
-            if ((active0 & 0xff80000000000000L) != 0L
-                    || (active1 & 0x7c00000017L) != 0L) {
-                jjmatchedKind = 104;
-                jjmatchedPos = 1;
-                return 520;
-            }
             return -1;
         case 2:
             if ((active1 & 0x8L) != 0L) {
-                jjmatchedKind = 104;
+                jjmatchedKind = 105;
                 jjmatchedPos = 2;
                 return 177;
             }
             if ((active1 & 0x1L) != 0L) {
                 return 520;
             }
-            if ((active0 & 0x50000000000000L) != 0L) {
-                jjmatchedKind = 73;
-                jjmatchedPos = 2;
-                return 518;
-            }
             if ((active0 & 0xff80000000000000L) != 0L
-                    || (active1 & 0x7c00000016L) != 0L) {
-                jjmatchedKind = 104;
+                    || (active1 & 0xf800000036L) != 0L) {
+                jjmatchedKind = 105;
                 jjmatchedPos = 2;
                 return 520;
             }
+            if ((active0 & 0x50000000000000L) != 0L) {
+                jjmatchedKind = 74;
+                jjmatchedPos = 2;
+                return 518;
+            }
             return -1;
         case 3:
+            if ((active0 & 0x10000000000000L) != 0L) {
+                jjmatchedKind = 74;
+                jjmatchedPos = 3;
+                return 518;
+            }
             if ((active1 & 0x8L) != 0L) {
-                jjmatchedKind = 104;
+                jjmatchedKind = 105;
                 jjmatchedPos = 3;
                 return 176;
             }
-            if ((active0 & 0x2000000000000000L) != 0L) {
-                return 520;
-            }
             if ((active0 & 0xdf80000000000000L) != 0L
-                    || (active1 & 0x7c00000016L) != 0L) {
-                jjmatchedKind = 104;
+                    || (active1 & 0xf800000036L) != 0L) {
+                jjmatchedKind = 105;
                 jjmatchedPos = 3;
                 return 520;
             }
-            if ((active0 & 0x40000000000000L) != 0L) {
-                return 518;
+            if ((active0 & 0x2000000000000000L) != 0L) {
+                return 520;
             }
-            if ((active0 & 0x10000000000000L) != 0L) {
-                jjmatchedKind = 73;
-                jjmatchedPos = 3;
+            if ((active0 & 0x40000000000000L) != 0L) {
                 return 518;
             }
             return -1;
         case 4:
-            if ((active0 & 0x5000000000000000L) != 0L
-                    || (active1 & 0x2000000002L) != 0L) {
-                return 520;
-            }
             if ((active0 & 0x8f80000000000000L) != 0L
-                    || (active1 & 0x5c00000014L) != 0L) {
-                jjmatchedKind = 104;
+                    || (active1 & 0xb800000034L) != 0L) {
+                jjmatchedKind = 105;
                 jjmatchedPos = 4;
                 return 520;
             }
+            if ((active0 & 0x5000000000000000L) != 0L
+                    || (active1 & 0x4000000002L) != 0L) {
+                return 520;
+            }
             if ((active0 & 0x10000000000000L) != 0L) {
-                jjmatchedKind = 73;
+                jjmatchedKind = 74;
                 jjmatchedPos = 4;
                 return 518;
             }
             if ((active1 & 0x8L) != 0L) {
-                jjmatchedKind = 104;
+                jjmatchedKind = 105;
                 jjmatchedPos = 4;
                 return 175;
             }
             return -1;
         case 5:
-            if ((active0 & 0x10000000000000L) != 0L) {
-                jjmatchedKind = 73;
-                jjmatchedPos = 5;
-                return 518;
-            }
             if ((active0 & 0x700000000000000L) != 0L
-                    || (active1 & 0x5400000014L) != 0L) {
-                jjmatchedKind = 104;
+                    || (active1 & 0xa800000034L) != 0L) {
+                jjmatchedKind = 105;
                 jjmatchedPos = 5;
                 return 520;
             }
+            if ((active0 & 0x10000000000000L) != 0L) {
+                jjmatchedKind = 74;
+                jjmatchedPos = 5;
+                return 518;
+            }
             if ((active1 & 0x8L) != 0L) {
-                jjmatchedKind = 104;
+                jjmatchedKind = 105;
                 jjmatchedPos = 5;
                 return 174;
             }
             if ((active0 & 0x8880000000000000L) != 0L
-                    || (active1 & 0x800000000L) != 0L) {
+                    || (active1 & 0x1000000000L) != 0L) {
                 return 520;
             }
             return -1;
         case 6:
-            if ((active0 & 0x300000000000000L) != 0L
-                    || (active1 & 0x5000000018L) != 0L) {
-                jjmatchedKind = 104;
-                jjmatchedPos = 6;
+            if ((active0 & 0x400000000000000L) != 0L
+                    || (active1 & 0x800000004L) != 0L) {
                 return 520;
             }
-            if ((active0 & 0x400000000000000L) != 0L
-                    || (active1 & 0x400000004L) != 0L) {
+            if ((active0 & 0x300000000000000L) != 0L
+                    || (active1 & 0xa000000038L) != 0L) {
+                jjmatchedKind = 105;
+                jjmatchedPos = 6;
                 return 520;
             }
             if ((active0 & 0x10000000000000L) != 0L) {
@@ -186,14 +186,14 @@ public class ParserTokenManager implements ParserConstants {
             }
             return -1;
         case 7:
-            if ((active0 & 0x200000000000000L) != 0L
-                    || (active1 & 0x4000000018L) != 0L) {
-                jjmatchedKind = 104;
-                jjmatchedPos = 7;
+            if ((active0 & 0x100000000000000L) != 0L
+                    || (active1 & 0x2000000020L) != 0L) {
                 return 520;
             }
-            if ((active0 & 0x100000000000000L) != 0L
-                    || (active1 & 0x1000000000L) != 0L) {
+            if ((active0 & 0x200000000000000L) != 0L
+                    || (active1 & 0x8000000018L) != 0L) {
+                jjmatchedKind = 105;
+                jjmatchedPos = 7;
                 return 520;
             }
             return -1;
@@ -201,39 +201,39 @@ public class ParserTokenManager implements ParserConstants {
             if ((active0 & 0x200000000000000L) != 0L || (active1 & 0x10L) != 0L) {
                 return 520;
             }
-            if ((active1 & 0x4000000008L) != 0L) {
-                jjmatchedKind = 104;
+            if ((active1 & 0x8000000008L) != 0L) {
+                jjmatchedKind = 105;
                 jjmatchedPos = 8;
                 return 520;
             }
             return -1;
         case 9:
-            if ((active1 & 0x4000000000L) != 0L) {
-                return 520;
-            }
             if ((active1 & 0x8L) != 0L) {
-                jjmatchedKind = 104;
+                jjmatchedKind = 105;
                 jjmatchedPos = 9;
                 return 520;
             }
+            if ((active1 & 0x8000000000L) != 0L) {
+                return 520;
+            }
             return -1;
         case 10:
             if ((active1 & 0x8L) != 0L) {
-                jjmatchedKind = 104;
+                jjmatchedKind = 105;
                 jjmatchedPos = 10;
                 return 520;
             }
             return -1;
         case 11:
             if ((active1 & 0x8L) != 0L) {
-                jjmatchedKind = 104;
+                jjmatchedKind = 105;
                 jjmatchedPos = 11;
                 return 520;
             }
             return -1;
         case 12:
             if ((active1 & 0x8L) != 0L) {
-                jjmatchedKind = 104;
+                jjmatchedKind = 105;
                 jjmatchedPos = 12;
                 return 520;
             }
@@ -297,7 +297,7 @@ public class ParserTokenManager implements ParserConstants {
         case 62:
             return jjStopAtPos(0, 24);
         case 64:
-            return jjMoveStringLiteralDfa1_0(0xff80000000000000L, 0x7c0000001fL);
+            return jjMoveStringLiteralDfa1_0(0xff80000000000000L, 0xf80000003fL);
         case 91:
             return jjStopAtPos(0, 28);
         case 93:
@@ -309,7 +309,7 @@ public class ParserTokenManager implements ParserConstants {
             return jjMoveStringLiteralDfa1_0(0x40000000000000L, 0x0L);
         case 73:
         case 105:
-            return jjMoveStringLiteralDfa1_0(0x20000000000000L, 0x40L);
+            return jjMoveStringLiteralDfa1_0(0x20000000000000L, 0x80L);
         case 84:
         case 116:
             return jjMoveStringLiteralDfa1_0(0x18000000000000L, 0x0L);
@@ -374,7 +374,7 @@ public class ParserTokenManager implements ParserConstants {
         case 67:
         case 99:
             return jjMoveStringLiteralDfa2_0(active0, 0L, active1,
-                    0x1000000000L);
+                    0x2000000020L);
         case 68:
         case 100:
             return jjMoveStringLiteralDfa2_0(active0, 0x800000000000000L,
@@ -385,11 +385,11 @@ public class ParserTokenManager implements ParserConstants {
                     active1, 0x6L);
         case 70:
         case 102:
-            if ((active1 & 0x40L) != 0L) {
-                return jjStartNfaWithStates_0(1, 70, 518);
+            if ((active1 & 0x80L) != 0L) {
+                return jjStartNfaWithStates_0(1, 71, 518);
             }
             return jjMoveStringLiteralDfa2_0(active0, 0x2200000000000000L,
-                    active1, 0x4000000000L);
+                    active1, 0x8000000000L);
         case 72:
         case 104:
             return jjMoveStringLiteralDfa2_0(active0, 0x10000000000000L,
@@ -397,11 +397,11 @@ public class ParserTokenManager implements ParserConstants {
         case 73:
         case 105:
             return jjMoveStringLiteralDfa2_0(active0, 0x100000000000000L,
-                    active1, 0x400000001L);
+                    active1, 0x800000001L);
         case 77:
         case 109:
             return jjMoveStringLiteralDfa2_0(active0, 0x80000000000000L,
-                    active1, 0x800000000L);
+                    active1, 0x1000000000L);
         case 78:
         case 110:
             if ((active0 & 0x20000000000000L) != 0L) {
@@ -417,7 +417,7 @@ public class ParserTokenManager implements ParserConstants {
         case 80:
         case 112:
             return jjMoveStringLiteralDfa2_0(active0, 0L, active1,
-                    0x2000000000L);
+                    0x4000000000L);
         case 82:
         case 114:
             return jjMoveStringLiteralDfa2_0(active0, 0x440000000000000L,
@@ -462,11 +462,11 @@ public class ParserTokenManager implements ParserConstants {
         case 65:
         case 97:
             return jjMoveStringLiteralDfa3_0(active0, 0x5000000000000000L,
-                    active1, 0x2000000000L);
+                    active1, 0x4000000000L);
         case 69:
         case 101:
             return jjMoveStringLiteralDfa3_0(active0, 0xc00000000000000L,
-                    active1, 0x800000000L);
+                    active1, 0x1000000000L);
         case 70:
         case 102:
             if ((active1 & 0x1L) != 0L) {
@@ -476,7 +476,7 @@ public class ParserTokenManager implements ParserConstants {
         case 72:
         case 104:
             return jjMoveStringLiteralDfa3_0(active0, 0x8000000000000000L,
-                    active1, 0x1000000000L);
+                    active1, 0x2000000000L);
         case 73:
         case 105:
             return jjMoveStringLiteralDfa3_0(active0, 0x80000000000000L,
@@ -486,7 +486,7 @@ public class ParserTokenManager implements ParserConstants {
             return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x2L);
         case 77:
         case 109:
-            return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x400000008L);
+            return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x800000008L);
         case 78:
         case 110:
             return jjMoveStringLiteralDfa3_0(active0, 0x100000000000000L,
@@ -494,7 +494,7 @@ public class ParserTokenManager implements ParserConstants {
         case 79:
         case 111:
             return jjMoveStringLiteralDfa3_0(active0, 0x2040000000000000L,
-                    active1, 0x4000000000L);
+                    active1, 0x8000000020L);
         case 82:
         case 114:
             return jjMoveStringLiteralDfa3_0(active0, 0x10000000000000L,
@@ -532,7 +532,7 @@ public class ParserTokenManager implements ParserConstants {
         case 65:
         case 97:
             return jjMoveStringLiteralDfa4_0(active0, 0L, active1,
-                    0x1000000000L);
+                    0x2000000000L);
         case 66:
         case 98:
             return jjMoveStringLiteralDfa4_0(active0, 0x800000000000000L,
@@ -543,11 +543,12 @@ public class ParserTokenManager implements ParserConstants {
                     active1, 0L);
         case 68:
         case 100:
-            return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x800000000L);
+            return jjMoveStringLiteralDfa4_0(active0, 0L, active1,
+                    0x1000000000L);
         case 71:
         case 103:
             return jjMoveStringLiteralDfa4_0(active0, 0L, active1,
-                    0x2000000000L);
+                    0x4000000000L);
         case 73:
         case 105:
             return jjMoveStringLiteralDfa4_0(active0, 0x8000000000000000L,
@@ -561,14 +562,14 @@ public class ParserTokenManager implements ParserConstants {
         case 78:
         case 110:
             return jjMoveStringLiteralDfa4_0(active0, 0x200000000000000L,
-                    active1, 0x4000000000L);
+                    active1, 0x8000000020L);
         case 79:
         case 111:
             return jjMoveStringLiteralDfa4_0(active0, 0x10000000000000L,
                     active1, 0x8L);
         case 80:
         case 112:
-            return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x400000010L);
+            return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x800000010L);
         case 82:
         case 114:
             if ((active0 & 0x2000000000000000L) != 0L) {
@@ -613,8 +614,8 @@ public class ParserTokenManager implements ParserConstants {
         case 101:
             if ((active1 & 0x2L) != 0L) {
                 return jjStartNfaWithStates_0(4, 65, 520);
-            } else if ((active1 & 0x2000000000L) != 0L) {
-                return jjStartNfaWithStates_0(4, 101, 520);
+            } else if ((active1 & 0x4000000000L) != 0L) {
+                return jjStartNfaWithStates_0(4, 102, 520);
             }
             return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x4L);
         case 72:
@@ -626,7 +627,7 @@ public class ParserTokenManager implements ParserConstants {
         case 73:
         case 105:
             return jjMoveStringLiteralDfa5_0(active0, 0x80000000000000L,
-                    active1, 0x800000000L);
+                    active1, 0x1000000000L);
         case 76:
         case 108:
             return jjMoveStringLiteralDfa5_0(active0, 0x8100000000000000L,
@@ -639,18 +640,18 @@ public class ParserTokenManager implements ParserConstants {
             break;
         case 79:
         case 111:
-            return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x400000000L);
+            return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x800000000L);
         case 80:
         case 112:
             return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x10L);
         case 82:
         case 114:
             return jjMoveStringLiteralDfa5_0(active0, 0L, active1,
-                    0x1000000000L);
+                    0x2000000000L);
         case 84:
         case 116:
             return jjMoveStringLiteralDfa5_0(active0, 0L, active1,
-                    0x4000000000L);
+                    0x8000000020L);
         case 85:
         case 117:
             return jjMoveStringLiteralDfa5_0(active0, 0xc10000000000000L,
@@ -678,11 +679,11 @@ public class ParserTokenManager implements ParserConstants {
         switch (curChar) {
         case 45:
             return jjMoveStringLiteralDfa6_0(active0, 0L, active1,
-                    0x4000000008L);
+                    0x8000000008L);
         case 65:
         case 97:
-            if ((active1 & 0x800000000L) != 0L) {
-                return jjStartNfaWithStates_0(5, 99, 520);
+            if ((active1 & 0x1000000000L) != 0L) {
+                return jjStartNfaWithStates_0(5, 100, 520);
             }
             break;
         case 69:
@@ -690,7 +691,7 @@ public class ParserTokenManager implements ParserConstants {
             if ((active0 & 0x8000000000000000L) != 0L) {
                 return jjStartNfaWithStates_0(5, 63, 520);
             }
-            break;
+            return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x20L);
         case 71:
         case 103:
             if ((active0 & 0x800000000000000L) != 0L) {
@@ -710,11 +711,11 @@ public class ParserTokenManager implements ParserConstants {
         case 82:
         case 114:
             return jjMoveStringLiteralDfa6_0(active0, 0x400000000000000L,
-                    active1, 0x400000000L);
+                    active1, 0x800000000L);
         case 83:
         case 115:
             return jjMoveStringLiteralDfa6_0(active0, 0L, active1,
-                    0x1000000000L);
+                    0x2000000000L);
         case 84:
         case 116:
             return jjMoveStringLiteralDfa6_0(active0, 0x200000000000000L,
@@ -751,11 +752,11 @@ public class ParserTokenManager implements ParserConstants {
         case 69:
         case 101:
             return jjMoveStringLiteralDfa7_0(active0, 0L, active1,
-                    0x1000000000L);
+                    0x2000000000L);
         case 70:
         case 102:
             return jjMoveStringLiteralDfa7_0(active0, 0L, active1,
-                    0x4000000000L);
+                    0x8000000000L);
         case 72:
         case 104:
             if ((active0 & 0x10000000000000L) != 0L) {
@@ -771,14 +772,14 @@ public class ParserTokenManager implements ParserConstants {
             if ((active0 & 0x400000000000000L) != 0L) {
                 return jjStartNfaWithStates_0(6, 58, 520);
             }
-            break;
+            return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x20L);
         case 82:
         case 114:
             return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x10L);
         case 84:
         case 116:
-            if ((active1 & 0x400000000L) != 0L) {
-                return jjStartNfaWithStates_0(6, 98, 520);
+            if ((active1 & 0x800000000L) != 0L) {
+                return jjStartNfaWithStates_0(6, 99, 520);
             }
             break;
         default:
@@ -802,7 +803,7 @@ public class ParserTokenManager implements ParserConstants {
         case 65:
         case 97:
             return jjMoveStringLiteralDfa8_0(active0, 0L, active1,
-                    0x4000000000L);
+                    0x8000000000L);
         case 69:
         case 101:
             if ((active0 & 0x100000000000000L) != 0L) {
@@ -815,8 +816,10 @@ public class ParserTokenManager implements ParserConstants {
                     active1, 0x8L);
         case 84:
         case 116:
-            if ((active1 & 0x1000000000L) != 0L) {
-                return jjStartNfaWithStates_0(7, 100, 520);
+            if ((active1 & 0x20L) != 0L) {
+                return jjStartNfaWithStates_0(7, 69, 520);
+            } else if ((active1 & 0x2000000000L) != 0L) {
+                return jjStartNfaWithStates_0(7, 101, 520);
             }
             return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x10L);
         default:
@@ -840,7 +843,7 @@ public class ParserTokenManager implements ParserConstants {
         case 67:
         case 99:
             return jjMoveStringLiteralDfa9_0(active0, 0L, active1,
-                    0x4000000008L);
+                    0x8000000008L);
         case 78:
         case 110:
             if ((active0 & 0x200000000000000L) != 0L) {
@@ -873,8 +876,8 @@ public class ParserTokenManager implements ParserConstants {
         switch (curChar) {
         case 69:
         case 101:
-            if ((active1 & 0x4000000000L) != 0L) {
-                return jjStartNfaWithStates_0(9, 102, 520);
+            if ((active1 & 0x8000000000L) != 0L) {
+                return jjStartNfaWithStates_0(9, 103, 520);
             }
             break;
         case 85:
@@ -1002,8 +1005,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff200000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 104) {
-                            kind = 104;
+                        if (kind > 105) {
+                            kind = 105;
                         }
                         jjCheckNAddTwoStates(113, 114);
                         break;
@@ -1028,15 +1031,15 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff200000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 104) {
-                            kind = 104;
+                        if (kind > 105) {
+                            kind = 105;
                         }
                         jjCheckNAddTwoStates(113, 114);
                         break;
                     case 4:
                         if ((0x3ff000000000000L & l) != 0L) {
-                            if (kind > 74) {
-                                kind = 74;
+                            if (kind > 75) {
+                                kind = 75;
                             }
                             jjCheckNAddStates(0, 81);
                         } else if ((0x100003600L & l) != 0L) {
@@ -1081,21 +1084,21 @@ public class ParserTokenManager implements ParserConstants {
                         } else if ((0x100003600L & l) != 0L) {
                             jjCheckNAddTwoStates(231, 232);
                         } else if (curChar == 40) {
-                            if (kind > 119) {
-                                kind = 119;
+                            if (kind > 120) {
+                                kind = 120;
                             }
                         }
                         if ((0x3ff200000000000L & l) != 0L) {
-                            if (kind > 73) {
-                                kind = 73;
+                            if (kind > 74) {
+                                kind = 74;
                             }
                             jjCheckNAddTwoStates(220, 221);
                         }
                         break;
                     case 175:
                         if ((0x3ff200000000000L & l) != 0L) {
-                            if (kind > 104) {
-                                kind = 104;
+                            if (kind > 105) {
+                                kind = 105;
                             }
                             jjCheckNAddTwoStates(113, 114);
                         }
@@ -1109,13 +1112,13 @@ public class ParserTokenManager implements ParserConstants {
                         } else if ((0x100003600L & l) != 0L) {
                             jjCheckNAddTwoStates(231, 232);
                         } else if (curChar == 40) {
-                            if (kind > 119) {
-                                kind = 119;
+                            if (kind > 120) {
+                                kind = 120;
                             }
                         }
                         if ((0x3ff200000000000L & l) != 0L) {
-                            if (kind > 73) {
-                                kind = 73;
+                            if (kind > 74) {
+                                kind = 74;
                             }
                             jjCheckNAddTwoStates(220, 221);
                         }
@@ -1124,8 +1127,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff200000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 104) {
-                            kind = 104;
+                        if (kind > 105) {
+                            kind = 105;
                         }
                         jjCheckNAddTwoStates(113, 114);
                         break;
@@ -1188,8 +1191,8 @@ public class ParserTokenManager implements ParserConstants {
                             jjCheckNAddTwoStates(267, 268);
                         }
                         if ((0x3ff000000000000L & l) != 0L) {
-                            if (kind > 74) {
-                                kind = 74;
+                            if (kind > 75) {
+                                kind = 75;
                             }
                             jjCheckNAdd(266);
                         }
@@ -1198,8 +1201,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff200000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 104) {
-                            kind = 104;
+                        if (kind > 105) {
+                            kind = 105;
                         }
                         jjCheckNAddTwoStates(113, 114);
                         break;
@@ -1343,8 +1346,8 @@ public class ParserTokenManager implements ParserConstants {
                         }
                         break;
                     case 46:
-                        if (curChar == 34 && kind > 72) {
-                            kind = 72;
+                        if (curChar == 34 && kind > 73) {
+                            kind = 73;
                         }
                         break;
                     case 48:
@@ -1418,8 +1421,8 @@ public class ParserTokenManager implements ParserConstants {
                         }
                         break;
                     case 63:
-                        if (curChar == 39 && kind > 72) {
-                            kind = 72;
+                        if (curChar == 39 && kind > 73) {
+                            kind = 73;
                         }
                         break;
                     case 65:
@@ -1491,8 +1494,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff200000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 77) {
-                            kind = 77;
+                        if (kind > 78) {
+                            kind = 78;
                         }
                         jjCheckNAddTwoStates(81, 82);
                         break;
@@ -1500,8 +1503,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0xffffffff00000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 77) {
-                            kind = 77;
+                        if (kind > 78) {
+                            kind = 78;
                         }
                         jjCheckNAddTwoStates(81, 82);
                         break;
@@ -1509,8 +1512,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 77) {
-                            kind = 77;
+                        if (kind > 78) {
+                            kind = 78;
                         }
                         jjCheckNAddStates(288, 291);
                         break;
@@ -1518,8 +1521,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x100003600L & l) == 0L) {
                             break;
                         }
-                        if (kind > 77) {
-                            kind = 77;
+                        if (kind > 78) {
+                            kind = 78;
                         }
                         jjCheckNAddTwoStates(81, 82);
                         break;
@@ -1527,8 +1530,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 77) {
-                            kind = 77;
+                        if (kind > 78) {
+                            kind = 78;
                         }
                         jjCheckNAddStates(292, 298);
                         break;
@@ -1536,8 +1539,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 77) {
-                            kind = 77;
+                        if (kind > 78) {
+                            kind = 78;
                         }
                         jjCheckNAddStates(299, 301);
                         break;
@@ -1545,8 +1548,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 77) {
-                            kind = 77;
+                        if (kind > 78) {
+                            kind = 78;
                         }
                         jjCheckNAddStates(302, 305);
                         break;
@@ -1554,8 +1557,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 77) {
-                            kind = 77;
+                        if (kind > 78) {
+                            kind = 78;
                         }
                         jjCheckNAddStates(306, 310);
                         break;
@@ -1563,8 +1566,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 77) {
-                            kind = 77;
+                        if (kind > 78) {
+                            kind = 78;
                         }
                         jjCheckNAddStates(311, 316);
                         break;
@@ -1572,8 +1575,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 77) {
-                            kind = 77;
+                        if (kind > 78) {
+                            kind = 78;
                         }
                         jjCheckNAddStates(317, 320);
                         break;
@@ -1581,8 +1584,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 77) {
-                            kind = 77;
+                        if (kind > 78) {
+                            kind = 78;
                         }
                         jjCheckNAddStates(321, 327);
                         break;
@@ -1590,8 +1593,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 77) {
-                            kind = 77;
+                        if (kind > 78) {
+                            kind = 78;
                         }
                         jjCheckNAddStates(328, 330);
                         break;
@@ -1599,8 +1602,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 77) {
-                            kind = 77;
+                        if (kind > 78) {
+                            kind = 78;
                         }
                         jjCheckNAddStates(331, 334);
                         break;
@@ -1608,8 +1611,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 77) {
-                            kind = 77;
+                        if (kind > 78) {
+                            kind = 78;
                         }
                         jjCheckNAddStates(335, 339);
                         break;
@@ -1617,8 +1620,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 77) {
-                            kind = 77;
+                        if (kind > 78) {
+                            kind = 78;
                         }
                         jjCheckNAddStates(340, 345);
                         break;
@@ -1631,8 +1634,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff200000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 97) {
-                            kind = 97;
+                        if (kind > 98) {
+                            kind = 98;
                         }
                         jjCheckNAddTwoStates(100, 101);
                         break;
@@ -1640,8 +1643,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0xffffffff00000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 97) {
-                            kind = 97;
+                        if (kind > 98) {
+                            kind = 98;
                         }
                         jjCheckNAddTwoStates(100, 101);
                         break;
@@ -1649,8 +1652,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 97) {
-                            kind = 97;
+                        if (kind > 98) {
+                            kind = 98;
                         }
                         jjCheckNAddStates(346, 349);
                         break;
@@ -1658,8 +1661,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x100003600L & l) == 0L) {
                             break;
                         }
-                        if (kind > 97) {
-                            kind = 97;
+                        if (kind > 98) {
+                            kind = 98;
                         }
                         jjCheckNAddTwoStates(100, 101);
                         break;
@@ -1667,8 +1670,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 97) {
-                            kind = 97;
+                        if (kind > 98) {
+                            kind = 98;
                         }
                         jjCheckNAddStates(350, 356);
                         break;
@@ -1676,8 +1679,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 97) {
-                            kind = 97;
+                        if (kind > 98) {
+                            kind = 98;
                         }
                         jjCheckNAddStates(357, 359);
                         break;
@@ -1685,8 +1688,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 97) {
-                            kind = 97;
+                        if (kind > 98) {
+                            kind = 98;
                         }
                         jjCheckNAddStates(360, 363);
                         break;
@@ -1694,8 +1697,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 97) {
-                            kind = 97;
+                        if (kind > 98) {
+                            kind = 98;
                         }
                         jjCheckNAddStates(364, 368);
                         break;
@@ -1703,8 +1706,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 97) {
-                            kind = 97;
+                        if (kind > 98) {
+                            kind = 98;
                         }
                         jjCheckNAddStates(369, 374);
                         break;
@@ -1717,8 +1720,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0xffffffff00000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 104) {
-                            kind = 104;
+                        if (kind > 105) {
+                            kind = 105;
                         }
                         jjCheckNAddTwoStates(113, 114);
                         break;
@@ -1726,8 +1729,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 104) {
-                            kind = 104;
+                        if (kind > 105) {
+                            kind = 105;
                         }
                         jjCheckNAddStates(375, 378);
                         break;
@@ -1735,8 +1738,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x100003600L & l) == 0L) {
                             break;
                         }
-                        if (kind > 104) {
-                            kind = 104;
+                        if (kind > 105) {
+                            kind = 105;
                         }
                         jjCheckNAddTwoStates(113, 114);
                         break;
@@ -1744,8 +1747,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 104) {
-                            kind = 104;
+                        if (kind > 105) {
+                            kind = 105;
                         }
                         jjCheckNAddStates(379, 385);
                         break;
@@ -1753,8 +1756,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 104) {
-                            kind = 104;
+                        if (kind > 105) {
+                            kind = 105;
                         }
                         jjCheckNAddStates(386, 388);
                         break;
@@ -1762,8 +1765,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 104) {
-                            kind = 104;
+                        if (kind > 105) {
+                            kind = 105;
                         }
                         jjCheckNAddStates(389, 392);
                         break;
@@ -1771,8 +1774,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 104) {
-                            kind = 104;
+                        if (kind > 105) {
+                            kind = 105;
                         }
                         jjCheckNAddStates(393, 397);
                         break;
@@ -1780,8 +1783,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 104) {
-                            kind = 104;
+                        if (kind > 105) {
+                            kind = 105;
                         }
                         jjCheckNAddStates(398, 403);
                         break;
@@ -1789,8 +1792,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 104) {
-                            kind = 104;
+                        if (kind > 105) {
+                            kind = 105;
                         }
                         jjCheckNAddStates(404, 407);
                         break;
@@ -1798,8 +1801,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 104) {
-                            kind = 104;
+                        if (kind > 105) {
+                            kind = 105;
                         }
                         jjCheckNAddStates(408, 414);
                         break;
@@ -1807,8 +1810,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 104) {
-                            kind = 104;
+                        if (kind > 105) {
+                            kind = 105;
                         }
                         jjCheckNAddStates(415, 417);
                         break;
@@ -1816,8 +1819,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 104) {
-                            kind = 104;
+                        if (kind > 105) {
+                            kind = 105;
                         }
                         jjCheckNAddStates(418, 421);
                         break;
@@ -1825,8 +1828,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 104) {
-                            kind = 104;
+                        if (kind > 105) {
+                            kind = 105;
                         }
                         jjCheckNAddStates(422, 426);
                         break;
@@ -1834,8 +1837,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 104) {
-                            kind = 104;
+                        if (kind > 105) {
+                            kind = 105;
                         }
                         jjCheckNAddStates(427, 432);
                         break;
@@ -1845,8 +1848,8 @@ public class ParserTokenManager implements ParserConstants {
                         }
                         break;
                     case 133:
-                        if (curChar == 40 && kind > 116) {
-                            kind = 116;
+                        if (curChar == 40 && kind > 117) {
+                            kind = 117;
                         }
                         break;
                     case 140:
@@ -1855,8 +1858,8 @@ public class ParserTokenManager implements ParserConstants {
                         }
                         break;
                     case 141:
-                        if (curChar == 40 && kind > 117) {
-                            kind = 117;
+                        if (curChar == 40 && kind > 118) {
+                            kind = 118;
                         }
                         break;
                     case 148:
@@ -1865,8 +1868,8 @@ public class ParserTokenManager implements ParserConstants {
                         }
                         break;
                     case 149:
-                        if (curChar == 40 && kind > 118) {
-                            kind = 118;
+                        if (curChar == 40 && kind > 119) {
+                            kind = 119;
                         }
                         break;
                     case 179:
@@ -1908,8 +1911,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff200000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 73) {
-                            kind = 73;
+                        if (kind > 74) {
+                            kind = 74;
                         }
                         jjCheckNAddTwoStates(220, 221);
                         break;
@@ -1917,8 +1920,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0xffffffff00000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 73) {
-                            kind = 73;
+                        if (kind > 74) {
+                            kind = 74;
                         }
                         jjCheckNAddTwoStates(220, 221);
                         break;
@@ -1926,8 +1929,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 73) {
-                            kind = 73;
+                        if (kind > 74) {
+                            kind = 74;
                         }
                         jjCheckNAddStates(439, 442);
                         break;
@@ -1935,8 +1938,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x100003600L & l) == 0L) {
                             break;
                         }
-                        if (kind > 73) {
-                            kind = 73;
+                        if (kind > 74) {
+                            kind = 74;
                         }
                         jjCheckNAddTwoStates(220, 221);
                         break;
@@ -1944,8 +1947,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 73) {
-                            kind = 73;
+                        if (kind > 74) {
+                            kind = 74;
                         }
                         jjCheckNAddStates(443, 449);
                         break;
@@ -1953,8 +1956,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 73) {
-                            kind = 73;
+                        if (kind > 74) {
+                            kind = 74;
                         }
                         jjCheckNAddStates(450, 452);
                         break;
@@ -1962,8 +1965,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 73) {
-                            kind = 73;
+                        if (kind > 74) {
+                            kind = 74;
                         }
                         jjCheckNAddStates(453, 456);
                         break;
@@ -1971,8 +1974,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 73) {
-                            kind = 73;
+                        if (kind > 74) {
+                            kind = 74;
                         }
                         jjCheckNAddStates(457, 461);
                         break;
@@ -1980,8 +1983,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 73) {
-                            kind = 73;
+                        if (kind > 74) {
+                            kind = 74;
                         }
                         jjCheckNAddStates(462, 467);
                         break;
@@ -1996,8 +1999,8 @@ public class ParserTokenManager implements ParserConstants {
                         }
                         break;
                     case 232:
-                        if (curChar == 40 && kind > 119) {
-                            kind = 119;
+                        if (curChar == 40 && kind > 120) {
+                            kind = 120;
                         }
                         break;
                     case 234:
@@ -2070,8 +2073,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 74) {
-                            kind = 74;
+                        if (kind > 75) {
+                            kind = 75;
                         }
                         jjCheckNAdd(266);
                         break;
@@ -2081,8 +2084,8 @@ public class ParserTokenManager implements ParserConstants {
                         }
                         break;
                     case 268:
-                        if (curChar == 37 && kind > 78) {
-                            kind = 78;
+                        if (curChar == 37 && kind > 79) {
+                            kind = 79;
                         }
                         break;
                     case 269:
@@ -2184,8 +2187,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff200000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 96) {
-                            kind = 96;
+                        if (kind > 97) {
+                            kind = 97;
                         }
                         jjCheckNAddTwoStates(329, 330);
                         break;
@@ -2193,8 +2196,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0xffffffff00000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 96) {
-                            kind = 96;
+                        if (kind > 97) {
+                            kind = 97;
                         }
                         jjCheckNAddTwoStates(329, 330);
                         break;
@@ -2202,8 +2205,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 96) {
-                            kind = 96;
+                        if (kind > 97) {
+                            kind = 97;
                         }
                         jjCheckNAddStates(503, 506);
                         break;
@@ -2211,8 +2214,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x100003600L & l) == 0L) {
                             break;
                         }
-                        if (kind > 96) {
-                            kind = 96;
+                        if (kind > 97) {
+                            kind = 97;
                         }
                         jjCheckNAddTwoStates(329, 330);
                         break;
@@ -2220,8 +2223,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 96) {
-                            kind = 96;
+                        if (kind > 97) {
+                            kind = 97;
                         }
                         jjCheckNAddStates(507, 513);
                         break;
@@ -2229,8 +2232,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 96) {
-                            kind = 96;
+                        if (kind > 97) {
+                            kind = 97;
                         }
                         jjCheckNAddStates(514, 516);
                         break;
@@ -2238,8 +2241,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 96) {
-                            kind = 96;
+                        if (kind > 97) {
+                            kind = 97;
                         }
                         jjCheckNAddStates(517, 520);
                         break;
@@ -2247,8 +2250,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 96) {
-                            kind = 96;
+                        if (kind > 97) {
+                            kind = 97;
                         }
                         jjCheckNAddStates(521, 525);
                         break;
@@ -2256,8 +2259,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 96) {
-                            kind = 96;
+                        if (kind > 97) {
+                            kind = 97;
                         }
                         jjCheckNAddStates(526, 531);
                         break;
@@ -2265,8 +2268,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 96) {
-                            kind = 96;
+                        if (kind > 97) {
+                            kind = 97;
                         }
                         jjCheckNAddStates(532, 535);
                         break;
@@ -2274,8 +2277,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 96) {
-                            kind = 96;
+                        if (kind > 97) {
+                            kind = 97;
                         }
                         jjCheckNAddStates(536, 542);
                         break;
@@ -2283,8 +2286,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 96) {
-                            kind = 96;
+                        if (kind > 97) {
+                            kind = 97;
                         }
                         jjCheckNAddStates(543, 545);
                         break;
@@ -2292,8 +2295,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 96) {
-                            kind = 96;
+                        if (kind > 97) {
+                            kind = 97;
                         }
                         jjCheckNAddStates(546, 549);
                         break;
@@ -2301,8 +2304,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 96) {
-                            kind = 96;
+                        if (kind > 97) {
+                            kind = 97;
                         }
                         jjCheckNAddStates(550, 554);
                         break;
@@ -2310,8 +2313,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 96) {
-                            kind = 96;
+                        if (kind > 97) {
+                            kind = 97;
                         }
                         jjCheckNAddStates(555, 560);
                         break;
@@ -2331,8 +2334,8 @@ public class ParserTokenManager implements ParserConstants {
                         }
                         break;
                     case 351:
-                        if (curChar == 41 && kind > 76) {
-                            kind = 76;
+                        if (curChar == 41 && kind > 77) {
+                            kind = 77;
                         }
                         break;
                     case 353:
@@ -2539,8 +2542,8 @@ public class ParserTokenManager implements ParserConstants {
                         if (curChar != 63) {
                             break;
                         }
-                        if (kind > 115) {
-                            kind = 115;
+                        if (kind > 116) {
+                            kind = 116;
                         }
                         jjstateSet[jjnewStateCnt++] = 400;
                         break;
@@ -2548,14 +2551,14 @@ public class ParserTokenManager implements ParserConstants {
                         if (curChar != 63) {
                             break;
                         }
-                        if (kind > 115) {
-                            kind = 115;
+                        if (kind > 116) {
+                            kind = 116;
                         }
                         jjCheckNAddStates(705, 708);
                         break;
                     case 401:
-                        if (curChar == 63 && kind > 115) {
-                            kind = 115;
+                        if (curChar == 63 && kind > 116) {
+                            kind = 116;
                         }
                         break;
                     case 402:
@@ -2566,8 +2569,8 @@ public class ParserTokenManager implements ParserConstants {
                         if (curChar != 63) {
                             break;
                         }
-                        if (kind > 115) {
-                            kind = 115;
+                        if (kind > 116) {
+                            kind = 116;
                         }
                         jjCheckNAdd(401);
                         break;
@@ -2575,8 +2578,8 @@ public class ParserTokenManager implements ParserConstants {
                         if (curChar != 63) {
                             break;
                         }
-                        if (kind > 115) {
-                            kind = 115;
+                        if (kind > 116) {
+                            kind = 116;
                         }
                         jjCheckNAddTwoStates(401, 402);
                         break;
@@ -2584,8 +2587,8 @@ public class ParserTokenManager implements ParserConstants {
                         if (curChar != 63) {
                             break;
                         }
-                        if (kind > 115) {
-                            kind = 115;
+                        if (kind > 116) {
+                            kind = 116;
                         }
                         jjCheckNAddStates(709, 711);
                         break;
@@ -2593,8 +2596,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 115) {
-                            kind = 115;
+                        if (kind > 116) {
+                            kind = 116;
                         }
                         jjAddStates(712, 717);
                         break;
@@ -2614,8 +2617,8 @@ public class ParserTokenManager implements ParserConstants {
                         }
                         break;
                     case 409:
-                        if ((0x3ff000000000000L & l) != 0L && kind > 115) {
-                            kind = 115;
+                        if ((0x3ff000000000000L & l) != 0L && kind > 116) {
+                            kind = 116;
                         }
                         break;
                     case 410:
@@ -2637,8 +2640,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 115) {
-                            kind = 115;
+                        if (kind > 116) {
+                            kind = 116;
                         }
                         jjCheckNAdd(401);
                         break;
@@ -2656,8 +2659,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 115) {
-                            kind = 115;
+                        if (kind > 116) {
+                            kind = 116;
                         }
                         jjstateSet[jjnewStateCnt++] = 417;
                         break;
@@ -2670,8 +2673,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 115) {
-                            kind = 115;
+                        if (kind > 116) {
+                            kind = 116;
                         }
                         jjstateSet[jjnewStateCnt++] = 420;
                         break;
@@ -2679,8 +2682,8 @@ public class ParserTokenManager implements ParserConstants {
                         if (curChar != 63) {
                             break;
                         }
-                        if (kind > 115) {
-                            kind = 115;
+                        if (kind > 116) {
+                            kind = 116;
                         }
                         jjCheckNAddTwoStates(401, 421);
                         break;
@@ -2688,8 +2691,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 115) {
-                            kind = 115;
+                        if (kind > 116) {
+                            kind = 116;
                         }
                         jjstateSet[jjnewStateCnt++] = 423;
                         break;
@@ -2697,8 +2700,8 @@ public class ParserTokenManager implements ParserConstants {
                         if (curChar != 63) {
                             break;
                         }
-                        if (kind > 115) {
-                            kind = 115;
+                        if (kind > 116) {
+                            kind = 116;
                         }
                         jjCheckNAddStates(718, 720);
                         break;
@@ -2706,8 +2709,8 @@ public class ParserTokenManager implements ParserConstants {
                         if (curChar != 63) {
                             break;
                         }
-                        if (kind > 115) {
-                            kind = 115;
+                        if (kind > 116) {
+                            kind = 116;
                         }
                         jjCheckNAddTwoStates(401, 424);
                         break;
@@ -2715,8 +2718,8 @@ public class ParserTokenManager implements ParserConstants {
                         if (curChar != 63) {
                             break;
                         }
-                        if (kind > 115) {
-                            kind = 115;
+                        if (kind > 116) {
+                            kind = 116;
                         }
                         jjCheckNAddStates(721, 724);
                         break;
@@ -2724,8 +2727,8 @@ public class ParserTokenManager implements ParserConstants {
                         if (curChar != 63) {
                             break;
                         }
-                        if (kind > 115) {
-                            kind = 115;
+                        if (kind > 116) {
+                            kind = 116;
                         }
                         jjCheckNAddTwoStates(401, 427);
                         break;
@@ -2733,8 +2736,8 @@ public class ParserTokenManager implements ParserConstants {
                         if (curChar != 63) {
                             break;
                         }
-                        if (kind > 115) {
-                            kind = 115;
+                        if (kind > 116) {
+                            kind = 116;
                         }
                         jjCheckNAddStates(725, 727);
                         break;
@@ -2757,8 +2760,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 115) {
-                            kind = 115;
+                        if (kind > 116) {
+                            kind = 116;
                         }
                         jjstateSet[jjnewStateCnt++] = 434;
                         break;
@@ -2766,8 +2769,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 115) {
-                            kind = 115;
+                        if (kind > 116) {
+                            kind = 116;
                         }
                         jjCheckNAddStates(728, 731);
                         break;
@@ -2775,8 +2778,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 115) {
-                            kind = 115;
+                        if (kind > 116) {
+                            kind = 116;
                         }
                         jjCheckNAdd(409);
                         break;
@@ -2784,8 +2787,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 115) {
-                            kind = 115;
+                        if (kind > 116) {
+                            kind = 116;
                         }
                         jjCheckNAddTwoStates(409, 435);
                         break;
@@ -2793,8 +2796,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 115) {
-                            kind = 115;
+                        if (kind > 116) {
+                            kind = 116;
                         }
                         jjCheckNAddStates(732, 734);
                         break;
@@ -2827,8 +2830,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 73) {
-                            kind = 73;
+                        if (kind > 74) {
+                            kind = 74;
                         }
                         jjCheckNAddStates(747, 750);
                         break;
@@ -2836,8 +2839,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 73) {
-                            kind = 73;
+                        if (kind > 74) {
+                            kind = 74;
                         }
                         jjCheckNAddStates(751, 757);
                         break;
@@ -2845,8 +2848,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 73) {
-                            kind = 73;
+                        if (kind > 74) {
+                            kind = 74;
                         }
                         jjCheckNAddStates(758, 760);
                         break;
@@ -2854,8 +2857,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 73) {
-                            kind = 73;
+                        if (kind > 74) {
+                            kind = 74;
                         }
                         jjCheckNAddStates(761, 764);
                         break;
@@ -2863,8 +2866,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 73) {
-                            kind = 73;
+                        if (kind > 74) {
+                            kind = 74;
                         }
                         jjCheckNAddStates(765, 769);
                         break;
@@ -2872,8 +2875,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 73) {
-                            kind = 73;
+                        if (kind > 74) {
+                            kind = 74;
                         }
                         jjCheckNAddStates(770, 775);
                         break;
@@ -2906,8 +2909,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 74) {
-                            kind = 74;
+                        if (kind > 75) {
+                            kind = 75;
                         }
                         jjCheckNAddStates(0, 81);
                         break;
@@ -2915,8 +2918,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x3ff000000000000L & l) == 0L) {
                             break;
                         }
-                        if (kind > 74) {
-                            kind = 74;
+                        if (kind > 75) {
+                            kind = 75;
                         }
                         jjCheckNAdd(457);
                         break;
@@ -3225,8 +3228,8 @@ public class ParserTokenManager implements ParserConstants {
                     switch (jjstateSet[--i]) {
                     case 520:
                         if ((0x7fffffe87fffffeL & l) != 0L) {
-                            if (kind > 104) {
-                                kind = 104;
+                            if (kind > 105) {
+                                kind = 105;
                             }
                             jjCheckNAddTwoStates(113, 114);
                         } else if (curChar == 92) {
@@ -3235,8 +3238,8 @@ public class ParserTokenManager implements ParserConstants {
                         break;
                     case 166:
                         if ((0x7fffffe07fffffeL & l) != 0L) {
-                            if (kind > 104) {
-                                kind = 104;
+                            if (kind > 105) {
+                                kind = 105;
                             }
                             jjCheckNAddTwoStates(113, 114);
                         } else if (curChar == 92) {
@@ -3248,8 +3251,8 @@ public class ParserTokenManager implements ParserConstants {
                         break;
                     case 174:
                         if ((0x7fffffe87fffffeL & l) != 0L) {
-                            if (kind > 104) {
-                                kind = 104;
+                            if (kind > 105) {
+                                kind = 105;
                             }
                             jjCheckNAddTwoStates(113, 114);
                         } else if (curChar == 92) {
@@ -3261,8 +3264,8 @@ public class ParserTokenManager implements ParserConstants {
                         break;
                     case 4:
                         if ((0x7fffffe07fffffeL & l) != 0L) {
-                            if (kind > 73) {
-                                kind = 73;
+                            if (kind > 74) {
+                                kind = 74;
                             }
                             jjCheckNAddStates(812, 817);
                         } else if (curChar == 92) {
@@ -3293,8 +3296,8 @@ public class ParserTokenManager implements ParserConstants {
                         break;
                     case 178:
                         if ((0x7fffffe07fffffeL & l) != 0L) {
-                            if (kind > 104) {
-                                kind = 104;
+                            if (kind > 105) {
+                                kind = 105;
                             }
                             jjCheckNAddTwoStates(113, 114);
                         }
@@ -3316,8 +3319,8 @@ public class ParserTokenManager implements ParserConstants {
                             jjCheckNAddTwoStates(222, 223);
                         }
                         if ((0x7fffffe87fffffeL & l) != 0L) {
-                            if (kind > 73) {
-                                kind = 73;
+                            if (kind > 74) {
+                                kind = 74;
                             }
                             jjCheckNAddTwoStates(220, 221);
                         } else if (curChar == 92) {
@@ -3326,8 +3329,8 @@ public class ParserTokenManager implements ParserConstants {
                         break;
                     case 175:
                         if ((0x7fffffe87fffffeL & l) != 0L) {
-                            if (kind > 104) {
-                                kind = 104;
+                            if (kind > 105) {
+                                kind = 105;
                             }
                             jjCheckNAddTwoStates(113, 114);
                         } else if (curChar == 92) {
@@ -3341,8 +3344,8 @@ public class ParserTokenManager implements ParserConstants {
                             jjCheckNAddTwoStates(222, 223);
                         }
                         if ((0x7fffffe87fffffeL & l) != 0L) {
-                            if (kind > 73) {
-                                kind = 73;
+                            if (kind > 74) {
+                                kind = 74;
                             }
                             jjCheckNAddTwoStates(220, 221);
                         } else if (curChar == 92) {
@@ -3354,8 +3357,8 @@ public class ParserTokenManager implements ParserConstants {
                         break;
                     case 176:
                         if ((0x7fffffe87fffffeL & l) != 0L) {
-                            if (kind > 104) {
-                                kind = 104;
+                            if (kind > 105) {
+                                kind = 105;
                             }
                             jjCheckNAddTwoStates(113, 114);
                         } else if (curChar == 92) {
@@ -3370,8 +3373,8 @@ public class ParserTokenManager implements ParserConstants {
                             jjCheckNAddStates(120, 123);
                         }
                         if ((0x7fffffe07fffffeL & l) != 0L) {
-                            if (kind > 73) {
-                                kind = 73;
+                            if (kind > 74) {
+                                kind = 74;
                             }
                             jjCheckNAddTwoStates(220, 221);
                         }
@@ -3381,8 +3384,8 @@ public class ParserTokenManager implements ParserConstants {
                         break;
                     case 177:
                         if ((0x7fffffe87fffffeL & l) != 0L) {
-                            if (kind > 104) {
-                                kind = 104;
+                            if (kind > 105) {
+                                kind = 105;
                             }
                             jjCheckNAddTwoStates(113, 114);
                         } else if (curChar == 92) {
@@ -3396,8 +3399,8 @@ public class ParserTokenManager implements ParserConstants {
                         break;
                     case 79:
                         if ((0x7fffffe07fffffeL & l) != 0L) {
-                            if (kind > 77) {
-                                kind = 77;
+                            if (kind > 78) {
+                                kind = 78;
                             }
                             jjCheckNAddTwoStates(81, 82);
                         } else if (curChar == 92) {
@@ -3505,8 +3508,8 @@ public class ParserTokenManager implements ParserConstants {
                         }
                         break;
                     case 29:
-                        if ((0x4000000040000L & l) != 0L && kind > 69) {
-                            kind = 69;
+                        if ((0x4000000040000L & l) != 0L && kind > 70) {
+                            kind = 70;
                         }
                         break;
                     case 30:
@@ -3651,8 +3654,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7fffffe07fffffeL & l) == 0L) {
                             break;
                         }
-                        if (kind > 77) {
-                            kind = 77;
+                        if (kind > 78) {
+                            kind = 78;
                         }
                         jjCheckNAddTwoStates(81, 82);
                         break;
@@ -3660,8 +3663,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7fffffe87fffffeL & l) == 0L) {
                             break;
                         }
-                        if (kind > 77) {
-                            kind = 77;
+                        if (kind > 78) {
+                            kind = 78;
                         }
                         jjCheckNAddTwoStates(81, 82);
                         break;
@@ -3674,8 +3677,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7fffffffffffffffL & l) == 0L) {
                             break;
                         }
-                        if (kind > 77) {
-                            kind = 77;
+                        if (kind > 78) {
+                            kind = 78;
                         }
                         jjCheckNAddTwoStates(81, 82);
                         break;
@@ -3683,8 +3686,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 77) {
-                            kind = 77;
+                        if (kind > 78) {
+                            kind = 78;
                         }
                         jjCheckNAddStates(288, 291);
                         break;
@@ -3692,8 +3695,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 77) {
-                            kind = 77;
+                        if (kind > 78) {
+                            kind = 78;
                         }
                         jjCheckNAddStates(292, 298);
                         break;
@@ -3701,8 +3704,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 77) {
-                            kind = 77;
+                        if (kind > 78) {
+                            kind = 78;
                         }
                         jjCheckNAddStates(299, 301);
                         break;
@@ -3710,8 +3713,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 77) {
-                            kind = 77;
+                        if (kind > 78) {
+                            kind = 78;
                         }
                         jjCheckNAddStates(302, 305);
                         break;
@@ -3719,8 +3722,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 77) {
-                            kind = 77;
+                        if (kind > 78) {
+                            kind = 78;
                         }
                         jjCheckNAddStates(306, 310);
                         break;
@@ -3728,8 +3731,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 77) {
-                            kind = 77;
+                        if (kind > 78) {
+                            kind = 78;
                         }
                         jjCheckNAddStates(311, 316);
                         break;
@@ -3742,8 +3745,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 77) {
-                            kind = 77;
+                        if (kind > 78) {
+                            kind = 78;
                         }
                         jjCheckNAddStates(317, 320);
                         break;
@@ -3751,8 +3754,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 77) {
-                            kind = 77;
+                        if (kind > 78) {
+                            kind = 78;
                         }
                         jjCheckNAddStates(321, 327);
                         break;
@@ -3760,8 +3763,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 77) {
-                            kind = 77;
+                        if (kind > 78) {
+                            kind = 78;
                         }
                         jjCheckNAddStates(328, 330);
                         break;
@@ -3769,8 +3772,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 77) {
-                            kind = 77;
+                        if (kind > 78) {
+                            kind = 78;
                         }
                         jjCheckNAddStates(331, 334);
                         break;
@@ -3778,8 +3781,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 77) {
-                            kind = 77;
+                        if (kind > 78) {
+                            kind = 78;
                         }
                         jjCheckNAddStates(335, 339);
                         break;
@@ -3787,8 +3790,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 77) {
-                            kind = 77;
+                        if (kind > 78) {
+                            kind = 78;
                         }
                         jjCheckNAddStates(340, 345);
                         break;
@@ -3796,8 +3799,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7fffffe87fffffeL & l) == 0L) {
                             break;
                         }
-                        if (kind > 97) {
-                            kind = 97;
+                        if (kind > 98) {
+                            kind = 98;
                         }
                         jjCheckNAddTwoStates(100, 101);
                         break;
@@ -3810,8 +3813,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7fffffffffffffffL & l) == 0L) {
                             break;
                         }
-                        if (kind > 97) {
-                            kind = 97;
+                        if (kind > 98) {
+                            kind = 98;
                         }
                         jjCheckNAddTwoStates(100, 101);
                         break;
@@ -3819,8 +3822,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 97) {
-                            kind = 97;
+                        if (kind > 98) {
+                            kind = 98;
                         }
                         jjCheckNAddStates(346, 349);
                         break;
@@ -3828,8 +3831,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 97) {
-                            kind = 97;
+                        if (kind > 98) {
+                            kind = 98;
                         }
                         jjCheckNAddStates(350, 356);
                         break;
@@ -3837,8 +3840,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 97) {
-                            kind = 97;
+                        if (kind > 98) {
+                            kind = 98;
                         }
                         jjCheckNAddStates(357, 359);
                         break;
@@ -3846,8 +3849,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 97) {
-                            kind = 97;
+                        if (kind > 98) {
+                            kind = 98;
                         }
                         jjCheckNAddStates(360, 363);
                         break;
@@ -3855,8 +3858,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 97) {
-                            kind = 97;
+                        if (kind > 98) {
+                            kind = 98;
                         }
                         jjCheckNAddStates(364, 368);
                         break;
@@ -3864,8 +3867,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 97) {
-                            kind = 97;
+                        if (kind > 98) {
+                            kind = 98;
                         }
                         jjCheckNAddStates(369, 374);
                         break;
@@ -3878,8 +3881,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7fffffe07fffffeL & l) == 0L) {
                             break;
                         }
-                        if (kind > 104) {
-                            kind = 104;
+                        if (kind > 105) {
+                            kind = 105;
                         }
                         jjCheckNAddTwoStates(113, 114);
                         break;
@@ -3887,8 +3890,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7fffffe87fffffeL & l) == 0L) {
                             break;
                         }
-                        if (kind > 104) {
-                            kind = 104;
+                        if (kind > 105) {
+                            kind = 105;
                         }
                         jjCheckNAddTwoStates(113, 114);
                         break;
@@ -3901,8 +3904,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7fffffffffffffffL & l) == 0L) {
                             break;
                         }
-                        if (kind > 104) {
-                            kind = 104;
+                        if (kind > 105) {
+                            kind = 105;
                         }
                         jjCheckNAddTwoStates(113, 114);
                         break;
@@ -3910,8 +3913,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 104) {
-                            kind = 104;
+                        if (kind > 105) {
+                            kind = 105;
                         }
                         jjCheckNAddStates(375, 378);
                         break;
@@ -3919,8 +3922,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 104) {
-                            kind = 104;
+                        if (kind > 105) {
+                            kind = 105;
                         }
                         jjCheckNAddStates(379, 385);
                         break;
@@ -3928,8 +3931,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 104) {
-                            kind = 104;
+                        if (kind > 105) {
+                            kind = 105;
                         }
                         jjCheckNAddStates(386, 388);
                         break;
@@ -3937,8 +3940,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 104) {
-                            kind = 104;
+                        if (kind > 105) {
+                            kind = 105;
                         }
                         jjCheckNAddStates(389, 392);
                         break;
@@ -3946,8 +3949,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 104) {
-                            kind = 104;
+                        if (kind > 105) {
+                            kind = 105;
                         }
                         jjCheckNAddStates(393, 397);
                         break;
@@ -3955,8 +3958,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 104) {
-                            kind = 104;
+                        if (kind > 105) {
+                            kind = 105;
                         }
                         jjCheckNAddStates(398, 403);
                         break;
@@ -3969,8 +3972,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 104) {
-                            kind = 104;
+                        if (kind > 105) {
+                            kind = 105;
                         }
                         jjCheckNAddStates(404, 407);
                         break;
@@ -3978,8 +3981,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 104) {
-                            kind = 104;
+                        if (kind > 105) {
+                            kind = 105;
                         }
                         jjCheckNAddStates(408, 414);
                         break;
@@ -3987,8 +3990,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 104) {
-                            kind = 104;
+                        if (kind > 105) {
+                            kind = 105;
                         }
                         jjCheckNAddStates(415, 417);
                         break;
@@ -3996,8 +3999,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 104) {
-                            kind = 104;
+                        if (kind > 105) {
+                            kind = 105;
                         }
                         jjCheckNAddStates(418, 421);
                         break;
@@ -4005,8 +4008,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 104) {
-                            kind = 104;
+                        if (kind > 105) {
+                            kind = 105;
                         }
                         jjCheckNAddStates(422, 426);
                         break;
@@ -4014,8 +4017,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 104) {
-                            kind = 104;
+                        if (kind > 105) {
+                            kind = 105;
                         }
                         jjCheckNAddStates(427, 432);
                         break;
@@ -4125,8 +4128,8 @@ public class ParserTokenManager implements ParserConstants {
                         }
                         break;
                     case 158:
-                        if ((0x8000000080000L & l) != 0L && kind > 103) {
-                            kind = 103;
+                        if ((0x8000000080000L & l) != 0L && kind > 104) {
+                            kind = 104;
                         }
                         break;
                     case 159:
@@ -4352,8 +4355,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7fffffe87fffffeL & l) == 0L) {
                             break;
                         }
-                        if (kind > 73) {
-                            kind = 73;
+                        if (kind > 74) {
+                            kind = 74;
                         }
                         jjCheckNAddTwoStates(220, 221);
                         break;
@@ -4366,8 +4369,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7fffffffffffffffL & l) == 0L) {
                             break;
                         }
-                        if (kind > 73) {
-                            kind = 73;
+                        if (kind > 74) {
+                            kind = 74;
                         }
                         jjCheckNAddTwoStates(220, 221);
                         break;
@@ -4375,8 +4378,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 73) {
-                            kind = 73;
+                        if (kind > 74) {
+                            kind = 74;
                         }
                         jjCheckNAddStates(439, 442);
                         break;
@@ -4384,8 +4387,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 73) {
-                            kind = 73;
+                        if (kind > 74) {
+                            kind = 74;
                         }
                         jjCheckNAddStates(443, 449);
                         break;
@@ -4393,8 +4396,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 73) {
-                            kind = 73;
+                        if (kind > 74) {
+                            kind = 74;
                         }
                         jjCheckNAddStates(450, 452);
                         break;
@@ -4402,8 +4405,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 73) {
-                            kind = 73;
+                        if (kind > 74) {
+                            kind = 74;
                         }
                         jjCheckNAddStates(453, 456);
                         break;
@@ -4411,8 +4414,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 73) {
-                            kind = 73;
+                        if (kind > 74) {
+                            kind = 74;
                         }
                         jjCheckNAddStates(457, 461);
                         break;
@@ -4420,8 +4423,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 73) {
-                            kind = 73;
+                        if (kind > 74) {
+                            kind = 74;
                         }
                         jjCheckNAddStates(462, 467);
                         break;
@@ -4472,8 +4475,8 @@ public class ParserTokenManager implements ParserConstants {
                         }
                         break;
                     case 244:
-                        if ((0x10000000100000L & l) != 0L && kind > 71) {
-                            kind = 71;
+                        if ((0x10000000100000L & l) != 0L && kind > 72) {
+                            kind = 72;
                         }
                         break;
                     case 245:
@@ -4507,8 +4510,8 @@ public class ParserTokenManager implements ParserConstants {
                         }
                         break;
                     case 252:
-                        if ((0x10000000100000L & l) != 0L && kind > 105) {
-                            kind = 105;
+                        if ((0x10000000100000L & l) != 0L && kind > 106) {
+                            kind = 106;
                         }
                         break;
                     case 253:
@@ -4555,8 +4558,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7fffffe07fffffeL & l) == 0L) {
                             break;
                         }
-                        if (kind > 73) {
-                            kind = 73;
+                        if (kind > 74) {
+                            kind = 74;
                         }
                         jjCheckNAddTwoStates(220, 221);
                         break;
@@ -4569,14 +4572,14 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7fffffe07fffffeL & l) == 0L) {
                             break;
                         }
-                        if (kind > 73) {
-                            kind = 73;
+                        if (kind > 74) {
+                            kind = 74;
                         }
                         jjCheckNAddStates(812, 817);
                         break;
                     case 270:
-                        if ((0x10000000100000L & l) != 0L && kind > 79) {
-                            kind = 79;
+                        if ((0x10000000100000L & l) != 0L && kind > 80) {
+                            kind = 80;
                         }
                         break;
                     case 271:
@@ -4585,8 +4588,8 @@ public class ParserTokenManager implements ParserConstants {
                         }
                         break;
                     case 273:
-                        if ((0x200000002000L & l) != 0L && kind > 80) {
-                            kind = 80;
+                        if ((0x200000002000L & l) != 0L && kind > 81) {
+                            kind = 81;
                         }
                         break;
                     case 274:
@@ -4595,8 +4598,8 @@ public class ParserTokenManager implements ParserConstants {
                         }
                         break;
                     case 276:
-                        if ((0x200000002000L & l) != 0L && kind > 81) {
-                            kind = 81;
+                        if ((0x200000002000L & l) != 0L && kind > 82) {
+                            kind = 82;
                         }
                         break;
                     case 277:
@@ -4605,8 +4608,8 @@ public class ParserTokenManager implements ParserConstants {
                         }
                         break;
                     case 279:
-                        if ((0x800000008L & l) != 0L && kind > 82) {
-                            kind = 82;
+                        if ((0x800000008L & l) != 0L && kind > 83) {
+                            kind = 83;
                         }
                         break;
                     case 280:
@@ -4615,8 +4618,8 @@ public class ParserTokenManager implements ParserConstants {
                         }
                         break;
                     case 282:
-                        if ((0x400000004000L & l) != 0L && kind > 83) {
-                            kind = 83;
+                        if ((0x400000004000L & l) != 0L && kind > 84) {
+                            kind = 84;
                         }
                         break;
                     case 283:
@@ -4625,8 +4628,8 @@ public class ParserTokenManager implements ParserConstants {
                         }
                         break;
                     case 285:
-                        if ((0x100000001000000L & l) != 0L && kind > 84) {
-                            kind = 84;
+                        if ((0x100000001000000L & l) != 0L && kind > 85) {
+                            kind = 85;
                         }
                         break;
                     case 286:
@@ -4635,8 +4638,8 @@ public class ParserTokenManager implements ParserConstants {
                         }
                         break;
                     case 288:
-                        if ((0x200000002000L & l) != 0L && kind > 85) {
-                            kind = 85;
+                        if ((0x200000002000L & l) != 0L && kind > 86) {
+                            kind = 86;
                         }
                         break;
                     case 289:
@@ -4645,8 +4648,8 @@ public class ParserTokenManager implements ParserConstants {
                         }
                         break;
                     case 291:
-                        if ((0x200000002000L & l) != 0L && kind > 86) {
-                            kind = 86;
+                        if ((0x200000002000L & l) != 0L && kind > 87) {
+                            kind = 87;
                         }
                         break;
                     case 292:
@@ -4660,8 +4663,8 @@ public class ParserTokenManager implements ParserConstants {
                         }
                         break;
                     case 295:
-                        if ((0x200000002000L & l) != 0L && kind > 87) {
-                            kind = 87;
+                        if ((0x200000002000L & l) != 0L && kind > 88) {
+                            kind = 88;
                         }
                         break;
                     case 296:
@@ -4675,8 +4678,8 @@ public class ParserTokenManager implements ParserConstants {
                         }
                         break;
                     case 299:
-                        if ((0x100000001000000L & l) != 0L && kind > 88) {
-                            kind = 88;
+                        if ((0x100000001000000L & l) != 0L && kind > 89) {
+                            kind = 89;
                         }
                         break;
                     case 300:
@@ -4685,8 +4688,8 @@ public class ParserTokenManager implements ParserConstants {
                         }
                         break;
                     case 302:
-                        if ((0x8000000080L & l) != 0L && kind > 89) {
-                            kind = 89;
+                        if ((0x8000000080L & l) != 0L && kind > 90) {
+                            kind = 90;
                         }
                         break;
                     case 303:
@@ -4700,8 +4703,8 @@ public class ParserTokenManager implements ParserConstants {
                         }
                         break;
                     case 306:
-                        if ((0x1000000010L & l) != 0L && kind > 90) {
-                            kind = 90;
+                        if ((0x1000000010L & l) != 0L && kind > 91) {
+                            kind = 91;
                         }
                         break;
                     case 307:
@@ -4715,8 +4718,8 @@ public class ParserTokenManager implements ParserConstants {
                         }
                         break;
                     case 310:
-                        if ((0x1000000010L & l) != 0L && kind > 91) {
-                            kind = 91;
+                        if ((0x1000000010L & l) != 0L && kind > 92) {
+                            kind = 92;
                         }
                         break;
                     case 311:
@@ -4735,8 +4738,8 @@ public class ParserTokenManager implements ParserConstants {
                         }
                         break;
                     case 315:
-                        if ((0x8000000080000L & l) != 0L && kind > 92) {
-                            kind = 92;
+                        if ((0x8000000080000L & l) != 0L && kind > 93) {
+                            kind = 93;
                         }
                         break;
                     case 316:
@@ -4745,13 +4748,13 @@ public class ParserTokenManager implements ParserConstants {
                         }
                         break;
                     case 318:
-                        if ((0x8000000080000L & l) != 0L && kind > 93) {
-                            kind = 93;
+                        if ((0x8000000080000L & l) != 0L && kind > 94) {
+                            kind = 94;
                         }
                         break;
                     case 320:
-                        if ((0x400000004000000L & l) != 0L && kind > 94) {
-                            kind = 94;
+                        if ((0x400000004000000L & l) != 0L && kind > 95) {
+                            kind = 95;
                         }
                         break;
                     case 321:
@@ -4760,8 +4763,8 @@ public class ParserTokenManager implements ParserConstants {
                         }
                         break;
                     case 323:
-                        if ((0x400000004000000L & l) != 0L && kind > 95) {
-                            kind = 95;
+                        if ((0x400000004000000L & l) != 0L && kind > 96) {
+                            kind = 96;
                         }
                         break;
                     case 324:
@@ -4778,8 +4781,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7fffffe07fffffeL & l) == 0L) {
                             break;
                         }
-                        if (kind > 96) {
-                            kind = 96;
+                        if (kind > 97) {
+                            kind = 97;
                         }
                         jjCheckNAddTwoStates(329, 330);
                         break;
@@ -4787,8 +4790,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7fffffe87fffffeL & l) == 0L) {
                             break;
                         }
-                        if (kind > 96) {
-                            kind = 96;
+                        if (kind > 97) {
+                            kind = 97;
                         }
                         jjCheckNAddTwoStates(329, 330);
                         break;
@@ -4801,8 +4804,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7fffffffffffffffL & l) == 0L) {
                             break;
                         }
-                        if (kind > 96) {
-                            kind = 96;
+                        if (kind > 97) {
+                            kind = 97;
                         }
                         jjCheckNAddTwoStates(329, 330);
                         break;
@@ -4810,8 +4813,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 96) {
-                            kind = 96;
+                        if (kind > 97) {
+                            kind = 97;
                         }
                         jjCheckNAddStates(503, 506);
                         break;
@@ -4819,8 +4822,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 96) {
-                            kind = 96;
+                        if (kind > 97) {
+                            kind = 97;
                         }
                         jjCheckNAddStates(507, 513);
                         break;
@@ -4828,8 +4831,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 96) {
-                            kind = 96;
+                        if (kind > 97) {
+                            kind = 97;
                         }
                         jjCheckNAddStates(514, 516);
                         break;
@@ -4837,8 +4840,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 96) {
-                            kind = 96;
+                        if (kind > 97) {
+                            kind = 97;
                         }
                         jjCheckNAddStates(517, 520);
                         break;
@@ -4846,8 +4849,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 96) {
-                            kind = 96;
+                        if (kind > 97) {
+                            kind = 97;
                         }
                         jjCheckNAddStates(521, 525);
                         break;
@@ -4855,8 +4858,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 96) {
-                            kind = 96;
+                        if (kind > 97) {
+                            kind = 97;
                         }
                         jjCheckNAddStates(526, 531);
                         break;
@@ -4869,8 +4872,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 96) {
-                            kind = 96;
+                        if (kind > 97) {
+                            kind = 97;
                         }
                         jjCheckNAddStates(532, 535);
                         break;
@@ -4878,8 +4881,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 96) {
-                            kind = 96;
+                        if (kind > 97) {
+                            kind = 97;
                         }
                         jjCheckNAddStates(536, 542);
                         break;
@@ -4887,8 +4890,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 96) {
-                            kind = 96;
+                        if (kind > 97) {
+                            kind = 97;
                         }
                         jjCheckNAddStates(543, 545);
                         break;
@@ -4896,8 +4899,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 96) {
-                            kind = 96;
+                        if (kind > 97) {
+                            kind = 97;
                         }
                         jjCheckNAddStates(546, 549);
                         break;
@@ -4905,8 +4908,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 96) {
-                            kind = 96;
+                        if (kind > 97) {
+                            kind = 97;
                         }
                         jjCheckNAddStates(550, 554);
                         break;
@@ -4914,8 +4917,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 96) {
-                            kind = 96;
+                        if (kind > 97) {
+                            kind = 97;
                         }
                         jjCheckNAddStates(555, 560);
                         break;
@@ -5071,8 +5074,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 115) {
-                            kind = 115;
+                        if (kind > 116) {
+                            kind = 116;
                         }
                         jjAddStates(712, 717);
                         break;
@@ -5092,8 +5095,8 @@ public class ParserTokenManager implements ParserConstants {
                         }
                         break;
                     case 409:
-                        if ((0x7e0000007eL & l) != 0L && kind > 115) {
-                            kind = 115;
+                        if ((0x7e0000007eL & l) != 0L && kind > 116) {
+                            kind = 116;
                         }
                         break;
                     case 410:
@@ -5115,8 +5118,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 115) {
-                            kind = 115;
+                        if (kind > 116) {
+                            kind = 116;
                         }
                         jjstateSet[jjnewStateCnt++] = 401;
                         break;
@@ -5134,8 +5137,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 115) {
-                            kind = 115;
+                        if (kind > 116) {
+                            kind = 116;
                         }
                         jjstateSet[jjnewStateCnt++] = 417;
                         break;
@@ -5148,8 +5151,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 115) {
-                            kind = 115;
+                        if (kind > 116) {
+                            kind = 116;
                         }
                         jjstateSet[jjnewStateCnt++] = 420;
                         break;
@@ -5157,8 +5160,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 115) {
-                            kind = 115;
+                        if (kind > 116) {
+                            kind = 116;
                         }
                         jjstateSet[jjnewStateCnt++] = 423;
                         break;
@@ -5171,8 +5174,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 115) {
-                            kind = 115;
+                        if (kind > 116) {
+                            kind = 116;
                         }
                         jjstateSet[jjnewStateCnt++] = 434;
                         break;
@@ -5180,8 +5183,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 115) {
-                            kind = 115;
+                        if (kind > 116) {
+                            kind = 116;
                         }
                         jjCheckNAddStates(728, 731);
                         break;
@@ -5189,8 +5192,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 115) {
-                            kind = 115;
+                        if (kind > 116) {
+                            kind = 116;
                         }
                         jjCheckNAdd(409);
                         break;
@@ -5198,8 +5201,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 115) {
-                            kind = 115;
+                        if (kind > 116) {
+                            kind = 116;
                         }
                         jjCheckNAddTwoStates(409, 435);
                         break;
@@ -5207,8 +5210,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 115) {
-                            kind = 115;
+                        if (kind > 116) {
+                            kind = 116;
                         }
                         jjCheckNAddStates(732, 734);
                         break;
@@ -5246,8 +5249,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 73) {
-                            kind = 73;
+                        if (kind > 74) {
+                            kind = 74;
                         }
                         jjCheckNAddStates(747, 750);
                         break;
@@ -5255,8 +5258,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 73) {
-                            kind = 73;
+                        if (kind > 74) {
+                            kind = 74;
                         }
                         jjCheckNAddStates(751, 757);
                         break;
@@ -5264,8 +5267,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 73) {
-                            kind = 73;
+                        if (kind > 74) {
+                            kind = 74;
                         }
                         jjCheckNAddStates(758, 760);
                         break;
@@ -5273,8 +5276,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 73) {
-                            kind = 73;
+                        if (kind > 74) {
+                            kind = 74;
                         }
                         jjCheckNAddStates(761, 764);
                         break;
@@ -5282,8 +5285,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 73) {
-                            kind = 73;
+                        if (kind > 74) {
+                            kind = 74;
                         }
                         jjCheckNAddStates(765, 769);
                         break;
@@ -5291,8 +5294,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((0x7e0000007eL & l) == 0L) {
                             break;
                         }
-                        if (kind > 73) {
-                            kind = 73;
+                        if (kind > 74) {
+                            kind = 74;
                         }
                         jjCheckNAddStates(770, 775);
                         break;
@@ -5336,8 +5339,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((jjbitVec0[i2] & l2) == 0L) {
                             break;
                         }
-                        if (kind > 104) {
-                            kind = 104;
+                        if (kind > 105) {
+                            kind = 105;
                         }
                         jjCheckNAddTwoStates(113, 114);
                         break;
@@ -5345,8 +5348,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((jjbitVec0[i2] & l2) == 0L) {
                             break;
                         }
-                        if (kind > 104) {
-                            kind = 104;
+                        if (kind > 105) {
+                            kind = 105;
                         }
                         jjCheckNAddTwoStates(113, 114);
                         break;
@@ -5354,8 +5357,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((jjbitVec0[i2] & l2) == 0L) {
                             break;
                         }
-                        if (kind > 104) {
-                            kind = 104;
+                        if (kind > 105) {
+                            kind = 105;
                         }
                         jjCheckNAddTwoStates(113, 114);
                         break;
@@ -5370,8 +5373,8 @@ public class ParserTokenManager implements ParserConstants {
                         break;
                     case 518:
                         if ((jjbitVec0[i2] & l2) != 0L) {
-                            if (kind > 73) {
-                                kind = 73;
+                            if (kind > 74) {
+                                kind = 74;
                             }
                             jjCheckNAddTwoStates(220, 221);
                         }
@@ -5383,15 +5386,15 @@ public class ParserTokenManager implements ParserConstants {
                         if ((jjbitVec0[i2] & l2) == 0L) {
                             break;
                         }
-                        if (kind > 104) {
-                            kind = 104;
+                        if (kind > 105) {
+                            kind = 105;
                         }
                         jjCheckNAddTwoStates(113, 114);
                         break;
                     case 33:
                         if ((jjbitVec0[i2] & l2) != 0L) {
-                            if (kind > 73) {
-                                kind = 73;
+                            if (kind > 74) {
+                                kind = 74;
                             }
                             jjCheckNAddTwoStates(220, 221);
                         }
@@ -5403,8 +5406,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((jjbitVec0[i2] & l2) == 0L) {
                             break;
                         }
-                        if (kind > 104) {
-                            kind = 104;
+                        if (kind > 105) {
+                            kind = 105;
                         }
                         jjCheckNAddTwoStates(113, 114);
                         break;
@@ -5412,8 +5415,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((jjbitVec0[i2] & l2) == 0L) {
                             break;
                         }
-                        if (kind > 104) {
-                            kind = 104;
+                        if (kind > 105) {
+                            kind = 105;
                         }
                         jjCheckNAddTwoStates(113, 114);
                         break;
@@ -5423,8 +5426,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((jjbitVec0[i2] & l2) == 0L) {
                             break;
                         }
-                        if (kind > 77) {
-                            kind = 77;
+                        if (kind > 78) {
+                            kind = 78;
                         }
                         jjCheckNAddTwoStates(81, 82);
                         break;
@@ -5457,8 +5460,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((jjbitVec0[i2] & l2) == 0L) {
                             break;
                         }
-                        if (kind > 97) {
-                            kind = 97;
+                        if (kind > 98) {
+                            kind = 98;
                         }
                         jjCheckNAddTwoStates(100, 101);
                         break;
@@ -5467,8 +5470,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((jjbitVec0[i2] & l2) == 0L) {
                             break;
                         }
-                        if (kind > 73) {
-                            kind = 73;
+                        if (kind > 74) {
+                            kind = 74;
                         }
                         jjCheckNAddTwoStates(220, 221);
                         break;
@@ -5484,8 +5487,8 @@ public class ParserTokenManager implements ParserConstants {
                         if ((jjbitVec0[i2] & l2) == 0L) {
                             break;
                         }
-                        if (kind > 96) {
-                            kind = 96;
+                        if (kind > 97) {
+                            kind = 97;
                         }
                         jjCheckNAddTwoStates(329, 330);
                         break;
@@ -5754,7 +5757,8 @@ public class ParserTokenManager implements ParserConstants {
             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",
@@ -5769,8 +5773,8 @@ public class ParserTokenManager implements ParserConstants {
             -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
             -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
             -1, -1, -1, -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 = { 0xfff807fffffffc03L, 0x1f803fffffff7ffL, };
+            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, };
+    static final long[] jjtoToken = { 0xfff807fffffffc03L, 0x3f007ffffffefffL, };
     static final long[] jjtoSkip = { 0x190L, 0x0L, };
     static final long[] jjtoSpecial = { 0x80L, 0x0L, };
     static final long[] jjtoMore = { 0x26cL, 0x0L, };
@@ -5882,8 +5886,8 @@ public class ParserTokenManager implements ParserConstants {
                     jjmatchedKind = 0x7fffffff;
                     jjmatchedPos = 0;
                     curPos = jjMoveStringLiteralDfa0_0();
-                    if (jjmatchedPos == 0 && jjmatchedKind > 120) {
-                        jjmatchedKind = 120;
+                    if (jjmatchedPos == 0 && jjmatchedKind > 121) {
+                        jjmatchedKind = 121;
                     }
                     break;
                 case 1:
diff --git a/theme-compiler/src/com/vaadin/sass/internal/tree/ContentNode.java b/theme-compiler/src/com/vaadin/sass/internal/tree/ContentNode.java
new file mode 100644 (file)
index 0000000..10cb159
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+ * 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.
+ */
+
+/**
+ * ContentNode represents a {@literal @}content in a SCSS tree. 
+ */
+package com.vaadin.sass.internal.tree;
+
+public class ContentNode extends Node {
+
+    @Override
+    public void traverse() {
+        /*
+         * ContentNode is basically just a placeholder for some content which
+         * will be included. So for traverse of this node, it does nothing. it
+         * will be replaced when traversing MixinDefNode which contains it.
+         */
+    }
+
+}
index d3dce12c484f28d7df8326de2a77cec452341840..bae14750763277bc86dd90d6d74e23767bb1a33b 100644 (file)
@@ -85,4 +85,38 @@ public class MixinDefNode extends Node implements IVariableNode {
         }
     }
 
+    /**
+     * This should only happen on a cloned MixinDefNode, since it changes the
+     * Node itself.
+     * 
+     * @param mixinNode
+     * @return
+     */
+    public MixinDefNode replaceContentDirective(MixinNode mixinNode) {
+        return findAndReplaceContentNodeInChildren(this, mixinNode);
+    }
+
+    private MixinDefNode findAndReplaceContentNodeInChildren(Node node,
+            MixinNode mixinNode) {
+        ContentNode contentNode = null;
+        for (Node child : new ArrayList<Node>(node.getChildren())) {
+            if (child instanceof ContentNode) {
+                contentNode = (ContentNode) child;
+                replaceContentNode(contentNode, mixinNode);
+            } else {
+                findAndReplaceContentNodeInChildren(child, mixinNode);
+            }
+        }
+        return this;
+    }
+
+    public MixinDefNode replaceContentNode(ContentNode contentNode,
+            MixinNode mixinNode) {
+        if (contentNode != null) {
+            contentNode.getParentNode().appendChildrenAfter(
+                    DeepCopy.copy(mixinNode.getChildren()), contentNode);
+            contentNode.getParentNode().removeChild(contentNode);
+        }
+        return this;
+    }
 }
index 755c2d5c88cbc59d76bb72a33c640e4dde5994d2..e702bc8577d1cb38e8dd18a1367b2ac71d950bd9 100644 (file)
@@ -30,10 +30,13 @@ public class MixinNode extends Node implements IVariableNode {
     private String name;
     private ArrayList<LexicalUnitImpl> arglist;
 
-    public MixinNode(String name, Collection<LexicalUnitImpl> args) {
-        super();
+    public MixinNode(String name) {
         this.name = name;
         arglist = new ArrayList<LexicalUnitImpl>();
+    }
+
+    public MixinNode(String name, Collection<LexicalUnitImpl> args) {
+        this(name);
         if (args != null && !args.isEmpty()) {
             arglist.addAll(args);
         }
@@ -69,7 +72,8 @@ public class MixinNode extends Node implements IVariableNode {
             for (final LexicalUnitImpl arg : new ArrayList<LexicalUnitImpl>(
                     arglist)) {
                 LexicalUnitImpl unit = arg;
-                // only perform replace in the value if separate argument name
+                // only perform replace in the value if separate argument
+                // name
                 // and value
                 if (unit.getNextLexicalUnit() != null) {
                     unit = unit.getNextLexicalUnit();
@@ -89,7 +93,15 @@ public class MixinNode extends Node implements IVariableNode {
                     name = var.getExpr().toString();
                 }
             }
+        }
+    }
 
+    protected void replaceVariablesForChildren() {
+        for (Node child : getChildren()) {
+            if (child instanceof IVariableNode) {
+                ((IVariableNode) child).replaceVariables(ScssStylesheet
+                        .getVariables());
+            }
         }
     }
 
@@ -101,6 +113,7 @@ public class MixinNode extends Node implements IVariableNode {
                     .openVariableScope();
 
             replaceVariables(ScssStylesheet.getVariables());
+            replaceVariablesForChildren();
             MixinNodeHandler.traverse(this);
 
             ScssStylesheet.closeVariableScope(variableScope);
index 9a2cc6371e4ca22f12c4d2cca056014902e08196..98b701d5a9b9f5520e6da3a1ebf442726cef7336 100644 (file)
@@ -45,6 +45,23 @@ public abstract class Node implements Serializable {
         }
     }
 
+    public void appendChildrenAfter(Collection<Node> childrenNodes, Node after) {
+        if (childrenNodes != null && !childrenNodes.isEmpty()) {
+            int index = children.indexOf(after);
+            if (index != -1) {
+                children.addAll(index, childrenNodes);
+                for (final Node child : childrenNodes) {
+                    if (child.getParentNode() != null) {
+                        child.getParentNode().removeChild(child);
+                    }
+                    child.setParentNode(this);
+                }
+            } else {
+                throw new NullPointerException("after-node was not found");
+            }
+        }
+    }
+
     public void appendChild(Node node) {
         if (node != null) {
             children.add(node);
index 6b16183588e15b5c7c062338627f4f4a1060d034..bc30ffdd6c1a84bb877acc13d29739205f9b25cd 100644 (file)
@@ -19,6 +19,9 @@ package com.vaadin.sass.internal.util;
 import java.io.IOException;
 import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
+import java.util.Collection;
+import java.util.LinkedList;
+import java.util.List;
 
 /**
  * Utility for making deep copies (vs. clone()'s shallow copies) of objects.
@@ -70,4 +73,11 @@ public class DeepCopy {
         }
     }
 
+    public static <T> Collection<T> copy(Collection<T> objects) {
+        List<T> copies = new LinkedList<T>();
+        for (T object : objects) {
+            copies.add((T) copy(object));
+        }
+        return copies;
+    }
 }
\ No newline at end of file
index 5593241297d64d1a0d920145b152e151215b023d..e356ed3525a6341d02137442a610a66398504c17 100644 (file)
@@ -67,12 +67,9 @@ public class ImportNodeHandler {
                             updateUrlInImportedSheet(imported, prefix);
                         }
 
-                        Node pre = importNode;
-                        for (Node importedChild : new ArrayList<Node>(
-                                imported.getChildren())) {
-                            node.appendChild(importedChild, pre);
-                            pre = importedChild;
-                        }
+                        node.appendChildrenAfter(
+                                new ArrayList<Node>(imported.getChildren()),
+                                importNode);
                         node.removeChild(importNode);
                     } catch (CSSException e) {
                         e.printStackTrace();
index 5aa90151b91b2ce48a1027d10eea771b40e739eb..046933396568aefdb4efa67d7ecaf885b002a58b 100644 (file)
@@ -45,19 +45,19 @@ public class MixinNodeHandler {
 
     private static void replaceMixinNode(MixinNode mixinNode,
             MixinDefNode mixinDef) {
-        Node pre = mixinNode;
-
         MixinDefNode defClone = (MixinDefNode) DeepCopy.copy(mixinDef);
         defClone.traverse();
 
+        defClone.replaceContentDirective(mixinNode);
+
         if (mixinDef.getArglist().isEmpty()) {
-            for (Node child : new ArrayList<Node>(defClone.getChildren())) {
-                mixinNode.getParentNode().appendChild(child, pre);
-                pre = child;
-            }
+            mixinNode.getParentNode().appendChildrenAfter(
+                    new ArrayList<Node>(defClone.getChildren()), mixinNode);
         } else {
-
-            replacePossibleArguments(mixinNode, defClone);
+            if (mixinNode.getArglist() != null
+                    && !mixinNode.getArglist().isEmpty()) {
+                replacePossibleArguments(mixinNode, defClone);
+            }
 
             Node previous = mixinNode;
             for (final Node child : defClone.getChildren()) {
@@ -87,7 +87,6 @@ public class MixinNodeHandler {
      */
     private static void replacePossibleArguments(MixinNode mixinNode,
             MixinDefNode def) {
-
         if (mixinNode.getArglist().size() > 0) {
             ArrayList<VariableNode> remainingNodes = new ArrayList<VariableNode>(
                     def.getArglist());
diff --git a/theme-compiler/tests/resources/automatic/css/mixin-content-directive-with-vars.css b/theme-compiler/tests/resources/automatic/css/mixin-content-directive-with-vars.css
new file mode 100644 (file)
index 0000000..799d6ae
--- /dev/null
@@ -0,0 +1,5 @@
+.colors {
+  background-color: blue;
+  color: white;
+  border-color: blue;
+}
\ No newline at end of file
diff --git a/theme-compiler/tests/resources/automatic/css/mixin-content-directive.css b/theme-compiler/tests/resources/automatic/css/mixin-content-directive.css
new file mode 100644 (file)
index 0000000..07813d1
--- /dev/null
@@ -0,0 +1,20 @@
+.foobar {
+    color: red;
+}
+
+.foobar {
+    background-color: blue;
+}
+
+* html #logo {
+       background-image: url(/logo.gif);
+}
+
+* html .link {
+       color: blue;
+}
+
+.foobar {
+    color: red;
+    color: red;
+}
\ No newline at end of file
diff --git a/theme-compiler/tests/resources/automatic/scss/mixin-content-directive-with-vars.scss b/theme-compiler/tests/resources/automatic/scss/mixin-content-directive-with-vars.scss
new file mode 100644 (file)
index 0000000..e7e0c3b
--- /dev/null
@@ -0,0 +1,9 @@
+$color: white;
+@mixin colors($color: blue) {
+  background-color: $color;
+  @content;
+  border-color: $color;
+}
+.colors {
+  @include colors { color: $color; }
+}
\ No newline at end of file
diff --git a/theme-compiler/tests/resources/automatic/scss/mixin-content-directive.scss b/theme-compiler/tests/resources/automatic/scss/mixin-content-directive.scss
new file mode 100644 (file)
index 0000000..71217cb
--- /dev/null
@@ -0,0 +1,40 @@
+@mixin my-mixin  {
+    .foobar {
+        @content;
+     }
+}
+
+@include my-mixin {
+   color: red;
+}
+
+@include my-mixin {
+   background-color: blue;
+}
+
+@mixin apply-to-ie6-only {
+  * html {
+    @content;
+  }
+}
+@include apply-to-ie6-only {
+  #logo {
+    background-image: url(/logo.gif);
+  }
+}
+@include apply-to-ie6-only {
+  .link {
+    color: blue;
+  }
+}
+
+@mixin mixin-multi-contents  {
+    .foobar {
+        @content;
+        @content;
+     }
+}
+
+@include mixin-multi-contents {
+   color: red;
+}
\ No newline at end of file