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}