Author: markt
Date: Sun Jul 21 11:38:28 2013
New Revision: 1505347
URL: http://svn.apache.org/r1505347
Log:
Align grammar for function with that provided in the EL spec. Unit tests show
no functional change.
Modified:
tomcat/trunk/java/org/apache/el/parser/ELParser.java
tomcat/trunk/java/org/apache/el/parser/ELParser.jjt
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=1505347&r1=1505346&r2=1505347&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/el/parser/ELParser.java (original)
+++ tomcat/trunk/java/org/apache/el/parser/ELParser.java Sun Jul 21 11:38:28
2013
@@ -1832,18 +1832,21 @@ public class ELParser/*@bgen(jjtree)*/im
jjtree.openNodeScope(jjtn000);Token t0 = null;
Token t1 = null;
try {
- if (jj_2_9(2)) {
- t0 = jj_consume_token(IDENTIFIER);
+ t0 = jj_consume_token(IDENTIFIER);
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case COLON:
jj_consume_token(COLON);
- } else {
+ t1 = jj_consume_token(IDENTIFIER);
+ break;
+ default:
+ jj_la1[48] = jj_gen;
;
}
- t1 = jj_consume_token(IDENTIFIER);
- if (t0 != null) {
+ if (t1 != null) {
jjtn000.setPrefix(t0.image);
jjtn000.setLocalName(t1.image);
} else {
- jjtn000.setLocalName(t1.image);
+ jjtn000.setLocalName(t0.image);
}
label_19:
while (true) {
@@ -1853,7 +1856,7 @@ public class ELParser/*@bgen(jjtree)*/im
;
break;
default:
- jj_la1[48] = jj_gen;
+ jj_la1[49] = jj_gen;
break label_19;
}
}
@@ -1901,7 +1904,7 @@ public class ELParser/*@bgen(jjtree)*/im
Null();
break;
default:
- jj_la1[49] = jj_gen;
+ jj_la1[50] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -1938,7 +1941,7 @@ public class ELParser/*@bgen(jjtree)*/im
}
break;
default:
- jj_la1[50] = jj_gen;
+ jj_la1[51] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -2081,13 +2084,6 @@ public class ELParser/*@bgen(jjtree)*/im
finally { jj_save(7, xla); }
}
- private boolean jj_2_9(int xla) {
- jj_la = xla; jj_lastpos = jj_scanpos = token;
- try { return !jj_3_9(); }
- catch(LookaheadSuccess ls) { return true; }
- finally { jj_save(8, xla); }
- }
-
private boolean jj_3R_40() {
Token xsp;
xsp = jj_scanpos;
@@ -2108,13 +2104,13 @@ public class ELParser/*@bgen(jjtree)*/im
return false;
}
- private boolean jj_3R_105() {
+ private boolean jj_3R_106() {
if (jj_3R_35()) return true;
return false;
}
- private boolean jj_3R_103() {
- if (jj_3R_105()) return true;
+ private boolean jj_3R_104() {
+ if (jj_3R_106()) return true;
return false;
}
@@ -2152,12 +2148,12 @@ public class ELParser/*@bgen(jjtree)*/im
if (jj_scan_token(START_SET_OR_MAP)) return true;
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_103()) jj_scanpos = xsp;
+ if (jj_3R_104()) jj_scanpos = xsp;
if (jj_scan_token(RBRACE)) return true;
return false;
}
- private boolean jj_3R_102() {
+ private boolean jj_3R_103() {
if (jj_3R_35()) return true;
return false;
}
@@ -2183,7 +2179,7 @@ public class ELParser/*@bgen(jjtree)*/im
if (jj_scan_token(LBRACK)) return true;
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_102()) jj_scanpos = xsp;
+ if (jj_3R_103()) jj_scanpos = xsp;
if (jj_scan_token(RBRACK)) return true;
return false;
}
@@ -2350,7 +2346,7 @@ public class ELParser/*@bgen(jjtree)*/im
return false;
}
- private boolean jj_3R_104() {
+ private boolean jj_3R_105() {
if (jj_scan_token(LPAREN)) return true;
return false;
}
@@ -2644,13 +2640,13 @@ public class ELParser/*@bgen(jjtree)*/im
return false;
}
- private boolean jj_3R_82() {
- if (jj_3R_94()) return true;
+ private boolean jj_3R_51() {
+ if (jj_scan_token(CONCAT)) return true;
return false;
}
- private boolean jj_3R_51() {
- if (jj_scan_token(CONCAT)) return true;
+ private boolean jj_3R_82() {
+ if (jj_3R_94()) return true;
return false;
}
@@ -2664,6 +2660,11 @@ public class ELParser/*@bgen(jjtree)*/im
return false;
}
+ private boolean jj_3R_101() {
+ if (jj_scan_token(COLON)) return true;
+ return false;
+ }
+
private boolean jj_3R_75() {
Token xsp;
xsp = jj_scanpos;
@@ -2698,8 +2699,8 @@ public class ELParser/*@bgen(jjtree)*/im
return false;
}
- private boolean jj_3R_101() {
- if (jj_3R_104()) return true;
+ private boolean jj_3R_102() {
+ if (jj_3R_105()) return true;
return false;
}
@@ -2759,21 +2760,15 @@ public class ELParser/*@bgen(jjtree)*/im
return false;
}
- private boolean jj_3_9() {
- if (jj_scan_token(IDENTIFIER)) return true;
- if (jj_scan_token(COLON)) return true;
- return false;
- }
-
private boolean jj_3R_96() {
+ if (jj_scan_token(IDENTIFIER)) return true;
Token xsp;
xsp = jj_scanpos;
- if (jj_3_9()) jj_scanpos = xsp;
- if (jj_scan_token(IDENTIFIER)) return true;
- if (jj_3R_101()) return true;
+ if (jj_3R_101()) jj_scanpos = xsp;
+ if (jj_3R_102()) return true;
while (true) {
xsp = jj_scanpos;
- if (jj_3R_101()) { jj_scanpos = xsp; break; }
+ if (jj_3R_102()) { jj_scanpos = xsp; break; }
}
return false;
}
@@ -2839,7 +2834,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[51];
+ final private int[] jj_la1 = new int[52];
static private int[] jj_la1_0;
static private int[] jj_la1_1;
static {
@@ -2847,12 +2842,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,0x800000,0x15ed00,0x15ed00,0x1000000,0x0,0x40000,0x15ed00,0x40000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xfe000000,0x18000000,0x6000000,0x80000000,0x60000000,0xfe000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x15ed00,0x120000,0x15ed00,0x120000,0x40000,0x1000000,0x15ed00,0x40000,0x0,0x100100,0x1000000,0x15ed00,0x1000000,0x15ed00,0x1000000,0x15ed00,0x40000,0x1ec00,0xc000,};
+ jj_la1_0 = new int[]
{0xe,0xe,0x800000,0x15ed00,0x15ed00,0x1000000,0x0,0x40000,0x15ed00,0x40000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xfe000000,0x18000000,0x6000000,0x80000000,0x60000000,0xfe000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x15ed00,0x120000,0x15ed00,0x120000,0x40000,0x1000000,0x15ed00,0x40000,0x0,0x100100,0x1000000,0x15ed00,0x1000000,0x15ed00,0x1000000,0x15ed00,0x400000,0x40000,0x1ec00,0xc000,};
}
private static void jj_la1_init_1() {
- jj_la1_1 = new int[]
{0x0,0x0,0x0,0x1008860,0x1008860,0x0,0x1000000,0x1000000,0x1008860,0x0,0x600,0x600,0x180,0x180,0x1e,0x6,0x18,0x1e,0x1,0x0,0x0,0x1,0x0,0x1,0x200000,0xc000,0xc000,0x1e2000,0x60000,0x180000,0x1e2000,0x60,0x1008860,0x0,0x1000000,0x0,0x0,0x0,0x1008860,0x0,0x1000000,0x0,0x0,0x1008860,0x0,0x1008860,0x0,0x1008860,0x0,0x0,0x0,};
+ jj_la1_1 = new int[]
{0x0,0x0,0x0,0x1008860,0x1008860,0x0,0x1000000,0x1000000,0x1008860,0x0,0x600,0x600,0x180,0x180,0x1e,0x6,0x18,0x1e,0x1,0x0,0x0,0x1,0x0,0x1,0x200000,0xc000,0xc000,0x1e2000,0x60000,0x180000,0x1e2000,0x60,0x1008860,0x0,0x1000000,0x0,0x0,0x0,0x1008860,0x0,0x1000000,0x0,0x0,0x1008860,0x0,0x1008860,0x0,0x1008860,0x0,0x0,0x0,0x0,};
}
- final private JJCalls[] jj_2_rtns = new JJCalls[9];
+ final private JJCalls[] jj_2_rtns = new JJCalls[8];
private boolean jj_rescan = false;
private int jj_gc = 0;
@@ -2867,7 +2862,7 @@ public class ELParser/*@bgen(jjtree)*/im
token = new Token();
jj_ntk = -1;
jj_gen = 0;
- for (int i = 0; i < 51; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 52; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -2883,7 +2878,7 @@ public class ELParser/*@bgen(jjtree)*/im
jj_ntk = -1;
jjtree.reset();
jj_gen = 0;
- for (int i = 0; i < 51; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 52; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -2894,7 +2889,7 @@ public class ELParser/*@bgen(jjtree)*/im
token = new Token();
jj_ntk = -1;
jj_gen = 0;
- for (int i = 0; i < 51; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 52; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -2906,7 +2901,7 @@ public class ELParser/*@bgen(jjtree)*/im
jj_ntk = -1;
jjtree.reset();
jj_gen = 0;
- for (int i = 0; i < 51; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 52; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -2916,7 +2911,7 @@ public class ELParser/*@bgen(jjtree)*/im
token = new Token();
jj_ntk = -1;
jj_gen = 0;
- for (int i = 0; i < 51; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 52; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -2927,7 +2922,7 @@ public class ELParser/*@bgen(jjtree)*/im
jj_ntk = -1;
jjtree.reset();
jj_gen = 0;
- for (int i = 0; i < 51; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 52; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -3044,7 +3039,7 @@ public class ELParser/*@bgen(jjtree)*/im
la1tokens[jj_kind] = true;
jj_kind = -1;
}
- for (int i = 0; i < 51; i++) {
+ for (int i = 0; i < 52; i++) {
if (jj_la1[i] == jj_gen) {
for (int j = 0; j < 32; j++) {
if ((jj_la1_0[i] & (1<<j)) != 0) {
@@ -3083,7 +3078,7 @@ public class ELParser/*@bgen(jjtree)*/im
private void jj_rescan_token() {
jj_rescan = true;
- for (int i = 0; i < 9; i++) {
+ for (int i = 0; i < 8; i++) {
try {
JJCalls p = jj_2_rtns[i];
do {
@@ -3098,7 +3093,6 @@ public class ELParser/*@bgen(jjtree)*/im
case 5: jj_3_6(); break;
case 6: jj_3_7(); break;
case 7: jj_3_8(); break;
- case 8: jj_3_9(); 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=1505347&r1=1505346&r2=1505347&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/el/parser/ELParser.jjt (original)
+++ tomcat/trunk/java/org/apache/el/parser/ELParser.jjt Sun Jul 21 11:38:28 2013
@@ -387,13 +387,13 @@ void Function() #Function :
Token t1 = null;
}
{
- (LOOKAHEAD(2) t0=<IDENTIFIER> <COLON>)? t1=<IDENTIFIER>
+ t0=<IDENTIFIER> ( <COLON> t1=<IDENTIFIER> )?
{
- if (t0 != null) {
+ if (t1 != null) {
jjtThis.setPrefix(t0.image);
jjtThis.setLocalName(t1.image);
} else {
- jjtThis.setLocalName(t1.image);
+ jjtThis.setLocalName(t0.image);
}
}
( MethodParameters() )+
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]