summaryrefslogtreecommitdiff
path: root/src/evalcontext.cc
diff options
context:
space:
mode:
authorMarius Kintel <marius@kintel.net>2013-04-19 21:52:01 (GMT)
committerMarius Kintel <marius@kintel.net>2013-04-26 21:45:03 (GMT)
commit9a297ecee57549a4eb3919bde4f7b41a548724de (patch)
treeb1f523e93f528559e9ada2d38d76be7a0362f9d4 /src/evalcontext.cc
parentb4568a09df8be0f212ba1c4fd1660459900e3cf0 (diff)
Refactoring: Split out FileModule from Module, Added LocalScope renamed some confusing 'evaluate' methods to 'instantiate', added FileContext (not yet used)
Diffstat (limited to 'src/evalcontext.cc')
-rw-r--r--src/evalcontext.cc15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/evalcontext.cc b/src/evalcontext.cc
index 25b6716..57c206f 100644
--- a/src/evalcontext.cc
+++ b/src/evalcontext.cc
@@ -4,6 +4,7 @@
#include "function.h"
#include "printutils.h"
#include "builtin.h"
+#include "localscope.h"
#include <boost/foreach.hpp>
@@ -20,6 +21,16 @@ Value EvalContext::getArgValue(size_t i, const Context *ctx) const
return arg.second ? arg.second->evaluate(ctx ? ctx : this) : Value();
}
+size_t EvalContext::numChildren() const
+{
+ return this->scope ? this->scope->children.size() : 0;
+}
+
+ModuleInstantiation *EvalContext::getChild(size_t i) const
+{
+ return this->scope ? this->scope->children[i] : NULL;
+}
+
#ifdef DEBUG
void EvalContext::dump(const AbstractModule *mod, const ModuleInstantiation *inst)
{
@@ -33,9 +44,9 @@ void EvalContext::dump(const AbstractModule *mod, const ModuleInstantiation *ins
for (int i=0;i<this->eval_arguments.size();i++) {
PRINTB(" %s = %s", this->eval_arguments[i].first % this->eval_arguments[i].second);
}
- if (this->children && this->children->size() > 0) {
+ if (this->scope && this->scope->children.size() > 0) {
PRINT(" children:");
- BOOST_FOREACH(const ModuleInstantiation *ch, *this->children) {
+ BOOST_FOREACH(const ModuleInstantiation *ch, this->scope->children) {
PRINTB(" %s", ch->name());
}
}
contact: Jan Huwald // Impressum