Next: Error Recovery, Previous: Interface, Up: Top [Contents][Index]
Bison¹½Ê¸²òÀÏ´ï¤Ï¡¢¥È¡¼¥¯¥ó¤òÆÉ¤à¤È¡¢¥È¡¼¥¯¥ó¤Î°ÕÌ£ÃͤȤȤâ¤Ë¥¹¥¿¥Ã¥¯¤ËÀѤߤޤ¹¡£ ¤³¤Î¥¹¥¿¥Ã¥¯¤ò¹½Ê¸²òÀϴ凉¥¿¥Ã¥¯¡Êparser stack¡Ë¤È¸Æ¤Ó¤Þ¤¹¡£ ¥È¡¼¥¯¥ó¤ò¥¹¥¿¥Ã¥¯¤ËÀѤळ¤È¤ò¡¢ÅÁÅýŪ¤Ë ¥·¥Õ¥È¡Êshifting¡Ë¤È¸Æ¤Ó¤Þ¤¹¡£
¤¿¤È¤¨¤Ð¡¢Ãæ´ÖµË¡ÅÅÂ¡¢‘1 + 5 *’¤ò¤¹¤Ç¤ËÆÉ¤ó¤Ç¤¤¤Æ¡¢ ‘3’¤ò¼õ¤±¼è¤Ã¤¿¤È²¾Äꤷ¤Þ¤¹¡£ ¥¹¥¿¥Ã¥¯¤Ë¤Ï4¸Ä¤ÎÍ×ÁǤ¬¤¢¤ê¡¢¥È¡¼¥¯¥ó¤½¤ì¤¾¤ì¤¬¥·¥Õ¥È¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
¤·¤«¤·¡¢¥¹¥¿¥Ã¥¯¤Ë¾ï¤ËÆÉ¤ß¹þ¤Þ¤ì¤¿¥È¡¼¥¯¥ó¤½¤ì¤¾¤ì¤ËÂФ¹¤ë Í×ÁǤ¬¤¢¤ë¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ ºÇ¸å¤În¸Ä¤Î¥È¡¼¥¯¥ó¤È¥°¥ë¡¼¥×¤¬Ê¸Ë¡µ¬Â§¤ËÅö¤Æ¤Ï¤Þ¤ë¾ì¹ç¤Ë¤Ï¡¢ ¤½¤ì¤é¤Ïµ¬Â§¤Ë½¾¤Ã¤ÆÁȤ߹ç¤ï¤µ¤ì¤Þ¤¹¡£ ¤³¤ì¤ò¡¢´Ô¸µ¡Êreduction¡Ë¤È¸Æ¤Ó¤Þ¤¹¡£ ¥¹¥¿¥Ã¥¯¤Ë¤¢¤Ã¤¿¥È¡¼¥¯¥ó¤È¥°¥ë¡¼¥×¤Ï¡¢ µ¬Â§¤Î·ë²Ì¡¢¤Ä¤Þ¤êº¸Â¦¤Ë¤¢¤ëµ¹æ¤Ç¤¢¤ë¡¢1¸Ä¤Î¥°¥ë¡¼¥×¤ËÃÖ¤´¹¤¨¤é¤ì¤Þ¤¹¡£ µ¬Â§¤Î¥¢¥¯¥·¥ç¥ó¤Î¼Â¹Ô¤Ï¡¢·ë²Ì¤Î¥°¥ë¡¼¥×¤Î°ÕÌ£Ãͤò·×»»¤¹¤ë¤Î¤Ç¡¢ ´Ô¸µ¤Î¼ê½ç¤Î1¤Ä¤Ç¤¹¡£
¤¿¤È¤¨¤Ð¡¢Ãæ´ÖµË¡ÅÅÂî¤Î¹½Ê¸²òÀϴ凉¥¿¥Ã¥¯¤ÎÆâÍÆ¤Ï¼¡¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
1 + 5 * 3
¤½¤·¤Æ¡¢ÆþÎϤµ¤ì¤¿¼¡¤Î¥È¡¼¥¯¥ó¤¬²þ¹ÔÉ乿¤Ê¤é¤Ð¡¢ ¼¡¤Îµ¬Â§¤Ë½¾¤Ã¤Æ¡¢ºÇ¸å¤Î3¸Ä¤ÎÍ×ÁǤ¬15¤Ë´Ô¸µ¤µ¤ì¤Þ¤¹¡£
expr: expr '*' expr;
¤½¤·¤Æ¡¢¥¹¥¿¥Ã¥¯¤Ï3¸Ä¤ÎÍ×ÁǤò»ý¤Á¤Þ¤¹¡£
1 + 15
¤³¤Î»þÅÀ¤Ç¡¢Ê̤δԸµ¤¬²Äǽ¤Ë¤Ê¤ê¡¢1¸Ä¤ÎÃÍ16¤òÆÀ¤Þ¤¹¡£ ¤½¤·¤Æ¡¢²þ¹ÔÉ乿¤¬¥·¥Õ¥È¤µ¤ì¤Þ¤¹¡£
¹½Ê¸²òÀÏ´ï¤Ï¡¢¥·¥Õ¥È¤È´Ô¸µ¤Ë¤è¤Ã¤Æ¡¢ÆþÎÏÁ´ÂΤò ʸˡ¤Î³«»Ïµ¹æ¤Ç¤¢¤ë1¸Ä¤Î¥°¥ë¡¼¥×¤Ë´Ô¸µ¤·¤è¤¦¤È¤·¤Þ¤¹ ¡Êsee Languages and Context-Free Grammars¡Ë¡£
¤³¤Î¼ïÎà¤Î¹½Ê¸²òÀÏ´ï¤Ï¡¢¥Ü¥È¥à¥¢¥Ã¥×¹½Ê¸²òÀÏ´ï¤È¤·¤ÆÃΤé¤ì¤Æ¤¤¤Þ¤¹¡£
• Look-Ahead: | ¹½Ê¸²òÀÏ´ï¤Ï²¿¤ò¤¹¤ë¤«¤ò·è¤á¤ë¤È¤¤Ë°ì¤ÄÀè¤Î¥È¡¼¥¯ ¥ó¤ò¸«¤ë. | |
• Shift/Reduce: | ¾×ÆÍ: ¥·¥Õ¥È¤È´Ô¸µ¤ÎξÊý¤¬Í¸ú¤Ê¤È¤. | |
• Precedence: | ±é»»»Ò¤ÎÍ¥Àè½ç°Ì¤Ï¾×ÆÍ¤ò²ò·è¤¹¤ë¤³¤È¤Çưºî¤¹¤ë. | |
• Contextual Precedence: | ±é»»»Ò¤ÎÍ¥Àè½ç°Ì¤¬Ê¸Ì®¤Ë°Í¸¤¹¤ë¤È¤. | |
• Parser States: | ¹½Ê¸²òÀÏ´ï¤Ï¥¹¥¿¥Ã¥¯ÉÕ¤¤Î͸¾õÂÖµ¡³£. | |
• Reduce/Reduce: | Ʊ¤¸¾õ¶·¤Ë2¤Ä¤Îµ¬Â§¤¬Å¬ÍѲÄǽ¤Ê¤È¤. | |
• Mystery Conflicts: | Àµ¤·¤¯¤Ê¤¤¤è¤¦¤Ë¸«¤¨¤ë´Ô¸µ/´Ô¸µ¾×ÆÍ. | |
• Stack Overflow: | ¥¹¥¿¥Ã¥¯¤¬°ìÇդˤʤ俤Ȥ¤Ë²¿¤¬µ¯¤³¤ë¤¦¤«. ¤½¤ì¤ò Èò¤±¤ëÊýË¡. |