summaryrefslogtreecommitdiffstats
path: root/src/generator.cpp
diff options
context:
space:
mode:
authorMatthias Schiffer <mschiffer@universe-factory.net>2015-04-06 00:22:44 +0200
committerMatthias Schiffer <mschiffer@universe-factory.net>2015-04-06 00:22:44 +0200
commit6fb60a72012f97f846477eb370d1a0706b1b4bc2 (patch)
tree5cc40d0af6a14f3c2b57434419b2fb73bbacf2ac /src/generator.cpp
parent696d94d796f76d1d83c740b184f0cf8b9cbfc9d3 (diff)
downloadsolar-6fb60a72012f97f846477eb370d1a0706b1b4bc2.tar
solar-6fb60a72012f97f846477eb370d1a0706b1b4bc2.zip
generator: detect LR(0) conflicts
Diffstat (limited to 'src/generator.cpp')
-rw-r--r--src/generator.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/generator.cpp b/src/generator.cpp
index 6198aba..d63b859 100644
--- a/src/generator.cpp
+++ b/src/generator.cpp
@@ -97,9 +97,9 @@ void generator_t::generate_itemsets() {
auto added = add_set(entry.second);
if (entry.first.get_type() == SYMBOL_TYPE_NONTERM)
- gotos.emplace(std::make_pair(cur.second, entry.first.get_value()), added.first->second);
+ add_goto(cur.second, entry.first.get_value(), added.first->second);
else
- shifts.emplace(std::make_pair(cur.second, entry.first), added.first->second);
+ add_shift(cur.second, entry.first, added.first->second);
if (added.second)
queue.push(*added.first);
@@ -109,9 +109,9 @@ void generator_t::generate_itemsets() {
auto it = rule_ids.find(item);
if (it != rule_ids.end()) {
if (it->second)
- reductions.emplace(cur.second, it->second);
+ add_reduction(cur.second, it->second);
else
- shifts.emplace(std::make_pair(cur.second, symbol_t::make_nonterm("")), 0);
+ add_shift(cur.second, symbol_t::make_nonterm(""), 0);
}
}
}