語彙および構文アナライザーの構築に取り組んでいます。.l ファイルで flex を使用しようとすると、次の警告が表示されます。
littleDuck.l:26: warning, rule cannot be matched
ルール 26 は {cteI} で始まるルールです。私のルール セクションは次のとおりです。
[ \t\n] ;
{RW} {return RESERVED;}
{id} {return ID;}
{ops} {return OPERATOR;}
{seps} {return SEPARATOR;}
{cteI} {yylval.ival = atoi(yytext); return INT;}
{cteF} {yylval.fval = atof(yytext); return FLOAT;}
{ctestring} {yylval.sval = strdup(yytext); return STRING;}
. ;
また、私の定義セクションは次のとおりです。
RW program|var|int|float|print|else|if
id ([a-z]|[A-Z)([a-z]|[A-Z]|[0-9])*
ops "="|"<"|">"|"<>"|"+"|"-"|"/"|"*"
seps ":"|","|";"|"{"|"}"|"("|")"
cteI [0-9]+
cteF {cteI}(\.{cteI}((e|E)("+"|"-")?{cteI})?)?
ctestring (\".*\")
この警告が表示される理由と、表示されないようにファイルを変更するにはどうすればよいですか?