Program for PDA to CFA conversion #include #include #include #include #include struct pdastate { int type; char sym; int trno; int trans[20]; char tsym[20]; }; class pda { public: int n; pdastate s[30]; pda(void) { n=0; } void show(void); }; void pda::show(void) { pdastate p; clrscr(); for(int i=0;i=8;i++,j--) { gotoxy(xx,1); cout<>vno; for(i=0;i>v[i]; } cout<<" " Enter The No Of Terminal Symbols ":="; cin>>tno; for(i=0;i>t[i]; } cout<<" " Enter The No Of Productions ":="; cin>>n; int count=0; for(i=0;i>vpr[i]; for(int j=0;j A-->b , <2> a-->BC ":="; cin>>p[count].type; if(p[count].type==1) { cout<<" "< "; cin>>p[count].p.a; } else { cout<<" "< "; cin>>p[count].p.b[0]; cin>>p[count].p.b[1]; } count++; } } } pda cnf:: mkpda(void) { pda p1; p1.s[p1.n].type=0; p1.s[p1.n].trno=1; p1.s[p1.n].trans[0]=1; p1.s[p1.n].tsym[0]=0; p1.n++; p1.s[p1.n].type=1; p1.s[p1.n].sym=v[0]; p1.s[p1.n].trno=1; p1.s[p1.n].trans[0]=2; p1.s[p1.n].tsym[0]=0; p1.n++; p1.s[p1.n].type=2; p1.s[p1.n].trno=1; p1.s[p1.n].trans[0]=3; p1.s[p1.n].tsym[0]=238; p1.n++; p1.s[p1.n].type=3; p1.s[p1.n].trno=1; p1.s[p1.n].trans[0]=4; p1.s[p1.n].tsym[0]=238; p1.n++; p1.s[p1.n].type=4; p1.s[p1.n].trno=0; p1.n++; int cnt=p1.s[2].trno; int c1=0; prod temp; for(int i=0;i
No comments: