Software Engineering for Smart Data Analytics & Smart Data Analytics for Software Engineering
Represents a field access expression (read access and write access).
#id: id
the unique ID of this field access.
#parent: id
ID of the parent node.
#encl: methodT, constructorT, classInitializerT, fieldT, annotationMemberT, annotationT
ID of the fact that represents the enclosing element.
#receiver: expression, staticTypeRefT, 'null'
ID of the expression on which the field is accessed
or 'null' for the implicit field access.
In case of an access to a static field #expr is a staticTypeRefT.
#field: fieldT, null
ID of the accessed field.
The value null
is only valid if the accessed field is the “length” field of an array.
int field = 1; public void getField() { int j = field; }
fieldT(#field, ..., #fieldtype, 'field', ...). methodT(#encl, ..., 'getField', [], #returntype, [], ...). localT(#parent, ..., #encl, #localtype, 'j', #id). getFieldT(#id, #parent, #encl, 'null', #field).
ast_node_def('Java',getFieldT,[ ast_arg(id, mult(1,1,no ), id, [getFieldT]), ast_arg(parent, mult(1,1,no ), id, [id]), ast_arg(encl, mult(1,1,no ), id, [methodT, constructorT, classInitializerT, fieldT, annotationMemberT, annotationT]), ast_arg(expr, mult(0,1,no ), id, [nullType,expressionType,staticTypeRefT]), ast_arg(ref, mult(1,1,no ), id, [fieldT,nullType]) ]).