%{
#include <stdio.h>
%}
// Define patterns for tokens
%%
[ \t\n]+ ; // Ignore spaces, tabs, and newlines
int
|float|if
|else
|while
|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); }
"+"|"-"|"*"|"/"|"=" { printf("Operator: %s\n", yytext); }
";"|"("|")"|"{"|"}" { printf("Delimiter: %s\n", yytext); }
. { printf("Unknown: %s\n", yytext); }
%%
// Main function
int main() {
yylex(); // Start lexical analysis
return 0;
}
JXsKI2luY2x1ZGUgPHN0ZGlvLmg+CiV9CgovLyBEZWZpbmUgcGF0dGVybnMgZm9yIHRva2VucwolJQpbIFx0XG5dKyAgICAgICAgICAgICAgICA7ICAgLy8gSWdub3JlIHNwYWNlcywgdGFicywgYW5kIG5ld2xpbmVzCmludHxmbG9hdHxpZnxlbHNlfHdoaWxlfHJldHVybiAgIHsgcHJpbnRmKCJLZXl3b3JkOiAlc1xuIiwgeXl0ZXh0KTsgfQpbMC05XSsgICAgICAgICAgICAgICAgICB7IHByaW50ZigiTnVtYmVyOiAlc1xuIiwgeXl0ZXh0KTsgfQpbYS16QS1aX11bYS16QS1aMC05X10qICB7IHByaW50ZigiSWRlbnRpZmllcjogJXNcbiIsIHl5dGV4dCk7IH0KIisifCItInwiKiJ8Ii8ifCI9IiAgICAgeyBwcmludGYoIk9wZXJhdG9yOiAlc1xuIiwgeXl0ZXh0KTsgfQoiOyJ8IigifCIpInwieyJ8In0iICAgICB7IHByaW50ZigiRGVsaW1pdGVyOiAlc1xuIiwgeXl0ZXh0KTsgfQouICAgICAgICAgICAgICAgICAgICAgICB7IHByaW50ZigiVW5rbm93bjogJXNcbiIsIHl5dGV4dCk7IH0KJSUKCi8vIE1haW4gZnVuY3Rpb24KaW50IG1haW4oKSB7CiAgICB5eWxleCgpOyAgIC8vIFN0YXJ0IGxleGljYWwgYW5hbHlzaXMKICAgIHJldHVybiAwOwp9Cg==