411 REFERENCE · Wikibooks
Ada Programming/Libraries/Standard/RM
Reference material by Wikibooks contributors. This retains its source identity and is not 411 news reporting.
package Standard is
Pure (Standard);
type Boolean is (False, True);
The predefined relational operators for this type are as follows:
function "=" (Left, Right : Boolean'Base) return Boolean;
function "/=" (Left, Right : Boolean'Base) return Boolean;
function "<" (Left, Right : Boolean'Base) return Boolean;
function "<=" (Left, Right : Boolean'Base) return Boolean;
function ">" (Left, Right : Boolean'Base) return Boolean;
function ">=" (Left, Right : Boolean'Base) return Boolean;
The predefined logical operators and the predefined logical
negation operator are as follows:
function "and" (Left, Right : Boolean'Base) return Boolean;
function "or" (Left, Right : Boolean'Base) return Boolean;
function "xor" (Left, Right : Boolean'Base) return Boolean;
function "not" (Right : Boolean'Base) return Boolean;
The integer type root_integer and the
corresponding universal type universal_integer are predefined.
type Integer is range implementation-defined;
subtype Natural is Integer range 0 .. Integer'Last;
subtype Positive is Integer range 1 .. Integer'Last;
The predefined operators for type Integer are as follows:
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;
The specification of each operator for the type
root_integer, or for any additional predefined integer
type, is obtained by replacing Integer by the name of the type
in the specification of the corresponding operator of the type
Integer. The right operand of the exponentiation operator
remains as subtype Natural.
The floating point type root_real and the
corresponding universal type universal_real are predefined
type Float is digits implementation-defined;
The predefined operators for this type are as follows:
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;
The specification of each operator for the type root_real, or for
any additional predefined floating point type, is obtained by
replacing Float by the name of the type in the specification of the
corresponding operator of the type Float.
In addition, the following operators are predefined for the root
numeric types:
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;
The type universal_fixed is predefined.
The only multiplying operators defined between
fixed point types are
function "*" (Left : universal_fixed; Right : universal_fixed)
return universal_fixed;
function "/" (Left : universal_fixed; Right : universal_fixed)
return universal_fixed;
The type universal_access is predefined.
The following equality operators are predefined:
function "=" (Left, Right: universal_access) return Boolean;
function "/=" (Left, Right: universal_access) return Boolean;
The declaration of type Character is based on the standard ISO 8859-1 character set.
There are no character literals corresponding to the positions for control characters.
They are indicated in italics in this definition. See 3.5.2.
type Character is
(nul, soh, stx, etx, eot, enq, ack, bel, 0 (16#00#) .. 7 (16#07#)
bs, ht, lf, vt, ff, cr, so, si, 8 (16#08#) .. 15 (16#0F#)
dle, dc1, dc2, dc3, dc4, nak, syn, etb, 16 (16#10#) .. 23 (16#17#)
can, em, sub, esc, fs, gs, rs, us, 24 (16#18#) .. 31 (16#1F#)
' ', '!', '"', '#', '$', '%', '&', ''', 32 (16#20#) .. 39 (16#27#)
'(', ')', '*', '+', ',', '-', '.', '/', 40 (16#28#) .. 47 (16#2F#)
'0', '1', '2', '3', '4', '5', '6', '7', 48 (16#30#) .. 55 (16#37#)
'8', '9', ':', ';', '<', '=', '>', '?', 56 (16#38#) .. 63 (16#3F#)
'@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 64 (16#40#) .. 71 (16#47#)
'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 72 (16#48#) .. 79 (16#4F#)
'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 80 (16#50#) .. 87 (16#57#)
'X', 'Y', 'Z', '[', '\', ']', '^', '_', 88 (16#58#) .. 95 (16#5F#)
'`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 96 (16#60#) .. 103 (16#67#)
'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 104 (16#68#) .. 111 (16#6F#)
'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 112 (16#70#) .. 119 (16#77#)
'x', 'y', 'z', '{', '|', '}', '~', del, 120 (16#78#) .. 127 (16#7F#)
reserved_128, reserved_129, bph, nbh, 128 (16#80#) .. 131 (16#83#)
reserved_132, nel, ssa, esa, 132 (16#84#) .. 135 (16#87#)
hts, htj, vts, pld, plu, ri, ss2, ss3, 136 (16#88#) .. 143 (16#8F#)
dcs, pu1, pu2, sts, cch, mw, spa, epa, 144 (16#90#) .. 151 (16#97#)
sos, reserved_153, sci, csi, 152 (16#98#) .. 155 (16#9B#)
st, osc, pm, apc, 156 (16#9C#) .. 159 (16#9F#)
' ', '¡', '¢', '£', '¤', '¥', '¦', '§', 160 (16#A0#) .. 167 (16#A7#)
'¨', '©', 'ª', '«', 168 (16#A8#) .. 171 (16#AB#)
'¬', soft_hyphen, '®', '¯', 172 (16#AC#) .. 175 (16#AF#)
'°', '±', '²', '³', '´', 'µ', '¶', '·', 176 (16#B0#) .. 183 (16#B7#)
'¸', '¹', 'º', '»', '¼', '½', '¾', '¿', 184 (16#B8#) .. 191 (16#BF#)
'À', 'Á', 'Â', 'Ã', 'Ä', 'Å', 'Æ', 'Ç', 192 (16#C0#) .. 199 (16#C7#)
'È', 'É', 'Ê', 'Ë', 'Ì', 'Í', 'Î', 'Ï', 200 (16#C8#) .. 207 (16#CF#)
'Ð', 'Ñ', 'Ò', 'Ó', 'Ô', 'Õ', 'Ö', '×', 208 (16#D0#) .. 215 (16#D7#)
'Ø', 'Ù', 'Ú', 'Û', 'Ü', 'Ý', 'Þ', 'ß', 216 (16#D8#) .. 223 (16#DF#)
'à', 'á', 'â', 'ã', 'ä', 'å', 'æ', 'ç', 224 (16#E0#) .. 231 (16#E7#)
'è', 'é', 'ê', 'ë', 'ì', 'í', 'î', 'ï', 232 (16#E8#) .. 239 (16#EF#)
'ð', 'ñ', 'ò', 'ó', 'ô', 'õ', 'ö', '÷', 240 (16#F0#) .. 247 (16#F7#)
'ø', 'ù', 'ú', 'û', 'ü', 'ý', 'þ', 'ÿ', 248 (16#F8#) .. 255 (16#FF#)
The predefined operators for the type Character are the same as for
any enumeration type.
The declaration of type Wide_Character is based on the standard ISO/IEC 10646:2011 BMP character
set. The first 256 positions have the same contents as type Character. See 3.5.2.
type Wide_Character is (nul, soh ... Hex_0000FFFE, Hex_0000FFFF);
The declaration of type Wide_Wide_Character is based on the full
ISO/IEC 10646:2011 character set. The first 65536 positions have the
same contents as type Wide_Character. See 3.5.2.
type Wide_Wide_Character is (nul, soh ... Hex_7FFFFFFE, Hex_7FFFFFFF);
for Wide_Wide_Character'Size use 32;
package ASCII is ... end ASCII; Obsolescent; see J.5
Predefined string types:
type String is array (Positive range <>) of Character
with Pack;
The predefined operators for this type are as follows:
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
with Pack;
The predefined operators for this type correspond to those for String.
type Wide_Wide_String is array (Positive range <>)
of Wide_Character
with Pack;
The predefined operators for this type correspond to those for String.
type Duration is delta implementation-defined range implementation-defined;
The predefined operators for the type Duration are the same as for
any fixed point type.
The predefined exceptions:
Constraint_Error: exception;
Program_Error : exception;
Storage_Error : exception;
Tasking_Error : exception;
end Standard;
Standard:RM