0
digit [0-9]
letter [A-Za-z]
%{
int count;
%}
%%
/* match identifier */
{letter}({letter}|{digit})* count++;
%%
int main(void) {
yylex();
printf("number of identifiers = %d\n", count);
return 0;
}
不起作用printf語句。 你能解釋我應該在這段代碼中包含什麼嗎?爲什麼下面的flex代碼不顯示輸出?
程序是否正確終止? – Jack
no不終止。 –
歡迎來到Stack Overflow。請儘快閱讀[關於]和[問]部分,更急切地想知道如何創建MCVE([MCVE])。你已經提供了代碼,這很好。您沒有描述輸入數據,也沒有描述如何將數據提供給程序。你的解釋「不工作printf語句」沒有幫助。你應該更清楚你所觀察到的。此外,請注意[tag:flex]與[tag:flex-lexer]不同 - 後者是用於Flex詞法分析器(或詞法分析器)的正確選項。另一個標籤用於Adobe Web語言Flex。 –