The Rust parser and macro expander.
This API is completely unstable and subject to change.
The CodeMap tracks all the source code used within a single crate, mapping
from integer byte positions to the original source code location. Each bit
of source parsed during crate parsing (typically files, in-memory strings,
or various bits of macro expansion) cover a continuous range of bytes in the
CodeMap and are represented by FileMaps. Byte positions are stored in
A Folder represents an AST->AST fold; it accepts an AST piece, and returns a piece of the same type. So, for instance, macro expansion is a Folder that walks over an AST and produces another AST.
A JSON emitter for errors.
The main parser interface
The AST pointer
An "interner" is a data structure that associates values with usize tags and allows bidirectional lookup; i.e. given a value, one can easily find the type, and vice versa.
AST walker. Each overridden visit method has full control over what
happens with its node, it can do its own traversal of the node's children,