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 http://automata.tools/hoa/cpphoafparser/, 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.
We assume here that you have downloaded the source code archive from the website and built the tool using
makewhich allows you to invoke the tool via
./cpphoaf
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
Further details on the command-line tool can be found here.
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 http://automata.tools/hoa/cpphoafparser/docs/api-html/.
A good starting point is the API documentation of the HOAConsumer interface and the source code of src/cpphoaf.cc, 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.
More details and an overview over the cpphoafparser architecture can be found here.
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 <klein@tcs.inf.tu-dresden.de>, David Müller <david.mueller@tcs.inf.tu-dresden.de>