]> git.tdb.fi Git - libs/datafile.git/blobdiff - source/parser.h
Add Readme.txt and some other documentation
[libs/datafile.git] / source / parser.h
index 5bec123ae74f7aeee3485dbbeeb226d0bad928b7..c830c3c8367f5c082788ad864f23eed84266439a 100644 (file)
@@ -19,19 +19,32 @@ class ParserMode;
 class Statement;
 struct Token;
 
+/**
+Frontend for loading datafiles.  Handles switching between text and binary
+formats.  A Parser evaluates into a boolean value indicating whether more
+statements may be read.
+*/
 class Parser
 {
-public:
-       Parser(std::istream &, const std::string &);
-       ~Parser();
-
-       Statement parse();
-       operator bool() const { return in; }
 private:
        Input       in;
        std::string src;
        bool        good;
        ParserMode  *mode;
+
+public:
+       Parser(std::istream &i, const std::string &s);
+       ~Parser();
+
+       /**
+       Reads a statement from the input.  If the end of input was reached, an empty
+       invalid statement will be returned.  If an error occurs, the parser will be
+       marked as bad and no more statements may be read, even if the exception was
+       caught.
+       */
+       Statement parse();
+
+       operator bool() const { return good && in; }
 };
 
 } // namespace DataFile