Nonlinear tree pattern represented in its natural representation. The representation is so called ranked, therefore it consists of ranked symbols. The rank of the ranked symbol needs to be compatible with unsigned integer. Additionally the pattern contains a special wildcard symbol representing any subtree and nonlinear variables each to represent same subtree (in the particular occurrence in a tree).
More...
|
| RankedNonlinearPattern (common::ranked_symbol< SymbolType > subtreeWildcard, ext::set< common::ranked_symbol< SymbolType > > nonlinearVariables, ext::set< common::ranked_symbol< SymbolType > > alphabet, ext::tree< common::ranked_symbol< SymbolType > > pattern) |
| Creates a new instance of the pattern with concrete alphabet, content, wildcard, and nonlinear variables. More...
|
|
| RankedNonlinearPattern (common::ranked_symbol< SymbolType > subtreeWildcard, ext::set< common::ranked_symbol< SymbolType > > nonlinearVariables, ext::tree< common::ranked_symbol< SymbolType > > pattern) |
| Creates a new instance of the pattern with concrete content, wildcard, and nonlinear variables. The alphabet is deduced from the content. More...
|
|
| RankedNonlinearPattern (common::ranked_symbol< SymbolType > subtreeWildcard, ext::tree< common::ranked_symbol< SymbolType > > pattern) |
| Creates a new instance of the pattern with concrete content and wildcard. The alphabet is deduced from the content. Nonlinear variables are defaultly constructed to empty set. More...
|
|
| RankedNonlinearPattern (const UnrankedNonlinearPattern< SymbolType > &other) |
| Creates a new instance of the pattern based on UnrankedNonlinearPattern, the alphabet is created from the content of the UnrankedNonlinearPattern. The alphabet is created since ranks cannot be deduced. More...
|
|
const ext::set< common::ranked_symbol< SymbolType > > & | getAlphabet () const & |
|
ext::set< common::ranked_symbol< SymbolType > > && | getAlphabet () && |
|
void | extendAlphabet (const ext::set< common::ranked_symbol< SymbolType > > &symbols) |
|
const common::ranked_symbol< SymbolType > & | getSubtreeWildcard () const & |
|
common::ranked_symbol< SymbolType > && | getSubtreeWildcard () && |
|
const ext::set< common::ranked_symbol< SymbolType > > & | getNonlinearVariables () const & |
|
ext::set< common::ranked_symbol< SymbolType > > && | getNonlinearVariables () && |
|
const ext::tree< common::ranked_symbol< SymbolType > > & | getContent () const & |
|
ext::tree< common::ranked_symbol< SymbolType > > && | getContent () && |
|
void | setTree (ext::tree< common::ranked_symbol< SymbolType > > pattern) |
|
auto | operator<=> (const RankedNonlinearPattern &other) const |
|
bool | operator== (const RankedNonlinearPattern &other) const |
|
void | nicePrint (ext::ostream &os) const |
|
void | accessComponent () |
|
template<class SymbolType>
class tree::RankedNonlinearPattern< SymbolType >
Nonlinear tree pattern represented in its natural representation. The representation is so called ranked, therefore it consists of ranked symbols. The rank of the ranked symbol needs to be compatible with unsigned integer. Additionally the pattern contains a special wildcard symbol representing any subtree and nonlinear variables each to represent same subtree (in the particular occurrence in a tree).
T = (A, C, W \in ( A \minus B ), V \in ( A \minus B) ), A (Alphabet) = finite set of ranked symbols, C (Content) = pattern in its natural representation W (Wildcard) = special symbol representing any subtree V (Variables) = finite set of special symbols each representing same subtree
- Template Parameters
-
SymbolType | used for the symbol part of the ranked symbol |