问题描述
|
给定一个Scala AST,有没有一种生成Scala源代码的方法?
我正在研究通过解析/分析其他Scala源自动生成Scala源的方法。任何提示将不胜感激!
解决方法
我已成功使用Mirko Stocker的Scala重构来完成此任务。
对于AST的综合构建,它强烈依赖于Scala NSC的现有Tree DSL。
尽管代码有些混乱,但是您可以在我的项目ScalaCollider-UGens中找到示例用法。
我还遇到了约翰尼斯·鲁道夫(Johannes Rudolph)的一堂非常有用的课。
, 请参阅我们的DMS软件再造工具包。
DMS提供了一个完整的生态系统,可以解析/分析/优化/转换多种语言的源代码。它通过为这些任务提供通用机制作为其核心功能,并根据明确提供的语言定义(“前端”)对它们进行专门化来实现。 DMS具有用于愤怒的许多语言(C,C ++,C#,Java,COBOL等)的前端,以及用于快速定义其他语言的过程。
我们致力于或多或少地不断扩展语言集。 DMS已经实现了Scala前端的一部分,并且我们知道如何基于我们构建的其他30多个前端来完成它,其中特别强调Java知识。