gpt4 book ai didi

c++ - 生成 flex 扫描仪时如何获得反射进行回溯?

转载 作者:太空宇宙 更新时间:2023-11-04 12:52:01 25 4
gpt4 key购买 nike

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

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

据我从文档中得知,我必须让 reflex 使用 std::regex,因为这是唯一支持回溯的引擎,而且看起来微不足道在常规 C++ 程序中执行。

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

最佳答案

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

关于c++ - 生成 flex 扫描仪时如何获得反射进行回溯?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48666644/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com