|
|
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 - metrics - 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;