16#include "../glushkov/GlushkovFollowNaive.h"
17#include "../glushkov/GlushkovIndexate.h"
18#include "../glushkov/GlushkovFirst.h"
30 template <
class SymbolType >
46 template <
class SymbolType >
50template <
class SymbolType >
70 for (
const auto & kv : followSet )
71 for (
const auto & followTuple : kv.second )
93 automaton.addPushdownStoreSymbol ( symb );
99 for (
const auto & symbol : indexedRTE.
getAlphabet ( ) )
106 for (
const auto & symbol : firstSet )
111 for (
const auto & kv : followSet ) {
114 if ( kv.second.empty ( ) )
117 for (
const auto & follow : kv.second ) {
118 for (
const auto & symbol : follow )
130 if ( symb.getRank ( ) == 0 )
131 automaton.addTransition (
q, phi ( symb ), { },
q, { symb } );
135 automaton.addTransition (
q, phi ( symb ), fstring,
q, { symb } );
142 pop.push_back ( symb );
Represents bottom of the stack symbol used in the visibly pushdown automata.
Definition: BottomOfTheStackSymbol.h:35
Represents end symbol used as termation symbol of a string.
Definition: EndSymbol.h:35
static bool verbose
Verbose flag. Some algorithms print additional runtime information about internal datastructures or t...
Definition: GlobalData.h:24
static ext::reference_wrapper< ext::ostream > err
Standard error stream. Mapped to descriptor 2.
Definition: GlobalData.h:72
Definition: ranked_symbol.hpp:20
Basic exception from which all other exceptions are derived.
Definition: CommonException.h:21
Class extending the map class from the standard library. Original reason is to allow printing of the ...
Definition: map.hpp:48
std::pair< iterator, bool > insert(const T &key, const R &value)
Insert variant with explicit key and value parameters.
Definition: map.hpp:118
Class extending the pair class from the standard library. Original reason is to allow printing of the...
Definition: pair.hpp:43
auto begin() &
Inherited behavior of begin for non-const instance.
Definition: set.hpp:99
auto end() &
Inherited behavior of end for non-const instance.
Definition: set.hpp:129
Implementation of the variant class allowing to store any type of those listed in the template parame...
Definition: variant.hpp:98
Class extending the vector class from the standard library. Original reason is to allow printing of t...
Definition: vector.hpp:45
static ext::set< common::ranked_symbol< SymbolType > > first(const rte::FormalRTE< SymbolType > &rte)
Definition: GlushkovFirst.h:37
static ext::set< ext::vector< common::ranked_symbol< SymbolType > > > follow(const rte::FormalRTE< SymbolType > &rte, const common::ranked_symbol< SymbolType > &symbol)
Definition: GlushkovFollowNaive.h:68
static FormalRTE< ext::pair< SymbolType, unsigned > > index(const rte::FormalRTE< SymbolType > &rte)
Definition: GlushkovIndexate.h:23
Definition: ToPostfixPushdownAutomatonGlushkovNaive.h:29
static automaton::NPDA< ext::variant< common::ranked_symbol< SymbolType >, alphabet::EndSymbol >, ext::variant< common::ranked_symbol< ext::pair< SymbolType, unsigned > >, alphabet::BottomOfTheStackSymbol >, char > convert(const rte::FormalRTE< SymbolType > &rte)
Definition: ToPostfixPushdownAutomatonGlushkovNaive.h:51
q
Definition: SingleInitialStateEpsilonTransition.h:85
Definition: ToGrammar.h:31
Definition: converterCommon.hpp:8
bool excludes(InputIt1 first1, InputIt1 last1, InputIt2 first2, InputIt2 last2, Compare comp)
Tests two sorted ranges wheter all elements from the second are not present in the first.
Definition: algorithm.hpp:46
constexpr auto make_pair(T1 &&x, T2 &&y)
Definition: pair.hpp:79
Definition: ToFTAGlushkov.h:22