Include file:

#include "mcrl2/utilities/tool.h
class mcrl2::utilities::tools::tool

Base class for command line tools. as result.

Protected attributes

std::string mcrl2::utilities::tools::tool::m_author

The name of the developer(s)

std::string mcrl2::utilities::tools::tool::m_known_issues

Known issues of the tool.

std::string mcrl2::utilities::tools::tool::m_name

The name of the tool.

execution_timer mcrl2::utilities::tools::tool::m_timer

The timer which can be used by the tools.

bool mcrl2::utilities::tools::tool::m_timing_enabled

Determines whether timing output should be written.

std::string mcrl2::utilities::tools::tool::m_timing_filename

The filename to which timings must be written.

std::string mcrl2::utilities::tools::tool::m_tool_description

The description of the tool.

std::string mcrl2::utilities::tools::tool::m_what_is

One-line “what is” description of the tool.

Protected member functions

virtual void add_options(interface_description &desc)

Add options to an interface description.


  • desc An interface description

virtual void check_positional_options(const command_line_parser &parser)

Checks if the number of positional options is OK. By default this function handles standard options: -v, -d and -q Furthermore, it checks that all options occur at most once.


  • parser A command line parser

virtual void check_standard_options(const command_line_parser &parser)

Parse standard options.


  • parser A command line parser

virtual void parse_options(const command_line_parser &parser)

Parse non-standard options.


  • parser A command line parser

virtual bool pre_run(int&, char **)

Executed only if run would be executed and invoked before run.

Returns: Whether run should still be executed

virtual std::string synopsis() const

Returns the synopsis of the tool.

Returns: The string “[OPTION]…n”

Public member functions

int execute(int argc, char *argv[])

Run the tool with the given command line options.


  • argc Number of command line arguments

  • argv Command line arguments

Returns: The execution result

Post: If timing was enabled, timer().report() has been called

virtual bool run() = 0

Run the tool. The options must be set manually.

Returns: True if the tool execution was successful.

execution_timer &timer()

Return reference to the timer that can be used.

const std::string &timing_filename() const

Return the filename in which timings must be saved.

tool(const std::string &name, const std::string &author, const std::string &what_is, const std::string &tool_description, std::string known_issues = "")


virtual ~tool()