Practical : 4
Subject : System Programming
Aim : C++ program to remove the Left Recursion from a given grammar.
Source Code :
#include<stdio.h>
#include<string.h>
void main()
{
char
a[20],b[20],c[20],nt;
int i,j;
printf("\nenter
equation :");
gets(c);
nt=c[0];
i=3;
if(nt==c[i])
printf("left
recursion\n");
else
printf("not");
for(i=3;c[i]!='\0';i++)
{
while(c[i]!='|')
{
if(c[i]==nt)
{
i++;
printf("%c`
-> ",nt);
while(c[i]!='|')
{
printf("%c",c[i]);
if(c[i]=='\0')
{
printf("%c`\n",nt);
printf("%c
-> E",nt);
exit(0);
}
i++;
}
printf("%c`\n",nt);
}
else
{
printf("%c
-> ",nt);
while(c[i]!='|')
{
printf("%c",c[i]);
if(c[i]=='\0')
{
printf("%c`\n",nt);
printf("%c
-> E",nt);
exit(0);
}
i++;
}
printf("%c`\n",nt);
}
}
}
printf("%c->E",nt);
}
Output :
0 comments:
Post a Comment