mCRL2 library documentation
Atermpp
PDF documentation
BES
PDF documentation
Core
PDF documentation
Data
PDF documentation
GUI
PDF documentation
LPS
PDF documentation
LTS
PDF documentation
Modal formula
PBES
PDF documentation
Process
PDF documentation
SMT
Utilities
Source code reference
We generate the complete source code reference using Doxygen, which can be viewed here
Code generation
A substantial part of the mCRL2 code is generated using scripts. This section gives an overview of the scripts and their purpose.
build/code_generation/generate_classes.py
Generates classes that derive from atermpp::aterm_appl. The class specifications that are used as input are located inbuild/code_generation/mcrl2_classes.py
.build/code_generation/generate_data_types.py
Generates code for standard data types like bag, bool, int, etc.build/code_generation/generate_template_overloads.py
Generates overloads for several template functions (pp, find, normalize_sorts, etc.). These overloads are added to header files to avoid the inclusion of heavy templated header files that are expensive to compile. The implementations of the functions are added to files in the source directory, while the declarations need to be added manually (since it is not always known where to put them).build/code_generation/generate_term_functions.py
Generates low level code for creating terms (soundness checks, constructors). The script requires command line arguments (see the help function for details). The description of the internal format in the filedoc/specs/mcrl2.internal.txt
is used as input for the script.build/code_generation/generate_traverser_functions.py
Generates functions that are implemented using the traverser framework (find/replace/rewrite etc).build/code_generation/generate_traversers.py
Generates the contents of traverser.h and builder.h files. The class specifications that are used as input are located inbuild/code_generation/mcrl2_classes.py
.
Note
Most of the scripts print a report of the files that have been updated, and the files that have stayed the same.