summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHaijian Wang <haijian@vaadin.com>2013-02-27 15:38:55 +0200
committerVaadin Code Review <review@vaadin.com>2013-02-27 13:53:22 +0000
commit934b8ceb3f8ddcc6acc3ffb4a35b67e3e989ec38 (patch)
tree1a5f25c3afb03e2fee285f8d7a3b75c33427ea16
parentc5af559686ab3984d43c59a8d6289b99229961e1 (diff)
downloadvaadin-framework-934b8ceb3f8ddcc6acc3ffb4a35b67e3e989ec38.tar.gz
vaadin-framework-934b8ceb3f8ddcc6acc3ffb4a35b67e3e989ec38.zip
support arithmetics in the SCSS compiler (#9354)
Change-Id: Ieb7834fb12cdba5c0794a26de20b3c8c2d509642
-rw-r--r--theme-compiler/src/com/vaadin/sass/internal/expression/ArithmeticExpressionEvaluator.java139
-rw-r--r--theme-compiler/src/com/vaadin/sass/internal/expression/BinaryExpression.java46
-rw-r--r--theme-compiler/src/com/vaadin/sass/internal/expression/BinaryOperator.java70
-rw-r--r--theme-compiler/src/com/vaadin/sass/internal/expression/Parentheses.java21
-rw-r--r--theme-compiler/src/com/vaadin/sass/internal/expression/exception/ArithmeticException.java26
-rw-r--r--theme-compiler/src/com/vaadin/sass/internal/expression/exception/IncompatibleUnitsException.java29
-rw-r--r--theme-compiler/src/com/vaadin/sass/internal/parser/LexicalUnitImpl.java85
-rw-r--r--theme-compiler/src/com/vaadin/sass/internal/parser/Parser.java1399
-rw-r--r--theme-compiler/src/com/vaadin/sass/internal/parser/Parser.jj43
-rw-r--r--theme-compiler/src/com/vaadin/sass/internal/parser/ParserConstants.java184
-rw-r--r--theme-compiler/src/com/vaadin/sass/internal/parser/ParserTokenManager.java1499
-rw-r--r--theme-compiler/src/com/vaadin/sass/internal/parser/SCSSLexicalUnit.java4
-rw-r--r--theme-compiler/src/com/vaadin/sass/internal/tree/RuleNode.java17
-rw-r--r--theme-compiler/src/com/vaadin/sass/internal/tree/VariableNode.java17
-rw-r--r--theme-compiler/tests/resources/automatic/css/basic_arithmetics.css31
-rw-r--r--theme-compiler/tests/resources/automatic/scss/basic_arithmetics.scss44
-rw-r--r--theme-compiler/tests/src/com/vaadin/sass/internal/expression/ArithmeticExpressionEvaluatorTest.java125
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());
+ }
+}