我必须为自定义 JVM 语言实现一个静态代码分析工具,并且我希望拥有 JavaClass<?>
类中可访问的大多数方法,例如:getDeclaredMethods(): Method[]
. 我想出了两种方法:
1)编译所有类,这样我就有了.class文件,我可以在这些文件上调用javap,然后将javap的结果保存到java源文件并使用Java类型信息。
2) 使用 antlr4 并创建与 Java 中可访问的相同的类结构。也许还有其他方法?
我觉得选项 2 是在重新发明轮子,或者它可能是有效的方法?我认为选项 1 会更好,但我不确定这是否可行……然后它不是真正的静态代码分析,因为我需要编译我的自定义语言的所有文件。
你能帮我吗,或者至少给我指出正确的方向?