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 - downloadIndex: ┃ B T ┃
Length: 1339 (0x53b) Types: TextFile Names: »B«
└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11 └─ ⟦129cab021⟧ »DATA« └─⟦this⟧
with Lex, Factor, Debug; package body Term is procedure Parse (N : in out Binary_Tree.Node; Success : in out Boolean) is N1, N2 : Binary_Tree.Node; Ok : Boolean := True; begin Success := True; N1 := new Binary_Tree.Node_Structure; N := N1; Factor.Parse (N1.Left_Son, Ok); Success := Success and Ok; while Lex.Current_Token_Is (Lex.Multiply) loop N2 := new Binary_Tree.Node_Structure; N1.Right_Son := N2; N1.The_Type := Binary_Tree.Mul_Type; Debug.Put (540); Lex.Next; Factor.Parse (N2.Left_Son, Ok); Success := Success and Ok; N1 := N2; end loop; end Parse; procedure Generate (N : in out Binary_Tree.Node; The_Value : in out Natural) is Value1, Value2 : Natural; begin Factor.Generate (N.Left_Son, Value1); if Binary_Tree."=" (N.Right_Son, null) then The_Value := Value1; else Generate (N.Right_Son, Value2); case N.The_Type is when Binary_Tree.Mul_Type => The_Value := Value1 * Value2; when others => null; end case; end if; end Generate; end Term;