// 2025-2026 Богданович Давид Когут Прихожденко (кдб.дійсність.укр)
/* Бібліотека Мавки */
взяти визначення мавка;
простір мавка {
простір бібліотека {
структура Дані {
розмір: природне;
дані: *п8;
}
}
}
// ВАЖЛИВО: параметри дій бібліотеки НЕ ЗМІНЮВАТИ! інакше прийдеться змінювати ВСЮДИ (віндовс, лінукс, макос, васм)
// якщо треба щось таке зробити, то треба створити нову дію!
// сумісність цих дій між версіями має завжли зберігатись!
// це головна біль потім міняти їх у Васм!
// мат
дія бібліотека_мавки_Е_р64() -> р64;
дія бібліотека_мавки_ЛОГ10_р64() -> р64;
дія бібліотека_мавки_ЛОГ2_р64() -> р64;
дія бібліотека_мавки_ЛОГ2Е_р64() -> р64;
дія бібліотека_мавки_ЛОГ10Е_р64() -> р64;
дія бібліотека_мавки_ПІ_р64() -> р64;
дія бібліотека_мавки_КОРІНЬ1_2_р64() -> р64;
дія бібліотека_мавки_КОРІНЬ2_р64() -> р64;
дія бібліотека_мавки_синус_р64(значення: р64) -> р64;
дія бібліотека_мавки_косинус_р64(значення: р64) -> р64;
дія бібліотека_мавки_тангенс_р64(значення: р64) -> р64;
дія бібліотека_мавки_арксинус_р64(значення: р64) -> р64;
дія бібліотека_мавки_арккосинус_р64(значення: р64) -> р64;
дія бібліотека_мавки_арктангенс_р64(значення: р64) -> р64;
дія бібліотека_мавки_арктангенс2_р64(а: р64, б: р64) -> р64;
дія бібліотека_мавки_абсолютне_р64(значення: р64) -> р64;
дія бібліотека_мавки_експонента_р64(значення: р64) -> р64;
дія бібліотека_мавки_корінь2_р64(значення: р64) -> р64;
дія бібліотека_мавки_стеля_р64(значення: р64) -> р64;
дія бібліотека_мавки_підлога_р64(значення: р64) -> р64;
дія бібліотека_мавки_округлити_р64(значення: р64) -> р64;
// афс
дія бібліотека_мавки_афс_видалити(
дані_шляху: *п8,
розмір_шляху: природне,
обробник: (видалено: природне, помилка: природне, аргумент: адреса) -> ніщо,
аргумент: адреса
);
дія бібліотека_мавки_афс_дописати(
дані_шляху: *п8,
розмір_шляху: природне,
дані_даних: *п8,
розмір_даних: природне,
обробник: (помилка: природне, аргумент: адреса) -> ніщо,
аргумент: адреса
);
дія бібліотека_мавки_афс_записати(
дані_шляху: *п8,
розмір_шляху: природне,
дані_даних: *п8,
розмір_даних: природне,
обробник: (помилка: природне, аргумент: адреса) -> ніщо,
аргумент: адреса
);
дія бібліотека_мавки_афс_прочитати(
дані_шляху: *п8,
розмір_шляху: природне,
обробник: (дані_даних: *п8, розмір_даних: природне, помилка: природне, аргумент: адреса) -> ніщо,
аргумент: адреса
);
дія бібліотека_мавки_афс_створити_папку(
дані_шляху: *п8,
розмір_шляху: природне,
обробник: (помилка: природне, аргумент: адреса) -> ніщо,
аргумент: адреса
);
// інет
стала МАВКА_ІНЕТ_УСПІХ = 0;
стала МАВКА_ІНЕТ_ПОМИЛКА_НЕВІДОМА = 1000;
стала МАВКА_ІНЕТ_ПОМИЛКА_НЕДОСТАТНЬО_ПАМʼЯТІ = 1001;
стала МАВКА_ІНЕТ_ПОМИЛКА_АРГУМЕНТУ = 1002;
стала МАВКА_ІНЕТ_ПОМИЛКА_АДРЕСА_ВИКОРИСТОВУЄТЬСЯ = 1003;
стала МАВКА_ІНЕТ_ПОМИЛКА_ЗʼЄДНАННЯ_ВІДХИЛЕНО = 1004;
стала МАВКА_ІНЕТ_ПОМИЛКА_ЗʼЄДНАННЯ_СКИНОТО = 1005;
стала МАВКА_ІНЕТ_ПОМИЛКА_МЕРЕЖА_НЕДОСТУПНА = 1006;
стала МАВКА_ІНЕТ_ПОМИЛКА_ХОСТ_НЕДОСТУПНИЙ = 1007;
стала МАВКА_ІНЕТ_ПОМИЛКА_ТАЙМАУТ = 1008;
стала МАВКА_ІНЕТ_ПОМИЛКА_КАНАЛ_ЗЛАМАНО = 1009;
стала МАВКА_ІНЕТ_ПОМИЛКА_ДОСТУПУ = 1010;
стала МАВКА_ІНЕТ_ПОМИЛКА_ЗАБАГАТО_ФАЙЛІВ = 1011;
стала МАВКА_ІНЕТ_ПОМИЛКА_АДРЕСА_НЕДОСТУПНА = 1012;
стала МАВКА_ІНЕТ_ПОМИЛКА_ПЕРЕПОВНЕННЯ_БУФЕРА = 1013;
стала МАВКА_ІНЕТ_ПОМИЛКА_МЕРЕЖА_ВІДМОВИЛА = 1014;
стала МАВКА_ІНЕТ_ПОМИЛКА_МЕРЕЖА_СКИНУТА = 1015;
стала МАВКА_ІНЕТ_ПОМИЛКА_ЗʼЄДНАННЯ_ПЕРЕРВАНО = 1016;
стала МАВКА_ІНЕТ_ПОМИЛКА_ВЖЕ_ПІДДОСЛІДЖЕНО = 1017;
стала МАВКА_ІНЕТ_ПОМИЛКА_НЕ_ПІДʼЄДНАНО = 1018;
стала МАВКА_ІНЕТ_ПОМИЛКА_ВХІД_ВИХІД = 1019;
стала МАВКА_ІНЕТ_ПОМИЛКА_НЕПРАВИЛЬНИЙ_ФАЙЛ = 1020;
стала БІБЛІОТЕКА_МАВКИ_ВИД_ІА_ІП4 = 4;
стала БІБЛІОТЕКА_МАВКИ_ВИД_ІА_ІП6 = 6;
// інет слуга
синонім БібліотекаМавкиІнетСлугаОбробникЗапуску = (адр_слуга: адреса, помилка: природне) -> ніщо;
синонім БібліотекаМавкиІнетСлугаОбробникПомилки = (адр_слуга: адреса, помилка: природне) -> ніщо;
синонім БібліотекаМавкиІнетСлугаОбробникЗупинки = (адр_слуга: адреса) -> ніщо;
синонім БібліотекаМавкиІнетСлугаОбробникЗнищення = (аргумент_слуги: адреса) -> ніщо;
синонім БібліотекаМавкиІнетСлугаОбробникПідключенняЗвʼязку = (адр_слуга: адреса, адр_звʼязок: адреса) -> ніщо;
синонім БібліотекаМавкиІнетСлугаОбробникДанихЗвʼязку = (адр_слуга: адреса, адр_звʼязок: адреса, дані: *п8, розмір: природне) -> ніщо;
синонім БібліотекаМавкиІнетСлугаОбробникСтіканняЗвʼязку = (адр_слуга: адреса, адр_звʼязок: адреса) -> ніщо;
синонім БібліотекаМавкиІнетСлугаОбробникЗакінченняЗвʼязку = (адр_слуга: адреса, адр_звʼязок: адреса) -> ніщо;
синонім БібліотекаМавкиІнетСлугаОбробникПомилкиЗвʼязку = (адр_слуга: адреса, адр_звʼязок: адреса, помилка: природне) -> ніщо;
синонім БібліотекаМавкиІнетСлугаОбробникВідключенняЗвʼязку = (адр_слуга: адреса, адр_звʼязок: адреса) -> ніщо;
дія бібліотека_мавки_інет_служити(
іа_вид: природне,
іа_дані: *п8,
іа_розмір: природне,
порт: природне,
обробник_запуску: БібліотекаМавкиІнетСлугаОбробникЗапуску,
обробник_помилки: БібліотекаМавкиІнетСлугаОбробникПомилки,
обробник_зупинки: БібліотекаМавкиІнетСлугаОбробникЗупинки,
аргумент: адреса,
обробник_знищення: БібліотекаМавкиІнетСлугаОбробникЗнищення,
обробник_підключення_звʼязку: БібліотекаМавкиІнетСлугаОбробникПідключенняЗвʼязку,
обробник_даних_звʼязку: БібліотекаМавкиІнетСлугаОбробникДанихЗвʼязку,
обробник_стікання_звʼязку: БібліотекаМавкиІнетСлугаОбробникСтіканняЗвʼязку,
обробник_закінчення_звʼязку: БібліотекаМавкиІнетСлугаОбробникЗакінченняЗвʼязку,
обробник_помилки_звʼязку: БібліотекаМавкиІнетСлугаОбробникПомилкиЗвʼязку,
обробник_відключення_звʼязку: БібліотекаМавкиІнетСлугаОбробникВідключенняЗвʼязку,
);
дія бібліотека_мавки_інет_отримати_аргумент_слуги(
адр_слуга: адреса,
) -> адреса;
дія бібліотека_мавки_інет_зупинити_слугу(
адр_слуга: адреса,
закрити_підключення: природне,
) -> ціле;
// інет клієнт
синонім БібліотекаМавкиІнетКлієнтОбробникПідключення = (адр_звʼязок: адреса, помилка: природне) -> ніщо;
синонім БібліотекаМавкиІнетКлієнтОбробникДаних = (адр_звʼязок: адреса, дані: *п8, розмір: природне) -> ніщо;
синонім БібліотекаМавкиІнетКлієнтОбробникСтікання = (адр_звʼязок: адреса) -> ніщо;
синонім БібліотекаМавкиІнетКлієнтОбробникЗакінчення = (адр_звʼязок: адреса) -> ніщо;
синонім БібліотекаМавкиІнетКлієнтОбробникПомилки = (адр_звʼязок: адреса, помилка: природне) -> ніщо;
синонім БібліотекаМавкиІнетКлієнтОбробникВідключення = (адр_звʼязок: адреса) -> ніщо;
синонім БібліотекаМавкиІнетЗвʼязокОбробникЗнищення = (аргумент_звʼязку: адреса) -> ніщо;
синонім БібліотекаМавкиІнетЗвʼязокОбробникНадіслання = (адр_звʼязок: адреса, аргумент_надіслання: адреса) -> ніщо;
синонім БібліотекаМавкиІнетЗвʼязокОбробникЗакінчення = (адр_звʼязок: адреса, аргумент_закінчення: адреса) -> ніщо;
дія бібліотека_мавки_інет_підключитись(
іа_вид: природне,
іа_дані: *п8,
іа_розмір: природне,
порт: природне,
обробник_підключення: БібліотекаМавкиІнетКлієнтОбробникПідключення,
обробник_даних: БібліотекаМавкиІнетКлієнтОбробникДаних,
обробник_стікання: БібліотекаМавкиІнетКлієнтОбробникСтікання,
обробник_закінчення: БібліотекаМавкиІнетКлієнтОбробникЗакінчення,
обробник_помилки: БібліотекаМавкиІнетКлієнтОбробникПомилки,
обробник_відключення: БібліотекаМавкиІнетКлієнтОбробникВідключення,
аргумент: адреса,
обробник_знищення: БібліотекаМавкиІнетЗвʼязокОбробникЗнищення,
);
дія бібліотека_мавки_інет_записати_аргумент_звʼязку(
адр_звʼязок: адреса,
аргумент: адреса,
обробник_знищення: БібліотекаМавкиІнетЗвʼязокОбробникЗнищення,
);
дія бібліотека_мавки_інет_отримати_аргумент_звʼязку(
адр_звʼязок: адреса
) -> адреса;
дія бібліотека_мавки_інет_звʼязок_надіслати(
адр_звʼязок: адреса,
дані: *п8,
розмір: природне,
аргумент: адреса,
обробник: БібліотекаМавкиІнетЗвʼязокОбробникНадіслання,
) -> логічне;
дія бібліотека_мавки_інет_звʼязок_закінчити(
адр_звʼязок: адреса,
дані: *п8,
розмір: природне,
аргумент: адреса,
обробник: БібліотекаМавкиІнетЗвʼязокОбробникЗакінчення,
);
дія бібліотека_мавки_інет_звʼязок_знищити(
адр_звʼязок: адреса,
);
простір мавка {
простір бібліотека {
структура КористувацькіДаніБібліотекиМавки {
взято__мат: *Притриманий; // ПредметМодуля
взято__афс: *Притриманий; // ПредметМодуля
взято__аввід: *Притриманий; // ПредметМодуля
взято__інет: *Притриманий; // ПредметМодуля
// ці притримувати не треба, так як вони є властивостями модулів вище
інет__Слуга: *ПредметКласу;
інет__Звʼязок: *ПредметКласу;
}
дія ініціалізувати(М: *Машина);
дія записати_дію__мат__син(М: *Машина, предмет_модуля: *ПредметМодуля);
дія записати_дію__мат__кос(М: *Машина, предмет_модуля: *ПредметМодуля);
дія записати_дію__мат__тан(М: *Машина, предмет_модуля: *ПредметМодуля);
дія записати_дію__мат__асин(М: *Машина, предмет_модуля: *ПредметМодуля);
дія записати_дію__мат__акос(М: *Машина, предмет_модуля: *ПредметМодуля);
дія записати_дію__мат__атан(М: *Машина, предмет_модуля: *ПредметМодуля);
дія записати_дію__мат__абс(М: *Машина, предмет_модуля: *ПредметМодуля);
дія записати_дію__мат__експ(М: *Машина, предмет_модуля: *ПредметМодуля);
дія записати_дію__мат__кор2(М: *Машина, предмет_модуля: *ПредметМодуля);
дія записати_дію__мат__стеля(М: *Машина, предмет_модуля: *ПредметМодуля);
дія записати_дію__мат__підлога(М: *Машина, предмет_модуля: *ПредметМодуля);
дія записати_дію__мат__округлити(М: *Машина, предмет_модуля: *ПредметМодуля);
дія ініціалізувати__мат(М: *Машина, предмет_модуля: *ПредметМодуля);
дія записати_дію__афс__видалити(М: *Машина, предмет_модуля: *ПредметМодуля);
дія записати_дію__афс__дописати(М: *Машина, предмет_модуля: *ПредметМодуля);
дія записати_дію__афс__записати(М: *Машина, предмет_модуля: *ПредметМодуля);
дія записати_дію__афс__прочитати(М: *Машина, предмет_модуля: *ПредметМодуля);
дія записати_дію__афс__створити_папку(М: *Машина, предмет_модуля: *ПредметМодуля);
дія ініціалізувати__афс(М: *Машина, предмет_модуля: *ПредметМодуля);
дія записати_дію__аввід__запитати(М: *Машина, предмет_модуля: *ПредметМодуля);
дія ініціалізувати__аввід(М: *Машина, предмет_модуля: *ПредметМодуля);
структура АргументІнетСлуги {
М: *Машина;
прт_слуга: *Притриманий;
як_текст: логічне;
прт_обробник_запуску: *Притриманий;
прт_обробник_помилки: *Притриманий;
прт_обробник_зупинки: *Притриманий;
прт_обробник_підключення_звʼязку: *Притриманий;
прт_обробник_даних_звʼязку: *Притриманий;
прт_обробник_стікання_звʼязку: *Притриманий;
прт_обробник_закінчення_звʼязку: *Притриманий;
прт_обробник_помилки_звʼязку: *Притриманий;
прт_обробник_відключення_звʼязку: *Притриманий;
}
структура АргументІнетЗвʼязку {
М: *Машина;
прт_звʼязок: *Притриманий;
як_текст: логічне;
прт_обробник_підключення: *Притриманий;
прт_обробник_даних: *Притриманий;
прт_обробник_стікання: *Притриманий;
прт_обробник_закінчення: *Притриманий;
прт_обробник_помилки: *Притриманий;
прт_обробник_відключення: *Притриманий;
}
структура КористувацькіДаніІнетСлуги {
адр_слуга: адреса;
}
структура КористувацькіДаніІнетЗвʼязку {
адр_звʼязок: адреса;
}
дія виділити_аргумент_інет_звʼязку(М: *Машина) -> *АргументІнетЗвʼязку;
дія обробник_знищення_інет_звʼязку(аргумент_звʼязку_клієнта: адреса);
дія створити_інет_Звʼязок(М: *Машина, адр_звʼязок: адреса) -> *СкладенийПредмет;
дія перед_знищенням_користувацьких_даних_інет_звʼязку(М: *Машина, користувацькі_дані: *КористувацькіДані);
дія отримати_текст_інет_помилки(М: *Машина, помилка: природне) -> *ПредметТексту;
дія записати_клас__інет__Слуга(М: *Машина, предмет_модуля: *ПредметМодуля);
дія записати_клас__інет__Звʼязок(М: *Машина, предмет_модуля: *ПредметМодуля);
дія записати_дію__інет__служити(М: *Машина, предмет_модуля: *ПредметМодуля);
дія записати_дію__інет__підключитись(М: *Машина, предмет_модуля: *ПредметМодуля);
дія ініціалізувати__інет(М: *Машина, предмет_модуля: *ПредметМодуля);
дія створити_дію__читати(М: *Машина) -> *ПредметДії;
}
}