SDA SE Wiki

Software Engineering for Smart Data Analytics & Smart Data Analytics for Software Engineering

User Tools

Site Tools



typeRefT(#id, #parent, #encl, #type)

Represents a (qualified) class name in static method calls or static field access.

Attributes

#id:
the unique ID assigned to this fact.

#parent: callT, getFieldT
ID of the static method call or field access performed on this type.

#encl: methodT, constructorT, classInitializerT, fieldT, classT, annotationMemberT
ID of the enclosing declaration.

#type: classT
The type on which the static field access or method invocation is performed.

Sample Java Source

   pckg.TypeName.staticMethodCall();

Its PEF Representation

 packageT(#Package, 'pckg').
 classT(#Class, #Package, 'TypeName', [...]).
 ...
 callT(#Call, #Parent, #Encl, #Expr, staticMethodCall, [], #method).  // The static method call #Call 
 typeRefT(#Expr, #Call, #Encl, #Class).                               // is performed on #Class

AST Specification

ast_node_def('Java',typeRefT,[
     ast_arg(id,      mult(1,1,no ), id,  [typeRefT]),
     ast_arg(parent,  mult(1,1,no ), id,  [callT, getFieldT]), 
     ast_arg(encl,    mult(1,1,no ), id,  [methodT, constructorT, classInitializerT, fieldT, classT, annotationMemberT]), 
     ast_arg(type,    mult(1,1,no ), id,  [classT]) 
]).
research/jtransformer/api/java/pefs/2.9/typereft.txt · Last modified: 2018/05/09 01:59 (external edit)

SEWiki, © 2023