The Hanoi Omega-Automata Format (HOAF) provides a flexible and robust mechanism for exchanging ω-automata between different tools. With the jhoafparser library, we provide (1) a Java-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/jhoafparser/, as well as links to example automata.
If you are interested in a C++-based variant of this library, check out cpphoafparser. cpphoafparser and jhoafparser share the same design, but may differ in some of the features that are implemented.
jhoafparser is free software and released under the terms of the GNU Lesser General Public License, version 2.1.
We assume here that you have either downloaded the JAR file from the website, which allows you to invoke the tool via
java -jar jhoafparser-xx.yy.jar
where xx.yy is the version. Alternatively, if you are in the top-level directory of the unpacked ZIP file from the website, you can invoke the tool (on Linux or OS X) via
In the sequel, we use the latter notation, but you can substitute the invocation of the JAR file in the following examples.
Here are some examples for the command-line jhoaf tool:
Parsing (validating) an automaton in HOA format
./jhoaf 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
./jhoaf print automaton-file.hoa
./jhoaf print --resolve-aliases automaton-file.hoa
Further details on the command-line tool can be found here.
The jhoafparser 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 JavaDoc documentation using the ant build tool:
This produces the API documentation in the docs/javadoc subdirectory. Alternatively, the API documentation of the current version of the library is available on the website at http://automata.tools/hoa/jhoafparser/docs/javadoc/.
A good starting point is the API documentation of the jhoafparser.consumer.HOAConsumer interface and the implementation of the jhoafparser.tools.JHOAFCmdLine class, where you can see how the parser is invoked. To parse automata using the jhoafparser library, an application provides the parser with a class which implements the HOAConsumer interface. The parser then invokes the method corresponding to the element in the HOA file format while parsing the automaton.
More details and an overview over the jhoafparser architecture can be found here.
If you have further questions, find bugs or want to tell us about your use of the jhoafparser library, please feel free to contact us!
(c) 2014-2015 Joachim Klein <firstname.lastname@example.org>, David Müller <email@example.com>