diff options
author | Matthias Schiffer <mschiffer@universe-factory.net> | 2015-04-02 01:43:43 +0200 |
---|---|---|
committer | Matthias Schiffer <mschiffer@universe-factory.net> | 2015-04-02 01:43:43 +0200 |
commit | ab2d315aa2daf404bc6abab2f8f20f72803b8898 (patch) | |
tree | c8f0e3eb20b4ec3c80e5dc02e2bb82833066a901 /src/generator.cpp | |
parent | 531a4de1fcea1df2b2b0d9303d82aa23c6285fb0 (diff) | |
download | solar-ab2d315aa2daf404bc6abab2f8f20f72803b8898.tar solar-ab2d315aa2daf404bc6abab2f8f20f72803b8898.zip |
generator: remove printing, add some getters
Diffstat (limited to 'src/generator.cpp')
-rw-r--r-- | src/generator.cpp | 72 |
1 files changed, 0 insertions, 72 deletions
diff --git a/src/generator.cpp b/src/generator.cpp index c6aec3a..a9a20aa 100644 --- a/src/generator.cpp +++ b/src/generator.cpp @@ -119,39 +119,6 @@ void generator_t::generate_itemsets() { } } -void generator_t::print_symbol(const symbol_t &sym) { - switch (sym.get_type()) { - case SYMBOL_TYPE_CHAR: - printf("'%c'", sym.get_value()[0]); - break; - - default: - printf("%s", sym.get_value().c_str()); - } -} - -void generator_t::print_item(const item_t &item, bool point) { - printf("%s |=", item.get_lhs().c_str()); - - for (size_t i = 0; i <= item.get_rhs().size(); i++) { - if (i == item.get_point() && point) - printf(" ."); - - if (i == item.get_rhs().size()) - break; - - printf(" "); - print_symbol(item.get_rhs()[i]); - } - - printf("\n"); -} - -void generator_t::print_set(const std::set<item_t> &set) { - for (const item_t &item : set) - print_item(item, true); -} - generator_t::generator_t(const std::vector<item_t> &rules0) : rules(rules0) { for (size_t i = 0; i < rules.size(); i++) { item_t rule = rules[i]; @@ -172,45 +139,6 @@ generator_t::generator_t(const std::vector<item_t> &rules0) : rules(rules0) { } generate_itemsets(); - - printf("Rules:\n"); - for (size_t i = 0; i < rules.size(); i++) { - printf("(%u) ", unsigned(i)); - print_item(rules[i], false); - } - printf("\n"); - - const std::set<item_t> *setlist[itemsets.size()]; - for (const auto &entry : itemsets) - setlist[entry.second] = &entry.first; - - for (size_t i = 0; i < itemsets.size(); i++) { - printf("Item %u:\n", unsigned(i)); - print_set(*setlist[i]); - printf("\n"); - } - - printf("Actions:\n"); - for (const auto &a : shifts) { - printf("%u ", unsigned(a.first.first)); - - if (!a.first.second.get_value().empty()) { - print_symbol(a.first.second); - printf(" -> s%u\n", unsigned(a.second)); - } - else { - printf("$ -> acc\n"); - } - } - - for (const auto &a : reductions) - printf("%u -> r%u\n", unsigned(a.first), unsigned(a.second)); - - printf("\n"); - - printf("Gotos:\n"); - for (const auto &g : gotos) - printf("%u %s -> %u\n", unsigned(g.first.first), g.first.second.get_value().c_str(), unsigned(g.second)); } } |