42 template <
class SymbolType >
45 template <
class SymbolType >
61 template <
class SymbolType >
64 template <
class SymbolType >
76template <
class SymbolType >
81template <
class SymbolType >
84 return element.template accept < bool, GlushkovPos::Unbounded < SymbolType > > ( symbolptr );
87 if ( iter ==
node.getElements ( ).end ( ) )
93template <
class SymbolType >
99 for (
auto e =
node.getElements ( ).begin ( ); e !=
node.getElements ( ).end ( ); e++ ) {
108 if ( lastSet.find ( symbolptr ) != lastSet.
end ( ) )
109 for (
auto f = next ( e ); f !=
node.getElements ( ).end ( ); f++ ) {
122template <
class SymbolType >
127 if ( lastSet.find ( symbolptr ) != lastSet.end ( ) ) {
129 ret.insert ( firstSet.
begin ( ), firstSet.
end ( ) );
135template <
class SymbolType >
140template <
class SymbolType >
145template <
class SymbolType >
150template <
class SymbolType >
154 re.
getRegExp ( ).getStructure ( ).template accept < void, GlushkovFollow::Formal < SymbolType > > ( currentFollow,
res );
158template <
class SymbolType >
160 node.getLeftElement ( ).template accept < void, GlushkovFollow::Formal < SymbolType > > ( currentFollow,
res );
161 node.getRightElement ( ).template accept < void, GlushkovFollow::Formal < SymbolType > > ( currentFollow,
res );
164template <
class SymbolType >
168 leftFollow.insert ( currentFollow.begin ( ), currentFollow.end ( ) );
169 node.getLeftElement ( ).template accept < void, GlushkovFollow::Formal < SymbolType > > ( leftFollow,
res );
170 node.getRightElement ( ).template accept < void, GlushkovFollow::Formal < SymbolType > > ( currentFollow,
res );
173template <
class SymbolType >
176 newFollow.insert ( currentFollow.begin ( ), currentFollow.end ( ) );
177 node.getElement ( ).template accept < void, GlushkovFollow::Formal < SymbolType > > ( newFollow,
res );
180template <
class SymbolType >
185template <
class SymbolType >
189template <
class SymbolType >
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
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
Definition: GlushkovFirst.h:39
Definition: GlushkovFollow.h:46
static ext::set< regexp::UnboundedRegExpSymbol< SymbolType > > visit(const regexp::UnboundedRegExpAlternation< SymbolType > &node, const regexp::UnboundedRegExpSymbol< SymbolType > &symbolptr)
Definition: GlushkovFollow.h:82
Definition: GlushkovFollow.h:35
static ext::set< UnboundedRegExpSymbol< SymbolType > > follow(const regexp::UnboundedRegExp< SymbolType > &re, const UnboundedRegExpSymbol< SymbolType > &symbol)
Definition: GlushkovFollow.h:77
Definition: GlushkovLast.h:39
Definition: GlushkovPos.h:34
Represents the alternation operator in the regular expression. The node can have 0 to n children in l...
Definition: UnboundedRegExpAlternation.h:44
Represents the concatenation operator in the regular expression. The node can have 0 to n children in...
Definition: UnboundedRegExpConcatenation.h:44
Definition: UnboundedRegExpElement.h:62
Represents the empty expression in the regular expression. The node can't have any children.
Definition: UnboundedRegExpEmpty.h:41
Represents the epsilon expression in the regular expression. The node can't have any children.
Definition: UnboundedRegExpEpsilon.h:41
Represents the iteration operator in the regular expression. The node has exactly one child.
Definition: UnboundedRegExpIteration.h:43
Represents the symbol in the regular expression. The can't have any children.
Definition: UnboundedRegExpSymbol.h:42
Unbounded regular expression represents regular expression. It describes regular languages....
Definition: UnboundedRegExp.h:80
const UnboundedRegExpStructure< SymbolType > & getRegExp() const &
Definition: UnboundedRegExp.h:210
static bool languageContainsEpsilon(const regexp::FormalRegExpElement< SymbolType > ®exp)
Definition: RegExpEpsilon.h:91
ext::set< ext::pair< StateType, StateType > > ret(const ext::set< ext::pair< StateType, StateType > > &S, const DeterministicPushdownStoreSymbolType &pdaSymbol, const InputSymbolType &input, const N &nondeterministic)
Definition: RHDPDACommon.h:57
return res
Definition: MinimizeByPartitioning.h:145
constexpr auto make_pair(T1 &&x, T2 &&y)
Definition: pair.hpp:79
Definition: ToAutomaton.h:15