Ruby 为什么自定义SyntaxNode子类不能使用括号?

Ruby 为什么自定义SyntaxNode子类不能使用括号?,ruby,treetop,Ruby,Treetop,我有一个树梢语法,如下所示: grammar Addme rule AddExpr Num '+' Num end rule Num [0-9]+ <ExprNumber> end end 。有一个语法节点将“1234”与类型ExprNumber匹配。 但是,如果我在规则中添加括号,如下所示: rule Num ([0-9]+) <ExprNumber> end 规则编号 ([0-9]+) 结束 它将与类exprnNu

我有一个树梢语法,如下所示:

grammar Addme

  rule AddExpr
    Num '+' Num
  end

  rule Num
    [0-9]+ <ExprNumber>
  end

end
。有一个语法节点将
“1234”
与类型
ExprNumber
匹配。 但是,如果我在规则中添加括号,如下所示:

rule Num
    ([0-9]+) <ExprNumber>
end
规则编号
([0-9]+) 
结束

它将与类
exprnNumber
不匹配。为什么会发生这种情况?

节点已在括号内创建。模块可以混入,但不能混入类。

节点已在括号内创建。模块可以混入,但不能混入类。

中有一些解释。这可能是因为当它放在括号中时,它将它视为应该有一个匹配的模块而不是类。非常感谢。在这种情况下,我真的不明白括号的意思?如何防止类型子类节点已在括号内创建。模块可以混入,但不能混入类中。我检查了树梢语法,括号后不允许节点子类定义,因此它不会生成子类。我现在就要结束了。这仍然是一个悬而未决的问题。我将我的评论复制到下面的答案中。请接受这一点,这样它就不会显示为未回答。这会稍微解释一下。这可能是因为当它放在括号中时,它将它视为应该有一个匹配的模块而不是类。非常感谢。在这种情况下,我真的不明白括号的意思?如何防止类型子类节点已在括号内创建。模块可以混入,但不能混入类中。我检查了树梢语法,括号后不允许节点子类定义,因此它不会生成子类。我现在就要结束了。这仍然是一个悬而未决的问题。我将我的评论复制到下面的答案中。请接受此消息,以使其不再显示为未答复。
rule Num
    ([0-9]+) <ExprNumber>
end