   }
 
 }
+
+
+enum CommonLexerError: ErrorType {
+  case TokenType
+  case String
+}


  func next(entry: LexerTokenizer) -> TokenType?

  func parse(fn: (type: TokenType?) -> Void)

  func parseTokenStrings(fn: (type: TokenType?, string: String?) -> Void)

}


    return nil
  }

  func parseLine(fn: (type: TokenType) throws -> Void) throws {
    lineCount += 1
    while !stream.isEol {
      var tt: TokenType?
