3#include <boost/algorithm/string/join.hpp>
11 : sub(sub), actionRenaming(actionRenaming) {
16 return visitor.
visit(*
this, data);
24 return actionRenaming;
28 std::vector<std::string> renamings;
29 for (
auto const& renaming : actionRenaming) {
31 s << renaming.second <<
" <- " << renaming.first;
32 renamings.push_back(s.str());
34 stream << *sub <<
"{" << boost::join(renamings,
", ") <<
"}";
virtual boost::any visit(ModuleComposition const &composition, boost::any const &data)=0
virtual void writeToStream(std::ostream &stream) const override
Composition const & getSubcomposition() const
virtual boost::any accept(CompositionVisitor &visitor, boost::any const &data) const override
std::map< std::string, std::string > const & getActionRenaming() const
RenamingComposition(std::shared_ptr< Composition > const &sub, std::map< std::string, std::string > const &actionRenaming)