]> git.tdb.fi Git - libs/datafile.git/blobdiff - source/parser.h
Add files
[libs/datafile.git] / source / parser.h
diff --git a/source/parser.h b/source/parser.h
new file mode 100644 (file)
index 0000000..107bb3f
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+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