|
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: 4702 (0x125e) Types: TextFile Names: »B«
└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11 └─ ⟦129cab021⟧ »DATA« └─⟦this⟧
with Bounded_String; with Custom; with Easy_X; with Integer_Class; with Message; with Object; with Parameters; with Pen_Class; with Scanner; with String_Class; package body Errors is A_Pen : Object.Reference := Pen_Class.Get_For_Error; Opened_Window : Boolean := False; procedure Write_With_Pen (The_Pen : Object.Reference; The_String : String; X, Y : Integer) is Msg : Message.Selector; Arg : Parameters.List; Obj : Object.Reference; Ton_X : Scanner.Lexeme := Bounded_String.Value ("TON_X:", Custom.String_Max_Length); Ton_Y : Scanner.Lexeme := Bounded_String.Value ("TON_Y:", Custom.String_Max_Length); Fin : Scanner.Lexeme := Bounded_String.Value ("FIN", Custom.String_Max_Length); Ecris : Scanner.Lexeme := Bounded_String.Value ("ECRIS:", Custom.String_Max_Length); begin Message.Free (Msg); Parameters.Free (Arg); Obj := Integer_Class.Create (X); Message.Insert (Ton_Y, Msg); Parameters.Insert (Obj, Arg); Obj := Integer_Class.Create (Y); Message.Insert (Ton_X, Msg); Parameters.Insert (Obj, Arg); Pen_Class.Send (The_Pen, Msg, Arg, Obj); Obj := Pen_Class.Send (The_Pen, Fin); Message.Free (Msg); Parameters.Free (Arg); Obj := String_Class.Get_For_Error (The_String); Message.Insert (Ecris, Msg); Parameters.Insert (Obj, Arg); Pen_Class.Send (The_Pen, Msg, Arg, Obj); end Write_With_Pen; procedure Parse_Log (The_Error : String; Terminal : String; With_Line_Nb : Boolean := True) is Line_Number : Natural; begin Easy_X.Open (Terminal, " Y'A UN PROBLEME... ", 100, 300, 800, 50); loop case Easy_X.Next_Event is when Easy_X.Update => if With_Line_Nb then Line_Number := Scanner.Get_Line_Number; Write_With_Pen (A_Pen, "En analysant la ligne numero " & Natural'Image (Line_Number) & " :", 20, 20); Write_With_Pen (A_Pen, The_Error, 40, 30); else Write_With_Pen (A_Pen, The_Error, 20, 20); end if; when Easy_X.Button_Down => exit; when Easy_X.Button_Up => null; end case; end loop; Opened_Window := True; raise Stop_Parsing; end Parse_Log; procedure Save_Interpret_Line (Line_Number : Natural) is begin Interpreting_Line := Line_Number; if not Opened_Window then Opened_Window := True; end if; end Save_Interpret_Line; procedure Interpret_Log (The_Error : String; Terminal : String; With_Line_Nb : Boolean := True) is begin Easy_X.Close; Easy_X.Open (Terminal, " Y'A UN PROBLEME... ", 100, 300, 800, 50); loop case Easy_X.Next_Event is when Easy_X.Update => if With_Line_Nb then Write_With_Pen (A_Pen, "En interpretant la ligne numero" & Natural'Image (Interpreting_Line) & " :", 20, 20); Write_With_Pen (A_Pen, The_Error, 40, 30); else Write_With_Pen (A_Pen, The_Error, 20, 20); end if; when Easy_X.Button_Down => exit; when Easy_X.Button_Up => null; end case; end loop; raise Stop_Interpreting; end Interpret_Log; procedure Run_Log (The_Error : String; Terminal : String) is begin if Opened_Window then Easy_X.Close; end if; Easy_X.Open (Terminal, " A BIENTOT ... ", 200, 400, 700, 40); loop case Easy_X.Next_Event is when Easy_X.Update => Write_With_Pen (A_Pen, The_Error, 30, 30); when Easy_X.Button_Down => exit; when Easy_X.Button_Up => null; end case; end loop; Easy_X.Close; end Run_Log; end Errors;