¿Los analizadores GCC y Clang están realmente escritos a mano?

 C Programming >> Programación C >  >> Tags >> Clang
¿Los analizadores GCC y Clang están realmente escritos a mano?


Parece que GCC y LLVM-Clang están usando analizadores de descenso recursivos escritos a mano y no análisis de abajo hacia arriba generado por máquina, basado en Bison-Flex.


¿Podría alguien aquí confirmar que este es el caso?
Y si es así, ¿por qué los marcos de compilación convencionales usan analizadores escritos a mano?


Actualizar :interesante blog sobre este tema aquí


Respuestas:


Sí:



  • GCC usó un analizador yacc (bison) alguna vez, pero fue reemplazado por un analizador de descenso recursivo escrito a mano en algún momento de la serie 3.x:consulte http://gcc.gnu.org/wiki/New_C_Parser para enlaces a envíos de parches relevantes.


  • Clang también utiliza un analizador descendente recursivo escrito a mano:consulta la sección "Un único analizador unificado para C, Objective C, C++ y Objective C++" cerca del final de http://clang.llvm.org/features.html .