DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - downloadIndex: ┃ B T ┃
Length: 7799 (0x1e77) Types: TextFile Names: »B«
└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11 └─ ⟦129cab021⟧ »DATA« └─⟦this⟧
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;