Что означает «yy» в lex.yy.c? - PullRequest
       28

Что означает «yy» в lex.yy.c?

16 голосов
/ 19 августа 2009

Что означает "yy" в lex.yy.c?

Ответы [ 4 ]

15 голосов
/ 19 августа 2009

Лекс должен был использоваться вместе с Яком. История и детали этого подробно описаны в статье Стивена Джонсона Yacc: еще один компилятор компилятора . В синтаксическом анализаторе Yacc используются только имена, начинающиеся с «yy» - здесь не обсуждается никакой очевидный смысл, кроме простого указания пространства имен. «Yy» в файле lex.yy.c указывает, что вывод lex предназначен для синтаксического анализатора yacc.

1 голос
/ 19 августа 2009

Я полагаю, что "yy" используется, чтобы указать, что это сгенерированный файл кода.

Обычно утилита lex записывает созданную программу в файл lex.yy.c - Ссылка

0 голосов
/ 19 августа 2009

Вероятно, из YACC (еще одного компилятора компилятора), который использовался вместе с Lex для реализации довольно многих компиляторов и подобных программ. Эквивалентами Gnu являются Bison и Flex, и теперь они выглядят гораздо более широко, поэтому связь может быть не очевидной.

0 голосов
/ 19 августа 2009

Я думаю, что это происходит от Yacc, одного из старых генераторов синтаксического анализатора.

...