Alguien sabe el significado de yy?


10

Como las preguntas de historia se consideran sobre el tema , pensé en preguntar una que me haya estado molestando durante bastante tiempo y nadie que conozca parece saber la respuesta. ¿Alguien sabe cuál es el significado histórico del prefijo yy? La mayoría de las variables y funciones generadas por lex comienzan con él, como yylval, y yylex(). También recuerdo haber visto una utilidad nombrada en yyrsaalguna parte, pero ahora no puedo encontrar referencias a ella en ninguna parte. Mentes curiosas quieren saber!


55
y pensé que esta era una pregunta vim: P
xenoterracide

Respuestas:


10

Creo que tiene algo que ver con yacc, que tiene archivos que terminan en .y, y requiere una función llamada yylex.


66
Esta pregunta SO parece estar de acuerdo
Michael Mrozek

66
Citando la respuesta de @peterb en la publicación SO vinculada por Michael, "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á destinada a un analizador yacc". ¡Gracias chicos!
Timothy

2

Como otros han señalado aquí y en StackOverflow , puede ser simplemente una duplicación del ynombre de la yaccutilidad, utilizada para generar un espacio de nombre único.

Las reservas estándar POSIX los espacios de nombres que empiezan por tanto yyy YYpara yacccon el siguiente párrafo :

Los nombres son de longitud arbitraria, compuestos por letras, puntos ( .), guiones bajos ( _) y dígitos no iniciales. Las letras mayúsculas y minúsculas son distintas. Las aplicaciones conformes no deberán usar nombres que comiencen en yyo YYdesde que el yaccanalizador use dichos nombres . Muchos de los nombres aparecen en la salida final de yaccy, por lo tanto, deben elegirse para cumplir con las reglas adicionales creadas por el compilador de C que se utilizará. En particular, aparecen en #definedeclaraciones.

Desafortunadamente, los documentos POSIX son muy malos para relatar cualquier forma de historia sobre por qué las cosas llegaron a ser como son actualmente.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.