Add verbatim variants as an escape hatch
diff --git a/src/gen/visit.rs b/src/gen/visit.rs
index a191041..411651d 100644
--- a/src/gen/visit.rs
+++ b/src/gen/visit.rs
@@ -145,6 +145,8 @@
 fn visit_expr_unary(&mut self, i: &'ast ExprUnary) { visit_expr_unary(self, i) }
 # [ cfg ( feature = "full" ) ]
 fn visit_expr_unsafe(&mut self, i: &'ast ExprUnsafe) { visit_expr_unsafe(self, i) }
+
+fn visit_expr_verbatim(&mut self, i: &'ast ExprVerbatim) { visit_expr_verbatim(self, i) }
 # [ cfg ( feature = "full" ) ]
 fn visit_expr_while(&mut self, i: &'ast ExprWhile) { visit_expr_while(self, i) }
 # [ cfg ( feature = "full" ) ]
@@ -171,6 +173,8 @@
 fn visit_foreign_item_static(&mut self, i: &'ast ForeignItemStatic) { visit_foreign_item_static(self, i) }
 # [ cfg ( feature = "full" ) ]
 fn visit_foreign_item_type(&mut self, i: &'ast ForeignItemType) { visit_foreign_item_type(self, i) }
+# [ cfg ( feature = "full" ) ]
+fn visit_foreign_item_verbatim(&mut self, i: &'ast ForeignItemVerbatim) { visit_foreign_item_verbatim(self, i) }
 
 fn visit_generic_argument(&mut self, i: &'ast GenericArgument) { visit_generic_argument(self, i) }
 # [ cfg ( feature = "full" ) ]
@@ -191,6 +195,8 @@
 fn visit_impl_item_method(&mut self, i: &'ast ImplItemMethod) { visit_impl_item_method(self, i) }
 # [ cfg ( feature = "full" ) ]
 fn visit_impl_item_type(&mut self, i: &'ast ImplItemType) { visit_impl_item_type(self, i) }
+# [ cfg ( feature = "full" ) ]
+fn visit_impl_item_verbatim(&mut self, i: &'ast ImplItemVerbatim) { visit_impl_item_verbatim(self, i) }
 
 fn visit_index(&mut self, i: &'ast Index) { visit_index(self, i) }
 # [ cfg ( feature = "full" ) ]
@@ -227,6 +233,8 @@
 fn visit_item_union(&mut self, i: &'ast ItemUnion) { visit_item_union(self, i) }
 # [ cfg ( feature = "full" ) ]
 fn visit_item_use(&mut self, i: &'ast ItemUse) { visit_item_use(self, i) }
+# [ cfg ( feature = "full" ) ]
+fn visit_item_verbatim(&mut self, i: &'ast ItemVerbatim) { visit_item_verbatim(self, i) }
 
 fn visit_lifetime(&mut self, i: &'ast Lifetime) { visit_lifetime(self, i) }
 
@@ -276,6 +284,8 @@
 # [ cfg ( feature = "full" ) ]
 fn visit_pat_tuple_struct(&mut self, i: &'ast PatTupleStruct) { visit_pat_tuple_struct(self, i) }
 # [ cfg ( feature = "full" ) ]
+fn visit_pat_verbatim(&mut self, i: &'ast PatVerbatim) { visit_pat_verbatim(self, i) }
+# [ cfg ( feature = "full" ) ]
 fn visit_pat_wild(&mut self, i: &'ast PatWild) { visit_pat_wild(self, i) }
 
 fn visit_path(&mut self, i: &'ast Path) { visit_path(self, i) }
@@ -307,6 +317,8 @@
 fn visit_trait_item_method(&mut self, i: &'ast TraitItemMethod) { visit_trait_item_method(self, i) }
 # [ cfg ( feature = "full" ) ]
 fn visit_trait_item_type(&mut self, i: &'ast TraitItemType) { visit_trait_item_type(self, i) }
+# [ cfg ( feature = "full" ) ]
+fn visit_trait_item_verbatim(&mut self, i: &'ast TraitItemVerbatim) { visit_trait_item_verbatim(self, i) }
 
 fn visit_type(&mut self, i: &'ast Type) { visit_type(self, i) }
 
@@ -342,6 +354,8 @@
 
 fn visit_type_tuple(&mut self, i: &'ast TypeTuple) { visit_type_tuple(self, i) }
 
+fn visit_type_verbatim(&mut self, i: &'ast TypeVerbatim) { visit_type_verbatim(self, i) }
+
 fn visit_un_op(&mut self, i: &'ast UnOp) { visit_un_op(self, i) }
 # [ cfg ( feature = "full" ) ]
 fn visit_use_glob(&mut self, i: &'ast UseGlob) { visit_use_glob(self, i) }
@@ -720,6 +734,9 @@
         Yield(ref _binding_0, ) => {
             full!(_visitor.visit_expr_yield(_binding_0));
         }
+        Verbatim(ref _binding_0, ) => {
+            _visitor.visit_expr_verbatim(_binding_0);
+        }
     }
 }
 # [ cfg ( feature = "full" ) ]
@@ -983,6 +1000,10 @@
     tokens_helper(_visitor, &(& _i . unsafe_token).0);
     _visitor.visit_block(& _i . block);
 }
+
+pub fn visit_expr_verbatim<'ast, V: Visitor<'ast> + ?Sized>(_visitor: &mut V, _i: &'ast ExprVerbatim) {
+    // Skipped field _i . tts;
+}
 # [ cfg ( feature = "full" ) ]
 pub fn visit_expr_while<'ast, V: Visitor<'ast> + ?Sized>(_visitor: &mut V, _i: &'ast ExprWhile) {
     for it in & _i . attrs { _visitor.visit_attribute(it) };
@@ -1081,6 +1102,9 @@
         Type(ref _binding_0, ) => {
             _visitor.visit_foreign_item_type(_binding_0);
         }
+        Verbatim(ref _binding_0, ) => {
+            _visitor.visit_foreign_item_verbatim(_binding_0);
+        }
     }
 }
 # [ cfg ( feature = "full" ) ]
@@ -1110,6 +1134,10 @@
     _visitor.visit_ident(& _i . ident);
     tokens_helper(_visitor, &(& _i . semi_token).0);
 }
+# [ cfg ( feature = "full" ) ]
+pub fn visit_foreign_item_verbatim<'ast, V: Visitor<'ast> + ?Sized>(_visitor: &mut V, _i: &'ast ForeignItemVerbatim) {
+    // Skipped field _i . tts;
+}
 
 pub fn visit_generic_argument<'ast, V: Visitor<'ast> + ?Sized>(_visitor: &mut V, _i: &'ast GenericArgument) {
     use ::GenericArgument::*;
@@ -1183,6 +1211,9 @@
         Macro(ref _binding_0, ) => {
             _visitor.visit_impl_item_macro(_binding_0);
         }
+        Verbatim(ref _binding_0, ) => {
+            _visitor.visit_impl_item_verbatim(_binding_0);
+        }
     }
 }
 # [ cfg ( feature = "full" ) ]
@@ -1224,6 +1255,10 @@
     _visitor.visit_type(& _i . ty);
     tokens_helper(_visitor, &(& _i . semi_token).0);
 }
+# [ cfg ( feature = "full" ) ]
+pub fn visit_impl_item_verbatim<'ast, V: Visitor<'ast> + ?Sized>(_visitor: &mut V, _i: &'ast ImplItemVerbatim) {
+    // Skipped field _i . tts;
+}
 
 pub fn visit_index<'ast, V: Visitor<'ast> + ?Sized>(_visitor: &mut V, _i: &'ast Index) {
     // Skipped field _i . index;
@@ -1281,6 +1316,9 @@
         Macro2(ref _binding_0, ) => {
             _visitor.visit_item_macro2(_binding_0);
         }
+        Verbatim(ref _binding_0, ) => {
+            _visitor.visit_item_verbatim(_binding_0);
+        }
     }
 }
 # [ cfg ( feature = "full" ) ]
@@ -1457,6 +1495,10 @@
     _visitor.visit_use_tree(& _i . tree);
     tokens_helper(_visitor, &(& _i . semi_token).0);
 }
+# [ cfg ( feature = "full" ) ]
+pub fn visit_item_verbatim<'ast, V: Visitor<'ast> + ?Sized>(_visitor: &mut V, _i: &'ast ItemVerbatim) {
+    // Skipped field _i . tts;
+}
 
 pub fn visit_lifetime<'ast, V: Visitor<'ast> + ?Sized>(_visitor: &mut V, _i: &'ast Lifetime) {
     // Skipped field _i . sym;
@@ -1603,6 +1645,9 @@
         Macro(ref _binding_0, ) => {
             _visitor.visit_macro(_binding_0);
         }
+        Verbatim(ref _binding_0, ) => {
+            _visitor.visit_pat_verbatim(_binding_0);
+        }
     }
 }
 # [ cfg ( feature = "full" ) ]
@@ -1669,6 +1714,10 @@
     _visitor.visit_pat_tuple(& _i . pat);
 }
 # [ cfg ( feature = "full" ) ]
+pub fn visit_pat_verbatim<'ast, V: Visitor<'ast> + ?Sized>(_visitor: &mut V, _i: &'ast PatVerbatim) {
+    // Skipped field _i . tts;
+}
+# [ cfg ( feature = "full" ) ]
 pub fn visit_pat_wild<'ast, V: Visitor<'ast> + ?Sized>(_visitor: &mut V, _i: &'ast PatWild) {
     tokens_helper(_visitor, &(& _i . underscore_token).0);
 }
@@ -1779,6 +1828,9 @@
         Macro(ref _binding_0, ) => {
             _visitor.visit_trait_item_macro(_binding_0);
         }
+        Verbatim(ref _binding_0, ) => {
+            _visitor.visit_trait_item_verbatim(_binding_0);
+        }
     }
 }
 # [ cfg ( feature = "full" ) ]
@@ -1821,6 +1873,10 @@
          };
     tokens_helper(_visitor, &(& _i . semi_token).0);
 }
+# [ cfg ( feature = "full" ) ]
+pub fn visit_trait_item_verbatim<'ast, V: Visitor<'ast> + ?Sized>(_visitor: &mut V, _i: &'ast TraitItemVerbatim) {
+    // Skipped field _i . tts;
+}
 
 pub fn visit_type<'ast, V: Visitor<'ast> + ?Sized>(_visitor: &mut V, _i: &'ast Type) {
     use ::Type::*;
@@ -1867,6 +1923,9 @@
         Macro(ref _binding_0, ) => {
             _visitor.visit_macro(_binding_0);
         }
+        Verbatim(ref _binding_0, ) => {
+            _visitor.visit_type_verbatim(_binding_0);
+        }
     }
 }
 
@@ -1973,6 +2032,10 @@
     for el in & _i . elems { let it = el.item(); _visitor.visit_type(it) };
 }
 
+pub fn visit_type_verbatim<'ast, V: Visitor<'ast> + ?Sized>(_visitor: &mut V, _i: &'ast TypeVerbatim) {
+    // Skipped field _i . tts;
+}
+
 pub fn visit_un_op<'ast, V: Visitor<'ast> + ?Sized>(_visitor: &mut V, _i: &'ast UnOp) {
     use ::UnOp::*;
     match *_i {