Previous: Evaluation Macros, Up: Programming in M4sugar


8.3.3 禁止されているパターン

M4sugar提供の目的は,怪しげはパターン,つまり出力に現れるべきではないトー クンを記述しているパターンを定義するためです.例えば,Autoconf configureスクリプトに‘AC_DEFINE’や‘dnl’のようなトークン が含められている場合,おそらく何か問題が発生するでしょう(通常は,余分な 引用符のためにマクロが評価されていないためです).

M4sugarは,‘^m4_’と‘^dnl$’に一致する全てのトークンを禁止します.

— Macro: m4_pattern_forbid (pattern)

出力で見つかる必要のあるpatternにマッチするトークンを宣言しません. コメントは調査されません.これは,例えば,‘#include’より後に展開さ れないまま残っているマクロがある場合に問題になるはずです.現在,Autoconf コミュニティでは合意がとおらず,コメント内で指名されているマクロを有効に すべきだと考えている人もいるからです(‘#’のコメントは出力を説明する べきで,‘dnl’コメントのように入力を説明するのではないため,このドキュ メントの著者には意味がありません).

もちろん,これらの一般的な規則の例外に遭遇する可能性もあり,例えば, ‘$m4_flags’を参照する必要があるかもしれません.

— Macro: m4_pattern_allow (pattern)

patternに一致している全てのトークンが可能で,それには m4_pattern_forbidパターンに一致しているものも含まれます.