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