生成柔性扫描仪时,如何反射回溯?

时间:2018-02-07 14:48:26

标签: c++ flex-lexer

我想出了一个在https://regex101.com上运行良好的回溯正则表达式。当我使用flex编译一个简单的reflex -u(ish)程序时,表达式不捕获回溯位 - 其他一切正常。

reflex的文档表明它允许回收开箱即用,我在文档中找不到任何告诉我如何在使用{{1}时允许回溯的内容}}替代reflex

据我从文档中可以看出,我必须使flex使用reflex,因为这是唯一支持回溯的引擎,在常规C ++程序中这似乎很简单。< / p>

(*)常规旧的flex不是一个选项,因为它不支持unicode类;特别是它不支持识别大写字母。

1 个答案:

答案 0 :(得分:0)

回溯反射式扫描仪在Perl模式下需要Boost。使用reflex -m=boost-perl切换到Boost Perl regex引擎。有关POSIX与Perl匹配的信息,请参见RE / flex文档部分:https://www.genivia.com/doc/reflex/html/index.html#reflex-posix-perl