我知道Rascal旨在成为其他语言的元语言。这些语言是否包括Rascal本身?是否有可用或计划的quote
la Lisp等元设施?
答案 0 :(得分:1)
您可以通过包含Rascal语法定义并使用常规引号来使用Rascal转换Rascal。我们不打算在运行时为Rascal本身添加引用。
我之前忘记提到的一件事是,“资源”机制可用于在“导入”时操纵Rascal代码。您可以编写任何函数,如:
@resource{myScheme}
str generateNewCode(str name, loc l) = ...
generateNewCode
应该生成一个名为name
的Rascal模块。
在此之后,您可以按如下方式导入:
import MyModule = myScheme://someOtherModuleName;
然后由generatecal导入生成的模块由Rascal导入您输入导入的模块。
没有什么可以阻止你编写一个解析另一个模块的generateNewCode函数,重写或扩展它然后将被导入。