%{
#include <stdio.h>
%}
%%
/* Définition des tokens */
[ \t\n]+ ; /* Ignorer les espaces, tabulations et nouvelles lignes */
"//".* ; /* Ignorer les commentaires monolignes */
/\*([^*]|\*+[^*/])*\*+/ ; /* Ignorer les commentaires multilignes */
if|else|while|return { printf("KEYWORD: %s\n", yytext); }
[a-zA-Z_][a-zA-Z0-9_]* { printf("IDENTIFIER: %s\n", yytext); }
[0-9]+ { printf
("
NUMBER: %s\n", yytext); } \+|\-|\*|\/|= { printf("OPERATOR: %s\n", yytext); }
\(|\)|\{|\}|;|, { printf("SYMBOL: %s\n", yytext); }
. { printf("UNKNOWN: %s\n", yytext); }
%%
int main() {
yylex();
return 0;
}
int yywrap() {
return 1;
}
JXsKI2luY2x1ZGUgPHN0ZGlvLmg+CiV9CgolJQogICAgLyogRMOpZmluaXRpb24gZGVzIHRva2VucyAqLwogICAgWyBcdFxuXSsgICAgICAgIDsgLyogSWdub3JlciBsZXMgZXNwYWNlcywgdGFidWxhdGlvbnMgZXQgbm91dmVsbGVzIGxpZ25lcyAqLwogICAgIi8vIi4qICAgICAgICAgIDsgLyogSWdub3JlciBsZXMgY29tbWVudGFpcmVzIG1vbm9saWduZXMgKi8KICAgIC9cKihbXipdfFwqK1teKi9dKSpcKisvICAgIDsgLyogSWdub3JlciBsZXMgY29tbWVudGFpcmVzIG11bHRpbGlnbmVzICovCiAgICBpZnxlbHNlfHdoaWxlfHJldHVybiAgICB7IHByaW50ZigiS0VZV09SRDogJXNcbiIsIHl5dGV4dCk7IH0KICAgIFthLXpBLVpfXVthLXpBLVowLTlfXSogIHsgcHJpbnRmKCJJREVOVElGSUVSOiAlc1xuIiwgeXl0ZXh0KTsgfQogICAgWzAtOV0rICAgICAgICAgICAgICAgICB7IHByaW50ZigiTlVNQkVSOiAlc1xuIiwgeXl0ZXh0KTsgfQogICAgXCt8XC18XCp8XC98PSAgICAgICAgICB7IHByaW50ZigiT1BFUkFUT1I6ICVzXG4iLCB5eXRleHQpOyB9CiAgICBcKHxcKXxce3xcfXw7fCwgICAgICAgIHsgcHJpbnRmKCJTWU1CT0w6ICVzXG4iLCB5eXRleHQpOyB9CiAgICAuICAgICAgICAgICAgICAgICAgICAgIHsgcHJpbnRmKCJVTktOT1dOOiAlc1xuIiwgeXl0ZXh0KTsgfQolJQoKaW50IG1haW4oKSB7CiAgICB5eWxleCgpOwogICAgcmV0dXJuIDA7Cn0KCmludCB5eXdyYXAoKSB7CiAgICByZXR1cm4gMTsKfQo=