Mana
GlobalSemanticAnalyzer.h
Go to the documentation of this file.
1 
8 #pragma once
9 #include "SemanticAnalyzer.h"
10 
11 namespace mana
12 {
13  class SyntaxNode;
14 
15  /*
16  構造体、アクター、モジュール、関数などグローバルな範囲の文法を解析します
17  */
19  {
20  public:
22  const std::shared_ptr<SymbolFactory>& symbolFactory,
23  const std::shared_ptr<TypeDescriptorFactory>& typeDescriptorFactory);
24  ~GlobalSemanticAnalyzer() override = default;
25 
30  void Resolve(std::shared_ptr<SyntaxNode> node);
31 
32  private:
33  size_t CalcArgumentCount(const size_t count, const std::shared_ptr<const SyntaxNode>& node) const;
34 
35  private:
36  bool mStaticBlockOpened = false;
37  };
38 }
Definition: GlobalSemanticAnalyzer.h:19
void Resolve(std::shared_ptr< SyntaxNode > node)
Definition: GlobalSemanticAnalyzer.cpp:200
~GlobalSemanticAnalyzer() override=default
GlobalSemanticAnalyzer(const std::shared_ptr< SymbolFactory > &symbolFactory, const std::shared_ptr< TypeDescriptorFactory > &typeDescriptorFactory)
Definition: GlobalSemanticAnalyzer.cpp:14
Definition: SemanticAnalyzer.h:17
Definition: CodeBuffer.cpp:12