cprover
Toggle main menu visibility
Loading...
Searching...
No Matches
edit_distance.h
Go to the documentation of this file.
1
11
12
#ifndef CPROVER_UTIL_EDIT_DISTANCE_H
13
#define CPROVER_UTIL_EDIT_DISTANCE_H
14
15
#include "
nfa.h
"
16
17
#include <cstddef>
18
#include <optional>
19
#include <string>
20
24
struct
levenshtein_automatont
25
{
26
private
:
27
nfat<char>
nfa
;
28
using
state_labelt
=
nfat<char>::state_labelt
;
29
std::vector<state_labelt>
final_states
;
30
31
public
:
32
levenshtein_automatont
(
33
const
std::string &
string
,
34
std::size_t allowed_errors = 2);
35
36
bool
matches
(
const
std::string &
string
)
const
;
37
std::optional<std::size_t>
get_edit_distance
(
const
std::string &
string
)
const
;
38
39
void
dump_automaton_dot_to
(std::ostream &out)
40
{
41
nfa
.dump_automaton_dot_to(out);
42
};
43
};
44
45
#endif
// CPROVER_UTIL_EDIT_DISTANCE_H
nfa.h
levenshtein_automatont::levenshtein_automatont
levenshtein_automatont(const std::string &string, std::size_t allowed_errors=2)
Definition
edit_distance.cpp:8
levenshtein_automatont::state_labelt
nfat< char >::state_labelt state_labelt
Definition
edit_distance.h:28
levenshtein_automatont::get_edit_distance
std::optional< std::size_t > get_edit_distance(const std::string &string) const
Definition
edit_distance.cpp:58
levenshtein_automatont::dump_automaton_dot_to
void dump_automaton_dot_to(std::ostream &out)
Definition
edit_distance.h:39
levenshtein_automatont::matches
bool matches(const std::string &string) const
Definition
edit_distance.cpp:52
levenshtein_automatont::final_states
std::vector< state_labelt > final_states
Definition
edit_distance.h:29
levenshtein_automatont::nfa
nfat< char > nfa
Definition
edit_distance.h:27
nfat
Very simple NFA implementation Not super performant, but should be good enough for our purposes.
Definition
nfa.h:28
nfat::state_labelt
std::size_t state_labelt
Definition
nfa.h:29
util
edit_distance.h
Generated by
1.17.0