[java] Prepare for Java 11

This commit is contained in:
Andreas Dangel
2018-07-19 22:00:34 +02:00
parent 0f9bc63bfc
commit c362f5a77f
12 changed files with 221 additions and 60 deletions

View File

@ -2206,10 +2206,38 @@ void LambdaExpression() :
{ checkForBadLambdaUsage(); }
{
VariableDeclaratorId() "->" ( Expression() | Block() )
| LOOKAHEAD(3) FormalParameters() "->" ( Expression() | Block() )
| LOOKAHEAD(3) LambdaParameters() "->" ( Expression() | Block() )
| LOOKAHEAD(3) "(" VariableDeclaratorId() ( "," VariableDeclaratorId() )* ")" "->" ( Expression() | Block() )
}
void LambdaParameters() #FormalParameters :
{}
{
"(" [ LambdaParameterList() ] ")"
}
void LambdaParameterList() #void :
{}
{
LambdaParameter() ( "," LambdaParameter() )*
}
void LambdaParameter() #FormalParameter :
{}
{
( "final" {jjtThis.setFinal(true);} | Annotation() )*
LambdaParameterType()
[ "..." {checkForBadVariableArgumentsUsage();} {jjtThis.setVarargs();} ]
VariableDeclaratorId()
}
void LambdaParameterType() #void :
{}
{
LOOKAHEAD( { jdkVersion >= 11 && isKeyword("var") } ) <IDENTIFIER>
| Type()
}
void PrimarySuffix() :
{Token t;}
{ LOOKAHEAD(2) "." "this"