X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fparsermode.h;h=5c9deceb7d2c289b224c7b5a20ed8dc9cf69131d;hb=e1b8089be727f651fc2022d6e7ff775047730e85;hp=d599691b11e7f7889e21232ebea2a5db7e016f1b;hpb=7df5e45c7f414f6a07681dc4ec2abb63b091a309;p=libs%2Fdatafile.git diff --git a/source/parsermode.h b/source/parsermode.h index d599691..5c9dece 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 ∈ @@ -22,6 +25,10 @@ public: virtual ~ParserMode() { } virtual Statement parse() = 0; + virtual void process_control_statement(const Statement &) { } + + virtual const StatementKey *peek(unsigned) { return 0; } + virtual bool parse_and_load(unsigned, Loader &, const LoaderAction &) { return false; } }; } // namespace DataFile