【发布时间】:2014-11-01 03:36:12
【问题描述】:
我正在与 Flex 合作,我需要做一个首字母缩写词翻译器。我正在尝试在文件结尾之前检测一个单词,例如:
OEA?
OEA ¿OEA?
OEA
在这种情况下,flex 会检测前三个首字母缩写词,但最后一个 OEA 不会翻译。我在规则中有下一个代码:
%%
^OEA$ {fprintf(yyout,"Organizacion de los Estados Americanos");}
{START}OEA$ {fprintf(yyout,"%cOrganizacion de los Estados Americanos",yytext[0]);}
^OEA{END} {fprintf(yyout,"Organizacion de los Estados Americanos%c",yytext[yyleng-1]);}
{START}OEA{END} {fprintf(yyout,"%cOrganizacion de los Estados Americanos%c",yytext[0],yytext[yyleng-1]);}
%%
(START 和 END 包含开始和结束分隔符,例如 " " 或 ¿ ?)
我尝试使用 OEA<<'EOF'>>,但 flex 编译器显示 "unrecognized rule.."
有人可以帮助我吗? :)
【问题讨论】:
标签: c regex flex-lexer eof