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

⟦315a0d12b⟧ Ada Source

    Length: 12288 (0x3000)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Interpreter, seg_038fcb, seg_039409, seg_039551

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦5a81ac88f⟧ »Space Info Vol 1« 
        └─⟦this⟧ 
└─⟦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 Custom;
with Object;
with Errors;

package body Interpreter is

    procedure Go (The_Root : Statements.Node; Terminal : String) is
        Result_Object : Object.Reference := Object.Void_Reference;
    begin
        Result_Object := Statements.Interpret (The_Root);

    exception

        when Errors.Affectation_To_Predefined_Id =>
            Errors.Interpret_Log
               ("Il est impossible de modifier la valeur d'un identificateur predefini !",
                Terminal);

        when Errors.Block_Argument_Required_For_Boolean =>
            Errors.Interpret_Log
               ("Un objet Bloc est requis en argument d'un message envoye a un objet Booleen !",
                Terminal);

        when Errors.Block_Argument_Required_For_Integer =>
            Errors.Interpret_Log
               ("Un objet Bloc est requis en argument d'un message envoye a un objet Entier !",
                Terminal);

        when Errors.Block_Argument_Required_For_Tantque_Msg =>
            Errors.Interpret_Log
               ("Un objet Bloc est requis en argument du message 'Tant_Que_Vrai' or 'Tant_Que_Faux' !",
                Terminal);

        when Errors.Bloc_Msg_With_Not_Enough_Arguments =>
            Errors.Interpret_Log
               ("Un message est envoye a un Bloc avec un nombre insuffisant d'arguments !",
                Terminal);

        when Errors.Bloc_Msg_With_Too_Many_Arguments =>
            Errors.Interpret_Log
               ("Un message est envoye a un Bloc avec un trop grand nombre d'arguments !",
                Terminal);

        when Errors.Boolean_Object_Required_As_Argument =>
            Errors.Interpret_Log
               ("Un objet Booleen est requis en argument d'un message !",
                Terminal);

        when Errors.Division_By_Zero =>
            Errors.Interpret_Log
               ("Tentative de division par Zero !!!", Terminal);

        when Errors.Get_Value_Of_Undefined_Identifier =>
            Errors.Interpret_Log
               ("Utilisation d'un identificateur incorrect (non declare) !",
                Terminal);

        when Errors.Inconsistent_Msg_Selector_For_Block =>
            Errors.Interpret_Log
               ("Message incoherent envoye a un objet Bloc !  (verifiez le nom des arguments...)",
                Terminal);

        when Errors.Integer_Object_Required_As_Argument =>
            Errors.Interpret_Log
               ("Un objet Entier est requis en argument d'un message !",
                Terminal);

        when Errors.Integer_Required_As_Argument_For_Pen =>
            Errors.Interpret_Log
               ("Un objet Entier est requis en argument d'un message envoye a un objet Stylo !",
                Terminal);

        when Errors.Integer_Required_As_Argument_For_Turtle =>
            Errors.Interpret_Log
               ("Un objet Entier est requis en argument d'un message envoye a un objet Tortue !",
                Terminal);

        when Errors.Max_Block_Number_Exceeded =>
            Errors.Interpret_Log
               ("Le nombre maximum de blocs (" &
                Natural'Image (Custom.Block_Max_Number) &
                " ) a ete atteint ! Impossible de creer un nouvel objet Bloc...",
                Terminal);

        when Errors.Max_Pen_Number_Exceeded =>
            Errors.Interpret_Log
               ("Le nombre maximum de stylos (" &
                Natural'Image (Custom.Pen_Max_Number) &
                " ) a ete atteint ! Impossible de creer un nouvel objet Stylo...",
                Terminal);

        when Errors.Max_String_Number_Exceeded =>
            Errors.Interpret_Log
               ("Le nombre maximum de chaines (" &
                Natural'Image (Custom.String_Max_Number) &
                " ) a ete atteint ! Impossible de creer un nouvel objet Chaine...",
                Terminal);

        when Errors.Max_Turtle_Number_Exceeded =>
            Errors.Interpret_Log
               ("Le nombre maximum de Tortues (" &
                Natural'Image (Custom.Turtle_Max_Number) &
                " ) a ete atteint ! Impossible de creer un nouvel objet Tortue...",
                Terminal);

        when Errors.Message_Sent_To_Empty_Object =>
            Errors.Interpret_Log
               ("Un message a ete envoye a l'objet Vide !", Terminal);

        when Errors.Multiply_Defined_Argument =>
            Errors.Interpret_Log
               ("Dans la liste des arguments d'un bloc, un argument a ete specifie plusieurs fois...",
                Terminal);

        when Errors.Set_Value_To_Undefined_Identifier =>
            Errors.Interpret_Log
               ("Tentative d'affectation d'un identificateur inconnu !",
                Terminal);

        when Errors.Several_Arguments_With_Same_Name =>
            Errors.Interpret_Log
               ("Dans la liste des arguments d'un bloc, plusieurs arguments ont le meme nom...",
                Terminal);

        when Errors.String_Object_Required_As_Argument =>
            Errors.Interpret_Log
               ("Un objet Chaine est requis en argument d'un message !",
                Terminal);

        when Errors.String_Required_As_Argument_For_Pen =>
            Errors.Interpret_Log
               ("Un objet Chaine est requis en argument d'un message envoye a un objet Stylo !",
                Terminal);

        when Errors.Tantque_Msg_To_Non_Boolean_Block =>
            Errors.Interpret_Log
               ("Les messages 'Tant_Que_Vrai' et 'Tant_Que_Faux' ne peuvent etre envoyes qu'a un objet Bloc !",
                Terminal);

        when Errors.Target_String_Is_Too_Long =>
            Errors.Interpret_Log
               ("Concatenation impossible de 2 chaines : la chaine resultante serait trop longue !  ( Max =" &
                Natural'Image (Custom.String_Max_Length) & ")",
                Terminal);

        when Errors.Unary_Message_To_Block_With_Arguments =>
            Errors.Interpret_Log
               ("Envoi d'un message unaire, a un bloc avec argument(s) !",
                Terminal);

        when Errors.Undefined_Message_For_Block =>
            Errors.Interpret_Log
               ("Les objets Bloc ne comprennent aucun message binaire !",
                Terminal);

        when Errors.Undefined_Message_For_Pen =>
            Errors.Interpret_Log
               ("Les objets Stylo ne comprennent aucun message binaire !",
                Terminal);

        when Errors.Undefined_Message_For_String =>
            Errors.Interpret_Log
               ("Les objets Chaine ne comprennent aucun message a mots cle !",
                Terminal);

        when Errors.Undefined_Message_For_Turtle =>
            Errors.Interpret_Log
               ("Les objets Tortue ne comprennent aucun message binaire !",
                Terminal);

        when Errors.Unknown_Message_For_Block =>
            Errors.Interpret_Log
               ("Envoi d'un message inconnu a un objet Bloc !", Terminal);

        when Errors.Unknown_Message_For_Boolean =>
            Errors.Interpret_Log
               ("Envoi d'un message inconnu a un objet Booleen !", Terminal);

        when Errors.Unknown_Message_For_Integer =>
            Errors.Interpret_Log
               ("Envoi d'un message inconnu a un objet Entier !", Terminal);

        when Errors.Unknown_Message_For_Pen =>
            Errors.Interpret_Log
               ("Envoi d'un message inconnu a un objet Stylo !", Terminal);

        when Errors.Unknown_Message_For_String =>
            Errors.Interpret_Log
               ("Envoi d'un message inconnu a un objet Chaine !", Terminal);

        when Errors.Unknown_Message_For_Turtle =>
            Errors.Interpret_Log
               ("Envoi d'un message inconnu a un objet Tortue !", Terminal);

    end Go;

end Interpreter;



E3 Meta Data

    nblk1=b
    nid=3
    hdr6=12
        [0x00] rec0=1e rec1=00 rec2=01 rec3=042
        [0x01] rec0=18 rec1=00 rec2=09 rec3=02a
        [0x02] rec0=16 rec1=00 rec2=07 rec3=092
        [0x03] rec0=18 rec1=00 rec2=05 rec3=01e
        [0x04] rec0=17 rec1=00 rec2=04 rec3=03e
        [0x05] rec0=15 rec1=00 rec2=08 rec3=064
        [0x06] rec0=1a rec1=00 rec2=06 rec3=004
        [0x07] rec0=18 rec1=00 rec2=02 rec3=076
        [0x08] rec0=08 rec1=00 rec2=0b rec3=000
        [0x09] rec0=16 rec1=00 rec2=07 rec3=044
        [0x0a] rec0=0d rec1=00 rec2=05 rec3=000
    tail 0x215320ccc84e95ebe20c4 0x42a00088462060003
Free Block Chain:
  0x3: 0000  00 0a 00 5b 80 43 69 6e 65 64 20 77 69 74 68 20  ┆   [ Cined with ┆
  0xa: 0000  00 00 00 05 80 02 6d 69 02 6e 74 71 75 65 5f 4d  ┆      mi ntque_M┆