Next: Precedence Decl, Up: Declarations [Contents][Index]
¥È¡¼¥¯¥ó·¿Ì¾¡¢¤¹¤Ê¤ï¤Á½ªÃ¼µ¹æ¤ò¡¢´ðËÜŪ¤Ë¤Ï¼¡¤Î¤è¤¦¤ËÀë¸À¤·¤Þ¤¹¡£
%token name
Bison¤Ï¡¢¤³¤ì¤ò¡¢¹½Ê¸²òÀÏ´ï¤ÎÃæ¤Î#define
¥Ç¥£¥ì¥¯¥Æ¥£¥Ö¤ËÊÑ´¹¤·¤Þ¤¹¡£
¤·¤¿¤¬¤Ã¤Æ¡¢´Ø¿ôyylex
¤¬¹½Ê¸²òÀÏ´ï¥Õ¥¡¥¤¥ë¤ÎÃæ¤Ë¤¢¤ì¤Ð¡¢
¤½¤³¤Ç̾Á°name¤ò¤³¤Î¥È¡¼¥¯¥ó·¿¤òɽ¤¹¤¿¤á¤Ë»È¤¨¤Þ¤¹¡£
Í¥Àè½ç°Ì¤ò»ØÄꤷ¤¿¤±¤ì¤Ð¡¢%token
¤ÎÂå¤ï¤ê¤Ë¡¢
%left
¡¢%right
¡¢%nonassoc
¤Î¤É¤ì¤«¤ò»È¤¤¤Þ¤¹¡£
See Operator Precedence¡£
¥È¡¼¥¯¥ó¤Î̾Á°¤Îľ¸å¤ËÀ°¿ôÃͤò½ñ¤¯¤³¤È¤Ç¡¢ ¤½¤Î¥È¡¼¥¯¥ó·¿¤ËÂбþ¤¹¤ë¿ôÃÍÉ乿¤òÌÀ¼¨Åª¤Ë»ØÄê¤Ç¤¤Þ¤¹¡£
%token NUM 300
¤·¤«¤·¡¢Bison¤Ë¤¹¤Ù¤Æ¤Î¥È¡¼¥¯¥ó·¿¤ËÂФ¹¤ë¿ôÃÍÉ乿¤Î³ä¤êÅö¤Æ¤ò¤Þ¤«¤»¤ë ¤³¤È¤¬¤¤¤Á¤Ð¤ó¤Ç¤¹¡£Bison¤Ï¡¢¥È¡¼¥¯¥ó·¿¤É¤¦¤·¤äASCIIʸ»úÉ乿¤È ¾×ÆÍ¤¬µ¯¤¤Ê¤¤¤è¤¦¤Ë¡¢¼«Æ°Åª¤Ë¿ôÃÍÉ乿¤ò³ä¤êÅö¤Æ¤Þ¤¹¡£
¥¹¥¿¥Ã¥¯·¿¤¬¶¦ÍÑÂΤǤ¢¤ë¾ì¹ç¤Ë¤Ï¡¢
%token
¤¢¤ë¤¤¤Ï¾¤Î¥È¡¼¥¯¥óÀë¸À¤Ë¡¢
¾®¤Ê¤êµ¹æ¤ÈÂç¤Ê¤êµ¹æ¤Ç¶èÀڤä¿·¿Ì¾¤òÄɲ乤ëɬÍפ¬¤¢¤ê¤Þ¤¹
¡Êsee More Than One Value Type¡Ë¡£
Îã¤ò¼¨¤·¤Þ¤¹¡£
%union { /* ¥¹¥¿¥Ã¥¯¤Î¥Ç¡¼¥¿·¿¤òÄêµÁ¤¹¤ë */ double val; symrec *tptr; } %token <val> NUM /* ¥È¡¼¥¯¥ó¡ÖNUM¡×¤È¤½¤Î·¿¤òÄêµÁ¤¹¤ë */
¥È¡¼¥¯¥ó·¿Ì¾¤òÀë¸À¤¹¤ë%token
Àë¸À¤ÎËöÈø¤Ë
¥ê¥Æ¥é¥ëʸ»úÎó¤ò½ñ¤¯¤³¤È¤Ç¡¢¥ê¥Æ¥é¥ëʸ»úÎó¥È¡¼¥¯¥ó¤È
¥È¡¼¥¯¥ó·¿Ì¾¤ò´ØÏ¢¤Å¤±¤Ç¤¤Þ¤¹¡£
%token arrow "=>"
C¸À¸ì¤ËÂФ¹¤ëʸˡ¤Ç¤Ï¡¢¼¡¤ÎÎã¤Î¤è¤¦¤Ë¡¢ Åù²Á¤Ê¥ê¥Æ¥é¥ëʸ»úÎó¥È¡¼¥¯¥ó¤Ë̾Á°¤ò»ØÄꤷ¤Æ¤¤¤Þ¤¹¡£
%token <operator> OR "||" %token <operator> LE 134 "<=" %left OR "<="
¥ê¥Æ¥é¥ëʸ»úÎó¤È¥È¡¼¥¯¥ó̾¤òÅù²Á¤Ë¤¹¤ì¤Ð¡¢¤½¤ì°Ê¹ß¤Îʸˡµ¬Â§¤Î
Àë¸À¤ÎÃæ¤Ç¡¢Î¾¼Ô¤òƱÍͤ˻Ȥ¨¤Þ¤¹¡£
yylex
´Ø¿ô¤Ï¡¢¥È¡¼¥¯¥ó·¿¤Î¿ôÃÍÉ乿¤òÆÀ¤ë¤¿¤á¤Ë¡¢
¥È¡¼¥¯¥ó̾¤È¥ê¥Æ¥é¥ëʸ»úÎó¤ÎξÊý¤ò»È¤¨¤Þ¤¹
¡Êsee Calling Convention¡Ë¡£