#include "Function.h" #include "compiler/ast/FunctionParameterDeclaration.h" #include "compiler/ast/FunctionParameterList.h" namespace Pol::Bscript::Compiler { Function::Function( const SourceLocation& source_location, std::string name, std::unique_ptr parameter_list ) : Node( source_location, std::move( parameter_list ) ), name( std::move( name ) ) { } unsigned Function::parameter_count() const { return static_cast(children.at( 0 )->children.size()); } std::vector> Function::parameters() { std::vector> params; auto& param_list = child( 0 ); for ( auto& param : param_list.children ) { params.emplace_back( *static_cast( param.get() ) ); } return params; } } // namespace Pol::Bscript::Compiler