После переноса некоторого запутанного кода C в C ++ (а именно, Fairy-Max шахматный движок Харма Гирта Мюллера), я получаю множество предупреждений, подобных этим:
предложить скобки вокруг сравнения в операнде '&' [-Werror = круглые скобки]
предложить скобки вокруг «+» в операнде «&»
Хотя отключение предупреждений является , а не вариантом, решение заключается в добавлении скобок в выражениях в соответствии с приоритетом оператора .
Например:
if(z&S&&!ab&K==INF&d>2&v>V&v<Beta){
необходимо преобразовать в это:
if((z&S) && ((!ab)&(K==INF)&(d>2)&(v>V)&(v<Beta))) {
Но делать это вручную довольно долго.
Я пытался использовать этот инструмент для деобфускации, который использует clang-format
внутри, но не добавляет скобки в выражения ...
Вопрос
Существует ли инструмент (предпочтительно онлайн), который может принимать выражение C / C ++ в качестве входных данных и возвращать эквивалентное выражение без предупреждений в качестве выходных данных?