编译原理上机实验报告1Word文档格式.docx
- 文档编号:4524749
- 上传时间:2023-05-03
- 格式:DOCX
- 页数:22
- 大小:19.55KB
编译原理上机实验报告1Word文档格式.docx
《编译原理上机实验报告1Word文档格式.docx》由会员分享,可在线阅读,更多相关《编译原理上机实验报告1Word文档格式.docx(22页珍藏版)》请在冰点文库上搜索。
(13,;
)
#include<
iostream>
string>
usingnamespacestd;
stringkey[6]={"
begin"
"
if"
then"
while"
do"
end"
};
//关键字
boolisKey(stringstr,int&
syn)//判断是否为关键字,若是传回相应关键码的种别名
{
inti;
for(i=0;
i<
6;
i++)
{
if(str==key)
syn=i+1;
returntrue;
}
returnfalse;
}
boolisLetter(charc)//是否为字母
if((c>
='
A'
&
&
c<
Z'
)||(c>
a'
z'
))
else
boolisDigit(charc)//是否为数字
if(c>
0'
9'
voidanalyse(FILE*fileP)
intn;
charc;
stringstr="
"
;
while((c=fgetc(fileP))!
=EOF)
if(c=='
'
||c=='
\n'
\t'
continue;
elseif(isDigit(c))//数字
while(isDigit(c))
str+=c;
c=fgetc(fileP);
fseek(fileP,-1,SEEK_CUR);
cout<
<
"
(11,"
<
str<
)"
endl;
str="
elseif(isLetter(c))//字母开头的
while(isDigit(c)||isLetter(c))
if(isKey(str,n))
("
n<
//关键码
(10,"
\'
//标志符
else//操作符等
switch(c)
case'
+'
:
(13,+)"
break;
-'
(14,-)"
*'
(15,*)"
/'
(16,/)"
'
if(c=fgetc(fileP)=='
='
(18,:
=)"
(17,
(12,=)
FOUNDERROR
(13,;
boolisLetter(charc)//是否为字母
(17,"
c=fgetc(fileP);
(22,<
elseif(c=='
>
(21,<
(20,<
(24,>
(23,>
(25,=)"
(26,;
('
(27,()"
)'
(28,))"
#'
(0,#)"
default:
cout<
FOUNDERROR!
endl;
intmain()
FILE*fileP;
fileP=fopen("
test.txt"
r"
);
------词法分析如下------"
analyse(fileP);
return0;
实验二
/*
编制递归下降法的语法分析程序
通过设计、编制、调试一个典型的语法分析程序,能识别由加+、乘*、括号()、操作数所组成的算术表达式,其文法如下:
E→TE'
E'
→+TE'
∣ε
T→FT'
T'
→*FT'
F→(E)∣i
1.程序功能(举例)
#i1*(i2+i3)#
SUCCESS
#i1*(i2+i3#
*/
实验代码:
FILE*fileP;
chara[100];
voidEe();
voidT();
voidTt();
voidF();
voidE();
inti=0;
intj=0;
intflag=0;
boolisLetter(charc)//是否为字母
voidread()
if(fgetc(fileP)=='
charc=fgetc(fileP);
while(c!
a[j++]=c;
voidE()
T();
Ee();
voidEe()
if(a=='
i++;
voidT()
F();
Tt();
voidTt()
voidF()
charc=a;
if(isLetter(c))
{
c=a;
elseif(isDigit(c))
elseif(c=='
E();
else
flag=1;
voidmain()
if((fileP=fopen("
))==NULL)
请创建test.txt资源文件"
else
read();
cout<
------test文件词法分析结果如下------"
if(flag==0)
success"
faild"
----------------------------"
请创建test2.txt资源文件"
------test2文件词法分析结果如下------"
请自行新建test.txt
cas
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 上机 实验 报告