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 ```toml [dependencies] ecp = "^0.1" ``` In your `main.rs` or `lib.rs`: ```rust #![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 { MacEager::expr(quote_expr!(cx, println!("Hello world!"))) } ``` ## License ecp is primarily distributed under the terms of the MIT license. See [LICENSE](LICENSE) for details.