#编译器插件 #编译器 #简单 #插件

夜间版 ecp

轻松构建编译器插件

2 个版本

使用旧的 Rust 2015

0.1.1 2016年11月26日
0.1.0 2016年11月26日

#28 in #简单


用于 arthas_plugin

MIT 许可证

11KB
245

ecp

轻松构建编译器插件。

文档

抱歉,您需要使用 cargo doc 命令来构建文档。

先决条件

ecp 需要最新的 夜间版 Rust。

为什么使用 "编译器插件" 而不是 "宏 1.1"?

我需要的不仅是 "自定义 derive",还需要更多 "编译器插件" 功能。目前 "宏 1.1" 也还不稳定。

使用方法

在 Cargo.toml 中添加依赖项

[dependencies]
ecp = "^0.1"

在你的 main.rslib.rs

#![feature(quote, plugin_registrar, rustc_private)]
extern crate syntax;
extern crate ecp;

示例

创建一个简单的宏,打印 "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 主要在 MIT 许可证的条款下分发。有关详细信息,请参阅 LICENSE

无运行时依赖