Next: Tie-in Recovery, Previous: Semantic Tokens, Up: Context Dependency [Contents][Index]
ʸ̮°Í¸À¤ò½èÍý¤¹¤ë1¤Ä¤ÎÊýË¡¤Ï¡¢»ú¶ç²òÀÏ·ë¤ÓÉÕ¤¡Êlexical tie-in¡Ë¤Ç¡¢ Bison¤Î¥¢¥¯¥·¥ç¥ó¤Ë¤è¤Ã¤ÆÀßÄꤵ¤ì¤ë¥Õ¥é¥°¤¬¡¢ ¥È¡¼¥¯¥ó¤¬¹½Ê¸²òÀϤµ¤ì¤ëÊýË¡¤Ë±Æ¶Á¤·¤Þ¤¹¡£
¤¿¤È¤¨¤Ð¡¢C¸À¸ì¤Ë¤è¤¯»÷¤Æ¤¤¤Æ¡¢‘hex (hex-expr)’¤È¤¤¤¦
ÆÃÊ̤ʹ½Â¤¤ò»ý¤Ä¸À¸ì¤Ë¤Ä¤¤¤Æ¡¢¹Í¤¨¤Æ¤ß¤Þ¤·¤ç¤¦¡£
ͽÌó¸ìhex
¤¬¤¤¿¸å¤Ë¤«¤Ã¤³¤Ç°Ï¤Þ¤ì¤¿¼°¤¬Â³¤¤¤Æ¡¢
¤½¤Î¤«¤Ã¤³¤ÎÃæ¤Ç¤Ï¤¹¤Ù¤Æ¤ÎÀ°¿ô¤¬16¿Ê¿ô¤Ë¤Ê¤ê¤Þ¤¹¡£
ÆÃ¤Ë¡¢¥È¡¼¥¯¥ó‘a1b’¤Ï¡¢¤³¤Î¤è¤¦¤Êʸ̮¤Ë¸½¤ì¤ì¤Ð¡¢
¼±Ê̻ҤǤϤʤ¯À°¿ô¤È¤·¤Æ°·¤ï¤ì¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
¤É¤Î¤è¤¦¤Ë¤¹¤ì¤Ð¤è¤¤¤«¤ò¼¨¤·¤Þ¤¹¡£
%{ int hexflag; %} %% …
expr: IDENTIFIER | constant | HEX '(' { hexflag = 1; } expr ')' { hexflag = 0; $$ = $4; } | expr '+' expr { $$ = make_sum ($1, $3); } … ;
constant: INTEGER | STRING ;
yylex
¤Ï¡¢hexflag
¤ÎÃͤ¬0¤Ç¤Ê¤±¤ì¤Ð¡¢
¤¹¤Ù¤Æ¤ÎÀ°¿ô¤¬16¿Ê¿ô¤Ç¤¢¤ë¤È»ú¶ç²òÀϤ·¡¢
±Ñ»ú¤Ç»Ï¤Þ¤ë¥È¡¼¥¯¥ó¤â²Äǽ¤Ê¸Â¤êÀ°¿ô¤È²ò¼á¤¹¤ë¤È¡¢²¾Äꤷ¤Þ¤¹¡£
hexflag
¤ÎÀë¸À¤Ï¡¢¥¢¥¯¥·¥ç¥ó¤«¤é»²¾È²Äǽ¤Ê¤è¤¦¤Ë¡¢
ʸˡ¥Õ¥¡¥¤¥ë¤ÎCÀë¸ÀÉô¤Ë½ñ¤«¤ì¤ëɬÍפ¬¤¢¤ê¤Þ¤¹
¡Êsee The C Declarations Section¡Ë¡£
ƱÍͤˡ¢yylex
¤Î¥×¥í¥°¥é¥à¤Ë¤â¡¢hexflag
¤ÎÀë¸À¤¬É¬ÍפǤ¹¡£