24 for (
int c = 0; c <
node->numChildren(); c++) {
28 std::cerr<<
"we are "<<
node->promote(c)<<
" "<<c<<std::endl;
30 if (
node->promote(c) != 0) {
43 if (
node->type().isFP())
45 else if (
node->type().isString())
109 strArg[0] =
reinterpret_cast<char *
>(funcSimple);
111 std::vector<int> callStack;
114 handle.
data = funcSimple->evalConstant(node, handle);
115 *funcdata =
reinterpret_cast<void *
>(handle.
data);
121 funcSimple->eval(handle);
void KSeExprLLVMEvalCustomFunction(int *opDataArg, double *fpArg, char **strArg, void **funcdata, const KSeExpr::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
static int EvalOp(int *opData, double *fp, char **c, std::vector< int > &callStack)
int buildInterpreter(const ExprFuncNode *node, Interpreter *interpreter) const override
Build an interpreter to evaluate the expression.
virtual ExprFuncNode::Data * evalConstant(const ExprFuncNode *node, ArgHandle args) const =0
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