Algorithms Library Toolkit
A toolkit for algorithms, especially for algorithms on formal languages
Data Structures | Typedefs | Functions | Variables
automaton::convert Namespace Reference

Data Structures

class  ToGrammar
 
class  ToGrammarLeftRG
 
class  ToGrammarRightRG
 
class  ToPostfixPushdownAutomaton
 
class  ToPrefixPushdownAutomaton
 
class  ToRegExp
 
class  ToRegExpAlgebraic
 
class  ToRegExpKleene
 
class  ToRegExpStateElimination
 
class  ToRTEStateElimination
 

Typedefs

template<class T >
requires isDFA < T > || isNFA < T > grammar::RightRG < typename T::SymbolType, typename T::StateType > ToGrammarRightRG::convert ( const T & automaton )
using StateType = typename T::StateType
 

Functions

grammar::LeftRG< SymbolType, StateTypegrammar (alphabet::InitialSymbol::instance< StateType >())
 
grammar setTerminalAlphabet (automaton.getInputAlphabet())
 
 for (const auto &state :automaton.getStates())
 
 for (const auto &transition :automaton.getTransitions())
 
 if (automaton.getFinalStates().contains(automaton.getInitialState())) grammar.setGeneratesEpsilon(true)
 
grammar::RightRG< SymbolType, StateTypegrammar (automaton.getInitialState())
 
grammar setNonterminalAlphabet (automaton.getStates())
 
solver setVariableSymbols (automaton.getStates())
 
 for (const StateType &q :automaton.getFinalStates()) solver.addEquation(q
 
 for (const auto &p :automaton.getTransitions()) solver.addEquation(p.first.first
 
return solver solve (automaton.getInitialState())
 

Variables

return grammar
 
equations::RightRegularEquationSolver< SymbolType, StateTypesolver
 
second
 

Typedef Documentation

◆ StateType

template<class T >
requires isDFA < T > || isNFA < T > grammar::RightRG < typename T::SymbolType, typename T::StateType > ToGrammarRightRG::convert ( const T & automaton )
using automaton::convert::StateType = typedef typename T::StateType
Initial value:
{
using SymbolType = typename T::SymbolType
typename T::SymbolType SymbolType
Definition: ReachableStates.h:176

Function Documentation

◆ for() [1/4]

automaton::convert::for ( const auto &p :automaton.  getTransitions())

◆ for() [2/4]

automaton::convert::for ( const auto &state :automaton.  getStates())

◆ for() [3/4]

automaton::convert::for ( const auto &transition :automaton.  getTransitions())
Here is the call graph for this function:

◆ for() [4/4]

automaton::convert::for ( const StateType &q :automaton.  getFinalStates())

◆ grammar() [1/2]

grammar::LeftRG< SymbolType, StateType > automaton::convert::grammar ( alphabet::InitialSymbol::instance< StateType ())

◆ grammar() [2/2]

grammar::RightRG< SymbolType, StateType > automaton::convert::grammar ( automaton.  getInitialState())

◆ if()

automaton::convert::if ( automaton.  getFinalStates).contains(automaton.getInitialState())

◆ setNonterminalAlphabet()

grammar automaton::convert::setNonterminalAlphabet ( automaton.  getStates())
Here is the call graph for this function:

◆ setTerminalAlphabet()

grammar automaton::convert::setTerminalAlphabet ( automaton.  getInputAlphabet())

◆ setVariableSymbols()

solver automaton::convert::setVariableSymbols ( automaton.  getStates())

◆ solve()

return solver automaton::convert::solve ( automaton.  getInitialState())

Variable Documentation

◆ grammar

return automaton::convert::grammar

◆ second

p automaton::convert::second

◆ solver

equations::RightRegularEquationSolver< SymbolType, StateType > automaton::convert::solver