[racket] Announcement for ragg: a Racket AST Generator Generator

From: Danny Yoo (dyoo at hashcollision.org)
Date: Thu Jan 10 17:32:09 EST 2013

Thanks to everyone for their comments and suggestions.  I've released
the first version of Racket onto PLaneT2:

    https://plt-etc.byu.edu:9004/info/ragg

Documentation can be found here:

    http://hashcollision.org/ragg


ragg is a parsing framework for Racket with the design goal to be easy
to use. It includes the following features:

* It provides a #lang for writing extended BNF grammars. A module
written in #lang ragg automatically generates a parser. The output of
this parser tries to follow HTDP doctrine; the structure of the
grammar informs the structure of the Racket syntax objects it
generates.

* The language uses a few conventions to simplify the expression of
grammars. The first rule in the grammar is automatically assumed to be
the starting production. Identifiers in uppercase are assumed to
represent terminal tokens, and are otherwise the names of
nonterminals.

* Tokenizers can be developed completely independently of parsers.
ragg takes a liberal view on tokens: they can be strings, symbols, or
instances constructed with _token_. Furthermore, tokens can optionally
provide location: if tokens provide location, the generated syntax
objects will as well.

* The underlying parser should be able to handle ambiguous grammars.

* It should integrate with the rest of the Racket language toolchain.

Posted on the users mailing list.