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() чтобы получить номер строки.

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