level 9
最近做编译原理实验,让用lex实现的C语言词法分析,其中要识别多行注释,上网多方搜集资料无果,要不就是不支持多行,要不就是贪心匹配。于是耐着性子,自己根据多行注释的DFA写了个正则式。式子挺麻烦,不过经多次测试,都OK,现面向大众公测,请大家批评指教。
"/*"[^*]*[*]+([^*/][^*]*[*]+)*[*]*"/"
2011年06月08日 07点06分
1
level 9
另附测试用例如下(有点儿乱,随意看吧):
/***t/e*
*s
/t.***
c***
/
/**/
main()
{int a,b;
a = 10;
b = a + 20;//end of program}
/*
*/
如果有错,恳请同样附上测试用例,多谢
2011年06月08日 08点06分
2
level 9
为何标题中有“编译原理_C语言词法分析_lex_正则式_多行注释”,在百度搜索这个标题,却找不到这个帖子?好奇~
2011年06月08日 08点06分
4
level 1
感谢楼主啊,我郁闷好久了,其实我很奇怪,为什么"/*"[.\n]"*/"不行。
2012年02月26日 03点02分
7