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

⟦0332a9e9a⟧ Ada Source

    Length: 9216 (0x2400)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package Error_Messages, pragma Module_Name 4 1121, pragma Segmented_Heap Errors, pragma Subsystem Ada_Management, seg_012863

Derivation

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

E3 Source Code



with System;
with Diana;

package Error_Messages is

    type Errors is private;
    type Annotation is private;
    type Annotations is private;
    type Annotation_Id is new Natural;
    type Severity is (Note, Warning, Error, Internal_Error, Exception_Handled);

    function Append (Prefix  : Errors;
                     Kind    : Severity;
                     Tree_1  : Diana.Tree;
                     Message : String;
                     Tree_2  : Diana.Tree;
                     Heap    : System.Segment;
                     Tree_1a : Diana.Tree := Diana.Empty;
                     Tree_2a : Diana.Tree := Diana.Empty) return Errors;

    function Kind    (Result : Errors) return Severity;
    function Tree_1  (Result : Errors) return Diana.Tree;
    function Tree_1a (Result : Errors) return Diana.Tree;
    function Message (Result : Errors) return String;
    function Tree_2  (Result : Errors) return Diana.Tree;
    function Tree_2a (Result : Errors) return Diana.Tree;

    function Next     (Result : Errors) return Errors;
    function Is_Empty (Result : Errors) return Boolean;
    function Empty                      return Errors;

    -- use to build and interrogate messages when they cannot be attached to
    -- a tree.

    procedure Fault_Nodes (Root : Diana.Tree; Some_Errors : Errors);

    -- Any tree referenced as a TREE_1 is a 'faulty node'. The procedure
    -- FAULT_NODES converts the list of ERRORS from semantics and/or
    -- directory-ops to a sequence of tree nodes with the error messages
    -- attached to each.  The sequence becomes the value of SM_FAULTY_NODES
    -- (ROOT). Update access is required for ROOT. TREE_1A and TREE_2A are
    -- ignored. Any annotations on the tree are removed prior to converting
    -- the new error list

    procedure Sm_Faulty_Nodes     (Root         : Diana.Tree;
                                   Faulty_Nodes : Diana.Sequence);
    procedure Remove_Faulty_Nodes (Root : Diana.Tree);
    function  Has_Sm_Faulty_Nodes (Root : Diana.Tree) return Boolean;
    function  Sm_Faulty_Nodes     (Root : Diana.Tree) return Diana.Sequence;

    function  Sm_Annotations     (Faulty_Node : Diana.Tree) return Annotations;
    function  Has_Sm_Annotations (Any_Node : Diana.Tree)    return Boolean;
    procedure Append             (Any_Node : Diana.Tree; Msg : Annotation);

    -- permanent semantic attributes tying messages to faulty nodes.

    function Make (Kind : Severity; Text : String) return Annotation;
    function Make (Kind : Severity; Text : String; Tree_2 : Diana.Tree)
                  return Annotation;

    -- TREE_1 of each message is the faulty node it is attached to.

    function Head      (Msgs : Annotations) return Annotation;
    function Tail      (Msgs : Annotations) return Annotations;
    function Not_Empty (Msgs : Annotations) return Boolean;
    function Nil                            return Annotations;

    -- Several messages can be associated with each faulty node.
    -- Use these operators to move through the list of messages.

    function Kind   (Msg : Annotation) return Severity;
    function Text   (Msg : Annotation) return String;
    function Tree_2 (Msg : Annotation) return Diana.Tree;

    -- TREE_1 of each message is the (faulty) node it is attached to.

    function Id     (Msg : Annotation) return Annotation_Id;
    function Has_Id (Msg : Annotation) return Boolean;
    function Nil                       return Annotation_Id;

    -- The ID of a message uniquely identifies the place within the
    -- the semanticist where the message originated.  It is often more
    -- specific in defining the nature of the error than the text
    -- portion of the message.

    function Annotated_Message (Msg : Error_Messages.Errors) return String;

    function Annotated_Message
                (Node : Diana.Tree; Msg : Annotation) return String;

    function Annotated_Node (Node : Diana.Tree) return String;

    pragma Subsystem (Ada_Management);
    pragma Module_Name (4, 1121);

private
    type Error_Data (Length : Natural);
    type Errors is access Error_Data;
    pragma Segmented_Heap (Errors);

    type Annotation  is new Diana.Attr_List;
    type Annotations is new Diana.Attr_List;
end Error_Messages;

E3 Meta Data

    nblk1=8
    nid=0
    hdr6=10
        [0x00] rec0=1b rec1=00 rec2=01 rec3=03c
        [0x01] rec0=00 rec1=00 rec2=08 rec3=00a
        [0x02] rec0=15 rec1=00 rec2=02 rec3=02e
        [0x03] rec0=00 rec1=00 rec2=07 rec3=03e
        [0x04] rec0=15 rec1=00 rec2=03 rec3=032
        [0x05] rec0=01 rec1=00 rec2=06 rec3=02c
        [0x06] rec0=18 rec1=00 rec2=04 rec3=038
        [0x07] rec0=0b rec1=00 rec2=05 rec3=001
    tail 0x2150d8c3e82b081db7c7d 0x42a00088462065003