34 for (
int c = 0; c <
node->numChildren(); c++) {
38 std::cerr<<
"we are "<<
node->promote(c)<<
" "<<c<<std::endl;
40 if (
node->promote(c) != 0) {
53 if (
node->type().isFP())
55 else if (
node->type().isString())
68 for (
size_t c = 0; c <
operands.size(); c++) {
119 strArg[0] =
reinterpret_cast<char *
>(funcSimple);
121 std::vector<int> callStack;
125 *funcdata =
reinterpret_cast<void *
>(handle.
data);
131 funcSimple->
eval(handle);
void SeExpr2LLVMEvalCustomFunction(int *opDataArg, double *fpArg, char **strArg, void **funcdata, const SeExpr2::ExprFuncNode *node)
Node that calls a function.
void setData(Data *data) const
associate blind data with this node (subsequently owned by this object)
const ExprFunc * func() const
ExprFuncNode::Data * data
virtual ExprFuncNode::Data * evalConstant(const ExprFuncNode *node, ArgHandle args) const =0
virtual int buildInterpreter(const ExprFuncNode *node, Interpreter *interpreter) const
Build an interpreter to evaluate the expression.
virtual void eval(ArgHandle args)=0
static int EvalOp(int *opData, double *fp, char **c, std::vector< int > &callStack)
Extension function spec, used for complicated argument custom functions.
Function Definition, used in parse tree and func table.
const ExprFuncX * funcx() const
return pointer to the funcx
base class for custom instance data