Отслеживание изменений номера строки в JavaParser

В настоящее время я пытаюсь использовать JavaParser , чтобы немного изменить существующий исходный код. Теперь я хотел бы иметь возможность отслеживать изменения номеров строк, внесенные этими модификациями.

В качестве примера предположим, что у нас естьModifierVisitorкоторый добавляет одну строку в тело каждого цикла while (обрабатываемый код может содержать несколько циклов). Обработка следующего кода

      1 public class X {
2     public static void main(String[] args) {
3         int a = 1;
4         while(a < 100) {
5             a *= 2;
6         }
7     }
8 }

превратил бы его в

      1 public class X {
2     public static void main(String[] args) {
3         int a = 1;
4         while(a < 100) {
5             a *= 2;
6             System.out.println("Hello, I am the new line");
7         }
8     }
9 }

Вопрос: Есть ли простой способ / встроенная функция в JavaParser для создания сопоставления строк между этими двумя версиями?

Я хотел бы иметь сопоставление новых номеров строк со старыми (или наоборот). Для приведенного выше примера карта должна выглядеть примерно так:

      New -> Old
  1 ->   1
  2 ->   2
  3 ->   3
  4 ->   4
  5 ->   5
  6 ->  -1 (did not exist in the old version)
  7 ->   6
  8 ->   7
  9 ->   8

0 ответов

Другие вопросы по тегам