aboutsummaryrefslogtreecommitdiff
path: root/src/parse/Grammar.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/parse/Grammar.cpp')
-rw-r--r--src/parse/Grammar.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/parse/Grammar.cpp b/src/parse/Grammar.cpp
index 5486542b..8253c3c3 100644
--- a/src/parse/Grammar.cpp
+++ b/src/parse/Grammar.cpp
@@ -112,4 +112,14 @@ Grammar* Grammar::Clone() const {
return g;
}
+std::unordered_map<Nonterminal*, std::vector<Production*>>
+Grammar::GenerateLeftProductionMap() const {
+ std::unordered_map<Nonterminal*, std::vector<Production*>> result;
+ for (auto p : productions_) {
+ result[p->GetLeft()].push_back(p);
+ }
+ return result;
+}
+
+void Grammar::EliminateLeftRecursions() {}
} // namespace cru::parse