Á¤¼ö ¿¬»êÀ» À§ÇÑ ±â´ÉÀº m4
¿¡ Æ÷ÇÔÀÌ µÇ¾î ÀÖÀ¸¸ç ÀÌ°ÍÀº C¿Í ºñ½ÁÇÑ
¹®¹ýÀ» °¡Áø´Ù. ÆíÀÇ»ó °£´ÜÇÑ Áõ°¡¿Í °¨¼Ò ¿¬»êÀ» À§ÇÑ ³»Àå ¸ÅÅ©·Îµµ ÀÖ´Ù.
Á¤¼öÀÇ Áõ°¡¿Í °¨¼Ò °è»êÀº ³»Àå ¸ÅÅ©·ÎÀÎ incr
°ú decr
À»
»ç¿ëÇÏ¸é µÈ´Ù.
incr(number) decr(number)
ÀÌ°ÍÀº numberÀÇ °ªÀÌ °¢°¢ Çϳª¾¿ Áõ°¡Çϰųª °¨¼ÒÇÑ ¼ýÀÚ·Î È®ÀåµÈ´Ù.
incr(4) =>5 decr(7) =>6
incr
, decr ³»Àå ¸ÅÅ©·Î´Â ÀÎÀÚ°¡ ÀÖÀ» ¶§¿¡¸¸ ÀνĵȴÙ.
Á¤¼ö½ÄÀÇ °ªÀº eval
·Î ±¸ÇÒ ¼ö ÀÖ´Ù.
eval(expression, opt radix, opt width)
ÀÌ°ÍÀº expressionÀÇ °ªÀ¸·Î È®ÀåµÈ´Ù.
½ÄÀº ´ÙÀ½ÀÇ ¿¬»êÀÚ¸¦ Æ÷ÇÔÇÒ ¼ö ÀÖ´Ù. ¾Æ·¡´Â ¿¬»êÀÚÀÇ ¿ì¼±¼øÀ§°¡ ³ôÀº °ÍºÎÅÍ ³ª¿ÇÏ¿´´Ù.
-
**
* / %
+ -
<< >>
== != > >= < <=
!
~
&
^
|
&&
||
°ÅµìÁ¦°öÀ» Á¦¿ÜÇÏ°í´Â ¸ðµç ¿¬»êÀÚ´Â ¿ÞÂʺÎÅÍ °áÇյȴÙ.
¸¹Àº m4
ÀÇ ±¸Çö¿¡¼ `^'¸¦ °ÅµìÁ¦°ö ¿¬»êÀÚ·Î »ç¿ëÇÏ´Â ¹Ý¸é¿¡,
±× ¿Ü ´Ù¸¥ ¸¹Àº °Íµé¿¡¼´Â `^'¸¦ ºñÆ®º° ¹èŸÀû-or¸¦ ÇÏ´Â ¿¬»êÀÚ·Î
»ç¿ëÇÑ´Ù. GNU `m4'´Â Çൿ¹æ½ÄÀ» º¯°æÇÏ¿´´Âµ¥, Àü¿¡´Â °ÅµìÁ¦°ö ¿¬»êÀÚ·Î
`^'¸¦ »ç¿ëÇß´Ù°¡, ÀÌÁ¦´Â ºñÆ®º° ¹èŸÀû-or ¿¬»êÀ» ÇÏ°Ô ¹Ù²î¾ú´Ù.
Á¢µÎ»ç¸¦ Ưº°È÷ ºÙÀÌÁö ¾ÊÀ¸¸é 10Áø¼öÀÌ´Ù. °£´ÜÈ÷ `0'À» Á¢µÎ»ç·Î ¾²¸é 8Áø¼ö°¡ µÈ´Ù. `0x'¸¦ ¾Õ¿¡ ºÙÀ̸é 16Áø¼ö°¡ µÈ´Ù. `0b'¸¦ ¾Õ¿¡ ºÙÀ̸é 2Áø¼ö°¡ µÈ´Ù. @smap{0r}À» ¾Õ¿¡ ºÙÀ̸é 1°ú 36 »çÀÌÀÇ ÀÓÀÇÀÇ ¹Ø¼ö·Î Ç¥ÇöµÈ ¼ö°¡ µÇ´Âµ¥, ÀÌ Á¢µÎ»ç´Â ¹Ù·Î ±× µÚ¿¡ ¹Ø¼ö¸¦ ³ªÅ¸³»´Â 10Áø¼ö Ç¥½Ã, ±× ´ÙÀ½¿¡ ÇϳªÀÇ ÄÝ·Ð(:), ±× ´ÙÀ½¿¡ ¼ö¸¦ ÀÌ·ç´Â ¼ýÀÚµéÀÌ ºÙ´Â´Ù. ¾î¶² ±â¼ö¹ýÀ̵çÁö ¼ýÀÚ´Â `0', `1', `2', ...ÀÌ´Ù. `9'¸¦ ³Ñ¾î°¡¸é `a', `b', ...¿¡¼ `z'±îÁöÀÌ´Ù. ¼Ò¹®ÀÚ¿Í ´ë¹®ÀÚ´Â ¼·Î ¼¯¾î¼ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
°ýÈ£´Â ÇÊ¿äÇÑ °æ¿ì ºÎºÐ Ç¥Çö½ÄµéÀ» ¹´Â µ¥ »ç¿ëÇÒ ¼ö ÀÖ´Ù. °ü°è ¿¬»êÀÚ´Â ÂüÀ̸é
1
À», °ÅÁþÀ̸é `0'À» ¸®ÅÏÇÑ´Ù.
¿©±â¿¡ eval
ÀÇ ¸î °³ÀÇ ¿¹°¡ ÀÖ´Ù.
eval(-3 * 5) =>-15 eval(index(`Hello world', `llo') >= 0) =>1 define(`square', `eval(($1)**2)') => square(9) =>81 square(square(5)+1) =>676 define(`foo', `666') => eval(`foo'/6) error-->51.eval:14: m4: Bad expression in eval: foo/6 => eval(foo/6) =>111
³¡¿¡¼ µÎ ¹ø°ÀÇ ¿¹¿¡¼ º¸¿©ÁÖµí, eval
Àº ¸ÅÅ©·Î À̸§Àº Ãë±ÞÇÏÁö
¾ÊÀ¸¸ç, ¸ÅÅ©·Î À̸§ÀÌ ÇÕ´çÇÑ Ç¥Çö(¶Ç´Â ÇÕ´çÇÑ Ç¥ÇöÀÇ ÀϺκÐ)À¸·Î È®ÀåµÉÁö¶óµµ
±×·¸´Ù. ±×·¯¹Ç·Î ¸ðµç ¸ÅÅ©·Î´Â eval
¿¡°Ô Àü´ÞµÇ±â Àü¿¡ È®ÀåµÇ¾î¾ß ÇÑ´Ù.
radix°¡ ¸í½ÃµÈ´Ù¸é, ±×°ÍÀº È®Àå °á°ú¿¡¼ »ç¿ëµÇ´Â ±â¼ö¹ýÀ» ÁöÁ¤ÇÏ´Â
°ÍÀÌ´Ù. µðÆúÆ® ±â¼ö´Â 10ÀÌ´Ù. eval
ÀÇ °á°ú´Â Ç×»ó ºÎÈ£°¡ ÀÖ´Ù.
width ÀÎÀÚ´Â Ãâ·ÂµÉ ¶§ÀÇ ÃÖ¼ÒÇÑÀÇ ÆøÀ» ÁöÁ¤ÇÑ´Ù. °á°ú´Â ÁöÁ¤µÈ ³ÐÀÌ¿¡¼
ºñ´Â °ø°£À» 0À¸·Î ä¿î´Ù.
eval(666, 10) =>666 eval(666, 11) =>556 eval(666, 6) =>3030 eval(666, 6, 10) =>0000003030 eval(-666, 6, 10) =>-000003030
±â¼ö¹ýÀÎ radix´Â 36º¸´Ù Ŭ ¼ö ¾ø´Ù´Â °ÍÀ» ±â¾ïÇ϶ó.
³»Àå ¸ÅÅ©·Î eval
Àº ÀÎÀÚ°¡ ÀÖ¾î¾ß¸¸ ÀνĵȴÙ.
Go to the first, previous, next, last section, table of contents.