From bd68d29968533ba5a5fd81bce8257486c46ec092 Mon Sep 17 00:00:00 2001 From: Savio Sena Date: Thu, 24 Jul 2014 16:00:10 -0300 Subject: [PATCH] eolian-cxx: Added grammar rule parameters_cxx_list. Now with the correct semantics: list parameters converting to C++. --- src/lib/eolian_cxx/grammar/inheritance_base_generator.hh | 2 +- src/lib/eolian_cxx/grammar/parameters_generator.hh | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/lib/eolian_cxx/grammar/inheritance_base_generator.hh b/src/lib/eolian_cxx/grammar/inheritance_base_generator.hh index 5c32498..12f6550 100644 --- a/src/lib/eolian_cxx/grammar/inheritance_base_generator.hh +++ b/src/lib/eolian_cxx/grammar/inheritance_base_generator.hh @@ -111,7 +111,7 @@ operator<<(std::ostream& out, inheritance_wrappers const& x) << tab(1) << (!function_is_void(func) ? "return ": "") << "static_cast(self->this_)->" - << func.name << "(" << parameters_c_list(func.params) << ");" << endl + << func.name << "(" << parameters_cxx_list(func.params) << ");" << endl << "}" << endl << endl; } return out; diff --git a/src/lib/eolian_cxx/grammar/parameters_generator.hh b/src/lib/eolian_cxx/grammar/parameters_generator.hh index 12c09b6..f25c6d0 100644 --- a/src/lib/eolian_cxx/grammar/parameters_generator.hh +++ b/src/lib/eolian_cxx/grammar/parameters_generator.hh @@ -154,6 +154,16 @@ parameters_cxx_list inline std::ostream& operator<<(std::ostream& out, parameters_cxx_list const& x) { + auto first = x._params.cbegin(), last = x._params.cend(); + for (auto it = first; it != last; ++it) + { + if (it != first) + out << ", "; + out << to_cxx(it->type, it->name); + } + return out; +} + struct constructor_parameters_list { -- 2.7.4