[prev in list] [next in list] [prev in thread] [next in thread]
List: jakarta-commons-dev
Subject: cvs commit: jakarta-commons/el/src/java/org/apache/commons/el/parser ELParser.java ELParserConstants
From: shawn () apache ! org
Date: 2003-03-31 1:17:07
[Download RAW message or body]
shawn 2003/03/30 17:17:07
Modified: el/src/java/org/apache/commons/el ELParser.jj
el/src/java/org/apache/commons/el/parser ELParser.java
ELParserConstants.java ELParserTokenManager.java
Added: el/src/java/org/apache/commons/el ConditionalExpression.java
Log:
Support for the ternary conditional (a ? b : c) operator.
Revision Changes Path
1.2 +30 -11 jakarta-commons/el/src/java/org/apache/commons/el/ELParser.jj
Index: ELParser.jj
===================================================================
RCS file: /home/cvs/jakarta-commons/el/src/java/org/apache/commons/el/ELParser.jj,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ELParser.jj 4 Feb 2003 00:22:24 -0000 1.1
+++ ELParser.jj 31 Mar 2003 01:17:07 -0000 1.2
@@ -134,7 +134,7 @@
| < OR1: "or" >
| < OR2: "||" >
| < EMPTY: "empty" >
-
+| < COND: "?" >
/* Identifiers */
@@ -252,7 +252,10 @@
Expression ret;
}
{
- ret = OrExpression ()
+ (
+ LOOKAHEAD(ConditionalExpression()) ret = ConditionalExpression() |
+ ret = OrExpression ()
+ )
{ return ret; }
}
@@ -503,6 +506,22 @@
}
}
+Expression ConditionalExpression () :
+{
+ Expression condition, trueBranch, falseBranch;
+}
+{
+ (
+ condition = OrExpression ()
+ <COND>
+ trueBranch = Expression ()
+ <COLON>
+ falseBranch = Expression ()
+ )
+ {
+ return new ConditionalExpression(condition, trueBranch, falseBranch);
+ }
+}
Expression UnaryExpression () :
{
@@ -513,25 +532,25 @@
}
{
(
- (
+ (
(<NOT1> | <NOT2>) { operator = NotOperator.SINGLETON; }
| <MINUS> { operator = UnaryMinusOperator.SINGLETON; }
| <EMPTY> { operator = EmptyOperator.SINGLETON; }
)
- {
- if (singleOperator == null) {
+ {
+ if (singleOperator == null) {
singleOperator = operator;
- }
- else if (operators == null) {
+ }
+ else if (operators == null) {
operators = new ArrayList ();
operators.add (singleOperator);
operators.add (operator);
- }
- else {
+ }
+ else {
operators.add (operator);
+ }
}
- }
- )*
+ )*
expression = Value ()
1.1 \
jakarta-commons/el/src/java/org/apache/commons/el/ConditionalExpression.java
Index: ConditionalExpression.java
===================================================================
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 1999 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution, if
* any, must include the following acknowlegement:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowlegement may appear in the software itself,
* if and wherever such third-party acknowlegements normally appear.
*
* 4. The names "The Jakarta Project", "Tomcat", and "Apache Software
* Foundation" must not be used to endorse or promote products derived
* from this software without prior written permission. For written
* permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache"
* nor may "Apache" appear in their names without prior written
* permission of the Apache Group.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
*/
package org.apache.commons.el;
import java.util.List;
import java.util.Map;
import javax.servlet.jsp.el.ELException;
import javax.servlet.jsp.el.VariableResolver;
import javax.servlet.jsp.el.FunctionMapper;
/**
*
* <p>Represents a conditional expression. I've decided not to produce an
* abstract base "TernaryOperatorExpression" class since (a) future ternary
* operators are unlikely and (b) it's not clear that there would be a
* meaningful way to abstract them. (For instance, would they all be right-
* associative? Would they all have two fixed operator symbols?)
*
* @author Shawn Bayern
**/
public class ConditionalExpression
extends Expression
{
//-------------------------------------
// Properties
//-------------------------------------
// property condition
Expression mCondition;
public Expression getCondition ()
{ return mCondition; }
public void setCondition (Expression pCondition)
{ mCondition = pCondition; }
//-------------------------------------
// property trueBranch
Expression mTrueBranch;
public Expression getTrueBranch ()
{ return mTrueBranch; }
public void setTrueBranch (Expression pTrueBranch)
{ mTrueBranch = pTrueBranch; }
//-------------------------------------
// property falseBranch
Expression mFalseBranch;
public Expression getFalseBranch ()
{ return mFalseBranch; }
public void setFalseBranch (Expression pFalseBranch)
{ mFalseBranch = pFalseBranch; }
//-------------------------------------
/**
*
* Constructor
**/
public ConditionalExpression (Expression pCondition,
Expression pTrueBranch,
Expression pFalseBranch)
{
mCondition = pCondition;
mTrueBranch = pTrueBranch;
mFalseBranch = pFalseBranch;
}
//-------------------------------------
// Expression methods
//-------------------------------------
/**
*
* Returns the expression in the expression language syntax
**/
public String getExpressionString ()
{
return
"( " + mCondition.getExpressionString() + " ? " +
mTrueBranch.getExpressionString() + " : " +
mFalseBranch.getExpressionString() + " )";
}
//-------------------------------------
/**
*
* Evaluates the conditional expression and returns the literal result
**/
public Object evaluate (VariableResolver vr,
FunctionMapper f,
String p,
Logger l)
throws ELException
{
// first, evaluate the condition (and coerce the result to a boolean value)
boolean condition =
Coercions.coerceToBoolean(
mCondition.evaluate(vr, f, p, l), l).booleanValue();
// then, use this boolean to branch appropriately
if (condition)
return mTrueBranch.evaluate(vr, f, p, l);
else
return mFalseBranch.evaluate(vr, f, p, l);
}
//-------------------------------------
}
1.2 +836 -64 \
jakarta-commons/el/src/java/org/apache/commons/el/parser/ELParser.java
Index: ELParser.java
===================================================================
RCS file: /home/cvs/jakarta-commons/el/src/java/org/apache/commons/el/parser/ELParser.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ELParser.java 4 Feb 2003 00:22:25 -0000 1.1
+++ ELParser.java 31 Mar 2003 01:17:07 -0000 1.2
@@ -101,7 +101,30 @@
final public Expression Expression() throws ParseException {
Expression ret;
- ret = OrExpression();
+ if (jj_2_1(2147483647)) {
+ ret = ConditionalExpression();
+ } else {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case STRING_LITERAL:
+ case TRUE:
+ case FALSE:
+ case NULL:
+ case LPAREN:
+ case MINUS:
+ case NOT1:
+ case NOT2:
+ case EMPTY:
+ case IDENTIFIER:
+ ret = OrExpression();
+ break;
+ default:
+ jj_la1[3] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
{if (true) return ret;}
throw new Error("Missing return statement in function");
}
@@ -121,7 +144,7 @@
;
break;
default:
- jj_la1[3] = jj_gen;
+ jj_la1[4] = jj_gen;
break label_2;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -132,7 +155,7 @@
jj_consume_token(OR2);
break;
default:
- jj_la1[4] = jj_gen;
+ jj_la1[5] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -171,7 +194,7 @@
;
break;
default:
- jj_la1[5] = jj_gen;
+ jj_la1[6] = jj_gen;
break label_3;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -182,7 +205,7 @@
jj_consume_token(AND2);
break;
default:
- jj_la1[6] = jj_gen;
+ jj_la1[7] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -223,7 +246,7 @@
;
break;
default:
- jj_la1[7] = jj_gen;
+ jj_la1[8] = jj_gen;
break label_4;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -237,7 +260,7 @@
jj_consume_token(EQ2);
break;
default:
- jj_la1[8] = jj_gen;
+ jj_la1[9] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -253,14 +276,14 @@
jj_consume_token(NE2);
break;
default:
- jj_la1[9] = jj_gen;
+ jj_la1[10] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
operator = NotEqualsOperator.SINGLETON;
break;
default:
- jj_la1[10] = jj_gen;
+ jj_la1[11] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -304,7 +327,7 @@
;
break;
default:
- jj_la1[11] = jj_gen;
+ jj_la1[12] = jj_gen;
break label_5;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -318,7 +341,7 @@
jj_consume_token(LT2);
break;
default:
- jj_la1[12] = jj_gen;
+ jj_la1[13] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -334,7 +357,7 @@
jj_consume_token(GT2);
break;
default:
- jj_la1[13] = jj_gen;
+ jj_la1[14] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -350,7 +373,7 @@
jj_consume_token(GE2);
break;
default:
- jj_la1[14] = jj_gen;
+ jj_la1[15] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -366,14 +389,14 @@
jj_consume_token(LE2);
break;
default:
- jj_la1[15] = jj_gen;
+ jj_la1[16] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
operator = LessThanOrEqualsOperator.SINGLETON;
break;
default:
- jj_la1[16] = jj_gen;
+ jj_la1[17] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -411,7 +434,7 @@
;
break;
default:
- jj_la1[17] = jj_gen;
+ jj_la1[18] = jj_gen;
break label_6;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -424,7 +447,7 @@
operator = MinusOperator.SINGLETON;
break;
default:
- jj_la1[18] = jj_gen;
+ jj_la1[19] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -465,7 +488,7 @@
;
break;
default:
- jj_la1[19] = jj_gen;
+ jj_la1[20] = jj_gen;
break label_7;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -483,7 +506,7 @@
jj_consume_token(DIVIDE2);
break;
default:
- jj_la1[20] = jj_gen;
+ jj_la1[21] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -499,14 +522,14 @@
jj_consume_token(MODULUS2);
break;
default:
- jj_la1[21] = jj_gen;
+ jj_la1[22] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
operator = ModulusOperator.SINGLETON;
break;
default:
- jj_la1[22] = jj_gen;
+ jj_la1[23] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -529,6 +552,17 @@
throw new Error("Missing return statement in function");
}
+ final public Expression ConditionalExpression() throws ParseException {
+ Expression condition, trueBranch, falseBranch;
+ condition = OrExpression();
+ jj_consume_token(COND);
+ trueBranch = Expression();
+ jj_consume_token(COLON);
+ falseBranch = Expression();
+ {if (true) return new ConditionalExpression(condition, trueBranch, \
falseBranch);} + throw new Error("Missing return statement in function");
+ }
+
final public Expression UnaryExpression() throws ParseException {
Expression expression;
UnaryOperator singleOperator = null;
@@ -544,7 +578,7 @@
;
break;
default:
- jj_la1[23] = jj_gen;
+ jj_la1[24] = jj_gen;
break label_8;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -558,7 +592,7 @@
jj_consume_token(NOT2);
break;
default:
- jj_la1[24] = jj_gen;
+ jj_la1[25] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -573,21 +607,21 @@
operator = EmptyOperator.SINGLETON;
break;
default:
- jj_la1[25] = jj_gen;
+ jj_la1[26] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
- if (singleOperator == null) {
+ if (singleOperator == null) {
singleOperator = operator;
- }
- else if (operators == null) {
+ }
+ else if (operators == null) {
operators = new ArrayList ();
operators.add (singleOperator);
operators.add (operator);
- }
- else {
+ }
+ else {
operators.add (operator);
- }
+ }
}
expression = Value();
if (operators != null) {
@@ -615,7 +649,7 @@
;
break;
default:
- jj_la1[26] = jj_gen;
+ jj_la1[27] = jj_gen;
break label_9;
}
suffix = ValueSuffix();
@@ -653,8 +687,8 @@
jj_consume_token(RPAREN);
break;
default:
- jj_la1[27] = jj_gen;
- if (jj_2_1(2147483647)) {
+ jj_la1[28] = jj_gen;
+ if (jj_2_2(2147483647)) {
ret = FunctionInvocation();
} else {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -662,7 +696,7 @@
ret = NamedValue();
break;
default:
- jj_la1[28] = jj_gen;
+ jj_la1[29] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -707,7 +741,7 @@
;
break;
default:
- jj_la1[29] = jj_gen;
+ jj_la1[30] = jj_gen;
break label_10;
}
jj_consume_token(COMMA);
@@ -716,7 +750,7 @@
}
break;
default:
- jj_la1[30] = jj_gen;
+ jj_la1[31] = jj_gen;
;
}
jj_consume_token(RPAREN);
@@ -734,7 +768,7 @@
suffix = ArraySuffix();
break;
default:
- jj_la1[31] = jj_gen;
+ jj_la1[32] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -780,7 +814,7 @@
ret = NullLiteral();
break;
default:
- jj_la1[32] = jj_gen;
+ jj_la1[33] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -799,7 +833,7 @@
{if (true) return BooleanLiteral.FALSE;}
break;
default:
- jj_la1[33] = jj_gen;
+ jj_la1[34] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -842,7 +876,7 @@
final public String QualifiedName() throws ParseException {
String prefix = null, localPart = null;
- if (jj_2_2(2147483647)) {
+ if (jj_2_3(2147483647)) {
prefix = Identifier();
jj_consume_token(COLON);
} else {
@@ -870,42 +904,779 @@
return retval;
}
- final private boolean jj_3R_13() {
- if (jj_3R_12()) return true;
+ final private boolean jj_2_3(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ boolean retval = !jj_3_3();
+ jj_save(2, xla);
+ return retval;
+ }
+
+ final private boolean jj_3R_42() {
+ if (jj_scan_token(NE2)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_scan_token(COLON)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_91() {
+ if (jj_scan_token(FLOATING_POINT_LITERAL)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3_2() {
- if (jj_3R_12()) return true;
+ final private boolean jj_3R_40() {
+ if (jj_scan_token(EQ2)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_41() {
+ if (jj_scan_token(NE1)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_32() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_41()) {
+ jj_scanpos = xsp;
+ if (jj_3R_42()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_90() {
+ if (jj_scan_token(INTEGER_LITERAL)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_39() {
+ if (jj_scan_token(EQ1)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_31() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_39()) {
+ jj_scanpos = xsp;
+ if (jj_3R_40()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_26() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_31()) {
+ jj_scanpos = xsp;
+ if (jj_3R_32()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ if (jj_3R_25()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_70() {
+ if (jj_scan_token(NOT2)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_21() {
+ if (jj_3R_25()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_26()) { jj_scanpos = xsp; break; }
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_92() {
+ if (jj_scan_token(STRING_LITERAL)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_62() {
+ if (jj_scan_token(EMPTY)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_61() {
+ if (jj_scan_token(MINUS)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_69() {
+ if (jj_scan_token(NOT1)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_60() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_69()) {
+ jj_scanpos = xsp;
+ if (jj_3R_70()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_55() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_60()) {
+ jj_scanpos = xsp;
+ if (jj_3R_61()) {
+ jj_scanpos = xsp;
+ if (jj_3R_62()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_96() {
+ if (jj_scan_token(FALSE)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_43() {
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_55()) { jj_scanpos = xsp; break; }
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ }
+ if (jj_3R_56()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_95() {
+ if (jj_scan_token(TRUE)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_89() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_95()) {
+ jj_scanpos = xsp;
+ if (jj_3R_96()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_85() {
+ if (jj_3R_93()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_84() {
+ if (jj_3R_92()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_83() {
+ if (jj_3R_91()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_82() {
+ if (jj_3R_90()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_28() {
+ if (jj_scan_token(AND2)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_81() {
+ if (jj_3R_89()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_76() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_81()) {
+ jj_scanpos = xsp;
+ if (jj_3R_82()) {
+ jj_scanpos = xsp;
+ if (jj_3R_83()) {
+ jj_scanpos = xsp;
+ if (jj_3R_84()) {
+ jj_scanpos = xsp;
+ if (jj_3R_85()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_11() {
+ if (jj_3R_14()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ if (jj_scan_token(COND)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ if (jj_3R_15()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
if (jj_scan_token(COLON)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ if (jj_3R_15()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_27() {
+ if (jj_scan_token(AND1)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_22() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_27()) {
+ jj_scanpos = xsp;
+ if (jj_3R_28()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ if (jj_3R_21()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_17() {
+ if (jj_3R_21()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_22()) { jj_scanpos = xsp; break; }
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_68() {
+ if (jj_scan_token(MODULUS2)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_88() {
+ if (jj_scan_token(LBRACKET)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ if (jj_3R_15()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ if (jj_scan_token(RBRACKET)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_66() {
+ if (jj_scan_token(DIVIDE2)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_67() {
+ if (jj_scan_token(MODULUS1)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_59() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_67()) {
+ jj_scanpos = xsp;
+ if (jj_3R_68()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_65() {
+ if (jj_scan_token(DIVIDE1)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_87() {
+ if (jj_scan_token(DOT)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ if (jj_3R_13()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_58() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_65()) {
+ jj_scanpos = xsp;
+ if (jj_3R_66()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_57() {
+ if (jj_scan_token(MULTIPLY)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_44() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_57()) {
+ jj_scanpos = xsp;
+ if (jj_3R_58()) {
+ jj_scanpos = xsp;
+ if (jj_3R_59()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ if (jj_3R_43()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_24() {
+ if (jj_scan_token(OR2)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_80() {
+ if (jj_3R_88()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_33() {
+ if (jj_3R_43()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_44()) { jj_scanpos = xsp; break; }
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_79() {
+ if (jj_3R_87()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_75() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_79()) {
+ jj_scanpos = xsp;
+ if (jj_3R_80()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_23() {
+ if (jj_scan_token(OR1)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_18() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_23()) {
+ jj_scanpos = xsp;
+ if (jj_3R_24()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ if (jj_3R_17()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_14() {
+ if (jj_3R_17()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_18()) { jj_scanpos = xsp; break; }
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_94() {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ if (jj_3R_15()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
final private boolean jj_3_1() {
if (jj_3R_11()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_86() {
+ if (jj_3R_15()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_94()) { jj_scanpos = xsp; break; }
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_20() {
+ if (jj_3R_14()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_19() {
+ if (jj_3R_11()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_46() {
+ if (jj_scan_token(MINUS)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_15() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_19()) {
+ jj_scanpos = xsp;
+ if (jj_3R_20()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_45() {
+ if (jj_scan_token(PLUS)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_34() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_45()) {
+ jj_scanpos = xsp;
+ if (jj_3R_46()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ if (jj_3R_33()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_77() {
+ if (jj_3R_12()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
if (jj_scan_token(LPAREN)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_86()) jj_scanpos = xsp;
+ else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ if (jj_scan_token(RPAREN)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_12() {
+ final private boolean jj_3R_29() {
+ if (jj_3R_33()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_34()) { jj_scanpos = xsp; break; }
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ }
+ return false;
+ }
+
+ final private boolean jj_3_2() {
+ if (jj_3R_12()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ if (jj_scan_token(LPAREN)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_78() {
if (jj_scan_token(IDENTIFIER)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_11() {
+ final private boolean jj_3R_74() {
+ if (jj_3R_78()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_73() {
+ if (jj_3R_77()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_72() {
+ if (jj_scan_token(LPAREN)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ if (jj_3R_15()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ if (jj_scan_token(RPAREN)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_71() {
+ if (jj_3R_76()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3_3() {
+ if (jj_3R_13()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ if (jj_scan_token(COLON)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_63() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_71()) {
+ jj_scanpos = xsp;
+ if (jj_3R_72()) {
+ jj_scanpos = xsp;
+ if (jj_3R_73()) {
+ jj_scanpos = xsp;
+ if (jj_3R_74()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_54() {
+ if (jj_scan_token(LE2)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_52() {
+ if (jj_scan_token(GE2)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_50() {
+ if (jj_scan_token(GT2)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_48() {
+ if (jj_scan_token(LT2)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_53() {
+ if (jj_scan_token(LE1)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_16() {
+ if (jj_3R_13()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ if (jj_scan_token(COLON)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_38() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_53()) {
+ jj_scanpos = xsp;
+ if (jj_3R_54()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_51() {
+ if (jj_scan_token(GE1)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_37() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_13()) jj_scanpos = xsp;
+ if (jj_3R_51()) {
+ jj_scanpos = xsp;
+ if (jj_3R_52()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_49() {
+ if (jj_scan_token(GT1)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_36() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_49()) {
+ jj_scanpos = xsp;
+ if (jj_3R_50()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_47() {
+ if (jj_scan_token(LT1)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_35() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_47()) {
+ jj_scanpos = xsp;
+ if (jj_3R_48()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_12() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_16()) jj_scanpos = xsp;
else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_12()) return true;
+ if (jj_3R_13()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_30() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_35()) {
+ jj_scanpos = xsp;
+ if (jj_3R_36()) {
+ jj_scanpos = xsp;
+ if (jj_3R_37()) {
+ jj_scanpos = xsp;
+ if (jj_3R_38()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ if (jj_3R_29()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_25() {
+ if (jj_3R_29()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_30()) { jj_scanpos = xsp; break; }
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_64() {
+ if (jj_3R_75()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_13() {
+ if (jj_scan_token(IDENTIFIER)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_56() {
+ if (jj_3R_63()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_64()) { jj_scanpos = xsp; break; }
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_93() {
+ if (jj_scan_token(NULL)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
@@ -919,10 +1690,10 @@
public boolean lookingAhead = false;
private boolean jj_semLA;
private int jj_gen;
- final private int[] jj_la1 = new int[34];
- final private int[] jj_la1_0 = \
{0x6,0x6,0x6,0x0,0x0,0x0,0x0,0x18600000,0x600000,0x18000000,0x18600000,0x79e0000,0x180 \
000,0x60000,0x6000000,0x1800000,0x79e0000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10000,0x20007580,0x0,0x80000000,0x20007580,0x10000,0x7580,0x3000,};
- final private int[] jj_la1_1 = \
{0x0,0x0,0x0,0xc000,0xc000,0x3000,0x3000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x18, \
0x18,0x3e0,0xc0,0x300,0x3e0,0x10c10,0xc00,0x10c10,0x2,0x0,0x20000,0x0,0x30c10,0x2,0x0,0x0,};
- final private JJCalls[] jj_2_rtns = new JJCalls[2];
+ final private int[] jj_la1 = new int[35];
+ final private int[] jj_la1_0 = \
{0x6,0x6,0x6,0x20007580,0x0,0x0,0x0,0x0,0x18600000,0x600000,0x18000000,0x18600000,0x79 \
e0000,0x180000,0x60000,0x6000000,0x1800000,0x79e0000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10000,0x20007580,0x0,0x80000000,0x20007580,0x10000,0x7580,0x3000,};
+ final private int[] jj_la1_1 = \
{0x0,0x0,0x0,0x50c10,0xc000,0xc000,0x3000,0x3000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0 \
x0,0x18,0x18,0x3e0,0xc0,0x300,0x3e0,0x10c10,0xc00,0x10c10,0x2,0x0,0x40000,0x0,0x50c10,0x2,0x0,0x0,};
+ final private JJCalls[] jj_2_rtns = new JJCalls[3];
private boolean jj_rescan = false;
private int jj_gc = 0;
@@ -932,7 +1703,7 @@
token = new Token();
jj_ntk = -1;
jj_gen = 0;
- for (int i = 0; i < 34; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 35; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -942,7 +1713,7 @@
token = new Token();
jj_ntk = -1;
jj_gen = 0;
- for (int i = 0; i < 34; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 35; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -952,7 +1723,7 @@
token = new Token();
jj_ntk = -1;
jj_gen = 0;
- for (int i = 0; i < 34; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 35; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -962,7 +1733,7 @@
token = new Token();
jj_ntk = -1;
jj_gen = 0;
- for (int i = 0; i < 34; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 35; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -971,7 +1742,7 @@
token = new Token();
jj_ntk = -1;
jj_gen = 0;
- for (int i = 0; i < 34; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 35; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -980,7 +1751,7 @@
token = new Token();
jj_ntk = -1;
jj_gen = 0;
- for (int i = 0; i < 34; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 35; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -1087,15 +1858,15 @@
final public ParseException generateParseException() {
jj_expentries.removeAllElements();
- boolean[] la1tokens = new boolean[54];
- for (int i = 0; i < 54; i++) {
+ boolean[] la1tokens = new boolean[55];
+ for (int i = 0; i < 55; i++) {
la1tokens[i] = false;
}
if (jj_kind >= 0) {
la1tokens[jj_kind] = true;
jj_kind = -1;
}
- for (int i = 0; i < 34; i++) {
+ for (int i = 0; i < 35; i++) {
if (jj_la1[i] == jj_gen) {
for (int j = 0; j < 32; j++) {
if ((jj_la1_0[i] & (1<<j)) != 0) {
@@ -1107,7 +1878,7 @@
}
}
}
- for (int i = 0; i < 54; i++) {
+ for (int i = 0; i < 55; i++) {
if (la1tokens[i]) {
jj_expentry = new int[1];
jj_expentry[0] = i;
@@ -1132,7 +1903,7 @@
final private void jj_rescan_token() {
jj_rescan = true;
- for (int i = 0; i < 2; i++) {
+ for (int i = 0; i < 3; i++) {
JJCalls p = jj_2_rtns[i];
do {
if (p.gen > jj_gen) {
@@ -1140,6 +1911,7 @@
switch (i) {
case 0: jj_3_1(); break;
case 1: jj_3_2(); break;
+ case 2: jj_3_3(); break;
}
}
p = p.next;
1.2 +7 -5 \
jakarta-commons/el/src/java/org/apache/commons/el/parser/ELParserConstants.java
Index: ELParserConstants.java
===================================================================
RCS file: /home/cvs/jakarta-commons/el/src/java/org/apache/commons/el/parser/ELParserConstants.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ELParserConstants.java 4 Feb 2003 00:22:25 -0000 1.1
+++ ELParserConstants.java 31 Mar 2003 01:17:07 -0000 1.2
@@ -48,11 +48,12 @@
int OR1 = 46;
int OR2 = 47;
int EMPTY = 48;
- int IDENTIFIER = 49;
- int IMPL_OBJ_START = 50;
- int LETTER = 51;
- int DIGIT = 52;
- int ILLEGAL_CHARACTER = 53;
+ int COND = 49;
+ int IDENTIFIER = 50;
+ int IMPL_OBJ_START = 51;
+ int LETTER = 52;
+ int DIGIT = 53;
+ int ILLEGAL_CHARACTER = 54;
int DEFAULT = 0;
int IN_EXPRESSION = 1;
@@ -107,6 +108,7 @@
"\"or\"",
"\"||\"",
"\"empty\"",
+ "\"?\"",
"<IDENTIFIER>",
"\"#\"",
"<LETTER>",
1.2 +26 -23 \
jakarta-commons/el/src/java/org/apache/commons/el/parser/ELParserTokenManager.java
Index: ELParserTokenManager.java
===================================================================
RCS file: /home/cvs/jakarta-commons/el/src/java/org/apache/commons/el/parser/ELParserTokenManager.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ELParserTokenManager.java 4 Feb 2003 00:22:25 -0000 1.1
+++ ELParserTokenManager.java 31 Mar 2003 01:17:07 -0000 1.2
@@ -228,20 +228,20 @@
switch (pos)
{
case 0:
+ if ((active0 & 0x10000L) != 0L)
+ return 1;
if ((active0 & 0x1568015547000L) != 0L)
{
- jjmatchedKind = 49;
+ jjmatchedKind = 50;
return 6;
}
- if ((active0 & 0x10000L) != 0L)
- return 1;
return -1;
case 1:
if ((active0 & 0x400015540000L) != 0L)
return 6;
if ((active0 & 0x1168000007000L) != 0L)
{
- jjmatchedKind = 49;
+ jjmatchedKind = 50;
jjmatchedPos = 1;
return 6;
}
@@ -251,20 +251,20 @@
return 6;
if ((active0 & 0x1000000007000L) != 0L)
{
- jjmatchedKind = 49;
+ jjmatchedKind = 50;
jjmatchedPos = 2;
return 6;
}
return -1;
case 3:
- if ((active0 & 0x5000L) != 0L)
- return 6;
if ((active0 & 0x1000000002000L) != 0L)
{
- jjmatchedKind = 49;
+ jjmatchedKind = 50;
jjmatchedPos = 3;
return 6;
}
+ if ((active0 & 0x5000L) != 0L)
+ return 6;
return -1;
default :
return -1;
@@ -319,6 +319,8 @@
case 62:
jjmatchedKind = 17;
return jjMoveStringLiteralDfa1_1(0x2000000L);
+ case 63:
+ return jjStopAtPos(0, 49);
case 91:
return jjStopAtPos(0, 33);
case 93:
@@ -551,8 +553,8 @@
}
else if ((0x1800000000L & l) != 0L)
{
- if (kind > 49)
- kind = 49;
+ if (kind > 50)
+ kind = 50;
jjCheckNAdd(6);
}
else if (curChar == 39)
@@ -583,15 +585,15 @@
case 5:
if ((0x1800000000L & l) == 0L)
break;
- if (kind > 49)
- kind = 49;
+ if (kind > 50)
+ kind = 50;
jjCheckNAdd(6);
break;
case 6:
if ((0x3ff001000000000L & l) == 0L)
break;
- if (kind > 49)
- kind = 49;
+ if (kind > 50)
+ kind = 50;
jjCheckNAdd(6);
break;
case 7:
@@ -715,8 +717,8 @@
case 6:
if ((0x7fffffe87fffffeL & l) == 0L)
break;
- if (kind > 49)
- kind = 49;
+ if (kind > 50)
+ kind = 50;
jjCheckNAdd(6);
break;
case 2:
@@ -795,8 +797,8 @@
case 6:
if (!jjCanMove_1(hiByte, i1, i2, l1, l2))
break;
- if (kind > 49)
- kind = 49;
+ if (kind > 50)
+ kind = 50;
jjCheckNAdd(6);
break;
case 20:
@@ -879,7 +881,8 @@
"\74", "\154\164", "\75\75", "\145\161", "\74\75", "\154\145", "\76\75", \
"\147\145", "\41\75", "\156\145", "\50", "\51", "\54", "\72", "\133", "\135", \
"\53", "\55", "\52", "\57", "\144\151\166", "\45", "\155\157\144", "\156\157\164", \
"\41", "\141\156\144",
-"\46\46", "\157\162", "\174\174", "\145\155\160\164\171", null, null, null, null, \
null, }; +"\46\46", "\157\162", "\174\174", "\145\155\160\164\171", "\77", null, \
null, null, null, +null, };
public static final String[] lexStateNames = {
"DEFAULT",
"IN_EXPRESSION",
@@ -887,10 +890,10 @@
public static final int[] jjnewLexState = {
-1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, \
-1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, \
-1, -1, -1, -1, -1,
- -1, -1, -1, -1,
+ -1, -1, -1, -1, -1,
};
static final long[] jjtoToken = {
- 0x23fffffffffd87L,
+ 0x47fffffffffd87L,
};
static final long[] jjtoSkip = {
0x78L,
@@ -994,9 +997,9 @@
jjmatchedKind = 0x7fffffff;
jjmatchedPos = 0;
curPos = jjMoveStringLiteralDfa0_1();
- if (jjmatchedPos == 0 && jjmatchedKind > 53)
+ if (jjmatchedPos == 0 && jjmatchedKind > 54)
{
- jjmatchedKind = 53;
+ jjmatchedKind = 54;
}
break;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic