Next: , Previous: Rpcalc Main, Up: RPN Calc   [Contents][Index]


2.1.5 ¥¨¥é¡¼Êó¹ð´Ø¿ô

yyparse¤Ï¡¢¹½Ê¸¥¨¥é¡¼¤ò¸¡½Ð¤¹¤ë¤È¡¢¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸ ¡Êɬ¤º¤½¤¦¤È¤Ï¤«¤®¤ê¤Þ¤»¤ó¤¬¡¢Ä̾ï¤Ï"parse error"¡Ë¤ò ɽ¼¨¤¹¤ë¤¿¤á¤Ë¡¢¥¨¥é¡¼Êó¹ð´Ø¿ôyyerror¤ò¸Æ¤Ó½Ð¤·¤Þ¤¹¡£

#include <stdio.h>

yyerror (s)  /* ¥¨¥é¡¼¤¬µ¯¤­¤ë¤Èyyparse¤«¤é¸Æ¤Ó½Ð¤µ¤ì¤ë */
     char *s;
{
  printf ("%s\n", s);
}

yyerror¤«¤éÌá¤Ã¤¿¸å¤Ë¡¢Bison¹½Ê¸²òÀÏ´ï¤Ï¡¢ ʸˡ¤ËŬÀڤʥ¨¥é¡¼µ¬Â§¡Êsee Error Recovery¡Ë¤¬¤¢¤ì¤Ð¡¢ ¥¨¥é¡¼¤«¤é²óÉü¤·¡¢²òÀϤò·Ñ³¤Ç¤­¤Þ¤¹¡£ ¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢yyparse¤¬0¤Ç¤Ê¤¤ÃͤòÊÖ¤·¤Þ¤¹¡£ ¤³¤ÎÎã¤Ç¤Ï¡¢¥¨¥é¡¼µ¬Â§¤ò½ñ¤¤¤Æ¤¤¤Ê¤¤¤Î¤Ç¡¢ ÉÔÀµ¤ÊÆþÎϤϤ¹¤Ù¤ÆÅÅÂî¥×¥í¥°¥é¥à¤ò½ªÎ»¤µ¤»¤Þ¤¹¡£ ¤³¤ì¤Ï¡¢¼ÂºÝ¤ÎÅÅÂî¤È¤·¤Æ¤Ï¤­¤ì¤¤¤Êưºî¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¤¬¡¢ ºÇ½é¤ÎÎã¤È¤·¤Æ¤Ï½½Ê¬¤Ç¤¹¡£