%{
#undef yywrap
#define yywrap() 1
#include<stdio.h>
int statements = 0;
int ids = 0;
int assign = 0;
int rel = 0;
int keywords = 0;
int integers = 0;
%}
DIGIT [0-9]
LETTER [A-Za-z]
TYPE int
|char
|bool
|float|void
|for
|do
|while
|if
|else
|return
|void
|printf
|scanf
|main
|include|stdio
PARAN "{"|"}"|"("|")"
RELOP "+"|"-"|"*"|"%"|"&"|"/"|"<"|">"
EXPR ","|";"|"\""|"."
%option yylineno
%option noyywrap
%%
{TYPE} {fprintf(yyout, " Keyword : %s\n", yytext);}
{RELOP} {fprintf(yyout, " Relational Operator : %s\n" , yytext);}
{PARAN} {fprintf(yyout, "Paranthesis : %s\n", yytext);}
{EXPR} {fprintf(yyout, " Supporters : %s\n", yytext);}
[0-9]+|[a-zA-Z][a-zA-Z0-9_]* {fprintf(yyout, "Identifier : %s\n" ,yytext);}
%%
void main(int argc, char **argv)
{
extern FILE *yyin, *yyout;
yyin = fopen("1.c", "r");
yyout = fopen("Output2.txt", "w");
yylex();
printf("Successs! ! !\n");
}
JXsKI3VuZGVmIHl5d3JhcAojZGVmaW5lIHl5d3JhcCgpIDEKI2luY2x1ZGU8c3RkaW8uaD4KaW50IHN0YXRlbWVudHMgPSAwOwppbnQgaWRzID0gMDsKaW50IGFzc2lnbiA9IDA7CmludCByZWwgPSAwOwppbnQga2V5d29yZHMgPSAwOwppbnQgaW50ZWdlcnMgPSAwOwolfQpESUdJVCBbMC05XQpMRVRURVIgW0EtWmEtel0KVFlQRSBpbnR8Y2hhcnxib29sfGZsb2F0fHZvaWR8Zm9yfGRvfHdoaWxlfGlmfGVsc2V8cmV0dXJufHZvaWR8cHJpbnRmfHNjYW5mfG1haW58aW5jbHVkZXxzdGRpbwpQQVJBTiAieyJ8In0ifCIoInwiKSIKUkVMT1AgIisifCItInwiKiJ8IiUifCImInwiLyJ8IjwifCI+IgpFWFBSICIsInwiOyJ8IlwiInwiLiIKJW9wdGlvbiB5eWxpbmVubwolb3B0aW9uIG5veXl3cmFwCiUlCntUWVBFfSB7ZnByaW50Zih5eW91dCwgIiBLZXl3b3JkIDogJXNcbiIsIHl5dGV4dCk7fQp7UkVMT1B9IHtmcHJpbnRmKHl5b3V0LCAiIFJlbGF0aW9uYWwgT3BlcmF0b3IgOiAlc1xuIiAsIHl5dGV4dCk7fQp7UEFSQU59IHtmcHJpbnRmKHl5b3V0LCAiUGFyYW50aGVzaXMgOiAlc1xuIiwgeXl0ZXh0KTt9CntFWFBSfSB7ZnByaW50Zih5eW91dCwgIiBTdXBwb3J0ZXJzIDogJXNcbiIsIHl5dGV4dCk7fQpbMC05XSt8W2EtekEtWl1bYS16QS1aMC05X10qIHtmcHJpbnRmKHl5b3V0LCAiSWRlbnRpZmllciA6ICVzXG4iICx5eXRleHQpO30KJSUKdm9pZCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKewpleHRlcm4gRklMRSAqeXlpbiwgKnl5b3V0Owp5eWluID0gZm9wZW4oIjEuYyIsICJyIik7Cnl5b3V0ID0gZm9wZW4oIk91dHB1dDIudHh0IiwgInciKTsKeXlsZXgoKTsKcHJpbnRmKCJTdWNjZXNzcyEgISAhXG4iKTsKfQ==