Algorithms Library Toolkit
A toolkit for algorithms, especially for algorithms on formal languages
|
Represents the epsilon expression in the regular expression. The node can't have any children. More...
#include <FormalRegExpEpsilon.h>
Public Member Functions | |
FormalRegExpEpsilon ()=default | |
Creates a new instance of the epsilon node. More... | |
FormalRegExpEpsilon< SymbolType > * | clone () const &override |
( ) const & More... | |
FormalRegExpEpsilon< 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 |
std::strong_ordering | operator<=> (const FormalRegExpElement< SymbolType > &other) const override |
< SymbolType >::operator <=> ( const FormalRegExpElement < SymbolType > & other ) const; More... | |
std::strong_ordering | operator<=> (const FormalRegExpEpsilon< SymbolType > &) const |
bool | operator== (const FormalRegExpElement< SymbolType > &other) const override |
< SymbolType >::operator == ( const FormalRegExpElement < SymbolType > & other ) const; More... | |
bool | operator== (const FormalRegExpEpsilon< 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... | |
![]() | |
NullaryNode () | |
The default constructor of the class. 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 epsilon expression in the regular expression. The node can't have any children.
The structure is derived from NullaryNode disallowing adding any child.
The node can be visited by the FormalRegExpElement < SymbolType >::Visitor
SymbolType | used for the terminal alphabet |
|
explicitdefault |
Creates a new instance of the epsilon node.
|
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 |
|
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::FormalRegExpEpsilon< SymbolType >::operator<=> | ( | const FormalRegExpEpsilon< SymbolType > & | ) | 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::FormalRegExpEpsilon< SymbolType >::operator== | ( | const FormalRegExpEpsilon< SymbolType > & | ) | const |
The equality comparison implementation.
other | the other object to compare with. |
|
override |
< FormalRegExpElement < SymbolType > >::operator >> ( ext::ostream & )
< FormalRegExpElement < SymbolType > >::operator >> ( ext::ostream & )
|
override |