SDA SE Wiki

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

User Tools

Site Tools



typeCastT (#id, #parent, #exec, #type, #expr)

Represents the cast expression.

Arguments

#id: id
the unique ID assigned to this fact.

#parent: id
ID of the parent node.

#exec: methodT, constructorT, classInitializerT, fieldT, annotationMemberT, annotationT
ID of the fact that represents the executable that contains this type cast. An executable is a method, constructor, class or field initialiser, annotation or annotation member.

#type: typeinst, intersectionTypeT
the id of the target type (the type to which the expression is cast)

#expr: expression
ID of the expression that is cast to the target type.

Sample Java Source

void myFunction(){
	double i = 0;
	int j = 0;
	i = (double)j ; // <-- RHS of this assignment is represented by a typeCastT fact
}

Its PEF Representation

methodT(#method, ..., 'myFunction', [], ..., [], ...).
  ...
  assignT(#assign, ..., #method, ..., #cast).
    typeCastT(#cast, #assign, #method, #type, #j).
      identT(#j, #cast, #method, 'j', ...).

AST Specification

ast_node_type_spec(typeCastT,[
     ast_arg(id,     mult(1,1,no ), id,   [typeCastT]),
     ast_arg(parent, mult(1,1,no ), id,   [id]),
     ast_arg(exec,   mult(1,1,no ), id,   [methodT, constructorT, classInitializerT, classT, fieldT, annotationMemberT, packageT]),
     ast_arg(type,   mult(1,1,no ), id,   [type_inst, intersectionTypeT]),
     ast_arg(expr,   mult(1,1,no ), id,   [expressionType])
]).
research/jtransformer/api/java/pefs/4.2/typecastt.txt · Last modified: 2018/05/09 01:59 (external edit)

SEWiki, © 2023