Algorithms Library Toolkit
A toolkit for algorithms, especially for algorithms on formal languages
Static Public Member Functions
automaton::convert::ToRegExpKleene Class Reference

#include <ToRegExpKleene.h>

Static Public Member Functions

template<class SymbolType , class StateType >
static regexp::UnboundedRegExp< SymbolType > convert (const automaton::DFA< SymbolType, StateType > &automaton)
 
template<class SymbolType , class StateType >
static regexp::UnboundedRegExp< SymbolType > convert (const automaton::NFA< SymbolType, StateType > &automaton)
 
template<class SymbolType , class StateType >
static regexp::UnboundedRegExp< SymbolType > convert (const automaton::MultiInitialStateNFA< SymbolType, StateType > &automaton)
 
template<class SymbolType , class StateType >
static regexp::UnboundedRegExp< SymbolType > convert (const automaton::MultiInitialStateEpsilonNFA< SymbolType, StateType > &automaton)
 
template<class SymbolType , class StateType >
static regexp::UnboundedRegExp< SymbolType > convert (const automaton::EpsilonNFA< SymbolType, StateType > &automaton)
 

Detailed Description

Converts a finite automaton to a regular expression using using the algorithm from Kleene Theorem (Hopcroft 2nd edition: 3.2.1 - Th 3.4). This algorithm returns the regular expression as regexp::UnboundedRegExp.

Member Function Documentation

◆ convert() [1/5]

template<class SymbolType , class StateType >
regexp::UnboundedRegExp< SymbolType > automaton::convert::ToRegExpKleene::convert ( const automaton::DFA< SymbolType, StateType > &  automaton)
static

Performs conversion.

Template Parameters
SymbolTypethe type of input symbols of the accepted automaton
StateTypethe type of states of the accepted automaton
Parameters
automatonfinite automaton to convert
Returns
unbounded regular expression equivalent to the original automaton
Here is the call graph for this function:
Here is the caller graph for this function:

◆ convert() [2/5]

template<class SymbolType , class StateType >
regexp::UnboundedRegExp< SymbolType > automaton::convert::ToRegExpKleene::convert ( const automaton::EpsilonNFA< SymbolType, StateType > &  automaton)
static

@override

Here is the call graph for this function:

◆ convert() [3/5]

template<class SymbolType , class StateType >
regexp::UnboundedRegExp< SymbolType > automaton::convert::ToRegExpKleene::convert ( const automaton::MultiInitialStateEpsilonNFA< SymbolType, StateType > &  automaton)
static

@override

Here is the call graph for this function:

◆ convert() [4/5]

template<class SymbolType , class StateType >
regexp::UnboundedRegExp< SymbolType > automaton::convert::ToRegExpKleene::convert ( const automaton::MultiInitialStateNFA< SymbolType, StateType > &  automaton)
static

@override

Here is the call graph for this function:

◆ convert() [5/5]

template<class SymbolType , class StateType >
regexp::UnboundedRegExp< SymbolType > automaton::convert::ToRegExpKleene::convert ( const automaton::NFA< SymbolType, StateType > &  automaton)
static

@override

Here is the call graph for this function:

The documentation for this class was generated from the following file: