use crate::{ generate::{generate, generate_chunk}, transform::{transform, transform_chunk}, }; use proc_macro::TokenStream as TokenStream1; use quote::ToTokens; use syn::parse_macro_input; mod generate; mod transform; mod utils; #[proc_macro] pub fn luaify(input: TokenStream1) -> TokenStream1 { let mut expr = parse_macro_input!(input); match transform(&mut expr).and_then(|()| generate(&expr)) { Ok(s) => s, Err(err) => err.into_compile_error().into_token_stream(), } .into() } #[proc_macro] pub fn luaify_chunk(input: TokenStream1) -> TokenStream1 { let mut block = parse_macro_input!(input); match transform_chunk(&mut block).and_then(|()| generate_chunk(&block)) { Ok(s) => s, Err(err) => err.into_compile_error().into_token_stream(), } .into() }