Algorithms Library Toolkit
A toolkit for algorithms, especially for algorithms on formal languages
Public Member Functions
rte::FormalRTEEmpty< SymbolType > Class Template Reference

Represents the empty expression in the regular tree expression. The node can't have any children. More...

#include <FormalRTEEmpty.h>

Inheritance diagram for rte::FormalRTEEmpty< SymbolType >:
[legend]
Collaboration diagram for rte::FormalRTEEmpty< SymbolType >:
[legend]

Public Member Functions

 FormalRTEEmpty ()=default
 Creates a new instance of the empty node. More...
 
FormalRTEEmpty< SymbolType > * clone () const &override
 < SymbolType >::clone ( ) const & More...
 
FormalRTEEmpty< SymbolType > * clone () &&override
 < SymbolType >::clone ( ) && More...
 
bool testSymbol (const common::ranked_symbol< SymbolType > &symbol) const override
 < SymbolType >::testSymbol ( const common::ranked_symbol < SymbolType > & ) const More...
 
void computeMinimalAlphabet (ext::set< common::ranked_symbol< SymbolType > > &alphabetF, ext::set< common::ranked_symbol< SymbolType > > &alphabetK) const override
 < SymbolType >::computeMinimalAlphabet ( ext::set < common::ranked_symbol < SymbolType > > &, ext::set < common::ranked_symbol < SymbolType > > & ) const More...
 
bool checkAlphabet (const ext::set< common::ranked_symbol< SymbolType > > &alphabetF, const ext::set< common::ranked_symbol< SymbolType > > &alphabetK) const override
 < SymbolType >::checkAlphabet ( const ext::set < common::ranked_symbol < SymbolType > > &, const ext::set < common::ranked_symbol < SymbolType > > & ) const More...
 
std::strong_ordering operator<=> (const FormalRTEElement< SymbolType > &other) const override
 < SymbolType >::operator <=> ( const FormalRTEElement < SymbolType > & other ) const; More...
 
std::strong_ordering operator<=> (const FormalRTEEmpty< SymbolType > &) const
 
bool operator== (const FormalRTEElement< SymbolType > &other) const override
 < SymbolType >::operator == ( const FormalRTEElement < SymbolType > & other ) const; More...
 
bool operator== (const FormalRTEEmpty< SymbolType > &) const
 
void operator>> (ext::ostream &out) const override
 < FormalRTEElement < SymbolType > >::operator >> ( ext::ostream & ) const More...
 
ext::smart_ptr< FormalRTEElement< DefaultSymbolType > > normalize () &&override
 Traverses the rte tree and normalizes the symbols to DefaultSymbolType. ( ) && More...
 
- Public Member Functions inherited from ext::NullaryNode< FormalRTEElement< SymbolType > >
 NullaryNode ()
 The default constructor of the class. More...
 
- Public Member Functions inherited from ext::AnyaryNode< Data, arity, Base >
 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...
 
AnyaryNodeoperator= (const AnyaryNode &other)
 Copy operator of assignment. More...
 
AnyaryNodeoperator= (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...
 

Detailed Description

template<class SymbolType>
class rte::FormalRTEEmpty< SymbolType >

Represents the empty expression in the regular tree 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 FormalRTEElement < SymbolType >::Visitor

Template Parameters
SymbolTypeused for the symbol part of the ranked symbol

Constructor & Destructor Documentation

◆ FormalRTEEmpty()

template<class SymbolType >
rte::FormalRTEEmpty< SymbolType >::FormalRTEEmpty ( )
explicitdefault

Creates a new instance of the empty node.

Member Function Documentation

◆ checkAlphabet()

template<class SymbolType >
bool rte::FormalRTEEmpty< SymbolType >::checkAlphabet ( const ext::set< common::ranked_symbol< SymbolType > > &  alphabetF,
const ext::set< common::ranked_symbol< SymbolType > > &  alphabetK 
) const
override

< SymbolType >::checkAlphabet ( const ext::set < common::ranked_symbol < SymbolType > > &, const ext::set < common::ranked_symbol < SymbolType > > & ) const

Abstract class representing element in the formal regular tree expression. Can be an operator, special node, or a symbol.

Template Parameters
SymbolTypeused for the symbol part of the ranked symbol < SymbolType >::checkAlphabet ( const ext::set < common::ranked_symbol < SymbolType > > &, const ext::set < common::ranked_symbol < SymbolType > > & ) const

◆ clone() [1/2]

template<class SymbolType >
FormalRTEEmpty< SymbolType > * rte::FormalRTEEmpty< SymbolType >::clone ( ) &&
override

< SymbolType >::clone ( ) &&

Abstract class representing element in the formal regular tree expression. Can be an operator, special node, or a symbol.

Template Parameters
SymbolTypeused for the symbol part of the ranked symbol < SymbolType >::clone ( ) &&

◆ clone() [2/2]

template<class SymbolType >
FormalRTEEmpty< SymbolType > * rte::FormalRTEEmpty< SymbolType >::clone ( ) const &
override

< SymbolType >::clone ( ) const &

Abstract class representing element in the formal regular tree expression. Can be an operator, special node, or a symbol.

Template Parameters
SymbolTypeused for the symbol part of the ranked symbol < SymbolType >::clone ( ) const &

◆ computeMinimalAlphabet()

template<class SymbolType >
void rte::FormalRTEEmpty< SymbolType >::computeMinimalAlphabet ( ext::set< common::ranked_symbol< SymbolType > > &  alphabetF,
ext::set< common::ranked_symbol< SymbolType > > &  alphabetK 
) const
override

< SymbolType >::computeMinimalAlphabet ( ext::set < common::ranked_symbol < SymbolType > > &, ext::set < common::ranked_symbol < SymbolType > > & ) const

Abstract class representing element in the formal regular tree expression. Can be an operator, special node, or a symbol.

Template Parameters
SymbolTypeused for the symbol part of the ranked symbol < SymbolType >::computeMinimalAlphabet ( ext::set < common::ranked_symbol < SymbolType > > &, ext::set < common::ranked_symbol < SymbolType > > & ) const

◆ normalize()

template<class SymbolType >
ext::smart_ptr< FormalRTEElement< DefaultSymbolType > > rte::FormalRTEEmpty< SymbolType >::normalize ( ) &&
inlineoverride

Traverses the rte tree and normalizes the symbols to DefaultSymbolType. ( ) &&

Returns
the cloned node including children representing the same content but with type of symbols normalized to DefaultSymbolType ( ) &&

◆ operator<=>() [1/2]

template<class SymbolType >
std::strong_ordering rte::FormalRTEEmpty< SymbolType >::operator<=> ( const FormalRTEElement< SymbolType > &  other) const
inlineoverride

< SymbolType >::operator <=> ( const FormalRTEElement < SymbolType > & other ) const;

Abstract class representing element in the formal regular tree expression. Can be an operator, special node, or a symbol.

Template Parameters
SymbolTypeused for the symbol part of the ranked symbol < SymbolType >::operator <=> ( const FormalRTEElement < SymbolType > & other ) const;

◆ operator<=>() [2/2]

template<class SymbolType >
std::strong_ordering rte::FormalRTEEmpty< SymbolType >::operator<=> ( const FormalRTEEmpty< SymbolType > &  ) const

The three way comparison implementation

Parameters
otherthe other instance
Returns
the ordering between this object and the other.

◆ operator==() [1/2]

template<class SymbolType >
bool rte::FormalRTEEmpty< SymbolType >::operator== ( const FormalRTEElement< SymbolType > &  other) const
inlineoverride

< SymbolType >::operator == ( const FormalRTEElement < SymbolType > & other ) const;

Abstract class representing element in the formal regular tree expression. Can be an operator, special node, or a symbol.

Template Parameters
SymbolTypeused for the symbol part of the ranked symbol < SymbolType >::operator == ( const FormalRTEElement < SymbolType > & other ) const;

◆ operator==() [2/2]

template<class SymbolType >
bool rte::FormalRTEEmpty< SymbolType >::operator== ( const FormalRTEEmpty< SymbolType > &  ) const

The equality comparison implementation.

Parameters
otherthe other object to compare with.
Returns
true if this and other objects are equal, false othervise

◆ operator>>()

template<class SymbolType >
void rte::FormalRTEEmpty< SymbolType >::operator>> ( ext::ostream out) const
override

< FormalRTEElement < SymbolType > >::operator >> ( ext::ostream & ) const

< FormalRTEElement < SymbolType > >::operator >> ( ext::ostream & ) const

◆ testSymbol()

template<class SymbolType >
bool rte::FormalRTEEmpty< SymbolType >::testSymbol ( const common::ranked_symbol< SymbolType > &  symbol) const
override

< SymbolType >::testSymbol ( const common::ranked_symbol < SymbolType > & ) const

Abstract class representing element in the formal regular tree expression. Can be an operator, special node, or a symbol.

Template Parameters
SymbolTypeused for the symbol part of the ranked symbol < SymbolType >::testSymbol ( const common::ranked_symbol < SymbolType > & ) const

The documentation for this class was generated from the following files: