971d776aa5
This came up when working [on the gl-rs generator extension](990383de80/src/gl_generator/lib.rs (L135-L146)
).
The new definition of `TTDelim` adds an associated `Span` that covers the whole token tree and enforces the invariant that a delimited sequence of token trees must have an opening and closing delimiter.
A `get_span` method has also been added to `TokenTree` type to make it easier to implement better error messages for syntax extensions.
28 lines
928 B
Rust
28 lines
928 B
Rust
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
|
|
// file at the top-level directory of this distribution and at
|
|
// http://rust-lang.org/COPYRIGHT.
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
|
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
|
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
|
// option. This file may not be copied, modified, or distributed
|
|
// except according to those terms.
|
|
|
|
use ast;
|
|
use codemap;
|
|
use ext::base;
|
|
use print;
|
|
|
|
pub fn expand_syntax_ext<'cx>(cx: &'cx mut base::ExtCtxt,
|
|
sp: codemap::Span,
|
|
tts: &[ast::TokenTree])
|
|
-> Box<base::MacResult+'cx> {
|
|
|
|
cx.print_backtrace();
|
|
|
|
println!("{}", print::pprust::tts_to_string(tts));
|
|
|
|
// any so that `log_syntax` can be invoked as an expression and item.
|
|
base::DummyResult::any(sp)
|
|
}
|