raw
experimental-genesis    1 //  /****************************\
experimental-genesis 2 // * EXPERIMENTAL BRANCH. *
experimental-genesis 3 // * FOR LABORATORY USE ONLY. *
experimental-genesis 4 // ********************************
experimental-genesis 5 // ************
experimental-genesis 6 // **************
experimental-genesis 7 // ****************
experimental-genesis 8 // **** **** ****
experimental-genesis 9 // *** *** ***
experimental-genesis 10 // *** *** ***
experimental-genesis 11 // *** * * **
experimental-genesis 12 // ******** ********
experimental-genesis 13 // ******* ******
experimental-genesis 14 // *** **
experimental-genesis 15 // * ******* **
experimental-genesis 16 // ** * * * * *
experimental-genesis 17 // ** * * ***
experimental-genesis 18 // **** * * * * ****
experimental-genesis 19 // **** *** * * ** ***
experimental-genesis 20 // **** ********* ******
experimental-genesis 21 // ******* ***** *******
experimental-genesis 22 // ********* ****** **
experimental-genesis 23 // ** ****** ******
experimental-genesis 24 // ** ******* **
experimental-genesis 25 // ** ******* ***
experimental-genesis 26 // **** ******** ************
experimental-genesis 27 // ************ ************
experimental-genesis 28 // ******** *******
experimental-genesis 29 // ****** ****
experimental-genesis 30 // *** ***
experimental-genesis 31 // ********************************
experimental-genesis 32 #ifndef JSON_SPIRIT_ERROR_POSITION
experimental-genesis 33 #define JSON_SPIRIT_ERROR_POSITION
experimental-genesis 34
experimental-genesis 35 // Copyright John W. Wilkinson 2007 - 2009.
experimental-genesis 36 // Distributed under the MIT License, see accompanying file LICENSE.txt
experimental-genesis 37
experimental-genesis 38 // json spirit version 4.03
experimental-genesis 39
experimental-genesis 40 #if defined(_MSC_VER) && (_MSC_VER >= 1020)
experimental-genesis 41 # pragma once
experimental-genesis 42 #endif
experimental-genesis 43
experimental-genesis 44 #include <string>
experimental-genesis 45
experimental-genesis 46 namespace json_spirit
experimental-genesis 47 {
experimental-genesis 48 // An Error_position exception is thrown by the "read_or_throw" functions below on finding an error.
experimental-genesis 49 // Note the "read_or_throw" functions are around 3 times slower than the standard functions "read"
experimental-genesis 50 // functions that return a bool.
experimental-genesis 51 //
experimental-genesis 52 struct Error_position
experimental-genesis 53 {
experimental-genesis 54 Error_position();
experimental-genesis 55 Error_position( unsigned int line, unsigned int column, const std::string& reason );
experimental-genesis 56 bool operator==( const Error_position& lhs ) const;
experimental-genesis 57 unsigned int line_;
experimental-genesis 58 unsigned int column_;
experimental-genesis 59 std::string reason_;
experimental-genesis 60 };
experimental-genesis 61
experimental-genesis 62 inline Error_position::Error_position()
experimental-genesis 63 : line_( 0 )
experimental-genesis 64 , column_( 0 )
experimental-genesis 65 {
experimental-genesis 66 }
experimental-genesis 67
experimental-genesis 68 inline Error_position::Error_position( unsigned int line, unsigned int column, const std::string& reason )
experimental-genesis 69 : line_( line )
experimental-genesis 70 , column_( column )
experimental-genesis 71 , reason_( reason )
experimental-genesis 72 {
experimental-genesis 73 }
experimental-genesis 74
experimental-genesis 75 inline bool Error_position::operator==( const Error_position& lhs ) const
experimental-genesis 76 {
experimental-genesis 77 if( this == &lhs ) return true;
experimental-genesis 78
experimental-genesis 79 return ( reason_ == lhs.reason_ ) &&
experimental-genesis 80 ( line_ == lhs.line_ ) &&
experimental-genesis 81 ( column_ == lhs.column_ );
experimental-genesis 82 }
experimental-genesis 83 }
experimental-genesis 84
experimental-genesis 85 #endif