2
我剛剛學習flex.I已經編寫了一個簡單的程序來檢查給定文本文件的單詞是否是動詞並打印它們。我想檢測輸入文件中是否有單行或多行註釋(如c和C++樣式註釋)並打印整個註釋以輸出。有沒有辦法做到這一點?我的示例代碼如下:在flex中檢測註釋
%%
[\t]+
is |
am |
are |
was |
were {printf("%s: is a verb",yytext);}
[a-zA-Z]+ {printf("%s: is a verb",yytext);}
. |\n
%%
int main(int argc, char *argv[]){
yyin = fopen(argv[1], "r");
yylex();
fclose(yyin);
}
代碼ID檢測的多線comment.single行註釋每個註釋不被處理individually.Additionally有沒有辦法刪除/ *和* /輸出? @stj – SKB
每當我嘗試它(使用flex 2.5.39和默認選項生成),上面的代碼將單獨處理單行和多行註釋。你可以提供對待它們的輸入嗎? – stj
要從多行註釋中刪除'/ *'和'* /',你需要調整這一行:'char * comment = strndup(commentStart,yytext + 2 - commentStart);'看起來像這樣:'' char * comment = strndup(commentStart + 2,yytext - 2 - commentStart);' – stj