You are on page 1of 4

EX.

NO:3

LEXICAL ANALYSIS USING C


PROGRAM:
#include<stdio.h>
#include<conio.h>
#include<string.h>
struct lex
{
char keyword[100],oper[100],prg[100],num[100];
}a[100];
void main()
{
int i,j,len;
FILE *fp;
clrscr();
fp=fopen("keyw.txt","r");
i=0;
while(!feof(fp))
{
fscanf(fp,"%s",&a[i].keyword);
printf("%s",&a[i].keyword);
i=i+1;
}
fclose(fp);
fp=fopen("opr.txt","r");
i=0;
while(!feof(fp))
{
fscanf(fp,"%s",&a[i].oper);
printf("%s",&a[i].oper);
i=i+1;
}
fclose(fp);
fp=fopen("num.txt","r");
i=0;
while(!feof(fp))
{
fscanf(fp,"%s",&a[i].num);
printf("%s",&a[i].num);
i=i+1;
}
fclose(fp);
fp=fopen("prg.c","r");
i=0;

while(!feof(fp))
{
fscanf(fp,"%s",&a[i].prg);
printf("%s\n",&a[i].prg);
i=i+1;
}
printf("\nKeywords");
for(i=0;i<feof(fp);i++)
{
for(j=0;j<feof(fp);j++)
{
if(strcmp(a[i].prg," ")!=0)
{
if(strcmp(a[i].keyword,a[j].prg)==0)
{
printf("\n%s",a[j].prg);
}
}
}
delay(400);
}
printf("\nOperators");
for(i=0;i<feof(fp);i++)
{
for(j=0;j<feof(fp);j++)
{
if(strcmp(a[i].prg," ")!=0)
{
if(strcmp(a[i].oper,a[j].prg)==0)
{
printf("\n%s",a[j].prg);
}
}
}
delay(400);
}
printf("\nNUMBERS");
for(i=0;i<feof(fp);i++)
{
for(j=0;j<feof(fp);j++)
{
if(strcmp(a[i].prg," ")!=0)
{
if(strcmp(a[i].num,a[j].prg)==0)
{
printf("\n%s",a[j].prg);
}

}
}
delay(400);
}
getch();
}

OUTPUT:

# include <stdio.h>
void main ( )
{
int a , b ;
a=5;
b=a*5;
printf ( " % d " , b ) ;
}
KEYWORDS
include
void
main
int
printf
OPERATORS
#
<
>
(
)
{
}
,
,
;
;
;
;
=
=
*

%
NUMBERS
5
5

You might also like