diff options
Diffstat (limited to 'src/lib/netlist/nl_setup.cpp')
-rw-r--r-- | src/lib/netlist/nl_setup.cpp | 36 |
1 files changed, 19 insertions, 17 deletions
diff --git a/src/lib/netlist/nl_setup.cpp b/src/lib/netlist/nl_setup.cpp index c791472086d..b8fba6f03aa 100644 --- a/src/lib/netlist/nl_setup.cpp +++ b/src/lib/netlist/nl_setup.cpp @@ -25,9 +25,10 @@ namespace netlist // nl_parse_t // ---------------------------------------------------------------------------------------- - nlparse_t::nlparse_t(netlist_t &netlist) - : m_factory(netlist.log()) - , m_log(netlist.log()) + nlparse_t::nlparse_t(setup_t &setup, log_type &log) + : m_factory(log) + , m_setup(setup) + , m_log(log) , m_frontier_cnt(0) { } @@ -218,13 +219,27 @@ namespace netlist return false; } + bool nlparse_t::parse_stream(std::unique_ptr<plib::pistream> &&istrm, const pstring &name) + { + return parser_t(std::move(plib::ppreprocessor(&m_defines).process(std::move(istrm))), *this).parse(name); + } + + void nlparse_t::add_define(const pstring &defstr) + { + auto p = defstr.find("="); + if (p != pstring::npos) + add_define(plib::left(defstr, p), defstr.substr(p+1)); + else + add_define(defstr, "1"); + } + // ---------------------------------------------------------------------------------------- // setup_t // ---------------------------------------------------------------------------------------- setup_t::setup_t(netlist_t &netlist) - : nlparse_t(netlist) + : nlparse_t(*this, netlist.log()) , m_netlist(netlist) , m_netlist_params(nullptr) , m_proxy_cnt(0) @@ -971,11 +986,6 @@ const logic_family_desc_t *setup_t::family_from_model(const pstring &model) // Sources // ---------------------------------------------------------------------------------------- -bool setup_t::parse_stream(std::unique_ptr<plib::pistream> &&istrm, const pstring &name) -{ - return parser_t(std::move(plib::ppreprocessor(&m_defines).process(std::move(istrm))), *this).parse(name); -} - std::unique_ptr<plib::pistream> setup_t::get_data_stream(const pstring &name) { for (auto &source : m_sources) @@ -991,14 +1001,6 @@ std::unique_ptr<plib::pistream> setup_t::get_data_stream(const pstring &name) return std::unique_ptr<plib::pistream>(nullptr); } -void setup_t::add_define(const pstring &defstr) -{ - auto p = defstr.find("="); - if (p != pstring::npos) - add_define(plib::left(defstr, p), defstr.substr(p+1)); - else - add_define(defstr, "1"); -} // ---------------------------------------------------------------------------------------- // Device handling |