Next: , Previous: Rules, Up: Grammar File   [Contents][Index]


3.4 ºÆµ¢Åªµ¬Â§

result¤Ç¤¢¤ëÈó½ªÃ¼µ­¹æ¤¬µ¬Â§¤Î±¦Â¦¤Ë¤â¸½¤ì¤ë¾ì¹ç¤Ë¡¢ ¤½¤Îµ¬Â§¤ÏºÆµ¢Åª¡Êrecursive¡Ë¤Ç¤¢¤ë¤È¤¤¤¤¤Þ¤¹¡£ Bisonʸˡ¤ÎÂçÉôʬ¤ÏºÆµ¢Åªµ¬Â§¤ò»È¤¤¤Þ¤¹¡£ ¤Ê¤¼¤Ê¤é¤Ð¡¢Ç¤°Õ¤Î¿ô¤ÎʤӤòÄêµÁ¤¹¤ëÍ£°ì¤ÎÊýË¡¤¬¡¢ ºÆµ¢Åªµ¬Â§¤À¤«¤é¤Ç¤¹¡£ 1¤Ä°Ê¾å¤Î¥«¥ó¥Þ¤Ç¶èÀÚ¤é¤ì¤¿¼°¤ÎʤӤÎÄêµÁ¤ò¹Í¤¨¤Æ¤ß¤Þ¤·¤ç¤¦¡£

expseq1:  exp
        | expseq1 ',' exp
        ;

expseq1¤Ç»È¤ï¤ì¤Æ¤¤¤ëºÆµ¢¤Ï¡¢µ¬Â§¤Î±¦Â¦¤ÎÃæ¤Ç¤â¤Ã¤È¤âº¸Â¦¤Ë¤¢¤ë¤Î¤Ç¡¢ ¤³¤Î¤è¤¦¤ÊºÆµ¢¤òº¸ºÆµ¢¡Êleft recursion¡Ë¤È¸Æ¤Ó¤Þ¤¹¡£ µÕ¤Ë¡¢Æ±¤¸¹½Â¤¤ò±¦ºÆµ¢¡Êright recursion¡Ë¤ò»È¤Ã¤Æ½ñ¤¤¤Æ¤ß¤Þ¤¹¡£

expseq1:  exp
        | exp ',' expseq1
        ;

¤¢¤é¤æ¤ëʤӤò¡¢º¸ºÆµ¢¤ò»È¤Ã¤Æ¤â¡¢±¦ºÆµ¢¤ò»È¤Ã¤Æ¤â¡¢ÄêµÁ¤Ç¤­¤Þ¤¹¡£ ¤·¤«¤·¡¢¸Â¤é¤ì¤¿¥¹¥¿¥Ã¥¯ÍÆÎ̤ÇǤ°Õ¤Î¿ô¤ÎʤӤòÁöºº¤Ç¤­¤ë¤Î¤Ç¡¢ ¤Ä¤Í¤Ëº¸ºÆµ¢¤ò»È¤¦¤Ù¤­¤Ç¤¹¡£ ±¦ºÆµ¢¤Ç¤Ï¡¢µ¬Â§¤¬Å¬ÍѤµ¤ì¤ëÁ°¤Ë¤¹¤Ù¤Æ¤ÎÍ×ÁǤò¥¹¥¿¥Ã¥¯¤ËÀѤàɬÍפ¬¤¢¤ë¤Î¤Ç¡¢ Í×ÁǤοô¤ËÈæÎ㤹¤ë¥¹¥¿¥Ã¥¯Îΰè¤ò¾ÃÈñ¤·¤Þ¤¹¡£ ¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¡¢See The Bison Parser Algorithm¡£

µ¬Â§¤Î·ë²Ì¤¬Ä¾Àܤ½¤Î±¦Â¦¤Ë¤Ï´Þ¤Þ¤ì¤º¡¢ ±¦Â¦¤Ë¤¢¤ëÈó½ªÃ¼µ­¹æ¤ÎÃæ¤Ë´Þ¤Þ¤ì¤ë¤È¤­¡¢ ´ÖÀÜ¡Êindirect¡Ë¤¹¤Ê¤ï¤ÁÁê¸ß¡Êmutual¡ËºÆµ¢¤¬µ¯¤­¤Þ¤¹¡£

Îã¤ò¼¨¤·¤Þ¤¹¡£

expr:     primary
        | primary '+' primary
        ;
primary:  constant
        | '(' expr ')'
        ;

¤³¤ÎÎã¤Ç¤Ï¡¢¤½¤ì¤¾¤ì¤Îµ¬Â§¤¬¸ß¤¤¤Ë»²¾È¤·¤Æ¤¤¤ë¤Î¤Ç¡¢ 2¸Ä¤ÎÁê¸ßºÆµ¢¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£