C / C ++表达式运算符优先级的括号计算器

时间:2019-06-03 09:56:38

标签: c++ c operator-precedence deobfuscation

在将一些混淆的C代码移植到C ++(即Harm Geert Muller的Fairy-Max国际象棋引擎)中之后,我得到了许多类似于以下警告:

  

在'&'[-Werror =括号]的操作数比较中建议的括号

     

在操作数“&”中的“ +”周围的最圆括号

关闭警告不是 选项,但解决方案是根据operator precedence在表达式中添加括号。

例如:

clang-format

需要转换成这样:

{{1}}

但是手动执行此操作非常耗时。

我尝试使用this去模糊工具,该工具在内部使用{{1}},但没有在表达式中添加括号...

问题

是否有一个工具(最好在线)可以将C / C ++表达式作为输入并返回无警告的等效表达式作为输出?

1 个答案:

答案 0 :(得分:2)

Geordi can do it

我一直想要一个网络版本,但是上一次我试图让Geordi在我的VPS上工作时,由于Haskell依赖古怪,我惨败了。可能有一天再给它一次。

同时,您可以log onto Freenode IRC/msg geordi --precedence *p->data(例如)。您会打开一个私人消息标签,其中显示结果(例如*(p->data))。随时继续在该标签中发送--precedence <expression>个请求。

Screenshot of tool used on your case