%{
#include<stdio.h>
#include<conio.h>
int Upper = 0;
int Lower = 0;
int Logical = 0;
int Datatype = 0;
int ident = 0;
int sym = 0;
%}
%%
[&&]|[|][|] { printf("Logical Operator\t"); Logical++;}
int
|char
|double
|float|bool
|long
|short
{ printf
("Datatype\t"
); Datatype
++;}else\ if|if|else|while|do|main { printf("Identifier\t"); ident++;}
[A-Z] { printf("Uppercase\t"); Upper++;}
[a-z] { printf("Lowercase\t"); Lower++;}
["] { printf("Quotes\t"); sym++;}
[,] { printf("Comma\t"); sym++;}
[;] { printf("Semi Colon\t"); sym++;}
[+|-|*|/|<<|>>|^
|!] { printf
("Operator"
); op++;} \ { printf("Space\t"); }
[^A-Za-z\n] { printf("Unidentified\t"); }
%%
int yywrap()
{
return 1;
}
int main()
{
printf("Please enter the string\n");
yylex();
printf("Uppercase: %d, Lowercase: %d, Logical: %d, Datatype: %d, Identifier: %d, Number: %d, Symbol: %d, Operator: %d", Upper, Lower, Logical, Datatype, ident, number, sym, op);
getch();
return 0;
}
JXsKI2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8Y29uaW8uaD4KaW50IFVwcGVyID0gMDsKaW50IExvd2VyID0gMDsKaW50IExvZ2ljYWwgPSAwOwppbnQgRGF0YXR5cGUgPSAwOwppbnQgaWRlbnQgPSAwOwppbnQgbnVtYmVyID0gMDsKaW50IHN5bSA9IDA7CmludCBvcCA9IDA7CiV9CgolJQoKWyYmXXxbfF1bfF0geyBwcmludGYoIkxvZ2ljYWwgT3BlcmF0b3JcdCIpOyBMb2dpY2FsKys7fQppbnR8Y2hhcnxkb3VibGV8ZmxvYXR8Ym9vbHxsb25nfHNob3J0IHsgcHJpbnRmKCJEYXRhdHlwZVx0Iik7IERhdGF0eXBlKys7fQplbHNlXCBpZnxpZnxlbHNlfHdoaWxlfGRvfG1haW4geyBwcmludGYoIklkZW50aWZpZXJcdCIpOyBpZGVudCsrO30KW0EtWl0geyBwcmludGYoIlVwcGVyY2FzZVx0Iik7IFVwcGVyKys7fQpbYS16XSB7IHByaW50ZigiTG93ZXJjYXNlXHQiKTsgTG93ZXIrKzt9ClswLTldIHsgcHJpbnRmKCJOdW1iZXJcdCIpOyBudW1iZXIrKzt9ClsiXSB7IHByaW50ZigiUXVvdGVzXHQiKTsgc3ltKys7fQpbLF0geyBwcmludGYoIkNvbW1hXHQiKTsgc3ltKys7fQpbO10geyBwcmludGYoIlNlbWkgQ29sb25cdCIpOyBzeW0rKzt9ClsrfC18KnwvfDw8fD4+fF58IV0geyBwcmludGYoIk9wZXJhdG9yIik7IG9wKys7fQpcICB7IHByaW50ZigiU3BhY2VcdCIpOyB9ClteQS1aYS16XG5dIHsgcHJpbnRmKCJVbmlkZW50aWZpZWRcdCIpOyB9CgolJQoKaW50IHl5d3JhcCgpCnsKCXJldHVybiAxOwp9CgppbnQgbWFpbigpCnsKCXByaW50ZigiUGxlYXNlIGVudGVyIHRoZSBzdHJpbmdcbiIpOwoJeXlsZXgoKTsKCXByaW50ZigiVXBwZXJjYXNlOiAlZCwgTG93ZXJjYXNlOiAlZCwgTG9naWNhbDogJWQsIERhdGF0eXBlOiAlZCwgSWRlbnRpZmllcjogJWQsIE51bWJlcjogJWQsIFN5bWJvbDogJWQsIE9wZXJhdG9yOiAlZCIsCVVwcGVyLCBMb3dlciwgTG9naWNhbCwgRGF0YXR5cGUsIGlkZW50LCBudW1iZXIsIHN5bSwgb3ApOwoJZ2V0Y2goKTsKCXJldHVybiAwOwoKfQ==