+ 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();