SDA SE Wiki

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

User Tools

Site Tools


Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
research:jtransformer:api:java:pefs:4.0:statictypereft [2015/04/27 15:54]
127.0.0.1 external edit
research:jtransformer:api:java:pefs:4.0:statictypereft [2018/05/09 01:59] (current)
Line 1: Line 1:
 +{{page>​prologast_bodypef_index&​fullpage&​nofooter}}
 +
 +----
 +
 +=== staticTypeRefT(#​id,​ #parent, #encl, #​type) ​ ===
 +
 +Represents a (qualified) class name in static method calls or static field access.
 +(Added in JT 4.0. Was part of [[..:​3.0:​typeRefT|typeRefT]] in JT 3.0.)
 +
 +=== Attributes ===
 +== ==
 +**#id:**\\
 +the unique ID assigned to this fact.
 +
 +**#​parent:​** [[callT|callT]],​ [[fieldAccessT|fieldAccessT]]\\ ​
 +ID of the static method call or field access performed on this type.
 +
 +**#encl:** [[methodT|methodT]],​ [[constructorT|constructorT]],​ [[classInitializerT|classInitializerT]],​ [[fieldT|fieldT]],​ [[classT|classT]],​ [[annotationMemberT|annotationMemberT]]\\ ​
 +ID of the enclosing declaration.
 +
 +**#type:** [[classT|classT]]\\ ​
 +The type on which the static field access or method invocation is performed.
 +
 +=== Sample Java Source ===
 +==  ==
 +<Code lang-java>​
 +   ​pckg.TypeName.staticMethodCall();​
 +</​Code>​
 +
 +
 +=== Its PEF Representation ===
 +==  ==
 +<​Code>​
 + ​packageT(#​Package,​ '​pckg'​).
 + ​classT(#​Class,​ #Package, '​TypeName',​ [...]).
 + ...
 + ​callT(#​Call,​ #Parent, #Encl, #Expr, [], #​method). ​ // The static method call #Call 
 + ​staticTypeRefT(#​Expr,​ #Call, #Encl, #​Class). ​      // is performed on #Class
 +</​Code>​
 + 
 +=== AST Specification ===
 +== ==
 +<​Code>​
 +ast_node_type_spec(staticTypeRefT,​[
 +     ​ast_arg(id, ​     mult(1,1,no ), id,  [staticTypeRefT]),​
 +     ​ast_arg(parent, ​ mult(1,1,no ), id,  [callT, fieldAccessT]), ​
 +     ​ast_arg(encl, ​   mult(1,1,no ), id,  [methodT, constructorT,​ classInitializerT,​ fieldT, classT, annotationMemberT]), ​
 +     ​ast_arg(typeRef,​ mult(1,1,no ), id,  [classT])
 +]).
 +</​Code>​
  
research/jtransformer/api/java/pefs/4.0/statictypereft.txt · Last modified: 2018/05/09 01:59 (external edit)

SEWiki, © 2019