东北大学编译原理实验1(18 页)Good is good, but better carries it
精益求精,善益求善
编译原理程序设计实验报告——实验题目班级:计算机 1507 班 姓名:罗艺博学号:20254377一、实验目标:词法分析扫描器的设计实现
在程序源文件中输入类 C 语言程序源文件,设计词法分析扫描器,并以 TOKEN 类别码序列的形式输出扫描结果
二、实验内容:1
概要设计:将程序大致分为:主函数、识别器(有限自动机state_change)、词法分析器(state_to_code)三大部分
其中,主函数所完成的功能为:打开、读取、关闭文件(即 C 语言源程序),重置 token 串等
识别器的功能为:识别字符,完成 token 串的生成,推断词法错误等
词法分析器的功能为:生成 token 类别码,推断token 是否出错等
主函数、识别器、词法分析器关系图2
流程图词法分析扫描器流程图3
识别器(有限自动机 state_change)int state_change(state,ch) //识别器,有限自动机{if((ch == ' ') || (ch == '\t') || (ch == '\n'))//略去空格、TAB、换行 return 0; else if((IsAlpha(ch) == 1) || (ch == '_'))//推断是否为字母或'_',从而推断是关键字、标识符、CT 字符还是 ST 字符串 { if(state == 1) return 2; else if(state == 2) return 2; else if(state == 7) return 8; else if(state == 8) retur