package System is
pragma Pure (System);
type Name is Определяемый_Реализацией_Перечислимый_Тип;
System_Name : constant Name := Определяется_Реализацией;
-- Системно-зависимые именованные числа
Min_Int : constant := Root_Integer'First;
Max_Int : constant := Root_Integer'Last;
Max_Binary_Modulus : constant := Определяется_Реализацией;
Max_Nonbinary_Modulus : constant := Определяется_Реализацией;
Max_Base_Digits : constant := Root_Real'Digits;
Max_Digits : constant := Определяется_Реализацией;
Max_Mantissa : constant := Определяется_Реализацией;
Fine_Delta : constant := Определяется_Реализацией;
Tick : constant := Определяется_Реализацией;
-- Описания относящиеся к хранению информации в памяти
type Address is Определяется_Реализацией; -- обычно, приватный тип
Null_Address : constant Address;
Storage_Unit : constant := Определяется_Реализацией;
Word_Size : constant := Определяется_Реализацией * Storage_Unit;
Memory_Size : constant := Определяется_Реализацией;
-- Сравнение адресов
function "<" (Left, Right : Address) return Boolean;
function "<=" (Left, Right : Address) return Boolean;
function ">" (Left, Right : Address) return Boolean;
function ">=" (Left, Right : Address) return Boolean;
function "=" (Left, Right : Address) return Boolean;
-- Другие системно-зависимые описания
type Bit_Order is (High_Order_First, Low_Order_First);
Default_Bit_Order : constant Bit_Order;
-- Описания относящиеся к приоритетам (RM D.1)
subtype Any_Priority is Integer range Определяется_Реализацией;
subtype Priority is Any_Priority
range Any_Priority'First..Определяется_Реализацией;
subtype Interrupt_Priority is Any_Priority
range Priority'Last + 1 .. Any_Priority'Last;
Default_Priority : constant Priority :=
(Priority'First + Priority'Last) / 2;
private
-- Стандартом языка не определено
end System;
|