summaryrefslogtreecommitdiff
path: root/src/expr.cc
diff options
context:
space:
mode:
authorMarius Kintel <marius@kintel.net>2013-04-19 01:42:33 (GMT)
committerMarius Kintel <marius@kintel.net>2013-04-26 21:42:32 (GMT)
commit64ed1eb9fe00e287d84b18830df86cc0de6b122a (patch)
tree3b5f4a51209b62a14d28abc7c0e01fc5753e162c /src/expr.cc
parenta96f3f3c67d496279151cd3fff47589b8684c378 (diff)
Experiment: Lazy evaluation of argument lists in evaluation context. Allows e.g. for loop variables to be dependent on each other
Diffstat (limited to 'src/expr.cc')
-rw-r--r--src/expr.cc6
1 files changed, 1 insertions, 5 deletions
diff --git a/src/expr.cc b/src/expr.cc
index 7a8180f..6629bf5 100644
--- a/src/expr.cc
+++ b/src/expr.cc
@@ -127,11 +127,7 @@ Value Expression::evaluate(const Context *context) const
return Value();
}
if (this->type == "F") {
- EvalContext c(context);
- for (size_t i=0; i < this->call_arguments.size(); i++) {
- c.eval_arguments.push_back(std::make_pair(this->call_arguments[i].first,
- this->call_arguments[i].second->evaluate(context)));
- }
+ EvalContext c(context, this->call_arguments);
// Value::VectorType argvalues;
// std::transform(this->children.begin(), this->children.end(),
// std::back_inserter(argvalues),
contact: Jan Huwald // Impressum