3 #include <hocon/config_value.hpp> 4 #include <hocon/config_syntax.hpp> 5 #include <hocon/config_include_context.hpp> 6 #include <hocon/config_parse_options.hpp> 7 #include <hocon/path.hpp> 8 #include <internal/nodes/config_node_concatenation.hpp> 9 #include <internal/nodes/config_node_root.hpp> 10 #include <internal/nodes/abstract_config_node_value.hpp> 11 #include <internal/nodes/config_node_object.hpp> 12 #include <internal/nodes/config_node_array.hpp> 13 #include <internal/nodes/config_node_include.hpp> 14 #include <internal/full_includer.hpp> 17 #include <unordered_map> 20 namespace hocon {
namespace config_parser {
22 shared_value parse(std::shared_ptr<const config_node_root> document,
24 config_parse_options options,
25 shared_include_context include_context);
29 std::shared_ptr<const config_node_root> _document;
30 std::shared_ptr<const full_includer> _includer;
31 shared_include_context _include_context;
32 config_syntax _flavor;
33 shared_origin _base_origin, _line_origin;
34 std::vector<path> _path_stack;
37 parse_context(config_syntax flavor, shared_origin origin, std::shared_ptr<const config_node_root> document,
38 std::shared_ptr<const full_includer> includer, shared_include_context include_context);
45 static shared_object create_value_under_path(
path p, shared_value
value);
46 shared_origin line_origin()
const;
47 path full_current_path()
const;
48 shared_value parse_value(shared_node_value n, std::vector<std::string>& comments);
49 void parse_include(std::unordered_map<std::string, shared_value> &values, std::shared_ptr<const config_node_include> n);
50 shared_object parse_object(shared_node_object n);
51 shared_value parse_array(shared_node_array n);
52 shared_value parse_concatenation(shared_node_concatenation n);
Factory for creating config_document instances.