Go to the first, previous, next, last section, table of contents.


Copyright @copyright 1989, 90, 91, 92, 93, 94 Free Software Foundation, Inc.

Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.

Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.

Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the Foundation.

µµÀÔ°ú Áغñ

À̹ø ù Àå¿¡¼­´Â GNU m4°¡ ¹«¾ùÀÌ°í ¾îµð¼­ºÎÅÍ À¯·¡°¡ µÇ¾ú´ÂÁö¿Í ÀÌ ¹®¼­ÀÇ È°¿ë¹ý, m4 ÇÁ·Î±×·¥ÀÇ È£Ãâ¹ý ¹× ¹ö±× º¸°í ¹æ¹ý¿¡ ´ëÇؼ­ ¼³¸íÇÑ´Ù. ¾Æ¿ï·¯ ¸Å´º¾óÀÇ ³ª¸ÓÁö ºÎºÐÀ» Àд ¹æ¹ý¿¡ ´ëÇÑ ÆÁÀ» Á¦°øÇϸ鼭 ¸¶¹«¸®ÇÑ´Ù.

ÀÌÈÄÀÇ ÀåµéÀº m4 ¾ð¾îÀÇ ¸ðµç Ư¡µéÀ» ÀÚ¼¼È÷ ¼³¸íÇÒ °ÍÀÌ´Ù.

m4ÀÇ °³¿ä

m4´Â ÀԷ¿¡¼­ Àо Ãâ·ÂÀ¸·Î º¹»çÇÏ°í, ±× °úÁ¤¿¡¼­ ¸ÅÅ©·Î¸¦ È®ÀåÇÏ´Â ¸ÅÅ©·Î 󸮱âÀÌ´Ù. ¸ÅÅ©·Î´Â ³»ÀåµÇ¾î Àְųª »ç¿ëÀÚ°¡ Á¤ÀǸ¦ ÇÒ ¼ö ÀÖ´Ù. ¶ÇÇÑ ³Ñ°ÜÁÖ´Â ÀÎÀÚÀÇ ¼ö¿¡µµ Á¦ÇÑÀÌ ¾ø´Ù. m4´Â ¸ÅÅ©·Î È®À常À» ÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó ÆÄÀÏÀ» »ðÀÔÇϰųª UNIX ¸í·ÉÀ» ½ÇÇàÇÑ´ÙµçÁö, Á¤¼ö °è»ê, ¹®¼­¸¦ ó¸®ÇÏ´Â °ÍÀ» Àç±ÍÀûÀÎ ¹æ¹ý µî ¿©·¯°¡Áö ¹æ¹ýÀ¸·Î ÇÒ ¼ö ÀÖ´Â ³»Àå ÇÔ¼ö¸¦ °¡Áö°í ÀÖ´Ù. m4´Â ÄÄÆÄÀÏ·¯ÀÇ ÀüÀ§-ÇÁ·Î±×·¥(front-end)À¸·Î »ç¿ëµÇ°Å³ª ÇϳªÀÇ µ¶¸³ÀûÀÎ ¸ÅÅ©·Î 󸮱â·Î »ç¿ëµÉ ¼ö ÀÖ´Ù.

¸ÅÅ©·Î 󸮱â m4´Â ¸ðµç UNIX¿¡¼­ Æø³Ð°Ô »ç¿ëÀÌ °¡´ÉÇÏ´Ù. º¸Åë, ¼Ò¼öÀÇ »ç¿ëÀÚ¸¸ÀÌ m4ÀÇ Á¸À縦 ¾Ë°í ÀÖ´Ù. ±×·¯³ª m4¿¡ Çѹø ¸ÀÀ» µéÀ̸é Çì¾î³ª¿Ã ¼ö°¡ ¾øÀ» °ÍÀÌ´Ù. GNU AutoconfÀÇ ÀαⰡ ³ô¾ÆÁú¼ö·Ï `configure' ½ºÅ©¸³Æ®¸¦ ¸¸µå´Â µ¥ ¹Ì¸® ¿ä±¸µÇ´Â GNU m4´Â m4¸¦ ¼³Ä¡Çϵµ·Ï ÇÏ´Â ÀÚ±ØÁ¦·Î µÇ°í ÀÖ´Ù. ±×·¯ÇÑ »ç¶÷µéÀº º¸Åë m4·Î ÇÁ·Î±×·¡¹Ö ÇÏ´Â µ¥´Â Àͼ÷Ä¡ ¾ÊÀ» °ÍÀÌ´Ù. GNU m4´Â ´ëºÎºÐ System V, ¸±¸®Áî 3 ¹öÀü°ú ¸î°¡Áö »ç¼ÒÇÑ °Í¸¸ »©°í´Â ´ëºÎºÐ ȣȯµÈ´Ù. ´õ ÀÚ¼¼ÇÑ ³»¿ëÀº See section m4 ÀÇ ´Ù¸¥ ¹öÀüµé°úÀÇ È£È¯¼º.

¸î¸î »ç¶÷µéÀº m4°¡ Áßµ¶¼ºÀÌ ÀÖÀ½À» ¹ß°ßÇÑ´Ù. óÀ½¿¡ »ç¶÷µéÀº m4¸¦ °£´ÜÇÑ ¹®Á¦ ÇØ°á¿¡ »ç¿ëÇÑ´Ù. ±×·¯´Ù°¡ Á¡Á¡ ´õ Å« ¹®Á¦¿¡ µµÀüÀ» Çϸ鼭 º¹ÀâÇÑ ÀÏ·ÃÀÇ m4 ¸ÅÅ©·ÎµéÀ» »ç¿ëÇÏ´Â ¹æ¹ý¿¡ ´ëÇؼ­ ¹è¿î´Ù. Á¤¸» Çѹø Áßµ¶µÇ¾î ¹ö¸®¸é °£´ÜÇÑ ¹®Á¦µµ ¸Å¿ì º¹ÀâÇÏ°Ô m4 ¾îÇø®ÄÉÀ̼ÇÀ» ÀÛ¼ºÇÏ´Â °æ¿ì°¡ ¸¹´Ù. ±×·²¶§¿¡´Â ¿ø·¡ ÇÏ·Á´ø ÀÛ¾÷À» Çϴµ¥ µéÀÌ´Â ½Ã°£º¸´Ù µð¹ö±ë¿¡ ¹ÙÄ¡´Â ½Ã°£ÀÌ ´õ ¸¹¾ÆÁö±âµµ ÇÑ´Ù. m4´Â °­¹ÚÁõ Áõ¼¼°¡ ÀÖ´Â ÇÁ·Î±×·¡¸ÓÀÇ °Ç°­¿¡ À§ÇèÇÏ´Ù´Â °ÍÀ» ¸í½ÉÇØ µÎÀÚ.

¿ª»çÀûÀÎ Âü°í»çÇ×µé

m4ÀÇ ¿ª»ç¿¡ °ü·ÃµÈ ³»¿ëÀº ¿©±â¿¡ ¿ÂÀüÇÏ°Ô ½ÆÁö ¾Ê¾Ò°í, ¹ÏÀ»¸¸ÇÑ ³»¿ëÀÌ ¾ø´Ù. Ȥ½Ã ÀÌ¿¡ ´ëÇÑ ³»¿ëÀ» ¾Ë°í ÀÖ´Â ºÐÀº ÀÌ ºÎºÐÀ» ¾µ ¼ö ÀÖµµ·Ï µµ¿òÀ» Áֱ⠹ٶõ´Ù.

m4ÀÇ Áß¿äÇÑ Á¶»óÀº GPMÀÌ´Ù. C. StratcheÀÇ "A General Purpose Macro generator", Computer Journal 8,3 (1965), 255ÂÊÀ» º¸±â ¹Ù¶õ´Ù. ¶ÇÇÑ David Gries°¡ ¾´ °íÀüÀûÀΠå "µðÁöÅÐ ÄÄÇ»ÅÍ¿ë ÄÄÆÄÀÏ·¯ ¸¸µé±â(Compiler Construction for Digital Computers)"¿¡¼­ GPMÀÌ »ì¦ ¾ð±ÞµÈ´Ù.

GPMÀÌ ¼ø¼öÇß´Ù°í Ä£´Ù¸é, m4´Â ½ÇÁ¦¿¡¼­ ºÎµúÄ¡´Â º¹ÀâÇÑ ¸¹Àº ¹®Á¦µéÀ» ´Ù·ç´Â °ÍÀ̾ú´Ù. ¹Ì¸® ¼±¾ðÇÏ´Â ¹æ½ÄÀ¸·Î ¸ÅÅ©·Î¸¦ ÀνÄÇÏ°í, °ø¹é¹®ÀÚ³ª ¶óÀÎÀÇ ³¡(end-of-line)À» ½±°Ô °Ç³Ê¶Û ¼ö ÀÖ¾úÀ¸¸ç, ¸¹Àº »ý¼ºÀÚµéÀ» ³»ÀåÇÏ°í ÀÖ¾ú´Ù.

¿ø·¡´Â m4´Â Rational Æ÷Æ®¶õ Àü󸮱âÀÇ ¿£ÁøÀ̾úÀ¸¸ç, ratfor¿¡°Ô À־ cpp¿¡ ÇØ´çÇÏ´Â °ÍÀÌ´Ù.

m4¸¦ ºÒ·¯³»±â

m4ÀÇ ¸í·É Æ÷¸ËÀº ´ÙÀ½°ú °°´Ù.

m4 [option...] [macro-definitions...] [input-file...]

¸ðµç ¿É¼ÇÀº `-'·Î ½ÃÀÛÇϰųª, ±ä ¿É¼ÇÀ̸§À» »ç¿ëÇÒ ¶§¿¡´Â `--'À¸·Î ½ÃÀÛÇÑ´Ù. ±ä ¿É¼ÇÀ̸§Àº ´Ù ¾µ ÇÊ¿ä´Â ¾ø´Ù. À̸§ ¾Õ ºÎºÐºÎÅÍ Çò°¥¸®Áö ¾ÊÀ» Á¤µµ±îÁö¸¸ ¾²¸é ÃæºÐÇÏ´Ù. m4´Â ´ÙÀ½ÀÇ ¿É¼ÇÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù.

--version
ÇÁ·Î±×·¥ÀÇ ¹öÀü ¹øÈ£¸¦ Ç¥ÁØ Ãâ·Â¿¡ Ãâ·ÂÇÑ ÈÄ ¹Ù·Î Á¾·áÇÏ¸ç ¾î¶² input-filesµµ ÀÐÁö ¾Ê´Â´Ù.
--help
µµ¿ò¸»ÀÇ ¿ä¾àÀ» Ç¥ÁØ Ãâ·Â¿¡ Ãâ·ÂÇÑ ÈÄ ¹Ù·Î Á¾·áÇÏ¸ç ¾î¶² input-filesµµ ÀÐÁö ¾Ê´Â´Ù.
-G
--traditional
System V¿Í ºñ±³ÇÏ¿© È®ÀåµÈ ¸ðµç ±â´ÉÀ» ¾ïÁ¦ÇÑ´Ù. ÀÌ ±â´ÉµéÀÇ ¸ñ·ÏÀ» º¸·Á¸é See section m4 ÀÇ ´Ù¸¥ ¹öÀüµé°úÀÇ È£È¯¼º.
-E
--fatal-warnings
°æ°í°¡ ÇѹøÀÌ¶óµµ ³ª¿À¸é Ä¡¸íÀûÀÎ °ÍÀ¸·Î °£ÁÖÇÏ°í, Áï°¢ ½ÇÇàÀ» ¸ØÃß°í Á¾·áÇÑ´Ù.
-dflags
-debug=flags
µð¹ö±ë ¼öÁØ Ç÷¡±×¸¦ flags·Î ¼¼ÆÃÇÑ´Ù. µð¹ö±ë ¼öÁØÀº µð¹ö±ë ±â´É¿¡ ÀÇÇØ Á¦°øµÇ´Â Á¤º¸ÀÇ ¾ç°ú Çü½ÄÀ» Á¦¾îÇÑ´Ù. flagsÀÇ Çü½Ä°ú ¶æ¿¡ ´ëÇؼ­ See section µð¹ö±ë Ãâ·ÂÀ» Á¦¾îÇϱâ.
-lnum
--arglength=num
¸ÅÅ©·Î ÃßÀû¿¡ ÀÇÇØ »ý¼ºµÇ´Â Ãâ·ÂÀÇ Å©±â¸¦ Á¦ÇÑÇÑ´Ù. See section µð¹ö±ë Ãâ·ÂÀ» Á¦¾îÇϱâ.
-ofile
--error-output=file
µð¹ö±ë°ú ÃßÀû½ÃÀÇ Ãâ·ÂÀ» ÁöÁ¤µÈ À̸§ÀÇ ÆÄÀÏ·Î º¸³»µµ·Ï ÇÑ´Ù. ¿¡·¯¸Þ½ÃÁö´Â ±×´ë·Î Ç¥ÁØ ¿¡·¯ Ãâ·Â¿¡ ÂïÈù´Ù. See section µð¹ö±ë Ãâ·ÂÀ» ÀúÀåÇϱâ.
-Idir
--include=dir
»ðÀÔÇÒ ÆÄÀÏÀÌ ÇöÀçÀÇ ÀÛ¾÷ µð·ºÅ丮¿¡¼­ º¸ÀÌÁö ¾ÊÀ» °æ¿ì¿¡ °Ë»öÇÒ °æ·Î¸¦ dir·Î ÁöÁ¤ÇÑ´Ù. See section »ðÀÔÇÒ ÆÄÀÏ °Ë»öÇϱâ.
-e
--interactive
m4¸¦ ´ëÈ­½ÄÀ¸·Î È£ÃâÇÑ´Ù. ÀÌ°ÍÀÌ ¶æÇÏ´Â °ÍÀº ¸ðµç Ãâ·ÂÀº ¹öÆÛ¸µµÇÁö ¾Ê°í, ÀÎÅÍ·´Æ®´Â ¹«½ÃµÈ´Ù´Â °ÍÀÌ´Ù.
-s
--synclines
µ¿±âÈ­(synchronisation) ¶óÀÎÀ» »ý¼ºÇÑ´Ù. ÀÌ°ÍÀº C Àü󸮱⳪ ´Ù¸¥ ºñ½ÁÇÑ Åø¿¡ ÀÇÇØ »ç¿ëµÈ´Ù. ÀÌ°ÍÀº, ¿¹¸¦ µé¾î, m4°¡ ÄÄÆÄÀÏ·¯ÀÇ ÀüÀ§-ÇÁ·Î±×·¥(front-end)À¸·Î »ç¿ëµÉ ¶§ ¾µ¸ð ÀÖ´Ù. ¼Ò½º ÆÄÀÏ À̸§°ú ¶óÀÎ ¹øÈ£ Á¤º¸´Â `#line linenum "filename"' Çü½ÄÀÎ Áö½ÃÀÚ¿¡ ÀÇÇØ Àü´ÞµÈ´Ù. ÀÌ°ÍÀº ÇÊ¿ä¿¡ µû¶ó ÀÔ·ÂÀÇ Áß°£¿¡ ³¢¿ö ³Ö¾îÁø´Ù. ±×·¯ÇÑ Áö½ÃÀÚ°¡ ¶æÇÏ´Â °ÍÀº µÚ µû¶ó ¿À´Â ¶óÀÎÀÌ ÀÔ·Â ÆÄÀÏ filenameÀÇ ÁÙ ¹øÈ£°¡ linenumÀÎ °÷ÀÇ ³»¿ëÀ¸·ÎºÎÅÍ ºñ·ÔµÇ¾ú°Å³ª È®ÀåµÇ¾ú´Ù´Â °ÍÀÌ´Ù. `"filename"' ºÎºÐÀº ÀÌÀüÀÇ Áö½ÃÀڷκÎÅÍÀÇ ÆÄÀÏÀ̸§ÀÌ ¹Ù²îÁö ¾Ê¾ÒÀ» ¶§ Á¾Á¾ »ý·«µÈ´Ù. µ¿±âÈ­(Synchronisation) Áö½ÃÀÚ´Â ¾ðÁ¦³ª Áö½ÃÀÚ °¢°¢¸¶´Ù ÇÑ ÁÙ Àüü¿¡ Çϳª¾¿¸¸ ÁÖ¾îÁø´Ù. µ¿±âÈ­ÀÇ ºÒÀÏÄ¡°¡ ¾î¶² ÇÑ Ãâ·Â ¶óÀÎÀÇ Áß°£¿¡¼­ ¹ß»ýÇÑ´Ù¸é ±×¿Í °ü·ÃµÈ(associated) µ¿±âÈ­ Áö½ÃÀÚ´Â ±× ´ÙÀ½ »ý¼ºµÇ´Â ¶óÀÎÀÌ ½ÃÀÛµÉ ¶§±îÁö Áö¿¬µÈ´Ù.
-P
--prefix-builtins
³»ºÎÀûÀ¸·Î ¸ðµç ³»Àå ¸ÅÅ©·ÎÀÇ ¸íĪÀ» ¾Õ¿¡ `m4_'·Î ½ÃÀÛÇϵµ·Ï º¯°æÇÑ´Ù. ¿¹¸¦ µé¸é, ÀÌ ¿É¼ÇÀ» »ç¿ëÇÑ´Ù¸é, `define' ´ë½Å `m4_define' À¸·Î »ç¿ëÇØ¾ß ÇÑ´Ù. ±×¸®°í `__file__' ´ë½Å `m4___file__'·Î »ç¿ëÇØ¾ß ÇÑ´Ù.
-WREGEXP
--word-regexp=REGEXP
¸ÅÅ©·Î À̸§À¸·Î »ç¿ëÇÏ´Â ¹®¹ýÀ» º¯°æÇÑ´Ù. ÀÌ ½ÃÇèÀûÀÎ ¿É¼ÇÀº ¸ðµç GNU m4¿¡¼­ ´Ù Áö¿øÇÏ´Â °ÍÀº ¾Æ´Ï´Ù. (see section ´Ü¾îÀÇ ¾îÈÖ ±¸Á¶ ¹Ù²Ù±â).
-Hn
--hashsize=n
³»ºÎÀûÀ¸·Î ½Éº¼À» ã±âÀ§ÇÑ Çؽ¬(hash) Å×À̺íÀÇ °³¼ö¸¦ n°³ entry Å©±â·Î ¸¸µç´Ù. ÀÌ ¼ýÀÚ´Â ¼Ú¼ö(prime number; ¼öÇпë¾î)À̾î¾ß ÇÑ´Ù. ±âº»°ªÀº 509 ¿£Æ®¸®ÀÌ´Ù. ÀÌ Á¤µµ¸é ¿©·¯ºÐµéÀÌ °úµµÇÑ ¼ýÀÚÀÇ ¸ÅÅ©·Î¸¦ Á¤ÀÇÇÏÁö ¾Ê´Â´Ù¸é ÃæºÐÇÑ Å©±âÀÌ´Ù.
-Ln
--nesting-limit=n
ÁßøµÈ(nesting) ¸ÅÅ©·Î È£ÃâÀ» n ·¹º§·Î ÀÎÀ§ÀûÀ¸·Î Á¦ÇÑÇÑ´Ù. ¸¸ÀÏ ÀÌ Á¦ÇÑÀÌ ³Ñ¾î°¬À» ¶§¿¡´Â ÇÁ·Î±×·¥ ½ÇÇàÀ» ÁßÁöÇÑ´Ù. Ưº°È÷ ¸í½ÃµÇÁö ¾ÊÀ¸¸é Áßø Á¦ÇÑÀº 250 ·¹º§ÀÌ´Ù. ÀÌ ¿É¼ÇÀÇ Á¤È®ÇÑ È¿°ú´Â µ¿ÀûÀÎ Àç±Íº¸´Ù´Â ¹®ÀÚ ±×´ë·ÎÀÇ Áßø°ú Á» ´õ °ü·ÃÀÌ ±íÀ» °ÍÀÌ´Ù. ÀÌ°ÍÀº ±â°èÀûÀÎ ¼ö´Ü¿¡ ÀÇÇØ »ý¼ºµÈ ¾î¶² º¹ÀâÇÑ m4 ÀÔ·ÂÀÌ ÀÖÀ» ¶§ À¯¿ëÇÒ °ÍÀÌ´Ù. ´ëºÎºÐÀÇ »ç¿ëÀÚ¿¡°Ô´Â º°·Î ÀÇ¹Ì ¾ø´Â ¿É¼ÇÀÌ µÉ °ÍÀÌ´Ù. °ÅÃßÀ彺·¯¿î °ÍÀ¸·Î ÆǸíµÈ´Ù¸é (¾ÆÁ÷ ½ÇÇèÀûÀÎ) ÀÌ ¿É¼ÇÀº ¾ø¾îÁú Áöµµ ¸ð¸¥´Ù. ÀÌ ¿É¼ÇÀº ³¡¾ø´Â Àç°Ë»ö ·çÇÁµéÀ» ¸ØÃß°Ô ÇÏ´Â ´É·ÂÀº ¾øÁö¸¸, ¹Ý¸é¿¡ ±×°ÍµéÀÌ ±â¾ïÀåÄ¡¿Í ½ºÅà °ø°£À» °úµµÇÏ°Ô ¼ÒºñÇÏÁö ¾Ê´Â °ÍÀ̾î¾ß ÇÏ°Ô ÇÒ ¼ö´Â ÀÖ´Ù. Àç°Ë»öÇÏ´Â ·çÇÁ¸¦ ¿µ¸®ÇÏ°Ô »ç¿ëÇؼ­, ¾î¶² ÀÌ´Â º¹ÀâÇÏ°í ½Ã°£ÀÌ °É¸®´Â °è»êÀ» m4¿¡°Ô ½ÃÄѼ­ À¯¿ëÇÑ °á°ú¸¦ ¾ò¾î³¾ ¼ö ÀÖ´Ù. ÀÌ·± ¸é¿¡¼­ ÇѰ踦 µÎ´Â °ÍÀº m4ÀÇ ´É·ÂÀ» ¸·´Â ÀÏÀÌ´Ù. ÀÌ·± °æ¿ì´Â ¸¹ÀÌ ÀÖ´Â µ¥ `define(`a', `a')a'´Â °£´ÜÇÑ ¿¹ÀÏ »ÓÀÌ´Ù (±×·¯³ª see section m4 ÀÇ ´Ù¸¥ ¹öÀüµé°úÀÇ È£È¯¼º). GNU m4 °¡ ÀÌ·¯ÇÑ ¹«ÇÑ ·çÇÁ¸¦ °¨ÁöÇϱ⸦ ¹Ù¶ó´Â °ÍÀº Çѳ¹ ÄÄÆÄÀÏ·¯ ½Ã½ºÅÛÀÌ ¹«ÇÑ·çÇÁ¸¦ °¨ÁöÇÏ°í Ä¡·áÇϱ⸦ ¹Ù¶ó´Â °Í°ú ´Ù¸¦ ¹Ù ¾ø´Ù. ÀÌ°ÍÀº ºÒ°¡´ÉÇÏÁö´Â ¾Ê´õ¶óµµ, ÀϹÝÀûÀ¸·Î ¸Å¿ì ¾î·Á¿î ¹®Á¦ÀÌ´Ù.
-Q
--quiet
--silent
¸ÅÅ©·Î È£Ãâ¿¡¼­ È£ÃâÀÎÀÚ¸¦ ºü¶ß¸®°Å³ª ³Ê¹« ¸¹ÀÌ ³ÖÀº °Í¿¡ ´ëÇÑ °æ°í¸¦ Ãâ·ÂÇÏÁö ¾Ê´Â´Ù.
-B
-S
-T
ÀÌµé ¿É¼ÇÀº System V m4¿ÍÀÇ È£È¯¼ºÀ» À§Çؼ­ Á¦°øÇÑ´Ù. ±×·¯³ª ¿©±â¿¡¼­´Â ¾Æ¹«Àϵµ ÇÏÁö ¾Ê´Â´Ù.
-Nn
--diversions=n
ÀÌµé ¿É¼ÇÀº ÀÌÀüÀÇ GNU m4 ¹öÀü°úÀÇ È£È¯¼ºÀ» À§Çؼ­ Á¦°øÇÒ »ÓÀÌ´Ù. ±×¸®°í ÀÌ°ÍÀº µ¿½Ã¿¡ »ç¿ë °¡´ÉÇÑ Àüȯ °³¼ö¸¦ Á¦¾îÇÏ´Â °ÍÀ̾ú´Ù. ÀÌÁ¦´Â ¾î¶² Á¤ÇØÁø Á¦ÇÑÀÌ ¾ø±â ¶§¹®¿¡ ÀÌ ¿É¼ÇµéÀº ¾Æ¹«·± Àϵµ ÇÏÁö ¾Ê´Â´Ù.

¸ÅÅ©·Î Á¤ÀÇ¿Í »èÁ¦´Â ¸í·ÉÇà ¶óÀο¡¼­ ÇàÇÒ ¼ö ÀÖ´Ù. `-D' ¿É¼Ç°ú `-U' ¿É¼ÇÀÌ ±×°ÍÀÌ´Ù. À̰͵éÀº ´ÙÀ½°ú °°Àº Çü½ÄÀ» °¡Áö°í ÀÖ´Ù.

-Dname
-Dname=value
--define=name
--define=name=value
¾î¶² ÀÔ·Â ÆÄÀϵµ ÀÐ¾î µéÀ̱â Àü¿¡ ½Éº¼ Å×À̺í·Î nameÀ» Áý¾î³Ö´Â´Ù. `=value'°¡ ºüÁ³´Ù¸é ±× °ªÀº ºó ¹®ÀÚ¿­·Î µÈ´Ù. ±×¸®°í ¸¶Ä¡ ÀÔ·Â ÆÄÀÏÀÇ ³»ºÎ¿¡¼­ ÀÌ°ÍÀÌ Á¤ÀǵǴ °Íó·³ value´Â ¾î¶°ÇÑ ¹®ÀÚ¿­ÀÌ¶óµµ µÉ ¼ö ÀÖÀ¸¸ç, ¸ÅÅ©·Î´Â ÀÎÀÚ¸¦ °¡Áöµµ·Ï Á¤ÀÇµÉ ¼ö ÀÖ´Ù.
-Uname
--undefine=name
ÀÌ¹Ì Á¤ÀÇµÈ nameÀ» »èÁ¦ÇÑ´Ù. ´ç¿¬È÷ ÀÌ¹Ì Á¤ÀÇµÈ ¸ÅÅ©·Î¸¸ ÀÌ ¹æ¹ýÀ¸·Î ¾ø¾Ù ¼ö ÀÖ´Ù.
-tname
--trace=name
nameÀ» ½Éº¼Å×ÀÌºí¿¡, ¹ÌÁ¤ÀǵǾúÁö¸¸ ÃßÀûµÇ´Â °ÍÀ̶ó°í, Áý¾î³Ö´Â´Ù. ±×·¯¹Ç·Î ±× ¸ÅÅ©·Î´Â Á¤ÀǵǴ ÁöÁ¡ºÎÅÍ ÃßÀûµÇ±â ½ÃÀÛÇÒ °ÍÀÌ´Ù.
-Ffile
--freeze-state=file
ÇÑ ¹øÀÇ ½ÇÇàÀÌ ³¡³µÀ» ¶§, ¸í½ÃµÈ file¿¡ frozen »óÅ Á¤º¸¸¦ ±â·ÏÇÑ´Ù. (see section Frozen »óŸ¦ »¡¸® ÀûÀç(load)Çϱâ).
-Rfile
--reload-state=file
½ÇÇàÀ» °³½ÃÇϱâ Àü¿¡, ¸í½ÃµÈ frozen file·ÎºÎÅÍ ³»ºÎ »óŸ¦ °¡Á®¿Â´Ù. (see section Frozen »óŸ¦ »¡¸® ÀûÀç(load)Çϱâ).

ÀÌÁ¦ ¸í·ÉÇà ¶óÀο¡¼­ ³²Àº ÀÎÀÚ´Â ÀÔ·Â ÆÄÀÏÀÇ À̸§ÀÌ´Ù. À̸§ÀÌ ÁöÁ¤µÇÁö ¾Ê´Â´Ù¸é, Ç¥ÁØ ÀÔ·ÂÀÌ ´ë½Å ÀÐÈù´Ù. ÆÄÀÏ À̸§ `-'Àº Ç¥ÁØ ÀÔ·ÂÀ» ¶æÇÑ´Ù.

ÀÔ·Â ÆÄÀϵéÀº ÁÖ¾îÁø ¼ø¼­´ë·Î ÀÐÇôÁø´Ù. Ç¥ÁØ ÀÔ·ÂÀº ´ÜÁö ÇÑ ¹ø¸¸ ÀÐÇôÁú ¼ö ÀÖ´Ù. µû¶ó¼­ ÆÄÀÏ À̸§ `-'´Â ¸í·ÉÇà ¶óÀο¡¼­ ÇÑ ¹ø¸¸ ³ªÅ¸³¯ ¼ö ÀÖ´Ù.

¹®Á¦Á¡°ú ¹ö±×

GNU m4 ¸¦ »ç¿ëÇϸ鼭 ¾î¶² ¹®Á¦Á¡ÀÌ Àְųª ¹ö±×¸¦ ¹ß°ßÇÑ Á¡ÀÌ ÀÖ´Ù¸é, º¸°íÇØ Áֱ⠹ٶõ´Ù. ¹ö±× º¸°í¼­¸¦ ÀÛ¼ºÇϱâ Àü¿¡, ±×°Ô ÁøÂ¥ ¹ö±×ÀÎÁö È®ÀÎÇغ¸±â ¹Ù¶õ´Ù. ÀÌ ¹®¼­¸¦ ´Ù½Ã ÁÖÀÇ ±í°Ô Àо°í ¿©·¯ºÐÀÌ ÇÏ·Á´Â ¹Ù·Î ±×°ÍÀ» ÇÒ ¼ö ÀÖ´Ù°í ³ª¿Í Àִ°¡¸¦ »ìÆ캸¶ó. ¿©·¯ºÐÀÌ ÇÏ·Á´Â ±×°ÍÀ» ó¸®ÇÒ ¼ö ÀÖ´ÂÁö ¾ø´ÂÁö ºÒ¸íÈ®ÇÏ°Ô ³ª¿Í ÀÖ´Ù¸é ±×°Íµµ º¸°íÇØ ´Þ¶ó. ±×°ÍÀº ¹®¼­ÀÇ ¹ö±×ÀÎ °ÍÀÌ´Ù.

¹ö±×º¸°í¼­¸¦ ÀÛ¼ºÇϰųª ¿©·¯ºÐ ½º½º·Î °íÃ帱â Àü¿¡, ±×°ÍÀ» ºÐ¸®½ÃÄѼ­ ¹®Á¦Á¡À» ´Ù½Ã ÀÏÀ¸Å³ ¼ö ÀÖ´Â °¡´ÉÇÑ ÇÑ ÀÛÀº ÀÔ·ÂÆÄÀÏÀ» ¸¸µé¾î º¸¶ó. ±×¸®°í ³ª¼­ ±× ÀÔ·ÂÆÄÀÏ°ú m4°¡ Á¤È®È÷ ¾î¶°ÇÑ °á°ú¸¦ ¿©·¯ºÐ¿¡°Ô ³»³õ¾Ò´ÂÁö¸¦ º¸³» ´Þ¶ó. ¶ÇÇÑ ¿©·¯ºÐÀÌ ¹Ù¶ó´ø °á°ú´Â ¾î¶² °ÍÀ̾ú´ÂÁöµµ ¸»ÇØ´Þ¶ó. ÀÌ°ÍÀº ±× ¹®Á¦°¡ Á¤¸»·Î ¹®¼­¿¡¼­ÀÇ ¹ö±×ÀÎÁö ¾Æ´ÑÁö¸¦ ¿ì¸®°¡ °áÁ¤ÇÏ´Â µ¥ µµ¿òÀÌ µÉ °ÍÀÌ´Ù.

ÀÏ´Ü Á¤È®ÇÏ°Ô ¹®Á¦Á¡À» Áý¾î³Â´Ù¸é e-mailÀ» (ÀÎÅͳÝ) `bug-gnu-utils@prep.ai.mit.edu'³ª (UUCP) `mit-eddie!prep.ai.mit.edu!bug-gnu-utils'·Î º¸³»´Þ¶ó. ¿©·¯ºÐµéÀÌ »ç¿ëÇÏ°í ÀÖ´Â m4ÀÇ ¹öÀü Á¤º¸µµ °°ÀÌ Æ÷ÇÔ½ÃÅ°¸é ÁÁÀ» °ÍÀÌ´Ù. ¹öÀü Á¤º¸´Â `m4 --version'À¸·Î ¾òÀ» ¼ö ÀÖ´Ù.

¹ö±×°¡ ¾Æ´Ñ Á¦¾Èµµ Ç×»ó ȯ¿µÇÑ´Ù. ÀÌ ¹®¼­¿¡¼­ ¸íÈ®ÇÏÁö ¸øÇÑ Á¡À̳ª ´ÜÁö ¸ðÈ£ÇÑ Æ¯Â¡¿¡ °üÇÑ Áú¹®µµ º¸³»ÁÖ¸é ÁÁ´Ù.

ÀÌ ¸Å´º¾óÀÇ »ç¿ë

ÀÌ ¸Å´º¾óÀº m4¿¡¼­ÀÇ ÀԷ°ú Ãâ·ÂÀÇ ¿¹Á¦¸¦ »ç¿ëÇÏ°í ÀÖ´Ù. ±×¸®°í ÀԷ°ú Ãâ·Â, ¿¡·¯Ãâ·Â¿¡ °£´ÜÇÑ ±ÔÄ¢À» Àû¿ëÇÏ°í ÀÖ´Ù. ¿¹Á¦´Â ÀϹÝÀûÀÎ ÅؽºÆ®(°íÁ¤Å©±âÀÇ ÆùÆ®)·Î Ç¥½ÃÇÑ´Ù. ´ÙÀ½°ú °°ÀÌ..

This is an example of an example!

Ãâ·Â°ú ÀÔ·ÂÀ» ±¸º°Çϱâ À§Çؼ­ ¸ðµç m4ÀÇ Ãâ·ÂÀº `=>'ÀÌ ¾Õ¿¡ ºÙ´Â´Ù. ±×¸®°í ¿¡·¯ ¸Þ½ÃÁö³ª ¿¡·¯ Ãâ·ÂÀ¸·Î ³ª¿À´Â °ÍÀº `error-->'·Î Ç¥½ÃÇÑ´Ù. µû¶ó¼­,

Example of input line
=>Output line from m4
error-->and an error message

m4¿¡¼­ ¹Ì¸® Á¤ÀÇµÈ ¸ÅÅ©·Î¸¦ ¼³¸íÇÒ ¶§¿¡´Â, ±× ¸ÅÅ©·ÎÀÇ ¿øÇü(prototype) È£ÃâÀ» º¸¿© ÁÙ °ÍÀÌ¸ç ±× È£Ãâ ÀÎÀÚ¿¡´Â ¹¦»çÀûÀÎ À̸§À» ºÎ¿©ÇÒ °ÍÀε¥, ¿¹¸¦ µé¸é ´ÙÀ½°ú °°´Ù.

regexp(string, regexp, opt replacement)

m4¿¡¼­ ¸ðµç ÀÎÀÚ´Â ¹®ÀÚ¿­ÀÌ´Ù. ±×·¯³ª ¾î¶² °ÍÀº Ưº°ÇÏ°Ô Çؼ®ÇÑ´Ù. ¼ýÀÚ³ª, ÆÄÀÏÀ̸§, Á¤±ÔÇ¥Çö½Ä µîµî..

À§¿¡¼­ ¼¼ ¹ø° ÀÎÀÚ ¾ÕÀÇ `opt'´Â ¼±ÅûçÇ×À̶ó´Â °ÍÀ» °¡¸®Å²´Ù. (»ý·«µÈ´Ù¸é, ºó¹®ÀÚ¿­ÀÌ µÉ °ÍÀÌ´Ù.) ÀÎÀÚ ¸ñ·Ï Áß »ý·«ºÎÈ£(`...')´Â ¾î¶°ÇÑ °³¼öÀÇ ÀÎÀÚµµ ¿Ã ¼ö ÀÖÀ½À» °¡¸®Å°´Â °ÍÀÌ´Ù.

ÀÌ ¹®¼­´Â ÀÏ°üµÇ°Ô builtinÀ» ÇϳªÀÇ ¿µ¾î ´Ü¾îÀÎ °Íó·³ ÇÏÀÌÇ ¾øÀÌ ¾²°í »ç¿ëÇÑ´Ù. ÀÌ°ÍÀº m4 ³»¿¡¼­ builtin primitive (¿ªÀÚÁÖ: ¹Ì¸® ³»ÀåµÈ ±âÃÊ ¿ä¼Ò)°¡ Ç¥±âµÇ´Â ¹æ¹ýÀÌ´Ù.

( -------------------- ¿ªÀÚ ÁÖ ------------------------------------------- * `builtin' Àº "³»Àå ¸ÅÅ©·Î"³ª "³»Àå"À¸·Î ¹ø¿ªÇÏ¿´´Ù.

* ¾Æ¿ï·¯ ¿ø·¡ ¿µ¹® ¸Å´º¾óÀÇ ¸ðµç ¿¹¹®µéÀº µð¹ö±ë ·¹º§ÀÌ ¿©·¯ºÐµéÀÇ GNU m4 ¿Í´Â Á¶±Ý ´Ù¸£°Ô ¼¼ÆÃÀÌ µÇ¾î ÀÖ´Â °ÍÀ¸·Î º¸ÀÌ´Â µ¥ debugmode ¿É¼ÇÀ» Á¶±Ý Á¶Á¤ÇØÁÖ¸é ¶È°°Àº °á°ú¸¦ º¼ ¼ö ÀÖ´Ù.

* ¾Æ·¡¿¡ ³ª¿À°ÚÁö¸¸ ¿¹¹®À¸·Î ³ª¿À´Â forloop´Â ³»Àå ¸ÅÅ©·Î°¡ ¾Æ´Ñ »ç¿ëÀÚ Á¤ÀÇ ¸ÅÅ©·Î·Î¼­ µû·Î Á¤ÀÇÇÏ¿© »ç¿ëÇÏ¿©¾ß ÇÑ´Ù. ±× ¹æ¹ýÀº ÇØ´ç ¿¹¹®¿¡¼­ µû·Î Ç¥½ÃÇÏ¿´´Ù.

-------------------------------------------------------------------------)


Go to the first, previous, next, last section, table of contents.