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 - downloadIndex: ┃ B T ┃
Length: 3884 (0xf2c) Types: TextFile Names: »B«
└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11 └─ ⟦129cab021⟧ »DATA« └─⟦this⟧
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;