算符优先文法分析器(4)

发布时间:2021-06-07

z=panduanyou(fenxizhan[j]);// 从优先关系表中查出s[j]和a的优先关系 if(a=='+'||a=='*'||a=='^'||a=='i'||a=='('||a==')'||a=='#')

n=panduanyou(a);

else //如果句子含有不是终结符集合里的其它字符,不合法

{

printf("error!不合法的句子");

break;

}

p6=youxian[z][n];

if(p6=='>')

{

loop: Q=fenxizhan[j];

if(fenxizhan[j-1]=='+'||fenxizhan[j-1]=='*'||fenxizhan[j-1]=='^'||fenxizhan[j-1]=='i'||fenxizhan[j-1]=='('||fenxizhan[j-1]==')'||fenxizhan[j-1]=='#') j=j-1;

else

j=j-2;

z1=panduanyou(fenxizhan[j]);

n1=panduanyou(Q);

p1=youxian[z1][n1];

if(p1=='<') //fenxizhan[j+1]…fenxizhan[k]归约为N

{

k=j+1;

shengyuchuan();

flag++;

printf("(%d) %s %c %c %s 归约

\n",flag,fenxizhan,p6,a,lex);

i--;

fenxizhan[k]='N';

int hou,hou1;

hou=strlen(fenxizhan);

for(hou1=k+1;hou1<hou;hou1++)

fenxizhan[hou1]='\0';//多个字符归约,把栈顶后面的舍弃

zengjia();//归约剩余串没变化

}

else

goto loop;

}

else

{

if(p6=='<') //移进 有一个问题就是如果上一步是不归约,剩余的字符串减少一个

算符优先文法分析器(4).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219