2013/7/15 <[email protected]>
>
> Author: markt
> Date: Sun Jul 14 21:07:26 2013
> New Revision: 1503056
>
> URL: http://svn.apache.org/r1503056
> Log:
> Start to implement the lambda expression syntax. Very basic expressions
work. I expect further changes to be required for more complex expressions.
> Includes the initial unit tests for this syntax.
>
> Modified:
tomcat/trunk/java/org/apache/el/parser/AstLambdaExpressionOrInvocation.java
> URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/el/parser/AstLambdaExpressionOrInvocation.java?rev=1503056&r1=1503055&r2=1503056&view=diff
>
==============================================================================
> ---
tomcat/trunk/java/org/apache/el/parser/AstLambdaExpressionOrInvocation.java
(original)
> +++
tomcat/trunk/java/org/apache/el/parser/AstLambdaExpressionOrInvocation.java
Sun Jul 14 21:07:26 2013
> @@ -17,10 +17,33 @@
> /* Generated By:JJTree: Do not edit this line.
AstLambdaExpressionOrInvocation.java Version 4.3 */
> package org.apache.el.parser;
>
> -public
> -class AstLambdaExpressionOrInvocation extends SimpleNode {
> - public AstLambdaExpressionOrInvocation(int id) {
> - super(id);
> - }
> +import javax.el.ELException;
> +
> +import org.apache.el.lang.EvaluationContext;
> +
> +public class AstLambdaExpressionOrInvocation extends SimpleNode {
> +
> + public AstLambdaExpressionOrInvocation(int id) {
> + super(id);
> + }
> +
> +
> + @Override
> + public Object getValue(EvaluationContext ctx) throws ELException {
> +
> + if (children.length == 2) {
Why you are limiting the children to 2.
We have MethodArguments -> zero or more:
void LambdaExpressionOrCall() #LambdaExpression : {}
{
<LPAREN>
LambdaParameters() <ARROW>
(LOOKAHEAD(3) LambdaExpression() | Choice() )
<RPAREN>
(MethodArguments())*
}
> + AstLambdaExpression lambdaExpression =
> + (AstLambdaExpression) children[0];
> +
> +
> + Object[] args =
> + ((AstMethodParameters)
children[1]).getParameters(ctx);
> +
> + return lambdaExpression.invoke(ctx, null, args);
> + }
> +
> + // TODO Auto-generated method stub
> + return super.getValue(ctx);
> + }
> }
> /* JavaCC - OriginalChecksum=6b3dd15b31540457a41bd55974037ed9 (do not
edit this line) */