SDA SE WikiSoftware 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])
]).