summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/netlist/plib/pparser.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/netlist/plib/pparser.h')
-rw-r--r--src/lib/netlist/plib/pparser.h39
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_ */