Projects / tinyap


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.

Operating Systems

Recent releases

  •  11 May 2008 15:06

    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.

    •  25 Feb 2008 16:07

      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.

      •  03 Feb 2008 02:41

        Release Notes: This release fixes some things that were broken in version 1.2.

        •  03 Feb 2008 02:40

          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.

          •  23 Jan 2008 14:32

            No changes have been submitted for this release.


            Project Spotlight


            A Fluent OpenStack client API for Java.


            Project Spotlight

            TurnKey TWiki Appliance

            A TWiki appliance that is easy to use and lightweight.