我非常希望能够在REPL之外运行一些Rascal的程序(例如,作为脚本的一部分,或者从另一个程序调用)。我使用Rascal的是一个更大的框架中的中间阶段,所以我想知道从另一个程序中集成执行Rascal代码的最佳方法。
发布于 2015-04-21 19:03:41
现在,最好的方法是将您的代码与Rascal可执行的jar一起打包。有一个用于调用Rascal代码的方便类JavaToRascal。有时,使用IRascalSearchPathContributor将自己的模块添加到Rascal搜索路径需要一些思考,但是如果您包含一个具有正确属性的RASCAL.MF文件,那么所有这些都应该自动进行。
如果您正在考虑Eclipse插件,那么最好的方法是让您的插件依赖于流氓eclipse插件,并使用ProjectEvaluatorFactory访问解释器。
注意:由于我们正在进入编译系统,您为这种集成编写的代码将发生变化。这就是我们还没有记录从Java调用Rascal的API的原因。
发布于 2020-02-10 10:34:02
当我思考同样的问题时,这是我想出的(也许微不足道的)答案:
java -jar /path/to/rascal-shell-stable.jar path/to/myProgram.rsc您必须知道Rascal从当前目录中计算模块名(不知道它是否支持类似于Java的CLASS_PATH),因此在上面的示例中,myProgram.rsc应该有一个module path::to::myProgram的模块声明。计算和声明的模块名称必须匹配。
https://stackoverflow.com/questions/29635063
复制相似问题