Optimise much of the lexer