|
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: 9216 (0x2400) Types: Ada Source Notes: 03_class, FILE, R1k_Segment, e3_tag, procedure Test_Boolean_Expressions, seg_004609
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000 └─⟦5a81ac88f⟧ »Space Info Vol 1« └─⟦this⟧
with Profile; with Log; with Simple_Status; with Boolean_Expressions; with Testing_Pathnames; with Abstract_Document; with Create_Null_Document; with Common; with Ada_Program; with Table_Formatter; with Errors; with Lrm_Renames; use Lrm_Renames; procedure Test_Boolean_Expressions (In_Unit : String := "$$.units.testing.test_input.bool_exps'body") is Unit_Id : Ada.Element := Ada.Conversion.Resolve (In_Unit); Unit_Under_Test : constant String := "$$.units.boolean_expressions"; Status : Errors.Condition; Doc : Abstract_Document.Handle; Doc_Name : constant String := Testing_Pathnames.New_Test_Output (Unit_Under_Test, Suffix => "Output"); B : Boolean := True; package Table is new Table_Formatter (4); procedure Traverse_Exps (Expression : Ada.Element) is Exp_Kind : Boolean_Expressions.Expression_Kind := Boolean_Expressions.Kind (Expression); Op : Boolean_Expressions.Operator; Left, Right : Ada.Element; begin case Exp_Kind is when Boolean_Expressions.Expression | Boolean_Expressions.Relation | Boolean_Expressions.Membership => Left := Boolean_Expressions.Left_Argument (Expression); Right := Boolean_Expressions.Right_Argument (Expression); Op := Boolean_Expressions.Expression_Operator (Expression); when Boolean_Expressions.Not_Expression => Left := Boolean_Expressions.Argument (Expression); Right := Ada.Nil_Element; Op := Boolean_Expressions.Expression_Operator (Expression); when Boolean_Expressions.Identifier | Boolean_Expressions.Literal | Boolean_Expressions.Membership_Range | Boolean_Expressions.Function_Call | Boolean_Expressions.Not_An_Expression | Boolean_Expressions.Attribute => Table.Item (Ada.Image (Expression), Expression); Table.Item (Boolean_Expressions.Expression_Kind'Image (Exp_Kind), Expression); Table.Item (""); Table.Item (""); end case; case Exp_Kind is when Boolean_Expressions.Expression | Boolean_Expressions.Relation | Boolean_Expressions.Membership => Table.Item (Boolean_Expressions.Image (Op), Expression); Table.Item (Boolean_Expressions.Expression_Kind'Image (Exp_Kind), Expression); Table.Item (Ada.Image (Left), Left); Table.Item (Ada.Image (Right), Right); Traverse_Exps (Left); Traverse_Exps (Right); when Boolean_Expressions.Not_Expression => Table.Item (Ada.Image (Left), Left); Table.Item (""); Traverse_Exps (Left); when Boolean_Expressions.Identifier | Boolean_Expressions.Literal | Boolean_Expressions.Membership_Range | Boolean_Expressions.Function_Call | Boolean_Expressions.Attribute | Boolean_Expressions.Not_An_Expression => null; end case; end Traverse_Exps; procedure Pre_Op (Program_Element : Ada.Element; State : in out Boolean; Control : in out Ada.Traversal_Control) is begin case Exprs.Kind (Program_Element) is when Exprs.A_Complex_Expression | Exprs.A_Function_Call => Traverse_Exps (Program_Element); Control := Ada.Abandon_Children; when others => Control := Ada.Continue; end case; end Pre_Op; procedure Post_Op (Program_Element : Ada.Element; State : in out Boolean; Control : in out Ada.Traversal_Control) is begin Control := Ada.Continue; end Post_Op; procedure Traverse is new Ada.Depth_First_Traversal (Boolean, Pre_Op, Post_Op); begin Create_Null_Document (Named => Doc_Name, Error_Info => Status, Document_Handle => Doc); case Errors.Severity (Status) is when Simple_Status.Problem | Simple_Status.Fatal => Log.Put_Line ("Problem creating object " & Doc_Name & ". " & Errors.Info (Status), Profile.Error_Msg); when others => Table.Header ("Operator"); Table.Header ("Kind"); Table.Header ("Left arg"); Table.Header ("Right arg"); Traverse (Comp_Units.Parent_Compilation_Unit (Unit_Id), B, False); Table.Display (Doc, "expression breakout"); Abstract_Document.Close (Doc); Common.Definition (Doc_Name); end case; end Test_Boolean_Expressions;
nblk1=8 nid=0 hdr6=10 [0x00] rec0=22 rec1=00 rec2=01 rec3=026 [0x01] rec0=00 rec1=00 rec2=08 rec3=006 [0x02] rec0=12 rec1=00 rec2=07 rec3=022 [0x03] rec0=00 rec1=00 rec2=02 rec3=030 [0x04] rec0=1a rec1=00 rec2=03 rec3=000 [0x05] rec0=18 rec1=00 rec2=04 rec3=02e [0x06] rec0=1a rec1=00 rec2=05 rec3=04c [0x07] rec0=0a rec1=00 rec2=06 rec3=000 tail 0x21500414e815c65a14b89 0x42a00088462061e03