Erlang Syntax Tools

This package contains modules for handling abstract Erlang syntax trees, in a way that is compatible with the "parse trees" of the standard library module erl_parse, together with utilities for reading source files in unusual ways and pretty-printing syntax trees.

Also included is an amazing automatic code-cleaner/checker.

Modules

The abstract layer (defined in erl_syntax) is nicely structured, and the node types are context-independent. The layer makes it possible to transparently attach source-code comments and user annotations to nodes of the tree. Using the abstract layer makes applications less sensitive to changes in the erl_parse data structures, only requiring the erl_syntax module to be up-to-date.

The pretty printer (erl_prettypr) is implemented on top of the library module prettypr: this is a powerful and flexible generic pretty printing library, which is also distributed separately, and is not documented here.

For a short demonstration of parsing and pretty-printing, simply compile the included module "demo.erl", and execute demo:run() from the Erlang shell. It will compile the remaining modules and give you further instructions.

Also try the erl_tidy module, as follows:

    erl_tidy:dir("any-erlang-source-dir", [test, old_guard_tests]).
(test assures that no files are modified).

See the README file for changes since previous versions.