print-expansion for all your expansion printing needs

This commit is contained in:
Chris Wong 2015-04-11 10:19:28 +12:00
parent d7d5679e6e
commit e5711929e3
3 changed files with 10 additions and 2 deletions

View file

@ -1,3 +1,3 @@
language: rust
script:
- ( cd maud_macros && cargo test --verbose )
- ( cd maud_macros && cargo test --features print-expansion --verbose )

View file

@ -12,6 +12,9 @@ description = """
Compile-time HTML templates.
"""
[features]
print-expansion = []
[dependencies.maud]
path = "../maud"
version = "=0.3.4"

View file

@ -10,13 +10,18 @@ extern crate maud;
use syntax::ast::TokenTree;
use syntax::codemap::Span;
use syntax::ext::base::{ExtCtxt, MacEager, MacResult};
use syntax::print::pprust;
use rustc::plugin::Registry;
mod parse;
mod render;
fn expand_html<'cx>(cx: &'cx mut ExtCtxt, sp: Span, args: &[TokenTree]) -> Box<MacResult + 'cx> {
MacEager::expr(parse::parse(cx, args, sp))
let expr = parse::parse(cx, args, sp);
if cfg!(feature = "print-expansion") {
println!("{}", pprust::expr_to_string(&expr));
}
MacEager::expr(expr)
}
#[plugin_registrar]