Quelqu'un connaît la signification de yy?


10

Étant donné que les questions d'histoire sont examinées sur le sujet , je me suis dit que j'en poserais une qui me dérange depuis un certain temps et que personne que je connais ne semble connaître la réponse. Quelqu'un sait-il quelle est la signification historique du préfixe yy? La plupart des variables et fonctions générées par lex commencent par lui, comme yylvalet yylex(). Je me souviens également d'avoir vu un utilitaire nommé yyrsaquelque part, mais je ne trouve plus de références à cet endroit maintenant. Les esprits curieux veulent savoir!


5
et je pensais que c'était une question vim: P
xénoterracide

Réponses:


10

Je pense qu'il a quelque chose à voir avec yacc, qui a des fichiers se terminant par .y, et nécessite une fonction appelée yylex.



6
Citant la réponse de @ peterb dans le message SO lié par Michael, "il n'y a aucune signification apparente discutée au-delà du simple désir d'un espace de noms. Le" yy "dans lex.yy.c indique que la sortie de lex est destinée à un analyseur yacc." Merci les gars!
Timothy

2

Comme d'autres l'ont souligné ici et sur StackOverflow , il peut simplement s'agir d'un doublement du ynom de l' yaccutilitaire, utilisé pour générer un espace de nom unique.

Les réserves standards POSIX les espaces de noms commençant par les deux yyet YYpour yaccavec le paragraphe suivant :

Les noms sont de longueur arbitraire, composés de lettres, de points ( .), de traits de soulignement ( _) et de chiffres non initiaux. Les lettres majuscules et minuscules sont distinctes. Les applications conformes ne doivent pas utiliser de noms commençant dans yyou YYdepuis que l' yaccanalyseur utilise ces noms . Beaucoup de noms apparaissent dans la sortie finale de yacc, et donc ils doivent être choisis pour se conformer à toutes les règles supplémentaires créées par le compilateur C à utiliser. Ils apparaissent notamment dans les #definedéclarations.

Malheureusement, les documents POSIX sont très mauvais pour raconter toute forme d'histoire quant à la raison pour laquelle les choses sont devenues telles qu'elles sont actuellement.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.