Next: Context Dependency, Previous: Algorithm, Up: Top [Contents][Index]
¹½Ê¸²òÀÏ¥¨¥é¡¼¤¬µ¯¤¤¿¾ì¹ç¤Ë¡¢¹½Ê¸²òÀÏ¥×¥í¥°¥é¥à¤¬»ß¤Þ¤ë¤³¤È¤Ï¡¢ Ä̾ï˾¤Þ¤·¤¯¤¢¤ê¤Þ¤»¤ó¡£ ¤¿¤È¤¨¤Ð¡¢¥³¥ó¥Ñ¥¤¥é¤ÏÆþÎϤλĤê¤ò¹½Ê¸²òÀϤ·¤ÆÂ¾¤Î¥¨¥é¡¼¤òõ¤»¤ë¤è¤¦¤Ë ¥¨¥é¡¼¤«¤é²óÉü¤¹¤ë¤Ù¤¤Ç¤¹¤·¡¢ÅÅÂî¤Ï¼¡¤Î¼°¤ò¼õ¤±Æþ¤ì¤ë¤Ù¤¤Ç¤¹¡£
ÆþÎϤò1¹Ô¤´¤È¤Ë½èÍý¤¹¤ëñ½ã¤ÊÂÐÏÃŪ¹½Ê¸²òÀÏ´ï¤Ï¡¢
¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ëyyparse
¤¬1¤òÊÖ¤·¡¢
ÆþÎϹԤλĤê¤ò̵»ë¤·¡¢
yyparse
¤ò¤â¤¦°ìÅٸƤӽФ·¤Æ¤â¤«¤Þ¤¤¤Þ¤»¤ó¡£
¤·¤«¤·¡¢¥³¥ó¥Ñ¥¤¥é¤Ç¤³¤Î¤è¤¦¤Ë½èÍý¤¹¤ë¤È¡¢
¥¨¥é¡¼¤ËÀèΩ¤ÄʸˡŪʸ̮¤ò˺¤ì¤Æ¤·¤Þ¤¦¤Î¤ÇÉÔÅÔ¹ç¤Ç¤¹¡£
¿¼¤¤´Ø¿ô¸Æ¤Ó½Ð¤·¤ÎÃæ¤Ç¹½Ê¸¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ë¡¢
¥³¥ó¥Ñ¥¤¥é¤¬¥¨¥é¡¼¤Ë³¤¯¹Ô¤ò¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤ÎÀèÆ¬¤Î¤è¤¦¤Ë
°·¤¦¤Ù¤¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£
ÆÃÊ̤ʥȡ¼¥¯¥óerror
¤òǧ¼±¤¹¤ë¤è¤¦¤Êµ¬Â§¤ò½ñ¤¯¤³¤È¤Ë¤è¤Ã¤Æ¡¢
¹½Ê¸¥¨¥é¡¼¤«¤é²óÉü¤¹¤ëÊýË¡¤òÄêµÁ¤Ç¤¤Þ¤¹¡£
error
¤ÏÄêµÁºÑ¤ß¤Î½ªÃ¼µ¹æ¤Ç¡¢¼«Ê¬¤ÇÀë¸À¤¹¤ëɬÍפϤʤ¯¡¢
¥¨¥é¡¼½èÍý¤Î¤¿¤á¤ËͽÌó¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
Bison¹½Ê¸²òÀÏ´ï¤Ï¡¢¹½Ê¸¥¨¥é¡¼¤¬µ¯¤³¤ë¤¿¤Ó¤Ë¡¢error
¥È¡¼¥¯¥ó¤òÀ¸À®¤·¤Þ¤¹¡£
¸½ºß¤Îʸ̮¤Çerror
¥È¡¼¥¯¥ó¤òǧ¼±¤Ç¤¤ëµ¬Â§¤ò½ñ¤¤¤Æ¤¤¤ì¤Ð¡¢
¹½Ê¸²òÀϤò·Ñ³¤Ç¤¤Þ¤¹¡£
Îã¤ò¼¨¤·¤Þ¤¹¡£
stmnts: /* ¶õʸ»úÎó */ | stmnts '\n' | stmnts exp '\n' | stmnts error '\n'
Âè4¤Îµ¬Â§¤Ï¡¢error
¤È¤½¤ì¤Ë³¤¯²þ¹Ô¤¬¡¢Ç¤°Õ¤Îstmnts
¤Ë
³¤¯¤³¤È¤òǧ¤á¤Þ¤¹¡£
exp
¤ÎÃæ¤Ç¹½Ê¸¥¨¥é¡¼¤¬È¯À¸¤¹¤ë¤È¤É¤¦¤Ê¤ë¤Ç¤·¤ç¤¦¤«¡£
¥¨¥é¡¼²óÉüµ¬Â§¤Ï¡¢¸·Ì©¤Ë²ò¼á¤µ¤ì¡¢stmnts
¡¢error
¡¢²þ¹Ô¤«¤é¤Ê¤ë
Îó¤ËŬÍѤµ¤ì¤Þ¤¹¡£
exp
¤ÎÃæ¤Ç¹½Ê¸¥¨¥é¡¼¤¬µ¯¤¤ë¤È¡¢¤ª¤½¤é¤¯¡¢¤¤¤¯¤Ä¤«¤Î;ʬ¤Ê¥È¡¼¥¯¥ó¤Þ¤¿¤Ï
Éôʬ¼°¤¬¥¹¥¿¥Ã¥¯¾å¤ÎºÇ¸å¤Îstmnts
¤Î¸å¤Ë¸ºß¤·¡¢
¤·¤¿¤¬¤Ã¤Æ¡¢¼¡¤Î²þ¹Ô¤òÆÉ¤àÁ°¤ËÆÉ¤à¤Ù¤¥È¡¼¥¯¥ó¤¬Â¸ºß¤¹¤ë¤Ç¤·¤ç¤¦¡£
¤·¤¿¤¬¤Ã¤Æ¡¢¤³¤ÎÄ̾ï¤ÎÊýË¡¤Ç¤Ïµ¬Â§¤òŬÍѤǤ¤Þ¤»¤ó¡£
¤·¤«¤·¡¢°Ọ̃ʸ̮¤ÈÆþÎϤΰìÉô¤ò¼Î¤Æ¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢
Bison¤Ï¶¯À©Åª¤Ë¤³¤Î¾ì¹ç¤Ëµ¬Â§¤òŬÍѤǤ¤Þ¤¹¡£
¤Þ¤º¡¢error
¥È¡¼¥¯¥ó¤¬¼õÍý²Äǽ¤Ê¾õÂÖ¤ËÌá¤ë¤Þ¤Ç¡¢
¾õÂ֤ȥª¥Ö¥¸¥§¥¯¥È¤¬¥¹¥¿¥Ã¥¯¤«¤é¼Î¤Æ¤é¤ì¤Þ¤¹
¡Ê¤³¤ì¤Ï¡¢¤¹¤Ç¤Ë¹½Ê¸²òÀϤµ¤ì¤¿Éôʬ¼°¤¬¼Î¤Æ¤é¤ì¡¢
ºÇ¸å¤Î´°Á´¤Êstmnts
¤Ë¾õÂÖ¤¬Ìá¤ë¤³¤È¤ò°ÕÌ£¤·¤Þ¤¹¡Ë¡£
¤³¤Î»þÅÀ¤Ç¡¢error
¥È¡¼¥¯¥ó¤¬¥·¥Õ¥È¤µ¤ì¤Þ¤¹¡£
¤½¤·¤Æ¡¢¸Å¤¤ÀèÆÉ¤ß¥È¡¼¥¯¥ó¤Î¥·¥Õ¥È¤Ï¼õÍýÉÔ²Äǽ¤Ê¤Î¤Ç¡¢
¼õÍý²Äǽ¤Ê¥È¡¼¥¯¥ó¤ò¸«¤Ä¤±¤ë¤Þ¤Ç¡¢
¹½Ê¸²òÀÏ´ï¤Ï¥È¡¼¥¯¥ó¤òÆÉ¤ó¤Ç¼Î¤Æ¤Þ¤¹¡£
Á°½Ò¤ÎÎã¤Ç¤Ï¡¢¼¡¤Î²þ¹Ô¤¬¤¯¤ë¤Þ¤ÇÆþÎϤ¬ÆÉ¤ß¼Î¤Æ¤é¤ì¡¢
¤·¤¿¤¬¤Ã¤Æ¡¢Âè4¤Îµ¬Â§¤¬Å¬ÍѲÄǽ¤Ë¤Ê¤ê¤Þ¤¹¡£
Ê¸Ë¡Ãæ¤Î¥¨¥é¡¼µ¬Â§¤ÎÁªÂò¤Ï¡¢¥¨¥é¡¼²óÉü¤ÎÀïά¤ÎÁªÂò¤Ç¤¹¡£ ñ½ã¤ÇÊØÍø¤ÊÀïά¤Î1¤Ä¤Ï¡¢¥¨¥é¡¼¤ò¸¡½Ð¤·¤¿¤é¡¢ ñ½ã¤Ë¸½ºß¤ÎÆþÎϹԤޤ¿¤Ïʸ¤òÆÉ¤ßÈô¤Ð¤¹¤³¤È¤Ç¤¹¡£
stmnt: error ';' /* ¥¨¥é¡¼¤¬¤¢¤ì¤Ð¡¢¡Ö;¡×¤¬¤¯¤ë¤Þ¤ÇÆÉ¤ßÈô¤Ð¤¹¡£ */
¤¹¤Ç¤Ë¹½Ê¸²òÀϤµ¤ì¤¿³«¤¶èÀÚ¤ê¥È¡¼¥¯¥ó ¤ò¡¢ÊĤ¸¶èÀÚ¤ê¥È¡¼¥¯¥ó¤ËÂбþ¤µ¤»¤ë¤³¤È¤Ï¡¢ ¥¨¥é¡¼½èÍý¤Î¤¦¤Þ¤¤ÊýË¡¤Ç¤¹¡£¤½¤¦¤·¤Ê¤±¤ì¤Ð¡¢ÊĤ¸¶èÀÚ¤ê¥È¡¼¥¯¥ó¤¬ ¸å¤ÇÉÔŬÀڤ˸½¤ì¤Æ¡¢Ê̤νÅÂç¤Ê¥¨¥é¡¼¤ò°ú¤µ¯¤³¤¹¤Ç¤·¤ç¤¦¡£
primary: '(' expr ')' | '(' error ')' … ;
¥¨¥é¡¼²óÉü¤ÎÀïά¤Ï½Ï褵¤ì¤ë¤Ù¤¤Ç¤¹¡£
Àïά¤¬°¤¤¤È¡¢1¤Ä¤Î¹½Ê¸¥¨¥é¡¼¤¬¤·¤Ð¤·¤ÐÊ̤Υ¨¥é¡¼¤ò°ú¤µ¯¤³¤·¤Þ¤¹¡£
Á°½Ò¤ÎÎã¤Ç¤Ï¡¢¥¨¥é¡¼²óÉüµ¬Â§¤Ï¡¢1¸Ä¤Îstmnt
¤ÎÃæ¤Çµ¯¤¤ë¤È
²¾Äꤵ¤ì¤Æ¤¤¤Þ¤¹¡£
¤½¤¦¤Ç¤Ê¤¤²ÄǽÀ¤È¤·¤Æ¡¢Í¸ú¤Êstmnt
¤ÎÃæ¤Ë¸í¤Ã¤Æ¥»¥ß¥³¥í¥ó¤¬
¤Þ¤®¤ì¹þ¤ó¤Ç¤¤¤ë¤³¤È¤ò¹Í¤¨¤Æ¤ß¤Þ¤·¤ç¤¦¡£
¥¨¥é¡¼²óÉüµ¬Â§¤¬ºÇ½é¤Î¥¨¥é¡¼¤ò²óÉü¤·¤¿¸å¤Ç¡¢¤Þ¤®¤ì¹þ¤ó¤À¥»¥ß¥³¥í¥ó¤Ë³¤¯
ÆþÎϤâ̵¸ú¤Êstmnt
¤Ê¤Î¤Ç¡¢¤â¤¦1¤Ä¤Î¹½Ê¸¥¨¥é¡¼¤¬¤¿¤À¤Á¤Ë¤ß¤Ä¤«¤ê¤Þ¤¹¡£
¥¨¥é¡¼Êó¹ð¤Î¹¿¿å¤òÈò¤±¤ë¤¿¤á¤Ë¡¢ ºÇ½é¤Î¹½Ê¸¥¨¥é¡¼¤¬µ¯¤¤¿Ä¾¸å¤Î¾¤Î¹½Ê¸¥¨¥é¡¼¤ËÂФ·¤Æ¤Ï¡¢ ¹½Ê¸²òÀÏ´ï¤Ï¥¨¥é¡¼Êó¹ð¤òɽ¼¨¤·¤Ê¤¤¤Ù¤¤Ç¤·¤ç¤¦¡£ 3¸Ä¤ÎϢ³¤¹¤ëÆþÎϥȡ¼¥¯¥ó¤Î¥·¥Õ¥È¤ËÀ®¸ù¤·¤Æ¤«¤é¡¢ ¥¨¥é¡¼Êó¹ð¤òºÆ³«¤¹¤ë¤Ù¤¤Ç¤¹¡£
error
¥È¡¼¥¯¥ó¤ò¼õ¤±ÉÕ¤±¤ëµ¬Â§¤â¡¢Â¾¤Îµ¬Â§¤ÈƱÍͤË
¥¢¥¯¥·¥ç¥ó¤ò»ý¤Æ¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£
¥¢¥¯¥·¥ç¥ó¤ÎÃæ¤Ç¥Þ¥¯¥íyyerrok
¤ò»È¤Ã¤Æ¡¢
¤¿¤À¤Á¤Ë¥¨¥é¡¼Êó¹ð¤òºÆ³«¤Ç¤¤Þ¤¹¡£
¤â¤·¡¢¥¨¥é¡¼µ¬Â§¤Î¥¢¥¯¥·¥ç¥ó¤ÎÃæ¤Ç¤³¤Î¥Þ¥¯¥í¤ò»È¤¨¤Ð¡¢
¥¨¥é¡¼Êó¹ð¤ÏÍÞÀ©¤µ¤ì¤Þ¤»¤ó¡£
¤³¤Î¥Þ¥¯¥í¤Ë°ú¿ô¤ÏÉÔÍפǡ¢‘yyerrok;’¤Ï͸ú¤ÊC¤Îʸ¤Ç¤¹¡£
ľÁ°¤ÎÀèÆÉ¤ß¥È¡¼¥¯¥ó¤Ï¡¢¥¨¥é¡¼¤Îľ¸å¤ËºÆ²òÀϤµ¤ì¤Þ¤¹¡£
¤³¤ì¤¬ÉÔÅÔ¹ç¤Ê¤é¤Ð¡¢¥Þ¥¯¥íyyclearin
¤Ë¤è¤Ã¤ÆÀèÆÉ¤ß¥È¡¼¥¯¥ó¤ò
¾Ã¤·¤Æ¤¯¤À¤µ¤¤¡£¤¹¤Ê¤ï¤Á¡¢¥¨¥é¡¼µ¬Â§¤Î¥¢¥¯¥·¥ç¥ó¤Ë
‘yyclearin;’ʸ¤ò½ñ¤¤¤Æ¤¯¤À¤µ¤¤¡£
¤¿¤È¤¨¤Ð¡¢¹½Ê¸¥¨¥é¡¼¤Ë¤ª¤¤¤Æ¡¢¹½Ê¸²òÀϤòºÆ³«¤¹¤Ù¤¾ì½ê¤Þ¤ÇÆþÎϤò¿Ê¤á¤ë¤è¤¦¤Ê¡¢ ¥¨¥é¡¼½èÍý¼ê³¤¤ò¹Í¤¨¤Æ¤ß¤Þ¤·¤ç¤¦¡£ »ú¶ç²òÀϴ狼¤éÊÖ¤µ¤ì¤ë¼¡¤Îµ¹æ¤Ï¡¢¤ª¤½¤é¤¯Àµ¤·¤¤¤Ç¤·¤ç¤¦¡£ °ÊÁ°¤ÎÀèÆÉ¤ß¥È¡¼¥¯¥ó¤Ï‘yyclearin;’¤Ë¤è¤Ã¤Æ¼Î¤Æ¤é¤ì¤ë¤Ù¤¤Ç¤¹¡£
¥Þ¥¯¥íYYRECOVERING
¤Ï¡¢¼°¤òɽ¤·¡¢¹½Ê¸²òÀϴ郎¥¨¥é¡¼¤«¤é²óÉü¤¹¤ë
ÅÓÃæ¤Ë¤¢¤ë¤Ê¤é¤ÐÃͤ¬1¤Ë¤Ê¤ê¡¢Ä̾ï¤Î¾õÂ֤ʤé¤ÐÃͤ¬0¤Ë¤Ê¤ê¤Þ¤¹¡£
Ãͤ¬1¤Ç¤¢¤ë¤È¤¤¤¦¤³¤È¤Ï¡¢¿·¤¿¤Ê¹½Ê¸¥¨¥é¡¼¤ËÂФ¹¤ë¥¨¥é¡¼¤ÎÊó¹ð¤¬¡¢
¸½ºß¤ÏÍÞÀ©¤µ¤ì¤Æ¤¤¤ë¤³¤È¤ò¼¨¤·¤Þ¤¹¡£