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

Next revision
Previous revision
research:jtransformer:api:java:pefs:4.2:constructorreferencet [2015/06/29 13:34]
127.0.0.1 external edit
research:jtransformer:api:java:pefs:4.2:constructorreferencet [2018/05/09 01:59] (current)
Line 1: Line 1:
 +{{page>​prologast_bodypef_index&​fullpage&​nofooter}}
  
 +----
 +
 +=== constructorReferenceT(#​id,​ #parent, #encl, #type, [#​type_param_1,​...],​ #ref)  ===
 +
 +Represents a constructor reference. See the [[http://​docs.oracle.com/​javase/​specs/​jls/​se8/​html/​jls-15.html#​jls-15.13|Java Language Specification]].
 +
 +
 +=== Arguments ===
 +
 +==  ==
 +**#id:** id\\  ​
 +the unique ID assigned to this fact.
 +
 +**#​parent:​** id\\ 
 +the ID of the fact that represents the parent of this fact in the prolog AST.
 +
 +**#encl:** [[method_declaration_type|Method declaration type]], [[fieldt|fieldT]]\\ ​
 +the ID of the fact that represents the enclosing element.
 +
 +**#​type:​** ​ [[type_inst|Type reference]],​ null\\ ​
 +the ID of the type fact representing the receiver.
 +
 +**[#​type_param_1,​...]:​** [[type_inst|Type reference]],​ [[wildcardt|wildcardT]]\\ ​
 +list of IDs of the type parameters of this method reference.
 +
 +**#ref:** [[constructort|constructorT]],​ null\\ ​
 +ID of the [[constructort|constructorT]] fact that represents the declaration of the referenced constructor. If the receiver is an array type, this argument'​s value is null.
 +
 +=== Sample Java Source ===
 +
 +==  ==
 +<Code lang-java>​
 +interface MyInterface {    ​
 +    int[] someMethod(int i);
 +}
 +...
 +class MyClass {
 +  void m() {
 +    MyInterface f = int[]::new;
 +  }
 +}
 +</​Code>​
 +
 +
 +=== Its PEF Representation ===
 +
 +==  ==
 +<​Code>​
 +methodT(#​Method,​ ..., '​m',​ [], #​returntype,​ [], ...).   // Enclosing method
 +...
 +localT(#​Parent,​ ..., '​f',​ #​ConstrRef). ​                           // Parent of the constructor reference
 +constructorReferenceT(#​ConstrRef,​ #Parent, #Enclosing, #​IntArrayType,​ [], null).
 +arrayTypeT(#​IntArrayType,​ #RefToInt, 1).
 +</​Code>​
 +
 +=== AST Specification ===
 +== ==
 +<​Code>​
 +ast_node_type_spec(constructorReferenceT,​[
 +     ​ast_arg(id, ​        ​mult(1,​1,​no ), id,  [constructorReferenceT]),​
 +     ​ast_arg(parent, ​    ​mult(1,​1,​no ), id,  [id]),
 +     ​ast_arg(encl, ​      ​mult(1,​1,​no ), id,  [method_declaration_type,​fieldT]),​
 +     ​ast_arg(type, ​      ​mult(1,​1,​no ), id,  [type_inst, null_type]),​
 +     ​ast_arg(typeParams,​ mult(0,​*,​ord),​ id,  [type_inst, wildcardT]),​
 +     ​ast_arg(ref, ​       mult(1,1,no ), id,  [constructorT,​ null_type])
 +]).
 +</​Code>​
research/jtransformer/api/java/pefs/4.2/constructorreferencet.txt · Last modified: 2018/05/09 01:59 (external edit)

SEWiki, © 2019