sinco吧 关注:22贴子:4,838
  • 8回复贴,共1

【学】编译原理_C语言词法分析_lex_正则式_多行注释

只看楼主收藏回复

最近做编译原理实验,让用lex实现的C语言词法分析,其中要识别多行注释,上网多方搜集资料无果,要不就是不支持多行,要不就是贪心匹配。于是耐着性子,自己根据多行注释的DFA写了个正则式。式子挺麻烦,不过经多次测试,都OK,现面向大众公测,请大家批评指教。
"/*"[^*]*[*]+([^*/][^*]*[*]+)*[*]*"/"



1楼2011-06-08 15:56回复
    另附测试用例如下(有点儿乱,随意看吧):
    /***t/e*
    *s
    /t.***
    c***
    /
    /**/
    main()   
    {int a,b;
    a = 10;
    b = a + 20;//end of program}
    /*
    */
    如果有错,恳请同样附上测试用例,多谢


    2楼2011-06-08 16:05
    回复
      为何标题中有“编译原理_C语言词法分析_lex_正则式_多行注释”,在百度搜索这个标题,却找不到这个帖子?好奇~


      4楼2011-06-08 16:09
      回复
        囧RZ,貌似可以搜到了,估计是等待管理员审核。


        6楼2011-06-08 21:55
        回复
          感谢楼主啊,我郁闷好久了,其实我很奇怪,为什么"/*"[.\n]"*/"不行。


          7楼2012-02-26 11:46
          回复
            []只匹配一个字符


            8楼2012-03-02 09:03
            回复
              有汉字就过滤不掉啊


              IP属地:四川9楼2015-06-09 11:13
              回复
                mark,最近也遇到了这个实验


                IP属地:辽宁10楼2016-10-19 21:23
                回复
                  谢谢谢谢谢


                  12楼2021-11-11 16:49
                  回复