43template <
class SymbolType >
49 visitor.
visit ( *
this );
159 if (
ext::type_index (
typeid ( *
this ) ) ==
ext::type_index (
typeid ( other ) ) )
return * this <=>
static_cast < decltype ( ( * this ) )
> ( other );
177 if (
ext::type_index (
typeid ( *
this ) ) ==
ext::type_index (
typeid ( other ) ) )
return *
this ==
static_cast < decltype ( ( * this ) )
> ( other );
206#include "../unbounded/UnboundedRegExpConcatenation.h"
210template <
class SymbolType >
214template <
class SymbolType >
218template <
class SymbolType >
220 return this->getLeft ( );
223template <
class SymbolType >
225 return this->getRight ( );
228template <
class SymbolType >
230 return this->getLeft ( );
233template <
class SymbolType >
235 return this->getRight ( );
238template <
class SymbolType >
240 this->setLeft ( std::move ( element ) );
243template <
class SymbolType >
248template <
class SymbolType >
250 this->setRight ( std::move ( element ) );
253template <
class SymbolType >
258template <
class SymbolType >
263template <
class SymbolType >
265 return new FormalRegExpConcatenation ( std::move ( *
this ) );
268template <
class SymbolType >
272 res->appendElement ( std::move ( * getLeftElement ( ).asUnbounded ( ) ) );
273 res->appendElement ( std::move ( * getRightElement ( ).asUnbounded ( ) ) );
278template <
class SymbolType >
280 return std::tie ( getLeftElement ( ), getRightElement ( ) ) <=>
std::tie ( other.getLeftElement ( ), other.getRightElement ( ) );
283template <
class SymbolType >
285 return std::tie ( getLeftElement ( ), getRightElement ( ) ) ==
std::tie ( other.getLeftElement ( ), other.getRightElement ( ) );
288template <
class SymbolType >
290 out <<
"(FormalRegExpConcatenation";
291 out <<
" " << getLeftElement ( );
292 out <<
" " << getRightElement ( );
296template <
class SymbolType >
298 return getLeftElement ( ).
testSymbol ( symbol ) && getRightElement ( ).testSymbol ( symbol );
301template <
class SymbolType >
304 getRightElement ( ).computeMinimalAlphabet (
alphabet );
307template <
class SymbolType >
Binary node is specialisation of Anyary node to two children.
Definition: tree_base.hpp:459
Managed pointer simulating value like behavior.
Definition: memory.hpp:233
Definition: typeindex.h:37
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
Definition: BarSymbol.cpp:12
typename T::SymbolType SymbolType
Definition: ReachableStates.h:176
return res
Definition: MinimizeByPartitioning.h:145
Definition: sigHandler.cpp:20
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
auto move_copy(const T ¶m)
Allow moving of copied instance of the source.
Definition: utility.hpp:45
Definition: ToAutomaton.h:15
Definition: FordFulkerson.hpp:16