|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 10560 (0x2940)
Types: TextFile
Notes: R1k Text-file segment
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦cfc2e13cd⟧ »Space Info Vol 2«
└─⟦47e3a4e53⟧
└─⟦this⟧
-- This package defines types and routines for manipulating
-- varying-length character strings, as a_string (access string).
-- SFZ 1/21/86
with Unchecked_Conversion;
with System;
package A_Strings is
type string_rec(len: natural) is record
s: string(1..len);
end record;
type A_String is access string_rec;
function to_a_string is new Unchecked_Conversion(
source => system.address,
target => a_string
);
Null_String_Rec: constant string_rec(0) := (
len => 0,
s => (others => ascii.nul)
);
Empty : constant A_String := to_a_string(Null_String_Rec'address);
type convert_t is array(character) of character;
to_upper: constant convert_t := (
ascii.nul, ascii.soh, ascii.stx, ascii.etx,
ascii.eot, ascii.enq, ascii.ack, ascii.bel,
ascii.bs, ascii.ht, ascii.lf, ascii.vt,
ascii.ff, ascii.cr, ascii.so, ascii.si,
ascii.dle, ascii.dc1, ascii.dc2, ascii.dc3,
ascii.dc4, ascii.nak, ascii.syn, ascii.etb,
ascii.can, ascii.em, ascii.sub, ascii.esc,
ascii.fs, ascii.gs, ascii.rs, ascii.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', '{', '|', '}', '~', ascii.del
,
character'val(128), character'val(129),
character'val(130), character'val(131),
character'val(132), character'val(133),
character'val(134), character'val(135),
character'val(136), character'val(137),
character'val(138), character'val(139),
character'val(140), character'val(141),
character'val(142), character'val(143),
character'val(144), character'val(145),
character'val(146), character'val(147),
character'val(148), character'val(149),
character'val(150), character'val(151),
character'val(152), character'val(153),
character'val(154), character'val(155),
character'val(156), character'val(157),
character'val(158), character'val(159),
character'val(160), character'val(161),
character'val(162), character'val(163),
character'val(164), character'val(165),
character'val(166), character'val(167),
character'val(168), character'val(169),
character'val(170), character'val(171),
character'val(172), character'val(173),
character'val(174), character'val(175),
character'val(176), character'val(177),
character'val(178), character'val(179),
character'val(180), character'val(181),
character'val(182), character'val(183),
character'val(184), character'val(185),
character'val(186), character'val(187),
character'val(188), character'val(189),
character'val(190), character'val(191),
character'val(192), character'val(193),
character'val(194), character'val(195),
character'val(196), character'val(197),
character'val(198), character'val(199),
character'val(200), character'val(201),
character'val(202), character'val(203),
character'val(204), character'val(205),
character'val(206), character'val(207),
character'val(208), character'val(209),
character'val(210), character'val(211),
character'val(212), character'val(213),
character'val(214), character'val(215),
character'val(216), character'val(217),
character'val(218), character'val(219),
character'val(220), character'val(221),
character'val(222), character'val(223),
character'val(224), character'val(225),
character'val(226), character'val(227),
character'val(228), character'val(229),
character'val(230), character'val(231),
character'val(232), character'val(233),
character'val(234), character'val(235),
character'val(236), character'val(237),
character'val(238), character'val(239),
character'val(240), character'val(241),
character'val(242), character'val(243),
character'val(244), character'val(245),
character'val(246), character'val(247),
character'val(248), character'val(249),
character'val(250), character'val(251),
character'val(252), character'val(253),
character'val(254), character'val(255)
);
to_lower: constant convert_t := (
ascii.nul, ascii.soh, ascii.stx, ascii.etx,
ascii.eot, ascii.enq, ascii.ack, ascii.bel,
ascii.bs, ascii.ht, ascii.lf, ascii.vt,
ascii.ff, ascii.cr, ascii.so, ascii.si,
ascii.dle, ascii.dc1, ascii.dc2, ascii.dc3,
ascii.dc4, ascii.nak, ascii.syn, ascii.etb,
ascii.can, ascii.em, ascii.sub, ascii.esc,
ascii.fs, ascii.gs, ascii.rs, ascii.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', '{', '|', '}', '~', ascii.del
,
character'val(128), character'val(129),
character'val(130), character'val(131),
character'val(132), character'val(133),
character'val(134), character'val(135),
character'val(136), character'val(137),
character'val(138), character'val(139),
character'val(140), character'val(141),
character'val(142), character'val(143),
character'val(144), character'val(145),
character'val(146), character'val(147),
character'val(148), character'val(149),
character'val(150), character'val(151),
character'val(152), character'val(153),
character'val(154), character'val(155),
character'val(156), character'val(157),
character'val(158), character'val(159),
character'val(160), character'val(161),
character'val(162), character'val(163),
character'val(164), character'val(165),
character'val(166), character'val(167),
character'val(168), character'val(169),
character'val(170), character'val(171),
character'val(172), character'val(173),
character'val(174), character'val(175),
character'val(176), character'val(177),
character'val(178), character'val(179),
character'val(180), character'val(181),
character'val(182), character'val(183),
character'val(184), character'val(185),
character'val(186), character'val(187),
character'val(188), character'val(189),
character'val(190), character'val(191),
character'val(192), character'val(193),
character'val(194), character'val(195),
character'val(196), character'val(197),
character'val(198), character'val(199),
character'val(200), character'val(201),
character'val(202), character'val(203),
character'val(204), character'val(205),
character'val(206), character'val(207),
character'val(208), character'val(209),
character'val(210), character'val(211),
character'val(212), character'val(213),
character'val(214), character'val(215),
character'val(216), character'val(217),
character'val(218), character'val(219),
character'val(220), character'val(221),
character'val(222), character'val(223),
character'val(224), character'val(225),
character'val(226), character'val(227),
character'val(228), character'val(229),
character'val(230), character'val(231),
character'val(232), character'val(233),
character'val(234), character'val(235),
character'val(236), character'val(237),
character'val(238), character'val(239),
character'val(240), character'val(241),
character'val(242), character'val(243),
character'val(244), character'val(245),
character'val(246), character'val(247),
character'val(248), character'val(249),
character'val(250), character'val(251),
character'val(252), character'val(253),
character'val(254), character'val(255)
);
function to_C(S : A_String) return System.ADDRESS;
function to_a(S: String) return A_String;
function to_a(C: Character) return A_String;
function "&" (S: A_String; T: A_String) return A_String;
function "&" (S: String; T: A_String) return A_String;
function "&" (S: A_String; T: String) return A_String;
function "&" (S: Character; T: A_String) return A_String;
function "&" (S: A_String; T: Character) return A_String;
function Insert
(S: A_String; Into : A_String; at_char: natural) return A_String;
function Insert
(S: String; Into : A_String; at_char: natural) return A_String;
function Insert
(S: Character; Into : A_String; at_char: natural) return A_String;
function Change
(S: A_String; at_char,to_char: natural; Into: A_String) return A_String;
function Change
(S: A_String; at_char,to_char: natural; Into: String) return A_String;
-- the following routines return 0 if the pattern does not occur in S;
-- otherwise they return the index of the start of the pattern in S.
function Has
(Pattern, S: A_String; start: natural:=1) return integer;
function Has
(Pattern: String; S: A_String; start: natural:=1) return integer;
function Has
(Pattern: Character; S: A_String; start: natural:=1) return integer;
not_found: exception;
function Next
(Pattern, S: A_String; start: natural:=1) return natural;
function Next
(Pattern: String; S: A_String; start: natural:=1) return natural;
function Next
(Pattern: Character; S: A_String; start: natural:=1) return natural;
function Last
(Pattern, S: A_String; start: natural:=1) return natural;
function Last
(Pattern: String; S: A_String; start: natural:=1) return natural;
function Last
(Pattern: Character; S: A_String; start: natural:=1) return natural;
function Substitute
(For_pattern, To_pattern: string; S: A_String) return A_String;
function Reverse_Order (S : A_String) return A_String;
function Truncate (S : A_String; at_char: natural) return A_String;
function Trim (S: A_String) return A_String;
function Pad_Left
(S : A_String; to_length: natural; pad_char: Character := ' ')
return A_String;
function Pad_Right
(S : A_String; to_length: natural; pad_char: Character := ' ')
return A_String;
function Copy (S : A_String) return A_String;
function Lower_To_Upper (S : A_String) return A_String;
function Upper_To_Lower (S : A_String) return A_String;
function Translate (From_Old, To_New: String; S: A_String) return A_String;
function is_null(s : a_string) return boolean;
function is_empty(s : a_string) return boolean;
function Allocate(size: integer) return a_string;
procedure Free (S: A_String);
end A_Strings