Code:
#include<stdio.h>
int flag=0;
char l;
void E();
void match(char
t) {
if(l==t)
l=getchar();
else
printf("ERROR!");
}
void F() {
if(l>='a'
&& l<='z')
match(l);
else if(l==‘(')
{
match('(');
E();
l=getchar();
}
else
flag=1;
}
void T1() {
if(l==‘*') {
match('*');
F();
T1();
}
else
return;
}
void T() {
F();
T1();
} void E1() {
if(l==‘+')
{
match('+');
T();
E1();
}
else
{return;}
}
void
E() {
T();
E1();
}
int
main() {
printf("\nE->E+T|T\n");
printf("\nT->T*F|F\n");
printf("\nF->(E)|i\n\n");
printf("ENTER
THE INPUT STRING :-\n");
l=getchar();
E();
if(l=='$'
&& flag==0)
printf("\nPARSING
COMPLETED !!\n ENTER STRING IS CORRECT\n");
else
printf("ERROR!!!");
return
0;
}
Input & Output :
[root@SAR085
Desktop]# gcc sp_7.c
[root@SAR085
Desktop]# ./a.out
E->E+T|T
T->T*F|F
F->(E)|i
1.
ENTER THE
INPUT STRING :-
a*b*c$
PARSING
COMPLETED !!
ENTER
STRING IS CORRECT
2.
ENTER THE
INPUT STRING :-
a**a
ERROR!!!
No comments:
Post a Comment