You are on page 1of 6

#i

ncl
ude<stdi
o.h>
#i
ncl
ude<stdl
ib.
h>
#i
ncl
ude<conio.
h>
#i
ncl
ude<stri
ng.h>

i
ntpp=0,
kp=0,ev=0,mdtp=0,
kpdt
p=0,
sst
p=0;
charpnt
[3]
[10]
,evt
[5],
ssn[
5];

structkpdtab
{
i
ntindex;
char*para;
charval[
10];
}kpd;

v
oidssntab(charvar[
])
{
var=st
rtok(v
ar,"
."
);
str
cpy(ssn,var
);
sstp++;
}

v
oidev t
ab(charvar [
])
{
var=str
tok(v
ar ,"
\n")
;
char*ptr;
var=str
tok(var,"
&");
//pri
ntf(
"%s",
v ar)
;

stati
cintx=0;
strcpy(
evt,
var
);
x+=1;
ev+=1;
}

v
oidpntab(charvar[
])
{
st
aticinti=0;
i
ntl,x,
mark=0;

char*ptr;
var=st
rtok(var,
"&"
);
str
tok(v
ar ,
",
");

l
=strl
en(var )
;
f
or(x=0;x<=l;
x++)
{
i
f(var[x]
=='='
)
{
mark=1;
}
}
i
f(
mar k==0)
{
strcpy(pnt
[i
],
var
);
pp+=1;
i
++;

}
else
{
ptr
=strtok( var,"
=");
str
cpy (
pnt [i]
,ptr)
;
kpd.i
ndex=1;
kpd.para=pnt [
i]
;
kp++;
i
++;
while(pt r!
=NULL)
{
ptr =strtok(NULL,"
=")
;
strt ok(ptr,
"\n")
;
strt ok(ptr,
"");
if
( pt r
!=NULL)
{
strcpy (
kpd.v al
,
ptr
);
}
}
}
}
i
ntcheckpara(charvar[
])
{
var=st
rtok(var
,"
(")
;
var=st
rtok(var
,"
&");
var=st
rtok(var
,"
,"
);
var=st
rtok(var
,"
+");
var=st
rtok(var
,"
.")
;
var=st
rtok(var
,"
)")
;

i
f(
strcmp(var,
evt)
==0)
return7;
i
nti;
f
or(i
=0;i
<(pp+kp);
i++)
{
if
( st
rcmp(var
,pnt[
i]
)==0)
{
r
etur
ni+1;
}
}
i
f(
strcmp(var,
ssn)==0)
{
return40;
}
return0;
}

v
oidcheckplus(charvar[
])
{
i
nti=0,j
,
resul t
;
charstr
[2] [
10];
char*ptr=strt
ok(v
ar,
"+")
;
whil
e(ptr!=NULL)
{
st
rcpy
(str[
i]
,
ptr
);
pt
r=st
rtok(
NULL,"
+")
;
i
++;
}
f
or(
j=0;j
<i;
j++)
{
result
=checkpar a(*(st
r+j
));
if
(result==7)
{
pr i
ntf(
"(E,1)
");
}
elseif(r
esult!=7&&result
!=40&&r
esul
t!
=0)
{
pr i
ntf(
"(p,%d)"
,r
esult)
;
}

el
se
pri
ntf
("%s",
*(
str
+j)
);
i
f(
j==0&&i!=1)
pri
ntf(
"+"
);
}
i
=0;
}

i
ntmain()
{
FILE*f1;
i
nti=0,j,
flag=0, resul t,symbol =0,l
ine=0,l
,
plus=0,st
atement_no=0;
charstr[30] ,var 1[10] [10],deli
m[]="",
deli
m1[ ]
="\n"
,macro_name[10],
plus_v
al[
2][
10]
;
f1=fopen( "C: /User s/ Vij
ayRobi nson/Desktop/sposlab/i
nput1.
txt"
,"
r"
) ;
while(!
feof (f1) )
{
fgets( st r,
50, f1) ;
char* pt r=st rtok( str
,deli
m) ;
whi l
e( pt r!=NULL)
{
str cpy (v ar1[ i
],
ptr);
pt r=st rtok( NULL, deli
m) ;
i++;
}
for(j
=0; j<i ;
j++)
{
plus=0;
str tok( var 1[j],
deli
m1) ;
//pr intf ("%s\ t",
var1[j
])
;
if(strcmp( "MACRO" ,
var1[j
])
==0)
{
flag=1;
mdt p=l ine+1;
br eak;
}
if(flag==1)
{
str cpy (macr o_name, *(
var1+0));
intk=1;
whi l
e( k<i)
{
pntab(
*(v
ar1+k)
);
k++;
}
fl
ag=0;
break;
}
i
f(
strcmp( *(v ar1+j),
"LCL" )==0)
{
pr intf("%s" ,*(
var 1+0) );
ev tab( *( var1+1) );
resul t=checkpar a(*(var 1+1));
if(resul t==7)
{
printf("\t(
E,1) "
);
}
br eak;
}
i
f(
strcmp( *(v ar1+1),"SET" ) ==0)
{
resul t=checkpar a( *(
v ar1+0));
if(resul t==7)
{
strtok( *(v
ar 1+2) ,"\n")
;
print f(
"(E,
1) \t%s\ t",
*(var1+1))
;
checkpl us(* (
v ar1+2) );
}
br eak;
}
i
f(
strcmp( *(v ar1+j),
"AI F")
==0)
{
if(j==0)
{
print f(
"%s\ t",
*(var 1+j),
*(var
1+1))
;
resul t=checkpar a( *(
var1+1));
if(result==7)
pri
ntf("(E,1)\t");
print f(
"%s\ t",
*(var 1+2));
resul t=checkpar a( *(
var1+3));
print f(
"(p,
%d) \t"
,result);
strtok( *(v
ar 1+4) ,"\n")
;
resul t=checkpar a( *(
var1+4));
if(result==40)
pri
ntf("(s,1)");
}
br eak;
}
l
=str
len( *(var 1+j));
i
ntm;
f
or(m=0; m<l ;m++)
{
if(var 1[j][
m] =='+')
{
plus=1;
checkpl us(* (
v ar1+j )
);
}
}
i
f(
plus==1)
break;
if(
plus==0)
{
result=checkpara(*
(var
1+j
));
}
if(
result!
=7&&result!
=0&&resul
t!
=40)
printf
("(p,
%d)",
resul
t);

i
f(r
esult
==0&&st
rcmp(*(v
ar 1+0),"MOVER" )!
=0&&str
cmp(*(
var1+0)
,"AI
F")
!=0&&st
rcmp(
*(v
ar1+0)
,"
M
END")!
=0&&symbol
!=1)
{
ssnt ab(*(var1+0) )
;
stat ement _no=line-
1;
symbol =1;
}
i
f(
result==0&&st r
cmp( str
tok(
*(v
ar1+j
),
".
")
,ssn)
!=0)
{
print f
("%s\t",
*(var1+j
));
}
i
f(
result==40)
{
print f
("(
s,1)\n")
;
}
}

l
ine++;
i
f(l
ine>2)
pri
ntf(
"\n"
);
i
=0;
}
fclose(f1);
FILE* f2;
f2=f open("C:/
Users/Vij
ayRobi nson/ Deskt op/sposlab/t
ables.t
xt"
,"
w");
fprintf(
f2,
"pntab\n")
;
fprintf(
f2,
"index\t
paramet ers\n");
for(i=0;
i<3;i
++)
{
fpri
ntf
(f2,"%d\t%s\ n",
i+1,pnt[i]
);
}
fpri
ntf(
f2,
"Evtab\ n"
);
fpri
ntf(
f2,
"i
ndex\ tparamet ers\ n")
;
fpri
ntf(
f2,
"1\t%s\ n"
,evt);
fpri
ntf(
f2,
"SSNt ab\n");
fpri
ntf(
f2,
"i
ndex\ tparamet ers\ n")
;
fpri
ntf(
f2,
"1\t%s\ n"
,ssn) ;
fpri
ntf(
f2,
"KPDt ab\n");
fpri
ntf(
f2,
"i
ndex\ tparamet ers\ tv
alues\ n"
);
fpri
ntf(
f2,
"%d\ t%s\t\t%s\n" ,
kpd.index,kpd.par
a,kpd.v
al);
fpri
ntf(
f2,
"SStab\ n")
;
fpri
ntf(
f2,
"statementnumber \n")
;
fpri
ntf(
f2,
"%d\ n",
statement _no);
fpri
ntf(
f2,
"MNT\ n")
;
fpri
ntf(
f2,
"name_ of
_ macr o\t#pp\ t#kp\t#ev\t
#mdt p\t
#kpdtp\t
#sst
p\n"
);
f
pri
ntf(
f2,
"%s\t
%d\
t%d\
t%d\
t%d\
t%d\
t%d\
n",
macr
o_name,
pp,
kp,
ev,
mdt
p,kpd.
index,
sst
p);
fcl
ose(f
2);
}

You might also like