-*- html -*- Syntax Tools overview page @author Richard Carlsson @copyright 1997-2014 Richard Carlsson @version {@version} @title Erlang Syntax and Metaprogramming tools @doc This package contains modules for handling abstract syntax trees (ASTs) in Erlang, in a way that is compatible with the "abstract format" parse trees of the stdlib module `erl_parse', together with utilities for reading source files, {@link erl_prettypr. pretty-printing syntax trees}, {@link igor. merging and renaming modules}, {@link erl_tidy. cleaning up obsolete constructs}, and doing {@link merl. metaprogramming} in Erlang. The abstract layer (defined in {@link 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 {@link //stdlib/erl_parse} data structures, only requiring the `erl_syntax' module to be up-to-date. The pretty printer {@link erl_prettypr} is implemented on top of the library module {@link prettypr}: this is a powerful and flexible generic pretty printing library, which is also distributed separately. 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 {@link erl_tidy} module, as follows: ```erl_tidy:dir("any-erlang-source-dir", [test, old_guard_tests]).''' (the `test' option assures that no files are modified).