我已经成功地使用boost::spirit::qi来解析由内置解析器(例如byte_,little_word等)组成的流。然而,现在我需要解析不属于这些类别之一的数据。例如,我想将一个16.16固定点二进制数转换为双精度浮点数;例如,little_word << little_16...
阅读并观看此演示文稿:http://boost-spirit.com/home/2011/06/12/ast-construction-with-the-universal-tree/我发现了这个声明--基本上我们建议不使用语义操作。 我必须承认,我已经有过这样的感受:带有语义动作的语法实际...
我是一个有用的助手,可以为您翻译文本。 我遇到了boost spirit skippers的问题。 我需要解析这样的文件: ROW int int [int, int] int [int, int] ... 我能够轻松解析它(感谢stackoverflow ;)),只需要在第一个in...
我正在尝试解析类似以下C函数的树形表达式(使用Spirit Parser Framework): F( A() , B( GREAT( SOME , NOT ) ) , C( YES ) ) 我将尝试在以下语法上使用三个规则: template< typename Iterato...
我正在开发一个编译器,希望提高其性能。我发现约50%的时间用于解析源文件。由于源文件非常小,而且在此之后我进行了许多转换,所以我认为它是可以改进的。 我的解析器是使用Boost Spirit解析器和词法分析器(使用lexer :: pos_iterator)构建的,并且我有一个中等规模的语法...
我正在将一个手写的解析器迁移到 Boost.Spirit (2.5.4)。我的第一印象很好,但由于我使用的是 C++17,因此 X3 似乎是一个非常有吸引力的选择。 幸运的是,有许多关于 X3 的资源: 许多 Stackoverflow 上关于 X3 的问题 一些 YouTube 上关于...
我在Spirit Qi编译时遇到了问题,它抱怨value_type不是identifier的成员。由于某种原因,Qi的属性系统认为identifier是一个容器类型,并试图枚举它的值类型。 这与这个问题类似,但我认为原因是单个成员结构体,可能与这个错误有关。 #include <st...
我有一个类似于以下的可用语法: 我有一个工作中的语法,类似于以下: stock_price = symbol_ >> date_ >> price_; stock_prices_ = stock_price_ >> stock_prices_ | eps...
我阅读了关于boost::spirit的教程,因为它使用了解析器组合语法,我非常喜欢。制作解析器非常简单。 不幸的是,这些教程并没有详细说明如何从解析器中获取复杂数据结构。我正试图实现Kaleidoscope AST。 以下是我的AST代码: #ifndef __AST_HPP__ #d...
灵活的解析器是否不能与auto一起使用? 当传递给qi::parse()内联时,简单的解析器可以正常工作,但如果通过一个auto变量传递,则会崩溃并出现段错误: #include <cstdio> #include <string> #include <boo...