Function syntax::ext::tt::macro_parser::inner_parse_loop [−][src]
fn inner_parse_loop<'a>(
sess: &ParseSess,
cur_items: &mut SmallVector<MatcherPosHandle<'a>>,
next_items: &mut Vec<MatcherPosHandle<'a>>,
eof_items: &mut SmallVector<MatcherPosHandle<'a>>,
bb_items: &mut SmallVector<MatcherPosHandle<'a>>,
token: &Token,
span: Span
) -> ParseResult<()>
🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Process the matcher positions of cur_items until it is empty. In the process, this will
produce more items in next_items, eof_items, and bb_items.
For more info about the how this happens, see the module-level doc comments and the inline comments of this function.
Parameters
sess: the parsing session into which errors are emitted.cur_items: the set of current items to be processed. This should be empty by the end of a successful execution of this function.next_items: the set of newly generated items. These are used to replenishcur_itemsin the functionparse.eof_items: the set of items that would be valid if this was the EOF.bb_items: the set of items that are waiting for the black-box parser.token: the current token of the parser.span: theSpanin the source code corresponding to the token trees we are trying to match against the matcher positions incur_items.
Returns
A ParseResult. Note that matches are kept track of through the items generated.