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