2012年3月29日 星期四

lex處理C註解的兩種方式

方法一:



"/*"  {
        int c1 = 0, c2 = input();
        for (;;) {
            if(c2 == EOF)
                break;
            if(c1 == '*' && c2 == '/') {
                printf("comment:\n %s\n", yytext);
                break;
            }
            c1 = c2;
            c2 = input();
        }
      }



方法二:


%x CMNT

%%

"/*" BEGIN CMNT;
<CMNT>.
<CMNT>\n
<CMNT>"*/"BEGIN INITIAL;

沒有留言:

張貼留言