首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Python中bitwise_or的目的是什么?

在Python中bitwise_or的目的是什么?
EN

Stack Overflow用户
提问于 2021-05-20 13:02:41
回答 1查看 106关注 0票数 3

bitwise_or在PEG语法中是什么意思?更准确地说,在上下文中有很多bitwise_or,其中甚至没有解析回连,但也有发生。在bitwise_or中,除了作为Python中的\\之外,还有什么其他用途吗?

从Python提取的示例:-

代码语言:javascript
复制
comparison[expr_ty]:
    | a=bitwise_or b=compare_op_bitwise_or_pair+ {
        _PyAST_Compare(
            a,
            CHECK(asdl_int_seq*, _PyPegen_get_cmpops(p, b)),
            CHECK(asdl_expr_seq*, _PyPegen_get_exprs(p, b)),
            EXTRA) }
    | bitwise_or

注意这里的单词bitwise_or 。问题不在于PEG.中的垂直条。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-20 13:20:13

“按位或运算符”(又名| )具有正则二元算子的最低优先级。优先级较低的唯一二进制运算符是比较运算符,它们受链式约束。 --例如,a < b < c大致相当于a < b and b < c --因此具有特殊的行为。

对于聚乙二醇解析器,优先级通常使用优先爬升进行编码。这意味着低优先级子句与其本身或下一个优先级子句匹配。因此,操作符优先级"| < ^ < & <.“编码在按位或按位、按位和等等的阶梯中:

代码语言:javascript
复制
bitwise_or:
    | bitwise_or '|' bitwise_xor 
    | bitwise_xor
bitwise_xor:
    | bitwise_xor '^' bitwise_and 
    | bitwise_and
bitwise_and:
    | bitwise_and '&' shift_expr 
    | shift_expr

这使得bitwise_or成为与所有二进制运算符相匹配的“入口点”:它可以服从于bitwise_xor,后者可以服从于bitwise_and,等等,以获得最高优先级的运算符。值得注意的是,它意味着语法规则bitwise_or可以匹配不包含“按位或”操作的输入--例如,bitwise_or匹配a ^ b

因此,bitwise_or在可能发生的二进制操作符的任何位置使用。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67620891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档