Python 子语言的优先级
我正在为一种由两个子语言组成的语言编写一个语法分析器:“正常”表达式语言和类型注释语言。问题是它们共享一些标记,而且两种语言之间的优先级不同 例如,在表达式语言Python 子语言的优先级,python,ply,Python,Ply,我正在为一种由两个子语言组成的语言编写一个语法分析器:“正常”表达式语言和类型注释语言。问题是它们共享一些标记,而且两种语言之间的优先级不同 例如,在表达式语言a|b中,c应等同于(a | b),c(与Python中的意思相同),而在类型语言中,c应等同于a |(b,c)(类型a或类型b,c,即包含类型b和类型c成员的元组) 真正的问题比这复杂一点,但基本上还是一样的 在PLY中是否有可能临时更改优先级?如果没有,是否有其他解决方案可以应用?结果是,您可以在生产结束时使用具有不同优先级的%pre
a|b中,c
应等同于(a | b),c
(与Python中的意思相同),而在类型语言中,c应等同于a |(b,c)
(类型a
或类型b,c
,即包含类型b
和类型c
成员的元组)
真正的问题比这复杂一点,但基本上还是一样的
在PLY中是否有可能临时更改优先级?如果没有,是否有其他解决方案可以应用?结果是,您可以在生产结束时使用具有不同优先级的
%prec fakeToken
,并在优先级列表的正确位置插入facetoken