top | up | prev | next

ContainerSymbol Class

Definition at line 18 of ContainerSymbol.hpp

Constructors

ContainerSymbol(SymbolType symbolType_, const Span& span_, const boost::uuids::uuid& sourceModuleId_, const std::u32string& name_)

Member Functions

void Accept(SymbolCollector* collector) override
void AddMember(Symbol* member) virtual
void AddOwnedMember(Symbol* ownedMember)
void AppendChildElements(Element* element, TypeMap& typeMap) const override
void Check() override
const char* ClassName() const override
void Clear()
void CopyFrom(const Symbol* that) override
const ContainerScope* GetContainerScope() const override
ContainerScope* GetContainerScope() override
FunctionSymbol* GetFunctionByIndex(int32_t functionIndex) const
bool HasProjectMembers() const override
bool IsContainerSymbol() const override
bool IsImmutable() const virtual
ClassGroupTypeSymbol* MakeClassGroupTypeSymbol(const std::u32string& groupName, const Span& span, const boost::uuids::uuid& sourceModuleId)
ConceptGroupSymbol* MakeConceptGroupSymbol(const std::u32string& groupName, const Span& span, const boost::uuids::uuid& sourceModuleId)
FunctionGroupSymbol* MakeFunctionGroupSymbol(const std::u32string& groupName, const Span& span, const boost::uuids::uuid& sourceModuleId)
GlobalVariableGroupSymbol* MakeGlobalVariableGroupSymbol(const std::u32string& groupName, const Span& span, const boost::uuids::uuid& sourceModuleId)
const std::vector<std::unique_ptr<Symbol>>& Members() const
std::vector<std::unique_ptr<Symbol>>& Members()
void Read(SymbolReader& reader) override
std::unique_ptr<Symbol> RemoveMember(int symbolIndex) override
std::string TypeString() const override
void Write(SymbolWriter& writer) override

Member Variables

ContainerScope containerScope
std::unordered_map<int32_t, FunctionSymbol*> functionIndexMap
std::vector<std::unique_ptr<Symbol>> members

Constructor Details

ContainerSymbol Constructor

cmajor::symbols::ContainerSymbol::ContainerSymbol(SymbolType symbolType_, const Span& span_, const boost::uuids::uuid& sourceModuleId_, const std::u32string& name_)

Definition at line 22 of ContainerSymbol.cpp :
 22 : Symbol(symbolType_span_sourceModuleId_name_)
 23 {
 24     containerScope.SetContainer(this);
 25 }


Declaration at line 21 of ContainerSymbol.hpp


Member Function Details

Accept Member Function

void cmajor::symbols::ContainerSymbol::Accept(SymbolCollector * collector) override

Definition at line 159 of ContainerSymbol.cpp :
160 {
161     if (IsProject())
162     {
163         for (std::std::unique_ptr<Symbol>&member : members)
164         {
165             member->Accept(collector);
166         }
167     }
168 }


Declaration at line 27 of ContainerSymbol.hpp

Base class overridden functions: cmajor::symbols::Symbol::Accept

Derived class overrides: cmajor::symbols::BasicTypeSymbol::Accept , cmajor::symbols::ClassDelegateTypeSymbol::Accept , cmajor::symbols::ClassTypeSymbol::Accept , cmajor::symbols::ConceptSymbol::Accept , cmajor::symbols::DelegateTypeSymbol::Accept , cmajor::symbols::DestructorSymbol::Accept , cmajor::symbols::EnumTypeSymbol::Accept , cmajor::symbols::FunctionSymbol::Accept , cmajor::symbols::InterfaceTypeSymbol::Accept , cmajor::symbols::StaticConstructorSymbol::Accept

Calls: cmajor::symbols::ContainerSymbol::Accept , cmajor::symbols::Symbol::IsProject

Called by: cmajor::symbols::ClassTypeSymbol::CollectMembers , cmajor::symbols::ClassTypeSymbol::Dump , cmajor::symbols::ContainerSymbol::Accept , cmajor::symbols::EnumTypeSymbol::CollectMembers , cmajor::symbols::EnumTypeSymbol::Dump , cmajor::symbols::EnumTypeSymbol::GetEnumConstants


AddMember Member Function

void cmajor::symbols::ContainerSymbol::AddMember(Symbol * member) virtual

Definition at line 57 of ContainerSymbol.cpp
Declaration at line 24 of ContainerSymbol.hpp

Derived class overrides: cmajor::symbols::ClassDelegateTypeSymbol::AddMember , cmajor::symbols::ClassTypeSymbol::AddMember , cmajor::symbols::ConceptSymbol::AddMember , cmajor::symbols::DeclarationBlock::AddMember , cmajor::symbols::DelegateTypeSymbol::AddMember , cmajor::symbols::FunctionSymbol::AddMember , cmajor::symbols::InterfaceTypeSymbol::AddMember

Calls: cmajor::symbols::ClassGroupTypeSymbol::AddClass , cmajor::symbols::ClassTypeSymbol::GroupName , cmajor::symbols::ConceptGroupSymbol::AddConcept , cmajor::symbols::ConceptSymbol::GroupName , cmajor::symbols::ContainerScope::Install , cmajor::symbols::ContainerSymbol::IsImmutable , cmajor::symbols::ContainerSymbol::MakeClassGroupTypeSymbol , cmajor::symbols::ContainerSymbol::MakeConceptGroupSymbol , cmajor::symbols::ContainerSymbol::MakeFunctionGroupSymbol , cmajor::symbols::ContainerSymbol::MakeGlobalVariableGroupSymbol , cmajor::symbols::FunctionGroupSymbol::AddFunction , cmajor::symbols::FunctionSymbol::GetIndex , cmajor::symbols::FunctionSymbol::GroupName , cmajor::symbols::GlobalVariableGroupSymbol::AddGlobalVariable , cmajor::symbols::GlobalVariableSymbol::GroupName , cmajor::symbols::Symbol::GetModule , cmajor::symbols::Symbol::GetSpan , cmajor::symbols::Symbol::GetSymbolType , cmajor::symbols::Symbol::IsFunctionSymbol , cmajor::symbols::Symbol::SetModule , cmajor::symbols::Symbol::SetParent , cmajor::symbols::Symbol::SetSymbolIndex , cmajor::symbols::Symbol::SourceModuleId

Called by: cmajor::symbols::ClassDelegateTypeSymbol::AddMember , cmajor::symbols::ClassTypeSymbol::AddMember , cmajor::symbols::ConceptSymbol::AddMember , cmajor::symbols::ContainerScope::CreateNamespace , cmajor::symbols::ContainerSymbol::MakeClassGroupTypeSymbol , cmajor::symbols::ContainerSymbol::MakeConceptGroupSymbol , cmajor::symbols::ContainerSymbol::MakeFunctionGroupSymbol , cmajor::symbols::ContainerSymbol::MakeGlobalVariableGroupSymbol , cmajor::symbols::ContainerSymbol::Read , cmajor::symbols::DeclarationBlock::AddMember , cmajor::symbols::DelegateTypeSymbol::AddMember , cmajor::symbols::FunctionSymbol::AddMember , cmajor::symbols::InterfaceTypeSymbol::AddMember , cmajor::symbols::SymbolTable::AddConstant , cmajor::symbols::SymbolTable::AddEnumConstant , cmajor::symbols::SymbolTable::AddFunctionSymbolToGlobalScope , 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::AddTypeSymbolToGlobalScope , cmajor::symbols::SymbolTable::AddTypedef , cmajor::symbols::SymbolTable::BeginClassDelegate , cmajor::symbols::SymbolTable::BeginDeclarationBlock , cmajor::symbols::SymbolTable::BeginDelegate , cmajor::symbols::SymbolTable::BeginEnumType , cmajor::symbols::SymbolTable::BeginInterface , cmajor::symbols::SymbolTable::EndAxiom , cmajor::symbols::SymbolTable::EndClass , cmajor::symbols::SymbolTable::EndConcept , cmajor::symbols::SymbolTable::EndConstructor , cmajor::symbols::SymbolTable::EndConversionFunction , cmajor::symbols::SymbolTable::EndDestructor , cmajor::symbols::SymbolTable::EndFunction , cmajor::symbols::SymbolTable::EndMemberFunction , cmajor::symbols::SymbolTable::EndStaticConstructor , cmajor::symbols::SymbolTable::MakeArrayType , cmajor::symbols::SymbolTable::MakeDerivedType


AddOwnedMember Member Function

void cmajor::symbols::ContainerSymbol::AddOwnedMember(Symbol * ownedMember)

Definition at line 107 of ContainerSymbol.cpp
Declaration at line 25 of ContainerSymbol.hpp

Calls: cmajor::symbols::ClassGroupTypeSymbol::AddClass , cmajor::symbols::ClassTypeSymbol::GroupName , cmajor::symbols::ConceptGroupSymbol::AddConcept , cmajor::symbols::ConceptSymbol::GroupName , cmajor::symbols::ContainerScope::Install , cmajor::symbols::ContainerSymbol::MakeClassGroupTypeSymbol , cmajor::symbols::ContainerSymbol::MakeConceptGroupSymbol , cmajor::symbols::ContainerSymbol::MakeFunctionGroupSymbol , cmajor::symbols::ContainerSymbol::MakeGlobalVariableGroupSymbol , cmajor::symbols::FunctionGroupSymbol::AddFunction , cmajor::symbols::FunctionSymbol::GetIndex , cmajor::symbols::FunctionSymbol::GroupName , cmajor::symbols::GlobalVariableGroupSymbol::AddGlobalVariable , cmajor::symbols::GlobalVariableSymbol::GroupName , cmajor::symbols::Symbol::GetSpan , cmajor::symbols::Symbol::GetSymbolType , cmajor::symbols::Symbol::IsFunctionSymbol , cmajor::symbols::Symbol::SourceModuleId

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


AppendChildElements Member Function

void cmajor::symbols::ContainerSymbol::AppendChildElements(Element * element, TypeMap & typeMap) const override

Definition at line 253 of ContainerSymbol.cpp
Declaration at line 35 of ContainerSymbol.hpp

Base class overridden functions: cmajor::symbols::Symbol::AppendChildElements

Derived class overrides: cmajor::symbols::ClassGroupTypeSymbol::AppendChildElements

Calls: cmajor::symbols::ContainerSymbol::HasProjectMembers , cmajor::symbols::Symbol::GetSymbolType , cmajor::symbols::Symbol::IsClassTypeSymbol , cmajor::symbols::Symbol::IsFunctionSymbol , cmajor::symbols::Symbol::IsProject , cmajor::symbols::Symbol::ToDomElement , sngxml::dom::ParentNode::AppendChild


Check Member Function

void cmajor::symbols::ContainerSymbol::Check() override

Definition at line 316 of ContainerSymbol.cpp
Declaration at line 38 of ContainerSymbol.hpp

Base class overridden functions: cmajor::symbols::Symbol::Check

Derived class overrides: cmajor::symbols::ArrayBeginFunction::Check , cmajor::symbols::ArrayCBeginFunction::Check , cmajor::symbols::ArrayCEndFunction::Check , cmajor::symbols::ArrayEndFunction::Check , cmajor::symbols::ArrayLengthFunction::Check , cmajor::symbols::ArrayTypeCopyAssignment::Check , cmajor::symbols::ArrayTypeCopyConstructor::Check , cmajor::symbols::ArrayTypeDefaultConstructor::Check , cmajor::symbols::ArrayTypeElementAccess::Check , cmajor::symbols::ArrayTypeMoveAssignment::Check , cmajor::symbols::ArrayTypeMoveConstructor::Check , cmajor::symbols::ArrayTypeSymbol::Check , cmajor::symbols::BasicTypeConversion::Check , cmajor::symbols::BasicTypeSymbol::Check , cmajor::symbols::ClassDelegateTypeDefaultConstructor::Check , cmajor::symbols::ClassDelegateTypeSymbol::Check , cmajor::symbols::ClassGroupTypeSymbol::Check , cmajor::symbols::ClassTemplateSpecializationSymbol::Check , cmajor::symbols::ClassToInterfaceConversion::Check , cmajor::symbols::ClassTypeSymbol::Check , cmajor::symbols::ConceptSymbol::Check , cmajor::symbols::DelegateTypeDefaultConstructor::Check , cmajor::symbols::DelegateTypeSymbol::Check , cmajor::symbols::DerivedTypeSymbol::Check , cmajor::symbols::EnumTypeCopyAssignment::Check , cmajor::symbols::EnumTypeCopyConstructor::Check , cmajor::symbols::EnumTypeDefaultConstructor::Check , cmajor::symbols::EnumTypeEqualityOp::Check , cmajor::symbols::EnumTypeMoveAssignment::Check , cmajor::symbols::EnumTypeMoveConstructor::Check , cmajor::symbols::EnumTypeReturn::Check , cmajor::symbols::EnumTypeSymbol::Check , cmajor::symbols::EnumTypeToUnderlyingTypeConversion::Check , cmajor::symbols::FunctionSymbol::Check , cmajor::symbols::FunctionToDelegateConversion::Check , cmajor::symbols::InterfaceTypeSymbol::Check , cmajor::symbols::MemberFunctionToClassDelegateConversion::Check , cmajor::symbols::TypeSymbol::Check , cmajor::symbols::UnderlyingTypeToEnumTypeConversion::Check

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

Called by: cmajor::symbols::ConceptSymbol::Check , cmajor::symbols::ContainerSymbol::Check , cmajor::symbols::FunctionSymbol::Check , cmajor::symbols::SymbolTable::Check , cmajor::symbols::TypeSymbol::Check


ClassName Member Function

const char * cmajor::symbols::ContainerSymbol::ClassName() const override

Definition at line 37 of ContainerSymbol.hpp :
37 { return "ContainerSymbol"; }

Base class overridden functions: cmajor::symbols::Symbol::ClassName

Derived class overrides: cmajor::symbols::ArrayBeginFunction::ClassName , cmajor::symbols::ArrayCBeginFunction::ClassName , cmajor::symbols::ArrayCEndFunction::ClassName , cmajor::symbols::ArrayEndFunction::ClassName , cmajor::symbols::ArrayLengthFunction::ClassName , cmajor::symbols::ArrayTypeCopyAssignment::ClassName , cmajor::symbols::ArrayTypeCopyConstructor::ClassName , cmajor::symbols::ArrayTypeDefaultConstructor::ClassName , cmajor::symbols::ArrayTypeElementAccess::ClassName , cmajor::symbols::ArrayTypeMoveAssignment::ClassName , cmajor::symbols::ArrayTypeMoveConstructor::ClassName , cmajor::symbols::ArrayTypeSymbol::ClassName , cmajor::symbols::AxiomSymbol::ClassName , cmajor::symbols::BasicTypeBinaryOperation::ClassName , cmajor::symbols::BasicTypeComparisonOperation::ClassName , cmajor::symbols::BasicTypeConversion::ClassName , cmajor::symbols::BasicTypeCopyAssignment::ClassName , cmajor::symbols::BasicTypeCopyCtor::ClassName , cmajor::symbols::BasicTypeDefaultCtor::ClassName , cmajor::symbols::BasicTypeMoveAssignment::ClassName , cmajor::symbols::BasicTypeMoveCtor::ClassName , cmajor::symbols::BasicTypeReturn::ClassName , cmajor::symbols::BasicTypeSymbol::ClassName , cmajor::symbols::BasicTypeUnaryOperation::ClassName , cmajor::symbols::BoolTypeSymbol::ClassName , cmajor::symbols::ByteTypeSymbol::ClassName , cmajor::symbols::CharTypeSymbol::ClassName , cmajor::symbols::ClassDelegateTypeCopyAssignment::ClassName , cmajor::symbols::ClassDelegateTypeCopyConstructor::ClassName , cmajor::symbols::ClassDelegateTypeDefaultConstructor::ClassName , cmajor::symbols::ClassDelegateTypeEquality::ClassName , cmajor::symbols::ClassDelegateTypeMoveAssignment::ClassName , cmajor::symbols::ClassDelegateTypeMoveConstructor::ClassName , cmajor::symbols::ClassDelegateTypeSymbol::ClassName , cmajor::symbols::ClassGroupTypeSymbol::ClassName , cmajor::symbols::ClassTemplateSpecializationSymbol::ClassName , cmajor::symbols::ClassToInterfaceConversion::ClassName , cmajor::symbols::ClassTypeSymbol::ClassName , cmajor::symbols::ConceptSymbol::ClassName , cmajor::symbols::ConstructorSymbol::ClassName , cmajor::symbols::ConversionFunctionSymbol::ClassName , cmajor::symbols::DeclarationBlock::ClassName , cmajor::symbols::DelegateToVoidPtrConversion::ClassName , cmajor::symbols::DelegateTypeCopyAssignment::ClassName , cmajor::symbols::DelegateTypeCopyConstructor::ClassName , cmajor::symbols::DelegateTypeDefaultConstructor::ClassName , cmajor::symbols::DelegateTypeEquality::ClassName , cmajor::symbols::DelegateTypeMoveAssignment::ClassName , cmajor::symbols::DelegateTypeMoveConstructor::ClassName , cmajor::symbols::DelegateTypeReturn::ClassName , cmajor::symbols::DelegateTypeSymbol::ClassName , cmajor::symbols::DerivedTypeSymbol::ClassName , cmajor::symbols::DestructorSymbol::ClassName , cmajor::symbols::DoubleTypeSymbol::ClassName , cmajor::symbols::EnumTypeCopyAssignment::ClassName , cmajor::symbols::EnumTypeCopyConstructor::ClassName , cmajor::symbols::EnumTypeDefaultConstructor::ClassName , cmajor::symbols::EnumTypeEqualityOp::ClassName , cmajor::symbols::EnumTypeMoveAssignment::ClassName , cmajor::symbols::EnumTypeMoveConstructor::ClassName , cmajor::symbols::EnumTypeReturn::ClassName , cmajor::symbols::EnumTypeSymbol::ClassName , cmajor::symbols::EnumTypeToUnderlyingTypeConversion::ClassName , cmajor::symbols::FloatTypeSymbol::ClassName , cmajor::symbols::FunctionGroupTypeSymbol::ClassName , cmajor::symbols::FunctionSymbol::ClassName , cmajor::symbols::FunctionToDelegateConversion::ClassName , cmajor::symbols::IntTypeSymbol::ClassName , cmajor::symbols::InterfaceTypeCopyAssignment::ClassName , cmajor::symbols::InterfaceTypeCopyConstructor::ClassName , cmajor::symbols::InterfaceTypeDefaultConstructor::ClassName , cmajor::symbols::InterfaceTypeMoveAssignment::ClassName , cmajor::symbols::InterfaceTypeMoveConstructor::ClassName , cmajor::symbols::InterfaceTypeSymbol::ClassName , cmajor::symbols::LongTypeSymbol::ClassName , cmajor::symbols::MemberExpressionTypeSymbol::ClassName , cmajor::symbols::MemberFunctionSymbol::ClassName , cmajor::symbols::MemberFunctionToClassDelegateConversion::ClassName , cmajor::symbols::NamespaceSymbol::ClassName , cmajor::symbols::NullPtrType::ClassName , cmajor::symbols::SByteTypeSymbol::ClassName , cmajor::symbols::ShortTypeSymbol::ClassName , cmajor::symbols::StaticConstructorSymbol::ClassName , cmajor::symbols::TemplateParameterSymbol::ClassName , cmajor::symbols::TypeSymbol::ClassName , cmajor::symbols::UCharTypeSymbol::ClassName , cmajor::symbols::UIntTypeSymbol::ClassName , cmajor::symbols::ULongTypeSymbol::ClassName , cmajor::symbols::UShortTypeSymbol::ClassName , cmajor::symbols::UnderlyingTypeToEnumTypeConversion::ClassName , cmajor::symbols::VoidPtrToDelegateConversion::ClassName , cmajor::symbols::VoidTypeSymbol::ClassName , cmajor::symbols::WCharTypeSymbol::ClassName


Clear Member Function

void cmajor::symbols::ContainerSymbol::Clear()

Definition at line 170 of ContainerSymbol.cpp :
171 {
172     containerScope.Clear();
173     members.clear();
174 }


Declaration at line 28 of ContainerSymbol.hpp

Calls: cmajor::symbols::ContainerScope::Clear

Called by: cmajor::symbols::SymbolTable::Clear


CopyFrom Member Function

void cmajor::symbols::ContainerSymbol::CopyFrom(const Symbol * that) override

Definition at line 332 of ContainerSymbol.cpp :
333 {
334     Symbol::CopyFrom(that);
335     const ContainerSymbol* thatContainer = static_cast<const ContainerSymbol*>(that);
336     containerScope.SetParentScope(Parent()->GetContainerScope());
337     for (const std::std::pair<std::u32stringSymbol*>&p : thatContainer->containerScope.SymbolMap())
338     {
339         containerScope.Install(p.second);
340     }
341 }


Declaration at line 39 of ContainerSymbol.hpp

Base class overridden functions: cmajor::symbols::Symbol::CopyFrom

Derived class overrides: cmajor::symbols::FunctionSymbol::CopyFrom

Calls: cmajor::symbols::ContainerScope::Install , cmajor::symbols::ContainerScope::SetParentScope , cmajor::symbols::ContainerScope::SymbolMap , cmajor::symbols::Symbol::CopyFrom , cmajor::symbols::Symbol::GetContainerScope , cmajor::symbols::Symbol::Parent

Called by: cmajor::symbols::FunctionSymbol::CopyFrom


GetContainerScope Member Function

const ContainerScope * cmajor::symbols::ContainerSymbol::GetContainerScope() const override

Definition at line 31 of ContainerSymbol.hpp :
31 { return &containerScope; }

Base class overridden functions: cmajor::symbols::Symbol::GetContainerScope , cmajor::symbols::Symbol::GetContainerScope

Called by: cmajor::symbols::Symbol::ClassInterfaceEnumDelegateOrNsScope , cmajor::symbols::Symbol::ClassInterfaceOrNsScope , cmajor::symbols::Symbol::ClassOrNsScope


GetContainerScope Member Function

ContainerScope * cmajor::symbols::ContainerSymbol::GetContainerScope() override

Definition at line 32 of ContainerSymbol.hpp :
32 { return &containerScope; }

Base class overridden functions: cmajor::symbols::Symbol::GetContainerScope , cmajor::symbols::Symbol::GetContainerScope

Called by: cmajor::symbols::ClassTemplateSpecializationSymbol::GetArrowScope , cmajor::symbols::ClassTemplateSpecializationSymbol::GetArrowScope , cmajor::symbols::ClassTypeSymbol::GetArrowScope , cmajor::symbols::ClassTypeSymbol::GetArrowScope , cmajor::symbols::ContainerScope::BaseScope , cmajor::symbols::ContainerScope::CreateNamespace , cmajor::symbols::ContainerScope::ParentScope , cmajor::symbols::DerivedTypeSymbol::GetArrowScope , cmajor::symbols::DerivedTypeSymbol::GetArrowScope , cmajor::symbols::Source::GetScopes , cmajor::symbols::Symbol::ClassInterfaceEnumDelegateOrNsScope , cmajor::symbols::Symbol::ClassInterfaceOrNsScope , cmajor::symbols::Symbol::ClassOrNsScope , cmajor::symbols::Symbol::GetArrowScope , cmajor::symbols::Symbol::GetArrowScope , cmajor::symbols::SymbolTable::BeginNamespace , cmajor::symbols::TypeIndex::AddType , cmajor::symbols::VariableSymbol::GetTypeScope , cmajor::symbols::VariableSymbol::GetTypeScope


GetFunctionByIndex Member Function

FunctionSymbol * cmajor::symbols::ContainerSymbol::GetFunctionByIndex(int32_t functionIndex) const

Definition at line 303 of ContainerSymbol.cpp
Declaration at line 40 of ContainerSymbol.hpp

Called by: cmajor::symbols::FunctionSymbol::Id


HasProjectMembers Member Function

bool cmajor::symbols::ContainerSymbol::HasProjectMembers() const override

Definition at line 277 of ContainerSymbol.cpp
Declaration at line 36 of ContainerSymbol.hpp

Base class overridden functions: cmajor::symbols::Symbol::HasProjectMembers

Derived class overrides: cmajor::symbols::ClassGroupTypeSymbol::HasProjectMembers

Calls: cmajor::symbols::ContainerSymbol::HasProjectMembers , cmajor::symbols::FunctionSymbol::IsTemplateSpecialization , cmajor::symbols::Symbol::FullName , cmajor::symbols::Symbol::GetSymbolType , cmajor::symbols::Symbol::IsFunctionSymbol , cmajor::symbols::Symbol::IsProject

Called by: cmajor::symbols::ContainerSymbol::AppendChildElements , cmajor::symbols::ContainerSymbol::HasProjectMembers , cmajor::symbols::NamespaceSymbol::CreateDomElement


IsContainerSymbol Member Function

bool cmajor::symbols::ContainerSymbol::IsContainerSymbol() const override

Definition at line 30 of ContainerSymbol.hpp :
30 { return true; }

Base class overridden functions: cmajor::symbols::Symbol::IsContainerSymbol


IsImmutable Member Function

bool cmajor::symbols::ContainerSymbol::IsImmutable() const virtual

Definition at line 41 of ContainerSymbol.hpp :
41 { return false; }

Derived class overrides: cmajor::symbols::FunctionSymbol::IsImmutable

Called by: cmajor::symbols::ContainerSymbol::AddMember


MakeClassGroupTypeSymbol Member Function

ClassGroupTypeSymbol * cmajor::symbols::ContainerSymbol::MakeClassGroupTypeSymbol(const std::u32string& groupName, const Span& span, const boost::uuids::uuid& sourceModuleId)

Definition at line 214 of ContainerSymbol.cpp
Declaration at line 48 of ContainerSymbol.hpp

Calls: cmajor::symbols::ContainerScope::Lookup , cmajor::symbols::ContainerSymbol::AddMember , cmajor::symbols::Module::GetSymbolTable , cmajor::symbols::Symbol::FullName , cmajor::symbols::Symbol::GetSpan , cmajor::symbols::Symbol::GetSymbolType , cmajor::symbols::Symbol::SourceModuleId , cmajor::symbols::SymbolTable::SetTypeIdFor

Called by: cmajor::symbols::ContainerSymbol::AddMember , cmajor::symbols::ContainerSymbol::AddOwnedMember


MakeConceptGroupSymbol Member Function

ConceptGroupSymbol * cmajor::symbols::ContainerSymbol::MakeConceptGroupSymbol(const std::u32string& groupName, const Span& span, const boost::uuids::uuid& sourceModuleId)

Definition at line 195 of ContainerSymbol.cpp
Declaration at line 47 of ContainerSymbol.hpp

Calls: cmajor::symbols::ContainerScope::Lookup , cmajor::symbols::ContainerSymbol::AddMember , cmajor::symbols::Symbol::FullName , cmajor::symbols::Symbol::GetSpan , cmajor::symbols::Symbol::GetSymbolType , cmajor::symbols::Symbol::SourceModuleId

Called by: cmajor::symbols::ContainerSymbol::AddMember , cmajor::symbols::ContainerSymbol::AddOwnedMember


MakeFunctionGroupSymbol Member Function

FunctionGroupSymbol * cmajor::symbols::ContainerSymbol::MakeFunctionGroupSymbol(const std::u32string& groupName, const Span& span, const boost::uuids::uuid& sourceModuleId)

Definition at line 176 of ContainerSymbol.cpp
Declaration at line 46 of ContainerSymbol.hpp

Calls: cmajor::symbols::ContainerScope::Lookup , cmajor::symbols::ContainerSymbol::AddMember , cmajor::symbols::Symbol::FullName , cmajor::symbols::Symbol::GetSpan , cmajor::symbols::Symbol::GetSymbolType , cmajor::symbols::Symbol::SourceModuleId

Called by: cmajor::symbols::ContainerSymbol::AddMember , cmajor::symbols::ContainerSymbol::AddOwnedMember


MakeGlobalVariableGroupSymbol Member Function

GlobalVariableGroupSymbol * cmajor::symbols::ContainerSymbol::MakeGlobalVariableGroupSymbol(const std::u32string& groupName, const Span& span, const boost::uuids::uuid& sourceModuleId)

Definition at line 234 of ContainerSymbol.cpp
Declaration at line 49 of ContainerSymbol.hpp

Calls: cmajor::symbols::ContainerScope::Lookup , cmajor::symbols::ContainerSymbol::AddMember , cmajor::symbols::Symbol::FullName , cmajor::symbols::Symbol::GetSpan , cmajor::symbols::Symbol::GetSymbolType , cmajor::symbols::Symbol::SourceModuleId

Called by: cmajor::symbols::ContainerSymbol::AddMember , cmajor::symbols::ContainerSymbol::AddOwnedMember


Members Member Function

const std::vector<std::unique_ptr<Symbol >>& cmajor::symbols::ContainerSymbol::Members() const

Definition at line 33 of ContainerSymbol.hpp :
33 { return members; }


Members Member Function

std::vector<std::unique_ptr<Symbol >>& cmajor::symbols::ContainerSymbol::Members()

Definition at line 34 of ContainerSymbol.hpp :
34 { return members; }

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


Read Member Function

void cmajor::symbols::ContainerSymbol::Read(SymbolReader & reader) override

Definition at line 46 of ContainerSymbol.cpp :
 47 {
 48     Symbol::Read(reader);
 49     uint32_t n = reader.GetBinaryReader().ReadULEB128UInt();
 50     for (uint32_t i = 0; i < n; ++i)
 51     {
 52         Symbol* symbol = reader.ReadSymbol(this);
 53         AddMember(symbol);
 54     }
 55 }


Declaration at line 23 of ContainerSymbol.hpp

Base class overridden functions: cmajor::symbols::Symbol::Read

Derived class overrides: 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::BasicTypeSymbol::Read , cmajor::symbols::ClassDelegateTypeDefaultConstructor::Read , cmajor::symbols::ClassDelegateTypeSymbol::Read , cmajor::symbols::ClassTemplateSpecializationSymbol::Read , cmajor::symbols::ClassTypeSymbol::Read , cmajor::symbols::ConceptSymbol::Read , cmajor::symbols::DelegateTypeDefaultConstructor::Read , cmajor::symbols::DelegateTypeSymbol::Read , cmajor::symbols::DerivedTypeSymbol::Read , cmajor::symbols::DestructorSymbol::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::EnumTypeSymbol::Read , cmajor::symbols::EnumTypeToUnderlyingTypeConversion::Read , cmajor::symbols::FunctionSymbol::Read , cmajor::symbols::StringFunctionContainerSymbol::Read , cmajor::symbols::StringLengthFunction::Read , cmajor::symbols::TemplateParameterSymbol::Read , cmajor::symbols::TypeSymbol::Read , cmajor::symbols::UnderlyingTypeToEnumTypeConversion::Read

Calls: cmajor::symbols::ContainerSymbol::AddMember , cmajor::symbols::Symbol::Read , cmajor::symbols::SymbolReader::GetBinaryReader , cmajor::symbols::SymbolReader::ReadSymbol

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


RemoveMember Member Function

std::unique_ptr<Symbol > cmajor::symbols::ContainerSymbol::RemoveMember(int symbolIndex) override

Definition at line 140 of ContainerSymbol.cpp
Declaration at line 26 of ContainerSymbol.hpp

Base class overridden functions: cmajor::symbols::Symbol::RemoveMember

Calls: cmajor::symbols::ContainerScope::Uninstall , cmajor::symbols::Symbol::IsInstalled , cmajor::symbols::Symbol::SetSymbolIndex


TypeString Member Function

std::string cmajor::symbols::ContainerSymbol::TypeString() const override

Definition at line 29 of ContainerSymbol.hpp :
29 { return "container"; }

Base class overridden functions: cmajor::symbols::Symbol::TypeString

Derived class overrides: cmajor::symbols::BasicTypeSymbol::TypeString , cmajor::symbols::BoolTypeSymbol::TypeString , cmajor::symbols::ByteTypeSymbol::TypeString , cmajor::symbols::CharTypeSymbol::TypeString , cmajor::symbols::ClassDelegateTypeSymbol::TypeString , cmajor::symbols::ClassGroupTypeSymbol::TypeString , cmajor::symbols::ClassTypeSymbol::TypeString , cmajor::symbols::ConceptSymbol::TypeString , cmajor::symbols::ConstructorSymbol::TypeString , cmajor::symbols::ConversionFunctionSymbol::TypeString , cmajor::symbols::DelegateTypeSymbol::TypeString , cmajor::symbols::DerivedTypeSymbol::TypeString , cmajor::symbols::DestructorSymbol::TypeString , cmajor::symbols::DoubleTypeSymbol::TypeString , cmajor::symbols::EnumTypeSymbol::TypeString , cmajor::symbols::FloatTypeSymbol::TypeString , cmajor::symbols::FunctionSymbol::TypeString , cmajor::symbols::IntTypeSymbol::TypeString , cmajor::symbols::InterfaceTypeSymbol::TypeString , cmajor::symbols::LongTypeSymbol::TypeString , cmajor::symbols::MemberExpressionTypeSymbol::TypeString , cmajor::symbols::MemberFunctionSymbol::TypeString , cmajor::symbols::NamespaceSymbol::TypeString , cmajor::symbols::NullPtrType::TypeString , cmajor::symbols::SByteTypeSymbol::TypeString , cmajor::symbols::ShortTypeSymbol::TypeString , cmajor::symbols::StaticConstructorSymbol::TypeString , cmajor::symbols::TypeSymbol::TypeString , cmajor::symbols::UCharTypeSymbol::TypeString , cmajor::symbols::UIntTypeSymbol::TypeString , cmajor::symbols::ULongTypeSymbol::TypeString , cmajor::symbols::UShortTypeSymbol::TypeString , cmajor::symbols::VoidTypeSymbol::TypeString , cmajor::symbols::WCharTypeSymbol::TypeString


Write Member Function

void cmajor::symbols::ContainerSymbol::Write(SymbolWriter & writer) override

Definition at line 27 of ContainerSymbol.cpp
Declaration at line 22 of ContainerSymbol.hpp

Base class overridden functions: cmajor::symbols::Symbol::Write

Derived class overrides: cmajor::symbols::ArrayBeginFunction::Write , cmajor::symbols::ArrayCBeginFunction::Write , cmajor::symbols::ArrayCEndFunction::Write , cmajor::symbols::ArrayEndFunction::Write , cmajor::symbols::ArrayLengthFunction::Write , cmajor::symbols::ArrayTypeSymbol::Write , cmajor::symbols::BasicTypeConversion::Write , cmajor::symbols::BasicTypeSymbol::Write , cmajor::symbols::ClassDelegateTypeDefaultConstructor::Write , cmajor::symbols::ClassDelegateTypeSymbol::Write , cmajor::symbols::ClassTemplateSpecializationSymbol::Write , cmajor::symbols::ClassTypeSymbol::Write , cmajor::symbols::ConceptSymbol::Write , cmajor::symbols::DelegateTypeDefaultConstructor::Write , cmajor::symbols::DelegateTypeSymbol::Write , cmajor::symbols::DerivedTypeSymbol::Write , cmajor::symbols::DestructorSymbol::Write , cmajor::symbols::EnumTypeCopyAssignment::Write , cmajor::symbols::EnumTypeCopyConstructor::Write , cmajor::symbols::EnumTypeDefaultConstructor::Write , cmajor::symbols::EnumTypeEqualityOp::Write , cmajor::symbols::EnumTypeMoveAssignment::Write , cmajor::symbols::EnumTypeMoveConstructor::Write , cmajor::symbols::EnumTypeReturn::Write , cmajor::symbols::EnumTypeSymbol::Write , cmajor::symbols::EnumTypeToUnderlyingTypeConversion::Write , cmajor::symbols::FunctionSymbol::Write , cmajor::symbols::StringFunctionContainerSymbol::Write , cmajor::symbols::StringLengthFunction::Write , cmajor::symbols::TemplateParameterSymbol::Write , cmajor::symbols::TypeSymbol::Write , cmajor::symbols::UnderlyingTypeToEnumTypeConversion::Write

Calls: cmajor::symbols::Symbol::IsExportSymbol , cmajor::symbols::Symbol::Write , cmajor::symbols::SymbolWriter::GetBinaryWriter , cmajor::symbols::SymbolWriter::Write

Called by: cmajor::symbols::ConceptSymbol::Write , cmajor::symbols::FunctionSymbol::Write , cmajor::symbols::SymbolTable::Write , cmajor::symbols::TypeSymbol::Write


top | up | prev | next