Adakah yang tahu arti yy?


10

Karena pertanyaan sejarah dipertimbangkan pada topik , saya pikir saya akan bertanya yang sudah cukup lama mengganggu saya dan tidak ada yang saya tahu yang tahu jawabannya. Adakah yang tahu apa arti historis dari awalan itu? Sebagian besar variabel dan fungsi yang dihasilkan oleh lex mulai dengan itu, seperti yylval, dan yylex(). Saya juga ingat melihat utilitas bernama di yyrsasuatu tempat, tetapi tidak dapat menemukan referensi ke mana pun sekarang. Pikiran yang ingin tahu ingin tahu!


5
dan saya pikir ini adalah pertanyaan vim: P
xenoterracide

Jawaban:


10

Saya pikir itu ada hubungannya dengan yacc, yang memiliki file yang diakhiri .y, dan membutuhkan fungsi yang disebut yylex.


6
Pertanyaan SO ini sepertinya setuju
Michael Mrozek

6
Mengutip tanggapan @ peterb dalam posting SO yang ditautkan oleh Michael, "tidak ada makna yang jelas dibahas selain hanya menginginkan namespace." Yy "di lex.yy.c menunjukkan bahwa output lex ditujukan untuk parser yacc." Terima kasih teman-teman!
Timothy

2

Seperti yang orang lain tunjukkan di sini dan di StackOverflow , itu mungkin hanya penggandaan dari ynama yaccutilitas, yang digunakan untuk menghasilkan ruang nama yang unik.

Standar POSIX menyimpan ruang nama yang dimulai dengan keduanya yydan YYuntuk yaccdengan paragraf berikut :

Nama panjangnya berubah-ubah, terdiri dari huruf, titik ( .), garis bawah ( _), dan digit non-awal. Huruf besar dan kecil berbeda. Aplikasi yang sesuai tidak boleh menggunakan nama yang dimulai dengan yyatau YYkarena yaccparser menggunakan nama tersebut . Banyak nama muncul di hasil akhir yacc, dan dengan demikian mereka harus dipilih untuk menyesuaikan dengan aturan tambahan yang dibuat oleh kompiler C untuk digunakan. Khususnya mereka muncul dalam #definepernyataan.

Sayangnya, dokumen POSIX sangat buruk dalam menghubungkan segala bentuk sejarah tentang mengapa segala sesuatu menjadi seperti sekarang ini.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.