From e86d06400234dce2ee505eb58bb4a2cfeddc4303 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Thu, 9 Apr 2015 05:18:47 +0200 Subject: lex: use std::string * instead of char * --- src/parser_state.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'src/parser_state.cpp') 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(); } -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))); } -- cgit v1.2.3