     return matchAlphaUnderlineDigitMinus(true) != nil
   }
 
-  public mutating func eatWhileAlphaUnderlineDigitMinus() -> Bool {
-    return matchWhileAlphaUnderlineDigitMinus(true) >= 0
-  }
-
   // A-Z a-z _ 0-9
   public mutating func matchAlphaUnderlineDigitMinus(consume: Bool = false)
       -> UInt8? {
-    var r: UInt8?
     let i = currentIndex
     if i < lineEndIndex {
       let c = _bytes[i] // A-Z a-z _ 0-9 -
       if (c >= 65 && c <= 90) || (c >= 97 && c <= 122) || c == 95 ||
           (c >= 48 && c <= 57) || c == 45 {
-        r = c
         if consume {
           currentIndex = i + 1
         }
-      }
-    }
-    return r
+        return c
+      }
+    }
+    return nil
+  }
+
+  public mutating func eatWhileAlphaUnderlineDigitMinus() -> Bool {
+    return matchWhileAlphaUnderlineDigitMinus(true) >= 0
   }
 
   public mutating func matchWhileAlphaUnderlineDigitMinus(consume: Bool = false)
       -> Int {
-    var r = -1
     var i = currentIndex
     let savei = i
     let len = lineEndIndex

      i += 1
    }
    if i > savei {
      r = i - savei
      if consume {
        currentIndex = i
      }
    }
    return r
  }

  public mutating func eatAlphaDigit() -> Bool {
    return matchAlphaDigit(true) != nil
  }

  public mutating func eatWhileAlphaDigit() -> Bool {
    return matchWhileAlphaDigit(true) >= 0
  }

  // A-Z a-z 0-9
  public mutating func matchAlphaDigit(consume: Bool = false) -> UInt8? {
    var r: UInt8?
    let i = currentIndex
    if i < lineEndIndex {
      let c = _bytes[i] // A-Z a-z 0-9
      if (c >= 65 && c <= 90) || (c >= 97 && c <= 122) ||
          (c >= 48 && c <= 57) {
        r = c
        if consume {
          currentIndex = i + 1
        }
      }
    }
    return r
  }

  public mutating func matchWhileAlphaDigit(consume: Bool = false) -> Int {
    var r = -1
    var i = currentIndex
    let savei = i
    let len = lineEndIndex
    while i < len {
      let c = _bytes[i]
      if (c >= 65 && c <= 90) || (c >= 97 && c <= 122) ||

      i += 1
    }
    if i > savei {
      if consume {
        currentIndex = i
      }
      return i - savei
    }
    return -1
  }

  public mutating func eatAlpha() -> Bool {
    return matchAlpha(true) != nil
  }

  // A-Z a-z
