Enum syntax::tokenstream::TokenTree [−][src]
When the main rust parser encounters a syntax-extension invocation, it parses the arguments to the invocation as a token-tree. This is a very loose structure, such that all sorts of different AST-fragments can be passed to syntax extensions using a uniform type.
If the syntax extension is an MBE macro, it will attempt to match its
LHS token tree against the provided token tree, and if it finds a
match, will transcribe the RHS token tree, splicing in any captured
macro_parser::matched_nonterminals into the SubstNts it finds.
The RHS of an MBE macro is the only place SubstNts are substituted.
Nothing special happens to misnamed or misplaced SubstNts.
Variants
Token(Span, Token)A single token
Delimited(Span, Delimited)A delimited sequence of token trees
Methods
impl TokenTree[src]
impl TokenTreepub fn parse(
cx: &ExtCtxt,
mtch: &[TokenTree],
tts: TokenStream
) -> NamedParseResult[src]
pub fn parse(
cx: &ExtCtxt,
mtch: &[TokenTree],
tts: TokenStream
) -> NamedParseResultUse this token tree as a matcher to parse given tts.
pub fn eq_unspanned(&self, other: &TokenTree) -> bool[src]
pub fn eq_unspanned(&self, other: &TokenTree) -> boolCheck if this TokenTree is equal to the other, regardless of span information.
pub fn probably_equal_for_proc_macro(&self, other: &TokenTree) -> bool[src]
pub fn probably_equal_for_proc_macro(&self, other: &TokenTree) -> boolpub fn span(&self) -> Span[src]
pub fn span(&self) -> SpanRetrieve the TokenTree's span.
pub fn set_span(&mut self, span: Span)[src]
pub fn set_span(&mut self, span: Span)Modify the TokenTree's span inplace.
pub fn eq_token(&self, t: Token) -> bool[src]
pub fn eq_token(&self, t: Token) -> boolIndicates if the stream is a token that is equal to the provided token.
pub fn joint(self) -> TokenStream[src]
pub fn joint(self) -> TokenStreamTrait Implementations
impl Debug for TokenTree[src]
impl Debug for TokenTreefn fmt(&self, f: &mut Formatter) -> Result[src]
fn fmt(&self, f: &mut Formatter) -> ResultFormats the value using the given formatter. Read more
impl Clone for TokenTree[src]
impl Clone for TokenTreefn clone(&self) -> TokenTree[src]
fn clone(&self) -> TokenTreeReturns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)1.0.0[src]
fn clone_from(&mut self, source: &Self)Performs copy-assignment from source. Read more
impl PartialEq for TokenTree[src]
impl PartialEq for TokenTreefn eq(&self, other: &TokenTree) -> bool[src]
fn eq(&self, other: &TokenTree) -> boolThis method tests for self and other values to be equal, and is used by ==. Read more
fn ne(&self, other: &TokenTree) -> bool[src]
fn ne(&self, other: &TokenTree) -> boolThis method tests for !=.
impl Encodable for TokenTree[src]
impl Encodable for TokenTreeimpl Decodable for TokenTree[src]
impl Decodable for TokenTreeimpl From<TokenTree> for TokenStream[src]
impl From<TokenTree> for TokenStreamfn from(tt: TokenTree) -> TokenStream[src]
fn from(tt: TokenTree) -> TokenStreamPerforms the conversion.
impl ToTokens for TokenTree[src]
impl ToTokens for TokenTree