The Rust Abstract Syntax Tree (AST).
This API is completely unstable and subject to change.
pub use self::ast_traits::AstDeref;
pub use self::ast_traits::AstNodeWrapper;
pub use self::ast_traits::HasAttrs;
pub use self::ast_traits::HasNodeId;
pub use self::ast_traits::HasSpan;
pub use self::ast_traits::HasTokens;
pub use self::ast::*;
pub use self::format::*;
- The Rust abstract syntax tree module.
- A set of traits implemented for various AST nodes, typically those used in AST fragments during macro expansion. The traits are not implemented exhaustively, only when actually necessary.
- Functions dealing with attributes and meta items.
- Definitions shared by macros / syntax extensions and e.g.
MutVisitorrepresents an AST modification; it accepts an AST piece and mutates it in place. So, for instance, macro expansion is a
MutVisitorthat walks over an AST and modifies it.
- The AST pointer.
- Token Streams
- 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, call
visit::walk_*to apply the default traversal algorithm, or prevent deeper traversal by doing nothing.
- Requirements for a
StableHashingContextto be used in this crate. This is a hack to allow using the
HashStable_Genericderive macro instead of implementing everything in