diff options
Diffstat (limited to 'include/cru/parse/Grammar.h')
-rw-r--r-- | include/cru/parse/Grammar.h | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/include/cru/parse/Grammar.h b/include/cru/parse/Grammar.h index 7dd1eec0..522cc0fd 100644 --- a/include/cru/parse/Grammar.h +++ b/include/cru/parse/Grammar.h @@ -1,5 +1,6 @@ #pragma once #include "Production.h" +#include "Terminal.h" #include <unordered_map> #include <vector> @@ -17,9 +18,9 @@ class CRU_PARSE_API Grammar : public Object { public: void SetStartSymbol(Nonterminal* start_symbol); - Terminal* CreateTerminal(String name); - Nonterminal* CreateNonterminal(String name); - Production* CreateProduction(String name, Nonterminal* left, + Terminal* CreateTerminal(std::string name); + Nonterminal* CreateNonterminal(std::string name); + Production* CreateProduction(std::string name, Nonterminal* left, std::vector<Symbol*> right); bool RemoveSymbol(Symbol* symbol); @@ -50,7 +51,7 @@ class CRU_PARSE_API Grammar : public Object { void LeftFactor(); public: - String ProductionsToString() const; + std::string ProductionsToString() const; private: Nonterminal* start_symbol_ = nullptr; |