プロジェクトを gcc と -Wall オプションを使用してコンパイルすると、flex ファイルの存在しない最後の行に効果のないステートメントに関する警告が表示されます。
警告:
gcc -Wall -O0 -ggdb3 -DNOSUDO -DJOBC -DDEBUG -c lex.yy.c
tokenizer.l: In function ‘yylex’:
tokenizer.l:179: warning: statement with no effect
シェル コマンド:
$ wc -l tokenizer.l
178 tokenizer.l
lex ファイルの最後の部分:
; {
return SEMI;
}
この警告が表示される理由を知っている人はいますか?
すべての #line ディレクティブを抑制すると、エラーは次のようになります。
lex.yy.c: In function ‘yylex’:
lex.yy.c:1021: warning: statement with no effect
次の ECHO 行を指します。
case 30:
YY_RULE_SETUP
ECHO;
YY_BREAK
case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(inQuote):
case YY_STATE_EOF(inWord):
yyterminate();