Switch to Cursor in syn
diff --git a/src/ident.rs b/src/ident.rs
index 181bac9..afc8a3a 100644
--- a/src/ident.rs
+++ b/src/ident.rs
@@ -108,24 +108,18 @@
 #[cfg(feature = "parsing")]
 pub mod parsing {
     use super::*;
-    use proc_macro2::TokenKind;
     use synom::{Synom, PResult, Cursor, parse_error};
 
     impl Synom for Ident {
         fn parse(input: Cursor) -> PResult<Self> {
-            let mut tokens = input.iter();
-            let token = match tokens.next() {
-                Some(token) => token,
-                None => return parse_error(),
-            };
-            let word = match token.kind {
-                TokenKind::Word(s) => s,
+            let (rest, span, sym) = match input.word() {
+                Some(word) => word,
                 _ => return parse_error(),
             };
-            if word.as_str().starts_with('\'') {
+            if sym.as_str().starts_with('\'') {
                 return parse_error();
             }
-            match word.as_str() {
+            match sym.as_str() {
                 // From https://doc.rust-lang.org/grammar.html#keywords
                 "abstract" | "alignof" | "as" | "become" | "box" | "break" | "const" | "continue" |
                 "crate" | "do" | "else" | "enum" | "extern" | "false" | "final" | "fn" | "for" |
@@ -137,9 +131,9 @@
                 _ => {}
             }
 
-            Ok((tokens.as_slice(), Ident {
-                span: Span(token.span),
-                sym: word,
+            Ok((rest, Ident {
+                span: Span(span),
+                sym: sym,
             }))
         }