#词法分析程序
##词法分析程序一般有
###普通代码实现
这种方法通过直接读取字符,然后对字符进行分析。分析一些简单的方法时,这种方法比较实用,但是对于比较复杂的语法,常常
需要大量的标记来进行辅助识别。比如注释,两个字符的运算符等等。(示例程序见lexer1)
###基于状态转换图(DFA)
这种方法解决了使用普通代码实现出现的大量标记,只使用一个状态作为标记,然后通过状态的改变,进行分析词法。(示例程序见lexer2)
###DFA+状态转换表
这种方法跟上一种方法机制是一样的。不过上一种方法通常需要大量且冗长的switch,本方法是对其进行的改进,去掉冗长的switch,转而以
状态转换表代替。只需要循环遍历当前状态下每个字符的状态,然后每次判断是否到了无后续状态即可,然后对其状态进行分析,即可分析到所要的token。(示例程序见lexer3)
###NFA
这种方法,通常是将NFA转换成对应的DFA,然后再进行判断。(示例程序见lexer4,示例程序正更新中)
###模拟NFA
与DFA类似,每次都循环遍历当前状态下所对应字符的状态,然后最终判断有没有存在接受状态。(NFA模拟判断一个简单的正则,见lexer5)
###编写正则表达式,转成成NFA
(待更新)
基于java的多种实现方法的词法分析器.zip
73 浏览量
2024-04-17
12:01:21
上传
评论
收藏 7KB ZIP 举报
小码蚁.
- 粉丝: 2581
- 资源: 4216
最新资源
- 618商品网页制作编程示例开发案列优质学习资料资源工具与案列应用场景开发文档教程资料.txt
- base.apk
- input.h
- VBA高级筛选简单.xlsm
- STM32-HAL库-外部中断-按键输入
- 松勤-Python测试开发项目实战课程3期2022年完结价值12000元
- Kettle智能电商大师之路 基于打造离线+实时全栈数仓项目 实时ETL全面进阶 智数电商
- Java高级开发全家桶 Spring框架+SpringMVC框架+Maven高级+SpringBoot框架+MyBatis
- 程序员最新版数据结构与算法实战 走上编程大师之路必备数据结构与算法课程
- HM程序员最新版数据结构与算法实战 走上编程大师之路必备数据结构与算法课程
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈