Для моего Java-приложения мне нужно иметь возможность, учитывая строку JavaScript, определять фактические аргументы, передаваемые в вызов функции.
Например, учитывая эту строку JavaScript:
const url = "http://foo.bar?q=" + location.href
const method = "GET"
const isAjax = true
let xmlhttp = new XMLHttpRequest();
xmlhttp.open(method, url, isAjax);
Я хотел бы оценить этот JavaScript, чтобы получить это:
xmlhttp.open("GET", "http://foo.bar?q=someurl", true);
Прямо сейчас яиспользование регулярного выражения для поиска интересующих меня частей JavaScript (в данном примере это будет метод open объекта XMLHttpRequest), но мне нужно иметь возможность вычислять фактические значения аргументов, передаваемых функции, если они не жестко закодированы со стороны вызова.
Я искал здесь, но то, что я обнаружил, было больше связано с фактическим выполнением кода JavaScript, а не с просмотром значений его выражений (больше похоже на его оценку, получениеAST или что-то в этом роде.)
Есть идеи, как этого добиться?