%{
#include <stdio.h>
%}
/* Definitions */
NUMBER [0-9]+(\
.[0-9]+)?
/* integers or decimals */ WS [ \t]+ /* whitespace */
%%
{WS} ; /* ignore whitespace */
"+" { printf("PLUS(+)\n"); }
"-" { printf("MINUS(-)\n"); }
"*" { printf("MULT(*)\n"); }
"/" { printf("DIV(/)\n"); }
"(" { printf("LPAREN(()\n"); }
")" { printf("RPAREN())\n"); }
. { printf("UNKNOWN(%s)\n", yytext); }
%%
int main() {
printf("Enter an arithmetic expression:\n");
yylex();
return 0;
}
int yywrap() {
return 1;
}
JXsKI2luY2x1ZGUgPHN0ZGlvLmg+CiV9CgovKiBEZWZpbml0aW9ucyAqLwpOVU1CRVIgICAgICBbMC05XSsoXC5bMC05XSspPyAgIC8qIGludGVnZXJzIG9yIGRlY2ltYWxzICovCldTICAgICAgICAgIFsgXHRdKyAgICAgICAgICAgICAgLyogd2hpdGVzcGFjZSAqLwoKJSUKCntXU30gICAgICAgIDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaWdub3JlIHdoaXRlc3BhY2UgKi8Ke05VTUJFUn0gICAgeyBwcmludGYoIk5VTUJFUiglcylcbiIsIHl5dGV4dCk7IH0KIisiICAgICAgICAgeyBwcmludGYoIlBMVVMoKylcbiIpOyB9CiItIiAgICAgICAgIHsgcHJpbnRmKCJNSU5VUygtKVxuIik7IH0KIioiICAgICAgICAgeyBwcmludGYoIk1VTFQoKilcbiIpOyB9CiIvIiAgICAgICAgIHsgcHJpbnRmKCJESVYoLylcbiIpOyB9CiIoIiAgICAgICAgIHsgcHJpbnRmKCJMUEFSRU4oKClcbiIpOyB9CiIpIiAgICAgICAgIHsgcHJpbnRmKCJSUEFSRU4oKSlcbiIpOyB9Ci4gICAgICAgICAgIHsgcHJpbnRmKCJVTktOT1dOKCVzKVxuIiwgeXl0ZXh0KTsgfQoKJSUKCmludCBtYWluKCkgewogICAgcHJpbnRmKCJFbnRlciBhbiBhcml0aG1ldGljIGV4cHJlc3Npb246XG4iKTsKICAgIHl5bGV4KCk7CiAgICByZXR1cm4gMDsKfQoKaW50IHl5d3JhcCgpIHsKICAgIHJldHVybiAxOwp9Cg==