summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/netlist/plib/pparser.cpp
diff options
context:
space:
mode:
author couriersud <couriersud@gmx.org>2019-04-06 14:11:06 +0200
committer couriersud <couriersud@gmx.org>2019-04-07 19:09:48 +0200
commit58e6383ada73e3d9bb2330248c77d99f4063896d (patch)
tree69ea6066ac01e90cffba02ebf7e3775dfeaaaf87 /src/lib/netlist/plib/pparser.cpp
parent140dc2237eed85e3451ab95a4bcdae84ee8600c5 (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.cpp16
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