%{
#include <stdio.h>
%}
%%
"#".*
{ printf("Preprocessor directive: %s\n", yytext); }
"int"|"float"|"char"|"void"|"return" { printf("Keyword: %s\n", yytext); }
[0-9]+{ printf
("
Number: %s\n", yytext); } [a-zA-Z_][a-zA-Z0-9_]* { printf("Identifier: %s\n", yytext); }
"%d" | "%f" | "%c" | "%s"{ printf("Format specifier symbol: %s\n", yytext); }
"+"|"-"|"*"|"/"|"="|"<"|">"|"=="|"!="|"<="|">="{ printf("Operator: %s\n", yytext); }
";"|","|"("|")"|"{"|"}"|"["|"]" { printf("Symbol: %s\n", yytext); }
[ \t\n]+ /* Skip whitespace */
. { printf("Unknown character: %s\n", yytext); }
%%
int main()
{
yylex();
return 0;
}
int yywrap()
{
return 1;
}
ICV7CiNpbmNsdWRlIDxzdGRpby5oPgolfQoKJSUKCiIjIi4qIAp7IHByaW50ZigiUHJlcHJvY2Vzc29yIGRpcmVjdGl2ZTogJXNcbiIsIHl5dGV4dCk7IH0KImludCJ8ImZsb2F0InwiY2hhciJ8InZvaWQifCJyZXR1cm4iIHsgcHJpbnRmKCJLZXl3b3JkOiAlc1xuIiwgeXl0ZXh0KTsgfQpbMC05XSt7IHByaW50ZigiTnVtYmVyOiAlc1xuIiwgeXl0ZXh0KTsgfQpbYS16QS1aX11bYS16QS1aMC05X10qICB7IHByaW50ZigiSWRlbnRpZmllcjogJXNcbiIsIHl5dGV4dCk7IH0KIiVkIiB8ICIlZiIgfCAiJWMiIHwgIiVzInsgcHJpbnRmKCJGb3JtYXQgc3BlY2lmaWVyIHN5bWJvbDogJXNcbiIsIHl5dGV4dCk7IH0KIisifCItInwiKiJ8Ii8ifCI9InwiPCJ8Ij4ifCI9PSJ8IiE9InwiPD0ifCI+PSJ7IHByaW50ZigiT3BlcmF0b3I6ICVzXG4iLCB5eXRleHQpOyB9CiI7InwiLCJ8IigifCIpInwieyJ8In0ifCJbInwiXSIgeyBwcmludGYoIlN5bWJvbDogJXNcbiIsIHl5dGV4dCk7IH0KWyBcdFxuXSsgLyogU2tpcCB3aGl0ZXNwYWNlICovCi4geyBwcmludGYoIlVua25vd24gY2hhcmFjdGVyOiAlc1xuIiwgeXl0ZXh0KTsgfQoKJSUKCmludCBtYWluKCkKewogICAgeXlsZXgoKTsgICAKICAgIHJldHVybiAwOwp9CgppbnQgeXl3cmFwKCkKewogICAgcmV0dXJuIDE7Cn0K