算符优先分析方法 联系客服

发布时间 : 星期日 文章算符优先分析方法更新完毕开始阅读9436228102d276a200292e00

{ w.e=b; push(sta,w); search(w); i++; } else i++; }

charLode ww; while(!IsEmpty(sta)) {

pop(sta,ww); for(i=0;i<=n;i++) {

w.E=str[i][0];

if(str[i][3]==ww.E&&str[i][4]=='\\0') {

w.e=ww.e; push(sta,w); search(w); break; } } }

p=0;int k=1;i=1; while(i

if(F[i-1].flag==1) {

arr[p][0]=F[i-1].R;

12

arr[p][k]=F[i-1].r; }

while(F[i].flag==0&&i

if(F[i].flag==1) {

if(F[i].R==arr[p][0]) k++;

else {arr[p][k+1]='\\0';p++;k=1;} i++; } } }

void LastVT(int n)//求LastVT {

charstack sta; charLode w; for(int i=0;i

int k=strlen(str[i]); w.E=str[i][0]; char a=str[i][k-1]; char b=str[i][k-2]; if(!IsLetter(a)) { w.e=a;

13

push(sta,w); search(w); i++; }

else if(IsLetter(a)&&!IsLetter(b)) { w.e=b; push(sta,w); search(w); i++; } else i++; }

charLode ee; while(!IsEmpty(sta)) {

pop(sta,ee); for(i=0;i<=n;i++) {

w.E=str[i][0];

if(str[i][3]==ee.E&&str[i][4]=='\\0') { w.e=ee.e; push(sta,w); search(w); } } }

int k=1;i=1; ppp=0;

14

while(i

if(F[i-1].flag==1) {

brr[ppp][0]=F[i-1].R; brr[ppp][k]=F[i-1].r; }

while(F[i].flag==0&&i

if(F[i].flag==1) {

if(F[i].R==arr[ppp][0]) k++;

else {brr[ppp][k+1]='\\0';ppp++;k=1;} i++; } } }

void createYXB(int n)//构造优先表 { int i,j;

for(j=1;j<=kk;j++) ccrr1[0][j]=r[j-1]; for( i=1;i<=kk;i++) ccrr2[i][0]=r[i-1]; for(i=1;i<=kk;i++) for(j=1;j<=kk;j++) crr[i][j]=0; int I=0,J=3; while(I<=n)

15