1

我有一个如下的树顶语法:

grammar Addme

  rule AddExpr
    Num '+' Num
  end

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

end

当我解析表达式时,这是有效的:

g = AddmeParser.new
t = g.parse("1234+56789")

. . . 有一个"1234"与 type匹配的语法节点ExprNumber。但是,如果我像这样在规则中添加括号:

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

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

4

1 回答 1

0

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

于 2019-01-29T06:56:44.307 回答