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/module.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/module.h')
-rw-r--r-- | src/module.h | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/src/module.h b/src/module.h new file mode 100644 index 0000000..35cc872 --- /dev/null +++ b/src/module.h @@ -0,0 +1,60 @@ +#ifndef MODULE_H_ +#define MODULE_H_ + +#include <QString> +#include <QVector> +#include <QHash> +#include "value.h" + +class ModuleInstantiation +{ +public: + QString label; + QString modname; + QVector<QString> argnames; + QVector<class Expression*> argexpr; + QVector<Value> argvalues; + QVector<ModuleInstantiation*> children; + + bool tag_root; + bool tag_highlight; + bool tag_background; + const class Context *ctx; + + ModuleInstantiation() : tag_root(false), tag_highlight(false), tag_background(false), ctx(NULL) { } + ~ModuleInstantiation(); + + QString dump(QString indent) const; + class AbstractNode *evaluate(const Context *ctx) const; +}; + +class AbstractModule +{ +public: + virtual ~AbstractModule(); + virtual class AbstractNode *evaluate(const Context *ctx, const ModuleInstantiation *inst) const; + virtual QString dump(QString indent, QString name) const; +}; + +class Module : public AbstractModule +{ +public: + QVector<QString> argnames; + QVector<Expression*> argexpr; + + QVector<QString> assignments_var; + QVector<Expression*> assignments_expr; + + QHash<QString, class AbstractFunction*> functions; + QHash<QString, AbstractModule*> modules; + + QVector<ModuleInstantiation*> children; + + Module() { } + virtual ~Module(); + + virtual AbstractNode *evaluate(const Context *ctx, const ModuleInstantiation *inst) const; + virtual QString dump(QString indent, QString name) const; +}; + +#endif |