Use

В семантической модели оператор 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.