【发布时间】:2014-03-27 11:23:17
【问题描述】:
我需要处理 C 中的字符串,其中某些单词(如果存在)必须转换为大写。我的第一选择是像这样在 LEX 中工作:
%%
word1 {setToUppercase(yytext);RETURN WORD1;}
word2 {setToUppercase(yytext);RETURN WORD2;}
word3 {setToUppercase(yytext);RETURN WORD3;}
%%
我看到的问题是我无法检测某些字符是否为大写(例如 Word1、wOrd1...)。这可能意味着一个一个列表:
%%
word1 |
Word1 |
WOrd1
{setToUppercase(yytext);RETURN WORD1;}
%%
有没有一种方法可以定义在不区分大小写的模式下比较这个特定的标记?我发现我可以将词法分析器编译为不区分大小写,但这会影响我程序的其他部分。
如果没有,有什么解决方法建议吗?
【问题讨论】:
-
你能在词法分析之前预处理(某些词的小写)吗?
-
事实上,这已经是另一个词法分析过程的预处理。我的问题是怎么做。