陆玺文:Linux下Lex实验二词法分析器总结及行列值识别

需积分: 0 0 下载量 84 浏览量 更新于2024-08-04 收藏 322KB DOCX 举报
本次实验是关于计科17-6班学生陆玺文在2020年2月进行的系统软件开发实践课程设计报告,具体涉及到的是词法分析器的实现。实验内容主要围绕Flex工具,一种广泛用于编写词法分析器的工具,其目的是为C语言子集C1设计一个词法扫描器。 在实验的第一阶段,陆玺文首先阅读了《Flex/Bison.pdf》的前两章,学习了Flex的基本概念和技术。接着,他按照教材和网络资源,为关键字、专用符号、标识符、整型常数、空白字符和注释分别定义了模式匹配规则。其中,注释部分的处理采用了更复杂的正则表达式,支持多行注释。 实验的核心是编写Count()函数,用于计算匹配字符的行列值,这在后续的Lex2-2.l版本中得到了扩展。源代码中,通过宏定义来处理不同类型的字符码,并在模式匹配成功时返回对应的数值,从而执行相应的操作。例如,对于8进制和16进制数的识别,代码中包含了专门的处理逻辑,而在识别浮点数和带后缀数字时,也融入了作者的理解和创新。 在代码实现中,特别关注了注释的处理和行列值的累计,这在Lex2-2.l版本中尤为重要。对于不规则的字符串长度,如制表符的存在,代码进行了适当的格式化处理,以确保输出的整洁性。 在整个实验过程中,陆玺文遇到了识别行列值这一难题,但通过查阅资料和不断尝试,最终找到了解决方案。实验总结部分,除了列出遇到的问题,还包括了对所编写的词法分析器的评价,以及此次实验对自己技能提升和知识理解的收获。 通过这次实验,陆玺文不仅掌握了Flex的基础应用,还锻炼了解决实际问题的能力,加深了对词法分析器工作原理的理解。这份报告展示了他在理论学习和实践操作方面的综合能力,为今后的专业发展奠定了坚实的基础。
2024-11-25 上传