В семантической модели оператор use
позволяет вам включать другие семантические модели и модели домена. Это означает, что если вы включили другую семантическую модель через оператор use
, вы можете вызывать ее предикаты. Аналогично это работает и с доменной моделью.
Например, ниже мы включили доменную модель AutodromeDSL:
use AutodromeDSL from org.d0sl.examples.auto.AutodromeDSL
После этого мы можем вызывать доменные функции, определенные в AutodromeDSL, в нашей семантической модели следующим образом:
def can stop2(car : Car) means
check all
not AutodromeDSL.wall ahead(car)
not AutodromeDSL.road sign(car)
AutodromeDSL.car ahead(car)
end
end def
Вы можете указать класс реализации для доменной модели в поле from
(для семантической модели это не обязательно). Класс реализации нужно указывать только в том случае, если вы хотите запустить модель внутри проекта MPS.
Если вы указали класс реализации, он должен быть доступен через зависимости в вашем MPS-проекте. Реализация может быть добавлена либо через jar-файл, либо реализована непосредственно в MPS в отдельном решении, как это реализовано для примеров Chess и Autodrome.