2

我知道 Rascal 旨在成为其他语言的元语言。这些语言是否包括 Rascal 本身?是否有quote可用或计划中的诸如 la Lisp 之类的元工具?

4

1 回答 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 回答