reglibcpp  1.5.0
(Naïve) C++ implementation of models for regular languages
Classes | Typedefs | Functions | Variables
reg Namespace Reference

Where this library lives. More...

Classes

class  dfa
 Represents deterministic finite automata. More...
 
class  expression
 Represents formal regular expressions. More...
 
class  gnfa
 Represents generalized nondeterministic finite automata. More...
 
class  nfa
 Represents nondeterministic finite automata with ε-moves. More...
 

Typedefs

using Dtransitionmap = unordered_map< string, unordered_map< char32_t, string > >
 Shorthand for the map from state name and transition symbol to target state. More...
 
using Ntransitionmap = unordered_map< string, unordered_map< char32_t, unordered_set< string > >>
 Shorthand for the map from state name and transition symbol to set of target states. More...
 

Functions

u32string findShortestWord (dfa const &d)
 Searches the shortest UTF-32-encoded word accepted by a given DFA. More...
 
string findShortestUtf8Word (dfa const &d)
 Same as above for a UTF-8-encoded word. More...
 
template<class T >
size_t index_of (vector< T > const &vec, 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...
 
template size_t index_of (vector< char32_t > const &vec, char32_t const &element)
 Explicit instantiation for use in other translation units. More...
 
template size_t index_of (vector< string > const &vec, string const &element)
 Explicit instantiation for use in other translation units. More...
 
u32string findShortestWord (nfa const &n)
 Searches the shortest UTF-32-encoded word accepted by a given NFA. More...
 
string findShortestUtf8Word (nfa const &n)
 Same as above for a UTF-8-encoded word. More...
 

Variables

std::wstring_convert< std::codecvt_utf8< char32_t >, char32_t > converter
 Converts between UTF-8-encoded and UTF-32-encoded strings. More...
 

Detailed Description

Where this library lives.

Typedef Documentation

◆ Dtransitionmap

Shorthand for the map from state name and transition symbol to target state.

Definition at line 504 of file dfa.cpp.

◆ Ntransitionmap

Shorthand for the map from state name and transition symbol to set of target states.

Definition at line 654 of file nfa.cpp.

Function Documentation

◆ findShortestUtf8Word() [1/2]

std::string reg::findShortestUtf8Word ( dfa const &  d)

Same as above for a UTF-8-encoded word.

Definition at line 447 of file dfa.cpp.

447  {
448  return d.getShortestUtf8Word();
449 }

◆ findShortestUtf8Word() [2/2]

std::string reg::findShortestUtf8Word ( nfa const &  n)

Same as above for a UTF-8-encoded word.

Definition at line 563 of file nfa.cpp.

563  {
564  return n.getShortestUtf8Word();
565 }

◆ findShortestWord() [1/2]

std::u32string reg::findShortestWord ( dfa const &  d)

Searches the shortest UTF-32-encoded word accepted by a given DFA.

Parameters
dthe DFA
Returns
the shortest word leading to one of the DFA's accept states
Exceptions
std::logic_errorif the DFA doesn't accept any words

Definition at line 442 of file dfa.cpp.

442  {
443  return d.getShortestWord();
444 }

◆ findShortestWord() [2/2]

std::u32string reg::findShortestWord ( nfa const &  n)

Searches the shortest UTF-32-encoded word accepted by a given NFA.

Parameters
nthe NFA
Returns
the shortest word leading to one of the NFA's accept states
Exceptions
std::logic_errorif the NFA doesn't accept any words

Definition at line 558 of file nfa.cpp.

558  {
559  return n.getShortestWord();
560 }

◆ index_of() [1/3]

template<class T >
size_t reg::index_of ( vector< T > const &  vec,
T const &  element 
)

Basically Java's List interface's indexOf, but as a non-member function and returning the container's size upon failure.

Parameters
vecthe container to search through
elementthe element to find the index of
Returns
the first i with vec[i]==element or vec.size() if none is found

Definition at line 1080 of file dfa.cpp.

1080  {
1081  return static_cast<size_t>(std::distance(vec.begin(), find(vec.begin(), vec.end(), element)));
1082 }
T find(T... args)

◆ index_of() [2/3]

template size_t reg::index_of ( vector< char32_t > const &  vec,
char32_t const &  element 
)

Explicit instantiation for use in other translation units.

◆ index_of() [3/3]

template size_t reg::index_of ( vector< string > const &  vec,
string const &  element 
)

Explicit instantiation for use in other translation units.

Variable Documentation

◆ converter

std::wstring_convert< std::codecvt_utf8< char32_t >, char32_t > reg::converter

Converts between UTF-8-encoded and UTF-32-encoded strings.

Definition at line 1088 of file dfa.cpp.