Next: , Previous: Start States, Up: Start States   [Contents][Index]


3.8.1 ¥¹¥¿¡¼¥È¾õÂÖ¤ÎÀâÌÀ

¥¹¥¿¡¼¥È¾õÂ֤ϡ¢ ¤¢¤ë¥ë¡¼¥ë¤¬¥¢¥¯¥Æ¥£¥Ö¤Ë¤Ê¤ë¤Î¤Ï¤¤¤Ä¤Ç¤¢¤ë¤«¤òFlex¤ËÄÌÃΤ¹¤ë¥Ö¡¼¥ëÃͤΤ褦¤Ê¤â¤Î¤Ç¤¹¡£ ¥¹¥¿¡¼¥È¾õÂ֤ϡ¢ ÄêµÁ¥»¥¯¥·¥ç¥ó¤Ë¤ª¤¤¤Æ ¡ÊÇÓ¾Ū¥¹¥¿¡¼¥È¾õÂ֤ξì¹ç¡Ë%x ¡¢ ¤Þ¤¿¤Ï¡ÊÊñ´ÞŪ¥¹¥¿¡¼¥È¾õÂ֤ξì¹ç¡Ë%s¤ò»È¤Ã¤ÆÀë¸À¤µ¤ì¤Þ¤¹¡£

%x start_state_name
%s start_state_name

start_state_name¤Ï°ì°Õ¤Ê̾Á°¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ÅÀ¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£ ¤Ä¤Þ¤ê¡¢ ¾¤Î¥¹¥¿¡¼¥È¾õÂÖ¤äÄêµÁ¤¬Æ±¤¸Ì¾Á°¤ò»ý¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¤È¤¤¤¦¤³¤È¤Ç¤¹¡£ ¥¹¥¿¡¼¥È¾õÂ֤ϡ¢ £±¤Ä¤Î¾õÂÖ¤Î̾Á°¡¢ ¤Þ¤¿¤Ï¡¢ ¥«¥ó¥Þ¤Ç¶èÀÚ¤é¤ì¤¿Ê£¿ô¤Î¾õÂÖ¤Î̾Á°¤ò¤«¤®³ç¸Ì< >¤Ç°Ï¤à¤³¤È¤Ë¤è¤Ã¤Æ¡¢ ¥ë¡¼¥ë¡¦¥»¥¯¥·¥ç¥ó¤Ç»²¾È¤µ¤ì¤Þ¤¹¡£ ¥¹¥¿¡¼¥È¾õÂ֤λ²¾È¤Ï¥ë¡¼¥ë¤ÎÀèÆ¬¤Ë¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢ £±¤Ä¤Î¥ë¡¼¥ëÃæ¤Ë¤Ï£±ÂФΤ«¤®³ç¸Ì< >¤Î¤ßµö¤µ¤ì¤Þ¤¹¡£ ¤³¤Î¤³¤È¤Ï¡¢

%x state1
%s state2
%x state3 state4
%%
<state1>"foo"
<state2,state3,state4>"bar"

¤¬ÀµÅö¤Ç¤¢¤ê¡¢

integer [-+]?[0-9]*
%x integer
%s state1,state2,state3
%%
<integer>"foo"
"bar"<state1>
<state1>"bar"<state2,state3>

¤Ï¤¹¤Ù¤ÆÉÔÅö¤Ç¤¢¤ë¤³¤È¤ò°ÕÌ£¤·¤Æ¤¤¤Þ¤¹¡£ integer¤Ë¤Ä¤¤¤Æ¤ÏƱ¤¸Ì¾Á°¤ò»ý¤ÄÄêµÁ¤¬Â¸ºß¤·¡¢ ¤½¤ì°Ê³°¤Î¤â¤Î¤Ë¤Ä¤¤¤Æ¤Ï¥¹¥¿¡¼¥È¾õÂ֤λ²¾È¤Î°ÌÃÖ¤¬Àµ¤·¤¯¤Ê¤¤¤«¡¢ Ê£¿ô¤Î»²¾È¤¬Â¸ºß¤¹¤ë¤«¤é¤Ç¤¹¡£

¤³¤ì¤Þ¤Ç¤Î¤È¤³¤í¤Ç¤Ï¡¢ Flex¤¬°Û¤Ê¤ë£²¼ïÎà¤Î¥¹¥¿¡¼¥È¾õÂÖ¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë»ö¼Â¤«¤éÌܤò¤½¤é¤·¤Æ¤­¤Þ¤·¤¿¡£ £²¤Ä¤Î¥¹¥¿¡¼¥È¾õÂ֤Ȥϡ¢ Êñ´ÞŪ¥¹¥¿¡¼¥È¾õÂÖ¡Ê%s¡Ë¤ÈÇÓ¾Ū¥¹¥¿¡¼¥È¾õÂÖ¡Ê%x¡Ë¤Î¤³¤È¤Ç¤¹¡£ ¤³¤ì¤é£²¤Ä¤ÎÁê°ãÅÀ¤Ï¡¢ ÇÓ¾Ū¥¹¥¿¡¼¥È¾õÂÖ¤¬³èÀ­²½¤µ¤ì¤¿¾ì¹ç¤Ï¡¢ ¤½¤Î¾õÂ֤˰¤¹¤ë¥ë¡¼¥ë¤À¤±¤¬³èÀ­²½¤µ¤ì¤ë¤Î¤ËÂФ·¤Æ¡¢ Êñ´ÞŪ¥¹¥¿¡¼¥È¾õÂ֤ξì¹ç¤Ï¡¢ ¤½¤Î¾õÂ֤˰¤¹¤ë¥ë¡¼¥ë¤È¥¹¥¿¡¼¥È¾õÂ֤ؤλ²¾È¤ò»ý¤¿¤Ê¤¤¥ë¡¼¥ë¤ÎξÊý¤¬³èÀ­²½¤µ¤ì¤ë¤È¤¤¤¦ÅÀ¤Ë¤¢¤ê¤Þ¤¹¡£ ¤³¤Î°ã¤¤¤ò¼¨¤¹Îã¤òµó¤²¤ë¤È¡¢ °Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£

%s state1
%%
<state1>"one" printf("two");
"three"       printf("four");

¤³¤Î¾ì¹ç¡¢ state1¾õÂÖ¤¬³èÀ­²½¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï‘one’¤ò‘two’¤ËÃÖ¤­´¹¤¨¡¢ state1¾õÂÖ¤¬³èÀ­²½¤µ¤ì¤Æ¤¤¤ë¤«Èݤ«¤Ë¤«¤«¤ï¤é¤ºthree’¤ò‘four’¤ËÃÖ¤­´¹¤¨¤Þ¤¹¡£ ¥Ç¥Õ¥©¥ë¥È¤Î¥ë¡¼¥ë¤Ë¤è¤ê¡¢ ¤½¤Î¾¤Î¥Æ¥­¥¹¥È¤Ïstdout¤Ë½ÐÎϤµ¤ì¤Þ¤¹¡£ ¤³¤ì¤ËÂФ·¤Æ¡¢

%x state1
%%
<state1>"one" printf("two");
"three"       printf("four");

¤Ï¡¢ state1¾õÂÖ¤¬³èÀ­²½¤µ¤ì¤Æ¤¤¤ë»þ¤Ï‘one’¤ò‘two’¤ËÃÖ¤­´¹¤¨¡¢ state1¾õÂÖ¤¬³èÀ­²½¤µ¤ì¤Æ¤¤¤Ê¤¤»þ¤Î¤ßthree’¤ò‘four’¤ËÃÖ¤­´¹¤¨¤Þ¤¹¡£ ¥Ç¥Õ¥©¥ë¥È¤Î¥ë¡¼¥ë¤Ë¤è¤ê¡¢ ¤½¤Î¾¤Î¥Æ¥­¥¹¥È¤Ïstdout¤Ë½ÐÎϤµ¤ì¤Þ¤¹¡£

¤³¤Î¤³¤È¤Ï¡¢ ÇÓ¾Ū¥¹¥¿¡¼¥È¾õÂÖ¤¬»È¤ï¤ì¤ë¾ì¹ç¤Ë¤Ï¡¢ ¥Þ¥Ã¥Á¤·¤Ê¤¤¥Æ¥­¥¹¥È¤¬stdout¤Ë½ÐÎϤµ¤ì¤Æ¤Ï¤Ê¤é¤Ê¤¤¤Î¤Ç¤¢¤ì¤Ð¡¢ ¤¹¤Ù¤Æ¤Î²Äǽ¤ÊÆþÎϤ˥ޥåÁ¤¹¤ë¥ë¡¼¥ë¤ò¡¢ ¸Ä¡¹¤ÎÇÓ¾Ū¥¹¥¿¡¼¥È¾õÂÖ¤¬»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤³¤È¤ò°ÕÌ£¤·¤Æ¤¤¤Þ¤¹¡£ Êñ´ÞŪ¥¹¥¿¡¼¥È¾õÂ֤ξì¹ç¤Ï¡¢ ¤¢¤é¤æ¤ë¾õÂ֤ˤª¤¤¤ÆÍ­¸ú¤Ê¡¢ ¥¹¥¿¡¼¥È¾õÂ֤ؤλ²¾È¤ò»ý¤¿¤Ê¤¤¥ë¡¼¥ë¤ò£±¤Ä»ý¤ÄɬÍפ¬¤¢¤ê¤Þ¤¹¡£

Ãí¡§ ÇÓ¾Ū¥¹¥¿¡¼¥È¾õÂÖ¤ÏPOSIX¤Î°ìÉô¤Ç¤¢¤ë¤Ë¤â¤«¤«¤ï¤é¤º¡¢ Lex¤Ç¤Ï¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤»¤ó¡£