parsing - 使用 `nom` 处理自定义枚举类型是否有意义?

标签 parsing rust nom

我正在尝试为一种简单的查询语言实现一个解析器。目标是从文本生成操作,然后在将它们向上传递到树之前评估它们。如果我理解正确,我将不得不实现一些 nom 特征(InputLengthInputTakeSlice)。

通过实现 InputTake 特性的一部分,我意识到我应该返回代表我的查询操作的枚举的子片段,其中可以通过标识符进行拆分。例如,我可能会解析一个标识符 name_of_var 并且此 take_split() 方法可能会产生 2 个切片,这对我来说没有意义。

我应该在这里做什么?我不喜欢对 bool/number 进行切片的想法,因为它们只有作为一个整体才有意义。

在我认为字节切片无效的情况下,您如何看待返回 None

最佳答案

为了它的值(value)...

我假设一个解析器的输出类型是父解析器的输入。真正发生的是所有解析器都可以期望相同的输入类型并返回他们喜欢的任何类型。最后返回并操作生成的对象(这是一个 AST)。

关于parsing - 使用 `nom` 处理自定义枚举类型是否有意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47850301/

相关文章:

c - 用 C 分解 xml 文本

php - 使用php从xml中提取信息

jquery - 将来自 json 响应的 JSON 值放入 HTML 元素

rust - 泛型和关联类型有什么区别?

rust - 结构必须长于成员引用

parsing - Go中如何高效方便的解析一条简单的消息?

rust - std::op 特征的类型不匹配 "Not"

parsing - 如何使用 nom 精确匹配一个字节?

使用 nom 解析驼峰式字符串

rust - 使用 Nom 5 解析带有转义引号的单引号字符串