12#ifndef MCRL2_DATA_TRANSLATE_USER_NOTATION_H
13#define MCRL2_DATA_TRANSLATE_USER_NOTATION_H
28template <
typename Derived>
42 return static_cast<Derived&
>(*this);
77 const std::string& name(x.
name());
107 [&](
const data_expression& t) { data_expression r; derived().apply(r, t); return r;} ));
118 [&](
const data_expression& t) { data_expression r; derived().apply(r, t); return r;} ));
129 [&](
const data_expression& t) { data_expression r; derived().apply(r, t); return r;} ));
132#ifdef MCRL2_ENABLE_MACHINENUMBERS
139 result=sort_nat::transform_positive_number_to_nat(n);
162 core::make_apply_builder<translate_user_notation_builder>().apply(result, x);
171 typename std::enable_if< !std::is_base_of< atermpp::aterm, T >::value >::type* = 0
179 typename std::enable_if< std::is_base_of< atermpp::aterm, T >::value>::type* =
nullptr
const_iterator begin() const
Returns a const_iterator pointing to the beginning of the term_list.
An abstraction expression.
const variable_list & variables() const
const data_expression & body() const
const binder_type & binding_operator() const
An application of a data expression to a number of arguments.
const_iterator end() const
Returns an iterator pointing past the last argument of the application.
const_iterator begin() const
Returns an iterator pointing to the first argument of the application.
const data_expression & head() const
Get the function at the head of this expression.
sort_expression sort() const
Returns the sort of the data expression.
void apply(T &result, const application &x)
void apply(T &result, const abstraction &x)
data_expression_builder< Derived > super
void apply(T &result, const function_symbol &x)
const sort_expression_list & domain() const
const core::identifier_string & name() const
const sort_expression & sort() const
add your file description here.
data_equation translate_user_notation_data_equation(const data_equation &x)
core::identifier_string const & bag_enumeration_name()
Generate identifier bag_enumeration.
function_symbol constructor(const sort_expression &s)
Constructor for function symbol @bag.
container_sort fbag(const sort_expression &s)
Constructor for sort expression FBag(S)
function_symbol empty(const sort_expression &s)
Constructor for function symbol {:}.
function_symbol empty(const sort_expression &s)
Constructor for function symbol {}.
container_sort fset(const sort_expression &s)
Constructor for sort expression FSet(S)
container_sort list(const sort_expression &s)
Constructor for sort expression List(S)
core::identifier_string const & list_enumeration_name()
Generate identifier list_enumeration.
const core::identifier_string & pos2nat_name()
Generate identifier Pos2Nat.
const basic_sort & pos()
Constructor for sort expression Pos.
core::identifier_string const & set_enumeration_name()
Generate identifier set_enumeration.
function_symbol constructor(const sort_expression &s)
Constructor for function symbol @set.
data_expression number(const sort_expression &s, const std::string &n)
Construct numeric expression from a string representing a number in decimal notation.
data::data_equation translate_user_notation(const data::data_equation &x)
bool is_system_defined(const sort_expression &s)
Returns true iff the expression represents a standard sort.
bool is_function_symbol(const atermpp::aterm &x)
Returns true if the term t is a function symbol.
atermpp::term_list< data_expression > data_expression_list
\brief list of data_expressions
bool is_bag_comprehension(const atermpp::aterm &x)
Returns true if the term t is a bag comprehension.
bool is_set_comprehension(const atermpp::aterm &x)
Returns true if the term t is a set comprehension.
void make_application(atermpp::aterm &result)
Make function for an application.
A class that takes a linear process specification and checks all tau-summands of that LPS for conflue...
Provides utilities for working with data expressions of standard container sorts.
Provides utilities for working with data expressions of standard sorts.
void apply(T &result, const data::variable &x)
data_expression operator()(const data_expression &x) const