Сделать преобразование функтора к списку значений:
Теперь про списки:
LIST устроен примерно так:
A %ST // - возвращает непосредственный стереотип элемента A %P // - возвращает непосредственного родителя элемента
Теперь про списки:
A LIST %ST // - возвращает список стереотипов элемента A LIST %P // - возвращает родителей элемента
LIST устроен примерно так:
ARRAY operator LIST OBJECT IN %S // - элемент от которого получается список ^ IN aFunctor // - функтор получения элемента списка OBJECT VAR l_Element // - элемент списка l_Element := %S Result := [ ( // - открываем массив while true begin l_Element := ( l_Element aFunctor DO ) // - вычисляем следующий элемент списка if ( l_Element pop:object:IsNil ) then // - достигли вершины списка элементов BREAK // - выходим из цикла l_Element // - добавляем элемент в массив end ) ] // - закрываем массив ; // LIST
Сделано.
ОтветитьУдалить