集美大学计算机工程学院实验报告课程名称:编译原理班级:指导老师: 姓名: 实验项目编号:实验一学号:实验项目名称:词法分析器的设计实验成绩:一、实验目的 通过设计编制调试一个具体的词法分析程序,加深对词法分析原理的理解。并掌握在对程序设计语言源程序进行扫描过程中将其分解为各类单词的词法分析方法。二、实验内容编写一个词法分析器,从输入的源程序(编写的语言为 C 语言的一个子集)中,识别出各个具有独立意义的单词,即基本保留字、标识符、常数、运算符、分隔符五大类。并依次输出各个单词的内部编码及单词符号自身值。(遇到错误时可显示“Error”,然后跳过错误部分继续显示) 三、实验要求 1、 词法分析器的功能和输出格式词法分析器的功能是输入源程序,输出单词符号。词法分析器的单词符号常常表示成以下的二元式(单词种别码,单词符号的属性值)。单词示例单词种别码要求保留字if、else、int、while、do每个保留字的单词种别都单独为一种标识符以字母开头且包含字母和数字的字符串标识符作为一种常数(只识别无符号整数)123、343无符号整数作为一种运算符+、-、*、/、=、= = 、!=、> 、<、 >=、 <=每符一种,也可以每一类符号一种分隔符,、;、{、}、(、)每符一种2、上述要求仅为基本要求,可以在此基础上扩充,例如删除注释,增加识别单词的类型,将标识符和常量分别插入到相应的符号表中,增加错误处理等。3、编程语言不限。四、实验设计方案 1、数据字典本实验用到的数据字典如下表所示:单词示例标识 ID保留字void、if、else、for、while、do、return、break、main、int、float、char、double、String1标识符以字母开头且包含字母和数字的字符串2常数(只识别无符号整数)无符号整数和小数3运算符+、-、*、/、=、> 、<、4分隔符,、;、{、}、(、)5本实验所使用的开发语言是 C 语言,在 Test2 类中定义了以下几个函数: 2.程序流程图: Y N Y N N Y Y N Y N Y Y N N N Y Y N N N Y Y开始读入文件,把内容存入 string 中,m=0,check=ture,error=false从 string 中读出一个字符放入 ch 中输出 str,标识为无法识别的串check=ture,error=falsech 是 运 算符?error=ture?check=false?输出 str,标识为标示符 check=ture输出 str,标识为运算符输出 str,标识为无法识别的串check=ture,error=falseerror=ture?check=false?输出 str,标识为标示符 check...