Generate JSON file of all syn types

The JSON file can be used by third party libs to build tools that
consume `syn` types.
diff --git a/codegen/src/main.rs b/codegen/src/main.rs
index fa577cb..1860211 100644
--- a/codegen/src/main.rs
+++ b/codegen/src/main.rs
@@ -20,12 +20,19 @@
 extern crate rustfmt_nightly as rustfmt;
 #[macro_use]
 extern crate syn;
+extern crate serde;
+#[macro_use]
+extern crate serde_derive;
+extern crate serde_json;
+extern crate toml;
 
 mod gen;
+mod json;
 mod parse;
 mod types;
 
 fn main() {
     let types = parse::parse();
     gen::generate(&types);
+    json::generate(&types);
 }