Module syntex_syntax::tokenstream
[−]
[src]
Token Streams
TokenStreams represent syntactic objects before they are converted into ASTs.
A TokenStream
is, roughly speaking, a sequence (eg stream) of TokenTree
s,
which are themselves either a single Token, a Delimited subsequence of tokens,
or a SequenceRepetition specifier (for the purpose of sequence generation during macro
expansion).
Ownership
TokenStreams are persistant data structures construced as ropes with reference
counted-children. In general, this means that calling an operation on a TokenStream
(such as slice
) produces an entirely new TokenStream from the borrowed reference to
the original. This essentially coerces TokenStreams into 'views' of their subparts,
and a borrowed TokenStream is sufficient to build an owned TokenStream without taking
ownership of the original.
Structs
Cursor | |
Delimited |
A delimited sequence of token trees |
SequenceRepetition |
A sequence of token trees |
TokenStream |
Enums
KleeneOp |
A Kleene-style repetition operator for token sequences. |
TokenTree |
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. |