将Scala AST转换为源代码

时间:2011-06-21 22:01:41

标签: scala abstract-syntax-tree

鉴于Scala AST,有没有办法生成Scala源代码?

我正在研究通过解析/分析其他Scala源来自动生成Scala源的方法。任何提示将不胜感激!

2 个答案:

答案 0 :(得分:7)

我已成功使用Mirko Stocker的Scala-Refactoring完成此任务。

对于综合构建AST,它强烈依赖于Scala的NSC的现有Tree DSL

虽然代码有点混乱,但您可以在我的项目ScalaCollider-UGens中找到示例用法。

我还在Johannes Rudolph找到了一个非常有用的课程。

答案 1 :(得分:0)

请参阅我们的DMS Software Reengineering Toolkit

DMS提供了一个完整的生态系统,用于解析/分析/优化/转换多种语言的源代码。它通过为这些任务提供通用机制作为其核心功能来实现这一目标,并根据明确提供的语言定义(“前端”)对其进行专门化。 DMS具有许多语言的前端(C,C ++,C#,Java,COBOL,...),这些语言已经在愤怒中使用,并且是一个非常快速地定义其他语言的过程。

我们或多或少地不断扩展语言集。 DMS已经实现了Scala前端的一部分,我们知道如何基于我们构建的其他30多个前端来完成它,特别强调Java的知识。