|
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: 14336 (0x3800) Types: Ada Source Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Class_Boolean, seg_032fbc
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000 └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« └─⟦this⟧
with Object; with Class_Block; with Bounded_String; with String_Utilities; with Text_Io; package body Class_Boolean is function Send (This_Message : Object.Unary; To : Object.Reference) return Object.Reference is type Message is (En_Texte, Non); Token : Message; Mess : Object.Unary := This_Message; package Bs renames Bounded_String; begin Object.Init (Mess); if not Object.Is_Done (Mess) then declare use Object; begin Token := Message'Value (Bs.Image (Object.Get (Mess))); case Token is when Non => if Object.Get (To) = 1 then return False; else return True; end if; when En_Texte => Text_Io.Put ("Objet Boolean ("); 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 (Object.Index'Image (Object.Get (To))); Text_Io.New_Line; Text_Io.Put (" )"); Text_Io.New_Line (2); return 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 (Et, Ou, Eou); Token : Message; Mess : Object.Binary := This_Message; package Bs renames Bounded_String; Value : Object.Index; begin if Bs.Length (Object.Get (Mess)) /= 0 then declare use Object; begin Token := Message'Value (Bs.Image (Object.Get (Mess))); case Token is when Et => if Object.Get (To) = 1 and Object.Get (Object.Get (Mess)) = 1 then return True; else return False; end if; when Ou => if Object.Get (To) = 1 or Object.Get (Object.Get (This_Message)) = 1 then return True; else return False; end if; when Eou => if Object.Get (To) = 1 xor Object.Get (Object.Get (This_Message)) = 1 then return True; else return False; 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 type Message is (Sivrai, Sifaux); Token : Message; Mess : Object.Keyword := This_Message; Run : Object.Unary; package Bs renames Bounded_String; Val : Object.Tiny_String := Bs.Value ("Valeur"); begin Object.Init (Mess); Object.Put (This => Val, Into => Run); Object.Init (This => Run); while not Object.Is_Done (Mess) loop declare use Object; begin Token := Message'Value (Bs.Image (Object.Get (Mess))); case Token is when Sivrai => if Object.Get (To) = 1 then Object.Next (Mess); return Class_Block.Send (Run, To); end if; when Sifaux => if Object.Get (To) = 0 then Object.Next (Mess); return Class_Block.Send (Run, To); end if; end case; exception when Constraint_Error => return Object.Void_Reference; end; end loop; end Send; function Create (Value : Object.Index := 0) return Object.Reference is begin return Object.Create (Object.Boolean_Class, Value); end Create; function Image (An_Object : Object.Reference) return Object.Tiny_String is use Object; Valeur : Object.Index; begin Valeur := Object.Get (An_Object); return Bounded_String.Value (String_Utilities.Number_To_String (Value => Integer (Valeur))); end Image; function Value (Chaine : Object.Tiny_String) return Object.Reference is An_Object : Object.Reference; Bool : Boolean; Entier : Integer; begin String_Utilities.String_To_Number (Source => Bounded_String.Image (Chaine), Worked => Bool, Target => Entier); return Create (Object.Index (Entier)); end Value; function True return Object.Reference is begin return Object.Create (Class => Object.Boolean_Class, Object => 1); end True; function False return Object.Reference is begin return Object.Create (Class => Object.Boolean_Class, Object => 0); end False; end Class_Boolean;
nblk1=d nid=c hdr6=12 [0x00] rec0=24 rec1=00 rec2=01 rec3=048 [0x01] rec0=01 rec1=00 rec2=04 rec3=008 [0x02] rec0=1e rec1=00 rec2=08 rec3=030 [0x03] rec0=1b rec1=00 rec2=0b rec3=010 [0x04] rec0=21 rec1=00 rec2=02 rec3=004 [0x05] rec0=1c rec1=00 rec2=07 rec3=01e [0x06] rec0=03 rec1=00 rec2=09 rec3=042 [0x07] rec0=1f rec1=00 rec2=06 rec3=06c [0x08] rec0=04 rec1=00 rec2=03 rec3=000 [0x09] rec0=1b rec1=00 rec2=02 rec3=000 [0x0a] rec0=24 rec1=00 rec2=0b rec3=000 [0x0b] rec0=15 rec1=00 rec2=06 rec3=000 [0x0c] rec0=24 rec1=00 rec2=0c rec3=54a tail 0x2172e963884cc8d043e9d 0x42a00088462060003 Free Block Chain: 0xc: 0000 00 0a 00 3e 80 20 65 20 6e 6f 74 20 4f 62 6a 65 ┆ > e not Obje┆ 0xa: 0000 00 05 00 29 80 04 65 67 69 6e 04 00 1f 20 20 20 ┆ ) egin ┆ 0x5: 0000 00 0d 00 1c 80 19 20 20 20 20 20 20 20 65 6c 73 ┆ els┆ 0xd: 0000 00 00 00 04 80 01 5f 01 02 03 04 05 06 07 00 00 ┆ _ ┆