Author: henrib Date: Thu Dec 10 09:43:46 2009 New Revision: 889161 URL: http://svn.apache.org/viewvc?rev=889161&view=rev Log: made essential separators explicit in grammar
Modified: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/parser/Parser.jjt Modified: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/parser/Parser.jjt URL: http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/parser/Parser.jjt?rev=889161&r1=889160&r2=889161&view=diff ============================================================================== --- commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/parser/Parser.jjt (original) +++ commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl2/parser/Parser.jjt Thu Dec 10 09:43:46 2009 @@ -81,7 +81,7 @@ * Skip & Number literal tokens ***************************************/ -<DEFAULT, FOR_EACH_IN> SKIP : /* WHITE SPACE */ +<*> SKIP : /* WHITE SPACE */ { <"##" (~["\n","\r"])* ("\n" | "\r" | "\r\n")? > | <"/*" (~["*"])* "*" ("*" | ~["*","/"] (~["*"])* "*")* "/"> @@ -93,7 +93,7 @@ | "\f" } -TOKEN : /* LITERALS */ +<*> TOKEN : /* LITERALS */ { < INTEGER_LITERAL: (<DIGIT>)+ > | @@ -101,7 +101,7 @@ } -TOKEN : /* KEYWORDS */ +<*> TOKEN : /* KEYWORDS */ { < IF : "if" > | < ELSE : "else" > @@ -116,13 +116,16 @@ | < FALSE : "false" > } -<DEFAULT, FOR_EACH_IN> TOKEN : { +<*> TOKEN : { /* SEPARATORS */ < LPAREN : "(" > | < RPAREN : ")" > | < LCURLY : "{" > | < RCURLY : "}" > + | < LBRACKET : "[" > + | < RBRACKET : "]" > | < SEMICOL : ";" > | < COLON : ":" > + | < COMMA : "," > } <FOR_EACH_IN> TOKEN : /* foreach in */ @@ -208,7 +211,7 @@ { ConditionalOrExpression() ( - "?" Expression() ":" Expression() #TernaryNode(3) + "?" Expression() <COLON> Expression() #TernaryNode(3) | "?:" Expression() #TernaryNode(2) )? @@ -412,17 +415,17 @@ void ArrayLiteral() : {} { - "[" Expression() ( "," Expression() )* "]" + <LBRACKET> Expression() ( <COMMA> Expression() )* <RBRACKET> } void MapLiteral() : {} { - "{" MapEntry() ( "," MapEntry() )* "}" + <LCURLY> MapEntry() ( <COMMA> MapEntry() )* <RCURLY> } void MapEntry() : {} { - Expression() ":" Expression() + Expression() <COLON> Expression() } @@ -432,42 +435,42 @@ void EmptyFunction() : {} { - LOOKAHEAD(3) <EMPTY> "(" Expression() ")" + LOOKAHEAD(3) <EMPTY> <LPAREN> Expression() <RPAREN> | <EMPTY> Reference() } void SizeFunction() : {} { - <SIZE> "(" Expression() ")" + <SIZE> <LPAREN> Expression() <RPAREN> } void Function() #FunctionNode: {} { - Identifier() ":" Identifier() "("[ Expression() ( "," Expression() )* ] ")" + Identifier() <COLON> Identifier() <LPAREN>[ Expression() ( <COMMA> Expression() )* ] <RPAREN> } void Method() #MethodNode: {} { - Identifier() "("[ Expression() ( "," Expression() )* ] ")" + Identifier() <LPAREN>[ Expression() ( <COMMA> Expression() )* ] <RPAREN> } void AnyMethod() #void : {} { LOOKAHEAD(<SIZE>) SizeMethod() | - LOOKAHEAD(Identifier() "(") Method() + LOOKAHEAD(Identifier() <LPAREN>) Method() } void SizeMethod() : {} { - <SIZE> "(" ")" + <SIZE> <LPAREN> <RPAREN> } -void Constructor() # ConstructorNode() : {} +void Constructor() #ConstructorNode() : {} { - <NEW> "("[ Expression() ( "," Expression() )* ] ")" + <NEW> <LPAREN>[ Expression() ( <COMMA> Expression() )* ] <RPAREN> } @@ -481,29 +484,29 @@ | LOOKAHEAD(3) Reference() | - LOOKAHEAD("(") "(" Expression() ")" + LOOKAHEAD( <LPAREN> ) <LPAREN> Expression() <RPAREN> | - LOOKAHEAD(<EMPTY>) EmptyFunction() + LOOKAHEAD( <EMPTY> ) EmptyFunction() | - LOOKAHEAD(<SIZE>) SizeFunction() + LOOKAHEAD( <SIZE> ) SizeFunction() | - LOOKAHEAD(<NEW> "(") Constructor() + LOOKAHEAD( <NEW> <LPAREN> ) Constructor() | - LOOKAHEAD( "{" MapEntry() ) MapLiteral() + LOOKAHEAD( <LCURLY> MapEntry() ) MapLiteral() | - LOOKAHEAD( "[" Expression() ) ArrayLiteral() + LOOKAHEAD( <LBRACKET> Expression() ) ArrayLiteral() } void ArrayAccess() : {} { - Identifier() (LOOKAHEAD(2) "[" Expression() "]")+ + Identifier() (LOOKAHEAD(2) <LBRACKET> Expression() <RBRACKET>)+ } void DotReference() #void : {} { ("." - ( LOOKAHEAD(Identifier() "[" ) + ( LOOKAHEAD(Identifier() <LBRACKET> ) ArrayAccess() | ( LOOKAHEAD(3) @@ -521,24 +524,24 @@ { ( LOOKAHEAD(<NEW>) Constructor() | - LOOKAHEAD(Identifier() "[" ) ArrayAccess() + LOOKAHEAD(Identifier() <LBRACKET> ) ArrayAccess() | - LOOKAHEAD(Identifier() ":" Identifier() "(") Function() + LOOKAHEAD(Identifier() <COLON> Identifier() <LPAREN>) Function() | - LOOKAHEAD(Identifier() "(") Method() + LOOKAHEAD(Identifier() <LPAREN>) Method() | Identifier() | - LOOKAHEAD("{") MapLiteral() + LOOKAHEAD(<LCURLY>) MapLiteral() | - LOOKAHEAD("[") ArrayLiteral() ) DotReference() + LOOKAHEAD(<LBRACKET>) ArrayLiteral() ) DotReference() } /*************************************** * Identifier & String tokens ***************************************/ -<DEFAULT, FOR_EACH_IN> TOKEN : /* IDENTIFIERS */ +<*> TOKEN : /* IDENTIFIERS */ { < IDENTIFIER: <LETTER> (<LETTER>|<DIGIT>)* > | @@ -547,7 +550,7 @@ < #DIGIT: [ "0"-"9"] > } -TOKEN : +<*> TOKEN : { <STRING_LITERAL : ("\"" ( ~["\"","\n","\r"] | "\\" ["u","n","t","b","r","f","\\","\""] )* "\"" )