Có ai biết ý nghĩa của yy không?


10

Vì các câu hỏi lịch sử được xem xét về chủ đề , tôi đoán rằng tôi đã hỏi một câu hỏi đã làm tôi khó chịu trong một thời gian và dường như không ai biết câu trả lời. Có ai biết ý nghĩa lịch sử của tiền tố yy là gì không? Hầu hết các biến và hàm được tạo bởi lex bắt đầu với nó, chẳng hạn như yylval, và yylex(). Tôi cũng nhớ đã thấy một tiện ích có tên yyrsaở đâu đó, nhưng không thể tìm thấy tài liệu tham khảo về nó ở bất cứ đâu bây giờ. Tìm hiểu tâm trí muốn biết!


5
và tôi nghĩ rằng đây là một câu hỏi vim: P
xenoterracide

Câu trả lời:


10

Tôi nghĩ rằng nó có một cái gì đó để làm với yacc, trong đó có các tệp kết thúc .yvà yêu cầu một chức năng được gọi yylex.


6
Câu hỏi SO này dường như đồng ý
Michael Mrozek

6
Trích dẫn phản hồi của @ peterb trong bài viết SO được liên kết bởi Michael, "không có ý nghĩa rõ ràng nào được thảo luận ngoài việc chỉ đơn giản là mong muốn một không gian tên." Yy "trong lex.yy.c chỉ ra rằng đầu ra lex được dành cho trình phân tích cú pháp yacc." Cảm ơn các bạn!
Ti-mô-thê

2

Như những người khác đã chỉ ra ở đây và trên StackOverflow , nó có thể chỉ đơn giản là nhân đôi ytừ tên của yacctiện ích, được sử dụng để tạo một không gian tên duy nhất.

Dự trữ tiêu chuẩn POSIX các không gian tên bắt đầu với cả hai yyYYcho yaccvới đoạn sau đây :

Tên có độ dài tùy ý, bao gồm các chữ cái, dấu chấm ( .), dấu gạch dưới ( _) và chữ số không phải là chữ cái đầu. Chữ in hoa và chữ thường là khác biệt. Các ứng dụng phù hợp sẽ không sử dụng các tên bắt đầu trong yyhoặc YYdo yacctrình phân tích cú pháp sử dụng các tên đó . Nhiều tên xuất hiện trong đầu ra cuối cùng của yacc, và do đó chúng nên được chọn để phù hợp với bất kỳ quy tắc bổ sung nào được tạo bởi trình biên dịch C sẽ được sử dụng. Đặc biệt chúng xuất hiện trong các #definetuyên bố.

Thật không may, các tài liệu POSIX rất tệ trong việc liên quan đến bất kỳ hình thức lịch sử nào về lý do tại sao mọi thứ trở thành như hiện tại.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.