top | up | prev | next

BoundMemberVariable Class

Definition at line 101 of BoundExpression.hpp

Constructors

BoundMemberVariable(const Span& span_, const boost::uuids::uuid& moduleId_, MemberVariableSymbol* memberVariableSymbol_)

Member Functions

void Accept(BoundNodeVisitor& visitor) override
BoundExpression* Clone() override
MemberVariableSymbol* GetMemberVariableSymbol()
bool HasValue() const override
bool IsLvalueExpression() const override
void Load(Emitter& emitter, OperationFlags flags) override
void SetClassPtr(std::unique_ptr<BoundExpression>&& classPtr_)
void SetStaticInitNeeded()
void Store(Emitter& emitter, OperationFlags flags) override
std::string TypeString() const override

Member Variables

std::unique_ptr<BoundExpression> classPtr
MemberVariableSymbol* memberVariableSymbol
bool staticInitNeeded

Constructor Details

BoundMemberVariable Constructor

cmajor::binder::BoundMemberVariable::BoundMemberVariable(const Span& span_, const boost::uuids::uuid& moduleId_, MemberVariableSymbol* memberVariableSymbol_)

Definition at line 180 of BoundExpression.cpp :
 180 :
 181 BoundExpression(span_moduleId_BoundNodeType::boundMemberVariablememberVariableSymbol_->GetType())
 182 memberVariableSymbol(memberVariableSymbol_)staticInitNeeded(false)
 183 {
 184 }



Member Function Details

Accept Member Function

void cmajor::binder::BoundMemberVariable::Accept(BoundNodeVisitor & visitor) override

Definition at line 296 of BoundExpression.cpp :
 297 {
 298     visitor.Visit(*this);
 299 }


Declaration at line 108 of BoundExpression.hpp

Base class overridden functions: cmajor::binder::BoundNode::Accept

Calls: cmajor::binder::BoundNodeVisitor::Visit


Clone Member Function

BoundExpression * cmajor::binder::BoundMemberVariable::Clone() override

Definition at line 186 of BoundExpression.cpp
Declaration at line 105 of BoundExpression.hpp

Base class overridden functions: cmajor::binder::BoundExpression::Clone

Calls: cmajor::binder::BoundMemberVariable::Clone , cmajor::binder::BoundNode::GetSpan , cmajor::binder::BoundNode::ModuleId

Called by: cmajor::binder::BoundMemberVariable::Clone


GetMemberVariableSymbol Member Function

MemberVariableSymbol * cmajor::binder::BoundMemberVariable::GetMemberVariableSymbol()

Definition at line 114 of BoundExpression.hpp :
114 { return memberVariableSymbol; }

Called by: cmajor::binder::ExpressionBinder::BindArrow , cmajor::binder::ExpressionBinder::Visit


HasValue Member Function

bool cmajor::binder::BoundMemberVariable::HasValue() const override

Definition at line 109 of BoundExpression.hpp :
109 { return true; }

Base class overridden functions: cmajor::binder::BoundExpression::HasValue


IsLvalueExpression Member Function

bool cmajor::binder::BoundMemberVariable::IsLvalueExpression() const override

Definition at line 110 of BoundExpression.hpp :
110 { return true; }

Base class overridden functions: cmajor::binder::BoundExpression::IsLvalueExpression


Load Member Function

void cmajor::binder::BoundMemberVariable::Load(Emitter & emitter, OperationFlags flags) override

Definition at line 200 of BoundExpression.cpp
Declaration at line 106 of BoundExpression.hpp

Base class overridden functions: cmajor::ir::GenObject::Load

Calls: cmajor::binder::BoundExpression::DestroyTemporaries , cmajor::binder::BoundFunctionCall::Load , cmajor::binder::BoundMemberVariable::Load , cmajor::binder::BoundNode::GetSpan , cmajor::binder::BoundNode::ModuleId , cmajor::ir::Emitter::CreateLoad , cmajor::ir::Emitter::GetMemberVariablePtr , cmajor::ir::Emitter::SetCurrentDebugLocation , cmajor::ir::Emitter::Stack , cmajor::ir::ValueStack::Pop , cmajor::ir::ValueStack::Push , cmajor::symbols::MemberVariableSymbol::LayoutIndex , cmajor::symbols::Symbol::IsStatic , cmajor::symbols::Symbol::Parent

Called by: cmajor::binder::BoundMemberVariable::Load , cmajor::binder::BoundMemberVariable::Store


SetClassPtr Member Function

void cmajor::binder::BoundMemberVariable::SetClassPtr(std::unique_ptr<BoundExpression >&& classPtr_)

Definition at line 301 of BoundExpression.cpp :
 302 {
 303     classPtr = std::move(classPtr_);
 304 }


Declaration at line 111 of BoundExpression.hpp

Called by: cmajor::binder::ClassCopyAssignmentOperation::GenerateImplementation , cmajor::binder::ClassCopyConstructorOperation::GenerateImplementation , cmajor::binder::ClassDefaultConstructorOperation::GenerateImplementation , cmajor::binder::ClassMoveConstructorOperation::GenerateImplementation , cmajor::binder::ExpressionBinder::BindArrow , cmajor::binder::ExpressionBinder::BindSymbol , cmajor::binder::ExpressionBinder::Visit


SetStaticInitNeeded Member Function

void cmajor::binder::BoundMemberVariable::SetStaticInitNeeded()

Definition at line 112 of BoundExpression.hpp :
112 { staticInitNeeded = true; }

Called by: cmajor::binder::ExpressionBinder::BindSymbol


Store Member Function

void cmajor::binder::BoundMemberVariable::Store(Emitter & emitter, OperationFlags flags) override

Definition at line 248 of BoundExpression.cpp
Declaration at line 107 of BoundExpression.hpp

Base class overridden functions: cmajor::ir::GenObject::Store

Calls: cmajor::binder::BoundExpression::DestroyTemporaries , cmajor::binder::BoundFunctionCall::Load , cmajor::binder::BoundMemberVariable::Load , cmajor::binder::BoundNode::GetSpan , cmajor::binder::BoundNode::ModuleId , cmajor::ir::Emitter::CreateLoad , cmajor::ir::Emitter::CreateStore , cmajor::ir::Emitter::GetMemberVariablePtr , cmajor::ir::Emitter::SetCurrentDebugLocation , cmajor::ir::Emitter::Stack , cmajor::ir::ValueStack::Pop , cmajor::ir::ValueStack::Push , cmajor::symbols::MemberVariableSymbol::LayoutIndex , cmajor::symbols::Symbol::IsStatic , cmajor::symbols::Symbol::Parent


TypeString Member Function

std::string cmajor::binder::BoundMemberVariable::TypeString() const override

Definition at line 113 of BoundExpression.hpp :
113 { return "member variable"; }

Base class overridden functions: cmajor::binder::BoundExpression::TypeString


top | up | prev | next