diff --git a/src/macros.rs b/src/macros.rs
index 46d2832526..795064febf 100644
--- a/src/macros.rs
+++ b/src/macros.rs
@@ -61,6 +61,9 @@ macro_rules! ast_enum_of_structs {
         $(#[$enum_attr])* $pub $enum $name $body
 
         ast_enum_of_structs_impl!($name $body);
+
+        #[cfg(feature = "printing")]
+        generate_to_tokens!(() tokens $name $body);
     };
 }
 
@@ -70,26 +73,13 @@ macro_rules! ast_enum_of_structs_impl {
             $(
                 $(#[cfg $cfg_attr:tt])*
                 $(#[doc $($doc_attr:tt)*])*
-                $variant:ident $( ($($member:ident)::+) )*,
+                $variant:ident $( ($member:ident) )*,
             )*
         }
     ) => {
         $($(
-            ast_enum_from_struct!($name::$variant, $($member)::+);
+            ast_enum_from_struct!($name::$variant, $member);
         )*)*
-
-        #[cfg(feature = "printing")]
-        generate_to_tokens! {
-            ()
-            tokens
-            $name {
-                $(
-                    $(#[cfg $cfg_attr])*
-                    $(#[doc $($doc_attr)*])*
-                    $variant $($($member)::+)*,
-                )*
-            }
-        }
     };
 }
 
@@ -126,7 +116,7 @@ macro_rules! generate_to_tokens {
         ($($arms:tt)*) $tokens:ident $name:ident {
             $(#[cfg $cfg_attr:tt])*
             $(#[doc $($doc_attr:tt)*])*
-            $variant:ident $member:ident,
+            $variant:ident($member:ident),
             $($next:tt)*
         }
     ) => {