-
+use proc_macro2::TokenStream as TokenStream2;
#[proc_macro]
-pub fn foo(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
- input
+pub fn reparse(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
+ let input: TokenStream2 = input.into();
+ let reparsed: TokenStream2 = syn::parse2(input).unwrap_or_else(|e| {
+ e.into_compile_error()
+ });
+ reparsed.into()
}
+use foo_macros::reparse;
+
fn main() {
- let s = stringify!(foo!("y"));
+ let s = reparse!(r#" "hi" "#);
println!("{s}");
}