top | up | prev | next

binder Namespace

Classes

class BoundSourceFile
class ExpressionBinder
class SourceFileResolver
class StatementBinder
class TypeBinder
class TypeResolver

Functions

void AddOverriddenPureVirtualFunctions(ClassTypeSymbol* cls, std::unordered_set<FunctionSymbol*>& pureVirtualFunctions, std::unordered_set<FunctionSymbol*>& overriddenPureVirtuals)
std::vector<Symbol*> BindExpression(Node* node, SymbolTable& symbolTable, ContainerScope* containerScope, const std::vector<ContainerScope*>& prevContainerScopes, BoundSourceFile* boundSourceFile, FunctionSymbol* currentFunction, StatementBinder* statementBinder)
std::vector<Symbol*> BindExpression(Node* node, SymbolTable& symbolTable, ContainerScope* containerScope, const std::vector<ContainerScope*>& prevContainerScopes, BoundSourceFile* boundSourceFile, FunctionSymbol* currentFunction, StatementBinder* statementBinder, bool& subjectIsConst)
void CollectPureVirtualFunctions(ClassTypeSymbol* cls, std::unordered_set<FunctionSymbol*>& pureVirtualFunctions)
bool Overrides(FunctionSymbol* derivedFun, FunctionSymbol* baseFun)
void ResolveOverrideSets(ClassTypeSymbol* cls)
void ResolveOverrideSets(FunctionSymbol* derivedFun, ClassTypeSymbol* parentClass)
void ResolveOverrideSets(const std::unordered_set<ClassTypeSymbol*>& classes)
TypeSymbol* ResolveType(SymbolTable& symbolTable, ContainerScope* containerScope, const std::vector<ContainerScope*>& prevContainerScopes, BoundSourceFile& boundSourceFile, ClassTypeSymbol* currentClassType, Node* node)
TypeSymbol* ResolveType(SymbolTable& symbolTable, ContainerScope* containerScope, const std::vector<ContainerScope*>& prevContainerScopes, BoundSourceFile& boundSourceFile, TypeResolverFlags flags, ClassTypeSymbol* currentClassType, Node* node)
TypeResolverFlags operator&(TypeResolverFlags left, TypeResolverFlags right) inline
TypeResolverFlags operator|(TypeResolverFlags left, TypeResolverFlags right) inline

Enumerations

enum class TypeResolverFlags

Function Details

AddOverriddenPureVirtualFunctions Function

void sngcpp::binder::AddOverriddenPureVirtualFunctions(ClassTypeSymbol * cls, std::unordered_set<FunctionSymbol *>& pureVirtualFunctions, std::unordered_set<FunctionSymbol *>& overriddenPureVirtuals)

Definition at line 67 of VirtualBinder.cpp

Calls: sngcpp::symbols::ClassTypeSymbol::BaseClasses , sngcpp::symbols::ClassTypeSymbol::VirtualFunctions , sngcpp::symbols::Symbol::IsClassTypeSymbol


BindExpression Function

std::vector<Symbol*> sngcpp::binder::BindExpression(Node* node, SymbolTable& symbolTable, ContainerScope* containerScope, const std::vector<ContainerScope*>& prevContainerScopes, BoundSourceFile * boundSourceFile, FunctionSymbol* currentFunction, StatementBinder * statementBinder)

Definition at line 716 of ExpressionBinder.cpp
Declaration at line 17 of ExpressionBinder.hpp

Called by: sngcpp::binder::ExpressionBinder::Visit , sngcpp::binder::ExpressionBinder::Visit , sngcpp::binder::ExpressionBinder::Visit , sngcpp::binder::ExpressionBinder::Visit , sngcpp::binder::ExpressionBinder::Visit , sngcpp::binder::ExpressionBinder::Visit , sngcpp::binder::ExpressionBinder::Visit , sngcpp::binder::ExpressionBinder::Visit , sngcpp::binder::ExpressionBinder::Visit , sngcpp::binder::ExpressionBinder::Visit , sngcpp::binder::ExpressionBinder::Visit , sngcpp::binder::ExpressionBinder::Visit , sngcpp::binder::ExpressionBinder::Visit , sngcpp::binder::ExpressionBinder::Visit , sngcpp::binder::ExpressionBinder::Visit , sngcpp::binder::ExpressionBinder::Visit , sngcpp::binder::ExpressionBinder::Visit , sngcpp::binder::ExpressionBinder::Visit , sngcpp::binder::ExpressionBinder::Visit , sngcpp::binder::ExpressionBinder::Visit , sngcpp::binder::ExpressionBinder::Visit , sngcpp::binder::ExpressionBinder::Visit , sngcpp::binder::ExpressionBinder::Visit , sngcpp::binder::ExpressionBinder::Visit , sngcpp::binder::ExpressionBinder::Visit , sngcpp::binder::ExpressionBinder::Visit , sngcpp::binder::ExpressionBinder::Visit , sngcpp::binder::ExpressionBinder::Visit , sngcpp::binder::ExpressionBinder::Visit , sngcpp::binder::ExpressionBinder::Visit , sngcpp::binder::ExpressionBinder::Visit , sngcpp::binder::ExpressionBinder::Visit , sngcpp::binder::ExpressionBinder::Visit , sngcpp::binder::ExpressionBinder::Visit , sngcpp::binder::ExpressionBinder::Visit , sngcpp::binder::ExpressionBinder::Visit , sngcpp::binder::ExpressionBinder::Visit , sngcpp::binder::ExpressionBinder::Visit , sngcpp::binder::ExpressionBinder::Visit , sngcpp::binder::ExpressionBinder::Visit , sngcpp::binder::ExpressionBinder::Visit , sngcpp::binder::ExpressionBinder::Visit , sngcpp::binder::ExpressionBinder::Visit , sngcpp::binder::ExpressionBinder::Visit , sngcpp::binder::ExpressionBinder::Visit , sngcpp::binder::ExpressionBinder::Visit , sngcpp::binder::ExpressionBinder::Visit , sngcpp::binder::ExpressionBinder::Visit , sngcpp::binder::StatementBinder::Visit , sngcpp::binder::StatementBinder::Visit , sngcpp::binder::StatementBinder::Visit , sngcpp::binder::StatementBinder::Visit , sngcpp::binder::StatementBinder::Visit , sngcpp::binder::StatementBinder::Visit , sngcpp::binder::StatementBinder::Visit , sngcpp::binder::StatementBinder::Visit , sngcpp::binder::StatementBinder::Visit , sngcpp::binder::StatementBinder::Visit , sngcpp::binder::StatementBinder::Visit , sngcpp::binder::StatementBinder::Visit , sngcpp::binder::StatementBinder::Visit , sngcpp::binder::StatementBinder::Visit


BindExpression Function

std::vector<Symbol*> sngcpp::binder::BindExpression(Node* node, SymbolTable& symbolTable, ContainerScope* containerScope, const std::vector<ContainerScope*>& prevContainerScopes, BoundSourceFile * boundSourceFile, FunctionSymbol* currentFunction, StatementBinder * statementBinder, bool & subjectIsConst)

Definition at line 689 of ExpressionBinder.cpp
Declaration at line 20 of ExpressionBinder.hpp

Calls: sngcpp::binder::ExpressionBinder::GetSymbols

Called by: sngcpp::binder::ExpressionBinder::Visit


CollectPureVirtualFunctions Function

void sngcpp::binder::CollectPureVirtualFunctions(ClassTypeSymbol * cls, std::unordered_set<FunctionSymbol *>& pureVirtualFunctions)

Definition at line 48 of VirtualBinder.cpp

Calls: sngcpp::symbols::ClassTypeSymbol::BaseClasses , sngcpp::symbols::ClassTypeSymbol::VirtualFunctions , sngcpp::symbols::FunctionSymbol::IsPureVirtual , sngcpp::symbols::Symbol::IsClassTypeSymbol


Overrides Function

bool sngcpp::binder::Overrides(FunctionSymbol * derivedFun, FunctionSymbol * baseFun)

Definition at line 11 of VirtualBinder.cpp

Calls: sngcpp::symbols::FunctionSymbol::Arity , sngcpp::symbols::FunctionSymbol::Parameters , sngcpp::symbols::ParameterSymbol::GetType , sngcpp::symbols::Symbol::Id , sngcpp::symbols::Symbol::Name


ResolveOverrideSets Function

void sngcpp::binder::ResolveOverrideSets(ClassTypeSymbol * cls)

Definition at line 90 of VirtualBinder.cpp

Calls: sngcpp::symbols::ClassTypeSymbol::SetAbstract , sngcpp::symbols::ClassTypeSymbol::VirtualFunctions


ResolveOverrideSets Function

void sngcpp::binder::ResolveOverrideSets(FunctionSymbol * derivedFun, ClassTypeSymbol * parentClass)

Definition at line 28 of VirtualBinder.cpp

Calls: sngcpp::symbols::ClassTypeSymbol::BaseClasses , sngcpp::symbols::ClassTypeSymbol::VirtualFunctions , sngcpp::symbols::FunctionSymbol::AddOverridden , sngcpp::symbols::FunctionSymbol::AddOverride , sngcpp::symbols::Symbol::IsClassTypeSymbol


ResolveOverrideSets Function

void sngcpp::binder::ResolveOverrideSets(const std::unordered_set<ClassTypeSymbol *>& classes)

Definition at line 110 of VirtualBinder.cpp
Declaration at line 14 of VirtualBinder.hpp


ResolveType Function

TypeSymbol * sngcpp::binder::ResolveType(SymbolTable& symbolTable, ContainerScope* containerScope, const std::vector<ContainerScope*>& prevContainerScopes, BoundSourceFile & boundSourceFile, ClassTypeSymbol* currentClassType, Node* node)

Definition at line 434 of TypeResolver.cpp
Declaration at line 34 of TypeResolver.hpp


ResolveType Function

TypeSymbol * sngcpp::binder::ResolveType(SymbolTable& symbolTable, ContainerScope* containerScope, const std::vector<ContainerScope*>& prevContainerScopes, BoundSourceFile & boundSourceFile, TypeResolverFlags flags, ClassTypeSymbol* currentClassType, Node* node)

Definition at line 440 of TypeResolver.cpp
Declaration at line 36 of TypeResolver.hpp

Calls: sngcpp::binder::TypeResolver::GetType , sngcpp::binder::TypeResolver::IdNodeSequence

Called by: sngcpp::binder::ExpressionBinder::Visit , sngcpp::binder::TypeBinder::Visit , sngcpp::binder::TypeBinder::Visit , sngcpp::binder::TypeBinder::Visit , sngcpp::binder::TypeBinder::Visit , sngcpp::binder::TypeBinder::Visit , sngcpp::binder::TypeBinder::Visit , sngcpp::binder::TypeBinder::Visit , sngcpp::binder::TypeBinder::Visit , sngcpp::binder::TypeBinder::Visit , sngcpp::binder::TypeBinder::Visit , sngcpp::binder::TypeBinder::Visit , sngcpp::binder::TypeBinder::Visit , sngcpp::binder::TypeResolver::Visit


operator& Function

TypeResolverFlags sngcpp::binder::operator&(TypeResolverFlags left, TypeResolverFlags right) inline

Definition at line 29 of TypeResolver.hpp


operator| Function

TypeResolverFlags sngcpp::binder::operator|(TypeResolverFlags left, TypeResolverFlags right) inline

Definition at line 24 of TypeResolver.hpp


top | up | prev | next