From 53ac38cf359dddc0937cc534e5150db60c0a110f Mon Sep 17 00:00:00 2001 From: couriersud Date: Wed, 6 May 2020 22:43:32 +0200 Subject: netlist: add elif processing to preprocessor. [Couriersud] --- src/lib/netlist/plib/ppreprocessor.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/lib/netlist/plib/ppreprocessor.cpp') diff --git a/src/lib/netlist/plib/ppreprocessor.cpp b/src/lib/netlist/plib/ppreprocessor.cpp index 089188f3106..d6126b68fea 100644 --- a/src/lib/netlist/plib/ppreprocessor.cpp +++ b/src/lib/netlist/plib/ppreprocessor.cpp @@ -484,6 +484,18 @@ namespace plib { { m_if_flag ^= (1 << m_if_level); } + else if (lti[0] == "#elif") + { + m_if_flag ^= (1 << m_if_level); + lt = replace_macros(lt); + auto t(simple_iter(this, tokenize(lt.substr(5), m_expr_sep, true, true))); + auto val = static_cast(prepro_expr(t, 255)); + t.skip_ws(); + if (!t.eod()) + error("found unprocessed content at end of line"); + if (val == 0) + m_if_flag |= (1 << m_if_level); + } else if (lti[0] == "#endif") { m_if_flag &= ~(1 << m_if_level); -- cgit v1.2.3-70-g09d2