easily build compiler plugins.
Sorry, you need to build the document with cargo doc
.
ecp required latest Nightly Rust.
I need not only "custom derive", but also more "compiler plugin" features.
Currently "Macros 1.1" is also unstable.
"Macros 1.1" has been stabilize in Rust 1.15, so you should use it.
I will consider adding support for syn.
Add dependencies to Cargo.toml
[dependencies]
ecp = "^0.1"
In your main.rs
or lib.rs
:
#![feature(quote, plugin_registrar, rustc_private)]
extern crate syntax;
extern crate ecp;
Create a simple macro which prints "Hello world!":
#![feature(quote, plugin_registrar, rustc_private)]
extern crate syntax;
extern crate ecp;
use ecp::prelude::*;
#[plugin_registrar]
pub fn register(reg: &mut Registry) {
reg.register_macro("test", test);
}
pub fn test(cx: &mut ExtCtxt, _: Span, _: &[TokenTree]) -> Box<MacResult + 'static> {
MacEager::expr(quote_expr!(cx, println!("Hello world!")))
}
ecp is primarily distributed under the terms of the MIT license. See LICENSE for details.