Estaba investigando sobre el conjunto de compiladores gcc en wikipedia aquí , cuando surgió esto:
GCC comenzó usando analizadores LALR generados con Bison, pero gradualmente cambió a analizadores de descenso recursivo escritos a mano; para C ++ en 2004, y para C y Objective-C en 2006. Actualmente, todos los front-end utilizan analizadores de descenso recursivo escritos a mano
Entonces, en esa última oración, (y por mucho que confíe en wikipedia) definitivamente puedo decir que "C (gcc), C ++ (g ++), Objective-C, Objective-C ++, Fortran (gfortran), Java (gcj), Ada (GNAT), Go (gccgo), Pascal (gpc), ... Mercury, Modula-2, Modula-3, PL / I, D (gdc) y VHDL (ghdl) "son todos los extremos que no Ya no use un generador de analizador. Es decir, todos usan analizadores escritos a mano.
Mi pregunta es, ¿es esta práctica omnipresente? Específicamente, estoy buscando respuestas exactas a "¿la implementación estándar / oficial de x tiene un analizador escrito a mano" para x en [Python, Swift, Ruby, Java, Scala, ML, Haskell]? (En realidad, la información en cualquier otro idioma también es bienvenida aquí.) Estoy seguro de que puedo encontrar esto por mi cuenta después de mucho excavar. Pero también estoy seguro de que esto es fácil de responder por la comunidad. ¡Gracias!