LexとYaccでコメントを作成するにはどうすればよいですか?LexとYaccでのコメントの作成
これまで私はYaccを試していませんでしたが、Lexでは/* comment */
と// comment
を試しましたが、どちらもコンパイルしませんでした。私はMac上で、組み込みのLexとYaccコンパイラを使っています(あるいは、X-Codeのものかもしれませんが、わかりません)。 LexまたはYaccのコメントの正しい構文は何か、あるいはその両方が望ましいですか?
LexとYaccでコメントを作成するにはどうすればよいですか?LexとYaccでのコメントの作成
これまで私はYaccを試していませんでしたが、Lexでは/* comment */
と// comment
を試しましたが、どちらもコンパイルしませんでした。私はMac上で、組み込みのLexとYaccコンパイラを使っています(あるいは、X-Codeのものかもしれませんが、わかりません)。 LexまたはYaccのコメントの正しい構文は何か、あるいはその両方が望ましいですか?
情報フレックスより:定義において
と%{と%}で囲まれた任意のインデントテキスト またはテキスト(「} {%と 出力にそのままコピーされ、セクションルール削除されました)。 %{}は、 が行内にインデントされていないと表示される必要があります。
この場合、関連するテキストはターゲット言語のコメントにすることができます。定義セクション(ただしルールセクション)において
、 、インデントコメント(
/*
始まるすなわち、ライン) も次*/
までの出力にそのままコピーされます。
有効なCコメントは、コードブロック内のコメントです。
のコメントyaccは/* ... */
です。
どれCコメントがどこかのYaccとLexの両方でのプログラムの中でコメントとして許容され、しかし:
/* comment */
に書き込まれたあなたのあなたの文章のLHSに触れるプログラムはではありません!
// comment
のコメントを受け入れるため、LexとYaccはうまくありません。これらのコメントは、Cプログラムで動作しますが、は動作しません!
'#comment'のLexコメント構文は機能しません。 (宣言セクションは真中のものです) – Stegosaurus
宣言セクションが最初のセクションです。真ん中はルールセクションです。 rulesセクションでは、インデントされた行(スペースまたはタブで始まる)はlex.yy.cファイルにコピーされたCコードなので、Cのコメントは有効でコピーされ、Cコンパイラのコメントとして扱われます。 –
@ChrisDodd、ah! '[TAB]/* comment * /'と '[TAB] // comment'がうまくいくはずです。 – Stegosaurus