34 virtual unsigned int arity () = 0;
35 virtual string generateCode (
Klass* klass,
const vector<string>& args,
const vector<Type>& types) = 0;
36 virtual string generateLateq (
Lateq* lateq,
const vector<string>& args,
const vector<Type>& types) = 0;
void setUserData(Symbol *sym, void *d)
Set user data.
virtual bool isSpecialInfix()
generaly false, but true for binary op # such that #(x) == _::x
virtual Type infereSigType(const vector< Type > &args)=0
xtended(const char *name)
virtual string generateLateq(Lateq *lateq, const vector< string > &args, const vector< Type > &types)=0
A CTree = (Node x [CTree]) is a Node associated with a list of subtrees called branches.
virtual bool needCache()=0
Symbol * fSymbol
the symbol the xtended is attached to
virtual int infereSigOrder(const vector< int > &args)=0
virtual Tree computeSigOutput(const vector< Tree > &args)=0
virtual unsigned int arity()=0
const char * name(Symbol *sym)
Returns the name of a symbol.
Symbols are unique objects with a name stored in a hash table.
virtual string generateCode(Klass *klass, const vector< string > &args, const vector< Type > &types)=0
void * getUserData(Symbol *sym)
Returns user data.