diff --git a/lib/lexer.js b/lib/lexer.js
index <HASH>..<HASH> 100644
--- a/lib/lexer.js
+++ b/lib/lexer.js
@@ -315,6 +315,18 @@ Lexer.prototype = {
   },
 
   /**
+   * While.
+   */
+  
+  while: function() {
+    var captures;
+    if (captures = /^while +([^\n]+)/.exec(this.input)) {
+      this.consume(captures[0].length);
+      return this.tok('code', 'while (' + captures[1] + ')');
+    }
+  },
+
+  /**
    * Each.
    */
   
@@ -599,6 +611,7 @@ Lexer.prototype = {
       || this.mixin()
       || this.conditional()
       || this.each()
+      || this.while()
       || this.assignment()
       || this.tag()
       || this.filter()
Added first-class `while` support

  n = 5
  while n--
    p whatever