-1

我正在尝试为简单的查询语言实现解析器。目标是operations从文本中生成,然后在将它们传递到树之前对其进行评估。如果我理解正确,我将不得不实现一些 nom 特征(InputLength, InputTake, Slice)。

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

我应该在这里做什么?我不喜欢切片布尔/数字的想法,因为它们只是作为一个整体才有意义。

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

4

1 回答 1

0

物有所值...

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

于 2017-12-18T03:32:49.753 回答