Previous: Rpcalc Line, Up: Rpcalc Rules [Contents][Index]
expr
¤ÎÀâÌÀexp
¥°¥ë¡¼¥×¤Ï¡¢¤¤¤¯¤Ä¤«¤Îµ¬Â§¤ò»ý¤Á¡¢
¤½¤ì¤¾¤ì¤¬¼°¤Î¼ïÎà¤ËÂбþ¤·¤Æ¤¤¤Þ¤¹¡£
ºÇ½é¤Îµ¬Â§¤Ï¡¢¿ôÃͤ½¤Î¤â¤Î¤Ç¤¢¤ë¤â¤Ã¤È¤âñ½ã¤Ê¼°¤ò½èÍý¤·¤Þ¤¹¡£
Âè2¤Îµ¬Â§¤Ï¡¢2¸Ä¤Î¼°¤Ë²Ã»»µ¹æ¤¬Â³¤¯¤è¤¦¤Ê¡¢²Ã»»¼°¤ò½èÍý¤·¤Þ¤¹¡£
Âè3¤Îµ¬Â§¤Ï¡¢¸º»»¼°¤ò½èÍý¤¹¤ë¡¢¤È¤¤¤Ã¤¿¶ñ¹ç¤Ç¤¹¡£
exp: NUM | exp exp '+' { $$ = $1 + $2; } | exp exp '-' { $$ = $1 - $2; } … ;
¤¹¤Ù¤Æ¤Îexp
µ¬Â§¤ò¤Þ¤È¤á¤ë¤¿¤á¤Ë‘|’¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¤¬¡¢
¼¡¤Î¤è¤¦¤ËÊÌ¡¹¤Ë½ñ¤¯¤³¤È¤â²Äǽ¤Ç¤¹¡£
exp: NUM ; exp: exp exp '+' { $$ = $1 + $2; } ; exp: exp exp '-' { $$ = $1 - $2; } ; …
µ¬Â§¤Î¤Û¤È¤ó¤É¤Ï¡¢¼°¤ÎÉôÉʤÎÃͤ«¤é¼°¤ÎÃͤò·×»»¤¹¤ë¤¿¤á¤Î¡¢
¥¢¥¯¥·¥ç¥ó¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£
¤¿¤È¤¨¤Ð¡¢²Ã»»¤Î¤¿¤á¤Îµ¬Â§¤Ç¤Ï¡¢$1
¤Ï¼°¤ÎÂè1¤ÎÉôÉʤò¡¢
$2
¤Ï¼°¤ÎÂè2¤ÎÉôÉʤòɽ¤·¤Þ¤¹¡£
Âè3¤ÎÉôÉÊ'+'
¤Ï¡¢°ÕÌ£ÃͤˤϴØÏ¢¤¹¤ë¾ðÊó¤ò»ý¤Á¤Þ¤»¤ó¤¬¡¢
¤â¤·Ãͤò»ý¤Ã¤Æ¤¤¤ì¤Ð¡¢$3
¤È¤·¤Æ»²¾È¤Ç¤¤Þ¤¹¡£
yyparse
¤¬¤³¤Îµ¬Â§¤ò»È¤Ã¤Æ²Ã»»¼°¤òǧ¼±¤¹¤ë¤È¡¢
¼°Á´ÂΤÎÃͤȤ·¤Æ¡¢2¸Ä¤ÎÉôʬ¼°¤ÎÃͤÎϤ¬À¸À®¤µ¤ì¤Þ¤¹¡£
See Actions¡£
¤¹¤Ù¤Æ¤Îµ¬Â§¤ËÂФ·¤Æ¥¢¥¯¥·¥ç¥ó¤ò½ñ¤¯É¬ÍפϤ¢¤ê¤Þ¤»¤ó¡£
¥¢¥¯¥·¥ç¥ó¤ò¾Êά¤¹¤ë¤È¡¢Bison¤Ï$1
¤ÎÃͤò$$
¤ËÊ£¼Ì¤·¤Þ¤¹¡£
Âè1¤Îµ¬Â§¤Ç¤Ï¡¢NUM
¤ÎÃͤò¤½¤Î¤Þ¤ÞÊ£¼Ì¤¹¤ë¤¿¤á¤Ë¡¢
¤³¤Î¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
¤³¤³¤Ç¼¨¤·¤¿¥ê¥¹¥È¤Ï¡¢Ë¾¤Þ¤·¤¤½ñ¼°¤Ç¤¹¤¬¡¢ Bison¤¬¤³¤Î¤è¤¦¤ËÍ׵᤹¤ë¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ ɬÍפ˱þ¤¸¤Æ¡¢¶õÇò¡¢¥¿¥Ö¡¢²þ¹Ô¤òÃÖ¤±¤Þ¤¹¡£ ¼¡¤Î¤è¤¦¤Ê½ñ¤Êý¤â²Äǽ¤Ç¤¹¡£
exp : NUM | exp exp '+' {$$ = $1 + $2; } | …
¤³¤ì¤Ï¡¢¼¡¤Î¥ê¥¹¥È¤ÈÅù²Á¤Ç¤¹¡£
exp: NUM | exp exp '+' { $$ = $1 + $2; } | …
¤·¤«¤·¡¢¸å¼Ô¤Î¤Û¤¦¤¬²ÄÆÉÀ¤¬Í¥¤ì¤Æ¤¤¤Þ¤¹¡£