Struct rustc_parse::lexer::tokentrees::TokenTreesReader
source · pub(super) struct TokenTreesReader<'a> {
string_reader: StringReader<'a>,
token: Token,
open_braces: Vec<(Delimiter, Span)>,
unmatched_braces: Vec<UnmatchedBrace>,
matching_delim_spans: Vec<(Delimiter, Span, Span)>,
last_unclosed_found_span: Option<Span>,
last_delim_empty_block_spans: FxHashMap<Delimiter, Span>,
matching_block_spans: Vec<(Span, Span)>,
}
Fields§
§string_reader: StringReader<'a>
§token: Token
The “next” token, which has been obtained from the StringReader
but
not yet handled by the TokenTreesReader
.
open_braces: Vec<(Delimiter, Span)>
Stack of open delimiters and their spans. Used for error message.
unmatched_braces: Vec<UnmatchedBrace>
§matching_delim_spans: Vec<(Delimiter, Span, Span)>
The type and spans for all braces
Used only for error recovery when arriving to EOF with mismatched braces.
last_unclosed_found_span: Option<Span>
§last_delim_empty_block_spans: FxHashMap<Delimiter, Span>
Collect empty block spans that might have been auto-inserted by editors.
matching_block_spans: Vec<(Span, Span)>
Collect the spans of braces (Open, Close). Used only for detecting if blocks are empty and only braces.
Implementations§
source§impl<'a> TokenTreesReader<'a>
impl<'a> TokenTreesReader<'a>
pub(super) fn parse_all_token_trees(
string_reader: StringReader<'a>
) -> (PResult<'a, TokenStream>, Vec<UnmatchedBrace>)
fn parse_token_trees(&mut self, is_delimited: bool) -> PResult<'a, TokenStream>
fn eof_err(&mut self) -> PErr<'a>
fn parse_token_tree_open_delim(&mut self, open_delim: Delimiter) -> TokenTree
fn close_delim_err(&mut self, delim: Delimiter) -> PErr<'a>
Auto Trait Implementations§
impl<'a> !RefUnwindSafe for TokenTreesReader<'a>
impl<'a> !Send for TokenTreesReader<'a>
impl<'a> !Sync for TokenTreesReader<'a>
impl<'a> Unpin for TokenTreesReader<'a>
impl<'a> !UnwindSafe for TokenTreesReader<'a>
Blanket Implementations§
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference’s “Type Layout” chapter for details on type layout guarantees.
Size: 240 bytes