Module rustc_parse::parser

source ·


expr 🔒
generics 🔒
item 🔒
pat 🔒
path 🔒
stmt 🔒
ty 🔒


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 produces Tokens. 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.


BlockMode 🔒
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 and a | b.
A helper struct used when building an AttrTokenStream from a LazyAttrTokenStream. Both delimiter and non-delimited tokens are stored as FlatToken::Token. A vector of FlatTokens is then ‘parsed’ to build up an AttrTokenStream with nested AttrTokenTree::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.
TokenType 🔒




__BitFlags 🔒
__BitFlags 🔒


Type Definitions

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: