mirror of
https://github.com/rust-lang/rust.git
synced 2025-11-17 07:16:23 +00:00
There is some redundancy here, but the extra assertions make it easier to keep track of relative things, e.g. `ExprKind` is the biggest part of `Expr`.
The rustc_ast crate contains those things concerned purely with syntax
– that is, the AST ("abstract syntax tree"), along with some definitions for tokens and token streams, data structures/traits for mutating ASTs, and shared definitions for other AST-related parts of the compiler (like the lexer and macro-expansion).
For more information about how these things work in rustc, see the rustc dev guide: