NeBuild dev
Loading...
Searching...
No Matches
parser Class Reference

Public Member Functions

 parser (utf8_reader_interface &&reader_)
 
TOML_NODISCARD operator parse_result () &&noexcept
 

Private Member Functions

TOML_NODISCARD source_position current_position (source_index fallback_offset=0) const noexcept
 
template<typename... T>
TOML_RETURNS_BY_THROWING TOML_NEVER_INLINE void set_error_at (source_position pos, const T &... reason) const
 
template<typename... T>
TOML_RETURNS_BY_THROWING void set_error (const T &... reason) const
 
void go_back (size_t count=1) noexcept
 
void advance ()
 
void start_recording (bool include_current=true) noexcept
 
void stop_recording (size_t pop_bytes=0) noexcept
 
bool consume_leading_whitespace ()
 
bool consume_line_break ()
 
bool consume_rest_of_line ()
 
bool consume_comment ()
 
TOML_NODISCARD bool consume_expected_sequence (std::u32string_view seq)
 
template<typename T >
TOML_NODISCARD bool consume_digit_sequence (T *digits, size_t len)
 
template<typename T >
TOML_NODISCARD size_t consume_variable_length_digit_sequence (T *buffer, size_t max_len)
 
TOML_NODISCARD TOML_NEVER_INLINE std::string_view parse_basic_string (bool multi_line)
 
TOML_NODISCARD TOML_NEVER_INLINE std::string_view parse_literal_string (bool multi_line)
 
TOML_NODISCARD TOML_NEVER_INLINE parsed_string parse_string ()
 
TOML_NODISCARD TOML_NEVER_INLINE std::string_view parse_bare_key_segment ()
 
TOML_NODISCARD TOML_NEVER_INLINE bool parse_boolean ()
 
TOML_NODISCARD TOML_NEVER_INLINE double parse_inf_or_nan ()
 
TOML_NODISCARD TOML_NEVER_INLINE double parse_float ()
 
TOML_NODISCARD TOML_NEVER_INLINE double parse_hex_float ()
 
template<uint64_t base>
TOML_NODISCARD TOML_NEVER_INLINE int64_t parse_integer ()
 
TOML_NODISCARD TOML_NEVER_INLINE date parse_date (bool part_of_datetime=false)
 
TOML_NODISCARD TOML_NEVER_INLINE time parse_time (bool part_of_datetime=false)
 
TOML_NODISCARD TOML_NEVER_INLINE date_time parse_date_time ()
 
TOML_NODISCARD node_ptr parse_array ()
 
TOML_NODISCARD node_ptr parse_inline_table ()
 
TOML_NODISCARD node_ptr parse_value_known_prefixes ()
 
TOML_NODISCARD node_ptr parse_value ()
 
TOML_NEVER_INLINE bool parse_key ()
 
TOML_NODISCARD key make_key (size_t segment_index) const
 
TOML_NODISCARD TOML_NEVER_INLINE tableparse_table_header ()
 
TOML_NEVER_INLINE bool parse_key_value_pair_and_insert (table *tbl)
 
void parse_document ()
 

Static Private Member Functions

static void update_region_ends (node &nde) noexcept
 

Private Attributes

utf8_buffered_reader reader
 
table root
 
source_position prev_pos = {1, 1}
 
const utf8_codepointcp = {}
 
std::vector< table * > implicit_tables
 
std::vector< table * > dotted_key_tables
 
std::vector< table * > open_inline_tables
 
std::vector< array * > table_arrays
 
parse_key_buffer key_buffer
 
std::string string_buffer
 
std::string recording_buffer
 
bool recording = false
 
bool recording_whitespace = true
 
std::string_view current_scope
 
size_t nested_values = {}
 
optional< parse_error > err
 

Static Private Attributes

static constexpr size_t max_nested_values = TOML_MAX_NESTED_VALUES
 

Constructor & Destructor Documentation

◆ parser()

parser::parser ( utf8_reader_interface &&  reader_)
inline

Member Function Documentation

◆ advance()

void parser::advance ( )
inlineprivate

◆ consume_comment()

bool parser::consume_comment ( )
inlineprivate

◆ consume_digit_sequence()

template<typename T >
TOML_NODISCARD bool parser::consume_digit_sequence ( T *  digits,
size_t  len 
)
inlineprivate

◆ consume_expected_sequence()

TOML_NODISCARD bool parser::consume_expected_sequence ( std::u32string_view  seq)
inlineprivate

◆ consume_leading_whitespace()

bool parser::consume_leading_whitespace ( )
inlineprivate

◆ consume_line_break()

bool parser::consume_line_break ( )
inlineprivate

◆ consume_rest_of_line()

bool parser::consume_rest_of_line ( )
inlineprivate

◆ consume_variable_length_digit_sequence()

template<typename T >
TOML_NODISCARD size_t parser::consume_variable_length_digit_sequence ( T *  buffer,
size_t  max_len 
)
inlineprivate

◆ current_position()

TOML_NODISCARD source_position parser::current_position ( source_index  fallback_offset = 0) const
inlineprivatenoexcept

◆ go_back()

void parser::go_back ( size_t  count = 1)
inlineprivatenoexcept

◆ make_key()

TOML_NODISCARD key parser::make_key ( size_t  segment_index) const
inlineprivate

◆ operator parse_result()

TOML_NODISCARD parser::operator parse_result ( ) &&
inlinenoexcept

◆ parse_array()

TOML_EXTERNAL_LINKAGE node_ptr parser::parse_array ( )
private

◆ parse_bare_key_segment()

TOML_NODISCARD TOML_NEVER_INLINE std::string_view parser::parse_bare_key_segment ( )
inlineprivate

◆ parse_basic_string()

TOML_NODISCARD TOML_NEVER_INLINE std::string_view parser::parse_basic_string ( bool  multi_line)
inlineprivate

◆ parse_boolean()

TOML_NODISCARD TOML_NEVER_INLINE bool parser::parse_boolean ( )
inlineprivate

◆ parse_date()

TOML_NODISCARD TOML_NEVER_INLINE date parser::parse_date ( bool  part_of_datetime = false)
inlineprivate

◆ parse_date_time()

TOML_NODISCARD TOML_NEVER_INLINE date_time parser::parse_date_time ( )
inlineprivate

◆ parse_document()

void parser::parse_document ( )
inlineprivate

◆ parse_float()

TOML_NODISCARD TOML_NEVER_INLINE double parser::parse_float ( )
inlineprivate

◆ parse_hex_float()

TOML_NODISCARD TOML_NEVER_INLINE double parser::parse_hex_float ( )
inlineprivate

◆ parse_inf_or_nan()

TOML_NODISCARD TOML_NEVER_INLINE double parser::parse_inf_or_nan ( )
inlineprivate

◆ parse_inline_table()

TOML_EXTERNAL_LINKAGE node_ptr parser::parse_inline_table ( )
private

???

◆ parse_integer()

template<uint64_t base>
TOML_NODISCARD TOML_NEVER_INLINE int64_t parser::parse_integer ( )
inlineprivate

◆ parse_key()

TOML_NEVER_INLINE bool parser::parse_key ( )
inlineprivate

◆ parse_key_value_pair_and_insert()

TOML_NEVER_INLINE bool parser::parse_key_value_pair_and_insert ( table tbl)
inlineprivate

◆ parse_literal_string()

TOML_NODISCARD TOML_NEVER_INLINE std::string_view parser::parse_literal_string ( bool  multi_line)
inlineprivate

◆ parse_string()

TOML_NODISCARD TOML_NEVER_INLINE parsed_string parser::parse_string ( )
inlineprivate

◆ parse_table_header()

TOML_NODISCARD TOML_NEVER_INLINE table * parser::parse_table_header ( )
inlineprivate

◆ parse_time()

TOML_NODISCARD TOML_NEVER_INLINE time parser::parse_time ( bool  part_of_datetime = false)
inlineprivate

◆ parse_value()

TOML_NODISCARD node_ptr parser::parse_value ( )
inlineprivate

◆ parse_value_known_prefixes()

TOML_NODISCARD node_ptr parser::parse_value_known_prefixes ( )
inlineprivate

◆ set_error()

template<typename... T>
TOML_RETURNS_BY_THROWING void parser::set_error ( const T &...  reason) const
inlineprivate

◆ set_error_at()

template<typename... T>
TOML_RETURNS_BY_THROWING TOML_NEVER_INLINE void parser::set_error_at ( source_position  pos,
const T &...  reason 
) const
inlineprivate

◆ start_recording()

void parser::start_recording ( bool  include_current = true)
inlineprivatenoexcept

◆ stop_recording()

void parser::stop_recording ( size_t  pop_bytes = 0)
inlineprivatenoexcept

◆ update_region_ends()

static void parser::update_region_ends ( node &  nde)
inlinestaticprivatenoexcept

Member Data Documentation

◆ cp

const utf8_codepoint* parser::cp = {}
private

◆ current_scope

std::string_view parser::current_scope
private

◆ dotted_key_tables

std::vector<table*> parser::dotted_key_tables
private

◆ err

optional<parse_error> parser::err
mutableprivate

◆ implicit_tables

std::vector<table*> parser::implicit_tables
private

◆ key_buffer

parse_key_buffer parser::key_buffer
private

◆ max_nested_values

constexpr size_t parser::max_nested_values = TOML_MAX_NESTED_VALUES
staticconstexprprivate

◆ nested_values

size_t parser::nested_values = {}
private

◆ open_inline_tables

std::vector<table*> parser::open_inline_tables
private

◆ prev_pos

source_position parser::prev_pos = {1, 1}
private

◆ reader

utf8_buffered_reader parser::reader
private

◆ recording

bool parser::recording = false
private

◆ recording_buffer

std::string parser::recording_buffer
private

◆ recording_whitespace

bool parser::recording_whitespace = true
private

◆ root

table parser::root
private

◆ string_buffer

std::string parser::string_buffer
private

◆ table_arrays

std::vector<array*> parser::table_arrays
private

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