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