Template Class lexer

Inheritance Relationships

Base Type

Class Documentation

template<typename BasicJsonType, typename InputAdapterType>
class lexer : public detail::lexer_base<BasicJsonType>

lexical analysis

This class organizes the lexical analysis during JSON deserialization.

Public Types

using token_type = typename lexer_base<BasicJsonType>::token_type

Public Functions

inline explicit lexer(InputAdapterType &&adapter, bool ignore_comments_ = false) noexcept
lexer(const lexer&) = delete
lexer(lexer&&) = default
lexer &operator=(lexer&) = delete
lexer &operator=(lexer&&) = default
~lexer() = default
inline constexpr number_integer_t get_number_integer() const noexcept

return integer value

inline constexpr number_unsigned_t get_number_unsigned() const noexcept

return unsigned integer value

inline constexpr number_float_t get_number_float() const noexcept

return floating-point value

inline string_t &get_string()

return current string value (implicitly resets the token; useful only once)

inline constexpr position_t get_position() const noexcept

return position of last read token

inline std::string get_token_string() const

return the last read token (for errors only). Will never contain EOF (an arbitrary value that is not a valid char value, often -1), because 255 may legitimately occur. May contain NUL, which should be escaped.

inline JSON_HEDLEY_RETURNS_NON_NULL constexpr const char * get_error_message () const noexcept

return syntax error message

inline bool skip_bom()

skip the UTF-8 byte order mark

Returns:

true iff there is no BOM or the correct BOM has been skipped

inline void skip_whitespace()
inline token_type scan()