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

research:jtransformer:api:java:pefs:4.2:extendst [2018/05/09 01:59] (current)
Line 1: Line 1:
 +{{page>​prologast_bodypef_index&​fullpage&​nofooter}}
  
 +----
 +
 +=== extendsT(#​id,​ #parent, #​super) ​ ===
 +Represents the **immediate** subtype/​supertype relation. Transitive super-/​subtyping is expressed by the predicate [[..:​..:​queries:​subtype|subtype(#​subClass,​ #​superClass)]].
 +
 +=== Arguments ===
 +== ==
 +**#id:** id\\
 +The unique id of this fact.
 +
 +**#​parent:​** [[classt|classT]] \\ 
 +ID of an object type (class or interface)
 +
 +**#super:** [[classt|classT]],​ [[parameterizedtypet|parameterizedTypeT]] \\ 
 +ID of a classTor a parameterizedTypeT referencing the direct supertype (superclass or superinterface).\\ ​
 +Note: Interfaces that have no explicit super-interface in the source code have the class java.lang.Object as direct supertype.
 +
 +=== Sample Java Source ===
 +== ==
 +<Code lang-java>​
 +public class HelloWorld extends HelloUniverse {            //#class
 + ...
 +}
 +
 +...
 +public class HelloUniverse {                               //#​extendedClass
 +  ...
 +}
 +
 +</​Code>​
 +
 +
 +=== Its PEF Representation ===
 +==  ==
 +<Code lang-prolog>​
 +extendsT(#​extends,​ #class, #​extendedClass).
 +classT(#​class,​ '​null',​ '​HelloWorld',​ [], _).
 +classT(#​extendedClass,​ '​null',​ '​HelloUniverse',​ [], _).
 +</​Code>​
 +
 +=== AST Specification ===
 +== ==
 +<​Code>​
 +ast_node_type_spec(extendsT,​[
 +     ​ast_arg(id, ​   mult(1,1,no ), id,   ​[extendsT]),​
 +     ​ast_arg(parent,​mult(1,​1,​no ), id,   ​[classT]), ​
 +     ​ast_arg(super,​ mult(1,1,no ), id,   ​[classT,​ parameterizedTypeT]) ​
 +]).
 +</​Code>​
research/jtransformer/api/java/pefs/4.2/extendst.txt · Last modified: 2018/05/09 01:59 (external edit)

SEWiki, © 2019