11#include <ext/algorithm>
32 template <
class TerminalSymbolType,
class NonterminalSymbolType >
38 template <
class TerminalSymbolType,
class NonterminalSymbolType >
42template <
class TerminalSymbolType,
class NonterminalSymbolType >
60 if ( rhs.template is < TerminalSymbolType > ( ) ) {
61 result.addRule (
renamingData.at ( rule.first ), rhs.template get < TerminalSymbolType > ( ) );
70template <
class TerminalSymbolType,
class NonterminalSymbolType >
88 if ( rhs.template is < TerminalSymbolType > ( ) ) {
89 result.addRule (
renamingData.at ( rule.first ), rhs.template get < TerminalSymbolType > ( ) );
Class extending the map class from the standard library. Original reason is to allow printing of the ...
Definition: map.hpp:48
Class extending the pair class from the standard library. Original reason is to allow printing of the...
Definition: pair.hpp:43
Implementation of the variant class allowing to store any type of those listed in the template parame...
Definition: variant.hpp:98
Left regular grammar in Chomsky hierarchy or type 3 in Chomsky hierarchy. Generates regular languages...
Definition: LeftRG.h:70
const ext::set< TerminalSymbolType > & getTerminalAlphabet() const &
Definition: LeftRG.h:236
const ext::map< NonterminalSymbolType, ext::set< ext::variant< TerminalSymbolType, ext::pair< NonterminalSymbolType, TerminalSymbolType > > > > & getRules() const &
Definition: LeftRG.h:376
bool getGeneratesEpsilon() const
Definition: LeftRG.h:410
const NonterminalSymbolType & getInitialSymbol() const &
Definition: LeftRG.h:169
const ext::set< NonterminalSymbolType > & getNonterminalAlphabet() const &
Definition: LeftRG.h:198
Right regular grammar in Chomsky hierarchy or type 3 in Chomsky hierarchy. Generates regular language...
Definition: RightRG.h:70
const ext::map< NonterminalSymbolType, ext::set< ext::variant< TerminalSymbolType, ext::pair< TerminalSymbolType, NonterminalSymbolType > > > > & getRules() const &
Definition: RightRG.h:375
const ext::set< NonterminalSymbolType > & getNonterminalAlphabet() const &
Definition: RightRG.h:198
const ext::set< TerminalSymbolType > & getTerminalAlphabet() const &
Definition: RightRG.h:236
const NonterminalSymbolType & getInitialSymbol() const &
Definition: RightRG.h:169
bool getGeneratesEpsilon() const
Definition: RightRG.h:409
static grammar::RightRG< TerminalSymbolType, unsigned > rename(const grammar::RightRG< TerminalSymbolType, NonterminalSymbolType > &rrg)
Definition: Rename.h:43
unsigned counter
Definition: Rename.h:247
ext::map< StateType, unsigned > renamingData
Definition: Rename.h:248
for(const StateType &state :fsm.getStates()) renamingData.insert(std Rename::RenamedAutomaton< T > result(renamingData.at(fsm.getInitialState()))
Definition: Rename.h:253
constexpr auto make_pair(T1 &&x, T2 &&y)
Definition: pair.hpp:79
Definition: ToAutomaton.h:24