|
|
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: 5120 (0x1400)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, procedure Test_Scanner, seg_037e06
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦5a81ac88f⟧ »Space Info Vol 1«
└─⟦this⟧
with Bounded_String;
with Msg_Report;
with Scanner;
with Symbol_Table;
with Object;
procedure Test_Scanner is
use Scanner;
use Object;
Num_Value : Integer := 1;
Receive_Token : Scanner.Token;
Receive_Value : Scanner.B_String;
Name, Ident : Scanner.B_String;
Content : Object.Reference;
begin
Msg_Report.Tracing_On;
Scanner.Open ("lex");
Symbol_Table.Create;
Scanner.Next;
Receive_Token := Scanner.Symbol;
Bounded_String.Copy (Receive_Value, Scanner.Value);
Msg_Report.Continue ("Value : " & Bounded_String.Image (Receive_Value));
while Receive_Token /= L_Eof loop
case Receive_Token is
when L_Identifier =>
if Scanner.Value = "mettrei" then
Content := Object.Create (C_Integer, 20);
Bounded_String.Copy (Ident, "i");
Symbol_Table.Set_Info (Ident, Content);
else
Bounded_String.Copy (Ident, Scanner.Value);
Symbol_Table.Insert (Ident, Object.Void_Reference);
if Scanner.Value = "i" then
Content := Object.Create (C_Integer, Num_Value);
end if;
if Scanner.Value = "chaine" then
Content := Object.Create (C_String, Num_Value);
end if;
if Scanner.Value = "tortue" then
Content := Object.Create (C_Turtle, Num_Value);
end if;
if Scanner.Value = "j" then
Content := Object.Create (C_Integer, Num_Value);
end if;
if Scanner.Value = "k" then
Content := Object.Create (C_Integer, Num_Value);
end if;
Symbol_Table.Set_Info (Ident, Content);
Num_Value := Num_Value + 1;
end if;
when L_Open_Bracket =>
Symbol_Table.New_Enter (Name);
when L_Close_Bracket =>
Symbol_Table.Leave;
when others =>
null;
end case;
Scanner.Next;
Receive_Token := Scanner.Symbol;
Bounded_String.Copy (Receive_Value, Scanner.Value);
Msg_Report.Continue ("Value : " & Bounded_String.Image (Receive_Value));
end loop;
Symbol_Table.Image_Table;
Msg_Report.Information ("C'EST FINI !!!");
end Test_Scanner;
nblk1=4
nid=0
hdr6=8
[0x00] rec0=29 rec1=00 rec2=01 rec3=018
[0x01] rec0=01 rec1=00 rec2=02 rec3=072
[0x02] rec0=17 rec1=00 rec2=03 rec3=008
[0x03] rec0=18 rec1=00 rec2=04 rec3=000
tail 0x2153130b884e58d3407a6 0x42a00088462060003