%{
#include <stdio.h>
#include <stdlib.h>
int valid = 1;
%}
%%
[0-9]+ { /* number */ }
[+\-*/] { /* operators */ }
[ \t\n] { /* skip whitespace */ }
. { valid = 0; /* invalid character */ }
%%
int main(int argc, char **argv) {
printf("Enter an arithmetic expression:\n");
yylex();
if (valid)
printf("Valid expression (syntactically simple check).\n");
else
printf("Invalid expression (unrecognized characters found).\n");
return 0;
}
int yywrap() {
return 1;
}
JXsKI2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KaW50IHZhbGlkID0gMTsKJX0KCiUlClswLTldKyAgICAgICAgICAgICB7IC8qIG51bWJlciAqLyB9ClsrXC0qL10gICAgICAgICAgICB7IC8qIG9wZXJhdG9ycyAqLyB9ClsgXHRcbl0gICAgICAgICAgICB7IC8qIHNraXAgd2hpdGVzcGFjZSAqLyB9Ci4gICAgICAgICAgICAgICAgICB7IHZhbGlkID0gMDsgLyogaW52YWxpZCBjaGFyYWN0ZXIgKi8gfQolJQoKaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CiAgICBwcmludGYoIkVudGVyIGFuIGFyaXRobWV0aWMgZXhwcmVzc2lvbjpcbiIpOwogICAgeXlsZXgoKTsKICAgIGlmICh2YWxpZCkKICAgICAgICBwcmludGYoIlZhbGlkIGV4cHJlc3Npb24gKHN5bnRhY3RpY2FsbHkgc2ltcGxlIGNoZWNrKS5cbiIpOwogICAgZWxzZQogICAgICAgIHByaW50ZigiSW52YWxpZCBleHByZXNzaW9uICh1bnJlY29nbml6ZWQgY2hhcmFjdGVycyBmb3VuZCkuXG4iKTsKICAgIHJldHVybiAwOwp9CgppbnQgeXl3cmFwKCkgewogICAgcmV0dXJuIDE7Cn0K