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 JSON emitter for errors.
A MutVisitor represents an AST modification; it accepts an AST piece and and mutates it in place. So, for instance, macro expansion is a MutVisitor that walks over an AST and modifies it.
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 (cf.