взяти визначення мавка;
взяти визначення РМв1;
простір мавка {
внутрішня дія ЗРЗМ(значення: РМв1::Значення) -> Значення {
вернути Значення { значення.дані як п64, значення.вид };
}
внутрішня дія ЗМЗР(значення: Значення) -> РМв1::Значення {
вернути РМв1::Значення { значення.дані як п64, значення.вид };
}
внутрішня дія рідна_дія_РМв1_надрукувати_кд(Р: *РМв1::Розширення, значення: кд) {
надрукувати_кд(Р.М як *Машина, значення);
}
внутрішня дія рідна_дія_РМв1_надрукувати_значення(Р: *РМв1::Розширення, значення: РМв1::Значення) {
надрукувати_значення(Р.М як *Машина, ЗРЗМ(значення), 0, 0);
}
внутрішня дія рідна_дія_РМв1_створити_притримувач(я: *РМв1::Розширення) -> *РМв1::Притримувач {
стала М = я.М як *Машина;
змінна п = виділити<РМв1::Притримувач>(М, 1);
п.Р = я;
п.пм = створити_притримувач(М);
вернути п;
}
внутрішня дія рідна_дія_РМв1_знищити_притримувач(я: *РМв1::Розширення, притримувач: *РМв1::Притримувач) -> ніщо {
стала М = я.М як *Машина;
знищити_притримувач(М, притримувач.пм як *Притримувач);
звільнити(М, притримувач);
}
внутрішня дія рідна_дія_РМв1_створити_користувацькі_дані(я: *РМв1::Розширення, дані: адреса, дія_перед_знищенням: РМв1::ДіяПередЗнищеннямКористувацькихДаних) -> *РМв1::КористувацькіДані {
}
внутрішня дія рідна_дія_РМв1_записати_користувацькі_дані_предмету(я: *РМв1::Розширення, значення: РМв1::Значення, користувацькі_дані: *РМв1::КористувацькіДані, р: *РМв1::Значення) -> логічне {
}
внутрішня дія рідна_дія_РМв1_створити_число(я: *РМв1::Розширення, значення: р64, р: *РМв1::Значення) -> логічне {
р::вміст = ЗМЗР(ЧИСЛО(значення));
вернути так;
}
внутрішня дія рідна_дія_РМв1_створити_текст(я: *РМв1::Розширення, значення: кд, р: *РМв1::Значення) -> логічне {
р::вміст = ЗМЗР(ПРЕДМЕТ(створити_текст(я.М як *Машина, значення)));
вернути так;
}
внутрішня дія рідна_дія_РМв1_створити_текст_без_копіювання(я: *РМв1::Розширення, значення: кд, р: *РМв1::Значення) -> логічне {
р::вміст = ЗМЗР(ПРЕДМЕТ(створити_текст_без_копіювання(
я.М як *Машина,
значення.розмір,
значення.дані
)));
вернути так;
}
структура КДРДРМв1 {
Р: *РМв1::Розширення;
рідна_дія: РМв1::РіднаДія;
додаткові_користувацькі_дані: *РМв1::КористувацькіДані;
}
внутрішня дія дія_перед_знищенням_КДРДРМв1(М: *Машина, користувацькі_дані: *КористувацькіДані) {
змінна корд = користувацькі_дані.значення як *КДРДРМв1;
якщо корд.додаткові_користувацькі_дані != пусто {
// ...
}
звільнити(М, корд);
}
внутрішня дія рідна_дія_РМв1 (
М: *Машина,
діяльність: *Діяльність,
) -> ЗначенняАбоСтанПадіння {
змінна дкд = діяльність.предмет_дії.додаткові_користувацькі_дані;
якщо дкд == пусто {
вернути НЕДІЙСНЕ; // щось пішло не так, вбудована помилка
}
змінна корд = дкд.значення як *КДРДРМв1;
змінна р: РМв1::Значення;
змінна успіх = корд.рідна_дія(корд.Р, діяльність як *РМв1::Діяльність, р::адреса);
якщо не успіх {
// потім: доробити
}
вернути НЕДІЙСНЕ;
}
внутрішня дія рідна_дія_РМв1_створити_дію(я: *РМв1::Розширення, назва: РМв1::Значення, рідна_дія: РМв1::РіднаДія, р: *РМв1::Значення) -> логічне {
стала М = я.М як *Машина;
змінна назва_пт: *ПредметТексту = пусто;
// потім: назва.дані як *Предмет як *ПредметТексту
змінна д = створити_рідну_дію(
М,
назва_пт,
М.пуста_послідовність,
пусто,
рідна_дія_РМв1,
пусто,
);
р::вміст = ЗМЗР(ПРЕДМЕТ(д));
змінна корд = виділити<КДРДРМв1>(М, 1);
корд.Р = я;
корд.рідна_дія = рідна_дія;
корд.додаткові_користувацькі_дані = пусто;
д.додаткові_користувацькі_дані = створити_користувацькі_дані(
М,
корд,
дія_перед_знищенням_КДРДРМв1,
);
вернути так;
}
внутрішня дія рідна_дія_РМв1_створити_клас(я: *РМв1::Розширення, назва: РМв1::Значення, предок: РМв1::Значення, параметри: РМв1::Значення, дії: РМв1::Значення, р: *РМв1::Значення) -> логічне {
}
внутрішня дія рідна_дія_РМв1_створити_модуль(я: *РМв1::Розширення, назва: РМв1::Значення, р: *РМв1::Значення) -> логічне {
}
внутрішня дія рідна_дія_РМв1_створити_список(я: *РМв1::Розширення, вмісткість: природне, р: *РМв1::Значення) -> логічне {
}
внутрішня дія рідна_дія_РМв1_створити_словник(я: *РМв1::Розширення, р: *РМв1::Значення) -> логічне {
}
внутрішня дія рідна_дія_РМв1_створити_дані(я: *РМв1::Розширення, дані: *п8, розмір: природне, р: *РМв1::Значення) -> логічне {
}
внутрішня дія рідна_дія_РМв1_створити_дані_без_копіювання(я: *РМв1::Розширення, дані: *п8, розмір: природне, р: *РМв1::Значення) -> логічне {
}
внутрішня дія рідна_дія_РМв1_здійснити(я: *РМв1::Розширення, значення: РМв1::Значення, здійснювач: РМв1::Значення, дз: *РМв1::Значення, кз: природне, р: *РМв1::Значення) -> логічне {
}
дія створити_РМв1(М: *Машина) -> *РМв1::Розширення {
змінна Р = виділити<РМв1::Розширення>(М, 1);
Р.М = М;
Р.надрукувати_кд = рідна_дія_РМв1_надрукувати_кд;
Р.надрукувати_значення = рідна_дія_РМв1_надрукувати_значення;
Р.створити_притримувач = рідна_дія_РМв1_створити_притримувач;
Р.знищити_притримувач = рідна_дія_РМв1_знищити_притримувач;
Р.створити_користувацькі_дані = рідна_дія_РМв1_створити_користувацькі_дані;
Р.записати_користувацькі_дані_предмету = рідна_дія_РМв1_записати_користувацькі_дані_предмету;
Р.створити_число = рідна_дія_РМв1_створити_число;
Р.створити_текст = рідна_дія_РМв1_створити_текст;
Р.створити_текст_без_копіювання = рідна_дія_РМв1_створити_текст_без_копіювання;
Р.створити_дію = рідна_дія_РМв1_створити_дію;
Р.створити_клас = рідна_дія_РМв1_створити_клас;
Р.створити_модуль = рідна_дія_РМв1_створити_модуль;
Р.створити_список = рідна_дія_РМв1_створити_список;
Р.створити_словник = рідна_дія_РМв1_створити_словник;
Р.створити_дані = рідна_дія_РМв1_створити_дані;
Р.створити_дані_без_копіювання = рідна_дія_РМв1_створити_дані_без_копіювання;
Р.здійснити = рідна_дія_РМв1_здійснити;
вернути Р;
}
дія завантажити_РМв1(М: *Машина, шлях: *ПредметТексту, назва_символа: *ПредметТексту) -> ЗначенняАбоСтанПадіння {
змінна Р = створити_РМв1(М);
М.налаштування.завантажити_РМв1(М, Р, шлях, назва_символа);
вернути НЕДІЙСНЕ;
}
}