提升::精神::气。如何将内联解析器表达式转换为独立语法,以及如何解压它们生成的元组?
我正在使用 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 重载处理的评论也会有所帮助(在我的回答中)。 我正在一个具有严格类…
qi::rule不解析输入字符串
我有一个奇怪的麻烦: qi::rule <Iterator, std::string ()> str = +alnum // will not parse given input //param = "WELL" >> space >>…
如何为 boost::spirit::qi 和 std::list 容器定义流运算符
在我的规则之一中有 qi::locals<>以 stl 容器作为参数。当我在没有 BOOST_SPIRIT_QI_DEBUG 的情况下编译程序时,一切正常。但是当我打开 BOOST_SP…
如何使用 boost.Qi 解析此类 XML 并调用名为标签的函数?
所以我知道有官方教程 Boost.Qi XML 解析 但我完全不知道如何解析这样的 XML: <host url="http://www.site.com"/> <run app="myApp" version=4…
将文件路径字符串传递给 Boost.Spirit 中的语义操作
我是 Boost.Spirit 的新手,我有一个与我尝试使用该库实现的迷你解释器相关的问题。作为解析语言的子任务,我需要从表单的输入中提取文件路径: "path…
如何从 Spirit::Qi 规则访问 boost::variant 成员?
我无法找到如何在我的 Spirit-Qi 语法中使用 boost::phoenix 访问 boost::variant 的成员的正确方法。这是我想要实现的简单示例。 (我的整个语法要复…
C++/Boost:编写更强大的 sscanf 替代品
我想用 C++ 编写一个函数来替换 C 的 sscanf,将匹配项分配给迭代器。 基本上,我想要这样的东西: string s = "0.5 6 hello" std::vector<boost::a…
提升灵气重新建立跳跃与自定义跳跃语法
我有一个语法,到目前为止,一直使用标准 boost::spirit::ascii::space/boost::spirit::ascii::space_type船长。 我有一些使用船长的规则,有些则不使…