1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
#[cfg(not(test))] #[proc_macro] pub fn args(ts: proc_macro::TokenStream) -> proc_macro::TokenStream { let cmd = parse::parse(ts).unwrap(); let text = emit::emit(&cmd); text.parse().unwrap() } #[cfg(not(test))] #[proc_macro] pub fn args_parser(ts: proc_macro::TokenStream) -> proc_macro::TokenStream { let cmd = parse::parse(ts).unwrap(); let text = emit::emit_parser(&cmd); text.parse().unwrap() } mod ast; mod emit; mod parse; #[cfg(test)] pub fn compile(src: &str) -> String { use proc_macro2::TokenStream; let ts = src.parse::<TokenStream>().unwrap(); let cmd = parse::parse(ts).unwrap(); emit::emit(&cmd) }