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;
213 auto get_type() const noexcept ->
type;
220 auto get_line() const noexcept ->
unsigned;
227 auto get_column() const noexcept ->
unsigned;
235 auto get_value() const noexcept -> const
std::
string&;
266 option(std::string key, std::string value) noexcept;
275 option(std::string key, std::vector<std::string> values) noexcept;
289 auto get_value() 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;
363 auto operator[](
std::string_view key) const -> const
option&;
384 auto contains(std::string_view key)
const noexcept -> bool;
400 auto find(std::string_view key) noexcept -> iterator;
408 auto find(std::string_view key)
const noexcept -> const_iterator;
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
auto parse(const tokens &tokens, const std::string &path=".") -> document
@ section
[section]
Definition: ini.hpp:182
auto find(std::string_view key) const noexcept -> const_iterator
auto contains(std::string_view key) const noexcept -> bool
option(std::string key, std::vector< std::string > values) noexcept
option(std::string key) noexcept
auto read_file(const std::string &filename) -> document
@ assign
= assignment
Definition: ini.hpp:185
auto get(std::string_view key) const noexcept -> section
@ tryinclude
tryinclude statement
Definition: ini.hpp:181
token(type type, unsigned line, unsigned column, std::string value="") noexcept
auto get_key() const noexcept -> const std::string &
exception(unsigned line, unsigned column, std::string msg) noexcept
@ word
word without quotes
Definition: ini.hpp:183
@ list_end
end of list )
Definition: ini.hpp:187
option definition.
Definition: ini.hpp:246
void dump(const tokens &tokens)
auto column() const noexcept -> unsigned
Section that contains one or more options.
Definition: ini.hpp:295
auto what() const noexcept -> const char *override
Abstract stream interface.
Definition: stream.hpp:58
std::vector< token > tokens
Definition: ini.hpp:241
auto operator[](std::string_view key) -> section &
type
token type.
Definition: ini.hpp:179
auto analyse(std::istreambuf_iterator< char > it, std::istreambuf_iterator< char > end) -> tokens
auto get_key() const noexcept -> const std::string &
Describe a token read in the .ini source.
Definition: ini.hpp:174
@ quoted_word
word with quotes
Definition: ini.hpp:184
Parent namespace.
Definition: acceptor.hpp:43
auto line() const noexcept -> unsigned
auto find(std::string_view key) noexcept -> iterator
auto read_string(const std::string &buffer) -> document
option(std::string key, std::string value) noexcept
exception in a file.
Definition: ini.hpp:129
Ini document description.
Definition: ini.hpp:376
@ list_begin
begin of list (
Definition: ini.hpp:186
section(std::string key) noexcept
@ include
include statement
Definition: ini.hpp:180
auto operator[](std::string_view key) const -> const section &