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/

相关文章:

macros - 匹配 nom 中的几个字节之一

parsing - Haskell 过滤器选项串联

c++ - 用 C++ 解析网站数据

linux - 在循环中使用时 awk 出现索引错误

rust - 为什么不移动字符串文字?

rust - 如何在 rust 中使用 nom 解析对称带引号的字符串?

python - 将文本文件转换为变量列表

windows - 有没有办法用 Rust 访问 Windows 最近的文件夹?

rust - 表达式中是否有类型注释的语法? (示例用例 : Default trait)

parsing - nom 解析一个单独的列表