]> git.tdb.fi Git - libs/datafile.git/blob - source/parsermode.h
Restructure control statement processing
[libs/datafile.git] / source / parsermode.h
1 #ifndef MSP_DATAFILE_PARSERMODE_H_
2 #define MSP_DATAFILE_PARSERMODE_H_
3
4 #include "statement.h"
5
6 namespace Msp {
7 namespace DataFile {
8
9 class Input;
10
11 /**
12 Base class for parse modes.
13 */
14 class ParserMode
15 {
16 protected:
17         Input ∈
18         const std::string &src;
19
20         ParserMode(Input &i, const std::string &s): in(i), src(s) { }
21 public:
22         virtual ~ParserMode() { }
23
24         virtual Statement parse() = 0;
25         virtual void process_control_statement(const Statement &) { }
26 };
27
28 } // namespace DataFile
29 } // namespace Msp
30
31 #endif