实验一:词法分析程序一、实验目的 通过设计编制调试一个具体的词法分析程序,加深对词法分析原理的理解。
并掌握在对程序设计语言源程序进行扫描过程中将其分解为各类单词的词法分析方法。
编制一个读单词过程,从输入的源程序中,识别出各个具有独立意义的单词,即基本保留字、标识符、常数、运算符、分隔符五大类。
并依次输出各个单词的类型码及单词符号的自身值。
(遇到错误时可显示“Error”,然后跳过错误部分继续显示)二、实验要求用C或C++写一个简单的词法分析程序,程序可以满足下列要求:1、能分析如下几种简单的语言词法(1)标识符:ID=letter(letter|digit)*(2)关键字(全部小写)mainintfloatdoublecharifthenelseswitchcasebreakcontinuewhiledofor(3)整型常量:NUM=digitdigit*(4)运算符=+-*/=25整型常量11;26+13(27-14)28*15?29/16:303、词法分析程序实现的功能输入:单词序列(以文件方式提供),输出识别的单词的二元组序列到文件和屏幕输出:二元组构成:(syn,token或sum)其中:syn为单词的种别码token为存放的单词自身符号串sum为整型常数例:源程序:intab;
floatef=20;
ab=10+ef;
输出:(保留字--1,int)(标识符--10,ab)(分号--26,;)(保留字--2,float)(标识符--10,ef)(等号--17,=)(整数--11,20)(分号--26,;)(标识符--10,ab)(等号--17,=)(整数--11,10)(加号--13,+)(标识符--10,ef)(分号--26,;)4、自己准备测试数据存放于TestData.txt文件中,测试数据中应覆盖有以上5种数据,测试结果要求以原数据与结果对照的方式输出并保存在Result.txt中,同时要把结果输出到屏幕。
5、提前准备① 实验前,先编制好程序,上机时输入并调试程序。
准备好多组测试数据(存放于文件TestData.txt中)。
6、写出实验报告 报告格式:要求有实验名称、实验目的、实验要求、实验内容、实验小结。
其中实验内容包括算法分析、程序流程图及程序代码。
1