From 5155e51bbe24d0cc45a84ddb66138f83ff1810cf Mon Sep 17 00:00:00 2001 From: couriersud Date: Sun, 29 May 2022 18:30:25 +0200 Subject: 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. - 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 "); -- cgit v1.2.3-70-g09d2