Mana
mana::SymbolFactory Class Referencefinal

#include <SymbolFactory.h>

Inheritance diagram for mana::SymbolFactory:
mana::Noncopyable

Public Member Functions

bool IsValid (std::shared_ptr< Symbol > symbolEntry)
 
 SymbolFactory (const std::shared_ptr< CodeBuffer > &codeBuffer, const std::shared_ptr< DataBuffer > &dataBuffer, const std::shared_ptr< StringPool > &stringPool, const std::shared_ptr< TypeDescriptorFactory > &typeDescriptorFactory)
 
 ~SymbolFactory ()=default
 
std::shared_ptr< SymbolCreateConstInt (const std::string_view name, const int32_t value)
 
std::shared_ptr< SymbolCreateConstFloat (const std::string_view name, const float value)
 
std::shared_ptr< SymbolCreateConstString (const std::string_view name, const std::string_view text)
 
std::shared_ptr< SymbolCreateVariable (const std::string_view name, const std::shared_ptr< TypeDescriptor > &type, const bool staticVariable, const bool isBlockOpened, const bool isFunctionOpened)
 
std::shared_ptr< SymbolCreateLabel (const std::string_view name)
 
std::shared_ptr< SymbolCreateFunction (const std::string_view name, const bool isActorOrStructOpened)
 
std::shared_ptr< SymbolCreateType (const std::string_view name, const std::shared_ptr< TypeDescriptor > &type)
 
void Destroy (const std::string_view name)
 
bool Each (std::function< bool(const std::shared_ptr< Symbol > &)> function)
 
bool Each (std::function< bool(const std::shared_ptr< const Symbol > &)> function) const
 
std::shared_ptr< SymbolLookup (const std::string_view name) const
 
void Define (const std::string_view name, std::shared_ptr< Symbol > symbolEntry)
 
void Define (std::shared_ptr< Symbol > symbolEntry)
 
void Undefine (const std::string_view name)
 
void Undefine (std::shared_ptr< Symbol > symbolEntry)
 
void OpenBlock (const int32_t address)
 
int32_t CloseBlock ()
 
size_t GetBlockDepth () const
 
void EachBlock (std::function< void(const std::shared_ptr< Symbol > &)> function)
 
void ExtendModule (const std::shared_ptr< Symbol > &symbol)
 
void RegisterToBlock (const std::shared_ptr< Symbol > &symbolEntry)
 
void RegisterToBlock (const std::shared_ptr< TypeDescriptor > &typeDescriptor)
 
std::shared_ptr< SymbolGetLastSymbolEntryInBlock () const
 
std::shared_ptr< TypeDescriptorGetLastTypeDescriptorInBlock () const
 
int32_t OpenBlock (const bool resetMaxFrameMemoryAddress)
 
bool IsOpenBlock () const
 
void OpenFunction (const std::shared_ptr< SyntaxNode > &node, const bool is_action)
 
void OpenFunction2 (const std::shared_ptr< const Symbol > &function) const
 
void CloseFunction (const std::shared_ptr< SyntaxNode > &node, const bool is_action)
 
bool IsFunctionOpened () const
 
void BeginNativeFunction ()
 
void CloseNativeFunction (const std::shared_ptr< Symbol > &function, const std::shared_ptr< TypeDescriptor > &type)
 
void BeginRegistrationStructure ()
 
void CommitRegistrationStructure (const std::string_view name)
 
void OpenStructure (const std::string_view name)
 
void CloseStructure ()
 
void BeginRegistrationActor (const std::shared_ptr< Symbol > &symbolEntry)
 
void CommitRegistrationActor (const std::string_view name, const std::string_view parent, const std::shared_ptr< TypeDescriptor > &type, const bool phantom)
 
bool IsActorOrStructerOpened () const
 
void OpenActor (const std::string_view name)
 
void CloseActor ()
 
size_t GetNumberOfActors () const
 
void BeginRegistrationModule (const std::shared_ptr< Symbol > &symbolEntry)
 
void CommitRegistrationModule (const std::string_view name)
 
void OpenModule (const std::shared_ptr< Symbol > &symbolEntry)
 
void CloseModule (const std::string_view name)
 
bool IsModuleOpened () const
 
void ExtendModule (const std::string_view name)
 
std::shared_ptr< TypeDescriptorGetCurrentBlockTypeDescriptor () const
 
void AddRequest (const std::shared_ptr< CodeGenerator > &codeGenerator, const IntermediateLanguage opcode, const std::shared_ptr< SyntaxNode > &level, const std::shared_ptr< SyntaxNode > &actor, const std::string_view action) const
 
void AddJoin (const std::shared_ptr< CodeGenerator > &codeGenerator, const std::shared_ptr< SyntaxNode > &level, const std::shared_ptr< SyntaxNode > &actor) const
 
void AllocateMemory (const std::shared_ptr< Symbol > &symbolEntry, std::shared_ptr< TypeDescriptor > type, Symbol::MemoryTypeId)
 
int32_t GetStaticMemoryAddress () const
 
void SetStaticMemoryAddress (const int32_t size)
 
int32_t GetGlobalMemoryAddress () const
 
void SetGlobalMemoryAddress (const int32_t size)
 
void CheckUndefine ()
 
bool GenerateActorInformation (OutputStream &stream) const
 
void symbol_open_actor_register_member (const std::shared_ptr< Symbol > &symbol)
 
void symbol_open_actor_register_member (const std::shared_ptr< TypeDescriptor > &typeDescriptor)
 
address_t GetReturnAddressList () const
 
void SetReturnAddressList (const address_t returnAddressList)
 
void Dump (std::ofstream &output) const
 
void DumpFunctionNameFromAddress (std::ofstream &output, const int32_t address) const
 
void PrintHeader ()
 
void PrintFooter (const std::string_view, const std::shared_ptr< TypeDescriptor > &type)
 
void PrintEntry (const std::shared_ptr< Symbol > &symbolEntry, const std::shared_ptr< TypeDescriptor > &type)
 
void PrintDummyGlobalVariable (size_t size)
 

Constructor & Destructor Documentation

◆ SymbolFactory()

mana::SymbolFactory::SymbolFactory ( const std::shared_ptr< CodeBuffer > &  codeBuffer,
const std::shared_ptr< DataBuffer > &  dataBuffer,
const std::shared_ptr< StringPool > &  stringPool,
const std::shared_ptr< TypeDescriptorFactory > &  typeDescriptorFactory 
)

◆ ~SymbolFactory()

mana::SymbolFactory::~SymbolFactory ( )
default

Member Function Documentation

◆ AddJoin()

void mana::SymbolFactory::AddJoin ( const std::shared_ptr< CodeGenerator > &  codeGenerator,
const std::shared_ptr< SyntaxNode > &  level,
const std::shared_ptr< SyntaxNode > &  actor 
) const

◆ AddRequest()

void mana::SymbolFactory::AddRequest ( const std::shared_ptr< CodeGenerator > &  codeGenerator,
const IntermediateLanguage  opcode,
const std::shared_ptr< SyntaxNode > &  level,
const std::shared_ptr< SyntaxNode > &  actor,
const std::string_view  action 
) const

◆ AllocateMemory()

void mana::SymbolFactory::AllocateMemory ( const std::shared_ptr< Symbol > &  symbolEntry,
std::shared_ptr< TypeDescriptor type,
Symbol::MemoryTypeId  parameter 
)

◆ BeginNativeFunction()

void mana::SymbolFactory::BeginNativeFunction ( )

◆ BeginRegistrationActor()

void mana::SymbolFactory::BeginRegistrationActor ( const std::shared_ptr< Symbol > &  symbolEntry)

◆ BeginRegistrationModule()

void mana::SymbolFactory::BeginRegistrationModule ( const std::shared_ptr< Symbol > &  symbolEntry)

◆ BeginRegistrationStructure()

void mana::SymbolFactory::BeginRegistrationStructure ( )

◆ CheckUndefine()

void mana::SymbolFactory::CheckUndefine ( )

◆ CloseActor()

void mana::SymbolFactory::CloseActor ( )

◆ CloseBlock()

int32_t mana::SymbolFactory::CloseBlock ( )

◆ CloseFunction()

void mana::SymbolFactory::CloseFunction ( const std::shared_ptr< SyntaxNode > &  node,
const bool  is_action 
)

◆ CloseModule()

void mana::SymbolFactory::CloseModule ( const std::string_view  name)

◆ CloseNativeFunction()

void mana::SymbolFactory::CloseNativeFunction ( const std::shared_ptr< Symbol > &  function,
const std::shared_ptr< TypeDescriptor > &  type 
)

◆ CloseStructure()

void mana::SymbolFactory::CloseStructure ( )

◆ CommitRegistrationActor()

void mana::SymbolFactory::CommitRegistrationActor ( const std::string_view  name,
const std::string_view  parent,
const std::shared_ptr< TypeDescriptor > &  type,
const bool  phantom 
)

◆ CommitRegistrationModule()

void mana::SymbolFactory::CommitRegistrationModule ( const std::string_view  name)

◆ CommitRegistrationStructure()

void mana::SymbolFactory::CommitRegistrationStructure ( const std::string_view  name)

◆ CreateConstFloat()

std::shared_ptr< Symbol > mana::SymbolFactory::CreateConstFloat ( const std::string_view  name,
const float  value 
)

◆ CreateConstInt()

std::shared_ptr< Symbol > mana::SymbolFactory::CreateConstInt ( const std::string_view  name,
const int32_t  value 
)

◆ CreateConstString()

std::shared_ptr< Symbol > mana::SymbolFactory::CreateConstString ( const std::string_view  name,
const std::string_view  text 
)

◆ CreateFunction()

std::shared_ptr< Symbol > mana::SymbolFactory::CreateFunction ( const std::string_view  name,
const bool  isActorOrStructOpened 
)

◆ CreateLabel()

std::shared_ptr< Symbol > mana::SymbolFactory::CreateLabel ( const std::string_view  name)

◆ CreateType()

std::shared_ptr< Symbol > mana::SymbolFactory::CreateType ( const std::string_view  name,
const std::shared_ptr< TypeDescriptor > &  type 
)

◆ CreateVariable()

std::shared_ptr< Symbol > mana::SymbolFactory::CreateVariable ( const std::string_view  name,
const std::shared_ptr< TypeDescriptor > &  type,
const bool  staticVariable,
const bool  isBlockOpened,
const bool  isFunctionOpened 
)

◆ Define() [1/2]

void mana::SymbolFactory::Define ( const std::string_view  name,
std::shared_ptr< Symbol symbolEntry 
)

◆ Define() [2/2]

void mana::SymbolFactory::Define ( std::shared_ptr< Symbol symbolEntry)

◆ Destroy()

void mana::SymbolFactory::Destroy ( const std::string_view  name)

◆ Dump()

void mana::SymbolFactory::Dump ( std::ofstream &  output) const

◆ DumpFunctionNameFromAddress()

void mana::SymbolFactory::DumpFunctionNameFromAddress ( std::ofstream &  output,
const int32_t  address 
) const

◆ Each() [1/2]

bool mana::SymbolFactory::Each ( std::function< bool(const std::shared_ptr< const Symbol > &)>  function) const
inline

◆ Each() [2/2]

bool mana::SymbolFactory::Each ( std::function< bool(const std::shared_ptr< Symbol > &)>  function)
inline

◆ EachBlock()

void mana::SymbolFactory::EachBlock ( std::function< void(const std::shared_ptr< Symbol > &)>  function)

◆ ExtendModule() [1/2]

void mana::SymbolFactory::ExtendModule ( const std::shared_ptr< Symbol > &  symbol)

◆ ExtendModule() [2/2]

void mana::SymbolFactory::ExtendModule ( const std::string_view  name)

◆ GenerateActorInformation()

bool mana::SymbolFactory::GenerateActorInformation ( OutputStream stream) const

◆ GetBlockDepth()

size_t mana::SymbolFactory::GetBlockDepth ( ) const

◆ GetCurrentBlockTypeDescriptor()

std::shared_ptr<TypeDescriptor> mana::SymbolFactory::GetCurrentBlockTypeDescriptor ( ) const
inline

◆ GetGlobalMemoryAddress()

int32_t mana::SymbolFactory::GetGlobalMemoryAddress ( ) const

◆ GetLastSymbolEntryInBlock()

std::shared_ptr< Symbol > mana::SymbolFactory::GetLastSymbolEntryInBlock ( ) const

◆ GetLastTypeDescriptorInBlock()

std::shared_ptr< TypeDescriptor > mana::SymbolFactory::GetLastTypeDescriptorInBlock ( ) const

◆ GetNumberOfActors()

size_t mana::SymbolFactory::GetNumberOfActors ( ) const

◆ GetReturnAddressList()

address_t mana::SymbolFactory::GetReturnAddressList ( ) const
inline

◆ GetStaticMemoryAddress()

int32_t mana::SymbolFactory::GetStaticMemoryAddress ( ) const

◆ IsActorOrStructerOpened()

bool mana::SymbolFactory::IsActorOrStructerOpened ( ) const

◆ IsFunctionOpened()

bool mana::SymbolFactory::IsFunctionOpened ( ) const
inline

◆ IsModuleOpened()

bool mana::SymbolFactory::IsModuleOpened ( ) const
inline

◆ IsOpenBlock()

bool mana::SymbolFactory::IsOpenBlock ( ) const

◆ IsValid()

bool mana::SymbolFactory::IsValid ( std::shared_ptr< Symbol symbolEntry)

◆ Lookup()

std::shared_ptr< Symbol > mana::SymbolFactory::Lookup ( const std::string_view  name) const

◆ OpenActor()

void mana::SymbolFactory::OpenActor ( const std::string_view  name)

◆ OpenBlock() [1/2]

int32_t mana::SymbolFactory::OpenBlock ( const bool  resetMaxFrameMemoryAddress)

◆ OpenBlock() [2/2]

void mana::SymbolFactory::OpenBlock ( const int32_t  address)

◆ OpenFunction()

void mana::SymbolFactory::OpenFunction ( const std::shared_ptr< SyntaxNode > &  node,
const bool  is_action 
)

◆ OpenFunction2()

void mana::SymbolFactory::OpenFunction2 ( const std::shared_ptr< const Symbol > &  function) const

◆ OpenModule()

void mana::SymbolFactory::OpenModule ( const std::shared_ptr< Symbol > &  symbolEntry)

◆ OpenStructure()

void mana::SymbolFactory::OpenStructure ( const std::string_view  name)

◆ PrintDummyGlobalVariable()

void mana::SymbolFactory::PrintDummyGlobalVariable ( size_t  size)

◆ PrintEntry()

void mana::SymbolFactory::PrintEntry ( const std::shared_ptr< Symbol > &  symbolEntry,
const std::shared_ptr< TypeDescriptor > &  type 
)

◆ PrintFooter()

void mana::SymbolFactory::PrintFooter ( const std::string_view  name,
const std::shared_ptr< TypeDescriptor > &  type 
)

◆ PrintHeader()

void mana::SymbolFactory::PrintHeader ( )

◆ RegisterToBlock() [1/2]

void mana::SymbolFactory::RegisterToBlock ( const std::shared_ptr< Symbol > &  symbolEntry)

◆ RegisterToBlock() [2/2]

void mana::SymbolFactory::RegisterToBlock ( const std::shared_ptr< TypeDescriptor > &  typeDescriptor)

◆ SetGlobalMemoryAddress()

void mana::SymbolFactory::SetGlobalMemoryAddress ( const int32_t  size)

◆ SetReturnAddressList()

void mana::SymbolFactory::SetReturnAddressList ( const address_t  returnAddressList)
inline

◆ SetStaticMemoryAddress()

void mana::SymbolFactory::SetStaticMemoryAddress ( const int32_t  size)

◆ symbol_open_actor_register_member() [1/2]

void mana::SymbolFactory::symbol_open_actor_register_member ( const std::shared_ptr< Symbol > &  symbol)

◆ symbol_open_actor_register_member() [2/2]

void mana::SymbolFactory::symbol_open_actor_register_member ( const std::shared_ptr< TypeDescriptor > &  typeDescriptor)

◆ Undefine() [1/2]

void mana::SymbolFactory::Undefine ( const std::string_view  name)

◆ Undefine() [2/2]

void mana::SymbolFactory::Undefine ( std::shared_ptr< Symbol symbolEntry)

The documentation for this class was generated from the following files: