--- /dev/null
+#ifndef JSON_SPIRIT_ERROR_POSITION\r
+#define JSON_SPIRIT_ERROR_POSITION\r
+\r
+// Copyright John W. Wilkinson 2007 - 2011\r
+// Distributed under the MIT License, see accompanying file LICENSE.txt\r
+\r
+// json spirit version 4.05\r
+\r
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
+# pragma once\r
+#endif\r
+\r
+#include <string>\r
+\r
+namespace json_spirit\r
+{\r
+ // An Error_position exception is thrown by the "read_or_throw" functions below on finding an error.\r
+ // Note the "read_or_throw" functions are around 3 times slower than the standard functions "read" \r
+ // functions that return a bool.\r
+ //\r
+ struct Error_position\r
+ {\r
+ Error_position();\r
+ Error_position( unsigned int line, unsigned int column, const std::string& reason );\r
+ bool operator==( const Error_position& lhs ) const;\r
+ unsigned int line_;\r
+ unsigned int column_;\r
+ std::string reason_;\r
+ };\r
+\r
+ inline Error_position::Error_position()\r
+ : line_( 0 )\r
+ , column_( 0 )\r
+ {\r
+ }\r
+\r
+ inline Error_position::Error_position( unsigned int line, unsigned int column, const std::string& reason )\r
+ : line_( line )\r
+ , column_( column )\r
+ , reason_( reason )\r
+ {\r
+ }\r
+\r
+ inline bool Error_position::operator==( const Error_position& lhs ) const\r
+ {\r
+ if( this == &lhs ) return true;\r
+\r
+ return ( reason_ == lhs.reason_ ) &&\r
+ ( line_ == lhs.line_ ) &&\r
+ ( column_ == lhs.column_ ); \r
+ }\r
+}\r
+\r
+#endif\r