子语言的优先权

时间:2013-03-19 13:26:53

标签: python ply

我正在PLY中编写一个解析器,用于包含两个子语言的语言:“普通”表达式语言和类型注释语言。问题是他们共享一些令牌,这两种语言的优先级不同。

例如,表达式语言a | b, c应该等同于(a | b), c(并且与Python中的相同),而在类型语言中,它应该等同于a | (b, c) (键入a或键入b, c,这是一个类型为b且类型为c的成员的元组。)

真正的问题比这更复杂,但它仍然基本相同。

PLY暂时可以更改优先权吗?如果没有,我会申请另一种解决方案吗?

1 个答案:

答案 0 :(得分:0)

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