%{
%}
identifier [a-zA-Z]*
digit [0-9]
letter [a-zA-Z]
int com = 0,com1 = 0;
%%
#.* { printf("\n%s is PRE PROCESSOR DIRECTIVE",yytext); }
int
|float|if
{ if
(!com
) printf
("\n keyword
%s ",yytext); }"/*" { com=1; printf("\n Comments"); }
"*/" { com=0; }
[a-z]+ { if(!com) printf("\n varibles %s ",yytext); }
{identifier}\( { if(!com) printf("\n function %s",yytext); }
\{ { if(!com) printf("\n block begines "); }
\} { if(!com) printf("\n block ends "); }
\"
.*\"
{ if
(!com
) printf
("\n string
is %s ",yytext); }[0-9]+ { if
(!com
) printf
("\n
number is %s ",yytext); } \\ { if(!com) printf("\n\t"); }
= { if(!com) printf("\n assigment %s ",yytext); }
\<=|\>=|\>|\<|\== { if(!com) printf("\n relational operators %s
",yytext); }
%%
main(argc,argv)
int argc;
char **argv;
{
if(argc>1)
{
FILE *file;
file=fopen(argv[1],"r");
if(!file)
{
printf
("couldnot
open %s",argv[1]);exit(0);
}
yyin=file;
}
yylex();
}
int yywrap()
{
return(0);
}
OUTPUT:
$ lex cse.l
$ cc cse.yy.c
$/a.out temp.c
temp.c
#include<stdio.h>
main()
{
int a,b,c;
a=1;
b=2;
c=a+b;
printf("Sum:%d",c);
}
#include
<stdio
.h
>is PRE PROCESSOR DIRECTIVE
function main
block begines
keyword int
variables a b c
assignment = = =
function printf
block ends
JXsgCiV9CmlkZW50aWZpZXIgW2EtekEtWl0qCmRpZ2l0IFswLTldCmxldHRlciBbYS16QS1aXQogaW50IGNvbSA9IDAsY29tMSA9IDA7CiUlCiMuKiB7IHByaW50ZigiXG4lcyBpcyBQUkUgUFJPQ0VTU09SIERJUkVDVElWRSIseXl0ZXh0KTsgfQppbnR8ZmxvYXR8aWYgeyBpZighY29tKSBwcmludGYoIlxuIGtleXdvcmQgJXMgIix5eXRleHQpOyB9CiIvKiIgeyBjb209MTsgcHJpbnRmKCJcbiBDb21tZW50cyIpOyB9CiIqLyIgeyBjb209MDsgfQpbYS16XSsgeyBpZighY29tKSBwcmludGYoIlxuIHZhcmlibGVzICVzICIseXl0ZXh0KTsgfQp7aWRlbnRpZmllcn1cKCB7IGlmKCFjb20pIHByaW50ZigiXG4gZnVuY3Rpb24gJXMiLHl5dGV4dCk7IH0KXHsgeyBpZighY29tKSBwcmludGYoIlxuIGJsb2NrIGJlZ2luZXMgIik7IH0KXH0geyBpZighY29tKSBwcmludGYoIlxuIGJsb2NrIGVuZHMgIik7IH0KXCIuKlwiIHsgaWYoIWNvbSkgcHJpbnRmKCJcbiBzdHJpbmcgaXMgJXMgIix5eXRleHQpOyB9ClswLTldKyB7IGlmKCFjb20pIHByaW50ZigiXG4gbnVtYmVyIGlzICVzICIseXl0ZXh0KTsgfQpcXCB7IGlmKCFjb20pIHByaW50ZigiXG5cdCIpOyB9Cj0geyBpZighY29tKSBwcmludGYoIlxuIGFzc2lnbWVudCAlcyAiLHl5dGV4dCk7IH0KXDw9fFw+PXxcPnxcPHxcPT0geyBpZighY29tKSBwcmludGYoIlxuIHJlbGF0aW9uYWwgb3BlcmF0b3JzICVzIAoiLHl5dGV4dCk7IH0KJSUKbWFpbihhcmdjLGFyZ3YpCmludCBhcmdjOwpjaGFyICoqYXJndjsKewppZihhcmdjPjEpCnsKRklMRSAqZmlsZTsKZmlsZT1mb3Blbihhcmd2WzFdLCJyIik7CmlmKCFmaWxlKQp7CnByaW50ZigiY291bGRub3Qgb3BlbiAlcyIsYXJndlsxXSk7CmV4aXQoMCk7Cn0KeXlpbj1maWxlOwp9Cnl5bGV4KCk7Cn0KaW50IHl5d3JhcCgpCnsKcmV0dXJuKDApOwp9Ck9VVFBVVDoKJCBsZXggY3NlLmwKJCBjYyBjc2UueXkuYwokL2Eub3V0IHRlbXAuYwp0ZW1wLmMKI2luY2x1ZGU8c3RkaW8uaD4KbWFpbigpCnsKaW50IGEsYixjOwphPTE7CmI9MjsKYz1hK2I7CnByaW50ZigiU3VtOiVkIixjKTsKfQojaW5jbHVkZTxzdGRpby5oPmlzIFBSRSBQUk9DRVNTT1IgRElSRUNUSVZFCmZ1bmN0aW9uIG1haW4KYmxvY2sgYmVnaW5lcwprZXl3b3JkIGludAp2YXJpYWJsZXMgYSBiIGMKYXNzaWdubWVudCA9ID0gPQpudW1iZXIgaXMgMSAyCmZ1bmN0aW9uIHByaW50ZgpibG9jayBlbmRzCg==