Next: Rules, Previous: Grammar Outline, Up: Grammar File [Contents][Index]
Bisonʸˡ¤Îµ¹æ¡Êsymbols¡Ë¤Ï¡¢ ¸À¸ì¤ÎʸˡŪʬÎà¤òɽ¸½¤·¤Þ¤¹¡£
½ªÃ¼µ¹æ¡Êterminal symbol¡Ë
¡Ê¥È¡¼¥¯¥ó·¿¡Êtokens types¡Ë¤È¤â¤¤¤¤¤Þ¤¹¡Ë¤Ï¡¢
¹½Ê¸Åª¤ËÅù²Á¤Ê¥È¡¼¥¯¥ó¤Î¥¯¥é¥¹¤òɽ¤·¤Þ¤¹¡£
¤½¤Î¥¯¥é¥¹¤Î¥È¡¼¥¯¥ó¤¬µö¤µ¤ì¤ë¤³¤È¤òɽ¤¹¤¿¤á¤Ë¡¢
ʸˡµ¬Â§¤ÎÃæ¤Çµ¹æ¤ò»È¤¨¤Þ¤¹¡£
¤½¤Îµ¹æ¤Ï¡¢Bison¹½Ê¸²òÀÏ´ï¤ÎÃæ¤ÇÈÖ¹æ¤Çɽ¸½¤µ¤ì¡¢
yylex
´Ø¿ô¤Ï¡¢¤É¤Î¤è¤¦¤Ê¼ïÎà¤Î¥È¡¼¥¯¥ó¤¬ÆÉ¤ß¹þ¤Þ¤ì¤¿¤«¤ò¼¨¤¹¤¿¤á¤Ë¡¢
¥È¡¼¥¯¥óÈÖ¹æ¤òÊÖ¤·¤Þ¤¹¡£
¤³¤ì¤òɽ¤¹µ¹æ¤òÃΤäƤ¤¤ì¤Ð¤è¤¯¡¢¤½¤ÎÈÖ¹æ¤òÃΤäƤ¤¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£
Èó½ªÃ¼µ¹æ¡Ênonterminal symbol¡Ë¤Ï¡¢ ¹½Ê¸Åª¤ËÅù²Á¤Ê¥°¥ë¡¼¥×¤òɽ¸½¤·¤Þ¤¹¡£ µ¹æÌ¾¤Ïʸˡµ¬Â§¤Îµ½Ò¤Ë»È¤ï¤ì¤Þ¤¹¡£ Ä̾Èó½ªÃ¼µ¹æÌ¾¤ò¾®Ê¸»ú¤Ç½ñ¤¤Þ¤¹¡£
µ¹æÌ¾¤Ï¡¢±Ñ»ú¡¢ÀèÆ¬°Ê³°¤Ç¤Î¿ô»ú¡¢²¼Àþµ¹æ¡Ê‘_’¡Ë¤È¥Ô¥ê¥ª¥É¤«¤é¤Ê¤ê¤Þ¤¹¡£ ¥Ô¥ê¥ª¥Éµ¹æ¡Ê‘.’¡Ë¤Ï¡¢Èó½ªÃ¼µ¹æ¤Î̾Á°¤Ë¤Ï»È¤¨¤Þ¤¹¤¬¡¢ ½ªÃ¼µ¹æ¤Î̾Á°¤Ë¤Ï»È¤¨¤Þ¤»¤ó¡£
Ê¸Ë¡Ãæ¤Ç½ªÃ¼µ¹æ¤òµ½Ò¤¹¤ë¤Ë¤Ï3¼ïÎà¤ÎÊýË¡¤¬¤¢¤ê¤Þ¤¹¡£
%token
¤Î¤è¤¦¤ÊBisonÀë¸À¤È¤È¤â¤ËÄêµÁ¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
See Token Type Names¡£
'+'
¤Ïʸ»ú¥È¡¼¥¯¥ó·¿¤Ç¤¹¡£
°ÕÌ£Ãͥǡ¼¥¿·¿¡Êsee Data Types of Semantic Values¡Ë¡¢
·ë¹çÀ¡¢Í¥Àè½ç°Ì¡Êsee Operator Precedence¡Ë¤ò
»ØÄꤹ¤ëɬÍפ¬¤Ê¤±¤ì¤Ð¡¢
ʸ»ú¥È¡¼¥¯¥ó·¿¤òÀë¸À¤¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£
Ä̾ʸ»ú¥È¡¼¥¯¥ó·¿¤Ï¡¢ÆÃÊ̤Êʸ»ú8¤«¤é
¤Ê¤ë¥È¡¼¥¯¥ó¤òɽ¤¹¤¿¤á¤À¤±¤Ë»È¤¤¤Þ¤¹¡£
¤¿¤È¤¨¤Ð¡¢¥È¡¼¥¯¥ó·¿'+'
¤ò¡¢
¥È¡¼¥¯¥ó¤È¤·¤Æ¤Î‘+’ʸ»ú¤òɽ¤¹¤¿¤á¤Ë»È¤¤¤Þ¤¹¡£
¤³¤Î¤è¤¦¤Ë¤¹¤ëµÁ̳¤Ï¤¢¤ê¤Þ¤»¤ó¤¬¡¢¤½¤¦¤·¤Ê¤¤¤È¡¢
¤¢¤Ê¤¿¤¬½ñ¤¤¤¿¥×¥í¥°¥é¥à¤òÆÉ¤à¿Í¤¬º®Í𤹤ë¤Ç¤·¤ç¤¦¡£
C¸À¸ì¤Îʸ»ú¥ê¥Æ¥é¥ë¤Ç»È¤ï¤ì¤ëÄ̾ï¤Î¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹
9¤ò¡¢Bison¤Ç¤â»È¤¨¤Þ¤¹¡£
¤·¤«¤·¡¢'\0'
¤À¤±¤ÏASCIIÉ乿¤Î0¤òɽ¤·¡¢
yylex
¤¬¥Õ¥¡¥¤¥ë¤Î½ª¤ï¤ê¤ò¼¨¤¹É乿¤Ê¤Î¤Ç¡¢
ʸ»ú¥ê¥Æ¥é¥ë¤È¤·¤Æ¤Ï»È¤¨¤Þ¤»¤ó
¡Êsee Calling Convention for yylex
¡Ë¡£
"<="
¤¬¥ê¥Æ¥é¥ëʸ»úÎó¥È¡¼¥¯¥ó¤Ç¤¹¡£
°ÕÌ£ÃÍ¡Êsee Value Type¡Ë¡¢
·ë¹çÀ¡¢Í¥Àè½ç°Ì¡Êsee Operator Precedence¡Ë¤ò
»ØÄꤹ¤ëɬÍפ¬¤Ê¤±¤ì¤Ð¡¢
¥ê¥Æ¥é¥ëʸ»úÎó¥È¡¼¥¯¥ó¤òÀë¸À¤¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£
%token
Àë¸À¡Êsee Token Declarations¡Ë¤ò»È¤Ã¤Æ¡¢
¥ê¥Æ¥é¥ëʸ»úÎó¥È¡¼¥¯¥ó¤ò¡¢µ¹æÌ¾¤ÎÊÌ̾¤È¤·¤Æ´ØÏ¢¤Å¤±¤é¤ì¤Þ¤¹¡£
¤½¤¦¤·¤Ê¤¤¤È¡¢»ú¶ç²òÀÏ´ï¤Ï¡¢
yytname
ɽ¡Êsee Calling Convention¡Ë¤ò»È¤Ã¤Æ¡¢
¥ê¥Æ¥é¥ëʸ»úÎó¥È¡¼¥¯¥ó¤«¤é¥È¡¼¥¯¥óÈÖ¹æ¤ò¸¡º÷¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
¡Ú·Ù¹ð¡Ûyacc
¤Ç¤Ï¥ê¥Æ¥é¥ëʸ»úÎó¥È¡¼¥¯¥ó¤ò»È¤¨¤Þ¤»¤ó¡£
Ä̾ÆÃ¼ìʸ»ú¤ÎÎ󤫤é¤Ê¤ë¥È¡¼¥¯¥ó¤Îɽ¸½¤Ë¤Î¤ß¡¢
¥ê¥Æ¥é¥ëʸ»úÎó¥È¡¼¥¯¥ó¤ò»È¤¤¤Þ¤¹¡£
¤¿¤È¤¨¤Ð¡¢¥È¡¼¥¯¥ó¤È¤·¤Æ¤Î‘<=’¤òɽ¤¹¤¿¤á¤Ë¡¢
¥È¡¼¥¯¥ó·¿"<="
¤ò»È¤¦¤Ù¤¤Ç¤¹¡£
¤½¤¦¤¹¤ëµÁ̳¤Ï¤¢¤ê¤Þ¤»¤ó¤¬¡¢¤½¤¦¤·¤Ê¤¤¤È¡¢
¤¢¤Ê¤¿¤¬½ñ¤¤¤¿¥×¥í¥°¥é¥à¤òÆÉ¤à¿Í¤¬º®Í𤹤ë¤Ç¤·¤ç¤¦¡£
C¸À¸ì¤Ç»È¤¨¤ë¥¨¥¹¥±¡¼¥×¥·¡¼¥±¥ó¥¹¤Ï¤¹¤Ù¤ÆBison¤Ç¤â»È¤¨¤Þ¤¹¡£ ¥ê¥Æ¥é¥ëʸ»úÎó¥È¡¼¥¯¥ó¤Ï¡¢2ʸ»ú°Ê¾å¤«¤é¤Ê¤ê¤Þ¤¹¡£ ¤â¤·¡¢¥È¡¼¥¯¥ó¤¬1ʸ»ú¤Ê¤é¤Ð¡¢Á°½Ò¤Î1ʸ»ú¥È¡¼¥¯¥ó¤ò»È¤Ã¤Æ¤¯¤À¤µ¤¤¡£
½ªÃ¼µ¹æ¤ò½ñ¤¯ÊýË¡¤Ï¡¢½ªÃ¼µ¹æ¤ÎʸˡŪ°ÕÌ£¤Ë´Ø·¸¤Ê¤¯¡¢ µ¬Â§¤ÎÃæ¤Ë¸½¤ì¤ë°ÌÃ֤ȡ¢ ¹½Ê¸²òÀÏ´ï´Ø¿ô¤¬µ¹æ¤òÊÖ¤¹ÊýË¡¤Ë´Ø·¸¤·¤Þ¤¹¡£
yylex
¤¬ÊÖ¤¹Ãͤϡ¢½ªÃ¼µ¹æ¤Î¤É¤ì¤«¤òɽ¤·¡¢
ÆþÎϤνª¤ï¤ê¤Ç¤Ï0¤Ç¤¹¡£
ʸˡµ¬Â§¤ÎÃæ¤Ç¤É¤ÎÊýË¡¤Ç¥È¡¼¥¯¥ó·¿¤ò½ñ¤¤¤Æ¤â¡¢
yylex
¤òÄêµÁ¤¹¤ë½ñ¤Êý¤ÏƱ¤¸¤Ç¤¹¡£
1ʸ»ú¥È¡¼¥¯¥ó·¿¤ËÂФ¹¤ëÉ乿¤Ï¡¢¤½¤Îʸ»ú¤ÎASCIIÉ乿¤Ê¤Î¤Ç¡¢
yylex
¤ÏɬÍפÊÉ乿¤òÀ¸À®¤¹¤ë¤¿¤á¤ËƱ°ì¤Îʸ»úÄê¿ô¤ò»È¤¨¤Þ¤¹¡£
̾Á°¤òÉÕ¤±¤é¤ì¤¿¥È¡¼¥¯¥ó·¿¤Ï¤½¤ì¤¾¤ì¡¢
¹½Ê¸²òÀÏ´ï¥Õ¥¡¥¤¥ë¤ÎÃæ¤ÇC¤Î¥Þ¥¯¥í¤Ë¤Ê¤ë¤Î¤Ç¡¢
yylex
¤ÏÉ乿¤ËÂФ¹¤ë¥Þ¥¯¥í̾¤ò»È¤¨¤Þ¤¹¡£
¤³¤ì¤¬¡¢½ªÃ¼µ¹æ¤Î̾Á°¤Ë¥Ô¥ê¥ª¥Éµ¹æ¤ò»È¤¨¤Ê¤¤Íýͳ¤Ç¤¹¡£
See Calling Convention for yylex
¡£
yylex
¤¬¹½Ê¸²òÀÏ´ï¤ÈÊ̤Υ½¡¼¥¹¥Õ¥¡¥¤¥ë¤ÎÃæ¤Ë½ñ¤«¤ì¤ë¾ì¹ç¤Ë¤Ï¡¢
¤½¤³¤Ç¥È¡¼¥¯¥ó·¿¥Þ¥¯¥íÄêµÁ¤ò»È¤¨¤ë¤è¤¦¤Ë½àÈ÷¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
‘-d’¥ª¥×¥·¥ç¥ó¤òÉÕ¤±¤ÆBison¤ò¼Â¹Ô¤·¤Æ¤¯¤À¤µ¤¤¡£
¤¹¤ë¤È¡¢¥Þ¥¯¥íÄêµÁ¤¬name.tab.h¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤Ë½ñ¤«¤ì¡¢
ɬÍפ˱þ¤¸¤ÆÊ̤Υ½¡¼¥¹¥Õ¥¡¥¤¥ë¤«¤é¥¤¥ó¥¯¥ë¡¼¥É¤Ç¤¤Þ¤¹¡£
See Invoking Bison¡£
µ¹æerror
¤Ï¡¢¥¨¥é¡¼²óÉüÍѤËͽÌ󤵤줿½ªÃ¼µ¹æ¡Êsee Error Recovery¡Ë
¤Ç¡¢Â¾¤ÎÌÜŪ¤Ë»È¤¦¤Ù¤¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£
¼ÂºÝ¤Ë¡¢yylex
¤¬¤³¤ÎÃͤòÊÖ¤¹¤³¤È¤Ï·è¤·¤Æ¤¢¤ê¤Þ¤»¤ó¡£