// 2026 Богданович Давид Когут Прихожденко (кдб.дійсність.укр)
взяти визначення мавка/бібліотека;
взяти визначення мавка/пристрій;
простір мавка {
простір бібліотека {
внутрішня дія рідна_дія__створити_папку(
М: *Машина,
діяльність: *Діяльність
) -> ЗначенняАбоСтанПадіння {
змінна задіяне_шлях = НЕДІЙСНЕ;
змінна знайдено_задіяне_шлях = ні;
знайдено_задіяне_шлях = знайти_задіяне(М, діяльність.задіяні, 0, М.константи_назв._шлях, задіяне_шлях::адреса);
якщо не знайдено_задіяне_шлях {
вернути ПАДІННЯ(М, створити_текст(М, "Задіяне \"шлях\" має бути текстом або даними."));
}
змінна шлях_ю8 = ю8 { пусто, 0 };
змінна треба_звільнити_шлях = ні;
якщо задіяне_шлях.вид == ЗПредмет {
змінна предмет = задіяне_шлях.дані як *Предмет;
якщо предмет.клас == М.клас_Текст {
змінна предмет_тексту = предмет як *ПредметТексту;
змінна позиція_помилки: природне = 0;
якщо не пристрій_мавки_перекодувати_кд_в_ю8(
предмет_тексту.значення.розмір,
предмет_тексту.значення.дані,
шлях_ю8.розмір::адреса,
шлях_ю8.дані::адреса,
позиція_помилки::адреса
) {
вернути ПАДІННЯ(М, створити_текст(М, "Не вдалося перекодувати \"шлях\" в юнікод."));
}
треба_звільнити_шлях = так;
} інакше якщо предмет.клас == М.клас_Дані {
змінна предмет_даних = предмет як *ПредметДаних;
шлях_ю8.розмір = предмет_даних.розмір;
шлях_ю8.дані = предмет_даних.дані;
} інакше {
вернути ПАДІННЯ(М, створити_текст(М, "Задіяне \"шлях\" має бути текстом або даними."));
}
} інакше {
вернути ПАДІННЯ(М, створити_текст(М, "Задіяне \"шлях\" має бути текстом або даними."));
}
якщо не бібліотека_мавки_створити_папку(шлях_ю8.дані, шлях_ю8.розмір) {
якщо треба_звільнити_шлях {
звільнити(М, шлях_ю8.дані);
}
вернути НЕДІЙСНЕ;
}
якщо треба_звільнити_шлях {
звільнити(М, шлях_ю8.дані);
}
вернути ДІЙСНЕ;
}
дія записати_дію__фс__створити_папку(
М: *Машина,
предмет_модуля: *ПредметМодуля
) {
// потім: створити параметри
змінна д = створити_рідну_дію(
М,
створити_текст(М, "створити_папку"),
М.пуста_послідовність,
пусто,
рідна_дія__створити_папку,
пусто
);
записати_властивість_модуля(
М,
предмет_модуля,
М.константи_назв._створити_папку,
ПРЕДМЕТ(д)
);
}
}
}