我知道 Rascal 旨在成为其他语言的元语言。这些语言是否包括 Rascal 本身?是否有quote
可用或计划中的诸如 la Lisp 之类的元工具?
问问题
49 次
1 回答
1
您可以通过包含 Rascal 语法定义并简单地使用普通引号来使用 Rascal 转换 Rascal。我们不打算在运行时为 Rascal 本身 afaik 添加引用。
我之前忘记提到的一件事是,“资源”机制可用于在“导入”时操作 Rascal 代码。您可以编写任何函数,如下所示:
@resource{myScheme}
str generateNewCode(str name, loc l) = ...
generateNewCode
应该生成一个带有 name 的 Rascal 模块name
。
在此之后,您可以按如下方式导入:
import MyModule = myScheme://someOtherModuleName;
然后由 generateNewCode 生成的模块由 Rascal 导入到您输入导入的模块中。
没有什么能阻止您编写解析另一个模块、重写或扩展它然后将被导入的 generateNewCode 函数。
于 2013-10-21T09:00:49.537 回答