Previous: Optimizing for Speed, Up: Optimization [Contents][Index]
Flex¤Ï¡¢ ¥µ¥¤¥º¤Î¾®¤µ¤¤¥¹¥¥ã¥Ê¤è¤ê¤â¡¢ ¤à¤·¤íÈó¾ï¤Ë¹â®¤Ê¥¹¥¥ã¥Ê¤òºîÀ®¤¹¤ë¤³¤È¤òÌÜɸ¤È¤·¤Æ¤¤¤Þ¤¹¤¬¡¢ ¤¤¤º¤ì¤Ë¤·¤Æ¤â¡¢ ºîÀ®¤µ¤ì¤ë¥Æ¡¼¥Ö¥ë¤Î¥µ¥¤¥º¤ÏLex¤Ë¤è¤ë¤½¤ì¤ÈÈæ³Ó¤·¤Æ¤â¡¢ Ä̾ï¤Ï¤«¤Ê¤ê¾®¤µ¤¤¤â¤Î¤Ë¤Ê¤ê¤Þ¤¹¡£
¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢ Flex¤Ï²Äǽ¤Ê¸Â¤ê¥µ¥¤¥º¤Î¾®¤µ¤¤¥¹¥¥ã¥Ê¤òºîÀ®¤·¤Þ¤¹¡£ ¤³¤ì¤Ï¡¢ ¥³¥Þ¥ó¥É¥é¥¤¥ó¤Ç‘-Cem’¤ò»È¤¦¤Î¤ÈƱÅù¤Ç¤¹¡£ ¥Ç¥Õ¥©¥ë¥È¤ò»È¤¦¤Î¤Ç¤¢¤ì¤Ð¡¢ ¥³¥Þ¥ó¥É¥é¥¤¥ó¡¦¥ª¥×¥·¥ç¥ó¤òµ¤¤Ë¤¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£
¤µ¤é¤Ë¥Æ¡¼¥Ö¥ë¤Î¥µ¥¤¥º¤ò¾®¤µ¤¯¤¹¤ë¤Ë¤Ï¡¢ ¤è¤êÂ礤ʥƥ¥¹¥È¡¦¥°¥ë¡¼¥×¤Ë¥Þ¥Ã¥Á¤¹¤ë¥ë¡¼¥ë¤ò»È¤¤¡¢ »ú¶ç¤ÎÃͤòǧ¼±¤¹¤ë¤¿¤á¤ËC¤Î¥µ¥Ö¥ë¡¼¥Á¥ó¤ò»È¤¦¤Î¤¬ºÇ¤âÎɤ¤ÊýË¡¤Ç¤¹¡£ ¤³¤ÎÎɤ¤Î㤬¥³¥ó¥Ñ¥¤¥é¤Ç¡¢ °Ê²¼¤Î¤è¤¦¤Ê¥ë¡¼¥ë¤òÍ¿¤¨¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
%% begin return(BEGINSYM); end return(ENDSYM); program return(PROGSYM); …
¤¢¤ë¤¤¤Ï¡¢ °Ê²¼¤Î¤è¤¦¤Ë¥Æ¡¼¥Ö¥ë¸¡º÷¤ò»È¤¦¤³¤È¤â²Äǽ¤Ç¤¹¡£
[a-zA-Z][a-zA-Z0-9]* return(lookup(yytext));
¤³¤³¤Ç¤Ï¡¢
°ìÈÌŪ¤Ê¥ë¡¼¥ë¤¬»ØÄꤵ¤ì¤Æ¤¤¤Æ¡¢
lookup()
¤¬¥Æ¥¥¹¥È¤ò¥¡¼¥ï¡¼¥É¤Ë¥Þ¥Ã¥Á¤µ¤»¡¢
¤½¤Î¥È¡¼¥¯¥ó¤¬²¿¤Ç¤¢¤ë¤«¤ò¼¨¤¹À°¿ôÃͤòÊÖ¤·¤Þ¤¹¡£
¤³¤ì¤Ë¤è¤ê¡¢
¥µ¥¤¥º¤Î¤è¤ê¾®¤µ¤¤¥Æ¡¼¥Ö¥ë¤¬À¸À®¤µ¤ì¤Þ¤¹¤¬¡¢
Àǽ¤Ï°¤¯¤Ê¤ë·¹¸þ¤¬¤¢¤ê¤Þ¤¹¡£
¤Þ¤¿¡¢
¿ô¤¬¾¯¤Ê¤¯Ê£»¨¤Ç¤Ï¤Ê¤¤¥ë¡¼¥ë½¸¹ç¤Ë¤Ä¤¤¤Æ¤Ï¡¢
¥Æ¡¼¥Ö¥ë¡¦¥µ¥¤¥º¤ò½Ì¾®¤¹¤ë¤³¤È¤Î¸ú²Ì¤Ï¡¢
¥·¥ó¥Ü¥ë¡¦¥Þ¥Ã¥Ô¥ó¥°ÍѤξðÊó¤ò¥×¥í¥°¥é¥àÃæ¤Î¾¤ÎÎΰè¤Ë³ÊǼ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤È¤¤¤¦»ö¼Â¤Ë¤è¤Ã¤Æ¡¢
Á껦¤µ¤ì¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£
¤È¤¤¤¦¤Î¤Ï¡¢
¥·¥ó¥Ü¥ë¡¦¥Þ¥Ã¥Ô¥ó¥°ÍѤξðÊó¤Ï¡¢
Flex¥Æ¡¼¥Ö¥ë¤ÈÈæ³Ó¤·¤Æ¡¢
¤è¤ê¿¤¯¤Î¥¹¥Ú¡¼¥¹¤òɬÍפȤ¹¤ë²ÄǽÀ¤¬¤¢¤ë¤«¤é¤Ç¤¹¡£