Next: Pattern Matching, Previous: %%, Up: Flex Descriptions [Contents][Index]
¥ë¡¼¥ë¤ÏFlex¤Î¿´Â¡Éô¤Ç¤¹¡£ ¥ë¡¼¥ë¤ò½ñ¤¯¤³¤È¤Ë¤è¤Ã¤Æ¡¢ ¥×¥í¥°¥é¥Þ¤Ï¡¢ ¥¹¥¥ã¥Ê¤¬²¿¤ò¼Â¹Ô¤¹¤ë¤Ù¤¤Ç¤¢¤ë¤«¤òFlex¤ËÄÌÃΤ·¤Þ¤¹¡£
Ä̾ ¥ë¡¼¥ë¤Ï£²¤Ä¤ÎÉôʬ¤«¤é¹½À®¤µ¤ì¤Þ¤¹¡£
pattern actions
¤³¤Î¤¦¤Ápattern¤¬²¿¤òǧ¼±¤¹¤ë¤Ù¤¤«¤òÄêµÁ¤·¡¢ actions¤¬¤½¤Î²¿¤«¤òǧ¼±¤·¤¿»þ¤Ë²¿¤ò¼Â¹Ô¤¹¤ë¤Ù¤¤Ç¤¢¤ë¤«¤ò¥¹¥¥ã¥Ê¤ËÃΤ餻¤Þ¤¹¡£ pattern¤ÎÉôʬ¤Ï¶õÇò¤Ë¤è¤Ã¤Æ¶èÀÚ¤é¤ì¤Þ¤¹¡£ ¤³¤ì¤Ï¡¢ ¶õÇò¤ò¥Þ¥Ã¥Á¤µ¤»¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢ ¤½¤ì¤ò°úÍÑÉä¤Ç°Ï¤àɬÍפ¬¤¢¤ë¤È¤¤¤¦¤³¤È¤ò°ÕÌ£¤·¤Æ¤¤¤Þ¤¹¡£
¥¹¥¥ã¥Ê¤Ï¡¢ ¥Þ¥Ã¥Á¤¹¤ë¤â¤Î¤ò£²¤Ä°Ê¾å¸«¤Ä¤±¤¿¾ì¹ç¡¢ °Ê²¼¤Î£²¤Ä¤Î¥ë¡¼¥ë¤ò»È¤Ã¤Æ¤É¤ì¤ò¼õ¤±Æþ¤ì¤ë¤«¤ò·è¤á¤Þ¤¹¡£
actions¤Ï¡¢
¶õ¡Ê¥³¡¼¥É¤Ê¤·¡Ë¤Ë¤¹¤ë¤«¡¢
¤â¤·¤¯¤Ï¡¢
£±¤Ä°Ê¾å¤ÎC¤Îʸ¤ò´Þ¤àñ°ì¤Î¥³¡¼¥É¹Ô¡¢
{…}
¤Þ¤¿¤Ï%{…%}
¤Ç°Ï¤Þ¤ì¤¿£±¹Ô°Ê¾å¤Î¥³¡¼¥É¡¢
ñ°ì¤Î¿âľËÀ¡Ê‘|’¡Ë¤Î¤¤¤º¤ì¤«¤òµ½Ò¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
°Ê²¼¤Ë¤¤¤¯¤Ä¤«Îã¤òµó¤²¤Þ¤¹¡£
hi | bonjour | hello printf("hello!\n"); goodbye { printf("goodbye!\n"); } konnichiwa { line 1 … line n } sayonara printf("lex will not "); printf("print this\n");
¤É¤Î¹Ô¤âÊ£¿ô¤Îʸ¤ò´Þ¤à¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ ‘|’¤Ï¡¢ ¤½¤Î¥ë¡¼¥ë¤Ë¥Þ¥Ã¥Á¤¹¤ë¤â¤Î¤¬¸«¤Ä¤«¤Ã¤¿¾ì¹ç¡¢ ¼¡¤Ë¸½¤ì¤ë¥ë¡¼¥ë¤Î¥¢¥¯¥·¥ç¥óÉô¤Ëµ½Ò¤µ¤ì¤Æ¤¤¤ë¥¢¥¯¥·¥ç¥ó¤¬¼Â¹Ô¤µ¤ì¤ë¤Ù¤¤Ç¤¢¤ë¤³¤È¤òFlex¤ËÄÌÃΤ·¤Þ¤¹¡£
Ãí¡§¤Û¤È¤ó¤É¤Î¥Ð¡¼¥¸¥ç¥ó¤ÎLex¤Ï¡¢
‘{’¤È‘}’¤Î¥Ú¥¢¤Î³°Éô¤Ç¤Ïñ°ì¤Îʸ¤·¤«µö¤·¤Þ¤»¤ó
¡ÊÎ㤨¤Ð¾å¤Îsayonara
¥ë¡¼¥ë¤Ïµö¤µ¤ì¤Þ¤»¤ó¡Ë¡£
¤Þ¤¿¡¢
C°Ê³°¤Î¸À¸ì¤ò¥¿¡¼¥²¥Ã¥È¤Ë¤·¤Æ¤¤¤ëLex¤Ç¤Ï¡¢
‘{’¤È‘}’¤Î¥Ú¥¢¤Ï¡¢
Î㤨¤ÐPascal¤Î¾ì¹ç¤Îbegin…end
¤Î¤è¤¦¤Ë¡¢
°Û¤Ê¤ë¥·¥ó¥Ü¥ë¤ËÃÖ¤´¹¤¨¤ëɬÍפ¬¤¢¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£
¥ë¡¼¥ë¤Ë¥Þ¥Ã¥Á¤·¤Ê¤«¤Ã¤¿ÆþÎϤËÂФ¹¤ë¥Ç¥Õ¥©¥ë¥È¤Î¥¢¥¯¥·¥ç¥ó¤Ï¡¢
¤½¤ì¤òstdout
¤Ë½ÐÎϤ¹¤ë¤³¤È¤Ç¤¢¤ê¡¢
°ìÊý¡¢
¥Þ¥Ã¥Á¤·¤¿¥Ñ¥¿¡¼¥ó¤ËÂФ¹¤ë¥Ç¥Õ¥©¥ë¥È¤Î¥¢¥¯¥·¥ç¥ó¤Ï¡¢
¤½¤ì¤òÇË´þ¤¹¤ë¤³¤È¤Ç¤¢¤ë¤È¤¤¤¦ÅÀ¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£
¤³¤ì¤Ï¡¢
ºÇ¤âñ½ã¤ÊFlex¤ÎÄêµÁ¤¬
%%
¤Ç¤¢¤ë¤³¤È¤ò°ÕÌ£¤·¤Æ¤¤¤Þ¤¹¡£
¤³¤ì¤Ï¡¢
ÆþÎϤòÊѹ¹¤»¤º¤½¤Î¤Þ¤Þstdout
¤Ø½ÐÎϤ¹¤ë¤â¤Î¤Ç¤¹¡£
Ê̤Îñ½ã¤ÊÎã¤È¤·¤Æ°Ê²¼¤Î¤è¤¦¤Ê¤â¤Î¤¬¤¢¤ê¤Þ¤¹¡£
%% foobar
¤³¤Î¾ì¹ç¡¢
ÆþÎϤÎÃæ¤«¤é‘foobar’¤È¤¤¤¦Ê¸»ú¤ÎʤӤò¤¹¤Ù¤Æ¼è¤ê½ü¤¡¢
¼è¤ê½ü¤¤¤¿·ë²Ì¤òstdout
¤Ë½ÐÎϤ·¤Þ¤¹¡£