2 releases
Uses old Rust 2015
0.1.1 | Nov 26, 2016 |
---|---|
0.1.0 | Nov 26, 2016 |
#28 in #easy
Used in arthas_plugin
11KB
245 lines
ecp
easily build compiler plugins.
Document
Sorry, you need to build the document with cargo doc
.
Prerequisites
ecp required latest Nightly Rust.
Why use "compiler plugin" instead of "Macros 1.1"?
I need not only "custom derive", but also more "compiler plugin" features. Currently "Macros 1.1" is also unstable.
Usage
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;
Examples
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!")))
}
License
ecp is primarily distributed under the terms of the MIT license. See LICENSE for details.