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·¿¤È¤·¤Æ»²¾È¤Ç¤¤Þ¤¹¡£