yyの意味を知っている人はいますか?


10

トピックは履歴の質問が考慮されるので、かなり長い間私を悩ませてきた質問をするだろうと思っていました。誰かが接頭辞yyの歴史的重要性を知っていますか?ほとんどのようなそれとlexの開始によって生成された変数や関数、のyylval、とyylex()。またyyrsa、どこかで名前が付けられたユーティリティを見たのを覚えていますが、現在、そのユーティリティへの参照を見つけることができません。探究心は知りたい!


5
そして私はこれがvimの質問だと思った:P
xenoterracide 2010年

回答:


10

これはyaccと関係があると思います。これはファイルがで終わり.y、と呼ばれる関数が必要yylexです。


6
このSOの質問は同意するようです
Michael Mrozek

6
MichaelがリンクしたSOの投稿で@peterbの応答を引用すると、「名前空間を単に望んでいる以上に、明確な意味については説明されていません。lex.yy.cの「yy」は、lex出力がyaccパーサー用であることを示しています。」みんなありがとう!
ティモシー

2

他の人がここやStackOverflowで指摘しているように、一意の名前空間を生成するために使用されるユーティリティyの名前を単に2倍にしたものである可能yacc性があります。

POSIX標準では、次の段落の両方yyで始まる名前空間が予約されています。YYyacc

名前は任意の長さで、文字、ピリオド(.)、アンダースコア(_)、および先頭以外の数字で構成されます。大文字と小文字は区別されます。準拠したアプリケーションは、で始まる名前を使用してはならないyyYYので、yaccパーサはこのような名前を使用しています。名前の多くはの最終出力に表示yaccされるため、使用するCコンパイラによって作成される追加の規則に準拠するように選択する必要があります。特に、それらは#defineステートメントに表示されます。

残念ながら、POSIXドキュメントは、物事が現在のようになっている理由について、あらゆる形態の歴史を関連付けることは非常に得意ではありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.