问题标签 [boost-spirit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
5203 浏览

c++ - Boost Spirit可以用来解析字节流数据吗?

Spirit(Boost C++ 库的一部分)可以用来解析来自流的二进制数据吗?例如,它能否用于将来自套接字的数据解析为结构、字节和单个位标志?谢谢!

0 投票
2 回答
763 浏览

c++ - 在 DLL 中使用时 Boost Spirit 崩溃

我在我的应用程序中使用 Boost.Spirit 和 Boost.Thread 库时遇到了崩溃。仅当我在主线程的进程生命周期内使用 Spirit 解析器时才会发生这种情况。

崩溃发生在退出时,似乎与 Spirit 解析器分配的线程特定存储的清理有关。它可能由于卸载 DLL 的顺序而崩溃,因为线程特定的内存是在已经卸载的 DLL 内分配的。然而,在应用程序本身退出之前,Boost.Thread DLL 不会被卸载。

有没有办法让我强制 Spirit 清除其线程特定的存储,例如当我收到进程分离通知时在我的 dll-main 中?

任何解决方案/提示将不胜感激。

PS!我的平台和设置:

  • 视觉工作室 2005
  • BOOST_ALL_DYN_LINK
  • BOOST_SPIRIT_THREADSAFE
0 投票
4 回答
1680 浏览

c++ - 提升精神提取第一个单词并将其存储在向量中

我在 Boost.Spirit 解析字符串时遇到问题。

字符串看起来像

我必须提取名称。文本“有这个和那个”总是相同的,但名称可以包含空格,因此我不能使用 graph_p。

1)如何解析这样的字符串?

由于字符串有几行这种格式,我必须将名称存储在一个向量中。

我用过类似的东西

为了保存一个名字,但

2)在向量中保存多个名称的最佳方法是什么?

提前致谢

康拉德

0 投票
5 回答
1481 浏览

c++ - Boost 是否因不像 Boost 那样感到内​​疚?

我只是在阅读 Boost::Spirit LL Parser 框架的介绍。前言暗示作者和创作者喜欢使用这种解析技术来读取程序选项。Boost 没有自己的程序选项库吗?

我想知道,Boost 委员会是否会审查所有图书馆笔记的共同主题和风格?似乎每个图书馆的文档都有自己的风格。

一个令人惊叹的软件的小抱怨,我只是觉得它很好奇。

0 投票
5 回答
9539 浏览

c++ - boost.org 的 Spirit 解析器生成器框架有哪些缺点?

在几个问题中,我从boost.org看到了关于Spirit解析器生成器框架的建议,但是在评论中,使用 Spirit 的人不满意的抱怨。请那些人站出来向我们其他人解释使用 Spirit 的缺点或缺点是什么?

0 投票
2 回答
1591 浏览

c++ - 我如何用精神正确地解析这个?

我的情况:我是 Spirit 的新手,我必须使用 VC6,因此我使用的是 Spirit 1.6.4。

我有一条看起来像这样的线:

DESCRIPTION如果行以 . 开头,我想将文本放入字符串中//The Description;

我有一些有用的东西,但对我来说看起来并不那么优雅:

我更想将所有可打印字符分配到下一个';',但以下不起作用,因为parse(...).hit == false

我如何让它击中?

0 投票
2 回答
559 浏览

c++ - Boost.Spirit 的单元测试

我是 Boost.Spirit 和 Boost.Test 的新手,我想知道您如何验证语法的正确性。下面是我目前如何做的简化版本,我很确定有更好的方法:

每个测试用例都有一对包含要解析的文本和用分号分隔的预期结果的两个字符串。

解析函数执行实际解析并返回一个应该等于预期结果的字符串。

0 投票
4 回答
1575 浏览

c++ - 使用带有 Boost::Spirit 语法的迭代器解析

当我尝试对 Spirit 语法使用迭代器形式的解析时,我得到一个参数,将转换错误从迭代器类型传递到 const char*。我该如何解决?

有一些限制。我在大输入上使用迭代器适配器,因此转换为 C 样式字符串对我来说是不可行的。

这是演示该问题的示例代码:

此代码中断:错误:无法转换const boost::spirit::file_iterator<char_t, boost::spirit::fileiter_impl::mmap_file_iterator<char_t> >const char*参数传递

0 投票
3 回答
297 浏览

c++ - 解析器:解析模板文件中的公式

我将首先描述问题,然后根据库来描述我目前正在研究的内容。

在我的应用程序中,我们有一组始终可用的变量。例如:TOTAL_ITEMS、PRICE、CONTRACTS、ETC(我们大约有 15 个)。应用程序的客户希望使用这些变量执行和显示某些计算。到目前为止,我一直在不断地将这些计算添加到应用程序中。这很麻烦,我想通过创建模板使其更通用,用户可以在模板中指定一组应用程序将解析和计算的公式。

这是一个案例:

因此,想要为用户在模板文件中定义做类似的事情:

total_cost = CONTRACTS*PRICE*TOTAL_ITEMS 和一些元日期,比如显示它的屏幕。因此,他们将使用屏幕指定公式。该文件将包含许多这种性质的公式。

现在,我正在查看两个库:Spiritmatheval

有人会提出对这项任务更好的建议,以及参考、示例、链接吗?

如果问题不清楚,请告诉我,我会尽力进一步澄清。

谢谢,

萨沙

0 投票
1 回答
1262 浏览

c++ - 是否有用于将 EBNF 翻译为 boost::spirit 的翻译工具?

翻译器也可以在 boost::spirit 中。我在互联网上找不到任何东西。也许我应该做一个?