%{
#include <stdio.h>
#include <ctype.h>
int valid = 1; // flag to check validity
%}
%%
[ \t\n]+ ; // ignore spaces, tabs, newlines
[\+\-\*/\(\)] ; // valid operators and parentheses
. { valid = 0; } // invalid character
%%
int main() {
printf("Enter an arithmetic expression: ");
yylex();
if (valid)
printf("✅ Valid arithmetic expression\n");
else
printf("❌ Invalid arithmetic expression\n");
return 0;
}
int yywrap() {
return 1;
}
JXsKI2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxjdHlwZS5oPgoKaW50IHZhbGlkID0gMTsgLy8gZmxhZyB0byBjaGVjayB2YWxpZGl0eQolfQoKJSUKWzAtOV0rICAgICAgICAgICAgICAgICAgOyAgIC8vIHZhbGlkIG51bWJlcgpbIFx0XG5dKyAgICAgICAgICAgICAgICA7ICAgLy8gaWdub3JlIHNwYWNlcywgdGFicywgbmV3bGluZXMKW1wrXC1cKi9cKFwpXSAgICAgICAgICAgOyAgIC8vIHZhbGlkIG9wZXJhdG9ycyBhbmQgcGFyZW50aGVzZXMKLiAgICAgICAgICAgICAgICAgICAgICAgeyB2YWxpZCA9IDA7IH0gICAvLyBpbnZhbGlkIGNoYXJhY3RlcgolJQoKaW50IG1haW4oKSB7CiAgICBwcmludGYoIkVudGVyIGFuIGFyaXRobWV0aWMgZXhwcmVzc2lvbjogIik7CiAgICB5eWxleCgpOwoKICAgIGlmICh2YWxpZCkKICAgICAgICBwcmludGYoIuKchSBWYWxpZCBhcml0aG1ldGljIGV4cHJlc3Npb25cbiIpOwogICAgZWxzZQogICAgICAgIHByaW50Zigi4p2MIEludmFsaWQgYXJpdGhtZXRpYyBleHByZXNzaW9uXG4iKTsKCiAgICByZXR1cm4gMDsKfQoKaW50IHl5d3JhcCgpIHsKICAgIHJldHVybiAxOwp9