Module rustc_parse::parser
source · Modules
Structs
- A wrapper type to ensure that the parser handles outer attributes correctly. When we parse outer attributes, we need to ensure that we capture tokens for the attribute target. This allows us to perform cfg-expansion on a token stream before we invoke a derive proc-macro.
- Stores span information about a closure.
- 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
- Specifies how to parse a path.
- 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.
Functions
Type Aliases
- Indicates a range of tokens that should be replaced by the tokens in the provided vector. This is used in two places during token collection: