boost-spirit相关内容

C ++ boost :: spirit解析嵌入式语言

我的问题实际上很简单.我目前正在开发一种语言解析器,可以解析具有嵌入式DSL的元语言.这对我来说很有趣,因为它可以解析具有HTML和嵌入式JavaScript/CSS的网站.我想针对特定用例设计具有最少DSL的类似系统. boost :: spirit是否有能力做类似的事情?我只是不知道boost :: spirit是如何处理词法分析器生成的,或者甚至是无扫描器的解析器. 提前谢谢! ..
发布时间:2020-09-22 19:01:10 C/C++开发

如何在Boost Spirit中设置最大递归

如果我有递归规则来解析括号,请使用boost :: spirit rule term; term %= string("(") >> *term >> string(")"); 如何限制最大递归量?例如,如果我尝试解析一百万个嵌套括号,则会出现段错误,因为已超出堆栈大小.具体来说,这是一个完整的示例. #i ..
发布时间:2020-09-22 18:59:52 C/C++开发

使用非无效函数对象增强精神语义动作

在我的语义动作中,我不仅试图打印出已解析的内容.但是,语义动作函数应该创建一个新对象,而该对象又应该是解析器创建的值. 让我们承担以下任务: 解析器应该将地址/引用传递给对象 typedef std::pair, std::map > mappin ..
发布时间:2020-09-22 18:58:44 C/C++开发

使用精神来分析类吗?

下面是booster spirit文档中的employee.cpp源文件.它是“结构雇员",后跟一个宏,该宏告诉有关“结构雇员"的融合,然后是雇员解析器. 我正在尝试为此目的进行调整,但我不想使用“结构型员工",而是希望使用许多类来代替“结构型员工". 我正在尝试尝试将"struct employee"替换为类,但是我没有看到宏在融合中做到这一点吗?我不想将其放入struct的原因是因 ..
发布时间:2020-09-22 18:57:36 C/C++开发

使用Boost :: Spirit(V2.4)解析到容器中

我刚刚开始研究Boost :: Spirit,目前是最新版本-V2.4. 我的问题的实质是: 我想解析"1a2" 或"3b4"之类的字符串. 因此,我使用的规则是: (double_ >> lit('b') >> double_) | (double_ >> lit('a') >> double_); 规则的属性必须为"vector".我正在将其读取到容器中. ..
发布时间:2020-09-22 18:57:28 其他开发

是否可以将动作附加到boost :: spirit :: rule解析器,该解析器将解析的结果分配给(尚未)未知实例的成员?

我正在尝试从boost :: spirit规则定义的操作中引用一个(尚未)未知实例的成员,所以在伪代码中, 而不是 double_ [ref(rN)= _1] 我正在寻找类似的东西 X ** ppx; double_ [ref(& X :: rN,ppx)= _1] 一种解决方法可能是一个简单的“语义动作",其中包含一个知道实例并能够写入实例的参数,例如 qi::rule ..
发布时间:2020-09-22 18:56:20 C/C++开发

使用boost :: karma格式化纬度/经度字符串

我需要将double值格式化为具有非常特定格式的坐标字符串,"DDMMSS.SSX"其中: "DD"是全学位 "MM"是完整的分钟数 "SS.SS"是带分数的秒数 "X"取决于半球是"N"还是"S" 字段必须用零填充.不能接受空格.格式示例如下: 47.2535 ==> "471512.45N" -0.123345 ==> "000724.04S" 我设法创建了完成该任 ..
发布时间:2020-09-22 18:56:07 C/C++开发

Boost Spirit X3的生产准备就绪了吗?

我正在将手写的解析器迁移到Boost.Spirit(2.5.4).第一印象是积极的,但是由于我使用的是C ++ 17,因此X3似乎是一个非常有吸引力的选择. 幸运的是,有关X3的资源很多: 许多有关Stackoverflow上X3的问题 关于在YouTube上有关X3的视频 一个在线文档 但是: Boost.Org上没有任何内容,给人的印象是,尽管Spirit X3是Bo ..
发布时间:2020-09-22 18:56:05 其他开发