如何使用 boost-spirit? 将结果放入 STL 映射中
#include <QtCore/QCoreApplication> #include <boost/spirit/include/qi.hpp> #include <boost/spirit/include/phoenix.hpp> #include …
从 boostspirit 语法获取结果(phoenixpush_back 导致编译错误)
我有以下精神语法。我正在尝试使用标准 push_back(at_c<0>(qi::_val), qi::_1) 在 struct myresult 中创建 AST 节点向量,但是我出现编译错误(见…
混合“替代品”时的 Boost.Spirit 错误与“可选”?
我只使用 Boost.Spirit(来自 Boost 1.44)三天,尝试通过 RFC2822 中的精确语法来解析原始电子邮件。我以为我开始理解它并有所进展,但后来我遇到了…
使用 boost 精神解析转义字符串
我正在使用 Spirit 2.4,我想解析这样的结构: Text{text_field} 要点是,text_field 中是一个带有符号“{”、“}”和“\”的转义字符串。 我想使用 q…
使用 Boost::Spirit (V2.4) 解析到容器中
我刚刚开始深入研究Boost::Spirit,目前最新版本——V2.4。 我的问题的本质如下: 我想解析像“1a2”或“3b4”这样的字符串。 所以我使用的规则是: (…
了解和使用 Boost Phoenix 库,重点关注惰性评估
我刚刚发现了 Boost Phoenix 库(隐藏在 Spirit 项目中),并且作为函数式编程风格的粉丝(但仍然是业余爱好者;对 haskell 和方案有一些小经验),我…
如何使用 Boost.Spirit.Qi 解析不同的结构?
在此示例中,员工结构是以“employee{int, string, string, double}”的形式解析。 我想知道是否可以修改此示例以解析不同类型的结构,例如“intern{i…
如何使用 Boost Spirit 从 std::string 中提取双对?
我想将具有双对序列的字符串解析为 std::map 与提升精神。 我改编了这个例子 http://svn.boost.org/ svn/boost/trunk/libs/spirit/example/qi/key_val…
boost.spirit 中的编码
我如何为 allocate_a 中的值设置编码?我需要设置西里尔语,但我不知道该怎么做 #include "filter_data.h" #include <boost/bind.hpp> #include &…
boost::spirit 中的运算符优先级?
我使用spirit mini_c 样本做了一些测试。不幸的是,它没有按预期保持运算符优先级: int main() { return 3 > 10 || 3 > 1 } 计算结果为 0。 retu…
复制或引用 boost::spirit 规则的语义?
我正在尝试在 Boost.Spirit 中编写一个 shell 语言解析器。但是,我不清楚有关规则语义的一些基本问题。 查看文档,rule有成员r.alias()和r.copy()。 …
boost::phoenix::at_c 与 boost::spirit::qi::grammar 结合使用是否有替代方案
我创建了一个测试应用程序来说明我的问题。它解析以“a=”或“b=”开头并用“\r\n”分隔的整数列表。该列表以任意顺序包含这些字段的多次出现。 #incl…
从Boost Spirit Classic到Qi的翻译
我昨天开始使用精神。我必须为一种小语言编写一个解析器并形成一个中间数据结构。我按照 Boost Repository 中的 Pascal Parser 示例进行操作。这个例…