diff options
Diffstat (limited to 'src/parse/Grammar.cpp')
-rw-r--r-- | src/parse/Grammar.cpp | 10 |
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 |