30template <
class SymbolType = DefaultSymbolType >
36#include <ext/iostream>
37#include <ext/algorithm>
52#include "../unranked/UnrankedTree.h"
71template <
class SymbolType >
72class RankedTree final :
public core::Components < RankedTree < SymbolType >, ext::set < common::ranked_symbol < SymbolType > >, component::Set, GeneralAlphabet > {
139 return this->
template accessComponent < GeneralAlphabet > ( ).get ( );
148 return std::move ( this->
template accessComponent < GeneralAlphabet > ( ).
get ( ) );
157 this->
template accessComponent < GeneralAlphabet > ( ).add ( symbols );
214 out <<
"(RankedTree";
216 out <<
" content = " << instance.
getContent ( );
229template <
class SymbolType >
231 checkAlphabet ( m_content );
232 checkArities ( m_content );
235template <
class SymbolType >
239template <
class SymbolType >
243template <
class SymbolType >
247template <
class SymbolType >
251template <
class SymbolType >
256template <
class SymbolType >
258 return std::move ( m_content );
261template <
class SymbolType >
265 throw TreeException (
"Input symbols not in the alphabet." );
269template <
class SymbolType >
271 if ( data.getData ( ).getRank ( ) != data.getChildren ( ).size ( ) )
275 checkArities ( child );
278template <
class SymbolType >
280 checkAlphabet (
tree );
281 checkArities (
tree );
283 this->m_content = std::move (
tree );
286template <
class SymbolType >
300template <
class SymbolType >
343template <
class SymbolType >
static ext::set< common::ranked_symbol< DefaultSymbolType > > normalizeRankedAlphabet(ext::set< common::ranked_symbol< SymbolType > > &&symbols)
Definition: SymbolNormalize.h:59
Definition: ranked_symbol.hpp:20
Definition: components.hpp:181
static bool used(const tree::RankedTree< SymbolType > &tree, const common::ranked_symbol< SymbolType > &symbol)
Definition: RankedTree.h:311
static bool available(const tree::RankedTree< SymbolType > &, const common::ranked_symbol< SymbolType > &)
Definition: RankedTree.h:324
static void valid(const tree::RankedTree< SymbolType > &, const common::ranked_symbol< SymbolType > &)
Definition: RankedTree.h:334
Definition: setComponents.hpp:26
Basic exception from which all other exceptions are derived.
Definition: CommonException.h:21
Output iterator calling a callback function on assignment.
Definition: iterator.hpp:923
Class introducing a tree with interface trying to be close to the interface of standard library conta...
Definition: tree.hpp:52
const_prefix_iterator prefix_begin() const
Getter of the prefix iterator to the root node.
Definition: tree.hpp:904
const_prefix_iterator prefix_end() const
Getter of the prefix iterator one after the last node in the prefix traversal.
Definition: tree.hpp:914
Tree structure represented as linear sequece as result of postorder traversal. The representation is ...
Definition: PostfixRankedTree.h:73
Tree structure represented as linear sequece as result of preorder traversal. The representation is s...
Definition: PrefixRankedTree.h:71
Tree structure represented in its natural representation. The representation is so called ranked,...
Definition: RankedTree.h:72
void extendAlphabet(const ext::set< common::ranked_symbol< SymbolType > > &symbols)
Definition: RankedTree.h:156
bool operator==(const RankedTree &other) const
Definition: RankedTree.h:201
friend ext::ostream & operator<<(ext::ostream &out, const RankedTree &instance)
Definition: RankedTree.h:213
ext::set< common::ranked_symbol< SymbolType > > && getAlphabet() &&
Definition: RankedTree.h:147
const ext::set< common::ranked_symbol< SymbolType > > & getAlphabet() const &
Definition: RankedTree.h:138
RankedTree(ext::set< common::ranked_symbol< SymbolType > > alphabet, ext::tree< common::ranked_symbol< SymbolType > > tree)
Creates a new instance of the tree with concrete alphabet and content.
Definition: RankedTree.h:230
void setTree(ext::tree< common::ranked_symbol< SymbolType > > tree)
Definition: RankedTree.h:279
void nicePrint(ext::ostream &os) const
Definition: RankedTree.h:287
const ext::tree< common::ranked_symbol< SymbolType > > & getContent() const &
Definition: RankedTree.h:252
Definition: TreeException.h:15
static ext::tree< common::ranked_symbol< DefaultSymbolType > > normalizeRankedTree(ext::tree< common::ranked_symbol< SymbolType > > &&tree)
Definition: TreeNormalize.h:40
Tree represented in its natural representation. The representation is so called unranked,...
Definition: UnrankedTree.h:69
Definition: BarSymbol.cpp:12
typename T::SymbolType SymbolType
Definition: ReachableStates.h:176
Definition: Permutation.hpp:18
Definition: normalize.hpp:10
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 begin(Container &&cont) -> decltype(std::forward(cont).begin())
Definition: iterator.hpp:900
void end()
Definition: measurements.cpp:19
auto & get(ext::ptr_array< Type, N > &tpl)
Specialisation of get function for pointer arrays.
Definition: ptr_array.hpp:693
Definition: BackwardOccurrenceTest.h:17
static tree::RankedTree< > eval(tree::RankedTree< SymbolType > &&value)
Definition: RankedTree.h:345
Definition: normalize.hpp:13