DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦1414f9639⟧ Ada Source

    Length: 7168 (0x1c00)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package Vstring_Scan, seg_005842

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« 
        └─⟦this⟧ 

E3 Source Code



with Vstring_Type;
use Vstring_Type;

package Vstring_Scan is
------------------------------------------------------------------------------
-- VString Scanning Functions
------------------------------------------------------------------------------
-- Copyright 1988 - 1991 by Rational, Santa Clara, California.
--
--                  All Rights Reserved.
--
-- Permission to use, copy, modify, and distribute this software and its
-- documentation for any purpose and without fee is hereby granted,
-- provided that the above copyright notice(s) appear in all copies and that
-- both that copyright notice(s) and this permission notice appear in
-- supporting documentation, and that the name of Rational not be used in
-- advertising or publicity pertaining to distribution of the software
-- without specific, written prior permission.
--
-- Rational disclaims all warranties with regard to this software, including
-- all implied warranties of merchantability and fitness, in no event shall
-- Rational be liable for any special, indirect or consequential damages or
-- any damages whatsoever resulting from loss of use, data or profits, whether
-- in an action of contract, negligence or other tortious action, arising out
-- of or in connection with the use or performance of this software.
------------------------------------------------------------------------------

----BreakSet - Data structure that controls the scanning of a string.
--             For each Ascii character it determines the scanning action.

    type Scan_Action is  
       (Sa_Transfer,            -- Copy character From => To
        Sa_Skip,                -- Discard character From
        Sa_Transfer_Uc,         -- Copy character Upper_Case(From) => To
        Sa_Transfer_Lc,         -- Copy character Lower_Case(From) => To
        Sa_Transfer_Break,      -- Copy character From => To and stop scan
        Sa_Transfer_Uc_Break,   -- Copy character Upper_Case(From) => To & stop
        Sa_Transfer_Lc_Break,   -- Copy character Lower_Case(From) => To & stop
        Sa_Skip_Break,          -- Discard character From and stop scan
        Sa_Retain_Break);       -- Retain character in From and stop scan

    type Breakset is array (Character) of Scan_Action;



    procedure Scan (To         : in out Vstring_Data;
                    From       : in out Vstring_Data;
                    Brk        :        Breakset;
                    Break_Char : out    Character);
    procedure Scan (To         : in out Vstring_Data;
                    From       :        Vstring;
                    Brk        :        Breakset;
                    Break_Char : out    Character);
    procedure Scan (To         :        Vstring;
                    From       : in out Vstring_Data;
                    Brk        :        Breakset;
                    Break_Char : out    Character);
    procedure Scan (To         :     Vstring;
                    From       :     Vstring;
                    Brk        :     Breakset;
                    Break_Char : out Character);
    ----Scans the From string.  Removes character from the beginning of From
    --  and places then into the To string as controlled by the Breakset.  The
    --  character that stops the scan is copied into Break_Char.  If the scan
    --  stops due to end-of-string then Break_Char = Ascii.Nul.

    procedure Append_Scan (To         : in out Vstring_Data;
                           From       : in out Vstring_Data;
                           Brk        :        Breakset;
                           Break_Char : out    Character);
    procedure Append_Scan (To         : in out Vstring_Data;
                           From       :        Vstring;
                           Brk        :        Breakset;
                           Break_Char : out    Character);
    procedure Append_Scan (To         : in out Vstring;
                           From       : in out Vstring_Data;
                           Brk        :        Breakset;
                           Break_Char : out    Character);
    procedure Append_Scan (To         : in out Vstring;
                           From       :        Vstring;
                           Brk        :        Breakset;
                           Break_Char : out    Character);
    ----Just like Scan except that the To string is Appended rather than
    --  Assigned.

    procedure Trunc_Scan (From       : in out Vstring_Data;  
                          Brk        :        Breakset;  
                          Break_Char : out    Character);
    procedure Trunc_Scan (From       :     Vstring;  
                          Brk        :     Breakset;  
                          Break_Char : out Character);
    ----Just like Scan except there is no To string.

    procedure Set_Breakset (Brk   : in out Breakset;  
                            Break :        E_String;  
                            Omit  :        E_String;  
                            Mode  :        E_String);
    ----Initialize a Breakset.
    --  Break   - Contains all characters that will (not) stop the scan.
    --  Omit    - Contains all characters to be dropped as From is scanned.
    --  Mode    - Mode setting characters:
    --              I - Break contains scan stopping characters (Inclusive scan)
    --              X - Break contains scan non-stopping chars (eXclusive scan)
    --              A - Append break character in To string and stop
    --              R - Retain break character in From string and stop
    --              S - Skip (drop) break character and stop
    --              U - Convert characters to Upper case as they are copied
    --              L - Convert characters to Lower case as they are copied

end Vstring_Scan;

E3 Meta Data

    nblk1=6
    nid=0
    hdr6=c
        [0x00] rec0=16 rec1=00 rec2=01 rec3=06c
        [0x01] rec0=10 rec1=00 rec2=02 rec3=08a
        [0x02] rec0=16 rec1=00 rec2=03 rec3=016
        [0x03] rec0=11 rec1=00 rec2=04 rec3=034
        [0x04] rec0=13 rec1=00 rec2=05 rec3=06c
        [0x05] rec0=10 rec1=00 rec2=06 rec3=000
    tail 0x21700ab5481978f215fb3 0x42a00088462063203