diff options
Diffstat (limited to 'src/parser_state.hpp')
-rw-r--r-- | src/parser_state.hpp | 83 |
1 files changed, 0 insertions, 83 deletions
diff --git a/src/parser_state.hpp b/src/parser_state.hpp deleted file mode 100644 index c1bbdda..0000000 --- a/src/parser_state.hpp +++ /dev/null @@ -1,83 +0,0 @@ -/* - Copyright (c) 2015, Matthias Schiffer <mschiffer@universe-factory.net> - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - - -#pragma once - -#include "grammar.hpp" - - -namespace solar { - -class parser_state_t { -private: - grammar_t grammar; - - item_t current; - std::vector<std::string> current_vars; - std::string current_var; - std::string current_type; - - std::string current_extra_arg; - -public: - parser_state_t() : current("") {} - - const grammar_t & get_grammar() const { - return grammar; - } - - void set_header_block(const std::string &value) { - grammar.header_block = value; - } - - void set_source_block(const std::string &value) { - grammar.source_block = value; - } - - void add_extra_arg(const std::string &type) { - current_extra_arg = type; - } - - void set_extra_arg_name(const std::string &name) { - grammar.extra_args.emplace_back(current_extra_arg, name); - } - - - void new_rule(const std::string &nonterm); - void add_rule_nonterminal(const std::string &nonterm); - void add_rule_terminal(const std::string &term); - void add_rule_terminal(unsigned char term); - void add_rule(const std::string &action = ""); - void add_rule_var(const std::string &var); - - void add_type_nonterminal(const std::string &nonterm); - void add_type_terminal(const std::string &term); - void set_type_nonterminal(const std::string &type); - void set_type_terminal(const std::string &type); - void set_type_terminal_name(const std::string &name); -}; - -} |