实验一词法分析实验报告

上传人:cn****1 文档编号:498179606 上传时间:2023-05-14 格式:DOC 页数:9 大小:108KB
返回 下载 相关 举报
实验一词法分析实验报告_第1页
第1页 / 共9页
实验一词法分析实验报告_第2页
第2页 / 共9页
实验一词法分析实验报告_第3页
第3页 / 共9页
实验一词法分析实验报告_第4页
第4页 / 共9页
实验一词法分析实验报告_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《实验一词法分析实验报告》由会员分享,可在线阅读,更多相关《实验一词法分析实验报告(9页珍藏版)》请在金锄头文库上搜索。

1、实验一 词法分析一、实验目的通过设计编制调试一个具体的词法分析程序,加深对词法分析原理的理解。并掌握在对程序设计语言源程序进行扫描过程中将其分解为各类单词的词法分析方法。编制一个读单词过程,从输入的源程序中,识别出各个具有独立意义的单词,即基本保留字、标识符、常数、运算符、分隔符五大类。并依次输出各个单词的内部编码及单词符号自身值。遇到错误时可显示Error,然后跳过错误部分继续显示二、实验要求使用一符一种的分法关键字、运算符和分界符可以每一个均为一种标识符和常数仍然一类一种三、实验内容功能描述:1、 待分析的简单语言的词法1 关键字:begin if then while do end2 运

2、算符和界符::=+ * / = = = ; #3其他单词是标识符ID和整型常数NUM,通过以下正规式定义:ID=letterletter| digit*NUM=digit digit *4 空格由空白、制表符和换行符组成。空格一般用来分隔ID、NUM,运算符、界符和关键字,词法分析阶段通常被忽略。2、 各种单词符号对应的种别码图 1程序结构描述:变量初始化忽略空格是否输入结束? 返回 是 否 是 调用scanner字母拼字符串数 其他运算符、 符号界符等符号是否关键字?返回拼数 否对不同符号给出相应的syn值报错syn=10 是syn=1111syn为对应关键字的单词种别码图 2四、实验结果输

3、入begin x:=9: if x9 then x:=2*x+1/3; end # 后经词法分析输出如下序列: 如图3所示:图3输入private x:=9;if x0 then x:=2*x+1/3; end#后经词法分析输出如下序列: 如图4所示:图4显然,private是关键字,却被识别成了标示符,这是因为图1中没有定义private关键字的种别码,所以把private当成了标示符。输入private x:=9;if x0 then x:=2*x+1/3; end#后经词法分析输出如下序列: 如图5所示图5显然,没有在图一中定义种别,所以输出了Error in row 1!的报错信息。五

4、、词法分析程序的C语言程序源代码void scaner/* 共分为三大块,分别是标示符、数字、符号,对应下面的 if else if 和 else */if=a&ch|=A&ch /可能是标示符或者变量名 m=0;while=0&ch|=a&ch|=A&ch tokenm+=ch; ch=progp+; tokenm+=0; p-; syn=10;forn=0;n /将识别出来的字符和已定义的标示符作比较, ifstrcmp=0 syn=n+1;break; elseif=0&ch /数字 sum=0;while=0&ch sum=sum*10+ch-0; ch=progp+; p-; syn

5、=11;if32767 syn=-1; elseswitch /其他字符 case:m=0;tokenm+=ch; ch=progp+;if syn=21; tokenm+=ch; elseif syn=22; tokenm+=ch; else syn=23; p-; break;case:m=0;tokenm+=ch; ch=progp+;if syn=24; tokenm+=ch; else syn=20; p-; break;case:m=0;tokenm+=ch; ch=progp+;if syn=18; tokenm+=ch; else syn=17; p-; break;case*

6、:syn=13;token0=ch;break;case/:syn=14;token0=ch;break;case+:syn=15;token0=ch;break;case-:syn=16;token0=ch;break;case=:syn=25;token0=ch;break;case;:syn=26;token0=ch;break;case:syn=28;token0=ch;break;case#:syn=0;token0=ch;break;casen:syn=-2;break;default: syn=-1;break; 六、实验总结这个实验花费了一节课的时间,通过本次试验,让我了解到如何设计、编制并调试词法分析程序,加深对词法分析原理的理解;熟悉了构造词法分析程序的相关原理,。这个程序只能识别特定的几个关键字,假如想要识别另外的关键字还要再一次修改源程序,程序的扩展性不高,还需要改进!. .

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号