tinyap is a recursive descent parser with backup that outputs an abstract syntax tree (AST). Unlike in most parsers, the grammar is data. Tinyap uses an AST that represents a grammar to parse its input text. The factory default for the grammar is tinyap's grammar description language itself, so one can parse a grammar description and directly use the parse output to parse some other text written in the described language. Tinyap also features a plugin mechanism for grammars, which allows for dynamic modular grammars. Finally, it provides an interface to walk down the ASTs and to write external plugins to visit the nodes.
|Tags||Text Processing Software Development Compilers|
Release Notes: Tinyap now supports AST "unparsing" (or "reverse parsing"). This turns AST back to text, with some formatting support. It can be useful for data (un)serialization and prettyprinting source code.
Release Notes: Support was added for the repetition operators *, ?, and +. That is, tinyap now supports EBNF-style grammars. A sexier dialect named "short", which gets rid of angle brackets around non-terminals, was added.
Release Notes: This release fixes some things that were broken in version 1.2.
Release Notes: It is now possible to format a regex match with a replacement string, like in the sed "s///" command, before adding it to the AST.
No changes have been submitted for this release.