问题标签 [nom]

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 投票
3 回答
421 浏览

floating-point - 如何用 nom 解析完整的 f32?

有一个函数float_s可以解析流 mod 中的浮点数(可以返回Incomplete)。我想改为CompleteStr用作输入类型。我怎样才能做到这一点?

简单的方法因抱怨&strCompleteStr不匹配而失败:

我正在使用nom 4.0.0.

0 投票
2 回答
557 浏览

rust - 为什么我的 nom 解析器不消耗整个输入,而留下最后一块未解析?

我正在尝试在空格和逗号上拆分日志行,以创建 a VectorofTokenFieldSeparator如下面的代码所示。

我的问题是 nom 似乎没有消耗整个日志行,它使最后一部分未解析 - 在这种情况下08:33:58)

main.rs

货运.toml

输出

0 投票
1 回答
399 浏览

rust - 当我通过 CompleteStr 时,为什么 nom 期望一个 &str?

解析器按预期工作,直到我想解析h:始终是字符串中最后一个数字的数字并且编译器给了我

我认为这是因为解析器正在向前看。我该如何阻止它,或者我如何表示它已经完成?

0 投票
1 回答
203 浏览

rust - 为什么在名为的宏中将 nom 的 CompleteStr 转换为 String!返回一个结果?

当我尝试将 nom's 转换CompleteStr为 a Stringin 时named!,我收到一条错误消息,指出它正在返回 a Result

会抛出错误

0 投票
0 回答
63 浏览

rust - 将宏与 nom 库相结合

我正在尝试使用 nom 库来解析FEN String。我使用了一个alt!宏来组合三个对单个字符进行操作的较小组合器。现在我想使用相同的组合器将字符串解析为向量。

我正在尝试使用many1!组合器来提取 1 个或多个 fen_char。这是我认为可行的,并且我尝试了其他一些似乎不起作用的变体。

当我运行它时,我收到一个带有 value 的失败选项Incomplete(Size(1))。我不确定该怎么做。

0 投票
1 回答
1171 浏览

rust - 如何使用 nom 吞噬字符串直到分隔符或结尾?

我正在学习 nom,作为一个测试示例,我试图解析一个字符串直到一个分隔符。如果我的分隔符是/,那么我想匹配该分隔符之前的所有内容。为此,像这样的解析器可以工作:

我还想匹配一个在该分隔符之前结束的字符串,所以我想要两者foo/barfoo返回“foo”。我似乎在解析器和组合器列表中找不到任何合适的东西。

我想可以扫描分隔符或字符串的结尾,但似乎这是一种常见的情况,应该有一些明显的东西我遗漏了。

0 投票
2 回答
1315 浏览

parsing - 如何使用 nom 将带有符号的字符串解析为 i32?

使用nom crate,我正在尝试编写一个解析器,它可以i32从 a 中识别带符号的数字String,即可以将字符串-42转换为i32表示形式。

到目前为止,我已经想出了以下内容,但我无法解析负数:

我也尝试了以下方法,但出现了一个神秘的编译错误:

关于如何修复它的任何建议?还是使用 nom 实现这一目标的更简单方法?

我明确地希望用 nom 来实现它,因为我正在尝试解析更复杂的结构。i32::from_str(s)适用于简单的字符串,但这不是我想要的。

0 投票
1 回答
214 浏览

rust - 如何使用 nom 解析 Redis RESP 批量字符串?

我需要使用 nom 来解析RESP 请求/回复。当我来到批量字符串时,例如

或者

首先,我编写函数从数据中提取len

然后我根据len得到原始字符串:

但我得到一个编译错误:

如何根据之前从文本中提取的len获取原始字符串?好像我不能take!在自己的闭包中使用。

0 投票
1 回答
1561 浏览

rust - 如何制作一个也跳过面向行的注释的 nom 空白解析器?

我正在为 nom 4.2.2 中的基于文本的格式编写解析器,并且我正在使用空格工具来跳过空格。我必须使用自定义解析器,因为这种格式将一些不寻常的字符视为空格。按照该页面上的示例,我使用eat_separator.

如何有效地扩展我的空间解析器以同时使用从行注释#到行尾的行注释?这些注释可以出现在字符串之外的任何地方。我总是想扔掉评论的内容:没有什么比预处理器指令更好的了。

0 投票
2 回答
438 浏览

rust - nom parser借用检查器问题

我有这个使用 nom 4.2.2 的 Rust 程序。(我冒昧地扩展了 nom 解析器功能。)

编译这个程序rustc 1.33.0 (2aa4c46cf 2019-02-28)会产生以下问题:

切换到解析器的注释掉版本编译就好了。有my_parser什么nom_parser不同?谁在借buf?我应该如何更改程序以安抚借阅检查器?