diff options
author | Marius Kintel <marius@kintel.net> | 2013-04-19 21:52:01 (GMT) |
---|---|---|
committer | Marius Kintel <marius@kintel.net> | 2013-04-26 21:45:03 (GMT) |
commit | 9a297ecee57549a4eb3919bde4f7b41a548724de (patch) | |
tree | b1f523e93f528559e9ada2d38d76be7a0362f9d4 /src/evalcontext.cc | |
parent | b4568a09df8be0f212ba1c4fd1660459900e3cf0 (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.cc | 15 |
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()); } } |