procmacro

master
Andrew Johnson 6 years ago
parent e80c05bb48
commit 55a1fa90b1

@ -7,6 +7,7 @@ flame = "0.2"
rand = "0.4.2"
requests = "0.0.30"
rusty-machine = "0.5.4"
procmacro = { path = "procmacro" }
[[bin]]
name = "performance_release_mode"
@ -91,3 +92,7 @@ path = "metaprogramming_grammar.rs"
[[bin]]
name = "metaprogramming_ebnf"
path = "metaprogramming_ebnf.rs"
[[bin]]
name = "metaprogramming_procmacro"
path = "metaprogramming_procmacro.rs"

@ -0,0 +1,7 @@
#![feature(proc_macro_non_items)]
#![feature(use_extern_macros)]
extern crate procmacro;
fn main() {
let _ = procmacro::f!();
}

@ -0,0 +1,2 @@
Cargo.lock
target

@ -0,0 +1,10 @@
[package]
name = "procmacro"
version = "1.0.0"
[dependencies]
syn = "0.12"
quote = "0.4"
[lib]
proc-macro = true

@ -0,0 +1,15 @@
#![feature(proc_macro)]
#![crate_type = "proc-macro"]
extern crate proc_macro;
extern crate syn;
#[macro_use] extern crate quote;
use proc_macro::TokenStream;
#[proc_macro]
pub fn f(input: TokenStream) -> TokenStream {
assert!(input.is_empty());
(quote! {
1 + 2
}).into()
}
Loading…
Cancel
Save