Three Address Code For Boolean Expression Coding
Three Address Code For Boolean Expression Coding
CODING:
#include<stdio.h>
#include<conio.h>
#include<string.h>
void main()
{
FILE*in;
char temp[20],a[20],inp[20];
int i,j,k,f,f1;
clrscr();
i=0;
in=fopen("inp.txt","r");
while((fscanf(in,"%s\n",inp))!=EOF)
{
printf("\n%s",inp);
}rewind(in);
printf("\n\nThree address code\n");
while((fscanf(in,"%s\n",inp))!=EOF)
{
if((inp[i]=='i')&&(inp[++i]=='f'))
{
printf("1 if");
i=i+2;
do
{
printf("%c",inp[i]);
i++;
}
while(inp[i]!=')');
printf("goto 5\n");
fscanf(in,"%s",a);
f=1;
}
else if(strcmp(inp,"else")==0)
{
i=0;
fscanf(in,"%s",temp);
while(temp[i]!='=')
{
i++;
}
k=i;
printf("2 t=");
for(j=k+1;j<strlen(temp)-1;j++)
{
printf("%c",temp[j]);
}
printf("\n3%c=t",temp[0]);
If(1<10)
a=c+d;
else
a=c-d;
OUTPUT:
if(1<10)
a=c+d;
else
a=c-d;
1 if 1<10 goto 5
2 t=c-d
3 a=t
4 goto 7
5 t1=c+d
6 a=t1