syntax analysis More...
#include "json.h"
Public Member Functions | |
parser (InputAdapterType &&adapter, const parser_callback_t< BasicJsonType > cb=nullptr, const bool allow_exceptions_=true, const bool skip_comments=false) | |
a parser reading from an input adapter More... | |
parser (InputAdapterType &&adapter, const parser_callback_t< BasicJsonType > cb=nullptr, const bool allow_exceptions_=true, const bool skip_comments=false) | |
a parser reading from an input adapter More... | |
bool | accept (const bool strict=true) |
public accept interface More... | |
bool | accept (const bool strict=true) |
public accept interface More... | |
void | parse (const bool strict, BasicJsonType &result) |
public parser interface More... | |
void | parse (const bool strict, BasicJsonType &result) |
public parser interface More... | |
template<typename SAX > | |
bool | sax_parse (SAX *sax, const bool strict=true) |
template<typename SAX > | |
bool | sax_parse (SAX *sax, const bool strict=true) |
Private Types | |
using | lexer_t = lexer< BasicJsonType, InputAdapterType > |
using | lexer_t = lexer< BasicJsonType, InputAdapterType > |
using | number_float_t = typename BasicJsonType::number_float_t |
using | number_float_t = typename BasicJsonType::number_float_t |
using | number_integer_t = typename BasicJsonType::number_integer_t |
using | number_integer_t = typename BasicJsonType::number_integer_t |
using | number_unsigned_t = typename BasicJsonType::number_unsigned_t |
using | number_unsigned_t = typename BasicJsonType::number_unsigned_t |
using | string_t = typename BasicJsonType::string_t |
using | string_t = typename BasicJsonType::string_t |
using | token_type = typename lexer_t::token_type |
using | token_type = typename lexer_t::token_type |
Private Member Functions | |
std::string | exception_message (const token_type expected, const std::string &context) |
std::string | exception_message (const token_type expected, const std::string &context) |
token_type | get_token () |
get next token from lexer More... | |
token_type | get_token () |
get next token from lexer More... | |
template<typename SAX > | |
bool | sax_parse_internal (SAX *sax) |
template<typename SAX > | |
bool | sax_parse_internal (SAX *sax) |
Private Attributes | |
const bool | allow_exceptions = true |
whether to throw exceptions in case of errors More... | |
const parser_callback_t< BasicJsonType > | callback = nullptr |
callback function More... | |
token_type | last_token = token_type::uninitialized |
the type of the last read token More... | |
lexer_t | m_lexer |
the lexer More... | |
syntax analysis
This class implements a recursive descent parser.
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
inlineexplicit |
a parser reading from an input adapter
Definition at line 10243 of file json.h.
References nlohmann::detail::parser< BasicJsonType, InputAdapterType >::get_token().
|
inlineexplicit |
a parser reading from an input adapter
Definition at line 10243 of file json.h.
References nlohmann::detail::parser< BasicJsonType, InputAdapterType >::get_token().
|
inline |
public accept interface
[in] | strict | whether to expect the last token to be EOF |
Definition at line 10326 of file json.h.
References nlohmann::detail::parser< BasicJsonType, InputAdapterType >::sax_parse(), and nlohmann::detail::strict.
|
inline |
public accept interface
[in] | strict | whether to expect the last token to be EOF |
Definition at line 10326 of file json.h.
References nlohmann::detail::parser< BasicJsonType, InputAdapterType >::sax_parse(), and nlohmann::detail::strict.
|
inlineprivate |
Definition at line 10641 of file json.h.
References nlohmann::detail::parser< BasicJsonType, InputAdapterType >::last_token, and nlohmann::detail::parser< BasicJsonType, InputAdapterType >::m_lexer.
Referenced by nlohmann::detail::parser< BasicJsonType, InputAdapterType >::parse(), nlohmann::detail::parser< BasicJsonType, InputAdapterType >::sax_parse(), and nlohmann::detail::parser< BasicJsonType, InputAdapterType >::sax_parse_internal().
|
inlineprivate |
Definition at line 10641 of file json.h.
References nlohmann::detail::parser< BasicJsonType, InputAdapterType >::last_token, and nlohmann::detail::parser< BasicJsonType, InputAdapterType >::m_lexer.
|
inlineprivate |
get next token from lexer
Definition at line 10636 of file json.h.
References nlohmann::detail::parser< BasicJsonType, InputAdapterType >::last_token, and nlohmann::detail::parser< BasicJsonType, InputAdapterType >::m_lexer.
Referenced by nlohmann::detail::parser< BasicJsonType, InputAdapterType >::parser(), nlohmann::detail::parser< BasicJsonType, InputAdapterType >::parse(), nlohmann::detail::parser< BasicJsonType, InputAdapterType >::sax_parse(), and nlohmann::detail::parser< BasicJsonType, InputAdapterType >::sax_parse_internal().
|
inlineprivate |
get next token from lexer
Definition at line 10636 of file json.h.
References nlohmann::detail::parser< BasicJsonType, InputAdapterType >::last_token, and nlohmann::detail::parser< BasicJsonType, InputAdapterType >::m_lexer.
|
inline |
public parser interface
[in] | strict | whether to expect the last token to be EOF |
[in,out] | result | parsed JSON value |
parse_error.101 | in case of an unexpected token |
parse_error.102 | if to_unicode fails or surrogate error |
parse_error.103 | if to_unicode fails |
Definition at line 10265 of file json.h.
References nlohmann::detail::parser< BasicJsonType, InputAdapterType >::allow_exceptions, nlohmann::detail::parser< BasicJsonType, InputAdapterType >::callback, nlohmann::detail::parse_error::create(), nlohmann::detail::discarded, nlohmann::detail::parser< BasicJsonType, InputAdapterType >::exception_message(), nlohmann::detail::parser< BasicJsonType, InputAdapterType >::get_token(), nlohmann::detail::json_sax_dom_parser< BasicJsonType >::is_errored(), nlohmann::detail::json_sax_dom_callback_parser< BasicJsonType >::is_errored(), nlohmann::detail::parser< BasicJsonType, InputAdapterType >::m_lexer, nlohmann::detail::json_sax_dom_parser< BasicJsonType >::parse_error(), nlohmann::detail::json_sax_dom_callback_parser< BasicJsonType >::parse_error(), nlohmann::detail::parser< BasicJsonType, InputAdapterType >::sax_parse_internal(), and nlohmann::detail::strict.
|
inline |
public parser interface
[in] | strict | whether to expect the last token to be EOF |
[in,out] | result | parsed JSON value |
parse_error.101 | in case of an unexpected token |
parse_error.102 | if to_unicode fails or surrogate error |
parse_error.103 | if to_unicode fails |
Definition at line 10265 of file json.h.
References nlohmann::detail::parser< BasicJsonType, InputAdapterType >::allow_exceptions, nlohmann::detail::parser< BasicJsonType, InputAdapterType >::callback, nlohmann::detail::parse_error::create(), nlohmann::detail::discarded, nlohmann::detail::parser< BasicJsonType, InputAdapterType >::exception_message(), nlohmann::detail::parser< BasicJsonType, InputAdapterType >::get_token(), nlohmann::detail::parser< BasicJsonType, InputAdapterType >::m_lexer, nlohmann::detail::parser< BasicJsonType, InputAdapterType >::sax_parse_internal(), and nlohmann::detail::strict.
|
inline |
Definition at line 10334 of file json.h.
References nlohmann::detail::parse_error::create(), nlohmann::detail::parser< BasicJsonType, InputAdapterType >::exception_message(), nlohmann::detail::parser< BasicJsonType, InputAdapterType >::get_token(), nlohmann::detail::parser< BasicJsonType, InputAdapterType >::m_lexer, nlohmann::detail::parser< BasicJsonType, InputAdapterType >::sax_parse_internal(), and nlohmann::detail::strict.
Referenced by nlohmann::detail::parser< BasicJsonType, InputAdapterType >::accept().
|
inline |
Definition at line 10334 of file json.h.
References nlohmann::detail::parse_error::create(), nlohmann::detail::parser< BasicJsonType, InputAdapterType >::exception_message(), nlohmann::detail::parser< BasicJsonType, InputAdapterType >::get_token(), nlohmann::detail::parser< BasicJsonType, InputAdapterType >::m_lexer, nlohmann::detail::parser< BasicJsonType, InputAdapterType >::sax_parse_internal(), and nlohmann::detail::strict.
|
inlineprivate |
Definition at line 10354 of file json.h.
References nlohmann::detail::parse_error::create(), nlohmann::detail::out_of_range::create(), nlohmann::detail::parser< BasicJsonType, InputAdapterType >::exception_message(), nlohmann::detail::parser< BasicJsonType, InputAdapterType >::get_token(), JSON_ASSERT, JSON_HEDLEY_LIKELY, JSON_HEDLEY_UNLIKELY, nlohmann::detail::parser< BasicJsonType, InputAdapterType >::last_token, nlohmann::detail::parser< BasicJsonType, InputAdapterType >::m_lexer, and two-ray-to-three-gpp-ch-calibration::res.
Referenced by nlohmann::detail::parser< BasicJsonType, InputAdapterType >::parse(), and nlohmann::detail::parser< BasicJsonType, InputAdapterType >::sax_parse().
|
inlineprivate |
Definition at line 10354 of file json.h.
References nlohmann::detail::parse_error::create(), nlohmann::detail::out_of_range::create(), nlohmann::detail::parser< BasicJsonType, InputAdapterType >::exception_message(), nlohmann::detail::parser< BasicJsonType, InputAdapterType >::get_token(), JSON_ASSERT, JSON_HEDLEY_LIKELY, JSON_HEDLEY_UNLIKELY, nlohmann::detail::parser< BasicJsonType, InputAdapterType >::last_token, nlohmann::detail::parser< BasicJsonType, InputAdapterType >::m_lexer, and two-ray-to-three-gpp-ch-calibration::res.
|
private |
whether to throw exceptions in case of errors
Definition at line 10678 of file json.h.
Referenced by nlohmann::detail::parser< BasicJsonType, InputAdapterType >::parse().
|
private |
callback function
Definition at line 10672 of file json.h.
Referenced by nlohmann::detail::parser< BasicJsonType, InputAdapterType >::parse().
|
private |
the type of the last read token
Definition at line 10674 of file json.h.
Referenced by nlohmann::detail::parser< BasicJsonType, InputAdapterType >::exception_message(), nlohmann::detail::parser< BasicJsonType, InputAdapterType >::get_token(), and nlohmann::detail::parser< BasicJsonType, InputAdapterType >::sax_parse_internal().
|
private |
the lexer
Definition at line 10676 of file json.h.
Referenced by nlohmann::detail::parser< BasicJsonType, InputAdapterType >::exception_message(), nlohmann::detail::parser< BasicJsonType, InputAdapterType >::get_token(), nlohmann::detail::parser< BasicJsonType, InputAdapterType >::parse(), nlohmann::detail::parser< BasicJsonType, InputAdapterType >::sax_parse(), and nlohmann::detail::parser< BasicJsonType, InputAdapterType >::sax_parse_internal().