Yes, and the GNAT Ada front end has just about the best syntactic
error recovery and syntax error messages I have ever seen in any
compiler.

>... Perl uses yacc (at least through v5) but with a hand-written> tokenizer. Python seems to generate its own parser from a grammar> during startup. Yada yada. At least for production compilers, it's> more of a mixed bag than you infer.

Yes, it's mixed bag. There are advantages and disadvantages to
either approach.