9 #include "../runner/common/Setup.h"
22 const std::shared_ptr<SymbolFactory>& symbolFactory,
23 const std::shared_ptr<TypeDescriptorFactory>& typeDescriptorFactory,
24 const std::shared_ptr<StringPool>& stringPool);
47 std::shared_ptr<TypeDescriptor>
ResolveVariableSize(
const std::shared_ptr<SyntaxNode>& node);
55 void ResolveDeclarator(
const std::shared_ptr<SyntaxNode>& node,
const bool isStaticVariable);
73 [[nodiscard]] std::shared_ptr<Symbol>
Lookup(
const std::string_view name)
const;
80 std::shared_ptr<SymbolFactory> mSymbolFactory;
81 std::shared_ptr<StringPool> mStringPool;
82 std::shared_ptr<TypeDescriptorFactory> mTypeDescriptorFactory;
Definition: SemanticAnalyzer.h:19
const std::shared_ptr< TypeDescriptorFactory > & GetTypeDescriptorFactory() const
Definition: SemanticAnalyzer.cpp:192
SemanticAnalyzer(const std::shared_ptr< SymbolFactory > &symbolFactory, const std::shared_ptr< TypeDescriptorFactory > &typeDescriptorFactory, const std::shared_ptr< StringPool > &stringPool)
Definition: SemanticAnalyzer.cpp:15
static void SetCurrentFileInformation(const std::shared_ptr< SyntaxNode > &node)
Definition: SemanticAnalyzer.cpp:25
void ResolveTypeDescription(const std::shared_ptr< SyntaxNode > &node)
Definition: SemanticAnalyzer.cpp:55
void ResolveDeclarator(const std::shared_ptr< SyntaxNode > &node, const bool isStaticVariable)
Definition: SemanticAnalyzer.cpp:74
std::shared_ptr< Symbol > Lookup(const std::string_view name) const
Definition: SemanticAnalyzer.cpp:177
static void ResolveTypeFromChildNode(const std::shared_ptr< SyntaxNode > &node)
Definition: SemanticAnalyzer.cpp:149
const std::shared_ptr< StringPool > & GetStringPool() const
Definition: SemanticAnalyzer.cpp:187
bool SearchSymbolFromName(const std::shared_ptr< SyntaxNode > &node)
Definition: SemanticAnalyzer.cpp:32
void ResolveVariableDescription(const std::shared_ptr< SyntaxNode > &node, const Symbol::MemoryTypeId memoryTypeId, const bool isStaticVariable)
Definition: SemanticAnalyzer.cpp:136
std::shared_ptr< TypeDescriptor > ResolveVariableSize(const std::shared_ptr< SyntaxNode > &node)
Definition: SemanticAnalyzer.cpp:94
virtual ~SemanticAnalyzer()=default
const std::shared_ptr< SymbolFactory > & GetSymbolFactory() const
Definition: SemanticAnalyzer.cpp:182
MemoryTypeId
Definition: Symbol.h:62
Definition: CodeBuffer.cpp:12
Definition: Noncopyable.h:18