aboutsummaryrefslogtreecommitdiffstats
path: root/src/psl/psl-nodes_meta.adb
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2020-03-11 21:09:39 +0100
committerTristan Gingold <tgingold@free.fr>2020-03-13 06:30:27 +0100
commitd70084ccb149ff4f5fca072c672b1f3d040358a9 (patch)
tree1b2cb2172368b02be2f5c92bab1f59583ec4dec9 /src/psl/psl-nodes_meta.adb
parent5c398db1b18a346cf2cb25acac07b068ccd7deee (diff)
downloadghdl-d70084ccb149ff4f5fca072c672b1f3d040358a9.tar.gz
ghdl-d70084ccb149ff4f5fca072c672b1f3d040358a9.tar.bz2
ghdl-d70084ccb149ff4f5fca072c672b1f3d040358a9.zip
psl: keep denoting names in the PSL ast.
Diffstat (limited to 'src/psl/psl-nodes_meta.adb')
-rw-r--r--src/psl/psl-nodes_meta.adb50
1 files changed, 38 insertions, 12 deletions
diff --git a/src/psl/psl-nodes_meta.adb b/src/psl/psl-nodes_meta.adb
index f33ac5122..ef5808fe4 100644
--- a/src/psl/psl-nodes_meta.adb
+++ b/src/psl/psl-nodes_meta.adb
@@ -43,6 +43,7 @@ package body PSL.Nodes_Meta is
Field_Hash => Type_Uns32,
Field_Hash_Link => Type_Node,
Field_HDL_Index => Type_Int32,
+ Field_HDL_Hash => Type_Node,
Field_Presence => Type_PSL_Presence_Kind,
Field_NFA => Type_NFA,
Field_Parameter_List => Type_Node,
@@ -109,6 +110,8 @@ package body PSL.Nodes_Meta is
return "hash_link";
when Field_HDL_Index =>
return "hdl_index";
+ when Field_HDL_Hash =>
+ return "hdl_hash";
when Field_Presence =>
return "presence";
when Field_NFA =>
@@ -241,6 +244,8 @@ package body PSL.Nodes_Meta is
return "imp_bool";
when N_HDL_Expr =>
return "hdl_expr";
+ when N_HDL_Bool =>
+ return "hdl_bool";
when N_False =>
return "false";
when N_True =>
@@ -307,6 +312,8 @@ package body PSL.Nodes_Meta is
return Attr_None;
when Field_HDL_Index =>
return Attr_None;
+ when Field_HDL_Hash =>
+ return Attr_None;
when Field_Presence =>
return Attr_None;
when Field_NFA =>
@@ -537,6 +544,9 @@ package body PSL.Nodes_Meta is
Field_Hash_Link,
-- N_HDL_Expr
Field_HDL_Node,
+ Field_HDL_Hash,
+ -- N_HDL_Bool
+ Field_HDL_Node,
Field_HDL_Index,
Field_Hash,
Field_Presence,
@@ -613,13 +623,14 @@ package body PSL.Nodes_Meta is
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
+ N_HDL_Expr => 154,
+ N_HDL_Bool => 159,
+ N_False => 159,
+ N_True => 159,
+ N_EOS => 162,
+ N_Name => 164,
+ N_Name_Decl => 166,
+ N_Number => 167
);
function Get_Fields (K : Nkind) return Fields_Array
@@ -801,6 +812,8 @@ package body PSL.Nodes_Meta is
return Get_Decl (N);
when Field_Hash_Link =>
return Get_Hash_Link (N);
+ when Field_HDL_Hash =>
+ return Get_HDL_Hash (N);
when Field_Parameter_List =>
return Get_Parameter_List (N);
when Field_Actual =>
@@ -855,6 +868,8 @@ package body PSL.Nodes_Meta is
Set_Decl (N, V);
when Field_Hash_Link =>
Set_Hash_Link (N, V);
+ when Field_HDL_Hash =>
+ Set_HDL_Hash (N, V);
when Field_Parameter_List =>
Set_Parameter_List (N, V);
when Field_Actual =>
@@ -1207,7 +1222,13 @@ package body PSL.Nodes_Meta is
function Has_HDL_Node (K : Nkind) return Boolean is
begin
- return K = N_HDL_Expr;
+ case K is
+ when N_HDL_Expr
+ | N_HDL_Bool =>
+ return True;
+ when others =>
+ return False;
+ end case;
end Has_HDL_Node;
function Has_Hash (K : Nkind) return Boolean is
@@ -1218,7 +1239,7 @@ package body PSL.Nodes_Meta is
| N_And_Bool
| N_Or_Bool
| N_Imp_Bool
- | N_HDL_Expr
+ | N_HDL_Bool
| N_EOS =>
return True;
when others =>
@@ -1234,7 +1255,7 @@ package body PSL.Nodes_Meta is
| N_And_Bool
| N_Or_Bool
| N_Imp_Bool
- | N_HDL_Expr
+ | N_HDL_Bool
| N_EOS =>
return True;
when others =>
@@ -1245,7 +1266,7 @@ package body PSL.Nodes_Meta is
function Has_HDL_Index (K : Nkind) return Boolean is
begin
case K is
- when N_HDL_Expr
+ when N_HDL_Bool
| N_EOS =>
return True;
when others =>
@@ -1253,6 +1274,11 @@ package body PSL.Nodes_Meta is
end case;
end Has_HDL_Index;
+ function Has_HDL_Hash (K : Nkind) return Boolean is
+ begin
+ return K = N_HDL_Expr;
+ end Has_HDL_Hash;
+
function Has_Presence (K : Nkind) return Boolean is
begin
case K is
@@ -1261,7 +1287,7 @@ package body PSL.Nodes_Meta is
| N_And_Bool
| N_Or_Bool
| N_Imp_Bool
- | N_HDL_Expr =>
+ | N_HDL_Bool =>
return True;
when others =>
return False;