Template Class lexer
Defined in File json.hpp
Inheritance Relationships
Base Type
public detail::lexer_base< BasicJsonType >
(Template Class lexer_base)
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() = 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()
-
using token_type = typename lexer_base<BasicJsonType>::token_type