Enum syntax::tokenstream::TokenTree [−][src]
🔬 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?
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)🔬 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?
A single token
Delimited(Span, Delimited)🔬 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?
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
) -> NamedParseResult🔬 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?
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🔬 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?
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🔬 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?
pub fn span(&self) -> Span[src]
pub fn span(&self) -> Span🔬 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?
Retrieve the TokenTree's span.
pub fn set_span(&mut self, span: Span)[src]
pub fn set_span(&mut self, span: Span)🔬 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?
Modify the TokenTree's span inplace.
pub fn eq_token(&self, t: Token) -> bool[src]
pub fn eq_token(&self, t: Token) -> bool🔬 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?
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🔬 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?
Trait 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 TokenTreefn encode<__S: Encoder>(&self, s: &mut __S) -> Result<(), __S::Error>[src]
fn encode<__S: Encoder>(&self, s: &mut __S) -> Result<(), __S::Error>🔬 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?
impl Decodable for TokenTree[src]
impl Decodable for TokenTreefn decode<__D: Decoder>(d: &mut __D) -> Result<TokenTree, __D::Error>[src]
fn decode<__D: Decoder>(d: &mut __D) -> Result<TokenTree, __D::Error>🔬 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?
impl 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