Szukałem na temat pakietu kompilator gcc Wikipedia tutaj , kiedy to pojawiły się:
GCC zaczęło od użycia parserów LALR wygenerowanych za pomocą Bison, ale stopniowo przestawiło się na ręcznie pisane parsery rekurencyjnego opadania; dla C ++ w 2004 r. oraz dla C i Objective-C w 2006 r. Obecnie wszystkie interfejsy używają ręcznie napisanych analizatorów składni rekurencyjnych
Tak więc przez ostatnie zdanie (i o ile ufam wikipedii) zdecydowanie mogę powiedzieć, że „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) i VHDL (ghdl) "są front-endami, których nie ma dłużej używaj generatora analizatora składni. Oznacza to, że wszyscy używają ręcznie napisanych parserów.
Moje pytanie brzmi zatem, czy ta praktyka jest wszechobecna? W szczególności szukam dokładnych odpowiedzi na „czy standardowa / oficjalna implementacja x ma ręcznie napisany parser” dla x w [Python, Swift, Ruby, Java, Scala, ML, Haskell]? (W rzeczywistości mile widziane są tutaj informacje na temat innych języków.) Jestem pewien, że mogę znaleźć to na własną rękę po wielu kopaniach. Ale jestem również pewien, że społeczność łatwo na to odpowiada. Dzięki!