ANTLR3: как сопоставить инструкции в AST с номером строки в его исходном файле Java
Как найти номера строк (исходного файла) инструкций из AST.
пример:
для следующего кода
24> void foo () {
25> System.out.println ("привет");
26>}
Аст соответствует заявлению печати
METHOD_CALL
.
.
System
out
println
ARGUMENT_LIST
EXPR
" hi "
Я хочу получить номер строки "Система" из сгенерированного дерева. Ответ для "Система" должен быть 25(номер строки в исходном коде).
1 ответ
Решение
Если твой Tree
для System
токен на самом деле CommonTree
тогда вы можете использовать CommonTree.getToken()
способ получить Token
за Symbol
, Вы можете позвонить Token.getLine()
чтобы получить номер строки.