使用MPS从一个DSL生成不同的文本语言

时间:2015-07-22 17:57:50

标签: mps

我正在寻找一种用几种不同语言生成代码的方法,良好的开端将是ObjC,Java for Android,Unity和JavaScript(Cordova),用于重复代码。目前我正在使用每种语言一遍又一遍地手动编写代码。我正在考虑使用MPS并考虑开发一个DSL并从中生成每种语言的不同代码。

我的问题是MPS是否允许为不同的语言创建不同的TextGen?

1 个答案:

答案 0 :(得分:3)

是的,MPS允许您定位不同的语言。当然,你需要区分两个逻辑阶段" MPS中的生成过程 - 执行模型转换的生成器,以及将模型转换为文本的textgen。生成器通常将DSL转换为通用语言(仍表示为AST),而为该通用语言定义的textgen将代码转换为文本。几个这样的通用"基地"语言目前存在 - Java,C,XML和一些原型。

通过为DSL定义的textgen直接将DSL转换为文本也是可能的,但仅适用于简单的DSL。