chiark / gitweb /
W
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Fri, 10 May 2024 13:01:51 +0000 (14:01 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Fri, 10 May 2024 13:01:51 +0000 (14:01 +0100)
macros/macros.rs

index 8aa40328c23a8982d94a95dd79139da3c29358b3..b532ce78ae06898329dae9dfbe722965daf26e40 100644 (file)
@@ -9,20 +9,25 @@ pub fn dbg_dump(input: TokenStream) -> TokenStream {
 
 #[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