3 #include "path_builder.hpp" 4 #include "simple_config_origin.hpp" 5 #include "tokenizer.hpp" 6 #include <hocon/config_syntax.hpp> 7 #include <internal/nodes/config_node_path.hpp> 17 config_syntax flavor = config_syntax::CONF);
19 static path parse_path(std::string
const& path_string);
21 static path parse_path_expression(
iterator& expression, shared_origin origin,
22 std::string
const& original_text =
"",
23 token_list* path_tokens =
nullptr,
24 config_syntax flavor = config_syntax::CONF);
28 std::string
const& original_text =
"",
29 config_syntax flavor = config_syntax::CONF);
34 element(std::string initial,
bool can_be_empty);
36 std::string to_string()
const;
42 static token_list split_token_on_period(shared_token t, config_syntax flavor);
44 static void add_path_text(std::vector<element>& buff,
bool was_quoted, std::string new_text);
46 static bool looks_unsafe_for_fast_parser(std::string s);
48 static path fast_path_build(
path tail, std::string s);
50 static path speculative_fast_parse_path(std::string
const&
path);
52 static const shared_origin api_origin;
Factory for creating config_document instances.