1
我是flex的新手。我剛剛寫了一個示例代碼,使用flex程序檢測多行註釋。現在我想改進代碼。我想在代碼中檢測未完成和不正確的註釋。例如:以/ *開始的註釋沒有結尾* /是一個未完成的註釋和不成形的註釋我的意思是這個註釋沒有正確地形成,例如,EOF出現在註釋等內部。我必須在我的代碼中添加什麼檢查這些東西?我的示例代碼如下:在flex中檢查未完成的註釋
%x COMMENT_MULTI_LINE
%{
char* commentStart;
%}
%%
[\n\t\r ]+ {
/* ignore whitespace */ }
<INITIAL>"/*" {
commentStart = yytext;
BEGIN(COMMENT_MULTI_LINE);
}
<COMMENT_MULTI_LINE>"*/" {
char* comment = strndup(commentStart, yytext + 2 - commentStart);
printf("'%s': was a multi-line comment\n", comment);
free(comment);
BEGIN(INITIAL);
}
<COMMENT_MULTI_LINE>. {
}
<COMMENT_MULTI_LINE>\n {
}
%%
int main(int argc, char *argv[]){
yylex();
}