diff options
author | 2016-07-01 02:09:14 +0200 | |
---|---|---|
committer | 2016-07-01 02:09:14 +0200 | |
commit | caafc0f7823054c21a67f096650b2f4a333469c3 (patch) | |
tree | bff4849aa0c539fa0cc06ed630f83fd949e37ebc /src/lib/netlist/plib/pparser.cpp | |
parent | 1f0dc8903f8b865107af2e74758b0ad042c2a8b5 (diff) |
Netlist improvements:
- nltool now accepts -Ddefine=value to pass on to netlists
- improved option handling and added "dummy" options to add grouping and
examples in help output.
- improved --cmd=listdevices output
- Fix dynamic timestepping. This will work with breakout using real
capacitor modelling instead of delay devices. Really slow, but very
useful to calibrate timings.
- Fix an awful bug in timing for delay devices.
- Switched to clang 3.8 and made code compile with
-Weverything -Werror -Wno-old-style-cast -Wno-padded -Wno-weak-vtables
-Wno-missing-variable-declarations -Wno-conversion -Wno-c++98-compat
-Wno-float-equal -Wno-cast-align -Wno-global-constructors
-Wno-c++98-compat-pedantic -Wno-exit-time-destructors
-Wno-format-nonliteral -Wno-weak-template-vtables
This was a helpful exercise since it brought forward some
serious issues with implicit constructors.
[Couriersud]
Diffstat (limited to 'src/lib/netlist/plib/pparser.cpp')
-rw-r--r-- | src/lib/netlist/plib/pparser.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/lib/netlist/plib/pparser.cpp b/src/lib/netlist/plib/pparser.cpp index 6c0fa79d7e4..468fb90a1f6 100644 --- a/src/lib/netlist/plib/pparser.cpp +++ b/src/lib/netlist/plib/pparser.cpp @@ -253,7 +253,7 @@ void ptokenizer::error(const pstring &errs) // A simple preprocessor // ---------------------------------------------------------------------------------------- -ppreprocessor::ppreprocessor() +ppreprocessor::ppreprocessor(std::vector<define_t> *defines) : m_ifflag(0), m_level(0), m_lineno(0) { m_expr_sep.push_back("!"); @@ -268,6 +268,13 @@ ppreprocessor::ppreprocessor() m_expr_sep.push_back("\t"); m_defines.insert({"__PLIB_PREPROCESSOR__", define_t("__PLIB_PREPROCESSOR__", "1")}); + if (defines != nullptr) + { + for (auto & p : *defines) + { + m_defines.insert({p.m_name, p}); + } + } } void ppreprocessor::error(const pstring &err) |