type
BOOLEAN is
(FALSE, TRUE);
-- The predefined relational operators for this type are as
-- follows: 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;
-- logical negation operator are as follows:
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
implementation_defined;
-- The predefined operators for this type are as follows:
function
"=" (LEFT, RIGHT : INTEGER) return
BOOLEAN;
-- function
"/=" (LEFT, RIGHT : INTEGER) return
BOOLEAN;
-- function
"<" (LEFT, RIGHT : INTEGER) return
BOOLEAN;
-- function
"<=" (LEFT, RIGHT : INTEGER) return
BOOLEAN;
-- function
">" (LEFT, RIGHT : INTEGER) return
BOOLEAN;
-- function
">=" (LEFT, RIGHT : INTEGER) return
BOOLEAN;
function
"+" (RIGHT : INTEGER) return
INTEGER;
-- function
"-" (RIGHT : INTEGER) return
INTEGER;
-- function
"abs" (RIGHT : INTEGER) return
INTEGER;
function
"+" (LEFT, RIGHT : INTEGER) return
INTEGER;
-- function
"-" (LEFT, RIGHT : INTEGER) return
INTEGER;
-- function
"*" (LEFT, RIGHT : INTEGER) return
INTEGER;
-- function
"/" (LEFT, RIGHT : INTEGER) return
INTEGER;
-- function
"rem" (LEFT, RIGHT : INTEGER) return
INTEGER;
-- function
"mod" (LEFT, RIGHT : INTEGER) return
INTEGER;
function
"**"
-- (LEFT : INTEGER; RIGHT : INTEGER) return
INTEGER;
-- types. It is recommended that the names of such additional
-- types end with INTEGER as in SHORT_INTEGER or LONG_INTEGER.
-- The specification of each operator for the type
-- universal_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, except for the right operand of the
-- exponentiating operator.
type
FLOAT is
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) return
FLOAT;
-- floating point point types. It is recommended that the
-- names of such additional types end with FLOAT as in
-- SHORT_FLOAT or LONG_FLOAT. The specification of each
-- operator for the type universal_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.
-- universal types: function
"*"
(LEFT : universal_integer; RIGHT : universal_real)
return
universal_real;
-- function
"*"
(LEFT : universal_real; RIGHT : universal_integer)
return
universal_real;
-- function
"/"
(LEFT : universal_real; RIGHT : universal_integer)
return
universal_real;
-- The only operators declared for this type arefunction
"*"
(LEFT : any_fixed_point_type; RIGHT : any_fixed_point_type)
return
universal_fixed;
-- function
"/"
(LEFT : any_fixed_point_type; RIGHT : any_fixed_point_type)
return
universal_fixed;
-- set. Character literals corresponding to control characters
-- are not identifiers; they are indicated in italics in this
-- definition.
type
CHARACTER is
(nul,
soh,
stx,
etx,
eot,
enq,
ack,
bel,
bs,
ht,
lf,
vt,
ff,
cr,
so,
si,
dle,
dc1,
dc2,
dc3,
dc4,
nak,
syn,
etb,
can,
em,
sub,
esc,
fs,
gs,
rs,
us,
``,
`!',
`"',
`#',
`$',
`%',
`&',
`'',
`(`,
`)',
`*',
`+',
`,',
`-',
`.',
`/',
`0',
`1',
`2',
`3',
`4',
`5',
`6',
`7',
`8',
`9',
`:',
`;',
`<`,
`=',
`>',
`?',
`@',
`A',
`B',
`C',
`D',
`E',
`F',
`G',
`H',
`I',
`J',
`K',
`L',
`M',
`N',
`O',
`P',
`Q',
`R',
`S',
`T',
`U',
`V',
`W',
`X',
`Y',
`Z',
`[`,
`\',
`]',
`~',
`_',
``',
`a',
`b',
`c',
`d',
`e',
`f',
`g',
`h',
`i',
`j',
`k',
`l',
`m',
`n',
`o',
`p',
`q',
`r',
`s',
`t',
`u',
`v',
`w',
`x',
`y',
`z',
`{`,
`|',
`}',
`~',
del);
for
CHARACTER use
-- 128 ASCII character set without holes
(0, 1, 2, 3, 4, 5, ..., 125, 126, 127);
-- same as for any enumeration type.
-- Lower case letters:
constant
CHARACTER := `a';
..
LC_Z : constant
CHARACTER := `z';
end
ASCII;
subtype
NATURAL is
INTEGER range
0 .. INTEGER'LAST;
subtype
POSITIVE is
INTEGER range
1 .. INTEGER'LAST;
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
DURATION is
delta
implementation_defined
range
implementation_defined;
-- The predefined operators for the type DURATION
-- are the same as for any fixed point type.
exception
;
NUMERIC_ERROR : exception
;
PROGRAM_ERROR : exception
;
STORAGE_ERROR : exception
;
TASKING_ERROR : exception
;
end
STANDARD;