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

问题描述 投票:1回答:1

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

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

据我从文档中可以看出,我必须使reflex使用std::regex,因为这是唯一支持回溯的引擎,在常规C ++程序中做起来似乎微不足道。

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

c++ flex-lexer
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.