-- $Source: /commtar/monoBANK/RTS/standard.ada,v $ -- $Revision: 1.1 $ $Date: 87/01/19 17:32:54 $ $Author: murphy $ package STANDARD is -- Link name on standard so that we can refer to it elsewhere pragma link_name(STANDARD, "STNDRDS"); -- N.B. No derived types should be declared in standard! -- The processing of package standard is not set up for it -- 1/22/85 type BOOLEAN is (FALSE, TRUE); function "NOT" (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; type INTEGER is range -2147483647 - 1 .. 2147483647; 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 "MOD" (LEFT, RIGHT : INTEGER) return INTEGER; function "REM" (LEFT, RIGHT : INTEGER) return INTEGER; function "**" (LEFT : INTEGER; RIGHT : INTEGER) return INTEGER; 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; -- The floating point types are arranged in order from -- least precise to most precise. This order should be maintained -- because the code for user-defined float types depends on it. type SHORT_FLOAT is digits 6 range - 16#0.ffffff#e63 .. 16#0.ffffff#e63; type FLOAT is digits 15 range - 16#0.ffffffffffffff#e63 .. 16#0.ffffffffffffff#e63; -- ASCII character set -- Character literals corrsponding to non-printing characters -- are not identifiers type CHARACTER is (x00, x01, x02, x03, x04, x05, x06, x07, x08, x09, x0A, x0B, x0C, x0D, x0E, x0F, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x1A, x1B, x1C, x1D, x1E, x1F, ' ', '!', '"', '#', '$', '%', '&', ''', '(', ')', '*', '+', ',', '-', '.', '/', '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', '{', '|', '}', '~', x7F); package ASCII is -- Control characters nul : constant character := x00; soh : constant character := x01; stx : constant character := x02; etx : constant character := x03; eot : constant character := x04; enq : constant character := x05; ack : constant character := x06; bel : constant character := x07; bs : constant character := x08; ht : constant character := x09; lf : constant character := x0A; vt : constant character := x0B; ff : constant character := x0C; cr : constant character := x0D; so : constant character := x0E; si : constant character := x0F; dle : constant character := x10; dc1 : constant character := x11; dc2 : constant character := x12; dc3 : constant character := x13; dc4 : constant character := x14; nak : constant character := x15; syn : constant character := x16; etb : constant character := x17; can : constant character := x18; em : constant character := x19; sub : constant character := x1A; esc : constant character := x1B; fs : constant character := x1C; gs : constant character := x1D; rs : constant character := x1E; us : constant character := x1F; del : constant character := x7F; -- Other characters 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 := ']'; underline : constant character := '_'; circumflex : constant character := '^'; grave : constant character := '`'; l_brace : constant character := '{'; bar : constant character := '|'; r_brace : constant character := '}'; tilde : constant character := '~'; -- Lower case characters 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; -- Predefined subtypes: subtype NATURAL is INTEGER range 0 .. INTEGER'LAST ; subtype POSITIVE is INTEGER range 1 .. INTEGER'LAST ; -- Predefined string type: type STRING is array (POSITIVE range <>) of CHARACTER; pragma pack(STRING) ; function "&" (LEFT : STRING; RIGHT : STRING) return STRING; CONSTRAINT_ERROR, NUMERIC_ERROR, PROGRAM_ERROR, STORAGE_ERROR, TASKING_ERROR : exception; type DURATION is delta 2.0 ** (-14) range -86400.0 .. 86400.0; --| Used for delay statements. --| The best we can do with binary scale in 32 bits. private type UNIVERSAL_INTEGER ; --| Convert through lex to the appropriate type UNIVERSAL_REAL ; --| universal type and make their name type UNIVERSAL_FIXED ; --| invisible. package AttributeIds is --| This package declares the predefined attribute_id's --| They are converted by the standard-analyzer from --| function id's into attribute id's. --| In addition, the name AttributeIds is made invisible. --| The order in which these declarations appear is important! function address return integer ; function aft return integer ; function base return integer ; function callable return integer ; function constrained return integer ; function count return integer ; function delta_id return integer ; -- Must change symrep too! function digits_id return integer ; -- Must change symrep too function emax return integer ; function epsilon return integer ; function first_bit return integer ; -- first_bit_id function first return character ; -- first_scalar_id function first return boolean ; -- first_index_id function fore return integer ; function image return integer ; function large return integer ; function last_bit return integer ; -- last_bit_id function last return boolean ; -- last_scalar_id function last return character ; -- last_index_id function length return integer ; function machine_emax return integer ; function machine_emin return integer ; function machine_mantissa return integer ; function machine_overflows return integer ; function machine_radix return integer ; function machine_rounds return integer ; function mantissa return integer ; function pos return integer ; function position return integer ; function pred return integer ; function range_id return integer ; -- Must change symrep too function safe_emax return integer ; function safe_large return integer ; function safe_small return integer ; function size return integer ; -- size_objects_id function size return character ; -- size_type_id function small return integer ; function storage_size return integer ; -- collection_id function storage_size return character ; -- task_id function succ return integer ; function terminated return integer ; function val return integer ; function value return integer ; function width return integer ; end AttributeIds ; package PragmaIds is --| Declare all the pragma id's (convert function_id's into --| pragma_id's mark_release , monitor , unrecognized , controlled , elaborate , inline , interface , link_name , list , memory_size , optimize , pack , page , priority , shared , storage_unit , suppress , system_name : integer ; end PragmaIds ; end STANDARD; -- $Cprt start$ -- -- Copyright (C) 1988 by Intermetrics, Inc. -- -- This material may be used duplicated or disclosed by or for the -- U.S. Government pursuant to the copyright license under DAR clause -- 7-104.9(a) (May 1981). -- -- This project was spnsored by the STARS Foundation -- Naval Research Laboratory, Washington DC -- -- $Cprt end$