±¾ÎĵµÈç¶ÔÄãÓаïÖú£¬Çë°ïæÏÂÔØÖ§³Ö£¡
char p[50][50]; int i,j,k;
printf(\ÇëÊäÈëÎÄ·¨µÄ·ÇÖÕ½á·ûºÅ´®£º\getchar();
scanf(\ i=strlen(vn); memcpy(n,vn,i);
n[i]='\\0';
printf(\ÇëÊäÈëÎÄ·¨µÄÖÕ½á·ûºÅ´®£º\getchar();
scanf(\ i=strlen(vt); memcpy(t,vt,i);
t[i]='\\0'; scanf(\getchar();
printf(\ÇëÊäÈëÎÄ·¨²úÉúʽµÄÌõÊý£º\getchar(); { }
if(p[j][1]!='-'||p[j][2]!='>') {
printf(\return('\\0'); validity=0;
printf(\ÇëÊäÈëÎÄ·¨µÄµÚ%dÌõ£¨¹²%dÌõ£©²úÉúʽ£º\scanf(\
printf(\ÇëÊäÈëÎÄ·¨µÄ¿ªÊ¼·ûºÅ£º\
scanf(\ for(j=1;j<=i;j++)
getchar(); for(j=0;j<=i-1;j++)
} /*¼ì²âÊäÈë´íÎó*/ for(k=0;k<=i-1;k++)
{ /*·Ö½âÊäÈëµÄ¸÷²úÉúʽ*/ if(p[k][3]==p[k][0]) recur(p[k]); }
/******************************************* ½«µ¥¸ö·ûºÅ»ò·ûºÅ´®²¢ÈëÁíÒ»·ûºÅ´®
********************************************/
} return(s);
else
non_re(p[k]);
±¾ÎĵµÈç¶ÔÄãÓаïÖú£¬Çë°ïæÏÂÔØÖ§³Ö£¡
void merge(char *d,char *s,int type)
{ /*dÊÇÄ¿±ê·ûºÅ´®£¬sÊÇÔ´´®£¬type£½1£¬Ô´´®Öеġ® ^ ¡¯Ò»²¢²¢ÈëÄ¿´®£» }
/******************************************* ÇóËùÓÐÄÜÖ±½ÓÍÆ³ö^µÄ·ûºÅ
********************************************/ void emp(char c)
{ /*¼´ÇóËùÓÐÓÉ¡® ^ ¡¯ÍƳöµÄ·ûºÅ*/ }
/******************************************* Çóijһ·ûºÅÄÜ·ñÍÆ³ö¡® ^ ¡¯
char temp[10]; int i;
for(i=0;i<=count-1;i++) { }
if(right[i][0]==c&&strlen(right[i])==1) { }
temp[0]=left[i]; temp[1]='\\0'; merge(empty,temp,1); emp(left[i]);
type£½2£¬Ô´´®Öеġ® ^ ¡¯²»²¢ÈëÄ¿´®*/ for(i=0;i<=strlen(s)-1;i++) { }
else { }
for(j=0;;j++) {
if(j break; { d[j]=s[i]; d[j+1]='\\0'; break; } ; int i,j; if(type==2&&s[i]=='^') if(j==strlen(d)) ±¾ÎĵµÈç¶ÔÄãÓаïÖú£¬Çë°ïæÏÂÔØÖ§³Ö£¡ ********************************************/ int _emp(char c) { /*ÈôÄÜÍÆ³ö£¬·µ»Ø1£»·ñÔò£¬·µ»Ø0*/ int i,j,k,result=1,mark=0; char temp[20]; temp[0]=c; temp[1]='\\0'; merge(empt,temp,1); if(in(c,empty)==1) { if(i==count) if(left[i]==c) /*ÕÒÒ»¸ö×ó²¿ÎªcµÄ²úÉúʽ*/ { if(j==1&&in(right[i][0],empty)==1) return(1); else if(j==1&&in(right[i][0],termin)==1) else { return(0); return(1); for(i=0;;i++) return(0); j=strlen(right[i]); /*jΪÓÒ²¿µÄ³¤¶È*/ for(k=0;k<=j-1;k++) if(in(right[i][k],empt)==1) } } continue; return(1); else } for(k=0;k<=j-1;k++) { } result*=_emp(right[i][k]); temp[0]=right[i][k]; temp[1]='\\0'; merge(empt,temp,1); mark=1; if(mark==1) continue; { if(result==0&&i ±¾ÎĵµÈç¶ÔÄãÓаïÖú£¬Çë°ïæÏÂÔØÖ§³Ö£¡ } /******************************************* Åж϶ÁÈëµÄÎÄ·¨ÊÇ·ñÕýÈ· ********************************************/ int judge() { int i,j; } /******************************************* Ç󵥸ö·ûºÅµÄFIRST ********************************************/ void first2(int i) { /*iΪ·ûºÅÔÚËùÓÐÊäÈë·ûºÅÖеÄÐòºÅ*/ char c,temp[20]; int j,k,m; c=v[i]; char ch='^'; emp(ch); if(in(c,termin)==1) /*ÈôΪÖÕ½á·û*/ for(i=0;i<=count-1;i++) { } return(1); if(in(left[i],non_ter)==0) { /*Èô×󲿲»ÔÚ·ÇÖÕ½á·ûÖУ¬±¨´í*/ } for(j=0;j<=strlen(right[i])-1;j++) { } if(in(right[i][j],non_ter)==0&&in(right[i][j],termin)==0&&right[i][j]!='^') { /*ÈôÓÒ²¿Ä³Ò»·ûºÅ²»ÔÚ·ÇÖÕ½á·û¡¢ÖÕ½á·ûÖÐÇÒ²»Îª¡® ^ ¡¯£¬±¨´í*/ } printf(\validity=0; return(0); printf(\validity=0; return(0); } { first1[i][0]=c; first1[i][1]='\\0'; } else if(in(c,non_ter)==1) /*ÈôΪ·ÇÖÕ½á·û*/