5 #include <hocon/types.hpp>
6 #include <internal/resolve_result.hpp>
7 #include <hocon/config_exception.hpp>
12 class resolve_context;
13 class substitution_expression;
17 typedef std::list<std::shared_ptr<const container>> node;
28 resolve_source push_parent(std::shared_ptr<const container> parent)
const;
31 resolve_source replace_current_parent(std::shared_ptr<const container> old, std::shared_ptr<const container> replacement)
const;
32 resolve_source replace_within_current_parent(shared_value old, shared_value replacement)
const;
36 struct value_with_path {
40 value_with_path(shared_value v, node path_from_root_value);
46 static value_with_path find_in_object(shared_object obj,
path the_path);
47 static result_with_path find_in_object(shared_object obj,
resolve_context context,
path the_path);
48 static value_with_path find_in_object(shared_object obj,
path the_path, node parents);
51 shared_object root_must_be_obj(std::shared_ptr<const container>
value)
const;
53 static node replace(
const node& list, std::shared_ptr<const container> old, shared_value replacement);