From bc51cd4651225ad95190880c4d6f71e3a069ebbc Mon Sep 17 00:00:00 2001 From: John Wiegley Date: Thu, 24 Jun 2010 19:40:16 -0400 Subject: [PATCH] Value scopes now take a parent scope for chaining --- src/output.cc | 20 ++++++-------------- src/scope.h | 5 +++-- 2 files changed, 9 insertions(+), 16 deletions(-) diff --git a/src/output.cc b/src/output.cc index f53e60c9..9d2e0cb6 100644 --- a/src/output.cc +++ b/src/output.cc @@ -90,14 +90,10 @@ void format_posts::operator()(post_t& post) else out << '\n'; - value_scope_t val_scope(string_value(report_title)); - bind_scope_t inner_scope(bound_scope, val_scope); - - format_t group_title_format; - group_title_format - .parse_format(report.HANDLER(group_title_format_).str()); + value_scope_t val_scope(bound_scope, string_value(report_title)); + format_t group_title_format(report.HANDLER(group_title_format_).str()); - out << group_title_format(inner_scope); + out << group_title_format(val_scope); report_title = ""; } @@ -176,14 +172,10 @@ std::size_t format_accounts::post_account(account_t& account, const bool flat) else out << '\n'; - value_scope_t val_scope(string_value(report_title)); - bind_scope_t inner_scope(bound_scope, val_scope); - - format_t group_title_format; - group_title_format - .parse_format(report.HANDLER(group_title_format_).str()); + value_scope_t val_scope(bound_scope, string_value(report_title)); + format_t group_title_format(report.HANDLER(group_title_format_).str()); - out << group_title_format(inner_scope); + out << group_title_format(val_scope); report_title = ""; } diff --git a/src/scope.h b/src/scope.h index dac6eba3..8b4a9380 100644 --- a/src/scope.h +++ b/src/scope.h @@ -605,7 +605,7 @@ call_scope_t::get(std::size_t index, bool) { return args[index].as_any(); } -class value_scope_t : public scope_t +class value_scope_t : public child_scope_t { value_t value; @@ -614,7 +614,8 @@ class value_scope_t : public scope_t } public: - value_scope_t(const value_t& _value) : value(_value) {} + value_scope_t(scope_t& _parent, const value_t& _value) + : child_scope_t(_parent), value(_value) {} virtual expr_t::ptr_op_t lookup(const symbol_t::kind_t kind, const string& name)