我正在尝试为简单的查询语言实现解析器。目标是从文本生成operations
,然后在将它们传递到树之前对其进行评估。如果我理解正确,我将必须实现一些nom特征(InputLength
,InputTake
,Slice
)。
通过实现InputTake
特征的一部分,我意识到我应该返回代表我的查询操作的枚举的子句,其中可以通过标识符进行拆分。例如,我可能会解析标识符name_of_var
,而此take_split()
方法可能会生成2个对我没有意义的切片。
我应该在这做什么?我不喜欢切片bool /数字的想法,因为它们只是作为一个整体有意义。
在我认为字节切片无效的情况下,您如何看待返回None
?
答案 0 :(得分:0)
它的价值......
我假设一个解析器的输出类型是父解析器的输入。真正发生的是所有解析器都可以期望相同的输入类型并返回他们喜欢的任何内容。最后返回并操作生成的对象(即AST)。