|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 11264 (0x2c00)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Tiny_Talk, seg_03668f, seg_036789
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦cfc2e13cd⟧ »Space Info Vol 2«
└─⟦this⟧
with Bounded_String;
with Statements;
with Object;
with Scanner;
with Tiny_Error;
with Block_Class;
with Easy_X;
with Message;
with Pen_Class;
with Turtle_Class;
with Date_Class;
with String_Class;
with Boolean_Class;
with Tiny_X;
with Counter;
with Statistic;
with Bug;
with Io_Exceptions;
package body Tiny_Talk is
package Bs renames Bounded_String;
Display : Message.Tiny_String;
Program : Message.Tiny_String;
function Get_Display return String is
begin
return Bs.Image (Display);
end Get_Display;
procedure Set_Display (To : String) is
begin
Bs.Copy (Display, To);
end Set_Display;
function Get_Program return String is
begin
return Bs.Image (Program);
end Get_Program;
procedure Set_Program (To : String) is
begin
Bs.Copy (Program, To);
end Set_Program;
procedure Run (The_Program : String;
On_Display : String;
Unparse : Boolean;
Statistics : Boolean) is
Result : Object.Reference;
Main_Node : Statements.Node := Statements.Empty_Node;
begin
Turtle_Class.Create_Default;
Pen_Class.Create_Default;
Date_Class.Create_Default;
Boolean_Class.Create_Default;
Set_Display (On_Display);
Set_Program (The_Program);
Scanner.Open (The_Program);
Scanner.Next;
Statements.Parse (Main_Node);
if Unparse then
Statements.Unparse (Main_Node);
end if;
Tiny_X.Open (The_Program);
loop
case Easy_X.Next_Event is
when Easy_X.Update =>
Turtle_Class.Reset;
Pen_Class.Reset;
String_Class.Reset;
Counter.Start_General_Counter;
Result := Statements.Interpret (Main_Node, Result);
Counter.State_Message;
when Easy_X.Button_Down =>
exit;
when Easy_X.Button_Up =>
null;
end case;
end loop;
if Statistics then
Statistic.Write;
end if;
Tiny_X.Close;
exception
when Bug.Undefined_Name_In_Symbol_Table =>
Tiny_Error.Undefined_Name_In_Symbol_Table;
when Bug.Id_String_Overflow | Bug.Too_Many_Strings =>
Tiny_Error.String_Class_Full;
when Bug.String_Large_Overflow =>
Tiny_Error.String_Large_Overflow;
when Bug.Search_No_String_Object =>
Tiny_Error.Search_No_String_Object;
when Bug.Unknown_String_Message =>
Tiny_Error.Unknown_String_Message;
when Bug.Missing_Point =>
Tiny_Error.Missing_Point;
when Bug.Missing_Right_Brace =>
Tiny_Error.Missing_Right_Brace;
when Bug.Missing_Reserved_Word =>
Tiny_Error.Missing_Reserved_Word;
when Bug.Mismatch_Arguments_List =>
Tiny_Error.Mismatch_Arguments_List;
when Bug.Missing_Right_Parentheses =>
Tiny_Error.Missing_Right_Parentheses;
when Bug.Not_Enough_Messages =>
Tiny_Error.Not_Enough_Messages;
when Bug.Too_Many_Messages =>
Tiny_Error.Too_Many_Messages;
when Bug.Too_Many_Blocks =>
Tiny_Error.Too_Many_Blocks;
when Bug.Block_Not_Found =>
Tiny_Error.Block_Not_Found;
when Bug.Unknown_Block_Message =>
Tiny_Error.Unknown_Block_Message;
when Bug.Unknown_Integer_Message =>
Tiny_Error.Unknown_Integer_Message;
when Bug.Unknown_Boolean_Message =>
Tiny_Error.Unknown_Boolean_Message;
when Bug.Unknown_Turtle_Message =>
Tiny_Error.Unknown_Turtle_Message;
when Bug.Too_Many_Turtles =>
Tiny_Error.Turtle_Table_Full;
when Bug.Unknown_Date_Message =>
Tiny_Error.Unknown_Date_Message;
when Bug.Unexpected_Action_On_Date =>
Tiny_Error.Unexpected_Action_On_Date;
when Bug.Unknown_Pen_Message =>
Tiny_Error.Unknown_Pen_Message;
when Bug.Too_Many_Pens =>
Tiny_Error.Too_Many_Pens;
when Bug.Unexpected_Object =>
Tiny_Error.Incorrect_Object;
when Bug.Too_Many_Keywords =>
Tiny_Error.Too_Many_Keywords;
when Bug.Not_Enough_Keywords =>
Tiny_Error.Not_Enough_Keywords;
when Bug.Missing_Identifier =>
Tiny_Error.Missing_Identifier;
when Bug.Unexpected_Token =>
Tiny_Error.Unexpected_Token;
when Bug.Mismatch_Type =>
Tiny_Error.Mismatch_Type;
when Bug.Mismatch_Message =>
Tiny_Error.Mismatch_Message;
when Bug.Too_Many_Includes =>
Tiny_Error.Too_Many_Includes;
when Io_Exceptions.Name_Error =>
Tiny_Error.Bad_File_Name;
when Easy_X.Fatal_Error =>
Tiny_Error.Fatal_X;
when Numeric_Error =>
Tiny_Error.Numeric_Error;
when Constraint_Error =>
Tiny_Error.Out_Of_Range;
when Program_Error =>
Tiny_Error.Internal_Error;
when Storage_Error =>
Tiny_Error.Out_Of_Memory;
when Bug.Unexpected_Include_File_Name =>
Tiny_Error.Unexpected_Include_File_Name;
end Run;
end Tiny_Talk;
nblk1=a
nid=8
hdr6=10
[0x00] rec0=32 rec1=00 rec2=01 rec3=020
[0x01] rec0=1a rec1=00 rec2=0a rec3=076
[0x02] rec0=22 rec1=00 rec2=03 rec3=00e
[0x03] rec0=08 rec1=00 rec2=09 rec3=04c
[0x04] rec0=21 rec1=00 rec2=07 rec3=04e
[0x05] rec0=06 rec1=00 rec2=04 rec3=03a
[0x06] rec0=25 rec1=00 rec2=02 rec3=010
[0x07] rec0=0f rec1=00 rec2=05 rec3=000
[0x08] rec0=25 rec1=00 rec2=02 rec3=010
[0x09] rec0=0d rec1=00 rec2=05 rec3=000
tail 0x2173365e484df4cf750ef 0x42a00088462060003
Free Block Chain:
0x8: 0000 00 06 00 71 80 10 72 67 75 6d 65 6e 74 73 5f 4c ┆ q rguments_L┆
0x6: 0000 00 00 00 31 80 0c 20 20 20 20 20 20 20 65 78 69 ┆ 1 exi┆