问题标签 [xpressive]

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 投票
1 回答
365 浏览

c++ - 预编译 .h 文件

我有一个用 boost::xpressive 编写的非常短的程序

这是 Xpressive 的“hello world”。编译时间比普通的 hello world 要长得多。我认为这是因为 xpressive.hpp 文件太大了。有没有办法预编译或预处理 .hpp 文件,这样编译会快得多?

0 投票
0 回答
283 浏览

c++ - 增强表现性错误

这个使用 Boost xpressive(最新版本)的简单示例会引发错误:Access violation reading location 0x000000. 错误发生在 regex_match 上。这一定很简单,但我一直看着它,直到我疯了。

为什么这不起作用?

0 投票
1 回答
283 浏览

c++ - boost::xpressive 语法是否可以报告语法错误?

我正在尝试解析一种自定义语言(与 JSON 不太相似),我决定尝试使用 boost expressive,因为它看起来很有趣。

但是,当一个 xpressive 匹配失败时,它只是失败了。有什么方法可以实现某种错误报告?就像 ' 表达式匹配到第 47 个字符(我可以从中获取行号)。

我可以看到人们如何在寻找它想要的标记或匹配项之后调整每个子表达式以查找其他标记或匹配项,并在这种情况下报告错误,但这似乎是一种非常复杂的方法。

是否有任何表达功能(或任何人都可以提出一种方法)可以让我这样做?

谢谢。

0 投票
1 回答
254 浏览

c++ - 如何使用 boost::xpressive static 在语义操作中引用可选子匹配?

我有一个提升 xpressive 正则表达式和语义操作,相当于以下内容:

以前我在 boost 1.43 上使用它没有任何问题。我最近不得不升级到更新的提升,现在我遇到了以下问题。在 boost 1.48 上,当子匹配不匹配任何内容(因为它是可选的)时,在空对象上执行bad_lexical_cast时语义操作会引发异常。ass1

我该如何解决这个问题,它之前是否有效只是巧合,并且我应该使用一些更好的更安全的方法来解决这个问题?或者这只是例如lexical_cast现在中断的代码中的一些更改xpressive

附加信息

通过更改 regex_actions.hpp 中的以下内容,我设法暂时解决了实际问题:

进入:

这使我相信,也许这本身就是需要解决的问题xpressive。但是,我还不是 100% 相信这不是我做错的事情,任何有更多知识的xpressive人对此有一些见解?

0 投票
1 回答
84 浏览

memory-leaks - “Xpressive泄漏”已修复,但不理解

我知道。Xpressive 在这里(可能)没有错,但我付出了很多努力来寻找内存泄漏,我不得不调整代码布局以修复出血。

有人可以向我解释为什么布局的变化修复了它吗?我不明白为什么(正确/改进)使用“static const”可以修复泄漏。

顺便说一句,泄漏发生在 MIP 内核上,使用 boost 版本 1.49,并与 GCC 4.3.3 交叉编译。

原始“筛子”代码:

修复了“无泄漏”代码:

每次调用 foo! 时似乎都会发生泄漏!

0 投票
1 回答
151 浏览

c++ - Boost::Xpressive::sregex uri 模式匹配

我一直在搜索和测试正则表达式以匹配所有 uris,但我似乎找不到一个匹配所有或大部分的。我尝试过的很多都引发了编译错误。有人有 Xpressive::sRegex 兼容的正则表达式吗?

0 投票
0 回答
62 浏览

boost - boost 1.58 xpressive::sregex 在调试模式下输出错误

在 Visual C++ 2013 上使用 boost1.58 的 boost::xpressive 时遇到了一些问题。

我使用以下代码的测试程序会溢出如下错误。

在发布模式下不会发生此错误。

这是boost的bug吗?

错误:

e:\dev\vs2013projects\sandbox\sandbox\sandbox.cpp(35) :参见对函数模板实例化的参考 'boost::xpressive::basic_regex>>> boost::xpressive::basic_regex>>>::compile(const char *,boost::xpressive::basic_regex>>>::flag_type)' 正在编译 1>
e:\dev\vs2013projects\sandbox\sandbox\sandbox.cpp(35) : 参见类模板实例化 'boost:: xpressive::basic_regex>>>' 正在编译

0 投票
0 回答
157 浏览

excel - 在 xpress 中初始化 excel 文件

我正在尝试将 excel 文件导入 xpress 脚本的初始化部分,而不是对数据进行硬编码。谁能提供一个示例脚本,他们可以同时导入多个列和行?让我知道是否应该提供示例文件或更多信息。不幸的是,在线 Xpress 上没有很多教程/文档。谢谢!

0 投票
1 回答
494 浏览

xpressive - 谁在 Mosel Xpress IVE 中创建动态数组并调整其大小?

我正在尝试创建一个大小为 5 的动态数组( x : dynamic array(5) of integer),我用x(1)=1,x(2)=4,x(3)=1,x(4)=2,x(5)=3.

多亏了这一点,我想解决一个问题。然后,在同一个程序中,我想将此数组的 die 大小增加到 7 以添加另一个值x(6)=2,x(7)=3,请提供一个可以做到这一点的算法。

0 投票
0 回答
34 浏览

c++ - Boost::xpressive regex_search 在单个字符串中连接匹配

我想将 regex_search 找到的所有匹配项连接成一个字符串,然后返回它。我尝试用 std::accumulate 来做,但失败了。

有没有办法返回类似的东西std::accumulate(what.begin()+1, what.end(), someFunc)
我对函数式编程不是很熟悉。我知道我可以创建一个将字符串添加在一起的 for 循环,但我想尝试以其他方式进行。提前致谢!

这是一个伪代码片段,可以帮助您更好地理解我想要做什么。