osascript_macros/lib.rs
1extern crate proc_macro;
2use proc_macro::TokenStream;
3use quote::quote;
4
5#[proc_macro]
6pub fn __applescript(input: TokenStream) -> TokenStream {
7 let input = input.to_string().replace("\n", " ");
8 let string_literals = input.split(';')
9 .map(|s| s.trim())
10 .filter(|s| !s.is_empty())
11 .map(|s| format!("{}", s));
12 let output = quote! {
13 run_applescript(&[#(#string_literals),*])
14 };
15
16 TokenStream::from(output)
17}