X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fparsermode.h;h=9d47ae422f8753bfb7a7a16f401e40b615a43729;hb=daca21051927eabee098e422fe5a0990acacfb96;hp=58a7e27de1704a2ab0aee90aa13a5b14c0145a0a;hpb=6653c7d83dbe1fe81a541a125be8bb808b234eb7;p=libs%2Fdatafile.git diff --git a/source/parsermode.h b/source/parsermode.h index 58a7e27..9d47ae4 100644 --- a/source/parsermode.h +++ b/source/parsermode.h @@ -1,17 +1,20 @@ #ifndef MSP_DATAFILE_PARSERMODE_H_ #define MSP_DATAFILE_PARSERMODE_H_ +#include #include "statement.h" namespace Msp { namespace DataFile { class Input; +class Loader; +class LoaderAction; /** Base class for parse modes. */ -class ParserMode +class ParserMode: private NonCopyable { protected: Input ∈ @@ -21,7 +24,11 @@ protected: public: virtual ~ParserMode() { } - virtual Statement parse(bool) = 0; + virtual Statement parse() = 0; + virtual void process_control_statement(const Statement &) { } + + virtual const StatementKey *peek(unsigned) { return nullptr; } + virtual bool parse_and_load(unsigned, Loader &, const LoaderAction &) { return false; } }; } // namespace DataFile