summaryrefslogtreecommitdiff
path: root/psl/psl-tprint.adb
diff options
context:
space:
mode:
Diffstat (limited to 'psl/psl-tprint.adb')
-rw-r--r--psl/psl-tprint.adb255
1 files changed, 0 insertions, 255 deletions
diff --git a/psl/psl-tprint.adb b/psl/psl-tprint.adb
deleted file mode 100644
index eabe8bd..0000000
--- a/psl/psl-tprint.adb
+++ /dev/null
@@ -1,255 +0,0 @@
-with Types; use Types;
-with PSL.Errors; use PSL.Errors;
-with PSL.Prints;
-with Ada.Text_IO; use Ada.Text_IO;
-with Name_Table; use Name_Table;
-
-package body PSL.Tprint is
- procedure Disp_Expr (N : Node) is
- begin
- case Get_Kind (N) is
- when N_Number =>
- declare
- Str : constant String := Uns32'Image (Get_Value (N));
- begin
- Put (Str (2 .. Str'Last));
- end;
- when others =>
- Error_Kind ("disp_expr", N);
- end case;
- end Disp_Expr;
-
- procedure Disp_Count (N : Node) is
- B : Node;
- begin
- B := Get_Low_Bound (N);
- if B = Null_Node then
- return;
- end if;
- Disp_Expr (B);
- B := Get_High_Bound (N);
- if B = Null_Node then
- return;
- end if;
- Put (":");
- Disp_Expr (B);
- end Disp_Count;
-
- procedure Put_Node (Prefix : String; Name : String) is
- begin
- Put (Prefix);
- Put ("-+ ");
- Put (Name);
- end Put_Node;
-
- procedure Put_Node_Line (Prefix : String; Name : String) is
- begin
- Put_Node (Prefix, Name);
- New_Line;
- end Put_Node_Line;
-
- function Down (Str : String) return String is
- L : constant Natural := Str'Last;
- begin
- if Str (L) = '\' then
- return Str (Str'First .. L - 1) & " \";
- elsif Str (L) = '/' then
- return Str (Str'First .. L - 1) & "| \";
- else
- raise Program_Error;
- end if;
- end Down;
-
- function Up (Str : String) return String is
- L : constant Natural := Str'Last;
- begin
- if Str (L) = '/' then
- return Str (Str'First .. L - 1) & " /";
- elsif Str (L) = '\' then
- return Str (Str'First .. L - 1) & "| /";
- else
- raise Program_Error;
- end if;
- end Up;
-
- procedure Disp_Repeat_Sequence (Prefix : String; Name : String; N : Node) is
- S : Node;
- begin
- Put_Node (Prefix, Name);
- Disp_Count (N);
- Put_Line ("]");
- S := Get_Sequence (N);
- if S /= Null_Node then
- Disp_Property (Down (Prefix), S);
- end if;
- end Disp_Repeat_Sequence;
-
- procedure Disp_Binary_Sequence (Prefix : String; Name : String; N : Node) is
- begin
- Disp_Property (Up (Prefix), Get_Left (N));
- Put_Node_Line (Prefix, Name);
- Disp_Property (Down (Prefix), Get_Right (N));
- end Disp_Binary_Sequence;
-
- procedure Disp_Range_Property (Prefix : String; Name : String; N : Node) is
- begin
- Put_Node (Prefix, Name);
- Put ("[");
- Disp_Count (N);
- Put_Line ("]");
- Disp_Property (Down (Prefix), Get_Property (N));
- end Disp_Range_Property;
-
- procedure Disp_Boolean_Range_Property (Prefix : String;
- Name : String; N : Node) is
- begin
- Disp_Property (Up (Prefix), Get_Boolean (N));
- Put_Node (Prefix, Name);
- Put ("[");
- Disp_Count (N);
- Put_Line ("]");
- Disp_Property (Down (Prefix), Get_Property (N));
- end Disp_Boolean_Range_Property;
-
- procedure Disp_Property (Prefix : String; Prop : Node) is
- begin
- case Get_Kind (Prop) is
- when N_Never =>
- Put_Node_Line (Prefix, "never");
- Disp_Property (Down (Prefix), Get_Property (Prop));
- when N_Always =>
- Put_Node_Line (Prefix, "always");
- Disp_Property (Down (Prefix), Get_Property (Prop));
- when N_Eventually =>
- Put_Node_Line (Prefix, "eventually!");
- Disp_Property (Down (Prefix), Get_Property (Prop));
- when N_Next =>
- Put_Node_Line (Prefix, "next");
--- if Get_Strong_Flag (Prop) then
--- Put ('!');
--- end if;
- Disp_Property (Down (Prefix), Get_Property (Prop));
- when N_Next_A =>
- Disp_Range_Property (Prefix, "next_a", Prop);
- when N_Next_E =>
- Disp_Range_Property (Prefix, "next_e", Prop);
- when N_Next_Event =>
- Disp_Property (Up (Prefix), Get_Boolean (Prop));
- Put_Node_Line (Prefix, "next_event");
- Disp_Property (Down (Prefix), Get_Property (Prop));
- when N_Next_Event_A =>
- Disp_Boolean_Range_Property (Prefix, "next_event_a", Prop);
- when N_Next_Event_E =>
- Disp_Boolean_Range_Property (Prefix, "next_event_e", Prop);
- when N_Braced_SERE =>
- Put_Node_Line (Prefix, "{} (braced_SERE)");
- Disp_Property (Down (Prefix), Get_SERE (Prop));
- when N_Concat_SERE =>
- Disp_Binary_Sequence (Prefix, "; (concat)", Prop);
- when N_Fusion_SERE =>
- Disp_Binary_Sequence (Prefix, ": (fusion)", Prop);
- when N_Within_SERE =>
- Disp_Binary_Sequence (Prefix, "within", Prop);
- when N_Match_And_Seq =>
- Disp_Binary_Sequence (Prefix, "&& (sequence matching len)", Prop);
- when N_Or_Seq =>
- Disp_Binary_Sequence (Prefix, "| (sequence or)", Prop);
- when N_And_Seq =>
- Disp_Binary_Sequence (Prefix, "& (sequence and)", Prop);
- when N_Imp_Seq =>
- Disp_Property (Up (Prefix), Get_Sequence (Prop));
- Put_Node_Line (Prefix, "|=> (sequence implication)");
- Disp_Property (Down (Prefix), Get_Property (Prop));
- when N_Overlap_Imp_Seq =>
- Disp_Property (Up (Prefix), Get_Sequence (Prop));
- Put_Node_Line (Prefix, "|->");
- Disp_Property (Down (Prefix), Get_Property (Prop));
- when N_Or_Prop =>
- Disp_Binary_Sequence (Prefix, "|| (property or)", Prop);
- when N_And_Prop =>
- Disp_Binary_Sequence (Prefix, "&& (property and)", Prop);
- when N_Log_Imp_Prop =>
- Disp_Binary_Sequence (Prefix, "-> (property impliciation)", Prop);
- when N_Until =>
- Disp_Binary_Sequence (Prefix, "until", Prop);
- when N_Before =>
- Disp_Binary_Sequence (Prefix, "before", Prop);
- when N_Abort =>
- Disp_Property (Up (Prefix), Get_Property (Prop));
- Put_Node_Line (Prefix, "abort");
- Disp_Property (Down (Prefix), Get_Boolean (Prop));
- when N_Not_Bool =>
- Put_Node_Line (Prefix, "! (boolean not)");
- Disp_Property (Down (Prefix), Get_Boolean (Prop));
- when N_Or_Bool =>
- Disp_Binary_Sequence (Prefix, "|| (boolean or)", Prop);
- when N_And_Bool =>
- Disp_Binary_Sequence (Prefix, "&& (boolean and)", Prop);
- when N_Name_Decl =>
- Put_Node_Line (Prefix,
- "Name_Decl: " & Image (Get_Identifier (Prop)));
- when N_Name =>
- Put_Node_Line (Prefix, "Name: " & Image (Get_Identifier (Prop)));
- Disp_Property (Down (Prefix), Get_Decl (Prop));
- when N_True =>
- Put_Node_Line (Prefix, "TRUE");
- when N_False =>
- Put_Node_Line (Prefix, "FALSE");
- when N_HDL_Expr =>
- Put_Node (Prefix, "HDL_Expr: ");
- PSL.Prints.HDL_Expr_Printer.all (Get_HDL_Node (Prop));
- New_Line;
- when N_Star_Repeat_Seq =>
- Disp_Repeat_Sequence (Prefix, "[*", Prop);
- when N_Goto_Repeat_Seq =>
- Disp_Repeat_Sequence (Prefix, "[->", Prop);
- when N_Equal_Repeat_Seq =>
- Disp_Repeat_Sequence (Prefix, "[=", Prop);
- when N_Plus_Repeat_Seq =>
- Put_Node_Line (Prefix, "[+]");
- Disp_Property (Down (Prefix), Get_Sequence (Prop));
- when others =>
- Error_Kind ("disp_property", Prop);
- end case;
- end Disp_Property;
-
- procedure Disp_Assert (N : Node) is
- Label : constant Name_Id := Get_Label (N);
- begin
- Put (" ");
- if Label /= Null_Identifier then
- Put (Image (Label));
- Put (": ");
- end if;
- Put_Line ("assert ");
- Disp_Property (" \", Get_Property (N));
- end Disp_Assert;
-
- procedure Disp_Unit (Unit : Node) is
- Item : Node;
- begin
- case Get_Kind (Unit) is
- when N_Vunit =>
- Put ("vunit");
- when others =>
- Error_Kind ("disp_unit", Unit);
- end case;
- Put (' ');
- Put (Image (Get_Identifier (Unit)));
- Put_Line (" {");
- Item := Get_Item_Chain (Unit);
- while Item /= Null_Node loop
- case Get_Kind (Item) is
- when N_Assert_Directive =>
- Disp_Assert (Item);
- when N_Name_Decl =>
- null;
- when others =>
- Error_Kind ("disp_unit", Item);
- end case;
- Item := Get_Chain (Item);
- end loop;
- Put_Line ("}");
- end Disp_Unit;
-end PSL.Tprint;
-