%{
#include "y.tab.h"
%}
%%
"if" { return IF; }
"else" { return ELSE; }
"while" { return WHILE; }
"for" { return FOR; }
"int" { return INT; }
"float"
{ return
FLOAT; }"char" { return CHAR; }
"return" { return RETURN; }
[a-zA-Z_][a-zA-Z0-9_]* { return ID; }
"==" { return EQ; }
"!=" { return NEQ; }
"<=" { return LE; }
">=" { return GE; }
"<" { return LT; }
">" { return GT; }
"=" { return ASSIGN; }
";" { return SEMI; }
"," { return COMMA; }
"(" { return LPAREN; }
")" { return RPAREN; }
"{" { return LBRACE; }
"}" { return RBRACE; }
"+" { return PLUS; }
"-" { return MINUS; }
"*" { return MUL; }
"/" { return DIV; }
[ \t\n]+ ; /* ignore whitespace */
. { return yytext[0]; }
%%
int yywrap() {
return 1;
}
JXsKI2luY2x1ZGUgInkudGFiLmgiCiV9CgolJQoiaWYiICAgICAgICAgICAgeyByZXR1cm4gSUY7IH0KImVsc2UiICAgICAgICAgIHsgcmV0dXJuIEVMU0U7IH0KIndoaWxlIiAgICAgICAgIHsgcmV0dXJuIFdISUxFOyB9CiJmb3IiICAgICAgICAgICB7IHJldHVybiBGT1I7IH0KImludCIgICAgICAgICAgIHsgcmV0dXJuIElOVDsgfQoiZmxvYXQiICAgICAgICAgeyByZXR1cm4gRkxPQVQ7IH0KImNoYXIiICAgICAgICAgIHsgcmV0dXJuIENIQVI7IH0KInJldHVybiIgICAgICAgIHsgcmV0dXJuIFJFVFVSTjsgfQoKWzAtOV0rICAgICAgICAgIHsgcmV0dXJuIE5VTUJFUjsgfQpbYS16QS1aX11bYS16QS1aMC05X10qICAgeyByZXR1cm4gSUQ7IH0KCiI9PSIgICAgICAgICAgICB7IHJldHVybiBFUTsgfQoiIT0iICAgICAgICAgICAgeyByZXR1cm4gTkVROyB9CiI8PSIgICAgICAgICAgICB7IHJldHVybiBMRTsgfQoiPj0iICAgICAgICAgICAgeyByZXR1cm4gR0U7IH0KIjwiICAgICAgICAgICAgIHsgcmV0dXJuIExUOyB9CiI+IiAgICAgICAgICAgICB7IHJldHVybiBHVDsgfQoKIj0iICAgICAgICAgICAgIHsgcmV0dXJuIEFTU0lHTjsgfQoiOyIgICAgICAgICAgICAgeyByZXR1cm4gU0VNSTsgfQoiLCIgICAgICAgICAgICAgeyByZXR1cm4gQ09NTUE7IH0KIigiICAgICAgICAgICAgIHsgcmV0dXJuIExQQVJFTjsgfQoiKSIgICAgICAgICAgICAgeyByZXR1cm4gUlBBUkVOOyB9CiJ7IiAgICAgICAgICAgICB7IHJldHVybiBMQlJBQ0U7IH0KIn0iICAgICAgICAgICAgIHsgcmV0dXJuIFJCUkFDRTsgfQoKIisiICAgICAgICAgICAgIHsgcmV0dXJuIFBMVVM7IH0KIi0iICAgICAgICAgICAgIHsgcmV0dXJuIE1JTlVTOyB9CiIqIiAgICAgICAgICAgICB7IHJldHVybiBNVUw7IH0KIi8iICAgICAgICAgICAgIHsgcmV0dXJuIERJVjsgfQoKWyBcdFxuXSsgICAgICAgIDsgICAgIC8qIGlnbm9yZSB3aGl0ZXNwYWNlICovCgouICAgICAgICAgICAgICAgeyByZXR1cm4geXl0ZXh0WzBdOyB9CgolJQoKaW50IHl5d3JhcCgpIHsKICAgIHJldHVybiAxOwp9Cg==