You are on page 1of 3

#include<stdio.

h>
#include<stdlib.h>
#include<string.h>
#include <ctype.h>
#include<fstream.h>
struct MNT
{
char name[30];
int add;
}mnt[10];
struct MDT
{
char def[30];
}mdt[10];
struct OPRA
{
char sym[10];
int num;
}op[6];
int i,cnt,flag=0,mptr=0,nptr=0,optr=0;
void insert(char s1[],char s2[],char s3[])
{
strcpy(op[optr].sym,s1);
op[optr].num=optr;
optr++;
strcpy(op[optr].sym,s2);
op[optr].num=optr;
optr++;
strcpy(op[optr].sym,s3);
op[optr].num=optr;
optr++;
}
int search(char s[])
{
for(i=0;i<optr;i++)
{
if(strcmp(s,op[i].sym)==0)
{
return op[i].num;
}
}
return -1;

}
int main()
{
char fname[20],buffer[50],s1[10],s2[10],s3[10],s4[10],lable[10],temp[12]
;
FILE *fp;
printf("\n\t ENTER FILE NAME TO READ : ");
scanf("%s",fname);
fp=fopen(fname,"r");
strcpy(buffer,"");
while(fgets(buffer,40,fp)!=0)
{
for(i=0;i<strlen(buffer);i++)
{
if(!isalnum(buffer[i]))
{
buffer[i]=' ';
}
else
{
buffer[i]=toupper(buffer[i]);
}
}
cnt=sscanf(buffer,"%s%s%s%s",s1,s2,s3,s4);
if(strcmp(s1,"MACRO")==0)
{
flag=1;
optr=0;
}
else
{
if(flag==1)
{
strcpy(mdt[mptr].def,buffer);
strcpy(mnt[nptr].name,s1);
mnt[nptr].add=mptr;
insert(s2,s3,s4);
mptr++;

nptr++;

flag=0;
}
else
{
if(strcmp(s1,"MEND")!=0)
{
strcpy(mdt[mptr].def,s1);
strcat(mdt[mptr].def," ");
strcat(mdt[mptr].def,"#");
strcat(mdt[mptr].def,itoa(search(s2),tem

p,10));
strcat(mdt[mptr].def," ,");
strcat(mdt[mptr].def,"#");
strcat(mdt[mptr].def,itoa(search(s3),tem
p,10));
}
else
{
strcpy(mdt[mptr].def,s1);
}
mptr++;
strcpy(mnt[nptr].name,"-1");
mnt[nptr].add=mptr;
}
}
strcpy(buffer,"");
}
FILE *fp1,*fp2;
fp1=fopen("mdt.txt","w");
for(i=0;i<mptr;i++)
{
fprintf(fp1,"\n\n %s",mdt[i].def);
}
fp2=fopen("mnt.txt","w");
for(i=0;i<=nptr;i++)
{
fprintf(fp2,"\n\n %s \t %d",mnt[i].name,mnt[i].add);
}
return 0;
}

You might also like