Next: , Up: Programming in M4sugar   [Contents][Index]


8.3.1 M4¥Þ¥¯¥í¤ÎºÆÄêµÁ

¤¤¤¯¤Ä¤«Îã³°¤¬¤¢¤ê¤Þ¤¹¤¬¡¤Á´¤Æ¤ÎM4¥Í¥¤¥Æ¥£¥Ö¤Ê¥Þ¥¯¥í¤Ï¡¤‘m4_’µ¿»÷̾ Á°¶õ´Ö¤Ë°Üư¤µ¤ì¤Æ¤¤¤Æ¡¤Î㤨¤Ð¡¤M4sugar¤Ç¤Ïdefine¤ò m4_define¤Ë̾Á°¤òÊѤ¨¤ë¤Ê¤É¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡¥

M4¥Þ¥¯¥í¤Ë¤ÏºÆÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤â¤Î¤â¤¢¤ê¡¤¥Í¥¤¥Æ¥£¥Ö¤ÊƱµÁ¸ì¤È¤ï¤º¤«¤Ë¸ß´¹ À­¤¬¤Ê¤¯¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡¥

Macro: dnl

¤³¤Î¥Þ¥¯¥í¤Ï¡¤¤â¤È¤â¤È¤Î̾Á°¤ò°Ý»ý¤·¤Æ¤¤¤Þ¤¹¡¥m4_dnl¤ÏÄêµÁ¤µ¤ì¤Æ ¤¤¤Þ¤»¤ó¡¥

Macro: m4_defn (macro)

M4ÁȤ߹þ¤ß¤Î¤â¤Î¤ÈÈæ³Ó¤·¤Æ¡¤¤³¤Î¥Þ¥¯¥í¤Ï¡¤macro¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤ ¾ì¹ç¤Ï¼ºÇÔ¤·¤Þ¤¹¡¥m4_undefine¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡¥

Macro: m4_exit (exit-status)

¤³¤Î¥Þ¥¯¥í¤Ïm4exit¤ËÂбþ¤·¤Þ¤¹¡¥

Macro: m4_if (comment)
Macro: m4_if (string-1, string-2, equal, [not-equal])
Macro: m4_if (string-1, string-2, equal, …)

¤³¤Î¥Þ¥¯¥í¤Ïifelse¤ËÂбþ¤·¤Þ¤¹¡¥

Macro: m4_undefine (macro)

M4ÁȤ߹þ¤ß¤Î¤â¤Î¤È¤Ï°Û¤Ê¤ê¡¤¤³¤Î¥Þ¥¯¥í¤Ïmacro¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì ¹ç¤Ï¼ºÇÔ¤·¤Þ¤¹¡¥°Ê²¼¤Î¤è¤¦¤Ë»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡¥

m4_ifdef([macro], [m4_undefine([macro])])

¤½¤ì¤Ç¡¤ÁȤ߹þ¤ß¤Î¤â¤Î¤Îưºî¤ËÉüµì¤·¤Þ¤¹¡¥

Macro: m4_bpatsubst (string, regexp, [replacement])

¤³¤Î¥Þ¥¯¥í¤Ïpatsubst¤ËÂбþ¤·¤Þ¤¹¡¥m4_patsubst¤Î̾Á°¤Ï¡¤ epatsubst¤Ç³ÈÄ¥¤·¤¿Àµµ¬É½¸½¤Î¹½Ê¸¤òÄ󶡤¹¤ë¡¤GNU M4¤ÎºÇ ¾å°Ì¤ÎM4sh¤Î¾­Íè¤Î¥Ð¡¼¥¸¥ç¥ó¤ËÂФ·¤Æ»Ä¤µ¤ì¤Æ¤¤¤Þ¤¹¡¥

Macro: m4_popdef (macro)

M4ÁȤ߹þ¤ß¤Î¤â¤Î¤È¤Ï°Û¤Ê¤ê¡¤¤³¤Î¥Þ¥¯¥í¤Ïmacro¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì ¹ç¤Ï¼ºÇÔ¤·¤Þ¤¹¡¥m4_undefine¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡¥

Macro: m4_bregexp (string, regexp, [replacement])

¤³¤Î¥Þ¥¯¥í¤Ïregexp¤ËÂбþ¤·¤Æ¤¤¤Þ¤¹¡¥m4_regexp¤Î̾Á°¤Ï¡¤ eregexp¤Ç³ÈÄ¥¤·¤¿Àµµ¬É½¸½¤Î¹½Ê¸¤òÄ󶡤¹¤ë¡¤GNU M4¤ÎºÇ¾å °Ì¤ÎM4sh¤Î¾­Íè¤Î¥Ð¡¼¥¸¥ç¥ó¤ËÂФ·¤Æ»Ä¤µ¤ì¤Æ¤¤¤Þ¤¹¡¥

Macro: m4_wrap (text)

¤³¤Î¥Þ¥¯¥í¤Ïm4wrap¤ËÂбþ¤·¤Æ¤¤¤Þ¤¹¡¥

Æó¤Ä¤ÎϢ³¤·¤Æ¸Æ¤Ó½Ð¤µ¤ì¤ëm4_wrap¤¬¡¤¤½¤Î¤Þ¤Þ¥È¡¼¥¯¥ó¤È¤·¤ÆÅϤµ¤ì ¤ë¤È¤¤¤¦Í½´ü¤·¤Ê¤¤·ë²Ì¤È¤Ê¤ë´í¸±¤¬Ìµ¤¤¤è¤¦¤Ë¡¤text¤ò‘[]’ ¤Ç½ª ¤¨¤ë¤³¤È¤¬¿ä¾©¤µ¤ì¤Þ¤¹¡¥

m4_define([foo], [Foo])
m4_define([bar], [Bar])
m4_define([foobar], [FOOBAR])
m4_wrap([bar])
m4_wrap([foo])
⇒FOOBAR