diff options
Diffstat (limited to 'src/lib/netlist/plib/pparser.h')
-rw-r--r-- | src/lib/netlist/plib/pparser.h | 39 |
1 files changed, 22 insertions, 17 deletions
diff --git a/src/lib/netlist/plib/pparser.h b/src/lib/netlist/plib/pparser.h index 3829e8cdcc8..9b68a5524f1 100644 --- a/src/lib/netlist/plib/pparser.h +++ b/src/lib/netlist/plib/pparser.h @@ -8,24 +8,25 @@ #ifndef PPARSER_H_ #define PPARSER_H_ -#include "pstring.h" +#include <cstdint> +#include <unordered_map> + #include "plists.h" #include "pstream.h" +#include "pstring.h" -#include <unordered_map> -#include <cstdint> namespace plib { -class ptokenizer : nocopyassignmove +class ptokenizer : public nocopyassignmove { public: template <typename T> - ptokenizer(T &&strm) - : m_strm(std::move(strm)), m_lineno(0), m_cur_line(""), m_px(m_cur_line.begin()), m_unget(0), m_string('"') + ptokenizer(T &&strm) // NOLINT(misc-forwarding-reference-overload, bugprone-forwarding-reference-overload) + : m_strm(std::forward<T>(strm)), m_lineno(0), m_cur_line(""), m_px(m_cur_line.begin()), m_unget(0), m_string('"') { } - virtual ~ptokenizer(); + virtual ~ptokenizer() = default; enum token_type { @@ -166,12 +167,12 @@ public: using defines_map_type = std::unordered_map<pstring, define_t>; explicit ppreprocessor(defines_map_type *defines = nullptr); - virtual ~ppreprocessor() override {} + ~ppreprocessor() override = default; template <typename T> ppreprocessor & process(T &&istrm) { - putf8_reader reader(std::move(istrm)); + putf8_reader reader(std::forward<T>(istrm)); pstring line; while (reader.readline(line)) { @@ -182,13 +183,13 @@ public: return *this; } - ppreprocessor(ppreprocessor &&s) - : m_defines(s.m_defines) - , m_expr_sep(s.m_expr_sep) + ppreprocessor(ppreprocessor &&s) noexcept + : m_defines(std::move(s.m_defines)) + , m_expr_sep(std::move(s.m_expr_sep)) , m_ifflag(s.m_ifflag) , m_level(s.m_level) , m_lineno(s.m_lineno) - , m_buf(s.m_buf) + , m_buf(std::move(s.m_buf)) , m_pos(s.m_pos) , m_state(s.m_state) , m_comment(s.m_comment) @@ -197,9 +198,13 @@ public: protected: - virtual size_type vread(value_type *buf, const size_type n) override; - virtual void vseek(const pos_type n) override { } - virtual pos_type vtell() const override { return m_pos; } + size_type vread(value_type *buf, const size_type n) override; + void vseek(const pos_type n) override + { + plib::unused_var(n); + /* FIXME throw exception - should be done in base unless implemented */ + } + pos_type vtell() const override { return m_pos; } int expr(const std::vector<pstring> &sexpr, std::size_t &start, int prio); define_t *get_define(const pstring &name); @@ -229,6 +234,6 @@ private: bool m_comment; }; -} +} // namespace plib #endif /* PPARSER_H_ */ |