reglibcpp
2.1.0
A C++ implementation of models for regular languages
|
Where this library lives. More...
Classes | |
class | dfa |
Represents deterministic finite automata. More... | |
class | expression |
Represents formal regular expressions. More... | |
class | fabuilder |
Constructs finite automata step by step. More... | |
class | gnfa |
Represents generalized nondeterministic finite automata. More... | |
class | nfa |
Represents nondeterministic finite automata with ε-moves. More... | |
struct | state_not_found |
Signals that a state was mentioned that isn't part of the FA. More... | |
struct | symbol_not_found |
Signals that an input symbol was used that the FA doesn't recognize. More... | |
Functions | |
u32string | findShortestWord_ (dfa const &d) |
Searches the shortest UTF-32-encoded word accepted by a given DFA. More... | |
string | findShortestWord (dfa const &d) |
Searches the shortest UTF-8-encoded word accepted by a given DFA. More... | |
u32string | findShortestWord_ (nfa const &n) |
Searches the shortest UTF-32-encoded word accepted by a given NFA. More... | |
string | findShortestWord (nfa const &n) |
Searches the shortest UTF-8-encoded word accepted by a given NFA. More... | |
template<class C , class T > | |
size_t | index_of (C const &container, T const &element) |
Basically Java's List interface's indexOf, but as a non-member function and returning the container's size upon failure. More... | |
Variables | |
std::wstring_convert< std::codecvt_utf8< char32_t >, char32_t > | converter |
Converts between UTF-8-encoded and UTF-32-encoded strings. More... | |
Where this library lives.
std::string reg::findShortestWord | ( | dfa const & | d | ) |
Searches the shortest UTF-8-encoded word accepted by a given DFA.
This calls findShortestWord_(dfa const&) and converts the result to UTF-8. If you don't want that overhead and can handle UTF-32-encoded strings, use that function.
d | the DFA |
std::logic_error | if the DFA doesn't accept any words |
std::string reg::findShortestWord | ( | nfa const & | n | ) |
Searches the shortest UTF-8-encoded word accepted by a given NFA.
Actually finds a word that requires the minimal number of transitions to reach an accept state. Due to ε-transitions, this is not necessarily the word with the shortest length.
This calls findShortestWord_(nfa const&) and converts the result to UTF-8. If you don't want that overhead and can handle UTF-32-encoded strings, use that function.
n | the NFA |
std::logic_error | if the NFA doesn't accept any words |
std::u32string reg::findShortestWord_ | ( | dfa const & | d | ) |
Searches the shortest UTF-32-encoded word accepted by a given DFA.
d | the DFA |
std::logic_error | if the DFA doesn't accept any words |
std::u32string reg::findShortestWord_ | ( | nfa const & | n | ) |
Searches the shortest UTF-32-encoded word accepted by a given NFA.
Actually finds a word that requires the minimal number of transitions to reach an accept state. This is not necessarily the word with the shortest length.
n | the NFA |
std::logic_error | if the NFA doesn't accept any words |
size_t reg::index_of | ( | C const & | container, |
T const & | element | ||
) |
Basically Java's List interface's indexOf, but as a non-member function and returning the container's size upon failure.
container | the container to search through |
element | the element to find the index of |
i
with container.begin()[i]==element
or container.size()
if none is found
|
inline |