package Standard is
pragma Pure(Standard);
type Boolean is (False, True);
-- предопределенные знаки операций сравнения для этого типа следующие:
-- function "=" (Left, Right : Boolean) return Boolean;
-- function "/=" (Left, Right : Boolean) return Boolean;
-- function "<" (Left, Right : Boolean) return Boolean;
-- function "<=" (Left, Right : Boolean) return Boolean;
-- function ">" (Left, Right : Boolean) return Boolean;
-- function ">=" (Left, Right : Boolean) return Boolean;
--
-- предопределенные знаки логических операций для этого типа следующие:
-- function "and" (Left, Right : Boolean) return Boolean;
-- function "or" (Left, Right : Boolean) return Boolean;
-- function "xor" (Left, Right : Boolean) return Boolean;
-- function "not" (Right : Boolean) return Boolean;
type Integer is range Определяется_Реализацией;
subtype Natural is Integer range 0 .. Integer'Last;
subtype Positive is Integer range 1 .. Integer'Last;
-- предопределенные знаки операций для этого типа следующие:
-- function "=" (Left, Right : Integer'Base) return Boolean;
-- function "/=" (Left, Right : Integer'Base) return Boolean;
-- function "<" (Left, Right : Integer'Base) return Boolean;
-- function "<=" (Left, Right : Integer'Base) return Boolean;
-- function ">=" (Left, Right : Integer'Base) return Boolean;
-- function ">" (Left, Right : Integer'Base) return Boolean;
--
-- function "+" (Right : Integer'Base) return Integer'Base;
-- function "-" (Right : Integer'Base) return Integer'Base;
-- function "abs" (Right : Integer'Base) return Integer'Base;
--
-- function "+" (Left, Right : Integer'Base) return Integer'Base;
-- function "-" (Left, Right : Integer'Base) return Integer'Base;
-- function "*" (Left, Right : Integer'Base) return Integer'Base;
-- function "/" (Left, Right : Integer'Base) return Integer'Base;
-- function "rem" (Left, Right : Integer'Base) return Integer'Base;
-- function "mod" (Left, Right : Integer'Base) return Integer'Base;
--
-- function "**" (Left: Integer'Base; Right: Natural) return Integer'Base;
type Float is digits Определяется_Реализацией;
-- предопределенные знаки операций для этого типа следующие:
-- function "=" (Left, Right : Float) return Boolean;
-- function "/=" (Left, Right : Float) return Boolean;
-- function "<" (Left, Right : Float) return Boolean;
-- function "<=" (Left, Right : Float) return Boolean;
-- function ">=" (Left, Right : Float) return Boolean;
-- function ">" (Left, Right : Float) return Boolean;
--
-- function "+" (Right : Float) return Float;
-- function "-" (Right : Float) return Float;
-- function "abs" (Right : Float) return Float;
--
-- function "+" (Left, Right : Float) return Float;
-- function "-" (Left, Right : Float) return Float;
-- function "*" (Left, Right : Float) return Float;
-- function "/" (Left, Right : Float) return Float;
--
-- function "**" (Left: Float; Right: Integer'Base) return Float;
--
--
-- дополнительные знаки операций предопределены для корневых численных типов
-- Root_Integer и Root_Real
--
-- function "*" (Left : Root_Integer; Right : Root_Real) return Root_Real;
-- function "*" (Left : Root_Real; Right : Root_Integer) return Root_Real;
-- function "/" (Left : Root_Real; Right : Root_Integer) return Root_Real;
--
--
-- тип Universal_Fixed - является предопределенным
-- для него предопределены только следующие знаки операций:
--
-- function "*" (Left : Universal_Fixed; Right : Universal_Fixed)
-- return Universal_Fixed;
-- function "/" (Left : Universal_Fixed; Right : Universal_Fixed)
-- return Universal_Fixed;
-- Описание символьного типа Character основано
-- на множестве символов описанных стандартом ISO 8859-1.
--
-- Символьные литералы которые соответствуют
-- позициям управляющих символов отсутствуют.
-- Они описываются идентификаторами
-- которые записаны в нижнем регистре.
type Character is
(nul, soh, stx, etx, eot, enq, ack, bel, -- 0 (16#00#) .. (16#07#)
bs, ht, lf, vt, ff, cr, so, si, -- 8 (16#08#) .. (16#0F#)
dle, dc1, dc2, dc3, dc4, nak, syn, etb, -- 16 (16#10#) .. (16#17#)
can, em, sub, esc, fs, gs, rs, us, -- 24 (16#18#) .. (16#1F#)
' ', '!', '"', '#', '$', '%', '&', ''', -- 32 (16#20#) .. (16#27#)
'(', ')', '*', '+', ',', '-', '.', '/', -- 40 (16#28#) .. (16#2F#)
'0', '1', '2', '3', '4', '5', '6', '7', -- 48 (16#30#) .. (16#37#)
'8', '9', ':', ';', '<', '=', '>', '?', -- 56 (16#38#) .. (16#3F#)
'@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', -- 64 (16#40#) .. (16#47#)
'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', -- 72 (16#48#) .. (16#4F#)
'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', -- 80 (16#50#) .. (16#57#)
'X', 'Y', 'Z', '[', '\', ']', '^', '_', -- 88 (16#58#) .. (16#5F#)
'`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', -- 96 (16#60#) .. (16#67#)
'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', -- 104 (16#68#) .. (16#6F#)
'p', 'q', 'r', 's', 't', 'u', 'v', 'w', -- 112 (16#70#) .. (16#77#)
'x', 'y', 'z', '{', '|', '}', '~', del, -- 120 (16#78#) .. (16#7F#)
reserved_128, reserved_129, bph, nbh, -- 128 (16#80#) .. (16#83#)
reserved_132, nel, ssa, esa, -- 132 (16#84#) .. (16#87#)
hts, htj, vts, pld, plu, ri, ss2, ss3, -- 136 (16#88#) .. (16#8F#)
dcs, pu1, pu2, sts, cch, mw, spa, epa, -- 144 (16#90#) .. (16#97#)
sos, reserved_153, sci, csi, -- 152 (16#98#) .. (16#9B#)
st, osc, pm, apc, -- 156 (16#9C#) .. (16#9F#)
... );
-- Описание символьного типа Wide_Character основано
-- на множестве символов описанных стандартом ISO 10646 BMP.
--
-- Первые 256 символьных позиций соответствуют содержимому
-- символьного типа Character
type Wide_Character is (nul, soh ... FFFE, FFFF);
-- Пакет ASCII считается устаревшим
package ASCII is
-- Управляющие символы:
NUL : constant Character := Character'Val (16#00#);
SOH : constant Character := Character'Val (16#01#);
STX : constant Character := Character'Val (16#02#);
ETX : constant Character := Character'Val (16#03#);
EOT : constant Character := Character'Val (16#04#);
ENQ : constant Character := Character'Val (16#05#);
ACK : constant Character := Character'Val (16#06#);
BEL : constant Character := Character'Val (16#07#);
BS : constant Character := Character'Val (16#08#);
HT : constant Character := Character'Val (16#09#);
LF : constant Character := Character'Val (16#0A#);
VT : constant Character := Character'Val (16#0B#);
FF : constant Character := Character'Val (16#0C#);
CR : constant Character := Character'Val (16#0D#);
SO : constant Character := Character'Val (16#0E#);
SI : constant Character := Character'Val (16#0F#);
DLE : constant Character := Character'Val (16#10#);
DC1 : constant Character := Character'Val (16#11#);
DC2 : constant Character := Character'Val (16#12#);
DC3 : constant Character := Character'Val (16#13#);
DC4 : constant Character := Character'Val (16#14#);
NAK : constant Character := Character'Val (16#15#);
SYN : constant Character := Character'Val (16#16#);
ETB : constant Character := Character'Val (16#17#);
CAN : constant Character := Character'Val (16#18#);
EM : constant Character := Character'Val (16#19#);
SUB : constant Character := Character'Val (16#1A#);
ESC : constant Character := Character'Val (16#1B#);
FS : constant Character := Character'Val (16#1C#);
GS : constant Character := Character'Val (16#1D#);
RS : constant Character := Character'Val (16#1E#);
US : constant Character := Character'Val (16#1F#);
DEL : constant Character := Character'Val (16#7F#);
-- Остальные символы:
Exclam : constant Character := '!';
Quotation : constant Character := '"';
Sharp : constant Character := '#';
Dollar : constant Character := '$';
Percent : constant Character := '%';
Ampersand : constant Character := '&';
Colon : constant Character := ':';
Semicolon : constant Character := ';';
Query : constant Character := '?';
At_Sign : constant Character := '@';
L_Bracket : constant Character := '[';
Back_Slash : constant Character := '\';
R_Bracket : constant Character := ']';
Circumflex : constant Character := '^';
Underline : constant Character := '_';
Grave : constant Character := '`';
L_Brace : constant Character := '{';
Bar : constant Character := '|';
R_Brace : constant Character := '}';
Tilde : constant Character := '~';
-- Буквы нижнего регистра:
LC_A : constant Character := 'a';
LC_B : constant Character := 'b';
LC_C : constant Character := 'c';
LC_D : constant Character := 'd';
LC_E : constant Character := 'e';
LC_F : constant Character := 'f';
LC_G : constant Character := 'g';
LC_H : constant Character := 'h';
LC_I : constant Character := 'i';
LC_J : constant Character := 'j';
LC_K : constant Character := 'k';
LC_L : constant Character := 'l';
LC_M : constant Character := 'm';
LC_N : constant Character := 'n';
LC_O : constant Character := 'o';
LC_P : constant Character := 'p';
LC_Q : constant Character := 'q';
LC_R : constant Character := 'r';
LC_S : constant Character := 's';
LC_T : constant Character := 't';
LC_U : constant Character := 'u';
LC_V : constant Character := 'v';
LC_W : constant Character := 'w';
LC_X : constant Character := 'x';
LC_Y : constant Character := 'y';
LC_Z : constant Character := 'z';
end ASCII;
-- Предопределенные строковые типы:
type String is array (Positive range <>) of Character;
pragma Pack (String);
-- предопределенные знаки операций для этого типа следующие:
-- function "=" (Left, Right : String) return Boolean;
-- function "/=" (Left, Right : String) return Boolean;
-- function "<" (Left, Right : String) return Boolean;
-- function "<=" (Left, Right : String) return Boolean;
-- function ">" (Left, Right : String) return Boolean;
-- function ">=" (Left, Right : String) return Boolean;
--
-- function "&" (Left : String, Right : String) return String;
-- function "&" (Left : Character, Right : String) return String;
-- function "&" (Left : String, Right : Character) return String;
-- function "&" (Left : Character, Right : Character) return String;
type Wide_String is array (Positive range <>) of Wide_Character;
pragma Pack (Wide_String);
-- для типа Wide_String предопределены такие же знаки операций
-- что и для типа String
type Duration is delta Определяется_Реализацией
range Определяется_Реализацией;
-- для типа Duration предопределены такие же знаки операций
-- что и для любого вещественного типа с фиксированной точкой.
-- Предопределенные исключения:
Constraint_Error : exception;
Program_Error : exception;
Storage_Error : exception;
Tasking_Error : exception;
end Standard;
|