#ifndef CONTEXT_H_ #define CONTEXT_H_ #include #include #include "value.h" class Context { public: const Context *parent; QHash variables; QHash config_variables; const QHash *functions_p; const QHash *modules_p; const class ModuleInstantiation *inst_p; static QVector ctx_stack; Context(const Context *parent = NULL); ~Context(); void args(const QVector &argnames, const QVector &argexpr, const QVector &call_argnames, const QVector &call_argvalues); void set_variable(QString name, Value value); Value lookup_variable(QString name, bool silent = false) const; Value evaluate_function(QString name, const QVector &argnames, const QVector &argvalues) const; class AbstractNode *evaluate_module(const ModuleInstantiation *inst) const; }; #endif