rustc_parse

Module parser

Source

Modules§

Structs§

  • CaptureState πŸ”’
  • ClosureSpans πŸ”’
    Stores span information about a closure.
  • NodeRange πŸ”’
    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.
  • ParserRange πŸ”’
    A token range within a Parser’s full token stream.
  • Restrictions πŸ”’
  • SeqSep πŸ”’
    A sequence separator.
  • TokenCursor πŸ”’
    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.

Enums§

  • BlockMode πŸ”’
  • 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, b when parsing patterns as (a, b) or that and a | b.
  • FlatToken πŸ”’
    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
  • 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.
  • SemiColonMode πŸ”’
  • TokenDescription πŸ”’
  • TokenType πŸ”’
  • Trailing πŸ”’

Functions§

Type Aliases§

  • NodeReplacement πŸ”’
    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.