aboutsummaryrefslogtreecommitdiffstats
path: root/src/psl
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2019-05-24 18:19:33 +0200
committerTristan Gingold <tgingold@free.fr>2019-05-24 18:19:33 +0200
commit5c5987d671ed390b0965c95f5744d86356a02ddf (patch)
tree1fbc0182827b1ed826fb8d015501a463d12050a0 /src/psl
parentbfa8052b491367f8d10f98878343a7002f26f0cc (diff)
downloadghdl-5c5987d671ed390b0965c95f5744d86356a02ddf.tar.gz
ghdl-5c5987d671ed390b0965c95f5744d86356a02ddf.tar.bz2
ghdl-5c5987d671ed390b0965c95f5744d86356a02ddf.zip
psl: can keep parenthesis during parse.
Diffstat (limited to 'src/psl')
-rw-r--r--src/psl/psl-nodes.adb6
-rw-r--r--src/psl/psl-nodes.adb.in4
-rw-r--r--src/psl/psl-nodes.ads18
-rw-r--r--src/psl/psl-nodes_meta.adb72
-rw-r--r--src/psl/psl-subsets.adb6
5 files changed, 74 insertions, 32 deletions
diff --git a/src/psl/psl-nodes.adb b/src/psl/psl-nodes.adb
index d7de320a8..99b449d22 100644
--- a/src/psl/psl-nodes.adb
+++ b/src/psl/psl-nodes.adb
@@ -325,6 +325,7 @@ package body PSL.Nodes is
case Get_Kind (N) is
when N_And_Prop
| N_Or_Prop
+ | N_Paren_Prop
| N_Log_Imp_Prop
| N_Always
| N_Never
@@ -372,7 +373,8 @@ package body PSL.Nodes is
| N_Imp_Bool
| N_False
| N_True
- | N_Boolean_Parameter =>
+ | N_Boolean_Parameter
+ | N_Paren_Bool =>
return Type_Boolean;
when N_Number
| N_Const_Parameter =>
@@ -439,6 +441,7 @@ package body PSL.Nodes is
| N_Before
| N_Or_Prop
| N_And_Prop
+ | N_Paren_Prop
| N_Braced_SERE
| N_Concat_SERE
| N_Fusion_SERE
@@ -451,6 +454,7 @@ package body PSL.Nodes is
| N_Goto_Repeat_Seq
| N_Plus_Repeat_Seq
| N_Equal_Repeat_Seq
+ | N_Paren_Bool
| N_Not_Bool
| N_And_Bool
| N_Or_Bool
diff --git a/src/psl/psl-nodes.adb.in b/src/psl/psl-nodes.adb.in
index 220ffee71..3c7888800 100644
--- a/src/psl/psl-nodes.adb.in
+++ b/src/psl/psl-nodes.adb.in
@@ -325,6 +325,7 @@ package body PSL.Nodes is
case Get_Kind (N) is
when N_And_Prop
| N_Or_Prop
+ | N_Paren_Prop
| N_Log_Imp_Prop
| N_Always
| N_Never
@@ -372,7 +373,8 @@ package body PSL.Nodes is
| N_Imp_Bool
| N_False
| N_True
- | N_Boolean_Parameter =>
+ | N_Boolean_Parameter
+ | N_Paren_Bool =>
return Type_Boolean;
when N_Number
| N_Const_Parameter =>
diff --git a/src/psl/psl-nodes.ads b/src/psl/psl-nodes.ads
index ec3022c35..0b11d0641 100644
--- a/src/psl/psl-nodes.ads
+++ b/src/psl/psl-nodes.ads
@@ -67,6 +67,7 @@ package PSL.Nodes is
N_Before,
N_Or_Prop,
N_And_Prop,
+ N_Paren_Prop,
-- Sequences/SERE.
N_Braced_SERE,
@@ -85,6 +86,7 @@ package PSL.Nodes is
N_Equal_Repeat_Seq,
-- Boolean layer.
+ N_Paren_Bool,
N_Not_Bool,
N_And_Bool,
N_Or_Bool,
@@ -100,7 +102,7 @@ package PSL.Nodes is
);
for Nkind'Size use 8;
- subtype N_Booleans is Nkind range N_Not_Bool .. N_True;
+ subtype N_Booleans is Nkind range N_Paren_Bool .. N_True;
subtype N_Sequences is Nkind range N_Braced_SERE .. N_Equal_Repeat_Seq;
type PSL_Types is
@@ -335,6 +337,10 @@ package PSL.Nodes is
--
-- Get/Set_Right (Field2)
+ -- N_Paren_Prop (Short)
+ --
+ -- Get/Set_Property (Field4)
+
-- N_Until (Short)
-- N_Before (Short)
--
@@ -378,6 +384,16 @@ package PSL.Nodes is
--
-- Get/Set_Hash_Link (Field6)
+ -- N_Paren_Bool (Short)
+ --
+ -- Get/Set_Presence (State1)
+ --
+ -- Get/Set_Boolean (Field3)
+ --
+ -- Get/Set_Hash (Field5)
+ --
+ -- Get/Set_Hash_Link (Field6)
+
-- N_Not_Bool (Short)
--
-- Get/Set_Presence (State1)
diff --git a/src/psl/psl-nodes_meta.adb b/src/psl/psl-nodes_meta.adb
index 04b42aceb..f33ac5122 100644
--- a/src/psl/psl-nodes_meta.adb
+++ b/src/psl/psl-nodes_meta.adb
@@ -203,6 +203,8 @@ package body PSL.Nodes_Meta is
return "or_prop";
when N_And_Prop =>
return "and_prop";
+ when N_Paren_Prop =>
+ return "paren_prop";
when N_Braced_SERE =>
return "braced_sere";
when N_Concat_SERE =>
@@ -227,6 +229,8 @@ package body PSL.Nodes_Meta is
return "plus_repeat_seq";
when N_Equal_Repeat_Seq =>
return "equal_repeat_seq";
+ when N_Paren_Bool =>
+ return "paren_bool";
when N_Not_Bool =>
return "not_bool";
when N_And_Bool =>
@@ -464,6 +468,8 @@ package body PSL.Nodes_Meta is
-- N_And_Prop
Field_Left,
Field_Right,
+ -- N_Paren_Prop
+ Field_Property,
-- N_Braced_SERE
Field_SERE,
-- N_Concat_SERE
@@ -501,6 +507,11 @@ package body PSL.Nodes_Meta is
Field_Sequence,
Field_Low_Bound,
Field_High_Bound,
+ -- N_Paren_Bool
+ Field_Hash,
+ Field_Presence,
+ Field_Boolean,
+ Field_Hash_Link,
-- N_Not_Bool
Field_Hash,
Field_Presence,
@@ -584,29 +595,31 @@ package body PSL.Nodes_Meta is
N_Before => 99,
N_Or_Prop => 101,
N_And_Prop => 103,
- N_Braced_SERE => 104,
- N_Concat_SERE => 106,
- N_Fusion_SERE => 108,
- N_Within_SERE => 110,
- N_Clocked_SERE => 112,
- N_Match_And_Seq => 114,
- N_And_Seq => 116,
- N_Or_Seq => 118,
- N_Star_Repeat_Seq => 121,
- N_Goto_Repeat_Seq => 124,
- N_Plus_Repeat_Seq => 125,
- N_Equal_Repeat_Seq => 128,
- N_Not_Bool => 132,
- N_And_Bool => 137,
- N_Or_Bool => 142,
- N_Imp_Bool => 147,
- N_HDL_Expr => 152,
- N_False => 152,
- N_True => 152,
- N_EOS => 155,
- N_Name => 157,
- N_Name_Decl => 159,
- N_Number => 160
+ N_Paren_Prop => 104,
+ N_Braced_SERE => 105,
+ N_Concat_SERE => 107,
+ N_Fusion_SERE => 109,
+ N_Within_SERE => 111,
+ N_Clocked_SERE => 113,
+ N_Match_And_Seq => 115,
+ N_And_Seq => 117,
+ N_Or_Seq => 119,
+ N_Star_Repeat_Seq => 122,
+ N_Goto_Repeat_Seq => 125,
+ N_Plus_Repeat_Seq => 126,
+ N_Equal_Repeat_Seq => 129,
+ N_Paren_Bool => 133,
+ N_Not_Bool => 137,
+ N_And_Bool => 142,
+ N_Or_Bool => 147,
+ N_Imp_Bool => 152,
+ N_HDL_Expr => 157,
+ N_False => 157,
+ N_True => 157,
+ N_EOS => 160,
+ N_Name => 162,
+ N_Name_Decl => 164,
+ N_Number => 165
);
function Get_Fields (K : Nkind) return Fields_Array
@@ -1007,7 +1020,8 @@ package body PSL.Nodes_Meta is
| N_Next_Event
| N_Next_Event_A
| N_Next_Event_E
- | N_Abort =>
+ | N_Abort
+ | N_Paren_Prop =>
return True;
when others =>
return False;
@@ -1178,6 +1192,7 @@ package body PSL.Nodes_Meta is
| N_Next_Event_E
| N_Abort
| N_Clocked_SERE
+ | N_Paren_Bool
| N_Not_Bool =>
return True;
when others =>
@@ -1198,7 +1213,8 @@ package body PSL.Nodes_Meta is
function Has_Hash (K : Nkind) return Boolean is
begin
case K is
- when N_Not_Bool
+ when N_Paren_Bool
+ | N_Not_Bool
| N_And_Bool
| N_Or_Bool
| N_Imp_Bool
@@ -1213,7 +1229,8 @@ package body PSL.Nodes_Meta is
function Has_Hash_Link (K : Nkind) return Boolean is
begin
case K is
- when N_Not_Bool
+ when N_Paren_Bool
+ | N_Not_Bool
| N_And_Bool
| N_Or_Bool
| N_Imp_Bool
@@ -1239,7 +1256,8 @@ package body PSL.Nodes_Meta is
function Has_Presence (K : Nkind) return Boolean is
begin
case K is
- when N_Not_Bool
+ when N_Paren_Bool
+ | N_Not_Bool
| N_And_Bool
| N_Or_Bool
| N_Imp_Bool
diff --git a/src/psl/psl-subsets.adb b/src/psl/psl-subsets.adb
index 8aaf2b063..95f8d781c 100644
--- a/src/psl/psl-subsets.adb
+++ b/src/psl/psl-subsets.adb
@@ -163,7 +163,8 @@ package body PSL.Subsets is
Check_Simple (Get_Right (N));
when N_Next
| N_Next_A
- | N_Next_E =>
+ | N_Next_E
+ | N_Paren_Prop =>
Check_Simple (Get_Property (N));
when N_Next_Event
| N_Next_Event_A
@@ -171,7 +172,8 @@ package body PSL.Subsets is
| N_Abort =>
Check_Simple (Get_Boolean (N));
Check_Simple (Get_Property (N));
- when N_Not_Bool =>
+ when N_Not_Bool
+ | N_Paren_Bool =>
Check_Simple (Get_Boolean (N));
when N_Const_Parameter
| N_Sequence_Parameter