|
|
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