
On 2005-06-30, Malcolm Wallace
The ideal front-end for a syntax-directed tool like Hat consists solely of a lexer/parser to an abstract syntax tree, with no desugaring whatsoever, and no typechecking. This is essentially what we have
This sounds suspiciously like camlp4 in the ocaml world: http://pauillac.inria.fr/caml/camlp4/ camlp4 is, for an ocaml tool, a very nice program. I wish extending Haskell syntax could be as easy as extending OCaml syntax is. camlp4 has a separate frontend/backend system. Standard frontends include a full standard OCaml parser and a "new syntax" OCaml parser. The OCaml distribution also includes a Scheme frontend. Backends include a binary AST representation and pretty-printed OCaml syntax. camlp4 can be integrated into the compilation (ocamlc) phase, and is very slick in many ways. Learning curve is not one of them. -- John