Mana
mana::CodeGenerator Class Referencefinal

#include <CodeGenerator.h>

Inheritance diagram for mana::CodeGenerator:
mana::Noncopyable

Public Member Functions

 CodeGenerator ()=delete
 
 CodeGenerator (const std::shared_ptr< CodeBuffer > &codeBuffer, const std::shared_ptr< DataBuffer > &dataBuffer, const std::shared_ptr< GlobalSemanticAnalyzer > &globalSemanticAnalyzer, const std::shared_ptr< LocalSemanticAnalyzer > &localSemanticAnalyzer, const std::shared_ptr< SymbolFactory > &symbolFactory, const std::shared_ptr< TypeDescriptorFactory > &typeDescriptorFactory)
 
void GenerateCode (std::shared_ptr< SyntaxNode > node, const int32_t enableLoad)
 
void Expression (const std::shared_ptr< SyntaxNode > &tree, const int32_t enableAssign)
 
const std::shared_ptr< GlobalAddressResolver > & GetGlobalAddressResolver ()
 
const std::shared_ptr< LocalAddressResolver > & GetLocalAddressResolver ()
 
void Dump (std::ofstream &output) const
 

Detailed Description

コード生成クラス

Constructor & Destructor Documentation

◆ CodeGenerator() [1/2]

mana::CodeGenerator::CodeGenerator ( )
delete

◆ CodeGenerator() [2/2]

mana::CodeGenerator::CodeGenerator ( const std::shared_ptr< CodeBuffer > &  codeBuffer,
const std::shared_ptr< DataBuffer > &  dataBuffer,
const std::shared_ptr< GlobalSemanticAnalyzer > &  globalSemanticAnalyzer,
const std::shared_ptr< LocalSemanticAnalyzer > &  localSemanticAnalyzer,
const std::shared_ptr< SymbolFactory > &  symbolFactory,
const std::shared_ptr< TypeDescriptorFactory > &  typeDescriptorFactory 
)
explicit

Member Function Documentation

◆ Dump()

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

◆ Expression()

void mana::CodeGenerator::Expression ( const std::shared_ptr< SyntaxNode > &  tree,
const int32_t  enableAssign 
)

ノードを巡りながら指揮を中間言語に翻訳します

式の評価

Parameters
tree式のSyntaxNode
enableAssigntrueならば代入式、falseならばそれ以外

◆ GenerateCode()

void mana::CodeGenerator::GenerateCode ( std::shared_ptr< SyntaxNode node,
const int32_t  enableLoad 
)

ノードを辿りながら中間言語に翻訳します

Parameters
nodeノード
enableLoadtrueならばload命令は有効、falseならばload命令は無効

◆ GetGlobalAddressResolver()

const std::shared_ptr< GlobalAddressResolver > & mana::CodeGenerator::GetGlobalAddressResolver ( )

グローバルアドレスを解決する

◆ GetLocalAddressResolver()

const std::shared_ptr< LocalAddressResolver > & mana::CodeGenerator::GetLocalAddressResolver ( )

ローカルアドレスを解決する


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