Practical-2 Write A Program To Implement The Lexical Analyzer

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 4

Name: DHIMANT THANKI

ENROLL: 150373131008

SUBJECT: SP
PRACTICAL-2

AIM: Write a program to implement the lexical analyzer.


// INPUT.C

FILE

#include <stdio.h>
main(
a=10;
getch
// KEY.C FILE
int
void
main
char
if
for
while
else
printf
scanf
FILE
include
stdio.h
conio.h
// OPER.C FILE
( open bracket
) close bracket
{ CURLY open braces
} CURLY close braces
< less than
> greater than
" double quotes
' single quotes
: colon
; semicolon
# preprocessor
= equal
== equal equal
% modulo
& ampersand
* multiply

Name: DHIMANT THANKI


ENROLL: 150373131008

SUBJECT: SP

+ add
- sub
\ backslash
/ slash
// INTER.C FILE
#
include
main (
a
=
10
getch

<
$
;

stdio

//LEX.C FILE
#include<stdio.h>
#include<conio.h>
void main()
{
FILE *fi,*fo,*fop,*fk;
int flag=0,i=1;
char c,t,a[15],ch[15],file[20];
clrscr();
printf("Enter the file name : ");
scanf("%s",file);
fi=fopen(file,"r");
fo=fopen("inter.c","w");
fop=fopen("oper.c","r");
fk=fopen("key.c","r");
c=getc(fi);
while(!feof(fi))
{
if(isalpha(c)||isdigit(c))
fputc(c,fo);
else
{
if(c=='\n')
fprintf(fo,"\t$\t");
else
fprintf(fo,"\t%c\t",c);
}
c=getc(fi);
}
fclose(fi);
fclose(fo);
fi=fopen("inter.c","r");
printf("\t\tLEXICAL ANALYZER PRACT-1\n");

>

Name: DHIMANT THANKI


ENROLL: 150373131008

fscanf(fi,"%s",a);
printf("\nline : %d\n",i++);
while(!feof(fi))
{
if((strcmp(a,"$")==0))
{
printf("\nline : %d\n",i++);
fscanf(fi,"%s",a);
}
fscanf(fop,"%s",ch);
while(!feof(fop))
{
if(strcmp(ch,a)==0)
{
fscanf(fop,"%s",ch);
printf("\t\t%s\t:\t%s\n",a,ch);
flag=1;
}
fscanf(fop,"%s",ch);
}
rewind(fop);
fscanf(fk,"%s",ch);
while(!feof(fk))
{
if(strcmp(ch,a)==0)
{
fscanf(fk,"%s",ch);
printf("\t\t%s\t:\tkeyword\n",a);
flag=1;
}
fscanf(fk,"%s",ch);
}
rewind(fk);
if(flag==0)
{
if(isdigit(a[0]))
printf("\t\t%s\t:\tconstant\n",a);
else
printf("\t\t%s\t:\tidentifier\n",a);
}
flag=0;
fscanf(fi,"%s",a);
}
getch();
}

SUBJECT: SP

Name: DHIMANT THANKI


ENROLL: 150373131008

SUBJECT: SP

You might also like