Я исследовал о наборе компиляторов GCC на википедии здесь , когда это придумал:
GCC начал использовать парсеры LALR, сгенерированные с помощью Bison, но постепенно переключился на рукописные парсеры с рекурсивным спуском; для C ++ в 2004 году и для C и Objective-C в 2006 году. В настоящее время все внешние интерфейсы используют рукописные парсеры рекурсивного спуска
Таким образом, по последнему предложению (и насколько я доверяю Википедии) я могу определенно сказать, что "C (gcc), C ++ (g ++), Objective-C, Objective-C ++, Fortran (gfortran), Java (gcj), Ada (GNAT), Go (gccgo), Pascal (gpc), ... Меркурий, Modula-2, Modula-3, PL / I, D (gdc) и VHDL (ghdl) "- все интерфейсы, которые не больше использовать генератор парсеров. То есть все они используют рукописные парсеры.
Тогда мой вопрос: повсеместна ли эта практика? В частности, я ищу точные ответы на «есть ли у стандартной / официальной реализации x рукописный синтаксический анализатор» для x в [Python, Swift, Ruby, Java, Scala, ML, Haskell]? (На самом деле, информация о любых других языках также приветствуется здесь.) Я уверен, что смогу найти это самостоятельно после многих копаний. Но я также уверен, что сообщество легко ответит на это. Благодарность!