[−][src]Crate ra_ap_syntax
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!
Re-exports
| pub use crate::algo::InsertPosition; | 
| pub use crate::ast::AstNode; | 
| pub use crate::ast::AstToken; | 
Modules
| algo | FIXME: write short doc here | 
| ast | Abstract Syntax Tree, layered on top of untyped  | 
Macros
| T | |
| match_ast | Matches a  | 
Structs
| AstPtr | Like  | 
| GreenNode | Internal node in the immutable tree. It has other nodes and tokens as children. | 
| Parse | 
 | 
| SmolStr | A  | 
| SourceFile | |
| SyntaxError | Represents the result of unsuccessful tokenization, parsing or tree validation. | 
| SyntaxNodePtr | A pointer to a syntax node inside a file. It can be used to remember a specific node across reparses of the same file. | 
| SyntaxText | |
| SyntaxTreeBuilder | |
| TextRange | A range in text, represented as a pair of  | 
| TextSize | A measure of text length. Also, equivalently, an index into text. | 
| Token | A token of Rust source. | 
Enums
| Direction | |
| NodeOrToken | |
| SyntaxKind | The kind of syntax node, e.g.  | 
| TokenAtOffset | There might be zero, one or two leaves at a given offset. | 
| WalkEvent | 
 | 
Functions
| lex_single_syntax_kind | Returns  | 
| lex_single_valid_syntax_kind | The same as  | 
| tokenize | Break a string up into its component tokens. Beware that it checks for shebang first and its length contributes to resulting tokens offsets. | 
Type Definitions
| SyntaxElement | |
| SyntaxElementChildren | |
| SyntaxNode | |
| SyntaxNodeChildren | |
| SyntaxToken |