Что означает “yy” в lex.yy.c?
-
18-09-2019 - |
Вопрос
Что означает "yy" в lex.yy.c?
Решение
Лекс должен был использоваться совместно с Якком.История и подробности этого подробно описаны в статье Стивена Джонсона. Якк:Еще один компилятор.Парсер Yacc использует только имена, начинающиеся с «yy» — здесь не обсуждается никакого очевидного смысла, кроме простого желания иметь пространство имен.«yy» в lex.yy.c указывает, что выходные данные lex предназначены для анализатора yacc.
Другие советы
Я полагаю, что "yy" используется для обозначения того, что это сгенерированный файл кода.
Обычно утилита lex записывает генерируемую ею программу в файл lex.yy.c - Ссылка
Я думаю, что это исходит от Yacc, одного из старых генераторов парсеров.
Вероятно, из YACC (Еще один компилятор-компилятор), который использовался вместе с Lex для реализации множества компиляторов и подобных программ.Эквивалентами Gnu являются Bison и Flex, и сейчас они выглядят гораздо более распространенными, поэтому связь может быть неочевидной.