Next: , Previous: Defn, Up: Definitions   [Contents][Index]


4.6 ¥Þ¥¯¥í¤Î°ì»þŪ¤ÊºÆÄêµÁ

¤¢¤ë¥Þ¥¯¥í¤ò°ì»þŪ¤ËºÆÄêµÁ¤·¤Æ¤ª¤­¡¢¸å¤Ç¸µ¤ÎÄêµÁ¤ËÌ᤹¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ¤½¤ì¤Ë¤Ïdefine¤Èundefine¤ËÎɤ¯»÷¤¿¡¢ ÁȤ߹þ¤ß¥Þ¥¯¥ípushdef¤Èpopdef¤ò»È¤¤¤Þ¤¹¡£

pushdef(name [, expansion])
popdef(name)

¤³¤ì¤é¤Î¥Þ¥¯¥í¤Ï¥¹¥¿¥Ã¥¯¡Êstack¡Ë¤Ë»÷¤¿»ÅÁȤߤǵ¡Ç½¤·¤Þ¤¹¡£ pushdef¤Ï¡¢¤¢¤ë¥Þ¥¯¥í¤ò°ì»þŪ¤ËºÆÄêµÁ¤·¤Þ¤¹¡£ ¤³¤Î¤È¤­name¤ÎÁ°¤ÎÄêµÁ¤Ï¡¢¿·¤·¤¤ÄêµÁ¤Ë¤è¤Ã¤ÆÃÖ¤­´¹¤¨¤é¤ì¤ëÁ°¤Ë Êݸ¤µ¤ì¤Þ¤¹¡£¤â¤·Á°¤ÎÄêµÁ¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¤Ï¡¢ pushdef¤Ïdefine¤È¤Þ¤Ã¤¿¤¯Æ±¤¸¤è¤¦¤Ëµ¡Ç½¤·¤Þ¤¹¡£

¤¢¤ë¥Þ¥¯¥í¤ËÊ£¿ô¤ÎÄêµÁ¤¬Â¸ºß¤¹¤ë¾ì¹ç(¤½¤ÎÃæ¤Î°ì¤Ä¤À¤±¤¬¥¢¥¯¥»¥¹²Äǽ¤Ç¤¹)¡¢ popdef¤ò»È¤Ã¤Æ°ìÈÖ¾å¤ÎÄêµÁ¤òºï½ü¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ Á°¤ÎÄêµÁ¤¬Ìµ¤¤¾ì¹ç¡¢popdef¤Ïundefine¤Î¤è¤¦¤Ëµ¡Ç½¤·¤Þ¤¹¡£

define(`foo', `Expansion one.')
⇒
foo
⇒Expansion one.
pushdef(`foo', `Expansion two.')
⇒
foo
⇒Expansion two.
popdef(`foo')
⇒
foo
⇒Expansion one.
popdef(`foo')
⇒
foo
⇒foo

define¤Ë¤è¤Ã¤Æ¡¢Ê£¿ô¤ÎÄêµÁ¤ò»ý¤Ä¥Þ¥¯¥í¤òºÆÄêµÁ¤·¤¿¤È¤­¤Ï¡¢ °ìÈÖ¾å¤ÎÄêµÁ¤¬¿·¤·¤¤ÄêµÁ¤ÇÃÖ¤­´¹¤¨¤é¤ì¤Þ¤¹¡£ undefine¤Ë¤è¤Ã¤ÆÄêµÁ¤òºï½ü¤¹¤ë¤È¤­¤Ï¡¢ °ìÈÖ¾å¤Î¤â¤Î°ì¤Ä¤À¤±¤Ç¤Ï¤Ê¤¯¡¢¤¹¤Ù¤Æ¤ÎÄêµÁ¤¬ºï½ü¤µ¤ì¤Þ¤¹¡£

define(`foo', `Expansion one.')
⇒
foo
⇒Expansion one.
pushdef(`foo', `Expansion two.')
⇒
foo
⇒Expansion two.
define(`foo', `Second expansion two.')
⇒
foo
⇒Second expansion two.
undefine(`foo')
⇒
foo
⇒foo

pushdef¤Èdefn¤ò»È¤¨¤Ð¡¢ÁȤ߹þ¤ß¥Þ¥¯¥í¤ò°ì»þŪ¤ËºÆÄêµÁ¤¹¤ë¤³¤È¤¬ ¤Ç¤­¤Þ¤¹¡£

¥Þ¥¯¥ípushdef¤Èpopdef¤Ï°ú¿ô¤òÍ¿¤¨¤¿¤È¤­¤À¤±Ç§¼±¤µ¤ì¤Þ¤¹¡£