39std::string
pp(
const process::at& x) {
return process::pp< process::at >(x); }
59std::string
pp(
const process::seq& x) {
return process::pp< process::seq >(x); }
61std::string
pp(
const process::sum& x) {
return process::pp< process::sum >(x); }
63std::string
pp(
const process::tau& x) {
return process::pp< process::tau >(x); }
89 std::vector<process_equation>& equations = procspec.
equations();
90 std::map<process_identifier, multi_action_name_set> pcrl_equation_cache;
98 procspec.
init() =
push_block(empty_blockset,
init, equations, id_generator, pcrl_equation_cache);
101 if (procspec.
equations().size() < duplicate_equation_limit)
115 bool partial_parses =
false;
130 bool partial_parses =
false;
142 bool partial_parses =
false;
add your file description here.
Identifier generator that stores the identifiers of the context in a set. Using the operator()() and ...
void add_identifier(const core::identifier_string &s) override
Adds the identifier s to the context.
\brief A multiset of action names
\brief The allow operator
\brief The block operator
\brief The bounded initialization
\brief The choice operator
\brief The communication operator
\brief A communication expression
\brief The if-then-else operator
\brief The if-then operator
\brief The left merge operator
\brief The merge operator
\brief A process equation
\brief A process expression
\brief A process identifier
\brief A process assignment
Process specification consisting of a data specification, action labels, a sequence of process equati...
const std::vector< process_equation > & equations() const
Returns the equations of the process specification.
const process_expression & init() const
Returns the initialization of the process specification.
const data::data_specification & data() const
Returns the data specification.
\brief A rename expression
\brief The rename operator
\brief The sequential composition
\brief The distribution operator
\brief The synchronization operator
\brief An untyped multi action or data application
\brief An untyped process assginment
D_ParserTables parser_tables_mcrl2
MCRL2_EXPORT bool init(rewriter_interface *i, RewriterCompilingJitty *this_rewriter)
#define mCRL2log(LEVEL)
mCRL2log(LEVEL) provides the stream used to log.
void syntax_error_fn(struct D_Parser *ap)
Custom syntax error function that prints both the line number and the column.
struct D_ParseNode * ambiguity_fn(struct D_Parser *, int, struct D_ParseNode **)
Function for resolving ambiguities in the '_ -> _ <> _' operator for process expressions.
void warn_left_merge_merge(const parse_node &)
Prints a warning for each occurrence of 'x ||_ y || z' in the parse tree.
void warn_and_or(const parse_node &)
Prints a warning for each occurrence of 'x && y || z' in the parse tree.
process_specification parse_process_specification_new(const std::string &text)
void complete_process_specification(process_specification &x, bool alpha_reduce=false)
process_expression parse_process_expression_new(const std::string &text)
std::map< process_identifier, multi_action_name_set > compute_pcrl_equation_cache(const std::vector< process_equation > &equations)
void find_identifiers(const T &x, OutputIterator o)
process_expression push_block(const core::identifier_string_list &B, const process_expression &x, std::vector< process_equation > &equations, data::set_identifier_generator &id_generator, std::map< process_identifier, multi_action_name_set > &pcrl_equation_cache)
std::vector< process_expression > process_expression_vector
\brief vector of process_expressions
process::action_label_list parse_action_declaration(const std::string &text, const data::data_specification &data_spec=data::detail::default_specification())
Parses an action declaration from a string.
std::set< data::sort_expression > find_sort_expressions(const process::action_label_list &x)
action_label_list normalize_sorts(const action_label_list &x, const data::sort_specification &sortspec)
void typecheck_process_specification(process_specification &proc_spec)
Type check a parsed mCRL2 process specification. Throws an exception if something went wrong.
std::vector< process_equation > process_equation_vector
\brief vector of process_equations
void alphabet_reduce(process_specification &procspec, std::size_t duplicate_equation_limit=(std::numeric_limits< size_t >::max)())
Applies alphabet reduction to a process specification.
std::vector< action > action_vector
\brief vector of actions
std::string pp(const action_label &x)
void find_free_variables(const T &x, OutputIterator o)
void find_all_variables(const T &x, OutputIterator o)
action translate_user_notation(const action &x)
void remove_duplicate_equations(process_specification &procspec)
Removes duplicate equations from a process specification, using a bisimulation algorithm.
std::vector< action_label > action_label_vector
\brief vector of action_labels
std::vector< process_identifier > process_identifier_vector
\brief vector of process_identifiers
A class that takes a linear process specification and checks all tau-summands of that LPS for conflue...
add your file description here.
add your file description here.
add your file description here.
Wrapper for D_Parser and its corresponding D_ParserTables.
parse_node parse(const std::string &text, unsigned int start_symbol_index=0, bool partial_parses=false)
Parses a string. N.B. The user is responsible for destruction of the returned value by calling destro...
unsigned int start_symbol_index(const std::string &name) const
bool callback_ActDecl(const core::parse_node &node, action_label_vector &result) const
untyped_process_specification parse_mCRL2Spec(const core::parse_node &node) const
process::process_expression parse_ProcExpr(const core::parse_node &node) const
process_specification construct_process_specification()