Kennt jemand die Bedeutung von yy?


10

Da Fragen zur Geschichte zum Thema betrachtet werden , dachte ich, ich würde eine stellen, die mich schon seit einiger Zeit nervt, und niemand, den ich kenne, scheint die Antwort zu kennen. Weiß jemand, welche historische Bedeutung das Präfix yy hat? Die meisten von lex generierten Variablen und Funktionen beginnen damit, wie z. B. yylvalund yylex(). Ich erinnere mich auch, dass ich yyrsairgendwo ein Dienstprogramm mit dem Namen gesehen habe , kann aber jetzt nirgendwo darauf verweisen. Neugierige wollen es wissen!


5
und ich dachte, das wäre eine vim Frage: P
Xenoterracide

Antworten:


10

Ich denke, es hat etwas mit yacc zu tun, dessen Dateien enden .yund für das eine Funktion namens erforderlich ist yylex.


6
Diese SO-Frage scheint zu stimmen
Michael Mrozek

6
In der Antwort von @ peterb in dem von Michael verlinkten SO-Beitrag heißt es: "Es gibt keine offensichtliche Bedeutung, die diskutiert wird, außer nur einen Namespace zu wünschen. Das" yy "in lex.yy.c gibt an, dass die lex-Ausgabe für einen yacc-Parser bestimmt ist." Danke Leute!
Timothy

2

Wie andere hier und in StackOverflow bereits erwähnt haben , kann es sich lediglich um eine Verdoppelung des yNamens des yaccDienstprogramms handeln, das zum Generieren eines eindeutigen Namensraums verwendet wird.

Die POSIX - Standard behält die Namensräume sowohl mit Start yyund YYfür yaccmit dem folgenden Absatz :

Namen haben eine beliebige Länge und bestehen aus Buchstaben, Punkten ( .), Unterstrichen ( _) und nicht initialen Ziffern. Groß- und Kleinbuchstaben sind unterschiedlich. Konforme Anwendungen dürfen keine Namen verwenden, die mit yyoder beginnen, YYda der yaccParser solche Namen verwendet . Viele der Namen erscheinen in der endgültigen Ausgabe von yaccund sollten daher so ausgewählt werden, dass sie allen zusätzlichen Regeln entsprechen, die vom zu verwendenden C-Compiler erstellt wurden. Insbesondere erscheinen sie in #defineAussagen.

Leider sind die POSIX-Dokumente sehr schlecht darin, irgendeine Form von Geschichte darüber zu erzählen, warum die Dinge so wurden, wie sie derzeit sind.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.