Algorithms Library Toolkit
A toolkit for algorithms, especially for algorithms on formal languages
Public Member Functions | Friends
rte::FormalRTEStructure< SymbolType > Class Template Referencefinal

Represents unbounded regular expression structure. Regular expression is stored as a tree of UnboundedRegExpElements. More...

#include <FormalRTEStructure.h>

Public Member Functions

 FormalRTEStructure ()
 Creates a new instance of the expression structure. Defaultly created structure is empty expression. More...
 
 FormalRTEStructure (FormalRTEElement< SymbolType > &&structure)
 Creates a new instance of the expression structure. The new instance contains structure as provided by the parameter. More...
 
 FormalRTEStructure (const FormalRTEElement< SymbolType > &structure)
 Creates a new instance of the expression structure. The new instance contains structure as provided by the parameter. More...
 
const FormalRTEElement< SymbolType > & getStructure () const
 
FormalRTEElement< SymbolType > & getStructure ()
 
void setStructure (FormalRTEElement< SymbolType > &&param)
 
void setStructure (const FormalRTEElement< SymbolType > &structure)
 
FormalRTEStructure< DefaultSymbolTypenormalize () &&
 Performs the type normalization of the rte structure. More...
 

Friends

ext::ostreamoperator<< (ext::ostream &out, const FormalRTEStructure< SymbolType > &structure)
 Strucuture printer to the stream. More...
 
std::strong_ordering operator<=> (const FormalRTEStructure< SymbolType > &first, const FormalRTEStructure< SymbolType > &second)
 Three way comparison operator implementation for the expression structure. More...
 
bool operator== (const FormalRTEStructure< SymbolType > &first, const FormalRTEStructure< SymbolType > &second)
 Equality operator implementation for the expression structure. More...
 

Detailed Description

template<class SymbolType>
class rte::FormalRTEStructure< SymbolType >

Represents unbounded regular expression structure. Regular expression is stored as a tree of UnboundedRegExpElements.

Template Parameters
SymbolTypeused for the symbol part of the ranked symbol

Constructor & Destructor Documentation

◆ FormalRTEStructure() [1/3]

template<class SymbolType >
rte::FormalRTEStructure< SymbolType >::FormalRTEStructure
explicit

Creates a new instance of the expression structure. Defaultly created structure is empty expression.

◆ FormalRTEStructure() [2/3]

template<class SymbolType >
rte::FormalRTEStructure< SymbolType >::FormalRTEStructure ( FormalRTEElement< SymbolType > &&  structure)
explicit

Creates a new instance of the expression structure. The new instance contains structure as provided by the parameter.

Parameters
structurethe expression structure.

◆ FormalRTEStructure() [3/3]

template<class SymbolType >
rte::FormalRTEStructure< SymbolType >::FormalRTEStructure ( const FormalRTEElement< SymbolType > &  structure)
explicit

Creates a new instance of the expression structure. The new instance contains structure as provided by the parameter.

Parameters
structurethe expression structure.

Member Function Documentation

◆ getStructure() [1/2]

template<class SymbolType >
FormalRTEElement< SymbolType > & rte::FormalRTEStructure< SymbolType >::getStructure

Getter of the root of the structure.

Returns
Root node of the unbounded regular expression tree

◆ getStructure() [2/2]

template<class SymbolType >
const FormalRTEElement< SymbolType > & rte::FormalRTEStructure< SymbolType >::getStructure

Getter of the root of the structure.

Returns
Root node of the unbounded regular expression tree
Here is the caller graph for this function:

◆ normalize()

template<class SymbolType >
FormalRTEStructure< DefaultSymbolType > rte::FormalRTEStructure< SymbolType >::normalize ( ) &&
inline

Performs the type normalization of the rte structure.

Returns
the normalized structure
Here is the call graph for this function:
Here is the caller graph for this function:

◆ setStructure() [1/2]

template<class SymbolType >
void rte::FormalRTEStructure< SymbolType >::setStructure ( const FormalRTEElement< SymbolType > &  structure)

Sets the root node of the expression structure

Parameters
structurenew root node of the structure
Here is the call graph for this function:

◆ setStructure() [2/2]

template<class SymbolType >
void rte::FormalRTEStructure< SymbolType >::setStructure ( FormalRTEElement< SymbolType > &&  param)

Sets the root node of the expression structure

Parameters
structurenew root node of the structure

Friends And Related Function Documentation

◆ operator<<

template<class SymbolType >
ext::ostream & operator<< ( ext::ostream out,
const FormalRTEStructure< SymbolType > &  structure 
)
friend

Strucuture printer to the stream.

Parameters
outthe output stream
structurethe structure to print

◆ operator<=>

template<class SymbolType >
std::strong_ordering operator<=> ( const FormalRTEStructure< SymbolType > &  first,
const FormalRTEStructure< SymbolType > &  second 
)
friend

Three way comparison operator implementation for the expression structure.

Parameters
firstthe first instance
secondthe second instance
Returns
the strong ordering between the the first and the second parameter

◆ operator==

template<class SymbolType >
bool operator== ( const FormalRTEStructure< SymbolType > &  first,
const FormalRTEStructure< SymbolType > &  second 
)
friend

Equality operator implementation for the expression structure.

Parameters
firstthe first instance
secondthe second instance
Returns
true if the first is equal to the second, false otherwise

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