diff options
author | Marc Englund <marc@vaadin.com> | 2012-09-11 16:27:05 +0300 |
---|---|---|
committer | Marc Englund <marc@vaadin.com> | 2012-09-11 16:27:28 +0300 |
commit | c9e8218799152dd90bacb6c8b92b648a951aca24 (patch) | |
tree | 88838e0fdaf1257258d2e3d5eaffd7cb88819ab6 /theme-compiler/src/com/vaadin | |
parent | 6ccbb9e40ebb160d2bc1a57c5b5293c4f87d0b27 (diff) | |
download | vaadin-framework-c9e8218799152dd90bacb6c8b92b648a951aca24.tar.gz vaadin-framework-c9e8218799152dd90bacb6c8b92b648a951aca24.zip |
Applying patch: remak of variable handling in sass (partial for e.g #9492 and others)
Diffstat (limited to 'theme-compiler/src/com/vaadin')
34 files changed, 2252 insertions, 1371 deletions
diff --git a/theme-compiler/src/com/vaadin/sass/ScssStylesheet.java b/theme-compiler/src/com/vaadin/sass/ScssStylesheet.java index b38cab82a0..e2ffe060bc 100644 --- a/theme-compiler/src/com/vaadin/sass/ScssStylesheet.java +++ b/theme-compiler/src/com/vaadin/sass/ScssStylesheet.java @@ -31,9 +31,11 @@ import com.vaadin.sass.parser.Parser; import com.vaadin.sass.resolver.ScssStylesheetResolver; import com.vaadin.sass.resolver.VaadinResolver; import com.vaadin.sass.tree.Node; +import com.vaadin.sass.tree.VariableNode; import com.vaadin.sass.visitor.BlockVisitor; -import com.vaadin.sass.visitor.ControlVisitor; +import com.vaadin.sass.visitor.EachVisitor; import com.vaadin.sass.visitor.ExtendVisitor; +import com.vaadin.sass.visitor.IfElseVisitor; import com.vaadin.sass.visitor.ImportVisitor; import com.vaadin.sass.visitor.MixinVisitor; import com.vaadin.sass.visitor.NestPropertiesVisitor; @@ -116,16 +118,17 @@ public class ScssStylesheet extends Node { * @throws Exception */ public void compile() throws Exception { + ScssStylesheet scssStylesheet = this; List<Visitor> visitors = new ArrayList<Visitor>(); visitors.add(new ImportVisitor()); - visitors.add(new MixinVisitor()); visitors.add(new VariableVisitor()); + visitors.add(new MixinVisitor()); + visitors.add(new IfElseVisitor()); visitors.add(new ParentSelectorVisitor()); visitors.add(new BlockVisitor()); visitors.add(new NestPropertiesVisitor()); visitors.add(new ExtendVisitor()); - visitors.add(new ControlVisitor()); - ArrayList<Node> children2 = children; + visitors.add(new EachVisitor()); for (Visitor visitor : visitors) { visitor.traverse(this); } @@ -156,4 +159,11 @@ public class ScssStylesheet extends Node { String output = string.toString(); return output; } + + public void addChild(int index, VariableNode node) { + if (node != null) { + children.add(index, node); + } + } + } diff --git a/theme-compiler/src/com/vaadin/sass/handler/SCSSDocumentHandler.java b/theme-compiler/src/com/vaadin/sass/handler/SCSSDocumentHandler.java index c489a6a4a7..8696cf7ccf 100644 --- a/theme-compiler/src/com/vaadin/sass/handler/SCSSDocumentHandler.java +++ b/theme-compiler/src/com/vaadin/sass/handler/SCSSDocumentHandler.java @@ -26,7 +26,6 @@ import org.w3c.css.sac.SelectorList; import com.vaadin.sass.ScssStylesheet; import com.vaadin.sass.tree.ForNode; -import com.vaadin.sass.tree.IfNode; import com.vaadin.sass.tree.MixinDefNode; import com.vaadin.sass.tree.VariableNode; import com.vaadin.sass.tree.WhileNode; @@ -50,8 +49,6 @@ public interface SCSSDocumentHandler extends DocumentHandler { WhileNode whileDirective(String condition, String body); - IfNode ifDirective(); - void extendDirective(SelectorList list); void startNestedProperties(String name); @@ -69,4 +66,12 @@ public interface SCSSDocumentHandler extends DocumentHandler { void endEachDirective(); + void startIfElseDirective(); + + void endIfElseDirective(); + + void ifDirective(String evaluator); + + void elseDirective(); + } diff --git a/theme-compiler/src/com/vaadin/sass/handler/SCSSDocumentHandlerImpl.java b/theme-compiler/src/com/vaadin/sass/handler/SCSSDocumentHandlerImpl.java index 0ed8b8d0f2..283546ff35 100644 --- a/theme-compiler/src/com/vaadin/sass/handler/SCSSDocumentHandlerImpl.java +++ b/theme-compiler/src/com/vaadin/sass/handler/SCSSDocumentHandlerImpl.java @@ -18,8 +18,6 @@ package com.vaadin.sass.handler; import java.util.ArrayList; import java.util.Collection; -import java.util.HashMap; -import java.util.Map; import java.util.Stack; import org.w3c.css.sac.CSSException; @@ -33,7 +31,6 @@ import com.vaadin.sass.tree.BlockNode; import com.vaadin.sass.tree.CommentNode; import com.vaadin.sass.tree.ExtendNode; import com.vaadin.sass.tree.ForNode; -import com.vaadin.sass.tree.IfNode; import com.vaadin.sass.tree.ImportNode; import com.vaadin.sass.tree.MediaNode; import com.vaadin.sass.tree.MixinDefNode; @@ -44,16 +41,17 @@ import com.vaadin.sass.tree.RuleNode; import com.vaadin.sass.tree.VariableNode; import com.vaadin.sass.tree.WhileNode; import com.vaadin.sass.tree.controldirective.EachDefNode; +import com.vaadin.sass.tree.controldirective.ElseNode; +import com.vaadin.sass.tree.controldirective.IfElseDefNode; +import com.vaadin.sass.tree.controldirective.IfNode; public class SCSSDocumentHandlerImpl implements SCSSDocumentHandler { private final ScssStylesheet styleSheet; Stack<Node> nodeStack = new Stack<Node>(); - private Map<String, Stack<LexicalUnit>> variableMap; public SCSSDocumentHandlerImpl() { this(new ScssStylesheet()); - variableMap = new HashMap<String, Stack<LexicalUnit>>(); } public SCSSDocumentHandlerImpl(ScssStylesheet styleSheet) { @@ -61,29 +59,6 @@ public class SCSSDocumentHandlerImpl implements SCSSDocumentHandler { nodeStack.push(styleSheet); } - public void addVariable(String varName, LexicalUnit value) { - if (variableMap.get(varName) == null) { - variableMap.put(varName, new Stack<LexicalUnit>()); - } - Stack<LexicalUnit> valueStack = variableMap.get(varName); - valueStack.push(value); - } - - public void removeVaraible(String varName) { - Stack<LexicalUnit> valueStack = variableMap.get(varName); - if (valueStack != null && !valueStack.isEmpty()) { - valueStack.pop(); - } - } - - public LexicalUnit getVariable(String varName) { - Stack<LexicalUnit> valueStack = variableMap.get(varName); - if (valueStack != null && !valueStack.isEmpty()) { - return valueStack.peek(); - } - return null; - } - @Override public ScssStylesheet getStyleSheet() { return styleSheet; @@ -141,11 +116,6 @@ public class SCSSDocumentHandlerImpl implements SCSSDocumentHandler { } @Override - public IfNode ifDirective() { - return new IfNode(); - } - - @Override public void comment(String text) throws CSSException { CommentNode node = new CommentNode(text); nodeStack.peek().appendChild(node); @@ -273,4 +243,40 @@ public class SCSSDocumentHandlerImpl implements SCSSDocumentHandler { ImportNode node = new ImportNode(uri, media, isURL); nodeStack.peek().appendChild(node); } + + @Override + public void startIfElseDirective() { + final IfElseDefNode node = new IfElseDefNode(); + nodeStack.peek().appendChild(node); + nodeStack.push(node); + } + + @Override + public void ifDirective(String evaluator) { + if (nodeStack.peek() instanceof IfNode) { + nodeStack.pop(); + } + IfNode node = new IfNode(evaluator); + nodeStack.peek().appendChild(node); + nodeStack.push(node); + } + + @Override + public void elseDirective() { + if (nodeStack.peek() instanceof IfNode) { + nodeStack.pop(); + } + ElseNode node = new ElseNode(); + nodeStack.peek().appendChild(node); + nodeStack.push(node); + } + + @Override + public void endIfElseDirective() { + if ((nodeStack.peek() instanceof ElseNode) + || (nodeStack.peek() instanceof IfNode)) { + nodeStack.pop(); + } + nodeStack.pop(); + } } diff --git a/theme-compiler/src/com/vaadin/sass/parser/LexicalUnitImpl.java b/theme-compiler/src/com/vaadin/sass/parser/LexicalUnitImpl.java index a6b03a864c..64a9d4a6b8 100644 --- a/theme-compiler/src/com/vaadin/sass/parser/LexicalUnitImpl.java +++ b/theme-compiler/src/com/vaadin/sass/parser/LexicalUnitImpl.java @@ -350,22 +350,32 @@ public class LexicalUnitImpl implements LexicalUnit, SCSSLexicalUnit, return this; } - public void replaceValue(LexicalUnitImpl another) { + public void replaceValue(LexicalUnit another) { type = another.getLexicalUnitType(); i = another.getIntegerValue(); f = another.getFloatValue(); - dimension = another.getDimension(); - sdimension = another.getSdimension(); s = another.getStringValue(); fname = another.getFunctionName(); - params = another.getParameters(); prev = another.getPreviousLexicalUnit(); + if (another instanceof LexicalUnitImpl) { + dimension = ((LexicalUnitImpl) another).getDimension(); + sdimension = ((LexicalUnitImpl) another).getSdimension(); + params = ((LexicalUnitImpl) another).getParameters(); + } + LexicalUnit finalNextInAnother = another; while (finalNextInAnother.getNextLexicalUnit() != null) { finalNextInAnother = finalNextInAnother.getNextLexicalUnit(); } - ((LexicalUnitImpl) finalNextInAnother).setNextLexicalUnit(next); - next = another.next; + + if (another instanceof LexicalUnitImpl) { + ((LexicalUnitImpl) finalNextInAnother).setNextLexicalUnit(next); + next = ((LexicalUnitImpl) another).next; + } + } + + public void setParameters(LexicalUnitImpl params) { + this.params = params; } public short getDimension() { diff --git a/theme-compiler/src/com/vaadin/sass/parser/Parser.java b/theme-compiler/src/com/vaadin/sass/parser/Parser.java index 68e0aa7231..41ea251943 100644 --- a/theme-compiler/src/com/vaadin/sass/parser/Parser.java +++ b/theme-compiler/src/com/vaadin/sass/parser/Parser.java @@ -1475,6 +1475,7 @@ char connector = ' '; case EACH_VAR: case INCLUDE_SYM: case EACH_SYM: + case IF_SYM: case EXTEND_SYM: case IDENT: case VARIABLE: @@ -1487,6 +1488,9 @@ char connector = ' '; break label_39; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case IF_SYM: + ifDirective(); + break; case INCLUDE_SYM: includeDirective(); break; @@ -2289,23 +2293,40 @@ boolean isPseudoElement = false; } } - final public void eachDirective() throws ParseException { - Token var; - ArrayList<String> list; - jj_consume_token(EACH_SYM); + final public void ifDirective() throws ParseException { + Token n = null; + String evaluator = ""; + jj_consume_token(IF_SYM); label_61: while (true) { + n = booleanExpressionToken(); + evaluator += n.image; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: + case EQ: + case PLUS: + case MINUS: + case PRECEDES: + case SUCCEEDS: + case DIV: + case ANY: + case LPARAN: + case RPARAN: + case COMPARE: + case OR: + case AND: + case NOT_EQ: + case IDENT: + case NUMBER: + case VARIABLE: ; break; default: jj_la1[92] = jj_gen; break label_61; } - jj_consume_token(S); } - var = jj_consume_token(VARIABLE); + jj_consume_token(LBRACE); label_62: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -2318,35 +2339,356 @@ boolean isPseudoElement = false; } jj_consume_token(S); } - jj_consume_token(EACH_IN); + documentHandler.startIfElseDirective(); + documentHandler.ifDirective(evaluator); label_63: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case S: + case LBRACKET: + case ANY: + case PARENT: + case DOT: + case COLON: + case EACH_VAR: + case INCLUDE_SYM: + case EXTEND_SYM: + case IDENT: + case VARIABLE: + case HASH: + case MEDIA_SYM: ; break; default: jj_la1[94] = jj_gen; break label_63; } + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case INCLUDE_SYM: + includeDirective(); + break; + case MEDIA_SYM: + media(); + break; + case EXTEND_SYM: + extendDirective(); + break; + case VARIABLE: + variable(); + break; + default: + jj_la1[95] = jj_gen; + if (jj_2_3(3)) { + declarationOrNestedProperties(); + } else { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case LBRACKET: + case ANY: + case PARENT: + case DOT: + case COLON: + case EACH_VAR: + case IDENT: + case HASH: + styleRule(); + break; + default: + jj_la1[96] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + } + } + } + jj_consume_token(RBRACE); + label_64: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case S: + ; + break; + default: + jj_la1[97] = jj_gen; + break label_64; + } + jj_consume_token(S); + } + label_65: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case ELSE_SYM: + ; + break; + default: + jj_la1[98] = jj_gen; + break label_65; + } + elseDirective(); + } + documentHandler.endIfElseDirective(); + } + + final public void elseDirective() throws ParseException { + String evaluator = ""; + Token n = null; + jj_consume_token(ELSE_SYM); + label_66: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case S: + ; + break; + default: + jj_la1[99] = jj_gen; + break label_66; + } + jj_consume_token(S); + } + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case IF: + jj_consume_token(IF); + label_67: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case S: + case EQ: + case PLUS: + case MINUS: + case PRECEDES: + case SUCCEEDS: + case DIV: + case ANY: + case LPARAN: + case RPARAN: + case COMPARE: + case OR: + case AND: + case NOT_EQ: + case IDENT: + case NUMBER: + case VARIABLE: + ; + break; + default: + jj_la1[100] = jj_gen; + break label_67; + } + n = booleanExpressionToken(); + if(n != null) evaluator += n.image; + } + break; + default: + jj_la1[101] = jj_gen; + ; + } + jj_consume_token(LBRACE); + label_68: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case S: + ; + break; + default: + jj_la1[102] = jj_gen; + break label_68; + } + jj_consume_token(S); + } + if(!evaluator.trim().equals("")){ documentHandler.ifDirective(evaluator); } + else{ documentHandler.elseDirective(); } + label_69: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case LBRACKET: + case ANY: + case PARENT: + case DOT: + case COLON: + case EACH_VAR: + case INCLUDE_SYM: + case EXTEND_SYM: + case IDENT: + case VARIABLE: + case HASH: + case MEDIA_SYM: + ; + break; + default: + jj_la1[103] = jj_gen; + break label_69; + } + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case INCLUDE_SYM: + includeDirective(); + break; + case MEDIA_SYM: + media(); + break; + case EXTEND_SYM: + extendDirective(); + break; + case VARIABLE: + variable(); + break; + default: + jj_la1[104] = jj_gen; + if (jj_2_4(3)) { + declarationOrNestedProperties(); + } else { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case LBRACKET: + case ANY: + case PARENT: + case DOT: + case COLON: + case EACH_VAR: + case IDENT: + case HASH: + styleRule(); + break; + default: + jj_la1[105] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + } + } + } + jj_consume_token(RBRACE); + label_70: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case S: + ; + break; + default: + jj_la1[106] = jj_gen; + break label_70; + } + jj_consume_token(S); + } + } + + final public Token booleanExpressionToken() throws ParseException { + Token n = null; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case VARIABLE: + n = jj_consume_token(VARIABLE); + break; + case IDENT: + n = jj_consume_token(IDENT); + break; + case NUMBER: + n = jj_consume_token(NUMBER); + break; + case LPARAN: + n = jj_consume_token(LPARAN); + break; + case RPARAN: + n = jj_consume_token(RPARAN); + break; + case PLUS: + n = jj_consume_token(PLUS); + break; + case MINUS: + n = jj_consume_token(MINUS); + break; + case DIV: + n = jj_consume_token(DIV); + break; + case ANY: + n = jj_consume_token(ANY); + break; + case COMPARE: + n = jj_consume_token(COMPARE); + break; + case EQ: + n = jj_consume_token(EQ); + break; + case PRECEDES: + n = jj_consume_token(PRECEDES); + break; + case SUCCEEDS: + n = jj_consume_token(SUCCEEDS); + break; + case OR: + n = jj_consume_token(OR); + break; + case AND: + n = jj_consume_token(AND); + break; + case S: + n = jj_consume_token(S); + break; + case NOT_EQ: + n = jj_consume_token(NOT_EQ); + break; + default: + jj_la1[107] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + {if (true) return n;} + throw new Error("Missing return statement in function"); + } + + final public void eachDirective() throws ParseException { + Token var; + ArrayList<String> list; + jj_consume_token(EACH_SYM); + label_71: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case S: + ; + break; + default: + jj_la1[108] = jj_gen; + break label_71; + } + jj_consume_token(S); + } + var = jj_consume_token(VARIABLE); + label_72: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case S: + ; + break; + default: + jj_la1[109] = jj_gen; + break label_72; + } + jj_consume_token(S); + } + jj_consume_token(EACH_IN); + label_73: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case S: + ; + break; + default: + jj_la1[110] = jj_gen; + break label_73; + } jj_consume_token(S); } list = stringList(); jj_consume_token(LBRACE); - label_64: + label_74: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[95] = jj_gen; - break label_64; + jj_la1[111] = jj_gen; + break label_74; } jj_consume_token(S); } documentHandler.startEachDirective(var.image, list); - label_65: + label_75: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case LBRACKET: @@ -2364,8 +2706,8 @@ boolean isPseudoElement = false; ; break; default: - jj_la1[96] = jj_gen; - break label_65; + jj_la1[112] = jj_gen; + break label_75; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case INCLUDE_SYM: @@ -2381,8 +2723,8 @@ boolean isPseudoElement = false; variable(); break; default: - jj_la1[97] = jj_gen; - if (jj_2_3(3)) { + jj_la1[113] = jj_gen; + if (jj_2_5(3)) { declarationOrNestedProperties(); } else { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -2397,7 +2739,7 @@ boolean isPseudoElement = false; styleRule(); break; default: - jj_la1[98] = jj_gen; + jj_la1[114] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2405,15 +2747,15 @@ boolean isPseudoElement = false; } } jj_consume_token(RBRACE); - label_66: + label_76: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[99] = jj_gen; - break label_66; + jj_la1[115] = jj_gen; + break label_76; } jj_consume_token(S); } @@ -2424,53 +2766,53 @@ boolean isPseudoElement = false; ArrayList<String > strings = new ArrayList<String >(); Token input; input = jj_consume_token(IDENT); - label_67: + label_77: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[100] = jj_gen; - break label_67; + jj_la1[116] = jj_gen; + break label_77; } jj_consume_token(S); } strings.add(input.image); - label_68: + label_78: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case COMMA: ; break; default: - jj_la1[101] = jj_gen; - break label_68; + jj_la1[117] = jj_gen; + break label_78; } jj_consume_token(COMMA); - label_69: + label_79: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[102] = jj_gen; - break label_69; + jj_la1[118] = jj_gen; + break label_79; } jj_consume_token(S); } input = jj_consume_token(IDENT); strings.add(input.image); - label_70: + label_80: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[103] = jj_gen; - break label_70; + jj_la1[119] = jj_gen; + break label_80; } jj_consume_token(S); } @@ -2484,15 +2826,15 @@ boolean isPseudoElement = false; ArrayList<VariableNode> args = null; String body; jj_consume_token(MIXIN_SYM); - label_71: + label_81: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[104] = jj_gen; - break label_71; + jj_la1[120] = jj_gen; + break label_81; } jj_consume_token(S); } @@ -2504,39 +2846,39 @@ boolean isPseudoElement = false; name = functionName(); args = arglist(); jj_consume_token(RPARAN); - label_72: + label_82: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[105] = jj_gen; - break label_72; + jj_la1[121] = jj_gen; + break label_82; } jj_consume_token(S); } break; default: - jj_la1[106] = jj_gen; + jj_la1[122] = jj_gen; jj_consume_token(-1); throw new ParseException(); } jj_consume_token(LBRACE); - label_73: + label_83: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[107] = jj_gen; - break label_73; + jj_la1[123] = jj_gen; + break label_83; } jj_consume_token(S); } documentHandler.startMixinDirective(name, args); - label_74: + label_84: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case LBRACKET: @@ -2554,8 +2896,8 @@ boolean isPseudoElement = false; ; break; default: - jj_la1[108] = jj_gen; - break label_74; + jj_la1[124] = jj_gen; + break label_84; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case INCLUDE_SYM: @@ -2571,8 +2913,8 @@ boolean isPseudoElement = false; variable(); break; default: - jj_la1[109] = jj_gen; - if (jj_2_4(3)) { + jj_la1[125] = jj_gen; + if (jj_2_6(3)) { declarationOrNestedProperties(); } else { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -2587,7 +2929,7 @@ boolean isPseudoElement = false; styleRule(); break; default: - jj_la1[110] = jj_gen; + jj_la1[126] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2595,15 +2937,15 @@ boolean isPseudoElement = false; } } jj_consume_token(RBRACE); - label_75: + label_85: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[111] = jj_gen; - break label_75; + jj_la1[127] = jj_gen; + break label_85; } jj_consume_token(S); } @@ -2614,26 +2956,26 @@ boolean isPseudoElement = false; ArrayList<VariableNode> args = new ArrayList<VariableNode>(); VariableNode arg; arg = mixinArg(); - label_76: + label_86: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case COMMA: ; break; default: - jj_la1[112] = jj_gen; - break label_76; + jj_la1[128] = jj_gen; + break label_86; } jj_consume_token(COMMA); - label_77: + label_87: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[113] = jj_gen; - break label_77; + jj_la1[129] = jj_gen; + break label_87; } jj_consume_token(S); } @@ -2652,22 +2994,22 @@ boolean isPseudoElement = false; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case COLON: jj_consume_token(COLON); - label_78: + label_88: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[114] = jj_gen; - break label_78; + jj_la1[130] = jj_gen; + break label_88; } jj_consume_token(S); } value = term(null); break; default: - jj_la1[115] = jj_gen; + jj_la1[131] = jj_gen; ; } VariableNode arg = new VariableNode(name, value, false); @@ -2680,26 +3022,26 @@ boolean isPseudoElement = false; LexicalUnit argValue; argValue = term(null); args.add(argValue); - label_79: + label_89: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case COMMA: ; break; default: - jj_la1[116] = jj_gen; - break label_79; + jj_la1[132] = jj_gen; + break label_89; } jj_consume_token(COMMA); - label_80: + label_90: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[117] = jj_gen; - break label_80; + jj_la1[133] = jj_gen; + break label_90; } jj_consume_token(S); } @@ -2714,15 +3056,15 @@ boolean isPseudoElement = false; String name; ArrayList<LexicalUnit> args=null; jj_consume_token(INCLUDE_SYM); - label_81: + label_91: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[118] = jj_gen; - break label_81; + jj_la1[134] = jj_gen; + break label_91; } jj_consume_token(S); } @@ -2736,22 +3078,22 @@ boolean isPseudoElement = false; jj_consume_token(RPARAN); break; default: - jj_la1[119] = jj_gen; + jj_la1[135] = jj_gen; jj_consume_token(-1); throw new ParseException(); } - label_82: + label_92: while (true) { jj_consume_token(SEMICOLON); - label_83: + label_93: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[120] = jj_gen; - break label_83; + jj_la1[136] = jj_gen; + break label_93; } jj_consume_token(S); } @@ -2760,8 +3102,8 @@ boolean isPseudoElement = false; ; break; default: - jj_la1[121] = jj_gen; - break label_82; + jj_la1[137] = jj_gen; + break label_92; } } documentHandler.includeDirective(name, args); @@ -2775,15 +3117,15 @@ boolean isPseudoElement = false; name = functionName(); args = skipStatementUntilRightParan(); jj_consume_token(RPARAN); - label_84: + label_94: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[122] = jj_gen; - break label_84; + jj_la1[138] = jj_gen; + break label_94; } jj_consume_token(S); } @@ -2825,20 +3167,20 @@ boolean isPseudoElement = false; exclusive = false; break; default: - jj_la1[123] = jj_gen; + jj_la1[139] = jj_gen; jj_consume_token(-1); throw new ParseException(); } to = skipStatementUntilLeftBrace(); - label_85: + label_95: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[124] = jj_gen; - break label_85; + jj_la1[140] = jj_gen; + break label_95; } jj_consume_token(S); } @@ -2856,41 +3198,34 @@ boolean isPseudoElement = false; throw new Error("Missing return statement in function"); } - Node ifDirective() throws ParseException { - return documentHandler.ifDirective(); - } - - void elseDirective() throws ParseException { - } - final public void extendDirective() throws ParseException { SelectorList list; jj_consume_token(EXTEND_SYM); - label_86: + label_96: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[125] = jj_gen; - break label_86; + jj_la1[141] = jj_gen; + break label_96; } jj_consume_token(S); } list = selectorList(); - label_87: + label_97: while (true) { jj_consume_token(SEMICOLON); - label_88: + label_98: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[126] = jj_gen; - break label_88; + jj_la1[142] = jj_gen; + break label_98; } jj_consume_token(S); } @@ -2899,8 +3234,8 @@ boolean isPseudoElement = false; ; break; default: - jj_la1[127] = jj_gen; - break label_87; + jj_la1[143] = jj_gen; + break label_97; } } documentHandler.extendDirective(list); @@ -2927,28 +3262,28 @@ boolean isPseudoElement = false; LexicalUnit exp; name = property(); jj_consume_token(COLON); - label_89: + label_99: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[128] = jj_gen; - break label_89; + jj_la1[144] = jj_gen; + break label_99; } jj_consume_token(S); } jj_consume_token(LBRACE); - label_90: + label_100: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[129] = jj_gen; - break label_90; + jj_la1[145] = jj_gen; + break label_100; } jj_consume_token(S); } @@ -2958,29 +3293,29 @@ LexicalUnit exp; declaration(); break; default: - jj_la1[130] = jj_gen; + jj_la1[146] = jj_gen; ; } - label_91: + label_101: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case SEMICOLON: ; break; default: - jj_la1[131] = jj_gen; - break label_91; + jj_la1[147] = jj_gen; + break label_101; } jj_consume_token(SEMICOLON); - label_92: + label_102: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[132] = jj_gen; - break label_92; + jj_la1[148] = jj_gen; + break label_102; } jj_consume_token(S); } @@ -2989,21 +3324,21 @@ LexicalUnit exp; declaration(); break; default: - jj_la1[133] = jj_gen; + jj_la1[149] = jj_gen; ; } } jj_consume_token(RBRACE); documentHandler.endNestedProperties(name); - label_93: + label_103: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[134] = jj_gen; - break label_93; + jj_la1[150] = jj_gen; + break label_103; } jj_consume_token(S); } @@ -3022,15 +3357,15 @@ LexicalUnit exp; name = property(); save = token; jj_consume_token(COLON); - label_94: + label_104: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[135] = jj_gen; - break label_94; + jj_la1[151] = jj_gen; + break label_104; } jj_consume_token(S); } @@ -3068,7 +3403,7 @@ LexicalUnit exp; important = prio(); break; default: - jj_la1[136] = jj_gen; + jj_la1[152] = jj_gen; ; } Token next = getToken(1); @@ -3086,15 +3421,15 @@ LexicalUnit exp; break; case LBRACE: jj_consume_token(LBRACE); - label_95: + label_105: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[137] = jj_gen; - break label_95; + jj_la1[153] = jj_gen; + break label_105; } jj_consume_token(S); } @@ -3104,29 +3439,29 @@ LexicalUnit exp; declaration(); break; default: - jj_la1[138] = jj_gen; + jj_la1[154] = jj_gen; ; } - label_96: + label_106: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case SEMICOLON: ; break; default: - jj_la1[139] = jj_gen; - break label_96; + jj_la1[155] = jj_gen; + break label_106; } jj_consume_token(SEMICOLON); - label_97: + label_107: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[140] = jj_gen; - break label_97; + jj_la1[156] = jj_gen; + break label_107; } jj_consume_token(S); } @@ -3135,27 +3470,27 @@ LexicalUnit exp; declaration(); break; default: - jj_la1[141] = jj_gen; + jj_la1[157] = jj_gen; ; } } jj_consume_token(RBRACE); - label_98: + label_108: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[142] = jj_gen; - break label_98; + jj_la1[158] = jj_gen; + break label_108; } jj_consume_token(S); } documentHandler.endNestedProperties(name); break; default: - jj_la1[143] = jj_gen; + jj_la1[159] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3205,15 +3540,15 @@ LexicalUnit exp; name = property(); save = token; jj_consume_token(COLON); - label_99: + label_109: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[144] = jj_gen; - break label_99; + jj_la1[160] = jj_gen; + break label_109; } jj_consume_token(S); } @@ -3223,7 +3558,7 @@ LexicalUnit exp; important = prio(); break; default: - jj_la1[145] = jj_gen; + jj_la1[161] = jj_gen; ; } documentHandler.property(name, exp, important); @@ -3266,15 +3601,15 @@ LexicalUnit exp; */ final public boolean prio() throws ParseException { jj_consume_token(IMPORTANT_SYM); - label_100: + label_110: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[146] = jj_gen; - break label_100; + jj_la1[162] = jj_gen; + break label_110; } jj_consume_token(S); } @@ -3284,15 +3619,15 @@ LexicalUnit exp; final public boolean guarded() throws ParseException { jj_consume_token(GUARDED_SYM); - label_101: + label_111: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[147] = jj_gen; - break label_101; + jj_la1[163] = jj_gen; + break label_111; } jj_consume_token(S); } @@ -3308,15 +3643,15 @@ LexicalUnit exp; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case DIV: n = jj_consume_token(DIV); - label_102: + label_112: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[148] = jj_gen; - break label_102; + jj_la1[164] = jj_gen; + break label_112; } jj_consume_token(S); } @@ -3326,15 +3661,15 @@ LexicalUnit exp; break; case COMMA: n = jj_consume_token(COMMA); - label_103: + label_113: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[149] = jj_gen; - break label_103; + jj_la1[165] = jj_gen; + break label_113; } jj_consume_token(S); } @@ -3343,7 +3678,7 @@ LexicalUnit exp; prev);} break; default: - jj_la1[150] = jj_gen; + jj_la1[166] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3358,12 +3693,12 @@ LexicalUnit exp; char op; first = term(null); res = first; - label_104: + label_114: while (true) { - if (jj_2_5(2)) { + if (jj_2_7(2)) { ; } else { - break label_104; + break label_114; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case COMMA: @@ -3371,7 +3706,7 @@ LexicalUnit exp; res = operator(res); break; default: - jj_la1[151] = jj_gen; + jj_la1[167] = jj_gen; ; } res = term(res); @@ -3394,7 +3729,7 @@ LexicalUnit exp; {if (true) return '+';} break; default: - jj_la1[152] = jj_gen; + jj_la1[168] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3464,7 +3799,7 @@ LexicalUnit exp; op = unaryOperator(); break; default: - jj_la1[153] = jj_gen; + jj_la1[169] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -3569,7 +3904,7 @@ LexicalUnit exp; result = function(op, prev); break; default: - jj_la1[154] = jj_gen; + jj_la1[170] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3632,25 +3967,25 @@ LexicalUnit exp; result = unicode(prev); break; default: - jj_la1[155] = jj_gen; + jj_la1[171] = jj_gen; jj_consume_token(-1); throw new ParseException(); } break; default: - jj_la1[156] = jj_gen; + jj_la1[172] = jj_gen; jj_consume_token(-1); throw new ParseException(); } - label_105: + label_115: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[157] = jj_gen; - break label_105; + jj_la1[173] = jj_gen; + break label_115; } jj_consume_token(S); } @@ -3661,7 +3996,7 @@ LexicalUnit exp; prev, varName); break; default: - jj_la1[158] = jj_gen; + jj_la1[174] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3677,15 +4012,15 @@ LexicalUnit exp; Token n; LexicalUnit params = null; n = jj_consume_token(FUNCTION); - label_106: + label_116: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[159] = jj_gen; - break label_106; + jj_la1[175] = jj_gen; + break label_116; } jj_consume_token(S); } @@ -3726,7 +4061,7 @@ LexicalUnit exp; params = expr(); break; default: - jj_la1[160] = jj_gen; + jj_la1[176] = jj_gen; ; } jj_consume_token(RPARAN); @@ -4201,15 +4536,15 @@ LexicalUnit exp; */ final public void _parseRule() throws ParseException { String ret = null; - label_107: + label_117: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[161] = jj_gen; - break label_107; + jj_la1[177] = jj_gen; + break label_117; } jj_consume_token(S); } @@ -4237,7 +4572,7 @@ LexicalUnit exp; fontFace(); break; default: - jj_la1[162] = jj_gen; + jj_la1[178] = jj_gen; ret = skipStatement(); if ((ret == null) || (ret.length() == 0)) { {if (true) return;} @@ -4252,15 +4587,15 @@ LexicalUnit exp; } final public void _parseImportRule() throws ParseException { - label_108: + label_118: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[163] = jj_gen; - break label_108; + jj_la1[179] = jj_gen; + break label_118; } jj_consume_token(S); } @@ -4268,15 +4603,15 @@ LexicalUnit exp; } final public void _parseMediaRule() throws ParseException { - label_109: + label_119: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[164] = jj_gen; - break label_109; + jj_la1[180] = jj_gen; + break label_119; } jj_consume_token(S); } @@ -4284,15 +4619,15 @@ LexicalUnit exp; } final public void _parseDeclarationBlock() throws ParseException { - label_110: + label_120: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[165] = jj_gen; - break label_110; + jj_la1[181] = jj_gen; + break label_120; } jj_consume_token(S); } @@ -4301,29 +4636,29 @@ LexicalUnit exp; declaration(); break; default: - jj_la1[166] = jj_gen; + jj_la1[182] = jj_gen; ; } - label_111: + label_121: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case SEMICOLON: ; break; default: - jj_la1[167] = jj_gen; - break label_111; + jj_la1[183] = jj_gen; + break label_121; } jj_consume_token(SEMICOLON); - label_112: + label_122: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[168] = jj_gen; - break label_112; + jj_la1[184] = jj_gen; + break label_122; } jj_consume_token(S); } @@ -4332,7 +4667,7 @@ LexicalUnit exp; declaration(); break; default: - jj_la1[169] = jj_gen; + jj_la1[185] = jj_gen; ; } } @@ -4341,15 +4676,15 @@ LexicalUnit exp; final public SelectorList _parseSelectors() throws ParseException { SelectorList p = null; try { - label_113: + label_123: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case S: ; break; default: - jj_la1[170] = jj_gen; - break label_113; + jj_la1[186] = jj_gen; + break label_123; } jj_consume_token(S); } @@ -4396,135 +4731,121 @@ LexicalUnit exp; finally { jj_save(4, xla); } } - private boolean jj_3R_180() { - if (jj_scan_token(UNICODERANGE)) return true; - return false; - } - - private boolean jj_3R_185() { - if (jj_3R_133()) return true; - return false; - } - - private boolean jj_3R_177() { - if (jj_scan_token(FUNCTION)) return true; - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_scan_token(1)) { jj_scanpos = xsp; break; } - } - xsp = jj_scanpos; - if (jj_3R_185()) jj_scanpos = xsp; - if (jj_scan_token(RPARAN)) return true; - return false; + private boolean jj_2_6(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_6(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(5, xla); } } - private boolean jj_3R_132() { - if (jj_3R_144()) return true; - return false; + private boolean jj_2_7(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_7(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(6, xla); } } - private boolean jj_3R_129() { - if (jj_3R_139()) return true; + private boolean jj_3R_181() { + if (jj_scan_token(IDENT)) return true; return false; } - private boolean jj_3R_174() { - if (jj_3R_180()) return true; + private boolean jj_3R_180() { + if (jj_scan_token(STRING)) return true; return false; } - private boolean jj_3R_128() { - if (jj_3R_138()) return true; + private boolean jj_3R_179() { + if (jj_3R_187()) return true; return false; } - private boolean jj_3R_173() { - if (jj_3R_179()) return true; + private boolean jj_3R_153() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_180()) { + jj_scanpos = xsp; + if (jj_3R_181()) { + jj_scanpos = xsp; + if (jj_3R_182()) { + jj_scanpos = xsp; + if (jj_3R_183()) { + jj_scanpos = xsp; + if (jj_3R_184()) return true; + } + } + } + } return false; } - private boolean jj_3R_172() { - if (jj_3R_178()) return true; + private boolean jj_3_1() { + if (jj_3R_124()) return true; return false; } - private boolean jj_3R_127() { - if (jj_3R_137()) return true; + private boolean jj_3R_139() { + if (jj_3R_149()) return true; return false; } - private boolean jj_3R_126() { - if (jj_3R_136()) return true; + private boolean jj_3R_138() { + if (jj_3R_148()) return true; return false; } - private boolean jj_3R_125() { - if (jj_3R_135()) return true; + private boolean jj_3R_137() { + if (jj_3R_147()) return true; return false; } private boolean jj_3R_136() { - if (jj_scan_token(HASH)) return true; + if (jj_3R_146()) return true; return false; } - private boolean jj_3R_116() { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_125()) { - jj_scanpos = xsp; - if (jj_3R_126()) { - jj_scanpos = xsp; - if (jj_3R_127()) { - jj_scanpos = xsp; - if (jj_3R_128()) { - jj_scanpos = xsp; - if (jj_3R_129()) return true; - } - } - } - } + private boolean jj_3R_178() { + if (jj_scan_token(DIMEN)) return true; return false; } - private boolean jj_3_1() { - if (jj_3R_114()) return true; + private boolean jj_3_5() { + if (jj_3R_124()) return true; return false; } - private boolean jj_3R_171() { - if (jj_scan_token(IDENT)) return true; + private boolean jj_3R_177() { + if (jj_scan_token(KHZ)) return true; return false; } - private boolean jj_3_4() { - if (jj_3R_114()) return true; + private boolean jj_3R_135() { + if (jj_3R_145()) return true; return false; } - private boolean jj_3R_170() { - if (jj_scan_token(STRING)) return true; + private boolean jj_3R_146() { + if (jj_scan_token(HASH)) return true; return false; } - private boolean jj_3R_169() { - if (jj_3R_177()) return true; + private boolean jj_3R_176() { + if (jj_scan_token(HZ)) return true; return false; } - private boolean jj_3R_143() { + private boolean jj_3R_126() { Token xsp; xsp = jj_scanpos; - if (jj_3R_170()) { + if (jj_3R_135()) { jj_scanpos = xsp; - if (jj_3R_171()) { + if (jj_3R_136()) { jj_scanpos = xsp; - if (jj_3R_172()) { + if (jj_3R_137()) { jj_scanpos = xsp; - if (jj_3R_173()) { + if (jj_3R_138()) { jj_scanpos = xsp; - if (jj_3R_174()) return true; + if (jj_3R_139()) return true; } } } @@ -4532,114 +4853,84 @@ LexicalUnit exp; return false; } - private boolean jj_3_2() { - if (jj_3R_115()) return true; - if (jj_3R_116()) return true; - return false; - } - - private boolean jj_3R_138() { - if (jj_scan_token(COLON)) return true; - return false; - } - - private boolean jj_3R_168() { - if (jj_scan_token(DIMEN)) return true; - return false; - } - - private boolean jj_3R_167() { - if (jj_scan_token(KHZ)) return true; - return false; - } - - private boolean jj_3R_166() { - if (jj_scan_token(HZ)) return true; - return false; - } - - private boolean jj_3R_165() { + private boolean jj_3R_175() { if (jj_scan_token(MS)) return true; return false; } - private boolean jj_3R_164() { + private boolean jj_3R_174() { if (jj_scan_token(SECOND)) return true; return false; } - private boolean jj_3_3() { - if (jj_3R_114()) return true; - return false; - } - - private boolean jj_3R_163() { + private boolean jj_3R_173() { if (jj_scan_token(GRAD)) return true; return false; } - private boolean jj_3R_162() { + private boolean jj_3R_172() { if (jj_scan_token(RAD)) return true; return false; } - private boolean jj_3R_121() { + private boolean jj_3R_131() { if (jj_scan_token(LBRACE)) return true; return false; } - private boolean jj_3R_161() { + private boolean jj_3R_171() { if (jj_scan_token(DEG)) return true; return false; } - private boolean jj_3R_160() { + private boolean jj_3R_170() { if (jj_scan_token(EXS)) return true; return false; } - private boolean jj_3R_159() { + private boolean jj_3R_169() { if (jj_scan_token(EMS)) return true; return false; } - private boolean jj_3R_158() { + private boolean jj_3R_168() { if (jj_scan_token(PX)) return true; return false; } - private boolean jj_3R_157() { + private boolean jj_3R_167() { if (jj_scan_token(IN)) return true; return false; } - private boolean jj_3R_120() { - if (jj_3R_133()) return true; + private boolean jj_3R_130() { + if (jj_3R_143()) return true; return false; } - private boolean jj_3R_156() { + private boolean jj_3R_166() { if (jj_scan_token(PC)) return true; return false; } - private boolean jj_3R_155() { + private boolean jj_3R_165() { if (jj_scan_token(MM)) return true; return false; } - private boolean jj_3R_182() { - if (jj_scan_token(EACH_VAR)) return true; + private boolean jj_3_2() { + if (jj_3R_125()) return true; + if (jj_3R_126()) return true; return false; } - private boolean jj_3R_154() { + private boolean jj_3R_164() { if (jj_scan_token(CM)) return true; return false; } - private boolean jj_3R_114() { - if (jj_3R_119()) return true; + private boolean jj_3R_124() { + if (jj_3R_129()) return true; if (jj_scan_token(COLON)) return true; Token xsp; while (true) { @@ -4647,80 +4938,85 @@ LexicalUnit exp; if (jj_scan_token(1)) { jj_scanpos = xsp; break; } } xsp = jj_scanpos; - if (jj_3R_120()) { + if (jj_3R_130()) { jj_scanpos = xsp; - if (jj_3R_121()) return true; + if (jj_3R_131()) return true; } return false; } - private boolean jj_3R_153() { + private boolean jj_3R_163() { if (jj_scan_token(PT)) return true; return false; } - private boolean jj_3R_152() { + private boolean jj_3_4() { + if (jj_3R_124()) return true; + return false; + } + + private boolean jj_3R_162() { if (jj_scan_token(PERCENTAGE)) return true; return false; } - private boolean jj_3R_150() { - if (jj_3R_176()) return true; + private boolean jj_3R_148() { + if (jj_scan_token(COLON)) return true; return false; } - private boolean jj_3R_139() { - if (jj_scan_token(LBRACKET)) return true; + private boolean jj_3R_160() { + if (jj_3R_186()) return true; return false; } - private boolean jj_3R_151() { + private boolean jj_3R_161() { if (jj_scan_token(NUMBER)) return true; return false; } - private boolean jj_3R_142() { + private boolean jj_3R_152() { Token xsp; xsp = jj_scanpos; - if (jj_3R_150()) jj_scanpos = xsp; + if (jj_3R_160()) jj_scanpos = xsp; xsp = jj_scanpos; - if (jj_3R_151()) { + if (jj_3R_161()) { jj_scanpos = xsp; - if (jj_3R_152()) { + if (jj_3R_162()) { jj_scanpos = xsp; - if (jj_3R_153()) { + if (jj_3R_163()) { jj_scanpos = xsp; - if (jj_3R_154()) { + if (jj_3R_164()) { jj_scanpos = xsp; - if (jj_3R_155()) { + if (jj_3R_165()) { jj_scanpos = xsp; - if (jj_3R_156()) { + if (jj_3R_166()) { jj_scanpos = xsp; - if (jj_3R_157()) { + if (jj_3R_167()) { jj_scanpos = xsp; - if (jj_3R_158()) { + if (jj_3R_168()) { jj_scanpos = xsp; - if (jj_3R_159()) { + if (jj_3R_169()) { jj_scanpos = xsp; - if (jj_3R_160()) { + if (jj_3R_170()) { jj_scanpos = xsp; - if (jj_3R_161()) { + if (jj_3R_171()) { jj_scanpos = xsp; - if (jj_3R_162()) { + if (jj_3R_172()) { jj_scanpos = xsp; - if (jj_3R_163()) { + if (jj_3R_173()) { jj_scanpos = xsp; - if (jj_3R_164()) { + if (jj_3R_174()) { jj_scanpos = xsp; - if (jj_3R_165()) { + if (jj_3R_175()) { jj_scanpos = xsp; - if (jj_3R_166()) { + if (jj_3R_176()) { jj_scanpos = xsp; - if (jj_3R_167()) { + if (jj_3R_177()) { jj_scanpos = xsp; - if (jj_3R_168()) { + if (jj_3R_178()) { jj_scanpos = xsp; - if (jj_3R_169()) return true; + if (jj_3R_179()) return true; } } } @@ -4742,12 +5038,12 @@ LexicalUnit exp; return false; } - private boolean jj_3R_131() { + private boolean jj_3R_141() { Token xsp; xsp = jj_scanpos; - if (jj_3R_142()) { + if (jj_3R_152()) { jj_scanpos = xsp; - if (jj_3R_143()) return true; + if (jj_3R_153()) return true; } while (true) { xsp = jj_scanpos; @@ -4756,48 +5052,76 @@ LexicalUnit exp; return false; } - private boolean jj_3R_118() { + private boolean jj_3R_128() { Token xsp; xsp = jj_scanpos; - if (jj_3R_131()) { + if (jj_3R_141()) { jj_scanpos = xsp; - if (jj_3R_132()) return true; + if (jj_3R_142()) return true; } return false; } - private boolean jj_3R_149() { - if (jj_scan_token(PARENT)) return true; + private boolean jj_3R_188() { + if (jj_scan_token(HASH)) return true; return false; } - private boolean jj_3R_148() { - if (jj_scan_token(ANY)) return true; + private boolean jj_3R_127() { + if (jj_3R_140()) return true; return false; } - private boolean jj_3R_117() { - if (jj_3R_130()) return true; + private boolean jj_3_3() { + if (jj_3R_124()) return true; return false; } - private boolean jj_3R_178() { - if (jj_scan_token(HASH)) return true; + private boolean jj_3R_194() { + if (jj_scan_token(PLUS)) return true; return false; } - private boolean jj_3R_119() { - if (jj_scan_token(IDENT)) return true; + private boolean jj_3R_193() { + if (jj_scan_token(MINUS)) return true; + return false; + } + + private boolean jj_3R_186() { Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_scan_token(1)) { jj_scanpos = xsp; break; } + xsp = jj_scanpos; + if (jj_3R_193()) { + jj_scanpos = xsp; + if (jj_3R_194()) return true; } return false; } - private boolean jj_3R_144() { - if (jj_scan_token(VARIABLE)) return true; + private boolean jj_3_7() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_127()) jj_scanpos = xsp; + if (jj_3R_128()) return true; + return false; + } + + private boolean jj_3R_189() { + if (jj_scan_token(URL)) return true; + return false; + } + + private boolean jj_3R_143() { + if (jj_3R_128()) return true; + return false; + } + + private boolean jj_3R_192() { + if (jj_scan_token(EACH_VAR)) return true; + return false; + } + + private boolean jj_3R_151() { + if (jj_scan_token(COMMA)) return true; Token xsp; while (true) { xsp = jj_scanpos; @@ -4806,103 +5130,153 @@ LexicalUnit exp; return false; } - private boolean jj_3R_181() { - if (jj_scan_token(IDENT)) return true; + private boolean jj_3R_150() { + if (jj_scan_token(DIV)) return true; + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_scan_token(1)) { jj_scanpos = xsp; break; } + } return false; } - private boolean jj_3R_175() { + private boolean jj_3R_140() { Token xsp; xsp = jj_scanpos; - if (jj_3R_181()) { + if (jj_3R_150()) { jj_scanpos = xsp; - if (jj_3R_182()) return true; + if (jj_3R_151()) return true; } return false; } - private boolean jj_3R_184() { - if (jj_scan_token(PLUS)) return true; + private boolean jj_3R_149() { + if (jj_scan_token(LBRACKET)) return true; return false; } - private boolean jj_3R_135() { + private boolean jj_3R_190() { + if (jj_scan_token(UNICODERANGE)) return true; + return false; + } + + private boolean jj_3R_195() { + if (jj_3R_143()) return true; + return false; + } + + private boolean jj_3R_159() { + if (jj_scan_token(PARENT)) return true; + return false; + } + + private boolean jj_3R_158() { + if (jj_scan_token(ANY)) return true; + return false; + } + + private boolean jj_3R_129() { + if (jj_scan_token(IDENT)) return true; Token xsp; - xsp = jj_scanpos; - if (jj_3R_147()) { - jj_scanpos = xsp; - if (jj_3R_148()) { - jj_scanpos = xsp; - if (jj_3R_149()) return true; - } + while (true) { + xsp = jj_scanpos; + if (jj_scan_token(1)) { jj_scanpos = xsp; break; } } return false; } - private boolean jj_3R_147() { + private boolean jj_3R_154() { + if (jj_scan_token(VARIABLE)) return true; Token xsp; - if (jj_3R_175()) return true; while (true) { xsp = jj_scanpos; - if (jj_3R_175()) { jj_scanpos = xsp; break; } + if (jj_scan_token(1)) { jj_scanpos = xsp; break; } } return false; } - private boolean jj_3R_183() { - if (jj_scan_token(MINUS)) return true; + private boolean jj_3R_191() { + if (jj_scan_token(IDENT)) return true; return false; } - private boolean jj_3R_176() { + private boolean jj_3R_185() { Token xsp; xsp = jj_scanpos; - if (jj_3R_183()) { + if (jj_3R_191()) { jj_scanpos = xsp; - if (jj_3R_184()) return true; + if (jj_3R_192()) return true; } return false; } - private boolean jj_3R_146() { - if (jj_scan_token(PRECEDES)) return true; + private boolean jj_3R_187() { + if (jj_scan_token(FUNCTION)) return true; + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_scan_token(1)) { jj_scanpos = xsp; break; } + } + xsp = jj_scanpos; + if (jj_3R_195()) jj_scanpos = xsp; + if (jj_scan_token(RPARAN)) return true; return false; } private boolean jj_3R_145() { - if (jj_scan_token(PLUS)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_157()) { + jj_scanpos = xsp; + if (jj_3R_158()) { + jj_scanpos = xsp; + if (jj_3R_159()) return true; + } + } return false; } - private boolean jj_3_5() { + private boolean jj_3R_157() { Token xsp; - xsp = jj_scanpos; - if (jj_3R_117()) jj_scanpos = xsp; - if (jj_3R_118()) return true; + if (jj_3R_185()) return true; + while (true) { + xsp = jj_scanpos; + if (jj_3R_185()) { jj_scanpos = xsp; break; } + } return false; } - private boolean jj_3R_134() { + private boolean jj_3R_156() { + if (jj_scan_token(PRECEDES)) return true; + return false; + } + + private boolean jj_3R_155() { + if (jj_scan_token(PLUS)) return true; + return false; + } + + private boolean jj_3R_144() { Token xsp; xsp = jj_scanpos; - if (jj_3R_145()) { + if (jj_3R_155()) { jj_scanpos = xsp; - if (jj_3R_146()) return true; + if (jj_3R_156()) return true; } return false; } - private boolean jj_3R_179() { - if (jj_scan_token(URL)) return true; + private boolean jj_3R_142() { + if (jj_3R_154()) return true; return false; } - private boolean jj_3R_133() { - if (jj_3R_118()) return true; + private boolean jj_3R_184() { + if (jj_3R_190()) return true; return false; } - private boolean jj_3R_123() { + private boolean jj_3R_133() { if (jj_scan_token(PRECEDES)) return true; Token xsp; while (true) { @@ -4912,44 +5286,39 @@ LexicalUnit exp; return false; } - private boolean jj_3R_115() { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_122()) { - jj_scanpos = xsp; - if (jj_3R_123()) { - jj_scanpos = xsp; - if (jj_3R_124()) return true; - } - } + private boolean jj_3R_183() { + if (jj_3R_189()) return true; return false; } - private boolean jj_3R_122() { - if (jj_scan_token(PLUS)) return true; - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_scan_token(1)) { jj_scanpos = xsp; break; } - } + private boolean jj_3R_182() { + if (jj_3R_188()) return true; return false; } - private boolean jj_3R_124() { + private boolean jj_3R_134() { if (jj_scan_token(S)) return true; Token xsp; xsp = jj_scanpos; - if (jj_3R_134()) jj_scanpos = xsp; + if (jj_3R_144()) jj_scanpos = xsp; return false; } - private boolean jj_3R_137() { - if (jj_scan_token(DOT)) return true; + private boolean jj_3R_125() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_132()) { + jj_scanpos = xsp; + if (jj_3R_133()) { + jj_scanpos = xsp; + if (jj_3R_134()) return true; + } + } return false; } - private boolean jj_3R_141() { - if (jj_scan_token(COMMA)) return true; + private boolean jj_3R_132() { + if (jj_scan_token(PLUS)) return true; Token xsp; while (true) { xsp = jj_scanpos; @@ -4958,23 +5327,13 @@ LexicalUnit exp; return false; } - private boolean jj_3R_140() { - if (jj_scan_token(DIV)) return true; - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_scan_token(1)) { jj_scanpos = xsp; break; } - } + private boolean jj_3R_147() { + if (jj_scan_token(DOT)) return true; return false; } - private boolean jj_3R_130() { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_140()) { - jj_scanpos = xsp; - if (jj_3R_141()) return true; - } + private boolean jj_3_6() { + if (jj_3R_124()) return true; return false; } @@ -4988,7 +5347,7 @@ LexicalUnit exp; private Token jj_scanpos, jj_lastpos; private int jj_la; private int jj_gen; - final private int[] jj_la1 = new int[171]; + final private int[] jj_la1 = new int[187]; static private int[] jj_la1_0; static private int[] jj_la1_1; static private int[] jj_la1_2; @@ -5000,18 +5359,18 @@ LexicalUnit exp; jj_la1_init_3(); } private static void jj_la1_init_0() { - jj_la1_0 = new int[] {0x0,0xc02,0xc02,0x0,0xc00,0x2,0x2,0x2,0xce800000,0xc00,0x2,0xc00,0x2,0x0,0x2,0x0,0x2,0x2,0x2,0xcebed400,0xcebed400,0x2,0x80000,0x2,0x2,0x2,0x2,0x0,0x40000000,0x2,0x0,0x100000,0x2,0x0,0x2,0x2,0x2,0x2,0x0,0x100000,0x2,0x0,0x2,0x3ed400,0x2,0x2,0x220000,0x2,0x220000,0x220002,0x2,0x2,0x2,0x2,0xce800000,0x0,0xce800000,0x2,0x80000,0x2,0x2,0x48800000,0x48800000,0x48800000,0x48800000,0x48800000,0x48800000,0x48800000,0x48800000,0x48800000,0x48800000,0xce800000,0x80000000,0x80000000,0x80000000,0x80000000,0x86000000,0x2,0x2,0x1c000,0x2,0x0,0x2,0x1c000,0x40000000,0x2,0x2,0x0,0x2,0x0,0x2,0x100000,0x2,0x2,0x2,0x2,0xce800000,0x0,0xce800000,0x2,0x2,0x80000,0x2,0x2,0x2,0x2,0x0,0x2,0xce800000,0x0,0xce800000,0x2,0x80000,0x2,0x2,0x40000000,0x80000,0x2,0x2,0x0,0x2,0x100000,0x2,0x0,0x2,0x2,0x2,0x100000,0x2,0x2,0x0,0x100000,0x2,0x0,0x2,0x2,0x0,0x2,0x0,0x100000,0x2,0x0,0x2,0x61000,0x2,0x0,0x2,0x2,0x2,0x2,0x480000,0x480000,0x60000,0x60000,0x0,0x0,0x60000,0x2,0x60000,0x2,0x60000,0x2,0xce800000,0x2,0x2,0x2,0x0,0x100000,0x2,0x0,0x2,}; + jj_la1_0 = new int[] {0x0,0xc02,0xc02,0x0,0xc00,0x2,0x2,0x2,0x1d000000,0xc00,0x2,0xc00,0x2,0x0,0x2,0x0,0x2,0x2,0x2,0x1d3ed400,0x1d3ed400,0x2,0x80000,0x2,0x2,0x2,0x2,0x0,0x0,0x2,0x0,0x100000,0x2,0x0,0x2,0x2,0x2,0x2,0x0,0x100000,0x2,0x0,0x2,0x3ed400,0x2,0x2,0x220000,0x2,0x220000,0x220002,0x2,0x2,0x2,0x2,0x1d000000,0x0,0x1d000000,0x2,0x80000,0x2,0x2,0x11000000,0x11000000,0x11000000,0x11000000,0x11000000,0x11000000,0x11000000,0x11000000,0x11000000,0x11000000,0x1d000000,0x0,0x0,0x0,0x0,0xc000000,0x2,0x2,0x1c000,0x2,0x0,0x2,0x1c000,0x0,0x2,0x2,0x0,0x2,0x0,0x2,0x100000,0xe4e70002,0x2,0x1d000000,0x0,0x1d000000,0x2,0x0,0x2,0xe4e70002,0x0,0x2,0x1d000000,0x0,0x1d000000,0x2,0xe4e70002,0x2,0x2,0x2,0x2,0x1d000000,0x0,0x1d000000,0x2,0x2,0x80000,0x2,0x2,0x2,0x2,0x0,0x2,0x1d000000,0x0,0x1d000000,0x2,0x80000,0x2,0x2,0x0,0x80000,0x2,0x2,0x0,0x2,0x100000,0x2,0x0,0x2,0x2,0x2,0x100000,0x2,0x2,0x0,0x100000,0x2,0x0,0x2,0x2,0x0,0x2,0x0,0x100000,0x2,0x0,0x2,0x61000,0x2,0x0,0x2,0x2,0x2,0x2,0x880000,0x880000,0x60000,0x60000,0x0,0x0,0x60000,0x2,0x60000,0x2,0x60000,0x2,0x1d000000,0x2,0x2,0x2,0x0,0x100000,0x2,0x0,0x2,}; } private static void jj_la1_init_1() { - jj_la1_1 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10083000,0x0,0x0,0x0,0x0,0x88000000,0x0,0x10000000,0x0,0x0,0x0,0xb8000001,0xb8000001,0x0,0x0,0x0,0x0,0x0,0x0,0x10000000,0x0,0x0,0x10000000,0x0,0x0,0x10000000,0x0,0x0,0x0,0x0,0x10000000,0x0,0x0,0x10000000,0x0,0xa8000001,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10882000,0x882000,0x10000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10000000,0x10000000,0x10000000,0x10000000,0x10000000,0x10000000,0x0,0x0,0x0,0x0,0x18000000,0x0,0x0,0x0,0x0,0x0,0x10000000,0x0,0x4000000,0x0,0x0,0x0,0x0,0x0,0x0,0x10802000,0x802000,0x10000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10000000,0x0,0x10802000,0x802000,0x10000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10000000,0x0,0x0,0x0,0x600,0x0,0x0,0x0,0x0,0x0,0x0,0x10000000,0x0,0x0,0x10000000,0x0,0x0,0x0,0x0,0x10000000,0x0,0x0,0x10000000,0x0,0xb8000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20000000,0x98000000,0xb8000000,0x0,0xb8000000,0x0,0xb8000000,0x0,0x10000000,0x0,0x0,0x0,0x10000000,0x0,0x0,0x10000000,0x0,}; + jj_la1_1 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1060018,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x38,0x38,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x15040018,0x15040000,0x18,0x0,0x0,0x0,0x0,0x8,0x8,0x8,0x8,0x8,0x8,0x8,0x8,0x8,0x8,0x18,0x10,0x10,0x10,0x10,0x10,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7,0x0,0x10040018,0x10040000,0x18,0x0,0x8000000,0x0,0x7,0x80000000,0x0,0x10040018,0x10040000,0x18,0x0,0x7,0x0,0x0,0x0,0x0,0x10040018,0x10040000,0x18,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10040018,0x10040000,0x18,0x0,0x0,0x0,0x0,0x8,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc000,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,0x18,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; } private static void jj_la1_init_2() { - jj_la1_2 = new int[] {0x200000,0x1000000,0x1000000,0x80000,0x1000000,0x0,0x0,0x0,0xd40001,0x1000000,0x0,0x1000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3fc0002,0x3fc0002,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3f80002,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x140001,0x100001,0x40000,0x0,0x0,0x0,0x0,0x40000,0x40000,0x0,0x0,0x40000,0x40000,0x40000,0x40000,0x40000,0x40000,0x40000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x140001,0x100001,0x40000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x140001,0x100001,0x40000,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,0x2000000,0x0,0x0,0x0,0x0,0x0,0x0,0x7ffff,0x0,0x2000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x3fffe,0x40000,0x7fffe,0x0,0x7ffff,0x0,0x7ffff,0x0,0xdc0000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; + jj_la1_2 = new int[] {0x8000000,0x40000000,0x40000000,0x2000000,0x40000000,0x0,0x0,0x0,0x35000044,0x40000000,0x0,0x40000000,0x0,0x22,0x0,0x4,0x0,0x0,0x0,0xff0000ae,0xff0000ae,0x0,0x0,0x0,0x0,0x0,0x0,0x4,0x0,0x0,0x4,0x0,0x0,0x4,0x0,0x0,0x0,0x0,0x4,0x0,0x0,0x4,0x0,0xfe0000aa,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x5000044,0x4000040,0x1000004,0x0,0x0,0x0,0x0,0x1000000,0x1000000,0x0,0x0,0x1000000,0x1000000,0x1000000,0x1000000,0x1000000,0x1000000,0x1000004,0x4,0x4,0x4,0x4,0x4,0x0,0x0,0x0,0x0,0x6,0x0,0x0,0x0,0x0,0x0,0x4,0x0,0x1,0x0,0x0,0x4c,0x0,0x5000044,0x4000040,0x1000004,0x0,0x0,0x0,0x4c,0x0,0x0,0x5000044,0x4000040,0x1000004,0x0,0x4c,0x0,0x0,0x0,0x0,0x5000044,0x4000040,0x1000004,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4,0x0,0x5000044,0x4000040,0x1000004,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4,0x0,0x0,0x4,0x0,0x0,0x80000000,0x0,0x4,0x0,0x0,0x4,0x0,0x1ffffee,0x0,0x80000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffff88,0x1000026,0x1ffffae,0x0,0x1ffffee,0x0,0x1ffffee,0x0,0x37000004,0x0,0x0,0x0,0x4,0x0,0x0,0x4,0x0,}; } private static void jj_la1_init_3() { - jj_la1_3 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x38,0x38,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x38,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,0x10,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x18,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10,0x8,0x18,0x0,0x18,0x0,0x18,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; + jj_la1_3 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xe00,0xe00,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xe00,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,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,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x400,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,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,0x600,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x400,0x200,0x600,0x0,0x600,0x0,0x600,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; } - final private JJCalls[] jj_2_rtns = new JJCalls[5]; + final private JJCalls[] jj_2_rtns = new JJCalls[7]; private boolean jj_rescan = false; private int jj_gc = 0; @@ -5021,7 +5380,7 @@ LexicalUnit exp; token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 171; i++) jj_la1[i] = -1; + for (int i = 0; i < 187; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -5031,7 +5390,7 @@ LexicalUnit exp; token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 171; i++) jj_la1[i] = -1; + for (int i = 0; i < 187; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -5041,7 +5400,7 @@ LexicalUnit exp; token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 171; i++) jj_la1[i] = -1; + for (int i = 0; i < 187; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -5051,7 +5410,7 @@ LexicalUnit exp; token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 171; i++) jj_la1[i] = -1; + for (int i = 0; i < 187; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -5163,12 +5522,12 @@ LexicalUnit exp; /** Generate ParseException. */ public ParseException generateParseException() { jj_expentries.clear(); - boolean[] la1tokens = new boolean[102]; + boolean[] la1tokens = new boolean[108]; if (jj_kind >= 0) { la1tokens[jj_kind] = true; jj_kind = -1; } - for (int i = 0; i < 171; i++) { + for (int i = 0; i < 187; i++) { if (jj_la1[i] == jj_gen) { for (int j = 0; j < 32; j++) { if ((jj_la1_0[i] & (1<<j)) != 0) { @@ -5186,7 +5545,7 @@ LexicalUnit exp; } } } - for (int i = 0; i < 102; i++) { + for (int i = 0; i < 108; i++) { if (la1tokens[i]) { jj_expentry = new int[1]; jj_expentry[0] = i; @@ -5213,7 +5572,7 @@ LexicalUnit exp; private void jj_rescan_token() { jj_rescan = true; - for (int i = 0; i < 5; i++) { + for (int i = 0; i < 7; i++) { try { JJCalls p = jj_2_rtns[i]; do { @@ -5225,6 +5584,8 @@ LexicalUnit exp; case 2: jj_3_3(); break; case 3: jj_3_4(); break; case 4: jj_3_5(); break; + case 5: jj_3_6(); break; + case 6: jj_3_7(); break; } } p = p.next; diff --git a/theme-compiler/src/com/vaadin/sass/parser/Parser.jj b/theme-compiler/src/com/vaadin/sass/parser/Parser.jj index 717094a763..f126f8e343 100644 --- a/theme-compiler/src/com/vaadin/sass/parser/Parser.jj +++ b/theme-compiler/src/com/vaadin/sass/parser/Parser.jj @@ -504,6 +504,7 @@ TOKEN : | < COMMA : "," > | < SEMICOLON : ";" > | < PRECEDES : ">" > + | < SUCCEEDS : "<" > | < DIV : "/" > | < LBRACKET : "[" > | < RBRACKET : "]" > @@ -512,6 +513,10 @@ TOKEN : | < DOT : "." > | < LPARAN : "(" > | < RPARAN : ")"> + | < COMPARE : "==" > + | < OR : "||" > + | < AND : "&&" > + | < NOT_EQ : "!=" > } <DEFAULT> @@ -545,7 +550,6 @@ TOKEN : /* basic tokens */ | < #NAME : ( <NMCHAR> )+ > } - <DEFAULT> TOKEN : { @@ -574,6 +578,11 @@ TOKEN : | <SUPPORTS_SYM : "@supports"> } +< DEFAULT > +TOKEN: +{ + < IF : "if" >
} + <DEFAULT> TOKEN: { @@ -1008,7 +1017,7 @@ void styleRule() : start = true; documentHandler.startSelector(l); } - ( includeDirective() | media() | extendDirective()| eachDirective() | variable() | LOOKAHEAD(3) declarationOrNestedProperties() | styleRule())* + ( ifDirective() | includeDirective() | media() | extendDirective()| eachDirective() | variable() | LOOKAHEAD(3) declarationOrNestedProperties() | styleRule())* <RBRACE> (<S>)* } catch (ThrowedParseException e) { if (errorHandler != null) { @@ -1343,6 +1352,56 @@ void variable() : } } +void ifDirective() : +{ + Token n = null; + String evaluator = ""; +} +{ + < IF_SYM > + ( n = booleanExpressionToken() { evaluator += n.image; } )+
< LBRACE >(< S >)*
{ documentHandler.startIfElseDirective(); + documentHandler.ifDirective(evaluator); + } + ( includeDirective() | media() | extendDirective()| variable() | LOOKAHEAD(3) declarationOrNestedProperties() | styleRule())* + < RBRACE >(< S >)* + (elseDirective())* + { documentHandler.endIfElseDirective(); } +} + +void elseDirective() :
{ + String evaluator = ""; + Token n = null;
} +{ + < ELSE_SYM >(< S >)* + ( < IF > (n = booleanExpressionToken() { if(n != null) evaluator += n.image; })*)? + < LBRACE >(< S >)* + { if(!evaluator.trim().equals("")){ documentHandler.ifDirective(evaluator); } + else{ documentHandler.elseDirective(); }
}
( includeDirective() | media() | extendDirective()| variable() | LOOKAHEAD(3) declarationOrNestedProperties() | styleRule())*
< RBRACE >(< S >)* +} + +Token booleanExpressionToken() :
{ + Token n = null;
} +{
(
n = < VARIABLE > + |n = < IDENT > + |n = < NUMBER > + |n = < LPARAN > + |n = < RPARAN > + |n = < PLUS > + |n = < MINUS > + |n = < DIV > + |n = < ANY > + |n = < COMPARE > + |n = < EQ > + |n = < PRECEDES > + |n = < SUCCEEDS > + |n = < OR > + |n = < AND > + |n = < S > + |n = < NOT_EQ > +){ + return n;
} +} + void eachDirective() : { Token var; @@ -1513,16 +1572,6 @@ Node whileDirective() : { return documentHandler.whileDirective(condition, body);} } -JAVACODE -Node ifDirective(){ - return documentHandler.ifDirective(); -} - -JAVACODE -void elseDirective(){ - // throw new ParseException("Invalid CSS: @else must come after @if"); -} - void extendDirective() : {SelectorList list;} { diff --git a/theme-compiler/src/com/vaadin/sass/parser/ParserConstants.java b/theme-compiler/src/com/vaadin/sass/parser/ParserConstants.java index 41fb8ca030..6e6c0ae204 100644 --- a/theme-compiler/src/com/vaadin/sass/parser/ParserConstants.java +++ b/theme-compiler/src/com/vaadin/sass/parser/ParserConstants.java @@ -41,165 +41,177 @@ public interface ParserConstants { /** RegularExpression Id. */ int PRECEDES = 21; /** RegularExpression Id. */ - int DIV = 22; + int SUCCEEDS = 22; /** RegularExpression Id. */ - int LBRACKET = 23; + int DIV = 23; /** RegularExpression Id. */ - int RBRACKET = 24; + int LBRACKET = 24; /** RegularExpression Id. */ - int ANY = 25; + int RBRACKET = 25; /** RegularExpression Id. */ - int PARENT = 26; + int ANY = 26; /** RegularExpression Id. */ - int DOT = 27; + int PARENT = 27; /** RegularExpression Id. */ - int LPARAN = 28; + int DOT = 28; /** RegularExpression Id. */ - int RPARAN = 29; + int LPARAN = 29; /** RegularExpression Id. */ - int COLON = 30; + int RPARAN = 30; /** RegularExpression Id. */ - int EACH_VAR = 31; + int COMPARE = 31; /** RegularExpression Id. */ - int NONASCII = 32; + int OR = 32; /** RegularExpression Id. */ - int H = 33; + int AND = 33; /** RegularExpression Id. */ - int UNICODE = 34; + int NOT_EQ = 34; /** RegularExpression Id. */ - int ESCAPE = 35; + int COLON = 35; /** RegularExpression Id. */ - int NMSTART = 36; + int EACH_VAR = 36; /** RegularExpression Id. */ - int NMCHAR = 37; + int NONASCII = 37; /** RegularExpression Id. */ - int STRINGCHAR = 38; + int H = 38; /** RegularExpression Id. */ - int D = 39; + int UNICODE = 39; /** RegularExpression Id. */ - int NAME = 40; + int ESCAPE = 40; /** RegularExpression Id. */ - int TO = 41; + int NMSTART = 41; /** RegularExpression Id. */ - int THROUGH = 42; + int NMCHAR = 42; /** RegularExpression Id. */ - int EACH_IN = 43; + int STRINGCHAR = 43; /** RegularExpression Id. */ - int MIXIN_SYM = 44; + int D = 44; /** RegularExpression Id. */ - int INCLUDE_SYM = 45; + int NAME = 45; /** RegularExpression Id. */ - int FUNCTION_SYM = 46; + int TO = 46; /** RegularExpression Id. */ - int RETURN_SYM = 47; + int THROUGH = 47; /** RegularExpression Id. */ - int DEBUG_SYM = 48; + int EACH_IN = 48; /** RegularExpression Id. */ - int WARN_SYM = 49; + int MIXIN_SYM = 49; /** RegularExpression Id. */ - int FOR_SYM = 50; + int INCLUDE_SYM = 50; /** RegularExpression Id. */ - int EACH_SYM = 51; + int FUNCTION_SYM = 51; /** RegularExpression Id. */ - int WHILE_SYM = 52; + int RETURN_SYM = 52; /** RegularExpression Id. */ - int IF_SYM = 53; + int DEBUG_SYM = 53; /** RegularExpression Id. */ - int ELSE_SYM = 54; + int WARN_SYM = 54; /** RegularExpression Id. */ - int EXTEND_SYM = 55; + int FOR_SYM = 55; /** RegularExpression Id. */ - int MOZ_DOCUMENT_SYM = 56; + int EACH_SYM = 56; /** RegularExpression Id. */ - int SUPPORTS_SYM = 57; + int WHILE_SYM = 57; /** RegularExpression Id. */ - int GUARDED_SYM = 58; + int IF_SYM = 58; /** RegularExpression Id. */ - int STRING = 59; + int ELSE_SYM = 59; /** RegularExpression Id. */ - int IDENT = 60; + int EXTEND_SYM = 60; /** RegularExpression Id. */ - int NUMBER = 61; + int MOZ_DOCUMENT_SYM = 61; /** RegularExpression Id. */ - int _URL = 62; + int SUPPORTS_SYM = 62; /** RegularExpression Id. */ - int URL = 63; + int IF = 63; /** RegularExpression Id. */ - int VARIABLE = 64; + int GUARDED_SYM = 64; /** RegularExpression Id. */ - int PERCENTAGE = 65; + int STRING = 65; /** RegularExpression Id. */ - int PT = 66; + int IDENT = 66; /** RegularExpression Id. */ - int MM = 67; + int NUMBER = 67; /** RegularExpression Id. */ - int CM = 68; + int _URL = 68; /** RegularExpression Id. */ - int PC = 69; + int URL = 69; /** RegularExpression Id. */ - int IN = 70; + int VARIABLE = 70; /** RegularExpression Id. */ - int PX = 71; + int PERCENTAGE = 71; /** RegularExpression Id. */ - int EMS = 72; + int PT = 72; /** RegularExpression Id. */ - int EXS = 73; + int MM = 73; /** RegularExpression Id. */ - int DEG = 74; + int CM = 74; /** RegularExpression Id. */ - int RAD = 75; + int PC = 75; /** RegularExpression Id. */ - int GRAD = 76; + int IN = 76; /** RegularExpression Id. */ - int MS = 77; + int PX = 77; /** RegularExpression Id. */ - int SECOND = 78; + int EMS = 78; /** RegularExpression Id. */ - int HZ = 79; + int EXS = 79; /** RegularExpression Id. */ - int KHZ = 80; + int DEG = 80; /** RegularExpression Id. */ - int DIMEN = 81; + int RAD = 81; /** RegularExpression Id. */ - int HASH = 82; + int GRAD = 82; /** RegularExpression Id. */ - int IMPORT_SYM = 83; + int MS = 83; /** RegularExpression Id. */ - int MEDIA_SYM = 84; + int SECOND = 84; /** RegularExpression Id. */ - int CHARSET_SYM = 85; + int HZ = 85; /** RegularExpression Id. */ - int PAGE_SYM = 86; + int KHZ = 86; /** RegularExpression Id. */ - int FONT_FACE_SYM = 87; + int DIMEN = 87; /** RegularExpression Id. */ - int ATKEYWORD = 88; + int HASH = 88; /** RegularExpression Id. */ - int IMPORTANT_SYM = 89; + int IMPORT_SYM = 89; /** RegularExpression Id. */ - int RANGE0 = 90; + int MEDIA_SYM = 90; /** RegularExpression Id. */ - int RANGE1 = 91; + int CHARSET_SYM = 91; /** RegularExpression Id. */ - int RANGE2 = 92; + int PAGE_SYM = 92; /** RegularExpression Id. */ - int RANGE3 = 93; + int FONT_FACE_SYM = 93; /** RegularExpression Id. */ - int RANGE4 = 94; + int ATKEYWORD = 94; /** RegularExpression Id. */ - int RANGE5 = 95; + int IMPORTANT_SYM = 95; /** RegularExpression Id. */ - int RANGE6 = 96; + int RANGE0 = 96; /** RegularExpression Id. */ - int RANGE = 97; + int RANGE1 = 97; /** RegularExpression Id. */ - int UNI = 98; + int RANGE2 = 98; /** RegularExpression Id. */ - int UNICODERANGE = 99; + int RANGE3 = 99; /** RegularExpression Id. */ - int FUNCTION = 100; + int RANGE4 = 100; /** RegularExpression Id. */ - int UNKNOWN = 101; + int RANGE5 = 101; + /** RegularExpression Id. */ + int RANGE6 = 102; + /** RegularExpression Id. */ + int RANGE = 103; + /** RegularExpression Id. */ + int UNI = 104; + /** RegularExpression Id. */ + int UNICODERANGE = 105; + /** RegularExpression Id. */ + int FUNCTION = 106; + /** RegularExpression Id. */ + int UNKNOWN = 107; /** Lexical state. */ int DEFAULT = 0; @@ -234,6 +246,7 @@ public interface ParserConstants { "\",\"", "\";\"", "\">\"", + "\"<\"", "\"/\"", "\"[\"", "\"]\"", @@ -242,6 +255,10 @@ public interface ParserConstants { "\".\"", "\"(\"", "\")\"", + "\"==\"", + "\"||\"", + "\"&&\"", + "\"!=\"", "\":\"", "<EACH_VAR>", "<NONASCII>", @@ -270,6 +287,7 @@ public interface ParserConstants { "\"@extend\"", "\"@-moz-document\"", "\"@supports\"", + "\"if\"", "<GUARDED_SYM>", "<STRING>", "<IDENT>", diff --git a/theme-compiler/src/com/vaadin/sass/parser/ParserTokenManager.java b/theme-compiler/src/com/vaadin/sass/parser/ParserTokenManager.java index 7c176f2262..a878acadec 100644 --- a/theme-compiler/src/com/vaadin/sass/parser/ParserTokenManager.java +++ b/theme-compiler/src/com/vaadin/sass/parser/ParserTokenManager.java @@ -37,168 +37,170 @@ private final int jjStopStringLiteralDfa_0(int pos, long active0, long active1) switch (pos) { case 0: - if ((active0 & 0x8000000L) != 0L) + if ((active0 & 0x10000000L) != 0L) return 400; if ((active0 & 0x40800L) != 0L) return 159; - if ((active0 & 0x3fff00000000000L) != 0L || (active1 & 0xf80000L) != 0L) + if ((active0 & 0x7ffe000000000000L) != 0L || (active1 & 0x3e000000L) != 0L) return 96; - if ((active0 & 0x400044L) != 0L) - return 3; - if ((active0 & 0xe0000000000L) != 0L) + if ((active0 & 0x8001c00000000000L) != 0L) { - jjmatchedKind = 60; + jjmatchedKind = 66; return 401; } + if ((active0 & 0x400000000L) != 0L) + return 402; + if ((active0 & 0x800044L) != 0L) + return 3; return -1; case 1: - if ((active0 & 0x100000000000000L) != 0L) - return 97; - if ((active0 & 0x40000000000L) != 0L) + if ((active0 & 0x800000000000L) != 0L) { - jjmatchedKind = 60; + jjmatchedKind = 66; jjmatchedPos = 1; return 401; } - if ((active0 & 0xa0000000000L) != 0L) - return 401; - if ((active0 & 0x40L) != 0L) - return 1; - if ((active0 & 0x2fff00000000000L) != 0L || (active1 & 0xf80000L) != 0L) + if ((active0 & 0x2000000000000000L) != 0L) + return 97; + if ((active0 & 0x5ffe000000000000L) != 0L || (active1 & 0x3e000000L) != 0L) { - jjmatchedKind = 88; + jjmatchedKind = 94; jjmatchedPos = 1; - return 402; + return 403; } + if ((active0 & 0x8001400000000000L) != 0L) + return 401; + if ((active0 & 0x40L) != 0L) + return 1; return -1; case 2: - if ((active0 & 0x20000000000000L) != 0L) - return 402; - if ((active0 & 0x3dff00000000000L) != 0L || (active1 & 0xf80000L) != 0L) + if ((active0 & 0x400000000000000L) != 0L) + return 403; + if ((active0 & 0x7bfe000000000000L) != 0L || (active1 & 0x3e000000L) != 0L) { - jjmatchedKind = 88; + jjmatchedKind = 94; jjmatchedPos = 2; - return 402; + return 403; } - if ((active0 & 0x40000000000L) != 0L) + if ((active0 & 0x800000000000L) != 0L) { - jjmatchedKind = 60; + jjmatchedKind = 66; jjmatchedPos = 2; return 401; } return -1; case 3: - if ((active0 & 0x4000000000000L) != 0L) - return 402; - if ((active0 & 0x3dbf00000000000L) != 0L || (active1 & 0xf80000L) != 0L) + if ((active0 & 0x80000000000000L) != 0L) + return 403; + if ((active0 & 0x800000000000L) != 0L) { - jjmatchedKind = 88; + jjmatchedKind = 66; jjmatchedPos = 3; - return 402; + return 401; } - if ((active0 & 0x40000000000L) != 0L) + if ((active0 & 0x7b7e000000000000L) != 0L || (active1 & 0x3e000000L) != 0L) { - jjmatchedKind = 60; + jjmatchedKind = 94; jjmatchedPos = 3; - return 401; + return 403; } return -1; case 4: - if ((active0 & 0x4a000000000000L) != 0L || (active1 & 0x400000L) != 0L) - return 402; - if ((active0 & 0x391f00000000000L) != 0L || (active1 & 0xb80000L) != 0L) + if ((active0 & 0x940000000000000L) != 0L || (active1 & 0x10000000L) != 0L) + return 403; + if ((active0 & 0x723e000000000000L) != 0L || (active1 & 0x2e000000L) != 0L) { - jjmatchedKind = 88; + jjmatchedKind = 94; jjmatchedPos = 4; - return 402; + return 403; } - if ((active0 & 0x40000000000L) != 0L) + if ((active0 & 0x800000000000L) != 0L) { - jjmatchedKind = 60; + jjmatchedKind = 66; jjmatchedPos = 4; return 401; } return -1; case 5: - if ((active0 & 0x11100000000000L) != 0L || (active1 & 0x100000L) != 0L) - return 402; - if ((active0 & 0x40000000000L) != 0L) + if ((active0 & 0x222000000000000L) != 0L || (active1 & 0x4000000L) != 0L) + return 403; + if ((active0 & 0x800000000000L) != 0L) { - jjmatchedKind = 60; + jjmatchedKind = 66; jjmatchedPos = 5; return 401; } - if ((active0 & 0x380e00000000000L) != 0L || (active1 & 0xa80000L) != 0L) + if ((active0 & 0x701c000000000000L) != 0L || (active1 & 0x2a000000L) != 0L) { - jjmatchedKind = 88; + jjmatchedKind = 94; jjmatchedPos = 5; - return 402; + return 403; } return -1; case 6: - if ((active0 & 0x80800000000000L) != 0L || (active1 & 0x80000L) != 0L) - return 402; - if ((active0 & 0x300600000000000L) != 0L || (active1 & 0xa00000L) != 0L) + if ((active0 & 0x1010000000000000L) != 0L || (active1 & 0x2000000L) != 0L) + return 403; + if ((active0 & 0x800000000000L) != 0L) + return 401; + if ((active0 & 0x600c000000000000L) != 0L || (active1 & 0x28000000L) != 0L) { - jjmatchedKind = 88; + jjmatchedKind = 94; jjmatchedPos = 6; - return 402; + return 403; } - if ((active0 & 0x40000000000L) != 0L) - return 401; return -1; case 7: - if ((active0 & 0x200000000000L) != 0L || (active1 & 0x200000L) != 0L) - return 402; - if ((active0 & 0x300400000000000L) != 0L || (active1 & 0x800000L) != 0L) + if ((active0 & 0x4000000000000L) != 0L || (active1 & 0x8000000L) != 0L) + return 403; + if ((active0 & 0x6008000000000000L) != 0L || (active1 & 0x20000000L) != 0L) { - jjmatchedKind = 88; + jjmatchedKind = 94; jjmatchedPos = 7; - return 402; + return 403; } return -1; case 8: - if ((active0 & 0x200400000000000L) != 0L) - return 402; - if ((active0 & 0x100000000000000L) != 0L || (active1 & 0x800000L) != 0L) + if ((active0 & 0x4008000000000000L) != 0L) + return 403; + if ((active0 & 0x2000000000000000L) != 0L || (active1 & 0x20000000L) != 0L) { - jjmatchedKind = 88; + jjmatchedKind = 94; jjmatchedPos = 8; - return 402; + return 403; } return -1; case 9: - if ((active1 & 0x800000L) != 0L) - return 402; - if ((active0 & 0x100000000000000L) != 0L) + if ((active1 & 0x20000000L) != 0L) + return 403; + if ((active0 & 0x2000000000000000L) != 0L) { - jjmatchedKind = 88; + jjmatchedKind = 94; jjmatchedPos = 9; - return 402; + return 403; } return -1; case 10: - if ((active0 & 0x100000000000000L) != 0L) + if ((active0 & 0x2000000000000000L) != 0L) { - jjmatchedKind = 88; + jjmatchedKind = 94; jjmatchedPos = 10; - return 402; + return 403; } return -1; case 11: - if ((active0 & 0x100000000000000L) != 0L) + if ((active0 & 0x2000000000000000L) != 0L) { - jjmatchedKind = 88; + jjmatchedKind = 94; jjmatchedPos = 11; - return 402; + return 403; } return -1; case 12: - if ((active0 & 0x100000000000000L) != 0L) + if ((active0 & 0x2000000000000000L) != 0L) { - jjmatchedKind = 88; + jjmatchedKind = 94; jjmatchedPos = 12; - return 402; + return 403; } return -1; default : @@ -219,14 +221,17 @@ private int jjMoveStringLiteralDfa0_0() { switch(curChar) { + case 33: + return jjMoveStringLiteralDfa1_0(0x400000000L, 0x0L); case 38: - return jjStopAtPos(0, 26); + jjmatchedKind = 27; + return jjMoveStringLiteralDfa1_0(0x200000000L, 0x0L); case 40: - return jjStopAtPos(0, 28); - case 41: return jjStopAtPos(0, 29); + case 41: + return jjStopAtPos(0, 30); case 42: - return jjStopAtPos(0, 25); + return jjStopAtPos(0, 26); case 43: return jjStopAtPos(0, 17); case 44: @@ -235,36 +240,38 @@ private int jjMoveStringLiteralDfa0_0() jjmatchedKind = 18; return jjMoveStringLiteralDfa1_0(0x800L, 0x0L); case 46: - return jjStartNfaWithStates_0(0, 27, 400); + return jjStartNfaWithStates_0(0, 28, 400); case 47: - jjmatchedKind = 22; + jjmatchedKind = 23; return jjMoveStringLiteralDfa1_0(0x44L, 0x0L); case 58: - return jjStopAtPos(0, 30); + return jjStopAtPos(0, 35); case 59: return jjStopAtPos(0, 20); case 60: + jjmatchedKind = 22; return jjMoveStringLiteralDfa1_0(0x400L, 0x0L); case 61: - return jjStopAtPos(0, 16); + jjmatchedKind = 16; + return jjMoveStringLiteralDfa1_0(0x80000000L, 0x0L); case 62: return jjStopAtPos(0, 21); case 64: - return jjMoveStringLiteralDfa1_0(0x3fff00000000000L, 0xf80000L); + return jjMoveStringLiteralDfa1_0(0x7ffe000000000000L, 0x3e000000L); case 91: - return jjStopAtPos(0, 23); - case 93: return jjStopAtPos(0, 24); + case 93: + return jjStopAtPos(0, 25); case 73: case 105: - return jjMoveStringLiteralDfa1_0(0x80000000000L, 0x0L); + return jjMoveStringLiteralDfa1_0(0x8001000000000000L, 0x0L); case 84: case 116: - return jjMoveStringLiteralDfa1_0(0x60000000000L, 0x0L); + return jjMoveStringLiteralDfa1_0(0xc00000000000L, 0x0L); case 123: return jjStopAtPos(0, 12); case 124: - return jjMoveStringLiteralDfa1_0(0x4000L, 0x0L); + return jjMoveStringLiteralDfa1_0(0x100004000L, 0x0L); case 125: return jjStopAtPos(0, 13); case 126: @@ -284,12 +291,16 @@ private int jjMoveStringLiteralDfa1_0(long active0, long active1) { case 33: return jjMoveStringLiteralDfa2_0(active0, 0x400L, active1, 0L); + case 38: + if ((active0 & 0x200000000L) != 0L) + return jjStopAtPos(1, 33); + break; case 42: if ((active0 & 0x40L) != 0L) return jjStartNfaWithStates_0(1, 6, 1); break; case 45: - return jjMoveStringLiteralDfa2_0(active0, 0x100000000000800L, active1, 0L); + return jjMoveStringLiteralDfa2_0(active0, 0x2000000000000800L, active1, 0L); case 47: if ((active0 & 0x4L) != 0L) return jjStopAtPos(1, 2); @@ -299,50 +310,60 @@ private int jjMoveStringLiteralDfa1_0(long active0, long active1) return jjStopAtPos(1, 14); else if ((active0 & 0x8000L) != 0L) return jjStopAtPos(1, 15); + else if ((active0 & 0x80000000L) != 0L) + return jjStopAtPos(1, 31); + else if ((active0 & 0x400000000L) != 0L) + return jjStopAtPos(1, 34); break; case 67: case 99: - return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x200000L); + return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x8000000L); case 68: case 100: - return jjMoveStringLiteralDfa2_0(active0, 0x1000000000000L, active1, 0L); + return jjMoveStringLiteralDfa2_0(active0, 0x20000000000000L, active1, 0L); case 69: case 101: - return jjMoveStringLiteralDfa2_0(active0, 0xc8000000000000L, active1, 0L); + return jjMoveStringLiteralDfa2_0(active0, 0x1900000000000000L, active1, 0L); case 70: case 102: - return jjMoveStringLiteralDfa2_0(active0, 0x4400000000000L, active1, 0x800000L); + if ((active0 & 0x8000000000000000L) != 0L) + return jjStartNfaWithStates_0(1, 63, 401); + return jjMoveStringLiteralDfa2_0(active0, 0x88000000000000L, active1, 0x20000000L); case 72: case 104: - return jjMoveStringLiteralDfa2_0(active0, 0x40000000000L, active1, 0L); + return jjMoveStringLiteralDfa2_0(active0, 0x800000000000L, active1, 0L); case 73: case 105: - return jjMoveStringLiteralDfa2_0(active0, 0x20200000000000L, active1, 0x80000L); + return jjMoveStringLiteralDfa2_0(active0, 0x404000000000000L, active1, 0x2000000L); case 77: case 109: - return jjMoveStringLiteralDfa2_0(active0, 0x100000000000L, active1, 0x100000L); + return jjMoveStringLiteralDfa2_0(active0, 0x2000000000000L, active1, 0x4000000L); case 78: case 110: - if ((active0 & 0x80000000000L) != 0L) - return jjStartNfaWithStates_0(1, 43, 401); + if ((active0 & 0x1000000000000L) != 0L) + return jjStartNfaWithStates_0(1, 48, 401); break; case 79: case 111: - if ((active0 & 0x20000000000L) != 0L) - return jjStartNfaWithStates_0(1, 41, 401); + if ((active0 & 0x400000000000L) != 0L) + return jjStartNfaWithStates_0(1, 46, 401); break; case 80: case 112: - return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x400000L); + return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x10000000L); case 82: case 114: - return jjMoveStringLiteralDfa2_0(active0, 0x800000000000L, active1, 0L); + return jjMoveStringLiteralDfa2_0(active0, 0x10000000000000L, active1, 0L); case 83: case 115: - return jjMoveStringLiteralDfa2_0(active0, 0x200000000000000L, active1, 0L); + return jjMoveStringLiteralDfa2_0(active0, 0x4000000000000000L, active1, 0L); case 87: case 119: - return jjMoveStringLiteralDfa2_0(active0, 0x12000000000000L, active1, 0L); + return jjMoveStringLiteralDfa2_0(active0, 0x240000000000000L, active1, 0L); + case 124: + if ((active0 & 0x100000000L) != 0L) + return jjStopAtPos(1, 32); + break; default : break; } @@ -367,42 +388,42 @@ private int jjMoveStringLiteralDfa2_0(long old0, long active0, long old1, long a break; case 65: case 97: - return jjMoveStringLiteralDfa3_0(active0, 0xa000000000000L, active1, 0x400000L); + return jjMoveStringLiteralDfa3_0(active0, 0x140000000000000L, active1, 0x10000000L); case 69: case 101: - return jjMoveStringLiteralDfa3_0(active0, 0x1800000000000L, active1, 0x100000L); + return jjMoveStringLiteralDfa3_0(active0, 0x30000000000000L, active1, 0x4000000L); case 70: case 102: - if ((active0 & 0x20000000000000L) != 0L) - return jjStartNfaWithStates_0(2, 53, 402); + if ((active0 & 0x400000000000000L) != 0L) + return jjStartNfaWithStates_0(2, 58, 403); break; case 72: case 104: - return jjMoveStringLiteralDfa3_0(active0, 0x10000000000000L, active1, 0x200000L); + return jjMoveStringLiteralDfa3_0(active0, 0x200000000000000L, active1, 0x8000000L); case 73: case 105: - return jjMoveStringLiteralDfa3_0(active0, 0x100000000000L, active1, 0L); + return jjMoveStringLiteralDfa3_0(active0, 0x2000000000000L, active1, 0L); case 76: case 108: - return jjMoveStringLiteralDfa3_0(active0, 0x40000000000000L, active1, 0L); + return jjMoveStringLiteralDfa3_0(active0, 0x800000000000000L, active1, 0L); case 77: case 109: - return jjMoveStringLiteralDfa3_0(active0, 0x100000000000000L, active1, 0x80000L); + return jjMoveStringLiteralDfa3_0(active0, 0x2000000000000000L, active1, 0x2000000L); case 78: case 110: - return jjMoveStringLiteralDfa3_0(active0, 0x200000000000L, active1, 0L); + return jjMoveStringLiteralDfa3_0(active0, 0x4000000000000L, active1, 0L); case 79: case 111: - return jjMoveStringLiteralDfa3_0(active0, 0x4000000000000L, active1, 0x800000L); + return jjMoveStringLiteralDfa3_0(active0, 0x80000000000000L, active1, 0x20000000L); case 82: case 114: - return jjMoveStringLiteralDfa3_0(active0, 0x40000000000L, active1, 0L); + return jjMoveStringLiteralDfa3_0(active0, 0x800000000000L, active1, 0L); case 85: case 117: - return jjMoveStringLiteralDfa3_0(active0, 0x200400000000000L, active1, 0L); + return jjMoveStringLiteralDfa3_0(active0, 0x4008000000000000L, active1, 0L); case 88: case 120: - return jjMoveStringLiteralDfa3_0(active0, 0x80000000000000L, active1, 0L); + return jjMoveStringLiteralDfa3_0(active0, 0x1000000000000000L, active1, 0L); default : break; } @@ -425,45 +446,45 @@ private int jjMoveStringLiteralDfa3_0(long old0, long active0, long old1, long a break; case 65: case 97: - return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x200000L); + return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x8000000L); case 66: case 98: - return jjMoveStringLiteralDfa4_0(active0, 0x1000000000000L, active1, 0L); + return jjMoveStringLiteralDfa4_0(active0, 0x20000000000000L, active1, 0L); case 67: case 99: - return jjMoveStringLiteralDfa4_0(active0, 0x8200000000000L, active1, 0L); + return jjMoveStringLiteralDfa4_0(active0, 0x104000000000000L, active1, 0L); case 68: case 100: - return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x100000L); + return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x4000000L); case 71: case 103: - return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x400000L); + return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x10000000L); case 73: case 105: - return jjMoveStringLiteralDfa4_0(active0, 0x10000000000000L, active1, 0L); + return jjMoveStringLiteralDfa4_0(active0, 0x200000000000000L, active1, 0L); case 78: case 110: - return jjMoveStringLiteralDfa4_0(active0, 0x400000000000L, active1, 0x800000L); + return jjMoveStringLiteralDfa4_0(active0, 0x8000000000000L, active1, 0x20000000L); case 79: case 111: - return jjMoveStringLiteralDfa4_0(active0, 0x100040000000000L, active1, 0L); + return jjMoveStringLiteralDfa4_0(active0, 0x2000800000000000L, active1, 0L); case 80: case 112: - return jjMoveStringLiteralDfa4_0(active0, 0x200000000000000L, active1, 0x80000L); + return jjMoveStringLiteralDfa4_0(active0, 0x4000000000000000L, active1, 0x2000000L); case 82: case 114: - if ((active0 & 0x4000000000000L) != 0L) - return jjStartNfaWithStates_0(3, 50, 402); - return jjMoveStringLiteralDfa4_0(active0, 0x2000000000000L, active1, 0L); + if ((active0 & 0x80000000000000L) != 0L) + return jjStartNfaWithStates_0(3, 55, 403); + return jjMoveStringLiteralDfa4_0(active0, 0x40000000000000L, active1, 0L); case 83: case 115: - return jjMoveStringLiteralDfa4_0(active0, 0x40000000000000L, active1, 0L); + return jjMoveStringLiteralDfa4_0(active0, 0x800000000000000L, active1, 0L); case 84: case 116: - return jjMoveStringLiteralDfa4_0(active0, 0x80800000000000L, active1, 0L); + return jjMoveStringLiteralDfa4_0(active0, 0x1010000000000000L, active1, 0L); case 88: case 120: - return jjMoveStringLiteralDfa4_0(active0, 0x100000000000L, active1, 0L); + return jjMoveStringLiteralDfa4_0(active0, 0x2000000000000L, active1, 0L); default : break; } @@ -482,48 +503,48 @@ private int jjMoveStringLiteralDfa4_0(long old0, long active0, long old1, long a { case 67: case 99: - return jjMoveStringLiteralDfa5_0(active0, 0x400000000000L, active1, 0L); + return jjMoveStringLiteralDfa5_0(active0, 0x8000000000000L, active1, 0L); case 69: case 101: - if ((active0 & 0x40000000000000L) != 0L) - return jjStartNfaWithStates_0(4, 54, 402); - else if ((active1 & 0x400000L) != 0L) - return jjStartNfaWithStates_0(4, 86, 402); - return jjMoveStringLiteralDfa5_0(active0, 0x80000000000000L, active1, 0L); + if ((active0 & 0x800000000000000L) != 0L) + return jjStartNfaWithStates_0(4, 59, 403); + else if ((active1 & 0x10000000L) != 0L) + return jjStartNfaWithStates_0(4, 92, 403); + return jjMoveStringLiteralDfa5_0(active0, 0x1000000000000000L, active1, 0L); case 72: case 104: - if ((active0 & 0x8000000000000L) != 0L) - return jjStartNfaWithStates_0(4, 51, 402); + if ((active0 & 0x100000000000000L) != 0L) + return jjStartNfaWithStates_0(4, 56, 403); break; case 73: case 105: - return jjMoveStringLiteralDfa5_0(active0, 0x100000000000L, active1, 0x100000L); + return jjMoveStringLiteralDfa5_0(active0, 0x2000000000000L, active1, 0x4000000L); case 76: case 108: - return jjMoveStringLiteralDfa5_0(active0, 0x10200000000000L, active1, 0L); + return jjMoveStringLiteralDfa5_0(active0, 0x204000000000000L, active1, 0L); case 78: case 110: - if ((active0 & 0x2000000000000L) != 0L) - return jjStartNfaWithStates_0(4, 49, 402); + if ((active0 & 0x40000000000000L) != 0L) + return jjStartNfaWithStates_0(4, 54, 403); break; case 79: case 111: - return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x80000L); + return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x2000000L); case 80: case 112: - return jjMoveStringLiteralDfa5_0(active0, 0x200000000000000L, active1, 0L); + return jjMoveStringLiteralDfa5_0(active0, 0x4000000000000000L, active1, 0L); case 82: case 114: - return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x200000L); + return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x8000000L); case 84: case 116: - return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x800000L); + return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x20000000L); case 85: case 117: - return jjMoveStringLiteralDfa5_0(active0, 0x1840000000000L, active1, 0L); + return jjMoveStringLiteralDfa5_0(active0, 0x30800000000000L, active1, 0L); case 90: case 122: - return jjMoveStringLiteralDfa5_0(active0, 0x100000000000000L, active1, 0L); + return jjMoveStringLiteralDfa5_0(active0, 0x2000000000000000L, active1, 0L); default : break; } @@ -541,42 +562,42 @@ private int jjMoveStringLiteralDfa5_0(long old0, long active0, long old1, long a switch(curChar) { case 45: - return jjMoveStringLiteralDfa6_0(active0, 0x100000000000000L, active1, 0x800000L); + return jjMoveStringLiteralDfa6_0(active0, 0x2000000000000000L, active1, 0x20000000L); case 65: case 97: - if ((active1 & 0x100000L) != 0L) - return jjStartNfaWithStates_0(5, 84, 402); + if ((active1 & 0x4000000L) != 0L) + return jjStartNfaWithStates_0(5, 90, 403); break; case 69: case 101: - if ((active0 & 0x10000000000000L) != 0L) - return jjStartNfaWithStates_0(5, 52, 402); + if ((active0 & 0x200000000000000L) != 0L) + return jjStartNfaWithStates_0(5, 57, 403); break; case 71: case 103: - if ((active0 & 0x1000000000000L) != 0L) - return jjStartNfaWithStates_0(5, 48, 402); - return jjMoveStringLiteralDfa6_0(active0, 0x40000000000L, active1, 0L); + if ((active0 & 0x20000000000000L) != 0L) + return jjStartNfaWithStates_0(5, 53, 403); + return jjMoveStringLiteralDfa6_0(active0, 0x800000000000L, active1, 0L); case 78: case 110: - if ((active0 & 0x100000000000L) != 0L) - return jjStartNfaWithStates_0(5, 44, 402); - return jjMoveStringLiteralDfa6_0(active0, 0x80000000000000L, active1, 0L); + if ((active0 & 0x2000000000000L) != 0L) + return jjStartNfaWithStates_0(5, 49, 403); + return jjMoveStringLiteralDfa6_0(active0, 0x1000000000000000L, active1, 0L); case 79: case 111: - return jjMoveStringLiteralDfa6_0(active0, 0x200000000000000L, active1, 0L); + return jjMoveStringLiteralDfa6_0(active0, 0x4000000000000000L, active1, 0L); case 82: case 114: - return jjMoveStringLiteralDfa6_0(active0, 0x800000000000L, active1, 0x80000L); + return jjMoveStringLiteralDfa6_0(active0, 0x10000000000000L, active1, 0x2000000L); case 83: case 115: - return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x200000L); + return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x8000000L); case 84: case 116: - return jjMoveStringLiteralDfa6_0(active0, 0x400000000000L, active1, 0L); + return jjMoveStringLiteralDfa6_0(active0, 0x8000000000000L, active1, 0L); case 85: case 117: - return jjMoveStringLiteralDfa6_0(active0, 0x200000000000L, active1, 0L); + return jjMoveStringLiteralDfa6_0(active0, 0x4000000000000L, active1, 0L); default : break; } @@ -595,35 +616,35 @@ private int jjMoveStringLiteralDfa6_0(long old0, long active0, long old1, long a { case 68: case 100: - if ((active0 & 0x80000000000000L) != 0L) - return jjStartNfaWithStates_0(6, 55, 402); - return jjMoveStringLiteralDfa7_0(active0, 0x100200000000000L, active1, 0L); + if ((active0 & 0x1000000000000000L) != 0L) + return jjStartNfaWithStates_0(6, 60, 403); + return jjMoveStringLiteralDfa7_0(active0, 0x2004000000000000L, active1, 0L); case 69: case 101: - return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x200000L); + return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x8000000L); case 70: case 102: - return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x800000L); + return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x20000000L); case 72: case 104: - if ((active0 & 0x40000000000L) != 0L) - return jjStartNfaWithStates_0(6, 42, 401); + if ((active0 & 0x800000000000L) != 0L) + return jjStartNfaWithStates_0(6, 47, 401); break; case 73: case 105: - return jjMoveStringLiteralDfa7_0(active0, 0x400000000000L, active1, 0L); + return jjMoveStringLiteralDfa7_0(active0, 0x8000000000000L, active1, 0L); case 78: case 110: - if ((active0 & 0x800000000000L) != 0L) - return jjStartNfaWithStates_0(6, 47, 402); + if ((active0 & 0x10000000000000L) != 0L) + return jjStartNfaWithStates_0(6, 52, 403); break; case 82: case 114: - return jjMoveStringLiteralDfa7_0(active0, 0x200000000000000L, active1, 0L); + return jjMoveStringLiteralDfa7_0(active0, 0x4000000000000000L, active1, 0L); case 84: case 116: - if ((active1 & 0x80000L) != 0L) - return jjStartNfaWithStates_0(6, 83, 402); + if ((active1 & 0x2000000L) != 0L) + return jjStartNfaWithStates_0(6, 89, 403); break; default : break; @@ -643,20 +664,20 @@ private int jjMoveStringLiteralDfa7_0(long old0, long active0, long old1, long a { case 65: case 97: - return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x800000L); + return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x20000000L); case 69: case 101: - if ((active0 & 0x200000000000L) != 0L) - return jjStartNfaWithStates_0(7, 45, 402); + if ((active0 & 0x4000000000000L) != 0L) + return jjStartNfaWithStates_0(7, 50, 403); break; case 79: case 111: - return jjMoveStringLiteralDfa8_0(active0, 0x100400000000000L, active1, 0L); + return jjMoveStringLiteralDfa8_0(active0, 0x2008000000000000L, active1, 0L); case 84: case 116: - if ((active1 & 0x200000L) != 0L) - return jjStartNfaWithStates_0(7, 85, 402); - return jjMoveStringLiteralDfa8_0(active0, 0x200000000000000L, active1, 0L); + if ((active1 & 0x8000000L) != 0L) + return jjStartNfaWithStates_0(7, 91, 403); + return jjMoveStringLiteralDfa8_0(active0, 0x4000000000000000L, active1, 0L); default : break; } @@ -675,16 +696,16 @@ private int jjMoveStringLiteralDfa8_0(long old0, long active0, long old1, long a { case 67: case 99: - return jjMoveStringLiteralDfa9_0(active0, 0x100000000000000L, active1, 0x800000L); + return jjMoveStringLiteralDfa9_0(active0, 0x2000000000000000L, active1, 0x20000000L); case 78: case 110: - if ((active0 & 0x400000000000L) != 0L) - return jjStartNfaWithStates_0(8, 46, 402); + if ((active0 & 0x8000000000000L) != 0L) + return jjStartNfaWithStates_0(8, 51, 403); break; case 83: case 115: - if ((active0 & 0x200000000000000L) != 0L) - return jjStartNfaWithStates_0(8, 57, 402); + if ((active0 & 0x4000000000000000L) != 0L) + return jjStartNfaWithStates_0(8, 62, 403); break; default : break; @@ -704,12 +725,12 @@ private int jjMoveStringLiteralDfa9_0(long old0, long active0, long old1, long a { case 69: case 101: - if ((active1 & 0x800000L) != 0L) - return jjStartNfaWithStates_0(9, 87, 402); + if ((active1 & 0x20000000L) != 0L) + return jjStartNfaWithStates_0(9, 93, 403); break; case 85: case 117: - return jjMoveStringLiteralDfa10_0(active0, 0x100000000000000L, active1, 0L); + return jjMoveStringLiteralDfa10_0(active0, 0x2000000000000000L, active1, 0L); default : break; } @@ -728,7 +749,7 @@ private int jjMoveStringLiteralDfa10_0(long old0, long active0, long old1, long { case 77: case 109: - return jjMoveStringLiteralDfa11_0(active0, 0x100000000000000L); + return jjMoveStringLiteralDfa11_0(active0, 0x2000000000000000L); default : break; } @@ -747,7 +768,7 @@ private int jjMoveStringLiteralDfa11_0(long old0, long active0) { case 69: case 101: - return jjMoveStringLiteralDfa12_0(active0, 0x100000000000000L); + return jjMoveStringLiteralDfa12_0(active0, 0x2000000000000000L); default : break; } @@ -766,7 +787,7 @@ private int jjMoveStringLiteralDfa12_0(long old0, long active0) { case 78: case 110: - return jjMoveStringLiteralDfa13_0(active0, 0x100000000000000L); + return jjMoveStringLiteralDfa13_0(active0, 0x2000000000000000L); default : break; } @@ -785,8 +806,8 @@ private int jjMoveStringLiteralDfa13_0(long old0, long active0) { case 84: case 116: - if ((active0 & 0x100000000000000L) != 0L) - return jjStartNfaWithStates_0(13, 56, 402); + if ((active0 & 0x2000000000000000L) != 0L) + return jjStartNfaWithStates_0(13, 61, 403); break; default : break; @@ -859,8 +880,8 @@ private int jjMoveNfa_0(int startState, int curPos) jjCheckNAddTwoStates(164, 165); if ((0x3ff000000000000L & l) != 0L) { - if (kind > 61) - kind = 61; + if (kind > 67) + kind = 67; jjCheckNAdd(163); } break; @@ -869,11 +890,17 @@ private int jjMoveNfa_0(int startState, int curPos) jjstateSet[jjnewStateCnt++] = 97; break; case 402: + if ((0x100003600L & l) != 0L) + jjCheckNAddTwoStates(148, 157); + if ((0x100003600L & l) != 0L) + jjCheckNAddTwoStates(140, 147); + break; + case 403: case 98: if ((0x3ff200000000000L & l) == 0L) break; - if (kind > 88) - kind = 88; + if (kind > 94) + kind = 94; jjCheckNAddTwoStates(98, 99); break; case 401: @@ -883,21 +910,21 @@ private int jjMoveNfa_0(int startState, int curPos) jjCheckNAddTwoStates(128, 129); else if (curChar == 40) { - if (kind > 100) - kind = 100; + if (kind > 106) + kind = 106; } if ((0x3ff200000000000L & l) != 0L) { - if (kind > 60) - kind = 60; + if (kind > 66) + kind = 66; jjCheckNAddTwoStates(117, 118); } break; case 4: if ((0x3ff000000000000L & l) != 0L) { - if (kind > 61) - kind = 61; + if (kind > 67) + kind = 67; jjCheckNAddStates(9, 82); } else if ((0x100003600L & l) != 0L) @@ -1025,8 +1052,8 @@ private int jjMoveNfa_0(int startState, int curPos) jjCheckNAddStates(115, 118); break; case 31: - if (curChar == 34 && kind > 59) - kind = 59; + if (curChar == 34 && kind > 65) + kind = 65; break; case 33: if (curChar == 12) @@ -1085,8 +1112,8 @@ private int jjMoveNfa_0(int startState, int curPos) jjCheckNAddStates(111, 114); break; case 48: - if (curChar == 39 && kind > 59) - kind = 59; + if (curChar == 39 && kind > 65) + kind = 65; break; case 50: if (curChar == 12) @@ -1147,106 +1174,106 @@ private int jjMoveNfa_0(int startState, int curPos) case 66: if ((0x3ff200000000000L & l) == 0L) break; - if (kind > 64) - kind = 64; + if (kind > 70) + kind = 70; jjCheckNAddTwoStates(66, 67); break; case 68: if ((0xffffffff00000000L & l) == 0L) break; - if (kind > 64) - kind = 64; + if (kind > 70) + kind = 70; jjCheckNAddTwoStates(66, 67); break; case 69: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 64) - kind = 64; + if (kind > 70) + kind = 70; jjCheckNAddStates(278, 281); break; case 70: if ((0x100003600L & l) == 0L) break; - if (kind > 64) - kind = 64; + if (kind > 70) + kind = 70; jjCheckNAddTwoStates(66, 67); break; case 71: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 64) - kind = 64; + if (kind > 70) + kind = 70; jjCheckNAddStates(282, 288); break; case 72: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 64) - kind = 64; + if (kind > 70) + kind = 70; jjCheckNAddStates(289, 291); break; case 73: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 64) - kind = 64; + if (kind > 70) + kind = 70; jjCheckNAddStates(292, 295); break; case 74: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 64) - kind = 64; + if (kind > 70) + kind = 70; jjCheckNAddStates(296, 300); break; case 75: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 64) - kind = 64; + if (kind > 70) + kind = 70; jjCheckNAddStates(301, 306); break; case 78: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 64) - kind = 64; + if (kind > 70) + kind = 70; jjCheckNAddStates(307, 310); break; case 79: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 64) - kind = 64; + if (kind > 70) + kind = 70; jjCheckNAddStates(311, 317); break; case 80: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 64) - kind = 64; + if (kind > 70) + kind = 70; jjCheckNAddStates(318, 320); break; case 81: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 64) - kind = 64; + if (kind > 70) + kind = 70; jjCheckNAddStates(321, 324); break; case 82: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 64) - kind = 64; + if (kind > 70) + kind = 70; jjCheckNAddStates(325, 329); break; case 83: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 64) - kind = 64; + if (kind > 70) + kind = 70; jjCheckNAddStates(330, 335); break; case 84: @@ -1256,225 +1283,225 @@ private int jjMoveNfa_0(int startState, int curPos) case 85: if ((0x3ff200000000000L & l) == 0L) break; - if (kind > 82) - kind = 82; + if (kind > 88) + kind = 88; jjCheckNAddTwoStates(85, 86); break; case 87: if ((0xffffffff00000000L & l) == 0L) break; - if (kind > 82) - kind = 82; + if (kind > 88) + kind = 88; jjCheckNAddTwoStates(85, 86); break; case 88: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 82) - kind = 82; + if (kind > 88) + kind = 88; jjCheckNAddStates(336, 339); break; case 89: if ((0x100003600L & l) == 0L) break; - if (kind > 82) - kind = 82; + if (kind > 88) + kind = 88; jjCheckNAddTwoStates(85, 86); break; case 90: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 82) - kind = 82; + if (kind > 88) + kind = 88; jjCheckNAddStates(340, 346); break; case 91: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 82) - kind = 82; + if (kind > 88) + kind = 88; jjCheckNAddStates(347, 349); break; case 92: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 82) - kind = 82; + if (kind > 88) + kind = 88; jjCheckNAddStates(350, 353); break; case 93: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 82) - kind = 82; + if (kind > 88) + kind = 88; jjCheckNAddStates(354, 358); break; case 94: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 82) - kind = 82; + if (kind > 88) + kind = 88; jjCheckNAddStates(359, 364); break; case 100: if ((0xffffffff00000000L & l) == 0L) break; - if (kind > 88) - kind = 88; + if (kind > 94) + kind = 94; jjCheckNAddTwoStates(98, 99); break; case 101: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 88) - kind = 88; + if (kind > 94) + kind = 94; jjCheckNAddStates(365, 368); break; case 102: if ((0x100003600L & l) == 0L) break; - if (kind > 88) - kind = 88; + if (kind > 94) + kind = 94; jjCheckNAddTwoStates(98, 99); break; case 103: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 88) - kind = 88; + if (kind > 94) + kind = 94; jjCheckNAddStates(369, 375); break; case 104: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 88) - kind = 88; + if (kind > 94) + kind = 94; jjCheckNAddStates(376, 378); break; case 105: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 88) - kind = 88; + if (kind > 94) + kind = 94; jjCheckNAddStates(379, 382); break; case 106: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 88) - kind = 88; + if (kind > 94) + kind = 94; jjCheckNAddStates(383, 387); break; case 107: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 88) - kind = 88; + if (kind > 94) + kind = 94; jjCheckNAddStates(388, 393); break; case 110: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 88) - kind = 88; + if (kind > 94) + kind = 94; jjCheckNAddStates(394, 397); break; case 111: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 88) - kind = 88; + if (kind > 94) + kind = 94; jjCheckNAddStates(398, 404); break; case 112: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 88) - kind = 88; + if (kind > 94) + kind = 94; jjCheckNAddStates(405, 407); break; case 113: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 88) - kind = 88; + if (kind > 94) + kind = 94; jjCheckNAddStates(408, 411); break; case 114: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 88) - kind = 88; + if (kind > 94) + kind = 94; jjCheckNAddStates(412, 416); break; case 115: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 88) - kind = 88; + if (kind > 94) + kind = 94; jjCheckNAddStates(417, 422); break; case 117: if ((0x3ff200000000000L & l) == 0L) break; - if (kind > 60) - kind = 60; + if (kind > 66) + kind = 66; jjCheckNAddTwoStates(117, 118); break; case 119: if ((0xffffffff00000000L & l) == 0L) break; - if (kind > 60) - kind = 60; + if (kind > 66) + kind = 66; jjCheckNAddTwoStates(117, 118); break; case 120: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 60) - kind = 60; + if (kind > 66) + kind = 66; jjCheckNAddStates(423, 426); break; case 121: if ((0x100003600L & l) == 0L) break; - if (kind > 60) - kind = 60; + if (kind > 66) + kind = 66; jjCheckNAddTwoStates(117, 118); break; case 122: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 60) - kind = 60; + if (kind > 66) + kind = 66; jjCheckNAddStates(427, 433); break; case 123: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 60) - kind = 60; + if (kind > 66) + kind = 66; jjCheckNAddStates(434, 436); break; case 124: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 60) - kind = 60; + if (kind > 66) + kind = 66; jjCheckNAddStates(437, 440); break; case 125: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 60) - kind = 60; + if (kind > 66) + kind = 66; jjCheckNAddStates(441, 445); break; case 126: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 60) - kind = 60; + if (kind > 66) + kind = 66; jjCheckNAddStates(446, 451); break; case 127: @@ -1486,8 +1513,8 @@ private int jjMoveNfa_0(int startState, int curPos) jjCheckNAddTwoStates(128, 129); break; case 129: - if (curChar == 40 && kind > 100) - kind = 100; + if (curChar == 40 && kind > 106) + kind = 106; break; case 131: if ((0xffffffff00000000L & l) != 0L) @@ -1545,8 +1572,8 @@ private int jjMoveNfa_0(int startState, int curPos) case 163: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 61) - kind = 61; + if (kind > 67) + kind = 67; jjCheckNAdd(163); break; case 164: @@ -1554,8 +1581,8 @@ private int jjMoveNfa_0(int startState, int curPos) jjCheckNAddTwoStates(164, 165); break; case 165: - if (curChar == 37 && kind > 65) - kind = 65; + if (curChar == 37 && kind > 71) + kind = 71; break; case 166: if ((0x3ff000000000000L & l) != 0L) @@ -1628,106 +1655,106 @@ private int jjMoveNfa_0(int startState, int curPos) case 218: if ((0x3ff200000000000L & l) == 0L) break; - if (kind > 81) - kind = 81; + if (kind > 87) + kind = 87; jjCheckNAddTwoStates(218, 219); break; case 220: if ((0xffffffff00000000L & l) == 0L) break; - if (kind > 81) - kind = 81; + if (kind > 87) + kind = 87; jjCheckNAddTwoStates(218, 219); break; case 221: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 81) - kind = 81; + if (kind > 87) + kind = 87; jjCheckNAddStates(487, 490); break; case 222: if ((0x100003600L & l) == 0L) break; - if (kind > 81) - kind = 81; + if (kind > 87) + kind = 87; jjCheckNAddTwoStates(218, 219); break; case 223: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 81) - kind = 81; + if (kind > 87) + kind = 87; jjCheckNAddStates(491, 497); break; case 224: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 81) - kind = 81; + if (kind > 87) + kind = 87; jjCheckNAddStates(498, 500); break; case 225: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 81) - kind = 81; + if (kind > 87) + kind = 87; jjCheckNAddStates(501, 504); break; case 226: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 81) - kind = 81; + if (kind > 87) + kind = 87; jjCheckNAddStates(505, 509); break; case 227: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 81) - kind = 81; + if (kind > 87) + kind = 87; jjCheckNAddStates(510, 515); break; case 230: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 81) - kind = 81; + if (kind > 87) + kind = 87; jjCheckNAddStates(516, 519); break; case 231: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 81) - kind = 81; + if (kind > 87) + kind = 87; jjCheckNAddStates(520, 526); break; case 232: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 81) - kind = 81; + if (kind > 87) + kind = 87; jjCheckNAddStates(527, 529); break; case 233: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 81) - kind = 81; + if (kind > 87) + kind = 87; jjCheckNAddStates(530, 533); break; case 234: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 81) - kind = 81; + if (kind > 87) + kind = 87; jjCheckNAddStates(534, 538); break; case 235: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 81) - kind = 81; + if (kind > 87) + kind = 87; jjCheckNAddStates(539, 544); break; case 237: @@ -1743,8 +1770,8 @@ private int jjMoveNfa_0(int startState, int curPos) jjCheckNAddTwoStates(239, 240); break; case 240: - if (curChar == 41 && kind > 63) - kind = 63; + if (curChar == 41 && kind > 69) + kind = 69; break; case 242: if ((0xffffffff00000000L & l) != 0L) @@ -1909,20 +1936,20 @@ private int jjMoveNfa_0(int startState, int curPos) case 288: if (curChar != 63) break; - if (kind > 99) - kind = 99; + if (kind > 105) + kind = 105; jjstateSet[jjnewStateCnt++] = 289; break; case 289: if (curChar != 63) break; - if (kind > 99) - kind = 99; + if (kind > 105) + kind = 105; jjCheckNAddStates(689, 692); break; case 290: - if (curChar == 63 && kind > 99) - kind = 99; + if (curChar == 63 && kind > 105) + kind = 105; break; case 291: case 306: @@ -1931,29 +1958,29 @@ private int jjMoveNfa_0(int startState, int curPos) case 316: if (curChar != 63) break; - if (kind > 99) - kind = 99; + if (kind > 105) + kind = 105; jjCheckNAdd(290); break; case 292: if (curChar != 63) break; - if (kind > 99) - kind = 99; + if (kind > 105) + kind = 105; jjCheckNAddTwoStates(290, 291); break; case 293: if (curChar != 63) break; - if (kind > 99) - kind = 99; + if (kind > 105) + kind = 105; jjCheckNAddStates(693, 695); break; case 294: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 99) - kind = 99; + if (kind > 105) + kind = 105; jjAddStates(696, 701); break; case 295: @@ -1969,8 +1996,8 @@ private int jjMoveNfa_0(int startState, int curPos) jjCheckNAdd(298); break; case 298: - if ((0x3ff000000000000L & l) != 0L && kind > 99) - kind = 99; + if ((0x3ff000000000000L & l) != 0L && kind > 105) + kind = 105; break; case 299: if ((0x3ff000000000000L & l) != 0L) @@ -1987,8 +2014,8 @@ private int jjMoveNfa_0(int startState, int curPos) case 302: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 99) - kind = 99; + if (kind > 105) + kind = 105; jjCheckNAdd(290); break; case 303: @@ -2002,8 +2029,8 @@ private int jjMoveNfa_0(int startState, int curPos) case 305: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 99) - kind = 99; + if (kind > 105) + kind = 105; jjstateSet[jjnewStateCnt++] = 306; break; case 307: @@ -2013,57 +2040,57 @@ private int jjMoveNfa_0(int startState, int curPos) case 308: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 99) - kind = 99; + if (kind > 105) + kind = 105; jjstateSet[jjnewStateCnt++] = 309; break; case 309: if (curChar != 63) break; - if (kind > 99) - kind = 99; + if (kind > 105) + kind = 105; jjCheckNAddTwoStates(290, 310); break; case 311: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 99) - kind = 99; + if (kind > 105) + kind = 105; jjstateSet[jjnewStateCnt++] = 312; break; case 312: if (curChar != 63) break; - if (kind > 99) - kind = 99; + if (kind > 105) + kind = 105; jjCheckNAddStates(702, 704); break; case 314: if (curChar != 63) break; - if (kind > 99) - kind = 99; + if (kind > 105) + kind = 105; jjCheckNAddTwoStates(290, 313); break; case 315: if (curChar != 63) break; - if (kind > 99) - kind = 99; + if (kind > 105) + kind = 105; jjCheckNAddStates(705, 708); break; case 317: if (curChar != 63) break; - if (kind > 99) - kind = 99; + if (kind > 105) + kind = 105; jjCheckNAddTwoStates(290, 316); break; case 318: if (curChar != 63) break; - if (kind > 99) - kind = 99; + if (kind > 105) + kind = 105; jjCheckNAddStates(709, 711); break; case 319: @@ -2081,36 +2108,36 @@ private int jjMoveNfa_0(int startState, int curPos) case 322: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 99) - kind = 99; + if (kind > 105) + kind = 105; jjstateSet[jjnewStateCnt++] = 323; break; case 323: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 99) - kind = 99; + if (kind > 105) + kind = 105; jjCheckNAddStates(712, 715); break; case 324: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 99) - kind = 99; + if (kind > 105) + kind = 105; jjCheckNAdd(298); break; case 325: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 99) - kind = 99; + if (kind > 105) + kind = 105; jjCheckNAddTwoStates(298, 324); break; case 326: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 99) - kind = 99; + if (kind > 105) + kind = 105; jjCheckNAddStates(716, 718); break; case 327: @@ -2136,43 +2163,43 @@ private int jjMoveNfa_0(int startState, int curPos) case 333: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 60) - kind = 60; + if (kind > 66) + kind = 66; jjCheckNAddStates(731, 734); break; case 334: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 60) - kind = 60; + if (kind > 66) + kind = 66; jjCheckNAddStates(735, 741); break; case 335: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 60) - kind = 60; + if (kind > 66) + kind = 66; jjCheckNAddStates(742, 744); break; case 336: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 60) - kind = 60; + if (kind > 66) + kind = 66; jjCheckNAddStates(745, 748); break; case 337: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 60) - kind = 60; + if (kind > 66) + kind = 66; jjCheckNAddStates(749, 753); break; case 338: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 60) - kind = 60; + if (kind > 66) + kind = 66; jjCheckNAddStates(754, 759); break; case 339: @@ -2198,15 +2225,15 @@ private int jjMoveNfa_0(int startState, int curPos) case 345: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 61) - kind = 61; + if (kind > 67) + kind = 67; jjCheckNAddStates(9, 82); break; case 346: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 61) - kind = 61; + if (kind > 67) + kind = 67; jjCheckNAdd(346); break; case 347: @@ -2435,28 +2462,34 @@ private int jjMoveNfa_0(int startState, int curPos) case 96: if ((0x7fffffe07fffffeL & l) != 0L) { - if (kind > 88) - kind = 88; + if (kind > 94) + kind = 94; jjCheckNAddTwoStates(98, 99); } else if (curChar == 92) jjCheckNAddTwoStates(100, 110); break; + case 402: + if ((0x20000000200L & l) != 0L) + jjstateSet[jjnewStateCnt++] = 156; + else if ((0x1000000010L & l) != 0L) + jjstateSet[jjnewStateCnt++] = 146; + break; case 159: if ((0x7fffffe07fffffeL & l) != 0L) jjCheckNAddStates(5, 8); if ((0x7fffffe07fffffeL & l) != 0L) { - if (kind > 60) - kind = 60; + if (kind > 66) + kind = 66; jjCheckNAddTwoStates(117, 118); } break; - case 402: + case 403: if ((0x7fffffe87fffffeL & l) != 0L) { - if (kind > 88) - kind = 88; + if (kind > 94) + kind = 94; jjCheckNAddTwoStates(98, 99); } else if (curChar == 92) @@ -2469,8 +2502,8 @@ private int jjMoveNfa_0(int startState, int curPos) jjCheckNAddTwoStates(119, 120); if ((0x7fffffe87fffffeL & l) != 0L) { - if (kind > 60) - kind = 60; + if (kind > 66) + kind = 66; jjCheckNAddTwoStates(117, 118); } else if (curChar == 92) @@ -2479,8 +2512,8 @@ private int jjMoveNfa_0(int startState, int curPos) case 4: if ((0x7fffffe07fffffeL & l) != 0L) { - if (kind > 60) - kind = 60; + if (kind > 66) + kind = 66; jjCheckNAddStates(796, 801); } else if (curChar == 92) @@ -2507,8 +2540,8 @@ private int jjMoveNfa_0(int startState, int curPos) jjCheckNAddStates(123, 125); break; case 10: - if (curChar == 125 && kind > 31) - kind = 31; + if (curChar == 125 && kind > 36) + kind = 36; break; case 11: if (curChar == 92) @@ -2647,15 +2680,15 @@ private int jjMoveNfa_0(int startState, int curPos) case 65: if ((0x7fffffe07fffffeL & l) == 0L) break; - if (kind > 64) - kind = 64; + if (kind > 70) + kind = 70; jjCheckNAddTwoStates(66, 67); break; case 66: if ((0x7fffffe87fffffeL & l) == 0L) break; - if (kind > 64) - kind = 64; + if (kind > 70) + kind = 70; jjCheckNAddTwoStates(66, 67); break; case 67: @@ -2665,50 +2698,50 @@ private int jjMoveNfa_0(int startState, int curPos) case 68: if ((0x7fffffffffffffffL & l) == 0L) break; - if (kind > 64) - kind = 64; + if (kind > 70) + kind = 70; jjCheckNAddTwoStates(66, 67); break; case 69: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 64) - kind = 64; + if (kind > 70) + kind = 70; jjCheckNAddStates(278, 281); break; case 71: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 64) - kind = 64; + if (kind > 70) + kind = 70; jjCheckNAddStates(282, 288); break; case 72: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 64) - kind = 64; + if (kind > 70) + kind = 70; jjCheckNAddStates(289, 291); break; case 73: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 64) - kind = 64; + if (kind > 70) + kind = 70; jjCheckNAddStates(292, 295); break; case 74: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 64) - kind = 64; + if (kind > 70) + kind = 70; jjCheckNAddStates(296, 300); break; case 75: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 64) - kind = 64; + if (kind > 70) + kind = 70; jjCheckNAddStates(301, 306); break; case 77: @@ -2718,50 +2751,50 @@ private int jjMoveNfa_0(int startState, int curPos) case 78: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 64) - kind = 64; + if (kind > 70) + kind = 70; jjCheckNAddStates(307, 310); break; case 79: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 64) - kind = 64; + if (kind > 70) + kind = 70; jjCheckNAddStates(311, 317); break; case 80: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 64) - kind = 64; + if (kind > 70) + kind = 70; jjCheckNAddStates(318, 320); break; case 81: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 64) - kind = 64; + if (kind > 70) + kind = 70; jjCheckNAddStates(321, 324); break; case 82: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 64) - kind = 64; + if (kind > 70) + kind = 70; jjCheckNAddStates(325, 329); break; case 83: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 64) - kind = 64; + if (kind > 70) + kind = 70; jjCheckNAddStates(330, 335); break; case 85: if ((0x7fffffe87fffffeL & l) == 0L) break; - if (kind > 82) - kind = 82; + if (kind > 88) + kind = 88; jjCheckNAddTwoStates(85, 86); break; case 86: @@ -2771,50 +2804,50 @@ private int jjMoveNfa_0(int startState, int curPos) case 87: if ((0x7fffffffffffffffL & l) == 0L) break; - if (kind > 82) - kind = 82; + if (kind > 88) + kind = 88; jjCheckNAddTwoStates(85, 86); break; case 88: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 82) - kind = 82; + if (kind > 88) + kind = 88; jjCheckNAddStates(336, 339); break; case 90: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 82) - kind = 82; + if (kind > 88) + kind = 88; jjCheckNAddStates(340, 346); break; case 91: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 82) - kind = 82; + if (kind > 88) + kind = 88; jjCheckNAddStates(347, 349); break; case 92: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 82) - kind = 82; + if (kind > 88) + kind = 88; jjCheckNAddStates(350, 353); break; case 93: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 82) - kind = 82; + if (kind > 88) + kind = 88; jjCheckNAddStates(354, 358); break; case 94: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 82) - kind = 82; + if (kind > 88) + kind = 88; jjCheckNAddStates(359, 364); break; case 95: @@ -2824,15 +2857,15 @@ private int jjMoveNfa_0(int startState, int curPos) case 97: if ((0x7fffffe07fffffeL & l) == 0L) break; - if (kind > 88) - kind = 88; + if (kind > 94) + kind = 94; jjCheckNAddTwoStates(98, 99); break; case 98: if ((0x7fffffe87fffffeL & l) == 0L) break; - if (kind > 88) - kind = 88; + if (kind > 94) + kind = 94; jjCheckNAddTwoStates(98, 99); break; case 99: @@ -2842,50 +2875,50 @@ private int jjMoveNfa_0(int startState, int curPos) case 100: if ((0x7fffffffffffffffL & l) == 0L) break; - if (kind > 88) - kind = 88; + if (kind > 94) + kind = 94; jjCheckNAddTwoStates(98, 99); break; case 101: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 88) - kind = 88; + if (kind > 94) + kind = 94; jjCheckNAddStates(365, 368); break; case 103: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 88) - kind = 88; + if (kind > 94) + kind = 94; jjCheckNAddStates(369, 375); break; case 104: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 88) - kind = 88; + if (kind > 94) + kind = 94; jjCheckNAddStates(376, 378); break; case 105: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 88) - kind = 88; + if (kind > 94) + kind = 94; jjCheckNAddStates(379, 382); break; case 106: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 88) - kind = 88; + if (kind > 94) + kind = 94; jjCheckNAddStates(383, 387); break; case 107: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 88) - kind = 88; + if (kind > 94) + kind = 94; jjCheckNAddStates(388, 393); break; case 109: @@ -2895,50 +2928,50 @@ private int jjMoveNfa_0(int startState, int curPos) case 110: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 88) - kind = 88; + if (kind > 94) + kind = 94; jjCheckNAddStates(394, 397); break; case 111: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 88) - kind = 88; + if (kind > 94) + kind = 94; jjCheckNAddStates(398, 404); break; case 112: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 88) - kind = 88; + if (kind > 94) + kind = 94; jjCheckNAddStates(405, 407); break; case 113: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 88) - kind = 88; + if (kind > 94) + kind = 94; jjCheckNAddStates(408, 411); break; case 114: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 88) - kind = 88; + if (kind > 94) + kind = 94; jjCheckNAddStates(412, 416); break; case 115: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 88) - kind = 88; + if (kind > 94) + kind = 94; jjCheckNAddStates(417, 422); break; case 117: if ((0x7fffffe87fffffeL & l) == 0L) break; - if (kind > 60) - kind = 60; + if (kind > 66) + kind = 66; jjCheckNAddTwoStates(117, 118); break; case 118: @@ -2948,50 +2981,50 @@ private int jjMoveNfa_0(int startState, int curPos) case 119: if ((0x7fffffffffffffffL & l) == 0L) break; - if (kind > 60) - kind = 60; + if (kind > 66) + kind = 66; jjCheckNAddTwoStates(117, 118); break; case 120: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 60) - kind = 60; + if (kind > 66) + kind = 66; jjCheckNAddStates(423, 426); break; case 122: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 60) - kind = 60; + if (kind > 66) + kind = 66; jjCheckNAddStates(427, 433); break; case 123: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 60) - kind = 60; + if (kind > 66) + kind = 66; jjCheckNAddStates(434, 436); break; case 124: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 60) - kind = 60; + if (kind > 66) + kind = 66; jjCheckNAddStates(437, 440); break; case 125: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 60) - kind = 60; + if (kind > 66) + kind = 66; jjCheckNAddStates(441, 445); break; case 126: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 60) - kind = 60; + if (kind > 66) + kind = 66; jjCheckNAddStates(446, 451); break; case 127: @@ -3032,8 +3065,8 @@ private int jjMoveNfa_0(int startState, int curPos) jjCheckNAddStates(480, 486); break; case 141: - if ((0x10000000100000L & l) != 0L && kind > 58) - kind = 58; + if ((0x10000000100000L & l) != 0L && kind > 64) + kind = 64; break; case 142: if ((0x100000001000L & l) != 0L) @@ -3060,8 +3093,8 @@ private int jjMoveNfa_0(int startState, int curPos) jjstateSet[jjnewStateCnt++] = 146; break; case 149: - if ((0x10000000100000L & l) != 0L && kind > 89) - kind = 89; + if ((0x10000000100000L & l) != 0L && kind > 95) + kind = 95; break; case 150: if ((0x400000004000L & l) != 0L) @@ -3102,77 +3135,77 @@ private int jjMoveNfa_0(int startState, int curPos) case 161: if ((0x7fffffe07fffffeL & l) == 0L) break; - if (kind > 60) - kind = 60; + if (kind > 66) + kind = 66; jjCheckNAddStates(796, 801); break; case 167: - if ((0x10000000100000L & l) != 0L && kind > 66) - kind = 66; + if ((0x10000000100000L & l) != 0L && kind > 72) + kind = 72; break; case 168: if ((0x1000000010000L & l) != 0L) jjstateSet[jjnewStateCnt++] = 167; break; case 170: - if ((0x200000002000L & l) != 0L && kind > 67) - kind = 67; + if ((0x200000002000L & l) != 0L && kind > 73) + kind = 73; break; case 171: if ((0x200000002000L & l) != 0L) jjstateSet[jjnewStateCnt++] = 170; break; case 173: - if ((0x200000002000L & l) != 0L && kind > 68) - kind = 68; + if ((0x200000002000L & l) != 0L && kind > 74) + kind = 74; break; case 174: if ((0x800000008L & l) != 0L) jjstateSet[jjnewStateCnt++] = 173; break; case 176: - if ((0x800000008L & l) != 0L && kind > 69) - kind = 69; + if ((0x800000008L & l) != 0L && kind > 75) + kind = 75; break; case 177: if ((0x1000000010000L & l) != 0L) jjstateSet[jjnewStateCnt++] = 176; break; case 179: - if ((0x400000004000L & l) != 0L && kind > 70) - kind = 70; + if ((0x400000004000L & l) != 0L && kind > 76) + kind = 76; break; case 180: if ((0x20000000200L & l) != 0L) jjstateSet[jjnewStateCnt++] = 179; break; case 182: - if ((0x100000001000000L & l) != 0L && kind > 71) - kind = 71; + if ((0x100000001000000L & l) != 0L && kind > 77) + kind = 77; break; case 183: if ((0x1000000010000L & l) != 0L) jjstateSet[jjnewStateCnt++] = 182; break; case 185: - if ((0x200000002000L & l) != 0L && kind > 72) - kind = 72; + if ((0x200000002000L & l) != 0L && kind > 78) + kind = 78; break; case 186: if ((0x2000000020L & l) != 0L) jjstateSet[jjnewStateCnt++] = 185; break; case 188: - if ((0x100000001000000L & l) != 0L && kind > 73) - kind = 73; + if ((0x100000001000000L & l) != 0L && kind > 79) + kind = 79; break; case 189: if ((0x2000000020L & l) != 0L) jjstateSet[jjnewStateCnt++] = 188; break; case 191: - if ((0x8000000080L & l) != 0L && kind > 74) - kind = 74; + if ((0x8000000080L & l) != 0L && kind > 80) + kind = 80; break; case 192: if ((0x2000000020L & l) != 0L) @@ -3183,8 +3216,8 @@ private int jjMoveNfa_0(int startState, int curPos) jjstateSet[jjnewStateCnt++] = 192; break; case 195: - if ((0x1000000010L & l) != 0L && kind > 75) - kind = 75; + if ((0x1000000010L & l) != 0L && kind > 81) + kind = 81; break; case 196: if ((0x200000002L & l) != 0L) @@ -3195,8 +3228,8 @@ private int jjMoveNfa_0(int startState, int curPos) jjstateSet[jjnewStateCnt++] = 196; break; case 199: - if ((0x1000000010L & l) != 0L && kind > 76) - kind = 76; + if ((0x1000000010L & l) != 0L && kind > 82) + kind = 82; break; case 200: if ((0x200000002L & l) != 0L) @@ -3211,28 +3244,28 @@ private int jjMoveNfa_0(int startState, int curPos) jjstateSet[jjnewStateCnt++] = 201; break; case 204: - if ((0x8000000080000L & l) != 0L && kind > 77) - kind = 77; + if ((0x8000000080000L & l) != 0L && kind > 83) + kind = 83; break; case 205: if ((0x200000002000L & l) != 0L) jjstateSet[jjnewStateCnt++] = 204; break; case 207: - if ((0x8000000080000L & l) != 0L && kind > 78) - kind = 78; + if ((0x8000000080000L & l) != 0L && kind > 84) + kind = 84; break; case 209: - if ((0x400000004000000L & l) != 0L && kind > 79) - kind = 79; + if ((0x400000004000000L & l) != 0L && kind > 85) + kind = 85; break; case 210: if ((0x10000000100L & l) != 0L) jjstateSet[jjnewStateCnt++] = 209; break; case 212: - if ((0x400000004000000L & l) != 0L && kind > 80) - kind = 80; + if ((0x400000004000000L & l) != 0L && kind > 86) + kind = 86; break; case 213: if ((0x10000000100L & l) != 0L) @@ -3245,15 +3278,15 @@ private int jjMoveNfa_0(int startState, int curPos) case 217: if ((0x7fffffe07fffffeL & l) == 0L) break; - if (kind > 81) - kind = 81; + if (kind > 87) + kind = 87; jjCheckNAddTwoStates(218, 219); break; case 218: if ((0x7fffffe87fffffeL & l) == 0L) break; - if (kind > 81) - kind = 81; + if (kind > 87) + kind = 87; jjCheckNAddTwoStates(218, 219); break; case 219: @@ -3263,50 +3296,50 @@ private int jjMoveNfa_0(int startState, int curPos) case 220: if ((0x7fffffffffffffffL & l) == 0L) break; - if (kind > 81) - kind = 81; + if (kind > 87) + kind = 87; jjCheckNAddTwoStates(218, 219); break; case 221: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 81) - kind = 81; + if (kind > 87) + kind = 87; jjCheckNAddStates(487, 490); break; case 223: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 81) - kind = 81; + if (kind > 87) + kind = 87; jjCheckNAddStates(491, 497); break; case 224: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 81) - kind = 81; + if (kind > 87) + kind = 87; jjCheckNAddStates(498, 500); break; case 225: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 81) - kind = 81; + if (kind > 87) + kind = 87; jjCheckNAddStates(501, 504); break; case 226: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 81) - kind = 81; + if (kind > 87) + kind = 87; jjCheckNAddStates(505, 509); break; case 227: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 81) - kind = 81; + if (kind > 87) + kind = 87; jjCheckNAddStates(510, 515); break; case 229: @@ -3316,43 +3349,43 @@ private int jjMoveNfa_0(int startState, int curPos) case 230: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 81) - kind = 81; + if (kind > 87) + kind = 87; jjCheckNAddStates(516, 519); break; case 231: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 81) - kind = 81; + if (kind > 87) + kind = 87; jjCheckNAddStates(520, 526); break; case 232: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 81) - kind = 81; + if (kind > 87) + kind = 87; jjCheckNAddStates(527, 529); break; case 233: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 81) - kind = 81; + if (kind > 87) + kind = 87; jjCheckNAddStates(530, 533); break; case 234: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 81) - kind = 81; + if (kind > 87) + kind = 87; jjCheckNAddStates(534, 538); break; case 235: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 81) - kind = 81; + if (kind > 87) + kind = 87; jjCheckNAddStates(539, 544); break; case 236: @@ -3477,8 +3510,8 @@ private int jjMoveNfa_0(int startState, int curPos) case 294: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 99) - kind = 99; + if (kind > 105) + kind = 105; jjAddStates(696, 701); break; case 295: @@ -3494,8 +3527,8 @@ private int jjMoveNfa_0(int startState, int curPos) jjCheckNAdd(298); break; case 298: - if ((0x7e0000007eL & l) != 0L && kind > 99) - kind = 99; + if ((0x7e0000007eL & l) != 0L && kind > 105) + kind = 105; break; case 299: if ((0x7e0000007eL & l) != 0L) @@ -3512,8 +3545,8 @@ private int jjMoveNfa_0(int startState, int curPos) case 302: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 99) - kind = 99; + if (kind > 105) + kind = 105; jjstateSet[jjnewStateCnt++] = 290; break; case 303: @@ -3527,8 +3560,8 @@ private int jjMoveNfa_0(int startState, int curPos) case 305: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 99) - kind = 99; + if (kind > 105) + kind = 105; jjstateSet[jjnewStateCnt++] = 306; break; case 307: @@ -3538,15 +3571,15 @@ private int jjMoveNfa_0(int startState, int curPos) case 308: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 99) - kind = 99; + if (kind > 105) + kind = 105; jjstateSet[jjnewStateCnt++] = 309; break; case 311: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 99) - kind = 99; + if (kind > 105) + kind = 105; jjstateSet[jjnewStateCnt++] = 312; break; case 320: @@ -3556,36 +3589,36 @@ private int jjMoveNfa_0(int startState, int curPos) case 322: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 99) - kind = 99; + if (kind > 105) + kind = 105; jjstateSet[jjnewStateCnt++] = 323; break; case 323: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 99) - kind = 99; + if (kind > 105) + kind = 105; jjCheckNAddStates(712, 715); break; case 324: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 99) - kind = 99; + if (kind > 105) + kind = 105; jjCheckNAdd(298); break; case 325: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 99) - kind = 99; + if (kind > 105) + kind = 105; jjCheckNAddTwoStates(298, 324); break; case 326: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 99) - kind = 99; + if (kind > 105) + kind = 105; jjCheckNAddStates(716, 718); break; case 327: @@ -3615,43 +3648,43 @@ private int jjMoveNfa_0(int startState, int curPos) case 333: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 60) - kind = 60; + if (kind > 66) + kind = 66; jjCheckNAddStates(731, 734); break; case 334: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 60) - kind = 60; + if (kind > 66) + kind = 66; jjCheckNAddStates(735, 741); break; case 335: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 60) - kind = 60; + if (kind > 66) + kind = 66; jjCheckNAddStates(742, 744); break; case 336: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 60) - kind = 60; + if (kind > 66) + kind = 66; jjCheckNAddStates(745, 748); break; case 337: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 60) - kind = 60; + if (kind > 66) + kind = 66; jjCheckNAddStates(749, 753); break; case 338: if ((0x7e0000007eL & l) == 0L) break; - if (kind > 60) - kind = 60; + if (kind > 66) + kind = 66; jjCheckNAddStates(754, 759); break; case 339: @@ -3690,23 +3723,23 @@ private int jjMoveNfa_0(int startState, int curPos) case 100: if ((jjbitVec0[i2] & l2) == 0L) break; - if (kind > 88) - kind = 88; + if (kind > 94) + kind = 94; jjCheckNAddTwoStates(98, 99); break; - case 402: + case 403: case 98: if ((jjbitVec0[i2] & l2) == 0L) break; - if (kind > 88) - kind = 88; + if (kind > 94) + kind = 94; jjCheckNAddTwoStates(98, 99); break; case 401: if ((jjbitVec0[i2] & l2) != 0L) { - if (kind > 60) - kind = 60; + if (kind > 66) + kind = 66; jjCheckNAddTwoStates(117, 118); } if ((jjbitVec0[i2] & l2) != 0L) @@ -3715,8 +3748,8 @@ private int jjMoveNfa_0(int startState, int curPos) case 4: if ((jjbitVec0[i2] & l2) == 0L) break; - if (kind > 32) - kind = 32; + if (kind > 37) + kind = 37; jjCheckNAddStates(796, 801); break; case 2: @@ -3744,24 +3777,24 @@ private int jjMoveNfa_0(int startState, int curPos) case 76: if ((jjbitVec0[i2] & l2) == 0L) break; - if (kind > 64) - kind = 64; + if (kind > 70) + kind = 70; jjCheckNAddTwoStates(66, 67); break; case 85: case 87: if ((jjbitVec0[i2] & l2) == 0L) break; - if (kind > 82) - kind = 82; + if (kind > 88) + kind = 88; jjCheckNAddTwoStates(85, 86); break; case 117: case 119: if ((jjbitVec0[i2] & l2) == 0L) break; - if (kind > 60) - kind = 60; + if (kind > 66) + kind = 66; jjCheckNAddTwoStates(117, 118); break; case 127: @@ -3774,8 +3807,8 @@ private int jjMoveNfa_0(int startState, int curPos) case 228: if ((jjbitVec0[i2] & l2) == 0L) break; - if (kind > 81) - kind = 81; + if (kind > 87) + kind = 87; jjCheckNAddTwoStates(218, 219); break; case 238: @@ -4019,12 +4052,13 @@ static final int[] jjnextStates = { public static final String[] jjstrLiteralImages = { "", null, null, null, null, null, null, null, null, null, "\74\41\55\55", "\55\55\76", "\173", "\175", "\174\75", "\176\75", "\75", "\53", "\55", "\54", "\73", -"\76", "\57", "\133", "\135", "\52", "\46", "\56", "\50", "\51", "\72", null, null, +"\76", "\74", "\57", "\133", "\135", "\52", "\46", "\56", "\50", "\51", "\75\75", +"\174\174", "\46\46", "\41\75", "\72", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, -null, null, null, null, null, null, null, null, null, null, null, null, null, }; +null, null, null, null, null, null, null, null, }; /** Lexer state names. */ public static final String[] lexStateNames = { @@ -4040,10 +4074,10 @@ public static final int[] jjnewLexState = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, }; static final long[] jjtoToken = { - 0xbffffe01fffffc03L, 0x3803ffffffL, + 0xffffc03ffffffc03L, 0xe00ffffffefL, }; static final long[] jjtoSkip = { 0x190L, 0x0L, @@ -4169,9 +4203,9 @@ public Token getNextToken() jjmatchedKind = 0x7fffffff; jjmatchedPos = 0; curPos = jjMoveStringLiteralDfa0_0(); - if (jjmatchedPos == 0 && jjmatchedKind > 101) + if (jjmatchedPos == 0 && jjmatchedKind > 107) { - jjmatchedKind = 101; + jjmatchedKind = 107; } break; case 1: diff --git a/theme-compiler/src/com/vaadin/sass/selector/SelectorUtil.java b/theme-compiler/src/com/vaadin/sass/selector/SelectorUtil.java index d93f37c175..788f297cac 100644 --- a/theme-compiler/src/com/vaadin/sass/selector/SelectorUtil.java +++ b/theme-compiler/src/com/vaadin/sass/selector/SelectorUtil.java @@ -29,6 +29,7 @@ import org.w3c.css.sac.SiblingSelector; import org.w3c.css.sac.SimpleSelector; import org.w3c.flute.parser.selectors.AndConditionImpl; import org.w3c.flute.parser.selectors.AttributeConditionImpl; +import org.w3c.flute.parser.selectors.ChildSelectorImpl; import org.w3c.flute.parser.selectors.ClassConditionImpl; import org.w3c.flute.parser.selectors.ConditionFactoryImpl; import org.w3c.flute.parser.selectors.DirectAdjacentSelectorImpl; @@ -305,4 +306,28 @@ public class SelectorUtil { return one == null ? another == null : toString(one).equals( toString(another)); } + + public static Selector createSelectorAndreplaceSelectorVariableWithValue( + Selector selector, String variable, String value) throws Exception { + + SelectorFactoryImpl factory = new SelectorFactoryImpl(); + + ElementSelector es = factory.createElementSelector( + null, + ((ElementSelector) selector).getLocalName().replaceAll( + variable, value)); + + if (selector instanceof ConditionalSelector) { + return factory.createConditionalSelector(es, + ((ConditionalSelector) selector).getCondition()); + } else if (selector instanceof DescendantSelector) { + return factory.createDescendantSelector(es, + ((DescendantSelector) selector).getSimpleSelector()); + } else if (selector instanceof ChildSelectorImpl) { + return factory.createChildSelector(es, + ((DescendantSelector) selector).getSimpleSelector()); + } else { + throw new Exception("Invalid selector type"); + } + } } diff --git a/theme-compiler/src/com/vaadin/sass/tree/BlockNode.java b/theme-compiler/src/com/vaadin/sass/tree/BlockNode.java index e255b2a3e5..cde7c9425a 100644 --- a/theme-compiler/src/com/vaadin/sass/tree/BlockNode.java +++ b/theme-compiler/src/com/vaadin/sass/tree/BlockNode.java @@ -16,6 +16,9 @@ package com.vaadin.sass.tree; +import java.util.ArrayList; + +import org.w3c.css.sac.Selector; import org.w3c.css.sac.SelectorList; import com.vaadin.sass.parser.SelectorListImpl; @@ -23,7 +26,7 @@ import com.vaadin.sass.selector.SelectorUtil; import com.vaadin.sass.util.Clonable; import com.vaadin.sass.util.DeepCopy; -public class BlockNode extends Node implements Clonable { +public class BlockNode extends Node implements Clonable, IVariableNode { private static final long serialVersionUID = 5742962631468325048L; @@ -81,4 +84,35 @@ public class BlockNode extends Node implements Clonable { return clone; } + @Override + public void replaceVariables(ArrayList<VariableNode> variables) { + SelectorListImpl newList = new SelectorListImpl(); + + if (selectorList != null) { + for (int i = 0; i < selectorList.getLength(); i++) { + Selector selector = selectorList.item(i); + + for (final VariableNode node : variables) { + + if (SelectorUtil.toString(selector) + .contains(node.getName())) { + try { + selector = SelectorUtil + .createSelectorAndreplaceSelectorVariableWithValue( + selector, node.getName(), node + .getExpr().toString()); + break; + } catch (Exception e) { + e.printStackTrace(); + return; + } + } + } + newList.addSelector(selector); + } + + selectorList = newList; + } + } + } diff --git a/theme-compiler/src/com/vaadin/sass/tree/ExtendNode.java b/theme-compiler/src/com/vaadin/sass/tree/ExtendNode.java index 65ecb254bb..b70c20bcfe 100644 --- a/theme-compiler/src/com/vaadin/sass/tree/ExtendNode.java +++ b/theme-compiler/src/com/vaadin/sass/tree/ExtendNode.java @@ -16,9 +16,15 @@ package com.vaadin.sass.tree; +import java.util.ArrayList; + +import org.w3c.css.sac.Selector; import org.w3c.css.sac.SelectorList; -public class ExtendNode extends Node { +import com.vaadin.sass.parser.SelectorListImpl; +import com.vaadin.sass.selector.SelectorUtil; + +public class ExtendNode extends Node implements IVariableNode { private static final long serialVersionUID = 3301805078983796878L; SelectorList list; @@ -32,4 +38,32 @@ public class ExtendNode extends Node { return list; } + @Override + public void replaceVariables(ArrayList<VariableNode> variables) { + SelectorListImpl newList = new SelectorListImpl(); + + for (int i = 0; i < list.getLength(); i++) { + Selector selector = list.item(i); + + for (final VariableNode node : variables) { + + if (SelectorUtil.toString(selector).contains(node.getName())) { + try { + selector = SelectorUtil + .createSelectorAndreplaceSelectorVariableWithValue( + selector, node.getName(), node + .getExpr().toString()); + break; + } catch (Exception e) { + e.printStackTrace(); + return; + } + } + } + newList.addSelector(selector); + } + + list = newList; + } + } diff --git a/theme-compiler/src/com/vaadin/sass/tree/FunctionNode.java b/theme-compiler/src/com/vaadin/sass/tree/FunctionNode.java index 90b5458235..6263d557b8 100644 --- a/theme-compiler/src/com/vaadin/sass/tree/FunctionNode.java +++ b/theme-compiler/src/com/vaadin/sass/tree/FunctionNode.java @@ -16,7 +16,9 @@ package com.vaadin.sass.tree; -public class FunctionNode extends Node { +import java.util.ArrayList; + +public class FunctionNode extends Node implements IVariableNode { private static final long serialVersionUID = -5383104165955523923L; private String name; @@ -39,4 +41,13 @@ public class FunctionNode extends Node { return "Function Node: {name: " + name + ", args: " + args + ", body: " + body + "}"; } + + @Override + public void replaceVariables(ArrayList<VariableNode> variables) { + for (final VariableNode node : variables) { + if (args.contains(node.getName())) { + args.replaceAll(node.getName(), node.getExpr().toString()); + } + } + } } diff --git a/theme-compiler/src/com/vaadin/sass/tree/IVariableNode.java b/theme-compiler/src/com/vaadin/sass/tree/IVariableNode.java new file mode 100644 index 0000000000..2c3e1c95d2 --- /dev/null +++ b/theme-compiler/src/com/vaadin/sass/tree/IVariableNode.java @@ -0,0 +1,9 @@ +package com.vaadin.sass.tree; + +import java.util.ArrayList; + +public interface IVariableNode { + + public void replaceVariables(ArrayList<VariableNode> variables); + +} diff --git a/theme-compiler/src/com/vaadin/sass/tree/IfNode.java b/theme-compiler/src/com/vaadin/sass/tree/IfNode.java deleted file mode 100644 index e425538104..0000000000 --- a/theme-compiler/src/com/vaadin/sass/tree/IfNode.java +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright 2011 Vaadin Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ - -package com.vaadin.sass.tree; - -public class IfNode extends Node { - private static final long serialVersionUID = 1561250630856748066L; - -} diff --git a/theme-compiler/src/com/vaadin/sass/tree/MediaNode.java b/theme-compiler/src/com/vaadin/sass/tree/MediaNode.java index 00a7442a24..b312d53a00 100644 --- a/theme-compiler/src/com/vaadin/sass/tree/MediaNode.java +++ b/theme-compiler/src/com/vaadin/sass/tree/MediaNode.java @@ -56,4 +56,5 @@ public class MediaNode extends Node { builder.append("}"); return builder.toString(); } + } diff --git a/theme-compiler/src/com/vaadin/sass/tree/MixinDefNode.java b/theme-compiler/src/com/vaadin/sass/tree/MixinDefNode.java index b888d01971..a872d13654 100644 --- a/theme-compiler/src/com/vaadin/sass/tree/MixinDefNode.java +++ b/theme-compiler/src/com/vaadin/sass/tree/MixinDefNode.java @@ -19,7 +19,9 @@ package com.vaadin.sass.tree; import java.util.ArrayList; import java.util.Collection; -public class MixinDefNode extends Node { +import com.vaadin.sass.util.DeepCopy; + +public class MixinDefNode extends Node implements IVariableNode { private static final long serialVersionUID = 5469294053247343948L; private String name; @@ -64,4 +66,18 @@ public class MixinDefNode extends Node { this.arglist = arglist; } + @Override + public void replaceVariables(ArrayList<VariableNode> variables) { + for (final VariableNode var : variables) { + for (final VariableNode arg : new ArrayList<VariableNode>(arglist)) { + + if (arg.getName().equals(var.getName())) { + arglist.add(arglist.indexOf(arg), + (VariableNode) DeepCopy.copy(var)); + arglist.remove(arg); + } + } + } + } + } diff --git a/theme-compiler/src/com/vaadin/sass/tree/MixinNode.java b/theme-compiler/src/com/vaadin/sass/tree/MixinNode.java index 0267b88e2d..2b9299bbd1 100644 --- a/theme-compiler/src/com/vaadin/sass/tree/MixinNode.java +++ b/theme-compiler/src/com/vaadin/sass/tree/MixinNode.java @@ -21,7 +21,9 @@ import java.util.Collection; import org.w3c.css.sac.LexicalUnit; -public class MixinNode extends Node { +import com.vaadin.sass.parser.LexicalUnitImpl; + +public class MixinNode extends Node implements IVariableNode { private static final long serialVersionUID = 4725008226813110658L; private String name; @@ -56,4 +58,17 @@ public class MixinNode extends Node { public void setArglist(ArrayList<LexicalUnit> arglist) { this.arglist = arglist; } + + @Override + public void replaceVariables(ArrayList<VariableNode> variables) { + for (final VariableNode var : variables) { + for (final LexicalUnit arg : new ArrayList<LexicalUnit>(arglist)) { + if (arg.getLexicalUnitType() == LexicalUnitImpl.SCSS_VARIABLE + && arg.getStringValue().equals(var.getName())) { + ((LexicalUnitImpl) arg).replaceValue(var.getExpr()); + } + } + } + } + } diff --git a/theme-compiler/src/com/vaadin/sass/tree/NestPropertiesNode.java b/theme-compiler/src/com/vaadin/sass/tree/NestPropertiesNode.java index 306a73ba87..27d3f5b23f 100644 --- a/theme-compiler/src/com/vaadin/sass/tree/NestPropertiesNode.java +++ b/theme-compiler/src/com/vaadin/sass/tree/NestPropertiesNode.java @@ -20,7 +20,7 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; -public class NestPropertiesNode extends Node { +public class NestPropertiesNode extends Node implements IVariableNode { private static final long serialVersionUID = 3671253315690598308L; public NestPropertiesNode(String name) { @@ -53,4 +53,14 @@ public class NestPropertiesNode extends Node { child.getValue(), child.isImportant(), null); return newRuleNode; } + + @Override + public void replaceVariables(ArrayList<VariableNode> variables) { + for (final VariableNode node : variables) { + if (name.contains(node.getName())) { + name = name.replaceAll(node.getName(), node.getExpr() + .toString()); + } + } + } } diff --git a/theme-compiler/src/com/vaadin/sass/tree/Node.java b/theme-compiler/src/com/vaadin/sass/tree/Node.java index 817327502b..6e871df286 100644 --- a/theme-compiler/src/com/vaadin/sass/tree/Node.java +++ b/theme-compiler/src/com/vaadin/sass/tree/Node.java @@ -19,7 +19,6 @@ package com.vaadin.sass.tree; import java.io.Serializable; import java.util.ArrayList; import java.util.Collection; -import java.util.List; public abstract class Node implements Serializable { private static final long serialVersionUID = 5914711715839294816L; @@ -28,11 +27,9 @@ public abstract class Node implements Serializable { private String fileName; protected String rawString; - protected List<String> variables; public Node() { children = new ArrayList<Node>(); - variables = new ArrayList<String>(); } public Node(String raw) { @@ -98,11 +95,4 @@ public abstract class Node implements Serializable { return rawString; } - public void addVariable(String var) { - variables.add(var); - } - - public void removeVariable(String var) { - variables.remove(var); - } } diff --git a/theme-compiler/src/com/vaadin/sass/tree/RuleNode.java b/theme-compiler/src/com/vaadin/sass/tree/RuleNode.java index 3b51468e1d..fe52844979 100644 --- a/theme-compiler/src/com/vaadin/sass/tree/RuleNode.java +++ b/theme-compiler/src/com/vaadin/sass/tree/RuleNode.java @@ -16,9 +16,13 @@ package com.vaadin.sass.tree; +import java.util.ArrayList; + import org.w3c.css.sac.LexicalUnit; -public class RuleNode extends Node { +import com.vaadin.sass.parser.LexicalUnitImpl; + +public class RuleNode extends Node implements IVariableNode { private static final long serialVersionUID = 6653493127869037022L; String variable; @@ -77,4 +81,32 @@ public class RuleNode extends Node { this.comment = comment; } + @Override + public void replaceVariables(ArrayList<VariableNode> variables) { + for (final VariableNode node : variables) { + LexicalUnit current = value; + if (current.getLexicalUnitType() == LexicalUnitImpl.SAC_FUNCTION) { + if (current.getParameters().toString().contains(node.getName())) { + LexicalUnit param = value.getParameters(); + if (param != null) { + if (param.toString().contains(node.getName())) { + ((LexicalUnitImpl) param).replaceValue(node + .getExpr()); + } + } + } + } else { + while (current != null) { + if (current.getLexicalUnitType() == LexicalUnitImpl.SCSS_VARIABLE + && current.toString() + .contains("$" + node.getName())) { + + ((LexicalUnitImpl) current) + .replaceValue(node.getExpr()); + } + current = current.getNextLexicalUnit(); + } + } + } + } } diff --git a/theme-compiler/src/com/vaadin/sass/tree/SimpleNode.java b/theme-compiler/src/com/vaadin/sass/tree/SimpleNode.java index 39a5d17b48..52329c1b14 100644 --- a/theme-compiler/src/com/vaadin/sass/tree/SimpleNode.java +++ b/theme-compiler/src/com/vaadin/sass/tree/SimpleNode.java @@ -1,5 +1,7 @@ package com.vaadin.sass.tree; +import java.util.ArrayList; + /** * A simple BlockNode where input text equals output. <b>Note : </b> ignores any * possible children so only use it when you are sure no child nodes will be @@ -8,9 +10,9 @@ package com.vaadin.sass.tree; * @author Sebastian Nyholm @ Vaadin Ltd * */ -public class SimpleNode extends Node { +public class SimpleNode extends Node implements IVariableNode { - private final String text; + private String text; public SimpleNode(String text) { this.text = text; @@ -21,4 +23,14 @@ public class SimpleNode extends Node { public String toString() { return text; } + + @Override + public void replaceVariables(ArrayList<VariableNode> variables) { + for (final VariableNode node : variables) { + if (text.contains(node.getName())) { + text = text.replaceAll(node.getName(), node.getExpr() + .toString()); + } + } + } } diff --git a/theme-compiler/src/com/vaadin/sass/tree/VariableNode.java b/theme-compiler/src/com/vaadin/sass/tree/VariableNode.java index db014ae616..b7e9a21d51 100644 --- a/theme-compiler/src/com/vaadin/sass/tree/VariableNode.java +++ b/theme-compiler/src/com/vaadin/sass/tree/VariableNode.java @@ -16,9 +16,14 @@ package com.vaadin.sass.tree; +import java.util.ArrayList; + import org.w3c.css.sac.LexicalUnit; -public class VariableNode extends Node { +import com.vaadin.sass.parser.LexicalUnitImpl; +import com.vaadin.sass.util.DeepCopy; + +public class VariableNode extends Node implements IVariableNode { private static final long serialVersionUID = 7003372557547748734L; private String name; @@ -64,4 +69,43 @@ public class VariableNode extends Node { this.guarded = guarded; } + @Override + public void replaceVariables(ArrayList<VariableNode> variables) { + for (final VariableNode node : variables) { + if (!this.equals(node)) { + + if (name.equals(node.getName())) { + expr = (LexicalUnit) DeepCopy.copy(node.getExpr()); + guarded = node.isGuarded(); + continue; + } + + LexicalUnit current = expr; + while (current != null) { + if (current.toString().contains(node.getName())) { + ((LexicalUnitImpl) current) + .replaceValue(node.getExpr()); + } + + current = current.getNextLexicalUnit(); + } + + } + } + } + + public boolean replacePossibleVariables(ArrayList<VariableNode> list) { + list.remove(this); + LexicalUnit oldExpr = (LexicalUnit) DeepCopy.copy(expr); + replaceVariables(list); + + if (!oldExpr.toString().equals(expr.toString())) { + for (VariableNode n : list) { + if (expr.toString().equals(n.getExpr().toString())) { + return true; + } + } + } + return false; + } } diff --git a/theme-compiler/src/com/vaadin/sass/tree/controldirective/ControlChildNode.java b/theme-compiler/src/com/vaadin/sass/tree/controldirective/ControlChildNode.java deleted file mode 100644 index a6df1e744b..0000000000 --- a/theme-compiler/src/com/vaadin/sass/tree/controldirective/ControlChildNode.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.vaadin.sass.tree.controldirective; - - -public interface ControlChildNode extends ControlNode { - -} diff --git a/theme-compiler/src/com/vaadin/sass/tree/controldirective/ControlDefNode.java b/theme-compiler/src/com/vaadin/sass/tree/controldirective/ControlDefNode.java deleted file mode 100644 index 4ead42eb0a..0000000000 --- a/theme-compiler/src/com/vaadin/sass/tree/controldirective/ControlDefNode.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.vaadin.sass.tree.controldirective; - - -public interface ControlDefNode extends ControlNode { - -} diff --git a/theme-compiler/src/com/vaadin/sass/tree/controldirective/ControlNode.java b/theme-compiler/src/com/vaadin/sass/tree/controldirective/ControlNode.java deleted file mode 100644 index 453593d4d2..0000000000 --- a/theme-compiler/src/com/vaadin/sass/tree/controldirective/ControlNode.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.vaadin.sass.tree.controldirective; - -public interface ControlNode { - -} diff --git a/theme-compiler/src/com/vaadin/sass/tree/controldirective/EachDefNode.java b/theme-compiler/src/com/vaadin/sass/tree/controldirective/EachDefNode.java index 1dfa5892d9..2cb9aeb1c3 100644 --- a/theme-compiler/src/com/vaadin/sass/tree/controldirective/EachDefNode.java +++ b/theme-compiler/src/com/vaadin/sass/tree/controldirective/EachDefNode.java @@ -21,7 +21,7 @@ import java.util.List; import com.vaadin.sass.tree.Node; -public class EachDefNode extends Node implements ControlDefNode { +public class EachDefNode extends Node { private static final long serialVersionUID = 7943948981204906221L; private String var; diff --git a/theme-compiler/src/com/vaadin/sass/tree/controldirective/ElseNode.java b/theme-compiler/src/com/vaadin/sass/tree/controldirective/ElseNode.java new file mode 100644 index 0000000000..529ce4d76e --- /dev/null +++ b/theme-compiler/src/com/vaadin/sass/tree/controldirective/ElseNode.java @@ -0,0 +1,12 @@ +package com.vaadin.sass.tree.controldirective; + +import com.vaadin.sass.tree.Node; + +public class ElseNode extends Node implements IfElseNode { + + @Override + public String getExpression() { + return null; + } + +} diff --git a/theme-compiler/src/com/vaadin/sass/tree/controldirective/IfElseDefNode.java b/theme-compiler/src/com/vaadin/sass/tree/controldirective/IfElseDefNode.java new file mode 100644 index 0000000000..5bd3ba526c --- /dev/null +++ b/theme-compiler/src/com/vaadin/sass/tree/controldirective/IfElseDefNode.java @@ -0,0 +1,17 @@ +package com.vaadin.sass.tree.controldirective; + +import com.vaadin.sass.tree.Node; + +public class IfElseDefNode extends Node { + + @Override + public String toString() { + StringBuilder b = new StringBuilder(); + for (final Node child : getChildren()) { + b.append(child.toString()); + b.append("\n"); + } + return b.toString(); + } + +} diff --git a/theme-compiler/src/com/vaadin/sass/tree/controldirective/IfElseNode.java b/theme-compiler/src/com/vaadin/sass/tree/controldirective/IfElseNode.java new file mode 100644 index 0000000000..8f6c09addc --- /dev/null +++ b/theme-compiler/src/com/vaadin/sass/tree/controldirective/IfElseNode.java @@ -0,0 +1,7 @@ +package com.vaadin.sass.tree.controldirective; + +public interface IfElseNode { + + String getExpression(); + +} diff --git a/theme-compiler/src/com/vaadin/sass/tree/controldirective/IfNode.java b/theme-compiler/src/com/vaadin/sass/tree/controldirective/IfNode.java new file mode 100644 index 0000000000..2f31f36f0c --- /dev/null +++ b/theme-compiler/src/com/vaadin/sass/tree/controldirective/IfNode.java @@ -0,0 +1,55 @@ +/* + * Copyright 2011 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.vaadin.sass.tree.controldirective; + +import java.util.ArrayList; + +import com.vaadin.sass.tree.IVariableNode; +import com.vaadin.sass.tree.Node; +import com.vaadin.sass.tree.VariableNode; + +public class IfNode extends Node implements IfElseNode, IVariableNode { + private String expression; + + public IfNode(String expression) { + this.expression = expression; + } + + @Override + public String getExpression() { + if (expression != null) { + return expression.trim(); + } else { + return "false"; + } + } + + @Override + public String toString() { + return "@if" + expression; + } + + @Override + public void replaceVariables(ArrayList<VariableNode> variables) { + for (final VariableNode node : variables) { + if (expression.contains(node.getName())) { + expression = expression.replaceAll(node.getName(), node + .getExpr().toString()); + } + } + } + +}
\ No newline at end of file diff --git a/theme-compiler/src/com/vaadin/sass/visitor/ControlVisitor.java b/theme-compiler/src/com/vaadin/sass/visitor/EachVisitor.java index cc736b307f..0e4fb46a23 100644 --- a/theme-compiler/src/com/vaadin/sass/visitor/ControlVisitor.java +++ b/theme-compiler/src/com/vaadin/sass/visitor/EachVisitor.java @@ -6,20 +6,19 @@ import java.util.regex.Pattern; import com.vaadin.sass.tree.BlockNode; import com.vaadin.sass.tree.Node; import com.vaadin.sass.tree.SimpleNode; -import com.vaadin.sass.tree.controldirective.ControlDefNode; import com.vaadin.sass.tree.controldirective.EachDefNode; -public class ControlVisitor implements Visitor { +public class EachVisitor implements Visitor { - HashSet<Node> controlDefs = new HashSet<Node>(); + HashSet<EachDefNode> controlDefs = new HashSet<EachDefNode>(); private Node rootNode; @Override public void traverse(Node node) throws Exception { this.rootNode = node; for (Node child : node.getChildren()) { - if (child instanceof ControlDefNode) { - controlDefs.add(child); + if (child instanceof EachDefNode) { + controlDefs.add((EachDefNode) child); } } @@ -28,10 +27,8 @@ public class ControlVisitor implements Visitor { } private void replaceControlNodes() { - for (final Node defNode : controlDefs) { - if (defNode instanceof EachDefNode) { - replaceEachDefNode((EachDefNode) defNode); - } + for (final EachDefNode defNode : controlDefs) { + replaceEachDefNode(defNode); } } diff --git a/theme-compiler/src/com/vaadin/sass/visitor/IfElseVisitor.java b/theme-compiler/src/com/vaadin/sass/visitor/IfElseVisitor.java new file mode 100644 index 0000000000..cff00392fb --- /dev/null +++ b/theme-compiler/src/com/vaadin/sass/visitor/IfElseVisitor.java @@ -0,0 +1,112 @@ +package com.vaadin.sass.visitor; + +import java.util.HashMap; +import java.util.Map.Entry; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import org.apache.commons.jexl2.Expression; +import org.apache.commons.jexl2.JexlEngine; +import org.apache.commons.jexl2.JexlException; +import org.w3c.flute.parser.ParseException; + +import com.vaadin.sass.tree.Node; +import com.vaadin.sass.tree.controldirective.ElseNode; +import com.vaadin.sass.tree.controldirective.IfElseDefNode; +import com.vaadin.sass.tree.controldirective.IfElseNode; +import com.vaadin.sass.tree.controldirective.IfNode; + +public class IfElseVisitor implements Visitor { + + private HashMap<Node, IfElseDefNode> controlDefs = new HashMap<Node, IfElseDefNode>(); + + private static final JexlEngine evaluator = new JexlEngine(); + private static final Pattern pattern = Pattern + .compile("[a-zA-Z0-9]*[a-zA-Z]+[a-zA-Z0-9]*"); + + @Override + public void traverse(Node node) throws Exception { + addControlDefs(node, node); + + for (final Entry<Node, IfElseDefNode> entry : controlDefs.entrySet()) { + IfElseDefNode defNode = entry.getValue(); + Node parent = entry.getKey(); + for (final Node child : defNode.getChildren()) { + if (child instanceof IfNode) { + try { + String expression = ((IfElseNode) child) + .getExpression(); + // We need to add ' ' for strings in the expression for + // jexl to understand that is should do a string + // comparison + expression = replaceStrings(expression); + Expression e = evaluator.createExpression(expression); + try { + Boolean result = (Boolean) e.evaluate(null); + if (result) { + replaceDefNodeWithCorrectChild(defNode, parent, + child); + break; + } + } catch (ClassCastException ex) { + throw new ParseException( + "Invalid @if/@else in scss file, not a boolean expression : " + + child.toString()); + } catch (NullPointerException ex) { + throw new ParseException( + "Invalid @if/@else in scss file, not a boolean expression : " + + child.toString()); + } + } catch (JexlException e) { + throw new ParseException( + "Invalid @if/@else in scss file for " + + child.toString()); + } + } else { + if (!(child instanceof ElseNode) + && defNode.getChildren().indexOf(child) == defNode + .getChildren().size() - 1) { + throw new ParseException( + "Invalid @if/@else in scss file for " + defNode); + } else { + replaceDefNodeWithCorrectChild(defNode, parent, child); + break; + } + } + } + + parent.removeChild(defNode); + } + + } + + private String replaceStrings(String expression) { + Matcher m = pattern.matcher(expression); + StringBuffer b = new StringBuffer(); + while (m.find()) { + String group = m.group(); + m.appendReplacement(b, "'" + group + "'"); + } + + if (b.length() != 0) { + return b.toString(); + } + return expression; + } + + private void replaceDefNodeWithCorrectChild(IfElseDefNode defNode, + Node parent, final Node child) { + for (final Node n : child.getChildren()) { + parent.appendChild(n, defNode); + } + } + + private void addControlDefs(Node current, Node node) { + for (Node child : current.getChildren()) { + addControlDefs(node, child); + if (child instanceof IfElseDefNode) { + controlDefs.put(current, (IfElseDefNode) child); + } + } + } +} diff --git a/theme-compiler/src/com/vaadin/sass/visitor/MixinVisitor.java b/theme-compiler/src/com/vaadin/sass/visitor/MixinVisitor.java index d6008526b4..9b440fae2a 100644 --- a/theme-compiler/src/com/vaadin/sass/visitor/MixinVisitor.java +++ b/theme-compiler/src/com/vaadin/sass/visitor/MixinVisitor.java @@ -20,10 +20,12 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.Map; +import org.w3c.css.sac.LexicalUnit; + +import com.vaadin.sass.tree.IVariableNode; import com.vaadin.sass.tree.MixinDefNode; import com.vaadin.sass.tree.MixinNode; import com.vaadin.sass.tree.Node; -import com.vaadin.sass.tree.VariableNode; import com.vaadin.sass.util.DeepCopy; public class MixinVisitor implements Visitor { @@ -74,21 +76,29 @@ public class MixinVisitor implements Visitor { pre = child; } } else { - for (int i = 0; i < mixinDef.getArglist().size(); i++) { - VariableNode arg = (VariableNode) DeepCopy.copy(mixinDef - .getArglist().get(i)); - if (i < mixinNode.getArglist().size()) { - arg.setExpr(mixinNode.getArglist().get(i)); - } - current.appendChild(arg, pre); - pre = arg; + int i = 0; + for (final LexicalUnit unit : mixinNode.getArglist()) { + mixinDef.getArglist().get(i) + .setExpr((LexicalUnit) DeepCopy.copy(unit)); + i++; } - for (Node child : mixinDef.getChildren()) { - Node clonedChild = (Node) DeepCopy.copy(child); - current.appendChild(clonedChild, pre); - pre = clonedChild; + + for (int j = mixinDef.getChildren().size() - 1; j >= 0; j--) { + Node child = (Node) DeepCopy + .copy(mixinDef.getChildren().get(j)); + replaceChildVariables(mixinDef, child); + current.appendChild(child, mixinNode); } } current.removeChild(mixinNode); } + + private void replaceChildVariables(MixinDefNode mixinDef, Node node) { + for (final Node child : node.getChildren()) { + replaceChildVariables(mixinDef, child); + } + if (node instanceof IVariableNode) { + ((IVariableNode) node).replaceVariables(mixinDef.getArglist()); + } + } } diff --git a/theme-compiler/src/com/vaadin/sass/visitor/VariableVisitor.java b/theme-compiler/src/com/vaadin/sass/visitor/VariableVisitor.java index 7fa62bd20f..4508237cb9 100644 --- a/theme-compiler/src/com/vaadin/sass/visitor/VariableVisitor.java +++ b/theme-compiler/src/com/vaadin/sass/visitor/VariableVisitor.java @@ -16,79 +16,63 @@ package com.vaadin.sass.visitor; +import java.util.ArrayList; import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; -import org.w3c.css.sac.LexicalUnit; - -import com.vaadin.sass.parser.LexicalUnitImpl; -import com.vaadin.sass.parser.SCSSLexicalUnit; +import com.vaadin.sass.tree.IVariableNode; import com.vaadin.sass.tree.Node; -import com.vaadin.sass.tree.RuleNode; import com.vaadin.sass.tree.VariableNode; public class VariableVisitor implements Visitor { + private final HashMap<String, VariableNode> variables = new HashMap<String, VariableNode>(); + @Override public void traverse(Node node) { - Map<String, LexicalUnitImpl> variables = new HashMap<String, LexicalUnitImpl>(); - traverse(node, variables); + + replaceVariables(node, node.getChildren()); + + removeVariableNodes(node, node); } - private void traverse(Node node, Map<String, LexicalUnitImpl> variables) { - if (node instanceof RuleNode) { - LexicalUnit value = ((RuleNode) node).getValue(); - while (updateValue(value, variables)) { - ; - } - } else { - Set<Node> toBeDeleted = new HashSet<Node>(); - for (Node child : node.getChildren()) { - if (child instanceof VariableNode) { - VariableNode varChild = (VariableNode) child; - if (!varChild.isGuarded() || varChild.isGuarded() - && variables.get(varChild.getName()) == null) { - variables.put(((VariableNode) child).getName(), - (LexicalUnitImpl) ((VariableNode) child) - .getExpr()); - } - toBeDeleted.add(child); - } else { - traverse(child, new HashMap<String, LexicalUnitImpl>( - variables)); - } - } - for (Node child : toBeDeleted) { - node.removeChild(child); + private void removeVariableNodes(Node parent, Node node) { + for (final Node child : new ArrayList<Node>(node.getChildren())) { + removeVariableNodes(node, child); + } + if (node instanceof VariableNode) { + for (final Node child : node.getChildren()) { + parent.appendChild(child, node); } + parent.removeChild(node); } } - private boolean updateValue(LexicalUnit value, - Map<String, LexicalUnitImpl> variables) { - boolean onceMore = false; - if (value == null) { - return false; - } - if (value.getLexicalUnitType() == SCSSLexicalUnit.SCSS_VARIABLE) { - LexicalUnitImpl variableValue = variables.get(value - .getStringValue()); - if (variableValue != null) { - LexicalUnitImpl variableValueCloned = variableValue.clone(); - if (variableValueCloned != null) { - LexicalUnitImpl lexVal = (LexicalUnitImpl) value; - lexVal.replaceValue(variableValueCloned); - onceMore = true; + private void replaceVariables(Node n, ArrayList<Node> children) { + + ArrayList<VariableNode> variables = new ArrayList<VariableNode>( + this.variables.values()); + + for (Node node : children) { + if (node instanceof VariableNode) { + + VariableNode variableNode = (VariableNode) node; + if (this.variables.containsKey(variableNode.getName()) + && variableNode.isGuarded()) { + continue; } + this.variables.put(variableNode.getName(), variableNode); + } else if (node instanceof IVariableNode) { + ((IVariableNode) node) + .replaceVariables(new ArrayList<VariableNode>( + this.variables.values())); } - } else if (value.getLexicalUnitType() == SCSSLexicalUnit.SAC_FUNCTION) { - LexicalUnit params = value.getParameters(); - updateValue(params, variables); + + replaceVariables(node, node.getChildren()); + } + + for (final VariableNode v : variables) { + this.variables.put(v.getName(), v); } - LexicalUnit next = value.getNextLexicalUnit(); - updateValue(next, variables); - return onceMore; } + } |