Хтось знає значення yy?


10

Оскільки питання історії розглядаються на тему , я подумав, що запитаю одне, яке клопоче мене досить довгий час, і ніхто, кого я знаю, здається, не знає відповіді. Хтось знає, яке історичне значення має префікс yy? Більшість змінних та функцій, породжених lex, починаються з нього, наприклад yylval, та yylex(). Я також пам’ятаю, yyrsaде я бачив утиліту, названу десь, але зараз не можу знайти посилання на неї. Допитливі розуми хочуть знати!


5
і я подумав, що це питання vim: P
ксенотерацид

Відповіді:


10

Я думаю, що це має щось спільне з yacc, у якого закінчуються файли .y, і потрібна функція, яка називається yylex.



6
Цитуючи відповідь @ peterb у публікації про SO, пов’язану Майклом, "немає очевидного сенсу, який обговорюється, крім простого бажання простору імен." Yy "у lex.yy.c вказує на те, що вихід lex призначений для аналізатора yacc". Дякую, хлопці!
Тимофій

2

Як вказували інші тут і на StackOverflow , це може бути просто подвоєння yз назви yaccутиліти, що використовується для створення унікального простору імен.

Стандартні запаси POSIX просторів імен , починаючи з як yyі YYдля yaccзі наступним пунктом :

Назви мають довільну довжину, складаються з літер, періодів ( .), підкреслення ( _) та непочаткових цифр. Великі і малі літери виразні. Відповідні програми не повинні використовувати імена , починаючи з yyабо , YYоскільки yaccаналізатор використовує такі імена . Багато імен з'являються в кінцевому висновку yacc, і тому їх слід вибирати, щоб відповідати будь-яким додатковим правилам, створеним компілятором C для використання. Зокрема, вони фігурують у #defineзаявах.

На жаль, документи POSIX дуже погано стосуються будь-якої форми історії щодо того, чому все стало таким, яким вони є.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.