top | up | prev | next

SymbolTable Class

Definition at line 102 of SymbolTable.hpp

Constructors

SymbolTable(Module* module_)

Member Functions

void AddAliasNode(AliasNode* aliasNode)
void AddClassHavingStaticConstructor(ClassTypeSymbol* classHavingStaticConstructor)
void AddClassTemplateSpecializationsToClassTemplateSpecializationMap(const std::vector<ClassTemplateSpecializationSymbol*>& classTemplateSpecializations)
ConstantSymbol* AddConstant(ConstantNode& constantNode)
void AddConversion(FunctionSymbol* conversion)
void AddConversion(FunctionSymbol* conversion, Module* module)
void AddEnumConstant(EnumConstantNode& enumConstantNode)
void AddFunctionSymbol(std::unique_ptr<FunctionSymbol>&& functionSymbol)
void AddFunctionSymbolToFunctionIdMap(FunctionSymbol* functionSymbol)
void AddFunctionSymbolToGlobalScope(FunctionSymbol* functionSymbol)
GlobalVariableSymbol* AddGlobalVariable(GlobalVariableNode& globalVariableNode)
void AddJsonClass(const std::u32string& jsonClass)
void AddLocalVariable(ConstructionStatementNode& constructionStatementNode)
void AddLocalVariable(IdentifierNode& identifierNode)
void AddMemberVariable(MemberVariableNode& memberVariableNode)
void AddNamespaceImport(NamespaceImportNode* namespaceImport)
void AddParameter(ParameterNode& parameterNode)
void AddPolymorphicClass(ClassTypeSymbol* polymorphicClass)
void AddTemplateParameter(IdentifierNode& identifierNode)
void AddTemplateParameter(TemplateParameterNode& templateParameterNode)
void AddTypeOrConceptSymbolToTypeIdMap(Symbol* typeOrConceptSymbol)
void AddTypeSymbolToGlobalScope(TypeSymbol* typeSymbol)
TypedefSymbol* AddTypedef(TypedefNode& typedefNode)
const std::vector<AliasNode*>& AliasNodes() const
void BeginAxiom(AxiomNode& axiomNode)
void BeginClass(ClassNode& classNode)
void BeginClassDelegate(ClassDelegateNode& classDelegateNode)
void BeginClassTemplateSpecialization(ClassNode& classInstanceNode, ClassTemplateSpecializationSymbol* classTemplateSpecialization)
void BeginConcept(ConceptNode& conceptNode, bool hasSource)
void BeginConstructor(ConstructorNode& constructorNode, int32_t functionIndex)
void BeginContainer(ContainerSymbol* container_)
void BeginConversionFunction(ConversionFunctionNode& conversionFunctionNode, int32_t functionIndex)
void BeginDeclarationBlock(Node& node)
void BeginDelegate(DelegateNode& delegateNode)
void BeginDestructor(DestructorNode& destructorNode, int32_t functionIndex)
void BeginEnumType(EnumTypeNode& enumTypeNode)
void BeginFunction(FunctionNode& functionNode, int32_t functionIndex)
void BeginInterface(InterfaceNode& interfaceNode)
void BeginMemberFunction(MemberFunctionNode& memberFunctionNode, int32_t functionIndex)
NamespaceSymbol* BeginNamespace(NamespaceNode& namespaceNode)
NamespaceSymbol* BeginNamespace(const std::u32string& namespaceName, const Span& span, const boost::uuids::uuid& sourceModuleId)
void BeginStaticConstructor(StaticConstructorNode& staticConstructorNode, int32_t functionIndex)
void Check()
const std::unordered_set<ClassTypeSymbol*>& ClassesHavingStaticConstructor() const
void Clear()
const ContainerSymbol* Container() const
ContainerSymbol* Container()
void Copy(const SymbolTable& that)
ClassTemplateSpecializationSymbol* CopyClassTemplateSpecialization(ClassTemplateSpecializationSymbol* source)
ClassTypeSymbol* CurrentClass()
InterfaceTypeSymbol* CurrentInterface()
ContainerSymbol* CursorContainer() const
void EmplaceConceptRequest(SymbolReader& reader, Symbol* forSymbol, const boost::uuids::uuid& typeId)
void EmplaceFunctionRequest(SymbolReader& reader, Symbol* forSymbol, const ::boost::uuids::uuid& functionId, int index)
void EmplaceTypeOrConceptRequest(SymbolReader& reader, Symbol* forSymbol, const boost::uuids::uuid& typeId, int index)
void EmplaceTypeRequest(SymbolReader& reader, Symbol* forSymbol, const boost::uuids::uuid& typeId, int index)
void EndAxiom()
void EndClass()
void EndClassDelegate()
void EndClassTemplateSpecialization()
void EndConcept()
void EndConstructor(bool addMember)
void EndContainer()
void EndConversionFunction(bool addMember)
void EndDeclarationBlock()
void EndDelegate()
void EndDestructor(bool addMember)
void EndEnumType()
void EndFunction(bool addMember)
void EndInterface()
void EndMemberFunction(bool addMember)
void EndNamespace()
void EndStaticConstructor(bool addMember)
void FinishRead(const std::vector<ArrayTypeSymbol*>& arrayTypes, const std::vector<DerivedTypeSymbol*>& derivedTypes, const std::vector<ClassTemplateSpecializationSymbol*>& classTemplateSpecializations, const std::vector<TypeOrConceptRequest>& typeAndConceptRequests, const std::vector<FunctionRequest>& functionRequests, std::vector<FunctionSymbol*>& conversions)
FunctionSymbol* GetConversion(TypeSymbol* sourceType, TypeSymbol* targetType, const Span& span, const boost::uuids::uuid& moduleId) const
ConversionTable& GetConversionTable()
const ConversionTable& GetConversionTable() const
FunctionSymbol* GetCreatedFunctionSymbol()
ClassTemplateSpecializationSymbol* GetCurrentClassTemplateSpecialization(ClassTemplateSpecializationSymbol* source)
SymbolLocation* GetDefinitionLocation(const SymbolLocation& identifierLocation)
const boost::uuids::uuid& GetDerivationId(Derivation derivation) const
FunctionSymbol* GetFunctionById(const boost::uuids::uuid& functionId) const
FunctionSymbol* GetInvoke(IdentifierNode* invokeId) const
NamespaceSymbol* GetMappedNs(NamespaceSymbol* fromNs) const
Symbol* GetMappedSymbol(Node* node) const
Module* GetModule()
int GetNextDeclarationBlockIndex()
Node* GetNode(Symbol* symbol) const
Node* GetNodeNoThrow(Symbol* symbol) const
const boost::uuids::uuid& GetPositionId(int index) const
std::u32string GetProfiledFunctionName(const boost::uuids::uuid& functionId) const
Symbol* GetSymbol(Node* node) const
Symbol* GetSymbolNoThrow(Node* node) const
TypeSymbol* GetTypeByName(const std::u32string& typeName) const
TypeSymbol* GetTypeByNameNoThrow(const std::u32string& typeName) const
NamespaceSymbol& GlobalNs()
const NamespaceSymbol& GlobalNs() const
void Import(const SymbolTable& symbolTable)
void InitUuids()
const std::unordered_set<std::u32string>& JsonClasses() const
const FunctionSymbol* MainFunctionSymbol() const
FunctionSymbol* MainFunctionSymbol()
ArrayTypeSymbol* MakeArrayType(TypeSymbol* elementType, int64_t size, const Span& span, const boost::uuids::uuid& moduleId)
ClassTemplateSpecializationSymbol* MakeClassTemplateSpecialization(ClassTypeSymbol* classTemplate, const std::vector<TypeSymbol*>& templateArgumentTypes, const Span& span, const boost::uuids::uuid& sourceModuleId)
TypeSymbol* MakeDerivedType(TypeSymbol* baseType, const TypeDerivationRec& derivationRec, const Span& span, const boost::uuids::uuid& moduleId)
void MapIdentifierToSymbolDefinition(IdentifierNode* identifierNode, Module* module, Symbol* symbol)
void MapInvoke(IdentifierNode* invokeId, FunctionSymbol* functionSymbol)
void MapNode(Node* node, Symbol* symbol)
void MapNs(NamespaceSymbol* fromNs, NamespaceSymbol* toNs)
void MapProfiledFunction(const boost::uuids::uuid& functionId, const std::u32string& profiledFunctionName)
void MapSymbol(Node* node, Symbol* symbol)
const std::vector<NamespaceImportNode*>& NamespaceImports() const
int NextAxiomNumber()
int NumSpecializations() const
int NumSpecializationsCopied() const
int NumSpecializationsNew() const
const std::unordered_set<ClassTypeSymbol*>& PolymorphicClasses() const
void ProcessTypeConceptAndFunctionRequests(const std::vector<TypeOrConceptRequest>& typeAndConceptRequests, const std::vector<FunctionRequest>& functionRequests)
void Read(SymbolReader& reader)
void ReadSymbolDefinitionMap(SymbolReader& reader)
void ResetAliasNodesAndNamespaceImports()
void ResetAxiomNumber()
void ResetCursorContainer()
void ResetDeclarationBlockIndex()
void ResetMainFunctionSymbol()
void SetCurrentClass(ClassTypeSymbol* currentClass_)
void SetCurrentCompileUnit(CompileUnitNode* currentCompileUnit_)
void SetCurrentFunctionSymbol(FunctionSymbol* currentFunctionSymbol_)
void SetCursorContainer(const Node& node)
void SetFunctionIdFor(FunctionSymbol* functionSymbol)
void SetTypeIdFor(ConceptSymbol* conceptSymbol)
void SetTypeIdFor(TypeSymbol* typeSymbol)
std::unique_ptr<Document> ToDomDocument()
std::vector<TypeSymbol*> Types() const
void Write(SymbolWriter& writer)
void WriteSymbolDefinitionMap(SymbolWriter& writer)

Member Variables

std::vector<AliasNode*> aliasNodes
std::unordered_map<ArrayKey, ArrayTypeSymbol*, ArrayKeyHash> arrayTypeMap
std::vector<std::unique_ptr<ArrayTypeSymbol>> arrayTypes
int axiomNumber
std::unordered_map<ClassTemplateSpecializationKey, ClassTemplateSpecializationSymbol*, ClassTemplateSpecializationKeyHash> classTemplateSpecializationMap
std::vector<std::unique_ptr<ClassTemplateSpecializationSymbol>> classTemplateSpecializations
std::unordered_set<ClassTypeSymbol*> classesHavingStaticConstructor
ContainerSymbol* container
std::stack<ContainerSymbol*> containerStack
ConversionTable conversionTable
FunctionSymbol* createdFunctionSymbol
ClassTypeSymbol* currentClass
std::stack<ClassTypeSymbol*> currentClassStack
CompileUnitNode* currentCompileUnit
FunctionSymbol* currentFunctionSymbol
InterfaceTypeSymbol* currentInterface
std::stack<InterfaceTypeSymbol*> currentInterfaceStack
ContainerSymbol* cursorContainer
int declarationBlockIndex
std::vector<boost::uuids::uuid> derivationIds
std::unordered_map<boost::uuids::uuid, std::vector<DerivedTypeSymbol*>, boost::hash<boost::uuids::uuid>> derivedTypeMap
std::vector<std::unique_ptr<DerivedTypeSymbol>> derivedTypes
std::unordered_map<boost::uuids::uuid, FunctionSymbol*, boost::hash<boost::uuids::uuid>> functionIdMap
std::vector<std::unique_ptr<FunctionSymbol>> functionSymbols
NamespaceSymbol globalNs
std::unordered_map<IdentifierNode*, Symbol*> identifierSymbolDefinitionMap
std::unordered_map<IdentifierNode*, FunctionSymbol*> invokeMap
std::unordered_set<std::u32string> jsonClasses
FunctionSymbol* mainFunctionSymbol
std::unordered_map<Node*, Symbol*> mappedNodeSymbolMap
Module* module
std::vector<NamespaceImportNode*> namespaceImports
std::unordered_map<Node*, Symbol*> nodeSymbolMap
std::unordered_map<NamespaceSymbol*, NamespaceSymbol*> nsMap
int numSpecializationsCopied
int numSpecializationsNew
int parameterIndex
std::unordered_set<ClassTypeSymbol*> polymorphicClasses
std::vector<boost::uuids::uuid> positionIds
std::unordered_map<boost::uuids::uuid, std::u32string, boost::hash<boost::uuids::uuid>> profiledFunctionNameMap
std::unordered_map<ClassTemplateSpecializationSymbol*, ClassTemplateSpecializationSymbol*> specializationCopyMap
std::map<SymbolLocation, SymbolLocation> symbolDefinitionMap
std::unordered_map<Symbol*, Node*> symbolNodeMap
std::unordered_map<boost::uuids::uuid, Symbol*, boost::hash<boost::uuids::uuid>> typeIdMap
std::unordered_map<std::u32string, TypeSymbol*> typeNameMap

Constructor Details

SymbolTable Constructor

cmajor::symbols::SymbolTable::SymbolTable(Module * module_)

Definition at line 80 of SymbolTable.cpp :
  80 :
  81 module(module_)globalNs(Span()boost::uuids::nil_uuid()std::u32string())currentCompileUnit(nullptr)container(&globalNs)currentClass(nullptr)currentInterface(nullptr)
  82 mainFunctionSymbol(nullptr)currentFunctionSymbol(nullptr)parameterIndex(0)declarationBlockIndex(0)conversionTable(ConversionTable::Owner::symbolTablemodule)
  83 numSpecializationsNew(0)numSpecializationsCopied(0)createdFunctionSymbol(nullptr)cursorContainer(nullptr)axiomNumber(0)
  84 {
  85     globalNs.SetModule(module);
  86 }


Declaration at line 105 of SymbolTable.hpp


Member Function Details

AddAliasNode Member Function

void cmajor::symbols::SymbolTable::AddAliasNode(AliasNode * aliasNode)

Definition at line 238 of SymbolTable.hpp :
238 { aliasNodes.push_back(aliasNode); }

Called by: cmajor::symbols::SymbolCreatorVisitor::Visit


AddClassHavingStaticConstructor Member Function

void cmajor::symbols::SymbolTable::AddClassHavingStaticConstructor(ClassTypeSymbol * classHavingStaticConstructor)

Definition at line 1547 of SymbolTable.cpp
Declaration at line 201 of SymbolTable.hpp

Calls: cmajor::symbols::ClassTypeSymbol::StaticConstructor , cmajor::symbols::Symbol::GetSpan , cmajor::symbols::Symbol::SourceModuleId

Called by: cmajor::symbols::ClassTypeSymbol::Read , cmajor::symbols::SymbolTable::Import


AddClassTemplateSpecializationsToClassTemplateSpecializationMap Member Function

void cmajor::symbols::SymbolTable::AddClassTemplateSpecializationsToClassTemplateSpecializationMap(const std::vector<ClassTemplateSpecializationSymbol *>& classTemplateSpecializations)

Definition at line 1492 of SymbolTable.cpp
Declaration at line 190 of SymbolTable.hpp

Calls: cmajor::symbols::ClassTemplateSpecializationSymbol::GetClassTemplate , cmajor::symbols::ClassTemplateSpecializationSymbol::TemplateArgumentTypes

Called by: cmajor::symbols::SymbolTable::FinishRead


AddConstant Member Function

ConstantSymbol * cmajor::symbols::SymbolTable::AddConstant(ConstantNode& constantNode)

Definition at line 988 of SymbolTable.cpp :
 989 {
 990     ConstantSymbol* constantSymbol = new ConstantSymbol(constantNode.GetSpan()constantNode.ModuleId()constantNode.Id()->Str());
 991     constantSymbol->SetCompileUnit(currentCompileUnit);
 992     constantSymbol->SetModule(module);
 993     constantSymbol->SetStrValue(constantNode.StrValue());
 994     MapNode(&constantNodeconstantSymbol);
 995     container->AddMember(constantSymbol);
 996     return constantSymbol;
 997 }


Calls: cmajor::symbols::ConstantSymbol::SetStrValue , cmajor::symbols::ContainerSymbol::AddMember , cmajor::symbols::Symbol::SetCompileUnit , cmajor::symbols::Symbol::SetModule , cmajor::symbols::SymbolTable::MapNode

Called by: cmajor::symbols::SymbolCreatorVisitor::Visit


AddConversion Member Function

void cmajor::symbols::SymbolTable::AddConversion(FunctionSymbol * conversion)

Definition at line 1522 of SymbolTable.cpp :
1523 {
1524     AddConversion(conversionnullptr);
1525 }


Declaration at line 194 of SymbolTable.hpp

Calls: cmajor::symbols::SymbolTable::AddConversion


AddConversion Member Function

void cmajor::symbols::SymbolTable::AddConversion(FunctionSymbol * conversion, Module * module)

Definition at line 1511 of SymbolTable.cpp :
1512 {
1519     conversionTable.AddConversion(conversion);
1520 }


Declaration at line 195 of SymbolTable.hpp

Calls: cmajor::symbols::ConversionTable::AddConversion

Called by: cmajor::symbols::SymbolTable::AddConversion , cmajor::symbols::SymbolTable::FinishRead


AddEnumConstant Member Function

void cmajor::symbols::SymbolTable::AddEnumConstant(EnumConstantNode& enumConstantNode)

Definition at line 1027 of SymbolTable.cpp :
1028 {
1029     EnumConstantSymbol* enumConstantSymbol = new EnumConstantSymbol(enumConstantNode.GetSpan()enumConstantNode.ModuleId()enumConstantNode.Id()->Str());
1030     enumConstantSymbol->SetCompileUnit(currentCompileUnit);
1031     enumConstantSymbol->SetModule(module);
1032     enumConstantSymbol->SetStrValue(enumConstantNode.StrValue());
1033     MapNode(&enumConstantNodeenumConstantSymbol);
1034     container->AddMember(enumConstantSymbol);
1035 }


Calls: cmajor::symbols::ContainerSymbol::AddMember , cmajor::symbols::EnumConstantSymbol::SetStrValue , cmajor::symbols::Symbol::SetCompileUnit , cmajor::symbols::Symbol::SetModule , cmajor::symbols::SymbolTable::MapNode

Called by: cmajor::symbols::SymbolCreatorVisitor::Visit


AddFunctionSymbol Member Function

void cmajor::symbols::SymbolTable::AddFunctionSymbol(std::unique_ptr<FunctionSymbol >&& functionSymbol)

Definition at line 1743 of SymbolTable.cpp :
1744 {
1745     functionSymbols.push_back(std::move(functionSymbol));
1746 }


Declaration at line 229 of SymbolTable.hpp


AddFunctionSymbolToFunctionIdMap Member Function

void cmajor::symbols::SymbolTable::AddFunctionSymbolToFunctionIdMap(FunctionSymbol * functionSymbol)

Definition at line 1132 of SymbolTable.cpp :
1133 {
1134     functionIdMap[functionSymbol->FunctionId()] = functionSymbol;
1135 }


Declaration at line 178 of SymbolTable.hpp

Calls: cmajor::symbols::FunctionSymbol::FunctionId

Called by: cmajor::symbols::FunctionSymbol::Read


AddFunctionSymbolToGlobalScope Member Function

void cmajor::symbols::SymbolTable::AddFunctionSymbolToGlobalScope(FunctionSymbol * functionSymbol)

Definition at line 1045 of SymbolTable.cpp :
1046 {
1047     SetFunctionIdFor(functionSymbol);
1048     functionSymbol->SetModule(module);
1049     globalNs.AddMember(functionSymbol);
1050     if (functionSymbol->IsConversion())
1051     {
1052         conversionTable.AddConversion(functionSymbol);
1053     }
1054 }


Declaration at line 167 of SymbolTable.hpp

Calls: cmajor::symbols::ContainerSymbol::AddMember , cmajor::symbols::ConversionTable::AddConversion , cmajor::symbols::FunctionSymbol::IsConversion , cmajor::symbols::Symbol::SetModule , cmajor::symbols::SymbolTable::SetFunctionIdFor


AddGlobalVariable Member Function

GlobalVariableSymbol * cmajor::symbols::SymbolTable::AddGlobalVariable(GlobalVariableNode& globalVariableNode)

Definition at line 999 of SymbolTable.cpp :
1000 {
1001     GlobalVariableSymbol* globalVariableSymbol = new GlobalVariableSymbol(globalVariableNode.GetSpan()globalVariableNode.ModuleId()globalVariableNode.Id()->Str()globalVariableNode.CompileUnit()->Id()
1002         globalVariableNode.CompileUnit()->FilePath());
1003     globalVariableSymbol->SetSpecifiers(globalVariableNode.GetSpecifiers());
1004     globalVariableSymbol->SetCompileUnit(currentCompileUnit);
1005     globalVariableSymbol->SetModule(module);
1006     MapNode(&globalVariableNodeglobalVariableSymbol);
1007     container->AddMember(globalVariableSymbol);
1008     return globalVariableSymbol;
1009 }


Calls: cmajor::symbols::ContainerSymbol::AddMember , cmajor::symbols::GlobalVariableSymbol::SetSpecifiers , cmajor::symbols::Symbol::SetCompileUnit , cmajor::symbols::Symbol::SetModule , cmajor::symbols::SymbolTable::MapNode

Called by: cmajor::symbols::SymbolCreatorVisitor::Visit


AddJsonClass Member Function

void cmajor::symbols::SymbolTable::AddJsonClass(const std::u32string& jsonClass)

Definition at line 1562 of SymbolTable.cpp :
1563 {
1570     jsonClasses.insert(jsonClass);
1571 }


Declaration at line 203 of SymbolTable.hpp

Called by: cmajor::symbols::SymbolTable::Import


AddLocalVariable Member Function

void cmajor::symbols::SymbolTable::AddLocalVariable(ConstructionStatementNode& constructionStatementNode)

Definition at line 948 of SymbolTable.cpp

Calls: cmajor::symbols::ContainerSymbol::AddMember , cmajor::symbols::FunctionSymbol::LocalVariables , cmajor::symbols::Symbol::Name , cmajor::symbols::Symbol::SetCompileUnit , cmajor::symbols::Symbol::SetModule , cmajor::symbols::SymbolTable::MapNode


AddLocalVariable Member Function

void cmajor::symbols::SymbolTable::AddLocalVariable(IdentifierNode& identifierNode)

Definition at line 969 of SymbolTable.cpp :
 970 {
 971     LocalVariableSymbol* localVariableSymbol = new LocalVariableSymbol(identifierNode.GetSpan()identifierNode.ModuleId()identifierNode.Str());
 972     localVariableSymbol->SetCompileUnit(currentCompileUnit);
 973     localVariableSymbol->SetModule(module);
 974     MapNode(&identifierNodelocalVariableSymbol);
 975     container->AddMember(localVariableSymbol);
 976 }


Calls: cmajor::symbols::ContainerSymbol::AddMember , cmajor::symbols::Symbol::SetCompileUnit , cmajor::symbols::Symbol::SetModule , cmajor::symbols::SymbolTable::MapNode


AddMemberVariable Member Function

void cmajor::symbols::SymbolTable::AddMemberVariable(MemberVariableNode& memberVariableNode)

Definition at line 842 of SymbolTable.cpp :
 843 {
 844     MemberVariableSymbol* memberVariableSymbol = new MemberVariableSymbol(memberVariableNode.GetSpan()memberVariableNode.ModuleId()memberVariableNode.Id()->Str());
 845     if ((memberVariableNode.GetSpecifiers() & Specifiers::static_) != Specifiers::none)
 846     {
 847         memberVariableSymbol->SetStatic();
 848     }
 849     memberVariableSymbol->SetCompileUnit(currentCompileUnit);
 850     MapNode(&memberVariableNodememberVariableSymbol);
 851     container->AddMember(memberVariableSymbol);
 852 }


Calls: cmajor::symbols::ContainerSymbol::AddMember , cmajor::symbols::Symbol::SetCompileUnit , cmajor::symbols::Symbol::SetStatic , cmajor::symbols::SymbolTable::MapNode

Called by: cmajor::symbols::SymbolCreatorVisitor::Visit


AddNamespaceImport Member Function

void cmajor::symbols::SymbolTable::AddNamespaceImport(NamespaceImportNode * namespaceImport)

Definition at line 240 of SymbolTable.hpp :
240 { namespaceImports.push_back(namespaceImport); }

Called by: cmajor::symbols::SymbolCreatorVisitor::Visit


AddParameter Member Function

void cmajor::symbols::SymbolTable::AddParameter(ParameterNode& parameterNode)

Definition at line 490 of SymbolTable.cpp

Calls: cmajor::symbols::ContainerSymbol::AddMember , cmajor::symbols::ParameterSymbol::SetArtificialName , cmajor::symbols::Symbol::SetCompileUnit , cmajor::symbols::SymbolTable::MapNode

Called by: cmajor::symbols::SymbolCreatorVisitor::Visit


AddPolymorphicClass Member Function

void cmajor::symbols::SymbolTable::AddPolymorphicClass(ClassTypeSymbol * polymorphicClass)

Definition at line 1532 of SymbolTable.cpp
Declaration at line 199 of SymbolTable.hpp

Calls: cmajor::symbols::ClassTypeSymbol::IsPolymorphic , cmajor::symbols::Symbol::GetSpan , cmajor::symbols::Symbol::SourceModuleId

Called by: cmajor::symbols::ClassTypeSymbol::Read , cmajor::symbols::SymbolTable::Import


AddTemplateParameter Member Function

void cmajor::symbols::SymbolTable::AddTemplateParameter(IdentifierNode& identifierNode)

Definition at line 570 of SymbolTable.cpp :
 571 {
 572     TemplateParameterSymbol* templateParameterSymbol = new TemplateParameterSymbol(identifierNode.GetSpan()identifierNode.ModuleId()identifierNode.Str());
 573     templateParameterSymbol->SetCompileUnit(currentCompileUnit);
 574     templateParameterSymbol->SetModule(module);
 575     SetTypeIdFor(templateParameterSymbol);
 576     MapNode(&identifierNodetemplateParameterSymbol);
 577     container->AddMember(templateParameterSymbol);
 578 }


Calls: cmajor::symbols::ContainerSymbol::AddMember , cmajor::symbols::Symbol::SetCompileUnit , cmajor::symbols::Symbol::SetModule , cmajor::symbols::SymbolTable::MapNode , cmajor::symbols::SymbolTable::SetTypeIdFor


AddTemplateParameter Member Function

void cmajor::symbols::SymbolTable::AddTemplateParameter(TemplateParameterNode& templateParameterNode)

Definition at line 556 of SymbolTable.cpp

Calls: cmajor::symbols::ContainerSymbol::AddMember , cmajor::symbols::Symbol::SetCompileUnit , cmajor::symbols::Symbol::SetModule , cmajor::symbols::SymbolTable::MapNode , cmajor::symbols::SymbolTable::SetTypeIdFor , cmajor::symbols::TemplateParameterSymbol::SetHasDefault


AddTypeOrConceptSymbolToTypeIdMap Member Function

void cmajor::symbols::SymbolTable::AddTypeOrConceptSymbolToTypeIdMap(Symbol * typeOrConceptSymbol)

Definition at line 1114 of SymbolTable.cpp
Declaration at line 177 of SymbolTable.hpp

Calls: cmajor::symbols::ConceptSymbol::TypeId , cmajor::symbols::Symbol::GetSymbolType , cmajor::symbols::Symbol::IsTypeSymbol , cmajor::symbols::TypeSymbol::TypeId

Called by: cmajor::symbols::ConceptSymbol::Read , cmajor::symbols::TypeSymbol::Read


AddTypeSymbolToGlobalScope Member Function

void cmajor::symbols::SymbolTable::AddTypeSymbolToGlobalScope(TypeSymbol * typeSymbol)

Definition at line 1037 of SymbolTable.cpp :
1038 {
1039     typeSymbol->SetModule(module);
1040     globalNs.AddMember(typeSymbol);
1041     SetTypeIdFor(typeSymbol);
1042     typeNameMap[typeSymbol->FullName()] = typeSymbol;
1043 }


Declaration at line 166 of SymbolTable.hpp

Calls: cmajor::symbols::ContainerSymbol::AddMember , cmajor::symbols::Symbol::FullName , cmajor::symbols::Symbol::SetModule , cmajor::symbols::SymbolTable::SetTypeIdFor


AddTypedef Member Function

TypedefSymbol * cmajor::symbols::SymbolTable::AddTypedef(TypedefNode& typedefNode)

Definition at line 978 of SymbolTable.cpp :
 979 {
 980     TypedefSymbol* typedefSymbol = new TypedefSymbol(typedefNode.GetSpan()typedefNode.ModuleId()typedefNode.Id()->Str());
 981     typedefSymbol->SetCompileUnit(currentCompileUnit);
 982     typedefSymbol->SetModule(module);
 983     MapNode(&typedefNodetypedefSymbol);
 984     container->AddMember(typedefSymbol);
 985     return typedefSymbol;
 986 }


Calls: cmajor::symbols::ContainerSymbol::AddMember , cmajor::symbols::Symbol::SetCompileUnit , cmajor::symbols::Symbol::SetModule , cmajor::symbols::SymbolTable::MapNode

Called by: cmajor::symbols::SymbolCreatorVisitor::Visit


AliasNodes Member Function

const std::vector<AliasNode *>& cmajor::symbols::SymbolTable::AliasNodes() const

Definition at line 237 of SymbolTable.hpp :
237 { return aliasNodes; }

Called by: cmajor::symbols::Source::AddSymbols


BeginAxiom Member Function

void cmajor::symbols::SymbolTable::BeginAxiom(AxiomNode& axiomNode)

Definition at line 910 of SymbolTable.cpp

Calls: cmajor::symbols::SymbolTable::BeginContainer , cmajor::symbols::SymbolTable::MapNode , cmajor::symbols::SymbolTable::NextAxiomNumber

Called by: cmajor::symbols::SymbolCreatorVisitor::Visit


BeginClass Member Function

void cmajor::symbols::SymbolTable::BeginClass(ClassNode& classNode)

Definition at line 514 of SymbolTable.cpp

Calls: cmajor::symbols::ClassTypeSymbol::SetGroupName , cmajor::symbols::Symbol::SetCompileUnit , cmajor::symbols::Symbol::SetModule , cmajor::symbols::SymbolTable::BeginContainer , cmajor::symbols::SymbolTable::MapNode , cmajor::symbols::SymbolTable::SetTypeIdFor

Called by: cmajor::symbols::SymbolCreatorVisitor::Visit


BeginClassDelegate Member Function

void cmajor::symbols::SymbolTable::BeginClassDelegate(ClassDelegateNode& classDelegateNode)

Definition at line 871 of SymbolTable.cpp :
 872 {
 873     ClassDelegateTypeSymbol* classDelegateTypeSymbol = new ClassDelegateTypeSymbol(classDelegateNode.GetSpan()classDelegateNode.ModuleId()classDelegateNode.Id()->Str());
 874     classDelegateTypeSymbol->SetCompileUnit(currentCompileUnit);
 875     classDelegateTypeSymbol->SetModule(module);
 876     MapNode(&classDelegateNodeclassDelegateTypeSymbol);
 877     SetTypeIdFor(classDelegateTypeSymbol);
 878     container->AddMember(classDelegateTypeSymbol);
 879     BeginContainer(classDelegateTypeSymbol);
 880     parameterIndex = 0;
 881 }


Calls: cmajor::symbols::ContainerSymbol::AddMember , cmajor::symbols::Symbol::SetCompileUnit , cmajor::symbols::Symbol::SetModule , cmajor::symbols::SymbolTable::BeginContainer , cmajor::symbols::SymbolTable::MapNode , cmajor::symbols::SymbolTable::SetTypeIdFor

Called by: cmajor::symbols::SymbolCreatorVisitor::Visit


BeginClassTemplateSpecialization Member Function

void cmajor::symbols::SymbolTable::BeginClassTemplateSpecialization(ClassNode& classInstanceNode, ClassTemplateSpecializationSymbol * classTemplateSpecialization)

Definition at line 537 of SymbolTable.cpp :
 538 {
 539     currentClassStack.push(currentClass);
 540     currentClass = classTemplateSpecialization;
 541     MapNode(&classInstanceNodeclassTemplateSpecialization);
 542     if (classTemplateSpecialization->TypeIdNotSet())
 543     {
 544         SetTypeIdFor(classTemplateSpecialization);
 545     }
 546     BeginContainer(classTemplateSpecialization);
 547 }


Calls: cmajor::symbols::SymbolTable::BeginContainer , cmajor::symbols::SymbolTable::MapNode , cmajor::symbols::SymbolTable::SetTypeIdFor , cmajor::symbols::TypeSymbol::TypeIdNotSet

Called by: cmajor::symbols::SymbolCreatorVisitor::Visit


BeginConcept Member Function

void cmajor::symbols::SymbolTable::BeginConcept(ConceptNode& conceptNode, bool hasSource)

Definition at line 888 of SymbolTable.cpp

Calls: cmajor::symbols::ConceptSymbol::SetGroupName , cmajor::symbols::ConceptSymbol::SetHasSource , cmajor::symbols::Symbol::SetCompileUnit , cmajor::symbols::Symbol::SetModule , cmajor::symbols::SymbolTable::BeginContainer , cmajor::symbols::SymbolTable::MapNode , cmajor::symbols::SymbolTable::SetTypeIdFor

Called by: cmajor::symbols::SymbolCreatorVisitor::Visit


BeginConstructor Member Function

void cmajor::symbols::SymbolTable::BeginConstructor(ConstructorNode& constructorNode, int32_t functionIndex)

Definition at line 632 of SymbolTable.cpp

Calls: cmajor::symbols::FunctionSymbol::AddMember , cmajor::symbols::FunctionSymbol::SetConstExpr , cmajor::symbols::FunctionSymbol::SetConstraint , cmajor::symbols::FunctionSymbol::SetHasSource , cmajor::symbols::FunctionSymbol::SetIndex , cmajor::symbols::Symbol::SetBound , cmajor::symbols::Symbol::SetCompileUnit , cmajor::symbols::Symbol::SetModule , cmajor::symbols::SymbolTable::BeginContainer , cmajor::symbols::SymbolTable::MapNode , cmajor::symbols::SymbolTable::ResetDeclarationBlockIndex , cmajor::symbols::SymbolTable::SetFunctionIdFor , cmajor::symbols::TypeSymbol::AddPointer , cmajor::symbols::VariableSymbol::SetType

Called by: cmajor::symbols::SymbolCreatorVisitor::Visit


BeginContainer Member Function

void cmajor::symbols::SymbolTable::BeginContainer(ContainerSymbol * container_)

Definition at line 351 of SymbolTable.cpp :
 352 {
 359     containerStack.push(container);
 360     container = container_;
 361 }


Declaration at line 119 of SymbolTable.hpp

Called by: cmajor::symbols::SymbolTable::BeginAxiom , cmajor::symbols::SymbolTable::BeginClass , cmajor::symbols::SymbolTable::BeginClassDelegate , cmajor::symbols::SymbolTable::BeginClassTemplateSpecialization , cmajor::symbols::SymbolTable::BeginConcept , cmajor::symbols::SymbolTable::BeginConstructor , cmajor::symbols::SymbolTable::BeginConversionFunction , cmajor::symbols::SymbolTable::BeginDeclarationBlock , cmajor::symbols::SymbolTable::BeginDelegate , cmajor::symbols::SymbolTable::BeginDestructor , cmajor::symbols::SymbolTable::BeginEnumType , cmajor::symbols::SymbolTable::BeginFunction , cmajor::symbols::SymbolTable::BeginInterface , cmajor::symbols::SymbolTable::BeginMemberFunction , cmajor::symbols::SymbolTable::BeginNamespace , cmajor::symbols::SymbolTable::BeginStaticConstructor


BeginConversionFunction Member Function

void cmajor::symbols::SymbolTable::BeginConversionFunction(ConversionFunctionNode& conversionFunctionNode, int32_t functionIndex)

Definition at line 792 of SymbolTable.cpp

Calls: cmajor::symbols::FunctionSymbol::AddMember , cmajor::symbols::FunctionSymbol::SetConstExpr , cmajor::symbols::FunctionSymbol::SetConstraint , cmajor::symbols::FunctionSymbol::SetGroupName , cmajor::symbols::FunctionSymbol::SetHasSource , cmajor::symbols::FunctionSymbol::SetIndex , cmajor::symbols::Symbol::SetBound , cmajor::symbols::Symbol::SetCompileUnit , cmajor::symbols::Symbol::SetModule , cmajor::symbols::SymbolTable::BeginContainer , cmajor::symbols::SymbolTable::MapNode , cmajor::symbols::SymbolTable::ResetDeclarationBlockIndex , cmajor::symbols::SymbolTable::SetFunctionIdFor , cmajor::symbols::TypeSymbol::AddConst , cmajor::symbols::TypeSymbol::AddPointer , cmajor::symbols::VariableSymbol::SetType

Called by: cmajor::symbols::SymbolCreatorVisitor::Visit


BeginDeclarationBlock Member Function

void cmajor::symbols::SymbolTable::BeginDeclarationBlock(Node& node)

Definition at line 933 of SymbolTable.cpp :
 934 {
 935     DeclarationBlock* declarationBlock = new DeclarationBlock(node.GetSpan()node.ModuleId()U"@locals" + ToUtf32(std::to_string(GetNextDeclarationBlockIndex())));
 936     declarationBlock->SetCompileUnit(currentCompileUnit);
 937     declarationBlock->SetModule(module);
 938     MapNode(&nodedeclarationBlock);
 939     container->AddMember(declarationBlock);
 940     BeginContainer(declarationBlock);
 941 }


Calls: cmajor::symbols::ContainerSymbol::AddMember , cmajor::symbols::Symbol::SetCompileUnit , cmajor::symbols::Symbol::SetModule , cmajor::symbols::SymbolTable::BeginContainer , cmajor::symbols::SymbolTable::GetNextDeclarationBlockIndex , cmajor::symbols::SymbolTable::MapNode

Called by: cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit


BeginDelegate Member Function

void cmajor::symbols::SymbolTable::BeginDelegate(DelegateNode& delegateNode)

Definition at line 854 of SymbolTable.cpp :
 855 {
 856     DelegateTypeSymbol* delegateTypeSymbol = new DelegateTypeSymbol(delegateNode.GetSpan()delegateNode.ModuleId()delegateNode.Id()->Str());
 857     delegateTypeSymbol->SetCompileUnit(currentCompileUnit);
 858     delegateTypeSymbol->SetModule(module);
 859     MapNode(&delegateNodedelegateTypeSymbol);
 860     SetTypeIdFor(delegateTypeSymbol);
 861     container->AddMember(delegateTypeSymbol);
 862     BeginContainer(delegateTypeSymbol);
 863     parameterIndex = 0;
 864 }


Calls: cmajor::symbols::ContainerSymbol::AddMember , cmajor::symbols::Symbol::SetCompileUnit , cmajor::symbols::Symbol::SetModule , cmajor::symbols::SymbolTable::BeginContainer , cmajor::symbols::SymbolTable::MapNode , cmajor::symbols::SymbolTable::SetTypeIdFor

Called by: cmajor::symbols::SymbolCreatorVisitor::Visit


BeginDestructor Member Function

void cmajor::symbols::SymbolTable::BeginDestructor(DestructorNode& destructorNode, int32_t functionIndex)

Definition at line 682 of SymbolTable.cpp

Calls: cmajor::symbols::FunctionSymbol::AddMember , cmajor::symbols::FunctionSymbol::SetConstraint , cmajor::symbols::FunctionSymbol::SetHasSource , cmajor::symbols::FunctionSymbol::SetIndex , cmajor::symbols::Symbol::SetBound , cmajor::symbols::Symbol::SetCompileUnit , cmajor::symbols::Symbol::SetModule , cmajor::symbols::SymbolTable::BeginContainer , cmajor::symbols::SymbolTable::MapNode , cmajor::symbols::SymbolTable::ResetDeclarationBlockIndex , cmajor::symbols::SymbolTable::SetFunctionIdFor , cmajor::symbols::TypeSymbol::AddPointer , cmajor::symbols::VariableSymbol::SetType

Called by: cmajor::symbols::SymbolCreatorVisitor::Visit


BeginEnumType Member Function

void cmajor::symbols::SymbolTable::BeginEnumType(EnumTypeNode& enumTypeNode)

Definition at line 1011 of SymbolTable.cpp :
1012 {
1013     EnumTypeSymbol* enumTypeSymbol = new EnumTypeSymbol(enumTypeNode.GetSpan()enumTypeNode.ModuleId()enumTypeNode.Id()->Str());
1014     enumTypeSymbol->SetCompileUnit(currentCompileUnit);
1015     enumTypeSymbol->SetModule(module);
1016     MapNode(&enumTypeNodeenumTypeSymbol);
1017     SetTypeIdFor(enumTypeSymbol);
1018     container->AddMember(enumTypeSymbol);
1019     BeginContainer(enumTypeSymbol);
1020 }


Calls: cmajor::symbols::ContainerSymbol::AddMember , cmajor::symbols::Symbol::SetCompileUnit , cmajor::symbols::Symbol::SetModule , cmajor::symbols::SymbolTable::BeginContainer , cmajor::symbols::SymbolTable::MapNode , cmajor::symbols::SymbolTable::SetTypeIdFor

Called by: cmajor::symbols::SymbolCreatorVisitor::Visit


BeginFunction Member Function

void cmajor::symbols::SymbolTable::BeginFunction(FunctionNode& functionNode, int32_t functionIndex)

Definition at line 433 of SymbolTable.cpp

Calls: cmajor::symbols::FunctionSymbol::GroupName , cmajor::symbols::FunctionSymbol::SetCDecl , cmajor::symbols::FunctionSymbol::SetConstExpr , cmajor::symbols::FunctionSymbol::SetConstraint , cmajor::symbols::FunctionSymbol::SetGroupName , cmajor::symbols::FunctionSymbol::SetHasSource , cmajor::symbols::FunctionSymbol::SetIndex , cmajor::symbols::FunctionSymbol::SetProgramMain , cmajor::symbols::Symbol::GetSpan , cmajor::symbols::Symbol::SetCompileUnit , cmajor::symbols::Symbol::SetModule , cmajor::symbols::Symbol::SourceModuleId , cmajor::symbols::SymbolTable::BeginContainer , cmajor::symbols::SymbolTable::MapNode , cmajor::symbols::SymbolTable::ResetDeclarationBlockIndex , cmajor::symbols::SymbolTable::SetFunctionIdFor

Called by: cmajor::symbols::SymbolCreatorVisitor::Visit


BeginInterface Member Function

void cmajor::symbols::SymbolTable::BeginInterface(InterfaceNode& interfaceNode)

Definition at line 580 of SymbolTable.cpp

Calls: cmajor::symbols::ContainerSymbol::AddMember , cmajor::symbols::Symbol::SetCompileUnit , cmajor::symbols::Symbol::SetModule , cmajor::symbols::SymbolTable::BeginContainer , cmajor::symbols::SymbolTable::MapNode , cmajor::symbols::SymbolTable::SetTypeIdFor

Called by: cmajor::symbols::SymbolCreatorVisitor::Visit


BeginMemberFunction Member Function

void cmajor::symbols::SymbolTable::BeginMemberFunction(MemberFunctionNode& memberFunctionNode, int32_t functionIndex)

Definition at line 727 of SymbolTable.cpp

Calls: cmajor::symbols::FunctionSymbol::AddMember , cmajor::symbols::FunctionSymbol::SetConstExpr , cmajor::symbols::FunctionSymbol::SetConstraint , cmajor::symbols::FunctionSymbol::SetGroupName , cmajor::symbols::FunctionSymbol::SetHasSource , cmajor::symbols::FunctionSymbol::SetIndex , cmajor::symbols::Symbol::SetBound , cmajor::symbols::Symbol::SetCompileUnit , cmajor::symbols::Symbol::SetModule , cmajor::symbols::SymbolTable::BeginContainer , cmajor::symbols::SymbolTable::MapNode , cmajor::symbols::SymbolTable::ResetDeclarationBlockIndex , cmajor::symbols::SymbolTable::SetFunctionIdFor , cmajor::symbols::TypeSymbol::AddConst , cmajor::symbols::TypeSymbol::AddPointer , cmajor::symbols::VariableSymbol::SetType

Called by: cmajor::symbols::SymbolCreatorVisitor::Visit


BeginNamespace Member Function

NamespaceSymbol * cmajor::symbols::SymbolTable::BeginNamespace(NamespaceNode& namespaceNode)

Definition at line 384 of SymbolTable.cpp :
 385 {
 386     std::u32string nsName = namespaceNode.Id()->Str();
 387     NamespaceSymbol* ns = BeginNamespace(nsNamenamespaceNode.GetSpan()namespaceNode.ModuleId());
 388     MapNode(&namespaceNodecontainer);
 389     return ns;
 390 }


Calls: cmajor::symbols::SymbolTable::BeginNamespace , cmajor::symbols::SymbolTable::MapNode

Called by: cmajor::symbols::SymbolCreatorVisitor::Visit


BeginNamespace Member Function

NamespaceSymbol * cmajor::symbols::SymbolTable::BeginNamespace(const std::u32string& namespaceName, const Span& span, const boost::uuids::uuid& sourceModuleId)

Definition at line 392 of SymbolTable.cpp
Declaration at line 124 of SymbolTable.hpp

Calls: cmajor::symbols::ContainerScope::CreateNamespace , cmajor::symbols::ContainerScope::Lookup , cmajor::symbols::ContainerSymbol::GetContainerScope , cmajor::symbols::Symbol::GetSpan , cmajor::symbols::Symbol::GetSymbolType , cmajor::symbols::Symbol::Name , cmajor::symbols::Symbol::SetSpan , cmajor::symbols::Symbol::SourceModuleId , cmajor::symbols::SymbolTable::BeginContainer , soulng::lexer::Span::Valid

Called by: cmajor::symbols::NamespaceSymbol::Import , cmajor::symbols::SymbolTable::BeginNamespace


BeginStaticConstructor Member Function

void cmajor::symbols::SymbolTable::BeginStaticConstructor(StaticConstructorNode& staticConstructorNode, int32_t functionIndex)

Definition at line 600 of SymbolTable.cpp

Calls: cmajor::symbols::FunctionSymbol::SetConstraint , cmajor::symbols::FunctionSymbol::SetHasSource , cmajor::symbols::FunctionSymbol::SetIndex , cmajor::symbols::Symbol::SetCompileUnit , cmajor::symbols::Symbol::SetModule , cmajor::symbols::SymbolTable::BeginContainer , cmajor::symbols::SymbolTable::MapNode , cmajor::symbols::SymbolTable::ResetDeclarationBlockIndex , cmajor::symbols::SymbolTable::SetFunctionIdFor

Called by: cmajor::symbols::SymbolCreatorVisitor::Visit


Check Member Function

void cmajor::symbols::SymbolTable::Check()

Definition at line 1762 of SymbolTable.cpp
Declaration at line 227 of SymbolTable.hpp

Calls: cmajor::symbols::ContainerSymbol::Check , cmajor::symbols::ConversionTable::Check , cmajor::symbols::Symbol::GetSpan , cmajor::symbols::Symbol::SourceModuleId


ClassesHavingStaticConstructor Member Function

const std::unordered_set<ClassTypeSymbol *>& cmajor::symbols::SymbolTable::ClassesHavingStaticConstructor() const

Definition at line 202 of SymbolTable.hpp :
202 { return classesHavingStaticConstructor; }

Called by: cmajor::symbols::SymbolTable::Import


Clear Member Function

void cmajor::symbols::SymbolTable::Clear()

Definition at line 342 of SymbolTable.cpp :
 343 {
 344     globalNs.Clear();
 345     typeIdMap.clear();
 346     functionIdMap.clear();
 347     typeNameMap.clear();
 348     profiledFunctionNameMap.clear();
 349 }


Declaration at line 113 of SymbolTable.hpp

Calls: cmajor::symbols::ContainerSymbol::Clear


Container Member Function

const ContainerSymbol * cmajor::symbols::SymbolTable::Container() const

Definition at line 116 of SymbolTable.hpp :
116 { return container; }


Container Member Function

ContainerSymbol * cmajor::symbols::SymbolTable::Container()

Definition at line 117 of SymbolTable.hpp :
117 { return container; }

Called by: cmajor::symbols::NamespaceSymbol::Import , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit


Copy Member Function

void cmajor::symbols::SymbolTable::Copy(const SymbolTable & that)

Definition at line 1592 of SymbolTable.cpp :
1593 {
1594     for (const auto& p : that.typeIdMap)
1595     {
1596         typeIdMap[p.first] = p.second;
1597     }
1598     for (const auto& p : that.functionIdMap)
1599     {
1600         functionIdMap[p.first] = p.second;
1601     }
1602 }


Declaration at line 206 of SymbolTable.hpp


CopyClassTemplateSpecialization Member Function

ClassTemplateSpecializationSymbol * cmajor::symbols::SymbolTable::CopyClassTemplateSpecialization(ClassTemplateSpecializationSymbol * source)

Definition at line 1401 of SymbolTable.cpp
Declaration at line 188 of SymbolTable.hpp

Calls: cmajor::symbols::ClassTemplateSpecializationSymbol::GetClassTemplate , cmajor::symbols::ClassTemplateSpecializationSymbol::TemplateArgumentTypes , cmajor::symbols::ClassTypeSymbol::GroupName , cmajor::symbols::ClassTypeSymbol::SetGroupName , cmajor::symbols::Symbol::GetSpan , cmajor::symbols::Symbol::SetModule , cmajor::symbols::Symbol::SetParent , cmajor::symbols::Symbol::SourceModuleId , cmajor::symbols::TypeSymbol::SetTypeId , cmajor::symbols::TypeSymbol::TypeId


CurrentClass Member Function

ClassTypeSymbol * cmajor::symbols::SymbolTable::CurrentClass()

Definition at line 207 of SymbolTable.hpp :
207 { return currentClass; }

Called by: cmajor::symbols::SymbolCreatorVisitor::Visit


CurrentInterface Member Function

InterfaceTypeSymbol * cmajor::symbols::SymbolTable::CurrentInterface()

Definition at line 208 of SymbolTable.hpp :
208 { return currentInterface; }

Called by: cmajor::symbols::SymbolCreatorVisitor::Visit


CursorContainer Member Function

ContainerSymbol * cmajor::symbols::SymbolTable::CursorContainer() const

Definition at line 231 of SymbolTable.hpp :
231 { return cursorContainer; }

Called by: cmajor::symbols::Source::AddSymbols


EmplaceConceptRequest Member Function

void cmajor::symbols::SymbolTable::EmplaceConceptRequest(SymbolReader & reader, Symbol * forSymbol, const boost::uuids::uuid& typeId)

Definition at line 1172 of SymbolTable.cpp :
1173 {
1174     EmplaceTypeOrConceptRequest(readerforSymboltypeIdconceptRequestIndex);
1175 }


Declaration at line 180 of SymbolTable.hpp

Calls: cmajor::symbols::SymbolTable::EmplaceTypeOrConceptRequest

Called by: cmajor::symbols::ConceptSymbol::Read


EmplaceFunctionRequest Member Function

void cmajor::symbols::SymbolTable::EmplaceFunctionRequest(SymbolReader & reader, Symbol * forSymbol, const ::boost::uuids::uuid& functionId, int index)

Definition at line 1212 of SymbolTable.cpp

Calls: cmajor::symbols::Symbol::EmplaceFunction , cmajor::symbols::SymbolReader::AddFunctionRequest

Called by: cmajor::symbols::BasicTypeSymbol::Read , cmajor::symbols::ClassTypeSymbol::Read , cmajor::symbols::EnumTypeCopyAssignment::Read , cmajor::symbols::EnumTypeCopyConstructor::Read , cmajor::symbols::EnumTypeDefaultConstructor::Read , cmajor::symbols::EnumTypeEqualityOp::Read , cmajor::symbols::EnumTypeMoveAssignment::Read , cmajor::symbols::EnumTypeMoveConstructor::Read , cmajor::symbols::EnumTypeReturn::Read , cmajor::symbols::FunctionSymbol::Read


EmplaceTypeOrConceptRequest Member Function

void cmajor::symbols::SymbolTable::EmplaceTypeOrConceptRequest(SymbolReader & reader, Symbol * forSymbol, const boost::uuids::uuid& typeId, int index)

Definition at line 1177 of SymbolTable.cpp
Declaration at line 289 of SymbolTable.hpp

Calls: cmajor::symbols::Symbol::EmplaceConcept , cmajor::symbols::Symbol::EmplaceType , cmajor::symbols::Symbol::GetSpan , cmajor::symbols::Symbol::GetSymbolType , cmajor::symbols::Symbol::IsTypeSymbol , cmajor::symbols::Symbol::SourceModuleId , cmajor::symbols::SymbolReader::AddTypeOrConceptRequest

Called by: cmajor::symbols::SymbolTable::EmplaceConceptRequest , cmajor::symbols::SymbolTable::EmplaceTypeRequest


EmplaceTypeRequest Member Function

void cmajor::symbols::SymbolTable::EmplaceTypeRequest(SymbolReader & reader, Symbol * forSymbol, const boost::uuids::uuid& typeId, int index)

Definition at line 1165 of SymbolTable.cpp :
1166 {
1167     EmplaceTypeOrConceptRequest(readerforSymboltypeIdindex);
1168 }


Declaration at line 179 of SymbolTable.hpp

Calls: cmajor::symbols::SymbolTable::EmplaceTypeOrConceptRequest

Called by: cmajor::symbols::ArrayBeginFunction::Read , cmajor::symbols::ArrayCBeginFunction::Read , cmajor::symbols::ArrayCEndFunction::Read , cmajor::symbols::ArrayEndFunction::Read , cmajor::symbols::ArrayLengthFunction::Read , cmajor::symbols::ArrayTypeSymbol::Read , cmajor::symbols::BasicTypeConversion::Read , cmajor::symbols::BoundTemplateParameterSymbol::Read , cmajor::symbols::ClassDelegateTypeDefaultConstructor::Read , cmajor::symbols::ClassDelegateTypeSymbol::Read , cmajor::symbols::ClassTemplateSpecializationSymbol::Read , cmajor::symbols::ClassTypeSymbol::Read , cmajor::symbols::ConceptSymbol::Read , cmajor::symbols::ConstantSymbol::Read , cmajor::symbols::DelegateTypeDefaultConstructor::Read , cmajor::symbols::DelegateTypeSymbol::Read , cmajor::symbols::DerivedTypeSymbol::Read , cmajor::symbols::EnumTypeSymbol::Read , cmajor::symbols::EnumTypeToUnderlyingTypeConversion::Read , cmajor::symbols::FunctionSymbol::Read , cmajor::symbols::TemplateParameterSymbol::Read , cmajor::symbols::TypedefSymbol::Read , cmajor::symbols::UnderlyingTypeToEnumTypeConversion::Read , cmajor::symbols::VariableSymbol::Read


EndAxiom Member Function

void cmajor::symbols::SymbolTable::EndAxiom()

Definition at line 926 of SymbolTable.cpp :
 927 {
 928     AxiomSymbol* axiomSymbol = static_cast<AxiomSymbol*>(container);
 929     EndContainer();
 930     container->AddMember(axiomSymbol);
 931 }


Declaration at line 155 of SymbolTable.hpp

Calls: cmajor::symbols::ContainerSymbol::AddMember , cmajor::symbols::SymbolTable::EndContainer

Called by: cmajor::symbols::SymbolCreatorVisitor::Visit


EndClass Member Function

void cmajor::symbols::SymbolTable::EndClass()

Definition at line 527 of SymbolTable.cpp :
 528 {
 529     ClassTypeSymbol* classTypeSymbol = currentClass;
 530     currentClass = currentClassStack.top();
 531     currentClassStack.pop();
 532     EndContainer();
 533     classTypeSymbol->ComputeMinArity();
 534     container->AddMember(classTypeSymbol);
 535 }


Declaration at line 130 of SymbolTable.hpp

Calls: cmajor::symbols::ClassTypeSymbol::ComputeMinArity , cmajor::symbols::ContainerSymbol::AddMember , cmajor::symbols::SymbolTable::EndContainer

Called by: cmajor::symbols::SymbolCreatorVisitor::Visit


EndClassDelegate Member Function

void cmajor::symbols::SymbolTable::EndClassDelegate()

Definition at line 883 of SymbolTable.cpp :
 884 {
 885     EndContainer();
 886 }


Declaration at line 151 of SymbolTable.hpp

Calls: cmajor::symbols::SymbolTable::EndContainer

Called by: cmajor::symbols::SymbolCreatorVisitor::Visit


EndClassTemplateSpecialization Member Function

void cmajor::symbols::SymbolTable::EndClassTemplateSpecialization()

Definition at line 549 of SymbolTable.cpp :
 550 {
 551     EndContainer();
 552     currentClass = currentClassStack.top();
 553     currentClassStack.pop();
 554 }


Declaration at line 132 of SymbolTable.hpp

Calls: cmajor::symbols::SymbolTable::EndContainer

Called by: cmajor::symbols::SymbolCreatorVisitor::Visit


EndConcept Member Function

void cmajor::symbols::SymbolTable::EndConcept()

Definition at line 903 of SymbolTable.cpp :
 904 {
 905     ConceptSymbol* conceptSymbol = static_cast<ConceptSymbol*>(container);
 906     EndContainer();
 907     container->AddMember(conceptSymbol);
 908 }


Declaration at line 153 of SymbolTable.hpp

Calls: cmajor::symbols::ContainerSymbol::AddMember , cmajor::symbols::SymbolTable::EndContainer

Called by: cmajor::symbols::SymbolCreatorVisitor::Visit


EndConstructor Member Function

void cmajor::symbols::SymbolTable::EndConstructor(bool addMember)

Definition at line 668 of SymbolTable.cpp
Declaration at line 140 of SymbolTable.hpp

Calls: cmajor::symbols::ContainerSymbol::AddMember , cmajor::symbols::SymbolTable::EndContainer

Called by: cmajor::symbols::SymbolCreatorVisitor::Visit


EndContainer Member Function

void cmajor::symbols::SymbolTable::EndContainer()

Definition at line 363 of SymbolTable.cpp :
 364 {
 365     container = containerStack.top();
 366     containerStack.pop();
 367 }


Declaration at line 120 of SymbolTable.hpp

Called by: cmajor::symbols::SymbolTable::EndAxiom , cmajor::symbols::SymbolTable::EndClass , cmajor::symbols::SymbolTable::EndClassDelegate , cmajor::symbols::SymbolTable::EndClassTemplateSpecialization , cmajor::symbols::SymbolTable::EndConcept , cmajor::symbols::SymbolTable::EndConstructor , cmajor::symbols::SymbolTable::EndConversionFunction , cmajor::symbols::SymbolTable::EndDeclarationBlock , cmajor::symbols::SymbolTable::EndDelegate , cmajor::symbols::SymbolTable::EndDestructor , cmajor::symbols::SymbolTable::EndEnumType , cmajor::symbols::SymbolTable::EndFunction , cmajor::symbols::SymbolTable::EndInterface , cmajor::symbols::SymbolTable::EndMemberFunction , cmajor::symbols::SymbolTable::EndNamespace , cmajor::symbols::SymbolTable::EndStaticConstructor


EndConversionFunction Member Function

void cmajor::symbols::SymbolTable::EndConversionFunction(bool addMember)

Definition at line 828 of SymbolTable.cpp
Declaration at line 146 of SymbolTable.hpp

Calls: cmajor::symbols::ContainerSymbol::AddMember , cmajor::symbols::SymbolTable::EndContainer

Called by: cmajor::symbols::SymbolCreatorVisitor::Visit


EndDeclarationBlock Member Function

void cmajor::symbols::SymbolTable::EndDeclarationBlock()

Definition at line 943 of SymbolTable.cpp :
 944 {
 945     EndContainer();
 946 }


Declaration at line 157 of SymbolTable.hpp

Calls: cmajor::symbols::SymbolTable::EndContainer

Called by: cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit


EndDelegate Member Function

void cmajor::symbols::SymbolTable::EndDelegate()

Definition at line 866 of SymbolTable.cpp :
 867 {
 868     EndContainer();
 869 }


Declaration at line 149 of SymbolTable.hpp

Calls: cmajor::symbols::SymbolTable::EndContainer

Called by: cmajor::symbols::SymbolCreatorVisitor::Visit


EndDestructor Member Function

void cmajor::symbols::SymbolTable::EndDestructor(bool addMember)

Definition at line 713 of SymbolTable.cpp
Declaration at line 142 of SymbolTable.hpp

Calls: cmajor::symbols::ContainerSymbol::AddMember , cmajor::symbols::SymbolTable::EndContainer

Called by: cmajor::symbols::SymbolCreatorVisitor::Visit


EndEnumType Member Function

void cmajor::symbols::SymbolTable::EndEnumType()

Definition at line 1022 of SymbolTable.cpp :
1023 {
1024     EndContainer();
1025 }


Declaration at line 164 of SymbolTable.hpp

Calls: cmajor::symbols::SymbolTable::EndContainer

Called by: cmajor::symbols::SymbolCreatorVisitor::Visit


EndFunction Member Function

void cmajor::symbols::SymbolTable::EndFunction(bool addMember)

Definition at line 476 of SymbolTable.cpp
Declaration at line 127 of SymbolTable.hpp

Calls: cmajor::symbols::ContainerSymbol::AddMember , cmajor::symbols::SymbolTable::EndContainer

Called by: cmajor::symbols::SymbolCreatorVisitor::Visit


EndInterface Member Function

void cmajor::symbols::SymbolTable::EndInterface()

Definition at line 593 of SymbolTable.cpp :
 594 {
 595     currentInterface = currentInterfaceStack.top();
 596     currentInterfaceStack.pop();
 597     EndContainer();
 598 }


Declaration at line 136 of SymbolTable.hpp

Calls: cmajor::symbols::SymbolTable::EndContainer

Called by: cmajor::symbols::SymbolCreatorVisitor::Visit


EndMemberFunction Member Function

void cmajor::symbols::SymbolTable::EndMemberFunction(bool addMember)

Definition at line 778 of SymbolTable.cpp
Declaration at line 144 of SymbolTable.hpp

Calls: cmajor::symbols::ContainerSymbol::AddMember , cmajor::symbols::SymbolTable::EndContainer

Called by: cmajor::symbols::SymbolCreatorVisitor::Visit


EndNamespace Member Function

void cmajor::symbols::SymbolTable::EndNamespace()

Definition at line 428 of SymbolTable.cpp :
 429 {
 430     EndContainer();
 431 }


Declaration at line 125 of SymbolTable.hpp

Calls: cmajor::symbols::SymbolTable::EndContainer

Called by: cmajor::symbols::NamespaceSymbol::Import , cmajor::symbols::SymbolCreatorVisitor::Visit


EndStaticConstructor Member Function

void cmajor::symbols::SymbolTable::EndStaticConstructor(bool addMember)

Definition at line 618 of SymbolTable.cpp
Declaration at line 138 of SymbolTable.hpp

Calls: cmajor::symbols::ContainerSymbol::AddMember , cmajor::symbols::SymbolTable::EndContainer

Called by: cmajor::symbols::SymbolCreatorVisitor::Visit


FinishRead Member Function

void cmajor::symbols::SymbolTable::FinishRead(const std::vector<ArrayTypeSymbol *>& arrayTypes, const std::vector<DerivedTypeSymbol *>& derivedTypes, const std::vector<ClassTemplateSpecializationSymbol *>& classTemplateSpecializations, const std::vector<TypeOrConceptRequest >& typeAndConceptRequests, const std::vector<FunctionRequest >& functionRequests, std::vector<FunctionSymbol *>& conversions)

Definition at line 306 of SymbolTable.cpp
Declaration at line 110 of SymbolTable.hpp

Calls: cmajor::symbols::ArrayTypeSymbol::ElementType , cmajor::symbols::ArrayTypeSymbol::Size , cmajor::symbols::DerivedTypeSymbol::BaseType , cmajor::symbols::DerivedTypeSymbol::DerivationRec , cmajor::symbols::SymbolTable::AddClassTemplateSpecializationsToClassTemplateSpecializationMap , cmajor::symbols::SymbolTable::AddConversion , cmajor::symbols::SymbolTable::ProcessTypeConceptAndFunctionRequests , cmajor::symbols::TypeSymbol::TypeId


GetConversion Member Function

FunctionSymbol * cmajor::symbols::SymbolTable::GetConversion(TypeSymbol * sourceType, TypeSymbol * targetType, const Span& span, const boost::uuids::uuid& moduleId) const

Definition at line 1527 of SymbolTable.cpp :
1528 {
1529     return conversionTable.GetConversion(sourceTypetargetTypespanmoduleId);
1530 }


Declaration at line 196 of SymbolTable.hpp

Calls: cmajor::symbols::ConversionTable::GetConversion


GetConversionTable Member Function

ConversionTable & cmajor::symbols::SymbolTable::GetConversionTable()

Definition at line 197 of SymbolTable.hpp :
197 { return conversionTable; }


GetConversionTable Member Function

const ConversionTable & cmajor::symbols::SymbolTable::GetConversionTable() const

Definition at line 198 of SymbolTable.hpp :
198 { return conversionTable; }


GetCreatedFunctionSymbol Member Function

FunctionSymbol * cmajor::symbols::SymbolTable::GetCreatedFunctionSymbol()

Definition at line 228 of SymbolTable.hpp :
228 { return createdFunctionSymbol; }


GetCurrentClassTemplateSpecialization Member Function

ClassTemplateSpecializationSymbol * cmajor::symbols::SymbolTable::GetCurrentClassTemplateSpecialization(ClassTemplateSpecializationSymbol * source)

Definition at line 1430 of SymbolTable.cpp :
1431 {
1432     auto it = specializationCopyMap.find(source);
1433     if (it != specializationCopyMap.cend())
1434     {
1435         return it->second;
1436     }
1437     return source;
1438 }


Declaration at line 189 of SymbolTable.hpp


GetDefinitionLocation Member Function

SymbolLocation * cmajor::symbols::SymbolTable::GetDefinitionLocation(const SymbolLocation & identifierLocation)

Definition at line 1689 of SymbolTable.cpp
Declaration at line 220 of SymbolTable.hpp


GetDerivationId Member Function

const boost::uuids::uuid& cmajor::symbols::SymbolTable::GetDerivationId(Derivation derivation) const

Definition at line 1716 of SymbolTable.cpp
Declaration at line 222 of SymbolTable.hpp

Calls: cmajor::symbols::Module::IsCore

Called by: cmajor::symbols::DerivedTypeSymbol::ComputeTypeId


GetFunctionById Member Function

FunctionSymbol * cmajor::symbols::SymbolTable::GetFunctionById(const boost::uuids::uuid& functionId) const

Definition at line 1152 of SymbolTable.cpp
Declaration at line 176 of SymbolTable.hpp


GetInvoke Member Function

FunctionSymbol * cmajor::symbols::SymbolTable::GetInvoke(IdentifierNode* invokeId) const

Definition at line 1646 of SymbolTable.cpp


GetMappedNs Member Function

NamespaceSymbol * cmajor::symbols::SymbolTable::GetMappedNs(NamespaceSymbol * fromNs) const

Definition at line 374 of SymbolTable.cpp :
 375 {
 376     auto it = nsMap.find(fromNs);
 377     if (it != nsMap.cend())
 378     {
 379         return it->second;
 380     }
 381     return nullptr;
 382 }


Declaration at line 122 of SymbolTable.hpp

Called by: cmajor::symbols::ContainerScope::ParentScope , cmajor::symbols::Symbol::ClassInterfaceEnumDelegateOrNsNoThrow , cmajor::symbols::Symbol::ClassInterfaceEnumDelegateOrNsNoThrow , cmajor::symbols::Symbol::ClassInterfaceOrNsNoThrow , cmajor::symbols::Symbol::ClassInterfaceOrNsNoThrow , cmajor::symbols::Symbol::ClassOrNsNoThrow , cmajor::symbols::Symbol::ClassOrNsNoThrow , cmajor::symbols::Symbol::Ns , cmajor::symbols::Symbol::Ns


GetMappedSymbol Member Function

Symbol * cmajor::symbols::SymbolTable::GetMappedSymbol(Node* node) const

Definition at line 1664 of SymbolTable.cpp


GetModule Member Function

Module * cmajor::symbols::SymbolTable::GetModule()

Definition at line 213 of SymbolTable.hpp :
213 { return module; }

Called by: cmajor::symbols::SymbolCreatorVisitor::Visit


GetNextDeclarationBlockIndex Member Function

int cmajor::symbols::SymbolTable::GetNextDeclarationBlockIndex()

Definition at line 287 of SymbolTable.hpp :
287 { return declarationBlockIndex++; }

Called by: cmajor::symbols::SymbolTable::BeginDeclarationBlock


GetNode Member Function

Node* cmajor::symbols::SymbolTable::GetNode(Symbol * symbol) const

Definition at line 1101 of SymbolTable.cpp
Declaration at line 172 of SymbolTable.hpp

Calls: cmajor::symbols::SymbolTable::GetNodeNoThrow

Called by: cmajor::symbols::ClassTypeSymbol::Write , cmajor::symbols::ConceptSymbol::Write , cmajor::symbols::FunctionSymbol::Write


GetNodeNoThrow Member Function

Node* cmajor::symbols::SymbolTable::GetNodeNoThrow(Symbol * symbol) const

Definition at line 1088 of SymbolTable.cpp
Declaration at line 171 of SymbolTable.hpp

Called by: cmajor::symbols::SymbolTable::GetNode


GetPositionId Member Function

const boost::uuids::uuid& cmajor::symbols::SymbolTable::GetPositionId(int index) const

Definition at line 1730 of SymbolTable.cpp
Declaration at line 223 of SymbolTable.hpp

Calls: cmajor::symbols::Module::Name

Called by: cmajor::symbols::DerivedTypeSymbol::ComputeTypeId


GetProfiledFunctionName Member Function

std::u32string cmajor::symbols::SymbolTable::GetProfiledFunctionName(const boost::uuids::uuid& functionId) const

Definition at line 1609 of SymbolTable.cpp :
1610 {
1611     auto it = profiledFunctionNameMap.find(functionId);
1612     if (it != profiledFunctionNameMap.cend())
1613     {
1614         return it->second;
1615     }
1616     return std::u32string();
1617 }


Declaration at line 212 of SymbolTable.hpp


GetSymbol Member Function

Symbol * cmajor::symbols::SymbolTable::GetSymbol(Node* node) const

Definition at line 1075 of SymbolTable.cpp

Calls: cmajor::symbols::SymbolTable::GetSymbolNoThrow


GetSymbolNoThrow Member Function

Symbol * cmajor::symbols::SymbolTable::GetSymbolNoThrow(Node* node) const

Definition at line 1062 of SymbolTable.cpp

Called by: cmajor::symbols::SymbolTable::GetSymbol


GetTypeByName Member Function

TypeSymbol * cmajor::symbols::SymbolTable::GetTypeByName(const std::u32string& typeName) const

Definition at line 1294 of SymbolTable.cpp
Declaration at line 184 of SymbolTable.hpp

Calls: cmajor::symbols::SymbolTable::GetTypeByNameNoThrow

Called by: cmajor::symbols::ArrayLengthIntrinsicFunction::ReturnType , cmajor::symbols::ArrayTypeCopyAssignment::CreateTemporariesTo , cmajor::symbols::ArrayTypeCopyConstructor::CreateTemporariesTo , cmajor::symbols::ArrayTypeDefaultConstructor::CreateTemporariesTo , cmajor::symbols::ArrayTypeMoveAssignment::CreateTemporariesTo , cmajor::symbols::ArrayTypeMoveConstructor::CreateTemporariesTo , cmajor::symbols::BoolValue::GetType , cmajor::symbols::ByteValue::GetType , cmajor::symbols::CharValue::GetType , cmajor::symbols::ClassTypeSymbol::CreateLayouts , cmajor::symbols::DoubleValue::GetType , cmajor::symbols::EnumTypeSymbol::CreateDIType , cmajor::symbols::FloatValue::GetType , cmajor::symbols::IntValue::GetType , cmajor::symbols::LongValue::GetType , cmajor::symbols::PointerCountIntrinsicFunction::ReturnType , cmajor::symbols::SByteValue::GetType , cmajor::symbols::ShortValue::GetType , cmajor::symbols::StringValue::GetType , cmajor::symbols::TypePredicate::ReturnType , cmajor::symbols::UCharValue::GetType , cmajor::symbols::UIntValue::GetType , cmajor::symbols::ULongValue::GetType , cmajor::symbols::UShortValue::GetType , cmajor::symbols::UStringValue::GetType , cmajor::symbols::UuidValue::GetType , cmajor::symbols::WCharValue::GetType , cmajor::symbols::WStringValue::GetType


GetTypeByNameNoThrow Member Function

TypeSymbol * cmajor::symbols::SymbolTable::GetTypeByNameNoThrow(const std::u32string& typeName) const

Definition at line 1281 of SymbolTable.cpp
Declaration at line 183 of SymbolTable.hpp

Called by: cmajor::symbols::SymbolTable::GetTypeByName


GlobalNs Member Function

NamespaceSymbol & cmajor::symbols::SymbolTable::GlobalNs()

Definition at line 115 of SymbolTable.hpp :
115 { return globalNs; }

Called by: cmajor::symbols::Source::GetScopes , cmajor::symbols::Symbol::GetArrowScope , cmajor::symbols::Symbol::GetArrowScope


GlobalNs Member Function

const NamespaceSymbol & cmajor::symbols::SymbolTable::GlobalNs() const

Definition at line 114 of SymbolTable.hpp :
114 { return globalNs; }


Import Member Function

void cmajor::symbols::SymbolTable::Import(const SymbolTable & symbolTable)

Definition at line 243 of SymbolTable.cpp
Declaration at line 109 of SymbolTable.hpp

Calls: cmajor::symbols::ConceptSymbol::TypeId , cmajor::symbols::ConversionTable::Add , cmajor::symbols::FunctionSymbol::FunctionId , cmajor::symbols::NamespaceSymbol::Import , cmajor::symbols::Symbol::FullName , cmajor::symbols::Symbol::GetSymbolType , cmajor::symbols::Symbol::IsTypeSymbol , cmajor::symbols::SymbolTable::AddClassHavingStaticConstructor , cmajor::symbols::SymbolTable::AddJsonClass , cmajor::symbols::SymbolTable::AddPolymorphicClass , cmajor::symbols::SymbolTable::ClassesHavingStaticConstructor , cmajor::symbols::SymbolTable::JsonClasses , cmajor::symbols::SymbolTable::MapProfiledFunction , cmajor::symbols::SymbolTable::PolymorphicClasses , cmajor::symbols::TypeSymbol::TypeId


InitUuids Member Function

void cmajor::symbols::SymbolTable::InitUuids()

Definition at line 1702 of SymbolTable.cpp
Declaration at line 221 of SymbolTable.hpp


JsonClasses Member Function

const std::unordered_set<std::u32string>& cmajor::symbols::SymbolTable::JsonClasses() const

Definition at line 204 of SymbolTable.hpp :
204 { return jsonClasses; }

Called by: cmajor::symbols::SymbolTable::Import


MainFunctionSymbol Member Function

const FunctionSymbol * cmajor::symbols::SymbolTable::MainFunctionSymbol() const

Definition at line 192 of SymbolTable.hpp :
192 { return mainFunctionSymbol; }


MainFunctionSymbol Member Function

FunctionSymbol * cmajor::symbols::SymbolTable::MainFunctionSymbol()

Definition at line 193 of SymbolTable.hpp :
193 { return mainFunctionSymbol; }


MakeArrayType Member Function

ArrayTypeSymbol * cmajor::symbols::SymbolTable::MakeArrayType(TypeSymbol * elementType, int64_t size, const Span& span, const boost::uuids::uuid& moduleId)

Definition at line 1440 of SymbolTable.cpp
Declaration at line 191 of SymbolTable.hpp

Calls: cmajor::symbols::ArrayTypeSymbol::ElementType , cmajor::symbols::ContainerSymbol::AddMember , cmajor::symbols::Symbol::FullName , cmajor::symbols::Symbol::GetSymbolType , cmajor::symbols::Symbol::SetAccess , cmajor::symbols::Symbol::SetBound , cmajor::symbols::Symbol::SetModule , cmajor::symbols::Symbol::SetParent , cmajor::symbols::SymbolTable::SetFunctionIdFor , cmajor::symbols::SymbolTable::SetTypeIdFor , cmajor::symbols::TypeSymbol::AddConst , cmajor::symbols::TypeSymbol::AddPointer , cmajor::symbols::TypeSymbol::TypeId , cmajor::symbols::TypedefSymbol::SetType


MakeClassTemplateSpecialization Member Function

ClassTemplateSpecializationSymbol * cmajor::symbols::SymbolTable::MakeClassTemplateSpecialization(ClassTypeSymbol * classTemplate, const std::vector<TypeSymbol *>& templateArgumentTypes, const Span& span, const boost::uuids::uuid& sourceModuleId)

Definition at line 1372 of SymbolTable.cpp
Declaration at line 186 of SymbolTable.hpp

Calls: cmajor::symbols::ClassTypeSymbol::GroupName , cmajor::symbols::ClassTypeSymbol::SetGroupName , cmajor::symbols::Symbol::SetModule , cmajor::symbols::Symbol::SetParent , cmajor::symbols::SymbolTable::SetTypeIdFor

Called by: cmajor::symbols::ClassTemplateSpecializationSymbol::UnifyTemplateArgumentType


MakeDerivedType Member Function

TypeSymbol * cmajor::symbols::SymbolTable::MakeDerivedType(TypeSymbol * baseType, const TypeDerivationRec & derivationRec, const Span& span, const boost::uuids::uuid& moduleId)

Definition at line 1307 of SymbolTable.cpp
Declaration at line 185 of SymbolTable.hpp

Calls: cmajor::symbols::ContainerSymbol::AddMember , cmajor::symbols::DerivedTypeSymbol::BaseType , cmajor::symbols::DerivedTypeSymbol::ComputeTypeId , cmajor::symbols::DerivedTypeSymbol::DerivationRec , cmajor::symbols::DerivedTypeSymbol::IsPointerType , cmajor::symbols::DerivedTypeSymbol::IsReferenceType , cmajor::symbols::DerivedTypeSymbol::RemovePointer , cmajor::symbols::Symbol::GetSpan , cmajor::symbols::Symbol::SetAccess , cmajor::symbols::Symbol::SetBound , cmajor::symbols::Symbol::SetModule , cmajor::symbols::Symbol::SetParent , cmajor::symbols::Symbol::SourceModuleId , cmajor::symbols::TypeDerivationRec::IsEmpty , cmajor::symbols::TypeSymbol::AddLvalueReference , cmajor::symbols::TypeSymbol::IsBasicTypeSymbol , cmajor::symbols::TypeSymbol::IsVoidType , cmajor::symbols::TypeSymbol::RemoveConst , cmajor::symbols::TypeSymbol::TypeId , cmajor::symbols::TypedefSymbol::GetType , cmajor::symbols::TypedefSymbol::SetType

Called by: cmajor::symbols::DerivedTypeSymbol::AddConst , cmajor::symbols::DerivedTypeSymbol::AddLvalueReference , cmajor::symbols::DerivedTypeSymbol::AddPointer , cmajor::symbols::DerivedTypeSymbol::AddRvalueReference , cmajor::symbols::DerivedTypeSymbol::PlainType , cmajor::symbols::DerivedTypeSymbol::RemoveConst , cmajor::symbols::DerivedTypeSymbol::RemoveDerivations , cmajor::symbols::DerivedTypeSymbol::RemovePointer , cmajor::symbols::DerivedTypeSymbol::RemoveReference , cmajor::symbols::DerivedTypeSymbol::Unify , cmajor::symbols::TypeSymbol::AddConst , cmajor::symbols::TypeSymbol::AddLvalueReference , cmajor::symbols::TypeSymbol::AddPointer , cmajor::symbols::TypeSymbol::AddRvalueReference


MapIdentifierToSymbolDefinition Member Function

void cmajor::symbols::SymbolTable::MapIdentifierToSymbolDefinition(IdentifierNode* identifierNode, Module * module, Symbol * symbol)

Definition at line 1677 of SymbolTable.cpp :
1678 {
1679     if (identifierSymbolDefinitionMap.find(identifierNode) != identifierSymbolDefinitionMap.cend()) return;
1680     identifierSymbolDefinitionMap[identifierNode] = symbol;
1681     SymbolLocation identifierLocation = MakeSymbolLocation(identifierNode->GetSpan()module);
1682     SymbolLocation definitionLocation;
1683     if (symbol->GetLocation(definitionLocation))
1684     {
1685         symbolDefinitionMap[identifierLocation] = definitionLocation;
1686     }
1687 }


Calls: cmajor::symbols::Symbol::GetLocation


MapInvoke Member Function

void cmajor::symbols::SymbolTable::MapInvoke(IdentifierNode* invokeId, FunctionSymbol * functionSymbol)

Definition at line 1641 of SymbolTable.cpp :
1642 {
1643     invokeMap[invokeId] = functionSymbol;
1644 }



MapNode Member Function

void cmajor::symbols::SymbolTable::MapNode(Node* node, Symbol * symbol)

Definition at line 1056 of SymbolTable.cpp :
1057 {
1058     nodeSymbolMap[node] = symbol;
1059     symbolNodeMap[symbol] = node;
1060 }


Called by: cmajor::symbols::SymbolTable::AddConstant , cmajor::symbols::SymbolTable::AddEnumConstant , cmajor::symbols::SymbolTable::AddGlobalVariable , cmajor::symbols::SymbolTable::AddLocalVariable , cmajor::symbols::SymbolTable::AddLocalVariable , cmajor::symbols::SymbolTable::AddMemberVariable , cmajor::symbols::SymbolTable::AddParameter , cmajor::symbols::SymbolTable::AddTemplateParameter , cmajor::symbols::SymbolTable::AddTemplateParameter , cmajor::symbols::SymbolTable::AddTypedef , cmajor::symbols::SymbolTable::BeginAxiom , cmajor::symbols::SymbolTable::BeginClass , cmajor::symbols::SymbolTable::BeginClassDelegate , cmajor::symbols::SymbolTable::BeginClassTemplateSpecialization , cmajor::symbols::SymbolTable::BeginConcept , cmajor::symbols::SymbolTable::BeginConstructor , cmajor::symbols::SymbolTable::BeginConversionFunction , cmajor::symbols::SymbolTable::BeginDeclarationBlock , cmajor::symbols::SymbolTable::BeginDelegate , cmajor::symbols::SymbolTable::BeginDestructor , cmajor::symbols::SymbolTable::BeginEnumType , cmajor::symbols::SymbolTable::BeginFunction , cmajor::symbols::SymbolTable::BeginInterface , cmajor::symbols::SymbolTable::BeginMemberFunction , cmajor::symbols::SymbolTable::BeginNamespace , cmajor::symbols::SymbolTable::BeginStaticConstructor


MapNs Member Function

void cmajor::symbols::SymbolTable::MapNs(NamespaceSymbol * fromNs, NamespaceSymbol * toNs)

Definition at line 369 of SymbolTable.cpp :
 370 {
 371     nsMap[fromNs] = toNs;
 372 }


Declaration at line 121 of SymbolTable.hpp

Called by: cmajor::symbols::NamespaceSymbol::Import


MapProfiledFunction Member Function

void cmajor::symbols::SymbolTable::MapProfiledFunction(const boost::uuids::uuid& functionId, const std::u32string& profiledFunctionName)

Definition at line 1604 of SymbolTable.cpp :
1605 {
1606     profiledFunctionNameMap[functionId] = profiledFunctionName;
1607 }


Declaration at line 211 of SymbolTable.hpp

Called by: cmajor::symbols::SymbolTable::Import , cmajor::symbols::SymbolTable::Read


MapSymbol Member Function

void cmajor::symbols::SymbolTable::MapSymbol(Node* node, Symbol * symbol)

Definition at line 1659 of SymbolTable.cpp :
1660 {
1661     mappedNodeSymbolMap[node] = symbol;
1662 }



NamespaceImports Member Function

const std::vector<NamespaceImportNode *>& cmajor::symbols::SymbolTable::NamespaceImports() const

Definition at line 239 of SymbolTable.hpp :
239 { return namespaceImports; }

Called by: cmajor::symbols::Source::AddSymbols


NextAxiomNumber Member Function

int cmajor::symbols::SymbolTable::NextAxiomNumber()

Definition at line 233 of SymbolTable.hpp :
233 { return axiomNumber++; }

Called by: cmajor::symbols::SymbolTable::BeginAxiom


NumSpecializations Member Function

int cmajor::symbols::SymbolTable::NumSpecializations() const

Definition at line 224 of SymbolTable.hpp :
224 { return classTemplateSpecializationMap.size(); }


NumSpecializationsCopied Member Function

int cmajor::symbols::SymbolTable::NumSpecializationsCopied() const

Definition at line 226 of SymbolTable.hpp :
226 { return numSpecializationsCopied; }


NumSpecializationsNew Member Function

int cmajor::symbols::SymbolTable::NumSpecializationsNew() const

Definition at line 225 of SymbolTable.hpp :
225 { return numSpecializationsNew; }


PolymorphicClasses Member Function

const std::unordered_set<ClassTypeSymbol *>& cmajor::symbols::SymbolTable::PolymorphicClasses() const

Definition at line 200 of SymbolTable.hpp :
200 { return polymorphicClasses; }

Called by: cmajor::symbols::SymbolTable::Import


ProcessTypeConceptAndFunctionRequests Member Function

void cmajor::symbols::SymbolTable::ProcessTypeConceptAndFunctionRequests(const std::vector<TypeOrConceptRequest >& typeAndConceptRequests, const std::vector<FunctionRequest >& functionRequests)

Definition at line 1226 of SymbolTable.cpp
Declaration at line 182 of SymbolTable.hpp

Calls: cmajor::symbols::Symbol::EmplaceConcept , cmajor::symbols::Symbol::EmplaceFunction , cmajor::symbols::Symbol::EmplaceType , cmajor::symbols::Symbol::GetSpan , cmajor::symbols::Symbol::GetSymbolType , cmajor::symbols::Symbol::IsTypeSymbol , cmajor::symbols::Symbol::Name , cmajor::symbols::Symbol::SourceModuleId

Called by: cmajor::symbols::SymbolTable::FinishRead


Read Member Function

void cmajor::symbols::SymbolTable::Read(SymbolReader & reader)

Definition at line 181 of SymbolTable.cpp
Declaration at line 108 of SymbolTable.hpp

Calls: cmajor::symbols::ContainerSymbol::Read , cmajor::symbols::Module::Name , cmajor::symbols::SymbolReader::AddArrayType , cmajor::symbols::SymbolReader::AddClassTemplateSpecialization , cmajor::symbols::SymbolReader::AddDerivedType , cmajor::symbols::SymbolReader::GetBinaryReader , cmajor::symbols::SymbolReader::ReadArrayTypeSymbol , cmajor::symbols::SymbolReader::ReadClassTemplateSpecializationSymbol , cmajor::symbols::SymbolReader::ReadDerivedTypeSymbol , cmajor::symbols::SymbolReader::SetSymbolTable , cmajor::symbols::SymbolTable::MapProfiledFunction , cmajor::symbols::SymbolTable::ReadSymbolDefinitionMap


ReadSymbolDefinitionMap Member Function

void cmajor::symbols::SymbolTable::ReadSymbolDefinitionMap(SymbolReader & reader)

Definition at line 1880 of SymbolTable.cpp
Declaration at line 291 of SymbolTable.hpp

Calls: cmajor::symbols::SymbolReader::GetBinaryReader

Called by: cmajor::symbols::SymbolTable::Read


ResetAliasNodesAndNamespaceImports Member Function

void cmajor::symbols::SymbolTable::ResetAliasNodesAndNamespaceImports()

Definition at line 1756 of SymbolTable.cpp :
1757 {
1758     aliasNodes.clear();
1759     namespaceImports.clear();
1760 }


Declaration at line 235 of SymbolTable.hpp


ResetAxiomNumber Member Function

void cmajor::symbols::SymbolTable::ResetAxiomNumber()

Definition at line 234 of SymbolTable.hpp :
234 { axiomNumber = 0; }


ResetCursorContainer Member Function

void cmajor::symbols::SymbolTable::ResetCursorContainer()

Definition at line 230 of SymbolTable.hpp :
230 { cursorContainer = nullptr; }


ResetDeclarationBlockIndex Member Function

void cmajor::symbols::SymbolTable::ResetDeclarationBlockIndex()

Definition at line 288 of SymbolTable.hpp :
288 { declarationBlockIndex = 0; }

Called by: cmajor::symbols::SymbolTable::BeginConstructor , cmajor::symbols::SymbolTable::BeginConversionFunction , cmajor::symbols::SymbolTable::BeginDestructor , cmajor::symbols::SymbolTable::BeginFunction , cmajor::symbols::SymbolTable::BeginMemberFunction , cmajor::symbols::SymbolTable::BeginStaticConstructor


ResetMainFunctionSymbol Member Function

void cmajor::symbols::SymbolTable::ResetMainFunctionSymbol()

Definition at line 236 of SymbolTable.hpp :
236 { mainFunctionSymbol = nullptr; }

Called by: cmajor::symbols::Source::AddSymbols


SetCurrentClass Member Function

void cmajor::symbols::SymbolTable::SetCurrentClass(ClassTypeSymbol * currentClass_)

Definition at line 209 of SymbolTable.hpp :
209 { currentClass = currentClass_; }


SetCurrentCompileUnit Member Function

void cmajor::symbols::SymbolTable::SetCurrentCompileUnit(CompileUnitNode * currentCompileUnit_)

Definition at line 118 of SymbolTable.hpp :
118 { currentCompileUnit = currentCompileUnit_; }


SetCurrentFunctionSymbol Member Function

void cmajor::symbols::SymbolTable::SetCurrentFunctionSymbol(FunctionSymbol * currentFunctionSymbol_)

Definition at line 210 of SymbolTable.hpp :
210 { currentFunctionSymbol = currentFunctionSymbol_; }


SetCursorContainer Member Function

void cmajor::symbols::SymbolTable::SetCursorContainer(const Node & node)

Definition at line 1748 of SymbolTable.cpp :
1749 {
1750     if (cursorContainer == nullptr && (node.GetLexerFlags() & soulng::lexer::LexerFlags::cursorSeen) != soulng::lexer::LexerFlags::none)
1751     {
1752         cursorContainer = container;
1753     }
1754 }


Declaration at line 232 of SymbolTable.hpp

Calls: sngcm::ast::Node::GetLexerFlags

Called by: cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit , cmajor::symbols::SymbolCreatorVisitor::Visit


SetFunctionIdFor Member Function

void cmajor::symbols::SymbolTable::SetFunctionIdFor(FunctionSymbol * functionSymbol)

Definition at line 1147 of SymbolTable.cpp :
1148 {
1149     functionSymbol->SetFunctionId(boost::uuids::random_generator()());
1150 }


Declaration at line 175 of SymbolTable.hpp

Calls: cmajor::symbols::FunctionSymbol::SetFunctionId

Called by: cmajor::symbols::ClassTypeSymbol::CreateDestructorSymbol , cmajor::symbols::SymbolTable::AddFunctionSymbolToGlobalScope , cmajor::symbols::SymbolTable::BeginConstructor , cmajor::symbols::SymbolTable::BeginConversionFunction , cmajor::symbols::SymbolTable::BeginDestructor , cmajor::symbols::SymbolTable::BeginFunction , cmajor::symbols::SymbolTable::BeginMemberFunction , cmajor::symbols::SymbolTable::BeginStaticConstructor , cmajor::symbols::SymbolTable::MakeArrayType


SetTypeIdFor Member Function

void cmajor::symbols::SymbolTable::SetTypeIdFor(ConceptSymbol * conceptSymbol)

Definition at line 1142 of SymbolTable.cpp :
1143 {
1144     conceptSymbol->SetTypeId(boost::uuids::random_generator()());
1145 }


Declaration at line 174 of SymbolTable.hpp

Calls: cmajor::symbols::ConceptSymbol::SetTypeId

Called by: cmajor::symbols::SymbolTable::BeginConcept


SetTypeIdFor Member Function

void cmajor::symbols::SymbolTable::SetTypeIdFor(TypeSymbol * typeSymbol)

Definition at line 1137 of SymbolTable.cpp :
1138 {
1139     typeSymbol->SetTypeId(boost::uuids::random_generator()());
1140 }


Declaration at line 173 of SymbolTable.hpp

Calls: cmajor::symbols::TypeSymbol::SetTypeId

Called by: cmajor::symbols::ContainerSymbol::MakeClassGroupTypeSymbol , cmajor::symbols::SymbolTable::AddTemplateParameter , cmajor::symbols::SymbolTable::AddTemplateParameter , cmajor::symbols::SymbolTable::AddTypeSymbolToGlobalScope , cmajor::symbols::SymbolTable::BeginClass , cmajor::symbols::SymbolTable::BeginClassDelegate , cmajor::symbols::SymbolTable::BeginClassTemplateSpecialization , cmajor::symbols::SymbolTable::BeginDelegate , cmajor::symbols::SymbolTable::BeginEnumType , cmajor::symbols::SymbolTable::BeginInterface , cmajor::symbols::SymbolTable::MakeArrayType , cmajor::symbols::SymbolTable::MakeClassTemplateSpecialization


ToDomDocument Member Function

std::unique_ptr<Document > cmajor::symbols::SymbolTable::ToDomDocument()

Definition at line 1619 of SymbolTable.cpp
Declaration at line 214 of SymbolTable.hpp

Calls: cmajor::symbols::Symbol::ToDomElement , cmajor::symbols::TypeMap::TypeElements


Types Member Function

std::vector<TypeSymbol *> cmajor::symbols::SymbolTable::Types() const

Definition at line 1573 of SymbolTable.cpp
Declaration at line 205 of SymbolTable.hpp


Write Member Function

void cmajor::symbols::SymbolTable::Write(SymbolWriter & writer)

Definition at line 92 of SymbolTable.cpp
Declaration at line 107 of SymbolTable.hpp

Calls: cmajor::symbols::ContainerSymbol::Write , cmajor::symbols::Module::Name , cmajor::symbols::SymbolTable::Write , cmajor::symbols::SymbolTable::WriteSymbolDefinitionMap , cmajor::symbols::SymbolWriter::GetBinaryWriter , cmajor::symbols::SymbolWriter::Write

Called by: cmajor::symbols::SymbolTable::Write , cmajor::symbols::SymbolTable::WriteSymbolDefinitionMap


WriteSymbolDefinitionMap Member Function

void cmajor::symbols::SymbolTable::WriteSymbolDefinitionMap(SymbolWriter & writer)

Definition at line 1859 of SymbolTable.cpp
Declaration at line 290 of SymbolTable.hpp

Calls: cmajor::symbols::SymbolTable::Write , cmajor::symbols::SymbolWriter::GetBinaryWriter

Called by: cmajor::symbols::SymbolTable::Write


top | up | prev | next