Wouldn't most projects use a parser generator anyway? Making the choice of language separate from "what's the best language for parsing stuff".
bash is actually one of the only shells that uses yacc, and the maintainer regards it as a mistake. It uses yacc for maybe 1/4 of the language and the rest is all hand written stuff intertwined with generated code. It's pretty messy.
https://piumarta.com/software/peg/
https://github.com/ngs-lang/ngs/blob/bdfb2fd70162cd7183ac8d4...