0

如何从 AST 中找到指令的行号(源文件)。

例子:

对于以下代码

24> 无效 foo(){

25> System.out.println("hi");

26> }

print 语句对应的 ast 是

         METHOD_CALL
              .
                 .
                    System
                    out
                 println
              ARGUMENT_LIST
                 EXPR
                    " hi "

我想从生成的树中检索“系统”的行号。“系统”的答案应该是 25(源代码中的行号)。

4

1 回答 1

1

如果您的TreeforSystem令牌实际上是 a CommonTree,那么您可以使用该CommonTree.getToken()方法获取Tokenfor Symbol。然后,您可以拨打电话Token.getLine()以获取行号。

于 2013-08-13T00:02:48.517 回答