2

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

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

4

1 回答 1

3

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

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

于 2015-07-23T08:16:56.777 回答