%{
#include <stdio.h>
#include <stdlib.h>
%}
%%
[0-9]+ { printf
("
NUMBER: %s\n", yytext); } [ \t\n] ; /* Skip whitespace */
"+" { printf("ADD\n"); return '+'; }
"-" { printf("SUBTRACT\n"); return '-'; }
"*" { printf("MULTIPLY\n"); return '*'; }
"/" { printf("DIVIDE\n"); return '/'; }
. { printf("Invalid character: %s\n", yytext); return 0; }
%%
int main() {
printf("Enter expression (e.g., 2+3, 10*5, etc.):\n");
int token;
while((token = yylex()) != 0) {
// Loop until there are no more tokens
}
return 0;
}
JXsKI2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KJX0KCiUlClswLTldKyAgICAgIHsgcHJpbnRmKCJOVU1CRVI6ICVzXG4iLCB5eXRleHQpOyB9ClsgXHRcbl0gICAgIDsgIC8qIFNraXAgd2hpdGVzcGFjZSAqLwoiKyIgICAgICAgICB7IHByaW50ZigiQUREXG4iKTsgcmV0dXJuICcrJzsgfQoiLSIgICAgICAgICB7IHByaW50ZigiU1VCVFJBQ1RcbiIpOyByZXR1cm4gJy0nOyB9CiIqIiAgICAgICAgIHsgcHJpbnRmKCJNVUxUSVBMWVxuIik7IHJldHVybiAnKic7IH0KIi8iICAgICAgICAgeyBwcmludGYoIkRJVklERVxuIik7IHJldHVybiAnLyc7IH0KLiAgICAgICAgICAgeyBwcmludGYoIkludmFsaWQgY2hhcmFjdGVyOiAlc1xuIiwgeXl0ZXh0KTsgcmV0dXJuIDA7IH0KJSUKCmludCBtYWluKCkgewogICAgcHJpbnRmKCJFbnRlciBleHByZXNzaW9uIChlLmcuLCAyKzMsIDEwKjUsIGV0Yy4pOlxuIik7CiAgICBpbnQgdG9rZW47CiAgICB3aGlsZSgodG9rZW4gPSB5eWxleCgpKSAhPSAwKSB7CiAgICAgICAgLy8gTG9vcCB1bnRpbCB0aGVyZSBhcmUgbm8gbW9yZSB0b2tlbnMKICAgIH0KICAgIHJldHVybiAwOwp9Cg==