Sha256: 7e44b5019e9d519d483c66465c09c7c3cc7cd9d3d4b3fe9368f33b524aa2b171

Contents?: true

Size: 1.88 KB

Versions: 16

Compression:

Stored size: 1.88 KB

Contents

#pragma once

#include "path_builder.hpp"
#include "simple_config_origin.hpp"
#include "tokenizer.hpp"
#include <hocon/config_syntax.hpp>
#include <internal/nodes/config_node_path.hpp>

#include <string>
#include <vector>

namespace hocon  {

    class path_parser {
    public:
        static config_node_path parse_path_node(std::string const& path_string,
                                                config_syntax flavor = config_syntax::CONF);

        static path parse_path(std::string const& path_string);

        static path parse_path_expression(iterator& expression, shared_origin origin,
                                          std::string const& original_text = "",
                                          token_list* path_tokens = nullptr,
                                          config_syntax flavor = config_syntax::CONF);

        static config_node_path parse_path_node_expression(iterator& expression,
                                                           shared_origin origin,
                                                           std::string const& original_text = "",
                                                           config_syntax flavor = config_syntax::CONF);

    private:
        class element {
        public:
            element(std::string initial, bool can_be_empty);

            std::string to_string() const;

            std::string _value;
            bool _can_be_empty;
        };

        static token_list split_token_on_period(shared_token t, config_syntax flavor);

        static void add_path_text(std::vector<element>& buff, bool was_quoted, std::string new_text);

        static bool looks_unsafe_for_fast_parser(std::string s);

        static path fast_path_build(path tail, std::string s);

        static path speculative_fast_parse_path(std::string const& path);

        static const shared_origin api_origin;
    };

}  // namespace hocon

Version data entries

16 entries across 16 versions & 2 rubygems

Version Path
facter-3.12.2.cfacter.20181217 ext/facter/cpp-hocon/lib/inc/internal/path_parser.hpp
facter-3.12.1.cfacter.20181031 ext/facter/cpp-hocon/lib/inc/internal/path_parser.hpp
facter-3.11.6.cfacter.20181031 ext/facter/cpp-hocon/lib/inc/internal/path_parser.hpp
facter-3.12.1.cfacter.20181023 ext/facter/cpp-hocon/lib/inc/internal/path_parser.hpp
facter-3.11.5.cfacter.20181022 ext/facter/cpp-hocon/lib/inc/internal/path_parser.hpp
facter-3.12.0.cfacter.20181004 ext/facter/cpp-hocon/lib/inc/internal/path_parser.hpp
facter-3.12.0.cfacter.20181001 ext/facter/cpp-hocon/lib/inc/internal/path_parser.hpp
facter-3.12.0.cfacter.20180918 ext/facter/cpp-hocon/lib/inc/internal/path_parser.hpp
facter-3.11.4.cfacter.20180821 ext/facter/cpp-hocon/lib/inc/internal/path_parser.hpp
facter-3.11.3.cfacter.20180716 ext/facter/cpp-hocon/lib/inc/internal/path_parser.hpp
facter-3.11.2.cfacter.20180612 ext/facter/cpp-hocon/lib/inc/internal/path_parser.hpp
facter-3.9.6.cfacter.20180612 ext/facter/cpp-hocon/lib/inc/internal/path_parser.hpp
facter-3.11.2.cfacter.20180606 ext/facter/cpp-hocon/lib/inc/internal/path_parser.hpp
facter-3.9.6.cfacter.20180606 ext/facter/cpp-hocon/lib/inc/internal/path_parser.hpp
facter-3.11.0.cfacter.20180319 ext/facter/cpp-hocon/lib/inc/internal/path_parser.hpp
cfacter-3.11.0.rc.20180314 ext/facter/cpp-hocon/lib/inc/internal/path_parser.hpp