summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/netlist/nl_setup.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/netlist/nl_setup.cpp')
-rw-r--r--src/lib/netlist/nl_setup.cpp36
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