diff options
author | Haijian Wang <haijian@vaadin.com> | 2013-02-27 15:38:55 +0200 |
---|---|---|
committer | Vaadin Code Review <review@vaadin.com> | 2013-02-27 13:53:22 +0000 |
commit | 934b8ceb3f8ddcc6acc3ffb4a35b67e3e989ec38 (patch) | |
tree | 1a5f25c3afb03e2fee285f8d7a3b75c33427ea16 | |
parent | c5af559686ab3984d43c59a8d6289b99229961e1 (diff) | |
download | vaadin-framework-934b8ceb3f8ddcc6acc3ffb4a35b67e3e989ec38.tar.gz vaadin-framework-934b8ceb3f8ddcc6acc3ffb4a35b67e3e989ec38.zip |
support arithmetics in the SCSS compiler (#9354)
Change-Id: Ieb7834fb12cdba5c0794a26de20b3c8c2d509642
17 files changed, 2318 insertions, 1461 deletions
diff --git a/theme-compiler/src/com/vaadin/sass/internal/expression/ArithmeticExpressionEvaluator.java b/theme-compiler/src/com/vaadin/sass/internal/expression/ArithmeticExpressionEvaluator.java new file mode 100644 index 0000000000..7dbd8ae1a0 --- /dev/null +++ b/theme-compiler/src/com/vaadin/sass/internal/expression/ArithmeticExpressionEvaluator.java @@ -0,0 +1,139 @@ +/* + * Copyright 2000-2013 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +package com.vaadin.sass.internal.expression; + +import static com.vaadin.sass.internal.parser.SCSSLexicalUnit.SCSS_VARIABLE; + +import java.util.Stack; + +import com.vaadin.sass.internal.expression.exception.ArithmeticException; +import com.vaadin.sass.internal.parser.LexicalUnitImpl; +import com.vaadin.sass.internal.parser.SCSSLexicalUnit; + +public class ArithmeticExpressionEvaluator { + private static ArithmeticExpressionEvaluator instance; + + public static ArithmeticExpressionEvaluator get() { + if (instance == null) { + instance = new ArithmeticExpressionEvaluator(); + } + return instance; + } + + private void createNewOperand(BinaryOperator operator, + Stack<Object> operands) { + Object rightOperand = operands.pop(); + operands.push(new BinaryExpression(operands.pop(), operator, + rightOperand)); + } + + public boolean containsArithmeticalOperator(LexicalUnitImpl term) { + LexicalUnitImpl current = term; + while (current != null) { + for (BinaryOperator operator : BinaryOperator.values()) { + /* + * '/' is treated as an arithmetical operator when one of its + * operands is Variable, or there is another binary operator. + * Otherwise, '/' is treated as a CSS operator. + */ + if (current.getLexicalUnitType() == operator.type) { + if (current.getLexicalUnitType() != BinaryOperator.DIV.type) { + return true; + } else { + if (current.getPreviousLexicalUnit() + .getLexicalUnitType() == SCSS_VARIABLE + || current.getNextLexicalUnit() + .getLexicalUnitType() == SCSS_VARIABLE) { + return true; + } + } + } + } + current = current.getNextLexicalUnit(); + } + return false; + } + + private Object createExpression(LexicalUnitImpl term) { + LexicalUnitImpl current = term; + boolean afterOperand = false; + Stack<Object> operands = new Stack<Object>(); + Stack<Object> operators = new Stack<Object>(); + inputTermLoop: while (current != null) { + if (afterOperand) { + if (current.getLexicalUnitType() == SCSSLexicalUnit.SCSS_OPERATOR_RIGHT_PAREN) { + Object operator = null; + while (!operators.isEmpty() + && ((operator = operators.pop()) != Parentheses.LEFT)) { + createNewOperand((BinaryOperator) operator, operands); + } + current = current.getNextLexicalUnit(); + continue; + } + afterOperand = false; + for (BinaryOperator operator : BinaryOperator.values()) { + if (current.getLexicalUnitType() == operator.type) { + while (!operators.isEmpty() + && (operators.peek() != Parentheses.LEFT) + && (((BinaryOperator) operators.peek()).precedence >= operator.precedence)) { + createNewOperand((BinaryOperator) operators.pop(), + operands); + } + operators.push(operator); + + current = current.getNextLexicalUnit(); + continue inputTermLoop; + } + } + throw new ArithmeticException(); + } + if (current.getLexicalUnitType() == SCSSLexicalUnit.SCSS_OPERATOR_LEFT_PAREN) { + operators.push(Parentheses.LEFT); + current = current.getNextLexicalUnit(); + continue; + } + afterOperand = true; + + operands.push(current); + current = current.getNextLexicalUnit(); + } + + while (!operators.isEmpty()) { + Object operator = operators.pop(); + if (operator == Parentheses.LEFT) { + throw new ArithmeticException("Unexpected \"(\" found"); + } + createNewOperand((BinaryOperator) operator, operands); + } + Object expression = operands.pop(); + if (!operands.isEmpty()) { + LexicalUnitImpl operand = (LexicalUnitImpl) operands.peek(); + throw new ArithmeticException("Unexpected operand " + + operand.toString() + " found"); + } + return expression; + } + + public LexicalUnitImpl evaluate(LexicalUnitImpl term) { + Object result = ArithmeticExpressionEvaluator.get().createExpression( + term); + if (result instanceof BinaryExpression) { + return ((BinaryExpression) result).eval(); + } + return term; + } +} diff --git a/theme-compiler/src/com/vaadin/sass/internal/expression/BinaryExpression.java b/theme-compiler/src/com/vaadin/sass/internal/expression/BinaryExpression.java new file mode 100644 index 0000000000..bfcdf6f506 --- /dev/null +++ b/theme-compiler/src/com/vaadin/sass/internal/expression/BinaryExpression.java @@ -0,0 +1,46 @@ +/* + * Copyright 2000-2013 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +package com.vaadin.sass.internal.expression; + +import com.vaadin.sass.internal.parser.LexicalUnitImpl; + +public class BinaryExpression { + public Object leftOperand = null; + public BinaryOperator operator = null; + public Object rightOperand = null; + + public BinaryExpression(Object leftOperand, BinaryOperator operator, + Object rightOperand) { + this.leftOperand = leftOperand; + this.operator = operator; + this.rightOperand = rightOperand; + } + + public LexicalUnitImpl eval() { + LexicalUnitImpl leftValue = (leftOperand instanceof BinaryExpression) ? ((BinaryExpression) leftOperand) + .eval() : (LexicalUnitImpl) leftOperand; + LexicalUnitImpl rightValue = (rightOperand instanceof BinaryExpression) ? ((BinaryExpression) rightOperand) + .eval() : (LexicalUnitImpl) rightOperand; + return operator.eval(leftValue, rightValue); + } + + @Override + public String toString() { + return "(" + leftOperand + " " + operator.type + " " + rightOperand + + ")"; + } +} diff --git a/theme-compiler/src/com/vaadin/sass/internal/expression/BinaryOperator.java b/theme-compiler/src/com/vaadin/sass/internal/expression/BinaryOperator.java new file mode 100644 index 0000000000..15d3da797f --- /dev/null +++ b/theme-compiler/src/com/vaadin/sass/internal/expression/BinaryOperator.java @@ -0,0 +1,70 @@ +/* + * Copyright 2000-2013 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +package com.vaadin.sass.internal.expression; + +import org.w3c.css.sac.LexicalUnit; + +import com.vaadin.sass.internal.parser.LexicalUnitImpl; + +public enum BinaryOperator { + ADD(LexicalUnit.SAC_OPERATOR_PLUS, 1) { + @Override + public LexicalUnitImpl eval(LexicalUnitImpl leftValue, + LexicalUnitImpl rightValue) { + return leftValue.add(rightValue); + } + }, + MINUS(LexicalUnit.SAC_OPERATOR_MINUS, 1) { + @Override + public LexicalUnitImpl eval(LexicalUnitImpl leftValue, + LexicalUnitImpl rightValue) { + return leftValue.minus(rightValue); + } + }, + MUL(LexicalUnit.SAC_OPERATOR_MULTIPLY, 2) { + @Override + public LexicalUnitImpl eval(LexicalUnitImpl leftValue, + LexicalUnitImpl rightValue) { + return leftValue.multiply(rightValue); + } + }, + DIV(LexicalUnit.SAC_OPERATOR_SLASH, 2) { + @Override + public LexicalUnitImpl eval(LexicalUnitImpl leftValue, + LexicalUnitImpl rightValue) { + return leftValue.divide(rightValue); + } + }, + MOD(LexicalUnit.SAC_OPERATOR_MOD, 2) { + @Override + public LexicalUnitImpl eval(LexicalUnitImpl leftValue, + LexicalUnitImpl rightValue) { + return leftValue.modulo(rightValue); + } + }; + + public final short type; + public final int precedence; + + BinaryOperator(short type, int precedence) { + this.type = type; + this.precedence = precedence; + } + + public abstract LexicalUnitImpl eval(LexicalUnitImpl leftValue, + LexicalUnitImpl rightValue); +} diff --git a/theme-compiler/src/com/vaadin/sass/internal/expression/Parentheses.java b/theme-compiler/src/com/vaadin/sass/internal/expression/Parentheses.java new file mode 100644 index 0000000000..5df8607aaf --- /dev/null +++ b/theme-compiler/src/com/vaadin/sass/internal/expression/Parentheses.java @@ -0,0 +1,21 @@ +/* + * Copyright 2000-2013 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +package com.vaadin.sass.internal.expression; + +public enum Parentheses { + LEFT, RIGHT +} diff --git a/theme-compiler/src/com/vaadin/sass/internal/expression/exception/ArithmeticException.java b/theme-compiler/src/com/vaadin/sass/internal/expression/exception/ArithmeticException.java new file mode 100644 index 0000000000..13b6f0e936 --- /dev/null +++ b/theme-compiler/src/com/vaadin/sass/internal/expression/exception/ArithmeticException.java @@ -0,0 +1,26 @@ +/* + * Copyright 2000-2013 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.vaadin.sass.internal.expression.exception; + +public class ArithmeticException extends RuntimeException { + public ArithmeticException(String errorMsg) { + super(errorMsg); + } + + public ArithmeticException() { + super("Illegal arithmetic expression"); + } +} diff --git a/theme-compiler/src/com/vaadin/sass/internal/expression/exception/IncompatibleUnitsException.java b/theme-compiler/src/com/vaadin/sass/internal/expression/exception/IncompatibleUnitsException.java new file mode 100644 index 0000000000..bbeb0140f2 --- /dev/null +++ b/theme-compiler/src/com/vaadin/sass/internal/expression/exception/IncompatibleUnitsException.java @@ -0,0 +1,29 @@ +/* + * Copyright 2000-2013 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.vaadin.sass.internal.expression.exception; + +public class IncompatibleUnitsException extends ArithmeticException { + public IncompatibleUnitsException(String errorExpr) { + super(getErrorMsg(errorExpr)); + } + + private static String getErrorMsg(String errorExpr) { + StringBuilder builder = new StringBuilder(); + builder.append("Incompatible units found in: "); + builder.append("'").append(errorExpr).append("'"); + return builder.toString(); + } +} diff --git a/theme-compiler/src/com/vaadin/sass/internal/parser/LexicalUnitImpl.java b/theme-compiler/src/com/vaadin/sass/internal/parser/LexicalUnitImpl.java index 7feeb6628a..498e1a941b 100644 --- a/theme-compiler/src/com/vaadin/sass/internal/parser/LexicalUnitImpl.java +++ b/theme-compiler/src/com/vaadin/sass/internal/parser/LexicalUnitImpl.java @@ -27,6 +27,7 @@ import java.io.Serializable; import org.w3c.css.sac.LexicalUnit; +import com.vaadin.sass.internal.expression.exception.IncompatibleUnitsException; import com.vaadin.sass.internal.util.ColorUtil; import com.vaadin.sass.internal.util.DeepCopy; @@ -68,12 +69,14 @@ public class LexicalUnitImpl implements LexicalUnit, SCSSLexicalUnit, LexicalUnitImpl(int line, int column, LexicalUnitImpl previous, int i) { this(SAC_INTEGER, line, column, previous); this.i = i; + f = i; } LexicalUnitImpl(int line, int column, LexicalUnitImpl previous, short dimension, String sdimension, float f) { this(dimension, line, column, previous); this.f = f; + i = (int) f; this.dimension = dimension; this.sdimension = sdimension; } @@ -137,6 +140,7 @@ public class LexicalUnitImpl implements LexicalUnit, SCSSLexicalUnit, void setIntegerValue(int i) { this.i = i; + f = i; } @Override @@ -146,6 +150,7 @@ public class LexicalUnitImpl implements LexicalUnit, SCSSLexicalUnit, public void setFloatValue(float f) { this.f = f; + i = (int) f; } @Override @@ -364,28 +369,65 @@ public class LexicalUnitImpl implements LexicalUnit, SCSSLexicalUnit, @Override public LexicalUnitImpl divide(LexicalUnitImpl denominator) { - setFloatValue(getFloatValue() / denominator.getIntegerValue()); + if (denominator.getLexicalUnitType() != SAC_INTEGER + && denominator.getLexicalUnitType() != SAC_REAL + && getLexicalUnitType() != denominator.getLexicalUnitType()) { + throw new IncompatibleUnitsException(toString()); + } + setFloatValue(getFloatValue() / denominator.getFloatValue()); + if (getLexicalUnitType() == denominator.getLexicalUnitType()) { + setLexicalUnitType(SAC_REAL); + } + setNextLexicalUnit(denominator.getNextLexicalUnit()); return this; } @Override public LexicalUnitImpl add(LexicalUnitImpl another) { + checkAndSetUnit(another); setFloatValue(getFloatValue() + another.getFloatValue()); return this; } @Override public LexicalUnitImpl minus(LexicalUnitImpl another) { + checkAndSetUnit(another); setFloatValue(getFloatValue() - another.getFloatValue()); return this; } @Override public LexicalUnitImpl multiply(LexicalUnitImpl another) { + checkAndSetUnit(another); setFloatValue(getFloatValue() * another.getIntegerValue()); return this; } + protected void checkAndSetUnit(LexicalUnitImpl another) { + if (getLexicalUnitType() != SAC_INTEGER + && getLexicalUnitType() != SAC_REAL + && another.getLexicalUnitType() != SAC_INTEGER + && another.getLexicalUnitType() != SAC_REAL + && getLexicalUnitType() != another.getLexicalUnitType()) { + throw new IncompatibleUnitsException(toString()); + } + if (another.getLexicalUnitType() != SAC_INTEGER + && another.getLexicalUnitType() != SAC_REAL) { + setLexicalUnitType(another.getLexicalUnitType()); + } + setNextLexicalUnit(another.getNextLexicalUnit()); + } + + @Override + public LexicalUnitImpl modulo(LexicalUnitImpl another) { + if (getLexicalUnitType() != another.getLexicalUnitType()) { + throw new IncompatibleUnitsException(toString()); + } + setIntegerValue(getIntegerValue() % another.getIntegerValue()); + setNextLexicalUnit(another.getNextLexicalUnit()); + return this; + } + public void replaceValue(LexicalUnitImpl another) { // shouldn't modify 'another' directly, should only modify its copy. LexicalUnitImpl deepCopyAnother = (LexicalUnitImpl) DeepCopy @@ -470,16 +512,12 @@ public class LexicalUnitImpl implements LexicalUnit, SCSSLexicalUnit, return new LexicalUnitImpl(line, column, previous, SAC_EX, null, v); } - public static LexicalUnitImpl createPixel(float p) { - return new LexicalUnitImpl(0, 0, null, SAC_PIXEL, null, p); - } - - static LexicalUnitImpl createPX(int line, int column, + public static LexicalUnitImpl createPX(int line, int column, LexicalUnitImpl previous, float v) { return new LexicalUnitImpl(line, column, previous, SAC_PIXEL, null, v); } - static LexicalUnitImpl createCM(int line, int column, + public static LexicalUnitImpl createCM(int line, int column, LexicalUnitImpl previous, float v) { return new LexicalUnitImpl(line, column, previous, SAC_CENTIMETER, null, v); @@ -637,6 +675,39 @@ public class LexicalUnitImpl implements LexicalUnit, SCSSLexicalUnit, return new LexicalUnitImpl(SAC_OPERATOR_SLASH, line, column, previous); } + public static LexicalUnitImpl createAdd(int line, int column, + LexicalUnitImpl previous) { + return new LexicalUnitImpl(SAC_OPERATOR_PLUS, line, column, previous); + } + + public static LexicalUnitImpl createMinus(int line, int column, + LexicalUnitImpl previous) { + return new LexicalUnitImpl(SAC_OPERATOR_MINUS, line, column, previous); + } + + public static LexicalUnitImpl createMultiply(int line, int column, + LexicalUnitImpl previous) { + return new LexicalUnitImpl(SAC_OPERATOR_MULTIPLY, line, column, + previous); + } + + public static LexicalUnitImpl createModulo(int line, int column, + LexicalUnitImpl previous) { + return new LexicalUnitImpl(SAC_OPERATOR_MOD, line, column, previous); + } + + public static LexicalUnitImpl createLeftParenthesis(int line, int column, + LexicalUnitImpl previous) { + return new LexicalUnitImpl(SCSS_OPERATOR_LEFT_PAREN, line, column, + previous); + } + + public static LexicalUnitImpl createRightParenthesis(int line, int column, + LexicalUnitImpl previous) { + return new LexicalUnitImpl(SCSS_OPERATOR_LEFT_PAREN, line, column, + previous); + } + @Override public LexicalUnitImpl clone() { LexicalUnitImpl cloned = new LexicalUnitImpl(type, line, column, prev); diff --git a/theme-compiler/src/com/vaadin/sass/internal/parser/Parser.java b/theme-compiler/src/com/vaadin/sass/internal/parser/Parser.java index 4861a27e75..492b79bbfc 100644 --- a/theme-compiler/src/com/vaadin/sass/internal/parser/Parser.java +++ b/theme-compiler/src/com/vaadin/sass/internal/parser/Parser.java @@ -16,34 +16,35 @@ /* Generated By:JavaCC: Do not edit this line. Parser.java */ package com.vaadin.sass.internal.parser; -import java.io.BufferedInputStream; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.Reader; -import java.net.URL; +import java.io.*; +import java.net.*; import java.util.ArrayList; import java.util.Locale; +import java.util.Map; import java.util.UUID; -import org.w3c.css.sac.CSSException; -import org.w3c.css.sac.CSSParseException; import org.w3c.css.sac.ConditionFactory; +import org.w3c.css.sac.Condition; +import org.w3c.css.sac.SelectorFactory; +import org.w3c.css.sac.SelectorList; +import org.w3c.css.sac.Selector; +import org.w3c.css.sac.SimpleSelector; import org.w3c.css.sac.DocumentHandler; -import org.w3c.css.sac.ErrorHandler; import org.w3c.css.sac.InputSource; -import org.w3c.css.sac.LexicalUnit; +import org.w3c.css.sac.ErrorHandler; +import org.w3c.css.sac.CSSException; +import org.w3c.css.sac.CSSParseException; import org.w3c.css.sac.Locator; -import org.w3c.css.sac.SelectorFactory; -import org.w3c.css.sac.SelectorList; -import org.w3c.flute.parser.selectors.ConditionFactoryImpl; +import org.w3c.css.sac.LexicalUnit; + import org.w3c.flute.parser.selectors.SelectorFactoryImpl; +import org.w3c.flute.parser.selectors.ConditionFactoryImpl; + import org.w3c.flute.util.Encoding; -import com.vaadin.sass.internal.handler.SCSSDocumentHandlerImpl; -import com.vaadin.sass.internal.tree.Node; -import com.vaadin.sass.internal.tree.VariableNode; +import com.vaadin.sass.internal.handler.*; + +import com.vaadin.sass.internal.tree.*; /** * A CSS2 parser @@ -5023,8 +5024,18 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { throws ParseException { Token n; switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { - case DIV: - n = jj_consume_token(DIV); + case COMMA: + /* + * (comments copied from basic_arithmetics.scss)supports: 1. + * standard arithmetic operations (+, -, *, /, %) 2. / is treated as + * css operator, unless one of its operands is variable or there is + * another binary arithmetic operatorlimits: 1. cannot mix + * arithmetic and css operations, e.g. "margin: 1px + 3px 2px" will + * fail 2. space between add and minus operator and their following + * operand is mandatory. e.g. "1 + 2" is valid, "1+2" is not 3. + * parenthesis is not supported now. + */ + n = jj_consume_token(COMMA); label_156: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: @@ -5038,13 +5049,13 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { } { if (true) { - return LexicalUnitImpl.createSlash(n.beginLine, + return LexicalUnitImpl.createComma(n.beginLine, n.beginColumn, prev); } } break; - case COMMA: - n = jj_consume_token(COMMA); + case DIV: + n = jj_consume_token(DIV); label_157: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: @@ -5058,13 +5069,93 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { } { if (true) { - return LexicalUnitImpl.createComma(n.beginLine, + return LexicalUnitImpl.createSlash(n.beginLine, + n.beginColumn, prev); + } + } + break; + case ANY: + n = jj_consume_token(ANY); + label_158: while (true) { + switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { + case S: + ; + break; + default: + jj_la1[229] = jj_gen; + break label_158; + } + jj_consume_token(S); + } + { + if (true) { + return LexicalUnitImpl.createMultiply(n.beginLine, + n.beginColumn, prev); + } + } + break; + case MOD: + n = jj_consume_token(MOD); + label_159: while (true) { + switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { + case S: + ; + break; + default: + jj_la1[230] = jj_gen; + break label_159; + } + jj_consume_token(S); + } + { + if (true) { + return LexicalUnitImpl.createModulo(n.beginLine, + n.beginColumn, prev); + } + } + break; + case PLUS: + n = jj_consume_token(PLUS); + label_160: while (true) { + jj_consume_token(S); + switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { + case S: + ; + break; + default: + jj_la1[231] = jj_gen; + break label_160; + } + } + { + if (true) { + return LexicalUnitImpl.createAdd(n.beginLine, + n.beginColumn, prev); + } + } + break; + case MINUS: + n = jj_consume_token(MINUS); + label_161: while (true) { + jj_consume_token(S); + switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { + case S: + ; + break; + default: + jj_la1[232] = jj_gen; + break label_161; + } + } + { + if (true) { + return LexicalUnitImpl.createMinus(n.beginLine, n.beginColumn, prev); } } break; default: - jj_la1[229] = jj_gen; + jj_la1[233] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -5080,19 +5171,15 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { char op; first = term(null); res = first; - label_158: while (true) { + label_162: while (true) { if (jj_2_8(2)) { ; } else { - break label_158; + break label_162; } - switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { - case COMMA: - case DIV: + if (jj_2_9(2)) { res = operator(res); - break; - default: - jj_la1[230] = jj_gen; + } else { ; } res = term(res); @@ -5128,7 +5215,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { } break; default: - jj_la1[231] = jj_gen; + jj_la1[234] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -5180,7 +5267,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { result = variableTerm(prev); break; default: - jj_la1[232] = jj_gen; + jj_la1[235] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -5244,7 +5331,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { op = unaryOperator(); break; default: - jj_la1[233] = jj_gen; + jj_la1[236] = jj_gen; ; } switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { @@ -5359,7 +5446,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { result = function(op, prev); break; default: - jj_la1[234] = jj_gen; + jj_la1[237] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -5385,7 +5472,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { s += "."; break; default: - jj_la1[235] = jj_gen; + jj_la1[238] = jj_gen; ; } n = jj_consume_token(IDENT); @@ -5423,24 +5510,24 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { result = unicode(prev); break; default: - jj_la1[236] = jj_gen; + jj_la1[239] = jj_gen; jj_consume_token(-1); throw new ParseException(); } break; default: - jj_la1[237] = jj_gen; + jj_la1[240] = jj_gen; jj_consume_token(-1); throw new ParseException(); } - label_159: while (true) { + label_163: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[238] = jj_gen; - break label_159; + jj_la1[241] = jj_gen; + break label_163; } jj_consume_token(S); } @@ -5463,14 +5550,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { Token n; LexicalUnit params = null; n = jj_consume_token(FUNCTION); - label_160: while (true) { + label_164: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[239] = jj_gen; - break label_160; + jj_la1[242] = jj_gen; + break label_164; } jj_consume_token(S); } @@ -5526,7 +5613,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { params = expr(); break; default: - jj_la1[240] = jj_gen; + jj_la1[243] = jj_gen; ; } jj_consume_token(RPARAN); @@ -6063,14 +6150,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { */ final public void _parseRule() throws ParseException { String ret = null; - label_161: while (true) { + label_165: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[241] = jj_gen; - break label_161; + jj_la1[244] = jj_gen; + break label_165; } jj_consume_token(S); } @@ -6105,7 +6192,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { fontFace(); break; default: - jj_la1[242] = jj_gen; + jj_la1[245] = jj_gen; ret = skipStatement(); if ((ret == null) || (ret.length() == 0)) { { @@ -6128,14 +6215,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { } final public void _parseImportRule() throws ParseException { - label_162: while (true) { + label_166: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[243] = jj_gen; - break label_162; + jj_la1[246] = jj_gen; + break label_166; } jj_consume_token(S); } @@ -6143,14 +6230,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { } final public void _parseMediaRule() throws ParseException { - label_163: while (true) { + label_167: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[244] = jj_gen; - break label_163; + jj_la1[247] = jj_gen; + break label_167; } jj_consume_token(S); } @@ -6158,14 +6245,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { } final public void _parseDeclarationBlock() throws ParseException { - label_164: while (true) { + label_168: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[245] = jj_gen; - break label_164; + jj_la1[248] = jj_gen; + break label_168; } jj_consume_token(S); } @@ -6175,27 +6262,27 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { declaration(); break; default: - jj_la1[246] = jj_gen; + jj_la1[249] = jj_gen; ; } - label_165: while (true) { + label_169: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case SEMICOLON: ; break; default: - jj_la1[247] = jj_gen; - break label_165; + jj_la1[250] = jj_gen; + break label_169; } jj_consume_token(SEMICOLON); - label_166: while (true) { + label_170: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[248] = jj_gen; - break label_166; + jj_la1[251] = jj_gen; + break label_170; } jj_consume_token(S); } @@ -6205,7 +6292,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { declaration(); break; default: - jj_la1[249] = jj_gen; + jj_la1[252] = jj_gen; ; } } @@ -6214,14 +6301,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { final public ArrayList<String> _parseSelectors() throws ParseException { ArrayList<String> p = null; try { - label_167: while (true) { + label_171: while (true) { switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) { case S: ; break; default: - jj_la1[250] = jj_gen; - break label_167; + jj_la1[253] = jj_gen; + break label_171; } jj_consume_token(S); } @@ -6337,7 +6424,19 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { } } - private boolean jj_3R_178() { + private boolean jj_2_9(int xla) { + jj_la = xla; + jj_lastpos = jj_scanpos = token; + try { + return !jj_3_9(); + } catch (LookaheadSuccess ls) { + return true; + } finally { + jj_save(8, xla); + } + } + + private boolean jj_3R_182() { if (jj_scan_token(VARIABLE)) { return true; } @@ -6352,47 +6451,66 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_240() { - if (jj_3R_178()) { + private boolean jj_3R_261() { + if (jj_scan_token(PLUS)) { return true; } return false; } - private boolean jj_3R_237() { + private boolean jj_3R_251() { Token xsp; xsp = jj_scanpos; - if (jj_3R_250()) { + if (jj_3R_260()) { jj_scanpos = xsp; - if (jj_3R_251()) { + if (jj_3R_261()) { return true; } } return false; } - private boolean jj_3R_250() { - if (jj_scan_token(IDENT)) { + private boolean jj_3R_260() { + if (jj_scan_token(MINUS)) { return true; } return false; } - private boolean jj_3R_248() { - if (jj_scan_token(URL)) { + private boolean jj_3R_256() { + if (jj_scan_token(UNICODERANGE)) { return true; } return false; } - private boolean jj_3R_194() { + private boolean jj_3R_246() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_257()) { + jj_scanpos = xsp; + if (jj_3R_258()) { + return true; + } + } + return false; + } + + private boolean jj_3R_257() { + if (jj_scan_token(IDENT)) { + return true; + } + return false; + } + + private boolean jj_3R_198() { Token xsp; - if (jj_3R_237()) { + if (jj_3R_246()) { return true; } while (true) { xsp = jj_scanpos; - if (jj_3R_237()) { + if (jj_3R_246()) { jj_scanpos = xsp; break; } @@ -6407,92 +6525,114 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_180() { - if (jj_3R_200()) { + private boolean jj_3_8() { + Token xsp; + xsp = jj_scanpos; + if (jj_3_9()) { + jj_scanpos = xsp; + } + if (jj_3R_180()) { return true; } return false; } - private boolean jj_3R_198() { - if (jj_3R_173()) { + private boolean jj_3R_183() { + if (jj_3R_180()) { return true; } - return false; - } - - private boolean jj_3R_177() { Token xsp; - xsp = jj_scanpos; - if (jj_3R_198()) { - jj_scanpos = xsp; - if (jj_3R_199()) { - return true; + while (true) { + xsp = jj_scanpos; + if (jj_3_8()) { + jj_scanpos = xsp; + break; } } return false; } - private boolean jj_3R_176() { - if (jj_3R_197()) { + private boolean jj_3R_184() { + if (jj_3R_209()) { return true; } return false; } - private boolean jj_3R_254() { - if (jj_scan_token(PLUS)) { + private boolean jj_3R_208() { + if (jj_scan_token(MINUS)) { return true; } - return false; - } - - private boolean jj_3R_244() { Token xsp; - xsp = jj_scanpos; - if (jj_3R_253()) { - jj_scanpos = xsp; - if (jj_3R_254()) { - return true; + if (jj_scan_token(1)) { + return true; + } + while (true) { + xsp = jj_scanpos; + if (jj_scan_token(1)) { + jj_scanpos = xsp; + break; } } return false; } - private boolean jj_3R_253() { - if (jj_scan_token(MINUS)) { + private boolean jj_3R_207() { + if (jj_scan_token(PLUS)) { + return true; + } + Token xsp; + if (jj_scan_token(1)) { return true; } + while (true) { + xsp = jj_scanpos; + if (jj_scan_token(1)) { + jj_scanpos = xsp; + break; + } + } return false; } - private boolean jj_3R_249() { - if (jj_scan_token(UNICODERANGE)) { + private boolean jj_3R_206() { + if (jj_scan_token(MOD)) { return true; } + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_scan_token(1)) { + jj_scanpos = xsp; + break; + } + } return false; } - private boolean jj_3_8() { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_176()) { - jj_scanpos = xsp; - } - if (jj_3R_177()) { + private boolean jj_3R_205() { + if (jj_scan_token(ANY)) { return true; } + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_scan_token(1)) { + jj_scanpos = xsp; + break; + } + } return false; } - private boolean jj_3R_179() { - if (jj_3R_177()) { + private boolean jj_3R_204() { + if (jj_scan_token(DIV)) { return true; } Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3_8()) { + if (jj_scan_token(1)) { jj_scanpos = xsp; break; } @@ -6500,14 +6640,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_202() { - if (jj_3R_201()) { + private boolean jj_3R_211() { + if (jj_3R_210()) { return true; } return false; } - private boolean jj_3R_201() { + private boolean jj_3R_210() { Token xsp; xsp = jj_scanpos; if (jj_scan_token(20)) { @@ -6529,8 +6669,8 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_168() { - if (jj_3R_178()) { + private boolean jj_3R_172() { + if (jj_3R_182()) { return true; } if (jj_scan_token(COLON)) { @@ -6544,19 +6684,19 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { break; } } - if (jj_3R_179()) { + if (jj_3R_183()) { return true; } xsp = jj_scanpos; - if (jj_3R_180()) { + if (jj_3R_184()) { jj_scanpos = xsp; } - if (jj_3R_181()) { + if (jj_3R_185()) { return true; } while (true) { xsp = jj_scanpos; - if (jj_3R_181()) { + if (jj_3R_185()) { jj_scanpos = xsp; break; } @@ -6564,19 +6704,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_183() { - if (jj_scan_token(S)) { - return true; - } - Token xsp; - xsp = jj_scanpos; - if (jj_3R_202()) { - jj_scanpos = xsp; - } - return false; - } - - private boolean jj_3R_239() { + private boolean jj_3R_203() { if (jj_scan_token(COMMA)) { return true; } @@ -6591,53 +6719,62 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_182() { - if (jj_3R_201()) { - return true; - } - return false; - } - - private boolean jj_3R_169() { + private boolean jj_3R_181() { Token xsp; xsp = jj_scanpos; - if (jj_3R_182()) { + if (jj_3R_203()) { jj_scanpos = xsp; - if (jj_3R_183()) { - return true; + if (jj_3R_204()) { + jj_scanpos = xsp; + if (jj_3R_205()) { + jj_scanpos = xsp; + if (jj_3R_206()) { + jj_scanpos = xsp; + if (jj_3R_207()) { + jj_scanpos = xsp; + if (jj_3R_208()) { + return true; + } + } + } + } } } return false; } - private boolean jj_3R_197() { + private boolean jj_3R_187() { + if (jj_scan_token(S)) { + return true; + } Token xsp; xsp = jj_scanpos; - if (jj_3R_238()) { + if (jj_3R_211()) { jj_scanpos = xsp; - if (jj_3R_239()) { - return true; - } } return false; } - private boolean jj_3R_238() { - if (jj_scan_token(DIV)) { + private boolean jj_3R_186() { + if (jj_3R_210()) { return true; } + return false; + } + + private boolean jj_3R_173() { Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_scan_token(1)) { - jj_scanpos = xsp; - break; + xsp = jj_scanpos; + if (jj_3R_186()) { + jj_scanpos = xsp; + if (jj_3R_187()) { + return true; } } return false; } - private boolean jj_3R_200() { + private boolean jj_3R_209() { if (jj_scan_token(GUARDED_SYM)) { return true; } @@ -6652,7 +6789,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_189() { + private boolean jj_3R_193() { if (jj_scan_token(VARIABLE)) { return true; } @@ -6677,10 +6814,10 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_171() { + private boolean jj_3R_175() { Token xsp; xsp = jj_scanpos; - if (jj_3R_189()) { + if (jj_3R_193()) { jj_scanpos = xsp; } if (jj_scan_token(CONTAINS)) { @@ -6701,21 +6838,21 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_204() { + private boolean jj_3R_213() { if (jj_scan_token(HASH)) { return true; } return false; } - private boolean jj_3R_276() { + private boolean jj_3R_283() { if (jj_scan_token(IDENT)) { return true; } return false; } - private boolean jj_3R_277() { + private boolean jj_3R_284() { if (jj_scan_token(FUNCTION)) { return true; } @@ -6735,26 +6872,26 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_275() { + private boolean jj_3R_282() { if (jj_scan_token(COLON)) { return true; } return false; } - private boolean jj_3R_206() { + private boolean jj_3R_215() { if (jj_scan_token(COLON)) { return true; } Token xsp; xsp = jj_scanpos; - if (jj_3R_275()) { + if (jj_3R_282()) { jj_scanpos = xsp; } xsp = jj_scanpos; - if (jj_3R_276()) { + if (jj_3R_283()) { jj_scanpos = xsp; - if (jj_3R_277()) { + if (jj_3R_284()) { return true; } } @@ -6762,96 +6899,96 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { } private boolean jj_3_7() { - if (jj_3R_175()) { + if (jj_3R_179()) { return true; } return false; } - private boolean jj_3R_296() { + private boolean jj_3R_303() { if (jj_scan_token(STRING)) { return true; } return false; } - private boolean jj_3R_294() { + private boolean jj_3R_301() { if (jj_scan_token(STARMATCH)) { return true; } return false; } - private boolean jj_3R_293() { - if (jj_scan_token(DOLLARMATCH)) { + private boolean jj_3R_302() { + if (jj_scan_token(IDENT)) { return true; } return false; } - private boolean jj_3R_295() { - if (jj_scan_token(IDENT)) { + private boolean jj_3R_300() { + if (jj_scan_token(DOLLARMATCH)) { return true; } return false; } - private boolean jj_3R_292() { + private boolean jj_3R_299() { if (jj_scan_token(CARETMATCH)) { return true; } return false; } - private boolean jj_3R_291() { + private boolean jj_3R_298() { if (jj_scan_token(DASHMATCH)) { return true; } return false; } - private boolean jj_3R_290() { + private boolean jj_3R_297() { if (jj_scan_token(INCLUDES)) { return true; } return false; } - private boolean jj_3R_257() { + private boolean jj_3R_264() { if (jj_scan_token(INTERPOLATION)) { return true; } return false; } - private boolean jj_3R_289() { + private boolean jj_3R_296() { if (jj_scan_token(EQ)) { return true; } return false; } - private boolean jj_3R_196() { + private boolean jj_3R_200() { if (jj_scan_token(LBRACE)) { return true; } return false; } - private boolean jj_3R_282() { + private boolean jj_3R_289() { Token xsp; xsp = jj_scanpos; - if (jj_3R_289()) { + if (jj_3R_296()) { jj_scanpos = xsp; - if (jj_3R_290()) { + if (jj_3R_297()) { jj_scanpos = xsp; - if (jj_3R_291()) { + if (jj_3R_298()) { jj_scanpos = xsp; - if (jj_3R_292()) { + if (jj_3R_299()) { jj_scanpos = xsp; - if (jj_3R_293()) { + if (jj_3R_300()) { jj_scanpos = xsp; - if (jj_3R_294()) { + if (jj_3R_301()) { return true; } } @@ -6867,9 +7004,9 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { } } xsp = jj_scanpos; - if (jj_3R_295()) { + if (jj_3R_302()) { jj_scanpos = xsp; - if (jj_3R_296()) { + if (jj_3R_303()) { return true; } } @@ -6883,7 +7020,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_207() { + private boolean jj_3R_216() { if (jj_scan_token(LBRACKET)) { return true; } @@ -6906,7 +7043,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { } } xsp = jj_scanpos; - if (jj_3R_282()) { + if (jj_3R_289()) { jj_scanpos = xsp; } if (jj_scan_token(RBRACKET)) { @@ -6915,28 +7052,28 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_288() { + private boolean jj_3R_295() { if (jj_scan_token(INTERPOLATION)) { return true; } return false; } - private boolean jj_3R_195() { - if (jj_3R_179()) { + private boolean jj_3R_199() { + if (jj_3R_183()) { return true; } return false; } - private boolean jj_3R_243() { + private boolean jj_3R_250() { if (jj_scan_token(PARENT)) { return true; } return false; } - private boolean jj_3R_242() { + private boolean jj_3R_249() { if (jj_scan_token(ANY)) { return true; } @@ -6944,7 +7081,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { } private boolean jj_3_6() { - if (jj_3R_174()) { + if (jj_3R_178()) { return true; } if (jj_scan_token(LBRACE)) { @@ -6953,8 +7090,8 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_175() { - if (jj_3R_194()) { + private boolean jj_3R_179() { + if (jj_3R_198()) { return true; } if (jj_scan_token(COLON)) { @@ -6969,42 +7106,42 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { } } xsp = jj_scanpos; - if (jj_3R_195()) { + if (jj_3R_199()) { jj_scanpos = xsp; - if (jj_3R_196()) { + if (jj_3R_200()) { return true; } } return false; } - private boolean jj_3R_252() { + private boolean jj_3R_259() { Token xsp; xsp = jj_scanpos; - if (jj_3R_256()) { + if (jj_3R_263()) { jj_scanpos = xsp; - if (jj_3R_257()) { + if (jj_3R_264()) { return true; } } return false; } - private boolean jj_3R_256() { + private boolean jj_3R_263() { if (jj_scan_token(IDENT)) { return true; } return false; } - private boolean jj_3R_203() { + private boolean jj_3R_212() { Token xsp; xsp = jj_scanpos; - if (jj_3R_241()) { + if (jj_3R_248()) { jj_scanpos = xsp; - if (jj_3R_242()) { + if (jj_3R_249()) { jj_scanpos = xsp; - if (jj_3R_243()) { + if (jj_3R_250()) { return true; } } @@ -7012,14 +7149,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_241() { + private boolean jj_3R_248() { Token xsp; - if (jj_3R_252()) { + if (jj_3R_259()) { return true; } while (true) { xsp = jj_scanpos; - if (jj_3R_252()) { + if (jj_3R_259()) { jj_scanpos = xsp; break; } @@ -7027,7 +7164,14 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_172() { + private boolean jj_3R_262() { + if (jj_3R_183()) { + return true; + } + return false; + } + + private boolean jj_3R_176() { if (jj_scan_token(COMMA)) { return true; } @@ -7042,27 +7186,27 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_270() { + private boolean jj_3R_277() { Token xsp; xsp = jj_scanpos; - if (jj_3R_287()) { + if (jj_3R_294()) { jj_scanpos = xsp; - if (jj_3R_288()) { + if (jj_3R_295()) { return true; } } return false; } - private boolean jj_3R_287() { + private boolean jj_3R_294() { if (jj_scan_token(IDENT)) { return true; } return false; } - private boolean jj_3R_286() { - if (jj_3R_206()) { + private boolean jj_3R_293() { + if (jj_3R_215()) { return true; } return false; @@ -7071,26 +7215,26 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { private boolean jj_3_5() { Token xsp; xsp = jj_scanpos; - if (jj_3R_172()) { + if (jj_3R_176()) { jj_scanpos = xsp; } - if (jj_3R_173()) { + if (jj_3R_177()) { return true; } return false; } - private boolean jj_3R_205() { + private boolean jj_3R_214() { if (jj_scan_token(DOT)) { return true; } Token xsp; - if (jj_3R_270()) { + if (jj_3R_277()) { return true; } while (true) { xsp = jj_scanpos; - if (jj_3R_270()) { + if (jj_3R_277()) { jj_scanpos = xsp; break; } @@ -7098,72 +7242,108 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_284() { - if (jj_3R_205()) { + private boolean jj_3R_252() { + 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_262()) { + jj_scanpos = xsp; + } + if (jj_scan_token(RPARAN)) { return true; } return false; } - private boolean jj_3R_279() { - if (jj_3R_205()) { + private boolean jj_3R_291() { + if (jj_3R_214()) { return true; } return false; } - private boolean jj_3R_281() { - if (jj_3R_206()) { + private boolean jj_3R_286() { + if (jj_3R_214()) { return true; } return false; } - private boolean jj_3R_269() { - if (jj_3R_206()) { + private boolean jj_3R_288() { + if (jj_3R_215()) { return true; } return false; } - private boolean jj_3R_272() { - if (jj_3R_205()) { + private boolean jj_3R_276() { + if (jj_3R_215()) { return true; } return false; } - private boolean jj_3R_274() { - if (jj_3R_206()) { + private boolean jj_3R_279() { + if (jj_3R_214()) { return true; } return false; } - private boolean jj_3R_255() { - if (jj_3R_179()) { + private boolean jj_3R_281() { + if (jj_3R_215()) { return true; } return false; } - private boolean jj_3R_285() { - if (jj_3R_207()) { + private boolean jj_3R_243() { + if (jj_3R_256()) { return true; } return false; } - private boolean jj_3R_262() { + private boolean jj_3R_242() { + if (jj_3R_255()) { + return true; + } + return false; + } + + private boolean jj_3R_241() { + if (jj_3R_254()) { + return true; + } + return false; + } + + private boolean jj_3R_292() { + if (jj_3R_216()) { + return true; + } + return false; + } + + private boolean jj_3R_269() { Token xsp; xsp = jj_scanpos; - if (jj_3R_283()) { + if (jj_3R_290()) { jj_scanpos = xsp; - if (jj_3R_284()) { + if (jj_3R_291()) { jj_scanpos = xsp; - if (jj_3R_285()) { + if (jj_3R_292()) { jj_scanpos = xsp; - if (jj_3R_286()) { + if (jj_3R_293()) { return true; } } @@ -7172,23 +7352,23 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_283() { - if (jj_3R_204()) { + private boolean jj_3R_290() { + if (jj_3R_213()) { return true; } return false; } - private boolean jj_3R_261() { + private boolean jj_3R_268() { Token xsp; xsp = jj_scanpos; - if (jj_3R_278()) { + if (jj_3R_285()) { jj_scanpos = xsp; - if (jj_3R_279()) { + if (jj_3R_286()) { jj_scanpos = xsp; - if (jj_3R_280()) { + if (jj_3R_287()) { jj_scanpos = xsp; - if (jj_3R_281()) { + if (jj_3R_288()) { return true; } } @@ -7197,30 +7377,30 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_278() { - if (jj_3R_204()) { + private boolean jj_3R_285() { + if (jj_3R_213()) { return true; } return false; } - private boolean jj_3R_266() { - if (jj_3R_206()) { + private boolean jj_3R_273() { + if (jj_3R_215()) { return true; } return false; } - private boolean jj_3R_260() { + private boolean jj_3R_267() { Token xsp; xsp = jj_scanpos; - if (jj_3R_271()) { + if (jj_3R_278()) { jj_scanpos = xsp; - if (jj_3R_272()) { + if (jj_3R_279()) { jj_scanpos = xsp; - if (jj_3R_273()) { + if (jj_3R_280()) { jj_scanpos = xsp; - if (jj_3R_274()) { + if (jj_3R_281()) { return true; } } @@ -7229,42 +7409,42 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_271() { - if (jj_3R_204()) { + private boolean jj_3R_278() { + if (jj_3R_213()) { return true; } return false; } - private boolean jj_3R_280() { - if (jj_3R_207()) { + private boolean jj_3R_287() { + if (jj_3R_216()) { return true; } return false; } - private boolean jj_3R_268() { - if (jj_3R_207()) { + private boolean jj_3R_275() { + if (jj_3R_216()) { return true; } return false; } - private boolean jj_3R_273() { - if (jj_3R_207()) { + private boolean jj_3R_280() { + if (jj_3R_216()) { return true; } return false; } - private boolean jj_3R_259() { + private boolean jj_3R_266() { Token xsp; xsp = jj_scanpos; - if (jj_3R_267()) { + if (jj_3R_274()) { jj_scanpos = xsp; - if (jj_3R_268()) { + if (jj_3R_275()) { jj_scanpos = xsp; - if (jj_3R_269()) { + if (jj_3R_276()) { return true; } } @@ -7272,64 +7452,43 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_264() { - if (jj_3R_205()) { + private boolean jj_3R_271() { + if (jj_3R_214()) { return true; } return false; } - private boolean jj_3R_267() { - if (jj_3R_205()) { + private boolean jj_3R_274() { + if (jj_3R_214()) { return true; } return false; } - private boolean jj_3R_245() { - if (jj_scan_token(FUNCTION)) { + private boolean jj_3R_192() { + if (jj_3R_216()) { return true; } Token xsp; while (true) { xsp = jj_scanpos; - if (jj_scan_token(1)) { + if (jj_3R_269()) { jj_scanpos = xsp; break; } } - xsp = jj_scanpos; - if (jj_3R_255()) { - jj_scanpos = xsp; - } - if (jj_scan_token(RPARAN)) { - return true; - } return false; } - private boolean jj_3R_234() { - if (jj_3R_249()) { - return true; - } - return false; - } - - private boolean jj_3R_233() { - if (jj_3R_248()) { - return true; - } - return false; - } - - private boolean jj_3R_188() { - if (jj_3R_207()) { + private boolean jj_3R_191() { + if (jj_3R_215()) { return true; } Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_262()) { + if (jj_3R_268()) { jj_scanpos = xsp; break; } @@ -7337,21 +7496,21 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_232() { - if (jj_3R_247()) { + private boolean jj_3R_272() { + if (jj_3R_216()) { return true; } return false; } - private boolean jj_3R_187() { - if (jj_3R_206()) { + private boolean jj_3R_190() { + if (jj_3R_214()) { return true; } Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_261()) { + if (jj_3R_267()) { jj_scanpos = xsp; break; } @@ -7359,36 +7518,21 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_265() { - if (jj_3R_207()) { - return true; - } - return false; - } - - private boolean jj_3R_186() { - if (jj_3R_205()) { + private boolean jj_3R_253() { + if (jj_scan_token(DOT)) { return true; } - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_3R_260()) { - jj_scanpos = xsp; - break; - } - } return false; } - private boolean jj_3R_185() { - if (jj_3R_204()) { + private boolean jj_3R_189() { + if (jj_3R_213()) { return true; } Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_259()) { + if (jj_3R_266()) { jj_scanpos = xsp; break; } @@ -7396,16 +7540,16 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_258() { + private boolean jj_3R_265() { Token xsp; xsp = jj_scanpos; - if (jj_3R_263()) { + if (jj_3R_270()) { jj_scanpos = xsp; - if (jj_3R_264()) { + if (jj_3R_271()) { jj_scanpos = xsp; - if (jj_3R_265()) { + if (jj_3R_272()) { jj_scanpos = xsp; - if (jj_3R_266()) { + if (jj_3R_273()) { return true; } } @@ -7414,21 +7558,33 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_263() { - if (jj_3R_204()) { + private boolean jj_3R_270() { + if (jj_3R_213()) { return true; } return false; } - private boolean jj_3R_184() { - if (jj_3R_203()) { + private boolean jj_3R_240() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_253()) { + jj_scanpos = xsp; + } + if (jj_scan_token(IDENT)) { + return true; + } + return false; + } + + private boolean jj_3R_188() { + if (jj_3R_212()) { return true; } Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_258()) { + if (jj_3R_265()) { jj_scanpos = xsp; break; } @@ -7436,18 +7592,18 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_170() { + private boolean jj_3R_174() { Token xsp; xsp = jj_scanpos; - if (jj_3R_184()) { + if (jj_3R_188()) { jj_scanpos = xsp; - if (jj_3R_185()) { + if (jj_3R_189()) { jj_scanpos = xsp; - if (jj_3R_186()) { + if (jj_3R_190()) { jj_scanpos = xsp; - if (jj_3R_187()) { + if (jj_3R_191()) { jj_scanpos = xsp; - if (jj_3R_188()) { + if (jj_3R_192()) { return true; } } @@ -7457,61 +7613,42 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_236() { - if (jj_3R_201()) { - return true; - } - if (jj_3R_170()) { - return true; - } - return false; - } - - private boolean jj_3R_246() { - if (jj_scan_token(DOT)) { + private boolean jj_3R_239() { + if (jj_scan_token(STRING)) { return true; } return false; } - private boolean jj_3R_231() { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_246()) { - jj_scanpos = xsp; - } - if (jj_scan_token(IDENT)) { + private boolean jj_3R_238() { + if (jj_3R_252()) { return true; } return false; } - private boolean jj_3R_230() { - if (jj_scan_token(STRING)) { + private boolean jj_3R_245() { + if (jj_3R_210()) { return true; } - return false; - } - - private boolean jj_3R_229() { - if (jj_3R_245()) { + if (jj_3R_174()) { return true; } return false; } - private boolean jj_3R_191() { + private boolean jj_3R_195() { Token xsp; xsp = jj_scanpos; - if (jj_3R_230()) { + if (jj_3R_239()) { jj_scanpos = xsp; - if (jj_3R_231()) { + if (jj_3R_240()) { jj_scanpos = xsp; - if (jj_3R_232()) { + if (jj_3R_241()) { jj_scanpos = xsp; - if (jj_3R_233()) { + if (jj_3R_242()) { jj_scanpos = xsp; - if (jj_3R_234()) { + if (jj_3R_243()) { return true; } } @@ -7521,312 +7658,298 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3_2() { - if (jj_3R_169()) { - return true; - } - if (jj_3R_170()) { + private boolean jj_3R_237() { + if (jj_scan_token(DIMEN)) { return true; } return false; } - private boolean jj_3_1() { - if (jj_3R_168()) { + private boolean jj_3R_236() { + if (jj_scan_token(KHZ)) { return true; } return false; } - private boolean jj_3R_193() { - if (jj_scan_token(COMMA)) { - return true; - } - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_scan_token(1)) { - jj_scanpos = xsp; - break; - } - } - if (jj_3R_192()) { + private boolean jj_3R_235() { + if (jj_scan_token(HZ)) { return true; } return false; } - private boolean jj_3R_235() { - if (jj_3R_170()) { + private boolean jj_3R_234() { + if (jj_scan_token(MS)) { return true; } return false; } - private boolean jj_3R_228() { - if (jj_scan_token(DIMEN)) { + private boolean jj_3R_233() { + if (jj_scan_token(SECOND)) { return true; } return false; } - private boolean jj_3R_227() { - if (jj_scan_token(KHZ)) { + private boolean jj_3R_232() { + if (jj_scan_token(GRAD)) { return true; } return false; } - private boolean jj_3R_192() { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_235()) { - jj_scanpos = xsp; - if (jj_3R_236()) { - return true; - } - } - while (true) { - xsp = jj_scanpos; - if (jj_3_2()) { - jj_scanpos = xsp; - break; - } - } - while (true) { - xsp = jj_scanpos; - if (jj_scan_token(1)) { - jj_scanpos = xsp; - break; - } + private boolean jj_3R_231() { + if (jj_scan_token(RAD)) { + return true; } return false; } - private boolean jj_3R_226() { - if (jj_scan_token(HZ)) { + private boolean jj_3_2() { + if (jj_3R_173()) { return true; } - return false; - } - - private boolean jj_3R_225() { - if (jj_scan_token(MS)) { + if (jj_3R_174()) { return true; } return false; } - private boolean jj_3R_224() { - if (jj_scan_token(SECOND)) { + private boolean jj_3R_230() { + if (jj_scan_token(DEG)) { return true; } return false; } - private boolean jj_3R_223() { - if (jj_scan_token(GRAD)) { + private boolean jj_3_1() { + if (jj_3R_172()) { return true; } return false; } - private boolean jj_3R_222() { - if (jj_scan_token(RAD)) { + private boolean jj_3R_229() { + if (jj_scan_token(EXS)) { return true; } return false; } - private boolean jj_3R_174() { - if (jj_3R_192()) { + private boolean jj_3R_197() { + if (jj_scan_token(COMMA)) { return true; } Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_193()) { + if (jj_scan_token(1)) { jj_scanpos = xsp; break; } } - return false; - } - - private boolean jj_3R_221() { - if (jj_scan_token(DEG)) { + if (jj_3R_196()) { return true; } return false; } - private boolean jj_3R_220() { - if (jj_scan_token(EXS)) { + private boolean jj_3R_244() { + if (jj_3R_174()) { return true; } return false; } - private boolean jj_3R_219() { + private boolean jj_3R_228() { if (jj_scan_token(REM)) { return true; } return false; } - private boolean jj_3_4() { - if (jj_3R_171()) { + private boolean jj_3R_227() { + if (jj_scan_token(LEM)) { return true; } return false; } - private boolean jj_3R_218() { - if (jj_scan_token(LEM)) { - return true; + private boolean jj_3R_196() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_244()) { + jj_scanpos = xsp; + if (jj_3R_245()) { + return true; + } + } + while (true) { + xsp = jj_scanpos; + if (jj_3_2()) { + jj_scanpos = xsp; + break; + } + } + while (true) { + xsp = jj_scanpos; + if (jj_scan_token(1)) { + jj_scanpos = xsp; + break; + } } return false; } - private boolean jj_3R_217() { + private boolean jj_3R_226() { if (jj_scan_token(EMS)) { return true; } return false; } - private boolean jj_3R_216() { + private boolean jj_3R_225() { if (jj_scan_token(PX)) { return true; } return false; } - private boolean jj_3R_215() { + private boolean jj_3R_224() { if (jj_scan_token(IN)) { return true; } return false; } - private boolean jj_3R_214() { + private boolean jj_3R_223() { if (jj_scan_token(PC)) { return true; } return false; } - private boolean jj_3R_213() { + private boolean jj_3R_222() { if (jj_scan_token(MM)) { return true; } return false; } - private boolean jj_3R_212() { + private boolean jj_3R_221() { if (jj_scan_token(CM)) { return true; } return false; } - private boolean jj_3R_251() { - if (jj_scan_token(INTERPOLATION)) { + private boolean jj_3R_178() { + if (jj_3R_196()) { return true; } + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_197()) { + jj_scanpos = xsp; + break; + } + } return false; } - private boolean jj_3R_211() { + private boolean jj_3R_220() { if (jj_scan_token(PT)) { return true; } return false; } - private boolean jj_3R_210() { + private boolean jj_3R_219() { if (jj_scan_token(PERCENTAGE)) { return true; } return false; } - private boolean jj_3R_199() { - if (jj_3R_240()) { + private boolean jj_3_4() { + if (jj_3R_175()) { return true; } return false; } - private boolean jj_3_3() { - if (jj_3R_168()) { + private boolean jj_3R_202() { + if (jj_3R_247()) { return true; } return false; } - private boolean jj_3R_209() { + private boolean jj_3R_218() { if (jj_scan_token(NUMBER)) { return true; } return false; } - private boolean jj_3R_208() { - if (jj_3R_244()) { + private boolean jj_3R_217() { + if (jj_3R_251()) { return true; } return false; } - private boolean jj_3R_190() { + private boolean jj_3R_194() { Token xsp; xsp = jj_scanpos; - if (jj_3R_208()) { + if (jj_3R_217()) { jj_scanpos = xsp; } xsp = jj_scanpos; - if (jj_3R_209()) { + if (jj_3R_218()) { jj_scanpos = xsp; - if (jj_3R_210()) { + if (jj_3R_219()) { jj_scanpos = xsp; - if (jj_3R_211()) { + if (jj_3R_220()) { jj_scanpos = xsp; - if (jj_3R_212()) { + if (jj_3R_221()) { jj_scanpos = xsp; - if (jj_3R_213()) { + if (jj_3R_222()) { jj_scanpos = xsp; - if (jj_3R_214()) { + if (jj_3R_223()) { jj_scanpos = xsp; - if (jj_3R_215()) { + if (jj_3R_224()) { jj_scanpos = xsp; - if (jj_3R_216()) { + if (jj_3R_225()) { jj_scanpos = xsp; - if (jj_3R_217()) { + if (jj_3R_226()) { jj_scanpos = xsp; - if (jj_3R_218()) { + if (jj_3R_227()) { jj_scanpos = xsp; - if (jj_3R_219()) { + if (jj_3R_228()) { jj_scanpos = xsp; - if (jj_3R_220()) { + if (jj_3R_229()) { jj_scanpos = xsp; - if (jj_3R_221()) { + if (jj_3R_230()) { jj_scanpos = xsp; - if (jj_3R_222()) { + if (jj_3R_231()) { jj_scanpos = xsp; - if (jj_3R_223()) { + if (jj_3R_232()) { jj_scanpos = xsp; - if (jj_3R_224()) { + if (jj_3R_233()) { jj_scanpos = xsp; - if (jj_3R_225()) { + if (jj_3R_234()) { jj_scanpos = xsp; - if (jj_3R_226()) { + if (jj_3R_235()) { jj_scanpos = xsp; - if (jj_3R_227()) { + if (jj_3R_236()) { jj_scanpos = xsp; - if (jj_3R_228()) { + if (jj_3R_237()) { jj_scanpos = xsp; - if (jj_3R_229()) { + if (jj_3R_238()) { return true; } } @@ -7852,12 +7975,12 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_173() { + private boolean jj_3R_177() { Token xsp; xsp = jj_scanpos; - if (jj_3R_190()) { + if (jj_3R_194()) { jj_scanpos = xsp; - if (jj_3R_191()) { + if (jj_3R_195()) { return true; } } @@ -7871,7 +7994,68 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_181() { + private boolean jj_3R_254() { + if (jj_scan_token(HASH)) { + return true; + } + return false; + } + + private boolean jj_3R_247() { + if (jj_3R_182()) { + return true; + } + return false; + } + + private boolean jj_3R_258() { + if (jj_scan_token(INTERPOLATION)) { + return true; + } + return false; + } + + private boolean jj_3R_255() { + if (jj_scan_token(URL)) { + return true; + } + return false; + } + + private boolean jj_3_3() { + if (jj_3R_172()) { + return true; + } + return false; + } + + private boolean jj_3R_201() { + if (jj_3R_177()) { + return true; + } + return false; + } + + private boolean jj_3R_180() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_201()) { + jj_scanpos = xsp; + if (jj_3R_202()) { + return true; + } + } + return false; + } + + private boolean jj_3_9() { + if (jj_3R_181()) { + return true; + } + return false; + } + + private boolean jj_3R_185() { if (jj_scan_token(SEMICOLON)) { return true; } @@ -7886,13 +8070,6 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { return false; } - private boolean jj_3R_247() { - if (jj_scan_token(HASH)) { - return true; - } - return false; - } - /** Generated Token Manager. */ public ParserTokenManager token_source; /** Current token. */ @@ -7903,7 +8080,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { private Token jj_scanpos, jj_lastpos; private int jj_la; private int jj_gen; - final private int[] jj_la1 = new int[251]; + final private int[] jj_la1 = new int[254]; static private int[] jj_la1_0; static private int[] jj_la1_1; static private int[] jj_la1_2; @@ -7917,117 +8094,120 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { private static void jj_la1_init_0() { jj_la1_0 = new int[] { 0x0, 0xc02, 0xc02, 0x0, 0xc00, 0x2, 0x2, 0x2, - 0xd3100000, 0x0, 0xc00, 0x2, 0xc00, 0x2, 0x0, 0x2, 0x0, 0x2, - 0x2, 0x0, 0x0, 0x2, 0x2, 0x0, 0x2, 0x0, 0x2, 0x2, 0xd3100000, - 0xd3100000, 0x2, 0x2, 0x2, 0xd3f45400, 0xd3f45400, 0x2, + 0x53100000, 0x0, 0xc00, 0x2, 0xc00, 0x2, 0x0, 0x2, 0x0, 0x2, + 0x2, 0x0, 0x0, 0x2, 0x2, 0x0, 0x2, 0x0, 0x2, 0x2, 0x53100000, + 0x53100000, 0x2, 0x2, 0x2, 0x53f45400, 0x53f45400, 0x2, 0x400000, 0x2, 0x2, 0x2, 0x2, 0x0, 0x0, 0x2, 0x0, 0x800000, 0x2, 0x0, 0x2, 0x2, 0x2, 0x2, 0x0, 0x800000, 0x2, 0x0, 0x2, 0xe45400, 0x3100000, 0x3100002, 0x3100000, 0x2, 0x2, 0x480002, - 0x480002, 0x2, 0x0, 0x0, 0x2, 0x2, 0x2, 0x2, 0xd3100000, - 0xd3100000, 0x2, 0x400000, 0x2, 0xd3100000, 0x2, 0x10000000, + 0x480002, 0x2, 0x0, 0x0, 0x2, 0x2, 0x2, 0x2, 0x53100000, + 0x53100000, 0x2, 0x400000, 0x2, 0x53100000, 0x2, 0x10000000, 0x10000000, 0x10000000, 0x10000000, 0x10000000, 0x10000000, - 0x10000000, 0x10000000, 0x10000000, 0x10000000, 0xd0000000, - 0x0, 0x0, 0x0, 0x0, 0xc0000000, 0x2, 0x2, 0xfc000, 0x2, 0x0, + 0x10000000, 0x10000000, 0x10000000, 0x10000000, 0x50000000, + 0x0, 0x0, 0x0, 0x0, 0x40000000, 0x2, 0x2, 0xfc000, 0x2, 0x0, 0x2, 0xfc000, 0x0, 0x2, 0x0, 0x2, 0x0, 0x2, 0x800000, 0x0, - 0xd3100000, 0x0, 0x4d380002, 0x2, 0xd3100000, 0x2, 0x0, 0x2, - 0x4d380002, 0x0, 0x2, 0xd3100000, 0x2, 0x4d380002, 0x2, 0x2, - 0x2, 0x0, 0x2, 0xd3100000, 0x2, 0x2, 0x400000, 0x2, 0x2, 0x2, - 0x2, 0x0, 0x2, 0xd3100000, 0xd3100000, 0x2, 0x400000, 0x2, 0x2, + 0x53100000, 0x0, 0x4d380002, 0x2, 0x53100000, 0x2, 0x0, 0x2, + 0x4d380002, 0x0, 0x2, 0x53100000, 0x2, 0x4d380002, 0x2, 0x2, + 0x2, 0x0, 0x2, 0x53100000, 0x2, 0x2, 0x400000, 0x2, 0x2, 0x2, + 0x2, 0x0, 0x2, 0x53100000, 0x53100000, 0x2, 0x400000, 0x2, 0x2, 0x2, 0x400000, 0x0, 0x0, 0x300000, 0x2, 0x0, 0x400000, 0x2, 0x300000, 0x2, 0x0, 0x2, 0x0, 0x2, 0x800000, 0x2, 0x2, 0x0, 0x2, 0x0, 0x2, 0x2, 0x2, 0x400000, 0x2, 0x2, 0x2, 0x2, 0x2, 0x0, 0x2, 0x2, 0x2, 0x400000, 0x2, 0x2, 0x2, 0x0, 0x2, 0x2, 0x2, 0x400000, 0x2, 0x2, 0x0, 0x2, 0x0, 0x2, 0x2, 0x2, 0x400000, 0x0, 0x2, 0x2, 0x0, 0x2, 0x2, 0x2, 0x800000, 0x2, - 0x2, 0x0, 0x800000, 0x2, 0x0, 0x2, 0x0, 0xd3100000, 0x2, 0x0, + 0x2, 0x0, 0x800000, 0x2, 0x0, 0x2, 0x0, 0x53100000, 0x2, 0x0, 0x2, 0x0, 0x800000, 0x2, 0x0, 0x2, 0x301000, 0x2, 0x0, 0x2, - 0x2, 0x2, 0x2, 0x8400000, 0x8400000, 0x300000, 0x300000, - 0x300000, 0x0, 0x0, 0x0, 0x300000, 0x2, 0x2, 0x300000, 0x2, - 0xd3100000, 0x2, 0x2, 0x2, 0x0, 0x800000, 0x2, 0x0, 0x2, }; + 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0xc8700000, 0x300000, + 0x300000, 0x300000, 0x0, 0x0, 0x0, 0x300000, 0x2, 0x2, + 0x300000, 0x2, 0x53100000, 0x2, 0x2, 0x2, 0x0, 0x800000, 0x2, + 0x0, 0x2, }; } private static void jj_la1_init_1() { jj_la1_1 = new int[] { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0xacc00181, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x100, 0x100, 0x0, 0x0, 0x240000, 0x0, 0x240000, 0x0, 0x0, - 0xac800181, 0xac800181, 0x0, 0x0, 0x0, 0xc000381, 0xc000381, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x0, 0x100, 0x0, 0x0, - 0x100, 0x0, 0x0, 0x0, 0x0, 0x100, 0x0, 0x0, 0x100, 0x0, 0x200, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x185, 0x185, 0x0, 0x100, 0x100, 0x0, - 0x0, 0x0, 0x0, 0xac800181, 0xac800181, 0x0, 0x0, 0x0, 0x181, - 0x0, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, - 0x81, 0x181, 0x100, 0x100, 0x100, 0x100, 0x100, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0xa0000000, 0xc800181, 0x0, 0x7e, 0x0, 0xc800181, 0x0, 0x0, - 0x0, 0x7e, 0x0, 0x0, 0xc800181, 0x0, 0x7e, 0x0, 0x0, 0x0, 0x0, - 0x0, 0xc800181, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x100, 0x0, - 0xac800181, 0xac800181, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, - 0x80, 0x81, 0x0, 0x80, 0x0, 0x0, 0x81, 0x0, 0x80, 0x0, 0x100, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, - 0x0, 0x0, 0xc000000, 0x0, 0x0, 0xc0000, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x100, 0x0, 0x0, 0x100, 0x0, 0xc000000, 0x181, 0x0, - 0x0, 0x0, 0x100, 0x0, 0x0, 0x100, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x1, 0x0, - 0x0, 0x1, 0x0, 0xc000181, 0x0, 0x0, 0x0, 0x100, 0x0, 0x0, - 0x100, 0x0, }; + 0x59800303, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x200, 0x200, 0x0, 0x0, 0x480000, 0x0, 0x480000, 0x0, 0x0, + 0x59000303, 0x59000303, 0x0, 0x0, 0x0, 0x18000703, 0x18000703, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x100, 0x0, 0x200, 0x0, 0x0, + 0x200, 0x0, 0x0, 0x0, 0x0, 0x200, 0x0, 0x0, 0x200, 0x0, 0x400, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x30a, 0x30a, 0x0, 0x200, 0x200, 0x0, + 0x0, 0x0, 0x0, 0x59000303, 0x59000303, 0x0, 0x0, 0x0, 0x303, + 0x0, 0x102, 0x102, 0x102, 0x102, 0x102, 0x102, 0x102, 0x102, + 0x102, 0x102, 0x303, 0x200, 0x200, 0x200, 0x200, 0x201, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x100, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x40000000, 0x19000303, 0x0, 0xfc, 0x0, 0x19000303, 0x0, + 0x0, 0x0, 0xfc, 0x0, 0x0, 0x19000303, 0x0, 0xfc, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x19000303, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x200, + 0x0, 0x59000303, 0x59000303, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x100, 0x100, 0x102, 0x0, 0x100, 0x0, 0x0, 0x102, 0x0, 0x100, + 0x0, 0x200, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, + 0x0, 0x0, 0x0, 0x0, 0x18000000, 0x0, 0x0, 0x180000, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x200, 0x0, 0x0, 0x200, 0x0, 0x18000000, + 0x303, 0x0, 0x0, 0x0, 0x200, 0x0, 0x0, 0x200, 0x0, 0x2, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, + 0x0, 0x0, 0x2, 0x2, 0x2, 0x0, 0x0, 0x2, 0x0, 0x18000303, 0x0, + 0x0, 0x0, 0x200, 0x0, 0x0, 0x200, 0x0, }; } private static void jj_la1_init_2() { - jj_la1_2 = new int[] { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x100, - 0x1000, 0x0, 0x0, 0x0, 0x0, 0x880, 0x0, 0x100, 0x0, 0x0, 0x100, - 0x100, 0x0, 0x0, 0x2000, 0x0, 0x2000, 0x0, 0x0, 0x1112, 0x1112, - 0x0, 0x0, 0x0, 0x2b80, 0x2b80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x100, 0x0, 0x0, 0x100, 0x0, 0x0, 0x100, 0x0, 0x0, 0x0, 0x0, - 0x100, 0x0, 0x0, 0x100, 0x0, 0x2a80, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x380, 0x380, 0x0, 0x100, 0x100, 0x0, 0x0, 0x0, 0x0, 0x1112, - 0x1112, 0x0, 0x0, 0x0, 0x100, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x100, 0x100, 0x100, 0x100, 0x100, - 0x100, 0x0, 0x0, 0x0, 0x0, 0x180, 0x0, 0x0, 0x0, 0x0, 0x100, - 0x0, 0x40, 0x0, 0x0, 0x0, 0x102, 0x1000, 0x1300, 0x0, 0x1102, - 0x0, 0x1, 0x0, 0x1300, 0x20, 0x0, 0x1102, 0x0, 0x1300, 0x0, - 0x0, 0x0, 0x1100, 0x0, 0x1102, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x100, 0x0, 0x1102, 0x1102, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x1000, 0x1000, 0xfffffb80, 0x0, 0x0, 0x0, 0x0, 0xfffffb80, - 0x0, 0x0, 0x0, 0x1100, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + jj_la1_2 = new int[] { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x201, + 0x2000, 0x0, 0x0, 0x0, 0x0, 0x1100, 0x0, 0x200, 0x0, 0x0, + 0x200, 0x200, 0x0, 0x0, 0x4000, 0x0, 0x4000, 0x0, 0x0, 0x2225, + 0x2225, 0x0, 0x0, 0x0, 0x5700, 0x5700, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x200, 0x0, 0x0, 0x200, 0x0, 0x0, 0x200, 0x0, 0x0, 0x0, + 0x0, 0x200, 0x0, 0x0, 0x200, 0x0, 0x5500, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x700, 0x700, 0x0, 0x200, 0x200, 0x0, 0x0, 0x0, 0x0, + 0x2225, 0x2225, 0x0, 0x0, 0x0, 0x200, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x200, 0x200, 0x200, 0x200, + 0x200, 0x200, 0x0, 0x0, 0x0, 0x0, 0x300, 0x0, 0x0, 0x0, 0x0, + 0x200, 0x0, 0x80, 0x0, 0x0, 0x1, 0x204, 0x2000, 0x2600, 0x0, + 0x2204, 0x0, 0x2, 0x0, 0x2600, 0x40, 0x0, 0x2204, 0x0, 0x2600, + 0x0, 0x0, 0x0, 0x2200, 0x0, 0x2204, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x200, 0x0, 0x2205, 0x2205, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x2000, 0x2000, 0xfffff700, 0x0, 0x0, 0x0, 0x0, + 0xfffff700, 0x0, 0x0, 0x0, 0x2200, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x100, 0x0, 0x0, 0x100, 0x0, 0x0, 0x100, - 0x0, 0x0, 0x0, 0x100, 0x0, 0x0, 0x100, 0x0, 0xfffffb80, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfffffb80, 0x0, - 0xffffe200, 0x0, 0x980, 0xffffeb80, 0x0, 0x0, 0xfffffb80, 0x0, - 0x100, 0x0, 0x0, 0x0, 0x100, 0x0, 0x0, 0x100, 0x0, }; + 0x0, 0x0, 0x2000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x200, 0x0, 0x0, 0x200, 0x0, + 0x0, 0x200, 0x0, 0x0, 0x0, 0x200, 0x0, 0x0, 0x200, 0x0, + 0xfffff700, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0xfffff700, 0x0, 0xffffc400, 0x0, 0x1300, 0xffffd700, + 0x0, 0x0, 0xfffff700, 0x0, 0x200, 0x0, 0x0, 0x0, 0x200, 0x0, + 0x0, 0x200, 0x0, }; } private static void jj_la1_init_3() { - jj_la1_3 = new int[] { 0x8, 0x80, 0x80, 0x2, 0x80, 0x0, 0x0, 0x0, 0x75, - 0x0, 0x80, 0x0, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x45, 0x45, 0x0, 0x0, 0x0, - 0xc401bf, 0xc401bf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + jj_la1_3 = new int[] { 0x10, 0x100, 0x100, 0x4, 0x100, 0x0, 0x0, 0x0, + 0xea, 0x0, 0x100, 0x0, 0x100, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8a, 0x8a, 0x0, + 0x0, 0x0, 0x188037e, 0x188037e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0xc401be, 0x0, 0x0, 0x0, 0x0, 0x0, 0x400000, - 0x400000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x45, 0x45, 0x0, - 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1, 0x1, 0x1, - 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x400000, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x45, 0x0, 0x200000, 0x0, 0x45, 0x0, 0x0, 0x0, 0x200000, 0x0, - 0x0, 0x45, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x45, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x400000, 0x0, 0x75, 0x75, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x440001, 0x0, 0x0, 0x0, 0x0, - 0x440001, 0x0, 0x0, 0x0, 0x400000, 0x0, 0x0, 0x0, 0x0, - 0x380000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x188037c, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x800000, 0x800000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8a, + 0x8a, 0x0, 0x0, 0x0, 0x2, 0x0, 0x2, 0x2, 0x0, 0x0, 0x2, 0x2, + 0x2, 0x2, 0x2, 0x2, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x800000, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x8a, 0x0, 0x400000, 0x0, 0x8a, 0x0, 0x0, 0x0, + 0x400000, 0x0, 0x0, 0x8a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x8a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x800000, 0x0, 0xea, + 0xea, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x880003, 0x0, + 0x0, 0x0, 0x0, 0x880003, 0x0, 0x0, 0x0, 0x800000, 0x0, 0x0, + 0x0, 0x0, 0x700000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x0, 0x0, 0x0, 0x1, 0x0, 0x100, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x440001, 0x0, 0x100, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, - 0x440001, 0x0, 0x400000, 0x0, 0x40001, 0x440001, 0x0, 0x0, - 0x440001, 0x0, 0x37, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, }; + 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x200, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x880003, 0x0, 0x200, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x880003, 0x0, 0x800001, 0x0, 0x80002, + 0x880003, 0x0, 0x0, 0x880003, 0x0, 0x6e, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, }; } - final private JJCalls[] jj_2_rtns = new JJCalls[8]; + final private JJCalls[] jj_2_rtns = new JJCalls[9]; private boolean jj_rescan = false; private int jj_gc = 0; @@ -8037,7 +8217,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 251; i++) { + for (int i = 0; i < 254; i++) { jj_la1[i] = -1; } for (int i = 0; i < jj_2_rtns.length; i++) { @@ -8051,7 +8231,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 251; i++) { + for (int i = 0; i < 254; i++) { jj_la1[i] = -1; } for (int i = 0; i < jj_2_rtns.length; i++) { @@ -8065,7 +8245,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 251; i++) { + for (int i = 0; i < 254; i++) { jj_la1[i] = -1; } for (int i = 0; i < jj_2_rtns.length; i++) { @@ -8079,7 +8259,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 251; i++) { + for (int i = 0; i < 254; i++) { jj_la1[i] = -1; } for (int i = 0; i < jj_2_rtns.length; i++) { @@ -8225,12 +8405,12 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { /** Generate ParseException. */ public ParseException generateParseException() { jj_expentries.clear(); - boolean[] la1tokens = new boolean[120]; + boolean[] la1tokens = new boolean[121]; if (jj_kind >= 0) { la1tokens[jj_kind] = true; jj_kind = -1; } - for (int i = 0; i < 251; i++) { + for (int i = 0; i < 254; i++) { if (jj_la1[i] == jj_gen) { for (int j = 0; j < 32; j++) { if ((jj_la1_0[i] & (1 << j)) != 0) { @@ -8248,7 +8428,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { } } } - for (int i = 0; i < 120; i++) { + for (int i = 0; i < 121; i++) { if (la1tokens[i]) { jj_expentry = new int[1]; jj_expentry[0] = i; @@ -8275,7 +8455,7 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { private void jj_rescan_token() { jj_rescan = true; - for (int i = 0; i < 8; i++) { + for (int i = 0; i < 9; i++) { try { JJCalls p = jj_2_rtns[i]; do { @@ -8307,6 +8487,9 @@ public class Parser implements org.w3c.css.sac.Parser, ParserConstants { case 7: jj_3_8(); break; + case 8: + jj_3_9(); + break; } } p = p.next; diff --git a/theme-compiler/src/com/vaadin/sass/internal/parser/Parser.jj b/theme-compiler/src/com/vaadin/sass/internal/parser/Parser.jj index 3798947d1d..636ecad49b 100644 --- a/theme-compiler/src/com/vaadin/sass/internal/parser/Parser.jj +++ b/theme-compiler/src/com/vaadin/sass/internal/parser/Parser.jj @@ -534,6 +534,7 @@ TOKEN : | < LBRACKET : "[" > | < RBRACKET : "]" > | < ANY : "*" > + | < MOD : "%" > | < PARENT : "&" > | < DOT : "." > | < LPARAN : "(" > @@ -2193,12 +2194,40 @@ boolean guarded() : LexicalUnitImpl operator(LexicalUnitImpl prev) : {Token n;} { -n="/" ( <S> )* { return LexicalUnitImpl.createSlash(n.beginLine, - n.beginColumn, - prev); } -| n="," ( <S> )* { return LexicalUnitImpl.createComma(n.beginLine, - n.beginColumn, - prev); } +/* (comments copied from basic_arithmetics.scss) +*supports: +* 1. standard arithmetic operations (+, -, *, /, %) +* 2. / is treated as css operator, unless one of its operands is variable or there is another binary arithmetic operator +*limits: +* 1. cannot mix arithmetic and css operations, e.g. "margin: 1px + 3px 2px" will fail +* 2. space between add and minus operator and their following operand is mandatory. e.g. "1 + 2" is valid, "1+2" is not +* 3. parenthesis is not supported now. +*/ +n="," ( <S> )* { return LexicalUnitImpl.createComma(n.beginLine, + n.beginColumn, + prev); } +|n="/" ( <S> )* { return LexicalUnitImpl.createSlash(n.beginLine, + n.beginColumn, + prev); } +| n="*" ( <S> )* { return LexicalUnitImpl.createMultiply(n.beginLine, + n.beginColumn, + prev); } +| n="%" ( <S> )* { return LexicalUnitImpl.createModulo(n.beginLine, + n.beginColumn, + prev); } +/* +* for '+', since it can be either a binary operator or an unary operator, +* which is ambiguous. To avoid this, the binary operator '+' always has +* a space before the following term. so '2+3' is not a valid binary expression, +* but '2 + 3' is. The same for '-' operator. +*/ + +| n="+" ( <S> )+{ return LexicalUnitImpl.createAdd(n.beginLine, + n.beginColumn, + prev); } +| n="-" ( <S> )+{ return LexicalUnitImpl.createMinus(n.beginLine, + n.beginColumn, + prev); } } /** @@ -2211,7 +2240,7 @@ LexicalUnitImpl expr() : } { first=term(null){ res = first; } - ( LOOKAHEAD(2) ( res=operator(res) )? res=term(res))* + ( LOOKAHEAD(2) ( LOOKAHEAD(2) res=operator(res) )? res=term(res))* { return first; } } diff --git a/theme-compiler/src/com/vaadin/sass/internal/parser/ParserConstants.java b/theme-compiler/src/com/vaadin/sass/internal/parser/ParserConstants.java index c55a13265f..8b944b5973 100644 --- a/theme-compiler/src/com/vaadin/sass/internal/parser/ParserConstants.java +++ b/theme-compiler/src/com/vaadin/sass/internal/parser/ParserConstants.java @@ -73,183 +73,185 @@ public interface ParserConstants { /** RegularExpression Id. */ int ANY = 30; /** RegularExpression Id. */ - int PARENT = 31; + int MOD = 31; /** RegularExpression Id. */ - int DOT = 32; + int PARENT = 32; /** RegularExpression Id. */ - int LPARAN = 33; + int DOT = 33; /** RegularExpression Id. */ - int RPARAN = 34; + int LPARAN = 34; /** RegularExpression Id. */ - int COMPARE = 35; + int RPARAN = 35; /** RegularExpression Id. */ - int OR = 36; + int COMPARE = 36; /** RegularExpression Id. */ - int AND = 37; + int OR = 37; /** RegularExpression Id. */ - int NOT_EQ = 38; + int AND = 38; /** RegularExpression Id. */ - int COLON = 39; + int NOT_EQ = 39; /** RegularExpression Id. */ - int INTERPOLATION = 40; + int COLON = 40; /** RegularExpression Id. */ - int NONASCII = 41; + int INTERPOLATION = 41; /** RegularExpression Id. */ - int H = 42; + int NONASCII = 42; /** RegularExpression Id. */ - int UNICODE = 43; + int H = 43; /** RegularExpression Id. */ - int ESCAPE = 44; + int UNICODE = 44; /** RegularExpression Id. */ - int NMSTART = 45; + int ESCAPE = 45; /** RegularExpression Id. */ - int NMCHAR = 46; + int NMSTART = 46; /** RegularExpression Id. */ - int STRINGCHAR = 47; + int NMCHAR = 47; /** RegularExpression Id. */ - int D = 48; + int STRINGCHAR = 48; /** RegularExpression Id. */ - int NAME = 49; + int D = 49; /** RegularExpression Id. */ - int TO = 50; + int NAME = 50; /** RegularExpression Id. */ - int THROUGH = 51; + int TO = 51; /** RegularExpression Id. */ - int EACH_IN = 52; + int THROUGH = 52; /** RegularExpression Id. */ - int FROM = 53; + int EACH_IN = 53; /** RegularExpression Id. */ - int MIXIN_SYM = 54; + int FROM = 54; /** RegularExpression Id. */ - int INCLUDE_SYM = 55; + int MIXIN_SYM = 55; /** RegularExpression Id. */ - int FUNCTION_SYM = 56; + int INCLUDE_SYM = 56; /** RegularExpression Id. */ - int RETURN_SYM = 57; + int FUNCTION_SYM = 57; /** RegularExpression Id. */ - int DEBUG_SYM = 58; + int RETURN_SYM = 58; /** RegularExpression Id. */ - int WARN_SYM = 59; + int DEBUG_SYM = 59; /** RegularExpression Id. */ - int FOR_SYM = 60; + int WARN_SYM = 60; /** RegularExpression Id. */ - int EACH_SYM = 61; + int FOR_SYM = 61; /** RegularExpression Id. */ - int WHILE_SYM = 62; + int EACH_SYM = 62; /** RegularExpression Id. */ - int IF_SYM = 63; + int WHILE_SYM = 63; /** RegularExpression Id. */ - int ELSE_SYM = 64; + int IF_SYM = 64; /** RegularExpression Id. */ - int EXTEND_SYM = 65; + int ELSE_SYM = 65; /** RegularExpression Id. */ - int MOZ_DOCUMENT_SYM = 66; + int EXTEND_SYM = 66; /** RegularExpression Id. */ - int SUPPORTS_SYM = 67; + int MOZ_DOCUMENT_SYM = 67; /** RegularExpression Id. */ - int MICROSOFT_RULE = 68; + int SUPPORTS_SYM = 68; /** RegularExpression Id. */ - int IF = 69; + int MICROSOFT_RULE = 69; /** RegularExpression Id. */ - int GUARDED_SYM = 70; + int IF = 70; /** RegularExpression Id. */ - int STRING = 71; + int GUARDED_SYM = 71; /** RegularExpression Id. */ - int IDENT = 72; + int STRING = 72; /** RegularExpression Id. */ - int NUMBER = 73; + int IDENT = 73; /** RegularExpression Id. */ - int _URL = 74; + int NUMBER = 74; /** RegularExpression Id. */ - int URL = 75; + int _URL = 75; /** RegularExpression Id. */ - int VARIABLE = 76; + int URL = 76; /** RegularExpression Id. */ - int PERCENTAGE = 77; + int VARIABLE = 77; /** RegularExpression Id. */ - int PT = 78; + int PERCENTAGE = 78; /** RegularExpression Id. */ - int MM = 79; + int PT = 79; /** RegularExpression Id. */ - int CM = 80; + int MM = 80; /** RegularExpression Id. */ - int PC = 81; + int CM = 81; /** RegularExpression Id. */ - int IN = 82; + int PC = 82; /** RegularExpression Id. */ - int PX = 83; + int IN = 83; /** RegularExpression Id. */ - int EMS = 84; + int PX = 84; /** RegularExpression Id. */ - int LEM = 85; + int EMS = 85; /** RegularExpression Id. */ - int REM = 86; + int LEM = 86; /** RegularExpression Id. */ - int EXS = 87; + int REM = 87; /** RegularExpression Id. */ - int DEG = 88; + int EXS = 88; /** RegularExpression Id. */ - int RAD = 89; + int DEG = 89; /** RegularExpression Id. */ - int GRAD = 90; + int RAD = 90; /** RegularExpression Id. */ - int MS = 91; + int GRAD = 91; /** RegularExpression Id. */ - int SECOND = 92; + int MS = 92; /** RegularExpression Id. */ - int HZ = 93; + int SECOND = 93; /** RegularExpression Id. */ - int KHZ = 94; + int HZ = 94; /** RegularExpression Id. */ - int DIMEN = 95; + int KHZ = 95; /** RegularExpression Id. */ - int HASH = 96; + int DIMEN = 96; /** RegularExpression Id. */ - int IMPORT_SYM = 97; + int HASH = 97; /** RegularExpression Id. */ - int MEDIA_SYM = 98; + int IMPORT_SYM = 98; /** RegularExpression Id. */ - int CHARSET_SYM = 99; + int MEDIA_SYM = 99; /** RegularExpression Id. */ - int PAGE_SYM = 100; + int CHARSET_SYM = 100; /** RegularExpression Id. */ - int FONT_FACE_SYM = 101; + int PAGE_SYM = 101; /** RegularExpression Id. */ - int KEY_FRAME_SYM = 102; + int FONT_FACE_SYM = 102; /** RegularExpression Id. */ - int ATKEYWORD = 103; + int KEY_FRAME_SYM = 103; /** RegularExpression Id. */ - int IMPORTANT_SYM = 104; + int ATKEYWORD = 104; /** RegularExpression Id. */ - int RANGE0 = 105; + int IMPORTANT_SYM = 105; /** RegularExpression Id. */ - int RANGE1 = 106; + int RANGE0 = 106; /** RegularExpression Id. */ - int RANGE2 = 107; + int RANGE1 = 107; /** RegularExpression Id. */ - int RANGE3 = 108; + int RANGE2 = 108; /** RegularExpression Id. */ - int RANGE4 = 109; + int RANGE3 = 109; /** RegularExpression Id. */ - int RANGE5 = 110; + int RANGE4 = 110; /** RegularExpression Id. */ - int RANGE6 = 111; + int RANGE5 = 111; /** RegularExpression Id. */ - int RANGE = 112; + int RANGE6 = 112; /** RegularExpression Id. */ - int UNI = 113; + int RANGE = 113; /** RegularExpression Id. */ - int UNICODERANGE = 114; + int UNI = 114; /** RegularExpression Id. */ - int REMOVE = 115; + int UNICODERANGE = 115; /** RegularExpression Id. */ - int APPEND = 116; + int REMOVE = 116; /** RegularExpression Id. */ - int CONTAINS = 117; + int APPEND = 117; /** RegularExpression Id. */ - int FUNCTION = 118; + int CONTAINS = 118; /** RegularExpression Id. */ - int UNKNOWN = 119; + int FUNCTION = 119; + /** RegularExpression Id. */ + int UNKNOWN = 120; /** Lexical state. */ int DEFAULT = 0; @@ -266,8 +268,8 @@ public interface ParserConstants { "\"*/\"", "<token of kind 9>", "\"<!--\"", "\"-->\"", "\"{\"", "\"}\"", "\"|=\"", "\"^=\"", "\"$=\"", "\"*=\"", "\"~=\"", "\"=\"", "\"+\"", "\"-\"", "\",\"", "\";\"", "\">\"", "\"~\"", "\"<\"", - "\"/\"", "\"[\"", "\"]\"", "\"*\"", "\"&\"", "\".\"", "\"(\"", - "\")\"", "\"==\"", "\"||\"", "\"&&\"", "\"!=\"", "\":\"", + "\"/\"", "\"[\"", "\"]\"", "\"*\"", "\"%\"", "\"&\"", "\".\"", + "\"(\"", "\")\"", "\"==\"", "\"||\"", "\"&&\"", "\"!=\"", "\":\"", "<INTERPOLATION>", "<NONASCII>", "<H>", "<UNICODE>", "<ESCAPE>", "<NMSTART>", "<NMCHAR>", "<STRINGCHAR>", "<D>", "<NAME>", "\"to\"", "\"through\"", "\"in\"", "\"from\"", "\"@mixin\"", "\"@include\"", diff --git a/theme-compiler/src/com/vaadin/sass/internal/parser/ParserTokenManager.java b/theme-compiler/src/com/vaadin/sass/internal/parser/ParserTokenManager.java index 9ff123c808..030edb4cf0 100644 --- a/theme-compiler/src/com/vaadin/sass/internal/parser/ParserTokenManager.java +++ b/theme-compiler/src/com/vaadin/sass/internal/parser/ParserTokenManager.java @@ -31,12 +31,12 @@ public class ParserTokenManager implements ParserConstants { long active1) { switch (pos) { case 0: - if ((active0 & 0x1c000000000000L) != 0L || (active1 & 0x20L) != 0L) { - jjmatchedKind = 72; - return 517; + if ((active0 & 0x40000000000000L) != 0L) { + jjmatchedKind = 73; + return 33; } - if ((active0 & 0x4000000000L) != 0L) { - return 518; + if ((active0 & 0x8000000000L) != 0L) { + return 517; } if ((active0 & 0x10000L) != 0L) { return 79; @@ -44,196 +44,196 @@ public class ParserTokenManager implements ParserConstants { if ((active0 & 0x200800L) != 0L) { return 42; } - if ((active0 & 0x20000000000000L) != 0L) { - jjmatchedKind = 72; - return 33; + if ((active0 & 0x38000000000000L) != 0L || (active1 & 0x40L) != 0L) { + jjmatchedKind = 73; + return 518; } if ((active0 & 0x8000044L) != 0L) { return 3; } - if ((active0 & 0xffc0000000000000L) != 0L - || (active1 & 0x3e0000000fL) != 0L) { + if ((active0 & 0xff80000000000000L) != 0L + || (active1 & 0x7c0000001fL) != 0L) { return 166; } - if ((active0 & 0x100000000L) != 0L) { + if ((active0 & 0x200000000L) != 0L) { return 519; } return -1; case 1: - if ((active1 & 0x4L) != 0L) { - return 178; - } - if ((active0 & 0xffc0000000000000L) != 0L - || (active1 & 0x3e0000000bL) != 0L) { - jjmatchedKind = 103; + if ((active0 & 0x50000000000000L) != 0L) { + jjmatchedKind = 73; jjmatchedPos = 1; - return 520; + return 518; + } + if ((active1 & 0x8L) != 0L) { + return 178; } if ((active0 & 0x40L) != 0L) { return 1; } - if ((active0 & 0x28000000000000L) != 0L) { - jjmatchedKind = 72; - jjmatchedPos = 1; - return 517; + if ((active0 & 0x28000000000000L) != 0L || (active1 & 0x40L) != 0L) { + return 518; } - if ((active0 & 0x14000000000000L) != 0L || (active1 & 0x20L) != 0L) { - return 517; + if ((active0 & 0xff80000000000000L) != 0L + || (active1 & 0x7c00000017L) != 0L) { + jjmatchedKind = 104; + jjmatchedPos = 1; + return 520; } return -1; case 2: - if ((active0 & 0x7fc0000000000000L) != 0L - || (active1 & 0x3e0000000bL) != 0L) { - jjmatchedKind = 103; + if ((active1 & 0x8L) != 0L) { + jjmatchedKind = 104; jjmatchedPos = 2; - return 520; + return 177; } - if ((active0 & 0x8000000000000000L) != 0L) { + if ((active1 & 0x1L) != 0L) { return 520; } - if ((active0 & 0x28000000000000L) != 0L) { - jjmatchedKind = 72; + if ((active0 & 0x50000000000000L) != 0L) { + jjmatchedKind = 73; jjmatchedPos = 2; - return 517; + return 518; } - if ((active1 & 0x4L) != 0L) { - jjmatchedKind = 103; + if ((active0 & 0xff80000000000000L) != 0L + || (active1 & 0x7c00000016L) != 0L) { + jjmatchedKind = 104; jjmatchedPos = 2; - return 177; + return 520; } return -1; case 3: - if ((active0 & 0x6fc0000000000000L) != 0L - || (active1 & 0x3e0000000bL) != 0L) { - jjmatchedKind = 103; + if ((active1 & 0x8L) != 0L) { + jjmatchedKind = 104; jjmatchedPos = 3; - return 520; + return 176; } - if ((active0 & 0x1000000000000000L) != 0L) { + if ((active0 & 0x2000000000000000L) != 0L) { return 520; } - if ((active1 & 0x4L) != 0L) { - jjmatchedKind = 103; + if ((active0 & 0xdf80000000000000L) != 0L + || (active1 & 0x7c00000016L) != 0L) { + jjmatchedKind = 104; jjmatchedPos = 3; - return 176; + return 520; } - if ((active0 & 0x20000000000000L) != 0L) { - return 517; + if ((active0 & 0x40000000000000L) != 0L) { + return 518; } - if ((active0 & 0x8000000000000L) != 0L) { - jjmatchedKind = 72; + if ((active0 & 0x10000000000000L) != 0L) { + jjmatchedKind = 73; jjmatchedPos = 3; - return 517; + return 518; } return -1; case 4: - if ((active1 & 0x4L) != 0L) { - jjmatchedKind = 103; - jjmatchedPos = 4; - return 175; + if ((active0 & 0x5000000000000000L) != 0L + || (active1 & 0x2000000002L) != 0L) { + return 520; } - if ((active0 & 0x8000000000000L) != 0L) { - jjmatchedKind = 72; + if ((active0 & 0x8f80000000000000L) != 0L + || (active1 & 0x5c00000014L) != 0L) { + jjmatchedKind = 104; jjmatchedPos = 4; - return 517; - } - if ((active0 & 0x2800000000000000L) != 0L - || (active1 & 0x1000000001L) != 0L) { return 520; } - if ((active0 & 0x47c0000000000000L) != 0L - || (active1 & 0x2e0000000aL) != 0L) { - jjmatchedKind = 103; + if ((active0 & 0x10000000000000L) != 0L) { + jjmatchedKind = 73; jjmatchedPos = 4; - return 520; + return 518; + } + if ((active1 & 0x8L) != 0L) { + jjmatchedKind = 104; + jjmatchedPos = 4; + return 175; } return -1; case 5: - if ((active0 & 0x4440000000000000L) != 0L - || (active1 & 0x400000000L) != 0L) { - return 520; - } - if ((active1 & 0x4L) != 0L) { - jjmatchedKind = 103; + if ((active0 & 0x10000000000000L) != 0L) { + jjmatchedKind = 73; jjmatchedPos = 5; - return 174; + return 518; } - if ((active0 & 0x380000000000000L) != 0L - || (active1 & 0x2a0000000aL) != 0L) { - jjmatchedKind = 103; + if ((active0 & 0x700000000000000L) != 0L + || (active1 & 0x5400000014L) != 0L) { + jjmatchedKind = 104; jjmatchedPos = 5; return 520; } - if ((active0 & 0x8000000000000L) != 0L) { - jjmatchedKind = 72; + if ((active1 & 0x8L) != 0L) { + jjmatchedKind = 104; jjmatchedPos = 5; - return 517; + return 174; + } + if ((active0 & 0x8880000000000000L) != 0L + || (active1 & 0x800000000L) != 0L) { + return 520; } return -1; case 6: - if ((active0 & 0x200000000000000L) != 0L - || (active1 & 0x200000002L) != 0L) { + if ((active0 & 0x300000000000000L) != 0L + || (active1 & 0x5000000018L) != 0L) { + jjmatchedKind = 104; + jjmatchedPos = 6; return 520; } - if ((active0 & 0x180000000000000L) != 0L - || (active1 & 0x280000000cL) != 0L) { - jjmatchedKind = 103; - jjmatchedPos = 6; + if ((active0 & 0x400000000000000L) != 0L + || (active1 & 0x400000004L) != 0L) { return 520; } - if ((active0 & 0x8000000000000L) != 0L) { - return 517; + if ((active0 & 0x10000000000000L) != 0L) { + return 518; } return -1; case 7: - if ((active0 & 0x100000000000000L) != 0L - || (active1 & 0x200000000cL) != 0L) { - jjmatchedKind = 103; + if ((active0 & 0x200000000000000L) != 0L + || (active1 & 0x4000000018L) != 0L) { + jjmatchedKind = 104; jjmatchedPos = 7; return 520; } - if ((active0 & 0x80000000000000L) != 0L - || (active1 & 0x800000000L) != 0L) { + if ((active0 & 0x100000000000000L) != 0L + || (active1 & 0x1000000000L) != 0L) { return 520; } return -1; case 8: - if ((active1 & 0x2000000004L) != 0L) { - jjmatchedKind = 103; - jjmatchedPos = 8; + if ((active0 & 0x200000000000000L) != 0L || (active1 & 0x10L) != 0L) { return 520; } - if ((active0 & 0x100000000000000L) != 0L || (active1 & 0x8L) != 0L) { + if ((active1 & 0x4000000008L) != 0L) { + jjmatchedKind = 104; + jjmatchedPos = 8; return 520; } return -1; case 9: - if ((active1 & 0x4L) != 0L) { - jjmatchedKind = 103; - jjmatchedPos = 9; + if ((active1 & 0x4000000000L) != 0L) { return 520; } - if ((active1 & 0x2000000000L) != 0L) { + if ((active1 & 0x8L) != 0L) { + jjmatchedKind = 104; + jjmatchedPos = 9; return 520; } return -1; case 10: - if ((active1 & 0x4L) != 0L) { - jjmatchedKind = 103; + if ((active1 & 0x8L) != 0L) { + jjmatchedKind = 104; jjmatchedPos = 10; return 520; } return -1; case 11: - if ((active1 & 0x4L) != 0L) { - jjmatchedKind = 103; + if ((active1 & 0x8L) != 0L) { + jjmatchedKind = 104; jjmatchedPos = 11; return 520; } return -1; case 12: - if ((active1 & 0x4L) != 0L) { - jjmatchedKind = 103; + if ((active1 & 0x8L) != 0L) { + jjmatchedKind = 104; jjmatchedPos = 12; return 520; } @@ -257,16 +257,18 @@ public class ParserTokenManager implements ParserConstants { private int jjMoveStringLiteralDfa0_0() { switch (curChar) { case 33: - return jjMoveStringLiteralDfa1_0(0x4000000000L, 0x0L); + return jjMoveStringLiteralDfa1_0(0x8000000000L, 0x0L); case 36: return jjMoveStringLiteralDfa1_0(0x10000L, 0x0L); + case 37: + return jjStopAtPos(0, 31); case 38: - jjmatchedKind = 31; - return jjMoveStringLiteralDfa1_0(0x2000000000L, 0x0L); + jjmatchedKind = 32; + return jjMoveStringLiteralDfa1_0(0x4000000000L, 0x0L); case 40: - return jjStopAtPos(0, 33); - case 41: return jjStopAtPos(0, 34); + case 41: + return jjStopAtPos(0, 35); case 42: jjmatchedKind = 30; return jjMoveStringLiteralDfa1_0(0x20000L, 0x0L); @@ -278,12 +280,12 @@ public class ParserTokenManager implements ParserConstants { jjmatchedKind = 21; return jjMoveStringLiteralDfa1_0(0x800L, 0x0L); case 46: - return jjStartNfaWithStates_0(0, 32, 519); + return jjStartNfaWithStates_0(0, 33, 519); case 47: jjmatchedKind = 27; return jjMoveStringLiteralDfa1_0(0x44L, 0x0L); case 58: - return jjStopAtPos(0, 39); + return jjStopAtPos(0, 40); case 59: return jjStopAtPos(0, 23); case 60: @@ -291,11 +293,11 @@ public class ParserTokenManager implements ParserConstants { return jjMoveStringLiteralDfa1_0(0x400L, 0x0L); case 61: jjmatchedKind = 19; - return jjMoveStringLiteralDfa1_0(0x800000000L, 0x0L); + return jjMoveStringLiteralDfa1_0(0x1000000000L, 0x0L); case 62: return jjStopAtPos(0, 24); case 64: - return jjMoveStringLiteralDfa1_0(0xffc0000000000000L, 0x3e0000000fL); + return jjMoveStringLiteralDfa1_0(0xff80000000000000L, 0x7c0000001fL); case 91: return jjStopAtPos(0, 28); case 93: @@ -304,17 +306,17 @@ public class ParserTokenManager implements ParserConstants { return jjMoveStringLiteralDfa1_0(0x8000L, 0x0L); case 70: case 102: - return jjMoveStringLiteralDfa1_0(0x20000000000000L, 0x0L); + return jjMoveStringLiteralDfa1_0(0x40000000000000L, 0x0L); case 73: case 105: - return jjMoveStringLiteralDfa1_0(0x10000000000000L, 0x20L); + return jjMoveStringLiteralDfa1_0(0x20000000000000L, 0x40L); case 84: case 116: - return jjMoveStringLiteralDfa1_0(0xc000000000000L, 0x0L); + return jjMoveStringLiteralDfa1_0(0x18000000000000L, 0x0L); case 123: return jjStopAtPos(0, 12); case 124: - return jjMoveStringLiteralDfa1_0(0x1000004000L, 0x0L); + return jjMoveStringLiteralDfa1_0(0x2000004000L, 0x0L); case 125: return jjStopAtPos(0, 13); case 126: @@ -336,8 +338,8 @@ public class ParserTokenManager implements ParserConstants { case 33: return jjMoveStringLiteralDfa2_0(active0, 0x400L, active1, 0L); case 38: - if ((active0 & 0x2000000000L) != 0L) { - return jjStopAtPos(1, 37); + if ((active0 & 0x4000000000L) != 0L) { + return jjStopAtPos(1, 38); } break; case 42: @@ -346,7 +348,7 @@ public class ParserTokenManager implements ParserConstants { } break; case 45: - return jjMoveStringLiteralDfa2_0(active0, 0x800L, active1, 0x4L); + return jjMoveStringLiteralDfa2_0(active0, 0x800L, active1, 0x8L); case 47: if ((active0 & 0x4L) != 0L) { return jjStopAtPos(1, 2); @@ -363,72 +365,73 @@ public class ParserTokenManager implements ParserConstants { return jjStopAtPos(1, 17); } else if ((active0 & 0x40000L) != 0L) { return jjStopAtPos(1, 18); - } else if ((active0 & 0x800000000L) != 0L) { - return jjStopAtPos(1, 35); - } else if ((active0 & 0x4000000000L) != 0L) { - return jjStopAtPos(1, 38); + } else if ((active0 & 0x1000000000L) != 0L) { + return jjStopAtPos(1, 36); + } else if ((active0 & 0x8000000000L) != 0L) { + return jjStopAtPos(1, 39); } break; case 67: case 99: - return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x800000000L); + return jjMoveStringLiteralDfa2_0(active0, 0L, active1, + 0x1000000000L); case 68: case 100: - return jjMoveStringLiteralDfa2_0(active0, 0x400000000000000L, + return jjMoveStringLiteralDfa2_0(active0, 0x800000000000000L, active1, 0L); case 69: case 101: - return jjMoveStringLiteralDfa2_0(active0, 0x2000000000000000L, - active1, 0x3L); + return jjMoveStringLiteralDfa2_0(active0, 0x4000000000000000L, + active1, 0x6L); case 70: case 102: - if ((active1 & 0x20L) != 0L) { - return jjStartNfaWithStates_0(1, 69, 517); + if ((active1 & 0x40L) != 0L) { + return jjStartNfaWithStates_0(1, 70, 518); } - return jjMoveStringLiteralDfa2_0(active0, 0x1100000000000000L, - active1, 0x2000000000L); + return jjMoveStringLiteralDfa2_0(active0, 0x2200000000000000L, + active1, 0x4000000000L); case 72: case 104: - return jjMoveStringLiteralDfa2_0(active0, 0x8000000000000L, + return jjMoveStringLiteralDfa2_0(active0, 0x10000000000000L, active1, 0L); case 73: case 105: - return jjMoveStringLiteralDfa2_0(active0, 0x8080000000000000L, - active1, 0x200000000L); + return jjMoveStringLiteralDfa2_0(active0, 0x100000000000000L, + active1, 0x400000001L); case 77: case 109: - return jjMoveStringLiteralDfa2_0(active0, 0x40000000000000L, - active1, 0x400000000L); + return jjMoveStringLiteralDfa2_0(active0, 0x80000000000000L, + active1, 0x800000000L); case 78: case 110: - if ((active0 & 0x10000000000000L) != 0L) { - return jjStartNfaWithStates_0(1, 52, 517); + if ((active0 & 0x20000000000000L) != 0L) { + return jjStartNfaWithStates_0(1, 53, 518); } break; case 79: case 111: - if ((active0 & 0x4000000000000L) != 0L) { - return jjStartNfaWithStates_0(1, 50, 517); + if ((active0 & 0x8000000000000L) != 0L) { + return jjStartNfaWithStates_0(1, 51, 518); } break; case 80: case 112: return jjMoveStringLiteralDfa2_0(active0, 0L, active1, - 0x1000000000L); + 0x2000000000L); case 82: case 114: - return jjMoveStringLiteralDfa2_0(active0, 0x220000000000000L, + return jjMoveStringLiteralDfa2_0(active0, 0x440000000000000L, active1, 0L); case 83: case 115: - return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x8L); + return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x10L); case 87: case 119: - return jjMoveStringLiteralDfa2_0(active0, 0x4800000000000000L, + return jjMoveStringLiteralDfa2_0(active0, 0x9000000000000000L, active1, 0L); case 124: - if ((active0 & 0x1000000000L) != 0L) { - return jjStopAtPos(1, 36); + if ((active0 & 0x2000000000L) != 0L) { + return jjStopAtPos(1, 37); } break; default: @@ -458,51 +461,51 @@ public class ParserTokenManager implements ParserConstants { break; case 65: case 97: - return jjMoveStringLiteralDfa3_0(active0, 0x2800000000000000L, - active1, 0x1000000000L); + return jjMoveStringLiteralDfa3_0(active0, 0x5000000000000000L, + active1, 0x2000000000L); case 69: case 101: - return jjMoveStringLiteralDfa3_0(active0, 0x600000000000000L, - active1, 0x400000000L); + return jjMoveStringLiteralDfa3_0(active0, 0xc00000000000000L, + active1, 0x800000000L); case 70: case 102: - if ((active0 & 0x8000000000000000L) != 0L) { - return jjStartNfaWithStates_0(2, 63, 520); + if ((active1 & 0x1L) != 0L) { + return jjStartNfaWithStates_0(2, 64, 520); } break; case 72: case 104: - return jjMoveStringLiteralDfa3_0(active0, 0x4000000000000000L, - active1, 0x800000000L); + return jjMoveStringLiteralDfa3_0(active0, 0x8000000000000000L, + active1, 0x1000000000L); case 73: case 105: - return jjMoveStringLiteralDfa3_0(active0, 0x40000000000000L, + return jjMoveStringLiteralDfa3_0(active0, 0x80000000000000L, active1, 0L); case 76: case 108: - return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x1L); + return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x2L); case 77: case 109: - return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x200000004L); + return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x400000008L); case 78: case 110: - return jjMoveStringLiteralDfa3_0(active0, 0x80000000000000L, + return jjMoveStringLiteralDfa3_0(active0, 0x100000000000000L, active1, 0L); case 79: case 111: - return jjMoveStringLiteralDfa3_0(active0, 0x1020000000000000L, - active1, 0x2000000000L); + return jjMoveStringLiteralDfa3_0(active0, 0x2040000000000000L, + active1, 0x4000000000L); case 82: case 114: - return jjMoveStringLiteralDfa3_0(active0, 0x8000000000000L, + return jjMoveStringLiteralDfa3_0(active0, 0x10000000000000L, active1, 0L); case 85: case 117: - return jjMoveStringLiteralDfa3_0(active0, 0x100000000000000L, - active1, 0x8L); + return jjMoveStringLiteralDfa3_0(active0, 0x200000000000000L, + active1, 0x10L); case 88: case 120: - return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x2L); + return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x4L); default: break; } @@ -528,60 +531,61 @@ public class ParserTokenManager implements ParserConstants { break; case 65: case 97: - return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x800000000L); + return jjMoveStringLiteralDfa4_0(active0, 0L, active1, + 0x1000000000L); case 66: case 98: - return jjMoveStringLiteralDfa4_0(active0, 0x400000000000000L, + return jjMoveStringLiteralDfa4_0(active0, 0x800000000000000L, active1, 0L); case 67: case 99: - return jjMoveStringLiteralDfa4_0(active0, 0x2080000000000000L, + return jjMoveStringLiteralDfa4_0(active0, 0x4100000000000000L, active1, 0L); case 68: case 100: - return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x400000000L); + return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x800000000L); case 71: case 103: return jjMoveStringLiteralDfa4_0(active0, 0L, active1, - 0x1000000000L); + 0x2000000000L); case 73: case 105: - return jjMoveStringLiteralDfa4_0(active0, 0x4000000000000000L, + return jjMoveStringLiteralDfa4_0(active0, 0x8000000000000000L, active1, 0L); case 77: case 109: - if ((active0 & 0x20000000000000L) != 0L) { - return jjStartNfaWithStates_0(3, 53, 517); + if ((active0 & 0x40000000000000L) != 0L) { + return jjStartNfaWithStates_0(3, 54, 518); } break; case 78: case 110: - return jjMoveStringLiteralDfa4_0(active0, 0x100000000000000L, - active1, 0x2000000000L); + return jjMoveStringLiteralDfa4_0(active0, 0x200000000000000L, + active1, 0x4000000000L); case 79: case 111: - return jjMoveStringLiteralDfa4_0(active0, 0x8000000000000L, - active1, 0x4L); + return jjMoveStringLiteralDfa4_0(active0, 0x10000000000000L, + active1, 0x8L); case 80: case 112: - return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x200000008L); + return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x400000010L); case 82: case 114: - if ((active0 & 0x1000000000000000L) != 0L) { - return jjStartNfaWithStates_0(3, 60, 520); + if ((active0 & 0x2000000000000000L) != 0L) { + return jjStartNfaWithStates_0(3, 61, 520); } - return jjMoveStringLiteralDfa4_0(active0, 0x800000000000000L, + return jjMoveStringLiteralDfa4_0(active0, 0x1000000000000000L, active1, 0L); case 83: case 115: - return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x1L); + return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x2L); case 84: case 116: - return jjMoveStringLiteralDfa4_0(active0, 0x200000000000000L, - active1, 0x2L); + return jjMoveStringLiteralDfa4_0(active0, 0x400000000000000L, + active1, 0x4L); case 88: case 120: - return jjMoveStringLiteralDfa4_0(active0, 0x40000000000000L, + return jjMoveStringLiteralDfa4_0(active0, 0x80000000000000L, active1, 0L); default: break; @@ -603,56 +607,57 @@ public class ParserTokenManager implements ParserConstants { switch (curChar) { case 67: case 99: - return jjMoveStringLiteralDfa5_0(active0, 0x100000000000000L, + return jjMoveStringLiteralDfa5_0(active0, 0x200000000000000L, active1, 0L); case 69: case 101: - if ((active1 & 0x1L) != 0L) { - return jjStartNfaWithStates_0(4, 64, 520); - } else if ((active1 & 0x1000000000L) != 0L) { - return jjStartNfaWithStates_0(4, 100, 520); + if ((active1 & 0x2L) != 0L) { + return jjStartNfaWithStates_0(4, 65, 520); + } else if ((active1 & 0x2000000000L) != 0L) { + return jjStartNfaWithStates_0(4, 101, 520); } - return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x2L); + return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x4L); case 72: case 104: - if ((active0 & 0x2000000000000000L) != 0L) { - return jjStartNfaWithStates_0(4, 61, 520); + if ((active0 & 0x4000000000000000L) != 0L) { + return jjStartNfaWithStates_0(4, 62, 520); } break; case 73: case 105: - return jjMoveStringLiteralDfa5_0(active0, 0x40000000000000L, - active1, 0x400000000L); + return jjMoveStringLiteralDfa5_0(active0, 0x80000000000000L, + active1, 0x800000000L); case 76: case 108: - return jjMoveStringLiteralDfa5_0(active0, 0x4080000000000000L, + return jjMoveStringLiteralDfa5_0(active0, 0x8100000000000000L, active1, 0L); case 78: case 110: - if ((active0 & 0x800000000000000L) != 0L) { - return jjStartNfaWithStates_0(4, 59, 520); + if ((active0 & 0x1000000000000000L) != 0L) { + return jjStartNfaWithStates_0(4, 60, 520); } break; case 79: case 111: - return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x200000000L); + return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x400000000L); case 80: case 112: - return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x8L); + return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x10L); case 82: case 114: - return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x800000000L); + return jjMoveStringLiteralDfa5_0(active0, 0L, active1, + 0x1000000000L); case 84: case 116: return jjMoveStringLiteralDfa5_0(active0, 0L, active1, - 0x2000000000L); + 0x4000000000L); case 85: case 117: - return jjMoveStringLiteralDfa5_0(active0, 0x608000000000000L, + return jjMoveStringLiteralDfa5_0(active0, 0xc10000000000000L, active1, 0L); case 90: case 122: - return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x4L); + return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x8L); default: break; } @@ -673,49 +678,50 @@ public class ParserTokenManager implements ParserConstants { switch (curChar) { case 45: return jjMoveStringLiteralDfa6_0(active0, 0L, active1, - 0x2000000004L); + 0x4000000008L); case 65: case 97: - if ((active1 & 0x400000000L) != 0L) { - return jjStartNfaWithStates_0(5, 98, 520); + if ((active1 & 0x800000000L) != 0L) { + return jjStartNfaWithStates_0(5, 99, 520); } break; case 69: case 101: - if ((active0 & 0x4000000000000000L) != 0L) { - return jjStartNfaWithStates_0(5, 62, 520); + if ((active0 & 0x8000000000000000L) != 0L) { + return jjStartNfaWithStates_0(5, 63, 520); } break; case 71: case 103: - if ((active0 & 0x400000000000000L) != 0L) { - return jjStartNfaWithStates_0(5, 58, 520); + if ((active0 & 0x800000000000000L) != 0L) { + return jjStartNfaWithStates_0(5, 59, 520); } - return jjMoveStringLiteralDfa6_0(active0, 0x8000000000000L, + return jjMoveStringLiteralDfa6_0(active0, 0x10000000000000L, active1, 0L); case 78: case 110: - if ((active0 & 0x40000000000000L) != 0L) { - return jjStartNfaWithStates_0(5, 54, 520); + if ((active0 & 0x80000000000000L) != 0L) { + return jjStartNfaWithStates_0(5, 55, 520); } - return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x2L); + return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x4L); case 79: case 111: - return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x8L); + return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x10L); case 82: case 114: - return jjMoveStringLiteralDfa6_0(active0, 0x200000000000000L, - active1, 0x200000000L); + return jjMoveStringLiteralDfa6_0(active0, 0x400000000000000L, + active1, 0x400000000L); case 83: case 115: - return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x800000000L); + return jjMoveStringLiteralDfa6_0(active0, 0L, active1, + 0x1000000000L); case 84: case 116: - return jjMoveStringLiteralDfa6_0(active0, 0x100000000000000L, + return jjMoveStringLiteralDfa6_0(active0, 0x200000000000000L, active1, 0L); case 85: case 117: - return jjMoveStringLiteralDfa6_0(active0, 0x80000000000000L, + return jjMoveStringLiteralDfa6_0(active0, 0x100000000000000L, active1, 0L); default: break; @@ -737,41 +743,42 @@ public class ParserTokenManager implements ParserConstants { switch (curChar) { case 68: case 100: - if ((active1 & 0x2L) != 0L) { - return jjStartNfaWithStates_0(6, 65, 520); + if ((active1 & 0x4L) != 0L) { + return jjStartNfaWithStates_0(6, 66, 520); } - return jjMoveStringLiteralDfa7_0(active0, 0x80000000000000L, - active1, 0x4L); + return jjMoveStringLiteralDfa7_0(active0, 0x100000000000000L, + active1, 0x8L); case 69: case 101: - return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x800000000L); + return jjMoveStringLiteralDfa7_0(active0, 0L, active1, + 0x1000000000L); case 70: case 102: return jjMoveStringLiteralDfa7_0(active0, 0L, active1, - 0x2000000000L); + 0x4000000000L); case 72: case 104: - if ((active0 & 0x8000000000000L) != 0L) { - return jjStartNfaWithStates_0(6, 51, 517); + if ((active0 & 0x10000000000000L) != 0L) { + return jjStartNfaWithStates_0(6, 52, 518); } break; case 73: case 105: - return jjMoveStringLiteralDfa7_0(active0, 0x100000000000000L, + return jjMoveStringLiteralDfa7_0(active0, 0x200000000000000L, active1, 0L); case 78: case 110: - if ((active0 & 0x200000000000000L) != 0L) { - return jjStartNfaWithStates_0(6, 57, 520); + if ((active0 & 0x400000000000000L) != 0L) { + return jjStartNfaWithStates_0(6, 58, 520); } break; case 82: case 114: - return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x8L); + return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x10L); case 84: case 116: - if ((active1 & 0x200000000L) != 0L) { - return jjStartNfaWithStates_0(6, 97, 520); + if ((active1 & 0x400000000L) != 0L) { + return jjStartNfaWithStates_0(6, 98, 520); } break; default: @@ -795,23 +802,23 @@ public class ParserTokenManager implements ParserConstants { case 65: case 97: return jjMoveStringLiteralDfa8_0(active0, 0L, active1, - 0x2000000000L); + 0x4000000000L); case 69: case 101: - if ((active0 & 0x80000000000000L) != 0L) { - return jjStartNfaWithStates_0(7, 55, 520); + if ((active0 & 0x100000000000000L) != 0L) { + return jjStartNfaWithStates_0(7, 56, 520); } break; case 79: case 111: - return jjMoveStringLiteralDfa8_0(active0, 0x100000000000000L, - active1, 0x4L); + return jjMoveStringLiteralDfa8_0(active0, 0x200000000000000L, + active1, 0x8L); case 84: case 116: - if ((active1 & 0x800000000L) != 0L) { - return jjStartNfaWithStates_0(7, 99, 520); + if ((active1 & 0x1000000000L) != 0L) { + return jjStartNfaWithStates_0(7, 100, 520); } - return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x8L); + return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x10L); default: break; } @@ -833,17 +840,17 @@ public class ParserTokenManager implements ParserConstants { case 67: case 99: return jjMoveStringLiteralDfa9_0(active0, 0L, active1, - 0x2000000004L); + 0x4000000008L); case 78: case 110: - if ((active0 & 0x100000000000000L) != 0L) { - return jjStartNfaWithStates_0(8, 56, 520); + if ((active0 & 0x200000000000000L) != 0L) { + return jjStartNfaWithStates_0(8, 57, 520); } break; case 83: case 115: - if ((active1 & 0x8L) != 0L) { - return jjStartNfaWithStates_0(8, 67, 520); + if ((active1 & 0x10L) != 0L) { + return jjStartNfaWithStates_0(8, 68, 520); } break; default: @@ -866,13 +873,13 @@ public class ParserTokenManager implements ParserConstants { switch (curChar) { case 69: case 101: - if ((active1 & 0x2000000000L) != 0L) { - return jjStartNfaWithStates_0(9, 101, 520); + if ((active1 & 0x4000000000L) != 0L) { + return jjStartNfaWithStates_0(9, 102, 520); } break; case 85: case 117: - return jjMoveStringLiteralDfa10_0(active1, 0x4L); + return jjMoveStringLiteralDfa10_0(active1, 0x8L); default: break; } @@ -892,7 +899,7 @@ public class ParserTokenManager implements ParserConstants { switch (curChar) { case 77: case 109: - return jjMoveStringLiteralDfa11_0(active1, 0x4L); + return jjMoveStringLiteralDfa11_0(active1, 0x8L); default: break; } @@ -912,7 +919,7 @@ public class ParserTokenManager implements ParserConstants { switch (curChar) { case 69: case 101: - return jjMoveStringLiteralDfa12_0(active1, 0x4L); + return jjMoveStringLiteralDfa12_0(active1, 0x8L); default: break; } @@ -932,7 +939,7 @@ public class ParserTokenManager implements ParserConstants { switch (curChar) { case 78: case 110: - return jjMoveStringLiteralDfa13_0(active1, 0x4L); + return jjMoveStringLiteralDfa13_0(active1, 0x8L); default: break; } @@ -952,8 +959,8 @@ public class ParserTokenManager implements ParserConstants { switch (curChar) { case 84: case 116: - if ((active1 & 0x4L) != 0L) { - return jjStartNfaWithStates_0(13, 66, 520); + if ((active1 & 0x8L) != 0L) { + return jjStartNfaWithStates_0(13, 67, 520); } break; default: @@ -995,8 +1002,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff200000000000L & l) == 0L) { break; } - if (kind > 103) { - kind = 103; + if (kind > 104) { + kind = 104; } jjCheckNAddTwoStates(113, 114); break; @@ -1021,15 +1028,15 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff200000000000L & l) == 0L) { break; } - if (kind > 103) { - kind = 103; + if (kind > 104) { + kind = 104; } jjCheckNAddTwoStates(113, 114); break; case 4: if ((0x3ff000000000000L & l) != 0L) { - if (kind > 73) { - kind = 73; + if (kind > 74) { + kind = 74; } jjCheckNAddStates(0, 81); } else if ((0x100003600L & l) != 0L) { @@ -1060,7 +1067,7 @@ public class ParserTokenManager implements ParserConstants { jjstateSet[jjnewStateCnt++] = 5; } break; - case 518: + case 517: if ((0x100003600L & l) != 0L) { jjCheckNAddTwoStates(251, 260); } @@ -1068,27 +1075,27 @@ public class ParserTokenManager implements ParserConstants { jjCheckNAddTwoStates(243, 250); } break; - case 517: + case 518: if ((0x3ff200000000000L & l) != 0L) { jjCheckNAddStates(120, 123); } else if ((0x100003600L & l) != 0L) { jjCheckNAddTwoStates(231, 232); } else if (curChar == 40) { - if (kind > 118) { - kind = 118; + if (kind > 119) { + kind = 119; } } if ((0x3ff200000000000L & l) != 0L) { - if (kind > 72) { - kind = 72; + if (kind > 73) { + kind = 73; } jjCheckNAddTwoStates(220, 221); } break; case 175: if ((0x3ff200000000000L & l) != 0L) { - if (kind > 103) { - kind = 103; + if (kind > 104) { + kind = 104; } jjCheckNAddTwoStates(113, 114); } @@ -1102,13 +1109,13 @@ public class ParserTokenManager implements ParserConstants { } else if ((0x100003600L & l) != 0L) { jjCheckNAddTwoStates(231, 232); } else if (curChar == 40) { - if (kind > 118) { - kind = 118; + if (kind > 119) { + kind = 119; } } if ((0x3ff200000000000L & l) != 0L) { - if (kind > 72) { - kind = 72; + if (kind > 73) { + kind = 73; } jjCheckNAddTwoStates(220, 221); } @@ -1117,8 +1124,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff200000000000L & l) == 0L) { break; } - if (kind > 103) { - kind = 103; + if (kind > 104) { + kind = 104; } jjCheckNAddTwoStates(113, 114); break; @@ -1181,8 +1188,8 @@ public class ParserTokenManager implements ParserConstants { jjCheckNAddTwoStates(267, 268); } if ((0x3ff000000000000L & l) != 0L) { - if (kind > 73) { - kind = 73; + if (kind > 74) { + kind = 74; } jjCheckNAdd(266); } @@ -1191,8 +1198,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff200000000000L & l) == 0L) { break; } - if (kind > 103) { - kind = 103; + if (kind > 104) { + kind = 104; } jjCheckNAddTwoStates(113, 114); break; @@ -1336,8 +1343,8 @@ public class ParserTokenManager implements ParserConstants { } break; case 46: - if (curChar == 34 && kind > 71) { - kind = 71; + if (curChar == 34 && kind > 72) { + kind = 72; } break; case 48: @@ -1411,8 +1418,8 @@ public class ParserTokenManager implements ParserConstants { } break; case 63: - if (curChar == 39 && kind > 71) { - kind = 71; + if (curChar == 39 && kind > 72) { + kind = 72; } break; case 65: @@ -1484,8 +1491,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff200000000000L & l) == 0L) { break; } - if (kind > 76) { - kind = 76; + if (kind > 77) { + kind = 77; } jjCheckNAddTwoStates(81, 82); break; @@ -1493,8 +1500,8 @@ public class ParserTokenManager implements ParserConstants { if ((0xffffffff00000000L & l) == 0L) { break; } - if (kind > 76) { - kind = 76; + if (kind > 77) { + kind = 77; } jjCheckNAddTwoStates(81, 82); break; @@ -1502,8 +1509,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 76) { - kind = 76; + if (kind > 77) { + kind = 77; } jjCheckNAddStates(288, 291); break; @@ -1511,8 +1518,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x100003600L & l) == 0L) { break; } - if (kind > 76) { - kind = 76; + if (kind > 77) { + kind = 77; } jjCheckNAddTwoStates(81, 82); break; @@ -1520,8 +1527,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 76) { - kind = 76; + if (kind > 77) { + kind = 77; } jjCheckNAddStates(292, 298); break; @@ -1529,8 +1536,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 76) { - kind = 76; + if (kind > 77) { + kind = 77; } jjCheckNAddStates(299, 301); break; @@ -1538,8 +1545,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 76) { - kind = 76; + if (kind > 77) { + kind = 77; } jjCheckNAddStates(302, 305); break; @@ -1547,8 +1554,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 76) { - kind = 76; + if (kind > 77) { + kind = 77; } jjCheckNAddStates(306, 310); break; @@ -1556,8 +1563,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 76) { - kind = 76; + if (kind > 77) { + kind = 77; } jjCheckNAddStates(311, 316); break; @@ -1565,8 +1572,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 76) { - kind = 76; + if (kind > 77) { + kind = 77; } jjCheckNAddStates(317, 320); break; @@ -1574,8 +1581,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 76) { - kind = 76; + if (kind > 77) { + kind = 77; } jjCheckNAddStates(321, 327); break; @@ -1583,8 +1590,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 76) { - kind = 76; + if (kind > 77) { + kind = 77; } jjCheckNAddStates(328, 330); break; @@ -1592,8 +1599,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 76) { - kind = 76; + if (kind > 77) { + kind = 77; } jjCheckNAddStates(331, 334); break; @@ -1601,8 +1608,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 76) { - kind = 76; + if (kind > 77) { + kind = 77; } jjCheckNAddStates(335, 339); break; @@ -1610,8 +1617,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 76) { - kind = 76; + if (kind > 77) { + kind = 77; } jjCheckNAddStates(340, 345); break; @@ -1624,8 +1631,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff200000000000L & l) == 0L) { break; } - if (kind > 96) { - kind = 96; + if (kind > 97) { + kind = 97; } jjCheckNAddTwoStates(100, 101); break; @@ -1633,8 +1640,8 @@ public class ParserTokenManager implements ParserConstants { if ((0xffffffff00000000L & l) == 0L) { break; } - if (kind > 96) { - kind = 96; + if (kind > 97) { + kind = 97; } jjCheckNAddTwoStates(100, 101); break; @@ -1642,8 +1649,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 96) { - kind = 96; + if (kind > 97) { + kind = 97; } jjCheckNAddStates(346, 349); break; @@ -1651,8 +1658,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x100003600L & l) == 0L) { break; } - if (kind > 96) { - kind = 96; + if (kind > 97) { + kind = 97; } jjCheckNAddTwoStates(100, 101); break; @@ -1660,8 +1667,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 96) { - kind = 96; + if (kind > 97) { + kind = 97; } jjCheckNAddStates(350, 356); break; @@ -1669,8 +1676,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 96) { - kind = 96; + if (kind > 97) { + kind = 97; } jjCheckNAddStates(357, 359); break; @@ -1678,8 +1685,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 96) { - kind = 96; + if (kind > 97) { + kind = 97; } jjCheckNAddStates(360, 363); break; @@ -1687,8 +1694,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 96) { - kind = 96; + if (kind > 97) { + kind = 97; } jjCheckNAddStates(364, 368); break; @@ -1696,8 +1703,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 96) { - kind = 96; + if (kind > 97) { + kind = 97; } jjCheckNAddStates(369, 374); break; @@ -1710,8 +1717,8 @@ public class ParserTokenManager implements ParserConstants { if ((0xffffffff00000000L & l) == 0L) { break; } - if (kind > 103) { - kind = 103; + if (kind > 104) { + kind = 104; } jjCheckNAddTwoStates(113, 114); break; @@ -1719,8 +1726,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 103) { - kind = 103; + if (kind > 104) { + kind = 104; } jjCheckNAddStates(375, 378); break; @@ -1728,8 +1735,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x100003600L & l) == 0L) { break; } - if (kind > 103) { - kind = 103; + if (kind > 104) { + kind = 104; } jjCheckNAddTwoStates(113, 114); break; @@ -1737,8 +1744,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 103) { - kind = 103; + if (kind > 104) { + kind = 104; } jjCheckNAddStates(379, 385); break; @@ -1746,8 +1753,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 103) { - kind = 103; + if (kind > 104) { + kind = 104; } jjCheckNAddStates(386, 388); break; @@ -1755,8 +1762,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 103) { - kind = 103; + if (kind > 104) { + kind = 104; } jjCheckNAddStates(389, 392); break; @@ -1764,8 +1771,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 103) { - kind = 103; + if (kind > 104) { + kind = 104; } jjCheckNAddStates(393, 397); break; @@ -1773,8 +1780,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 103) { - kind = 103; + if (kind > 104) { + kind = 104; } jjCheckNAddStates(398, 403); break; @@ -1782,8 +1789,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 103) { - kind = 103; + if (kind > 104) { + kind = 104; } jjCheckNAddStates(404, 407); break; @@ -1791,8 +1798,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 103) { - kind = 103; + if (kind > 104) { + kind = 104; } jjCheckNAddStates(408, 414); break; @@ -1800,8 +1807,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 103) { - kind = 103; + if (kind > 104) { + kind = 104; } jjCheckNAddStates(415, 417); break; @@ -1809,8 +1816,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 103) { - kind = 103; + if (kind > 104) { + kind = 104; } jjCheckNAddStates(418, 421); break; @@ -1818,8 +1825,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 103) { - kind = 103; + if (kind > 104) { + kind = 104; } jjCheckNAddStates(422, 426); break; @@ -1827,8 +1834,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 103) { - kind = 103; + if (kind > 104) { + kind = 104; } jjCheckNAddStates(427, 432); break; @@ -1838,8 +1845,8 @@ public class ParserTokenManager implements ParserConstants { } break; case 133: - if (curChar == 40 && kind > 115) { - kind = 115; + if (curChar == 40 && kind > 116) { + kind = 116; } break; case 140: @@ -1848,8 +1855,8 @@ public class ParserTokenManager implements ParserConstants { } break; case 141: - if (curChar == 40 && kind > 116) { - kind = 116; + if (curChar == 40 && kind > 117) { + kind = 117; } break; case 148: @@ -1858,8 +1865,8 @@ public class ParserTokenManager implements ParserConstants { } break; case 149: - if (curChar == 40 && kind > 117) { - kind = 117; + if (curChar == 40 && kind > 118) { + kind = 118; } break; case 179: @@ -1901,8 +1908,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff200000000000L & l) == 0L) { break; } - if (kind > 72) { - kind = 72; + if (kind > 73) { + kind = 73; } jjCheckNAddTwoStates(220, 221); break; @@ -1910,8 +1917,8 @@ public class ParserTokenManager implements ParserConstants { if ((0xffffffff00000000L & l) == 0L) { break; } - if (kind > 72) { - kind = 72; + if (kind > 73) { + kind = 73; } jjCheckNAddTwoStates(220, 221); break; @@ -1919,8 +1926,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 72) { - kind = 72; + if (kind > 73) { + kind = 73; } jjCheckNAddStates(439, 442); break; @@ -1928,8 +1935,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x100003600L & l) == 0L) { break; } - if (kind > 72) { - kind = 72; + if (kind > 73) { + kind = 73; } jjCheckNAddTwoStates(220, 221); break; @@ -1937,8 +1944,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 72) { - kind = 72; + if (kind > 73) { + kind = 73; } jjCheckNAddStates(443, 449); break; @@ -1946,8 +1953,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 72) { - kind = 72; + if (kind > 73) { + kind = 73; } jjCheckNAddStates(450, 452); break; @@ -1955,8 +1962,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 72) { - kind = 72; + if (kind > 73) { + kind = 73; } jjCheckNAddStates(453, 456); break; @@ -1964,8 +1971,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 72) { - kind = 72; + if (kind > 73) { + kind = 73; } jjCheckNAddStates(457, 461); break; @@ -1973,8 +1980,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 72) { - kind = 72; + if (kind > 73) { + kind = 73; } jjCheckNAddStates(462, 467); break; @@ -1989,8 +1996,8 @@ public class ParserTokenManager implements ParserConstants { } break; case 232: - if (curChar == 40 && kind > 118) { - kind = 118; + if (curChar == 40 && kind > 119) { + kind = 119; } break; case 234: @@ -2063,8 +2070,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 73) { - kind = 73; + if (kind > 74) { + kind = 74; } jjCheckNAdd(266); break; @@ -2074,8 +2081,8 @@ public class ParserTokenManager implements ParserConstants { } break; case 268: - if (curChar == 37 && kind > 77) { - kind = 77; + if (curChar == 37 && kind > 78) { + kind = 78; } break; case 269: @@ -2177,8 +2184,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff200000000000L & l) == 0L) { break; } - if (kind > 95) { - kind = 95; + if (kind > 96) { + kind = 96; } jjCheckNAddTwoStates(329, 330); break; @@ -2186,8 +2193,8 @@ public class ParserTokenManager implements ParserConstants { if ((0xffffffff00000000L & l) == 0L) { break; } - if (kind > 95) { - kind = 95; + if (kind > 96) { + kind = 96; } jjCheckNAddTwoStates(329, 330); break; @@ -2195,8 +2202,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 95) { - kind = 95; + if (kind > 96) { + kind = 96; } jjCheckNAddStates(503, 506); break; @@ -2204,8 +2211,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x100003600L & l) == 0L) { break; } - if (kind > 95) { - kind = 95; + if (kind > 96) { + kind = 96; } jjCheckNAddTwoStates(329, 330); break; @@ -2213,8 +2220,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 95) { - kind = 95; + if (kind > 96) { + kind = 96; } jjCheckNAddStates(507, 513); break; @@ -2222,8 +2229,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 95) { - kind = 95; + if (kind > 96) { + kind = 96; } jjCheckNAddStates(514, 516); break; @@ -2231,8 +2238,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 95) { - kind = 95; + if (kind > 96) { + kind = 96; } jjCheckNAddStates(517, 520); break; @@ -2240,8 +2247,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 95) { - kind = 95; + if (kind > 96) { + kind = 96; } jjCheckNAddStates(521, 525); break; @@ -2249,8 +2256,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 95) { - kind = 95; + if (kind > 96) { + kind = 96; } jjCheckNAddStates(526, 531); break; @@ -2258,8 +2265,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 95) { - kind = 95; + if (kind > 96) { + kind = 96; } jjCheckNAddStates(532, 535); break; @@ -2267,8 +2274,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 95) { - kind = 95; + if (kind > 96) { + kind = 96; } jjCheckNAddStates(536, 542); break; @@ -2276,8 +2283,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 95) { - kind = 95; + if (kind > 96) { + kind = 96; } jjCheckNAddStates(543, 545); break; @@ -2285,8 +2292,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 95) { - kind = 95; + if (kind > 96) { + kind = 96; } jjCheckNAddStates(546, 549); break; @@ -2294,8 +2301,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 95) { - kind = 95; + if (kind > 96) { + kind = 96; } jjCheckNAddStates(550, 554); break; @@ -2303,8 +2310,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 95) { - kind = 95; + if (kind > 96) { + kind = 96; } jjCheckNAddStates(555, 560); break; @@ -2324,8 +2331,8 @@ public class ParserTokenManager implements ParserConstants { } break; case 351: - if (curChar == 41 && kind > 75) { - kind = 75; + if (curChar == 41 && kind > 76) { + kind = 76; } break; case 353: @@ -2532,8 +2539,8 @@ public class ParserTokenManager implements ParserConstants { if (curChar != 63) { break; } - if (kind > 114) { - kind = 114; + if (kind > 115) { + kind = 115; } jjstateSet[jjnewStateCnt++] = 400; break; @@ -2541,14 +2548,14 @@ public class ParserTokenManager implements ParserConstants { if (curChar != 63) { break; } - if (kind > 114) { - kind = 114; + if (kind > 115) { + kind = 115; } jjCheckNAddStates(705, 708); break; case 401: - if (curChar == 63 && kind > 114) { - kind = 114; + if (curChar == 63 && kind > 115) { + kind = 115; } break; case 402: @@ -2559,8 +2566,8 @@ public class ParserTokenManager implements ParserConstants { if (curChar != 63) { break; } - if (kind > 114) { - kind = 114; + if (kind > 115) { + kind = 115; } jjCheckNAdd(401); break; @@ -2568,8 +2575,8 @@ public class ParserTokenManager implements ParserConstants { if (curChar != 63) { break; } - if (kind > 114) { - kind = 114; + if (kind > 115) { + kind = 115; } jjCheckNAddTwoStates(401, 402); break; @@ -2577,8 +2584,8 @@ public class ParserTokenManager implements ParserConstants { if (curChar != 63) { break; } - if (kind > 114) { - kind = 114; + if (kind > 115) { + kind = 115; } jjCheckNAddStates(709, 711); break; @@ -2586,8 +2593,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 114) { - kind = 114; + if (kind > 115) { + kind = 115; } jjAddStates(712, 717); break; @@ -2607,8 +2614,8 @@ public class ParserTokenManager implements ParserConstants { } break; case 409: - if ((0x3ff000000000000L & l) != 0L && kind > 114) { - kind = 114; + if ((0x3ff000000000000L & l) != 0L && kind > 115) { + kind = 115; } break; case 410: @@ -2630,8 +2637,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 114) { - kind = 114; + if (kind > 115) { + kind = 115; } jjCheckNAdd(401); break; @@ -2649,8 +2656,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 114) { - kind = 114; + if (kind > 115) { + kind = 115; } jjstateSet[jjnewStateCnt++] = 417; break; @@ -2663,8 +2670,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 114) { - kind = 114; + if (kind > 115) { + kind = 115; } jjstateSet[jjnewStateCnt++] = 420; break; @@ -2672,8 +2679,8 @@ public class ParserTokenManager implements ParserConstants { if (curChar != 63) { break; } - if (kind > 114) { - kind = 114; + if (kind > 115) { + kind = 115; } jjCheckNAddTwoStates(401, 421); break; @@ -2681,8 +2688,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 114) { - kind = 114; + if (kind > 115) { + kind = 115; } jjstateSet[jjnewStateCnt++] = 423; break; @@ -2690,8 +2697,8 @@ public class ParserTokenManager implements ParserConstants { if (curChar != 63) { break; } - if (kind > 114) { - kind = 114; + if (kind > 115) { + kind = 115; } jjCheckNAddStates(718, 720); break; @@ -2699,8 +2706,8 @@ public class ParserTokenManager implements ParserConstants { if (curChar != 63) { break; } - if (kind > 114) { - kind = 114; + if (kind > 115) { + kind = 115; } jjCheckNAddTwoStates(401, 424); break; @@ -2708,8 +2715,8 @@ public class ParserTokenManager implements ParserConstants { if (curChar != 63) { break; } - if (kind > 114) { - kind = 114; + if (kind > 115) { + kind = 115; } jjCheckNAddStates(721, 724); break; @@ -2717,8 +2724,8 @@ public class ParserTokenManager implements ParserConstants { if (curChar != 63) { break; } - if (kind > 114) { - kind = 114; + if (kind > 115) { + kind = 115; } jjCheckNAddTwoStates(401, 427); break; @@ -2726,8 +2733,8 @@ public class ParserTokenManager implements ParserConstants { if (curChar != 63) { break; } - if (kind > 114) { - kind = 114; + if (kind > 115) { + kind = 115; } jjCheckNAddStates(725, 727); break; @@ -2750,8 +2757,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 114) { - kind = 114; + if (kind > 115) { + kind = 115; } jjstateSet[jjnewStateCnt++] = 434; break; @@ -2759,8 +2766,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 114) { - kind = 114; + if (kind > 115) { + kind = 115; } jjCheckNAddStates(728, 731); break; @@ -2768,8 +2775,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 114) { - kind = 114; + if (kind > 115) { + kind = 115; } jjCheckNAdd(409); break; @@ -2777,8 +2784,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 114) { - kind = 114; + if (kind > 115) { + kind = 115; } jjCheckNAddTwoStates(409, 435); break; @@ -2786,8 +2793,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 114) { - kind = 114; + if (kind > 115) { + kind = 115; } jjCheckNAddStates(732, 734); break; @@ -2820,8 +2827,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 72) { - kind = 72; + if (kind > 73) { + kind = 73; } jjCheckNAddStates(747, 750); break; @@ -2829,8 +2836,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 72) { - kind = 72; + if (kind > 73) { + kind = 73; } jjCheckNAddStates(751, 757); break; @@ -2838,8 +2845,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 72) { - kind = 72; + if (kind > 73) { + kind = 73; } jjCheckNAddStates(758, 760); break; @@ -2847,8 +2854,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 72) { - kind = 72; + if (kind > 73) { + kind = 73; } jjCheckNAddStates(761, 764); break; @@ -2856,8 +2863,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 72) { - kind = 72; + if (kind > 73) { + kind = 73; } jjCheckNAddStates(765, 769); break; @@ -2865,8 +2872,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 72) { - kind = 72; + if (kind > 73) { + kind = 73; } jjCheckNAddStates(770, 775); break; @@ -2899,8 +2906,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 73) { - kind = 73; + if (kind > 74) { + kind = 74; } jjCheckNAddStates(0, 81); break; @@ -2908,8 +2915,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x3ff000000000000L & l) == 0L) { break; } - if (kind > 73) { - kind = 73; + if (kind > 74) { + kind = 74; } jjCheckNAdd(457); break; @@ -3218,8 +3225,8 @@ public class ParserTokenManager implements ParserConstants { switch (jjstateSet[--i]) { case 520: if ((0x7fffffe87fffffeL & l) != 0L) { - if (kind > 103) { - kind = 103; + if (kind > 104) { + kind = 104; } jjCheckNAddTwoStates(113, 114); } else if (curChar == 92) { @@ -3228,8 +3235,8 @@ public class ParserTokenManager implements ParserConstants { break; case 166: if ((0x7fffffe07fffffeL & l) != 0L) { - if (kind > 103) { - kind = 103; + if (kind > 104) { + kind = 104; } jjCheckNAddTwoStates(113, 114); } else if (curChar == 92) { @@ -3241,8 +3248,8 @@ public class ParserTokenManager implements ParserConstants { break; case 174: if ((0x7fffffe87fffffeL & l) != 0L) { - if (kind > 103) { - kind = 103; + if (kind > 104) { + kind = 104; } jjCheckNAddTwoStates(113, 114); } else if (curChar == 92) { @@ -3254,8 +3261,8 @@ public class ParserTokenManager implements ParserConstants { break; case 4: if ((0x7fffffe07fffffeL & l) != 0L) { - if (kind > 72) { - kind = 72; + if (kind > 73) { + kind = 73; } jjCheckNAddStates(812, 817); } else if (curChar == 92) { @@ -3277,7 +3284,7 @@ public class ParserTokenManager implements ParserConstants { jjAddStates(830, 833); } break; - case 518: + case 517: if ((0x20000000200L & l) != 0L) { jjstateSet[jjnewStateCnt++] = 259; } else if ((0x1000000010L & l) != 0L) { @@ -3286,8 +3293,8 @@ public class ParserTokenManager implements ParserConstants { break; case 178: if ((0x7fffffe07fffffeL & l) != 0L) { - if (kind > 103) { - kind = 103; + if (kind > 104) { + kind = 104; } jjCheckNAddTwoStates(113, 114); } @@ -3302,15 +3309,15 @@ public class ParserTokenManager implements ParserConstants { jjstateSet[jjnewStateCnt++] = 177; } break; - case 517: + case 518: if ((0x7fffffe87fffffeL & l) != 0L) { jjCheckNAddStates(120, 123); } else if (curChar == 92) { jjCheckNAddTwoStates(222, 223); } if ((0x7fffffe87fffffeL & l) != 0L) { - if (kind > 72) { - kind = 72; + if (kind > 73) { + kind = 73; } jjCheckNAddTwoStates(220, 221); } else if (curChar == 92) { @@ -3319,8 +3326,8 @@ public class ParserTokenManager implements ParserConstants { break; case 175: if ((0x7fffffe87fffffeL & l) != 0L) { - if (kind > 103) { - kind = 103; + if (kind > 104) { + kind = 104; } jjCheckNAddTwoStates(113, 114); } else if (curChar == 92) { @@ -3334,8 +3341,8 @@ public class ParserTokenManager implements ParserConstants { jjCheckNAddTwoStates(222, 223); } if ((0x7fffffe87fffffeL & l) != 0L) { - if (kind > 72) { - kind = 72; + if (kind > 73) { + kind = 73; } jjCheckNAddTwoStates(220, 221); } else if (curChar == 92) { @@ -3347,8 +3354,8 @@ public class ParserTokenManager implements ParserConstants { break; case 176: if ((0x7fffffe87fffffeL & l) != 0L) { - if (kind > 103) { - kind = 103; + if (kind > 104) { + kind = 104; } jjCheckNAddTwoStates(113, 114); } else if (curChar == 92) { @@ -3363,8 +3370,8 @@ public class ParserTokenManager implements ParserConstants { jjCheckNAddStates(120, 123); } if ((0x7fffffe07fffffeL & l) != 0L) { - if (kind > 72) { - kind = 72; + if (kind > 73) { + kind = 73; } jjCheckNAddTwoStates(220, 221); } @@ -3374,8 +3381,8 @@ public class ParserTokenManager implements ParserConstants { break; case 177: if ((0x7fffffe87fffffeL & l) != 0L) { - if (kind > 103) { - kind = 103; + if (kind > 104) { + kind = 104; } jjCheckNAddTwoStates(113, 114); } else if (curChar == 92) { @@ -3389,8 +3396,8 @@ public class ParserTokenManager implements ParserConstants { break; case 79: if ((0x7fffffe07fffffeL & l) != 0L) { - if (kind > 76) { - kind = 76; + if (kind > 77) { + kind = 77; } jjCheckNAddTwoStates(81, 82); } else if (curChar == 92) { @@ -3418,8 +3425,8 @@ public class ParserTokenManager implements ParserConstants { } break; case 10: - if (curChar == 125 && kind > 40) { - kind = 40; + if (curChar == 125 && kind > 41) { + kind = 41; } break; case 11: @@ -3498,8 +3505,8 @@ public class ParserTokenManager implements ParserConstants { } break; case 29: - if ((0x4000000040000L & l) != 0L && kind > 68) { - kind = 68; + if ((0x4000000040000L & l) != 0L && kind > 69) { + kind = 69; } break; case 30: @@ -3644,8 +3651,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7fffffe07fffffeL & l) == 0L) { break; } - if (kind > 76) { - kind = 76; + if (kind > 77) { + kind = 77; } jjCheckNAddTwoStates(81, 82); break; @@ -3653,8 +3660,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7fffffe87fffffeL & l) == 0L) { break; } - if (kind > 76) { - kind = 76; + if (kind > 77) { + kind = 77; } jjCheckNAddTwoStates(81, 82); break; @@ -3667,8 +3674,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7fffffffffffffffL & l) == 0L) { break; } - if (kind > 76) { - kind = 76; + if (kind > 77) { + kind = 77; } jjCheckNAddTwoStates(81, 82); break; @@ -3676,8 +3683,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 76) { - kind = 76; + if (kind > 77) { + kind = 77; } jjCheckNAddStates(288, 291); break; @@ -3685,8 +3692,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 76) { - kind = 76; + if (kind > 77) { + kind = 77; } jjCheckNAddStates(292, 298); break; @@ -3694,8 +3701,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 76) { - kind = 76; + if (kind > 77) { + kind = 77; } jjCheckNAddStates(299, 301); break; @@ -3703,8 +3710,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 76) { - kind = 76; + if (kind > 77) { + kind = 77; } jjCheckNAddStates(302, 305); break; @@ -3712,8 +3719,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 76) { - kind = 76; + if (kind > 77) { + kind = 77; } jjCheckNAddStates(306, 310); break; @@ -3721,8 +3728,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 76) { - kind = 76; + if (kind > 77) { + kind = 77; } jjCheckNAddStates(311, 316); break; @@ -3735,8 +3742,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 76) { - kind = 76; + if (kind > 77) { + kind = 77; } jjCheckNAddStates(317, 320); break; @@ -3744,8 +3751,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 76) { - kind = 76; + if (kind > 77) { + kind = 77; } jjCheckNAddStates(321, 327); break; @@ -3753,8 +3760,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 76) { - kind = 76; + if (kind > 77) { + kind = 77; } jjCheckNAddStates(328, 330); break; @@ -3762,8 +3769,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 76) { - kind = 76; + if (kind > 77) { + kind = 77; } jjCheckNAddStates(331, 334); break; @@ -3771,8 +3778,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 76) { - kind = 76; + if (kind > 77) { + kind = 77; } jjCheckNAddStates(335, 339); break; @@ -3780,8 +3787,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 76) { - kind = 76; + if (kind > 77) { + kind = 77; } jjCheckNAddStates(340, 345); break; @@ -3789,8 +3796,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7fffffe87fffffeL & l) == 0L) { break; } - if (kind > 96) { - kind = 96; + if (kind > 97) { + kind = 97; } jjCheckNAddTwoStates(100, 101); break; @@ -3803,8 +3810,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7fffffffffffffffL & l) == 0L) { break; } - if (kind > 96) { - kind = 96; + if (kind > 97) { + kind = 97; } jjCheckNAddTwoStates(100, 101); break; @@ -3812,8 +3819,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 96) { - kind = 96; + if (kind > 97) { + kind = 97; } jjCheckNAddStates(346, 349); break; @@ -3821,8 +3828,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 96) { - kind = 96; + if (kind > 97) { + kind = 97; } jjCheckNAddStates(350, 356); break; @@ -3830,8 +3837,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 96) { - kind = 96; + if (kind > 97) { + kind = 97; } jjCheckNAddStates(357, 359); break; @@ -3839,8 +3846,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 96) { - kind = 96; + if (kind > 97) { + kind = 97; } jjCheckNAddStates(360, 363); break; @@ -3848,8 +3855,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 96) { - kind = 96; + if (kind > 97) { + kind = 97; } jjCheckNAddStates(364, 368); break; @@ -3857,8 +3864,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 96) { - kind = 96; + if (kind > 97) { + kind = 97; } jjCheckNAddStates(369, 374); break; @@ -3871,8 +3878,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7fffffe07fffffeL & l) == 0L) { break; } - if (kind > 103) { - kind = 103; + if (kind > 104) { + kind = 104; } jjCheckNAddTwoStates(113, 114); break; @@ -3880,8 +3887,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7fffffe87fffffeL & l) == 0L) { break; } - if (kind > 103) { - kind = 103; + if (kind > 104) { + kind = 104; } jjCheckNAddTwoStates(113, 114); break; @@ -3894,8 +3901,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7fffffffffffffffL & l) == 0L) { break; } - if (kind > 103) { - kind = 103; + if (kind > 104) { + kind = 104; } jjCheckNAddTwoStates(113, 114); break; @@ -3903,8 +3910,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 103) { - kind = 103; + if (kind > 104) { + kind = 104; } jjCheckNAddStates(375, 378); break; @@ -3912,8 +3919,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 103) { - kind = 103; + if (kind > 104) { + kind = 104; } jjCheckNAddStates(379, 385); break; @@ -3921,8 +3928,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 103) { - kind = 103; + if (kind > 104) { + kind = 104; } jjCheckNAddStates(386, 388); break; @@ -3930,8 +3937,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 103) { - kind = 103; + if (kind > 104) { + kind = 104; } jjCheckNAddStates(389, 392); break; @@ -3939,8 +3946,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 103) { - kind = 103; + if (kind > 104) { + kind = 104; } jjCheckNAddStates(393, 397); break; @@ -3948,8 +3955,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 103) { - kind = 103; + if (kind > 104) { + kind = 104; } jjCheckNAddStates(398, 403); break; @@ -3962,8 +3969,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 103) { - kind = 103; + if (kind > 104) { + kind = 104; } jjCheckNAddStates(404, 407); break; @@ -3971,8 +3978,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 103) { - kind = 103; + if (kind > 104) { + kind = 104; } jjCheckNAddStates(408, 414); break; @@ -3980,8 +3987,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 103) { - kind = 103; + if (kind > 104) { + kind = 104; } jjCheckNAddStates(415, 417); break; @@ -3989,8 +3996,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 103) { - kind = 103; + if (kind > 104) { + kind = 104; } jjCheckNAddStates(418, 421); break; @@ -3998,8 +4005,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 103) { - kind = 103; + if (kind > 104) { + kind = 104; } jjCheckNAddStates(422, 426); break; @@ -4007,8 +4014,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 103) { - kind = 103; + if (kind > 104) { + kind = 104; } jjCheckNAddStates(427, 432); break; @@ -4118,8 +4125,8 @@ public class ParserTokenManager implements ParserConstants { } break; case 158: - if ((0x8000000080000L & l) != 0L && kind > 102) { - kind = 102; + if ((0x8000000080000L & l) != 0L && kind > 103) { + kind = 103; } break; case 159: @@ -4345,8 +4352,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7fffffe87fffffeL & l) == 0L) { break; } - if (kind > 72) { - kind = 72; + if (kind > 73) { + kind = 73; } jjCheckNAddTwoStates(220, 221); break; @@ -4359,8 +4366,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7fffffffffffffffL & l) == 0L) { break; } - if (kind > 72) { - kind = 72; + if (kind > 73) { + kind = 73; } jjCheckNAddTwoStates(220, 221); break; @@ -4368,8 +4375,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 72) { - kind = 72; + if (kind > 73) { + kind = 73; } jjCheckNAddStates(439, 442); break; @@ -4377,8 +4384,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 72) { - kind = 72; + if (kind > 73) { + kind = 73; } jjCheckNAddStates(443, 449); break; @@ -4386,8 +4393,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 72) { - kind = 72; + if (kind > 73) { + kind = 73; } jjCheckNAddStates(450, 452); break; @@ -4395,8 +4402,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 72) { - kind = 72; + if (kind > 73) { + kind = 73; } jjCheckNAddStates(453, 456); break; @@ -4404,8 +4411,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 72) { - kind = 72; + if (kind > 73) { + kind = 73; } jjCheckNAddStates(457, 461); break; @@ -4413,8 +4420,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 72) { - kind = 72; + if (kind > 73) { + kind = 73; } jjCheckNAddStates(462, 467); break; @@ -4465,8 +4472,8 @@ public class ParserTokenManager implements ParserConstants { } break; case 244: - if ((0x10000000100000L & l) != 0L && kind > 70) { - kind = 70; + if ((0x10000000100000L & l) != 0L && kind > 71) { + kind = 71; } break; case 245: @@ -4500,8 +4507,8 @@ public class ParserTokenManager implements ParserConstants { } break; case 252: - if ((0x10000000100000L & l) != 0L && kind > 104) { - kind = 104; + if ((0x10000000100000L & l) != 0L && kind > 105) { + kind = 105; } break; case 253: @@ -4548,8 +4555,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7fffffe07fffffeL & l) == 0L) { break; } - if (kind > 72) { - kind = 72; + if (kind > 73) { + kind = 73; } jjCheckNAddTwoStates(220, 221); break; @@ -4562,14 +4569,14 @@ public class ParserTokenManager implements ParserConstants { if ((0x7fffffe07fffffeL & l) == 0L) { break; } - if (kind > 72) { - kind = 72; + if (kind > 73) { + kind = 73; } jjCheckNAddStates(812, 817); break; case 270: - if ((0x10000000100000L & l) != 0L && kind > 78) { - kind = 78; + if ((0x10000000100000L & l) != 0L && kind > 79) { + kind = 79; } break; case 271: @@ -4578,8 +4585,8 @@ public class ParserTokenManager implements ParserConstants { } break; case 273: - if ((0x200000002000L & l) != 0L && kind > 79) { - kind = 79; + if ((0x200000002000L & l) != 0L && kind > 80) { + kind = 80; } break; case 274: @@ -4588,8 +4595,8 @@ public class ParserTokenManager implements ParserConstants { } break; case 276: - if ((0x200000002000L & l) != 0L && kind > 80) { - kind = 80; + if ((0x200000002000L & l) != 0L && kind > 81) { + kind = 81; } break; case 277: @@ -4598,8 +4605,8 @@ public class ParserTokenManager implements ParserConstants { } break; case 279: - if ((0x800000008L & l) != 0L && kind > 81) { - kind = 81; + if ((0x800000008L & l) != 0L && kind > 82) { + kind = 82; } break; case 280: @@ -4608,8 +4615,8 @@ public class ParserTokenManager implements ParserConstants { } break; case 282: - if ((0x400000004000L & l) != 0L && kind > 82) { - kind = 82; + if ((0x400000004000L & l) != 0L && kind > 83) { + kind = 83; } break; case 283: @@ -4618,8 +4625,8 @@ public class ParserTokenManager implements ParserConstants { } break; case 285: - if ((0x100000001000000L & l) != 0L && kind > 83) { - kind = 83; + if ((0x100000001000000L & l) != 0L && kind > 84) { + kind = 84; } break; case 286: @@ -4628,8 +4635,8 @@ public class ParserTokenManager implements ParserConstants { } break; case 288: - if ((0x200000002000L & l) != 0L && kind > 84) { - kind = 84; + if ((0x200000002000L & l) != 0L && kind > 85) { + kind = 85; } break; case 289: @@ -4638,8 +4645,8 @@ public class ParserTokenManager implements ParserConstants { } break; case 291: - if ((0x200000002000L & l) != 0L && kind > 85) { - kind = 85; + if ((0x200000002000L & l) != 0L && kind > 86) { + kind = 86; } break; case 292: @@ -4653,8 +4660,8 @@ public class ParserTokenManager implements ParserConstants { } break; case 295: - if ((0x200000002000L & l) != 0L && kind > 86) { - kind = 86; + if ((0x200000002000L & l) != 0L && kind > 87) { + kind = 87; } break; case 296: @@ -4668,8 +4675,8 @@ public class ParserTokenManager implements ParserConstants { } break; case 299: - if ((0x100000001000000L & l) != 0L && kind > 87) { - kind = 87; + if ((0x100000001000000L & l) != 0L && kind > 88) { + kind = 88; } break; case 300: @@ -4678,8 +4685,8 @@ public class ParserTokenManager implements ParserConstants { } break; case 302: - if ((0x8000000080L & l) != 0L && kind > 88) { - kind = 88; + if ((0x8000000080L & l) != 0L && kind > 89) { + kind = 89; } break; case 303: @@ -4693,8 +4700,8 @@ public class ParserTokenManager implements ParserConstants { } break; case 306: - if ((0x1000000010L & l) != 0L && kind > 89) { - kind = 89; + if ((0x1000000010L & l) != 0L && kind > 90) { + kind = 90; } break; case 307: @@ -4708,8 +4715,8 @@ public class ParserTokenManager implements ParserConstants { } break; case 310: - if ((0x1000000010L & l) != 0L && kind > 90) { - kind = 90; + if ((0x1000000010L & l) != 0L && kind > 91) { + kind = 91; } break; case 311: @@ -4728,8 +4735,8 @@ public class ParserTokenManager implements ParserConstants { } break; case 315: - if ((0x8000000080000L & l) != 0L && kind > 91) { - kind = 91; + if ((0x8000000080000L & l) != 0L && kind > 92) { + kind = 92; } break; case 316: @@ -4738,13 +4745,13 @@ public class ParserTokenManager implements ParserConstants { } break; case 318: - if ((0x8000000080000L & l) != 0L && kind > 92) { - kind = 92; + if ((0x8000000080000L & l) != 0L && kind > 93) { + kind = 93; } break; case 320: - if ((0x400000004000000L & l) != 0L && kind > 93) { - kind = 93; + if ((0x400000004000000L & l) != 0L && kind > 94) { + kind = 94; } break; case 321: @@ -4753,8 +4760,8 @@ public class ParserTokenManager implements ParserConstants { } break; case 323: - if ((0x400000004000000L & l) != 0L && kind > 94) { - kind = 94; + if ((0x400000004000000L & l) != 0L && kind > 95) { + kind = 95; } break; case 324: @@ -4771,8 +4778,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7fffffe07fffffeL & l) == 0L) { break; } - if (kind > 95) { - kind = 95; + if (kind > 96) { + kind = 96; } jjCheckNAddTwoStates(329, 330); break; @@ -4780,8 +4787,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7fffffe87fffffeL & l) == 0L) { break; } - if (kind > 95) { - kind = 95; + if (kind > 96) { + kind = 96; } jjCheckNAddTwoStates(329, 330); break; @@ -4794,8 +4801,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7fffffffffffffffL & l) == 0L) { break; } - if (kind > 95) { - kind = 95; + if (kind > 96) { + kind = 96; } jjCheckNAddTwoStates(329, 330); break; @@ -4803,8 +4810,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 95) { - kind = 95; + if (kind > 96) { + kind = 96; } jjCheckNAddStates(503, 506); break; @@ -4812,8 +4819,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 95) { - kind = 95; + if (kind > 96) { + kind = 96; } jjCheckNAddStates(507, 513); break; @@ -4821,8 +4828,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 95) { - kind = 95; + if (kind > 96) { + kind = 96; } jjCheckNAddStates(514, 516); break; @@ -4830,8 +4837,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 95) { - kind = 95; + if (kind > 96) { + kind = 96; } jjCheckNAddStates(517, 520); break; @@ -4839,8 +4846,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 95) { - kind = 95; + if (kind > 96) { + kind = 96; } jjCheckNAddStates(521, 525); break; @@ -4848,8 +4855,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 95) { - kind = 95; + if (kind > 96) { + kind = 96; } jjCheckNAddStates(526, 531); break; @@ -4862,8 +4869,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 95) { - kind = 95; + if (kind > 96) { + kind = 96; } jjCheckNAddStates(532, 535); break; @@ -4871,8 +4878,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 95) { - kind = 95; + if (kind > 96) { + kind = 96; } jjCheckNAddStates(536, 542); break; @@ -4880,8 +4887,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 95) { - kind = 95; + if (kind > 96) { + kind = 96; } jjCheckNAddStates(543, 545); break; @@ -4889,8 +4896,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 95) { - kind = 95; + if (kind > 96) { + kind = 96; } jjCheckNAddStates(546, 549); break; @@ -4898,8 +4905,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 95) { - kind = 95; + if (kind > 96) { + kind = 96; } jjCheckNAddStates(550, 554); break; @@ -4907,8 +4914,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 95) { - kind = 95; + if (kind > 96) { + kind = 96; } jjCheckNAddStates(555, 560); break; @@ -5064,8 +5071,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 114) { - kind = 114; + if (kind > 115) { + kind = 115; } jjAddStates(712, 717); break; @@ -5085,8 +5092,8 @@ public class ParserTokenManager implements ParserConstants { } break; case 409: - if ((0x7e0000007eL & l) != 0L && kind > 114) { - kind = 114; + if ((0x7e0000007eL & l) != 0L && kind > 115) { + kind = 115; } break; case 410: @@ -5108,8 +5115,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 114) { - kind = 114; + if (kind > 115) { + kind = 115; } jjstateSet[jjnewStateCnt++] = 401; break; @@ -5127,8 +5134,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 114) { - kind = 114; + if (kind > 115) { + kind = 115; } jjstateSet[jjnewStateCnt++] = 417; break; @@ -5141,8 +5148,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 114) { - kind = 114; + if (kind > 115) { + kind = 115; } jjstateSet[jjnewStateCnt++] = 420; break; @@ -5150,8 +5157,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 114) { - kind = 114; + if (kind > 115) { + kind = 115; } jjstateSet[jjnewStateCnt++] = 423; break; @@ -5164,8 +5171,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 114) { - kind = 114; + if (kind > 115) { + kind = 115; } jjstateSet[jjnewStateCnt++] = 434; break; @@ -5173,8 +5180,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 114) { - kind = 114; + if (kind > 115) { + kind = 115; } jjCheckNAddStates(728, 731); break; @@ -5182,8 +5189,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 114) { - kind = 114; + if (kind > 115) { + kind = 115; } jjCheckNAdd(409); break; @@ -5191,8 +5198,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 114) { - kind = 114; + if (kind > 115) { + kind = 115; } jjCheckNAddTwoStates(409, 435); break; @@ -5200,8 +5207,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 114) { - kind = 114; + if (kind > 115) { + kind = 115; } jjCheckNAddStates(732, 734); break; @@ -5239,8 +5246,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 72) { - kind = 72; + if (kind > 73) { + kind = 73; } jjCheckNAddStates(747, 750); break; @@ -5248,8 +5255,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 72) { - kind = 72; + if (kind > 73) { + kind = 73; } jjCheckNAddStates(751, 757); break; @@ -5257,8 +5264,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 72) { - kind = 72; + if (kind > 73) { + kind = 73; } jjCheckNAddStates(758, 760); break; @@ -5266,8 +5273,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 72) { - kind = 72; + if (kind > 73) { + kind = 73; } jjCheckNAddStates(761, 764); break; @@ -5275,8 +5282,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 72) { - kind = 72; + if (kind > 73) { + kind = 73; } jjCheckNAddStates(765, 769); break; @@ -5284,8 +5291,8 @@ public class ParserTokenManager implements ParserConstants { if ((0x7e0000007eL & l) == 0L) { break; } - if (kind > 72) { - kind = 72; + if (kind > 73) { + kind = 73; } jjCheckNAddStates(770, 775); break; @@ -5329,8 +5336,8 @@ public class ParserTokenManager implements ParserConstants { if ((jjbitVec0[i2] & l2) == 0L) { break; } - if (kind > 103) { - kind = 103; + if (kind > 104) { + kind = 104; } jjCheckNAddTwoStates(113, 114); break; @@ -5338,8 +5345,8 @@ public class ParserTokenManager implements ParserConstants { if ((jjbitVec0[i2] & l2) == 0L) { break; } - if (kind > 103) { - kind = 103; + if (kind > 104) { + kind = 104; } jjCheckNAddTwoStates(113, 114); break; @@ -5347,8 +5354,8 @@ public class ParserTokenManager implements ParserConstants { if ((jjbitVec0[i2] & l2) == 0L) { break; } - if (kind > 103) { - kind = 103; + if (kind > 104) { + kind = 104; } jjCheckNAddTwoStates(113, 114); break; @@ -5356,15 +5363,15 @@ public class ParserTokenManager implements ParserConstants { if ((jjbitVec0[i2] & l2) == 0L) { break; } - if (kind > 41) { - kind = 41; + if (kind > 42) { + kind = 42; } jjCheckNAddStates(812, 817); break; - case 517: + case 518: if ((jjbitVec0[i2] & l2) != 0L) { - if (kind > 72) { - kind = 72; + if (kind > 73) { + kind = 73; } jjCheckNAddTwoStates(220, 221); } @@ -5376,15 +5383,15 @@ public class ParserTokenManager implements ParserConstants { if ((jjbitVec0[i2] & l2) == 0L) { break; } - if (kind > 103) { - kind = 103; + if (kind > 104) { + kind = 104; } jjCheckNAddTwoStates(113, 114); break; case 33: if ((jjbitVec0[i2] & l2) != 0L) { - if (kind > 72) { - kind = 72; + if (kind > 73) { + kind = 73; } jjCheckNAddTwoStates(220, 221); } @@ -5396,8 +5403,8 @@ public class ParserTokenManager implements ParserConstants { if ((jjbitVec0[i2] & l2) == 0L) { break; } - if (kind > 103) { - kind = 103; + if (kind > 104) { + kind = 104; } jjCheckNAddTwoStates(113, 114); break; @@ -5405,8 +5412,8 @@ public class ParserTokenManager implements ParserConstants { if ((jjbitVec0[i2] & l2) == 0L) { break; } - if (kind > 103) { - kind = 103; + if (kind > 104) { + kind = 104; } jjCheckNAddTwoStates(113, 114); break; @@ -5416,8 +5423,8 @@ public class ParserTokenManager implements ParserConstants { if ((jjbitVec0[i2] & l2) == 0L) { break; } - if (kind > 76) { - kind = 76; + if (kind > 77) { + kind = 77; } jjCheckNAddTwoStates(81, 82); break; @@ -5450,8 +5457,8 @@ public class ParserTokenManager implements ParserConstants { if ((jjbitVec0[i2] & l2) == 0L) { break; } - if (kind > 96) { - kind = 96; + if (kind > 97) { + kind = 97; } jjCheckNAddTwoStates(100, 101); break; @@ -5460,8 +5467,8 @@ public class ParserTokenManager implements ParserConstants { if ((jjbitVec0[i2] & l2) == 0L) { break; } - if (kind > 72) { - kind = 72; + if (kind > 73) { + kind = 73; } jjCheckNAddTwoStates(220, 221); break; @@ -5477,8 +5484,8 @@ public class ParserTokenManager implements ParserConstants { if ((jjbitVec0[i2] & l2) == 0L) { break; } - if (kind > 95) { - kind = 95; + if (kind > 96) { + kind = 96; } jjCheckNAddTwoStates(329, 330); break; @@ -5739,15 +5746,15 @@ public class ParserTokenManager implements ParserConstants { null, null, null, null, null, null, "\74\41\55\55", "\55\55\76", "\173", "\175", "\174\75", "\136\75", "\44\75", "\52\75", "\176\75", "\75", "\53", "\55", "\54", "\73", "\76", "\176", "\74", - "\57", "\133", "\135", "\52", "\46", "\56", "\50", "\51", "\75\75", - "\174\174", "\46\46", "\41\75", "\72", null, null, null, null, + "\57", "\133", "\135", "\52", "\45", "\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, null, null, null, null, null, }; /** Lexer state names. */ public static final String[] lexStateNames = { "DEFAULT", @@ -5762,8 +5769,8 @@ public class ParserTokenManager implements ParserConstants { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, }; - static final long[] jjtoToken = { 0xfffc03fffffffc03L, 0xfc01fffffffbffL, }; + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }; + static final long[] jjtoToken = { 0xfff807fffffffc03L, 0x1f803fffffff7ffL, }; static final long[] jjtoSkip = { 0x190L, 0x0L, }; static final long[] jjtoSpecial = { 0x80L, 0x0L, }; static final long[] jjtoMore = { 0x26cL, 0x0L, }; @@ -5875,8 +5882,8 @@ public class ParserTokenManager implements ParserConstants { jjmatchedKind = 0x7fffffff; jjmatchedPos = 0; curPos = jjMoveStringLiteralDfa0_0(); - if (jjmatchedPos == 0 && jjmatchedKind > 119) { - jjmatchedKind = 119; + if (jjmatchedPos == 0 && jjmatchedKind > 120) { + jjmatchedKind = 120; } break; case 1: diff --git a/theme-compiler/src/com/vaadin/sass/internal/parser/SCSSLexicalUnit.java b/theme-compiler/src/com/vaadin/sass/internal/parser/SCSSLexicalUnit.java index 935e4e5abd..709d1d3576 100644 --- a/theme-compiler/src/com/vaadin/sass/internal/parser/SCSSLexicalUnit.java +++ b/theme-compiler/src/com/vaadin/sass/internal/parser/SCSSLexicalUnit.java @@ -19,6 +19,8 @@ import org.w3c.css.sac.LexicalUnit; public interface SCSSLexicalUnit extends LexicalUnit { static final short SCSS_VARIABLE = 100; + static final short SCSS_OPERATOR_LEFT_PAREN = 101; + static final short SCSS_OPERATOR_RIGHT_PAREN = 102; static final short SAC_LEM = 200; static final short SAC_REM = 201; @@ -31,4 +33,6 @@ public interface SCSSLexicalUnit extends LexicalUnit { LexicalUnitImpl multiply(LexicalUnitImpl another); + LexicalUnitImpl modulo(LexicalUnitImpl another); + } diff --git a/theme-compiler/src/com/vaadin/sass/internal/tree/RuleNode.java b/theme-compiler/src/com/vaadin/sass/internal/tree/RuleNode.java index a78d9d66d2..19880e4ce5 100644 --- a/theme-compiler/src/com/vaadin/sass/internal/tree/RuleNode.java +++ b/theme-compiler/src/com/vaadin/sass/internal/tree/RuleNode.java @@ -20,6 +20,7 @@ import java.util.ArrayList; import java.util.regex.Pattern; import com.vaadin.sass.internal.ScssStylesheet; +import com.vaadin.sass.internal.expression.ArithmeticExpressionEvaluator; import com.vaadin.sass.internal.parser.LexicalUnitImpl; import com.vaadin.sass.internal.util.StringUtil; @@ -140,6 +141,20 @@ public class RuleNode extends Node implements IVariableNode { @Override public void traverse() { - replaceVariables(ScssStylesheet.getVariables()); + /* + * "replaceVariables(ScssStylesheet.getVariables());" seems duplicated + * and can be extracted out of if, but it is not. + * containsArithmeticalOperator must be called before replaceVariables. + * Because for the "/" operator, it needs to see if its predecessor or + * successor is a Variable or not, to determine it is an arithmetic + * operator. + */ + if (ArithmeticExpressionEvaluator.get().containsArithmeticalOperator( + value)) { + replaceVariables(ScssStylesheet.getVariables()); + value = ArithmeticExpressionEvaluator.get().evaluate(value); + } else { + replaceVariables(ScssStylesheet.getVariables()); + } } } diff --git a/theme-compiler/src/com/vaadin/sass/internal/tree/VariableNode.java b/theme-compiler/src/com/vaadin/sass/internal/tree/VariableNode.java index 90be727f88..f2499d72ab 100644 --- a/theme-compiler/src/com/vaadin/sass/internal/tree/VariableNode.java +++ b/theme-compiler/src/com/vaadin/sass/internal/tree/VariableNode.java @@ -19,6 +19,7 @@ package com.vaadin.sass.internal.tree; import java.util.ArrayList; import com.vaadin.sass.internal.ScssStylesheet; +import com.vaadin.sass.internal.expression.ArithmeticExpressionEvaluator; import com.vaadin.sass.internal.parser.LexicalUnitImpl; import com.vaadin.sass.internal.util.StringUtil; import com.vaadin.sass.internal.visitor.VariableNodeHandler; @@ -101,7 +102,21 @@ public class VariableNode extends Node implements IVariableNode { @Override public void traverse() { - replaceVariables(ScssStylesheet.getVariables()); + /* + * "replaceVariables(ScssStylesheet.getVariables());" seems duplicated + * and can be extracted out of if, but it is not. + * containsArithmeticalOperator must be called before replaceVariables. + * Because for the "/" operator, it needs to see if its predecessor or + * successor is a Variable or not, to determine it is an arithmetic + * operator. + */ + if (ArithmeticExpressionEvaluator.get().containsArithmeticalOperator( + expr)) { + replaceVariables(ScssStylesheet.getVariables()); + expr = ArithmeticExpressionEvaluator.get().evaluate(expr); + } else { + replaceVariables(ScssStylesheet.getVariables()); + } VariableNodeHandler.traverse(this); } } diff --git a/theme-compiler/tests/resources/automatic/css/basic_arithmetics.css b/theme-compiler/tests/resources/automatic/css/basic_arithmetics.css new file mode 100644 index 0000000000..9fd33f2efe --- /dev/null +++ b/theme-compiler/tests/resources/automatic/css/basic_arithmetics.css @@ -0,0 +1,31 @@ +.foo { + font: 10px / 8px; + font: 5px; + margin-left: 9px; +} + +.foo { + size: 1; +} + +.foo { + bar: 8; + bar: 8; + bar: 12; +} + +.foo { + bar: 2 3; + bar: 5; + bar: 5; +} + +.foo { + bar: 2 -3; + bar: -1; + bar: -1; +} + +.foo { + bar: 14; +}
\ No newline at end of file diff --git a/theme-compiler/tests/resources/automatic/scss/basic_arithmetics.scss b/theme-compiler/tests/resources/automatic/scss/basic_arithmetics.scss new file mode 100644 index 0000000000..cc913fe048 --- /dev/null +++ b/theme-compiler/tests/resources/automatic/scss/basic_arithmetics.scss @@ -0,0 +1,44 @@ +/* +*supports: +* 1. standard arithmetic operations (+, -, *, /, %) +* 2. / is treated as css operator, unless one of its operands is variable or there is another binary arithmetic operator +*limits: +* 1. cannot mix arithmetic and css operations, e.g. "margin: 1px + 3px 2px" will fail +* 2. space between add and minus operator and their following operand is mandatory. e.g. "1 + 2" is valid, "1+2" is not +* 3. parenthesis is not supported now. +*/ + +$div: 10px; +.foo { + font: 10px/8px; // Plain CSS, no division + font: $div/2; // Uses a variable, does division + margin-left: 5px + 8px/2px; //Uses +, does division +} + +.foo{ + size: 5 % 2; // modular +} + +$mul: 2*4; //valid multiply in variable +$mul1: 2 * 4; //valid multiply in variable +.foo{ + bar: $mul; + bar: $mul1; + bar: 3*4; //valid multiply in declaration +} + +.foo { + bar: 2 +3; //'+' is regarded as an unary operator, because no space between '+' and '3' + bar: 2+ 3; //valid add expression + bar: 2 + 3; //beautiful valid add expression +} + +.foo { + bar: 2 -3; //'-' is regarded as an unary operator, because no space between '-' and '3' + bar: 2 - 3; //beautiful valid minus expression + bar: 2- 3; //valid minus expression +} + +.foo { + bar: 2 + 3 * 4; // combinations +}
\ No newline at end of file diff --git a/theme-compiler/tests/src/com/vaadin/sass/internal/expression/ArithmeticExpressionEvaluatorTest.java b/theme-compiler/tests/src/com/vaadin/sass/internal/expression/ArithmeticExpressionEvaluatorTest.java new file mode 100644 index 0000000000..8978eb812e --- /dev/null +++ b/theme-compiler/tests/src/com/vaadin/sass/internal/expression/ArithmeticExpressionEvaluatorTest.java @@ -0,0 +1,125 @@ +/* + * Copyright 2000-2013 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.vaadin.sass.internal.expression; + +import org.junit.Assert; +import org.junit.Test; +import org.w3c.css.sac.LexicalUnit; + +import com.vaadin.sass.internal.expression.exception.IncompatibleUnitsException; +import com.vaadin.sass.internal.parser.LexicalUnitImpl; + +public class ArithmeticExpressionEvaluatorTest { + private ArithmeticExpressionEvaluator evaluator = new ArithmeticExpressionEvaluator(); + + @Test + public void testPrecedenceSameAsAppearOrder() { + // 2 * 3 - 4 = 2 + LexicalUnitImpl operand2 = LexicalUnitImpl.createInteger(0, 0, null, 2); + LexicalUnitImpl operatorMultiply = LexicalUnitImpl.createMultiply(0, 0, + operand2); + LexicalUnitImpl operand3 = LexicalUnitImpl.createInteger(0, 0, + operatorMultiply, 3); + LexicalUnitImpl operatorMinus = LexicalUnitImpl.createMinus(0, 0, + operand3); + LexicalUnitImpl operand4 = LexicalUnitImpl.createInteger(0, 0, + operatorMinus, 4); + LexicalUnitImpl result = evaluator.evaluate(operand2); + Assert.assertEquals(2, result.getIntegerValue()); + } + + @Test + public void testPrecedenceDifferFromAppearOrder() { + // 2 - 3 * 4 = -10 + LexicalUnitImpl operand2 = LexicalUnitImpl.createInteger(0, 0, null, 2); + LexicalUnitImpl operatorMinus = LexicalUnitImpl.createMinus(0, 0, + operand2); + LexicalUnitImpl operand3 = LexicalUnitImpl.createInteger(0, 0, + operatorMinus, 3); + LexicalUnitImpl operatorMultiply = LexicalUnitImpl.createMultiply(0, 0, + operand3); + LexicalUnitImpl operand4 = LexicalUnitImpl.createInteger(0, 0, + operatorMultiply, 4); + LexicalUnitImpl result = evaluator.evaluate(operand2); + Assert.assertEquals(-10, result.getIntegerValue()); + } + + @Test(expected = IncompatibleUnitsException.class) + public void testIncompatibleUnit() { + // 2cm - 3px + LexicalUnitImpl operand2 = LexicalUnitImpl.createCM(0, 0, null, 2); + LexicalUnitImpl operatorMinus = LexicalUnitImpl.createMinus(0, 0, + operand2); + LexicalUnitImpl operand3 = LexicalUnitImpl.createPX(0, 0, + operatorMinus, 3); + evaluator.evaluate(operand2); + } + + @Test + public void testMultiplyWithUnitInfirstOperand() { + // 2cm * 3 = 6cm + LexicalUnitImpl operand2cm = LexicalUnitImpl.createCM(0, 0, null, 2); + LexicalUnitImpl operatorMultiply = LexicalUnitImpl.createMultiply(0, 0, + operand2cm); + LexicalUnitImpl operand3 = LexicalUnitImpl.createInteger(0, 0, + operatorMultiply, 3); + LexicalUnitImpl result = evaluator.evaluate(operand2cm); + Assert.assertEquals(6, result.getIntegerValue()); + Assert.assertEquals(LexicalUnit.SAC_CENTIMETER, + result.getLexicalUnitType()); + } + + @Test + public void testMultiplyWithUnitInSecondOperand() { + // 2 * 3cm = 6cm + LexicalUnitImpl operand2 = LexicalUnitImpl.createInteger(0, 0, null, 2); + LexicalUnitImpl operatorMultiply = LexicalUnitImpl.createMultiply(0, 0, + operand2); + LexicalUnitImpl operand3cm = LexicalUnitImpl.createCM(0, 0, + operatorMultiply, 3); + LexicalUnitImpl result = evaluator.evaluate(operand2); + Assert.assertEquals(6, result.getIntegerValue()); + Assert.assertEquals(LexicalUnit.SAC_CENTIMETER, + result.getLexicalUnitType()); + } + + @Test + public void testDivideWithSameUnit() { + // 4cm / 2cm = 2 + LexicalUnitImpl operand4cm = LexicalUnitImpl.createCM(0, 0, null, 4); + LexicalUnitImpl operatorDivide = LexicalUnitImpl.createSlash(0, 0, + operand4cm); + LexicalUnitImpl operand2cm = LexicalUnitImpl.createCM(0, 0, + operatorDivide, 2); + LexicalUnitImpl result = evaluator.evaluate(operand4cm); + Assert.assertEquals(2, result.getIntegerValue()); + Assert.assertEquals(LexicalUnit.SAC_REAL, result.getLexicalUnitType()); + } + + @Test + public void testDivideDenominatorWithoutUnit() { + // 4cm / 2 = 2cm + LexicalUnitImpl operand4cm = LexicalUnitImpl.createCM(0, 0, null, 4); + LexicalUnitImpl operatorDivide = LexicalUnitImpl.createSlash(0, 0, + operand4cm); + LexicalUnitImpl operand2 = LexicalUnitImpl.createInteger(0, 0, + operatorDivide, 2); + LexicalUnitImpl result = evaluator.evaluate(operand4cm); + Assert.assertEquals(2, result.getIntegerValue()); + Assert.assertEquals(LexicalUnit.SAC_CENTIMETER, + result.getLexicalUnitType()); + } +} |