top | up | prev | next

BoundFunctionGroupExpression Class

Definition at line 579 of BoundExpression.hpp

Constructors

BoundFunctionGroupExpression(const Span& span_, const boost::uuids::uuid& moduleId_, FunctionGroupSymbol* functionGroupSymbol_)

Member Functions

void Accept(BoundNodeVisitor& visitor) override
BoundExpression* ClassPtr()
BoundExpression* Clone() override
const FunctionGroupSymbol* FunctionGroup() const
FunctionGroupSymbol* FunctionGroup()
bool IsComplete() const override
bool IsScopeQualified() const
void Load(Emitter& emitter, OperationFlags flags) override
ContainerScope* QualifiedScope() const
BoundExpression* ReleaseClassPtr()
void SetClassPtr(std::unique_ptr<BoundExpression>&& classPtr_)
void SetQualifiedScope(ContainerScope* qualifiedScope_)
void SetScopeQualified()
void SetTemplateArgumentTypes(const std::vector<TypeSymbol*>& templateArgumentTypes_)
void Store(Emitter& emitter, OperationFlags flags) override
const std::vector<TypeSymbol*>& TemplateArgumentTypes() const
std::string TypeString() const override

Member Variables

std::unique_ptr<BoundExpression> classPtr
FunctionGroupSymbol* functionGroupSymbol
std::unique_ptr<TypeSymbol> functionGroupType
ContainerScope* qualifiedScope
bool scopeQualified
std::vector<TypeSymbol*> templateArgumentTypes

Constructor Details

BoundFunctionGroupExpression Constructor

cmajor::binder::BoundFunctionGroupExpression::BoundFunctionGroupExpression(const Span& span_, const boost::uuids::uuid& moduleId_, FunctionGroupSymbol* functionGroupSymbol_)

Definition at line 2076 of BoundExpression.cpp :
2076 :
2077 BoundExpression(span_moduleId_BoundNodeType::boundFunctionGroupExpressionCreateFunctionGroupTypeSymbol(functionGroupSymbol_this))
2078 functionGroupSymbol(functionGroupSymbol_)scopeQualified(false)qualifiedScope(nullptr)
2079 {
2080     functionGroupType.reset(GetType());
2081 }



Member Function Details

Accept Member Function

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

Definition at line 2112 of BoundExpression.cpp :
2113 {
2114     throw Exception("cannot visit a function group"GetSpan()ModuleId());
2115 }


Declaration at line 587 of BoundExpression.hpp

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

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


ClassPtr Member Function

BoundExpression * cmajor::binder::BoundFunctionGroupExpression::ClassPtr()

Definition at line 592 of BoundExpression.hpp :
592 { return classPtr.get(); }

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


Clone Member Function

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

Definition at line 2083 of BoundExpression.cpp :
2084 {
2085     BoundFunctionGroupExpression* clone = new BoundFunctionGroupExpression(GetSpan()ModuleId()functionGroupSymbol);
2086     if (classPtr)
2087     {
2088         clone->classPtr.reset(classPtr->Clone());
2089     }
2090     clone->scopeQualified = scopeQualified;
2091     clone->qualifiedScope = qualifiedScope;
2092     return clone;
2093 }


Declaration at line 583 of BoundExpression.hpp

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

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

Called by: cmajor::binder::BoundFunctionGroupExpression::Clone


FunctionGroup Member Function

const FunctionGroupSymbol * cmajor::binder::BoundFunctionGroupExpression::FunctionGroup() const

Definition at line 589 of BoundExpression.hpp :
589 { return functionGroupSymbol; }


FunctionGroup Member Function

FunctionGroupSymbol * cmajor::binder::BoundFunctionGroupExpression::FunctionGroup()

Definition at line 590 of BoundExpression.hpp :
590 { return functionGroupSymbol; }

Called by: cmajor::binder::BoundCompileUnit::GetConversion , cmajor::binder::ExpressionBinder::Visit


IsComplete Member Function

bool cmajor::binder::BoundFunctionGroupExpression::IsComplete() const override

Definition at line 584 of BoundExpression.hpp :
584 { return false; }

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


IsScopeQualified Member Function

bool cmajor::binder::BoundFunctionGroupExpression::IsScopeQualified() const

Definition at line 594 of BoundExpression.hpp :
594 { return scopeQualified; }

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


Load Member Function

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

Definition at line 2095 of BoundExpression.cpp :
2096 {
2097     if (classPtr)
2098     {
2099         classPtr->Load(emitterOperationFlags::none);
2100     }
2101     else
2102     {
2103         emitter.Stack().Push(nullptr);
2104     }
2105 }


Declaration at line 585 of BoundExpression.hpp

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

Calls: cmajor::binder::BoundFunctionGroupExpression::Load , cmajor::ir::Emitter::Stack , cmajor::ir::ValueStack::Push

Called by: cmajor::binder::BoundFunctionGroupExpression::Load


QualifiedScope Member Function

ContainerScope * cmajor::binder::BoundFunctionGroupExpression::QualifiedScope() const

Definition at line 596 of BoundExpression.hpp :
596 { return qualifiedScope; }

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


ReleaseClassPtr Member Function

BoundExpression * cmajor::binder::BoundFunctionGroupExpression::ReleaseClassPtr()

Definition at line 593 of BoundExpression.hpp :
593 { return classPtr.release(); }

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


SetClassPtr Member Function

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

Definition at line 2117 of BoundExpression.cpp :
2118 {
2119     classPtr = std::move(classPtr_);
2120 }


Declaration at line 591 of BoundExpression.hpp

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


SetQualifiedScope Member Function

void cmajor::binder::BoundFunctionGroupExpression::SetQualifiedScope(ContainerScope * qualifiedScope_)

Definition at line 597 of BoundExpression.hpp :
597 { qualifiedScope = qualifiedScope_; }

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


SetScopeQualified Member Function

void cmajor::binder::BoundFunctionGroupExpression::SetScopeQualified()

Definition at line 595 of BoundExpression.hpp :
595 { scopeQualified = true; }

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


SetTemplateArgumentTypes Member Function

void cmajor::binder::BoundFunctionGroupExpression::SetTemplateArgumentTypes(const std::vector<TypeSymbol*>& templateArgumentTypes_)

Definition at line 2122 of BoundExpression.cpp :
2123 {
2124     templateArgumentTypes = templateArgumentTypes_;
2125 }


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


Store Member Function

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

Definition at line 2107 of BoundExpression.cpp :
2108 {
2109     throw Exception("cannot store to a function group"GetSpan()ModuleId());
2110 }


Declaration at line 586 of BoundExpression.hpp

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

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


TemplateArgumentTypes Member Function

const std::vector<TypeSymbol *>& cmajor::binder::BoundFunctionGroupExpression::TemplateArgumentTypes() const

Definition at line 599 of BoundExpression.hpp :
599 { return templateArgumentTypes; }

Called by: cmajor::binder::BoundCompileUnit::GetConversion , cmajor::binder::ExpressionBinder::Visit


TypeString Member Function

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

Definition at line 588 of BoundExpression.hpp :
588 { return "function group expression"; }

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


top | up | prev | next