Anreise: Achtung, Regel nicht abgeglichen werden

Ich arbeite am Aufbau einer lexikalischen und syntax analyzer. Ich bekomme folgende Warnung, wenn ich versuche, verwenden Sie die flex mit meinem .l-Datei.

littleDuck.l:26: warning, rule cannot be matched

Regel 26 ist derjenige, der mit beginnt {cteI}, meine Regeln-Abschnitt ist der folgende:

[ \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;}
.       ;

Auch meine Definitionen Abschnitt ist dieser:

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   (\".*\")

Warum ist diese Warnung erscheint, und wie kann ich ändern, meine Datei, so erscheint es nicht?

InformationsquelleAutor gabrielbaca | 2013-02-24

Schreibe einen Kommentar