summaryrefslogtreecommitdiffstats
path: root/src/generator.hpp
diff options
context:
space:
mode:
authorMatthias Schiffer <mschiffer@universe-factory.net>2015-04-02 11:52:05 +0200
committerMatthias Schiffer <mschiffer@universe-factory.net>2015-04-02 11:52:05 +0200
commit61c3aa15c347624cb3c4a3106235d061e718ccad (patch)
tree13e3b3c65ab36636e6b62c8c1315e5030d37ccb9 /src/generator.hpp
parentab2d315aa2daf404bc6abab2f8f20f72803b8898 (diff)
downloadsolar-61c3aa15c347624cb3c4a3106235d061e718ccad.tar
solar-61c3aa15c347624cb3c4a3106235d061e718ccad.zip
Add simple output generator
Diffstat (limited to 'src/generator.hpp')
-rw-r--r--src/generator.hpp18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/generator.hpp b/src/generator.hpp
index 5396d3e..4c5f9af 100644
--- a/src/generator.hpp
+++ b/src/generator.hpp
@@ -47,7 +47,7 @@ private:
std::map<std::pair<size_t, symbol_t>, size_t> shifts;
std::map<size_t, size_t> reductions;
- std::map<std::pair<size_t, symbol_t>, size_t> gotos;
+ std::map<std::pair<size_t, std::string>, size_t> gotos;
void close_set(std::set<item_t> *set);
std::set<item_t> get_set(const std::string &nonterm);
@@ -67,6 +67,22 @@ public:
return itemsets.size();
}
+ const std::vector<item_t> & get_rules() const {
+ return rules;
+ }
+
+ const std::map<size_t, size_t> & get_reductions() const {
+ return reductions;
+ }
+
+ const std::map<std::pair<size_t, symbol_t>, size_t> & get_shifts() const {
+ return shifts;
+ }
+
+ const std::map<std::pair<size_t, std::string>, size_t> & get_gotos() const {
+ return gotos;
+ }
+
generator_t(const std::vector<item_t> &rules0);
};