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: ┃ B T

⟦0b9ce1614⟧ TextFile

    Length: 7799 (0x1e77)
    Types: TextFile
    Names: »B«

Derivation

└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11
    └─ ⟦129cab021⟧ »DATA« 
        └─⟦this⟧ 

TextFile

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;