#include "CaseDispatchGroup.h" #include "bscript/compiler/ast/Block.h" #include "bscript/compiler/ast/CaseDispatchSelectors.h" #include "bscript/compiler/ast/NodeVisitor.h" #include "bscript/compiler/model/FlowControlLabel.h" namespace Pol::Bscript::Compiler { CaseDispatchGroup::CaseDispatchGroup( const SourceLocation& source_location, std::unique_ptr selectors, std::unique_ptr block ) : Node( source_location ), break_label( std::make_shared() ) { children.reserve( 2 ); children.push_back( std::move( selectors ) ); children.push_back( std::move( block ) ); } void CaseDispatchGroup::accept( NodeVisitor& visitor ) { visitor.visit_case_dispatch_group( *this ); } void CaseDispatchGroup::describe_to( std::string& w ) const { w += "case-dispatch-group"; } CaseDispatchSelectors& CaseDispatchGroup::selectors() { return child( 0 ); } Block& CaseDispatchGroup::block() { return child( 1 ); } } // namespace Pol::Bscript::Compiler