It is possible to create parsers that don't require a separate lexer — the lexer and parser are combined into a unified scheme. This has a few downsides (see the Wikipedia article), but may be much more succinct for simpler grammars.