top | up | prev | next

BoundDisjunction Class

Definition at line 513 of BoundExpression.hpp

Constructors

BoundDisjunction(const Span& span_, const boost::uuids::uuid& moduleId_, std::unique_ptr<BoundExpression>&& left_, std::unique_ptr<BoundExpression>&& right_, TypeSymbol* boolType_)

Member Functions

void Accept(BoundNodeVisitor& visitor) override
BoundExpression* Clone() override
bool ContainsExceptionCapture() const override
bool HasValue() const override
BoundExpression* Left()
void Load(Emitter& emitter, OperationFlags flags) override
BoundExpression* Right()
void SetTemporary(BoundLocalVariable* temporary_)
void Store(Emitter& emitter, OperationFlags flags) override

Member Variables

std::unique_ptr<BoundExpression> left
std::unique_ptr<BoundExpression> right
std::unique_ptr<BoundLocalVariable> temporary

Constructor Details

BoundDisjunction Constructor

cmajor::binder::BoundDisjunction::BoundDisjunction(const Span& span_, const boost::uuids::uuid& moduleId_, std::unique_ptr<BoundExpression >&& left_, std::unique_ptr<BoundExpression >&& right_, TypeSymbol* boolType_)

Definition at line 1872 of BoundExpression.cpp :
1872 :
1873 BoundExpression(span_moduleId_BoundNodeType::boundDisjunctionboolType_)left(std::move(left_))right(std::move(right_))
1874 {
1875 }



Member Function Details

Accept Member Function

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

Definition at line 1914 of BoundExpression.cpp :
1915 {
1916     visitor.Visit(*this);
1917 }


Declaration at line 520 of BoundExpression.hpp

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

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


Clone Member Function

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

Definition at line 1877 of BoundExpression.cpp :
1878 {
1879     return new BoundDisjunction(GetSpan()ModuleId()std::unique_ptr<BoundExpression>(left->Clone())std::unique_ptr<BoundExpression>(right->Clone())GetType());
1880 }


Declaration at line 517 of BoundExpression.hpp

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

Calls: cmajor::binder::BoundDisjunction::Clone , cmajor::binder::BoundExpression::GetType , cmajor::binder::BoundNode::GetSpan , cmajor::binder::BoundNode::ModuleId

Called by: cmajor::binder::BoundDisjunction::Clone


ContainsExceptionCapture Member Function

bool cmajor::binder::BoundDisjunction::ContainsExceptionCapture() const override

Definition at line 1924 of BoundExpression.cpp
Declaration at line 525 of BoundExpression.hpp

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

Calls: cmajor::binder::BoundDisjunction::ContainsExceptionCapture , cmajor::binder::BoundExpression::ContainsExceptionCapture

Called by: cmajor::binder::BoundDisjunction::ContainsExceptionCapture


HasValue Member Function

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

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

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


Left Member Function

BoundExpression * cmajor::binder::BoundDisjunction::Left()

Definition at line 522 of BoundExpression.hpp :
522 { return left.get(); }


Load Member Function

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

Definition at line 1882 of BoundExpression.cpp
Declaration at line 518 of BoundExpression.hpp

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

Calls: cmajor::binder::BoundDisjunction::Load , cmajor::binder::BoundExpression::DestroyTemporaries , cmajor::ir::Emitter::CreateBasicBlock , cmajor::ir::Emitter::CreateBr , cmajor::ir::Emitter::CreateCondBr , cmajor::ir::Emitter::CreateIrValueForBool , cmajor::ir::Emitter::CreateLoad , cmajor::ir::Emitter::CreateStore , cmajor::ir::Emitter::SetCurrentBasicBlock , cmajor::ir::Emitter::Stack , cmajor::ir::ValueStack::Pop , cmajor::ir::ValueStack::Push

Called by: cmajor::binder::BoundDisjunction::Load


Right Member Function

BoundExpression * cmajor::binder::BoundDisjunction::Right()

Definition at line 523 of BoundExpression.hpp :
523 { return right.get(); }


SetTemporary Member Function

void cmajor::binder::BoundDisjunction::SetTemporary(BoundLocalVariable * temporary_)

Definition at line 1919 of BoundExpression.cpp :
1920 {
1921     temporary.reset(temporary_);
1922 }


Declaration at line 524 of BoundExpression.hpp

Called by: cmajor::binder::ExpressionBinder::Visit


Store Member Function

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

Definition at line 1909 of BoundExpression.cpp :
1910 {
1911     throw Exception("cannot store to disjunction"GetSpan()ModuleId());
1912 }


Declaration at line 519 of BoundExpression.hpp

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

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


top | up | prev | next