108 #include "sysconfig.hpp"
114 #include <string_view>
133 std::string message_;
150 auto line()
const noexcept -> unsigned;
157 auto column()
const noexcept -> unsigned;
164 auto what()
const noexcept ->
const char*
override;
206 token(
type type,
unsigned line,
unsigned column, std::string value =
"") noexcept;
220 auto
get_line() const noexcept ->
unsigned;
257 option(std::string key) noexcept;
266 option(std::string key, std::string value) noexcept;
275 option(std::string key, std::vector<std::string> values) noexcept;
282 auto get_key()
const noexcept ->
const std::string&;
289 auto get_value()
const noexcept ->
const std::string&;
306 section(std::string key) noexcept;
313 auto get_key()
const noexcept ->
const std::string&;
321 auto contains(std::string_view key)
const noexcept -> bool;
329 auto get(std::string_view key)
const noexcept ->
option;
337 auto find(std::string_view key) noexcept -> iterator;
345 auto find(std::string_view key)
const noexcept -> const_iterator;
354 auto operator[](std::string_view key) ->
option&;
363 auto operator[](std::string_view key)
const ->
const option&;
368 using std::vector<option>::operator[];
384 auto contains(std::string_view key)
const noexcept -> bool;
392 auto get(std::string_view key)
const noexcept ->
section;
400 auto find(std::string_view key) noexcept -> iterator;
408 auto find(std::string_view key)
const noexcept -> const_iterator;
417 auto operator[](std::string_view key) ->
section&;
426 auto operator[](std::string_view key)
const ->
const section&;
431 using std::vector<section>::operator[];
446 auto analyse(std::istreambuf_iterator<char> it, std::istreambuf_iterator<char> end) ->
tokens;
499 #endif // !IRCCD_INI_HPP