【编译原理】用Lex做词法分析

本文介绍了如何使用Lex进行词法分析,包括实验环境配置和编写Lex程序的步骤,生成的状态转换图被实现到lex.yy.c文件中。
摘要由CSDN通过智能技术生成

08年9月入学,12年7月毕业,结束了我在软件学院愉快丰富的大学生活。此系列是对四年专业课程学习的回顾,索引参见:http://blog.csdn.net/xiaowei_cqu/article/details/7747205


用Lex做词法分析


Lex编译器将输入的模式转换成一个状态转换图,并生成相应的实现代码,并存放到文件lex.yy.c中,这些代码模拟了状态转换图。


用Lex创建一个词法分析器
冲突解决规则:
1) 总是选择最长的前缀
2) 如果最长的可能前缀与多个模式匹配,总是选择Lex中先被列出的模式。
  • 30
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
编译原理是研究如何将高级程序语言翻译机器语言的学科。在编译过程中,词法分析是其中的重要一步,它将源代码分割一系列单词(token),并标注上不同的词法单位。 lex是一种常用的用于生词法分析器的工具。它通过读取用户定义的规则,自动生对应的词法分析器代码。当我们需要构建一个词法分析运行环境时,可以使用lex。 使用lex词法分析器代码一般包含以下几个部分: 1. 用户定义的词法规则:我们需要定义要识别的各种单词和对应的正则表达式。例如,定义关键字、标识符、数字、运算符等。 2. 词法规则匹配代码:lex会根据我们定义的规则,自动生对应的匹配代码。以进行匹配操作,并且在匹配到相应单词时,执行相应的操作。这些操作可以是输出单词信息、进一步处理等。 3. 其他辅助代码:我们可以在lex的代码中,添加一些自定义的函数或全局变量,来辅助词法分析的进行。 使用lex进行词法分析的运行环境可以通过以下步骤来实现: 1. 定义词法规则:根据目标语言的词法规则,使用lex提供的语法,定义要识别的各种单词和对应的正则表达式。 2. 生词法分析器代码:使用lex工具,将定义好的词法规则作为输入,生对应的词法分析器代码。 3. 编译生词法分析器代码:将生词法分析器代码编译可执行文件。 4. 运行词法分析器:将需要进行词法分析的源代码输入给词法分析器,它会根据我们定义的规则,将源代码分割一系列单词,并进行相应的处理和输出。 通过使用lex,我们可以方便快捷地生用于词法分析的运行环境,减少了手动编写词法分析器的工作量,并提高了开发效率。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值