3 #include <hocon/config_parseable.hpp> 4 #include <boost/nowide/fstream.hpp> 5 #include <internal/simple_config_origin.hpp> 6 #include <hocon/config_object.hpp> 7 #include <hocon/config_include_context.hpp> 11 class config_document;
17 static std::shared_ptr<parseable> new_not_found(std::string what_not_found, std::string message,
20 static config_syntax syntax_from_extension(std::string name);
24 std::shared_ptr<config_document> parse_config_document();
26 shared_object parse()
const;
28 shared_value parse_value()
const;
31 std::shared_ptr<const config_origin>
origin()
const override;
34 virtual std::unique_ptr<std::istream> reader()
const = 0;
35 virtual shared_origin create_origin()
const = 0;
37 virtual config_syntax guess_syntax()
const;
38 virtual config_syntax content_type()
const;
39 virtual std::shared_ptr<config_parseable> relative_to(std::string file_name)
const;
41 std::string to_string()
const;
42 std::string get_cur_dir()
const;
43 void set_cur_dir(std::string dir)
const;
44 void separate_filepath(
const std::string&
path, std::string* file_dir,
45 std::string* file_name)
const;
54 std::shared_ptr<config_document> parse_document(shared_origin
origin,
56 std::shared_ptr<config_document> raw_parse_document(std::unique_ptr<std::istream> stream, shared_origin
origin,
58 std::shared_ptr<config_document> raw_parse_document(shared_origin
origin,
63 shared_value raw_parse_value(std::unique_ptr<std::istream> stream,
70 std::vector<parseable> _parse_stack;
72 shared_origin _initial_origin;
74 shared_include_context _include_context;
76 static const int MAX_INCLUDE_DEPTH;
82 std::unique_ptr<std::istream> reader()
const override;
83 shared_origin create_origin()
const override;
84 config_syntax guess_syntax()
const override;
93 std::unique_ptr<std::istream> reader()
const override;
94 shared_origin create_origin()
const override;
111 std::unique_ptr<std::istream> reader()
const override;
112 shared_origin create_origin()
const override;
115 std::string _resource;
124 std::unique_ptr<std::istream> reader()
const override;
125 shared_origin create_origin()
const override;
129 std::string _message;
config_parse_options const & options() const override
Get the initial options, which can be modified then passed to parse().
A set of options related to parsing.
Factory for creating config_document instances.
An opaque handle to something that can be parsed, obtained from config_include_context.
shared_object parse(config_parse_options const &options) const override
Parse whatever it is.
std::shared_ptr< const config_origin > origin() const override
Returns a config_origin describing the origin of the paresable item.