You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2013/07/16 14:00:18 UTC

svn commit: r1503672 - in /tomcat/trunk/java/org/apache/el/parser: ELParser.java ELParser.jjt

Author: markt
Date: Tue Jul 16 12:00:18 2013
New Revision: 1503672

URL: http://svn.apache.org/r1503672
Log:
A LambdaExpression has zero or one rather than zero to many MethodParameters

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=1503672&r1=1503671&r2=1503672&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/el/parser/ELParser.java (original)
+++ tomcat/trunk/java/org/apache/el/parser/ELParser.java Tue Jul 16 12:00:18 2013
@@ -418,17 +418,13 @@ public class ELParser/*@bgen(jjtree)*/im
       jj_consume_token(LPAREN);
       LambdaExpression();
       jj_consume_token(RPAREN);
-      label_5:
-      while (true) {
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case LPAREN:
-          ;
-          break;
-        default:
-          jj_la1[8] = jj_gen;
-          break label_5;
-        }
+      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      case LPAREN:
         MethodParameters();
+        break;
+      default:
+        jj_la1[8] = jj_gen;
+        ;
       }
     } catch (Throwable jjte000) {
       if (jjtc000) {
@@ -457,12 +453,12 @@ public class ELParser/*@bgen(jjtree)*/im
  */
   final public void Choice() throws ParseException {
     Or();
-    label_6:
+    label_5:
     while (true) {
       if (jj_2_4(3)) {
         ;
       } else {
-        break label_6;
+        break label_5;
       }
       jj_consume_token(QUESTIONMARK);
       Choice();
@@ -500,7 +496,7 @@ public class ELParser/*@bgen(jjtree)*/im
  */
   final public void Or() throws ParseException {
     And();
-    label_7:
+    label_6:
     while (true) {
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
       case OR0:
@@ -509,7 +505,7 @@ public class ELParser/*@bgen(jjtree)*/im
         break;
       default:
         jj_la1[9] = jj_gen;
-        break label_7;
+        break label_6;
       }
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
       case OR0:
@@ -556,7 +552,7 @@ public class ELParser/*@bgen(jjtree)*/im
  */
   final public void And() throws ParseException {
     Equality();
-    label_8:
+    label_7:
     while (true) {
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
       case AND0:
@@ -565,7 +561,7 @@ public class ELParser/*@bgen(jjtree)*/im
         break;
       default:
         jj_la1[11] = jj_gen;
-        break label_8;
+        break label_7;
       }
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
       case AND0:
@@ -612,7 +608,7 @@ public class ELParser/*@bgen(jjtree)*/im
  */
   final public void Equality() throws ParseException {
     Compare();
-    label_9:
+    label_8:
     while (true) {
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
       case EQ0:
@@ -623,7 +619,7 @@ public class ELParser/*@bgen(jjtree)*/im
         break;
       default:
         jj_la1[13] = jj_gen;
-        break label_9;
+        break label_8;
       }
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
       case EQ0:
@@ -718,7 +714,7 @@ public class ELParser/*@bgen(jjtree)*/im
  */
   final public void Compare() throws ParseException {
     Concatenation();
-    label_10:
+    label_9:
     while (true) {
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
       case GT0:
@@ -733,7 +729,7 @@ public class ELParser/*@bgen(jjtree)*/im
         break;
       default:
         jj_la1[17] = jj_gen;
-        break label_10;
+        break label_9;
       }
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
       case LT0:
@@ -907,7 +903,7 @@ public class ELParser/*@bgen(jjtree)*/im
  */
   final public void Concatenation() throws ParseException {
     Math();
-    label_11:
+    label_10:
     while (true) {
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
       case CONCAT:
@@ -915,7 +911,7 @@ public class ELParser/*@bgen(jjtree)*/im
         break;
       default:
         jj_la1[23] = jj_gen;
-        break label_11;
+        break label_10;
       }
       jj_consume_token(CONCAT);
                     AstConcatenation jjtn001 = new AstConcatenation(JJTCONCATENATION);
@@ -951,7 +947,7 @@ public class ELParser/*@bgen(jjtree)*/im
  */
   final public void Math() throws ParseException {
     Multiplication();
-    label_12:
+    label_11:
     while (true) {
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
       case PLUS:
@@ -960,7 +956,7 @@ public class ELParser/*@bgen(jjtree)*/im
         break;
       default:
         jj_la1[24] = jj_gen;
-        break label_12;
+        break label_11;
       }
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
       case PLUS:
@@ -1031,7 +1027,7 @@ public class ELParser/*@bgen(jjtree)*/im
  */
   final public void Multiplication() throws ParseException {
     Unary();
-    label_13:
+    label_12:
     while (true) {
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
       case MULT:
@@ -1043,7 +1039,7 @@ public class ELParser/*@bgen(jjtree)*/im
         break;
       default:
         jj_la1[26] = jj_gen;
-        break label_13;
+        break label_12;
       }
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
       case MULT:
@@ -1287,7 +1283,7 @@ public class ELParser/*@bgen(jjtree)*/im
       jjtree.openNodeScope(jjtn001);
     try {
       ValuePrefix();
-      label_14:
+      label_13:
       while (true) {
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
         case DOT:
@@ -1296,7 +1292,7 @@ public class ELParser/*@bgen(jjtree)*/im
           break;
         default:
           jj_la1[32] = jj_gen;
-          break label_14;
+          break label_13;
         }
         ValueSuffix();
       }
@@ -1457,7 +1453,7 @@ public class ELParser/*@bgen(jjtree)*/im
       case MINUS:
       case IDENTIFIER:
         Expression();
-        label_15:
+        label_14:
         while (true) {
           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
           case COMMA:
@@ -1465,7 +1461,7 @@ public class ELParser/*@bgen(jjtree)*/im
             break;
           default:
             jj_la1[36] = jj_gen;
-            break label_15;
+            break label_14;
           }
           jj_consume_token(COMMA);
           Expression();
@@ -1544,6 +1540,11 @@ public class ELParser/*@bgen(jjtree)*/im
     }
   }
 
+/*
+ * Note that both an empty Set and an empty Map are represented by {}. The
+ * parser will always parse {} as an empty Set and special handling is required
+ * to convert it to an empty Map when appropriate.
+ */
   final public void SetData() throws ParseException {
                           /*@bgen(jjtree) SetData */
   AstSetData jjtn000 = new AstSetData(JJTSETDATA);
@@ -1567,7 +1568,7 @@ public class ELParser/*@bgen(jjtree)*/im
       case MINUS:
       case IDENTIFIER:
         Expression();
-        label_16:
+        label_15:
         while (true) {
           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
           case COMMA:
@@ -1575,7 +1576,7 @@ public class ELParser/*@bgen(jjtree)*/im
             break;
           default:
             jj_la1[41] = jj_gen;
-            break label_16;
+            break label_15;
           }
           jj_consume_token(COMMA);
           Expression();
@@ -1630,7 +1631,7 @@ public class ELParser/*@bgen(jjtree)*/im
       case MINUS:
       case IDENTIFIER:
         Expression();
-        label_17:
+        label_16:
         while (true) {
           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
           case COMMA:
@@ -1638,7 +1639,7 @@ public class ELParser/*@bgen(jjtree)*/im
             break;
           default:
             jj_la1[43] = jj_gen;
-            break label_17;
+            break label_16;
           }
           jj_consume_token(COMMA);
           Expression();
@@ -1670,6 +1671,11 @@ public class ELParser/*@bgen(jjtree)*/im
     }
   }
 
+/*
+ * Note that both an empty Set and an empty Map are represented by {}. The
+ * parser will always parse {} as an empty Set and special handling is required
+ * to convert it to an empty Map when appropriate.
+ */
   final public void MapData() throws ParseException {
                           /*@bgen(jjtree) MapData */
   AstMapData jjtn000 = new AstMapData(JJTMAPDATA);
@@ -1693,7 +1699,7 @@ public class ELParser/*@bgen(jjtree)*/im
       case MINUS:
       case IDENTIFIER:
         MapEntry();
-        label_18:
+        label_17:
         while (true) {
           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
           case COMMA:
@@ -1701,7 +1707,7 @@ public class ELParser/*@bgen(jjtree)*/im
             break;
           default:
             jj_la1[45] = jj_gen;
-            break label_18;
+            break label_17;
           }
           jj_consume_token(COMMA);
           MapEntry();
@@ -1825,7 +1831,7 @@ public class ELParser/*@bgen(jjtree)*/im
       case MINUS:
       case IDENTIFIER:
         Expression();
-        label_19:
+        label_18:
         while (true) {
           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
           case COMMA:
@@ -1833,7 +1839,7 @@ public class ELParser/*@bgen(jjtree)*/im
             break;
           default:
             jj_la1[47] = jj_gen;
-            break label_19;
+            break label_18;
           }
           jj_consume_token(COMMA);
           Expression();
@@ -2068,7 +2074,7 @@ public class ELParser/*@bgen(jjtree)*/im
     finally { jj_save(7, xla); }
   }
 
-  private boolean jj_3R_49() {
+  private boolean jj_3R_48() {
     Token xsp;
     xsp = jj_scanpos;
     if (jj_scan_token(35)) {
@@ -2078,32 +2084,17 @@ public class ELParser/*@bgen(jjtree)*/im
     return false;
   }
 
-  private boolean jj_3_8() {
-    if (jj_scan_token(IDENTIFIER)) return true;
-    if (jj_scan_token(COLON)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_96() {
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3_8()) jj_scanpos = xsp;
-    if (jj_scan_token(IDENTIFIER)) return true;
-    if (jj_scan_token(LPAREN)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_44() {
+  private boolean jj_3R_43() {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_48()) {
+    if (jj_3R_47()) {
     jj_scanpos = xsp;
-    if (jj_3R_49()) return true;
+    if (jj_3R_48()) return true;
     }
     return false;
   }
 
-  private boolean jj_3R_48() {
+  private boolean jj_3R_47() {
     Token xsp;
     xsp = jj_scanpos;
     if (jj_scan_token(33)) {
@@ -2113,7 +2104,12 @@ public class ELParser/*@bgen(jjtree)*/im
     return false;
   }
 
-  private boolean jj_3R_40() {
+  private boolean jj_3R_36() {
+    if (jj_scan_token(IDENTIFIER)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_39() {
     Token xsp;
     xsp = jj_scanpos;
     if (jj_scan_token(39)) {
@@ -2123,37 +2119,47 @@ public class ELParser/*@bgen(jjtree)*/im
     return false;
   }
 
-  private boolean jj_3R_39() {
-    if (jj_3R_43()) return true;
+  private boolean jj_3R_38() {
+    if (jj_3R_42()) return true;
     Token xsp;
     while (true) {
       xsp = jj_scanpos;
-      if (jj_3R_44()) { jj_scanpos = xsp; break; }
+      if (jj_3R_43()) { jj_scanpos = xsp; break; }
     }
     return false;
   }
 
-  private boolean jj_3R_42() {
+  private boolean jj_3R_41() {
     if (jj_scan_token(COMMA)) return true;
     return false;
   }
 
-  private boolean jj_3R_37() {
-    if (jj_scan_token(IDENTIFIER)) return true;
+  private boolean jj_3R_102() {
+    if (jj_3R_34()) return true;
     return false;
   }
 
-  private boolean jj_3R_33() {
-    if (jj_3R_39()) return true;
+  private boolean jj_3R_101() {
+    if (jj_3R_102()) return true;
+    return false;
+  }
+
+  private boolean jj_3R_32() {
+    if (jj_3R_38()) return true;
     Token xsp;
     while (true) {
       xsp = jj_scanpos;
-      if (jj_3R_40()) { jj_scanpos = xsp; break; }
+      if (jj_3R_39()) { jj_scanpos = xsp; break; }
     }
     return false;
   }
 
-  private boolean jj_3R_34() {
+  private boolean jj_3R_35() {
+    if (jj_scan_token(COMMA)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_33() {
     Token xsp;
     xsp = jj_scanpos;
     if (jj_scan_token(41)) {
@@ -2163,137 +2169,117 @@ public class ELParser/*@bgen(jjtree)*/im
     return false;
   }
 
-  private boolean jj_3R_36() {
-    if (jj_scan_token(COMMA)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_103() {
-    if (jj_3R_35()) return true;
+  private boolean jj_3R_97() {
+    if (jj_scan_token(START_SET_OR_MAP)) return true;
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3R_101()) jj_scanpos = xsp;
+    if (jj_scan_token(RBRACE)) return true;
     return false;
   }
 
-  private boolean jj_3R_102() {
-    if (jj_3R_103()) return true;
+  private boolean jj_3R_100() {
+    if (jj_3R_34()) return true;
     return false;
   }
 
-  private boolean jj_3R_29() {
-    if (jj_3R_33()) return true;
+  private boolean jj_3R_28() {
+    if (jj_3R_32()) return true;
     Token xsp;
     while (true) {
       xsp = jj_scanpos;
-      if (jj_3R_34()) { jj_scanpos = xsp; break; }
+      if (jj_3R_33()) { jj_scanpos = xsp; break; }
     }
     return false;
   }
 
-  private boolean jj_3R_38() {
-    if (jj_3R_37()) return true;
+  private boolean jj_3R_37() {
+    if (jj_3R_36()) return true;
     Token xsp;
     while (true) {
       xsp = jj_scanpos;
-      if (jj_3R_42()) { jj_scanpos = xsp; break; }
+      if (jj_3R_41()) { jj_scanpos = xsp; break; }
     }
     return false;
   }
 
   private boolean jj_3_4() {
     if (jj_scan_token(QUESTIONMARK)) return true;
-    if (jj_3R_22()) return true;
+    if (jj_3R_21()) return true;
     if (jj_scan_token(COLON)) return true;
     return false;
   }
 
-  private boolean jj_3R_101() {
-    if (jj_3R_35()) return true;
-    return false;
-  }
-
-  private boolean jj_3R_98() {
-    if (jj_scan_token(START_SET_OR_MAP)) return true;
+  private boolean jj_3R_96() {
+    if (jj_scan_token(LBRACK)) return true;
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_102()) jj_scanpos = xsp;
-    if (jj_scan_token(RBRACE)) return true;
+    if (jj_3R_100()) jj_scanpos = xsp;
+    if (jj_scan_token(RBRACK)) return true;
     return false;
   }
 
   private boolean jj_3_3() {
-    if (jj_3R_21()) return true;
+    if (jj_3R_20()) return true;
     return false;
   }
 
-  private boolean jj_3R_22() {
-    if (jj_3R_29()) return true;
+  private boolean jj_3R_29() {
+    if (jj_3R_34()) return true;
     Token xsp;
     while (true) {
       xsp = jj_scanpos;
-      if (jj_3_4()) { jj_scanpos = xsp; break; }
+      if (jj_3R_35()) { jj_scanpos = xsp; break; }
     }
     return false;
   }
 
-  private boolean jj_3R_97() {
-    if (jj_scan_token(LBRACK)) return true;
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_101()) jj_scanpos = xsp;
-    if (jj_scan_token(RBRACK)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_30() {
-    if (jj_3R_35()) return true;
+  private boolean jj_3R_21() {
+    if (jj_3R_28()) return true;
     Token xsp;
     while (true) {
       xsp = jj_scanpos;
-      if (jj_3R_36()) { jj_scanpos = xsp; break; }
+      if (jj_3_4()) { jj_scanpos = xsp; break; }
     }
     return false;
   }
 
-  private boolean jj_3R_32() {
+  private boolean jj_3R_31() {
     if (jj_scan_token(LPAREN)) return true;
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_38()) jj_scanpos = xsp;
+    if (jj_3R_37()) jj_scanpos = xsp;
     if (jj_scan_token(RPAREN)) return true;
     return false;
   }
 
   private boolean jj_3R_24() {
-    if (jj_scan_token(IDENTIFIER)) return true;
-    if (jj_scan_token(COLON)) return true;
-    return false;
-  }
-
-  private boolean jj_3_6() {
+    if (jj_scan_token(START_SET_OR_MAP)) return true;
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_24()) jj_scanpos = xsp;
-    if (jj_scan_token(IDENTIFIER)) return true;
-    if (jj_scan_token(LPAREN)) return true;
+    if (jj_3R_29()) jj_scanpos = xsp;
+    if (jj_scan_token(RBRACE)) return true;
     return false;
   }
 
   private boolean jj_3R_23() {
-    if (jj_scan_token(LPAREN)) return true;
-    if (jj_3R_21()) return true;
+    if (jj_scan_token(IDENTIFIER)) return true;
+    if (jj_scan_token(COLON)) return true;
     return false;
   }
 
-  private boolean jj_3R_25() {
-    if (jj_scan_token(START_SET_OR_MAP)) return true;
+  private boolean jj_3_6() {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_30()) jj_scanpos = xsp;
-    if (jj_scan_token(RBRACE)) return true;
+    if (jj_3R_23()) jj_scanpos = xsp;
+    if (jj_scan_token(IDENTIFIER)) return true;
+    if (jj_scan_token(LPAREN)) return true;
     return false;
   }
 
-  private boolean jj_3R_88() {
-    if (jj_3R_98()) return true;
+  private boolean jj_3R_22() {
+    if (jj_scan_token(LPAREN)) return true;
+    if (jj_3R_20()) return true;
     return false;
   }
 
@@ -2302,63 +2288,68 @@ public class ELParser/*@bgen(jjtree)*/im
     return false;
   }
 
-  private boolean jj_3_7() {
-    if (jj_3R_25()) return true;
+  private boolean jj_3R_86() {
+    if (jj_3R_96()) return true;
     return false;
   }
 
-  private boolean jj_3R_86() {
-    if (jj_3R_37()) return true;
+  private boolean jj_3_7() {
+    if (jj_3R_24()) return true;
     return false;
   }
 
   private boolean jj_3R_85() {
-    if (jj_3R_96()) return true;
+    if (jj_3R_36()) return true;
     return false;
   }
 
   private boolean jj_3R_84() {
+    if (jj_3R_95()) return true;
+    return false;
+  }
+
+  private boolean jj_3R_83() {
     if (jj_scan_token(LPAREN)) return true;
-    if (jj_3R_35()) return true;
+    if (jj_3R_34()) return true;
     return false;
   }
 
-  private boolean jj_3R_31() {
-    if (jj_3R_37()) return true;
+  private boolean jj_3R_30() {
+    if (jj_3R_36()) return true;
     return false;
   }
 
-  private boolean jj_3R_27() {
+  private boolean jj_3R_26() {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_31()) {
+    if (jj_3R_30()) {
     jj_scanpos = xsp;
-    if (jj_3R_32()) return true;
+    if (jj_3R_31()) return true;
     }
     return false;
   }
 
   private boolean jj_3_5() {
-    if (jj_3R_23()) return true;
+    if (jj_3R_22()) return true;
     return false;
   }
 
-  private boolean jj_3R_76() {
+  private boolean jj_3R_75() {
     Token xsp;
     xsp = jj_scanpos;
     if (jj_3_5()) {
     jj_scanpos = xsp;
+    if (jj_3R_83()) {
+    jj_scanpos = xsp;
     if (jj_3R_84()) {
     jj_scanpos = xsp;
     if (jj_3R_85()) {
     jj_scanpos = xsp;
-    if (jj_3R_86()) {
-    jj_scanpos = xsp;
     if (jj_3_7()) {
     jj_scanpos = xsp;
-    if (jj_3R_87()) {
+    if (jj_3R_86()) {
     jj_scanpos = xsp;
-    if (jj_3R_88()) return true;
+    if (jj_3R_87()) return true;
     }
     }
     }
@@ -2370,29 +2361,29 @@ public class ELParser/*@bgen(jjtree)*/im
 
   private boolean jj_3_1() {
     if (jj_scan_token(ASSIGN)) return true;
-    if (jj_3R_20()) return true;
+    if (jj_3R_19()) return true;
     return false;
   }
 
-  private boolean jj_3R_21() {
-    if (jj_3R_27()) return true;
+  private boolean jj_3R_20() {
+    if (jj_3R_26()) return true;
     if (jj_scan_token(ARROW)) return true;
     Token xsp;
     xsp = jj_scanpos;
     if (jj_3_3()) {
     jj_scanpos = xsp;
-    if (jj_3R_28()) return true;
+    if (jj_3R_27()) return true;
     }
     return false;
   }
 
-  private boolean jj_3R_45() {
+  private boolean jj_3R_44() {
     if (jj_scan_token(SEMICOLON)) return true;
     return false;
   }
 
-  private boolean jj_3R_26() {
-    if (jj_3R_22()) return true;
+  private boolean jj_3R_25() {
+    if (jj_3R_21()) return true;
     Token xsp;
     while (true) {
       xsp = jj_scanpos;
@@ -2402,150 +2393,155 @@ public class ELParser/*@bgen(jjtree)*/im
   }
 
   private boolean jj_3_2() {
-    if (jj_3R_21()) return true;
+    if (jj_3R_20()) return true;
     return false;
   }
 
-  private boolean jj_3R_20() {
+  private boolean jj_3R_19() {
     Token xsp;
     xsp = jj_scanpos;
     if (jj_3_2()) {
     jj_scanpos = xsp;
-    if (jj_3R_26()) return true;
+    if (jj_3R_25()) return true;
     }
     return false;
   }
 
-  private boolean jj_3R_90() {
+  private boolean jj_3R_89() {
     if (jj_scan_token(LBRACK)) return true;
     return false;
   }
 
-  private boolean jj_3R_78() {
-    if (jj_3R_90()) return true;
+  private boolean jj_3R_77() {
+    if (jj_3R_89()) return true;
     return false;
   }
 
-  private boolean jj_3R_41() {
-    if (jj_3R_20()) return true;
+  private boolean jj_3R_40() {
+    if (jj_3R_19()) return true;
     Token xsp;
     while (true) {
       xsp = jj_scanpos;
-      if (jj_3R_45()) { jj_scanpos = xsp; break; }
+      if (jj_3R_44()) { jj_scanpos = xsp; break; }
     }
     return false;
   }
 
-  private boolean jj_3R_89() {
+  private boolean jj_3R_88() {
     if (jj_scan_token(DOT)) return true;
     return false;
   }
 
-  private boolean jj_3R_35() {
-    if (jj_3R_41()) return true;
+  private boolean jj_3R_34() {
+    if (jj_3R_40()) return true;
     return false;
   }
 
-  private boolean jj_3R_77() {
-    if (jj_3R_89()) return true;
+  private boolean jj_3R_76() {
+    if (jj_3R_88()) return true;
     return false;
   }
 
-  private boolean jj_3R_74() {
+  private boolean jj_3R_73() {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_77()) {
+    if (jj_3R_76()) {
     jj_scanpos = xsp;
-    if (jj_3R_78()) return true;
+    if (jj_3R_77()) return true;
     }
     return false;
   }
 
-  private boolean jj_3R_71() {
-    if (jj_3R_74()) return true;
+  private boolean jj_3R_70() {
+    if (jj_3R_73()) return true;
     return false;
   }
 
-  private boolean jj_3R_73() {
-    if (jj_3R_76()) return true;
+  private boolean jj_3R_72() {
+    if (jj_3R_75()) return true;
     return false;
   }
 
-  private boolean jj_3R_70() {
+  private boolean jj_3R_69() {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_72()) {
+    if (jj_3R_71()) {
     jj_scanpos = xsp;
-    if (jj_3R_73()) return true;
+    if (jj_3R_72()) return true;
     }
     return false;
   }
 
-  private boolean jj_3R_72() {
-    if (jj_3R_75()) return true;
+  private boolean jj_3R_71() {
+    if (jj_3R_74()) return true;
     return false;
   }
 
-  private boolean jj_3R_69() {
-    if (jj_3R_70()) return true;
+  private boolean jj_3R_68() {
+    if (jj_3R_69()) return true;
     Token xsp;
     while (true) {
       xsp = jj_scanpos;
-      if (jj_3R_71()) { jj_scanpos = xsp; break; }
+      if (jj_3R_70()) { jj_scanpos = xsp; break; }
     }
     return false;
   }
 
-  private boolean jj_3R_65() {
-    if (jj_3R_69()) return true;
+  private boolean jj_3R_94() {
+    if (jj_scan_token(NULL)) return true;
     return false;
   }
 
   private boolean jj_3R_64() {
-    if (jj_scan_token(EMPTY)) return true;
-    if (jj_3R_58()) return true;
+    if (jj_3R_68()) return true;
     return false;
   }
 
   private boolean jj_3R_63() {
+    if (jj_scan_token(EMPTY)) return true;
+    if (jj_3R_57()) return true;
+    return false;
+  }
+
+  private boolean jj_3R_62() {
     Token xsp;
     xsp = jj_scanpos;
     if (jj_scan_token(37)) {
     jj_scanpos = xsp;
     if (jj_scan_token(38)) return true;
     }
-    if (jj_3R_58()) return true;
+    if (jj_3R_57()) return true;
     return false;
   }
 
-  private boolean jj_3R_58() {
+  private boolean jj_3R_57() {
     Token xsp;
     xsp = jj_scanpos;
+    if (jj_3R_61()) {
+    jj_scanpos = xsp;
     if (jj_3R_62()) {
     jj_scanpos = xsp;
     if (jj_3R_63()) {
     jj_scanpos = xsp;
-    if (jj_3R_64()) {
-    jj_scanpos = xsp;
-    if (jj_3R_65()) return true;
+    if (jj_3R_64()) return true;
     }
     }
     }
     return false;
   }
 
-  private boolean jj_3R_62() {
+  private boolean jj_3R_61() {
     if (jj_scan_token(MINUS)) return true;
-    if (jj_3R_58()) return true;
+    if (jj_3R_57()) return true;
     return false;
   }
 
-  private boolean jj_3R_95() {
-    if (jj_scan_token(NULL)) return true;
+  private boolean jj_3R_93() {
+    if (jj_scan_token(STRING_LITERAL)) return true;
     return false;
   }
 
-  private boolean jj_3R_68() {
+  private boolean jj_3R_67() {
     Token xsp;
     xsp = jj_scanpos;
     if (jj_scan_token(51)) {
@@ -2555,7 +2551,12 @@ public class ELParser/*@bgen(jjtree)*/im
     return false;
   }
 
-  private boolean jj_3R_67() {
+  private boolean jj_3R_92() {
+    if (jj_scan_token(INTEGER_LITERAL)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_66() {
     Token xsp;
     xsp = jj_scanpos;
     if (jj_scan_token(49)) {
@@ -2565,121 +2566,96 @@ public class ELParser/*@bgen(jjtree)*/im
     return false;
   }
 
-  private boolean jj_3R_94() {
-    if (jj_scan_token(STRING_LITERAL)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_59() {
+  private boolean jj_3R_58() {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_66()) {
+    if (jj_3R_65()) {
     jj_scanpos = xsp;
-    if (jj_3R_67()) {
+    if (jj_3R_66()) {
     jj_scanpos = xsp;
-    if (jj_3R_68()) return true;
+    if (jj_3R_67()) return true;
     }
     }
     return false;
   }
 
-  private boolean jj_3R_66() {
+  private boolean jj_3R_65() {
     if (jj_scan_token(MULT)) return true;
     return false;
   }
 
-  private boolean jj_3R_56() {
-    if (jj_3R_58()) return true;
+  private boolean jj_3R_55() {
+    if (jj_3R_57()) return true;
     Token xsp;
     while (true) {
       xsp = jj_scanpos;
-      if (jj_3R_59()) { jj_scanpos = xsp; break; }
+      if (jj_3R_58()) { jj_scanpos = xsp; break; }
     }
     return false;
   }
 
-  private boolean jj_3R_93() {
-    if (jj_scan_token(INTEGER_LITERAL)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_61() {
-    if (jj_scan_token(MINUS)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_57() {
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_3R_60()) {
-    jj_scanpos = xsp;
-    if (jj_3R_61()) return true;
-    }
+  private boolean jj_3R_91() {
+    if (jj_scan_token(FLOATING_POINT_LITERAL)) return true;
     return false;
   }
 
   private boolean jj_3R_60() {
-    if (jj_scan_token(PLUS)) return true;
+    if (jj_scan_token(MINUS)) return true;
     return false;
   }
 
-  private boolean jj_3R_92() {
-    if (jj_scan_token(FLOATING_POINT_LITERAL)) return true;
+  private boolean jj_3R_99() {
+    if (jj_scan_token(FALSE)) return true;
     return false;
   }
 
-  private boolean jj_3R_50() {
-    if (jj_3R_56()) return true;
+  private boolean jj_3R_56() {
     Token xsp;
-    while (true) {
-      xsp = jj_scanpos;
-      if (jj_3R_57()) { jj_scanpos = xsp; break; }
+    xsp = jj_scanpos;
+    if (jj_3R_59()) {
+    jj_scanpos = xsp;
+    if (jj_3R_60()) return true;
     }
     return false;
   }
 
-  private boolean jj_3R_100() {
-    if (jj_scan_token(FALSE)) return true;
-    return false;
-  }
-
-  private boolean jj_3R_51() {
-    if (jj_scan_token(CONCAT)) return true;
+  private boolean jj_3R_59() {
+    if (jj_scan_token(PLUS)) return true;
     return false;
   }
 
-  private boolean jj_3R_99() {
+  private boolean jj_3R_98() {
     if (jj_scan_token(TRUE)) return true;
     return false;
   }
 
-  private boolean jj_3R_91() {
+  private boolean jj_3R_90() {
     Token xsp;
     xsp = jj_scanpos;
-    if (jj_3R_99()) {
+    if (jj_3R_98()) {
     jj_scanpos = xsp;
-    if (jj_3R_100()) return true;
+    if (jj_3R_99()) return true;
     }
     return false;
   }
 
-  private boolean jj_3R_46() {
-    if (jj_3R_50()) return true;
+  private boolean jj_3R_49() {
+    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_83() {
-    if (jj_3R_95()) return true;
+  private boolean jj_3R_82() {
+    if (jj_3R_94()) return true;
     return false;
   }
 
-  private boolean jj_3R_82() {
-    if (jj_3R_94()) return true;
+  private boolean jj_3R_50() {
+    if (jj_scan_token(CONCAT)) return true;
     return false;
   }
 
@@ -2693,28 +2669,23 @@ public class ELParser/*@bgen(jjtree)*/im
     return false;
   }
 
-  private boolean jj_3R_55() {
-    Token xsp;
-    xsp = jj_scanpos;
-    if (jj_scan_token(29)) {
-    jj_scanpos = xsp;
-    if (jj_scan_token(30)) return true;
-    }
+  private boolean jj_3R_79() {
+    if (jj_3R_91()) return true;
     return false;
   }
 
-  private boolean jj_3R_75() {
+  private boolean jj_3R_74() {
     Token xsp;
     xsp = jj_scanpos;
+    if (jj_3R_78()) {
+    jj_scanpos = xsp;
     if (jj_3R_79()) {
     jj_scanpos = xsp;
     if (jj_3R_80()) {
     jj_scanpos = xsp;
     if (jj_3R_81()) {
     jj_scanpos = xsp;
-    if (jj_3R_82()) {
-    jj_scanpos = xsp;
-    if (jj_3R_83()) return true;
+    if (jj_3R_82()) return true;
     }
     }
     }
@@ -2722,14 +2693,34 @@ public class ELParser/*@bgen(jjtree)*/im
     return false;
   }
 
-  private boolean jj_3R_79() {
-    if (jj_3R_91()) return true;
+  private boolean jj_3R_78() {
+    if (jj_3R_90()) return true;
+    return false;
+  }
+
+  private boolean jj_3R_45() {
+    if (jj_3R_49()) return true;
+    Token xsp;
+    while (true) {
+      xsp = jj_scanpos;
+      if (jj_3R_50()) { jj_scanpos = xsp; break; }
+    }
     return false;
   }
 
   private boolean jj_3R_54() {
     Token xsp;
     xsp = jj_scanpos;
+    if (jj_scan_token(29)) {
+    jj_scanpos = xsp;
+    if (jj_scan_token(30)) return true;
+    }
+    return false;
+  }
+
+  private boolean jj_3R_53() {
+    Token xsp;
+    xsp = jj_scanpos;
     if (jj_scan_token(31)) {
     jj_scanpos = xsp;
     if (jj_scan_token(32)) return true;
@@ -2737,7 +2728,7 @@ public class ELParser/*@bgen(jjtree)*/im
     return false;
   }
 
-  private boolean jj_3R_53() {
+  private boolean jj_3R_52() {
     Token xsp;
     xsp = jj_scanpos;
     if (jj_scan_token(25)) {
@@ -2747,23 +2738,23 @@ public class ELParser/*@bgen(jjtree)*/im
     return false;
   }
 
-  private boolean jj_3R_47() {
+  private boolean jj_3R_46() {
     Token xsp;
     xsp = jj_scanpos;
+    if (jj_3R_51()) {
+    jj_scanpos = xsp;
     if (jj_3R_52()) {
     jj_scanpos = xsp;
     if (jj_3R_53()) {
     jj_scanpos = xsp;
-    if (jj_3R_54()) {
-    jj_scanpos = xsp;
-    if (jj_3R_55()) return true;
+    if (jj_3R_54()) return true;
     }
     }
     }
     return false;
   }
 
-  private boolean jj_3R_52() {
+  private boolean jj_3R_51() {
     Token xsp;
     xsp = jj_scanpos;
     if (jj_scan_token(27)) {
@@ -2773,18 +2764,33 @@ public class ELParser/*@bgen(jjtree)*/im
     return false;
   }
 
-  private boolean jj_3R_43() {
-    if (jj_3R_46()) return true;
+  private boolean jj_3_8() {
+    if (jj_scan_token(IDENTIFIER)) return true;
+    if (jj_scan_token(COLON)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_95() {
+    Token xsp;
+    xsp = jj_scanpos;
+    if (jj_3_8()) jj_scanpos = xsp;
+    if (jj_scan_token(IDENTIFIER)) return true;
+    if (jj_scan_token(LPAREN)) return true;
+    return false;
+  }
+
+  private boolean jj_3R_42() {
+    if (jj_3R_45()) return true;
     Token xsp;
     while (true) {
       xsp = jj_scanpos;
-      if (jj_3R_47()) { jj_scanpos = xsp; break; }
+      if (jj_3R_46()) { jj_scanpos = xsp; break; }
     }
     return false;
   }
 
-  private boolean jj_3R_28() {
-    if (jj_3R_22()) return true;
+  private boolean jj_3R_27() {
+    if (jj_3R_21()) return true;
     return false;
   }
 

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=1503672&r1=1503671&r2=1503672&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/el/parser/ELParser.jjt (original)
+++ tomcat/trunk/java/org/apache/el/parser/ELParser.jjt Tue Jul 16 12:00:18 2013
@@ -138,7 +138,7 @@ void LambdaParameters() #LambdaParameter
  */
 void LambdaExpressionOrInvocation() #LambdaExpressionOrInvocation : {}
 {
-    <LPAREN> LambdaExpression() <RPAREN> ( MethodParameters() )*
+    <LPAREN> LambdaExpression() <RPAREN> ( MethodParameters() )?
 }
 
 /*



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org