Author: markt
Date: Sat Jul 13 20:40:39 2013
New Revision: 1502876
URL: http://svn.apache.org/r1502876
Log:
Add support for the assignment and semicolon operator to the parser. The new
nodes (the Ast*.java files) are just the auto-generated skeletons and some - if
not all - will need some work before these new expression elements are fully
implemented.
Added:
tomcat/trunk/java/org/apache/el/parser/AstAssign.java (with props)
tomcat/trunk/java/org/apache/el/parser/AstSemicolon.java (with props)
Modified:
tomcat/trunk/java/org/apache/el/parser/ELParser.java
tomcat/trunk/java/org/apache/el/parser/ELParser.jjt
tomcat/trunk/java/org/apache/el/parser/ELParserConstants.java
tomcat/trunk/java/org/apache/el/parser/ELParserTokenManager.java
tomcat/trunk/java/org/apache/el/parser/ELParserTreeConstants.java
Added: tomcat/trunk/java/org/apache/el/parser/AstAssign.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/el/parser/AstAssign.java?rev=1502876&view=auto
==============================================================================
--- tomcat/trunk/java/org/apache/el/parser/AstAssign.java (added)
+++ tomcat/trunk/java/org/apache/el/parser/AstAssign.java Sat Jul 13 20:40:39
2013
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.
+ */
+/* Generated By:JJTree: Do not edit this line. AstAssign.java Version 4.3 */
+package org.apache.el.parser;
+
+public
+class AstAssign extends SimpleNode {
+ public AstAssign(int id) {
+ super(id);
+ }
+}
+/* JavaCC - OriginalChecksum=151e58546054b618e758d7dc172cc7b5 (do not edit
this line) */
Propchange: tomcat/trunk/java/org/apache/el/parser/AstAssign.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: tomcat/trunk/java/org/apache/el/parser/AstSemicolon.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/el/parser/AstSemicolon.java?rev=1502876&view=auto
==============================================================================
--- tomcat/trunk/java/org/apache/el/parser/AstSemicolon.java (added)
+++ tomcat/trunk/java/org/apache/el/parser/AstSemicolon.java Sat Jul 13
20:40:39 2013
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.
+ */
+/* Generated By:JJTree: Do not edit this line. AstSemicolon.java Version 4.3 */
+package org.apache.el.parser;
+
+public
+class AstSemicolon extends SimpleNode {
+ public AstSemicolon(int id) {
+ super(id);
+ }
+}
+/* JavaCC - OriginalChecksum=ce956594ca572a4e452fe4f084a03099 (do not edit
this line) */
Propchange: tomcat/trunk/java/org/apache/el/parser/AstSemicolon.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: tomcat/trunk/java/org/apache/el/parser/ELParser.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/el/parser/ELParser.java?rev=1502876&r1=1502875&r2=1502876&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/el/parser/ELParser.java (original)
+++ tomcat/trunk/java/org/apache/el/parser/ELParser.java Sat Jul 13 20:40:39
2013
@@ -135,7 +135,7 @@ public class ELParser/*@bgen(jjtree)*/im
/*
* DynamicExpression
- * ${..} Expressions
+ * ${...} Expressions
*/
final public void DynamicExpression() throws ParseException {
/*@bgen(jjtree)
DynamicExpression */
@@ -172,7 +172,90 @@ public class ELParser/*@bgen(jjtree)*/im
* EL Expression Language Root, goes to Choice
*/
final public void Expression() throws ParseException {
+ Semicolon();
+ }
+
+/*
+ * Semicolon
+ */
+ final public void Semicolon() throws ParseException {
+ Assignment();
+ label_2:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case SEMICOLON:
+ ;
+ break;
+ default:
+ jj_la1[2] = jj_gen;
+ break label_2;
+ }
+ jj_consume_token(SEMICOLON);
+ AstSemicolon jjtn001 = new
AstSemicolon(JJTSEMICOLON);
+ boolean jjtc001 = true;
+ jjtree.openNodeScope(jjtn001);
+ try {
+ Assignment();
+ } catch (Throwable jjte001) {
+ if (jjtc001) {
+ jjtree.clearNodeScope(jjtn001);
+ jjtc001 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte001 instanceof RuntimeException) {
+ {if (true) throw (RuntimeException)jjte001;}
+ }
+ if (jjte001 instanceof ParseException) {
+ {if (true) throw (ParseException)jjte001;}
+ }
+ {if (true) throw (Error)jjte001;}
+ } finally {
+ if (jjtc001) {
+ jjtree.closeNodeScope(jjtn001, 2);
+ }
+ }
+ }
+ }
+
+/*
+ * Assignment
+ */
+ final public void Assignment() throws ParseException {
Choice();
+ label_3:
+ while (true) {
+ if (jj_2_1(2)) {
+ ;
+ } else {
+ break label_3;
+ }
+ jj_consume_token(ASSIGN);
+ AstAssign jjtn001 = new
AstAssign(JJTASSIGN);
+ boolean jjtc001 = true;
+ jjtree.openNodeScope(jjtn001);
+ try {
+ Assignment();
+ } catch (Throwable jjte001) {
+ if (jjtc001) {
+ jjtree.clearNodeScope(jjtn001);
+ jjtc001 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte001 instanceof
RuntimeException) {
+ {if (true) throw
(RuntimeException)jjte001;}
+ }
+ if (jjte001 instanceof ParseException) {
+ {if (true) throw
(ParseException)jjte001;}
+ }
+ {if (true) throw (Error)jjte001;}
+ } finally {
+ if (jjtc001) {
+ jjtree.closeNodeScope(jjtn001, 2);
+ }
+ }
+ }
}
/*
@@ -181,12 +264,12 @@ public class ELParser/*@bgen(jjtree)*/im
*/
final public void Choice() throws ParseException {
Or();
- label_2:
+ label_4:
while (true) {
- if (jj_2_1(3)) {
+ if (jj_2_2(3)) {
;
} else {
- break label_2;
+ break label_4;
}
jj_consume_token(QUESTIONMARK);
Choice();
@@ -224,7 +307,7 @@ public class ELParser/*@bgen(jjtree)*/im
*/
final public void Or() throws ParseException {
And();
- label_3:
+ label_5:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case OR0:
@@ -232,8 +315,8 @@ public class ELParser/*@bgen(jjtree)*/im
;
break;
default:
- jj_la1[2] = jj_gen;
- break label_3;
+ jj_la1[3] = jj_gen;
+ break label_5;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case OR0:
@@ -243,7 +326,7 @@ public class ELParser/*@bgen(jjtree)*/im
jj_consume_token(OR1);
break;
default:
- jj_la1[3] = jj_gen;
+ jj_la1[4] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -280,7 +363,7 @@ public class ELParser/*@bgen(jjtree)*/im
*/
final public void And() throws ParseException {
Equality();
- label_4:
+ label_6:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case AND0:
@@ -288,8 +371,8 @@ public class ELParser/*@bgen(jjtree)*/im
;
break;
default:
- jj_la1[4] = jj_gen;
- break label_4;
+ jj_la1[5] = jj_gen;
+ break label_6;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case AND0:
@@ -299,7 +382,7 @@ public class ELParser/*@bgen(jjtree)*/im
jj_consume_token(AND1);
break;
default:
- jj_la1[5] = jj_gen;
+ jj_la1[6] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -336,7 +419,7 @@ public class ELParser/*@bgen(jjtree)*/im
*/
final public void Equality() throws ParseException {
Compare();
- label_5:
+ label_7:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case EQ0:
@@ -346,8 +429,8 @@ public class ELParser/*@bgen(jjtree)*/im
;
break;
default:
- jj_la1[6] = jj_gen;
- break label_5;
+ jj_la1[7] = jj_gen;
+ break label_7;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case EQ0:
@@ -360,7 +443,7 @@ public class ELParser/*@bgen(jjtree)*/im
jj_consume_token(EQ1);
break;
default:
- jj_la1[7] = jj_gen;
+ jj_la1[8] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -399,7 +482,7 @@ public class ELParser/*@bgen(jjtree)*/im
jj_consume_token(NE1);
break;
default:
- jj_la1[8] = jj_gen;
+ jj_la1[9] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -429,7 +512,7 @@ public class ELParser/*@bgen(jjtree)*/im
}
break;
default:
- jj_la1[9] = jj_gen;
+ jj_la1[10] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -442,7 +525,7 @@ public class ELParser/*@bgen(jjtree)*/im
*/
final public void Compare() throws ParseException {
Math();
- label_6:
+ label_8:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case GT0:
@@ -456,8 +539,8 @@ public class ELParser/*@bgen(jjtree)*/im
;
break;
default:
- jj_la1[10] = jj_gen;
- break label_6;
+ jj_la1[11] = jj_gen;
+ break label_8;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case LT0:
@@ -470,7 +553,7 @@ public class ELParser/*@bgen(jjtree)*/im
jj_consume_token(LT1);
break;
default:
- jj_la1[11] = jj_gen;
+ jj_la1[12] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -509,7 +592,7 @@ public class ELParser/*@bgen(jjtree)*/im
jj_consume_token(GT1);
break;
default:
- jj_la1[12] = jj_gen;
+ jj_la1[13] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -548,7 +631,7 @@ public class ELParser/*@bgen(jjtree)*/im
jj_consume_token(LE1);
break;
default:
- jj_la1[13] = jj_gen;
+ jj_la1[14] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -587,7 +670,7 @@ public class ELParser/*@bgen(jjtree)*/im
jj_consume_token(GE1);
break;
default:
- jj_la1[14] = jj_gen;
+ jj_la1[15] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -617,7 +700,7 @@ public class ELParser/*@bgen(jjtree)*/im
}
break;
default:
- jj_la1[15] = jj_gen;
+ jj_la1[16] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -630,7 +713,7 @@ public class ELParser/*@bgen(jjtree)*/im
*/
final public void Math() throws ParseException {
Multiplication();
- label_7:
+ label_9:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case PLUS:
@@ -638,8 +721,8 @@ public class ELParser/*@bgen(jjtree)*/im
;
break;
default:
- jj_la1[16] = jj_gen;
- break label_7;
+ jj_la1[17] = jj_gen;
+ break label_9;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case PLUS:
@@ -697,7 +780,7 @@ public class ELParser/*@bgen(jjtree)*/im
}
break;
default:
- jj_la1[17] = jj_gen;
+ jj_la1[18] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -710,7 +793,7 @@ public class ELParser/*@bgen(jjtree)*/im
*/
final public void Multiplication() throws ParseException {
Unary();
- label_8:
+ label_10:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case MULT:
@@ -721,8 +804,8 @@ public class ELParser/*@bgen(jjtree)*/im
;
break;
default:
- jj_la1[18] = jj_gen;
- break label_8;
+ jj_la1[19] = jj_gen;
+ break label_10;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case MULT:
@@ -762,7 +845,7 @@ public class ELParser/*@bgen(jjtree)*/im
jj_consume_token(DIV1);
break;
default:
- jj_la1[19] = jj_gen;
+ jj_la1[20] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -801,7 +884,7 @@ public class ELParser/*@bgen(jjtree)*/im
jj_consume_token(MOD1);
break;
default:
- jj_la1[20] = jj_gen;
+ jj_la1[21] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -831,7 +914,7 @@ public class ELParser/*@bgen(jjtree)*/im
}
break;
default:
- jj_la1[21] = jj_gen;
+ jj_la1[22] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -881,7 +964,7 @@ public class ELParser/*@bgen(jjtree)*/im
jj_consume_token(NOT1);
break;
default:
- jj_la1[22] = jj_gen;
+ jj_la1[23] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -950,7 +1033,7 @@ public class ELParser/*@bgen(jjtree)*/im
Value();
break;
default:
- jj_la1[23] = jj_gen;
+ jj_la1[24] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -966,7 +1049,7 @@ public class ELParser/*@bgen(jjtree)*/im
jjtree.openNodeScope(jjtn001);
try {
ValuePrefix();
- label_9:
+ label_11:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case DOT:
@@ -974,8 +1057,8 @@ public class ELParser/*@bgen(jjtree)*/im
;
break;
default:
- jj_la1[24] = jj_gen;
- break label_9;
+ jj_la1[25] = jj_gen;
+ break label_11;
}
ValueSuffix();
}
@@ -1021,7 +1104,7 @@ public class ELParser/*@bgen(jjtree)*/im
NonLiteral();
break;
default:
- jj_la1[25] = jj_gen;
+ jj_la1[26] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -1040,7 +1123,7 @@ public class ELParser/*@bgen(jjtree)*/im
BracketSuffix();
break;
default:
- jj_la1[26] = jj_gen;
+ jj_la1[27] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -1049,7 +1132,7 @@ public class ELParser/*@bgen(jjtree)*/im
MethodParameters();
break;
default:
- jj_la1[27] = jj_gen;
+ jj_la1[28] = jj_gen;
;
}
}
@@ -1136,22 +1219,22 @@ public class ELParser/*@bgen(jjtree)*/im
case MINUS:
case IDENTIFIER:
Expression();
- label_10:
+ label_12:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case COMMA:
;
break;
default:
- jj_la1[28] = jj_gen;
- break label_10;
+ jj_la1[29] = jj_gen;
+ break label_12;
}
jj_consume_token(COMMA);
Expression();
}
break;
default:
- jj_la1[29] = jj_gen;
+ jj_la1[30] = jj_gen;
;
}
jj_consume_token(RPAREN);
@@ -1188,8 +1271,8 @@ public class ELParser/*@bgen(jjtree)*/im
jj_consume_token(RPAREN);
break;
default:
- jj_la1[30] = jj_gen;
- if (jj_2_2(2147483647)) {
+ jj_la1[31] = jj_gen;
+ if (jj_2_3(2147483647)) {
Function();
} else {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -1197,8 +1280,8 @@ public class ELParser/*@bgen(jjtree)*/im
Identifier();
break;
default:
- jj_la1[31] = jj_gen;
- if (jj_2_3(3)) {
+ jj_la1[32] = jj_gen;
+ if (jj_2_4(3)) {
SetData();
} else {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -1209,7 +1292,7 @@ public class ELParser/*@bgen(jjtree)*/im
MapData();
break;
default:
- jj_la1[32] = jj_gen;
+ jj_la1[33] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -1242,22 +1325,22 @@ public class ELParser/*@bgen(jjtree)*/im
case MINUS:
case IDENTIFIER:
Expression();
- label_11:
+ label_13:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case COMMA:
;
break;
default:
- jj_la1[33] = jj_gen;
- break label_11;
+ jj_la1[34] = jj_gen;
+ break label_13;
}
jj_consume_token(COMMA);
Expression();
}
break;
default:
- jj_la1[34] = jj_gen;
+ jj_la1[35] = jj_gen;
;
}
jj_consume_token(RCURL);
@@ -1305,22 +1388,22 @@ public class ELParser/*@bgen(jjtree)*/im
case MINUS:
case IDENTIFIER:
Expression();
- label_12:
+ label_14:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case COMMA:
;
break;
default:
- jj_la1[35] = jj_gen;
- break label_12;
+ jj_la1[36] = jj_gen;
+ break label_14;
}
jj_consume_token(COMMA);
Expression();
}
break;
default:
- jj_la1[36] = jj_gen;
+ jj_la1[37] = jj_gen;
;
}
jj_consume_token(RBRACK);
@@ -1368,22 +1451,22 @@ public class ELParser/*@bgen(jjtree)*/im
case MINUS:
case IDENTIFIER:
MapEntry();
- label_13:
+ label_15:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case COMMA:
;
break;
default:
- jj_la1[37] = jj_gen;
- break label_13;
+ jj_la1[38] = jj_gen;
+ break label_15;
}
jj_consume_token(COMMA);
MapEntry();
}
break;
default:
- jj_la1[38] = jj_gen;
+ jj_la1[39] = jj_gen;
;
}
jj_consume_token(RCURL);
@@ -1470,7 +1553,7 @@ public class ELParser/*@bgen(jjtree)*/im
jjtree.openNodeScope(jjtn000);Token t0 = null;
Token t1 = null;
try {
- if (jj_2_4(2)) {
+ if (jj_2_5(2)) {
t0 = jj_consume_token(IDENTIFIER);
jj_consume_token(COLON);
} else {
@@ -1500,22 +1583,22 @@ public class ELParser/*@bgen(jjtree)*/im
case MINUS:
case IDENTIFIER:
Expression();
- label_14:
+ label_16:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case COMMA:
;
break;
default:
- jj_la1[39] = jj_gen;
- break label_14;
+ jj_la1[40] = jj_gen;
+ break label_16;
}
jj_consume_token(COMMA);
Expression();
}
break;
default:
- jj_la1[40] = jj_gen;
+ jj_la1[41] = jj_gen;
;
}
jj_consume_token(RPAREN);
@@ -1563,7 +1646,7 @@ public class ELParser/*@bgen(jjtree)*/im
Null();
break;
default:
- jj_la1[41] = jj_gen;
+ jj_la1[42] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -1600,7 +1683,7 @@ public class ELParser/*@bgen(jjtree)*/im
}
break;
default:
- jj_la1[42] = jj_gen;
+ jj_la1[43] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -1715,174 +1798,146 @@ public class ELParser/*@bgen(jjtree)*/im
finally { jj_save(3, xla); }
}
- private boolean jj_3R_32() {
- if (jj_3R_38()) return true;
- Token xsp;
- while (true) {
- xsp = jj_scanpos;
- if (jj_3R_39()) { jj_scanpos = xsp; break; }
- }
- return false;
- }
-
- private boolean jj_3R_73() {
- if (jj_scan_token(INTEGER_LITERAL)) return true;
- return false;
- }
-
- private boolean jj_3R_41() {
- if (jj_scan_token(MINUS)) return true;
- return false;
- }
-
- private boolean jj_3R_40() {
- if (jj_scan_token(PLUS)) return true;
- return false;
- }
-
- private boolean jj_3R_33() {
- Token xsp;
- xsp = jj_scanpos;
- if (jj_3R_40()) {
- jj_scanpos = xsp;
- if (jj_3R_41()) return true;
- }
- return false;
+ private boolean jj_2_5(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ try { return !jj_3_5(); }
+ catch(LookaheadSuccess ls) { return true; }
+ finally { jj_save(4, xla); }
}
- private boolean jj_3R_72() {
+ private boolean jj_3R_77() {
if (jj_scan_token(FLOATING_POINT_LITERAL)) return true;
return false;
}
- private boolean jj_3R_28() {
- if (jj_3R_32()) return true;
+ private boolean jj_3R_33() {
+ if (jj_3R_37()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
- if (jj_3R_33()) { jj_scanpos = xsp; break; }
+ if (jj_3R_38()) { jj_scanpos = xsp; break; }
}
return false;
}
- private boolean jj_3R_81() {
+ private boolean jj_3R_86() {
if (jj_scan_token(FALSE)) return true;
return false;
}
- private boolean jj_3R_37() {
+ private boolean jj_3R_42() {
Token xsp;
xsp = jj_scanpos;
- if (jj_scan_token(28)) {
+ if (jj_scan_token(29)) {
jj_scanpos = xsp;
- if (jj_scan_token(29)) return true;
+ if (jj_scan_token(30)) return true;
}
return false;
}
- private boolean jj_3R_36() {
+ private boolean jj_3R_85() {
+ if (jj_scan_token(TRUE)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_41() {
Token xsp;
xsp = jj_scanpos;
- if (jj_scan_token(30)) {
+ if (jj_scan_token(31)) {
jj_scanpos = xsp;
- if (jj_scan_token(31)) return true;
+ if (jj_scan_token(32)) return true;
}
return false;
}
- private boolean jj_3R_71() {
+ private boolean jj_3R_76() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_80()) {
+ if (jj_3R_85()) {
jj_scanpos = xsp;
- if (jj_3R_81()) return true;
+ if (jj_3R_86()) return true;
}
return false;
}
- private boolean jj_3R_80() {
- if (jj_scan_token(TRUE)) return true;
- return false;
- }
-
- private boolean jj_3R_35() {
+ private boolean jj_3R_40() {
Token xsp;
xsp = jj_scanpos;
- if (jj_scan_token(24)) {
+ if (jj_scan_token(25)) {
jj_scanpos = xsp;
- if (jj_scan_token(25)) return true;
+ if (jj_scan_token(26)) return true;
}
return false;
}
- private boolean jj_3R_34() {
+ private boolean jj_3R_39() {
Token xsp;
xsp = jj_scanpos;
- if (jj_scan_token(26)) {
+ if (jj_scan_token(27)) {
jj_scanpos = xsp;
- if (jj_scan_token(27)) return true;
+ if (jj_scan_token(28)) return true;
}
return false;
}
- private boolean jj_3R_29() {
+ private boolean jj_3R_34() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_34()) {
+ if (jj_3R_39()) {
jj_scanpos = xsp;
- if (jj_3R_35()) {
+ if (jj_3R_40()) {
jj_scanpos = xsp;
- if (jj_3R_36()) {
+ if (jj_3R_41()) {
jj_scanpos = xsp;
- if (jj_3R_37()) return true;
+ if (jj_3R_42()) return true;
}
}
}
return false;
}
- private boolean jj_3R_63() {
- if (jj_3R_75()) return true;
+ private boolean jj_3R_68() {
+ if (jj_3R_80()) return true;
return false;
}
- private boolean jj_3R_62() {
- if (jj_3R_74()) return true;
+ private boolean jj_3R_67() {
+ if (jj_3R_79()) return true;
return false;
}
- private boolean jj_3R_61() {
- if (jj_3R_73()) return true;
+ private boolean jj_3R_66() {
+ if (jj_3R_78()) return true;
return false;
}
- private boolean jj_3R_26() {
- if (jj_3R_28()) return true;
+ private boolean jj_3R_30() {
+ if (jj_3R_33()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
- if (jj_3R_29()) { jj_scanpos = xsp; break; }
+ if (jj_3R_34()) { jj_scanpos = xsp; break; }
}
return false;
}
- private boolean jj_3R_60() {
- if (jj_3R_72()) return true;
+ private boolean jj_3R_65() {
+ if (jj_3R_77()) return true;
return false;
}
- private boolean jj_3R_55() {
+ private boolean jj_3R_60() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_59()) {
+ if (jj_3R_64()) {
jj_scanpos = xsp;
- if (jj_3R_60()) {
+ if (jj_3R_65()) {
jj_scanpos = xsp;
- if (jj_3R_61()) {
+ if (jj_3R_66()) {
jj_scanpos = xsp;
- if (jj_3R_62()) {
+ if (jj_3R_67()) {
jj_scanpos = xsp;
- if (jj_3R_63()) return true;
+ if (jj_3R_68()) return true;
}
}
}
@@ -1890,244 +1945,275 @@ public class ELParser/*@bgen(jjtree)*/im
return false;
}
- private boolean jj_3R_59() {
- if (jj_3R_71()) return true;
+ private boolean jj_3R_64() {
+ if (jj_3R_76()) return true;
return false;
}
- private boolean jj_3R_31() {
+ private boolean jj_3R_36() {
Token xsp;
xsp = jj_scanpos;
- if (jj_scan_token(34)) {
+ if (jj_scan_token(35)) {
jj_scanpos = xsp;
- if (jj_scan_token(35)) return true;
+ if (jj_scan_token(36)) return true;
}
return false;
}
- private boolean jj_3R_30() {
+ private boolean jj_3R_35() {
Token xsp;
xsp = jj_scanpos;
- if (jj_scan_token(32)) {
+ if (jj_scan_token(33)) {
jj_scanpos = xsp;
- if (jj_scan_token(33)) return true;
+ if (jj_scan_token(34)) return true;
}
return false;
}
- private boolean jj_3R_27() {
+ private boolean jj_3R_31() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_30()) {
+ if (jj_3R_35()) {
jj_scanpos = xsp;
- if (jj_3R_31()) return true;
+ if (jj_3R_36()) return true;
}
return false;
}
- private boolean jj_3R_25() {
+ private boolean jj_3R_28() {
Token xsp;
xsp = jj_scanpos;
- if (jj_scan_token(38)) {
+ if (jj_scan_token(39)) {
jj_scanpos = xsp;
- if (jj_scan_token(39)) return true;
+ if (jj_scan_token(40)) return true;
}
return false;
}
- private boolean jj_3R_24() {
- if (jj_3R_26()) return true;
+ private boolean jj_3R_27() {
+ if (jj_3R_30()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
- if (jj_3R_27()) { jj_scanpos = xsp; break; }
+ if (jj_3R_31()) { jj_scanpos = xsp; break; }
}
return false;
}
- private boolean jj_3_4() {
+ private boolean jj_3_5() {
if (jj_scan_token(IDENTIFIER)) return true;
if (jj_scan_token(COLON)) return true;
return false;
}
- private boolean jj_3R_76() {
+ private boolean jj_3R_81() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3_4()) jj_scanpos = xsp;
+ if (jj_3_5()) jj_scanpos = xsp;
if (jj_scan_token(IDENTIFIER)) return true;
if (jj_scan_token(LPAREN)) return true;
return false;
}
- private boolean jj_3R_20() {
- if (jj_3R_24()) return true;
+ private boolean jj_3R_23() {
+ if (jj_3R_27()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
- if (jj_3R_25()) { jj_scanpos = xsp; break; }
+ if (jj_3R_28()) { jj_scanpos = xsp; break; }
}
return false;
}
- private boolean jj_3R_21() {
+ private boolean jj_3R_24() {
Token xsp;
xsp = jj_scanpos;
- if (jj_scan_token(40)) {
+ if (jj_scan_token(41)) {
jj_scanpos = xsp;
- if (jj_scan_token(41)) return true;
+ if (jj_scan_token(42)) return true;
}
return false;
}
- private boolean jj_3R_18() {
- if (jj_3R_20()) return true;
+ private boolean jj_3R_21() {
+ if (jj_3R_23()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
- if (jj_3R_21()) { jj_scanpos = xsp; break; }
+ if (jj_3R_24()) { jj_scanpos = xsp; break; }
}
return false;
}
- private boolean jj_3R_77() {
+ private boolean jj_3R_82() {
if (jj_scan_token(IDENTIFIER)) return true;
return false;
}
- private boolean jj_3_1() {
+ private boolean jj_3_2() {
if (jj_scan_token(QUESTIONMARK)) return true;
- if (jj_3R_15()) return true;
+ if (jj_3R_18()) return true;
if (jj_scan_token(COLON)) return true;
return false;
}
- private boolean jj_3R_15() {
- if (jj_3R_18()) return true;
+ private boolean jj_3_1() {
+ if (jj_scan_token(ASSIGN)) return true;
+ if (jj_3R_17()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_18() {
+ if (jj_3R_21()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
- if (jj_3_1()) { jj_scanpos = xsp; break; }
+ if (jj_3_2()) { jj_scanpos = xsp; break; }
}
return false;
}
- private boolean jj_3R_23() {
+ private boolean jj_3R_26() {
if (jj_scan_token(COMMA)) return true;
return false;
}
- private boolean jj_3R_84() {
- if (jj_3R_22()) return true;
+ private boolean jj_3R_89() {
+ if (jj_3R_25()) return true;
return false;
}
- private boolean jj_3R_83() {
- if (jj_3R_84()) return true;
+ private boolean jj_3R_88() {
+ if (jj_3R_89()) return true;
return false;
}
- private boolean jj_3R_82() {
- if (jj_3R_22()) return true;
+ private boolean jj_3R_32() {
+ if (jj_scan_token(SEMICOLON)) return true;
return false;
}
- private boolean jj_3R_22() {
- if (jj_3R_15()) return true;
+ private boolean jj_3R_87() {
+ if (jj_3R_25()) return true;
return false;
}
- private boolean jj_3R_79() {
+ private boolean jj_3R_84() {
if (jj_scan_token(START_SET_OR_MAP)) return true;
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_83()) jj_scanpos = xsp;
+ if (jj_3R_88()) jj_scanpos = xsp;
if (jj_scan_token(RCURL)) return true;
return false;
}
- private boolean jj_3R_19() {
- if (jj_3R_22()) return true;
+ private boolean jj_3R_17() {
+ if (jj_3R_18()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
- if (jj_3R_23()) { jj_scanpos = xsp; break; }
+ if (jj_3_1()) { jj_scanpos = xsp; break; }
}
return false;
}
- private boolean jj_3R_78() {
+ private boolean jj_3R_83() {
if (jj_scan_token(LBRACK)) return true;
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_82()) jj_scanpos = xsp;
+ if (jj_3R_87()) jj_scanpos = xsp;
if (jj_scan_token(RBRACK)) return true;
return false;
}
- private boolean jj_3R_16() {
+ private boolean jj_3R_22() {
+ if (jj_3R_25()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_26()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_29() {
+ if (jj_3R_17()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_32()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_19() {
if (jj_scan_token(IDENTIFIER)) return true;
if (jj_scan_token(COLON)) return true;
return false;
}
- private boolean jj_3_2() {
+ private boolean jj_3_3() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_16()) jj_scanpos = xsp;
+ if (jj_3R_19()) jj_scanpos = xsp;
if (jj_scan_token(IDENTIFIER)) return true;
if (jj_scan_token(LPAREN)) return true;
return false;
}
- private boolean jj_3R_17() {
+ private boolean jj_3R_20() {
if (jj_scan_token(START_SET_OR_MAP)) return true;
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_19()) jj_scanpos = xsp;
+ if (jj_3R_22()) jj_scanpos = xsp;
if (jj_scan_token(RCURL)) return true;
return false;
}
- private boolean jj_3R_68() {
- if (jj_3R_79()) return true;
+ private boolean jj_3R_25() {
+ if (jj_3R_29()) return true;
return false;
}
- private boolean jj_3R_67() {
- if (jj_3R_78()) return true;
+ private boolean jj_3R_73() {
+ if (jj_3R_84()) return true;
return false;
}
- private boolean jj_3_3() {
- if (jj_3R_17()) return true;
+ private boolean jj_3R_72() {
+ if (jj_3R_83()) return true;
return false;
}
- private boolean jj_3R_66() {
- if (jj_3R_77()) return true;
+ private boolean jj_3_4() {
+ if (jj_3R_20()) return true;
return false;
}
- private boolean jj_3R_65() {
- if (jj_3R_76()) return true;
+ private boolean jj_3R_71() {
+ if (jj_3R_82()) return true;
return false;
}
- private boolean jj_3R_56() {
+ private boolean jj_3R_70() {
+ if (jj_3R_81()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_61() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_64()) {
+ if (jj_3R_69()) {
jj_scanpos = xsp;
- if (jj_3R_65()) {
+ if (jj_3R_70()) {
jj_scanpos = xsp;
- if (jj_3R_66()) {
+ if (jj_3R_71()) {
jj_scanpos = xsp;
- if (jj_3_3()) {
+ if (jj_3_4()) {
jj_scanpos = xsp;
- if (jj_3R_67()) {
+ if (jj_3R_72()) {
jj_scanpos = xsp;
- if (jj_3R_68()) return true;
+ if (jj_3R_73()) return true;
}
}
}
@@ -2136,169 +2222,204 @@ public class ELParser/*@bgen(jjtree)*/im
return false;
}
- private boolean jj_3R_64() {
+ private boolean jj_3R_69() {
if (jj_scan_token(LPAREN)) return true;
- if (jj_3R_22()) return true;
+ if (jj_3R_25()) return true;
return false;
}
- private boolean jj_3R_70() {
+ private boolean jj_3R_75() {
if (jj_scan_token(LBRACK)) return true;
return false;
}
- private boolean jj_3R_58() {
- if (jj_3R_70()) return true;
+ private boolean jj_3R_63() {
+ if (jj_3R_75()) return true;
return false;
}
- private boolean jj_3R_69() {
+ private boolean jj_3R_74() {
if (jj_scan_token(DOT)) return true;
return false;
}
- private boolean jj_3R_57() {
- if (jj_3R_69()) return true;
+ private boolean jj_3R_62() {
+ if (jj_3R_74()) return true;
return false;
}
- private boolean jj_3R_54() {
+ private boolean jj_3R_59() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_57()) {
+ if (jj_3R_62()) {
jj_scanpos = xsp;
- if (jj_3R_58()) return true;
+ if (jj_3R_63()) return true;
}
return false;
}
- private boolean jj_3R_51() {
- if (jj_3R_54()) return true;
+ private boolean jj_3R_56() {
+ if (jj_3R_59()) return true;
return false;
}
- private boolean jj_3R_53() {
- if (jj_3R_56()) return true;
+ private boolean jj_3R_58() {
+ if (jj_3R_61()) return true;
return false;
}
- private boolean jj_3R_50() {
+ private boolean jj_3R_55() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_52()) {
+ if (jj_3R_57()) {
jj_scanpos = xsp;
- if (jj_3R_53()) return true;
+ if (jj_3R_58()) return true;
}
return false;
}
- private boolean jj_3R_52() {
- if (jj_3R_55()) return true;
+ private boolean jj_3R_57() {
+ if (jj_3R_60()) return true;
return false;
}
- private boolean jj_3R_49() {
- if (jj_3R_50()) return true;
+ private boolean jj_3R_54() {
+ if (jj_3R_55()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
- if (jj_3R_51()) { jj_scanpos = xsp; break; }
+ if (jj_3R_56()) { jj_scanpos = xsp; break; }
}
return false;
}
- private boolean jj_3R_45() {
- if (jj_3R_49()) return true;
+ private boolean jj_3R_50() {
+ if (jj_3R_54()) return true;
return false;
}
- private boolean jj_3R_44() {
+ private boolean jj_3R_49() {
if (jj_scan_token(EMPTY)) return true;
- if (jj_3R_38()) return true;
+ if (jj_3R_43()) return true;
return false;
}
- private boolean jj_3R_43() {
+ private boolean jj_3R_48() {
Token xsp;
xsp = jj_scanpos;
- if (jj_scan_token(36)) {
+ if (jj_scan_token(37)) {
jj_scanpos = xsp;
- if (jj_scan_token(37)) return true;
+ if (jj_scan_token(38)) return true;
}
- if (jj_3R_38()) return true;
- return false;
- }
-
- private boolean jj_3R_42() {
- if (jj_scan_token(MINUS)) return true;
- if (jj_3R_38()) return true;
+ if (jj_3R_43()) return true;
return false;
}
- private boolean jj_3R_38() {
+ private boolean jj_3R_43() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_42()) {
+ if (jj_3R_47()) {
jj_scanpos = xsp;
- if (jj_3R_43()) {
+ if (jj_3R_48()) {
jj_scanpos = xsp;
- if (jj_3R_44()) {
+ if (jj_3R_49()) {
jj_scanpos = xsp;
- if (jj_3R_45()) return true;
+ if (jj_3R_50()) return true;
}
}
}
return false;
}
- private boolean jj_3R_75() {
+ private boolean jj_3R_47() {
+ if (jj_scan_token(MINUS)) return true;
+ if (jj_3R_43()) return true;
+ return false;
+ }
+
+ private boolean jj_3R_80() {
if (jj_scan_token(NULL)) return true;
return false;
}
- private boolean jj_3R_48() {
+ private boolean jj_3R_53() {
Token xsp;
xsp = jj_scanpos;
- if (jj_scan_token(50)) {
+ if (jj_scan_token(51)) {
jj_scanpos = xsp;
- if (jj_scan_token(51)) return true;
+ if (jj_scan_token(52)) return true;
}
return false;
}
- private boolean jj_3R_47() {
+ private boolean jj_3R_52() {
Token xsp;
xsp = jj_scanpos;
- if (jj_scan_token(48)) {
+ if (jj_scan_token(49)) {
jj_scanpos = xsp;
- if (jj_scan_token(49)) return true;
+ if (jj_scan_token(50)) return true;
}
return false;
}
- private boolean jj_3R_39() {
+ private boolean jj_3R_44() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_46()) {
+ if (jj_3R_51()) {
jj_scanpos = xsp;
- if (jj_3R_47()) {
+ if (jj_3R_52()) {
jj_scanpos = xsp;
- if (jj_3R_48()) return true;
+ if (jj_3R_53()) return true;
}
}
return false;
}
- private boolean jj_3R_46() {
+ private boolean jj_3R_51() {
if (jj_scan_token(MULT)) return true;
return false;
}
- private boolean jj_3R_74() {
+ private boolean jj_3R_79() {
if (jj_scan_token(STRING_LITERAL)) return true;
return false;
}
+ private boolean jj_3R_37() {
+ if (jj_3R_43()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_44()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ private boolean jj_3R_78() {
+ if (jj_scan_token(INTEGER_LITERAL)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_46() {
+ if (jj_scan_token(MINUS)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_45() {
+ if (jj_scan_token(PLUS)) return true;
+ return false;
+ }
+
+ private boolean jj_3R_38() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_45()) {
+ jj_scanpos = xsp;
+ if (jj_3R_46()) return true;
+ }
+ return false;
+ }
+
/** Generated Token Manager. */
public ELParserTokenManager token_source;
SimpleCharStream jj_input_stream;
@@ -2310,7 +2431,7 @@ public class ELParser/*@bgen(jjtree)*/im
private Token jj_scanpos, jj_lastpos;
private int jj_la;
private int jj_gen;
- final private int[] jj_la1 = new int[43];
+ final private int[] jj_la1 = new int[44];
static private int[] jj_la1_0;
static private int[] jj_la1_1;
static {
@@ -2318,12 +2439,12 @@ public class ELParser/*@bgen(jjtree)*/im
jj_la1_init_1();
}
private static void jj_la1_init_0() {
- jj_la1_0 = new int[]
{0xe,0xe,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff000000,0xc000000,0x3000000,0xc0000000,0x30000000,0xff000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x15ed00,0x120000,0x15ed00,0x120000,0x40000,0x800000,0x15ed00,0x40000,0x0,0x100100,0x800000,0x15ed00,0x800000,0x15ed00,0x800000,0x15ed00,0x800000,0x15ed00,0x1ec00,0xc000,};
+ jj_la1_0 = new int[]
{0xe,0xe,0x800000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xfe000000,0x18000000,0x6000000,0x80000000,0x60000000,0xfe000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x15ed00,0x120000,0x15ed00,0x120000,0x40000,0x1000000,0x15ed00,0x40000,0x0,0x100100,0x1000000,0x15ed00,0x1000000,0x15ed00,0x1000000,0x15ed00,0x1000000,0x15ed00,0x1ec00,0xc000,};
}
private static void jj_la1_init_1() {
- jj_la1_1 = new int[]
{0x0,0x0,0x300,0x300,0xc0,0xc0,0xf,0x3,0xc,0xf,0x0,0x0,0x0,0x0,0x0,0x0,0x6000,0x6000,0xf1000,0x30000,0xc0000,0xf1000,0x30,0x104430,0x0,0x100000,0x0,0x0,0x0,0x104430,0x0,0x100000,0x0,0x0,0x104430,0x0,0x104430,0x0,0x104430,0x0,0x104430,0x0,0x0,};
+ jj_la1_1 = new int[]
{0x0,0x0,0x0,0x600,0x600,0x180,0x180,0x1e,0x6,0x18,0x1e,0x1,0x0,0x0,0x1,0x0,0x1,0xc000,0xc000,0x1e2000,0x60000,0x180000,0x1e2000,0x60,0x408860,0x0,0x400000,0x0,0x0,0x0,0x408860,0x0,0x400000,0x0,0x0,0x408860,0x0,0x408860,0x0,0x408860,0x0,0x408860,0x0,0x0,};
}
- final private JJCalls[] jj_2_rtns = new JJCalls[4];
+ final private JJCalls[] jj_2_rtns = new JJCalls[5];
private boolean jj_rescan = false;
private int jj_gc = 0;
@@ -2338,7 +2459,7 @@ public class ELParser/*@bgen(jjtree)*/im
token = new Token();
jj_ntk = -1;
jj_gen = 0;
- for (int i = 0; i < 43; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 44; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -2354,7 +2475,7 @@ public class ELParser/*@bgen(jjtree)*/im
jj_ntk = -1;
jjtree.reset();
jj_gen = 0;
- for (int i = 0; i < 43; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 44; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -2365,7 +2486,7 @@ public class ELParser/*@bgen(jjtree)*/im
token = new Token();
jj_ntk = -1;
jj_gen = 0;
- for (int i = 0; i < 43; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 44; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -2377,7 +2498,7 @@ public class ELParser/*@bgen(jjtree)*/im
jj_ntk = -1;
jjtree.reset();
jj_gen = 0;
- for (int i = 0; i < 43; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 44; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -2387,7 +2508,7 @@ public class ELParser/*@bgen(jjtree)*/im
token = new Token();
jj_ntk = -1;
jj_gen = 0;
- for (int i = 0; i < 43; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 44; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -2398,7 +2519,7 @@ public class ELParser/*@bgen(jjtree)*/im
jj_ntk = -1;
jjtree.reset();
jj_gen = 0;
- for (int i = 0; i < 43; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 44; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -2510,12 +2631,12 @@ public class ELParser/*@bgen(jjtree)*/im
/** Generate ParseException. */
public ParseException generateParseException() {
jj_expentries.clear();
- boolean[] la1tokens = new boolean[58];
+ boolean[] la1tokens = new boolean[60];
if (jj_kind >= 0) {
la1tokens[jj_kind] = true;
jj_kind = -1;
}
- for (int i = 0; i < 43; i++) {
+ for (int i = 0; i < 44; i++) {
if (jj_la1[i] == jj_gen) {
for (int j = 0; j < 32; j++) {
if ((jj_la1_0[i] & (1<<j)) != 0) {
@@ -2527,7 +2648,7 @@ public class ELParser/*@bgen(jjtree)*/im
}
}
}
- for (int i = 0; i < 58; i++) {
+ for (int i = 0; i < 60; i++) {
if (la1tokens[i]) {
jj_expentry = new int[1];
jj_expentry[0] = i;
@@ -2554,7 +2675,7 @@ public class ELParser/*@bgen(jjtree)*/im
private void jj_rescan_token() {
jj_rescan = true;
- for (int i = 0; i < 4; i++) {
+ for (int i = 0; i < 5; i++) {
try {
JJCalls p = jj_2_rtns[i];
do {
@@ -2565,6 +2686,7 @@ public class ELParser/*@bgen(jjtree)*/im
case 1: jj_3_2(); break;
case 2: jj_3_3(); break;
case 3: jj_3_4(); break;
+ case 4: jj_3_5(); break;
}
}
p = p.next;
Modified: tomcat/trunk/java/org/apache/el/parser/ELParser.jjt
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/el/parser/ELParser.jjt?rev=1502876&r1=1502875&r2=1502876&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/el/parser/ELParser.jjt (original)
+++ tomcat/trunk/java/org/apache/el/parser/ELParser.jjt Sat Jul 13 20:40:39 2013
@@ -83,7 +83,7 @@ void DeferredExpression() #DeferredExpre
/*
* DynamicExpression
- * ${..} Expressions
+ * ${...} Expressions
*/
void DynamicExpression() #DynamicExpression : {}
{
@@ -96,7 +96,23 @@ void DynamicExpression() #DynamicExpress
*/
void Expression() : {}
{
- Choice()
+ Semicolon()
+}
+
+/*
+ * Semicolon
+ */
+void Semicolon() : {}
+{
+ Assignment() ( <SEMICOLON> Assignment() #Semicolon(2) )*
+}
+
+/*
+ * Assignment
+ */
+void Assignment() : {}
+{
+ Choice() ( LOOKAHEAD(2) <ASSIGN> Assignment() #Assign(2) )*
}
/*
@@ -440,6 +456,7 @@ java.util.Deque<Integer> deque = new jav
| < LBRACK : "[" >
| < RBRACK : "]" >
| < COLON : ":" >
+| < SEMICOLON : ";" >
| < COMMA : "," >
| < GT0 : ">" >
| < GT1 : "gt" >
@@ -469,6 +486,7 @@ java.util.Deque<Integer> deque = new jav
| < DIV1 : "div" >
| < MOD0 : "%" >
| < MOD1 : "mod" >
+| < ASSIGN : "=" >
| < IDENTIFIER : (<LETTER>|<IMPL_OBJ_START>) (<LETTER>|<DIGIT>)* >
| < FUNCTIONSUFFIX : (<IDENTIFIER>) >
| < #IMPL_OBJ_START: "#" >
Modified: tomcat/trunk/java/org/apache/el/parser/ELParserConstants.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/el/parser/ELParserConstants.java?rev=1502876&r1=1502875&r2=1502876&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/el/parser/ELParserConstants.java (original)
+++ tomcat/trunk/java/org/apache/el/parser/ELParserConstants.java Sat Jul 13
20:40:39 2013
@@ -47,75 +47,79 @@ public interface ELParserConstants {
/** RegularExpression Id. */
int COLON = 22;
/** RegularExpression Id. */
- int COMMA = 23;
+ int SEMICOLON = 23;
/** RegularExpression Id. */
- int GT0 = 24;
+ int COMMA = 24;
/** RegularExpression Id. */
- int GT1 = 25;
+ int GT0 = 25;
/** RegularExpression Id. */
- int LT0 = 26;
+ int GT1 = 26;
/** RegularExpression Id. */
- int LT1 = 27;
+ int LT0 = 27;
/** RegularExpression Id. */
- int GE0 = 28;
+ int LT1 = 28;
/** RegularExpression Id. */
- int GE1 = 29;
+ int GE0 = 29;
/** RegularExpression Id. */
- int LE0 = 30;
+ int GE1 = 30;
/** RegularExpression Id. */
- int LE1 = 31;
+ int LE0 = 31;
/** RegularExpression Id. */
- int EQ0 = 32;
+ int LE1 = 32;
/** RegularExpression Id. */
- int EQ1 = 33;
+ int EQ0 = 33;
/** RegularExpression Id. */
- int NE0 = 34;
+ int EQ1 = 34;
/** RegularExpression Id. */
- int NE1 = 35;
+ int NE0 = 35;
/** RegularExpression Id. */
- int NOT0 = 36;
+ int NE1 = 36;
/** RegularExpression Id. */
- int NOT1 = 37;
+ int NOT0 = 37;
/** RegularExpression Id. */
- int AND0 = 38;
+ int NOT1 = 38;
/** RegularExpression Id. */
- int AND1 = 39;
+ int AND0 = 39;
/** RegularExpression Id. */
- int OR0 = 40;
+ int AND1 = 40;
/** RegularExpression Id. */
- int OR1 = 41;
+ int OR0 = 41;
/** RegularExpression Id. */
- int EMPTY = 42;
+ int OR1 = 42;
/** RegularExpression Id. */
- int INSTANCEOF = 43;
+ int EMPTY = 43;
/** RegularExpression Id. */
- int MULT = 44;
+ int INSTANCEOF = 44;
/** RegularExpression Id. */
- int PLUS = 45;
+ int MULT = 45;
/** RegularExpression Id. */
- int MINUS = 46;
+ int PLUS = 46;
/** RegularExpression Id. */
- int QUESTIONMARK = 47;
+ int MINUS = 47;
/** RegularExpression Id. */
- int DIV0 = 48;
+ int QUESTIONMARK = 48;
/** RegularExpression Id. */
- int DIV1 = 49;
+ int DIV0 = 49;
/** RegularExpression Id. */
- int MOD0 = 50;
+ int DIV1 = 50;
/** RegularExpression Id. */
- int MOD1 = 51;
+ int MOD0 = 51;
/** RegularExpression Id. */
- int IDENTIFIER = 52;
+ int MOD1 = 52;
/** RegularExpression Id. */
- int FUNCTIONSUFFIX = 53;
+ int ASSIGN = 53;
/** RegularExpression Id. */
- int IMPL_OBJ_START = 54;
+ int IDENTIFIER = 54;
/** RegularExpression Id. */
- int LETTER = 55;
+ int FUNCTIONSUFFIX = 55;
/** RegularExpression Id. */
- int DIGIT = 56;
+ int IMPL_OBJ_START = 56;
/** RegularExpression Id. */
- int ILLEGAL_CHARACTER = 57;
+ int LETTER = 57;
+ /** RegularExpression Id. */
+ int DIGIT = 58;
+ /** RegularExpression Id. */
+ int ILLEGAL_CHARACTER = 59;
/** Lexical state. */
int DEFAULT = 0;
@@ -149,6 +153,7 @@ public interface ELParserConstants {
"\"[\"",
"\"]\"",
"\":\"",
+ "\";\"",
"\",\"",
"\">\"",
"\"gt\"",
@@ -178,6 +183,7 @@ public interface ELParserConstants {
"\"div\"",
"\"%\"",
"\"mod\"",
+ "\"=\"",
"<IDENTIFIER>",
"<FUNCTIONSUFFIX>",
"\"#\"",
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]