X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fparser.h;h=ed7a037cdb12a7eeb1d49f2526a4925800921012;hb=e14c01b5775dd2e324b16ff49498db9b9113c523;hp=1437190b606b89640afabd4619a62c4fe21f65c8;hpb=13a151ed60b57cc1e058edf081a63edfa7aa7a77;p=libs%2Fdatafile.git diff --git a/source/parser.h b/source/parser.h index 1437190..ed7a037 100644 --- a/source/parser.h +++ b/source/parser.h @@ -2,6 +2,7 @@ #define MSP_DATAFILE_PARSER_H_ #include +#include #include "input.h" namespace Msp { @@ -10,7 +11,7 @@ namespace DataFile { class Loader; class LoaderAction; class ParserMode; -class Statement; +struct Statement; struct StatementKey; /** @@ -18,14 +19,14 @@ Frontend for loading datafiles. Handles switching between text and binary formats. A Parser evaluates into a boolean value indicating whether more statements may be read. */ -class Parser +class Parser: private NonCopyable { private: Input in; std::string main_src; std::string src; - bool good; - ParserMode *mode; + bool good = true; + ParserMode *mode = nullptr; public: Parser(IO::Base &i, const std::string &s); @@ -50,7 +51,7 @@ public: statement's signature. */ bool parse_and_load(unsigned, Loader &, const LoaderAction &); - operator bool() const { return good && in; } + explicit operator bool() const { return good && in; } }; } // namespace DataFile