Я новичок в lex, и у меня есть нераспознанное правило в строке 36, которое есть - printf ("% d", tok); Я не уверен, как исправить эту ошибку. Кто-нибудь видит, как это исправить? Thankyouнепризнанное правило в lex
%{
enum yytokentype {
NUMBER = 258,
ADD = 259,
SUB = 260,
MUL = 261,
DIV = 262,
ABS = 263,
EOL = 264
};
int yylval;
%}
%%
"+"
{ return ADD; }
"-"
{ return SUB; }
"*"
{ return MUL; }
"/"
{ return DIV; }
"|"
{ return ABS; }
[0-9]+ { yylval = atoi(yytext); return NUMBER; }
\n
{ return EOL; }
. { printf("Mystery character %c\n", *yytext); }
[ \t] { }
%%
main(int argc, char **argv)
{
int tok;
while(tok = yylex()) {
printf("%d", tok);
if(tok == NUMBER) printf(" = %d\n", yylval);
else printf("\n");
}
}