Rewrite lexer w/o using Go's bufio.Scanner.