在BOOL或算术运算中是否存在不必要的额外parens的最佳方法/算法

时间:2009-07-31 00:46:56

标签: query-optimization parentheses

我有这个,我以编程方式构建它:

(( cat1:bobo AND ( ( cat2:jojo ) OR ( cat2:coco ) ) ))

为了调试,我正在寻找一种好的方法,基本上将它减少到所需的最少量的parens:

cat1:bobo AND ( cat2:jojo  OR  cat2:coco ) 

我在使用C#,但是如果你有一个很好的技术,我会把它移植一下。

2 个答案:

答案 0 :(得分:1)

假设您正在将表达式解析为某种树结构,那么我过去采用的方法只是在树中导航并删除任何只是其他节点容器的节点。

答案 1 :(得分:0)

如果以编程方式构建它,则会有某种表达式树。不是AND节点或OR节点的节点不必呈现括号