10#ifndef MCRL2_DATA_DETAIL_REWRITE_JITTY_H
11#define MCRL2_DATA_DETAIL_REWRITE_JITTY_H
72 std::shared_ptr<detail::Rewriter>
clone()
93 std::map< function_symbol, data_equation_list >
jitty_eqns;
99 template <
class ITERATOR>
This is a thread's specific access to the global aterm pool which ensures that garbage collection and...
An application of a data expression to a number of arguments.
\brief Assignment of a data expression to a variable
std::shared_ptr< detail::Rewriter > clone()
Clone a rewriter.
strategy create_a_rewriting_based_strategy(const function_symbol &f, const data_equation_list &rules1)
rewrite_strategy getStrategy()
Get rewriter strategy that is used.
strategy create_a_cpp_function_based_strategy(const function_symbol &f, const data_specification &data_spec)
class rewrite_stack m_rewrite_stack
void rewrite_aux_const_function_symbol(data_expression &result, const function_symbol &op, substitution_type &sigma)
data_expression rewrite(const data_expression &term, substitution_type &sigma)
Rewrite an mCRL2 data term.
void rewrite_aux(data_expression &result, const data_expression &term, substitution_type &sigma)
Rewrite a term with a given substitution and put the rewritten term in result.
RewriterJitty(const RewriterJitty &other)=default
strategy create_strategy(const function_symbol &f, const data_equation_list &rules1, const data_specification &data_spec)
void apply_cpp_code_to_higher_order_term(data_expression &result, const application &t, const std::function< void(data_expression &, const data_expression &)> rewrite_cpp_code, ITERATOR begin, ITERATOR end, substitution_type &sigma)
const function_symbol & this_term_is_in_normal_form()
void subst_values(data_expression &result, const jitty_assignments_for_a_rewrite_rule &assignments, const data_expression &t, data::enumerator_identifier_generator &generator)
RewriterJitty & operator=(const RewriterJitty &other)=delete
void rewrite_aux_function_symbol(data_expression &result, const function_symbol &op, const application &term, substitution_type &sigma)
data_expression remove_normal_form_function(const data_expression &t)
atermpp::detail::thread_aterm_pool * m_thread_aterm_pool
void rebuild_strategy(const data_specification &data_spec, const mcrl2::data::used_data_equation_selector &equation_selector)
std::vector< strategy > jitty_strat
std::map< function_symbol, data_equation_list > jitty_eqns
bool rewriting_in_progress
Rewriter::substitution_type substitution_type
function_symbol this_term_is_in_normal_form_symbol
void make_jitty_strat_sufficiently_larger(const std::size_t i)
Auxiliary function to take care that the array jitty_strat is sufficiently large to access element i.
std::vector< data_expression > rhs_for_constants_cache
Rewriter interface class.
A strategy is a list of rules and the number of variables that occur in it.
Generic substitution function.
Component for selecting a subset of equations that are actually used in an encompassing specification...
static RewriterCompilingJitty::substitution_type & sigma(RewriterCompilingJitty *this_rewriter)
thread_aterm_pool & g_thread_term_pool()
A reference to the thread local term pool storage.
data_expression remove_normal_form_function(const data_expression &t)
removes auxiliary expressions this_term_is_in_normal_form from data_expressions that are being rewrit...
rewrite_strategy
The strategy of the rewriter.
A class that takes a linear process specification and checks all tau-summands of that LPS for conflue...
This file contains a rewrite stack that can operate alongside the normal stack. As it is an atermpp c...
jitty_variable_assignment_for_a_rewrite_rule * assignment
jitty_assignments_for_a_rewrite_rule(jitty_variable_assignment_for_a_rewrite_rule *a)
jitty_variable_assignment_for_a_rewrite_rule(const variable &m_var, const data_expression &m_term, bool m_nf)
bool variable_is_a_normal_form
const data_expression & term