The cpphoafparser Library for the
Hanoi Omega-Automata Format (HOAF):
Documentation (version 0.99.2)


The Hanoi Omega-Automata Format (HOAF) provides a flexible and robust mechanism for exchanging ω-automata between different tools. With the cpphoafparser library, we provide (1) a C++-based parser library for parsing HOA files that can be used by applications and tools that want to read HOA files and (2) a command-line tool for performing basic automata operations.

You can find the most current version of the library at, as well as links to example automata.

If you are interested in a Java-based variant of this library, check out jhoafparser. cpphoafparser and jhoafparser share the same design, but may differ in some of the features that are implemented.

cpphoafparser is free software and released under the terms of the GNU Lesser General Public License, version 2.1.

The Command-Line Tool

The Command-Line Tool: First Steps

We assume here that you have downloaded the source code archive from the website and built the tool using

which allows you to invoke the tool via


Alternatively, you have downloaded a precompiled cpphoaf binary from the website.

Here are some examples for the command-line cpphoaf tool:

Parsing (validating) an automaton in HOA format

./cpphoaf parse automaton-file.hoa

Some of the semantic validations can be disabled by the command-line option --no-validate.

Printing an automaton in HOA format to standard output

./cpphoaf print automaton-file.hoa

Resolving aliases

./cpphoaf print --resolve-aliases automaton-file.hoa

The Command-Line Tool: Further information

Further details on the command-line tool can be found here.

The HOA Parser Library

The cpphoafparser library can also be used to parse HOA automata. For example, you might want to read such automata in a tool or you might want to implement your own automata transformations.

As a first step, download the source code of the library from the website. Then, build a local copy of the API documentation with the Doxygen tool:

doxygen Doxyfile

This produces the API documentation in the docs/api-html subdirectory. The alternative Doxyfile.all configuration file produces documentation for all the private/implementation details as well. If you do not have the dot utility installed, set HAVE_DOT = NO in Doxyfile.

The API documentation of the current version of the library is available as well on the website at

A good starting point is the API documentation of the HOAConsumer interface and the source code of src/, where you can see how the parser is invoked. To parse automata using the cpphoafparser library, an application provides the parser with a class which implements the HOAConsumer interface. The parser then invokes the functions corresponding to the element in the HOA file format while parsing the automaton.

The Parser Library: Further information

More details and an overview over the cpphoafparser architecture can be found here.

Additional links

If you have further questions, find bugs or want to tell us about your use of the cpphoafparser library, please feel free to contact us!

(c) 2015-2016 Joachim Klein <>, David Müller <>