%{
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
// Function prototype for yyerror
void yyerror(const char *s);
int yylex();
int yywrap() { return 1; }
%}
%%
[0-9]+ {
printf
("
Number: %s\n", yytext); return atoi(yytext);
}
[+\-*/] {
printf("Operator: %s\n", yytext);
return yytext[0];
}
\n { return 0; }
[ \t] { /* Ignore whitespace */ }
. { printf("Invalid character: %s\n", yytext); }
%%
int main() {
printf("Enter an arithmetic expression:\n");
yylex();
return 0;
}
void yyerror(const char *s) {
fprintf(stderr, "Error: %s\n", s);
}
JXsKI2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPGN0eXBlLmg+CgovLyBGdW5jdGlvbiBwcm90b3R5cGUgZm9yIHl5ZXJyb3IKdm9pZCB5eWVycm9yKGNvbnN0IGNoYXIgKnMpOwppbnQgeXlsZXgoKTsKaW50IHl5d3JhcCgpIHsgcmV0dXJuIDE7IH0KJX0KCiUlClswLTldKyB7CiAgICBwcmludGYoIk51bWJlcjogJXNcbiIsIHl5dGV4dCk7CiAgICByZXR1cm4gYXRvaSh5eXRleHQpOwp9ClsrXC0qL10gewogICAgcHJpbnRmKCJPcGVyYXRvcjogJXNcbiIsIHl5dGV4dCk7CiAgICByZXR1cm4geXl0ZXh0WzBdOwp9ClxuIHsgcmV0dXJuIDA7IH0KWyBcdF0geyAvKiBJZ25vcmUgd2hpdGVzcGFjZSAqLyB9Ci4geyBwcmludGYoIkludmFsaWQgY2hhcmFjdGVyOiAlc1xuIiwgeXl0ZXh0KTsgfQolJQoKaW50IG1haW4oKSB7CiAgICBwcmludGYoIkVudGVyIGFuIGFyaXRobWV0aWMgZXhwcmVzc2lvbjpcbiIpOwogICAgeXlsZXgoKTsKICAgIHJldHVybiAwOwp9Cgp2b2lkIHl5ZXJyb3IoY29uc3QgY2hhciAqcykgewogICAgZnByaW50ZihzdGRlcnIsICJFcnJvcjogJXNcbiIsIHMpOwp9Cg==