ModulesΒ§
- attr_
wrapper π - diagnostics π
- expr π
- generics π
- item π
- nonterminal π
- pat π
- path π
- stmt π
- ty π
StructsΒ§
- Capture
State π - Closure
Spans πStores span information about a closure. - Node
Range πA token range within an individual AST nodeβs (lazy) token stream, i.e. relative to that nodeβs first token. Distinct fromParserRangeso the two kinds of range canβt be mixed up. - Parser
Range πA token range within aParserβs full token stream. - Restrictions π
- SeqSep πA sequence separator.
- Token
Cursor πIterator over aTokenStreamthat producesTokens. Itβs a bit odd that we (a) lex tokens into a nice tree structure (TokenStream), and then (b) use this type to emit them as a linear sequence. But a linear sequence is what the parser expects, for the most part.
EnumsΒ§
- Block
Mode π - Capturing πControls how we capture tokens. Capturing can be expensive, so we try to avoid performing capturing in cases where we will never need an
AttrTokenStream. - Whether or not to recover a
a, bwhen parsing patterns as(a, b)or that anda | b. - Flat
Token πA helper struct used when building anAttrTokenStreamfrom aLazyAttrTokenStream. Both delimiter and non-delimited tokens are stored asFlatToken::Token. A vector ofFlatTokens is then βparsedβ to build up anAttrTokenStreamwith nestedAttrTokenTree::Delimitedtokens. - Whether or not we should force collection of tokens for an AST node, regardless of whether or not it has attributes
- Whether or not to recover a
:when parsing patterns that were meant to be paths. - Whether or not to recover a
,when parsing or-patterns. - Semi
Colon πMode - Token
Description π - Token
Type π - Trailing π
FunctionsΒ§
Type AliasesΒ§
- Node
Replacement πSee the comment onParserReplacement. - Parser
Replacement πIndicates a range of tokens that should be replaced by anAttrsTarget(replacement) or be replaced by nothing (deletion). This is used in two places during token collection.