Algorithms Library Toolkit
A toolkit for algorithms, especially for algorithms on formal languages
|
Represents the iteration operator in the regular expression. The node has exactly one child. More...
#include <FormalRegExpIteration.h>
Public Member Functions | |
FormalRegExpIteration (FormalRegExpElement< SymbolType > &&) | |
Creates a new instance of the iteration node with explicit iterated element. More... | |
FormalRegExpIteration (const FormalRegExpElement< SymbolType > &) | |
Creates a new instance of the iteration node with explicit iterated element. More... | |
FormalRegExpIteration< SymbolType > * | clone () const &override |
( ) const & More... | |
FormalRegExpIteration< SymbolType > * | clone () &&override |
( ) const & More... | |
ext::smart_ptr< UnboundedRegExpElement< SymbolType > > | asUnbounded () const override |
( ) const & More... | |
bool | testSymbol (const SymbolType &symbol) const override |
void | computeMinimalAlphabet (ext::set< SymbolType > &alphabet) const override |
bool | checkAlphabet (const ext::set< SymbolType > &alphabet) const override |
const FormalRegExpElement< SymbolType > & | getElement () const |
FormalRegExpElement< SymbolType > & | getElement () |
void | setElement (FormalRegExpElement< SymbolType > &&element) |
void | setElement (const FormalRegExpElement< SymbolType > &element) |
std::strong_ordering | operator<=> (const FormalRegExpElement< SymbolType > &other) const override |
< SymbolType >::operator <=> ( const FormalRegExpElement < SymbolType > & other ) const; More... | |
std::strong_ordering | operator<=> (const FormalRegExpIteration< SymbolType > &) const |
bool | operator== (const FormalRegExpElement< SymbolType > &other) const override |
< SymbolType >::operator == ( const FormalRegExpElement < SymbolType > & other ) const; More... | |
bool | operator== (const FormalRegExpIteration< SymbolType > &) const |
void | operator>> (ext::ostream &out) const override |
< FormalRegExpElement < SymbolType > >::operator >> ( ext::ostream & ) More... | |
ext::smart_ptr< FormalRegExpElement< DefaultSymbolType > > | normalize () &&override |
< SymbolType >::normalize ( ) && More... | |
![]() | |
UnaryNode (const FormalRegExpElement< SymbolType > &c) | |
Constructor of the class accepting the child node. More... | |
UnaryNode (FormalRegExpElement< SymbolType > &&c) | |
Constructor of the class accepting the child node. More... | |
FormalRegExpElement< SymbolType > & | getChild () |
Getter of the child of the node. More... | |
const FormalRegExpElement< SymbolType > & | getChild () const |
Getter of the child of the node. More... | |
void | setChild (const FormalRegExpElement< SymbolType > &c) |
Setter of the child of the node. More... | |
void | setChild (FormalRegExpElement< SymbolType > &&c) |
Setter of the child of the node. More... | |
![]() | |
AnyaryNode (ext::ptr_array< Data, arity > c) | |
Constructor based on array of child nodes. More... | |
~AnyaryNode () noexcept override=default | |
Destructor of the class. More... | |
AnyaryNode (const AnyaryNode &other) | |
Copy constructor. More... | |
AnyaryNode (AnyaryNode &&other) noexcept | |
Move constructor. More... | |
AnyaryNode & | operator= (const AnyaryNode &other) |
Copy operator of assignment. More... | |
AnyaryNode & | operator= (AnyaryNode &&other) noexcept |
move operator of assignment. More... | |
const ext::ptr_array< Data, arity > & | getChildren () & |
Getter of the child nodes. More... | |
const ext::ptr_array< Data, arity > & | getChildren () const & |
Getter of the child nodes. More... | |
ext::ptr_array< Data, arity > && | getChildren () && |
Getter of the child nodes. More... | |
template<size_t N> | |
const Data & | getChild () const |
Getter of the child node based on compile time index. More... | |
template<size_t N> | |
Data & | getChild () |
Getter of the child node based on compile time index. More... | |
void | setChildren (ext::ptr_array< Data, arity > c) |
Setter of the child nodes. More... | |
template<size_t N> | |
void | setChild (const Data &d) |
Setter of the child node based on compile time index. More... | |
template<size_t N> | |
void | setChild (Data &&d) |
Setter of the child node based on compile time index. More... | |
ext::ptr_array< Data, arity >::iterator | begin () |
Getter of an iterator to the begining of children array. More... | |
ext::ptr_array< Data, arity >::const_iterator | begin () const |
Getter of an iterator to the begining of children array. More... | |
ext::ptr_array< Data, arity >::iterator | end () |
Getter of an iterator to the end of children array. More... | |
ext::ptr_array< Data, arity >::const_iterator | end () const |
Getter of an iterator to the end of children array. More... | |
Represents the iteration operator in the regular expression. The node has exactly one child.
The structure is derived from UnaryNode that provides the child node and its accessors.
The node can be visited by the FormalRegExpElement < SymbolType >::Visitor
SymbolType | used for the terminal alphabet |
|
explicit |
Creates a new instance of the iteration node with explicit iterated element.
element | the iterated element |
|
explicit |
Creates a new instance of the iteration node with explicit iterated element.
element | the iterated element |
|
override |
( ) const &
( ) const &
|
override |
Traverses the regexp tree and checks whether all symbols in the regexp tree are in the alphabet
alphabet |
|
override |
( ) const &
( ) const &
|
override |
( ) const &
( ) const &
|
override |
Traverses the regexp tree computing minimal alphabet needed by regexp
alphabet | All alphabet symbols encountered are added into this set |
FormalRegExpElement< SymbolType > & regexp::FormalRegExpIteration< SymbolType >::getElement |
Getter of the iterated element
const FormalRegExpElement< SymbolType > & regexp::FormalRegExpIteration< SymbolType >::getElement |
Getter of the iterated element
|
inlineoverride |
< SymbolType >::normalize ( ) &&
Abstract class representing element in the formal regular expression. Can be an operator, special node, or a symbol.
SymbolType | used for the terminal alphabet < SymbolType >::normalize ( ) && |
|
inlineoverride |
< SymbolType >::operator <=> ( const FormalRegExpElement < SymbolType > & other ) const;
Abstract class representing element in the formal regular expression. Can be an operator, special node, or a symbol.
SymbolType | used for the terminal alphabet < SymbolType >::operator <=> ( const FormalRegExpElement < SymbolType > & other ) const; |
std::strong_ordering regexp::FormalRegExpIteration< SymbolType >::operator<=> | ( | const FormalRegExpIteration< SymbolType > & | other | ) | const |
The three way comparison implementation
other | the other instance |
other
.
|
inlineoverride |
< SymbolType >::operator == ( const FormalRegExpElement < SymbolType > & other ) const;
Abstract class representing element in the formal regular expression. Can be an operator, special node, or a symbol.
SymbolType | used for the terminal alphabet < SymbolType >::operator == ( const FormalRegExpElement < SymbolType > & other ) const; |
bool regexp::FormalRegExpIteration< SymbolType >::operator== | ( | const FormalRegExpIteration< SymbolType > & | other | ) | const |
The equality comparison implementation.
other | the other object to compare with. |
|
override |
< FormalRegExpElement < SymbolType > >::operator >> ( ext::ostream & )
< FormalRegExpElement < SymbolType > >::operator >> ( ext::ostream & )
void regexp::FormalRegExpIteration< SymbolType >::setElement | ( | const FormalRegExpElement< SymbolType > & | element | ) |
Setter of the iterated element
iterated | element |
void regexp::FormalRegExpIteration< SymbolType >::setElement | ( | FormalRegExpElement< SymbolType > && | element | ) |
Setter of the iterated element
iterated | element |
|
override |