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 29 30 31 32 33
#![recursion_limit = "128"] extern crate proc_macro; mod derive; mod node; mod owned; mod symbols; mod visit; use derive::DeriveGenerator; use proc_macro::TokenStream; #[proc_macro_derive(Visit, attributes(visit))] pub fn derive_visit(input: TokenStream) -> TokenStream { visit::VisitGenerator::derive(input) } #[proc_macro_derive(Node, attributes(node))] pub fn derive_node(input: TokenStream) -> TokenStream { node::NodeGenerator::derive(input) } #[proc_macro_derive(Owned)] pub fn derive_owned(input: TokenStream) -> TokenStream { owned::OwnedGenerator::derive(input) } #[proc_macro] pub fn symbols(input: TokenStream) -> TokenStream { symbols::parse(input.into()) }