|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: B T
Length: 2335 (0x91f)
Types: TextFile
Names: »B«
└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11
└─⟦129cab021⟧ »DATA«
└─⟦this⟧
with Lex, Error, Debug;
with Condition, Description_List;
package body While_Structure is
procedure Parse (N : in out Binary_Tree.Node; Success : in out Boolean) is
N1 : Binary_Tree.Node;
Ok : Boolean := True;
begin
Success := True;
if Lex.Current_Token_Is (Lex.Tant) then
N1 := new Binary_Tree.Node_Structure;
N1.The_Type := Binary_Tree.Tant_Que_Type;
Debug.Put (280);
Lex.Next;
if Lex.Current_Token_Is (Lex.Que) then
Debug.Put (281);
Lex.Next;
Condition.Parse (N1.Left_Son, Ok);
Success := Success and Ok;
if Lex.Current_Token_Is (Lex.Faire) then
Debug.Put (282);
Lex.Next;
Description_List.Parse (N1.Right_Son, Ok);
Success := Success and Ok;
if Lex.Current_Token_Is (Lex.Fin) then
Debug.Put (283);
Lex.Next;
if Lex.Current_Token_Is (Lex.Tant) then
Debug.Put (284);
Lex.Next;
if Lex.Current_Token_Is (Lex.Que) then
Debug.Put (285);
Lex.Next;
else
Error.Append (21);
Success := False;
end if;
else
Error.Append (22);
Success := False;
end if;
else
Error.Append (23);
Success := False;
end if;
else
Error.Append (24);
Success := False;
end if;
else
Error.Append (25);
Success := False;
end if;
end if;
N := N1;
end Parse;
procedure Generate (N : Binary_Tree.Node; T : in out Natural) is
begin
while Condition.Generate (N.Left_Son) loop
Description_List.Generate (N.Right_Son, T);
end loop;
end Generate;
end While_Structure;