void Action::visit(Visitor& visitor) const { switch (m_command) { case Clear: visitor.clear(); break; case Insert: visitor.insert(m_level, m_key1); break; case Replace: visitor.replace(m_level, m_key1, m_key2); break; case Remove: visitor.remove(m_level, m_key1, m_key2); break; case Finish: visitor.finish(m_level); break; } }