lex flex-lexer

¿Qué significa "yy" en lex.yy.c?



flex-lexer (4)

Creo que el "yy" se utiliza para indicar que este es un archivo de código generado.

Generalmente, la utilidad lex escribe el programa que genera en el archivo lex.yy.c - Reference

¿Qué significa "yy" en lex.yy.c?


Creo que viene de Yacc, uno de los generadores de analizadores más antiguos.


Lex fue destinado para ser utilizado en concierto con Yacc. La historia y los detalles de esto se detallan en el documento de Steven Johnson Yacc: Yet Another Compiler Compiler . El analizador de Yacc usa solo nombres que comienzan en "yy"; no hay un significado aparente discutido más allá de simplemente desear un espacio de nombres. El "yy" en lex.yy.c indica que la salida lex está diseñada para un analizador yacc.


Probablemente de YACC (Yet Another Compiler Compiler), que se utilizó con Lex para implementar varios compiladores y programas similares. Los equivalentes de Gnu son Bison y Flex, y se ven mucho más extendidos ahora, por lo que la conexión puede no ser obvia.