#include <SemanticAnalyzer.h>
◆ SemanticAnalyzer()
mana::SemanticAnalyzer::SemanticAnalyzer |
( |
const std::shared_ptr< SymbolFactory > & |
symbolFactory, |
|
|
const std::shared_ptr< TypeDescriptorFactory > & |
typeDescriptorFactory |
|
) |
| |
|
explicit |
◆ ~SemanticAnalyzer()
virtual mana::SemanticAnalyzer::~SemanticAnalyzer |
( |
| ) |
|
|
virtualdefault |
◆ GetSymbolFactory()
const std::shared_ptr< SymbolFactory > & mana::SemanticAnalyzer::GetSymbolFactory |
( |
| ) |
|
|
protected |
◆ GetTypeDescriptorFactory()
◆ Lookup()
std::shared_ptr< Symbol > mana::SemanticAnalyzer::Lookup |
( |
const std::string_view |
name | ) |
const |
|
protected |
◆ ResolveDeclarator()
void mana::SemanticAnalyzer::ResolveDeclarator |
( |
const std::shared_ptr< SyntaxNode > & |
node, |
|
|
const bool |
isStaticVariable |
|
) |
| |
Symbol::CreateVariableを呼び出し Symbolをnewしてnodeに設定します
- Parameters
-
[in] | node | Declaratorノード |
[in] | isStaticVariable | 静的変数 |
◆ ResolveTypeDescription()
void mana::SemanticAnalyzer::ResolveTypeDescription |
( |
const std::shared_ptr< SyntaxNode > & |
node | ) |
|
nodeに登録されたtypeが無ければシンボルを検索してそのtypeをnodeに設定します
- Parameters
-
[in] | node | TypeDescriptionノード |
◆ ResolveTypeFromChildNode()
void mana::SemanticAnalyzer::ResolveTypeFromChildNode |
( |
const std::shared_ptr< SyntaxNode > & |
node | ) |
const |
◆ ResolveVariableDescription()
void mana::SemanticAnalyzer::ResolveVariableDescription |
( |
const std::shared_ptr< SyntaxNode > & |
node, |
|
|
const Symbol::MemoryTypeId |
memoryTypeId, |
|
|
const bool |
isStaticVariable |
|
) |
| |
両辺のTypeDescriptionとDeclaratorを解決して SymbolFactory::AllocateMemoryを使ってメモリを割り当てます
- Parameters
-
[in] | node | DeclareVariableノード |
[in] | memoryTypeId | メモリタイプ |
[in] | isStaticVariable | 静的変数 |
◆ ResolveVariableSize()
std::shared_ptr< TypeDescriptor > mana::SemanticAnalyzer::ResolveVariableSize |
( |
const std::shared_ptr< SyntaxNode > & |
node | ) |
|
type_create_arrayを使って配列の型をnewします
- Parameters
-
- Returns
- 配列type_description
◆ SearchSymbolFromName()
bool mana::SemanticAnalyzer::SearchSymbolFromName |
( |
const std::shared_ptr< SyntaxNode > & |
node | ) |
|
Lookupを呼び出しSymbolを検索してNodeに設定します
- Parameters
-
◆ SetCurrentFileInformation()
void mana::SemanticAnalyzer::SetCurrentFileInformation |
( |
const std::shared_ptr< SyntaxNode > & |
node | ) |
|
The documentation for this class was generated from the following files: