#include <SemanticAnalyzer.h>
◆ SemanticAnalyzer()
| mana::SemanticAnalyzer::SemanticAnalyzer |
( |
const std::shared_ptr< SymbolFactory > & |
symbolFactory, |
|
|
const std::shared_ptr< TypeDescriptorFactory > & |
typeDescriptorFactory, |
|
|
const std::shared_ptr< StringPool > & |
stringPool |
|
) |
| |
|
explicit |
◆ ~SemanticAnalyzer()
| virtual mana::SemanticAnalyzer::~SemanticAnalyzer |
( |
| ) |
|
|
virtualdefault |
◆ CreateConstSymbol()
| std::shared_ptr< Symbol > mana::SemanticAnalyzer::CreateConstSymbol |
( |
const std::string_view |
name, |
|
|
const std::shared_ptr< TypeDescriptor > & |
declaredType, |
|
|
const ConstValue & |
value |
|
) |
| |
|
protected |
◆ EvaluateConstExpression()
| bool mana::SemanticAnalyzer::EvaluateConstExpression |
( |
const std::shared_ptr< SyntaxNode > & |
node, |
|
|
ConstValue & |
value |
|
) |
| |
|
protected |
◆ GetStringPool()
| const std::shared_ptr< StringPool > & mana::SemanticAnalyzer::GetStringPool |
( |
| ) |
const |
|
protected |
◆ GetSymbolFactory()
| const std::shared_ptr< SymbolFactory > & mana::SemanticAnalyzer::GetSymbolFactory |
( |
| ) |
const |
|
protected |
◆ GetTypeDescriptorFactory()
| const std::shared_ptr< TypeDescriptorFactory > & mana::SemanticAnalyzer::GetTypeDescriptorFactory |
( |
| ) |
const |
|
protected |
◆ IsConstTypeCompatible()
| bool mana::SemanticAnalyzer::IsConstTypeCompatible |
( |
const std::shared_ptr< TypeDescriptor > & |
declaredType, |
|
|
const std::shared_ptr< TypeDescriptor > & |
expressionType |
|
) |
| const |
|
protected |
◆ 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 | ) |
|
|
static |
◆ 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 | ) |
|
|
static |
The documentation for this class was generated from the following files: