yy의 의미를 아는 사람이 있습니까?


10

이후 역사 문제가 주제에 대한 고려 , 나는 꽤 많은 시간 동안 나를 귀찮게 됐어요 하나를 물어 거라고 생각하고 내가 아는 아무도 답을 알고 것 같다. 역사의 중요성이 접두사 yy 인 것이 무엇인지 아는 사람이 있습니까? lex에 의해 생성 된 대부분의 변수와 함수는 yylval, 및 로 시작합니다 yylex(). 또한 yyrsa어딘가에 이름이 붙은 유틸리티를 본 기억이 있지만 지금은 어디에서나 참조를 찾을 수 없습니다. 궁금한 마음은 알고 싶다!


5
P : 그리고 나는 이것이 정력 문제라고 생각
xenoterracide

답변:


10

yacc와 관련이 있으며 파일은로 끝나고 .y라는 함수가 필요합니다 yylex.


6
이 질문 은 동의하는 것 같습니다
Michael Mrozek

6
Michael이 링크 한 SO 게시물에서 @peterb의 응답을 인용하면 "단순히 네임 스페이스를 원하는 것 외에는 아무런 의미가 없습니다. lex.yy.c의"yy "는 lex 출력이 yacc 파서 용임을 나타냅니다." 고마워요!
디모데

2

다른 사람들이 여기에서 그리고 StackOverflow 에서 지적했듯이 , 고유 이름 공간을 생성하는 데 사용되는 유틸리티 y이름의 두 배가 될 수 있습니다 yacc.

네임 스페이스가 모두 시작하는 POSIX 표준 보유 yy하고 YY위해 yacc다음 단락 :

이름은 문자, 마침표 ( .), 밑줄 ( _) 및 초기가 아닌 숫자 로 구성된 임의 길이 입니다. 대문자와 소문자는 서로 다릅니다. 적합한 응용 프로그램 은 파서가 그러한 이름을 사용하기 때문에 시작 yy하거나 YY그 이름을 사용해서는 안됩니다yacc . 대부분의 이름은의 최종 출력에 표시 yacc되므로 사용할 C 컴파일러에서 생성 한 추가 규칙을 준수하도록 선택해야합니다. 특히 그들은 #define진술에 나타납니다 .

불행히도 POSIX 문서는 왜 어떤 방식으로 현재의 방식이 되었는가에 대해 어떤 형태의 역사와도 관계가 없습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.