#include "bscript/compiler/ast/MemberAccess.h" #include "bscript/compiler/ast/NodeVisitor.h" #include "bscript/compilercfg.h" namespace Pol::Bscript::Compiler { MemberAccess::MemberAccess( const SourceLocation& source_location, std::unique_ptr lhs, std::string name ) : Expression( source_location, std::move( lhs ) ), name( std::move( name ) ), known_member( compilercfg.OptimizeObjectMembers ? Pol::Bscript::getKnownObjMember( this->name.c_str() ) : nullptr ) { } void MemberAccess::accept( NodeVisitor& visitor ) { visitor.visit_member_access( *this ); } void MemberAccess::describe_to( std::string& w ) const { fmt::format_to( std::back_inserter( w ), "member-access({})", name ); } std::unique_ptr MemberAccess::take_entity() { return take_child( 0 ); } } // namespace Pol::Bscript::Compiler