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 SubstNt
s it finds.
The RHS of an MBE macro is the only place SubstNt
s are substituted.
Nothing special happens to misnamed or misplaced SubstNt
s.
Variants
Token(Span, Token)
A single token
Delimited(Span, Delimited)
A delimited sequence of token trees
Methods
impl TokenTree
[src]
impl TokenTree
pub fn parse(
cx: &ExtCtxt,
mtch: &[TokenTree],
tts: TokenStream
) -> NamedParseResult
[src]
pub fn parse(
cx: &ExtCtxt,
mtch: &[TokenTree],
tts: TokenStream
) -> NamedParseResult
Use 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) -> bool
Check 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) -> bool
pub fn span(&self) -> Span
[src]
pub fn span(&self) -> Span
Retrieve 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) -> bool
Indicates if the stream is a token that is equal to the provided token.
pub fn joint(self) -> TokenStream
[src]
pub fn joint(self) -> TokenStream
Trait Implementations
impl Debug for TokenTree
[src]
impl Debug for TokenTree
fn fmt(&self, f: &mut Formatter) -> Result
[src]
fn fmt(&self, f: &mut Formatter) -> Result
Formats the value using the given formatter. Read more
impl Clone for TokenTree
[src]
impl Clone for TokenTree
fn clone(&self) -> TokenTree
[src]
fn clone(&self) -> TokenTree
Returns 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 TokenTree
fn eq(&self, other: &TokenTree) -> bool
[src]
fn eq(&self, other: &TokenTree) -> bool
This 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) -> bool
This method tests for !=
.
impl Encodable for TokenTree
[src]
impl Encodable for TokenTree
impl Decodable for TokenTree
[src]
impl Decodable for TokenTree
impl From<TokenTree> for TokenStream
[src]
impl From<TokenTree> for TokenStream
fn from(tt: TokenTree) -> TokenStream
[src]
fn from(tt: TokenTree) -> TokenStream
Performs the conversion.
impl ToTokens for TokenTree
[src]
impl ToTokens for TokenTree