12#ifndef MCRL2_DATA_DETAIL_VARIABLE_CONTEXT_H
13#define MCRL2_DATA_DETAIL_VARIABLE_CONTEXT_H
21class data_type_checker;
29 std::set<core::identifier_string> names;
32 auto p = names.insert(v.name());
43 std::map<core::identifier_string, sort_expression>
m_variables;
52 explicit variable_context(
const std::map<core::identifier_string, sort_expression>& variables)
56 const std::map<core::identifier_string, sort_expression>&
context()
const
62 template <
typename VariableContainer>
74 template <
typename VariableContainer>
void typecheck_variable(const data_type_checker &typechecker, const variable &v) const
void add_context_variables(const VariableContainer &variables)
void add_context_variables(const VariableContainer &variables, const data_type_checker &typechecker)
std::map< core::identifier_string, sort_expression > m_variables
const std::map< core::identifier_string, sort_expression > & context() const
variable_context(const std::map< core::identifier_string, sort_expression > &variables)
Standard exception class for reporting runtime errors.
std::string pp(const identifier_string &x)
void check_duplicate_variable_names(const data::variable_list &x, const std::string &msg)
A class that takes a linear process specification and checks all tau-summands of that LPS for conflue...