《编译原理》实验报告班级:学号:姓名:实验一 词法扫描器设计一 实验目的通过设计调试词法分析程序,实现从源程序中分出各种单词的方法;加深对课堂教学的理解;提高词法分析方法的实践能力。二 实验内容设计一个简单的类C 语言的词法扫描器。三 实验要求(一) 程序设计要求(1) 根据附录给定的文法, 从输入的类 C 语言源程序中, 识别出各个具有独立意义的单词,即关键字、标识符、常数、运算符、分隔符五大类;文法见最后附录。(2) 提供源程序输入界面;(3) 词法分析后可查看符号表和TOKEN 串表;(4) 保存符号表和 TOKEN 串表(如:文本文件) ;(5) 遇到错误时可显示提示信息,然后跳过错误部分继续进行分析。(二)实验报告撰写要求(1) 系统功能(包括各个子功能模块的功能说明);(2) 开发平台(操作系统、设计语言) ;(3) 设计方案;1) 主数据流图;2) 主要子程序的流程框图(若有必要) ;3) 模块结构图;4) 主要数据结构:符号表、TOKEN串表等。(4) 具体设计过程(包括主控程序、各个功能模块的具体实现)。1. 系统功能:根据附录给定的文法,从输入的类C 语言源程序中,识别出各个具有独立意义的单词,即关键字、标识符、常数、运算符、分隔符五大类。然后输出本源程序的符号表显示在 dos界面和存放在文本文件中。本程序以如下源程序(语法分析的例子 )示范:源程序 ; int a; int b; int c; a=2; b=1; if (a>b)c=a+b; else c=a-b; 子功能模块有:关键字处理过程; 字母的处理过程; 数字的处理过程; 整个词法分析处理过程 ;运算符处理过程以及主程序。2. 开发平台(操作系统、设计语言) ;Windows 7,Microsoft Visual C++ 6.0 3.设计方案:(1)主流程图:读入文件关闭文件流CiFaFenXi ()函数进行词法分析开始结束(2)主要子程序的流程框图:判断 是否注释子模块①:N Y模块①判断是否是字符子模块②:N Y开始是否为注释?输入文件,读完文件继续判断不处理开始是否为字符?字符临时赋值给字符串变量继续别的判断YN Y模块②判断是否为数字或者运算符子模块③:N YY读取下一字符是否为字符或者数字?字符串变量是否是关键字?将变量类型 1 输出到 DOS界面并写入文件结束将变量类型 2 输出到 DOS界面并写入文件开始是否为数字?将 数 字 赋 给 变量是 否 为 运 算符?对 每 一 个 运 算符 做 相 应 的...