]> git.tdb.fi Git - libs/datafile.git/blobdiff - source/parser.h
Restructure control statement processing
[libs/datafile.git] / source / parser.h
index a89799bd0558cf54c6fbb2e547e406afd9b132a4..0989bd9d2d1fe378920c469c845f71435d799b28 100644 (file)
@@ -9,7 +9,6 @@ namespace DataFile {
 
 class ParserMode;
 class Statement;
-struct Token;
 
 /**
 Frontend for loading datafiles.  Handles switching between text and binary
@@ -19,11 +18,11 @@ statements may be read.
 class Parser
 {
 private:
-       Input       in;
+       Input in;
        std::string main_src;
        std::string src;
-       bool        good;
-       ParserMode  *mode;
+       bool good;
+       ParserMode *mode;
 
 public:
        Parser(IO::Base &i, const std::string &s);
@@ -35,8 +34,12 @@ public:
        marked as bad and no more statements may be read, even if the exception was
        caught.
        */
-       Statement parse();
+       Statement parse(bool raw = false);
 
+private:
+       void process_control_statement(const Statement &);
+
+public:
        operator bool() const { return good && in; }
 };