Make doc examples compatible with stable
diff --git a/src/parse.rs b/src/parse.rs
index a106de5..c36d8b1 100644
--- a/src/parse.rs
+++ b/src/parse.rs
@@ -34,11 +34,13 @@
 //! [`parse_macro_input!`]: ../macro.parse_macro_input.html
 //!
 //! ```
-//! # extern crate proc_macro;
-//! # extern crate syn;
-//! #
+//! #[macro_use]
+//! extern crate syn;
+//!
+//! extern crate proc_macro;
+//!
 //! use proc_macro::TokenStream;
-//! use syn::{braced, parse_macro_input, token, Field, Ident, Token};
+//! use syn::{token, Field, Ident};
 //! use syn::parse::{Parse, ParseStream, Result};
 //! use syn::punctuated::Punctuated;
 //!
@@ -156,14 +158,15 @@
 //! [`Parser`]: trait.Parser.html
 //!
 //! ```
-//! # extern crate syn;
-//! #
-//! # extern crate proc_macro2;
-//! # use proc_macro2::TokenStream;
-//! #
+//! #[macro_use]
+//! extern crate syn;
+//!
+//! extern crate proc_macro2;
+//!
+//! use proc_macro2::TokenStream;
 //! use syn::parse::Parser;
 //! use syn::punctuated::Punctuated;
-//! use syn::{Attribute, Expr, PathSegment, Token};
+//! use syn::{Attribute, Expr, PathSegment};
 //!
 //! # fn run_parsers() -> Result<(), syn::parse::Error> {
 //! #     let tokens = TokenStream::new().into();
@@ -396,9 +399,10 @@
     /// [`Attribute::parse_outer`]: ../struct.Attribute.html#method.parse_outer
     ///
     /// ```
-    /// # extern crate syn;
-    /// #
-    /// use syn::{Attribute, Ident, Token};
+    /// #[macro_use]
+    /// extern crate syn;
+    ///
+    /// use syn::{Attribute, Ident};
     /// use syn::parse::{Parse, ParseStream, Result};
     ///
     /// // Parses a unit struct with attributes.
@@ -451,9 +455,10 @@
     /// token in the input is either `where` or an opening curly brace.
     ///
     /// ```
-    /// # extern crate syn;
-    /// #
-    /// use syn::{braced, token, Generics, Ident, Token, TypeParamBound};
+    /// #[macro_use]
+    /// extern crate syn;
+    ///
+    /// use syn::{token, Generics, Ident, TypeParamBound};
     /// use syn::parse::{Parse, ParseStream, Result};
     /// use syn::punctuated::Punctuated;
     ///
@@ -522,9 +527,10 @@
     /// }`. In other words `union` is a contextual keyword.
     ///
     /// ```
-    /// # extern crate syn;
-    /// #
-    /// use syn::{Ident, ItemUnion, Macro, Token};
+    /// #[macro_use]
+    /// extern crate syn;
+    ///
+    /// use syn::{Ident, ItemUnion, Macro};
     /// use syn::parse::{Parse, ParseStream, Result};
     ///
     /// // Parses either a union or a macro invocation.
@@ -567,12 +573,13 @@
     /// # Example
     ///
     /// ```rust
+    /// # #[macro_use]
     /// # extern crate quote;
-    /// # extern crate syn;
     /// #
-    /// # use quote::quote;
-    /// #
-    /// use syn::{parenthesized, token, Ident, Token, Type};
+    /// #[macro_use]
+    /// extern crate syn;
+    ///
+    /// use syn::{token, Ident, Type};
     /// use syn::parse::{Parse, ParseStream, Result};
     /// use syn::punctuated::Punctuated;
     ///
@@ -622,9 +629,10 @@
     /// # Example
     ///
     /// ```rust
-    /// # extern crate syn;
-    /// #
-    /// use syn::{braced, token, Ident, Item, Token};
+    /// #[macro_use]
+    /// extern crate syn;
+    ///
+    /// use syn::{token, Ident, Item};
     /// use syn::parse::{Parse, ParseStream, Result};
     ///
     /// // Parses a Rust `mod m { ... }` containing zero or more items.
@@ -664,9 +672,10 @@
     /// # Example
     ///
     /// ```
-    /// # extern crate syn;
-    /// #
-    /// use syn::{ConstParam, Ident, Lifetime, LifetimeDef, Token, TypeParam};
+    /// #[macro_use]
+    /// extern crate syn;
+    ///
+    /// use syn::{ConstParam, Ident, Lifetime, LifetimeDef, TypeParam};
     /// use syn::parse::{Parse, ParseStream, Result};
     ///
     /// // A generic parameter, a single one of the comma-separated elements inside
@@ -772,9 +781,10 @@
     /// work performed against the forked parse stream.
     ///
     /// ```
-    /// # extern crate syn;
-    /// #
-    /// use syn::{parenthesized, token, Ident, Path, Token};
+    /// #[macro_use]
+    /// extern crate syn;
+    ///
+    /// use syn::{token, Ident, Path};
     /// use syn::ext::IdentExt;
     /// use syn::parse::{Parse, ParseStream, Result};
     ///
@@ -847,9 +857,10 @@
     /// # Example
     ///
     /// ```
-    /// # extern crate syn;
-    /// #
-    /// use syn::{Expr, Token};
+    /// #[macro_use]
+    /// extern crate syn;
+    ///
+    /// use syn::Expr;
     /// use syn::parse::{Parse, ParseStream, Result};
     ///
     /// // Some kind of loop: `while` or `for` or `loop`.
@@ -871,6 +882,8 @@
     ///         }
     ///     }
     /// }
+    /// #
+    /// # fn main() {}
     /// ```
     pub fn error<T: Display>(&self, message: T) -> Error {
         error::new_at(self.scope, self.cursor(), message)