Мы попытались импортировать модуль тестового мошенника и модуль из стандартной библиотеки с помощью JavaToRascal.Как вы можете установить путь поиска для JavaToRascal из Java
Тест модуль хранится в C:\Users\Klemens\workspace\RascalInterop\src\MyTest.rsc
и содержит:
module MyTest
Te код Java, содержащий вызов JavaToRascal выглядит следующим образом:
import java.io.PrintWriter;
import java.net.URISyntaxException;
import org.rascalmpl.interpreter.JavaToRascal;
import org.rascalmpl.interpreter.load.IRascalSearchPathContributor;
import org.rascalmpl.interpreter.load.StandardLibraryContributor;
import org.rascalmpl.interpreter.load.URIContributor;
import org.rascalmpl.uri.URIUtil;
public class RascalInterop {
public static void main(String[] args) throws URISyntaxException {
JavaToRascal j2r = new JavaToRascal(new PrintWriter(System.out), new PrintWriter(System.err));
IRascalSearchPathContributor modulePath = new URIContributor(URIUtil.createFileLocation("C:\\Users\\Klemens\\workspace\\RascalInterop\\src\\MyTest.rsc"));
j2r.getEvaluator().addRascalSearchPathContributor(modulePath);
try {
j2r.eval("import MyTest;").toString(); // Could not import module MyTest: can not find in search path
} catch (Exception e) {
System.out.println(e.getMessage());
}
try {
j2r.getEvaluator().addRascalSearchPathContributor(StandardLibraryContributor.getInstance());
j2r.eval("import IO;").toString(); // null pointer exception
} catch (Exception e) {
System.out.println(e.getClass());
}
}
}
Печать в первом блоке Ьгу, который пытается импортировать наш модуль MyTest.rsc
приводит к:
Could not import module MyTest: can not find in search path
?[Advice](http://tutor.rascal-mpl.org/Errors/Static/ModuleImport/ModuleImport.html)
Второй импорт попытке импортировать IO
модуль из стандартных результатов библиотеки в:
class java.lang.NullPointerException
Любые идеи, как использовать правильно установить путь поиска из программы Java? Мы попытались использовать j2r.getEvaluator().addRascalSearchPathContributor
различными способами, но не смогли загрузить модуль MyTest.rsc
из данного каталога.
Спасибо, что посмотрели на пример. Проблема состоит из двух частей: 1. попытка загрузить самодельный модуль. 2. Попытка загрузить модуль из стандартной библиотеки.Я привел пример, чтобы показать конкретные проблемы. –