> Because the problem is not parsing alone, but doing type checks / ambiguity resolution during parsing and linking up the parse tree with type information etc.
Holy shit, people think that's a good idea? Pipelines please!
It's often faster to do as much as you can in a single pass, and language front ends are one of those areas where squeezing every last drop of performance out still really matters.
It's actually faster to separate things, because you will be able to implement them cleanly. Having a good pipeline such as "text -> AST -> typed AST -> IR -> .... -> ASM/VM code" is very valuable.
The costy parts are the middle layer optimization anyway. Typechecking time, for a well written type checker, is not that big.
Holy shit, people think that's a good idea? Pipelines please!