Enum syntax::ast::TokenTree [] [src]

pub enum TokenTree {
    Token(SpanToken),
    Delimited(SpanRc<Delimited>),
    Sequence(SpanRc<SequenceRepetition>),
}
Unstable (rustc_private)

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(SpanToken)
Unstable (rustc_private)

A single token

Delimited(SpanRc<Delimited>)
Unstable (rustc_private)

A delimited sequence of token trees

Sequence(SpanRc<SequenceRepetition>)
Unstable (rustc_private)

A kleene-style repetition sequence with a span

Methods

impl TokenTree
[src]

fn len(&self) -> usize

fn get_tt(&self, index: usize) -> TokenTree

fn get_span(&self) -> Span

Unstable (rustc_private)

Returns the Span corresponding to this token tree.

fn parse(cx: &ExtCtxt, mtch: &[TokenTree], tts: &[TokenTree]) -> NamedParseResult

Unstable (rustc_private)

Use this token tree as a matcher to parse given tts.

Trait Implementations

impl ToTokens for TokenTree
[src]

fn to_tokens(&self, _cx: &ExtCtxt) -> Vec<TokenTree>

Derived Implementations

impl Debug for TokenTree
[src]

fn fmt(&self, __arg_0: &mut Formatter) -> Result

Formats the value using the given formatter.

impl Hash for TokenTree
[src]

fn hash<__H: Hasher>(&self, __arg_0: &mut __H)

Feeds this value into the state given, updating the hasher as necessary.

fn hash_slice<H>(data: &[Self], state: &mut H) where H: Hasher
1.3.0

Feeds a slice of this type into the state provided.

impl Decodable for TokenTree
[src]

fn decode<__D: Decoder>(__arg_0: &mut __D) -> Result<TokenTree, __D::Error>

impl Encodable for TokenTree
[src]

fn encode<__S: Encoder>(&self, __arg_0: &mut __S) -> Result<(), __S::Error>

impl Eq for TokenTree
[src]

impl PartialEq for TokenTree
[src]

fn eq(&self, __arg_0: &TokenTree) -> bool

This method tests for self and other values to be equal, and is used by ==. Read more

fn ne(&self, __arg_0: &TokenTree) -> bool

This method tests for !=.

impl Clone for TokenTree
[src]

fn clone(&self) -> TokenTree

Returns a copy of the value. Read more

fn clone_from(&mut self, source: &Self)
1.0.0

Performs copy-assignment from source. Read more