public class CompileBuildObject
extends java.lang.Object
(TYPE carg1 ... cargK key1: karg1 ... keyL: kargL carg1 ... cargM)to:
tmp = new TYPE(carg1, ..., cargK); tmp.setKey1(karg1); ... tmp.setKeyM(kargM); tmp.add(carg1); ... tmp.add(cargM); return tmp;Methods in this class can be overridden in various ways to provide custom mappings. This is a work in progress.
Constructor and Description |
---|
CompileBuildObject() |
public Compilation getCompilation()
public Language getLanguage()
public ObjectType getResultType()
public boolean resultTypeExtends(ObjectType other)
public boolean resultTypeExtends(java.lang.Class other)
public Expression getArg(int i)
public int getArgCount()
public void setArg(int i, Expression arg)
public int numKeywordArgs()
public int keywordStart()
public void insertArgument(int index, Expression arg)
protected void init(ApplyExp exp, InlineCalls visitor, Type required, ObjectType ctype, ClassType caller)
public static CompileBuildObject make(ApplyExp exp, InlineCalls visitor, Type required, ObjectType ctype, ClassType caller)
public void setDefaultConstructor(PrimProcedure proc)
public PrimProcedure getDefaultConstructor()
public boolean hasDefaultConstructor()
public boolean hasAddChildMethod()
public Member findNamedMember(java.lang.String name)
public Expression buildSetter(Declaration target, Member member, Expression value)
public java.lang.String getAddChildMethodName()
public Expression buildAddChild(Declaration target, Expression child)
public boolean useBuilder(int numCode, InlineCalls visitor)
build()
method;
otherwise caller (CompileInvoke
) should do the work itself.public Expression build()