cpptoml
A C++11 parser for TOML
|
The parser class. More...
#include <cpptoml.h>
Public Member Functions | |
parser (std::istream &stream) | |
Parsers are constructed from streams. | |
parser & | operator= (const parser &parser)=delete |
std::shared_ptr< table > | parse () |
Parses the stream this parser was created on until EOF. More... | |
Private Types | |
enum | parse_type { STRING = 1, LOCAL_TIME, LOCAL_DATE, LOCAL_DATETIME, OFFSET_DATETIME, INT, FLOAT, BOOL, ARRAY, INLINE_TABLE } |
Private Member Functions | |
void | throw_parse_exception (const std::string &err) |
void | parse_table (std::string::iterator &it, const std::string::iterator &end, table *&curr_table) |
void | parse_single_table (std::string::iterator &it, const std::string::iterator &end, table *&curr_table) |
void | parse_table_array (std::string::iterator &it, const std::string::iterator &end, table *&curr_table) |
void | parse_key_value (std::string::iterator &it, std::string::iterator &end, table *curr_table) |
template<class Function > | |
std::string | parse_key (std::string::iterator &it, const std::string::iterator &end, Function &&fun) |
std::string | parse_bare_key (std::string::iterator &it, const std::string::iterator &end) |
std::string | parse_quoted_key (std::string::iterator &it, const std::string::iterator &end) |
std::shared_ptr< base > | parse_value (std::string::iterator &it, std::string::iterator &end) |
parse_type | determine_value_type (const std::string::iterator &it, const std::string::iterator &end) |
parse_type | determine_number_type (const std::string::iterator &it, const std::string::iterator &end) |
std::shared_ptr< value< std::string > > | parse_string (std::string::iterator &it, std::string::iterator &end) |
std::shared_ptr< value< std::string > > | parse_multiline_string (std::string::iterator &it, std::string::iterator &end, char delim) |
std::string | string_literal (std::string::iterator &it, const std::string::iterator &end, char delim) |
std::string | parse_escape_code (std::string::iterator &it, const std::string::iterator &end) |
std::string | parse_unicode (std::string::iterator &it, const std::string::iterator &end) |
uint32_t | parse_hex (std::string::iterator &it, const std::string::iterator &end, uint32_t place) |
bool | is_hex (char c) |
uint32_t | hex_to_digit (char c) |
std::shared_ptr< base > | parse_number (std::string::iterator &it, const std::string::iterator &end) |
std::shared_ptr< value< int64_t > > | parse_int (std::string::iterator &it, const std::string::iterator &end) |
std::shared_ptr< value< double > > | parse_float (std::string::iterator &it, const std::string::iterator &end) |
std::shared_ptr< value< bool > > | parse_bool (std::string::iterator &it, const std::string::iterator &end) |
std::string::iterator | find_end_of_number (std::string::iterator it, std::string::iterator end) |
std::string::iterator | find_end_of_date (std::string::iterator it, std::string::iterator end) |
std::string::iterator | find_end_of_time (std::string::iterator it, std::string::iterator end) |
local_time | read_time (std::string::iterator &it, const std::string::iterator &end) |
std::shared_ptr< value< local_time > > | parse_time (std::string::iterator &it, const std::string::iterator &end) |
std::shared_ptr< base > | parse_date (std::string::iterator &it, const std::string::iterator &end) |
std::shared_ptr< base > | parse_array (std::string::iterator &it, std::string::iterator &end) |
template<class Value > | |
std::shared_ptr< array > | parse_value_array (std::string::iterator &it, std::string::iterator &end) |
template<class Object , class Function > | |
std::shared_ptr< Object > | parse_object_array (Function &&fun, char delim, std::string::iterator &it, std::string::iterator &end) |
std::shared_ptr< table > | parse_inline_table (std::string::iterator &it, std::string::iterator &end) |
void | skip_whitespace_and_comments (std::string::iterator &start, std::string::iterator &end) |
void | consume_whitespace (std::string::iterator &it, const std::string::iterator &end) |
void | consume_backwards_whitespace (std::string::iterator &back, const std::string::iterator &front) |
void | eol_or_comment (const std::string::iterator &it, const std::string::iterator &end) |
bool | is_time (const std::string::iterator &it, const std::string::iterator &end) |
option< parse_type > | date_type (const std::string::iterator &it, const std::string::iterator &end) |
Private Attributes | |
std::istream & | input_ |
std::string | line_ |
std::size_t | line_number_ = 0 |
The parser class.
|
inline |
Parses the stream this parser was created on until EOF.
parse_exception | if there are errors in parsing |