Author: remy.maucherat(a)jboss.com
Date: 2008-09-18 22:11:27 -0400 (Thu, 18 Sep 2008)
New Revision: 785
Modified:
trunk/java/org/apache/el/parser/ELParser.jjt
Log:
- More optimized lookahead usage.
Modified: trunk/java/org/apache/el/parser/ELParser.jjt
===================================================================
--- trunk/java/org/apache/el/parser/ELParser.jjt 2008-09-19 01:53:57 UTC (rev 784)
+++ trunk/java/org/apache/el/parser/ELParser.jjt 2008-09-19 02:11:27 UTC (rev 785)
@@ -5,9 +5,9 @@
* 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.
@@ -16,8 +16,8 @@
*/
/*
- Author: Jacob Hookom
- Email: jacob at
hookom.net
+ Author: Jacob Hookom
+ Email: jacob at
hookom.net
*/
/* == Option Declaration == */
@@ -32,7 +32,6 @@
JAVA_UNICODE_ESCAPE=false;
UNICODE_INPUT=true;
BUILD_NODE_FILES=true;
- LOOKAHEAD=3;
}
/* == Parser Declaration == */
@@ -78,7 +77,7 @@
*/
void DeferredExpression() #DeferredExpression : {}
{
- <START_DEFERRED_EXPRESSION> Expression() <END_EXPRESSION>
+ <START_DEFERRED_EXPRESSION> Expression() <END_EXPRESSION>
}
/*
@@ -87,7 +86,7 @@
*/
void DynamicExpression() #DynamicExpression : {}
{
- <START_DYNAMIC_EXPRESSION> Expression() <END_EXPRESSION>
+ <START_DYNAMIC_EXPRESSION> Expression() <END_EXPRESSION>
}
/*
@@ -105,7 +104,7 @@
*/
void Choice() : {}
{
- Or() (<QUESTIONMARK> Choice() <COLON> Choice() #Choice(3))*
+ Or() (LOOKAHEAD(3) <QUESTIONMARK> Choice() <COLON> Choice() #Choice(3))*
}
/*
@@ -184,8 +183,8 @@
|
((<DIV0>|<DIV1>) Unary() #Div(2))
|
- ((<MOD0>|<MOD1>) Unary() #Mod(2))
- )*
+ ((<MOD0>|<MOD1>) Unary() #Mod(2))
+ )*
}
/*
@@ -194,12 +193,12 @@
*/
void Unary() : {}
{
- <MINUS> Unary() #Negative
+ <MINUS> Unary() #Negative
|
- (<NOT0>|<NOT1>) Unary() #Not
+ (<NOT0>|<NOT1>) Unary() #Not
|
<EMPTY> Unary() #Empty
- |
+ |
Value()
}
@@ -279,7 +278,7 @@
Token t1 = null;
}
{
- (t0=<IDENTIFIER> <COLON>)? t1=<IDENTIFIER>
+ (LOOKAHEAD(2) t0=<IDENTIFIER> <COLON>)? t1=<IDENTIFIER>
{
if (t0 != null) {
jjtThis.setPrefix(t0.image);
@@ -376,62 +375,62 @@
<IN_EXPRESSION> TOKEN :
{
< INTEGER_LITERAL: ["0"-"9"] (["0"-"9"])*
>
-| < FLOATING_POINT_LITERAL: (["0"-"9"])+ "."
(["0"-"9"])* (<EXPONENT>)?
+| < FLOATING_POINT_LITERAL: (["0"-"9"])+ "."
(["0"-"9"])* (<EXPONENT>)?
| "." (["0"-"9"])+ (<EXPONENT>)?
| (["0"-"9"])+ <EXPONENT>
-| < #EXPONENT: ["e","E"]
(["+","-"])? (["0"-"9"])+ >
-| < STRING_LITERAL: ("\"" ((~["\"","\\"])
+| < #EXPONENT: ["e","E"] (["+","-"])?
(["0"-"9"])+ >
+| < STRING_LITERAL: ("\"" ((~["\"","\\"])
| ("\\" ( ["\\","\""] )))*
"\"")
| ("\'" ((~["\'","\\"])
| ("\\" ( ["\\","\'"] )))* "\'")
-| < BADLY_ESCAPED_STRING_LITERAL: ("\""
(~["\"","\\"])* ("\\" (
~["\\","\""] )))
+| < BADLY_ESCAPED_STRING_LITERAL: ("\""
(~["\"","\\"])* ("\\" (
~["\\","\""] )))
| ("\'" (~["\'","\\"])* ("\\" (
~["\\","\'"] )))
-| < TRUE : "true" >
-| < FALSE : "false" >
-| < NULL : "null" >
-| < END_EXPRESSION : "}" > : DEFAULT
-| < DOT : "." >
-| < LPAREN : "(" >
-| < RPAREN : ")" >
-| < LBRACK : "[" >
-| < RBRACK : "]" >
-| < COLON : ":" >
-| < COMMA : "," >
-| < GT0 : ">" >
-| < GT1 : "gt" >
-| < LT0 : "<" >
-| < LT1 : "lt" >
-| < GE0 : ">=" >
-| < GE1 : "ge" >
-| < LE0 : "<=" >
-| < LE1 : "le" >
-| < EQ0 : "==" >
-| < EQ1 : "eq" >
-| < NE0 : "!=" >
-| < NE1 : "ne" >
-| < NOT0 : "!" >
-| < NOT1 : "not" >
-| < AND0 : "&&" >
-| < AND1 : "and" >
-| < OR0 : "||" >
-| < OR1 : "or" >
-| < EMPTY : "empty" >
-| < INSTANCEOF : "instanceof" >
-| < MULT : "*" >
-| < PLUS : "+" >
-| < MINUS : "-" >
-| < QUESTIONMARK : "?" >
-| < DIV0 : "/" >
-| < DIV1 : "div" >
-| < MOD0 : "%" >
-| < MOD1 : "mod" >
-| < IDENTIFIER : (<LETTER>|<IMPL_OBJ_START>)
(<LETTER>|<DIGIT>)* >
-| < FUNCTIONSUFFIX : (<IDENTIFIER>) >
-| < #IMPL_OBJ_START: "#" >
-| < #LETTER:
+| < TRUE : "true" >
+| < FALSE : "false" >
+| < NULL : "null" >
+| < END_EXPRESSION : "}" > : DEFAULT
+| < DOT : "." >
+| < LPAREN : "(" >
+| < RPAREN : ")" >
+| < LBRACK : "[" >
+| < RBRACK : "]" >
+| < COLON : ":" >
+| < COMMA : "," >
+| < GT0 : ">" >
+| < GT1 : "gt" >
+| < LT0 : "<" >
+| < LT1 : "lt" >
+| < GE0 : ">=" >
+| < GE1 : "ge" >
+| < LE0 : "<=" >
+| < LE1 : "le" >
+| < EQ0 : "==" >
+| < EQ1 : "eq" >
+| < NE0 : "!=" >
+| < NE1 : "ne" >
+| < NOT0 : "!" >
+| < NOT1 : "not" >
+| < AND0 : "&&" >
+| < AND1 : "and" >
+| < OR0 : "||" >
+| < OR1 : "or" >
+| < EMPTY : "empty" >
+| < INSTANCEOF : "instanceof" >
+| < MULT : "*" >
+| < PLUS : "+" >
+| < MINUS : "-" >
+| < QUESTIONMARK : "?" >
+| < DIV0 : "/" >
+| < DIV1 : "div" >
+| < MOD0 : "%" >
+| < MOD1 : "mod" >
+| < IDENTIFIER : (<LETTER>|<IMPL_OBJ_START>)
(<LETTER>|<DIGIT>)* >
+| < FUNCTIONSUFFIX : (<IDENTIFIER>) >
+| < #IMPL_OBJ_START: "#" >
+| < #LETTER:
[
"\u0024",
"\u0041"-"\u005a",
@@ -448,7 +447,7 @@
"\uf900"-"\ufaff"
]
-| < #DIGIT:
+| < #DIGIT:
[
"\u0030"-"\u0039",
"\u0660"-"\u0669",
@@ -467,5 +466,5 @@
"\u1040"-"\u1049"
]
-| < ILLEGAL_CHARACTER: (~[]) >
+| < ILLEGAL_CHARACTER: (~[]) >
}