如何为自定义JVM语言实现静态代码分析工具的类型信息?

问题描述 投票:0回答:1

我必须为自定义JVM语言实现静态代码分析工具,并且我希望在Java Class<?>类中可以访问大多数方法,例如:getDeclaredMethods(): Method[]。我提出了两种方法:

1)编译所有类,以便我有.class文件,我可以在其上调用javap,然后从javap保存到java源文件,并使用Java类型信息。

2)使用antlr4并创建与Java中可访问的相同的类结构。也许还有其他一些方法?

我觉得选项2是重新发明轮子或者它是否是有效的方法?我认为1号选项会更好但我不确定天气这是否可行...然后它不是真正的静态代码分析,因为我需要编译我的自定义语言的所有文件。

你能帮助我,还是至少指出我正确的方向?

java jvm jvm-languages java-runtime-compiler
1个回答
0
投票

javassist和[cglib]来处理字节码。谷歌的errorprone将自己挂钩到构建过程/编译器。将静态代码分析作为编译器的一部分并不是一个坏主意,例如java编译器检查无法访问的代码。

© www.soinside.com 2019 - 2024. All rights reserved.