使用 LPEG(Lua 解析器表达式语法),例如 boost::spirit
所以我正在用 lpeg 来代替 boostspirit 语法,我必须说 boost::spirit 比 lpeg 更加优雅和自然。然而,由于当前 C++ 编译器技术的限制以及 C++ 中 TMP…
如何在带有 Boost Spirit 的 AST 中使用只有一个属性的类?
我想使用 Boost Spirit 将文件解析为 AST。 我的 AST 的根是一个只有一个属性的类: typedef boost::variant FirstLevelBlock; struct Program { std:…
Boost.Spirit 重叠操作/重用终端令牌
使用 Boost.Spirit,是否可以将终端令牌传递给多个操作,如果可以,语法是什么? 例如,假设我有两条规则: 规则 1 消耗“A B”并具有关联操作“void …
我无法获取令牌的字符串值
我尝试使用 Boost Spirit 为一种小型编程语言实现词法分析器。 我必须获取令牌的值,但出现 bad_get 异常: 抛出“boost::bad_get”实例后调用终止 Wh…
Spirit 无法将属性分配给单元素结构(或融合序列)
我的目标是让我的 qi::grammar 返回一个属性。不过,我在使用 spirit::lexer 执行此操作时遇到了很大的困难。 我希望使用下面给定的语法,如果我用 sp…
使用 Boost::Spirit 解析转义字符串
我想编写一个 boost::spirit 解析器,它解析使用转义双引号的双引号中的简单字符串,例如 "a \"b\" c"。 这是我尝试过的: #include #include #includ…
我无法在 Boost Spirit 的词法分析器功能中获取语义操作进行编译
所以,我正在使用 boost 1.47.0,并且我一直在尝试组合一个词法分析器。 我的目标是向我的词法分析器的一些标记添加一个语义操作,其中包含 spirit::l…
基于 Boost Spirit 语法的字符串分割
我使用的是 Boost 1.44,Spirit 解析器对于数字解析效果很好,但对于字符串解析来说确实很棘手。我正在尝试解析要使用多个分隔符分割的字符串: ',' ,…
Boost Spirit 罗马数字解析器示例
尝试学习 boost Spirit 和文档中给出的示例让我有点困惑。 参考此代码: http://www. boost.org/doc/libs/1_46_1/libs/spirit/example/qi/roman.cpp …
需要词法分析器运行时错误的帮助
我正在尝试为修改后的 C 语言编写一个 C qi 解析器。当我取消注释 t_in_op 和下面的部分时,我收到一个运行时错误,指出 Syntax Error: Hit BEGIN whe…
boost::spirit 字符/字符串混合
我正在尝试使用 boost::spirit 来解析字符标记,但遇到了很大的困难。这是我正在处理的示例代码: #include #include #include using namespace std; …
Boost::Spirit mini_c 教程
Closed. This question is seeking recommendations for software libraries, tutorials, tools, books, or other off-site resources. It does not …
Boost.Spirit(2) Lex:strip_comments_lexer.cpp - 不起作用?
boost_1_47_0/libs/spirit/example/lex/strip_comments_lexer.cpp 不删除 C 风格的注释。 为什么?…
Boost Spirit 规则和语法中模板参数中的括号
看看 这个用于实现 Spirit 解析器的示例,当我试图编写类似的东西时,有些东西让我感到困惑。 语法的属性模板参数(std::map())和规则的签名模板参数…
无法在 Spirit:: Qi 中定义规则
我正在尝试将 Unix 文件路径解析为文件夹对(键/值对 - 根据我的应用程序的需要)。问题是我无法正确使用 qi::rule 定义解析器。我收到了一些我无法完…