The Rust parser and macro expander.
This API is completely unstable and subject to change.
Functions dealing with attributes and meta items
Allows the buffering of lints for later.
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
The SourceMap 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
SourceMap and are represented by SourceFiles. Byte positions are stored in
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,
A vector type optimized for cases where this size is usually 0 (c.f.