Next: Mid-Rule Actions, Previous: Actions, Up: Semantics [Contents][Index]
¤¹¤Ù¤Æ¤Î°ÕÌ£ÃͤËÂФ·¤ÆÆ±°ì¤Î¥Ç¡¼¥¿·¿¤ò»È¤Ã¤Æ¤¤¤ë¤Î¤Ê¤é¤Ð¡¢
$$
¤È$n
¤Ï¤½¤Î¥Ç¡¼¥¿·¿¤ò»ý¤Á¤Þ¤¹¡£
¤µ¤Þ¤¶¤Þ¤Ê¥Ç¡¼¥¿·¿¤ò»ØÄꤹ¤ë¤¿¤á¤Ë%union
¤ò»È¤Ã¤Æ¤¤¤ë¤Ê¤é¤Ð¡¢
°ÕÌ£Ãͤò»ý¤Ä½ªÃ¼µ¹æ¤ÈÈó½ªÃ¼µ¹æ¤Î¤½¤ì¤¾¤ì¤ËÂФ·¤Æ¡¢
¥Ç¡¼¥¿·¿¤ÎÃæ¤«¤éŬÀڤʤâ¤Î¤òÁª¤Ö¤è¤¦¤ËÀë¸À¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
¤¹¤ë¤È¡¢$$
¤Èn
¤ò»È¤¦¤¿¤Ó¤Ë¡¢
µ¬Â§¤ÎÃæ¤Ç¤½¤ì¤é¤¬¤É¤Îµ¹æ¤ò»²¾È¤¹¤ë¤«¤Ë±þ¤¸¤Æ¡¢
¥Ç¡¼¥¿·¿¤¬·è¤á¤é¤ì¤Þ¤¹¡£
Îã¤ò¼¨¤·¤Þ¤¹¡£
exp: … | exp '+' exp { $$ = $1 + $3; }
$1
¤È$3
¤Ïexp
¤È¤¤¤¦¼ïÎà¤Îµ¹æ¤ò»²¾È¤¹¤ë¤Î¤Ç¡¢
$1
¤È$3
¤Ï¡¢Èó½ªÃ¼µ¹æexp
¤ËÂФ·¤ÆÀë¸À¤µ¤ì¤¿
¥Ç¡¼¥¿·¿¤ò»ý¤Á¤Þ¤¹¡£
¤â¤·¡¢$2
¤¬»È¤ï¤ì¤ë¤Ê¤é¤Ð¡¢¤É¤Î¤è¤¦¤Ê·¿¤Ç¤¢¤ì¡¢
½ªÃ¼µ¹æ+
¤ËÂФ·¤ÆÀë¸À¤µ¤ì¤¿¥Ç¡¼¥¿·¿¤¬»È¤ï¤ì¤Þ¤¹¡£
Ê̤ÎÊýË¡¤È¤·¤Æ¡¢Ãͤò»²¾È¤¹¤ë¤È¤¤Ë¤½¤Î¥Ç¡¼¥¿·¿¤ò»ØÄê¤Ç¤¤Þ¤¹¡£ ¤½¤Î¤¿¤á¤Ë¤Ï¡¢»²¾È¤Î¤¿¤á¤Î‘$’µ¹æ¤Î¸å¤Ë‘<type>’¤ò ÁÞÆþ¤·¤Þ¤¹¡£Îã¤ò¼¨¤·¤Þ¤¹¡£
%union { int itype; double dtype; }
¤³¤Î¾ì¹ç¤Ë¡¢$<itype>1
¤È½ñ¤±¤Ð¡¢
ºÇ½é¤ÎÍ×ÁǤòint
·¿¤È¤·¤Æ»²¾È¤Ç¤¡¢$<dtype>1
¤È½ñ¤±¤Ð¡¢
double
·¿¤È¤·¤Æ»²¾È¤Ç¤¤Þ¤¹¡£