Qualcuno conosce il significato di yy?


10

Dato che le domande di storia sono considerate in tema , ho pensato di chiederne una che mi ha infastidito da un po 'di tempo e nessuno che conosco sembra conoscere la risposta. Qualcuno sa qual è il significato storico del prefisso yy? La maggior parte delle variabili e funzioni generate da lex iniziano con esso, come yylval, e yylex(). Ricordo anche di aver visto un'utilità chiamata yyrsada qualche parte, ma ora non riesco a trovare riferimenti ad essa da nessuna parte. Le menti indagatrici vogliono sapere!


5
e ho pensato che fosse una domanda vim: P
xenoterracide,

Risposte:


10

Penso che abbia qualcosa a che fare con yacc, che ha i file che finiscono .ye richiede una funzione chiamata yylex.


6
Questa domanda SO sembra essere d'accordo
Michael Mrozek

6
Citando la risposta di @ peterb nel post SO collegato da Michael, "non c'è alcun significato apparente discusso oltre al semplice desiderare uno spazio dei nomi." Yy "in lex.yy.c indica che l'output lex è destinato a un parser yacc". Grazie ragazzi!
Timothy,

2

Come altri hanno sottolineato qui e su StackOverflow , potrebbe semplicemente essere un raddoppio del ynome yaccdell'utilità, utilizzato per generare uno spazio dei nomi univoco.

Lo standard POSIX riserva gli spazi dei nomi a partire da entrambi yye YYper yacccon il seguente paragrafo :

I nomi hanno lunghezza arbitraria, composta da lettere, punti ( .), caratteri di sottolineatura ( _) e cifre non iniziali. Le lettere maiuscole e minuscole sono distinte. Le domande conformi non devono utilizzare nomi che iniziano yyo YYin cui il yaccparser utilizza tali nomi . Molti dei nomi compaiono nell'output finale di yacc, e quindi dovrebbero essere scelti in modo da conformarsi a qualsiasi regola aggiuntiva creata dal compilatore C da usare. In particolare compaiono nelle #definedichiarazioni.

Sfortunatamente, i documenti POSIX sono molto pessimi nel mettere in relazione qualsiasi forma di storia sul perché le cose siano diventate come sono attualmente.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.