[−][src]Function syntax::ext::tt::macro_parser::inner_parse_loop
fn inner_parse_loop<'a>(
sess: &ParseSess,
cur_items: &mut OneVector<MatcherPosHandle<'a>>,
next_items: &mut Vec<MatcherPosHandle<'a>>,
eof_items: &mut OneVector<MatcherPosHandle<'a>>,
bb_items: &mut OneVector<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_items
in 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
: theSpan
in 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.