diff options
author | kintel <kintel@b57f626f-c46c-0410-a088-ec61d464b74c> | 2010-01-30 04:26:05 (GMT) |
---|---|---|
committer | kintel <kintel@b57f626f-c46c-0410-a088-ec61d464b74c> | 2010-01-30 04:26:05 (GMT) |
commit | 191dc4857c852f1867e80cd9d03a6d1c0921dcb1 (patch) | |
tree | 4a6421d50eb6cf70924fc0ba06afccf10df00650 /src/context.h | |
parent | 6940d171812565209efe679a5d923417c3f47d4a (diff) |
header file reorg
git-svn-id: http://svn.clifford.at/openscad/trunk@365 b57f626f-c46c-0410-a088-ec61d464b74c
Diffstat (limited to 'src/context.h')
-rw-r--r-- | src/context.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/context.h b/src/context.h new file mode 100644 index 0000000..e78c883 --- /dev/null +++ b/src/context.h @@ -0,0 +1,32 @@ +#ifndef CONTEXT_H_ +#define CONTEXT_H_ + +#include <QHash> +#include <QString> +#include "value.h" + +class Context +{ +public: + const Context *parent; + QHash<QString, Value> variables; + QHash<QString, Value> config_variables; + const QHash<QString, class AbstractFunction*> *functions_p; + const QHash<QString, class AbstractModule*> *modules_p; + const class ModuleInstantiation *inst_p; + + static QVector<const Context*> ctx_stack; + + Context(const Context *parent = NULL); + ~Context(); + + void args(const QVector<QString> &argnames, const QVector<class Expression*> &argexpr, const QVector<QString> &call_argnames, const QVector<Value> &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<QString> &argnames, const QVector<Value> &argvalues) const; + class AbstractNode *evaluate_module(const ModuleInstantiation *inst) const; +}; + +#endif |