25#ifndef D4_FUNCTION_DRIVER_H_
26#define D4_FUNCTION_DRIVER_H_
49 bool d_trace_scanning =
false;
50 bool d_trace_parsing =
false;
58 std::stack<BaseType *> d_basetype_stack;
60 unsigned long long d_arg_length_hint = 0;
64 std::string *expression() {
return &d_expr; }
66 void push_basetype(
BaseType *btp) { d_basetype_stack.push(btp); }
67 BaseType *top_basetype()
const {
return d_basetype_stack.empty() ? nullptr : d_basetype_stack.top(); }
68 void pop_basetype() { d_basetype_stack.pop(); }
70 D4RValue *build_rvalue(
const std::string &
id);
80 bool parse(
const std::string &expr);
108 [[noreturn]]
static void error(
const libdap::location &l,
const std::string &m);
A multidimensional array of identical data types.
The basic data type for the DODS DAP types.
bool trace_parsing() const
ServerFunctionsList * sf_list() const
bool trace_scanning() const
void set_trace_scanning(bool ts)
std::vector< t > * init_arg_list(t val)
static void error(const libdap::location &l, const std::string &m)
unsigned long long get_arg_length_hint() const
void set_result(D4RValueList *rv_list)
bool parse(const std::string &expr)
void set_trace_parsing(bool tp)
void set_sf_list(ServerFunctionsList *sf_list)
virtual ~D4FunctionEvaluator()=default
D4FunctionEvaluator()=default
void set_arg_length_hint(unsigned long long alh)
friend class D4FunctionParser
D4FunctionEvaluator(DMR *dmr, ServerFunctionsList *sf_list)
D4RValueList * result() const
top level DAP object to house generic methods