|
|
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: 3625 (0xe29)
Types: TextFile
Names: »B«
└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11
└─⟦129cab021⟧ »DATA«
└─⟦this⟧
with Custom;
with Easy_X;
with Errors;
with Interpreter;
with Io_Exceptions;
with Parser;
with Statements;
with Trace;
with Unparser;
procedure Run (Source_File : String := "tiny_talk";
Trace_Option : Boolean := False;
Unparse_Option : Boolean := True;
Unparse_To_File : String := "tiny_unparsed";
Terminal : String) is
Syntaxic_Tree_Root : Statements.Node;
Error_Number : Natural;
begin
if Trace_Option then
Trace.On;
end if;
Trace.Display ("----- DEBUT D'ANALYSE SYNTAXIQUE DU FICHIER " &
Source_File & "... -----", True);
Parser.Go (Source_File, Syntaxic_Tree_Root, Terminal);
Trace.Display (" FIN DE L'ANALYSE SYNTAXIQUE.", True);
Trace.Display ("", True);
if Unparse_Option then
Trace.Display ("----- DEBUT DU REFORMATAGE VERS LE FICHIER " &
Unparse_To_File & "... -----", True);
Unparser.Start (Syntaxic_Tree_Root, Source_File, Unparse_To_File);
Unparser.Go (Syntaxic_Tree_Root);
Unparser.Stop;
Trace.Display (" FIN DU REFORMATAGE.", True);
Trace.Display ("", True);
end if;
Trace.Display
("----- DEBUT D'INTERPRETATION DU FICHIER " & Source_File & "... -----",
True);
Easy_X.Open (Terminal, " - TINY_TALK - ", Custom.Left,
Custom.Right, Custom.Width, Custom.Height);
loop
case Easy_X.Next_Event is
when Easy_X.Update =>
Interpreter.Go (Syntaxic_Tree_Root, Terminal);
when Easy_X.Button_Down =>
exit;
when Easy_X.Button_Up =>
null;
end case;
end loop;
Easy_X.Close;
Trace.Display (" FIN DE L'INTERPRETATION.", True);
Trace.Display ("", True);
exception
when Io_Exceptions.Status_Error =>
Errors.Run_Log ("L'un des fichiers " & Source_File & " ou " &
Unparse_To_File & " est deja ouvert !", Terminal);
when Io_Exceptions.Name_Error =>
Errors.Run_Log
("Nom de fichier invalide pour " & Source_File & " ou " &
Unparse_To_File & " ! (peut-etre n'existent-ils pas...)",
Terminal);
when Io_Exceptions.Use_Error =>
Errors.Run_Log
("L'un des fichiers " & Source_File & " ou " & Unparse_To_File &
" ne peut pas etre ouvert, ou est verrouille !", Terminal);
when Errors.Stop_Parsing =>
Errors.Run_Log
(" *** ANALYSE SYNTAXIQUE STOPPEE ! ***", Terminal);
when Errors.Stop_Interpreting =>
Errors.Run_Log (" *** INTERPRETATION STOPPEE ! ***", Terminal);
when Constraint_Error =>
Errors.Run_Log
("Une erreur de type 'Constraint Error' a ete detectee ! ",
Terminal);
when Numeric_Error =>
Errors.Run_Log
("Une erreur de type 'Numeric Error' a ete detectee ! ", Terminal);
when Program_Error =>
Errors.Run_Log
("Une erreur de type 'Program Error' a ete detectee ! ", Terminal);
when Tasking_Error =>
Errors.Run_Log
("Une erreur de type 'Tasking Error' a ete detectee ! ", Terminal);
when Storage_Error =>
Easy_X.Close;
Trace.Display ("", True);
Trace.Display ("", True);
Trace.Display
(" !!! ERREUR DE TYPE 'STORAGE ERROR' : MEMOIRE INSUFFISANTE !!!",
True);
when others =>
Errors.Run_Log
(" ??? Une erreur non identifiee a ete detectee ???",
Terminal);
end Run;