如何在lex中使用正则表达式表示一个字符? 根据我的规格,char类是:
" char是任何可打印的ASCII字符(十进制值32和126之间的ASCII值,或八进制40和176),而不是引号("),单引号(')或反斜杠(\ ),加上2个字符的序列" \""表示引用," \'"表示单引号," \\"表示反斜杠," \ t"表示文字标签,或" \ n"表示换行符。"
那么如何在lex中使用正则表达式来表示它?
答案 0 :(得分:1)
你可以在规则部分中有这个 (这里的值是八进制..) 当你试图通过键盘传递这些值时,例如:DEL - > ^ [[3~(存储在STDIN中的字符组合)因此使用yyin =(FILE *)fopen(文件名,模式);
%%
[\00-\37\42\47\134\t\n] ;//this omits the not required inputs
\177 return;//just for a exit key
. {action(s)}
%%
或
%%
[\00-\37\42\47\134\t\n]|\177 ;//omits inputs that are not to be considered
. {required action(s)}
%%
参考http://msdn.microsoft.com/en-us/library/vstudio/ae5bf541%28v=vs.100%29.aspx