|
|
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 Class_String, seg_0329a5
└─⟦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 String_Utilities;
with Text_Io;
package body Class_String is
function Send (This_Message : Object.Unary; To : Object.Reference)
return Object.Reference is
type Message is (En_Texte, En_Majuscules, En_Minuscules,
Avec_Capitales, Ta_Longueur);
Token : Message;
package Bs renames Bounded_String;
package Su renames String_Utilities;
begin
if Bs.Length (This_Message) /= 0 then
begin
Token := Message'Value (Bs.Image (This_Message));
case Token is
when En_Texte =>
Text_Io.Put ("Objet String (");
Text_Io.New_Line;
Text_Io.Put (" Classe =>");
Text_Io.Put (Object.E_Class'Image (Object.Get (To)));
Text_Io.New_Line;
Text_Io.Put (" Objet =>");
Text_Io.Put (Bs.Image (Table (Object.Get (To))));
Text_Io.New_Line;
Text_Io.Put (" )");
Text_Io.New_Line (2);
when En_Majuscules =>
Table (Object.Get (To)) :=
Bs.Value (Su.Upper_Case
(Bs.Image (Table (Object.Get (To)))));
return To;
when En_Minuscules =>
Table (Object.Get (To)) :=
Bs.Value (Su.Lower_Case
(Bs.Image (Table (Object.Get (To)))));
return To;
when Avec_Capitales =>
Table (Object.Get (To)) :=
Bs.Value (Su.Capitalize
(Bs.Image (Table (Object.Get (To)))));
return To;
when Ta_Longueur =>
return Object.Create
(Class => Object.Integer_Class,
Object => Object.Index
(Bs.Length
(Table (Object.Get (To)))));
end case;
exception
when Constraint_Error =>
return Object.Void_Reference;
end;
end if;
end Send;
function Send (This_Message : Object.Binary; To : Object.Reference)
return Object.Reference is
type Message is (Prendre, Plus, Sup, Inf, Sup_Egal, Inf_Egal, Egal);
Token : Message;
package Bs renames Bounded_String;
package Su renames String_Utilities;
begin
if Bs.Length (Object.Get (This_Message)) /= 0 then
declare
An_Object : Object.Reference := To;
Chaine : Object.Tiny_String;
begin
Token := Message'Value (Bs.Image (Object.Get (This_Message)));
case Token is
when Prendre =>
Table (Object.Get (To)) := Object.Get (This_Message);
return An_Object;
when Plus =>
Bs.Copy (Chaine, Bs.Image (Table (Object.Get (To))));
Bs.Append (Chaine, Bs.Image
(Object.Get (This_Message)));
return Class_String.Create (Chaine);
when Sup =>
if Bs.Image (Table (Object.Get (To))) >
Bs.Image (Object.Get (This_Message)) then
return Object.Create (Class => Object.Boolean_Class,
Object => 1);
else
return Object.Create (Class => Object.Boolean_Class,
Object => 0);
end if;
when Inf =>
if Bs.Image (Table (Object.Get (To))) <
Bs.Image (Object.Get (This_Message)) then
return Object.Create (Class => Object.Boolean_Class,
Object => 1);
else
return Object.Create (Class => Object.Boolean_Class,
Object => 0);
end if;
when Sup_Egal =>
if Bs.Image (Table (Object.Get (To))) >=
Bs.Image (Object.Get (This_Message)) then
return Object.Create (Class => Object.Boolean_Class,
Object => 1);
else
return Object.Create (Class => Object.Boolean_Class,
Object => 0);
end if;
when Inf_Egal =>
if Bs.Image (Table (Object.Get (To))) <=
Bs.Image (Object.Get (This_Message)) then
return Object.Create (Class => Object.Boolean_Class,
Object => 1);
else
return Object.Create (Class => Object.Boolean_Class,
Object => 0);
end if;
when Egal =>
if Bs.Image (Table (Object.Get (To))) =
Bs.Image (Object.Get (This_Message)) then
return Object.Create (Class => Object.Boolean_Class,
Object => 1);
else
return Object.Create (Class => Object.Boolean_Class,
Object => 0);
end if;
end case;
exception
when Constraint_Error =>
return Object.Void_Reference;
end;
end if;
end Send;
function Send (This_Message : Object.Keyword; To : Object.Reference)
return Object.Reference is
begin
return Object.Void_Reference;
end Send;
function Create return Object.Reference is
use Object;
begin
Last := Last + 1;
return Object.Create (Class => Object.String_Class, Object => Last);
end Create;
function Create (Str : Object.Tiny_String) return Object.Reference is
use Object;
begin
Last := Last + 1;
Table (Last) := Str;
return Object.Create (Class => Object.String_Class, Object => Last);
end Create;
function How_Many return Object.Index is
begin
return Last;
end How_Many;
end Class_String;
nblk1=a
nid=3
hdr6=12
[0x00] rec0=1e rec1=00 rec2=01 rec3=044
[0x01] rec0=0b rec1=00 rec2=07 rec3=048
[0x02] rec0=15 rec1=00 rec2=02 rec3=00a
[0x03] rec0=1a rec1=00 rec2=04 rec3=03c
[0x04] rec0=10 rec1=00 rec2=0a rec3=07c
[0x05] rec0=02 rec1=00 rec2=08 rec3=074
[0x06] rec0=11 rec1=00 rec2=06 rec3=034
[0x07] rec0=18 rec1=00 rec2=09 rec3=014
[0x08] rec0=1d rec1=00 rec2=05 rec3=000
[0x09] rec0=1d rec1=00 rec2=05 rec3=001
tail 0x2172d6d1084c58939ee6f 0x42a00088462060003
Free Block Chain:
0x3: 0000 00 00 00 1a 80 17 20 20 20 42 73 2e 61 70 70 65 ┆ Bs.appe┆