|
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 - download
Length: 7168 (0x1c00) Types: Ada Source Notes: 03_class, FILE, R1k_Segment, e3_tag, procedure Test_Scanner, seg_032353
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000 └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« └─⟦this⟧
with Scanner; with Text_Io; with Bounded_String; with Object; with Table; with Text_Io; with Table; with Object; with Message; use Scanner; procedure Test_Scanner is The_Object : Object.Reference := Object.Void_Reference; Ma_Table : Table.Symbol_Kind; The_Token : Scanner.Token; Trouve : Boolean := False; String_Lu : Message.Tiny_String; begin Table.Initialize (Ma_Table); Scanner.Open ("New_File"); while not Scanner.At_End loop Scanner.Next; Bounded_String.Free (String_Lu); Text_Io.Put ("Chaine Lexeme Lu : "); Text_Io.Put_Line (Bounded_String.Image (Scanner.Get_Value)); The_Token := Scanner.Get_Token; case The_Token is when T_Identifier => Text_Io.Put_Line ("c'est_un identifier,je le met dans la table si je peu "); The_Object := Scanner.Get_Value; Bounded_String.Append (String_Lu, Bounded_String.Image (Scanner.Get_Value)); Table.Insert (Ma_Table, String_Lu, The_Object); Object.En_Texte (The_Object); when T_Integer => Text_Io.Put_Line ("c'est_un integer,je cree l'objet"); when T_Dot => Text_Io.Put_Line ("c'est_un point j'imprime la table des symboles"); Table.En_Texte (Ma_Table); Text_Io.Put ("j'e recherche tata "); Text_Io.Put (Bounded_String.Image (String_Lu)); Bounded_String.Append (String_Lu, "tata"); Table.Find (Ma_Table, String_Lu, The_Object, Trouve); if Trouve then Text_Io.Put_Line (" ===> je l'ai trouve dans la table"); else Text_Io.Put_Line (" ===> !!! PAS trouve dans la table"); end if; when T_String => Text_Io.Put_Line ("c'est une string ,je cree l'objet "); The_Object := Scanner.Get_Value; Text_Io.Put ("ID_object:"); Text_Io.Put_Line (Integer'Image (Object.Get_Value (The_Object))); when T_Pour => Text_Io.Put_Line ("c'est un pour "); when T_Avec => Text_Io.Put_Line ("c'est un avec "); when T_Prendre => Text_Io.Put_Line ("c'est un prendre "); Text_Io.Put_Line ("!!!je detruit tata dans la table "); Bounded_String.Append (String_Lu, "tata"); Table.Remove (Ma_Table, String_Lu); when T_Renvoyer => Text_Io.Put_Line ("c'est un renvoyer : je reinsere tata dans la table pour voir"); Bounded_String.Append (String_Lu, "tata"); Table.Insert (Ma_Table, String_Lu, The_Object); when T_Keyword => Text_Io.Put_Line ("c'est un keyword "); when others => Text_Io.Put_Line ("je ne comprend pas "); end case; end loop; end Test_Scanner;
nblk1=6 nid=2 hdr6=8 [0x00] rec0=23 rec1=00 rec2=01 rec3=04a [0x01] rec0=12 rec1=00 rec2=04 rec3=050 [0x02] rec0=14 rec1=00 rec2=05 rec3=01a [0x03] rec0=17 rec1=00 rec2=03 rec3=000 [0x04] rec0=17 rec1=00 rec2=03 rec3=000 [0x05] rec0=17 rec1=00 rec2=03 rec3=000 tail 0x2172d207c84c482e33025 0x42a00088462060003 Free Block Chain: 0x2: 0000 00 06 00 0f 80 0c 50 75 74 5f 4c 69 6e 65 20 28 ┆ Put_Line (┆ 0x6: 0000 00 00 00 6a 80 25 20 3d 3d 3d 3e 20 6a 65 20 6c ┆ j % ===> je l┆