Мне бы очень хотелось иметь возможность запускать некоторую программу Rascal из-за пределов REPL (например, как часть скрипта или вызванного из другой программы). То, что я использую Rascal for, является промежуточным этапом в более крупной структуре, поэтому мне интересно, как лучше всего интегрировать выполнение кода Rascal из другой программы.Запуск программы Rascal извне REPL
ответ
В настоящее время лучшим способом является пакетный код вместе с исполняемым банком оболочки Rascal. Для вызова кода Rascal существует класс удобства JavaToRascal. Иногда требуется некоторое мышление для добавления ваших собственных модулей в путь поиска Rascal с использованием IRascalSearchPathContributor
s, но если вы включите файл RASCAL.MF с нужными свойствами, все должно идти автоматически.
Если вы думаете о плагине Eclipse, лучший способ - позволить вашему плагину зависеть от плагина rascal-eclipse и использовать ProjectEvaluatorFactory
, чтобы получить доступ к интерпретатору.
Предостережение: поскольку мы переходим к скомпилированной системе, код, который вы пишете для такого рода интеграции, изменится. Именно по этой причине мы еще не задокументировали API для вызова Rascal с Java.