diff options
Diffstat (limited to 'src/lib/netlist/plib/pparser.cpp')
-rw-r--r-- | src/lib/netlist/plib/pparser.cpp | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/lib/netlist/plib/pparser.cpp b/src/lib/netlist/plib/pparser.cpp index 35629aacdee..6604c07dcb7 100644 --- a/src/lib/netlist/plib/pparser.cpp +++ b/src/lib/netlist/plib/pparser.cpp @@ -8,14 +8,15 @@ #include <cstdarg> #include "pparser.h" -#include "plib/palloc.h" +#include "palloc.h" +#include "putil.h" namespace plib { // ---------------------------------------------------------------------------------------- // A simple tokenizer // ---------------------------------------------------------------------------------------- -ptokenizer::ptokenizer(pistream &strm) +ptokenizer::ptokenizer(plib::putf8_reader &strm) : m_strm(strm), m_lineno(0), m_cur_line(""), m_px(m_cur_line.begin()), m_unget(0), m_string('"') { } @@ -302,7 +303,7 @@ void ppreprocessor::error(const pstring &err) -double ppreprocessor::expr(const pstring_vector_t &sexpr, std::size_t &start, int prio) +double ppreprocessor::expr(const std::vector<pstring> &sexpr, std::size_t &start, int prio) { double val; pstring tok=sexpr[start]; @@ -383,7 +384,7 @@ ppreprocessor::define_t *ppreprocessor::get_define(const pstring &name) pstring ppreprocessor::replace_macros(const pstring &line) { - pstring_vector_t elems(line, m_expr_sep); + std::vector<pstring> elems(psplit(line, m_expr_sep)); pstringbuffer ret = ""; for (auto & elem : elems) { @@ -396,7 +397,7 @@ pstring ppreprocessor::replace_macros(const pstring &line) return ret; } -static pstring catremainder(const pstring_vector_t &elems, std::size_t start, pstring sep) +static pstring catremainder(const std::vector<pstring> &elems, std::size_t start, pstring sep) { pstringbuffer ret = ""; for (auto & elem : elems) @@ -415,13 +416,13 @@ pstring ppreprocessor::process_line(const pstring &line) // FIXME ... revise and extend macro handling if (lt.startsWith("#")) { - pstring_vector_t lti(lt, " ", true); + std::vector<pstring> lti(psplit(lt, " ", true)); if (lti[0].equals("#if")) { m_level++; std::size_t start = 0; lt = replace_macros(lt); - pstring_vector_t t(lt.substr(3).replace(" ",""), m_expr_sep); + std::vector<pstring> t(psplit(lt.substr(3).replace(" ",""), m_expr_sep)); int val = static_cast<int>(expr(t, start, 0)); if (val == 0) m_ifflag |= (1 << m_level); @@ -483,7 +484,7 @@ pstring ppreprocessor::process_line(const pstring &line) } -postream & ppreprocessor::process_i(pistream &istrm, postream &ostrm) +void ppreprocessor::process(putf8_reader &istrm, putf8_writer &ostrm) { pstring line; while (istrm.readline(line)) @@ -491,7 +492,6 @@ postream & ppreprocessor::process_i(pistream &istrm, postream &ostrm) line = process_line(line); ostrm.writeline(line); } - return ostrm; } } |