Есть ли инструмент сравнения / слияния для языков программирования, который работает с учетом синтаксиса (например, XML Diff Tool), делать больше, чем сравнивать построчно (и, возможно, игнорировать пробелы).
Меня интересует программа, которая действительно следует синтаксису и разделителям языка, предлагая изменения без нарушения синтаксической корректности или объединяя операторы, разделенные на несколько строк. Пример поведения:
* при обнаружении if () {
, который вводит дополнительный уровень вложенности, автоматически связывает закрывающую скобку }
несколькими строками ниже с ней.)
* сохраняйте соответствие элементов синтаксиса вместе, избегайте глупостей, таких как удаление блока, как правило, создает:
int function_A()
{
int ret;
ret = something;
ret += something_else;
return ret;
}
int function_B()
{
if(valid)
{
int ret;
ret = something;
ret += something_else;
return ret;
}
else return -1;
}
Лично я бы хотел найти программное обеспечение, способное обрабатывать синтаксис C ++, но было бы интересно знать о решениях для других языков.