Punct and keyword parsing macros only work with parsing feature
diff --git a/src/tokens.rs b/src/tokens.rs
index 955b01d..eb5d6e0 100644
--- a/src/tokens.rs
+++ b/src/tokens.rs
@@ -360,6 +360,7 @@
     (yield)    => { $crate::tokens::Yield };
 }
 
+#[cfg(feature = "parsing")]
 #[macro_export]
 macro_rules! punct {
     ($i:expr, +)   => { call!($i, <$crate::tokens::Add as $crate::synom::Synom>::parse) };
@@ -409,6 +410,7 @@
     ($i:expr, _)   => { call!($i, <$crate::tokens::Underscore as $crate::synom::Synom>::parse) };
 }
 
+#[cfg(feature = "parsing")]
 #[macro_export]
 macro_rules! keyword {
     ($i:expr, as)       => { call!($i, <$crate::tokens::As as $crate::synom::Synom>::parse) };