Thursday, January 21, 2010

TOP DOWN PARSER

#include stdio.h
#include conio.h
#include string.h
#include ctype.h

int main()
{
char G[2][15]={"S->cAd/cd",
"A->ac/ab" };

char str[20],n[2];
int i,j,k,l,m,t;
int p,q;
clrscr();
printf("Grammar \n");
for(p=0;p<2;p++)
{
for(q=0;q<15;q++)
printf("%c",G[p][q]);
printf("\n\n");
}

printf("Enter the string to be parsed : ");
gets(str);
for(i=0,k=3,l=0;str[i]!='\0';k++)
{
if(G[l][k]!=str[i])
{
if(isupper(G[l][k]))
{
t=k;
m=i;
k=2;
l++;
}
if(G[l][k]=='/'||G[l][k]=='\0'&&l!=0)
{
l--;
k=t;
}
else if(k!=2)
{
for(j=k;G[l][j]!='/'&&G[l][j]!='\0';j++)
if(G[l][j]=='\0')
{
if(i==0)
{
printf("Not Accepted");
exit(0);
}
else
k=2;
}
if(l!=0)
i=m;
k=j;
} }
else
i++;

}
if(str[i]=='\0'&&G[l][k]=='/'||G[l][k]=='\0'&&l==0)
printf("Accepted");
else
printf("Not Accepted");
return 0;
}

OUTPUT:
Grammar
S->cAd/cd
A->ac/ab
Enter the string to be parsed : cabd
Accepted


Grammar
S->cAd/cd
A->ac/ab
Enter the string to be parsed : aaa
Not Accepted

No comments:

Post a Comment

  © For Movies Click Here Softwares by For Games Click Here 2010

Back to TOP