我正在尝试以自动方式对 javascript 文件(实际上是多种编程语言,但 javascript 暂时可以)进行修改。
我遇到了 Rascal 作为一种元编程语言。我只是想知道它是否已经支持解析和转换 Javascript,就像它对 Java 的方式一样(通过 lang::Java)?
我应该在哪里寻找,开始进行简单的 AST 转换,例如在返回之前添加语句等?
我正在尝试以自动方式对 javascript 文件(实际上是多种编程语言,但 javascript 暂时可以)进行修改。
我遇到了 Rascal 作为一种元编程语言。我只是想知道它是否已经支持解析和转换 Javascript,就像它对 Java 的方式一样(通过 lang::Java)?
我应该在哪里寻找,开始进行简单的 AST 转换,例如在返回之前添加语句等?
不,不是开箱即用。我们在某处有一些 javascript 语法的初步开始(可以转换为 Rascal 的 SDF2 语法),但我猜它需要一些认真的工作才能使其为简单的 AST 转换做好准备。
我们在标准库中有很好的 Javascript (ES5) 语法lang::javascript::saner::Syntax
。(见这里:https ://github.com/cwi-swat/rascal/blob/master/src/org/rascalmpl/library/lang/javascript/saner/Syntax.rsc )
该语法有两个限制: