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

⟦1c254d504⟧ Ada Source

    Length: 8192 (0x2000)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, procedure Go_Tiny, seg_03887b, seg_038ac4

Derivation

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

E3 Source Code



with Block_Class;
with Boolean_Class;
with Easy_X;  
with Integer_Class;
with Msg_Report;
with Object;
with Pen_Class;
with Primary;
with Scanner;
with Statements;  
with String_Class;
with Symbol_Table;
with Text_Io;
with Turtle_Class;
with Unparse_Report;

procedure Go_Tiny (Source_File_Name : String := "demo_tiny_talk";  
                   Unparse_File_Name : String := "demo_tiny_talk";
                   Display : String;  
                   With_Unparse : Character := 'Y';
                   With_Tracing_Mode : Character := 'N') is

    Node : Statements.Node;
    Tiny_Object : Object.Reference;
    Parse_Failed : Boolean := False;

    Window_Name : constant String := "Tiny Talk";

    use Scanner;
begin

    if With_Tracing_Mode = 'Y' or With_Tracing_Mode = 'y' then
        Msg_Report.Tracing_On;
    else  
        Msg_Report.Tracing_Off;  
    end if;

    Scanner.Open (Source_File_Name);  
    Scanner.Next;
   Text_Io.Put ("Parsing in progress ...");
    Text_Io.New_Line;

    Symbol_Table.Create;
    Statements.Parse (Node, Parse_Failed);
    if not Parse_Failed then

        if With_Unparse = 'Y' or With_Unparse = 'y' then

            Unparse_Report.Open (Unparse_File_Name);

            Text_Io.Put ("Unparsing in progress ...");
            Text_Io.New_Line;

            Statements.Unparse (Node);  
            Unparse_Report.Close;

        end if;

        Easy_X.Open (Display, Window_Name);

        loop

            Turtle_Class.Init_Instance_Table;
            Pen_Class.Init_Instance_Table;

            case Easy_X.Next_Event is

                when Easy_X.Update =>

                    Text_Io.Put ("Interpretation in progress ...");
                    Text_Io.New_Line;

                    Tiny_Object := Statements.Interpret (Node);

                    Text_Io.Put ("Tiny_object is " &
                                 Object.Class'Image
                                    (Object.The_Class (Tiny_Object)) &
                                 " content " & Integer'Image
                                                  (Object.Identificator
                                                      (Tiny_Object)));
                    Text_Io.New_Line;

                when Easy_X.Button_Down | Easy_X.Button_Up =>
                    exit;

            end case;
        end loop;

        Easy_X.Close;
        Text_Io.Put ("Good bye !!!");
        Text_Io.New_Line;

    else  
        if Scanner.Symbol /= L_Unknown then
            Scanner.Close;  
        end if;

    end if;


exception

    when Scanner.Inexistant_File =>  
        Msg_Report.Interpret_Error ("Stop Tiny Talk");

    when Boolean_Class.Incorrect_Method =>  
        Msg_Report.Interpret_Error ("Stop interpret");
        Easy_X.Close;

    when Block_Class.Incorrect_Method | Block_Class.Incorrect_Return_Object |
         Block_Class.Instance_Table_Full =>  
        Msg_Report.Interpret_Error ("Stop interpret");
        Easy_X.Close;

    when Integer_Class.Incorrect_Method | Integer_Class.Incorrect_Nb_Args =>  
        Msg_Report.Interpret_Error ("Stop interpret");
        Easy_X.Close;

    when Pen_Class.Incorrect_Method | Pen_Class.Instance_Table_Full =>  
        Msg_Report.Interpret_Error ("Stop interpret");
        Easy_X.Close;

    when Primary.Undefined_Variable =>  
        Msg_Report.Interpret_Error ("Stop interpret");
        Easy_X.Close;

    when String_Class.Incorrect_Method | String_Class.Incorrect_Nb_Args |
         String_Class.Instance_Table_Full =>  
        Msg_Report.Interpret_Error ("Stop interpret");
        Easy_X.Close;

    when Turtle_Class.Incorrect_Method | Turtle_Class.Instance_Table_Full =>  
        Msg_Report.Interpret_Error ("Stop interpret");
        Easy_X.Close;

    when others =>
        Msg_Report.Interpret_Error ("Unknown exception !!! Stop Tiny Talk");
        Easy_X.Close;

end Go_Tiny;

E3 Meta Data

    nblk1=7
    nid=2
    hdr6=a
        [0x00] rec0=2a rec1=00 rec2=01 rec3=002
        [0x01] rec0=24 rec1=00 rec2=06 rec3=04a
        [0x02] rec0=22 rec1=00 rec2=04 rec3=078
        [0x03] rec0=1b rec1=00 rec2=07 rec3=026
        [0x04] rec0=04 rec1=00 rec2=05 rec3=000
        [0x05] rec0=09 rec1=00 rec2=07 rec3=001
        [0x06] rec0=53 rec1=24 rec2=00 rec3=01f
    tail 0x21531a42684e77323f656 0x42a00088462060003
Free Block Chain:
  0x2: 0000  00 03 00 4b 00 43 20 20 20 20 20 20 20 20 20 20  ┆   K C          ┆
  0x3: 0000  00 00 00 c4 80 15 72 20 28 22 53 74 6f 70 20 69  ┆      r ("Stop i┆