summaryrefslogtreecommitdiffstats
path: root/src/grammar.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/grammar.hpp')
-rw-r--r--src/grammar.hpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/grammar.hpp b/src/grammar.hpp
index b54b46d..cc982b6 100644
--- a/src/grammar.hpp
+++ b/src/grammar.hpp
@@ -47,6 +47,16 @@ struct grammar_t {
std::vector<std::pair<std::string, std::string>> extra_args;
+ void add_rule(const rule_t &rule) {
+ if (rules.empty()) {
+ item_t init("");
+ init.get_rhs().push_back(symbol_t::make_nonterm(rule.item.get_lhs()));
+ rules.emplace_back(solar::rule_t {std::move(init), std::vector<std::pair<std::string, bool>>(), std::string()});
+ }
+
+ rules.push_back(rule);
+ }
+
const std::string & get_nonterm_type(const std::string &sym) const {
static const std::string empty;