DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400

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

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦7c452e6b7⟧ Ada Source

    Length: 8192 (0x2000)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, procedure Run, seg_0391af

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦5a81ac88f⟧ »Space Info Vol 1« 
        └─⟦this⟧ 

E3 Source Code



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  ANALYSE  SYNTAXIQUE ...  -----", True);
    Parser.Go (Source_File, Syntaxic_Tree_Root, Terminal);
    Trace.Display ("-----    FIN   ANALYSE  SYNTAXIQUE      -----", True);
    Trace.Display ("", True);
    if Unparse_Option then
        Trace.Display ("-----   DEBUT  REFORMATAGE  SOURCE ...  -----", True);
        Unparser.Start (Syntaxic_Tree_Root, Source_File, Unparse_To_File);
        Unparser.Go (Syntaxic_Tree_Root);
        Unparser.Stop;
        Trace.Display ("-----    FIN   REFORMATAGE  SOURCE      -----", True);
        Trace.Display ("", True);
    end if;
    Trace.Display ("-----   DEBUT  INTERPRETATION  ...      -----", 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   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;

E3 Meta Data

    nblk1=7
    nid=6
    hdr6=a
        [0x00] rec0=20 rec1=00 rec2=01 rec3=022
        [0x01] rec0=1a rec1=00 rec2=02 rec3=076
        [0x02] rec0=00 rec1=00 rec2=05 rec3=010
        [0x03] rec0=16 rec1=00 rec2=07 rec3=022
        [0x04] rec0=13 rec1=00 rec2=03 rec3=000
        [0x05] rec0=03 rec1=00 rec2=05 rec3=000
        [0x06] rec0=e4 rec1=74 rec2=00 rec3=01f
    tail 0x215321d4e84eb553835e4 0x42a00088462060003
Free Block Chain:
  0x6: 0000  00 04 00 19 80 02 3d 3e 02 00 11 20 20 20 20 20  ┆      =>        ┆
  0x4: 0000  00 00 00 3e 80 19 69 6e 65 20 22 2c 20 4c 69 6e  ┆   >  ine ", Lin┆