summaryrefslogtreecommitdiff
path: root/context.cc
diff options
context:
space:
mode:
authorclifford <clifford@b57f626f-c46c-0410-a088-ec61d464b74c>2009-06-29 20:30:43 (GMT)
committerclifford <clifford@b57f626f-c46c-0410-a088-ec61d464b74c>2009-06-29 20:30:43 (GMT)
commited687599bf1ca36869dc64dab2b9969f1d96b4c1 (patch)
treec0aa344d2dd28e03eddd8b5cfdb2f47cdea807d3 /context.cc
parent934e2cef98bc16d2552641314dae1f17a8841079 (diff)
Clifford Wolf:
Restructured AST evaluation for control statements git-svn-id: http://svn.clifford.at/openscad/trunk@37 b57f626f-c46c-0410-a088-ec61d464b74c
Diffstat (limited to 'context.cc')
-rw-r--r--context.cc10
1 files changed, 7 insertions, 3 deletions
diff --git a/context.cc b/context.cc
index fe36a61..3a257c6 100644
--- a/context.cc
+++ b/context.cc
@@ -71,6 +71,7 @@ Value Context::lookup_variable(QString name) const
return variables[name];
if (parent)
return parent->lookup_variable(name);
+ PRINTA("WARNING: Ignoring unkown variable '%1'.", name);
return Value();
}
@@ -80,15 +81,18 @@ Value Context::evaluate_function(QString name, const QVector<QString> &argnames,
return functions_p->value(name)->evaluate(this, argnames, argvalues);
if (parent)
return parent->evaluate_function(name, argnames, argvalues);
+ PRINTA("WARNING: Ignoring unkown function '%1'.", name);
return Value();
}
-AbstractNode *Context::evaluate_module(QString name, const QVector<QString> &argnames, const QVector<Value> &argvalues, const QVector<AbstractNode*> child_nodes) const
+AbstractNode *Context::evaluate_module(QString name, const QVector<QString> &argnames, const QVector<Value> &argvalues, const QVector<ModuleInstanciation*> arg_children, const Context *arg_context) const
{
+ if (arg_context == NULL)
+ arg_context = this;
if (modules_p->contains(name))
- return modules_p->value(name)->evaluate(this, argnames, argvalues, child_nodes);
+ return modules_p->value(name)->evaluate(this, argnames, argvalues, arg_children, arg_context);
if (parent)
- return parent->evaluate_module(name, argnames, argvalues, child_nodes);
+ return parent->evaluate_module(name, argnames, argvalues, arg_children, arg_context);
PRINTA("WARNING: Ignoring unkown module '%1'.", name);
return NULL;
}
contact: Jan Huwald // Impressum