11#ifndef MCRL2_DATA_MATCH_TREE_H
12#define MCRL2_DATA_MATCH_TREE_H
237 return atermpp::down_cast<const variable>((*
this)[0]);
242 return atermpp::down_cast<const match_tree>((*
this)[1]);
266 return atermpp::down_cast<const atermpp::aterm_int>((*
this)[0]).value();
290 return atermpp::down_cast<const variable>((*
this)[0]);
295 return atermpp::down_cast<const match_tree>((*
this)[1]);
300 return atermpp::down_cast<const match_tree>((*
this)[2]);
323 return atermpp::down_cast<const data::function_symbol>((*
this)[0]);
328 return atermpp::down_cast<const match_tree>((*
this)[1]);
333 return atermpp::down_cast<const match_tree>((*
this)[2]);
356 return atermpp::down_cast<const data::machine_number>((*
this)[0]);
361 return atermpp::down_cast<const match_tree>((*
this)[1]);
366 return atermpp::down_cast<const match_tree>((*
this)[2]);
393 return atermpp::down_cast<const match_tree>((*
this)[0]);
419 return atermpp::down_cast<const match_tree>((*
this)[0]);
443 return atermpp::down_cast<const data_expression>((*
this)[0]);
466 return atermpp::down_cast<const data_expression>((*
this)[0]);
471 return atermpp::down_cast<const match_tree>((*
this)[1]);
476 return atermpp::down_cast<const match_tree>((*
this)[2]);
515 return atermpp::down_cast<const data_expression>((*
this)[0]);
520 return atermpp::down_cast<const variable_or_number_list>((*
this)[1]);
544 return atermpp::down_cast<const data_expression>((*
this)[0]);
549 return atermpp::down_cast<const data_expression>((*
this)[1]);
554 return atermpp::down_cast<const variable_or_number_list>((*
this)[2]);
559 return atermpp::down_cast<const variable_or_number_list>((*
this)[3]);
582 return atermpp::down_cast<const variable>((*
this)[0]);
587 return (atermpp::down_cast<const atermpp::aterm_int>((*
this)[1])).value();
658 s <<
"@@N(" << tN.
subtree() <<
")";
664 s <<
"@@D(" << tD.
subtree() <<
")";
670 s <<
"@@R(" << tR.
result() <<
")";
aterm()
Default constructor.
const function_symbol & function() const
Returns the function symbol belonging to an aterm.
bool type_is_int() const noexcept
Dynamic check whether the term is an aterm_int.
match_tree_list_list Slist
match_tree_list_list upstack
match_tree_list_list Flist
match_tree_list_list Mlist
match_tree_list_list_list stack
std::size_t variable_index() const
match_tree_A(const std::size_t n)
match_tree_A(const atermpp::aterm &t)
match_tree_CRe(const data_expression &condition, const data_expression &result, const variable_or_number_list &vars_condition, const variable_or_number_list &vars_rule)
match_tree_CRe(const atermpp::aterm &t)
const variable_or_number_list & variables_condition() const
const data_expression & condition() const
const data_expression & result() const
const variable_or_number_list & variables_result() const
const data_expression & condition() const
match_tree_C(const atermpp::aterm &t)
const match_tree & false_tree() const
match_tree_C(const data_expression &condition, const match_tree &true_tree, const match_tree &false_tree)
const match_tree & true_tree() const
match_tree_D(const atermpp::aterm &t)
const match_tree & subtree() const
match_tree_D(const match_tree &result_tree, std::size_t)
match_tree_F(const data::function_symbol &function, const match_tree &true_tree, const match_tree &false_tree)
const data::function_symbol & function() const
const match_tree & false_tree() const
const match_tree & true_tree() const
match_tree_F(const atermpp::aterm &t)
const match_tree & false_tree() const
const match_tree & true_tree() const
const variable & match_variable() const
match_tree_M(const atermpp::aterm &t)
match_tree_M(const variable &match_variable, const match_tree &true_tree, const match_tree &false_tree)
match_tree_MachineNumber(const atermpp::aterm &t)
match_tree_MachineNumber(const data::machine_number &mn, const match_tree &true_tree, const match_tree &false_tree)
const match_tree & true_tree() const
const match_tree & false_tree() const
match_tree_MachineNumber()
const data::machine_number & number() const
const variable & match_variable() const
match_tree_Me(const variable &match_variable, const std::size_t variable_index)
std::size_t variable_index() const
match_tree_Me(const atermpp::aterm &t)
match_tree_N(const atermpp::aterm &t)
const match_tree & subtree() const
match_tree_N(const match_tree &result_tree, std::size_t)
match_tree_R(const atermpp::aterm &t)
const data_expression & result() const
match_tree_R(const data_expression &e)
match_tree_Re(const data_expression &result, const variable_or_number_list &vars)
match_tree_Re(const atermpp::aterm &t)
const variable_or_number_list & variables() const
const data_expression & result() const
match_tree_S(const atermpp::aterm &t)
const variable & target_variable() const
match_tree_S(const variable &target_variable, const match_tree &result_tree)
const match_tree & subtree() const
match_tree_X(const atermpp::aterm &t)
atermpp::function_symbol afunUndefined() const
atermpp::function_symbol afunD() const
bool isMachineNumber() const
atermpp::function_symbol afunN() const
match_tree(const atermpp::aterm &t)
Constructor based on an aterm.
match_tree()
Default constructor.
atermpp::function_symbol afunRe() const
atermpp::function_symbol afunF() const
atermpp::function_symbol afunCRe() const
atermpp::function_symbol afunM() const
atermpp::function_symbol afunX() const
atermpp::function_symbol afunMachineNumber() const
atermpp::function_symbol afunMe() const
atermpp::function_symbol afunC() const
atermpp::function_symbol afunS() const
atermpp::function_symbol afunA() const
atermpp::function_symbol afunR() const
This is a list where variables and aterm ints can be stored.
variable_or_number(const atermpp::aterm &v)
Constructor.
variable_or_number()
Default constructor.
The class function symbol.
The class machine_number, which is a subclass of data_expression.
The main namespace for the aterm++ library.
const Derived & down_cast(const Base &t, typename std::enable_if< is_convertible< Base, Derived >::value &&!std::is_base_of< Derived, Base >::value >::type *=nullptr)
A cheap cast from one aterm based type to another When casting one aterm based type into another,...
atermpp::term_list< match_tree > match_tree_list
atermpp::term_list< match_tree_list > match_tree_list_list
atermpp::term_list< variable_or_number > variable_or_number_list
std::ostream & operator<<(std::ostream &os, smt_solver_type s)
standard conversion from solvert type to stream
std::vector< match_tree > match_tree_vector
atermpp::term_list< match_tree_list_list > match_tree_list_list_list
bool is_variable(const atermpp::aterm &x)
Returns true if the term t is a variable.
A class that takes a linear process specification and checks all tau-summands of that LPS for conflue...