#include "./fuzztest/internal/domains/regexp_dfa.h"
#include <algorithm>
#include <cstddef>
#include <cstdint>
#include <iterator>
#include <memory>
#include <optional>
#include <queue>
#include <string>
#include <utility>
#include <vector>
#include "absl/container/flat_hash_map.h"
#include "absl/random/discrete_distribution.h"
#include "absl/strings/string_view.h"
#include "./fuzztest/internal/logging.h"
#include "re2/prog.h"
#include "re2/regexp.h"
namespace fuzztest::internal {
RegexpDFA RegexpDFA::Create(absl::string_view regexp) { … }
std::optional<std::vector<RegexpDFA::Edge>> RegexpDFA::StringToDFAPath(
absl::string_view s) const { … }
std::optional<std::string> RegexpDFA::DFAPathToString(
const std::vector<RegexpDFA::Edge>& path, size_t start_offset,
std::optional<size_t> end_offset) const { … }
std::optional<int> RegexpDFA::NextState(
const State& cur_state, const std::vector<std::int16_t>& input_chars,
size_t& cur_index) const { … }
std::unique_ptr<re2::Prog> RegexpDFA::CompileRegexp(absl::string_view regexp) { … }
void RegexpDFA::BuildEntireDFA(std::unique_ptr<re2::Prog> compiled_regexp) { … }
void RegexpDFA::ComputeEdgeWeights() { … }
void RegexpDFA::CompressStates() { … }
}