问题标签 [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.
floating-point - 如何用 nom 解析完整的 f32?
有一个函数float_s
可以解析流 mod 中的浮点数(可以返回Incomplete
)。我想改为CompleteStr
用作输入类型。我怎样才能做到这一点?
简单的方法因抱怨&str
和CompleteStr
不匹配而失败:
我正在使用nom 4.0.0
.
rust - 为什么我的 nom 解析器不消耗整个输入,而留下最后一块未解析?
我正在尝试在空格和逗号上拆分日志行,以创建 a Vector
ofToken
和Field
,Separator
如下面的代码所示。
我的问题是 nom 似乎没有消耗整个日志行,它使最后一部分未解析 - 在这种情况下08:33:58)
。
main.rs
货运.toml
输出
rust - 当我通过 CompleteStr 时,为什么 nom 期望一个 &str?
解析器按预期工作,直到我想解析h:
始终是字符串中最后一个数字的数字并且编译器给了我
我认为这是因为解析器正在向前看。我该如何阻止它,或者我如何表示它已经完成?
rust - 为什么在名为的宏中将 nom 的 CompleteStr 转换为 String!返回一个结果?
当我尝试将 nom's 转换CompleteStr
为 a String
in 时named!
,我收到一条错误消息,指出它正在返回 a Result
。
会抛出错误
rust - 将宏与 nom 库相结合
我正在尝试使用 nom 库来解析FEN String。我使用了一个alt!
宏来组合三个对单个字符进行操作的较小组合器。现在我想使用相同的组合器将字符串解析为向量。
我正在尝试使用many1!
组合器来提取 1 个或多个 fen_char。这是我认为可行的,并且我尝试了其他一些似乎不起作用的变体。
当我运行它时,我收到一个带有 value 的失败选项Incomplete(Size(1))
。我不确定该怎么做。
rust - 如何使用 nom 吞噬字符串直到分隔符或结尾?
我正在学习 nom,作为一个测试示例,我试图解析一个字符串直到一个分隔符。如果我的分隔符是/
,那么我想匹配该分隔符之前的所有内容。为此,像这样的解析器可以工作:
我还想匹配一个在该分隔符之前结束的字符串,所以我想要两者foo/bar
并foo
返回“foo”。我似乎在解析器和组合器列表中找不到任何合适的东西。
我想可以扫描分隔符或字符串的结尾,但似乎这是一种常见的情况,应该有一些明显的东西我遗漏了。
parsing - 如何使用 nom 将带有符号的字符串解析为 i32?
使用nom crate,我正在尝试编写一个解析器,它可以i32
从 a 中识别带符号的数字String
,即可以将字符串-42
转换为i32
表示形式。
到目前为止,我已经想出了以下内容,但我无法解析负数:
我也尝试了以下方法,但出现了一个神秘的编译错误:
关于如何修复它的任何建议?还是使用 nom 实现这一目标的更简单方法?
我明确地希望用 nom 来实现它,因为我正在尝试解析更复杂的结构。i32::from_str(s)
适用于简单的字符串,但这不是我想要的。
rust - 如何使用 nom 解析 Redis RESP 批量字符串?
我需要使用 nom 来解析RESP 请求/回复。当我来到批量字符串时,例如
或者
首先,我编写函数从数据中提取len。
然后我根据len得到原始字符串:
但我得到一个编译错误:
如何根据之前从文本中提取的len获取原始字符串?好像我不能take!
在自己的闭包中使用。
rust - 如何制作一个也跳过面向行的注释的 nom 空白解析器?
我正在为 nom 4.2.2 中的基于文本的格式编写解析器,并且我正在使用空格工具来跳过空格。我必须使用自定义解析器,因为这种格式将一些不寻常的字符视为空格。按照该页面上的示例,我使用eat_separator
.
如何有效地扩展我的空间解析器以同时使用从行注释#
到行尾的行注释?这些注释可以出现在字符串之外的任何地方。我总是想扔掉评论的内容:没有什么比预处理器指令更好的了。
rust - nom parser借用检查器问题
我有这个使用 nom 4.2.2 的 Rust 程序。(我冒昧地扩展了 nom 解析器功能。)
编译这个程序rustc 1.33.0 (2aa4c46cf 2019-02-28)
会产生以下问题:
切换到解析器的注释掉版本编译就好了。有my_parser
什么nom_parser
不同?谁在借buf?我应该如何更改程序以安抚借阅检查器?