summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/netlist/nl_parser.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/netlist/nl_parser.h')
-rw-r--r--src/lib/netlist/nl_parser.h22
1 files changed, 13 insertions, 9 deletions
diff --git a/src/lib/netlist/nl_parser.h b/src/lib/netlist/nl_parser.h
index 1ad6a5a3c95..e4308786e3a 100644
--- a/src/lib/netlist/nl_parser.h
+++ b/src/lib/netlist/nl_parser.h
@@ -8,22 +8,24 @@
#ifndef NL_PARSER_H_
#define NL_PARSER_H_
-#include "nl_setup.h"
+#include "nltypes.h" // for setup_t
#include "plib/ptokenizer.h"
namespace netlist
{
- class parser_t : public plib::ptokenizer
+ class parser_t : public plib::ptoken_reader
{
public:
- template <typename T>
- parser_t(T &&strm, nlparse_t &setup)
- : plib::ptokenizer(std::forward<T>(strm))
- , m_setup(setup)
- {
- }
+ using token_t = plib::ptokenizer::token_t;
+ using token_type = plib::ptokenizer::token_type;
+ using token_id_t = plib::ptokenizer::token_id_t;
+ using token_store = plib::ptokenizer::token_store;
- bool parse(const pstring &nlname);
+ parser_t(nlparse_t &setup);
+
+ bool parse(plib::psource_t::stream_ptr &&strm, const pstring &nlname);
+ bool parse(token_store &tokstor, const pstring &nlname);
+ void parse_tokens(plib::psource_t::stream_ptr &&strm, token_store &tokstor);
protected:
void parse_netlist(const pstring &nlname);
@@ -49,6 +51,7 @@ namespace netlist
token_id_t m_tok_paren_left;
token_id_t m_tok_paren_right;
token_id_t m_tok_comma;
+ token_id_t m_tok_static;
token_id_t m_tok_ALIAS;
token_id_t m_tok_NET_C;
token_id_t m_tok_DIPPINS;
@@ -70,6 +73,7 @@ namespace netlist
token_id_t m_tok_TT_LINE;
token_id_t m_tok_TT_FAMILY;
+ plib::ptokenizer m_tokenizer;
nlparse_t &m_setup;
};