1#ifndef NEFORCE_CORE_FILE_TOML_TOML_PARSER_HPP__
2#define NEFORCE_CORE_FILE_TOML_TOML_PARSER_HPP__
27NEFORCE_BEGIN_NAMESPACE__
60 bool is_in_array_table_ =
false;
77 void skip_whitespace()
noexcept;
84 void skip_comment()
noexcept;
91 void skip_whitespace_and_comments()
noexcept;
98 void skip_newlines()
noexcept;
105 void skip_whitespace_no_newline()
noexcept;
111 NEFORCE_NODISCARD
char current()
const noexcept;
118 NEFORCE_NODISCARD
char peek(
size_t offset = 1)
const noexcept;
124 NEFORCE_NODISCARD
bool eof()
const noexcept;
141 bool expect(
char ch);
150 bool match(
char ch)
noexcept;
159 void throw_parse_error(
string message)
const;
170 codepoint parse_unicode_escape(
size_t digits);
273 string parse_bare_key();
281 string parse_quoted_key();
305 void parse_key_value();
312 void parse_table_header();
319 void parse_array_table_header();
353 text_(_NEFORCE
move(text)),
382NEFORCE_END_NAMESPACE__
unique_ptr< toml_table > parse()
执行解析
toml_parser(string text)
构造函数
optional< unique_ptr< toml_table > > try_parse()
尝试执行解析
constexpr void advance(Iterator &i, Distance n)
将迭代器前进指定距离
constexpr Iterator2 move(Iterator1 first, Iterator1 last, Iterator2 result) noexcept(noexcept(inner::__move_aux(first, last, result)))
移动范围元素
constexpr decltype(auto) size(const Container &cont) noexcept(noexcept(cont.size()))
获取容器的大小
constexpr unique_ptr< T > make_unique(Args &&... args)
创建unique_ptr