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: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to