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: 7407 (0x1cef) Types: TextFile Names: »B«
└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11 └─ ⟦129cab021⟧ »DATA« └─⟦this⟧
with Class_Window; with Easy_Y; with Bounded_String; with Message; with Requester; with Scanner; with Start; package body Bug_Report is procedure Open (X, Y : Object.Index; Screen : String) is use Object; begin Easy_Y.Put_Title (Window => Error_Window, Title => Bounded_String.Value ("Erreur", 80)); Easy_Y.Put_Left (Window => Error_Window, Left => X); Easy_Y.Put_Right (Window => Error_Window, Right => Y); Easy_Y.Put_Width (Window => Error_Window, Width => The_Width); Easy_Y.Put_Height (Window => Error_Window, Height => The_Height); Easy_Y.Open (Display => Screen, Window => Error_Window); Easy_Y.Put_Font (To => Easy_Y.Small_Font); Easy_Y.Put_Size (Window => Error_Window, Size => 1); Easy_Y.Update; end Open; procedure Close is Button : Message.Unary; Result : Object.Index; begin Message.Free (Button); Message.Put (This_Name => Bounded_String.Value ("Fin", 80), Into => Button); Requester.Open (X => 500, Y => 250, Screen => Bounded_String.Image (Class_Window.Get_Terminal_Name), The_Message => Button, Str => Bounded_String.Value ("Cliquez pour finir", 80)); Result := Requester.Choice (Button); Message.Free (Button); Requester.Close; Easy_Y.Close (Window => Error_Window); end Close; procedure Put (The_String : String) is use Object; Pos : Object.Index; begin Open (X => 100, Y => 100, Screen => Bounded_String.Image (Class_Window.Get_Terminal_Name)); Easy_Y.Set_Display (Window => Error_Window); Pos := (The_Width - The_String'Length * 8) / 2; Easy_Y.Print (Pos, 50, Bounded_String.Value (The_String, 80)); Close; end Put; procedure Print (Message : String) is begin Put (Message); end Print; procedure Print (Message : String; Ligne : Object.Index) is begin Put (Message & " a la ligne" & Object.Index'Image (Ligne) & "."); end Print; procedure Print (Message : String; Objet : Object.Tiny_String; Ligne : Object.Index) is begin Put (Message & " `" & Bounded_String.Image (Objet) & "' de la ligne" & Object.Index'Image (Ligne) & "."); end Print; procedure Supervisor (The_File : String) is begin Start (File => The_File); exception when Constraint_Error => Print ("Erreur imprevue : Constraint_Error a ete levee", Scanner.Get_Line_Number); when Numeric_Error => Print ("Erreur imprevue : Numeric_Error a ete levee", Scanner.Get_Line_Number); when Program_Error => Print ("Erreur imprevue : Program_Error a ete levee", Scanner.Get_Line_Number); when Storage_Error => Print ("Erreur imprevue : Storage_Error a ete levee", Scanner.Get_Line_Number); when Tasking_Error => Print ("Erreur imprevue : Tasking_Error a ete levee", Scanner.Get_Line_Number); when Identifier_Is_Missing => Print ("Erreur de syntaxe : ceci n'est pas un identifier =>", Scanner.Get_Value, Scanner.Get_Line_Number); when Parenthesis_Is_Missing => Print ("Erreur de syntaxe : il manque une parenthese fermante", Scanner.Get_Line_Number); when Point_Is_Missing => Print ("Erreur de syntaxe : il manque un point", Scanner.Get_Line_Number); when Brace_Is_Missing => Print ("Erreur de syntaxe : il manque une accolade fermante", Scanner.Get_Line_Number); when Prendre_Is_Missing => Print ("Erreur de syntaxe : le mot clef PRENDRE est attendu", Scanner.Get_Line_Number); when Unexpected_Token => Print ("Erreur de syntaxe : je ne comprend pas la chaine suivante =>", Scanner.Get_Value, Scanner.Get_Line_Number); when Boolean_Bad_Type => Print ("Erreur d'execution : conflit de type avec un objet booleen", Scanner.Get_Line_Number); when Integer_Bad_Type => Print ("Erreur d'execution : conflit de type avec un objet entier", Scanner.Get_Line_Number); when String_Bad_Type => Print ("Erreur d'execution : conflit de type avec un objet chaine", Scanner.Get_Line_Number); when Block_Bad_Type => Print ("Erreur d'execution : conflit de type avec un objet bloc", Scanner.Get_Line_Number); when Turtle_Bad_Type => Print ("Erreur d'execution : conflit de type avec un objet tortue", Scanner.Get_Line_Number); when Pen_Bad_Type => Print ("Erreur d'execution : conflit de type avec un objet stylo", Scanner.Get_Line_Number); when Window_Bad_Type => Print ("Erreur d'execution : conflit de type avec un objet fenetre", Scanner.Get_Line_Number); when Undefined_Identifier => Print ("Erreur d'execution : une variable utilisee n'a pas ete definie", Scanner.Get_Line_Number); when Unknown_Unary_Message => Print ("Erreur d'execution : un objet ne comprend pas un message unaire", Scanner.Get_Line_Number); when Unknown_Binary_Message => Print ("Erreur d'execution : un objet ne comprend pas un message binaire", Scanner.Get_Line_Number); when Unknown_Keyword_Message => Print ("Erreur d'execution : un objet ne comprend pas un message a selecteurs", Scanner.Get_Line_Number); when Mismatch_Parameters => Print ("Erreur d'execution : les parametres passes a un bloc ne correspondent pas", Scanner.Get_Line_Number); when Full_Block_Table => Print ("Erreur d'execution : je n'ai plus de place pour reserver des blocs", Scanner.Get_Line_Number); when Full_String_Table => Print ("Erreur d'execution : je n'ai plus de place pour reserver des chaines", Scanner.Get_Line_Number); when Full_Turtle_Table => Print ("Erreur d'execution : je n'ai plus de place pour reserver des tortues", Scanner.Get_Line_Number); when Full_Pen_Table => Print ("Erreur d'execution : je n'ai plus de place pour reserver des stylos", Scanner.Get_Line_Number); when Full_Window_Table => Print ("Erreur d'execution : je n'ai plus de place pour reserver des fenetres", Scanner.Get_Line_Number); when Divide_By_Zero => Print ("Erreur d'execution : tentative de division par zero", Scanner.Get_Line_Number); when others => null; end Supervisor; end Bug_Report;