我正在编写一个基于正则表达式的词法分析器生成器,该生成器基于Dragon Book中描述的regexp-to-DFA直接转换算法。
它会为连接,交替和kleene-star节点计算nullable
,firstpos
,lastpos
和followpos
函数。我想为+
(一次或多次)和?
(零次或一次)添加量词。
nullable
,firstpos
和lastpos
很容易计算,但我不确定followpos
。最好不要将这些量词作为解析阶段的一部分来实现,而是在词法分析阶段重写它(我认为这只是kleene-star和alternation的“语法糖”)?