Previous: Start States, Up: Flex Descriptions [Contents][Index]
Flex 2.5¤Ç¤Ï¡¢
¥¹¥¥ã¥ÊÄêµÁ¥Õ¥¡¥¤¥ë¤ÎÃæ¤ÇÍÍ¡¹¤Ê¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¥ª¥×¥·¥ç¥ó¤ò»ØÄꤹ¤ë¤Ë¤Ï¡¢
¥¹¥¥ã¥ÊÄêµÁ¥Õ¥¡¥¤¥ë¤ÎÀèÆ¬
¡ÊºÇ½é¤Î‘%%’¤è¤ê¤âÁ°¤ÎÉôʬ¡Ë
¤Ë¡¢
%option
»Ø¼¨»Ò¤òµ½Ò¤·¤Þ¤¹¡£
¤Û¤È¤ó¤É¤Î%option
»Ø¼¨»Ò¤Ï¡¢
°Ê²¼¤Î·Á¼°¤Ç»ØÄꤵ¤ì¤Þ¤¹¡£
%option option_name
¥ª¥×¥·¥ç¥óoption_name¤Î»ØÄê¤ò̵¸ú¤Ë¤¹¤ë¤¿¤á¤Ë¤Ï¡¢ ¥ª¥×¥·¥ç¥ó̾¤ÎÁ°¤Ë‘no’¤òÉÕ¤±¤Þ¤¹¡£
%option nooption_name
°Ê²¼¤Ë¡¢
¥³¥Þ¥ó¥É¥é¥¤¥ó¡¦¥ª¥×¥·¥ç¥ó¤ÈƱÅù¤Î¸ú²Ì¤ò»ý¤Ä%option
»Ø¼¨»Ò¤ò¼¨¤·¤Þ¤¹¡£
³Æ¥³¥Þ¥ó¥É¥é¥¤¥ó¡¦¥ª¥×¥·¥ç¥ó¤Î°ÕÌ£¤Ë¤Ä¤¤¤Æ¤Ï¡¢
Command Line Switches¤ÈCommand Line Switches (Flex 2.5)¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
%option 7bit
-7¥ª¥×¥·¥ç¥ó
%option 8bit
-8¥ª¥×¥·¥ç¥ó
%option align
-Ca¥ª¥×¥·¥ç¥ó
%option backup
-b¥ª¥×¥·¥ç¥ó
%option batch
-B¥ª¥×¥·¥ç¥ó
%option c++
-+¥ª¥×¥·¥ç¥ó
%option caseful
-i¥ª¥×¥·¥ç¥ó¤ÎÈÝÄê
%option case-sensitive
-i¥ª¥×¥·¥ç¥ó¤ÎÈÝÄê
%option case-insensitive
-i¥ª¥×¥·¥ç¥ó
%option caseless
-i¥ª¥×¥·¥ç¥ó
%option debug
-d¥ª¥×¥·¥ç¥ó
%option default
-s¥ª¥×¥·¥ç¥ó¤ÎÈÝÄê
%option ecs
-Ce¥ª¥×¥·¥ç¥ó
%option fast
-F¥ª¥×¥·¥ç¥ó
%option full
-f¥ª¥×¥·¥ç¥ó
%option interactive
-I¥ª¥×¥·¥ç¥ó
%option lex-compat
-l¥ª¥×¥·¥ç¥ó
%option meta-ecs
-Cm¥ª¥×¥·¥ç¥ó
%option output="file"
-ofile¥ª¥×¥·¥ç¥ó
%option perf-report
-p¥ª¥×¥·¥ç¥ó
%option prefix="prefix"
-Pprefix¥ª¥×¥·¥ç¥ó
%option read
-Cr¥ª¥×¥·¥ç¥ó
%option stdout
-t¥ª¥×¥·¥ç¥ó
%option verbose
-v¥ª¥×¥·¥ç¥ó
%option warn
-w¥ª¥×¥·¥ç¥ó¤ÎÈÝÄê
¼¡¤Ë¡¢
¥³¥Þ¥ó¥É¥é¥¤¥ó¡¦¥ª¥×¥·¥ç¥ó¤Ç¤ÏÂåÂØ¤Ç¤¤Ê¤¤%option
»Ø¼¨»Ò¤ò¼¨¤·¤Þ¤¹¡£
%option array
yytext
¤òchar
¤ÎÇÛÎó¤È¤·¤ÆÄêµÁ¤·¤Þ¤¹¡£
¤³¤ì¤Ï¡¢
‘%array’¤ÈƱ¤¸¤Ç¤¹¡£
%option always-interactive
ÆþÎϤò¾ï¤ËÂÐÏÃŪ¤Ë°·¤¦¥¹¥¥ã¥Ê¤òÀ¸À®¤¹¤ë¤è¤¦»Ø¼¨¤·¤Þ¤¹¡£
¤³¤ì¤È‘%option never-interactive’¤Î¤É¤Á¤é¤â»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¡¢
À¸À®¤µ¤ì¤¿¥¹¥¥ã¥Ê¤Ï¡¢
¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤¹¤ë¤¿¤Ó¤Ëisatty()
¤ò¸Æ¤Ó½Ð¤·¤Æ¡¢
ÆþÎϤòÂÐÏÃŪ¤Ë¡Ê£±Ê¸»ú¤º¤Ä¡ËÆÉ¤ß¹þ¤à¤Ù¤¤«Èݤ«¤ò·èÄꤷ¤Þ¤¹¡£
%option main
À¸À®¤µ¤ì¤ë¥¹¥¥ã¥Ê¤Ë¡¢
°Ê²¼¤Î¤è¤¦¤Êmain()
´Ø¿ô¤òÁȤ߹þ¤à¤è¤¦»Ø¼¨¤·¤Þ¤¹¡£
int main() { yylex(); return 0; }
¤³¤ì¤Ï¡¢ °ÅÌۤΤ¦¤Á¤Ë‘%option noyywrap’¤ò»ØÄꤷ¤Þ¤¹¡£
%option never-interactive
ÆþÎϤò¾ï¤ËÂÐÏÃŪ¤Ë°·¤ï¤Ê¤¤¥¹¥¥ã¥Ê¤òÀ¸À®¤¹¤ë¤è¤¦»Ø¼¨¤·¤Þ¤¹¡£
¤³¤ì¤È‘%option always-interactive’¤Î¤É¤Á¤é¤â»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¡¢
À¸À®¤µ¤ì¤¿¥¹¥¥ã¥Ê¤Ï¡¢
¥Õ¥¡¥¤¥ë¤ò¥ª¡¼¥×¥ó¤¹¤ë¤¿¤Ó¤Ëisatty()
¤ò¸Æ¤Ó½Ð¤·¤Æ¡¢
ÆþÎϤòÂÐÏÃŪ¤Ë¡Ê£±Ê¸»ú¤º¤Ä¡ËÆÉ¤ß¹þ¤à¤Ù¤¤«Èݤ«¤ò·èÄꤷ¤Þ¤¹¡£
%option pointer
yytext
¤òchar
¤ËÂФ¹¤ë¥Ý¥¤¥ó¥¿¤È¤·¤ÆÄêµÁ¤·¤Þ¤¹¡£
¤³¤ì¤Ï¡¢
‘%pointer’¤ÈƱ¤¸¤Ç¤¹¡£
%option reject
¥¹¥¥ã¥ÊÄêµÁ¥Õ¥¡¥¤¥ë¤ÎÃæ¤ÇREJECT
¤¬»È¤ï¤ì¤Æ¤¤¤ë¤³¤È¤ò¡¢
Flex¤ËÄÌÃΤ·¤Þ¤¹¡£
Flex¤ÏÄ̾
ÄêµÁ¥Õ¥¡¥¤¥ë¤ÎÃæ¤ÇREJECT
¤¬»È¤ï¤ì¤Æ¤¤¤ë¤«Èݤ«¤ò¼«Ê¬¤ÇÄ´ºº¤·¤Þ¤¹¤¬¡¢
¤³¤Î%option
»Ø¼¨»Ò¤Î»ØÄê¤Ï¡¢
Flex¼«¿È¤Ë¤è¤ëȽÄê·ë²Ì¤ËÍ¥À褷¤Þ¤¹¡£
%option stack
¥¹¥¿¡¼¥È¾õÂÖ¥¹¥¿¥Ã¥¯
¡ÊStart State Notes (Flex 2.5)¤ò»²¾È¡Ë
¤ò»ÈÍѤ¹¤ë¤¿¤á¤Ë¤Ï¡¢
¤³¤Î%option
»Ø¼¨»Ò¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£
%option stdinit
yyin
¤òstdin
¤Ç¡¢
yyout
¤òstdout
¤Ç¡¢
¤½¤ì¤¾¤ì½é´ü²½¤·¤Þ¤¹¡£
¤³¤Î%option
»Ø¼¨»Ò¤¬»ØÄꤵ¤ì¤Ê¤¤¾ì¹ç¡¢
¤¢¤ë¤¤¤Ï¡¢
‘%option nostdinit’¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¢
yyin
¤Èyyout
¤Ï¡¢
(FILE *)0
¡ÊNULL¥Ý¥¤¥ó¥¿¡Ë¤Ç½é´ü²½¤µ¤ì¤Þ¤¹¡£
%option unput
‘%option nounput’¤¬»ØÄꤵ¤ì¤ë¤È¡¢
À¸À®¤µ¤ì¤ë¥¹¥¥ã¥Ê¤ÎÃæ¤Ë¡¢
´Ø¿ôunput()
¤¬ÁȤ߹þ¤Þ¤ì¤Þ¤»¤ó¡£5
%option yy_pop_state
‘%option noyy_pop_state’¤¬»ØÄꤵ¤ì¤ë¤È¡¢
À¸À®¤µ¤ì¤ë¥¹¥¥ã¥Ê¤ÎÃæ¤Ë¡¢
´Ø¿ôyy_pop_state()
¤¬ÁȤ߹þ¤Þ¤ì¤Þ¤»¤ó¡£
¤¿¤À¤·¡¢
‘%option stack’¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢
‘%option noyy_pop_state’¤Î»ØÄê¤ÎÍ̵¤Ë¤«¤«¤ï¤é¤º¡¢
´Ø¿ôyy_pop_state()
¤ÏÁȤ߹þ¤Þ¤ì¤Þ¤»¤ó¡£
%option yy_push_state
‘%option noyy_push_state’¤¬»ØÄꤵ¤ì¤ë¤È¡¢
À¸À®¤µ¤ì¤ë¥¹¥¥ã¥Ê¤ÎÃæ¤Ë¡¢
´Ø¿ôyy_push_state()
¤¬ÁȤ߹þ¤Þ¤ì¤Þ¤»¤ó¡£
¤¿¤À¤·¡¢
‘%option stack’¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢
‘%option noyy_push_state’¤Î»ØÄê¤ÎÍ̵¤Ë¤«¤«¤ï¤é¤º¡¢
´Ø¿ôyy_push_state()
¤ÏÁȤ߹þ¤Þ¤ì¤Þ¤»¤ó¡£
%option yy_scan_buffer
‘%option noyy_scan_buffer’¤¬»ØÄꤵ¤ì¤ë¤È¡¢
À¸À®¤µ¤ì¤ë¥¹¥¥ã¥Ê¤ÎÃæ¤Ë¡¢
´Ø¿ôyy_scan_buffer()
¤¬ÁȤ߹þ¤Þ¤ì¤Þ¤»¤ó¡£
%option yy_scan_bytes
‘%option noyy_scan_bytes’¤¬»ØÄꤵ¤ì¤ë¤È¡¢
À¸À®¤µ¤ì¤ë¥¹¥¥ã¥Ê¤ÎÃæ¤Ë¡¢
´Ø¿ôyy_scan_bytes()
¤¬ÁȤ߹þ¤Þ¤ì¤Þ¤»¤ó¡£
%option yy_scan_string
‘%option noyy_scan_string’¤¬»ØÄꤵ¤ì¤ë¤È¡¢
À¸À®¤µ¤ì¤ë¥¹¥¥ã¥Ê¤ÎÃæ¤Ë¡¢
´Ø¿ôyy_scan_string()
¤¬ÁȤ߹þ¤Þ¤ì¤Þ¤»¤ó¡£
%option yy_top_state
‘%option noyy_top_state’¤¬»ØÄꤵ¤ì¤ë¤È¡¢
À¸À®¤µ¤ì¤ë¥¹¥¥ã¥Ê¤ÎÃæ¤Ë¡¢
´Ø¿ôyy_top_state()
¤¬ÁȤ߹þ¤Þ¤ì¤Þ¤»¤ó¡£
¤¿¤À¤·¡¢
‘%option stack’¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢
‘%option noyy_top_state’¤Î»ØÄê¤ÎÍ̵¤Ë¤«¤«¤ï¤é¤º¡¢
´Ø¿ôyy_top_state()
¤ÏÁȤ߹þ¤Þ¤ì¤Þ¤»¤ó¡£
%option yyclass="classname"
¤³¤ì¤Ï¡¢
‘-+’¥ª¥×¥·¥ç¥ó¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç
¡Ê¤¹¤Ê¤ï¤Á¡¢
C++¥¹¥¥ã¥Ê¤òÀ¸À®¤¹¤ë¾ì¹ç¡Ë
¤Î¤ß͸ú¤Ç¤¹¡£
¤³¤ì¤Ë¤è¤ê¡¢
classname¤Ë¤è¤ê»ØÄꤵ¤ì¤ë̾Á°¤Î¥¯¥é¥¹¤¬¡¢
yyFlexLexer
¤Î¥µ¥Ö¥¯¥é¥¹¤È¤·¤ÆÄêµÁ¤µ¤ì¤Þ¤¹¡£
¼ÂºÝ¤Ë¥¹¥¥ã¥ó½èÍý¤ò¼Â¹Ô¤¹¤ë¥³¡¼¥É¤Ï¡¢
¥¯¥é¥¹classname¤Î¥á¥ó¥Ð´Ø¿ôyylex()
¡Êclassname::yylex()
¡Ë¤Ë¼ÂÁõ¤µ¤ì¤Þ¤¹¡£
¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¡¢
Flex and C++ (Flex 2.5)¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
%option yylineno
ÆþÎϤιԿô¤ò¥«¥¦¥ó¥È¤·¤ÆÂç°èÊÑ¿ôyylineno
¤ËÊÝ»ý¤¹¤ë¥¹¥¥ã¥Ê¤òÀ¸À®¤¹¤ë¤è¤¦»Ø¼¨¤·¤Þ¤¹¡£
%option yymore
¥¹¥¥ã¥ÊÄêµÁ¥Õ¥¡¥¤¥ë¤ÎÃæ¤Çyymore()
¤¬»È¤ï¤ì¤Æ¤¤¤ë¤³¤È¤ò¡¢
Flex¤ËÄÌÃΤ·¤Þ¤¹¡£
Flex¤ÏÄ̾
ÄêµÁ¥Õ¥¡¥¤¥ë¤ÎÃæ¤Çyymore()
¤¬»È¤ï¤ì¤Æ¤¤¤ë¤«Èݤ«¤ò¼«Ê¬¤ÇÄ´ºº¤·¤Þ¤¹¤¬¡¢
¤³¤Î%option
»Ø¼¨»Ò¤Î»ØÄê¤Ï¡¢
Flex¼«¿È¤Ë¤è¤ëȽÄê·ë²Ì¤ËÍ¥À褷¤Þ¤¹¡£
%option yywrap
‘%option noyywrap’¤¬»ØÄꤵ¤ì¤ë¤È¡¢
yywrap()
¤Ï¥Þ¥¯¥í¤È¤·¤Æ¡¢
#define yywrap() 1
¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Þ¤¹¡£ ¤³¤Î·ë²Ì¡¢ ¥Õ¥¡¥¤¥ë¤Î½ªÃ¼¤ò¸¡½Ð¤·¤¿»þ¤Ë¡¢ ¥¹¥¥ã¥Ê¤Ï¡¢ ¤Û¤«¤Ë¥¹¥¥ã¥ó¤¹¤Ù¤¥Õ¥¡¥¤¥ë¤Ï¸ºß¤·¤Ê¤¤¤ÈȽÃǤ¹¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
Flex 2.5.4¤ËÉÕ°¤Î¥É¥¥å¥á¥ó¥Èflex.texi¤Ë¤Ï¡¢
´Ø¿ôinput()
¤Ë¤Ä¤¤¤Æ¤âƱÍͤΤ³¤È¤¬µºÜ¤µ¤ì¤Æ¤¤¤Þ¤¹¤¬¡¢
¼ÂºÝ¤Ë‘%option noinput’¤ò»ØÄꤷ¤Æ¤ß¤ë¤È¡¢
À¸À®¤µ¤ì¤ë¥¹¥¥ã¥Ê¤ÎÃæ¤Ë¡¢
´Ø¿ôinput()
¤¬ÁȤ߹þ¤Þ¤ì¤Þ¤¹¡£
Previous: Start States, Up: Flex Descriptions [Contents][Index]