【学】编译原理_C语言词法分析_lex_正则式_多行注释
sinco吧
全部回复
仅看楼主
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 9
倾城倾国 楼主
囧RZ,貌似可以搜到了,估计是等待管理员审核。
2011年06月08日 13点06分 6
level 1
感谢楼主啊,我郁闷好久了,其实我很奇怪,为什么"/*"[.\n]"*/"不行。
2012年02月26日 03点02分 7
level 9
倾城倾国 楼主
[]只匹配一个字符
2012年03月02日 01点03分 8
level 1
有汉字就过滤不掉啊
2015年06月09日 03点06分 9
level 1
mark,最近也遇到了这个实验
2016年10月19日 13点10分 10
level 1
谢谢谢谢谢
2021年11月11日 08点11分 12
1