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:3.0:outertypeparamst [2018/05/09 01:59] (current)
Line 1: Line 1:
 +{{page>​prologast_bodypef_index&​fullpage&​nofooter}}
  
 +----
 +
 +=== outerTypeParamsT(#​id,​ #rawType, [#param1, ...]) === 
 +++ Java 5 Syntax Element | - supported since JTransformer 3.0  ++
 +
 +This fact represents the outer type parameters of a parameterized type if it is a reference to an inner class. There can be multiple outerTypeParamsT facts for one parameterized type.
 +
 +=== Arguments ===
 +== == 
 +**#id:** [[parameterizedTypeT|parameterizedTypeT]]\\ ​
 +the ID of the surrounding parameterizedTypeT.((here it's possible that the list of type parameters is empty, see the example))
 +
 +**#​rawType:​** [[classt|classT]]\\ ​
 +the raw type of the outer type
 +
 +**[#param1, ...]:** [[classt|classT]],​ [[parameterizedTypeT|parameterizedTypeT]],​ [[typeparamt|typeParamT]]\\
 +type params to the outer type
 +
 +=== Sample Java Source ===
 +== ==
 +<Code lang-java>​
 +class A {
 +  ​
 +  B<​String>​.C field;
 +
 +}
 +</​Code>​
 +
 +
 +=== Its PEF Representation ===
 +==  ==
 +<Code lang-prolog>​
 +fieldT(#​field,​ #class, #type, '​field',​ '​null'​).
 +parameterizedTypeT(#​type,​ #field, #rawTypeC, []).
 +outerTypeParamsT(#​type,​ #field, #rawTypeB, [#​TypeRefToString]).
 +</​Code>​
 +
 +
 +
 +=== AST Specification ===
 +== ==
 +<​Code>​
 +ast_relation('​Java',​ outerTypeParamsT,​[
 +     ​ast_arg(id, ​       mult(1,1,no ), id,   ​[parameterizedTypeT]),​
 +     ​ast_arg(rawType, ​  ​mult(1,​1,​no ), id,   ​[classT]),​
 +     ​ast_arg(paramRef, ​ mult(1,​*,​ord ),id,   ​[typeParamT,​classT,​parameterizedTypeT])
 +]).
 +</​Code>​
 +
 +
 + 
research/jtransformer/api/java/pefs/3.0/outertypeparamst.txt · Last modified: 2018/05/09 01:59 (external edit)

SEWiki, © 2019