6.26.2010

REC-DESCENT PARSER

#include
#include
#include
char ip[30];
int v=0;
void T();
void Eprime();
void F();
void Tprime();
void E()
{
T();
Eprime();
return;
}
void T()
{
F();
Tprime();
return;
}
void Eprime()
{
if(ip[v]=='+')
{
v++;
T();
Eprime();
}
return;
}
void F()
{
if(ip[v]=='(')
{
v++;
E();
if(ip[v]==')')
{
v++;
}
else
{
cout<<"Error.....";
exit(0);
}
}
else if(ip[v]=='i' &&ip[v+1]=='d')
{
v=v+2;
}
else
{
cout<<"Error.......";
exit(0);
}
return;
}
void Tprime()
{
if(ip[v]=='*')
{
v++;
F();
Tprime();
}
return;
}
void main()
{
clrscr();
cout<<"Enter input string: ";
cin>>ip;
E();
cout<<"\n\nString succesfully parsed";
getch();
return;
}

No comments: