hg: lambda/lambda/langtools: Implement parser changes to support C#-like syntax for lambda expressions.
maurizio.cimadamore at oracle.com
maurizio.cimadamore at oracle.com
Fri Sep 9 06:21:26 PDT 2011
Changeset: a4fc85ec18eb
Author: mcimadamore
Date: 2011-09-09 14:19 +0100
URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/a4fc85ec18eb
Implement parser changes to support C#-like syntax for lambda expressions.
Examples:
x -> x + 1
(x) -> x + 1
(int x) -> x + 1
(int x, int y) -> x + y
(x, y) -> x + y
(x, y) -> { System.out.printf("%d + %d = %d%n", x, y, x+y); }
() -> { System.out.println("I am a Runnable"); }
Note: 'thin' arrow is still used (instead of 'fat' (=>) arrow a la C#). This will be a topic for further refinement.
! src/share/classes/com/sun/tools/javac/parser/JavacParser.java
! src/share/classes/com/sun/tools/javac/parser/Scanner.java
! src/share/classes/com/sun/tools/javac/parser/Token.java
! src/share/classes/com/sun/tools/javac/resources/compiler.properties
! test/tools/javac/api/TestJavacTaskScanner.java
! test/tools/javac/defender/Pos01.java
! test/tools/javac/diags/examples.not-yet.txt
! test/tools/javac/lambda/BadAccess.java
! test/tools/javac/lambda/BadAccess.out
! test/tools/javac/lambda/BadAccess02.java
! test/tools/javac/lambda/BadAccess02.out
! test/tools/javac/lambda/BadAccess03.java
! test/tools/javac/lambda/BadAccess03.out
! test/tools/javac/lambda/BadBreakContinue.java
! test/tools/javac/lambda/BadBreakContinue.out
! test/tools/javac/lambda/BadConv03.java
! test/tools/javac/lambda/BadConv04.java
! test/tools/javac/lambda/BadLambdaPos.java
- test/tools/javac/lambda/BadLambdaToken.java
- test/tools/javac/lambda/BadLambdaToken.out
! test/tools/javac/lambda/BadReturn.java
! test/tools/javac/lambda/BadReturn.out
! test/tools/javac/lambda/BadStatementInLambda.java
! test/tools/javac/lambda/BadStatementInLambda.out
! test/tools/javac/lambda/BadStatementInLambda02.java
! test/tools/javac/lambda/BadStatementInLambda02.out
! test/tools/javac/lambda/BadTargetType.java
! test/tools/javac/lambda/Conformance01.java
! test/tools/javac/lambda/Defender01.java
! test/tools/javac/lambda/ExceptionTransparency01.java
! test/tools/javac/lambda/ExceptionTransparency02.java
! test/tools/javac/lambda/ExceptionTransparency03.java
! test/tools/javac/lambda/ExceptionTransparency04.java
! test/tools/javac/lambda/LambdaCapture01.java
! test/tools/javac/lambda/LambdaCapture02.java
! test/tools/javac/lambda/LambdaCapture03.java
! test/tools/javac/lambda/LambdaCapture04.java
! test/tools/javac/lambda/LambdaCapture05.java
! test/tools/javac/lambda/LambdaConv01.java
! test/tools/javac/lambda/LambdaConv03.java
! test/tools/javac/lambda/LambdaConv05.java
! test/tools/javac/lambda/LambdaConv06.java
! test/tools/javac/lambda/LambdaConv08.java
! test/tools/javac/lambda/LambdaConv09.java
! test/tools/javac/lambda/LambdaConv10.java
! test/tools/javac/lambda/LambdaConv11.java
! test/tools/javac/lambda/LambdaConv12.java
! test/tools/javac/lambda/LambdaConv13.java
! test/tools/javac/lambda/LambdaConv16.java
! test/tools/javac/lambda/LambdaConv17.java
! test/tools/javac/lambda/LambdaConv19.java
! test/tools/javac/lambda/LambdaConversionTest.java
! test/tools/javac/lambda/LambdaExpr01.java
! test/tools/javac/lambda/LambdaExpr02.java
! test/tools/javac/lambda/LambdaExpr04.java
! test/tools/javac/lambda/LambdaExpr05.java
! test/tools/javac/lambda/LambdaExpr06.java
! test/tools/javac/lambda/LambdaExpr07.java
! test/tools/javac/lambda/LambdaExpr08.java
! test/tools/javac/lambda/LambdaExpr09.java
! test/tools/javac/lambda/LambdaExpr10.java
! test/tools/javac/lambda/LambdaExprNotVoid.java
! test/tools/javac/lambda/LambdaScope01.java
! test/tools/javac/lambda/LambdaScope02.java
! test/tools/javac/lambda/LambdaScope03.java
! test/tools/javac/lambda/LocalBreakAndContinue.java
! test/tools/javac/lambda/MethodReference12.java
! test/tools/javac/lambda/NakedThis.java
! test/tools/javac/lambda/SourceLevelTest.java
! test/tools/javac/lambda/TargetType01.java
! test/tools/javac/lambda/TargetType02.java
! test/tools/javac/lambda/TargetType03.java
! test/tools/javac/lambda/TargetType04.java
! test/tools/javac/lambda/TargetType05.java
! test/tools/javac/lambda/TargetType06.java
! test/tools/javac/lambda/TargetType07.java
! test/tools/javac/lambda/TargetType08.java
! test/tools/javac/lambda/TargetType10.java
! test/tools/javac/lambda/TargetType11.java
! test/tools/javac/lambda/TargetType12.java
! test/tools/javac/lambda/TargetType13.java
! test/tools/javac/lambda/TargetType14.java
! test/tools/javac/lambda/TargetType15.java
! test/tools/javac/lambda/TargetType16.java
! test/tools/javac/lambda/TargetType17.java
! test/tools/javac/lambda/TargetType18.java
! test/tools/javac/lambda/TargetType19.java
! test/tools/javac/lambda/TargetType20.java
! test/tools/javac/lambda/TargetType21.java
! test/tools/javac/lambda/TargetType22.java
! test/tools/javac/lambda/TargetType23.java
! test/tools/javac/lambda/TargetType24.java
! test/tools/javac/lambda/TargetType24.out
! test/tools/javac/lambda/TargetType25.java
! test/tools/javac/lambda/TargetType26.java
! test/tools/javac/lambda/TargetType27.java
! test/tools/javac/lambda/TargetType28.java
! test/tools/javac/lambda/TargetType29.java
! test/tools/javac/lambda/sqe/SAM_types/LambdaTest1.java
! test/tools/javac/lambda/sqe/SAM_types/LambdaTest1_neg1.java
! test/tools/javac/lambda/sqe/SAM_types/LambdaTest1_neg1.out
! test/tools/javac/lambda/sqe/SAM_types/LambdaTest1_neg2.java
! test/tools/javac/lambda/sqe/SAM_types/LambdaTest1_neg3.java
! test/tools/javac/lambda/sqe/SAM_types/LambdaTest2_SAM1.java
! test/tools/javac/lambda/sqe/SAM_types/LambdaTest2_SAM2.java
! test/tools/javac/lambda/sqe/SAM_types/LambdaTest2_neg1.java
! test/tools/javac/lambda/sqe/SAM_types/NonSAM1.java
! test/tools/javac/lambda/sqe/SAM_types/NonSAM3.java
! test/tools/javac/lambda/sqe/lambdaExpression/AbstractClass_neg.java
! test/tools/javac/lambda/sqe/lambdaExpression/AccessNonStatic_neg.java
! test/tools/javac/lambda/sqe/lambdaExpression/AccessNonStatic_neg.out
! test/tools/javac/lambda/sqe/lambdaExpression/EffectivelyFinal_neg.java
! test/tools/javac/lambda/sqe/lambdaExpression/InvalidExpression1.java
! test/tools/javac/lambda/sqe/lambdaExpression/InvalidExpression3.java
! test/tools/javac/lambda/sqe/lambdaExpression/InvalidExpression4.java
! test/tools/javac/lambda/sqe/lambdaExpression/InvalidExpression5.java
! test/tools/javac/lambda/sqe/lambdaExpression/InvalidExpression6.java
! test/tools/javac/lambda/sqe/lambdaExpression/InvalidExpression6.out
! test/tools/javac/lambda/sqe/lambdaExpression/LambdaTest1.java
! test/tools/javac/lambda/sqe/lambdaExpression/LambdaTest2.java
! test/tools/javac/lambda/sqe/lambdaExpression/LambdaTest3.java
! test/tools/javac/lambda/sqe/lambdaExpression/LambdaTest4.java
! test/tools/javac/lambda/sqe/lambdaExpression/LambdaTest5.java
! test/tools/javac/lambda/sqe/lambdaExpression/LambdaTest6.java
More information about the lambda-dev
mailing list