Ich war die Erforschung über die gcc - Compiler - Suite auf wikipedia hier , wenn dies kam:
GCC begann mit der Verwendung von LALR-Parsern, die mit Bison generiert wurden, wechselte jedoch allmählich zu handgeschriebenen rekursiven Parsern. Für C ++ im Jahr 2004 und für C und Objective-C im Jahr 2006. Derzeit verwenden alle Frontends handgeschriebene Parser mit rekursiver Herkunft
Anhand dieses letzten Satzes (und soweit ich Wikipedia vertraue) kann ich definitiv sagen, dass "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) und VHDL (ghdl) "sind alle Frontends, die nicht Verwenden Sie länger einen Parser-Generator. Das heißt, sie alle verwenden handgeschriebene Parser.
Meine Frage ist dann, ist diese Praxis allgegenwärtig? Insbesondere suche ich nach genauen Antworten auf die Frage "Hat die Standard- / offizielle Implementierung von x einen handgeschriebenen Parser" für x in [Python, Swift, Ruby, Java, Scala, ML, Haskell]? (Informationen in anderen Sprachen sind hier auch willkommen.) Ich bin mir sicher, dass ich diese nach langem Graben selbst finden kann. Aber ich bin mir auch sicher, dass dies von der Community leicht zu beantworten ist. Vielen Dank!