~부터역사적 문제가 테마로 간주됩니다., 오랫동안 나를 괴롭히던 질문을 하려고 했는데, 제가 아는 사람 중 누구도 그 답을 아는 사람이 없는 것 같습니다. 접두사 yy의 역사적 중요성이 무엇인지 아는 사람이 있습니까? yylval
, 및 처럼 lex에 의해 생성된 대부분의 변수와 함수는 lex로 시작합니다 yylex()
. 또한 어딘가에서 호출되는 유틸리티를 본 기억이 나지만 yyrsa
현재는 이에 대한 참조를 찾을 수 없습니다. 알고싶다!
답변1
나는 이것이 yacc와 관련이 있다고 생각합니다. yacc에는 파일이 로 .y
끝나고 yylex
.
답변2
다른 사람들이 여기 저기 지적했듯이스택 오버플로y
yacc
, 고유한 네임스페이스를 생성하는 데 사용되는 유틸리티 이름의 두 배가 될 수도 있습니다 .
POSIX 표준은 Both yy
및 YY
for 로 yacc
시작하는 네임스페이스를 예약합니다.다음 단락:
이름은 임의 길이이며 문자, 마침표(
.
), 밑줄(_
) 및 선행 숫자가 아닌 숫자로 구성됩니다. 대문자와 소문자는 다릅니다.호환 응용 프로그램은 파서가 이러한 이름을 사용하기 때문에yy
시작하는 이름을 사용해서는 안 됩니다.YY
yacc
. 최종 출력에는 많은 이름이 표시되므로yacc
사용 중인 C 컴파일러에서 생성된 추가 규칙을 준수하도록 선택해야 합니다. 특히#define
성명서 에 나타나는 경우 .
불행하게도 POSIX 문서는 상황이 왜 그런 것인지에 대한 모든 종류의 기록을 연결하는 데 매우 좋지 않습니다.