Next: , Previous: Precedence, Up: Algorithm   [Contents][Index]


5.4 ʸ̮°Í¸ͥÀè½ç°Ì

¤·¤Ð¤·¤Ð¡¢±é»»»Ò¤ÎÍ¥Àè½ç°Ì¤Ïʸ̮¤Ë°Í¸¤·¤Þ¤¹¡£ ¤³¤ì¤Ï¡¢ºÇ½é¤Ï´ñ°Û¤Ë´¶¤¸¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¤¬¡¢ ¼ÂºÝ¤Ë¤è¤¯µ¯¤­¤Æ¤¤¤ë¤³¤È¤Ê¤Î¤Ç¤¹¡£ ¤¿¤È¤¨¤Ð¡¢Ä̾¸º»»±é»»»Ò¡Ê‘-’¡Ë¤Ï¡¢ ñ¹à±é»»»Ò¤È¤·¤Æ¤ÏÈó¾ï¤Ë¹â¤¤Í¥Àè½ç°Ì¤ò»ý¤Á¤Þ¤¹¤¬¡¢ 2¹à±é»»»Ò¤È¤·¤Æ¤Ï¾è½ü»»¤è¤ê¤âÄ㤤ͥÀè½ç°Ì¤ò»ý¤Á¤Þ¤¹¡£

Bison¤ÎÍ¥Àè½ç°ÌÀë¸À¡¢%left¡¢%right¡¢%nonassoc¤Ï¡¢ ¤¢¤ë¥È¡¼¥¯¥ó¤ËÂФ·¤Æ1²ó¤Î¤ß»È¤¨¡¢¤³¤ÎÊýË¡¤Ç¤Ï¡¢ ¥È¡¼¥¯¥ó¤ÏÍ£°ì¤ÎÍ¥Àè½ç°Ì¤òÀë¸À¤µ¤ì¤Þ¤¹¡£ ʸ̮¤Ë°Í¸¤¹¤ëÍ¥Àè½ç°Ì¤Î¤¿¤á¤Ë¤Ï¡¢Ê̤ÎÊýË¡¡¢¤¹¤Ê¤ï¤Á¡¢ %prec¤Çµ¬Â§¤ò½¤¾þ¤¹¤ëÊýË¡¤¬É¬Íפˤʤê¤Þ¤¹¡£

%prec½¤¾þ»Ò¤Ï¡¢¤¢¤ëµ¬Â§¤Ç»È¤ï¤ì¤ë¤Ù¤­½ªÃ¼µ­¹æ¤ÎÍ¥Àè½ç°Ì¤ò»ØÄꤷ¤Æ¡¢ ¤½¤Îµ¬Â§¤ÎÍ¥Àè½ç°Ì¤òÀë¸À¤·¤Þ¤¹¡£ ¤½¤Îµ­¹æ¤¬¤½¤Îµ¬Â§¤ÎÃæ°Ê³°¤Ë¸½¤ì¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£ ½¤¾þ»Ò¤Îµ­Ë¡¤Ï¡¢¼¡¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£

%prec terminal-symbol

¤³¤ì¤Ï¡¢µ¬Â§¤Î¹½À®Í×ÁǤθå¤Ë½ñ¤«¤ì¤Þ¤¹¡£ ¤³¤ì¤Ë¤è¤Ã¤Æ¡¢Ä̾ï¤ÎÊýË¡¤ÇƳ¤«¤ì¤ëÍ¥Àè½ç°Ì¤ËÂå¤ï¤Ã¤Æ¡¢ terminal-symbol¤ÎÍ¥Àè½ç°Ì¤òµ¬Â§¤Ë³ä¤êÅö¤Æ¤Þ¤¹¡£ µ¬Â§¤ÎÍ¥Àè½ç°Ì¤¬Êѹ¹¤µ¤ì¤Æ¡¢¤½¤Îµ¬Â§¤¬´Ø·¸¤·¤Æ¤¤¤ë¾×ÆÍ¤Î²ò·è¤Ë±Æ¶Á¤·¤Þ¤¹ ¡Êsee Operator Precedence¡Ë¡£

%prec¤¬¤É¤Î¤è¤¦¤Ëñ¹àÉéµ­¹æ¤ò²ò·è¤¹¤ë¤«¤ò¼¨¤·¤Þ¤¹¡£ ¤Þ¤º¡¢UMINUS¤È¤¤¤¦Ì¾Á°¤Î½ªÃ¼µ­¹æ¤ËÂФ¹¤ëÍ¥Àè½ç°Ì¤òÀë¸À¤·¤Þ¤¹¡£ ¤³¤Î·¿¤Î¥È¡¼¥¯¥ó¤Ï¸ºß¤·¤Þ¤»¤ó¤¬¡¢ ¤³¤Îµ­¹æ¤¬Í¥Àè½ç°Ì¤òɽ¸½¤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤Þ¤¹¡£

…
%left '+' '-'
%left '*'
%left UMINUS

¤µ¤Æ¡¢UNIMIS¤ÎÍ¥Àè½ç°Ì¤ò¡¢µ¬Â§¤ÎÃæ¤Ç»È¤¨¤Þ¤¹¡£

exp:    …
        | exp '-' exp
        …
        | '-' exp %prec UMINUS