0

我已经使用树顶定义了一种语法,并且大多数值都可以很好地解析,但有些看起来像

Response+Isupport1 offset=0, "...orted by this server" (host,space1,space2,nickname,space3):

... 和 ...

...
SyntaxNode+Isupport0 offset=52, "WATCH=128 " (token,space):
    SyntaxNode+Token0 offset=52, "WATCH=128" (parameter,equals,value):
    ...

SyntaxNode+[Node] 是什么意思?如何修复它以使其正常工作?因为现在,这些节点具有 SyntaxNode 类,而不是 Token 类(这使它们成为通用的并且不符合我的需要)。

据我所知,定义(token space)+是造成这种情况的原因(不知道为什么)。

4

1 回答 1

0

您的问题非常不完整,这可能是它没有得到回答的原因,但是作为编写产生上述显示的检查实现的人,我可能会有所启发。Treetop 创建 SyntaxNodes(或不同类的实例,如果您要求),然后使用包含您的代码的 mixin 模块来扩充它们。您可以将多个模块混合到单个节点中,因为仅调用一个子规则的规则可以将新模块添加到该子规则返回的节点。每种类型都包含一个以 { 开头的代码块,您将获得一个新模块。每条检查行末尾带括号的有趣方法列表来自这些 mixin。

但是,至于为什么您的语法不起作用,您必须向我们展示您的输入和预期的解析结果才能得到答案。

于 2012-08-31T00:41:44.147 回答