Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 子语言的优先级_Python_Ply - Fatal编程技术网

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