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/Cargo.toml b/dev/Cargo.toml
index 15b7c85..f4dc128 100644
--- a/dev/Cargo.toml
+++ b/dev/Cargo.toml
@@ -14,4 +14,9 @@
 name = "syn-dev"
 
 [dependencies]
-syn = { path = "..", features = ["full", "extra-traits"] }
+quote = "0.6"
+
+[dependencies.syn]
+path = ".."
+default-features = false
+features = ["parsing", "full", "extra-traits", "proc-macro"]
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() {}
+    })
 }