~から歴史的な問題はテーマと見なされます。、長い間私を悩ませていた質問をしようとしましたが、私が知っている人のどれもその答えを知る人がいないようです。プレフィックスyyの歴史的重要性が何であるかを知っている人はいますか?yylval
、および同様に、lexによって生成されたほとんどの変数と関数はlexで始まりますyylex()
。また、どこかで呼び出されるユーティリティを見たことがありますが、yyrsa
現在はそれへの参照が見つかりません。知りたい!
答え1
私はこれがyaccに関連していると思います。 yaccにファイルがで.y
終わりyylex
。
答え2
他の人がここで指摘したようにスタックオーバーフローy
yacc
、一意の名前空間を作成するために使用されるユーティリティ名の2倍にすることもできます。
POSIX標準は、Bothyy
とYY
forでyacc
始まる名前空間を予約します。次の段落:
名前は任意の長さで、文字、ピリオド(
.
)、アンダースコア(_
)、および先行数字以外の数字で構成されています。大文字と小文字は異なります。互換アプリケーションは、パーサーがこれらの名前を使用するため、yy
開始する名前を使用しないでください。YY
yacc
。最終出力には多くの名前が表示されるため、yacc
使用しているCコンパイラによって生成された追加の規則に準拠するように選択する必要があります。特に#define
声明に記載されている場合。
残念ながら、POSIX文書は、なぜ状況がそのようなものであるのかについてのあらゆる種類の記録を結び付けるのに非常に悪いことです。