Хтось знає значення 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.