|
| Rewriter (const data_specification &data_spec, const used_data_equation_selector &eq_selector) |
| Constructor. Do not use directly; use createRewriter() function instead.
|
|
virtual | ~Rewriter () |
| Destructor.
|
|
data::enumerator_identifier_generator & | identifier_generator () |
| The fresh name generator of the rewriter.
|
|
virtual rewrite_strategy | getStrategy ()=0 |
| Get rewriter strategy that is used.
|
|
virtual data_expression | rewrite (const data_expression &term, substitution_type &sigma)=0 |
| Rewrite an mCRL2 data term.
|
|
virtual void | rewrite (data_expression &result, const data_expression &term, substitution_type &sigma)=0 |
| Rewrite an mCRL2 data term.
|
|
data_expression | operator() (const data_expression &term, substitution_type &sigma) |
| Provide the rewriter with a () operator, such that it can also rewrite terms using this operator.
|
|
virtual std::shared_ptr< detail::Rewriter > | clone ()=0 |
| Clone a rewriter.
|
|
void | existential_quantifier_enumeration (data_expression &result, const abstraction &t, substitution_type &sigma) |
|
void | existential_quantifier_enumeration (data_expression &result, const variable_list &vl, const data_expression &t1, const bool t1_is_normal_form, substitution_type &sigma) |
|
void | universal_quantifier_enumeration (data_expression &result, const abstraction &t, substitution_type &sigma) |
|
void | universal_quantifier_enumeration (data_expression &result, const variable_list &vl, const data_expression &t1, const bool t1_is_normal_form, substitution_type &sigma) |
|
data_expression | existential_quantifier_enumeration (const abstraction &t, substitution_type &sigma) |
|
data_expression | existential_quantifier_enumeration (const variable_list &vl, const data_expression &t1, const bool t1_is_normal_form, substitution_type &sigma) |
|
data_expression | universal_quantifier_enumeration (const abstraction &t, substitution_type &sigma) |
|
data_expression | universal_quantifier_enumeration (const variable_list &vl, const data_expression &t1, const bool t1_is_normal_form, substitution_type &sigma) |
|
void | rewrite_where (data_expression &result, const where_clause &term, substitution_type &sigma) |
|
data_expression | rewrite_where (const where_clause &term, substitution_type &sigma) |
|
void | rewrite_single_lambda (data_expression &result, const variable_list &vl, const data_expression &body, const bool body_in_normal_form, substitution_type &sigma) |
|
data_expression | rewrite_single_lambda (const variable_list &vl, const data_expression &body, const bool body_in_normal_form, substitution_type &sigma) |
|
void | rewrite_lambda_application (data_expression &result, const data_expression &t, substitution_type &sigma) |
| Rewrite t, assuming that the headsymbol of t, which can be nested, is a lambda term.
|
|
data_expression | rewrite_lambda_application (const data_expression &t, substitution_type &sigma) |
|
void | rewrite_lambda_application (data_expression &result, const abstraction &lambda_term, const application &t, substitution_type &sigma) |
|
virtual void | thread_initialise () |
|
Rewriter interface class.
This is the interface class for the rewriters. To create a specific rewriter, use createRewriter.
Simple use of the rewriter would be as follow (with t a term in the mCRL2 internal format):
delete r;
Rewriter interface class.
virtual data_expression rewrite(const data_expression &term, substitution_type &sigma)=0
Rewrite an mCRL2 data term.
std::shared_ptr< detail::Rewriter > createRewriter(const data_specification &DataSpec, const used_data_equation_selector &equations_selector, const rewrite_strategy Strategy=jitty)
Create a rewriter.
Definition at line 41 of file rewrite.h.