 
   func next(entry: LexerTokenizer) -> TokenType?
 
-  func parse(fn: (type: TokenType?) -> Void)
-
-  func parseTokenStrings(fn: (type: TokenType?, string: String?) -> Void)
+  func parse(fn: (type: TokenType) throws -> Void) throws
+
+  func parseTokenStrings(
+      fn: (type: TokenType, string: String) throws -> Void) throws
 
 }
 

      }
      //p([stream.currentTokenString, status.tokenizer]);
      //p(status.stored);
      fn(type: tt)
      stream.startIndex = stream.currentIndex
    }
    //p(status.indent);
  }

  func parseTokenStrings(fn: (type: TokenType?, string: String?) -> Void) {
    parse() { tt in
      return fn(type: tt, string: self.stream.currentTokenString)
    }
  }

  func parse(fn: (type: TokenType?) -> Void) {
    let len = stream.bytes.count
    var ninc = 0
    var haveNewLine = false

  }

}


enum CommonLexerError: ErrorType {
  case TokenType
  case String
}
