bitwise_or在PEG语法中是什么意思?更准确地说,在上下文中有很多bitwise_or,其中甚至没有解析回连,但也有发生。在bitwise_or中,除了作为Python中的\\之外,还有什么其他用途吗?
从Python提取的示例:-
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.中的垂直条。
发布于 2021-05-20 13:20:13
“按位或运算符”(又名| )具有正则二元算子的最低优先级。优先级较低的唯一二进制运算符是比较运算符,它们受链式约束。 --例如,a < b < c大致相当于a < b and b < c --因此具有特殊的行为。
对于聚乙二醇解析器,优先级通常使用优先爬升进行编码。这意味着低优先级子句与其本身或下一个优先级子句匹配。因此,操作符优先级"| < ^ < & <.“编码在按位或按位、按位和等等的阶梯中:
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在可能发生的二进制操作符的任何位置使用。
https://stackoverflow.com/questions/67620891
复制相似问题