在运行时动态组合 Boost.Spirit.Qi 规则(任意数量的替代方案)
我想知道 Boost.Spirit.Qi 中是否有一种方法可以在运行时动态组合任意数量的规则。 Boost.Spirit 的内部工作原理对我来说仍然有点神秘,但由于规则是…
关于关键字解析器 options.cpp 示例的编译错误
我正在用 svn 获得的最新 Spirit 编译最新的关键字示例 options.cpp 。但我收到以下错误: options.cpp(26):错误 C2065:“int32_t”:未定义的标识…
是否可以在没有 Boost.Fusion 的情况下使用 Boost.Spirit V2.x?
是否真的有必要用 Boost.Fusion 包装结构/类才能将它们与 Boost.Spirit V2.x(尤其是 Boost.Spirit.Qi)一起使用?我更愿意使用语义操作来分配给成员…
增强精神业力和增强变体“概念”与 汽车发电机相关
我需要使用其他对象提供的装饰来反序列化 std::vector> 。 “装饰”实现的功能之一是向量中的空条目。我在实际实施中遇到了障碍。不过,我已经成功地…
boost-spirit 数字解析器并获取所需的合成属性
--编辑--解决了问题:对最后一个旁注的评论会很有帮助。另外,对 phoenix::bind 重载处理的评论也会有所帮助(在我的回答中)。 我正在一个具有严格类…
最小化 boost::spirit 编译时间
有什么减少 boost::spirit 编译时间的想法吗? 我刚刚移植了一个 Flex 解析器来 boost::spirit。 EBNF 大约有 25 条规则。 结果运行良好,运行时性能…
boost::bind 和 boost::phoenix 占位符之间的混淆
boost::spirit 文档有这个重要警告 为 Spirit.Qi 编写语义动作有不同的方法:使用 普通函数、Boost.Bind、Boost.Lambda 或 Phoenix。后者 三个允许您…
boost::spirit Stream_parser 消耗太多?
我在将类与 iostream 解析集成时遇到一些问题 支持精神解析器。下面的示例(根据 Spirit 示例修改)演示了 问题。如果我尝试仅解析自定义类,它会成功…
qi::rule不解析输入字符串
我有一个奇怪的麻烦: qi::rule str = +alnum; // will not parse given input //param = "WELL" >> space >> str >> ((space >> no_case[control]) |…
如何为 boost::spirit::qi 和 std::list 容器定义流运算符
在我的规则之一中有 qi::locals<>以 stl 容器作为参数。当我在没有 BOOST_SPIRIT_QI_DEBUG 的情况下编译程序时,一切正常。但是当我打开 BOOST_SPIRIT…
将文件路径字符串传递给 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 any_vecto…