Author: remy.maucherat(a)jboss.com
Date: 2008-07-11 10:20:12 -0400 (Fri, 11 Jul 2008)
New Revision: 710
Modified:
trunk/java/org/apache/el/parser/ELParser.java
trunk/java/org/apache/el/parser/ELParser.jjt
trunk/java/org/apache/el/parser/ELParserConstants.java
trunk/java/org/apache/el/parser/ELParserTokenManager.java
Log:
- EL parsing update for some funky expressions.
Modified: trunk/java/org/apache/el/parser/ELParser.java
===================================================================
--- trunk/java/org/apache/el/parser/ELParser.java 2008-07-11 14:19:48 UTC (rev 709)
+++ trunk/java/org/apache/el/parser/ELParser.java 2008-07-11 14:20:12 UTC (rev 710)
@@ -963,7 +963,7 @@
case NULL:
case LPAREN:
case IDENTIFIER:
- case NAMESPACE:
+ case FUNCTION_CALL:
Value();
break;
default:
@@ -1033,7 +1033,7 @@
break;
case LPAREN:
case IDENTIFIER:
- case NAMESPACE:
+ case FUNCTION_CALL:
NonLiteral();
break;
default:
@@ -1176,26 +1176,10 @@
/*@bgen(jjtree) Function */
AstFunction jjtn000 = new AstFunction(JJTFUNCTION);
boolean jjtc000 = true;
- jjtree.openNodeScope(jjtn000);Token t0 = null;
- Token t1 = null;
+ jjtree.openNodeScope(jjtn000);Token tx = null;
try {
+ tx = jj_consume_token(FUNCTION_CALL);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
- case NAMESPACE:
- t0 = jj_consume_token(NAMESPACE);
- break;
- default:
- jj_la1[30] = jj_gen;
- ;
- }
- t1 = jj_consume_token(IDENTIFIER);
- if (t0 != null) {
- jjtn000.setPrefix(t0.image.substring(0, t0.image.length() - 1));
- jjtn000.setLocalName(t1.image);
- } else {
- jjtn000.setLocalName(t1.image);
- }
- jj_consume_token(LPAREN);
- switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case INTEGER_LITERAL:
case FLOATING_POINT_LITERAL:
case STRING_LITERAL:
@@ -1208,7 +1192,7 @@
case EMPTY:
case MINUS:
case IDENTIFIER:
- case NAMESPACE:
+ case FUNCTION_CALL:
Expression();
label_10:
while (true) {
@@ -1217,7 +1201,7 @@
;
break;
default:
- jj_la1[31] = jj_gen;
+ jj_la1[30] = jj_gen;
break label_10;
}
jj_consume_token(COMMA);
@@ -1225,10 +1209,19 @@
}
break;
default:
- jj_la1[32] = jj_gen;
+ jj_la1[31] = jj_gen;
;
}
jj_consume_token(RPAREN);
+ jjtree.closeNodeScope(jjtn000, true);
+ jjtc000 = false;
+ int split = tx.image.indexOf(":");
+ if (split!=-1) {
+ jjtn000.setPrefix(tx.image.substring(0, split));
+ jjtn000.setLocalName(tx.image.substring(split + 1,
tx.image.length() - 1));
+ } else {
+ jjtn000.setLocalName(tx.image.substring(0, tx.image.length() -
1));
+ }
} catch (Throwable jjte000) {
if (jjtc000) {
jjtree.clearNodeScope(jjtn000);
@@ -1273,7 +1266,7 @@
Null();
break;
default:
- jj_la1[33] = jj_gen;
+ jj_la1[32] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -1310,7 +1303,7 @@
}
break;
default:
- jj_la1[34] = jj_gen;
+ jj_la1[33] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -1405,34 +1398,61 @@
}
final private boolean jj_3R_11() {
+ if (jj_scan_token(FUNCTION_CALL)) return true;
Token xsp;
xsp = jj_scanpos;
- if (jj_scan_token(54)) jj_scanpos = xsp;
- if (jj_scan_token(IDENTIFIER)) return true;
- if (jj_scan_token(LPAREN)) return true;
- xsp = jj_scanpos;
if (jj_3R_12()) jj_scanpos = xsp;
if (jj_scan_token(RPAREN)) return true;
return false;
}
- final private boolean jj_3R_20() {
- if (jj_3R_21()) return true;
+ final private boolean jj_3R_28() {
+ if (jj_3R_34()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_35()) { jj_scanpos = xsp; break; }
+ }
return false;
}
- final private boolean jj_3R_44() {
+ final private boolean jj_3R_37() {
+ if (jj_scan_token(MINUS)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_29() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_36()) {
+ jj_scanpos = xsp;
+ if (jj_3R_37()) return true;
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_36() {
+ if (jj_scan_token(PLUS)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_69() {
if (jj_scan_token(IDENTIFIER)) return true;
return false;
}
- final private boolean jj_3R_19() {
- if (jj_3R_20()) return true;
+ final private boolean jj_3R_61() {
+ if (jj_3R_69()) return true;
return false;
}
- final private boolean jj_3R_38() {
- if (jj_3R_44()) return true;
+ final private boolean jj_3R_24() {
+ if (jj_3R_28()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_29()) { jj_scanpos = xsp; break; }
+ }
return false;
}
@@ -1441,187 +1461,377 @@
return false;
}
- final private boolean jj_3R_31() {
+ final private boolean jj_3R_33() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_37()) {
+ if (jj_scan_token(29)) {
jj_scanpos = xsp;
+ if (jj_scan_token(30)) return true;
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_60() {
+ if (jj_scan_token(LPAREN)) return true;
+ if (jj_3R_13()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_52() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_60()) {
+ jj_scanpos = xsp;
if (jj_3_1()) {
jj_scanpos = xsp;
- if (jj_3R_38()) return true;
+ if (jj_3R_61()) return true;
}
}
return false;
}
- final private boolean jj_3R_37() {
- if (jj_scan_token(LPAREN)) return true;
+ final private boolean jj_3R_32() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(31)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(32)) return true;
+ }
return false;
}
- final private boolean jj_3R_43() {
+ final private boolean jj_3R_31() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(25)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(26)) return true;
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_68() {
if (jj_scan_token(NULL)) return true;
return false;
}
- final private boolean jj_3R_42() {
+ final private boolean jj_3R_25() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_30()) {
+ jj_scanpos = xsp;
+ if (jj_3R_31()) {
+ jj_scanpos = xsp;
+ if (jj_3R_32()) {
+ jj_scanpos = xsp;
+ if (jj_3R_33()) return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_30() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(27)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(28)) return true;
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_63() {
+ if (jj_scan_token(LBRACK)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_67() {
if (jj_scan_token(STRING_LITERAL)) return true;
return false;
}
- final private boolean jj_3R_18() {
- if (jj_3R_19()) return true;
+ final private boolean jj_3R_54() {
+ if (jj_3R_63()) return true;
return false;
}
- final private boolean jj_3R_41() {
+ final private boolean jj_3R_22() {
+ if (jj_3R_24()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_25()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_27() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(35)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(36)) return true;
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_62() {
+ if (jj_scan_token(DOT)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_26() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(33)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(34)) return true;
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_23() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_26()) {
+ jj_scanpos = xsp;
+ if (jj_3R_27()) return true;
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_66() {
if (jj_scan_token(INTEGER_LITERAL)) return true;
return false;
}
- final private boolean jj_3R_17() {
- if (jj_3R_18()) return true;
+ final private boolean jj_3R_21() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(39)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(40)) return true;
+ }
return false;
}
- final private boolean jj_3R_40() {
+ final private boolean jj_3R_53() {
+ if (jj_3R_62()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_50() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_53()) {
+ jj_scanpos = xsp;
+ if (jj_3R_54()) return true;
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_20() {
+ if (jj_3R_22()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_23()) { jj_scanpos = xsp; break; }
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_47() {
+ if (jj_3R_50()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_65() {
if (jj_scan_token(FLOATING_POINT_LITERAL)) return true;
return false;
}
- final private boolean jj_3R_29() {
- if (jj_3R_31()) return true;
+ final private boolean jj_3R_49() {
+ if (jj_3R_52()) return true;
return false;
}
- final private boolean jj_3R_46() {
+ final private boolean jj_3R_14() {
+ if (jj_scan_token(COMMA)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_71() {
if (jj_scan_token(FALSE)) return true;
return false;
}
- final private boolean jj_3R_16() {
- if (jj_3R_17()) return true;
+ final private boolean jj_3R_48() {
+ if (jj_3R_51()) return true;
return false;
}
- final private boolean jj_3R_27() {
+ final private boolean jj_3R_46() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_28()) {
+ if (jj_3R_48()) {
jj_scanpos = xsp;
- if (jj_3R_29()) return true;
+ if (jj_3R_49()) return true;
}
return false;
}
- final private boolean jj_3R_28() {
- if (jj_3R_30()) return true;
+ final private boolean jj_3R_18() {
+ if (jj_3R_20()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_21()) { jj_scanpos = xsp; break; }
+ }
return false;
}
- final private boolean jj_3R_45() {
+ final private boolean jj_3R_19() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(41)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(42)) return true;
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_70() {
if (jj_scan_token(TRUE)) return true;
return false;
}
- final private boolean jj_3R_39() {
+ final private boolean jj_3R_64() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_45()) {
+ if (jj_3R_70()) {
jj_scanpos = xsp;
+ if (jj_3R_71()) return true;
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_45() {
if (jj_3R_46()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_47()) { jj_scanpos = xsp; break; }
}
return false;
}
- final private boolean jj_3R_15() {
- if (jj_3R_16()) return true;
+ final private boolean jj_3R_16() {
+ if (jj_3R_18()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_19()) { jj_scanpos = xsp; break; }
+ }
return false;
}
- final private boolean jj_3R_26() {
- if (jj_3R_27()) return true;
+ final private boolean jj_3R_41() {
+ if (jj_3R_45()) return true;
return false;
}
- final private boolean jj_3R_25() {
- if (jj_3R_26()) return true;
+ final private boolean jj_3R_59() {
+ if (jj_3R_68()) return true;
return false;
}
- final private boolean jj_3R_36() {
- if (jj_3R_43()) return true;
+ final private boolean jj_3R_58() {
+ if (jj_3R_67()) return true;
return false;
}
- final private boolean jj_3R_35() {
- if (jj_3R_42()) return true;
+ final private boolean jj_3R_17() {
+ if (jj_scan_token(QUESTIONMARK)) return true;
return false;
}
- final private boolean jj_3R_24() {
+ final private boolean jj_3R_40() {
if (jj_scan_token(EMPTY)) return true;
+ if (jj_3R_34()) return true;
return false;
}
- final private boolean jj_3R_34() {
- if (jj_3R_41()) return true;
+ final private boolean jj_3R_57() {
+ if (jj_3R_66()) return true;
return false;
}
- final private boolean jj_3R_33() {
- if (jj_3R_40()) return true;
+ final private boolean jj_3R_12() {
+ if (jj_3R_13()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_14()) { jj_scanpos = xsp; break; }
+ }
return false;
}
- final private boolean jj_3R_23() {
+ final private boolean jj_3R_56() {
+ if (jj_3R_65()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_39() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(37)) {
jj_scanpos = xsp;
if (jj_scan_token(38)) return true;
}
+ if (jj_3R_34()) return true;
return false;
}
- final private boolean jj_3R_12() {
- if (jj_3R_13()) return true;
- return false;
- }
-
- final private boolean jj_3R_22() {
- if (jj_scan_token(MINUS)) return true;
- return false;
- }
-
- final private boolean jj_3R_21() {
+ final private boolean jj_3R_34() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_22()) {
+ if (jj_3R_38()) {
jj_scanpos = xsp;
- if (jj_3R_23()) {
+ if (jj_3R_39()) {
jj_scanpos = xsp;
- if (jj_3R_24()) {
+ if (jj_3R_40()) {
jj_scanpos = xsp;
- if (jj_3R_25()) return true;
+ if (jj_3R_41()) return true;
}
}
}
return false;
}
- final private boolean jj_3R_30() {
+ final private boolean jj_3R_38() {
+ if (jj_scan_token(MINUS)) return true;
+ if (jj_3R_34()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_55() {
+ if (jj_3R_64()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_51() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_32()) {
+ if (jj_3R_55()) {
jj_scanpos = xsp;
- if (jj_3R_33()) {
+ if (jj_3R_56()) {
jj_scanpos = xsp;
- if (jj_3R_34()) {
+ if (jj_3R_57()) {
jj_scanpos = xsp;
- if (jj_3R_35()) {
+ if (jj_3R_58()) {
jj_scanpos = xsp;
- if (jj_3R_36()) return true;
+ if (jj_3R_59()) return true;
}
}
}
@@ -1629,21 +1839,59 @@
return false;
}
- final private boolean jj_3R_32() {
- if (jj_3R_39()) return true;
+ final private boolean jj_3R_15() {
+ if (jj_3R_16()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_17()) { jj_scanpos = xsp; break; }
+ }
return false;
}
- final private boolean jj_3R_14() {
- if (jj_3R_15()) return true;
+ final private boolean jj_3R_44() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(51)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(52)) return true;
+ }
return false;
}
final private boolean jj_3R_13() {
- if (jj_3R_14()) return true;
+ if (jj_3R_15()) return true;
return false;
}
+ final private boolean jj_3R_43() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(49)) {
+ jj_scanpos = xsp;
+ if (jj_scan_token(50)) return true;
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_35() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_42()) {
+ jj_scanpos = xsp;
+ if (jj_3R_43()) {
+ jj_scanpos = xsp;
+ if (jj_3R_44()) return true;
+ }
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_42() {
+ if (jj_scan_token(MULT)) return true;
+ return false;
+ }
+
public ELParserTokenManager token_source;
SimpleCharStream jj_input_stream;
public Token token, jj_nt;
@@ -1653,7 +1901,7 @@
public boolean lookingAhead = false;
private boolean jj_semLA;
private int jj_gen;
- final private int[] jj_la1 = new int[35];
+ final private int[] jj_la1 = new int[34];
static private int[] jj_la1_0;
static private int[] jj_la1_1;
static {
@@ -1661,10 +1909,10 @@
jj_la1_1();
}
private static void jj_la1_0() {
- jj_la1_0 = new int[]
{0xe,0xe,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xfe000000,0x18000000,0x6000000,0x80000000,0x60000000,0xfe000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x9d600,0x240000,0x9d600,0x240000,0x80000,0x0,0x0,0x1000000,0x9d600,0x1d600,0xc000,};
+ jj_la1_0 = new int[]
{0xe,0xe,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xfe000000,0x18000000,0x6000000,0x80000000,0x60000000,0xfe000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x9d600,0x240000,0x9d600,0x240000,0x80000,0x0,0x1000000,0x9d600,0x1d600,0xc000,};
}
private static void jj_la1_1() {
- jj_la1_1 = new int[]
{0x0,0x0,0x10000,0x600,0x600,0x180,0x180,0x1e,0x6,0x18,0x1e,0x1,0x0,0x0,0x1,0x0,0x1,0xc000,0xc000,0x1e2000,0x60000,0x180000,0x1e2000,0x60,0x608860,0x0,0x600000,0x0,0x0,0x200000,0x400000,0x0,0x608860,0x0,0x0,};
+ jj_la1_1 = new int[]
{0x0,0x0,0x10000,0x600,0x600,0x180,0x180,0x1e,0x6,0x18,0x1e,0x1,0x0,0x0,0x1,0x0,0x1,0xc000,0xc000,0x1e2000,0x60000,0x180000,0x1e2000,0x60,0x1208860,0x0,0x1200000,0x0,0x0,0x200000,0x0,0x1208860,0x0,0x0,};
}
final private JJCalls[] jj_2_rtns = new JJCalls[1];
private boolean jj_rescan = false;
@@ -1679,7 +1927,7 @@
token = new Token();
jj_ntk = -1;
jj_gen = 0;
- for (int i = 0; i < 35; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 34; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -1693,7 +1941,7 @@
jj_ntk = -1;
jjtree.reset();
jj_gen = 0;
- for (int i = 0; i < 35; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 34; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -1703,7 +1951,7 @@
token = new Token();
jj_ntk = -1;
jj_gen = 0;
- for (int i = 0; i < 35; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 34; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -1714,7 +1962,7 @@
jj_ntk = -1;
jjtree.reset();
jj_gen = 0;
- for (int i = 0; i < 35; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 34; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -1723,7 +1971,7 @@
token = new Token();
jj_ntk = -1;
jj_gen = 0;
- for (int i = 0; i < 35; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 34; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -1733,7 +1981,7 @@
jj_ntk = -1;
jjtree.reset();
jj_gen = 0;
- for (int i = 0; i < 35; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 34; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -1844,15 +2092,15 @@
public ParseException generateParseException() {
jj_expentries.removeAllElements();
- boolean[] la1tokens = new boolean[60];
- for (int i = 0; i < 60; i++) {
+ boolean[] la1tokens = new boolean[62];
+ for (int i = 0; i < 62; i++) {
la1tokens[i] = false;
}
if (jj_kind >= 0) {
la1tokens[jj_kind] = true;
jj_kind = -1;
}
- for (int i = 0; i < 35; i++) {
+ for (int i = 0; i < 34; i++) {
if (jj_la1[i] == jj_gen) {
for (int j = 0; j < 32; j++) {
if ((jj_la1_0[i] & (1<<j)) != 0) {
@@ -1864,7 +2112,7 @@
}
}
}
- for (int i = 0; i < 60; i++) {
+ for (int i = 0; i < 62; i++) {
if (la1tokens[i]) {
jj_expentry = new int[1];
jj_expentry[0] = i;
Modified: trunk/java/org/apache/el/parser/ELParser.jjt
===================================================================
--- trunk/java/org/apache/el/parser/ELParser.jjt 2008-07-11 14:19:48 UTC (rev 709)
+++ trunk/java/org/apache/el/parser/ELParser.jjt 2008-07-11 14:20:12 UTC (rev 710)
@@ -16,22 +16,22 @@
*/
/*
- Author: Jacob Hookom
- Email: jacob at
hookom.net
+ Author: Jacob Hookom
+ Email: jacob at
hookom.net
*/
/* == Option Declaration == */
options
{
- STATIC=false;
- NODE_PREFIX="Ast";
- VISITOR_EXCEPTION="javax.el.ELException";
- VISITOR=false;
- MULTI=true;
- NODE_DEFAULT_VOID=true;
- JAVA_UNICODE_ESCAPE=false;
- UNICODE_INPUT=true;
- BUILD_NODE_FILES=true;
+ STATIC=false;
+ NODE_PREFIX="Ast";
+ VISITOR_EXCEPTION="javax.el.ELException";
+ VISITOR=false;
+ MULTI=true;
+ NODE_DEFAULT_VOID=true;
+ JAVA_UNICODE_ESCAPE=false;
+ UNICODE_INPUT=true;
+ BUILD_NODE_FILES=false;
}
/* == Parser Declaration == */
@@ -44,9 +44,9 @@
public static Node parse(String ref) throws ELException
{
try {
- return (new ELParser(new StringReader(ref))).CompositeExpression();
+ return (new ELParser(new StringReader(ref))).CompositeExpression();
} catch (ParseException pe) {
- throw new ELException(pe.getMessage());
+ throw new ELException(pe.getMessage());
}
}
}
@@ -59,7 +59,7 @@
*/
AstCompositeExpression CompositeExpression() #CompositeExpression : {}
{
- (DeferredExpression() | DynamicExpression() | LiteralExpression())* <EOF> { return
jjtThis; }
+ (DeferredExpression() | DynamicExpression() | LiteralExpression())* <EOF> {
return jjtThis; }
}
/*
@@ -68,7 +68,7 @@
*/
void LiteralExpression() #LiteralExpression : { Token t = null; }
{
- t=<LITERAL_EXPRESSION> { jjtThis.setImage(t.image); }
+ t=<LITERAL_EXPRESSION> { jjtThis.setImage(t.image); }
}
/*
@@ -77,7 +77,7 @@
*/
void DeferredExpression() #DeferredExpression : {}
{
- <START_DEFERRED_EXPRESSION> Expression() <END_EXPRESSION>
+ <START_DEFERRED_EXPRESSION> Expression() <END_EXPRESSION>
}
/*
@@ -86,7 +86,7 @@
*/
void DynamicExpression() #DynamicExpression : {}
{
- <START_DYNAMIC_EXPRESSION> Expression() <END_EXPRESSION>
+ <START_DYNAMIC_EXPRESSION> Expression() <END_EXPRESSION>
}
/*
@@ -95,7 +95,7 @@
*/
void Expression() : {}
{
- Choice()
+ Choice()
}
/*
@@ -104,7 +104,7 @@
*/
void Choice() : {}
{
- Or() (<QUESTIONMARK> Choice() <COLON> Choice() #Choice(3))*
+ Or() (<QUESTIONMARK> Choice() <COLON> Choice() #Choice(3))*
}
/*
@@ -113,7 +113,7 @@
*/
void Or() : {}
{
- And() ((<OR0>|<OR1>) And() #Or(2))*
+ And() ((<OR0>|<OR1>) And() #Or(2))*
}
/*
@@ -122,7 +122,7 @@
*/
void And() : {}
{
- Equality() ((<AND0>|<AND1>) Equality() #And(2))*
+ Equality() ((<AND0>|<AND1>) Equality() #And(2))*
}
/*
@@ -131,12 +131,12 @@
*/
void Equality() : {}
{
- Compare()
- (
- ((<EQ0>|<EQ1>) Compare() #Equal(2))
- |
- ((<NE0>|<NE1>) Compare() #NotEqual(2))
- )*
+ Compare()
+ (
+ ((<EQ0>|<EQ1>) Compare() #Equal(2))
+ |
+ ((<NE0>|<NE1>) Compare() #NotEqual(2))
+ )*
}
/*
@@ -145,16 +145,16 @@
*/
void Compare() : {}
{
- Math()
- (
- ((<LT0>|<LT1>) Math() #LessThan(2))
- |
- ((<GT0>|<GT1>) Math() #GreaterThan(2))
- |
- ((<LE0>|<LE1>) Math() #LessThanEqual(2))
- |
- ((<GE0>|<GE1>) Math() #GreaterThanEqual(2))
- )*
+ Math()
+ (
+ ((<LT0>|<LT1>) Math() #LessThan(2))
+ |
+ ((<GT0>|<GT1>) Math() #GreaterThan(2))
+ |
+ ((<LE0>|<LE1>) Math() #LessThanEqual(2))
+ |
+ ((<GE0>|<GE1>) Math() #GreaterThanEqual(2))
+ )*
}
/*
@@ -163,12 +163,12 @@
*/
void Math() : {}
{
- Multiplication()
- (
- (<PLUS> Multiplication() #Plus(2))
- |
- (<MINUS> Multiplication() #Minus(2))
- )*
+ Multiplication()
+ (
+ (<PLUS> Multiplication() #Plus(2))
+ |
+ (<MINUS> Multiplication() #Minus(2))
+ )*
}
/*
@@ -177,14 +177,14 @@
*/
void Multiplication() : {}
{
- Unary()
- (
- (<MULT> Unary() #Mult(2))
- |
- ((<DIV0>|<DIV1>) Unary() #Div(2))
- |
- ((<MOD0>|<MOD1>) Unary() #Mod(2))
- )*
+ Unary()
+ (
+ (<MULT> Unary() #Mult(2))
+ |
+ ((<DIV0>|<DIV1>) Unary() #Div(2))
+ |
+ ((<MOD0>|<MOD1>) Unary() #Mod(2))
+ )*
}
/*
@@ -193,13 +193,13 @@
*/
void Unary() : {}
{
- <MINUS> Unary() #Negative
- |
- (<NOT0>|<NOT1>) Unary() #Not
- |
- <EMPTY> Unary() #Empty
- |
- Value()
+ <MINUS> Unary() #Negative
+ |
+ (<NOT0>|<NOT1>) Unary() #Not
+ |
+ <EMPTY> Unary() #Empty
+ |
+ Value()
}
/*
@@ -208,7 +208,7 @@
*/
void Value() : {}
{
- (ValuePrefix() (ValueSuffix())*) #Value(>1)
+ (ValuePrefix() (ValueSuffix())*) #Value(>1)
}
/*
@@ -217,8 +217,8 @@
*/
void ValuePrefix() : {}
{
- Literal()
- | NonLiteral()
+ Literal()
+ | NonLiteral()
}
/*
@@ -227,7 +227,7 @@
*/
void ValueSuffix() : {}
{
- DotSuffix() | BracketSuffix()
+ DotSuffix() | BracketSuffix()
}
/*
@@ -236,7 +236,7 @@
*/
void DotSuffix() #DotSuffix : { Token t = null; }
{
- <DOT> t=<IDENTIFIER> { jjtThis.setImage(t.image); }
+ <DOT> t=<IDENTIFIER> { jjtThis.setImage(t.image); }
}
/*
@@ -245,7 +245,7 @@
*/
void BracketSuffix() #BracketSuffix : {}
{
- <LBRACK> Expression() <RBRACK>
+ <LBRACK> Expression() <RBRACK>
}
/*
@@ -254,9 +254,9 @@
*/
void NonLiteral() : {}
{
- <LPAREN> Expression() <RPAREN>
- | LOOKAHEAD(3) Function()
- | Identifier()
+ <LPAREN> Expression() <RPAREN>
+ | LOOKAHEAD(3) Function()
+ | Identifier()
}
/*
@@ -265,7 +265,7 @@
*/
void Identifier() #Identifier : { Token t = null; }
{
- t=<IDENTIFIER> { jjtThis.setImage(t.image); }
+ t=<IDENTIFIER> { jjtThis.setImage(t.image); }
}
/*
@@ -274,20 +274,19 @@
*/
void Function() #Function :
{
- Token t0 = null;
- Token t1 = null;
+ Token tx = null;
}
{
- (t0=<NAMESPACE>)? t1=<IDENTIFIER>
- {
- if (t0 != null) {
- jjtThis.setPrefix(t0.image.substring(0, t0.image.length() - 1));
- jjtThis.setLocalName(t1.image);
- } else {
- jjtThis.setLocalName(t1.image);
- }
- }
- <LPAREN> (Expression() (<COMMA> Expression())*)? <RPAREN>
+ (tx=<FUNCTION_CALL>) (Expression() (<COMMA> Expression())*)?
<RPAREN>
+ {
+ int split = tx.image.indexOf(":");
+ if (split!=-1) {
+ jjtThis.setPrefix(tx.image.substring(0, split));
+ jjtThis.setLocalName(tx.image.substring(split + 1, tx.image.length() - 1));
+ } else {
+ jjtThis.setLocalName(tx.image.substring(0, tx.image.length() - 1));
+ }
+ }
}
/*
@@ -296,11 +295,11 @@
*/
void Literal() : {}
{
- Boolean()
- | FloatingPoint()
- | Integer()
- | String()
- | Null()
+ Boolean()
+ | FloatingPoint()
+ | Integer()
+ | String()
+ | Null()
}
/*
@@ -309,8 +308,8 @@
*/
void Boolean() : {}
{
- <TRUE> #True
- | <FALSE> #False
+ <TRUE> #True
+ | <FALSE> #False
}
/*
@@ -319,7 +318,7 @@
*/
void FloatingPoint() #FloatingPoint : { Token t = null; }
{
- t=<FLOATING_POINT_LITERAL> { jjtThis.setImage(t.image); }
+ t=<FLOATING_POINT_LITERAL> { jjtThis.setImage(t.image); }
}
/*
@@ -328,7 +327,7 @@
*/
void Integer() #Integer : { Token t = null; }
{
- t=<INTEGER_LITERAL> { jjtThis.setImage(t.image); }
+ t=<INTEGER_LITERAL> { jjtThis.setImage(t.image); }
}
/*
@@ -337,7 +336,7 @@
*/
void String() #String : { Token t = null; }
{
- t=<STRING_LITERAL> { jjtThis.setImage(t.image); }
+ t=<STRING_LITERAL> { jjtThis.setImage(t.image); }
}
/*
@@ -346,7 +345,7 @@
*/
void Null() #Null : {}
{
- <NULL>
+ <NULL>
}
@@ -374,98 +373,100 @@
<IN_EXPRESSION> TOKEN :
{
- < INTEGER_LITERAL: ["0"-"9"] (["0"-"9"])*
>
-| < FLOATING_POINT_LITERAL: (["0"-"9"])+ "."
(["0"-"9"])* (<EXPONENT>)?
- | "." (["0"-"9"])+ (<EXPONENT>)?
- | (["0"-"9"])+ <EXPONENT>
- >
-| < #EXPONENT: ["e","E"] (["+","-"])?
(["0"-"9"])+ >
-| < STRING_LITERAL: ("\"" ((~["\"","\\"])
- | ("\\" ( ["\\","\""] )))* "\"")
- | ("\'" ((~["\'","\\"])
- | ("\\" ( ["\\","\'"] )))* "\'")
- >
-| < BADLY_ESCAPED_STRING_LITERAL: ("\""
(~["\"","\\"])* ("\\" (
~["\\","\""] )))
- | ("\'" (~["\'","\\"])* ("\\" (
~["\\","\'"] )))
- >
-| < TRUE : "true" >
-| < FALSE : "false" >
-| < NULL : "null" >
-| < END_EXPRESSION : "}" > : DEFAULT
-| < DOT : "." >
-| < LPAREN : "(" >
-| < RPAREN : ")" >
-| < LBRACK : "[" >
-| < RBRACK : "]" >
-| < COLON : ":" >
-| < COMMA : "," >
-| < GT0 : ">" >
-| < GT1 : "gt" >
-| < LT0 : "<" >
-| < LT1 : "lt" >
-| < GE0 : ">=" >
-| < GE1 : "ge" >
-| < LE0 : "<=" >
-| < LE1 : "le" >
-| < EQ0 : "==" >
-| < EQ1 : "eq" >
-| < NE0 : "!=" >
-| < NE1 : "ne" >
-| < NOT0 : "!" >
-| < NOT1 : "not" >
-| < AND0 : "&&" >
-| < AND1 : "and" >
-| < OR0 : "||" >
-| < OR1 : "or" >
-| < EMPTY : "empty" >
-| < INSTANCEOF : "instanceof" >
-| < MULT : "*" >
-| < PLUS : "+" >
-| < MINUS : "-" >
-| < QUESTIONMARK : "?" >
-| < DIV0 : "/" >
-| < DIV1 : "div" >
-| < MOD0 : "%" >
-| < MOD1 : "mod" >
-| < IDENTIFIER : (<LETTER>|<IMPL_OBJ_START>)
(<LETTER>|<DIGIT>)* >
-| < NAMESPACE : (<IDENTIFIER> (<IDENTIFIER>|<MINUS>|<DOT>)*
<COLON>) >
-| < FUNCTIONSUFFIX : (<IDENTIFIER>) >
-| < #IMPL_OBJ_START: "#" >
-| < #LETTER:
- [
- "\u0024",
- "\u0041"-"\u005a",
- "\u005f",
- "\u0061"-"\u007a",
- "\u00c0"-"\u00d6",
- "\u00d8"-"\u00f6",
- "\u00f8"-"\u00ff",
- "\u0100"-"\u1fff",
- "\u3040"-"\u318f",
- "\u3300"-"\u337f",
- "\u3400"-"\u3d2d",
- "\u4e00"-"\u9fff",
- "\uf900"-"\ufaff"
- ]
- >
-| < #DIGIT:
- [
- "\u0030"-"\u0039",
- "\u0660"-"\u0669",
- "\u06f0"-"\u06f9",
- "\u0966"-"\u096f",
- "\u09e6"-"\u09ef",
- "\u0a66"-"\u0a6f",
- "\u0ae6"-"\u0aef",
- "\u0b66"-"\u0b6f",
- "\u0be7"-"\u0bef",
- "\u0c66"-"\u0c6f",
- "\u0ce6"-"\u0cef",
- "\u0d66"-"\u0d6f",
- "\u0e50"-"\u0e59",
- "\u0ed0"-"\u0ed9",
- "\u1040"-"\u1049"
- ]
- >
-| < ILLEGAL_CHARACTER: (~[]) >
+ < INTEGER_LITERAL: ["0"-"9"] (["0"-"9"])*
>
+| < FLOATING_POINT_LITERAL: (["0"-"9"])+ "."
(["0"-"9"])* (<EXPONENT>)?
+ | "." (["0"-"9"])+ (<EXPONENT>)?
+ | (["0"-"9"])+ <EXPONENT>
+ >
+| < #EXPONENT: ["e","E"] (["+","-"])?
(["0"-"9"])+ >
+| < STRING_LITERAL: ("\"" ((~["\"","\\"])
+ | ("\\" ( ["\\","\""] )))*
"\"")
+ | ("\'" ((~["\'","\\"])
+ | ("\\" ( ["\\","\'"] )))* "\'")
+ >
+| < BADLY_ESCAPED_STRING_LITERAL: ("\""
(~["\"","\\"])* ("\\" (
~["\\","\""] )))
+ | ("\'" (~["\'","\\"])* ("\\" (
~["\\","\'"] )))
+ >
+| < TRUE : "true" >
+| < FALSE : "false" >
+| < NULL : "null" >
+| < END_EXPRESSION : "}" > : DEFAULT
+| < DOT : "." >
+| < LPAREN : "(" >
+| < RPAREN : ")" >
+| < LBRACK : "[" >
+| < RBRACK : "]" >
+| < COLON : ":" >
+| < COMMA : "," >
+| < GT0 : ">" >
+| < GT1 : "gt" >
+| < LT0 : "<" >
+| < LT1 : "lt" >
+| < GE0 : ">=" >
+| < GE1 : "ge" >
+| < LE0 : "<=" >
+| < LE1 : "le" >
+| < EQ0 : "==" >
+| < EQ1 : "eq" >
+| < NE0 : "!=" >
+| < NE1 : "ne" >
+| < NOT0 : "!" >
+| < NOT1 : "not" >
+| < AND0 : "&&" >
+| < AND1 : "and" >
+| < OR0 : "||" >
+| < OR1 : "or" >
+| < EMPTY : "empty" >
+| < INSTANCEOF : "instanceof" >
+| < MULT : "*" >
+| < PLUS : "+" >
+| < MINUS : "-" >
+| < QUESTIONMARK : "?" >
+| < DIV0 : "/" >
+| < DIV1 : "div" >
+| < MOD0 : "%" >
+| < MOD1 : "mod" >
+| < IDENTIFIER : (<LETTER>|<IMPL_OBJ_START>)
(<LETTER>|<DIGIT>)* >
+| < #NAMESPACE : ( <NAMESPACE_NAME> <COLON>) >
+| < #NAMESPACE_NAME: (<IDENTIFIER>
(<LETTER>|<DIGIT>|<MINUS>|<DOT>)*) >
+| < FUNCTION_CALL: (<NAMESPACE>)? <IDENTIFIER> <LPAREN> >
+| < FUNCTIONSUFFIX : (<IDENTIFIER>) >
+| < #IMPL_OBJ_START: "#" >
+| < #LETTER:
+ [
+ "\u0024",
+ "\u0041"-"\u005a",
+ "\u005f",
+ "\u0061"-"\u007a",
+ "\u00c0"-"\u00d6",
+ "\u00d8"-"\u00f6",
+ "\u00f8"-"\u00ff",
+ "\u0100"-"\u1fff",
+ "\u3040"-"\u318f",
+ "\u3300"-"\u337f",
+ "\u3400"-"\u3d2d",
+ "\u4e00"-"\u9fff",
+ "\uf900"-"\ufaff"
+ ]
+ >
+| < #DIGIT:
+ [
+ "\u0030"-"\u0039",
+ "\u0660"-"\u0669",
+ "\u06f0"-"\u06f9",
+ "\u0966"-"\u096f",
+ "\u09e6"-"\u09ef",
+ "\u0a66"-"\u0a6f",
+ "\u0ae6"-"\u0aef",
+ "\u0b66"-"\u0b6f",
+ "\u0be7"-"\u0bef",
+ "\u0c66"-"\u0c6f",
+ "\u0ce6"-"\u0cef",
+ "\u0d66"-"\u0d6f",
+ "\u0e50"-"\u0e59",
+ "\u0ed0"-"\u0ed9",
+ "\u1040"-"\u1049"
+ ]
+ >
+| < ILLEGAL_CHARACTER: (~[]) >
}
Modified: trunk/java/org/apache/el/parser/ELParserConstants.java
===================================================================
--- trunk/java/org/apache/el/parser/ELParserConstants.java 2008-07-11 14:19:48 UTC (rev
709)
+++ trunk/java/org/apache/el/parser/ELParserConstants.java 2008-07-11 14:20:12 UTC (rev
710)
@@ -69,11 +69,13 @@
int MOD1 = 52;
int IDENTIFIER = 53;
int NAMESPACE = 54;
- int FUNCTIONSUFFIX = 55;
- int IMPL_OBJ_START = 56;
- int LETTER = 57;
- int DIGIT = 58;
- int ILLEGAL_CHARACTER = 59;
+ int NAMESPACE_NAME = 55;
+ int FUNCTION_CALL = 56;
+ int FUNCTIONSUFFIX = 57;
+ int IMPL_OBJ_START = 58;
+ int LETTER = 59;
+ int DIGIT = 60;
+ int ILLEGAL_CHARACTER = 61;
int DEFAULT = 0;
int IN_EXPRESSION = 1;
@@ -134,6 +136,8 @@
"\"mod\"",
"<IDENTIFIER>",
"<NAMESPACE>",
+ "<NAMESPACE_NAME>",
+ "<FUNCTION_CALL>",
"<FUNCTIONSUFFIX>",
"\"#\"",
"<LETTER>",
Modified: trunk/java/org/apache/el/parser/ELParserTokenManager.java
===================================================================
--- trunk/java/org/apache/el/parser/ELParserTokenManager.java 2008-07-11 14:19:48 UTC (rev
709)
+++ trunk/java/org/apache/el/parser/ELParserTokenManager.java 2008-07-11 14:20:12 UTC (rev
710)
@@ -302,7 +302,7 @@
if ((active0 & 0x141d555401c000L) != 0L)
{
jjmatchedKind = 53;
- return 41;
+ return 42;
}
if ((active0 & 0x40000L) != 0L)
return 1;
@@ -318,24 +318,24 @@
}
return -1;
case 2:
- if ((active0 & 0x14014000000000L) != 0L)
- return 42;
if ((active0 & 0x18000001c000L) != 0L)
{
jjmatchedKind = 53;
jjmatchedPos = 2;
return 42;
}
+ if ((active0 & 0x14014000000000L) != 0L)
+ return 42;
return -1;
case 3:
- if ((active0 & 0x14000L) != 0L)
- return 42;
if ((active0 & 0x180000008000L) != 0L)
{
jjmatchedKind = 53;
jjmatchedPos = 3;
return 42;
}
+ if ((active0 & 0x14000L) != 0L)
+ return 42;
return -1;
case 4:
if ((active0 & 0x80000008000L) != 0L)
@@ -740,7 +740,7 @@
{
int[] nextStates;
int startsAt = 0;
- jjnewStateCnt = 41;
+ jjnewStateCnt = 42;
int i = 1;
jjstateSet[0] = startState;
int j, kind = 0x7fffffff;
@@ -755,77 +755,52 @@
{
switch(jjstateSet[--i])
{
- case 41:
- if ((0x3ff001000000000L & l) != 0L)
- {
- if (kind > 55)
- kind = 55;
- jjCheckNAdd(40);
- }
- else if ((0x600000000000L & l) != 0L)
- jjCheckNAddStates(4, 6);
- else if (curChar == 58)
- {
- if (kind > 54)
- kind = 54;
- }
- if ((0x3ff001000000000L & l) != 0L)
- jjCheckNAddStates(7, 10);
- if ((0x3ff001000000000L & l) != 0L)
- {
- if (kind > 53)
- kind = 53;
- jjCheckNAdd(34);
- }
- if ((0x1800000000L & l) != 0L)
- jjCheckNAddStates(11, 14);
- break;
case 0:
if ((0x3ff000000000000L & l) != 0L)
{
if (kind > 9)
kind = 9;
- jjCheckNAddStates(15, 19);
+ jjCheckNAddStates(4, 8);
}
else if ((0x1800000000L & l) != 0L)
{
if (kind > 53)
kind = 53;
- jjCheckNAddStates(20, 25);
+ jjCheckNAddStates(9, 15);
}
else if (curChar == 39)
- jjCheckNAddStates(26, 30);
+ jjCheckNAddStates(16, 20);
else if (curChar == 34)
- jjCheckNAddStates(31, 35);
+ jjCheckNAddStates(21, 25);
else if (curChar == 46)
jjCheckNAdd(1);
break;
case 42:
- if ((0x3ff001000000000L & l) != 0L)
+ if ((0x3ff601000000000L & l) != 0L)
+ jjCheckNAddTwoStates(36, 37);
+ else if (curChar == 40)
{
- if (kind > 55)
- kind = 55;
- jjCheckNAdd(40);
+ if (kind > 56)
+ kind = 56;
}
- else if ((0x600000000000L & l) != 0L)
- jjCheckNAddStates(4, 6);
else if (curChar == 58)
+ jjstateSet[jjnewStateCnt++] = 38;
+ if ((0x3ff001000000000L & l) != 0L)
{
- if (kind > 54)
- kind = 54;
+ if (kind > 57)
+ kind = 57;
+ jjCheckNAdd(41);
}
if ((0x3ff001000000000L & l) != 0L)
- jjCheckNAddStates(11, 14);
+ jjCheckNAddTwoStates(39, 40);
if ((0x3ff001000000000L & l) != 0L)
- jjCheckNAddStates(7, 10);
+ jjCheckNAddStates(26, 28);
if ((0x3ff001000000000L & l) != 0L)
{
if (kind > 53)
kind = 53;
jjCheckNAdd(34);
}
- if ((0x1800000000L & l) != 0L)
- jjCheckNAddStates(11, 14);
break;
case 1:
if ((0x3ff000000000000L & l) == 0L)
@@ -850,7 +825,7 @@
break;
if (kind > 9)
kind = 9;
- jjCheckNAddStates(15, 19);
+ jjCheckNAddStates(4, 8);
break;
case 6:
if ((0x3ff000000000000L & l) == 0L)
@@ -905,15 +880,15 @@
break;
case 17:
if (curChar == 34)
- jjCheckNAddStates(31, 35);
+ jjCheckNAddStates(21, 25);
break;
case 18:
if ((0xfffffffbffffffffL & l) != 0L)
- jjCheckNAddStates(36, 38);
+ jjCheckNAddStates(29, 31);
break;
case 20:
if (curChar == 34)
- jjCheckNAddStates(36, 38);
+ jjCheckNAddStates(29, 31);
break;
case 21:
if (curChar == 34 && kind > 12)
@@ -929,15 +904,15 @@
break;
case 25:
if (curChar == 39)
- jjCheckNAddStates(26, 30);
+ jjCheckNAddStates(16, 20);
break;
case 26:
if ((0xffffff7fffffffffL & l) != 0L)
- jjCheckNAddStates(39, 41);
+ jjCheckNAddStates(32, 34);
break;
case 28:
if (curChar == 39)
- jjCheckNAddStates(39, 41);
+ jjCheckNAddStates(32, 34);
break;
case 29:
if (curChar == 39 && kind > 12)
@@ -956,7 +931,7 @@
break;
if (kind > 53)
kind = 53;
- jjCheckNAddStates(20, 25);
+ jjCheckNAddStates(9, 15);
break;
case 34:
if ((0x3ff001000000000L & l) == 0L)
@@ -967,30 +942,34 @@
break;
case 35:
if ((0x3ff001000000000L & l) != 0L)
- jjCheckNAddStates(7, 10);
+ jjCheckNAddStates(26, 28);
break;
case 36:
- if ((0x1800000000L & l) != 0L)
- jjCheckNAddStates(11, 14);
+ if ((0x3ff601000000000L & l) != 0L)
+ jjCheckNAddTwoStates(36, 37);
break;
case 37:
- if ((0x3ff001000000000L & l) != 0L)
- jjCheckNAddStates(11, 14);
+ if (curChar == 58)
+ jjstateSet[jjnewStateCnt++] = 38;
break;
case 38:
- if ((0x600000000000L & l) != 0L)
- jjCheckNAddStates(4, 6);
+ if ((0x1800000000L & l) != 0L)
+ jjCheckNAddTwoStates(39, 40);
break;
case 39:
- if (curChar == 58 && kind > 54)
- kind = 54;
+ if ((0x3ff001000000000L & l) != 0L)
+ jjCheckNAddTwoStates(39, 40);
break;
case 40:
+ if (curChar == 40 && kind > 56)
+ kind = 56;
+ break;
+ case 41:
if ((0x3ff001000000000L & l) == 0L)
break;
- if (kind > 55)
- kind = 55;
- jjCheckNAdd(40);
+ if (kind > 57)
+ kind = 57;
+ jjCheckNAdd(41);
break;
default : break;
}
@@ -1003,44 +982,26 @@
{
switch(jjstateSet[--i])
{
- case 41:
- if ((0x7fffffe87fffffeL & l) != 0L)
- {
- if (kind > 55)
- kind = 55;
- jjCheckNAdd(40);
- }
- if ((0x7fffffe87fffffeL & l) != 0L)
- jjCheckNAddStates(11, 14);
- if ((0x7fffffe87fffffeL & l) != 0L)
- jjCheckNAddStates(7, 10);
- if ((0x7fffffe87fffffeL & l) != 0L)
- {
- if (kind > 53)
- kind = 53;
- jjCheckNAdd(34);
- }
- break;
case 0:
if ((0x7fffffe87fffffeL & l) == 0L)
break;
if (kind > 53)
kind = 53;
- jjCheckNAddStates(20, 25);
+ jjCheckNAddStates(9, 15);
break;
case 42:
if ((0x7fffffe87fffffeL & l) != 0L)
{
- if (kind > 55)
- kind = 55;
- jjCheckNAdd(40);
+ if (kind > 57)
+ kind = 57;
+ jjCheckNAdd(41);
}
if ((0x7fffffe87fffffeL & l) != 0L)
- jjCheckNAddStates(11, 14);
+ jjCheckNAddTwoStates(39, 40);
if ((0x7fffffe87fffffeL & l) != 0L)
- jjCheckNAddStates(11, 14);
+ jjCheckNAddTwoStates(36, 37);
if ((0x7fffffe87fffffeL & l) != 0L)
- jjCheckNAddStates(7, 10);
+ jjCheckNAddStates(26, 28);
if ((0x7fffffe87fffffeL & l) != 0L)
{
if (kind > 53)
@@ -1050,19 +1011,19 @@
break;
case 2:
if ((0x2000000020L & l) != 0L)
- jjAddStates(42, 43);
+ jjAddStates(35, 36);
break;
case 10:
if ((0x2000000020L & l) != 0L)
- jjAddStates(44, 45);
+ jjAddStates(37, 38);
break;
case 14:
if ((0x2000000020L & l) != 0L)
- jjAddStates(46, 47);
+ jjAddStates(39, 40);
break;
case 18:
if ((0xffffffffefffffffL & l) != 0L)
- jjCheckNAddStates(36, 38);
+ jjCheckNAddStates(29, 31);
break;
case 19:
if (curChar == 92)
@@ -1070,11 +1031,11 @@
break;
case 20:
if (curChar == 92)
- jjCheckNAddStates(36, 38);
+ jjCheckNAddStates(29, 31);
break;
case 22:
if ((0xffffffffefffffffL & l) != 0L)
- jjAddStates(48, 49);
+ jjAddStates(41, 42);
break;
case 23:
if (curChar == 92)
@@ -1087,7 +1048,7 @@
break;
case 26:
if ((0xffffffffefffffffL & l) != 0L)
- jjCheckNAddStates(39, 41);
+ jjCheckNAddStates(32, 34);
break;
case 27:
if (curChar == 92)
@@ -1095,11 +1056,11 @@
break;
case 28:
if (curChar == 92)
- jjCheckNAddStates(39, 41);
+ jjCheckNAddStates(32, 34);
break;
case 30:
if ((0xffffffffefffffffL & l) != 0L)
- jjAddStates(50, 51);
+ jjAddStates(43, 44);
break;
case 31:
if (curChar == 92)
@@ -1114,22 +1075,26 @@
break;
case 35:
if ((0x7fffffe87fffffeL & l) != 0L)
- jjCheckNAddStates(7, 10);
+ jjCheckNAddStates(26, 28);
break;
case 36:
if ((0x7fffffe87fffffeL & l) != 0L)
- jjCheckNAddStates(11, 14);
+ jjCheckNAddTwoStates(36, 37);
break;
- case 37:
+ case 38:
if ((0x7fffffe87fffffeL & l) != 0L)
- jjCheckNAddStates(11, 14);
+ jjCheckNAddTwoStates(39, 40);
break;
- case 40:
+ case 39:
+ if ((0x7fffffe87fffffeL & l) != 0L)
+ jjCheckNAddTwoStates(39, 40);
+ break;
+ case 41:
if ((0x7fffffe87fffffeL & l) == 0L)
break;
- if (kind > 55)
- kind = 55;
- jjCheckNAdd(40);
+ if (kind > 57)
+ kind = 57;
+ jjCheckNAdd(41);
break;
default : break;
}
@@ -1146,30 +1111,12 @@
{
switch(jjstateSet[--i])
{
- case 41:
- if (jjCanMove_1(hiByte, i1, i2, l1, l2))
- {
- if (kind > 53)
- kind = 53;
- jjCheckNAdd(34);
- }
- if (jjCanMove_1(hiByte, i1, i2, l1, l2))
- jjCheckNAddStates(7, 10);
- if (jjCanMove_1(hiByte, i1, i2, l1, l2))
- jjCheckNAddStates(11, 14);
- if (jjCanMove_1(hiByte, i1, i2, l1, l2))
- {
- if (kind > 55)
- kind = 55;
- jjCheckNAdd(40);
- }
- break;
case 0:
if (!jjCanMove_1(hiByte, i1, i2, l1, l2))
break;
if (kind > 53)
kind = 53;
- jjCheckNAddStates(20, 25);
+ jjCheckNAddStates(9, 15);
break;
case 42:
if (jjCanMove_1(hiByte, i1, i2, l1, l2))
@@ -1179,25 +1126,25 @@
jjCheckNAdd(34);
}
if (jjCanMove_1(hiByte, i1, i2, l1, l2))
- jjCheckNAddStates(7, 10);
+ jjCheckNAddStates(26, 28);
if (jjCanMove_1(hiByte, i1, i2, l1, l2))
- jjCheckNAddStates(11, 14);
+ jjCheckNAddTwoStates(36, 37);
if (jjCanMove_1(hiByte, i1, i2, l1, l2))
- jjCheckNAddStates(11, 14);
+ jjCheckNAddTwoStates(39, 40);
if (jjCanMove_1(hiByte, i1, i2, l1, l2))
{
- if (kind > 55)
- kind = 55;
- jjCheckNAdd(40);
+ if (kind > 57)
+ kind = 57;
+ jjCheckNAdd(41);
}
break;
case 18:
if (jjCanMove_0(hiByte, i1, i2, l1, l2))
- jjAddStates(36, 38);
+ jjAddStates(29, 31);
break;
case 22:
if (jjCanMove_0(hiByte, i1, i2, l1, l2))
- jjAddStates(48, 49);
+ jjAddStates(41, 42);
break;
case 24:
case 32:
@@ -1206,11 +1153,11 @@
break;
case 26:
if (jjCanMove_0(hiByte, i1, i2, l1, l2))
- jjAddStates(39, 41);
+ jjAddStates(32, 34);
break;
case 30:
if (jjCanMove_0(hiByte, i1, i2, l1, l2))
- jjAddStates(50, 51);
+ jjAddStates(43, 44);
break;
case 34:
if (!jjCanMove_1(hiByte, i1, i2, l1, l2))
@@ -1221,22 +1168,26 @@
break;
case 35:
if (jjCanMove_1(hiByte, i1, i2, l1, l2))
- jjCheckNAddStates(7, 10);
+ jjCheckNAddStates(26, 28);
break;
case 36:
if (jjCanMove_1(hiByte, i1, i2, l1, l2))
- jjCheckNAddStates(11, 14);
+ jjCheckNAddTwoStates(36, 37);
break;
- case 37:
+ case 38:
if (jjCanMove_1(hiByte, i1, i2, l1, l2))
- jjCheckNAddStates(11, 14);
+ jjCheckNAddTwoStates(39, 40);
break;
- case 40:
+ case 39:
+ if (jjCanMove_1(hiByte, i1, i2, l1, l2))
+ jjCheckNAddTwoStates(39, 40);
+ break;
+ case 41:
if (!jjCanMove_1(hiByte, i1, i2, l1, l2))
break;
- if (kind > 55)
- kind = 55;
- jjCheckNAdd(40);
+ if (kind > 57)
+ kind = 57;
+ jjCheckNAdd(41);
break;
default : break;
}
@@ -1249,17 +1200,16 @@
kind = 0x7fffffff;
}
++curPos;
- if ((i = jjnewStateCnt) == (startsAt = 41 - (jjnewStateCnt = startsAt)))
+ if ((i = jjnewStateCnt) == (startsAt = 42 - (jjnewStateCnt = startsAt)))
return curPos;
try { curChar = input_stream.readChar(); }
catch(java.io.IOException e) { return curPos; }
}
}
static final int[] jjnextStates = {
- 0, 1, 3, 5, 36, 38, 39, 35, 36, 38, 39, 36, 37, 38, 39, 6,
- 7, 8, 13, 14, 34, 35, 36, 38, 39, 40, 26, 27, 29, 30, 31, 18,
- 19, 21, 22, 23, 18, 19, 21, 26, 27, 29, 3, 4, 11, 12, 15, 16,
- 22, 23, 30, 31,
+ 0, 1, 3, 5, 6, 7, 8, 13, 14, 34, 35, 36, 37, 39, 40, 41,
+ 26, 27, 29, 30, 31, 18, 19, 21, 22, 23, 35, 36, 37, 18, 19, 21,
+ 26, 27, 29, 3, 4, 11, 12, 15, 16, 22, 23, 30, 31,
};
private static final boolean jjCanMove_0(int hiByte, int i1, int i2, long l1, long l2)
{
@@ -1300,7 +1250,7 @@
"\154\164", "\76\75", "\147\145", "\74\75",
"\154\145", "\75\75", "\145\161", "\41\75",
"\156\145", "\41", "\156\157\164", "\46\46",
"\141\156\144", "\174\174", "\157\162",
"\145\155\160\164\171", "\151\156\163\164\141\156\143\145\157\146",
"\52", "\53", "\55", "\77", "\57",
-"\144\151\166", "\45", "\155\157\144", null, null, null,
null, null, null, null, };
+"\144\151\166", "\45", "\155\157\144", null, null, null,
null, null, null, null, null, null, };
public static final String[] lexStateNames = {
"DEFAULT",
"IN_EXPRESSION",
@@ -1308,17 +1258,17 @@
public static final int[] jjnewLexState = {
-1, -1, 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, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
};
static final long[] jjtoToken = {
- 0x8fffffffffff60fL,
+ 0x233ffffffffff60fL,
};
static final long[] jjtoSkip = {
0x1f0L,
};
protected SimpleCharStream input_stream;
-private final int[] jjrounds = new int[41];
-private final int[] jjstateSet = new int[82];
+private final int[] jjrounds = new int[42];
+private final int[] jjstateSet = new int[84];
protected char curChar;
public ELParserTokenManager(SimpleCharStream stream){
if (SimpleCharStream.staticFlag)
@@ -1340,7 +1290,7 @@
{
int i;
jjround = 0x80000001;
- for (i = 41; i-- > 0;)
+ for (i = 42; i-- > 0;)
jjrounds[i] = 0x80000000;
}
public void ReInit(SimpleCharStream stream, int lexState)
@@ -1413,9 +1363,9 @@
jjmatchedKind = 0x7fffffff;
jjmatchedPos = 0;
curPos = jjMoveStringLiteralDfa0_1();
- if (jjmatchedPos == 0 && jjmatchedKind > 59)
+ if (jjmatchedPos == 0 && jjmatchedKind > 61)
{
- jjmatchedKind = 59;
+ jjmatchedKind = 61;
}
break;
}