Czy ktoś zna znaczenie yy?

10

Ponieważ pytania historyczne są rozważane na temat , pomyślałem, że zapytam o to, co mnie denerwuje od dłuższego czasu i nikt, kogo znam, nie zna odpowiedzi. Czy ktoś wie, jakie jest historyczne znaczenie przedrostka yy? Większość zmiennych i funkcji generowanych przez lex zaczyna się od niego, takich jak yylvali yylex(). Pamiętam także, że widziałem jakieś narzędzie o nazwie yyrsagdzieś, ale nie mogę teraz nigdzie do niego znaleźć odniesień. Pytające umysły chcą wiedzieć!

Tymotka
źródło
5
i myślałem, że to było vim pytanie: P
ksenoterracid

Odpowiedzi:

10

Myślę, że ma to coś wspólnego z yacc, który ma pliki kończące się .yi wymaga wywołanej funkcji yylex.


źródło
6
To pytanie SO wydaje się zgadzać
Michał Mrożek
6
Cytując odpowiedź @ peterb w postu SO połączonym przez Michaela, „nie ma żadnego oczywistego znaczenia omawianego poza po prostu pragnieniem przestrzeni nazw.„ Yy ”w lex.yy.c wskazuje, że wyjście lex jest przeznaczone dla parsera yacc.” Dzięki chłopaki!
Timothy
2

Jak zauważyli inni tutaj i na StackOverflow , może to być po prostu podwojenie yz nazwy yaccnarzędzia, używanego do generowania unikalnej przestrzeni nazw.

POSIX standardowych zastrzega przestrzenie nazw zaczynających się na obu yyi YYdla yaccz kolejnym akapicie :

Nazwy mają dowolną długość, składają się z liter, kropek ( .), znaków podkreślenia ( _) i cyfr nieinicjalnych. Wielkie i małe litery są różne. Zgodne aplikacje nie mogą używać nazw rozpoczynających się od yyani YYod yaccparsera używającego takich nazw . Wiele nazw pojawia się na końcowym wyjściu yacc, dlatego należy je wybrać, aby były zgodne z wszelkimi dodatkowymi regułami utworzonymi przez kompilator C. W szczególności pojawiają się w #defineinstrukcjach.

Niestety, dokumenty POSIX są bardzo kiepskie w opowiadaniu jakiejkolwiek historii o tym, dlaczego tak się stało.

Kusalananda
źródło