top | up | prev | next

StatementBinder Class

Definition at line 23 of StatementBinder.hpp

Constructors

StatementBinder(BoundCompileUnit& boundCompileUnit_)

Member Functions

void AddReleaseExceptionStatement(const Span& span, const boost::uuids::uuid& moduleId)
void AddStatement(BoundStatement* boundStatement)
void CompileStatement(Node* statementNode, bool setPostfix)
bool CompilingThrow() const
BoundClass* CurrentClass() const
ConstructorNode* CurrentConstructorNode()
ConstructorSymbol* CurrentConstructorSymbol()
BoundFunction* CurrentFunction()
void GenerateEnterAndExitFunctionCode(BoundFunction* boundFunction)
BoundCompileUnit& GetBoundCompileUnit()
ContainerScope* GetContainerScope()
bool InsideCatch() const
BoundStatement* ReleaseStatement()
void SetContainerScope(ContainerScope* containerScope_)
void SetCurrentClass(BoundClass* currentClass_)
void SetCurrentConstructor(ConstructorSymbol* currentConstructorSymbol_, ConstructorNode* currentConstructorNode_)
void SetCurrentDestructor(DestructorSymbol* currentDestructorSymbol_, DestructorNode* currentDestructorNode_)
void SetCurrentFunction(BoundFunction* currentFunction_)
void SetCurrentMemberFunction(MemberFunctionSymbol* currentMemberFunctionSymbol_, MemberFunctionNode* currentMemberFunctionNode_)
void Visit(AssertStatementNode& assertStatementNode) override
void Visit(AssignmentStatementNode& assignmentStatementNode) override
void Visit(BreakStatementNode& breakStatementNode) override
void Visit(CaseStatementNode& caseStatementNode) override
void Visit(CatchNode& catchNode) override
void Visit(ClassNode& classNode) override
void Visit(CompileUnitNode& compileUnitNode) override
void Visit(CompoundStatementNode& compoundStatementNode) override
void Visit(ConditionalCompilationConjunctionNode& conditionalCompilationConjunctionNode) override
void Visit(ConditionalCompilationDisjunctionNode& conditionalCompilationDisjunctionNode) override
void Visit(ConditionalCompilationNotNode& conditionalCompilationNotNode) override
void Visit(ConditionalCompilationPartNode& conditionalCompilationPartNode) override
void Visit(ConditionalCompilationPrimaryNode& conditionalCompilationPrimaryNode) override
void Visit(ConditionalCompilationStatementNode& conditionalCompilationStatementNode) override
void Visit(ConstructionStatementNode& constructionStatementNode) override
void Visit(ConstructorNode& constructorNode) override
void Visit(ContinueStatementNode& continueStatementNode) override
void Visit(ConversionFunctionNode& conversionFunctionNode) override
void Visit(DefaultStatementNode& defaultStatementNode) override
void Visit(DeleteStatementNode& deleteStatementNode) override
void Visit(DestroyStatementNode& destroyStatementNode) override
void Visit(DestructorNode& destructorNode) override
void Visit(DoStatementNode& doStatementNode) override
void Visit(EmptyStatementNode& emptyStatementNode) override
void Visit(EnumTypeNode& enumTypeNode) override
void Visit(ExpressionStatementNode& expressionStatementNode) override
void Visit(ForStatementNode& forStatementNode) override
void Visit(FullInstantiationRequestNode& fullInstantiationRequestNode) override
void Visit(FunctionNode& functionNode) override
void Visit(GotoCaseStatementNode& gotoCaseStatementNode) override
void Visit(GotoDefaultStatementNode& gotoDefaultStatementNode) override
void Visit(GotoStatementNode& gotoStatementNode) override
void Visit(IfStatementNode& ifStatementNode) override
void Visit(MemberFunctionNode& memberFunctionNode) override
void Visit(MemberVariableNode& memberVariableNode) override
void Visit(NamespaceNode& namespaceNode) override
void Visit(RangeForStatementNode& rangeForStatementNode) override
void Visit(ReturnStatementNode& returnStatementNode) override
void Visit(StaticConstructorNode& staticConstructorNode) override
void Visit(SwitchStatementNode& switchStatementNode) override
void Visit(ThrowStatementNode& throwStatementNode) override
void Visit(TryStatementNode& tryStatementNode) override
void Visit(WhileStatementNode& whileStatementNode) override

Member Variables

BoundCompileUnit& boundCompileUnit
bool compilingReleaseExceptionStatement
bool compilingThrow
int compoundLevel
std::stack<bool> conditionalCompilationStack
ContainerScope* containerScope
std::unordered_map<IntegralValue, CaseStatementNode*, IntegralValueHash>* currentCaseValueMap
BoundClass* currentClass
ConstructorNode* currentConstructorNode
ConstructorSymbol* currentConstructorSymbol
DestructorNode* currentDestructorNode
DestructorSymbol* currentDestructorSymbol
BoundFunction* currentFunction
std::vector<std::pair<BoundGotoCaseStatement*, IntegralValue>>* currentGotoCaseStatements
std::vector<BoundGotoDefaultStatement*>* currentGotoDefaultStatements
MemberFunctionNode* currentMemberFunctionNode
MemberFunctionSymbol* currentMemberFunctionSymbol
StaticConstructorNode* currentStaticConstructorNode
StaticConstructorSymbol* currentStaticConstructorSymbol
bool dontCheckDuplicateFunctionSymbols
bool insideCatch
Module* module
bool postfix
std::unique_ptr<BoundStatement> statement
TypeSymbol* switchConditionType
SymbolTable& symbolTable

Constructor Details

StatementBinder Constructor

cmajor::binder::StatementBinder::StatementBinder(BoundCompileUnit & boundCompileUnit_)

Definition at line 213 of StatementBinder.cpp :
 213 :
 214 boundCompileUnit(boundCompileUnit_)symbolTable(boundCompileUnit.GetSymbolTable())module(&boundCompileUnit.GetModule())containerScope(nullptr)statement()compoundLevel(0)insideCatch(false)
 215 currentClass(nullptr)currentFunction(nullptr)currentStaticConstructorSymbol(nullptr)currentStaticConstructorNode(nullptr)currentConstructorSymbol(nullptr)
 216 currentConstructorNode(nullptr)currentDestructorSymbol(nullptr)currentDestructorNode(nullptr)currentMemberFunctionSymbol(nullptr)currentMemberFunctionNode(nullptr)
 217 switchConditionType(nullptr)currentCaseValueMap(nullptr)currentGotoCaseStatements(nullptr)currentGotoDefaultStatements(nullptr)postfix(false)compilingThrow(false)
 218 compilingReleaseExceptionStatement(false)dontCheckDuplicateFunctionSymbols(false)
 219 {
 220 }


Declaration at line 26 of StatementBinder.hpp


Member Function Details

AddReleaseExceptionStatement Member Function

void cmajor::binder::StatementBinder::AddReleaseExceptionStatement(const Span& span, const boost::uuids::uuid& moduleId)

Definition at line 2130 of StatementBinder.cpp :
2131 {
2132     if (insideCatch && !compilingReleaseExceptionStatement)
2133     {
2134         compilingReleaseExceptionStatement = true;
2135         InvokeNode * invokeNode(new InvokeNode(spanmoduleIdnew DotNode(spanmoduleIdnew IdentifierNode(spanmoduleIdU"@exPtr")new IdentifierNode(spanmoduleIdU"Release"))));
2136         ExpressionStatementNode releaseExceptionStatement(spanmoduleIdinvokeNode);
2137         CompileStatement(&releaseExceptionStatementtrue);
2138         compilingReleaseExceptionStatement = false;
2139     }
2140 }


Declaration at line 115 of StatementBinder.hpp

Calls: cmajor::binder::StatementBinder::CompileStatement

Called by: cmajor::binder::StatementBinder::Visit , cmajor::binder::StatementBinder::Visit , cmajor::binder::StatementBinder::Visit , cmajor::binder::StatementBinder::Visit , cmajor::binder::StatementBinder::Visit , cmajor::binder::StatementBinder::Visit , cmajor::binder::StatementBinder::Visit , cmajor::binder::StatementBinder::Visit , cmajor::binder::StatementBinder::Visit , cmajor::binder::StatementBinder::Visit , cmajor::binder::StatementBinder::Visit


AddStatement Member Function

void cmajor::binder::StatementBinder::AddStatement(BoundStatement * boundStatement)

Definition at line 2142 of StatementBinder.cpp
Declaration at line 114 of StatementBinder.hpp

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

Called by: cmajor::binder::StatementBinder::Visit , cmajor::binder::StatementBinder::Visit , cmajor::binder::StatementBinder::Visit , cmajor::binder::StatementBinder::Visit , cmajor::binder::StatementBinder::Visit , cmajor::binder::StatementBinder::Visit , cmajor::binder::StatementBinder::Visit , cmajor::binder::StatementBinder::Visit , cmajor::binder::StatementBinder::Visit , cmajor::binder::StatementBinder::Visit , cmajor::binder::StatementBinder::Visit , cmajor::binder::StatementBinder::Visit , cmajor::binder::StatementBinder::Visit , cmajor::binder::StatementBinder::Visit , cmajor::binder::StatementBinder::Visit , cmajor::binder::StatementBinder::Visit , cmajor::binder::StatementBinder::Visit , cmajor::binder::StatementBinder::Visit , cmajor::binder::StatementBinder::Visit , cmajor::binder::StatementBinder::Visit , cmajor::binder::StatementBinder::Visit , cmajor::binder::StatementBinder::Visit , cmajor::binder::StatementBinder::Visit , cmajor::binder::StatementBinder::Visit , cmajor::binder::StatementBinder::Visit , cmajor::binder::StatementBinder::Visit


CompileStatement Member Function

void cmajor::binder::StatementBinder::CompileStatement(Node * statementNode, bool setPostfix)

Definition at line 2104 of StatementBinder.cpp :
2105 {
2106     bool prevPostfix = postfix;
2107     postfix = setPostfix;
2108     statementNode->Accept(*this);
2109     postfix = prevPostfix;
2110 }


Declaration at line 70 of StatementBinder.hpp

Calls: sngcm::ast::Node::Accept

Called by: cmajor::binder::ExpressionBinder::Visit , cmajor::binder::ExpressionBinder::Visit , cmajor::binder::ExpressionBinder::Visit , cmajor::binder::ExpressionBinder::Visit , cmajor::binder::StatementBinder::AddReleaseExceptionStatement


CompilingThrow Member Function

bool cmajor::binder::StatementBinder::CompilingThrow() const

Definition at line 84 of StatementBinder.hpp :
 84 { return compilingThrow; }

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


CurrentClass Member Function

BoundClass * cmajor::binder::StatementBinder::CurrentClass() const

Definition at line 73 of StatementBinder.hpp :
 73 { return currentClass;  }

Called by: cmajor::binder::JsonAttributeProcessor::GenerateJsonConstructorImplementation , cmajor::binder::JsonAttributeProcessor::GenerateJsonCreatorImplementation , cmajor::binder::JsonAttributeProcessor::GenerateToJsonImplementation , cmajor::binder::JsonAttributeProcessor::GenerateToJsonJsonObjectImplementation , cmajor::binder::XmlAttributeProcessor::GenerateSystemDomElementConstructorImplementation , cmajor::binder::XmlAttributeProcessor::GenerateToXmlMemberFunctionImplementation


CurrentConstructorNode Member Function

ConstructorNode * cmajor::binder::StatementBinder::CurrentConstructorNode()

Definition at line 80 of StatementBinder.hpp :
 80 { return currentConstructorNode; }

Called by: cmajor::binder::JsonAttributeProcessor::GenerateJsonConstructorImplementation , cmajor::binder::XmlAttributeProcessor::GenerateSystemDomElementConstructorImplementation


CurrentConstructorSymbol Member Function

ConstructorSymbol* cmajor::binder::StatementBinder::CurrentConstructorSymbol()

Definition at line 79 of StatementBinder.hpp :
 79 { return currentConstructorSymbol; }

Called by: cmajor::binder::JsonAttributeProcessor::GenerateJsonConstructorImplementation , cmajor::binder::XmlAttributeProcessor::GenerateSystemDomElementConstructorImplementation


CurrentFunction Member Function

BoundFunction * cmajor::binder::StatementBinder::CurrentFunction()

Definition at line 76 of StatementBinder.hpp :
 76 { return currentFunction; }

Called by: cmajor::binder::JsonAttributeProcessor::GenerateJsonConstructorImplementation , cmajor::binder::JsonAttributeProcessor::GenerateJsonCreatorImplementation , cmajor::binder::JsonAttributeProcessor::GenerateToJsonImplementation , cmajor::binder::JsonAttributeProcessor::GenerateToJsonJsonObjectImplementation , cmajor::binder::XmlAttributeProcessor::GenerateSystemDomElementConstructorImplementation , cmajor::binder::XmlAttributeProcessor::GenerateToXmlMemberFunctionImplementation


GenerateEnterAndExitFunctionCode Member Function

void cmajor::binder::StatementBinder::GenerateEnterAndExitFunctionCode(BoundFunction * boundFunction)

Definition at line 431 of StatementBinder.cpp
Declaration at line 86 of StatementBinder.hpp

Calls: cmajor::binder::BoundCompileUnit::GenerateInitUnwindInfoFunctionSymbol , cmajor::binder::BoundCompileUnit::GetInitUnwindInfoFunctionSymbol , cmajor::binder::BoundCompileUnit::GetSymbolTable , cmajor::binder::BoundCompileUnit::GetSystemRuntimeUnwindInfoSymbol , cmajor::binder::BoundCompileUnit::SetSystemRuntimeUnwindInfoSymbol , cmajor::binder::BoundFunction::GetFunctionSymbol , cmajor::binder::BoundFunction::SetEnterCode , cmajor::binder::BoundFunction::SetExitCode , cmajor::binder::BoundFunction::SetLineCode , cmajor::symbols::FunctionSymbol::DontThrow , cmajor::symbols::FunctionSymbol::SetPrevUnwindInfoVar , cmajor::symbols::FunctionSymbol::SetUnwindInfoVar , cmajor::symbols::SymbolTable::GetTypeByName , cmajor::symbols::TypeSymbol::AddPointer , sngcm::ast::AssignmentStatementNode::Accept , sngcm::ast::ExpressionStatementNode::Accept , sngcm::ast::FunctionPtrNode::SetBoundExpression , sngcm::ast::InvokeNode::AddArgument

Called by: cmajor::binder::StatementBinder::Visit , cmajor::binder::StatementBinder::Visit , cmajor::binder::StatementBinder::Visit , cmajor::binder::StatementBinder::Visit , cmajor::binder::StatementBinder::Visit , cmajor::binder::StatementBinder::Visit


GetBoundCompileUnit Member Function

BoundCompileUnit & cmajor::binder::StatementBinder::GetBoundCompileUnit()

Definition at line 71 of StatementBinder.hpp :
 71 { return boundCompileUnit; }

Called by: cmajor::binder::JsonAttributeProcessor::GenerateJsonConstructorImplementation , cmajor::binder::JsonAttributeProcessor::GenerateJsonCreatorImplementation , cmajor::binder::JsonAttributeProcessor::GenerateToJsonImplementation , cmajor::binder::JsonAttributeProcessor::GenerateToJsonJsonObjectImplementation , cmajor::binder::XmlAttributeProcessor::GenerateSystemDomElementConstructorImplementation , cmajor::binder::XmlAttributeProcessor::GenerateToXmlMemberFunctionImplementation


GetContainerScope Member Function

ContainerScope* cmajor::binder::StatementBinder::GetContainerScope()

Definition at line 74 of StatementBinder.hpp :
 74 { return containerScope; }

Called by: cmajor::binder::JsonAttributeProcessor::GenerateJsonConstructorImplementation , cmajor::binder::JsonAttributeProcessor::GenerateJsonCreatorImplementation , cmajor::binder::JsonAttributeProcessor::GenerateToJsonImplementation , cmajor::binder::JsonAttributeProcessor::GenerateToJsonJsonObjectImplementation , cmajor::binder::StatementBinder::Visit , cmajor::binder::StatementBinder::Visit , cmajor::binder::StatementBinder::Visit , cmajor::binder::StatementBinder::Visit , cmajor::binder::StatementBinder::Visit , cmajor::binder::StatementBinder::Visit , cmajor::binder::StatementBinder::Visit , cmajor::binder::StatementBinder::Visit , cmajor::binder::StatementBinder::Visit , cmajor::binder::StatementBinder::Visit , cmajor::binder::StatementBinder::Visit , cmajor::binder::StatementBinder::Visit , cmajor::binder::XmlAttributeProcessor::GenerateSystemDomElementConstructorImplementation , cmajor::binder::XmlAttributeProcessor::GenerateToXmlMemberFunctionImplementation


InsideCatch Member Function

bool cmajor::binder::StatementBinder::InsideCatch() const

Definition at line 85 of StatementBinder.hpp :
 85 { return insideCatch; }

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


ReleaseStatement Member Function

BoundStatement * cmajor::binder::StatementBinder::ReleaseStatement()

Definition at line 83 of StatementBinder.hpp :
 83 { return statement.release(); }

Called by: cmajor::binder::ClassTemplateRepository::Instantiate , cmajor::binder::InlineFunctionRepository::Instantiate , cmajor::binder::JsonAttributeProcessor::GenerateJsonConstructorImplementation , cmajor::binder::JsonAttributeProcessor::GenerateJsonCreatorImplementation , cmajor::binder::JsonAttributeProcessor::GenerateToJsonImplementation , cmajor::binder::JsonAttributeProcessor::GenerateToJsonJsonObjectImplementation , cmajor::binder::StatementBinder::Visit , cmajor::binder::XmlAttributeProcessor::GenerateSystemDomElementConstructorImplementation , cmajor::binder::XmlAttributeProcessor::GenerateToXmlMemberFunctionImplementation


SetContainerScope Member Function

void cmajor::binder::StatementBinder::SetContainerScope(ContainerScope* containerScope_)

Definition at line 75 of StatementBinder.hpp :
 75 { containerScope = containerScope_; }

Called by: cmajor::binder::ClassTemplateRepository::Instantiate , cmajor::binder::InlineFunctionRepository::Instantiate , cmajor::binder::JsonAttributeProcessor::GenerateJsonConstructorImplementation , cmajor::binder::JsonAttributeProcessor::GenerateJsonCreatorImplementation , cmajor::binder::JsonAttributeProcessor::GenerateToJsonImplementation , cmajor::binder::JsonAttributeProcessor::GenerateToJsonJsonObjectImplementation , cmajor::binder::XmlAttributeProcessor::GenerateSystemDomElementConstructorImplementation , cmajor::binder::XmlAttributeProcessor::GenerateToXmlMemberFunctionImplementation


SetCurrentClass Member Function

void cmajor::binder::StatementBinder::SetCurrentClass(BoundClass * currentClass_)

Definition at line 72 of StatementBinder.hpp :
 72 { currentClass = currentClass_; }

Called by: cmajor::binder::ClassTemplateRepository::Instantiate , cmajor::binder::InlineFunctionRepository::Instantiate


SetCurrentConstructor Member Function

void cmajor::binder::StatementBinder::SetCurrentConstructor(ConstructorSymbol* currentConstructorSymbol_, ConstructorNode * currentConstructorNode_)

Definition at line 2112 of StatementBinder.cpp :
2113 {
2114     currentConstructorSymbol = currentConstructorSymbol_;
2115     currentConstructorNode = currentConstructorNode_;
2116 }


Declaration at line 78 of StatementBinder.hpp

Called by: cmajor::binder::ClassTemplateRepository::Instantiate , cmajor::binder::InlineFunctionRepository::Instantiate , cmajor::binder::JsonAttributeProcessor::GenerateJsonConstructorImplementation , cmajor::binder::XmlAttributeProcessor::GenerateSystemDomElementConstructorImplementation


SetCurrentDestructor Member Function

void cmajor::binder::StatementBinder::SetCurrentDestructor(DestructorSymbol* currentDestructorSymbol_, DestructorNode * currentDestructorNode_)

Definition at line 2118 of StatementBinder.cpp :
2119 {
2120     currentDestructorSymbol = currentDestructorSymbol_;
2121     currentDestructorNode = currentDestructorNode_;
2122 }


Declaration at line 81 of StatementBinder.hpp

Called by: cmajor::binder::ClassTemplateRepository::Instantiate , cmajor::binder::InlineFunctionRepository::Instantiate


SetCurrentFunction Member Function

void cmajor::binder::StatementBinder::SetCurrentFunction(BoundFunction * currentFunction_)

Definition at line 77 of StatementBinder.hpp :
 77 { currentFunction = currentFunction_; }

Called by: cmajor::binder::ClassTemplateRepository::Instantiate , cmajor::binder::InlineFunctionRepository::Instantiate , cmajor::binder::JsonAttributeProcessor::GenerateJsonConstructorImplementation , cmajor::binder::JsonAttributeProcessor::GenerateJsonCreatorImplementation , cmajor::binder::JsonAttributeProcessor::GenerateToJsonImplementation , cmajor::binder::JsonAttributeProcessor::GenerateToJsonJsonObjectImplementation , cmajor::binder::XmlAttributeProcessor::GenerateSystemDomElementConstructorImplementation , cmajor::binder::XmlAttributeProcessor::GenerateToXmlMemberFunctionImplementation


SetCurrentMemberFunction Member Function

void cmajor::binder::StatementBinder::SetCurrentMemberFunction(MemberFunctionSymbol* currentMemberFunctionSymbol_, MemberFunctionNode * currentMemberFunctionNode_)

Definition at line 2124 of StatementBinder.cpp :
2125 {
2126     currentMemberFunctionSymbol = currentMemberFunctionSymbol_;
2127     currentMemberFunctionNode = currentMemberFunctionNode_;
2128 }


Declaration at line 82 of StatementBinder.hpp

Called by: cmajor::binder::ClassTemplateRepository::Instantiate , cmajor::binder::InlineFunctionRepository::Instantiate


Visit Member Function

void cmajor::binder::StatementBinder::Visit(AssertStatementNode & assertStatementNode) override

Definition at line 1894 of StatementBinder.cpp
Declaration at line 63 of StatementBinder.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::BoundCompileUnit::Install , cmajor::binder::BoundFunction::GetFunctionSymbol , cmajor::binder::StatementBinder::AddStatement , cmajor::binder::StatementBinder::GetContainerScope , cmajor::binder::TypeBinder::SetContainerScope , cmajor::binder::TypeBinder::SetCurrentFunctionSymbol , cmajor::symbols::FunctionSymbol::FullName , sngcm::ast::AssertStatementNode::AssertExpr , sngcm::ast::ExpressionStatementNode::Accept , sngcm::ast::FunctionNode::GetSpecifiers , sngcm::ast::InvokeNode::AddArgument , sngcm::ast::Node::Clone , sngcm::ast::Node::GetNodeType , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId , sngcm::ast::Node::ToString


Visit Member Function

void cmajor::binder::StatementBinder::Visit(AssignmentStatementNode & assignmentStatementNode) override

Definition at line 1389 of StatementBinder.cpp
Declaration at line 51 of StatementBinder.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::BoundFunction::GetFunctionSymbol , cmajor::binder::BoundFunction::MoveTemporaryDestructorCallsTo , cmajor::binder::StatementBinder::AddReleaseExceptionStatement , cmajor::binder::StatementBinder::AddStatement , sngcm::ast::AssignmentStatementNode::SourceExpr , sngcm::ast::AssignmentStatementNode::TargetExpr , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId


Visit Member Function

void cmajor::binder::StatementBinder::Visit(BreakStatementNode & breakStatementNode) override

Definition at line 1149 of StatementBinder.cpp
Declaration at line 45 of StatementBinder.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::StatementBinder::AddStatement , sngcm::ast::Node::GetSpan , sngcm::ast::Node::IsStatementNode , sngcm::ast::Node::ModuleId , sngcm::ast::Node::Parent , sngcm::ast::Node::Parent , sngcm::ast::StatementNode::IsBreakEnclosingStatementNode


Visit Member Function

void cmajor::binder::StatementBinder::Visit(CaseStatementNode & caseStatementNode) override

Definition at line 1637 of StatementBinder.cpp
Declaration at line 56 of StatementBinder.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::StatementBinder::AddStatement , sngcm::ast::CaseStatementNode::CaseExprs , sngcm::ast::CaseStatementNode::Statements , sngcm::ast::Node::Accept , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId , sngcm::ast::NodeList::Count


Visit Member Function

void cmajor::binder::StatementBinder::Visit(CatchNode & catchNode) override

Definition at line 1820 of StatementBinder.cpp
Declaration at line 62 of StatementBinder.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::BoundFunction::GetFunctionSymbol , cmajor::binder::StatementBinder::AddStatement , cmajor::binder::TypeBinder::SetContainerScope , cmajor::binder::TypeBinder::SetCurrentFunctionSymbol , cmajor::symbols::FunctionSymbol::AddLocalVariable , sngcm::ast::CatchNode::CatchBlock , sngcm::ast::CatchNode::Id , sngcm::ast::CatchNode::TypeExpr , sngcm::ast::CompoundStatementNode::Accept , sngcm::ast::CompoundStatementNode::AddStatement , sngcm::ast::CompoundStatementNode::BeginBraceSpan , sngcm::ast::CompoundStatementNode::Clone , sngcm::ast::CompoundStatementNode::EndBraceSpan , sngcm::ast::CompoundStatementNode::SetBeginBraceSpan , sngcm::ast::CompoundStatementNode::SetEndBraceSpan , sngcm::ast::ConstructionStatementNode::AddArgument , sngcm::ast::IdentifierNode::Clone , sngcm::ast::Node::Clone , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId , sngcm::ast::Node::Parent , sngcm::ast::Node::SetParent , sngcm::ast::PointerNode::Clone , sngcm::ast::TemplateIdNode::AddTemplateArgument


Visit Member Function

void cmajor::binder::StatementBinder::Visit(ClassNode & classNode) override

Definition at line 288 of StatementBinder.cpp
Declaration at line 30 of StatementBinder.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::AttributeBinder::GenerateImplementation , cmajor::binder::BoundCompileUnit::AddBoundNode , cmajor::binder::BoundCompileUnit::GetAttributeBinder , cmajor::binder::BoundCompileUnit::GetSymbolTable , cmajor::binder::BoundCompileUnit::IsGeneratedDestructorInstantiated , cmajor::binder::BoundCompileUnit::SetGeneratedDestructorInstantiated , cmajor::binder::StatementBinder::GetContainerScope , cmajor::symbols::SymbolTable::GetSymbol , sngcm::ast::ClassNode::GetAttributes , sngcm::ast::ClassNode::Members , sngcm::ast::Node::Accept , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId , sngcm::ast::NodeList::Count


Visit Member Function

void cmajor::binder::StatementBinder::Visit(CompileUnitNode & compileUnitNode) override

Definition at line 222 of StatementBinder.cpp
Declaration at line 27 of StatementBinder.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::BoundCompileUnit::GenerateCompileUnitInitialization , cmajor::binder::BoundCompileUnit::GetInitCompileUnitFunctionSymbol , cmajor::binder::BoundCompileUnit::SetSystemRuntimeAddCompileUnitFunctionSymbol , cmajor::binder::StatementBinder::GetContainerScope , sngcm::ast::CompileUnitNode::GlobalNs , sngcm::ast::CompileUnitNode::IsSynthesizedUnit , sngcm::ast::NamespaceNode::Accept


Visit Member Function

void cmajor::binder::StatementBinder::Visit(CompoundStatementNode & compoundStatementNode) override

Definition at line 713 of StatementBinder.cpp
Declaration at line 39 of StatementBinder.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::BoundClass::GetClassTypeSymbol , cmajor::binder::BoundFunction::GetFunctionSymbol , cmajor::binder::StatementBinder::AddStatement , cmajor::binder::StatementBinder::GetContainerScope , cmajor::binder::StatementBinder::ReleaseStatement , cmajor::binder::TypeBinder::SetContainerScope , cmajor::binder::TypeBinder::SetCurrentFunctionSymbol , cmajor::symbols::ClassTypeSymbol::StaticConstructor , cmajor::symbols::FunctionSymbol::FullName , cmajor::symbols::FunctionSymbol::FunctionId , cmajor::symbols::FunctionSymbol::IsProgramMain , cmajor::symbols::Symbol::FullName , sngcm::ast::CompoundStatementNode::BeginBraceSpan , sngcm::ast::CompoundStatementNode::EndBraceSpan , sngcm::ast::CompoundStatementNode::Statements , sngcm::ast::ConstructionStatementNode::Accept , sngcm::ast::ConstructionStatementNode::AddArgument , sngcm::ast::Node::Accept , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId , sngcm::ast::NodeList::Count


Visit Member Function

void cmajor::binder::StatementBinder::Visit(ConditionalCompilationConjunctionNode & conditionalCompilationConjunctionNode) override

Definition at line 2002 of StatementBinder.cpp :
2003 {
2004     conditionalCompilationConjunctionNode.Left()->Accept(*this);
2005     bool left = conditionalCompilationStack.top();
2006     conditionalCompilationStack.pop();
2007     conditionalCompilationConjunctionNode.Right()->Accept(*this);
2008     bool right = conditionalCompilationStack.top();
2009     conditionalCompilationStack.pop();
2010     conditionalCompilationStack.push(left && right);
2011 }


Declaration at line 66 of StatementBinder.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::ConditionalCompilationBinaryExpressionNode::Left , sngcm::ast::ConditionalCompilationBinaryExpressionNode::Right , sngcm::ast::Node::Accept


Visit Member Function

void cmajor::binder::StatementBinder::Visit(ConditionalCompilationDisjunctionNode & conditionalCompilationDisjunctionNode) override

Definition at line 1991 of StatementBinder.cpp :
1992 {
1993     conditionalCompilationDisjunctionNode.Left()->Accept(*this);
1994     bool left = conditionalCompilationStack.top();
1995     conditionalCompilationStack.pop();
1996     conditionalCompilationDisjunctionNode.Right()->Accept(*this);
1997     bool right = conditionalCompilationStack.top();
1998     conditionalCompilationStack.pop();
1999     conditionalCompilationStack.push(left || right);
2000 }


Declaration at line 65 of StatementBinder.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::ConditionalCompilationBinaryExpressionNode::Left , sngcm::ast::ConditionalCompilationBinaryExpressionNode::Right , sngcm::ast::Node::Accept


Visit Member Function

void cmajor::binder::StatementBinder::Visit(ConditionalCompilationNotNode & conditionalCompilationNotNode) override

Definition at line 2013 of StatementBinder.cpp :
2014 {
2015     conditionalCompilationNotNode.Expr()->Accept(*this);
2016     bool operand = conditionalCompilationStack.top();
2017     conditionalCompilationStack.pop();
2018     conditionalCompilationStack.push(!operand);
2019 }


Declaration at line 67 of StatementBinder.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::ConditionalCompilationNotNode::Expr , sngcm::ast::Node::Accept


Visit Member Function

void cmajor::binder::StatementBinder::Visit(ConditionalCompilationPartNode & conditionalCompilationPartNode) override

Definition at line 1986 of StatementBinder.cpp :
1987 {
1988     conditionalCompilationPartNode.Expr()->Accept(*this);
1989 }


Declaration at line 64 of StatementBinder.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::ConditionalCompilationPartNode::Expr , sngcm::ast::Node::Accept


Visit Member Function

void cmajor::binder::StatementBinder::Visit(ConditionalCompilationPrimaryNode & conditionalCompilationPrimaryNode) override

Definition at line 2021 of StatementBinder.cpp :
2022 {
2023     bool defined = module->IsSymbolDefined(conditionalCompilationPrimaryNode.Symbol());
2024     conditionalCompilationStack.push(defined);
2025 }


Declaration at line 68 of StatementBinder.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::ConditionalCompilationPrimaryNode::Symbol


Visit Member Function

void cmajor::binder::StatementBinder::Visit(ConditionalCompilationStatementNode & conditionalCompilationStatementNode) override

Definition at line 2027 of StatementBinder.cpp
Declaration at line 69 of StatementBinder.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::StatementBinder::AddStatement , sngcm::ast::ConditionalCompilationPartNode::Accept , sngcm::ast::ConditionalCompilationPartNode::Statements , sngcm::ast::ConditionalCompilationStatementNode::ElifParts , sngcm::ast::ConditionalCompilationStatementNode::ElsePart , sngcm::ast::ConditionalCompilationStatementNode::IfPart , sngcm::ast::Node::Accept , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId , sngcm::ast::NodeList::Count


Visit Member Function

void cmajor::binder::StatementBinder::Visit(ConstructionStatementNode & constructionStatementNode) override

Definition at line 1210 of StatementBinder.cpp
Declaration at line 48 of StatementBinder.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::BoundCompileUnit::AddBoundNode , cmajor::binder::BoundCompileUnit::GetSymbolTable , cmajor::binder::BoundCompileUnit::IsGeneratedDestructorInstantiated , cmajor::binder::BoundCompileUnit::SetGeneratedDestructorInstantiated , cmajor::binder::BoundConstructionStatement::SetLocalVariable , cmajor::binder::BoundExpression::GetType , cmajor::binder::BoundFunction::GetFunctionSymbol , cmajor::binder::StatementBinder::AddReleaseExceptionStatement , cmajor::binder::StatementBinder::AddStatement , cmajor::symbols::SymbolTable::GetSymbol , cmajor::symbols::TypeSymbol::AddPointer , sngcm::ast::ConstructionStatementNode::Arguments , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId , sngcm::ast::NodeList::Count


Visit Member Function

void cmajor::binder::StatementBinder::Visit(ConstructorNode & constructorNode) override

Definition at line 531 of StatementBinder.cpp
Declaration at line 35 of StatementBinder.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::AttributeBinder::GenerateImplementation , cmajor::binder::BoundClass::AddMember , cmajor::binder::BoundCompileUnit::GetAttributeBinder , cmajor::binder::BoundCompileUnit::GetSymbolTable , cmajor::binder::BoundNode::GetBoundNodeType , cmajor::binder::StatementBinder::GenerateEnterAndExitFunctionCode , cmajor::binder::StatementBinder::GetContainerScope , cmajor::symbols::SymbolTable::GetSymbol , sngcm::ast::CompoundStatementNode::Accept , sngcm::ast::FunctionNode::Body , sngcm::ast::FunctionNode::GetAttributes , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId


Visit Member Function

void cmajor::binder::StatementBinder::Visit(ContinueStatementNode & continueStatementNode) override

Definition at line 1176 of StatementBinder.cpp
Declaration at line 46 of StatementBinder.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::StatementBinder::AddStatement , sngcm::ast::Node::GetSpan , sngcm::ast::Node::IsStatementNode , sngcm::ast::Node::ModuleId , sngcm::ast::Node::Parent , sngcm::ast::Node::Parent , sngcm::ast::StatementNode::IsContinueEnclosingStatementNode


Visit Member Function

void cmajor::binder::StatementBinder::Visit(ConversionFunctionNode & conversionFunctionNode) override

Definition at line 682 of StatementBinder.cpp
Declaration at line 38 of StatementBinder.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::AttributeBinder::GenerateImplementation , cmajor::binder::BoundClass::AddMember , cmajor::binder::BoundCompileUnit::GetAttributeBinder , cmajor::binder::BoundCompileUnit::GetSymbolTable , cmajor::binder::BoundNode::GetBoundNodeType , cmajor::binder::StatementBinder::GenerateEnterAndExitFunctionCode , cmajor::binder::StatementBinder::GetContainerScope , cmajor::symbols::SymbolTable::GetSymbol , sngcm::ast::CompoundStatementNode::Accept , sngcm::ast::FunctionNode::Body , sngcm::ast::FunctionNode::GetAttributes


Visit Member Function

void cmajor::binder::StatementBinder::Visit(DefaultStatementNode & defaultStatementNode) override

Definition at line 1674 of StatementBinder.cpp
Declaration at line 57 of StatementBinder.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::StatementBinder::AddStatement , sngcm::ast::DefaultStatementNode::Statements , sngcm::ast::Node::Accept , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId , sngcm::ast::NodeList::Count


Visit Member Function

void cmajor::binder::StatementBinder::Visit(DeleteStatementNode & deleteStatementNode) override

Definition at line 1266 of StatementBinder.cpp
Declaration at line 49 of StatementBinder.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::BoundFunction::GetFunctionSymbol , cmajor::binder::StatementBinder::AddReleaseExceptionStatement , cmajor::binder::StatementBinder::AddStatement , sngcm::ast::DeleteStatementNode::Expression , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId


Visit Member Function

void cmajor::binder::StatementBinder::Visit(DestroyStatementNode & destroyStatementNode) override

Definition at line 1347 of StatementBinder.cpp
Declaration at line 50 of StatementBinder.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::BoundFunction::GetFunctionSymbol , cmajor::binder::StatementBinder::AddReleaseExceptionStatement , cmajor::binder::StatementBinder::AddStatement , sngcm::ast::DestroyStatementNode::Expression , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId


Visit Member Function

void cmajor::binder::StatementBinder::Visit(DestructorNode & destructorNode) override

Definition at line 581 of StatementBinder.cpp
Declaration at line 36 of StatementBinder.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::AttributeBinder::GenerateImplementation , cmajor::binder::BoundClass::AddMember , cmajor::binder::BoundCompileUnit::GetAttributeBinder , cmajor::binder::BoundCompileUnit::GetSymbolTable , cmajor::binder::BoundNode::GetBoundNodeType , cmajor::binder::StatementBinder::GenerateEnterAndExitFunctionCode , cmajor::binder::StatementBinder::GetContainerScope , cmajor::symbols::SymbolTable::GetSymbol , sngcm::ast::CompoundStatementNode::Accept , sngcm::ast::FunctionNode::Body , sngcm::ast::FunctionNode::GetAttributes , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId


Visit Member Function

void cmajor::binder::StatementBinder::Visit(DoStatementNode & doStatementNode) override

Definition at line 1058 of StatementBinder.cpp
Declaration at line 43 of StatementBinder.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::StatementBinder::AddReleaseExceptionStatement , cmajor::binder::StatementBinder::AddStatement , sngcm::ast::DoStatementNode::Condition , sngcm::ast::DoStatementNode::Statement , sngcm::ast::Node::Accept , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId


Visit Member Function

void cmajor::binder::StatementBinder::Visit(EmptyStatementNode & emptyStatementNode) override

Definition at line 1455 of StatementBinder.cpp :
1456 {
1457     AddStatement(new BoundEmptyStatement(emptyStatementNode.GetSpan()emptyStatementNode.ModuleId()));
1458 }


Declaration at line 53 of StatementBinder.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::StatementBinder::AddStatement , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId


Visit Member Function

void cmajor::binder::StatementBinder::Visit(EnumTypeNode & enumTypeNode) override

Definition at line 279 of StatementBinder.cpp :
 280 {
 281     Symbol* symbol = boundCompileUnit.GetSymbolTable().GetSymbol(&enumTypeNode);
 282     Assert(symbol->GetSymbolType() == SymbolType::enumTypeSymbol"enum type symbols expected");
 283     EnumTypeSymbol* enumTypeSymbol = static_cast<EnumTypeSymbol*>(symbol);
 284     std::unique_ptr<BoundEnumTypeDefinition> boundEnum(new BoundEnumTypeDefinition(enumTypeSymbol));
 285     boundCompileUnit.AddBoundNode(std::move(boundEnum));
 286 }


Declaration at line 29 of StatementBinder.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::BoundCompileUnit::AddBoundNode , cmajor::binder::BoundCompileUnit::GetSymbolTable , cmajor::symbols::SymbolTable::GetSymbol


Visit Member Function

void cmajor::binder::StatementBinder::Visit(ExpressionStatementNode & expressionStatementNode) override

Definition at line 1440 of StatementBinder.cpp
Declaration at line 52 of StatementBinder.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::StatementBinder::AddReleaseExceptionStatement , cmajor::binder::StatementBinder::AddStatement , sngcm::ast::ExpressionStatementNode::Expression , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId


Visit Member Function

void cmajor::binder::StatementBinder::Visit(ForStatementNode & forStatementNode) override

Definition at line 1093 of StatementBinder.cpp
Declaration at line 44 of StatementBinder.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::BoundCompileUnit::GetSymbolTable , cmajor::binder::BoundStatement::SetForLoopStatementNode , cmajor::binder::StatementBinder::AddReleaseExceptionStatement , cmajor::binder::StatementBinder::AddStatement , cmajor::binder::StatementBinder::GetContainerScope , cmajor::symbols::SymbolTable::GetSymbol , sngcm::ast::ForStatementNode::ActionS , sngcm::ast::ForStatementNode::Condition , sngcm::ast::ForStatementNode::InitS , sngcm::ast::ForStatementNode::LoopS , sngcm::ast::Node::Accept , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId


Visit Member Function

void cmajor::binder::StatementBinder::Visit(FullInstantiationRequestNode & fullInstantiationRequestNode) override

Definition at line 381 of StatementBinder.cpp
Declaration at line 33 of StatementBinder.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: sngcm::ast::FullInstantiationRequestNode::TemplateId , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId


Visit Member Function

void cmajor::binder::StatementBinder::Visit(FunctionNode & functionNode) override

Definition at line 346 of StatementBinder.cpp
Declaration at line 32 of StatementBinder.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::AttributeBinder::GenerateImplementation , cmajor::binder::BoundCompileUnit::AddBoundNode , cmajor::binder::BoundCompileUnit::GetAttributeBinder , cmajor::binder::BoundCompileUnit::GetSymbolTable , cmajor::binder::BoundNode::GetBoundNodeType , cmajor::binder::StatementBinder::GenerateEnterAndExitFunctionCode , cmajor::binder::StatementBinder::GetContainerScope , cmajor::symbols::SymbolTable::GetSymbol , sngcm::ast::CompoundStatementNode::Accept , sngcm::ast::FunctionNode::Body , sngcm::ast::FunctionNode::GetAttributes


Visit Member Function

void cmajor::binder::StatementBinder::Visit(GotoCaseStatementNode & gotoCaseStatementNode) override

Definition at line 1696 of StatementBinder.cpp
Declaration at line 58 of StatementBinder.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::StatementBinder::AddStatement , sngcm::ast::GotoCaseStatementNode::CaseExpr , sngcm::ast::Node::GetNodeType , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId , sngcm::ast::Node::Parent , sngcm::ast::Node::Parent


Visit Member Function

void cmajor::binder::StatementBinder::Visit(GotoDefaultStatementNode & gotoDefaultStatementNode) override

Definition at line 1716 of StatementBinder.cpp
Declaration at line 59 of StatementBinder.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::StatementBinder::AddStatement , sngcm::ast::Node::GetNodeType , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId , sngcm::ast::Node::Parent , sngcm::ast::Node::Parent


Visit Member Function

void cmajor::binder::StatementBinder::Visit(GotoStatementNode & gotoStatementNode) override

Definition at line 1203 of StatementBinder.cpp :
1204 {
1205     currentFunction->SetHasGotos();
1206     boundCompileUnit.SetHasGotos();
1207     AddStatement(new BoundGotoStatement(gotoStatementNode.GetSpan()gotoStatementNode.ModuleId()gotoStatementNode.Target()));
1208 }


Declaration at line 47 of StatementBinder.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::BoundCompileUnit::SetHasGotos , cmajor::binder::BoundFunction::SetHasGotos , cmajor::binder::StatementBinder::AddStatement , sngcm::ast::GotoStatementNode::Target , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId


Visit Member Function

void cmajor::binder::StatementBinder::Visit(IfStatementNode & ifStatementNode) override

Definition at line 982 of StatementBinder.cpp
Declaration at line 41 of StatementBinder.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::StatementBinder::AddReleaseExceptionStatement , cmajor::binder::StatementBinder::AddStatement , sngcm::ast::IfStatementNode::Condition , sngcm::ast::IfStatementNode::ElseS , sngcm::ast::IfStatementNode::ThenS , sngcm::ast::Node::Accept , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId


Visit Member Function

void cmajor::binder::StatementBinder::Visit(MemberFunctionNode & memberFunctionNode) override

Definition at line 631 of StatementBinder.cpp
Declaration at line 37 of StatementBinder.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::AttributeBinder::GenerateImplementation , cmajor::binder::BoundClass::AddMember , cmajor::binder::BoundCompileUnit::GetAttributeBinder , cmajor::binder::BoundCompileUnit::GetSymbolTable , cmajor::binder::BoundNode::GetBoundNodeType , cmajor::binder::StatementBinder::GenerateEnterAndExitFunctionCode , cmajor::binder::StatementBinder::GetContainerScope , cmajor::symbols::SymbolTable::GetSymbol , sngcm::ast::CompoundStatementNode::Accept , sngcm::ast::FunctionNode::Body , sngcm::ast::FunctionNode::GetAttributes , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId


Visit Member Function

void cmajor::binder::StatementBinder::Visit(MemberVariableNode & memberVariableNode) override

Definition at line 323 of StatementBinder.cpp
Declaration at line 31 of StatementBinder.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::BoundCompileUnit::AddBoundNode , cmajor::binder::BoundCompileUnit::GetSymbolTable , cmajor::binder::BoundCompileUnit::IsGeneratedDestructorInstantiated , cmajor::binder::BoundCompileUnit::SetGeneratedDestructorInstantiated , cmajor::symbols::SymbolTable::GetSymbol , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId


Visit Member Function

void cmajor::binder::StatementBinder::Visit(NamespaceNode & namespaceNode) override

Definition at line 261 of StatementBinder.cpp
Declaration at line 28 of StatementBinder.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::BoundCompileUnit::AddBoundNode , cmajor::binder::BoundCompileUnit::GetSymbolTable , cmajor::binder::BoundCompileUnit::PopNamespace , cmajor::binder::BoundCompileUnit::PushNamespace , cmajor::binder::StatementBinder::GetContainerScope , cmajor::symbols::SymbolTable::GetSymbol , sngcm::ast::NamespaceNode::Members , sngcm::ast::Node::Accept , sngcm::ast::NodeList::Count


Visit Member Function

void cmajor::binder::StatementBinder::Visit(RangeForStatementNode & rangeForStatementNode) override

Definition at line 1460 of StatementBinder.cpp
Declaration at line 54 of StatementBinder.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: TypeExprParser::Parse , cmajor::binder::BoundFunction::GetFunctionSymbol , cmajor::binder::StatementBinder::AddStatement , cmajor::binder::TypeBinder::SetContainerScope , cmajor::binder::TypeBinder::SetCurrentFunctionSymbol , sngcm::ast::CompoundStatementNode::AddStatement , sngcm::ast::CompoundStatementNode::BeginBraceSpan , sngcm::ast::CompoundStatementNode::EndBraceSpan , sngcm::ast::CompoundStatementNode::SetBeginBraceSpan , sngcm::ast::CompoundStatementNode::SetEndBraceSpan , sngcm::ast::ConstructionStatementNode::AddArgument , sngcm::ast::IdentifierNode::Clone , sngcm::ast::Node::Clone , sngcm::ast::Node::GetNodeType , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId , sngcm::ast::Node::Parent , sngcm::ast::RangeForStatementNode::Action , sngcm::ast::RangeForStatementNode::ColonSpan , sngcm::ast::RangeForStatementNode::Container , sngcm::ast::RangeForStatementNode::Id , sngcm::ast::RangeForStatementNode::TypeExpr , soulng::lexer::Lexer::SetSeparatorChar


Visit Member Function

void cmajor::binder::StatementBinder::Visit(ReturnStatementNode & returnStatementNode) override

Definition at line 797 of StatementBinder.cpp
Declaration at line 40 of StatementBinder.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::BoundCompileUnit::GetConversion , cmajor::binder::BoundFunction::GetFunctionSymbol , cmajor::binder::BoundFunctionCall::AddArgument , cmajor::binder::StatementBinder::AddReleaseExceptionStatement , cmajor::binder::StatementBinder::AddStatement , cmajor::symbols::FunctionSymbol::CreateTemporary , cmajor::symbols::FunctionSymbol::ReturnParam , cmajor::symbols::FunctionSymbol::ReturnType , cmajor::symbols::FunctionSymbol::ReturnsClassInterfaceOrClassDelegateByValue , cmajor::symbols::Symbol::ClassInterfaceEnumDelegateOrNsScope , cmajor::symbols::Symbol::GetSpan , cmajor::symbols::Symbol::SourceModuleId , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId , sngcm::ast::ReturnStatementNode::Expression


Visit Member Function

void cmajor::binder::StatementBinder::Visit(StaticConstructorNode & staticConstructorNode) override

Definition at line 394 of StatementBinder.cpp
Declaration at line 34 of StatementBinder.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::AttributeBinder::GenerateImplementation , cmajor::binder::BoundClass::AddMember , cmajor::binder::BoundCompileUnit::GetAttributeBinder , cmajor::binder::BoundCompileUnit::GetSymbolTable , cmajor::binder::BoundNode::GetBoundNodeType , cmajor::binder::StatementBinder::GenerateEnterAndExitFunctionCode , cmajor::binder::StatementBinder::GetContainerScope , cmajor::symbols::SymbolTable::GetSymbol , sngcm::ast::CompoundStatementNode::Accept , sngcm::ast::FunctionNode::Body , sngcm::ast::FunctionNode::GetAttributes


Visit Member Function

void cmajor::binder::StatementBinder::Visit(SwitchStatementNode & switchStatementNode) override

Definition at line 1565 of StatementBinder.cpp
Declaration at line 55 of StatementBinder.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::BoundNode::GetSpan , cmajor::binder::BoundNode::ModuleId , cmajor::binder::StatementBinder::AddReleaseExceptionStatement , cmajor::binder::StatementBinder::AddStatement , sngcm::ast::CaseStatementNode::Accept , sngcm::ast::DefaultStatementNode::Accept , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId , sngcm::ast::NodeList::Count , sngcm::ast::SwitchStatementNode::Cases , sngcm::ast::SwitchStatementNode::Condition , sngcm::ast::SwitchStatementNode::Default


Visit Member Function

void cmajor::binder::StatementBinder::Visit(ThrowStatementNode & throwStatementNode) override

Definition at line 1733 of StatementBinder.cpp
Declaration at line 60 of StatementBinder.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::BoundFunction::GetFunctionSymbol , cmajor::binder::StatementBinder::AddStatement , cmajor::symbols::FunctionSymbol::DontThrow , cmajor::symbols::FunctionSymbol::HasTry , cmajor::symbols::Symbol::GetSpan , cmajor::symbols::Symbol::SourceModuleId , sngcm::ast::InvokeNode::AddArgument , sngcm::ast::NewNode::AddArgument , sngcm::ast::Node::Clone , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId , sngcm::ast::ThrowStatementNode::Expression


Visit Member Function

void cmajor::binder::StatementBinder::Visit(TryStatementNode & tryStatementNode) override

Definition at line 1802 of StatementBinder.cpp
Declaration at line 61 of StatementBinder.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::BoundNode::GetBoundNodeType , cmajor::binder::BoundTryStatement::AddCatch , cmajor::binder::BoundTryStatement::SetTryBlock , cmajor::binder::StatementBinder::AddStatement , sngcm::ast::CatchNode::Accept , sngcm::ast::CompoundStatementNode::Accept , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId , sngcm::ast::NodeList::Count , sngcm::ast::TryStatementNode::Catches , sngcm::ast::TryStatementNode::TryBlock


Visit Member Function

void cmajor::binder::StatementBinder::Visit(WhileStatementNode & whileStatementNode) override

Definition at line 1023 of StatementBinder.cpp
Declaration at line 42 of StatementBinder.hpp

Base class overridden functions: sngcm::ast::Visitor::Visit

Calls: cmajor::binder::StatementBinder::AddReleaseExceptionStatement , cmajor::binder::StatementBinder::AddStatement , sngcm::ast::Node::Accept , sngcm::ast::Node::GetSpan , sngcm::ast::Node::ModuleId , sngcm::ast::WhileStatementNode::Condition , sngcm::ast::WhileStatementNode::Statement


top | up | prev | next