Enum syntax::ast::TokenTreeExperimental
[-]
[+]
[src]
pub enum TokenTree {
TtToken(Span, Token),
TtDelimited(Span, Rc<Delimited>),
TtSequence(Span, Rc<SequenceRepetition>),
}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.
For macro invocations; parsing is delegated to the macro
Variants
TtToken | A single token |
TtDelimited | A delimited sequence of token trees |
TtSequence | A kleene-style repetition sequence with a span |
Methods
impl TokenTree
fn len(&self) -> uint
fn get_tt(&self, index: uint) -> TokenTree
fn get_span(&self) -> Span
Returns the Span corresponding to this token tree.