Parser for Rust source code is a major Rust crate for parsing Rust source code (token streams) into a syntax tree (AST) that procedural macros can inspect or transform. The primary target is macro authors: you can parse TokenStreams into syn::File, syn::Item, syn::Expr, syn::Type, etc. It offers rich data structures, fine-grained parsing, span tracking (for error reporting), traversal and mutation APIs (visit, fold, visit_mut), printing back to tokens, and strong feature-gating so you only compile what you need. The documentation emphasises that while the crate is geared for procedural macros (and custom derives), some of the APIs may be of more general use. Using syn you can effectively write code that analyzes or generates Rust code at compile time.
Features
- Full syntax tree representation of Rust source (syn::File, syn::Item, etc)
- Parsing support from token streams via syn::parse*, Parse trait, etc
- Span-information tracking for tokens (line/column) to support diagnostics
- Tree traversal/mutation via visit, visit_mut, fold traits
- Printing/output support to convert AST back to TokenStreams for macros
- Modular feature flags (derive, full, parsing, printing, extra-traits) to minimize compile-time cost
Project Samples
License
Apache License V2.0Follow Parser for Rust source code
Smarter, more effective advertising