Modules§
Structs§
- Stores span information about a closure.
- A token range within an individual AST node’s (lazy) token stream, i.e. relative to that node’s first token. Distinct from
ParserRange
so the two kinds of range can’t be mixed up. - A token range within a
Parser
’s full token stream. - SeqSep 🔒A sequence separator.
- Iterator over a
TokenStream
that producesToken
s. 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§
- 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, b
when parsing patterns as(a, b)
or that anda | b
. - A helper struct used when building an
AttrTokenStream
from aLazyAttrTokenStream
. Both delimiter and non-delimited tokens are stored asFlatToken::Token
. A vector ofFlatToken
s is then ‘parsed’ to build up anAttrTokenStream
with nestedAttrTokenTree::Delimited
tokens. - 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. - Trailing 🔒
Functions§
Type Aliases§
- See the comment on
ParserReplacement
. - Indicates a range of tokens that should be replaced by an
AttrsTarget
(replacement) or be replaced by nothing (deletion). This is used in two places during token collection.