diff options
author | 2022-05-29 18:30:25 +0200 | |
---|---|---|
committer | 2022-05-30 02:30:25 +1000 | |
commit | 5155e51bbe24d0cc45a84ddb66138f83ff1810cf (patch) | |
tree | 80e3f8bcf6b39c8a06e3a6d6ba59c9f45de1449d /src/lib/netlist/plib/ptokenizer.cpp | |
parent | bfc1c9cd01aeb286357a88259f9bd360ef792348 (diff) |
netlist: static solver work and improve code readability (#9841)
- nltool: Added support for building individual static solver files.
- Added pre-built documentation files for nltool and nlwav.
- plib: Extended typed_version to have patchlevel as well.
- plib: Compile more of ppmf.h with nvcc.
- create_devinc.py: Add include guards to the generated files.
- makefile: Recreate generated files when python code has changed.
- Reduced nld_base.h usage in the core.
- <oved extern template class declarations to where they belong.
- Generally improved code readability and fixed a lot of issues cspell reported.
Diffstat (limited to 'src/lib/netlist/plib/ptokenizer.cpp')
-rw-r--r-- | src/lib/netlist/plib/ptokenizer.cpp | 54 |
1 files changed, 35 insertions, 19 deletions
diff --git a/src/lib/netlist/plib/ptokenizer.cpp b/src/lib/netlist/plib/ptokenizer.cpp index b7031cbed4e..67fd506dc39 100644 --- a/src/lib/netlist/plib/ptokenizer.cpp +++ b/src/lib/netlist/plib/ptokenizer.cpp @@ -1,10 +1,11 @@ // license:BSD-3-Clause // copyright-holders:Couriersud +#include "ptokenizer.h" + #include "palloc.h" #include "pstonum.h" #include "pstrutil.h" -#include "ptokenizer.h" namespace plib { @@ -21,7 +22,7 @@ namespace plib { // A simple tokenizer // ---------------------------------------------------------------------------------------- - void ptokenizer::skipeol() + void tokenizer_t::skip_eol() { pstring::value_type c = getc(); while (c != 0) @@ -37,7 +38,7 @@ namespace plib { } } - pstring::value_type ptokenizer::getc() + pstring::value_type tokenizer_t::getc() { if (m_unget != 0) { @@ -49,7 +50,7 @@ namespace plib { { //++m_source_location.back(); putf8string line; - if (m_strm->readline_lf(line)) + if (m_strm->read_line_lf(line)) { m_cur_line = pstring(line); m_px = m_cur_line.begin(); @@ -63,16 +64,31 @@ namespace plib { return c; } - void ptokenizer::ungetc(pstring::value_type c) + void tokenizer_t::ungetc(pstring::value_type c) { m_unget = c; } - void ptoken_reader::require_token(const token_id_t &token_num) + void tokenizer_t::append_to_store(putf8_reader *reader, token_store_t &tokstor) + { + clear(); + m_strm = reader; + // Process tokens into queue + token_t ret(token_type::UNKNOWN); + m_token_queue = &tokstor; + do { + ret = get_token_comment(); + tokstor.push_back(ret); + } while (!ret.is_type(token_type::token_type::ENDOFFILE)); + m_token_queue = nullptr; + } + + + void token_reader_t::require_token(const token_id_t &token_num) { require_token(get_token(), token_num); } - void ptoken_reader::require_token(const token_t &tok, const token_id_t &token_num) + void token_reader_t::require_token(const token_t &tok, const token_id_t &token_num) { if (!tok.is(token_num)) { @@ -80,7 +96,7 @@ namespace plib { } } - pstring ptoken_reader::get_string() + pstring token_reader_t::get_string() { token_t tok = get_token(); if (!tok.is_type(token_type::STRING)) @@ -91,7 +107,7 @@ namespace plib { } - pstring ptoken_reader::get_identifier() + pstring token_reader_t::get_identifier() { token_t tok = get_token(); if (!tok.is_type(token_type::IDENTIFIER)) @@ -101,7 +117,7 @@ namespace plib { return tok.str(); } - pstring ptoken_reader::get_identifier_or_number() + pstring token_reader_t::get_identifier_or_number() { token_t tok = get_token(); if (!(tok.is_type(token_type::IDENTIFIER) || tok.is_type(token_type::NUMBER))) @@ -112,7 +128,7 @@ namespace plib { } // FIXME: combine into template - double ptoken_reader::get_number_double() + double token_reader_t::get_number_double() { token_t tok = get_token(); if (!tok.is_type(token_type::NUMBER)) @@ -126,7 +142,7 @@ namespace plib { return ret; } - long ptoken_reader::get_number_long() + long token_reader_t::get_number_long() { token_t tok = get_token(); if (!tok.is_type(token_type::NUMBER)) @@ -140,7 +156,7 @@ namespace plib { return ret; } - bool ptoken_reader::process_line_token(const token_t &tok) + bool token_reader_t::process_line_token(const token_t &tok) { if (tok.is_type(token_type::LINEMARKER)) { @@ -186,7 +202,7 @@ namespace plib { return false; } - ptoken_reader::token_t ptoken_reader::get_token() + token_reader_t::token_t token_reader_t::get_token() { token_t ret = get_token_queue(); while (true) @@ -206,14 +222,14 @@ namespace plib { } } - ptoken_reader::token_t ptoken_reader::get_token_raw() + token_reader_t::token_t token_reader_t::get_token_raw() { token_t ret = get_token_queue(); process_line_token(ret); return ret; } - ptoken_reader::token_t ptokenizer::get_token_internal() + token_reader_t::token_t tokenizer_t::get_token_internal() { // skip ws pstring::value_type c = getc(); @@ -308,7 +324,7 @@ namespace plib { } } - ptoken_reader::token_t ptokenizer::get_token_comment() + token_reader_t::token_t tokenizer_t::get_token_comment() { token_t ret = get_token_internal(); while (true) @@ -325,7 +341,7 @@ namespace plib { } else if (ret.is(m_tok_line_comment)) { - skipeol(); + skip_eol(); ret = get_token_internal(); } else @@ -336,7 +352,7 @@ namespace plib { } - void ptoken_reader::error(const perrmsg &errs) + void token_reader_t::error(const perrmsg &errs) { pstring s(""); pstring trail (" from "); |