--- /dev/null
+#ifndef MSP_DATAFILE_JSONPARSER_H_
+#define MSP_DATAFILE_JSONPARSER_H_
+
+#include "parsermode.h"
+#include "token.h"
+
+namespace Msp {
+namespace DataFile {
+
+class JsonParser: public ParserMode
+{
+private:
+ enum State
+ {
+ STATE_INIT,
+ STATE_ARRAY,
+ STATE_OBJECT,
+ STATE_END
+ };
+
+ State toplevel_state;
+
+public:
+ JsonParser(Input &, const std::string &);
+
+ virtual Statement parse();
+private:
+ Statement parse_statement(const Token *, State, const std::string &);
+ Token parse_token();
+ bool is_delimiter(int);
+ std::string unescape(const std::string &);
+};
+
+} // namespace DataFile
+} // namespace Msp
+
+#endif