Optional brackets around lambda expression: proposed syntax with full grammar
Steven Simpson
ss at comp.lancs.ac.uk
Sat Jun 18 03:11:04 PDT 2011
On 18/06/11 10:56, Ali Ebrahimi wrote:
> LambdaDeclaration =
> LambdaParameterList '->' LambdaBody
>
> LambdaParameterList =
> ZeroOrOneLenParameterList | GreaterThanOneLenParameterList
>
> ZeroOrOneLenParameterList =
> '(' LambdaParameter? ')' | LambdaParameter?
>
> GreaterThanOneParameterList=
> '(' LambdaParameter , (LambdaParameter)+ ')'
That should probably also be:
GreaterThanOneParameterList=
'(' LambdaParameter ( ',' LambdaParameter )+ ')'
...unless I'm misunderstanding the meaning of the non-literal comma...?
And if you changed from + to *, you have the unary case with brackets
covered. Make the contents optional, and you have the nilary covered too:
GreaterThanOneParameterList=
'(' ( LambdaParameter ( ',' LambdaParameter )* )? ')'
LambdaParameterList =
LambdaParameter | GreaterThanOneLenParameterList
No need for ZeroOrOneLenParameterList then.
> LambdaParameter =
> Parameter | Identifier
>
> LambdaBody =
> Expression | `{' Statement* `}'
More information about the lambda-dev
mailing list