Packages, Compilation Units and Imports | Annotations | Declarations | Type Elements & Relations | Expressions | Statements | Body Level Attributes |
|---|
assignT(#id, #parent, #encl, #lhs, #expr)
Represents the assignment expression.
Attributes
#id: id
the unique ID assigned to this fact.
#parent: id
the ID of the parent node.
#encl: methodT, constructorT, classInitializerT, fieldT
the ID of the fact that represents the enclosing element.
#lhs: getFieldT, identT, indexedT
ID of the left hand side of this assignment expression.
#exprt: expression
ID of the right hand side expression.
Sample Java Source
void assign(){ int i = 5; int j = 9; i = i + j; //corresponding code line to assignT }
Its PEF Representation
assignT(#id, #parent, #encl, #lhs, #expr). execT(#parent, ..., #encl, #id). methodT(#encl, ..., 'assign', [], type(basic, void, 0), [], ...). identT(#lhs, #id, #encl, 'i', ...). operationT(#expr, #id, #encl, [..., ...], '+', 0).
AST Specification
ast_node_def('Java',assignT,[
ast_arg(id, mult(1,1,no ), id, [assignT]), % <-- convention!!!
ast_arg(parent, mult(1,1,no ), id, [id]), % <-- convention!!!
ast_arg(encl, mult(1,1,no ), id, [methodT, constructorT, classInitializerT, fieldT]),
ast_arg(lhs, mult(1,1,no ), id, [getFieldT, identT, indexedT]),
ast_arg(expr, mult(1,1,no ), id, [expressionType])
]).


