警告が表示されます
warning, -s option given but default rule can be matched
「オプションは指定されていますが、デフォルトのルールは一致する可能性があります」とグーグルで検索 すると、Flexマニュアルの診断に関する章と、診断セクションの古いFlexマンページのこのエントリが見つかります。
警告、「-s オプションが指定されましたが、デフォルト ルールを一致させることができます」は、(おそらく特定の開始条件でのみ) デフォルト ルール (任意の 1 文字に一致) が特定の入力に一致する唯一のものである可能性があることを意味します。が与えられたので
-s
、おそらくこれは意図したものではありません。
-s
私のビルドファイルにはオプションがありません。私が書いた
bison -y -d calc1.y
flex calc1.l
gcc code...
この警告を修正するにはどうすればよいですか?
これは、私の lex ファイルの小さなバージョンです。このファイルも警告をトリガーします
%{
#include "y.tab.h"
%}
%option noyywrap nodefault yylineno
%%
[0-9]+ {
return INTEGER;
}
[-+()=/*{},;\n] { return *yytext; }
[ \t] /* skip whitespace */
[a-zA-Z0-9_]* { printf("lex Unknown character = '%s'", yytext); yyerror("lex Unknown character"); }
%%