wyk22293636 2021-10-10 18:52 采纳率: 0%
浏览 43
已结题

Flex词法分析器NFA到DFA的转换

最近在学习Flex词法分析器(flex-2.6.0版本),我使用如下简单的 .l文件来跟踪代码的执行,研究DFA转换表的构造过程

...
    %%
    
    [aeiou]+ {printf("aeiou");}
    ^r {printf("^r");}
    
    %%
...

在看到ntod函数(NFA到DFA的转换)之前,各个等价类的创建过程都清楚,但是我看不明白sympartition和symfollowset函数的具体实现细节。在这之前已经得到起始状态的epsilon闭包,我知道这两个函数肯定是为了得到之后状态的epsilon闭包,但是我不清楚其中实现的意思,能否详细解释一下这两个函数呢?

上述的 .l文件创建了3个等价类: aeiou, r 和 . sympatition中的ccltbl已经是其等价类的下标了,那用mkeccl得到的duplist是用来做什么呢? duplist[sym] == NIL为什么代表有唯一的out-transition呢?

上述.l 文件的NFA的状态如下

********** beginning dump of nfa with start state 11
state #    1    257:     0,    0
state #    2    257:     0,    0
state #    3     -1:     4,    0
state #    4    257:     3,    0  [1]
state #    5    257:     1,    3
state #    6    114:     7,    0
state #    7    257:     0,    0  [2]
state #    8    257:     2,    6
state #    9     -2:    10,    0
state #   10    257:     0,    0  [3]
state #   11    257:     5,    9
********** end of dump

  • 写回答

1条回答 默认 最新

  • 有问必答小助手 2021-10-12 10:10
    关注

    你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答


    本次提问扣除的有问必答次数,已经为您补发到账户,我们后续会持续优化,扩大我们的服务范围,为您带来更好地服务。

    评论

报告相同问题?

问题事件

  • 系统已结题 10月18日
  • 创建了问题 10月10日

悬赏问题

  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗
  • ¥15 钢筋实图交点识别,机器视觉代码
  • ¥15 如何在Linux系统中,但是在window系统上idea里面可以正常运行?(相关搜索:jar包)
  • ¥50 400g qsfp 光模块iphy方案
  • ¥15 两块ADC0804用proteus仿真时,出现异常
  • ¥15 关于风控系统,如何去选择
  • ¥15 这款软件是什么?需要能满足我的需求
  • ¥15 SpringSecurityOauth2登陆前后request不一致