From 59258d1f71d36502cf778dd089409146fd085c12 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Thu, 9 Apr 2015 03:31:20 +0200 Subject: Add support for extra arguments --- src/parser_state.hpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src/parser_state.hpp') diff --git a/src/parser_state.hpp b/src/parser_state.hpp index b183898..5dcce54 100644 --- a/src/parser_state.hpp +++ b/src/parser_state.hpp @@ -47,6 +47,9 @@ private: std::string header_block; std::string source_block; + std::string current_extra_arg; + std::vector> extra_args; + public: parser_state_t() : current("") {} @@ -78,6 +81,19 @@ public: source_block = value; } + const std::vector> & get_extra_args() const { + return extra_args; + } + + void add_extra_arg(const char *type) { + current_extra_arg = type; + } + + void set_extra_arg_name(const char *name) { + extra_args.emplace_back(current_extra_arg, name); + } + + void new_rule(const char *nonterm); void add_rule_nonterminal(const char *nonterm); void add_rule_terminal(const char *term); -- cgit v1.2.3