DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400 Tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400 Tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download
Index: ┃ B T

⟦b64c28d1b⟧ TextFile

    Length: 3625 (0xe29)
    Types: TextFile
    Names: »B«

Derivation

└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11
    └─ ⟦129cab021⟧ »DATA« 
        └─⟦this⟧ 

TextFile

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;