diff options
author | Marius Kintel <marius@kintel.net> | 2013-06-02 22:15:37 (GMT) |
---|---|---|
committer | Marius Kintel <marius@kintel.net> | 2013-06-02 22:15:37 (GMT) |
commit | 85c83fbc04f4918159a598793cee47cdafabf8c4 (patch) | |
tree | d79d2c7d954424dd2354a16560b693351193d35b /src/module.cc | |
parent | 40ad09637974f840ea4bdd3b7b27e2f5d7388c5b (diff) | |
parent | 41f352a7888aebfffd96b0e764e29b3f0cbf01fa (diff) |
Merge branch 'master' into issue181
Diffstat (limited to 'src/module.cc')
-rw-r--r-- | src/module.cc | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/src/module.cc b/src/module.cc index b9b23d8..046d0c4 100644 --- a/src/module.cc +++ b/src/module.cc @@ -102,16 +102,35 @@ std::string ModuleInstantiation::dump(const std::string &indent) const if (scope.numElements() == 0) { dump << ");\n"; } else if (scope.numElements() == 1) { - dump << ")\n"; - dump << scope.dump(indent + "\t"); + dump << ") "; + dump << scope.dump(""); } else { dump << ") {\n"; - scope.dump(indent + "\t"); + dump << scope.dump(indent + "\t"); dump << indent << "}\n"; } return dump.str(); } +std::string IfElseModuleInstantiation::dump(const std::string &indent) const +{ + std::stringstream dump; + dump << ModuleInstantiation::dump(indent); + dump << indent; + if (else_scope.numElements() > 0) { + dump << indent << "else "; + if (else_scope.numElements() == 1) { + dump << else_scope.dump(""); + } + else { + dump << "{\n"; + dump << else_scope.dump(indent + "\t"); + dump << indent << "}\n"; + } + } + return dump.str(); +} + AbstractNode *ModuleInstantiation::evaluate(const Context *ctx) const { EvalContext c(ctx, this->arguments, &this->scope); |