使用 RascalMPL 进行双向翻译

问题描述 投票:0回答:1

在 RascalMPL 中进行语言 A 和语言 B 之间的双向翻译的方法是什么,我正在考虑使用 Model2Model 或 Model2Text 翻译 (尽管我不清楚 Model2Model 如何在 Rascal 中实现) ) 以及在 RascalMPL 中进行双向翻译需要哪些必要组件 (如语法、ADT 等)?优点、缺点和任何资源将不胜感激。 :-)

rascal
1个回答
2
投票

Rascal 不支持自动双向转换(例如,如 BX 社区中研究的那样:http://bx-community.wikidot.com/),但是,如果您愿意,您可以实现它们。

Rascal 中的 Model2Model 大致对应于 AST2AST(其中 AST 的类型在 ADT 中定义); Model2Text 将对应于 AST2string。

有一个用于将 ECore 模型导入 Rascal 的库(并从 ECore 元模型生成 ADT),但是,它有点旧,并且处于 alpha 阶段:https://github.com/cwi-swat/rascal-ecore

© www.soinside.com 2019 - 2024. All rights reserved.