17template<
class SymbolType,
class StateType >
27template<
class SymbolType,
class StateType >
51 res.addInputSymbol(symbol);
67 parseTransition(input,
res, symbols);
77template<
class SymbolType,
class StateType >
86 if(initial)
res.addInitialState(from);
87 if(
final)
res.addFinalState(from);
93 if(iter == symbols.end())
101 res.addTransition(from, *iter, to);
116template<
class SymbolType,
class StateType >
121template<
class SymbolType,
class StateType >
124 for(
const auto& symbol :
automaton.getInputAlphabet()) {
132 for(
const auto& state :
automaton.getStates()) {
141 composeTransitionsFromState(output,
automaton, state);
147template <
class SymbolType,
class StateType >
150 const auto toStates =
automaton.getTransitions ( ).equal_range(
ext::tie(from, inputSymbol));
151 if ( toStates.empty ( ) ) {
155 for(
const auto & transition : toStates ) {
156 output << (sign ?
"|" :
" ");
164 if ( epsilonTransitionsFromState.empty ( ) ) {
168 for(
const auto & transition : epsilonTransitionsFromState ) {
169 output << (sign ?
"|" :
" ");
static Token next(ext::istream &input)
Definition: AutomatonFromStringLexer.cpp:12
@ MULTI_INITIAL_STATE_EPSILON_NFA
Epsilon nondeterministic finite automaton. Accepts regular languages.
Definition: MultiInitialStateEpsilonNFA.h:75
Definition: symbol_or_epsilon.hpp:24
Basic exception from which all other exceptions are derived.
Definition: CommonException.h:21
static Token peek(ext::istream &input)
Definition: lexer.hpp:53
static void putback(ext::istream &input, const Token &token)
Definition: lexer.hpp:61
Class extending the multimap class from the standard library. Original reason is to allow printing of...
Definition: multimap.hpp:48
Class extending the vector class from the standard library. Original reason is to allow printing of t...
Definition: vector.hpp:45
auto begin() &
Inherited behavior of begin for non-const instance.
Definition: vector.hpp:125
typename T::StateType StateType
Definition: ToGrammarLeftRG.h:64
typename T::SymbolType SymbolType
Definition: ReachableStates.h:176
return res
Definition: MinimizeByPartitioning.h:145
Definition: ToGrammar.h:31
Definition: normalize.hpp:10
constexpr tuple< Elements &... > tie(Elements &... args) noexcept
Helper of extended tuple of references construction. The tuple is constructed to reffer to values in ...
Definition: tuple.hpp:218
static void initialFinalState(ext::istream &input, bool &rightArrow, bool &leftArrow)
Definition: AutomatonFromStringParserCommon.cpp:10
Definition: stringApi.hpp:26