aboutsummaryrefslogtreecommitdiffstats
path: root/src/psl/psl-nodes.adb.in
diff options
context:
space:
mode:
Diffstat (limited to 'src/psl/psl-nodes.adb.in')
-rw-r--r--src/psl/psl-nodes.adb.in123
1 files changed, 67 insertions, 56 deletions
diff --git a/src/psl/psl-nodes.adb.in b/src/psl/psl-nodes.adb.in
index 4294140c1..c0236d9dc 100644
--- a/src/psl/psl-nodes.adb.in
+++ b/src/psl/psl-nodes.adb.in
@@ -304,23 +304,32 @@ package body PSL.Nodes is
Errors.Error_Kind (Msg, N);
end Failed;
- procedure Init is
+ procedure Init (Loc : Location_Type) is
begin
+ pragma Assert (Loc /= No_Location);
Nodet.Init;
+
if Create_Node (N_False) /= False_Node then
raise Internal_Error;
end if;
+ Set_Location (False_Node, Loc);
+
if Create_Node (N_True) /= True_Node then
raise Internal_Error;
end if;
+ Set_Location (True_Node, Loc);
+
if Create_Node (N_Number) /= One_Node then
raise Internal_Error;
end if;
Set_Value (One_Node, 1);
+ Set_Location (One_Node, Loc);
+
if Create_Node (N_EOS) /= EOS_Node then
raise Internal_Error;
end if;
Set_Hash (EOS_Node, 0);
+ Set_Location (EOS_Node, Loc);
PSL.Hash.Init;
end Init;
@@ -328,43 +337,44 @@ package body PSL.Nodes is
begin
case Get_Kind (N) is
when N_And_Prop
- | N_Or_Prop
- | N_Paren_Prop
- | N_Log_Imp_Prop
- | N_Always
- | N_Never
- | N_Eventually
- | N_Next
- | N_Next_E
- | N_Next_A
- | N_Next_Event
- | N_Next_Event_A
- | N_Next_Event_E
- | N_Before
- | N_Until
- | N_Abort
- | N_Strong
- | N_Property_Parameter
- | N_Property_Instance =>
+ | N_Or_Prop
+ | N_Paren_Prop
+ | N_Log_Imp_Prop
+ | N_Log_Equiv_Prop
+ | N_Always
+ | N_Never
+ | N_Eventually
+ | N_Next
+ | N_Next_E
+ | N_Next_A
+ | N_Next_Event
+ | N_Next_Event_A
+ | N_Next_Event_E
+ | N_Before
+ | N_Until
+ | N_Abort
+ | N_Strong
+ | N_Property_Parameter
+ | N_Property_Instance =>
return Type_Property;
when N_Braced_SERE
- | N_Concat_SERE
- | N_Fusion_SERE
- | N_Within_SERE
- | N_Clocked_SERE
- | N_Overlap_Imp_Seq
- | N_Imp_Seq
- | N_And_Seq
- | N_Or_Seq
- | N_Match_And_Seq
- | N_Star_Repeat_Seq
- | N_Goto_Repeat_Seq
- | N_Equal_Repeat_Seq
- | N_Plus_Repeat_Seq
- | N_Clock_Event
- | N_Sequence_Instance
- | N_Endpoint_Instance
- | N_Sequence_Parameter =>
+ | N_Concat_SERE
+ | N_Fusion_SERE
+ | N_Within_SERE
+ | N_Clocked_SERE
+ | N_Overlap_Imp_Seq
+ | N_Imp_Seq
+ | N_And_Seq
+ | N_Or_Seq
+ | N_Match_And_Seq
+ | N_Star_Repeat_Seq
+ | N_Goto_Repeat_Seq
+ | N_Equal_Repeat_Seq
+ | N_Plus_Repeat_Seq
+ | N_Clock_Event
+ | N_Sequence_Instance
+ | N_Endpoint_Instance
+ | N_Sequence_Parameter =>
return Type_Sequence;
when N_Name =>
return Get_Psl_Type (Get_Decl (N));
@@ -372,30 +382,31 @@ package body PSL.Nodes is
-- FIXME.
return Type_Boolean;
when N_Or_Bool
- | N_And_Bool
- | N_Not_Bool
- | N_Imp_Bool
- | N_False
- | N_True
- | N_Boolean_Parameter
- | N_Paren_Bool
- | N_HDL_Bool =>
+ | N_And_Bool
+ | N_Not_Bool
+ | N_Imp_Bool
+ | N_Equiv_Bool
+ | N_False
+ | N_True
+ | N_Boolean_Parameter
+ | N_Paren_Bool
+ | N_HDL_Bool =>
return Type_Boolean;
when N_Number
- | N_Const_Parameter =>
+ | N_Const_Parameter =>
return Type_Numeric;
when N_Vmode
- | N_Vunit
- | N_Vprop
- | N_Hdl_Mod_Name
- | N_Assert_Directive
- | N_Sequence_Declaration
- | N_Endpoint_Declaration
- | N_Property_Declaration
- | N_Actual
- | N_Name_Decl
- | N_Error
- | N_EOS =>
+ | N_Vunit
+ | N_Vprop
+ | N_Hdl_Mod_Name
+ | N_Assert_Directive
+ | N_Sequence_Declaration
+ | N_Endpoint_Declaration
+ | N_Property_Declaration
+ | N_Actual
+ | N_Name_Decl
+ | N_Error
+ | N_EOS =>
PSL.Errors.Error_Kind ("get_psl_type", N);
end case;
end Get_Psl_Type;