ecp 0.1.1

easily build compiler plugins.

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<MacResult + 'static> {
    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.