top | up | prev | next

BoundConjunction Class

Definition at line 532 of BoundExpression.hpp

Constructors

BoundConjunction(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

BoundConjunction Constructor

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

Definition at line 1941 of BoundExpression.cpp :
1941 :
1942 BoundExpression(span_moduleId_BoundNodeType::boundConjunctionboolType_)left(std::move(left_))right(std::move(right_))
1943 {
1944 }



Member Function Details

Accept Member Function

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

Definition at line 1983 of BoundExpression.cpp :
1984 {
1985     visitor.Visit(*this);
1986 }


Declaration at line 539 of BoundExpression.hpp

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

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


Clone Member Function

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

Definition at line 1946 of BoundExpression.cpp :
1947 {
1948     return new BoundConjunction(GetSpan()ModuleId()std::unique_ptr<BoundExpression>(left->Clone())std::unique_ptr<BoundExpression>(right->Clone())GetType());
1949 }


Declaration at line 536 of BoundExpression.hpp

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

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

Called by: cmajor::binder::BoundConjunction::Clone


ContainsExceptionCapture Member Function

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

Definition at line 1993 of BoundExpression.cpp
Declaration at line 544 of BoundExpression.hpp

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

Calls: cmajor::binder::BoundConjunction::ContainsExceptionCapture , cmajor::binder::BoundExpression::ContainsExceptionCapture

Called by: cmajor::binder::BoundConjunction::ContainsExceptionCapture


HasValue Member Function

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

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

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


Left Member Function

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

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


Load Member Function

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

Definition at line 1951 of BoundExpression.cpp
Declaration at line 537 of BoundExpression.hpp

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

Calls: cmajor::binder::BoundConjunction::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::BoundConjunction::Load


Right Member Function

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

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


SetTemporary Member Function

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

Definition at line 1988 of BoundExpression.cpp :
1989 {
1990     temporary.reset(temporary_);
1991 }


Declaration at line 543 of BoundExpression.hpp

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


Store Member Function

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

Definition at line 1978 of BoundExpression.cpp :
1979 {
1980     throw Exception("cannot store to conjunction"GetSpan()ModuleId());
1981 }


Declaration at line 538 of BoundExpression.hpp

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

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


top | up | prev | next