Emit main in dev crate whether or not there is error

Hides an unnecessary extra error:

    error[E0601]: `main` function not found in crate `syn_dev`
      |
      = note: consider adding a `main` function to `dev/main.rs`
diff --git a/dev/parse.rs b/dev/parse.rs
index 2934066..2a92550 100644
--- a/dev/parse.rs
+++ b/dev/parse.rs
@@ -1,11 +1,18 @@
 extern crate proc_macro;
 
 use proc_macro::TokenStream;
-use syn::{parse_macro_input, File};
+use quote::quote;
+use syn::File;
 
 #[proc_macro]
 pub fn r#mod(input: TokenStream) -> TokenStream {
-    let file = parse_macro_input!(input as File);
-    println!("{:#?}", file);
-    "fn main() {}".parse().unwrap()
+    let compile_error = syn::parse::<File>(input)
+        .map(|file| println!("{:#?}", file))
+        .map_err(|err| err.to_compile_error())
+        .err();
+
+    TokenStream::from(quote! {
+        #compile_error
+        fn main() {}
+    })
 }