You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

145 lines
5.3 KiB

  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4. <meta http-equiv="content-type" content="text/html; charset=utf-8">
  5. <link href="cpphoafparser.css" rel="stylesheet">
  6. <title>The cpphoafparser Library for the Hanoi Omega-Automata Format (HOAF): Documentation (version 0.99.2)</title>
  7. </head>
  8. <body>
  9. <div class="nav"></div>
  10. <h1>
  11. The <span class="blue1">cpp</span><span class="blue2">hoaf</span><span class="blue3">parser</span> Library
  12. for the <br>Hanoi Omega-Automata Format (HOAF):<br/> Documentation (version 0.99.2)
  13. </h1>
  14. <h2><a name="overview">Overview</a></h2>
  15. <p>The <a href="http://adl.github.io/hoaf/">Hanoi Omega-Automata
  16. Format (HOAF)</a>
  17. provides a flexible and robust mechanism for exchanging
  18. &omega;-automata between different tools.
  19. With the <span class="prog">cpphoafparser</span> library, we provide (1)
  20. a C++-based parser library for parsing HOA files that can be used
  21. by applications and tools that want to read HOA files and (2) a
  22. command-line tool for performing basic automata operations.
  23. </p>
  24. <p>You can find the most current version of the library at
  25. <a href="http://automata.tools/hoa/cpphoafparser/">http://automata.tools/hoa/cpphoafparser/</a>,
  26. as well as links to example automata.
  27. </p>
  28. <p>If you are interested in a Java-based variant of this library,
  29. check out <a href="http://automata.tools/hoa/jhoafparser/">jhoafparser</a>.
  30. <span class="prog">cpphoafparser</span> and <span class="prog">jhoafparser</span>
  31. share the same design, but may differ in some of the features that are implemented.
  32. </p>
  33. <p><span class="prog">cpphoafparser</span> is free software and
  34. released under the terms of the GNU Lesser General Public License, version 2.1.</p>
  35. <h2>The Command-Line Tool</h2>
  36. <h3>The Command-Line Tool: First Steps</h3>
  37. <p>
  38. We assume here that you have downloaded the source code archive from the website and built the tool
  39. using</p>
  40. <pre class="command">
  41. make
  42. </pre>
  43. which allows you to invoke the tool via
  44. </p>
  45. <pre class="command">
  46. ./cpphoaf
  47. </pre>
  48. <p>Alternatively, you have downloaded a precompiled <span class="prog">cpphoaf</span> binary from the website.</p>
  49. <p>
  50. Here are some examples for the command-line <span class="prog">cpphoaf</span> tool:
  51. </p>
  52. <p><b>Parsing (validating) an automaton in HOA format</b></p>
  53. <pre class="command">
  54. ./cpphoaf parse automaton-file.hoa
  55. </pre>
  56. <p>
  57. Some of the semantic validations can be disabled by the command-line option
  58. <span class="cmdline">--no-validate</span>.
  59. </p>
  60. <p><b>Printing an automaton in HOA format</b> to standard output</p>
  61. <pre class="command">
  62. ./cpphoaf print automaton-file.hoa
  63. </pre>
  64. <p><b>Resolving aliases</b></p>
  65. <pre class="command">
  66. ./cpphoaf print --resolve-aliases automaton-file.hoa
  67. </pre>
  68. <h3>The Command-Line Tool: Further information</h3>
  69. <p>
  70. Further details on the command-line tool can be found <a href="cpphoaf-tool.html">here</a>.</p>
  71. <h2>The HOA Parser Library</h2>
  72. <p>The <span class="prog">cpphoafparser</span> library can also be used to parse HOA automata.
  73. For example, you might want to read such automata in a tool or
  74. you might want to implement your own automata transformations.
  75. </p>
  76. <p>
  77. As a first step, download the source code of the library from the
  78. <a href="http://automata.tools/hoa/cpphoafparser/">website</a>.
  79. Then, build a local copy of the API documentation with the <a href="http://www.doxygen.org">Doxygen</a> tool:
  80. </p>
  81. <pre class="command">
  82. doxygen Doxyfile
  83. </pre>
  84. <p>This produces the API documentation in the <span class="cmdline">docs/api-html</span> subdirectory.
  85. The alternative <span class="classname">Doxyfile.all</span> configuration file produces documentation for all
  86. the private/implementation details as well. If you do not have the <a href="http://www.graphviz.org/">dot</a> utility
  87. installed, set <span class="classname">HAVE_DOT = NO</span> in <span class="classname">Doxyfile</span>.
  88. </p>
  89. <p>
  90. The API documentation of the current version of the library is available as well on the website at
  91. <a href="http://automata.tools/hoa/cpphoafparser/docs/api-html/">http://automata.tools/hoa/cpphoafparser/docs/api-html/</a>.
  92. </p>
  93. <p>
  94. A good starting point is the API documentation of the <span class="classname">HOAConsumer</span>
  95. interface and the source code of <span class="classname">src/cpphoaf.cc</span>,
  96. where you can see how the parser is invoked.
  97. To parse automata using the cpphoafparser library,
  98. an application provides the parser with a class which implements the <span class="cmdline">HOAConsumer</span> interface.
  99. The parser then invokes the functions corresponding to the element in the HOA file format while parsing the automaton.
  100. </p>
  101. <h3>The Parser Library: Further information</h3>
  102. <p>More details and an overview over the cpphoafparser architecture can be found <a href="cpphoafparser-library.html">here</a>.
  103. <h2><a name="links">Additional links</a></h2>
  104. <ul>
  105. <li>The <a href="http://adl.github.io/hoaf/">specification</a> of the Hanoi Omega-Automata Format (HOAF).
  106. </li>
  107. <li>A <a href="http://adl.github.io/hoaf/support.html">page listing tools</a> that support HOAF.</li>
  108. <li>A <a href="https://github.com/adl/hoaf-tests">GitHub repository with HOA automata for testing</a>.</li>
  109. </ul>
  110. <hr>
  111. <p>If you have further questions, find bugs or want to tell
  112. us about your use of the cpphoafparser library, please feel free to contact us!</p>
  113. <p>(c) 2015-2016
  114. Joachim Klein &lt;klein&#064;tcs.inf.tu-dresden.de&gt;,
  115. David M&uuml;ller &lt;david.mueller&#064;tcs.inf.tu-dresden.de&gt;
  116. </body>
  117. </html>