Algorithms Library Toolkit
A toolkit for algorithms, especially for algorithms on formal languages
Data Structures | Functions
grammar::simplify Namespace Reference

Data Structures

class  EpsilonRemover
 
class  LeftRecursionRemover
 
class  MakeFITDefinition
 
class  Rename
 
class  SimpleRulesRemover
 
class  ToCNF
 
class  ToGNF
 
class  Trim
 
class  UnproductiveSymbolsRemover
 
class  UnreachableSymbolsRemover
 

Functions

template<class TerminalSymbolType , class NonterminalSymbolType >
void splitRule (ext::vector< ext::variant< TerminalSymbolType, NonterminalSymbolType > > lhs, const ext::vector< ext::variant< TerminalSymbolType, NonterminalSymbolType > > &rhs, grammar::CNF< TerminalSymbolType, ext::vector< ext::variant< TerminalSymbolType, NonterminalSymbolType > > > &result)
 
template<class T , class TerminalSymbolType = typename grammar::TerminalSymbolTypeOfGrammar < T >, class NonterminalSymbolType = typename grammar::NonterminalSymbolTypeOfGrammar < T >>
grammar::CNF< TerminalSymbolType, ext::vector< ext::variant< TerminalSymbolType, NonterminalSymbolType > > > convertInternal (const T &grammar)
 

Function Documentation

◆ convertInternal()

template<class T , class TerminalSymbolType = typename grammar::TerminalSymbolTypeOfGrammar < T >, class NonterminalSymbolType = typename grammar::NonterminalSymbolTypeOfGrammar < T >>
grammar::CNF< TerminalSymbolType, ext::vector< ext::variant< TerminalSymbolType, NonterminalSymbolType > > > grammar::simplify::convertInternal ( const T &  grammar)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ splitRule()

template<class TerminalSymbolType , class NonterminalSymbolType >
void grammar::simplify::splitRule ( ext::vector< ext::variant< TerminalSymbolType, NonterminalSymbolType > >  lhs,
const ext::vector< ext::variant< TerminalSymbolType, NonterminalSymbolType > > &  rhs,
grammar::CNF< TerminalSymbolType, ext::vector< ext::variant< TerminalSymbolType, NonterminalSymbolType > > > &  result 
)
Here is the call graph for this function:
Here is the caller graph for this function: