Use dump-syntax as an example for syn::File
diff --git a/src/file.rs b/src/file.rs
index 357cf6e..17ea8ff 100644
--- a/src/file.rs
+++ b/src/file.rs
@@ -12,6 +12,71 @@
/// A complete file of Rust source code.
///
/// *This type is available if Syn is built with the `"full"` feature.*
+ ///
+ /// # Example
+ ///
+ /// Parse a Rust source file into a `syn::File` and print out a debug
+ /// representation of the syntax tree.
+ ///
+ /// ```
+ /// extern crate syn;
+ ///
+ /// use std::env;
+ /// use std::fs::File;
+ /// use std::io::Read;
+ /// use std::process;
+ ///
+ /// fn main() {
+ /// # }
+ /// #
+ /// # fn fake_main() {
+ /// let mut args = env::args();
+ /// let _ = args.next(); // executable name
+ ///
+ /// let filename = match (args.next(), args.next()) {
+ /// (Some(filename), None) => filename,
+ /// _ => {
+ /// eprintln!("Usage: dump-syntax path/to/filename.rs");
+ /// process::exit(1);
+ /// }
+ /// };
+ ///
+ /// let mut file = File::open(&filename).expect("Unable to open file");
+ ///
+ /// let mut src = String::new();
+ /// file.read_to_string(&mut src).expect("Unable to read file");
+ ///
+ /// let syntax = syn::parse_file(&src).expect("Unable to parse file");
+ /// println!("{:#?}", syntax);
+ /// }
+ /// ```
+ ///
+ /// Running with its own source code as input, this program prints output
+ /// that begins with:
+ ///
+ /// ```text
+ /// File {
+ /// shebang: None,
+ /// attrs: [],
+ /// items: [
+ /// ExternCrate(
+ /// ItemExternCrate {
+ /// attrs: [],
+ /// vis: Inherited,
+ /// extern_token: Extern,
+ /// crate_token: Crate,
+ /// ident: Ident {
+ /// term: Term(
+ /// "syn"
+ /// ),
+ /// span: Span
+ /// },
+ /// rename: None,
+ /// semi_token: Semi
+ /// }
+ /// ),
+ /// ...
+ /// ```
pub struct File {
pub shebang: Option<String>,
pub attrs: Vec<Attribute>,