%{
#include <stdio.h>
%}
/* Definitions */
DIGIT [0-9]
LETTER [a-zA-Z]
ID ({LETTER}|_){LETTER}*({LETTER}|{DIGIT}|_)*
FLOAT {DIGIT
}+"
."
{DIGIT
}+ OPERATOR "+"|"-"|"*"|"/"
WHITESPACE [ \t\n]+
%%
/* Rules */
{ID} { printf("IDENTIFIER: %s\n", yytext); }
{OPERATOR} { printf("OPERATOR: %s\n", yytext); }
{WHITESPACE} /* skip whitespace */
. { printf("UNRECOGNIZED: %s\n", yytext); }
%%
int main(int argc, char *argv[]) {
// Initialize the lexer
yyin = fopen(argv[1], "r");
yylex();
fclose(yyin);
return 0;
}
JXsKI2luY2x1ZGUgPHN0ZGlvLmg+CiV9CgovKiBEZWZpbml0aW9ucyAqLwpESUdJVCAgICAgICBbMC05XQpMRVRURVIgICAgICBbYS16QS1aXQpJRCAgICAgICAgICAoe0xFVFRFUn18Xyl7TEVUVEVSfSooe0xFVFRFUn18e0RJR0lUfXxfKSoKSU5URUdFUiAgICAge0RJR0lUfSsKRkxPQVQgICAgICAge0RJR0lUfSsiLiJ7RElHSVR9KwpPUEVSQVRPUiAgICAiKyJ8Ii0ifCIqInwiLyIKV0hJVEVTUEFDRSAgWyBcdFxuXSsKCiUlCgovKiBSdWxlcyAqLwp7SU5URUdFUn0gICB7IHByaW50ZigiSU5URUdFUjogJXNcbiIsIHl5dGV4dCk7IH0Ke0ZMT0FUfSAgICAgeyBwcmludGYoIkZMT0FUOiAlc1xuIiwgeXl0ZXh0KTsgfQp7SUR9ICAgICAgICB7IHByaW50ZigiSURFTlRJRklFUjogJXNcbiIsIHl5dGV4dCk7IH0Ke09QRVJBVE9SfSAgeyBwcmludGYoIk9QRVJBVE9SOiAlc1xuIiwgeXl0ZXh0KTsgfQp7V0hJVEVTUEFDRX0gIC8qIHNraXAgd2hpdGVzcGFjZSAqLwouICAgICAgICAgICB7IHByaW50ZigiVU5SRUNPR05JWkVEOiAlc1xuIiwgeXl0ZXh0KTsgfQoKJSUKCmludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pIHsKICAgIC8vIEluaXRpYWxpemUgdGhlIGxleGVyCiAgICB5eWluID0gZm9wZW4oYXJndlsxXSwgInIiKTsKICAgIC8vIENhbGwgdGhlIGxleGVyCiAgICB5eWxleCgpOwogICAgLy8gQ2xvc2UgdGhlIGlucHV0IGZpbGUKICAgIGZjbG9zZSh5eWluKTsKICAgIHJldHVybiAwOwp9Cg==