You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.4 KiB
54 lines
1.4 KiB
#ifndef JSON_SPIRIT_ERROR_POSITION |
|
#define JSON_SPIRIT_ERROR_POSITION |
|
|
|
// Copyright John W. Wilkinson 2007 - 2009. |
|
// Distributed under the MIT License, see accompanying file LICENSE.txt |
|
|
|
// json spirit version 4.03 |
|
|
|
#if defined(_MSC_VER) && (_MSC_VER >= 1020) |
|
# pragma once |
|
#endif |
|
|
|
#include <string> |
|
|
|
namespace json_spirit |
|
{ |
|
// An Error_position exception is thrown by the "read_or_throw" functions below on finding an error. |
|
// Note the "read_or_throw" functions are around 3 times slower than the standard functions "read" |
|
// functions that return a bool. |
|
// |
|
struct Error_position |
|
{ |
|
Error_position(); |
|
Error_position( unsigned int line, unsigned int column, const std::string& reason ); |
|
bool operator==( const Error_position& lhs ) const; |
|
unsigned int line_; |
|
unsigned int column_; |
|
std::string reason_; |
|
}; |
|
|
|
inline Error_position::Error_position() |
|
: line_( 0 ) |
|
, column_( 0 ) |
|
{ |
|
} |
|
|
|
inline Error_position::Error_position( unsigned int line, unsigned int column, const std::string& reason ) |
|
: line_( line ) |
|
, column_( column ) |
|
, reason_( reason ) |
|
{ |
|
} |
|
|
|
inline bool Error_position::operator==( const Error_position& lhs ) const |
|
{ |
|
if( this == &lhs ) return true; |
|
|
|
return ( reason_ == lhs.reason_ ) && |
|
( line_ == lhs.line_ ) && |
|
( column_ == lhs.column_ ); |
|
} |
|
} |
|
|
|
#endif
|
|
|