--- /dev/null
+/*
+This file is part of libmspparser
+Copyright © 2006 Mikko Rasa, Mikkosoft Productions
+Distributed under the LGPL
+*/
+#ifndef MSP_PARSER_PARSER_H_
+#define MSP_PARSER_PARSER_H_
+
+#include <istream>
+#include <string>
+#include "input.h"
+
+namespace Msp {
+namespace Parser {
+
+class Statement;
+struct Token;
+
+class Parser
+{
+public:
+ Parser(std::istream &, const std::string &);
+ Statement parse();
+ operator bool() const { return (bool)in; }
+private:
+ Input in;
+ std::string src;
+ bool good;
+
+ Statement parse_(const Token *);
+ Token parse_token();
+ bool is_delimiter(int);
+ bool isodigit(int);
+ std::string unescape_string(const std::string &);
+ std::string get_location();
+ void parse_error(int, int);
+};
+
+} // namespace Parser
+} // namespace Msp
+
+#endif