Enum syntax::ast::TokenTree
[−]
[src]
pub enum TokenTree {
Token(Span, Token),
Delimited(Span, Rc<Delimited>),
Sequence(Span, Rc<SequenceRepetition>),
}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(Span, Token)rustc_private)A single token
Delimited(Span, Rc<Delimited>)rustc_private)A delimited sequence of token trees
Sequence(Span, Rc<SequenceRepetition>)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
rustc_private)Returns the Span corresponding to this token tree.
fn parse(cx: &ExtCtxt, mtch: &[TokenTree], tts: &[TokenTree]) -> NamedParseResult
rustc_private)Use this token tree as a matcher to parse given tts.
Trait Implementations
impl ToTokens for TokenTree[src]
Derived Implementations
impl Debug for TokenTree[src]
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: Hasher1.3.0
Feeds a slice of this type into the state provided.
impl Decodable for TokenTree[src]
impl Encodable for TokenTree[src]
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