diff options
| author | Nick Cameron <ncameron@mozilla.com> | 2016-08-29 16:16:43 +1200 |
|---|---|---|
| committer | Nick Cameron <ncameron@mozilla.com> | 2016-09-22 08:47:57 +1200 |
| commit | 6a2d2c949581c710eeb505000e56ffa1e5a860b5 (patch) | |
| tree | 053157b72ce58708786d8356c07aaafbef95e5c1 /src/libsyntax/tokenstream.rs | |
| parent | c772948b687488a087356cb91432425662e034b9 (diff) | |
| download | rust-6a2d2c949581c710eeb505000e56ffa1e5a860b5.tar.gz rust-6a2d2c949581c710eeb505000e56ffa1e5a860b5.zip | |
Adds a `ProcMacro` form of syntax extension
This commit adds syntax extension forms matching the types for procedural macros 2.0 (RFC #1566), these still require the usual syntax extension boiler plate, but this is a first step towards proper implementation and should be useful for macros 1.1 stuff too. Supports both attribute-like and function-like macros.
Diffstat (limited to 'src/libsyntax/tokenstream.rs')
| -rw-r--r-- | src/libsyntax/tokenstream.rs | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/libsyntax/tokenstream.rs b/src/libsyntax/tokenstream.rs index 7b1df6f0e97..b35b4617ea1 100644 --- a/src/libsyntax/tokenstream.rs +++ b/src/libsyntax/tokenstream.rs @@ -33,6 +33,7 @@ use parse::lexer::comments::{doc_comment_style, strip_doc_comment_decoration}; use parse::lexer; use parse; use parse::token::{self, Token, Lit, Nonterminal}; +use print::pprust; use std::fmt; use std::iter::*; @@ -781,6 +782,12 @@ impl TokenStream { } } +impl fmt::Display for TokenStream { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + f.write_str(&pprust::tts_to_string(&self.to_tts())) + } +} + // FIXME Reimplement this iterator to hold onto a slice iterator for a leaf, getting the // next leaf's iterator when the current one is exhausted. pub struct Iter<'a> { |
