summaryrefslogtreecommitdiffstats
path: root/src/parser_state.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/parser_state.cpp')
-rw-r--r--src/parser_state.cpp18
1 files changed, 9 insertions, 9 deletions
diff --git a/src/parser_state.cpp b/src/parser_state.cpp
index f0e9bdd..7ecffd9 100644
--- a/src/parser_state.cpp
+++ b/src/parser_state.cpp
@@ -29,7 +29,7 @@
namespace solar {
-void parser_state_t::new_rule(const char *nonterm) {
+void parser_state_t::new_rule(const std::string &nonterm) {
if (grammar.rules.empty()) {
// start rule
add_rule_nonterminal(nonterm);
@@ -40,12 +40,12 @@ void parser_state_t::new_rule(const char *nonterm) {
current_vars = std::vector<std::string>();
}
-void parser_state_t::add_rule_nonterminal(const char *nonterm) {
+void parser_state_t::add_rule_nonterminal(const std::string &nonterm) {
current.get_rhs().emplace_back(symbol_t::make_nonterm(nonterm));
current_vars.emplace_back();
}
-void parser_state_t::add_rule_terminal(const char *term) {
+void parser_state_t::add_rule_terminal(const std::string &term) {
current.get_rhs().emplace_back(symbol_t::make_term(term));
current_vars.emplace_back();
}
@@ -59,27 +59,27 @@ void parser_state_t::add_rule(const std::string &action) {
grammar.rules.emplace_back(rule_t{std::move(current), std::move(current_vars), action});
}
-void parser_state_t::add_rule_var(const char *var) {
+void parser_state_t::add_rule_var(const std::string &var) {
current_vars.back() = var;
}
-void parser_state_t::add_type_nonterminal(const char *nonterm) {
+void parser_state_t::add_type_nonterminal(const std::string &nonterm) {
current_var = nonterm;
}
-void parser_state_t::add_type_terminal(const char *term) {
+void parser_state_t::add_type_terminal(const std::string &term) {
current_var = term;
}
-void parser_state_t::set_type_nonterminal(const char *type) {
+void parser_state_t::set_type_nonterminal(const std::string &type) {
grammar.nonterm_types.insert(std::make_pair(current_var, type));
}
-void parser_state_t::set_type_terminal(const char *type) {
+void parser_state_t::set_type_terminal(const std::string &type) {
current_type = type;
}
-void parser_state_t::set_type_terminal_name(const char *name) {
+void parser_state_t::set_type_terminal_name(const std::string &name) {
grammar.term_types.insert(std::make_pair(symbol_t::make_term(current_var.c_str()), std::make_pair(current_type, name)));
}