Next: Changequote is Evil, Previous: One Macro Call, Up: M4 Quotation [Contents][Index]
¤³¤ì°Ê¹ß¤ÎÎã¤Ç¤Ï¡¤°Ê²¼¤Î¥Þ¥¯¥í¤ò»ÈÍѤ·¤Æ¤¤¤Þ¤¹¡¥
define([car], [$1]) define([active], [ACT, IVE]) define([array], [int tab[10]])
ÄɲäÎËä¤á¹þ¤Þ¤ì¤¿¥Þ¥¯¥í¸Æ¤Ó½Ð¤·¤Ï¡¤¤½¤ì¤¾¤ì¶½Ì£¿¼¤¤°úÍÑÉä¤Ë¤Ä¤¤¤Æ¡¤¤½¤Î ¾¤Î²ÄǽÀ¤òƳ¤½Ð¤·¤Þ¤¹¡¥
car(active) ⇒ACT car([active]) ⇒ACT, IVE car([[active]]) ⇒active
ºÇ½é¤Î¾õ¶·¤Ç¤Ï¡¤¥È¥Ã¥×¥ì¥Ù¥ë¤Ç¤Ïcar
¤Î°ú¿ô¤òõ¤·¡¤‘active’ ¤¬
¸«¤Ä¤«¤ê¤Þ¤¹¡¥M4¤Ï¥Þ¥¯¥í¤òŬÍѤ¹¤ëÁ°¤Î¤½¤Î°ú¿ô¤ÈÅù²Á¤Ê¤Î¤Ç¡¤
‘active’¤ÏŸ³«¤µ¤ì¡¤·ë²Ì¤È¤·¤Æ°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡¥
car(ACT, IVE) ⇒ACT
ÆóÈÖÌܤξõ¶·¤Ç¤Ï¡¤¥È¥Ã¥×¥ì¥Ù¥ë¤Ïcar
¤ÎºÇ½é¤ÇÍ£°ì¤Î°ú¿ô¤È¤·¤Æ
‘active’¤òÍ¿¤¨¤ë¤Î¤Ç¡¤·ë²Ì¤È¤·¤Æ°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡¥
active ⇒ACT, IVE
¤¹¤Ê¤ï¤Á¡¤¥Þ¥¯¥í¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿¸å¤Ç¡¤°ú¿ô¤¬É¾²Á¤µ¤ì¤Þ¤¹¡¥»°ÈÖÌܤÎ
¾õ¶·¤Ç¤Ï¡¤car
¤Ï‘[active]’¤ò¼õ¤±¤È¤ê¡¤·ë²Ì¤È¤·¤Æ°Ê²¼¤Î¤è¤¦¤Ë
¤Ê¤ê¤Þ¤¹¡¥
[active] ⇒active
¾åµ¤Ç¸«¤¿¤â¤Î¤ÈƱ¤¸¤Ç¤¹¤Í¡¥
¤è¤ê¸½¼ÂŪ¤ÊÎã¤òŬÍѤ·¤Æ¡¤¾åµ¤ÎÎã¤ËÍ¿¤¨¤Æ¤ß¤Þ¤·¤ç¤¦¡¥
car(int tab[10];) ⇒int tab10; car([int tab[10];]) ⇒int tab10; car([[int tab[10];]]) ⇒int tab[10];
¤¦¡Á¤ó¡© ºÇ½é¤Î¾õ¶·¤Ï´Êñ¤ËÍý²ò¤Ç¤¤Þ¤¹¤¬¡¤¤Ê¤¼ÆóÈÖÌܤ¬´Ö°ã¤Ã¤Æ¤¤¤Æ¡¤»°
ÈÖÌܤÏÀµ¤·¤¤¤Î¤Ç¤·¤ç¤¦¤«¡©¤½¤ì¤òÍý²ò¤¹¤ë¤¿¤á¤Ë¡¤M4¤¬¥Þ¥¯¥í¤òŸ³«¤·¤¿¸å¡¤
·ë²Ì¤È¤·¤ÆÀ¸¤¸¤ë¥Æ¥¥¹¥È¤¬¤¹¤°¤Ë¥Þ¥¯¥í¤òŸ³«¤Ë½¾¤Ã¤Æ°úÍÑÉ䤬¼è¤ê½ü¤«¤ì¤ë
¤³¤È¤òÃΤäƤª¤¯É¬Íפ¬¤¢¤ê¤Þ¤¹¡¥¤³¤ì¤Ï¡¤°úÍÑÉä¤Îºï½ü¤¬Æó²ó¹Ô¤Ê¤ï¤ì¤ë¤³¤È
¤ò°ÕÌ£¤·¤Þ¤¹ — ºÇ½é¤Ë°ú¿ô¤È¤·¤Æcar
¥Þ¥¯¥í¤ËÅϤµ¤ì¤ë¤È¤¡¤Æó²óÌÜ
¤Ïcar
¥Þ¥¯¥í¤¬ºÇ½é¤Î°ú¿ô¤òŸ³«¤¹¤ë¤È¤¤Ç¤¹¡¥
Autoconf¥Þ¥¯¥ícar
¤Îºî¼Ô¤È¤·¤Æ¡¤¥æ¡¼¥¶¤¬car
¤Î°ú¿ô¤òÆó½Å¤Î°ú
ÍÑÉä¤Ë¤¹¤ëɬÍפ¬¤¢¤ë¤³¤È¤Ï´Ö°ã¤Ã¤Æ¤¤¤ë¤È¹Í¤¨¤ë¤è¤¦¤Ë¤·¡¤¥Þ¥¯¥í¤ò½¤
Àµ¤·¤Æ¤¯¤À¤µ¤¤¡¥°úÍÑÉä¤Ç°Ï¤Þ¤ì¤Æ¤¤¤ëcar
¤ËÂФ·¤Æ¡¤¤½¤ì¤ò
qar
¤È¸Æ¤Ö¤³¤È¤Ë¤·¤Þ¤·¤ç¤¦¡¥
define([qar], [[$1]])
¤½¤·¤Æ¡¤qar
¤¬Å¬Àڤ˽¤Àµ¤µ¤ì¤Æ¤¤¤ë¤³¤È¤òÄ´ºº¤·¤Æ¤ß¤Þ¤¹¡¥
qar([int tab[10];]) ⇒int tab[10];
¤¢¤¡¡ª¤½¤¦¤·¤¿Êý¤¬Îɤµ¤½¤¦¤Ç¤¹¤Í¡¥
¤·¤«¤·¡¤¼«Ê¬¤¬¹Ô¤Ê¤Ã¤¿¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡¥¸½ºß¤½¤Î°ú¿ô¤Ï¥ê¥Æ¥é¥ëʸ»ú Îó¤Ç¤¹¤¬¡¤°ú¿ô¤òŸ³«¤·¤¿·ë²Ì¤ò¥æ¡¼¥¶¤¬»ÈÍѤ·¤¿¤¤¾ì¹ç¡¤°úÍÑÉä¤Ç°Ï¤Þ ¤ì¤Æ¤¤¤Ê¤¤¥Þ¥¯¥í¤ò»ÈÍѤ¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡¥
qar(active) ⇒ACT
car
¤òÍѤ¤¤Æ¹Ô¤Ê¤Ã¤Æ¤¤¤¿¤³¤È¤òºÆÀ¸À®¤·¤¿¤¤¾õ¶·¤ò¹Í¤¨¤Þ¤¹¡¥
car([active]) ⇒ACT, IVE
¤Þ¤ÀÂÌÌܤǤ¹¤Í¡¥cpp
¥Þ¥¯¥í¤ÎÁȤòÀ¸À®¤¹¤ë¥Þ¥¯¥í¤ò»ÈÍѤ·¤¿¤¤¾õ¶·¤ò¹Í
¤¨¤Æ¤ß¤Þ¤·¤ç¤¦¡¥
define([my_includes], [#include <stdio.h>]) car([my_includes]) ⇒#include <stdio.h> qar(my_includes) error→EOF in argument list
¤³¤Î¥Þ¥¯¥íqar
¤Ï¡¤°ú¿ô¤òÆó½Å¤Ë°úÍÑÉä¤Ç°Ï¤à¤Î¤Ç¡¤¥æ¡¼¥¶¤Ï¥Þ¥¯¥í¤Î¸Æ
¤Ó½Ð¤·¤ò°úÍÑÉä¤Ç°Ï¤Þ¤Ê¤¤¤Þ¤Þ¤Ë¤·¤Æ¤ª¤¯¤è¤¦¶¯À©¤µ¤ì¤ë¤Î¤Ç¡¤¤½¤ì¤Ï´í¸±¤Ç¤¹¡¥
¥«¥ó¥Þ¤È¤½¤Î¾¤Î¥¢¥¯¥Æ¥£¥Ö¤Ê¥·¥ó¥Ü¥ë¤Ï¡¤¥Þ¥¯¥í¤ËÅϤµ¤ì¤ëÁ°¤ËM4¤Ç²ò¼á¤µ¤ì¡¤
¤½¤ì¤Ï¥æ¡¼¥¶¤¬´üÂÔ¤·¤Æ¤¤¤ë¼êË¡¤Ç¤Ï¤Ê¤¤¤³¤È¤¬Â¿¤¤¤â¤Î¤Ç¤¹¡¥¤Þ¤¿¡¤
qar
¤Ï¡¤Â¾¤Î¥Þ¥¯¥í¤È¤Ï°Û¤Ê¤ëưºî¤ò¤¹¤ë¤Î¤Ç¡¤Autoconf¤Ç¤ÏÈò¤±¤ë¤Ù¤
Îã³°¤Ë¤Ê¤ê¤Þ¤¹¡¥