aboutsummaryrefslogtreecommitdiff
path: root/include/cru/parse/Grammar.h
diff options
context:
space:
mode:
authorYuqian Yang <crupest@crupest.life>2025-10-17 08:44:07 +0800
committerYuqian Yang <crupest@crupest.life>2025-10-17 08:44:07 +0800
commitaa05a34dd5e4a56563cbfeab273785ce0e363089 (patch)
treebc23e1807fcd647d06a971c64cd5d4460a338412 /include/cru/parse/Grammar.h
parent3c8d5c8f732239a8b50418be27464e30b9dddeae (diff)
downloadcru-aa05a34dd5e4a56563cbfeab273785ce0e363089.tar.gz
cru-aa05a34dd5e4a56563cbfeab273785ce0e363089.tar.bz2
cru-aa05a34dd5e4a56563cbfeab273785ce0e363089.zip
Parse remove String.
Diffstat (limited to 'include/cru/parse/Grammar.h')
-rw-r--r--include/cru/parse/Grammar.h9
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;