Syntax Tree library used throughout the rust analyzer.
Properties:
- easy and fast incremental re-parsing
- graceful handling of errors
- full-fidelity representation (any text can be precisely represented as a syntax tree)
For more information, see the RFC. Current implementation is inspired by the Swift one.
The most interesting modules here are syntax_node
(which defines concrete
syntax tree) and ast
(which defines abstract syntax tree on top of the
CST). The actual parser live in a separate parser
crate, though the
lexer lives in this crate.
See api_walkthrough
test in this file for a quick API tour!