diff options
author | 2019-04-06 14:11:06 +0200 | |
---|---|---|
committer | 2019-04-07 19:09:48 +0200 | |
commit | 58e6383ada73e3d9bb2330248c77d99f4063896d (patch) | |
tree | 69ea6066ac01e90cffba02ebf7e3775dfeaaaf87 /src/lib/netlist/plib/pparser.cpp | |
parent | 140dc2237eed85e3451ab95a4bcdae84ee8600c5 (diff) |
netlist: MB3614 again, function controlled VARCLOCK and other
improvements.
- fix MB3614 parameter
- Added VARCLOCK which derives step size from function
- optimized function handling in CS and VS
- fixed a bug in ppreprocessor
- add trunc to pfunction
- added opamp_amplification_curve to derive characteristic
amplification curve
Diffstat (limited to 'src/lib/netlist/plib/pparser.cpp')
-rw-r--r-- | src/lib/netlist/plib/pparser.cpp | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/lib/netlist/plib/pparser.cpp b/src/lib/netlist/plib/pparser.cpp index 5e1a231da81..55e4c74c778 100644 --- a/src/lib/netlist/plib/pparser.cpp +++ b/src/lib/netlist/plib/pparser.cpp @@ -282,6 +282,7 @@ ppreprocessor::ppreprocessor(defines_map_type *defines) m_expr_sep.emplace_back("&&"); m_expr_sep.emplace_back("||"); m_expr_sep.emplace_back("=="); + m_expr_sep.emplace_back(","); m_expr_sep.emplace_back(" "); m_expr_sep.emplace_back("\t"); @@ -508,9 +509,18 @@ pstring ppreprocessor::process_line(pstring line) { if (m_ifflag == 0) { - if (lti.size() != 3) - error("PREPRO: only simple defines allowed: " + line); - m_defines.insert({lti[1], define_t(lti[1], lti[2])}); + if (lti.size() < 2) + error("PREPRO: define needs at least one argument: " + line); + else if (lti.size() == 2) + m_defines.insert({lti[1], define_t(lti[1], "")}); + else + { + pstring arg(""); + for (int i=2; i<lti.size() - 1; i++) + arg += lti[i] + " "; + arg += lti[lti.size()-1]; + m_defines.insert({lti[1], define_t(lti[1], arg)}); + } } } else |