|
|
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: 1480 (0x5c8)
Types: TextFile
Names: »B«
└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11
└─⟦129cab021⟧ »DATA«
└─⟦this⟧
separate (Parse)
procedure Parse_Expression (Ok : out Boolean;
The_Node : out Abstract_Tree.P_Node) is
Ok1 : Boolean := True;
Inherited_Node1, Inherited_Node2 : Abstract_Tree.P_Node;
begin
Ok := True;
Text_Io.Put_Line ("parse_expression");
Parse_Terme (Ok1, Inherited_Node1);
if not Ok1 then
Parse_Error (Term_Follow);
end if;
while not Token_Set.Is_Member (Expr_Follow, Lex.Get_Token) loop
case Lex.Get_Token is
when L_Plus =>
Lex.Next;
Parse_Terme (Ok1, Inherited_Node2);
if not Ok1 then
Parse_Error (Term_Follow);
else
Inherited_Node1 :=
Abstract_Tree.Make_Node
(L_Plus, Inherited_Node1, Inherited_Node2);
end if;
when L_Moins =>
Lex.Next;
Parse_Terme (Ok1, Inherited_Node2);
if not Ok1 then
Parse_Error (Term_Follow);
else
Inherited_Node1 :=
Abstract_Tree.Make_Node
(L_Moins, Inherited_Node1, Inherited_Node2);
end if;
when others =>
Ok := False;
The_Node := Abstract_Tree.Empty_Node;
exit;
end case;
end loop;
The_Node := Inherited_Node1;
end Parse_Expression;