JavaParser语言 - Get typed AST



我想从javaparser或Java代码的另一个解析器中键入AST。这意味着我将能够获得特定变量或参数 返回方法的类型。我在Javaparser的此功能上进行了很多搜索,但是什么都没找到,我认为这是因为Javaparser会使Untying Ast。因此,建议我如何得到这个。但是请不要说解析所有代码并制作我自己的类型,我尝试过,这很难,我认为这比制作自己的AST Parser更难。

我是一个Javaparser的贡献者,我只是在Javaparser的Clojure中做到了这一点。我解释了如何在一篇文章中实施该如何为Java构建符号求解器,在Clojure

中如何构建符号求解器

javaparser或任何其他解析器只需构建代码的抽象语法树(AST),然后您必须解析符号才能了解哪些引用与哪些声明相关联。

假设您的代码中有类似的内容:

a = 1;

现在,要了解应找到该声明的A的类型。它可能是对参数,本地变量,在当前类中声明的字段或对继承的字段声明的引用。如果是继承的字段,则应找到父类的代码(或字节码),并在此处查找a的声明。解析器不这样做,解析只需取一个字符串(或文件)并构建AST。

构建一个符号解析器不是火箭科学,而是需要一些工作。我在上面链接的帖子中描述的解决方案可以在GitHub上找到,如果您愿意,我很乐意帮助您使用它(即使它是用Clojure编写的,也可以很容易地从Java调用它)

最新更新