#include <xtended.hh>
Inherited by AbsPrim, AcosPrim, AsinPrim, Atan2Prim, AtanPrim, CeilPrim, CosPrim, ExpPrim, FloorPrim, FmodPrim, Log10Prim, LogPrim, MaxPrim, MinPrim, PowPrim, RemainderPrim, RintPrim, SinPrim, SqrtPrim, and TanPrim.
Public Member Functions | |
xtended (const char *name) | |
virtual | ~xtended () |
Sym | symbol () |
const char * | name () |
Tree | box () |
virtual unsigned int | arity ()=0 |
virtual string | generateCode (Klass *klass, const vector< string > &args, const vector< Type > &types)=0 |
virtual string | generateLateq (Lateq *lateq, const vector< string > &args, const vector< Type > &types)=0 |
virtual int | infereSigOrder (const vector< int > &args)=0 |
virtual Type | infereSigType (const vector< Type > &args)=0 |
virtual Tree | computeSigOutput (const vector< Tree > &args)=0 |
virtual bool | needCache ()=0 |
virtual bool | isSpecialInfix () |
generaly false, but true for binary op # such that #(x) == _::x | |
Private Attributes | |
Symbol * | fSymbol |
the symbol the xtended is attached to |
Definition at line 12 of file xtended.hh.
xtended::xtended | ( | const char * | name | ) | [inline] |
Definition at line 18 of file xtended.hh.
References fSymbol, and setUserData().
00018 : 00019 fSymbol(::symbol(name)) { 00020 setUserData(fSymbol, (void*)this); 00021 }
virtual xtended::~xtended | ( | ) | [inline, virtual] |
Definition at line 22 of file xtended.hh.
References fSymbol, and setUserData().
00022 { setUserData(fSymbol, 0); }
virtual unsigned int xtended::arity | ( | ) | [pure virtual] |
Implemented in AbsPrim, AcosPrim, AsinPrim, Atan2Prim, AtanPrim, CeilPrim, CosPrim, ExpPrim, FloorPrim, FmodPrim, Log10Prim, LogPrim, MaxPrim, MinPrim, PowPrim, RemainderPrim, RintPrim, SinPrim, SqrtPrim, and TanPrim.
Referenced by generateInsideSchema(), infereBoxType(), and propagate().
Tree xtended::box | ( | ) | [inline] |
Definition at line 27 of file xtended.hh.
References fSymbol, getUserData(), and tree().
Referenced by yyparse().
00027 { 00028 Tree b = tree(fSymbol); 00029 assert(getUserData(b) != 0); 00030 return b; 00031 }
Implemented in AbsPrim, AcosPrim, AsinPrim, Atan2Prim, AtanPrim, CeilPrim, CosPrim, ExpPrim, FloorPrim, FmodPrim, Log10Prim, LogPrim, MaxPrim, MinPrim, PowPrim, RemainderPrim, RintPrim, SinPrim, SqrtPrim, and TanPrim.
Referenced by propagate(), and simplification().
virtual string xtended::generateCode | ( | Klass * | klass, | |
const vector< string > & | args, | |||
const vector< Type > & | types | |||
) | [pure virtual] |
Implemented in AbsPrim, AcosPrim, AsinPrim, Atan2Prim, AtanPrim, CeilPrim, CosPrim, ExpPrim, FloorPrim, FmodPrim, Log10Prim, LogPrim, MaxPrim, MinPrim, PowPrim, RemainderPrim, RintPrim, SinPrim, SqrtPrim, and TanPrim.
Referenced by ScalarCompiler::generateXtended().
virtual string xtended::generateLateq | ( | Lateq * | lateq, | |
const vector< string > & | args, | |||
const vector< Type > & | types | |||
) | [pure virtual] |
Implemented in AbsPrim, AcosPrim, AsinPrim, Atan2Prim, AtanPrim, CeilPrim, CosPrim, ExpPrim, FloorPrim, FmodPrim, Log10Prim, LogPrim, MaxPrim, MinPrim, PowPrim, RemainderPrim, RintPrim, SinPrim, SqrtPrim, and TanPrim.
Referenced by DocCompiler::generateXtended().
virtual int xtended::infereSigOrder | ( | const vector< int > & | args | ) | [pure virtual] |
virtual bool xtended::isSpecialInfix | ( | ) | [inline, virtual] |
generaly false, but true for binary op # such that #(x) == _::x
Reimplemented in PowPrim.
Definition at line 42 of file xtended.hh.
const char* xtended::name | ( | ) | [inline] |
Definition at line 25 of file xtended.hh.
References fSymbol.
Referenced by generateInsideSchema(), boxpp::print(), and ppsig::printextended().
00025 { return ::name(fSymbol); }
virtual bool xtended::needCache | ( | ) | [pure virtual] |
Implemented in AbsPrim, AcosPrim, AsinPrim, Atan2Prim, AtanPrim, CeilPrim, CosPrim, ExpPrim, FloorPrim, FmodPrim, Log10Prim, LogPrim, MaxPrim, MinPrim, PowPrim, RemainderPrim, RintPrim, SinPrim, SqrtPrim, and TanPrim.
Referenced by DocCompiler::generateXtended(), and ScalarCompiler::generateXtended().
Sym xtended::symbol | ( | ) | [inline] |
Definition at line 24 of file xtended.hh.
References fSymbol.
Referenced by TanPrim::computeSigOutput(), SqrtPrim::computeSigOutput(), SinPrim::computeSigOutput(), RintPrim::computeSigOutput(), RemainderPrim::computeSigOutput(), PowPrim::computeSigOutput(), MinPrim::computeSigOutput(), MaxPrim::computeSigOutput(), LogPrim::computeSigOutput(), Log10Prim::computeSigOutput(), FmodPrim::computeSigOutput(), FloorPrim::computeSigOutput(), ExpPrim::computeSigOutput(), CosPrim::computeSigOutput(), CeilPrim::computeSigOutput(), AtanPrim::computeSigOutput(), Atan2Prim::computeSigOutput(), AsinPrim::computeSigOutput(), AcosPrim::computeSigOutput(), and sigPow().
00024 { return fSymbol; }
Symbol* xtended::fSymbol [private] |
the symbol the xtended is attached to
Definition at line 14 of file xtended.hh.
Referenced by box(), name(), symbol(), xtended(), and ~xtended().