%{
#include <stdio.h>
#include <stdlib.h>
%}
%option noyywrap
%%
"int" { printf("Keyword: int\n"); }
"float"
{ printf
("Keyword
: float\n"
); }"if" { printf("Keyword: if\n"); }
"else" { printf("Keyword: else\n"); }
[0-9]+\
.[0-9]+ { printf
("
Float: %s\n", yytext); } [0-9]+ { printf
("
Integer: %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("Assignment Operator: =\n"); }
";" { printf("Semicolon: ;\n"); }
"," { printf("Comma: ,\n"); }
[\t\n ]+ { /* Ignore whitespace */ }
. { printf("Unknown Character: %s\n", yytext); }
%%
int main() {
printf("Enter code to analyze:\n");
yylex();
return 0;
}
JXsKICAgICNpbmNsdWRlIDxzdGRpby5oPgogICAgI2luY2x1ZGUgPHN0ZGxpYi5oPgolfQoKJW9wdGlvbiBub3l5d3JhcAoKJSUKImludCIgICAgIHsgcHJpbnRmKCJLZXl3b3JkOiBpbnRcbiIpOyB9CiJmbG9hdCIgICB7IHByaW50ZigiS2V5d29yZDogZmxvYXRcbiIpOyB9CiJpZiIgICAgICB7IHByaW50ZigiS2V5d29yZDogaWZcbiIpOyB9CiJlbHNlIiAgICB7IHByaW50ZigiS2V5d29yZDogZWxzZVxuIik7IH0KClswLTldK1wuWzAtOV0rICB7IHByaW50ZigiRmxvYXQ6ICVzXG4iLCB5eXRleHQpOyB9ClswLTldKyAgICAgICAgICB7IHByaW50ZigiSW50ZWdlcjogJXNcbiIsIHl5dGV4dCk7IH0KW2EtekEtWl9dW2EtekEtWjAtOV9dKiAgeyBwcmludGYoIklkZW50aWZpZXI6ICVzXG4iLCB5eXRleHQpOyB9CgoiKyIgICAgIHsgcHJpbnRmKCJPcGVyYXRvcjogK1xuIik7IH0KIi0iICAgICB7IHByaW50ZigiT3BlcmF0b3I6IC1cbiIpOyB9CiIqIiAgICAgeyBwcmludGYoIk9wZXJhdG9yOiAqXG4iKTsgfQoiLyIgICAgIHsgcHJpbnRmKCJPcGVyYXRvcjogL1xuIik7IH0KIj0iICAgICB7IHByaW50ZigiQXNzaWdubWVudCBPcGVyYXRvcjogPVxuIik7IH0KIjsiICAgICB7IHByaW50ZigiU2VtaWNvbG9uOiA7XG4iKTsgfQoiLCIgICAgIHsgcHJpbnRmKCJDb21tYTogLFxuIik7IH0KCltcdFxuIF0rICAgIHsgLyogSWdub3JlIHdoaXRlc3BhY2UgKi8gfQouICAgICAgICAgICB7IHByaW50ZigiVW5rbm93biBDaGFyYWN0ZXI6ICVzXG4iLCB5eXRleHQpOyB9CgolJQoKaW50IG1haW4oKSB7CiAgICBwcmludGYoIkVudGVyIGNvZGUgdG8gYW5hbHl6ZTpcbiIpOwogICAgeXlsZXgoKTsKICAgIHJldHVybiAwOwp9Cg==