12#ifndef MCRL2_DATA_PARSE_IMPL_H
13#define MCRL2_DATA_PARSE_IMPL_H
53 if (product !=
nullptr)
58 product->push_front(new_element);
63 product->push_front(new_element);
70 "hand side of ->, and when declaring actions.");
135 return parse_list<data::structured_sort_constructor_argument>(node,
"ProjDecl", [&](
const core::parse_node& node) {
return parse_ProjDecl(node); });
173 template <
typename ExpressionContainer>
177 for (
auto i = x.begin(); i != x.end(); ++i)
179 result.push_back(i->sort());
197 result.push_back(
variable(name, sort));
331 std::vector<atermpp::aterm> result;
Term containing a string.
bool empty() const
Returns true if the list's size is 0.
void push_front(const Term &el)
Inserts a new element at the beginning of the current list.
An abstraction expression.
An application of a data expression to a number of arguments.
existential quantification.
universal quantification.
\brief An argument of a constructor of a structured sort
\brief A constructor for a structured sort
\brief Assignment of a data expression to a string
\brief An untyped identifier
\brief Binder for untyped set or bag comprehension
\brief Unknown sort expression
\brief A where expression
add your file description here.
The standard sort function_update.
const aterm_string & empty_string()
Returns the empty aterm_string.
function_symbol bag_enumeration(const sort_expression &s)
Constructor for function symbol bag_enumeration.
container_sort bag(const sort_expression &s)
Constructor for sort expression Bag(S)
const basic_sort & bool_()
Constructor for sort expression Bool.
const function_symbol & true_()
Constructor for function symbol true.
container_sort fbag(const sort_expression &s)
Constructor for sort expression FBag(S)
container_sort fset(const sort_expression &s)
Constructor for sort expression FSet(S)
const basic_sort & int_()
Constructor for sort expression Int.
function_symbol list_enumeration(const sort_expression &s)
Constructor for function symbol list_enumeration.
container_sort list(const sort_expression &s)
Constructor for sort expression List(S)
const basic_sort & nat()
Constructor for sort expression Nat.
const basic_sort & pos()
Constructor for sort expression Pos.
const basic_sort & real_()
Constructor for sort expression Real.
function_symbol set_enumeration(const sort_expression &s)
Constructor for function symbol set_enumeration.
container_sort set_(const sort_expression &s)
Constructor for sort expression Set(S)
std::vector< sort_expression > sort_expression_vector
\brief vector of sort_expressions
const core::identifier_string & function_update_name()
Generate identifier @func_update.
std::vector< data_equation > data_equation_vector
\brief vector of data_equations
std::vector< variable > variable_vector
\brief vector of variables
atermpp::term_list< sort_expression > sort_expression_list
\brief list of sort_expressions
atermpp::term_list< variable > variable_list
\brief list of variables
bool is_alias(const atermpp::aterm &x)
std::vector< function_symbol > function_symbol_vector
\brief vector of function_symbols
A class that takes a linear process specification and checks all tau-summands of that LPS for conflue...
add your file description here.
Provides utilities for working with data expressions of standard container sorts.
core::identifier_string parse_Id(const parse_node &node) const
default_parser_actions(const parser &parser_)
core::identifier_string_list parse_IdList(const parse_node &node) const
core::identifier_string parse_Number(const parse_node &node) const
parse_node child(int i) const
std::string string() const
std::string symbol_name(const parse_node &node) const
void traverse(const parse_node &node, const Function &f) const
Wrapper for D_Parser and its corresponding D_ParserTables.
data_expression make_untyped_set_or_bag_comprehension(const variable &v, const data_expression &x) const
data::variable_list parse_VarsDeclList(const core::parse_node &node) const
data::data_expression_list parse_DataExprList(const core::parse_node &node) const
data_expression make_list_enumeration(const data_expression_list &x) const
data_expression make_function_update(const data_expression &x, const data_expression &y, const data_expression &z) const
data_expression make_set_enumeration(const data_expression_list &x) const
data::sort_expression_list get_sorts(const ExpressionContainer &x) const
data_expression_actions(const core::parser &parser_)
bool callback_VarsDecl(const core::parse_node &node, variable_vector &result) const
data::variable parse_VarDecl(const core::parse_node &node) const
data::untyped_identifier_assignment parse_Assignment(const core::parse_node &node) const
data::data_expression parse_DataValExpr(const core::parse_node &node) const
data::data_expression_list parse_BagEnumEltList(const core::parse_node &node) const
data::untyped_identifier_assignment_list parse_AssignmentList(const core::parse_node &node) const
data_expression make_bag_enumeration(const data_expression_list &x) const
data::data_expression parse_DataExprUnit(const core::parse_node &node) const
data::data_expression parse_DataExpr(const core::parse_node &node) const
bool callback_IdsDecl(const core::parse_node &node, function_symbol_vector &result) const
data::variable_list parse_GlobVarSpec(const core::parse_node &node) const
data_specification_actions(const core::parser &parser_)
data::function_symbol_vector parse_MapSpec(const core::parse_node &node) const
data::data_equation_vector parse_EqnDeclList(const core::parse_node &node, const variable_list &variables) const
data::variable_list parse_VarSpec(const core::parse_node &node) const
std::vector< atermpp::aterm > parse_SortDeclList(const core::parse_node &node) const
untyped_data_specification parse_DataSpec(const core::parse_node &node) const
bool callback_SortDecl(const core::parse_node &node, std::vector< atermpp::aterm > &result) const
data::data_equation_vector parse_EqnSpec(const core::parse_node &node) const
data::function_symbol_vector parse_IdsDeclList(const core::parse_node &node) const
bool callback_DataSpecElement(const core::parse_node &node, untyped_data_specification &result) const
bool callback_EqnDecl(const core::parse_node &node, const variable_list &variables, data_equation_vector &result) const
std::vector< atermpp::aterm > parse_SortSpec(const core::parse_node &node) const
data::function_symbol_vector parse_ConsSpec(const core::parse_node &node) const
data::structured_sort_constructor parse_ConstrDecl(const core::parse_node &node) const
data::sort_expression parse_SortExpr(const core::parse_node &node, data::sort_expression_list *product=nullptr) const
data::structured_sort_constructor_list parse_ConstrDeclList(const core::parse_node &node) const
data::sort_expression_list parse_SortProduct(const core::parse_node &node) const
data::sort_expression_list parse_SortExpr_as_SortProduct(const core::parse_node &node) const
data::structured_sort_constructor_argument_list parse_ProjDeclList(const core::parse_node &node) const
sort_expression_actions(const core::parser &parser_)
data::structured_sort_constructor_argument parse_ProjDecl(const core::parse_node &node) const
void add_mapping(const function_symbol &x)
void add_alias(const alias &x)
void add_sort(const basic_sort &x)
void add_constructor(const function_symbol &x)
void add_equation(const data_equation &x)
add your file description here.