-/* $Id$
-
-This file is part of libmspdatafile
-Copyright © 2007 Mikko Rasa, Mikkosoft Productions
-Distributed under the LGPL
-*/
-
#ifndef MSP_DATAFILE_PARSERMODE_H_
#define MSP_DATAFILE_PARSERMODE_H_
+#include <msp/core/noncopyable.h>
#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 ∈
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