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;