19 lines
474 B
Rust

use crate::{generate::generate, transform::transform};
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()
}