|
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 - 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