diff options
author | Marius Kintel <marius@kintel.net> | 2013-04-19 01:42:33 (GMT) |
---|---|---|
committer | Marius Kintel <marius@kintel.net> | 2013-04-26 21:42:32 (GMT) |
commit | 64ed1eb9fe00e287d84b18830df86cc0de6b122a (patch) | |
tree | 3b5f4a51209b62a14d28abc7c0e01fc5753e162c /src/expr.cc | |
parent | a96f3f3c67d496279151cd3fff47589b8684c378 (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.cc | 6 |
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), |