newT (#id, #parent, #encl, #receiver, [#arg_1,...], #constructor, [#typeparam_1,...], #type, #anonClDef)

Represents the class instance creation expression.

History
  • JTransformer 4.0: Renamed from newClassT to newT

Arguments

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

#parent: id
ID of the parent node.

#encl: methodT, constructorT, classInitializerT, fieldT
ID of the fact that represents the enclosing element.

#receiver: expression, null
Receiver of the constructor invocation

[#arg_1,…]: expression
list of argument expressions in this class instance creation expression.

#constructor: constructorT, null
ID of the constructor invoked by this expression. If the referenced constructor is a anonymous class constructor #constructor is 'null'.

[#typeparam_1,…]: Type reference, wildcardT
list of type parameters.

#type: parameterizedTypeT, classT
ID of the fact referencing the class instantiated by this constructor call. ← Changed in JTransformer 2.6.0

#anonClDef: classT, null
the anonymous class declaration introduced by this class instance creation expression, if it has one.

Sample Java Code

void myFunction(){
	String myString = new String();
}

Its PEF Representation

methodT(Method, ..., 'myFunction', ...),
localT(Local, _, Method, RefToString, 'myString', New),
newT(New, Local, Method, null, [], RefToConstructor, [], RefToString, null).

AST Specification

ast_node_type_spec(newT,[
     ast_arg(id,         mult(1,1,no ), id,  [newT]),
     ast_arg(parent,     mult(1,1,no ), id,  [id]),
     ast_arg(encl,       mult(1,1,no ), id,  [methodT, constructorT, classInitializerT,fieldT]),
     ast_arg(receiver,   mult(0,1,no),  id,  [expressionType,nullType]),
     ast_arg(args,       mult(0,*,ord), id,  [expressionType]),
     ast_arg(constr,     mult(0,1,no),  id,  [constructorT,nullType]),
     ast_arg(typeParams, mult(0,*,ord), id,  [type_inst, wildcardT]),
     ast_arg(type,       mult(0,1,no),  id,  [parameterizedTypeT,classT]),
     ast_arg(anonClDef,  mult(0,1,no),  id,  [classT,nullType])
]).
research/jtransformer/api/java/pefs/4.0/newt.txt · Last modified: 2018/05/09 01:59 (external edit)

SEWiki, © 2019