shelle_macros/
lib.rs

1use proc_macro_error2::proc_macro_error;
2use quote::quote;
3
4mod lexer;
5mod parser;
6
7#[proc_macro]
8#[proc_macro_error]
9pub fn exec(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
10    let script = lexer::Lexer::new(input.into()).scan().parse();
11    quote!(#script.exec()).into()
12}
13
14#[proc_macro]
15#[proc_macro_error]
16pub fn eval(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
17    let script = lexer::Lexer::new(input.into()).scan().parse();
18    quote!(#script.eval()).into()
19}