Do not depend on quote when only parsing
diff --git a/codegen/src/main.rs b/codegen/src/main.rs
index 99b26f8..833a85e 100644
--- a/codegen/src/main.rs
+++ b/codegen/src/main.rs
@@ -127,17 +127,16 @@
 
                 // Try to parse the AstItem declaration out of the item.
                 let found = if path_eq(&item.mac.path, &"ast_struct".into()) {
-                    syn::parse_tokens::<parsing::AstStruct>(item.mac.tts.clone().into_tokens())
+                    syn::parse::<parsing::AstStruct>(item.mac.tts.clone().into())
                         .map_err(|_| err_msg("failed to parse ast_struct"))?
                         .0
                 } else if path_eq(&item.mac.path, &"ast_enum".into()) {
-                    syn::parse_tokens::<parsing::AstEnum>(item.mac.tts.clone().into_tokens())
+                    syn::parse::<parsing::AstEnum>(item.mac.tts.clone().into())
                         .map_err(|_| err_msg("failed to parse ast_enum"))?
                         .0
                 } else if path_eq(&item.mac.path, &"ast_enum_of_structs".into()) {
-                    syn::parse_tokens::<parsing::AstEnumOfStructs>(
-                        item.mac.tts.clone().into_tokens(),
-                    ).map_err(|_| err_msg("failed to parse ast_enum_of_structs"))?
+                    syn::parse::<parsing::AstEnumOfStructs>(item.mac.tts.clone().into())
+                        .map_err(|_| err_msg("failed to parse ast_enum_of_structs"))?
                         .0
                 } else {
                     continue;
@@ -178,6 +177,7 @@
 mod parsing {
     use super::AstItem;
 
+    use syn;
     use syn::synom::*;
     use syn::*;
     use quote::Tokens;
@@ -210,9 +210,9 @@
         option!(manual_extra_traits) >>
         rest: syn!(TokenStream) >>
         (AstItem {
-            ast: parse_tokens::<DeriveInput>(quote! {
+            ast: syn::parse(quote! {
                 pub struct #id #rest
-            })?,
+            }.into())?,
             features: features.0,
             eos_full: features.1,
         })
@@ -286,9 +286,9 @@
                             None => quote!(#name),
                         }
                     });
-                    parse_tokens::<DeriveInput>(quote! {
+                    syn::parse(quote! {
                         pub enum #id { #(#variants),* }
-                    })?
+                    }.into())?
                 };
                 let mut items = vec![AstItem {
                     ast: enum_item,