Large test case
diff --git a/src/mac.rs b/src/mac.rs
index 7377fd5..c1b9a5d 100644
--- a/src/mac.rs
+++ b/src/mac.rs
@@ -157,6 +157,10 @@
     named!(token -> Token, alt!(
         punct!("_") => { |_| Token::Underscore }
         |
+        punct!("&&") => { |_| Token::AndAnd } // must be before bin_op
+        |
+        punct!("||") => { |_| Token::OrOr } // must be before bin_op
+        |
         map!(bin_op_eq, Token::BinOpEq)
         |
         map!(bin_op, Token::BinOp)
@@ -177,10 +181,6 @@
         |
         punct!(">=") => { |_| Token::Ge }
         |
-        punct!("&&") => { |_| Token::AndAnd }
-        |
-        punct!("||") => { |_| Token::OrOr }
-        |
         punct!("::") => { |_| Token::ModSep }
         |
         punct!("->") => { |_| Token::RArrow }