手机版

算符优先文法分析器(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文档下载到电脑,方便复制、编辑、收藏和打印
×
二维码
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)