SDA SE WikiSoftware Engineering for Smart Data Analytics & Smart Data Analytics for Software Engineering
Represents the cast expression.
#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.
void myFunction(){
double i = 0;
int j = 0;
i = (double)j ; // <-- RHS of this assignment is represented by a typeCastT fact
}
methodT(#method, ..., 'myFunction', [], ..., [], ...).
...
assignT(#assign, ..., #method, ..., #cast).
typeCastT(#cast, #assign, #method, #type, #j).
identT(#j, #cast, #method, 'j', ...).
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])
]).