Я не могу говорить по прямым знаниям Eclipse AST. Однако в той степени, в которой эти являются традиционными AST, просто представленными в Java, в значительной степени способ, которым вы должны посещать узлы дерева в отсутствие какой-либо другой помощи, заключается в обходе дерева.
Конечно, вы, вероятно, можете фильтровать узлы AST по некоторому типу информации о положении файла (строка, столбец, ...), которую Eclipse связывает с такими узлами, и просто фильтровать AST, отмеченные нужной линией. Если вы действительно, действительно не заботитесь о том, сколько времени это займет (в худшем случае линейный размер файла, мой опыт работы с другими системами показывает, что вы получаете ~ 5-7 узлов в среднем на исходную строку), этого должно быть достаточно для ваших целей.
Если вам нужен прямой доступ к узлам дерева, связанным с конкретным номером строки, я думаю, вам не повезло. Очевидно, что вы можете построить такую карту самостоятельно, пройдя по дереву один раз и собрав все узлы, которые имеют определенную строку numbe; тогда вы можете получить доступ, который хотите. [Вам действительно нужно только связать first AST линии (крайний левый в обходе дерева по порядку), чтобы эту карту можно было использовать]
Опять же, обход дерева для построения этого списка - линейное время, и вы заплатите его только один раз.
Кстати, я создавал инструменты, которые обрабатывают AST в течение ~ 30 лет, и не нашел это особенно полезным.
Если вы настаиваете и хотите снизить стоимость построения этой карты, я бы заглянул внутрь механизма разбора и изменил его для выполнения этой работы. Он производит все эти узлы AST и знает номер строки источника, обрабатываемого при создании такого узла. Построить карту должно быть легко, поскольку генерируются узлы AST. Если ваш синтаксический анализатор хорош, это фактически линейное время, и добавление этой работы не изменит линейность.