WPILibC++  unspecified
wpi::json::lexer Class Reference

lexical analysis More...

Public Types

enum  token_type {
  token_type::uninitialized, token_type::literal_true, token_type::literal_false, token_type::literal_null,
  token_type::value_string, token_type::value_unsigned, token_type::value_integer, token_type::value_float,
  token_type::begin_array, token_type::begin_object, token_type::end_array, token_type::end_object,
  token_type::name_separator, token_type::value_separator, token_type::parse_error, token_type::end_of_input,
  token_type::literal_or_value
}
 token types for the parser More...
 

Public Member Functions

 lexer (raw_istream &s)
 
 lexer (const lexer &)=delete
 
lexeroperator= (lexer &)=delete
 
int64_t get_number_integer () const noexcept
 return integer value
 
uint64_t get_number_unsigned () const noexcept
 return unsigned integer value
 
double get_number_float () const noexcept
 return floating-point value
 
StringRef get_string ()
 return current string value
 
std::size_t get_position () const noexcept
 return position of last read token
 
std::string get_token_string () const
 return the last read token (for errors only). More...
 
const char * get_error_message () const noexcept
 return syntax error message
 
token_type scan ()
 

Static Public Member Functions

static const char * token_type_name (const token_type t) noexcept
 return name of values of type token_type (only used for errors)
 

Detailed Description

lexical analysis

This class organizes the lexical analysis during JSON deserialization.

Member Enumeration Documentation

token types for the parser

Enumerator
uninitialized 

indicating the scanner is uninitialized

literal_true 

the true literal

literal_false 

the false literal

literal_null 

the null literal

value_string 

a string – use get_string() for actual value

value_unsigned 

an unsigned integer – use get_number_unsigned() for actual value

value_integer 

a signed integer – use get_number_integer() for actual value

value_float 

an floating point number – use get_number_float() for actual value

begin_array 

the character for array begin [

begin_object 

the character for object begin {

end_array 

the character for array end ]

end_object 

the character for object end }

name_separator 

the name separator :

value_separator 

the value separator ,

parse_error 

indicating a parse error

end_of_input 

indicating the end of the input buffer

literal_or_value 

a literal or the begin of a value (only for diagnostics)

Member Function Documentation

std::string wpi::json::lexer::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.


The documentation for this class was generated from the following file: