如何在lex中使用正则表达式表示字符<char>?</char>

时间:2014-09-01 06:37:09

标签: lex

如何在lex中使用正则表达式表示一个字符? 根据我的规格,char类是:

&#34; char是任何可打印的ASCII字符(十进制值32和126之间的ASCII值,或八进制40和176),而不是引号(&#34;),单引号(')或反斜杠(\ ),加上2个字符的序列&#34; \&#34;&#34;表示引用,&#34; \&#39;&#34;表示单引号,&#34; \\&#34;表示反斜杠,&#34; \ t&#34;表示文字标签,或&#34; \ n&#34;表示换行符。&#34;

那么如何在lex中使用正则表达式来表示它?

1 个答案:

答案 0 :(得分:1)

你可以在规则部分中有这个 (这里的值是八进制..) 当你试图通过键盘传递这些值时,例如:DEL - &gt; ^ [[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