我正在寻找一种用几种不同语言生成代码的方法,良好的开端将是ObjC,Java for Android,Unity和JavaScript(Cordova),用于重复代码。目前我正在使用每种语言一遍又一遍地手动编写代码。我正在考虑使用MPS并考虑开发一个DSL并从中生成每种语言的不同代码。
我的问题是MPS是否允许为不同的语言创建不同的TextGen?
答案 0 :(得分:3)
是的,MPS允许您定位不同的语言。当然,你需要区分两个逻辑阶段" MPS中的生成过程 - 执行模型转换的生成器,以及将模型转换为文本的textgen。生成器通常将DSL转换为通用语言(仍表示为AST),而为该通用语言定义的textgen将代码转换为文本。几个这样的通用"基地"语言目前存在 - Java,C,XML和一些原型。
通过为DSL定义的textgen直接将DSL转换为文本也是可能的,但仅适用于简单的DSL。