 
   func parseTokenStrings(
       fn: (type: TokenType, string: String) throws -> Void) throws
+
+  func parseTokens(fn: (token: LexerToken) throws -> Void) throws
 
 }
 

      } while si < len
  }

  public var description: String {
    return "CommonLexer(status: \(status))"
  }

      throws {
    try parse() { tt in
      if let s = self.stream.currentTokenString {
        try fn(type: tt, string: s)
      } else {
        throw CommonLexerError.String
      }
