编译原理算符优先算法语法分析实验报告.docx

上传人:b****4 文档编号:12205982 上传时间:2023-04-17 格式:DOCX 页数:6 大小:15.87KB
下载 相关 举报
编译原理算符优先算法语法分析实验报告.docx_第1页
第1页 / 共6页
编译原理算符优先算法语法分析实验报告.docx_第2页
第2页 / 共6页
编译原理算符优先算法语法分析实验报告.docx_第3页
第3页 / 共6页
编译原理算符优先算法语法分析实验报告.docx_第4页
第4页 / 共6页
编译原理算符优先算法语法分析实验报告.docx_第5页
第5页 / 共6页
点击查看更多>>
下载资源
资源描述

编译原理算符优先算法语法分析实验报告.docx

《编译原理算符优先算法语法分析实验报告.docx》由会员分享,可在线阅读,更多相关《编译原理算符优先算法语法分析实验报告.docx(6页珍藏版)》请在冰豆网上搜索。

编译原理算符优先算法语法分析实验报告.docx

编译原理算符优先算法语法分析实验报告

数学与计算机学院编译原理实验报告

年级专业_学号_姓名

成绩

实验题目算符优先分析法分析器的设计实验日期

一、实验目的:

设计一个算符优先分析器,理解优先分析方法的原理。

二、实验要求:

设计一个算符优先分析器

三、实验内容:

使用算符优先分析算法分析下面的文法:

E't#E#

EtE+T|T

TtT*F|F

FtPaf|P

Pt(E)|i

其中i可以看作是一个终结符,无需作词法分析。

具体要求如下:

1、如果输入符号串为正确句子,显示分析步骤,包括分析栈中的内容、优先关系、输入符号串的变化情况;

2、如果输入符号串不是正确句子,则指示出错位置。

四、实验结果及主要代码:

1•主要代码voidoperatorp()

chars[100];

chara,Q;

intk,j,i,l;

stringinput,temp;

cin>>input;

"<<'\t'<<"剩

cout<<"步骤"<<'\t'<<"栈"<<'\t'<<"优先关系"<<'\t'<<"当前符号余输入串"<<'\t'<<"移进或归约"<

k=1;s[k]='#';i=1;

do

{

a=input[0];

temp="";

for(l=1;l

temp+=input[l];

input=temp;

if(svt(s[k]))j=k;

elsej=k-1;

while(search(s[j],a)=='>')

//步骤

{

cout<<'('<

temp="";

for(l=1;l

temp+=s[l];

//优先关系

//当前符号

//剩余输入串

cout<'<<'\t'<

cout<

cout<

i++;

for(;;)

{

Q=s[j];

if(svt(s[j-1]))j=j-1;

elsej=j-2;

if(search(s[j],Q)=='<')

{

cout<<"归约"<

break;

}

}

temp="";

for(l=j+1;l

temp+=s[l];

for(l=0;l<6;l++)

if(temp==key[l])

{

k=j+1;

s[k]=v[l];

break;

}

}

cout<<'('<

for(l=1;l

temp+=s[l];

cout<

if(search(s[j],a)=='<')

{

//优先关系

//当前符号

//剩余输入串

cout<<'<'<<'\t'<

cout<

cout<

cout<<"移进"<

i++;

k=k+1;s[k]=a;

}//移进

elseif(search(s[j],a)=='Y')

cout<<'='<<'\t'<

//优先关系

cout<

//当前符号

cout<

//剩余输入串

cout<<"接受"<

i++;

}

else

{

cout<

<<'\t'<

//优先关系

cout<

//当前符号

cout<

//剩余输入串

cout<<"出错"<

exit(O);

}//出错

}while(a!

='#');

2•实验结果

■'F:

\2012憐渾fl!

坦曲谨原淫实峑Xopwtor_pr*cedence_r«duction\operator_prtcedence_red■凹

谥输入需要分析的昌,収呻・结尾,回车雜束:

i-itt

步驶

■tt元关系

当前符号

剩余输人串

tt

X

-itt

Ji#

tti

lit

Press

aoykey

tocontinue

优九关系

■fr

i

利余输入串

当前符号

i*n

few

■*F:

:

\2O12\^i§J'^:

S\^:

SJFt?

^=£-\0perator_preredAnce_rpdL4r+ion\cipFriaJor^preced?

nre,red1!

話讲

<2>

<3>

<4>

<5>

<6>

<7>Pi*es£

t

11

tF

IF*

»F*itF*F

tF

anykeytocontinueH

inn

imt

mt

欢迎下载,谢谢观看!

资料仅供参考学习

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1