Spirit 无法将属性分配给单元素结构(或融合序列)
我的目标是让我的 qi::grammar 返回一个属性。不过,我在使用 spirit::lexer 执行此操作时遇到了很大的困难。 我希望使用下面给定的语法,如果我用 sp…
基于 Boost Spirit 语法的字符串分割
我使用的是 Boost 1.44,Spirit 解析器对于数字解析效果很好,但对于字符串解析来说确实很棘手。我正在尝试解析要使用多个分隔符分割的字符串: ',' ,…
使用替代运算符 '|' 提升精神失败!当有两条可能的规则时
我正在开发一个 http 解析器。当我尝试使用替代运算符进行解析时,它发现了一个问题。这与属性中的值无关,我可以使用hold[]来修复它们。当有两个开头…
使用 boostspirit 将字符串解析为 int 或 float
我需要将 wstring 解析为 int、float 或字符串本身。我发现了一个与我类似的问题这里但我不明白如何使用解析器。我没有找到 test_parser 方法。问题是…
BOOST_FUSION_ADAPT_STRUCT 没有采用正确数量的参数
我正在使用 Boost::Spirit 将一些文本解析为结构。这需要使用 BOOST_FUSION_ADAPT_STRUCT 来解析文本并直接存储到结构中。我知道该宏需要 2 个参数:…
Boost Spirit 规则和语法中模板参数中的括号
看看 这个用于实现 Spirit 解析器的示例,当我试图编写类似的东西时,有些东西让我感到困惑。 语法的属性模板参数(std::map())和规则的签名模板参数…
无法在 Spirit:: Qi 中定义规则
我正在尝试将 Unix 文件路径解析为文件夹对(键/值对 - 根据我的应用程序的需要)。问题是我无法正确使用 qi::rule 定义解析器。我收到了一些我无法完…
如何将 Boost Spirit 解析的实体与其在输入流中的位置相关联?
Boost Spirit 库允许跟踪输入解析时定位。该机制允许在解析期间通知解析器错误的位置。 我想保留所有已解析实体的原始位置以及它们以供将来使用。 (…
提升::精神::气。如何将内联解析器表达式转换为独立语法,以及如何解压它们生成的元组?
我正在使用 QI 和 Phoenix,我想编写一个返回 4 个布尔值的小语法,这些布尔值将用作语义操作内函数调用的参数。 我有几个需要这些东西的函数,到目前…
简单的 Spirit Parser 语法的分段错误
我的 Spirit Qi 解析器经常遇到段错误。 在花了几天时间调试这个问题之后(我发现堆栈跟踪不可能被理解),我决定将其缩减为一个最小的示例。谁能告诉…
在运行时动态组合 Boost.Spirit.Qi 规则(任意数量的替代方案)
我想知道 Boost.Spirit.Qi 中是否有一种方法可以在运行时动态组合任意数量的规则。 Boost.Spirit 的内部工作原理对我来说仍然有点神秘,但由于规则是…
是否可以在没有 Boost.Fusion 的情况下使用 Boost.Spirit V2.x?
是否真的有必要用 Boost.Fusion 包装结构/类才能将它们与 Boost.Spirit V2.x(尤其是 Boost.Spirit.Qi)一起使用?我更愿意使用语义操作来分配给成员…
boost-spirit 数字解析器并获取所需的合成属性
--编辑--解决了问题:对最后一个旁注的评论会很有帮助。另外,对 phoenix::bind 重载处理的评论也会有所帮助(在我的回答中)。 我正在一个具有严格类…