aParse is free to download and use without any obligations or limitations.
| aparse-2.1.jar | Issued | September 11, 2011. |
| Changes | Using the new language argument, aParse can be instructed to produce Java or C++ parsers. See User Manual (Java) and User Manual (C++). | |
| When a parser generates an "extra data found" ParserException, it may be chained to a "possible cause" ParserException that will indicate why the extra data was rejected. | ||
| Fixes | The number of characters consumed by a rule, shown in the trace output, is not correct. | |
| The XmlDisplayer adds unnecessary linefeeds when outputting terminal elements. | ||
| aparse-2.0.jar | Issued | March 26, 2011. |
| Changes | Via the new $rule directive, aParse now supports the use of user code to encapsulate and parse protocol elements that may not be directly support by the ABNF metalanguage. See External Rules (Java) and External Rules (C++). | |
| The visitor pattern has been better implemented with the replacement of certain visit() methods with the accept() method. | ||
| aparse-1.1.jar | Issued | December 11, 2010. |
| Changes | One grammar file can now be read into another using the new $include directive. The directories searched for include files can be specified via the new optional aParse -includeDirs argument. | |
| The new com.parse2.aparse.AntTask class allows aParse to be invoked from Apache Ant. | ||
| Fixes | The parsing of %d values can cause java.util.regex.Pattern "illegal hexadecimal escape sequence" runtime errors. | |
| aparse-1.0.jar | Issued | October 14, 2010. |
| Changes | The directory into which the generated files are placed can be defined via the new optional aParse -destdir argument. | |
| New getReason(), getSubstring(), getSubstringIndex() and getRuleStack() accessor methods have been added to the PaserException class. | ||
| aparse-0.5.jar | Issued | December 9, 2007. |
| Changes | It is now possible to instruct a generated Parser to attempt to parse the input in accordance with any rule from the grammar. | |
| The Rule class replaces Parser.AST and implements toString(), equals(), compareTo() and hashCode(). | ||
| The Java package for the generated classes can be defined via the new optional aParse -package argument. | ||
| Java 1.4, rather than 5.0, compatible classes can be generated, that do not include generics, using the new optional aParse -java argument. | ||
| Fixes | The Rule and Visitor classes should have public access. | |
| Inconsistent use of case in a rule's name causes "no such symbol" compilation errors in the generated Parser. | ||
| aparse-0.4.jar | Issued | August 9, 2007. |
| Changes | prose-val is no longer supported and the grammar parser will raise an error if encountered. | |
| Fixes | Grammar file end-of-line markers are not being interpreted properly on DOS/Windows systems. | |
| Backslashes \ in instances of char-val are being treated as the start of an escape sequence. | ||
| aparse-0.3.jar | Issued | July 31, 2007. |
| Fixes | An infinite loop occurs if the last rule isn't terminated properly with a semi-colon. | |
| Parsing is not resynchronised properly following a partial match of an alternative within a group. | ||
| aparse-0.2.jar | Issued | July 1, 2007. |
| Changes | Two automatically generated display classes are now produced: Displayer only outputs the terminal values of the parsed tree thus simply reproducing the parsed input; XmlDisplayer displays the contents of the parsed tree in XML. | |
| Concatened lists of terminal numeric values (e.g. %d97.98.99) have been implemented. | ||
| Fixes | Rulenames with hyphens result in illegally named Java classes. | |
| Rules with nested groups are not always parsed successfully. | ||
| aparse-0.1.jar | Issued | May 27, 2007. |
| Initial version. |