-1

我正在为一种由两种子语言组成的语言在 PLY 中编写解析器:“普通”表达式语言和类型注释语言。问题是它们共享一些标记,并且两种语言之间的优先级不同。

例如,在表达式语言中a | b, c应该等价于(a | b), c(并且与在 Python 中的含义相同),而在类型语言中应该等价于a | (b, c)( typea或 type b, c,即具有 typeb和 type成员的元组c)。

真正的问题比这要复杂一些,但基本上还是一样的。

在 PLY 中是否可以临时更改优先级?如果没有,我可以应用另一种解决方案吗?

4

1 回答 1

0

事实证明,您可以%prec fakeToken在生产的末尾使用不同的优先级,并facetoken在优先级列表中的正确位置插入。

于 2013-03-19T14:32:48.593 回答