我必须为自定义JVM语言实现静态代码分析工具,我希望在Java #!/usr/bin/env bash
/usr/bin/anaconda/bin/conda install -c conda-forge shapely -n py35
类中可以访问大多数方法,例如:Class<?>
。
我提出了两种方法:
1)编译所有类,以便我有.class文件,我可以在其上调用javap,然后从javap保存到java源文件,并使用Java类型信息。
2)使用antlr4并创建与Java中可访问的相同的类结构。 也许还有其他方法吗?
我觉得选项2正在重新发明轮子或者它是否是有效的方法? 我认为1号选项会更好但是我不确定天气这是否可行...然后它不是真正的静态代码分析,因为我需要编译我的自定义语言的所有文件。
你能帮助我,或者至少指出我正确的方向吗?
答案 0 :(得分:0)
有javassist和[cglib]来处理字节码。谷歌的errorprone将自己挂钩到构建过程/编译器。将静态代码分析作为编译器的一部分并不是一个坏主意,例如java编译器检查无法访问的代码。