我们希望使用Rascal在Eclipse工作区中的Java项目集合中查找所有未使用的公共方法。我刚学会了如何使用createM3FromEclipseProject
在Eclipse中创建Java项目模型并进行导航。但这只考虑了一个项目。如何在我的工作区中的所有Java项目中执行此分析?
答案 0 :(得分:0)
很好的问题。您可以从每个项目中提取模型,给定正确的Eclipse编译器设置和所有内容,然后您可以合并模型以获得一个总体模型:
import lang::java::m3::Core;
M3 composeJavaM3(loc id, set[M3] models) // the function to call
这将允许您对生成的M3模型进行跨项目分析。
有一些警告,即如果两个项目中都存在相同的限定类名,但它们实际上是不同的类,那么compose函数会将它们相互映射。要解决这些问题,您首先必须进行一些预处理(请参阅link
函数),但我们还没有获得相关经验。
答案 1 :(得分:0)
如果您熟悉Rascal编程,可以执行以下操作:
如果没有,您可以创建问题here,我们可以将其添加到不稳定的版本中。由于下面提到的警告,因此没有添加。