SP Practical 4


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 :


Pratik Boghani

Author & Editor

Life is all about the next step.

0 comments:

Post a Comment