Next: , Previous: Changequote, Up: Input Control


7.3 コメントデリミタ(comment delimiters)を変更する

デフォルトのコメントデリミタ(comment delimiters)は 組み込みマクロchangecomで変更できます。

     changecom(opt start, opt end)

startが新しいコメント開始デリミタ(start-comment delimiter)で、 endが新しいコメント終了デリミタ(end-comment delimiter)です。 欠けている引数があるときは、デフォルトのコメント区切り記号 (# と 改行文字)がその欠けている引数の代わりに使用されます。 コメント区切り記号は任意の長さにすることができます。

changecomは展開されると消滅します。

     define(`comment', `COMMENT')
     ⇒
     # A normal comment
     ⇒# A normal comment
     changecom(`/*', `*/')
     ⇒
     # Not a comment anymore
     ⇒# Not a COMMENT anymore
     But: /* this is a comment now */ while this is not a comment
     ⇒But: /* this is a comment now */ while this is not a COMMENT

あたかもクォートされた文字列であるかのようにコメントが出力にコピーされている 様子に注目してください。 コメント内部のテキストが展開されるようにしたいときは、 コメント開始デリミタをクォートしてください。

引数なしでchangecomを呼ぶとコメント機構が完全に無効になります。

     define(`comment', `COMMENT')
     ⇒
     changecom
     ⇒
     # Not a comment anymore
     ⇒# Not a COMMENT anymore