Next: Mystery Conflicts, Previous: Parser States, Up: Algorithm [Contents][Index]
Ʊ°ì¤ÎÆþÎÏÎó¤ËÂФ·¤Æ2¸Ä°Ê¾å¤Îµ¬Â§¤¬Å¬ÍѲÄǽ¤Ç¤¢¤ë¤È¡¢ ´Ô¸µ/´Ô¸µ¾×ÆÍ¤¬µ¯¤¤Þ¤¹¡£ ¤³¤ì¤Ï¡¢Ä̾ʸˡ¤Î½ÅÂç¤Ê¥¨¥é¡¼¤ò°ÕÌ£¤·¤Þ¤¹¡£
0¸Ä°Ê¾å¤Îword
¤ÎʤӤò¥°¥ë¡¼¥×²½¤¹¤ë¡¢
¸í¤Ã¤¿»î¤ß¤ÎÎã¤ò¼¨¤·¤Þ¤¹¡£
sequence: /* ¶õ */ { printf ("empty sequence\n"); } | maybeword | sequence word { printf ("added word %s\n", $2); } ; maybeword: /* ¶õ */ { printf ("empty maybeword\n"); } | word { printf ("single word %s\n", $1); } ;
¥¨¥é¡¼¤Ï¡¢¤¢¤¤¤Þ¤¤¤µ¤Ë¤¢¤ê¤Þ¤¹¡£
¤Ä¤Þ¤ê¡¢1¸Ä¤Îword
¤òsequence
¤Ë¹½Ê¸²òÀϤ¹¤ë¡¢
2¸Ä°Ê¾å¤ÎÊýË¡¤¬¤¢¤ê¤Þ¤¹¡£
word
¤Ï¡¢maybeword
¤Ë´Ô¸µ¤µ¤ì¡¢
Âè2¤Îµ¬Â§¤Ë¤è¤Ã¤Æsequence
¤Ë¤Ê¤ê¤¨¤Þ¤¹¡£
¤Þ¤¿¡¢ºÇ½é¤Îµ¬Â§¤Ç¡¢¶õ¥Ç¡¼¥¿¤¬sequence
¤Ë´Ô¸µ¤µ¤ì¡¢
¤½¤ì¤¬Âè3¤Îµ¬Â§¤Ë¤è¤Ã¤Æword
¤ÈÁȤ߹ç¤ï¤µ¤ì¤Æ
sequence
¤Ë¤Ê¤ê¤¨¤Þ¤¹¡£
¤µ¤é¤Ë¡¢¶õ¥Ç¡¼¥¿¤¬sequence
¤Ë´Ô¸µ¤µ¤ì¤ëÊýË¡¤¬2¤Ä°Ê¾å¤¢¤ê¤Þ¤¹¡£
Âè1¤Îµ¬Â§¤ÇľÀÜ´Ô¸µ¤µ¤ì¤ëÊýË¡¤È¡¢
maybeword
¤ò·Ðͳ¤·¤ÆÂè2¤Îµ¬Â§¤Ç´Ô¸µ¤µ¤ì¤ëÊýË¡¤Ç¤¹¡£
¤³¤Î°ã¤¤¤Ï¡¢ÆÃÄê¤ÎÆþÎϤ¬ÀµÅö¤Ç¤¢¤ë¤«¤É¤¦¤«¤Ë´Ø·¸¤Ê¤¤¤Î¤Ç¡¢ ¤µ¤µ¤¤¤Ê¤³¤È¤Ë»×¤¨¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£ ¤·¤«¤·¡¢¤³¤ì¤Ï¡¢¤É¤Î¥¢¥¯¥·¥ç¥ó¤¬¼Â¹Ô¤µ¤ì¤ë¤«¤Ë±Æ¶Á¤·¤Þ¤¹¡£ ¤¢¤ë¹½Ê¸²òÀϼê½ç¤Ç¤ÏÂè2¤Îµ¬Â§¤Î¥¢¥¯¥·¥ç¥ó¤¬¼Â¹Ô¤µ¤ì¡¢ Ê̤ι½Ê¸²òÀϼê½ç¤Ç¤ÏÂè1¤Îµ¬Â§¤Î¥¢¥¯¥·¥ç¥ó¤ÈÂè3¤Îµ¬Â§¤Î¥¢¥¯¥·¥ç¥ó¤¬ ¼Â¹Ô¤µ¤ì¤Þ¤¹¡£ ¤³¤ÎÎã¤Ç¤Ï¡¢¥×¥í¥°¥é¥à¤Î½ÐÎϤ¬°Û¤Ê¤ê¤Þ¤¹¡£
Bison¤Ï¡¢ºÇ½é¤Ë¸½¤ì¤¿Ê¸Ë¡¤òÁª¤Ö¤³¤È¤Ç¡¢´Ô¸µ/´Ô¸µ¾×ÆÍ¤ò²ò·è¤·¤Þ¤¹¤¬¡¢
¤³¤ì¤ËÍê¤ë¤³¤È¤ÏÈó¾ï¤Ë´í¸±¤Ç¤¹¡£
´Ô¸µ/´Ô¸µ¾×ÆÍ¤Î¤½¤ì¤¾¤ì¤Ï¡¢¿Í´Ö¤Ë¤è¤Ã¤Æ²òÀϤµ¤ì¡¢
Ä̾ï¤Ï¼è¤ê½ü¤«¤ì¤ë¤Ù¤¤Ç¤¹¡£
sequence
¤òÄêµÁ¤¹¤ëÀµ¤·¤¤ÊýË¡¤ò¼¨¤·¤Þ¤¹¡£
sequence: /* ¶õ */ { printf ("empty sequence\n"); } | sequence word { printf ("added word %s\n", $2); } ;
´Ô¸µ/´Ô¸µ¾×ÆÍ¤òµ¯¤³¤¹¡¢Ê̤Τ¢¤ê¤¬¤Á¤Ê¥¨¥é¡¼¤ÎÎã¤ò¼¨¤·¤Þ¤¹¡£
sequence: /* ¶õ */ | sequence words | sequence redirects ; words: /* ¶õ */ | words word ; redirects:/* ¶õ */ | redirects redirect ;
¤³¤³¤Ï¡¢word
¤Þ¤¿¤Ïredirect
¥°¥ë¡¼¥×¤Î¤É¤Á¤é¤«¤ò´Þ¤à
Îó¤ÎÄêµÁ¤¬ÌÜŪ¤Ç¤¹¡£
sequence
¡¢words
¡¢redirects
¤½¤ì¤¾¤ì¸ÄÊ̤Î
ÄêµÁ¤Ë¥¨¥é¡¼¤Ï¤¢¤ê¤Þ¤»¤ó¡£¤·¤«¤·¡¢3¸Ä¤ò¹ç¤ï¤»¤ë¤È¡¢¤¢¤¤¤Þ¤¤¤Ë¤Ê¤ê¤Þ¤¹¡£
¶õ¤ÎÆþÎϤˤϡ¢Ìµ¸Â¸Ä¤Î¹½Ê¸²òÀÏÊýË¡¤¬¤¢¤ê¤Þ¤¹¡£
¶õ¥Ç¡¼¥¿¤¬words
¤Ë¤Ê¤Ã¤¿¤È²¾Äꤷ¤Þ¤·¤ç¤¦¡£
¤½¤ì¤Ï¡¢2¸Ä¤Îwords
¤Ë¤â¡¢3¸Ä¤Îwords
¤Ë¤â¡¢
²¿¸Ä¤Îwords
¤Ë¤â¤Ê¤ê¤¨¤Þ¤¹¡£
¤¢¤ë¤¤¤Ï¡¢1¸Ä¤Îwords
¤Ë3¸Ä¤Îredirects
¤È¤â¤¦1¸Ä¤Îword
¤¬
³¤¯¤³¤È¤â¹Í¤¨¤é¤ì¤Þ¤¹¡£Æ±Íͤˡ¢Ìµ¸Â¤Î²ò¼á¤¬²Äǽ¤Ç¤¹¡£
¤³¤ì¤é¤Îµ¬Â§¤òľ¤¹ÊýË¡¤¬2¤Ä¤¢¤ê¤Þ¤¹¡£ Âè1¤Ë¡¢1Ãʳ¬¤ÎÎó¤Ë¤¹¤ëÊýË¡¤Ç¤¹¡£
sequence: /* ¶õ */ | sequence word | sequence redirect ;
Âè2¤Ë¡¢words
¤Èredirects
¤¬¶õ¤Ë¤Ê¤ë¤Î¤òËɤ°ÊýË¡¤Ç¤¹¡£
sequence: /* ¶õ */ | sequence words | sequence redirects ; words: word | words word ; redirects:redirect | redirects redirect ;