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: 2622 (0xa3e) Types: TextFile Names: »B«
└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11 └─ ⟦129cab021⟧ »DATA« └─⟦this⟧ └─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11 └─ ⟦129cab021⟧ »DATA« └─⟦e24fb53b7⟧ └─⟦this⟧
separate (Generic_Fact_Base) package body Query is procedure Put (The_Patterns : Patterns; Using_Class : Class.Object; Where : Output_Stream.Object := Output_Stream.Standard_Output) is First : Boolean := True; use Output_Stream; begin for I in The_Patterns'Range loop if not First then Put_Line (", ", Where); else First := False; end if; Put (Class.Slot_Name_Image (From_Class => Using_Class, For_Slot => I), Where); Put (" => ", Where); Predicate_Put (The_Expression => The_Patterns (I), Where => Where); end loop; end Put; procedure Put (The_Query : Object; Where : Output_Stream.Object) is use Output_Stream; begin case The_Query.Kind is when Find | Check_No => declare Class_Name : constant String := Class_Names'Image (The_Query.Class); The_Class : Class.Object := Working_Memory.Get (Using => The_Query.Class); begin if The_Query.Kind = Find then Put_Line ("Find_" & Class_Name & "_Such_As'(", Where); else Put_Line ("Check_No_" & Class_Name & "_Has'(", Where); end if; Indent_Right (Where); Put (The_Patterns => The_Query.Value, Using_Class => The_Class, Where => Where); Indent_Left (Where); Put_Line (")", Where); end; when Evaluate => Put_Line ("Check_If'(", Where); Indent_Right (Where); Expression_Put (The_Query.The_Expression, Where); Predicate_Put (The_Query.The_Predicate, Where); Indent_Left (Where); Put_Line (")", Where); null; end case; end Put; procedure Put (The_Queries : Objects; Where : Output_Stream.Object) is use Output_Stream; begin Put ("Premiss'(", Where); Indent_Right (Where); for I in The_Queries'Range loop Put (The_Queries (I), Where); New_Line (Where); end loop; Indent_Left (Where); Put_Line (")", Where); end Put; package body Operators is separate; end Query;