summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/netlist/plib/ptokenizer.cpp
diff options
context:
space:
mode:
author couriersud <couriersud@users.noreply.github.com>2022-05-29 18:30:25 +0200
committer GitHub <noreply@github.com>2022-05-30 02:30:25 +1000
commit5155e51bbe24d0cc45a84ddb66138f83ff1810cf (patch)
tree80e3f8bcf6b39c8a06e3a6d6ba59c9f45de1449d /src/lib/netlist/plib/ptokenizer.cpp
parentbfc1c9cd01aeb286357a88259f9bd360ef792348 (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.cpp54
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 ");