%{
#include <stdio.h>
#include <stdlib.h>
%}
%%
"int" { printf("Keyword: int\n"); }
"float"
{ printf
("Keyword
: float\n"
); }"if" { printf("Keyword: if\n"); }
"else" { printf("Keyword: else\n"); }
[0-9]+ { printf
("
Integer: %s\n", yytext); } [0-9]+\
.[0-9]+ { printf
("
Float: %s\n", yytext); } [a-zA-Z_][a-zA-Z0-9_]* { printf("Identifier: %s\n", yytext); }
"=" { printf("Operator: =\n"); }
"==" { printf("Operator: ==\n"); }
"+" { printf("Operator: +\n"); }
"-" { printf("Operator: -\n"); }
"*" { printf("Operator: *\n"); }
"/" { printf("Operator: /\n"); }
";" { printf("Semicolon: ;\n"); }
[ \t\n\r] { /* Ignore whitespace */ }
. { printf("Unknown character: %s\n", yytext); }
%%
int main() {
yylex(); // Start the lexical analysis
return 0;
}
JXsKI2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KJX0KCiUlCiJpbnQiICAgICAgICB7IHByaW50ZigiS2V5d29yZDogaW50XG4iKTsgfQoiZmxvYXQiICAgICAgeyBwcmludGYoIktleXdvcmQ6IGZsb2F0XG4iKTsgfQoiaWYiICAgICAgICAgeyBwcmludGYoIktleXdvcmQ6IGlmXG4iKTsgfQoiZWxzZSIgICAgICAgeyBwcmludGYoIktleXdvcmQ6IGVsc2VcbiIpOyB9ClswLTldKyAgICAgICB7IHByaW50ZigiSW50ZWdlcjogJXNcbiIsIHl5dGV4dCk7IH0KWzAtOV0rXC5bMC05XSsgeyBwcmludGYoIkZsb2F0OiAlc1xuIiwgeXl0ZXh0KTsgfQpbYS16QS1aX11bYS16QS1aMC05X10qIHsgcHJpbnRmKCJJZGVudGlmaWVyOiAlc1xuIiwgeXl0ZXh0KTsgfQoiPSIgICAgICAgICAgIHsgcHJpbnRmKCJPcGVyYXRvcjogPVxuIik7IH0KIj09IiAgICAgICAgICB7IHByaW50ZigiT3BlcmF0b3I6ID09XG4iKTsgfQoiKyIgICAgICAgICAgIHsgcHJpbnRmKCJPcGVyYXRvcjogK1xuIik7IH0KIi0iICAgICAgICAgICB7IHByaW50ZigiT3BlcmF0b3I6IC1cbiIpOyB9CiIqIiAgICAgICAgICAgeyBwcmludGYoIk9wZXJhdG9yOiAqXG4iKTsgfQoiLyIgICAgICAgICAgIHsgcHJpbnRmKCJPcGVyYXRvcjogL1xuIik7IH0KIjsiICAgICAgICAgICB7IHByaW50ZigiU2VtaWNvbG9uOiA7XG4iKTsgfQpbIFx0XG5ccl0gICAgIHsgLyogSWdub3JlIHdoaXRlc3BhY2UgKi8gfQouICAgICAgICAgICAgIHsgcHJpbnRmKCJVbmtub3duIGNoYXJhY3RlcjogJXNcbiIsIHl5dGV4dCk7IH0KJSUKCmludCBtYWluKCkgewogICAgeXlsZXgoKTsgIC8vIFN0YXJ0IHRoZSBsZXhpY2FsIGFuYWx5c2lzCiAgICByZXR1cm4gMDsKfQoK