Software Engineering for Smart Data Analytics & Smart Data Analytics for Software Engineering
This fact is only used for preserving the original appearance of the source code after transformations. It declares that the parameter of a lambda expression doesn't have the enclosing parantheses. The only case where this is allowed is, if there is exactly one parameter. If the parantheses are omitted it always means, that the parameter type is omitted also (see omit_lambdaParameterTypesT).
e -> System.out.println("button pressed"));
instead of
(e) -> System.out.println("button pressed"));
#id: lambdaT
ID of the lambdaT element.
JButton button = new JButton(); button.addActionListener(e -> System.out.println("button pressed"));
localT(#Button, ..., 'button', ...). ... callT(#Parent, ..., [#Lambda], #RefToAddActionListener, [], ...). lambdaT(#Lambda, #Parent, #Enclosing, [#Parameter], #Body). omit_lambdaParameterParenthesesT(#Lamba). omit_lambdaParameterTypesT(#Lamba). paramT(#Parameter, #Lambda, #RefToActionEvent 'e'). // Paramter of the lambda expression callT(#Body, #Lambda, #Lambda, ...). // Sysout call (Body of the lambda expression)
ast_relation_type_spec(omit_lambdaParameterParenthesesT,[ ast_arg(id, mult(1,1,no ), id, [lambdaT]) ]).