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 types of the parameters of a lambda expression are omitted in the code. This behaviour is applied to ALL parameters of a specific lambda expression.
(e) -> System.out.println("button pressed"));
instead of
(ActionEvent 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_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_lambdaParameterTypesT,[ ast_arg(id, mult(1,1,no ), id, [lambdaT]) ]).