Ада-95. Компилятор GNAT
66ac8edd

Спецификация пакета Standard


Пакет Standard всегда находится в области видимости, поэтому все описания этого пакета всегда непосредственно доступны.

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;

Copyright (C) А.Гавва V-0.4w май 2004



Содержание раздела