#![feature(proc_macro)] #![recursion_limit = "1000"] // if_chain #![doc(html_root_url = "https://docs.rs/maud_macros/0.16.3")] #[macro_use] extern crate if_chain; extern crate literalext; extern crate proc_macro; // TODO move lints into their own `maud_lints` crate // mod lints; mod parse; mod render; use proc_macro::TokenStream; type ParseResult<T> = Result<T, String>; #[proc_macro] pub fn html(args: TokenStream) -> TokenStream { match parse::parse(args) { Ok(expr) => expr, Err(e) => panic!(e), } } #[proc_macro] pub fn html_debug(args: TokenStream) -> TokenStream { match parse::parse(args) { Ok(expr) => { println!("expansion:\n{}", expr); expr }, Err(e) => panic!(e), } } /* #[plugin_registrar] pub fn plugin_registrar(reg: &mut Registry) { reg.register_macro("html", expand_html); reg.register_macro("html_debug", expand_html_debug); lints::register_lints(reg); } */