DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400 Tapes

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 Tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download
Index: ┃ T V

⟦35cad6331⟧ TextFile

    Length: 4262 (0x10a6)
    Types: TextFile
    Names: »V«

Derivation

└─⟦d10a02448⟧ Bits:30000409 8mm tape, Rational 1000, ENVIRONMENT, D_12_7_3
    └─ ⟦fc9b38f02⟧ »DATA« 
        └─⟦9b46a407a⟧ 
            └─⟦12c68c704⟧ 
                └─⟦this⟧ 
└─⟦5f3412b64⟧ Bits:30000745 8mm tape, Rational 1000, ENVIRONMENT 12_6_5 TOOLS 
    └─ ⟦91c658230⟧ »DATA« 
        └─⟦458657fb6⟧ 
            └─⟦220843204⟧ 
                └─⟦this⟧ 

TextFile

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;