Next: Invocation, Previous: Context Dependency, Up: Top [Contents][Index]
¤â¤·¡¢Bisonʸˡ¥Õ¥¡¥¤¥ë¤¬Àµ¤·¤¯¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤¿¤Î¤Ë¡¢
À¸À®¤µ¤ì¤¿¹½Ê¸²òÀϴ郎»×¤¤¤É¤ª¤ê¤Ëư¤«¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢
yydebug
¹½Ê¸²òÀÏ´ïÄÉÀ×µ¡Ç½¤¬¡¢Ä´ºº¤ÎÌò¤ËΩ¤Ä¤Ç¤·¤ç¤¦¡£
ÄÉÀ×µ¡Ç½¤Î¥³¥ó¥Ñ¥¤¥ë¤ò͸ú¤Ë¤¹¤ë¤¿¤á¤Ë¤Ï¡¢
¹½Ê¸²òÀÏ´ï¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë¤È¤¤Ë¡¢¥Þ¥¯¥íYYDEBUG
¤òÄêµÁ¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
¤½¤Î¤¿¤á¤Ë¤Ï¡¢¥³¥ó¥Ñ¥¤¥é¤Î¥ª¥×¥·¥ç¥ó¤Ë‘-DYYDEBUG=1’¤ò»ØÄꤹ¤ë¤«¡¢
¤¢¤ë¤¤¤Ï¡¢Ê¸Ë¡¥Õ¥¡¥¤¥ë¤ÎCÀë¸ÀÉô¤Ë‘#define YYDEBUG 1’¤È½ñ¤¤¤Æ¤ª¤¯
ɬÍפ¬¤¢¤ê¤Þ¤¹¡Êsee The C Declarations Section¡Ë¡£
¤¢¤ë¤¤¤Ï¡¢Bison¤ò¼Â¹Ô¤¹¤ë¤È¤¤Ë(see Invoking Bison)¡¢
‘-t’¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤Æ¤ª¤¯¤È¡¢
YYDEBUG
¤¬ÄêµÁ¤µ¤ì¡¢ÄÉÀפ¬²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¡£
ÄÉÀ×µ¡Ç½¤Ïstderr
¤ò»È¤¦¤Î¤Ç¡¢CÀë¸ÀÉô¤Ë
#include <stdio.h>
¤È½ñ¤¤¤Æ¤ª¤¯É¬Íפ¬¤¢¤ê¤Þ¤¹¡£
ÄÉÀ×µ¡Ç½Éդǹ½Ê¸²òÀÏ´ï¤ò¥³¥ó¥Ñ¥¤¥ë¤·¤¿¤é¡¢¹½Ê¸²òÀÏ´ï¤Î¼Â¹Ô»þ¤Ë¡¢
ÄÉÀ×µ¡Ç½¤ò͸ú¤Ë¤¹¤ë¤¿¤á¤Ë¡¢yydebug
ÊÑ¿ô¤ò0¤Ç¤Ê¤¤Ãͤˤ·¤Æ¤¯¤À¤µ¤¤¡£
C¸À¸ì¤Î¥×¥í¥°¥é¥à(¤ª¤½¤é¤¯main
´Ø¿ô¤ÎÃæ)¤Ç¤³¤ÎÊÑ¿ô¤ËÂåÆþ¤¹¤ë¤«¡¢
¤¢¤ë¤¤¤Ï¡¢¥Ç¥Ð¥Ã¥¬¤Ç¤³¤ÎÊÑ¿ô¤ÎÃͤòÊѤ¨¤ì¤Ð¤¤¤¤¤Ç¤·¤ç¤¦¡£
yydebug
¤¬0¤Ç¤Ê¤¤¾ì¹ç¡¢¹½Ê¸²òÀÏ´ï¤Ï¤½¤ì¤¾¤ì¤ÎÃʳ¬¤Ç¡¢
1¹Ô¤Þ¤Ï¤¿2¹Ô¤ÎÄÉÀ×¾ðÊó¤òÀ¸À®¤·¡¢stderr
¤Ë½ÐÎϤ·¤Þ¤¹¡£
ÄÉÀ×¾ðÊó¤Ë¤Ï¡¢¼¡¤Î¤è¤¦¤Ê¾ðÊó¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£
yylex
¤ò¸Æ¤Ö¤¿¤Ó¤Ë¡¢
ÆÉ¤ß¹þ¤Þ¤ì¤¿¥È¡¼¥¯¥ó¤Î¼ïÎबµÏ¿¤µ¤ì¤Þ¤¹¡£
¤³¤Î¾ðÊó¤òÍý²ò¤¹¤ë¤¿¤á¤Ë¤Ï¡¢Bison¤Ë‘-v’¥ª¥×¥·¥ç¥ó ¡Êsee Invoking Bison¡Ë¤òÉÕ¤±¤Æ¼Â¹Ô¤¹¤ë¤ÈÀ¸À®¤µ¤ì¤ë ÌÀºÙ¥Õ¥¡¥¤¥ë¤¬»²¹Í¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦¡£ ¤³¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¢¤µ¤Þ¤¶¤Þ¤Êµ¬Â§¤ÎÃæ¤Ç¤Î°ÌÃ֤ˤè¤ëɽ¸½¤Ç ³Æ¾õÂ֤ΰÕÌ£¤¬¼¨¤µ¤ì¡¢¤Þ¤¿¡¢ ³Æ¾õÂÖ¤¬¤½¤ì¤¾¤ì¤Î²Äǽ¤ÊÆþÎϥȡ¼¥¯¥ó¤Ë¤è¤Ã¤Æ ¤É¤Î¤è¤¦¤Ëưºî¤¹¤ë¤«¤¬¼¨¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ Ϣ³¤¹¤ëÄÉÀפΰÕÌ£¤òÆÉ¤à¤³¤È¤Ë¤è¤Ã¤Æ¡¢ ÌÀºÙ¥Õ¥¡¥¤¥ë¤Ç»ÅÍͤ¬¼¨¤µ¤ì¤Æ¤¤¤ë¹½Ê¸²òÀÏ´ï¤Îµ¡Ç½¤Ë¤Ä¤¤¤Æ¡¢Íý²ò¤Ç¤¤ë¤Ç¤·¤ç¤¦¡£ ²¿¤«Ë¾¤Þ¤·¤¯¤Ê¤¤¤³¤È¤¬µ¯¤¤Æ¤¤¤ëÉôʬ¤ò³Îǧ¤¹¤ì¤Ð¡¢ ʸˡ¥Õ¥¡¥¤¥ë¤Î¤É¤³¤ËÌäÂ꤬¤¢¤ë¤«¤ï¤«¤ë¤Ç¤·¤ç¤¦¡£
¹½Ê¸²òÀÏ´ï¥Õ¥¡¥¤¥ë¤ÏC¸À¸ì¤Î¥×¥í¥°¥é¥à¤Ê¤Î¤Ç¡¢ C¤Î¥Ç¥Ð¥Ã¥¬¤ò»È¤¨¤Þ¤¹¤¬¡¢ ²¿¤¬µ¯¤¤Æ¤¤¤ë¤«Ä´¤Ù¤ë¤³¤È¤Ïº¤Æñ¤Ç¤¹¡£ ¹½Ê¸²òÀÏ´ï´Ø¿ô¤Ï¡¢Í¸Â¾õÂÖµ¡³£¥¤¥ó¥¿¡¼¥×¥ê¥¿¤Ç¡¢ ¥¢¥¯¥·¥ç¥ó¤¬¼Â¹Ô¤µ¤ì¤ë¤È¡¢ ¥×¥í¥°¥é¥à¤ÎƱ¤¸Éôʬ¤¬²¿Å٤ⲿÅÙ¤â¼Â¹Ô¤µ¤ì¤Þ¤¹¡£ ¼ÂÍÑŪ¤Ê¤Î¤Ïʸˡ¤ÎÃæ¤ÇÊÑ¿ô¤ÎÃͤòÄ´¤Ù¤ë¤³¤È¤À¤±¤Ç¤·¤ç¤¦¡£
¥Ç¥Ð¥Ã¥°¾ðÊó¤Ë¤Ï¡¢Ä̾¤½¤ì¤¾¤ì¤Î¥È¡¼¥¯¥ó¤Î¥È¡¼¥¯¥ó·¿¤À¤±¤¬´Þ¤Þ¤ì¡¢
¥È¡¼¥¯¥ó¤Î°ÕÌ£Ãͤϴޤޤì¤Þ¤»¤ó¡£
¥Þ¥¯¥íYYPRINT
¤òÄêµÁ¤¹¤ë¤³¤È¤Ç¡¢
¥È¡¼¥¯¥ó¤Î°ÕÌ£Ãͤòɽ¼¨¤µ¤»¤é¤ì¤Þ¤¹¡£
YYPRINT
¤ÎÄêµÁ¤Ë¤Ï¡¢3¸Ä¤Î°ú¿ô¤¬¤È¤â¤Ê¤¤¤Þ¤¹¡£
¹½Ê¸²òÀÏ´ï¤Ï¡¢YYPRINT
¤Ë¡¢É¸½àÆþ½ÐÎÏ¥¹¥È¥ê¡¼¥à¡¢
¥È¡¼¥¯¥ó·¿¤Î¿ôÃÍÈֹ桢¥È¡¼¥¯¥ó¤ÎÃÍ¡Êyylval
¤Ë¤è¤ë¡Ë¤òÅϤ·¤Þ¤¹¡£
¿µ¡Ç½ÅÅÂî¤ËŬ¤¹¤ëYYPRINT
¤ÎÎã¤ò¼¨¤·¤Þ¤¹
¡Êsee Declarations for mfcalc
¡Ë¡£
#define YYPRINT(file, type, value) yyprint (file, type, value) static void yyprint (file, type, value) FILE *file; int type; YYSTYPE value; { if (type == VAR) fprintf (file, " %s", value.tptr->name); else if (type == NUM) fprintf (file, " %d", value.val); }