|
|
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: 6144 (0x1800)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Player_Dictionary, seg_047718
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦5a81ac88f⟧ »Space Info Vol 1«
└─⟦this⟧
with Structure_Des_Variables;
use Structure_Des_Variables; -- necessaire pour reconnaitre "sans_type"
package body Player_Dictionary is
type Command_Typ is (Verbe, Complement, Preposition, No_More,
Preposition_Or_Complement, Without_Type);
function Equal (A, B : Interface_Structure.Type_Of_Var) return Boolean
renames Structure_Des_Variables.Equal;
function Player_Sens (A_Word_Of_The_Command : Mots.Word) return Boolean is
begin
if Equal (Interface_Structure.Get_Type (A_Word_Of_The_Command),
Interface_Structure.Type_Of_Var (Sans_Type)) then
return True;
end if;
return False;
end Player_Sens;
function Player_Syntax (Player_Table_Of_Word : in Mots.T_Tab_Commande;
Number : Natural) return Boolean is
Next_Command : Command_Typ := Without_Type;
Ok : Boolean := False;
function Equal (A, B : Command_Typ) return Boolean is
begin
if A = B then
return True;
end if;
return False;
end Equal;
begin
for Row_Syntax in 1 .. Number loop
Ok := False;
case Interface_Structure.Get_Type
(Player_Table_Of_Word (Row_Syntax)) is
when Verbe =>
if ((Row_Syntax = 1) and then
Equal (Next_Command, Without_Type)) then
Ok := True;
else
exit;
end if;
Next_Command := Complement;
when Preposition =>
if ((Row_Syntax = 3) and then
Equal (Next_Command, Preposition)) then
Ok := True;
else
exit;
end if;
Next_Command := Complement;
when Communication | Compteur | Lieu | Objet | Personnage =>
if ((Row_Syntax = 2) and then
Equal (Next_Command, Complement)) then
Ok := True;
Next_Command := Preposition_Or_Complement;
elsif ((Row_Syntax = 3) and then
Equal (Next_Command, Preposition_Or_Complement)) then
Ok := True;
if Equal (Interface_Structure.Get_Type
(Player_Table_Of_Word (Row_Syntax)),
Preposition) then
Next_Command := Complement;
else
Next_Command := No_More;
end if;
elsif ((Row_Syntax = 4) and then
Equal (Next_Command, Complement)) then
Ok := True;
Next_Command := No_More;
else
exit;
end if;
when others =>
exit;
end case;
if Ok then
return True;
else
return False;
end if;
end loop;
end Player_Syntax;
end Player_Dictionary;
nblk1=5
nid=2
hdr6=8
[0x00] rec0=1c rec1=00 rec2=01 rec3=038
[0x01] rec0=1c rec1=00 rec2=04 rec3=038
[0x02] rec0=12 rec1=00 rec2=05 rec3=024
[0x03] rec0=11 rec1=00 rec2=03 rec3=000
[0x04] rec0=0d rec1=00 rec2=03 rec3=000
tail 0x215447d4486544f27ade4 0x42a00088462060003
Free Block Chain:
0x2: 0000 00 00 00 04 80 01 2c 01 42 6f 6f 6c 65 61 6e 20 ┆ , Boolean ┆