Я играю с новым Q.trp от Q и объектом отладки, который вы получаете в случае ошибки.Из того, что я вижу, объект отладки содержит строковое представление исходного кода, где произошла ошибка, а также смещение в той строке, где была вызвана ошибка.
Например,
{
something: 123;
x: 123; ThisThrowsAnError[456;789]; y: 123;
}[]
при выполнении вышеприведенного кода объект отладки будет содержать этот код во всей его полноте, а также смещение, указывающее на (начало) ThisThrowsAnError [].
Мой вопрос - на основе этой информации,Как я могу извлечь весь оператор, который вызвал ошибку?Например, в приведенном выше примере я хотел бы извлечь "ThisThorwsAnError [456; 789]".
Вещи, о которых я думал до сих пор ...
Извлечение строки из смещения, до конца строки.Не работает, хотя, поскольку в той же строке могут быть другие операторы (например, "y: 123" выше)
Разбор исходного кода (буквально, с "parse"),Но тогда что ..?Выводом может быть что угодно (например, лямбда или список операторов), а затем все, что еще нужно, каким-то образом нужно сопоставить с исходными местоположениями
Цените любые идеи!Спасибо