#[proc_macro]
pub fn reconstruct_groups(input: TokenStream) -> TokenStream {
- let mut output = TokenStream::new();
- dbg!(&input);
- for tt in input {
- let tt = match tt {
- TokenTree::Group(g) => {
- let delim = g.delimiter();
- dbg!(&delim);
- let stream = reconstruct_groups(g.stream());
- TokenTree::Group(Group::new(delim, stream))
- },
- other => other,
- };
- output.extend([tt]);
+ fn recurse(input: TokenStream) -> TokenStream {
+ let mut output = TokenStream::new();
+ for tt in input {
+ let tt = match tt {
+ TokenTree::Group(g) => {
+ let delim = g.delimiter();
+ dbg!(&delim);
+ let stream = reconstruct_groups(g.stream());
+ TokenTree::Group(Group::new(delim, stream))
+ },
+ other => other,
+ };
+ output.extend([tt]);
+ }
+ output
}
+
+ dbg!(&input);
+ let output = recurse(input);
dbg!(&output);
dbg!(&output.to_string());
output