我们需要生成Java源代码。我们通过对抽象语法树进行建模并使用树沃克生成实际的源代码文本来实现此目的。这一切都很好。生成java代码解析树并对其进行评估
由于我的AST代码有点旧,它不支持注释和泛型。所以我正在寻找开放项目,以用于将来需要代码生成的项目。这就是实际问题出现的地方。我们想要测试生成的代码是否具有正确的行为。
这里是我得到的想法,实际上评估AST而不是生成Java源代码,编译它,并针对该代码运行测试。评估者会加速单元测试,并且可以评估更小的生成代码片段,例如只有一种方法,使得“单位”更合理。
到目前为止,我发现com.sun.codemodel项目对于作为现代(支持java5和6功能)基于AST的代码生成解决方案来说似乎相当不错。
任何人都知道是否有另一个项目可以让我直接评估AST片段(例如单个生成的方法)?
+1有趣的问题,我们想知道答案现在:-) – KLE 2009-09-16 09:51:51
我只是生成该方法的代码,编译和测试。创建一个解释器是相当多的工作。 – 2009-09-16 09:57:01
是没有任何方法可以使javac的发射解析树和中介交涉之类的东西? (类型决议,课堂查询,无论艾拉巴克斯特在答案中如何表达)。 – 2014-04-27 01:45:16