Friday 31 July 2015

C D PROGRAM RECURSIVE DESCENT PARSING



#include<stdio.h>
 #include<conio.h>
 char str[20];
 int flag=1;
 int i=0;
 void main()
 {
       int S();
       clrscr();
       printf("enter input string: ");
       gets(str);
       S();
       if(flag==1&&str[i]=='\0')
             printf("\ngiven string ' %s ' is completely parsed",str);
       else
             printf("sorry! not parsed");
       getch();
 }
 int S()
 {
       int A();
       if(str[i]=='a')
       {
             i++;
             A();
             if(str[i]=='d')
             {
                   i++;
                   return 0;
             }
             else
            {
                   flag=0;
                   return 0;
             }
       }
 }
 int A()
 {
       if(str[i]=='a')
       {
             i++;
             if(str[i]=='b')
             {
                   i++;
                   return 0;
             }
             else
             {
                   A();
                   return 0;
            }
    }
   else
   {
       // flag=1;
        return 0  }
}

No comments:

Post a Comment