summaryrefslogtreecommitdiff
path: root/src/vhdl/nodes_meta.adb
diff options
context:
space:
mode:
authorTristan Gingold2014-12-30 08:56:04 +0100
committerTristan Gingold2014-12-30 08:56:04 +0100
commit4d285e65d71ece770de8d21b506e37b874ee0850 (patch)
tree3f8e8d7a53549998c71c363027ef337808ac4248 /src/vhdl/nodes_meta.adb
parent17082aaf70426f2204b4259e45b1ca6e315bd439 (diff)
downloadghdl-4d285e65d71ece770de8d21b506e37b874ee0850.tar.gz
ghdl-4d285e65d71ece770de8d21b506e37b874ee0850.tar.bz2
ghdl-4d285e65d71ece770de8d21b506e37b874ee0850.zip
vhdl 2008: handle sized bit strings.
Diffstat (limited to 'src/vhdl/nodes_meta.adb')
-rw-r--r--src/vhdl/nodes_meta.adb503
1 files changed, 274 insertions, 229 deletions
diff --git a/src/vhdl/nodes_meta.adb b/src/vhdl/nodes_meta.adb
index 9890310..62a8935 100644
--- a/src/vhdl/nodes_meta.adb
+++ b/src/vhdl/nodes_meta.adb
@@ -49,6 +49,9 @@ package body Nodes_Meta is
Field_Fp_Value => Type_Iir_Fp64,
Field_Simple_Aggregate_List => Type_Iir_List,
Field_Bit_String_Base => Type_Base_Type,
+ Field_Has_Signed => Type_Boolean,
+ Field_Has_Sign => Type_Boolean,
+ Field_Has_Length => Type_Boolean,
Field_Literal_Origin => Type_Iir,
Field_Range_Origin => Type_Iir,
Field_Literal_Subtype => Type_Iir,
@@ -373,6 +376,12 @@ package body Nodes_Meta is
return "simple_aggregate_list";
when Field_Bit_String_Base =>
return "bit_string_base";
+ when Field_Has_Signed =>
+ return "has_signed";
+ when Field_Has_Sign =>
+ return "has_sign";
+ when Field_Has_Length =>
+ return "has_length";
when Field_Literal_Origin =>
return "literal_origin";
when Field_Range_Origin =>
@@ -1427,6 +1436,12 @@ package body Nodes_Meta is
return Attr_None;
when Field_Bit_String_Base =>
return Attr_None;
+ when Field_Has_Signed =>
+ return Attr_None;
+ when Field_Has_Sign =>
+ return Attr_None;
+ when Field_Has_Length =>
+ return Attr_None;
when Field_Literal_Origin =>
return Attr_None;
when Field_Range_Origin =>
@@ -2004,8 +2019,11 @@ package body Nodes_Meta is
-- Iir_Kind_String_Literal8
Field_String_Length,
Field_String8_Id,
- Field_Expr_Staticness,
+ Field_Has_Signed,
+ Field_Has_Sign,
+ Field_Has_Length,
Field_Bit_String_Base,
+ Field_Expr_Staticness,
Field_Literal_Origin,
Field_Literal_Subtype,
Field_Type,
@@ -3789,234 +3807,234 @@ package body Nodes_Meta is
Iir_Kind_Integer_Literal => 45,
Iir_Kind_Floating_Point_Literal => 49,
Iir_Kind_Null_Literal => 51,
- Iir_Kind_String_Literal8 => 58,
- Iir_Kind_Physical_Int_Literal => 63,
- Iir_Kind_Physical_Fp_Literal => 68,
- Iir_Kind_Simple_Aggregate => 73,
- Iir_Kind_Overflow_Literal => 76,
- Iir_Kind_Waveform_Element => 79,
- Iir_Kind_Conditional_Waveform => 82,
- Iir_Kind_Association_Element_By_Expression => 89,
- Iir_Kind_Association_Element_By_Individual => 95,
- Iir_Kind_Association_Element_Open => 100,
- Iir_Kind_Association_Element_Package => 106,
- Iir_Kind_Choice_By_Others => 111,
- Iir_Kind_Choice_By_Expression => 118,
- Iir_Kind_Choice_By_Range => 125,
- Iir_Kind_Choice_By_None => 130,
- Iir_Kind_Choice_By_Name => 136,
- Iir_Kind_Entity_Aspect_Entity => 138,
- Iir_Kind_Entity_Aspect_Configuration => 139,
- Iir_Kind_Entity_Aspect_Open => 139,
- Iir_Kind_Block_Configuration => 145,
- Iir_Kind_Block_Header => 149,
- Iir_Kind_Component_Configuration => 155,
- Iir_Kind_Binding_Indication => 161,
- Iir_Kind_Entity_Class => 163,
- Iir_Kind_Attribute_Value => 171,
- Iir_Kind_Signature => 174,
- Iir_Kind_Aggregate_Info => 181,
- Iir_Kind_Procedure_Call => 185,
- Iir_Kind_Record_Element_Constraint => 191,
- Iir_Kind_Array_Element_Resolution => 192,
- Iir_Kind_Record_Resolution => 193,
- Iir_Kind_Record_Element_Resolution => 196,
- Iir_Kind_Attribute_Specification => 204,
- Iir_Kind_Disconnection_Specification => 209,
- Iir_Kind_Configuration_Specification => 214,
- Iir_Kind_Access_Type_Definition => 221,
- Iir_Kind_Incomplete_Type_Definition => 228,
- Iir_Kind_File_Type_Definition => 235,
- Iir_Kind_Protected_Type_Declaration => 244,
- Iir_Kind_Record_Type_Definition => 254,
- Iir_Kind_Array_Type_Definition => 266,
- Iir_Kind_Array_Subtype_Definition => 281,
- Iir_Kind_Record_Subtype_Definition => 292,
- Iir_Kind_Access_Subtype_Definition => 300,
- Iir_Kind_Physical_Subtype_Definition => 309,
- Iir_Kind_Floating_Subtype_Definition => 319,
- Iir_Kind_Integer_Subtype_Definition => 328,
- Iir_Kind_Enumeration_Subtype_Definition => 337,
- Iir_Kind_Enumeration_Type_Definition => 346,
- Iir_Kind_Integer_Type_Definition => 352,
- Iir_Kind_Floating_Type_Definition => 358,
- Iir_Kind_Physical_Type_Definition => 367,
- Iir_Kind_Range_Expression => 373,
- Iir_Kind_Protected_Type_Body => 380,
- Iir_Kind_Subtype_Definition => 384,
- Iir_Kind_Scalar_Nature_Definition => 388,
- Iir_Kind_Overload_List => 389,
- Iir_Kind_Type_Declaration => 395,
- Iir_Kind_Anonymous_Type_Declaration => 400,
- Iir_Kind_Subtype_Declaration => 408,
- Iir_Kind_Nature_Declaration => 414,
- Iir_Kind_Subnature_Declaration => 420,
- Iir_Kind_Package_Declaration => 430,
- Iir_Kind_Package_Instantiation_Declaration => 441,
- Iir_Kind_Package_Body => 448,
- Iir_Kind_Configuration_Declaration => 457,
- Iir_Kind_Entity_Declaration => 469,
- Iir_Kind_Architecture_Body => 481,
- Iir_Kind_Package_Header => 483,
- Iir_Kind_Unit_Declaration => 492,
- Iir_Kind_Library_Declaration => 499,
- Iir_Kind_Component_Declaration => 509,
- Iir_Kind_Attribute_Declaration => 516,
- Iir_Kind_Group_Template_Declaration => 522,
- Iir_Kind_Group_Declaration => 529,
- Iir_Kind_Element_Declaration => 536,
- Iir_Kind_Non_Object_Alias_Declaration => 544,
- Iir_Kind_Psl_Declaration => 552,
- Iir_Kind_Terminal_Declaration => 558,
- Iir_Kind_Free_Quantity_Declaration => 567,
- Iir_Kind_Across_Quantity_Declaration => 579,
- Iir_Kind_Through_Quantity_Declaration => 591,
- Iir_Kind_Enumeration_Literal => 602,
- Iir_Kind_Function_Declaration => 626,
- Iir_Kind_Procedure_Declaration => 648,
- Iir_Kind_Function_Body => 658,
- Iir_Kind_Procedure_Body => 668,
- Iir_Kind_Object_Alias_Declaration => 680,
- Iir_Kind_File_Declaration => 695,
- Iir_Kind_Guard_Signal_Declaration => 708,
- Iir_Kind_Signal_Declaration => 725,
- Iir_Kind_Variable_Declaration => 738,
- Iir_Kind_Constant_Declaration => 752,
- Iir_Kind_Iterator_Declaration => 764,
- Iir_Kind_Interface_Constant_Declaration => 780,
- Iir_Kind_Interface_Variable_Declaration => 796,
- Iir_Kind_Interface_Signal_Declaration => 817,
- Iir_Kind_Interface_File_Declaration => 833,
- Iir_Kind_Interface_Package_Declaration => 842,
- Iir_Kind_Identity_Operator => 846,
- Iir_Kind_Negation_Operator => 850,
- Iir_Kind_Absolute_Operator => 854,
- Iir_Kind_Not_Operator => 858,
- Iir_Kind_Condition_Operator => 862,
- Iir_Kind_Reduction_And_Operator => 866,
- Iir_Kind_Reduction_Or_Operator => 870,
- Iir_Kind_Reduction_Nand_Operator => 874,
- Iir_Kind_Reduction_Nor_Operator => 878,
- Iir_Kind_Reduction_Xor_Operator => 882,
- Iir_Kind_Reduction_Xnor_Operator => 886,
- Iir_Kind_And_Operator => 891,
- Iir_Kind_Or_Operator => 896,
- Iir_Kind_Nand_Operator => 901,
- Iir_Kind_Nor_Operator => 906,
- Iir_Kind_Xor_Operator => 911,
- Iir_Kind_Xnor_Operator => 916,
- Iir_Kind_Equality_Operator => 921,
- Iir_Kind_Inequality_Operator => 926,
- Iir_Kind_Less_Than_Operator => 931,
- Iir_Kind_Less_Than_Or_Equal_Operator => 936,
- Iir_Kind_Greater_Than_Operator => 941,
- Iir_Kind_Greater_Than_Or_Equal_Operator => 946,
- Iir_Kind_Match_Equality_Operator => 951,
- Iir_Kind_Match_Inequality_Operator => 956,
- Iir_Kind_Match_Less_Than_Operator => 961,
- Iir_Kind_Match_Less_Than_Or_Equal_Operator => 966,
- Iir_Kind_Match_Greater_Than_Operator => 971,
- Iir_Kind_Match_Greater_Than_Or_Equal_Operator => 976,
- Iir_Kind_Sll_Operator => 981,
- Iir_Kind_Sla_Operator => 986,
- Iir_Kind_Srl_Operator => 991,
- Iir_Kind_Sra_Operator => 996,
- Iir_Kind_Rol_Operator => 1001,
- Iir_Kind_Ror_Operator => 1006,
- Iir_Kind_Addition_Operator => 1011,
- Iir_Kind_Substraction_Operator => 1016,
- Iir_Kind_Concatenation_Operator => 1021,
- Iir_Kind_Multiplication_Operator => 1026,
- Iir_Kind_Division_Operator => 1031,
- Iir_Kind_Modulus_Operator => 1036,
- Iir_Kind_Remainder_Operator => 1041,
- Iir_Kind_Exponentiation_Operator => 1046,
- Iir_Kind_Function_Call => 1054,
- Iir_Kind_Aggregate => 1060,
- Iir_Kind_Parenthesis_Expression => 1063,
- Iir_Kind_Qualified_Expression => 1067,
- Iir_Kind_Type_Conversion => 1072,
- Iir_Kind_Allocator_By_Expression => 1076,
- Iir_Kind_Allocator_By_Subtype => 1080,
- Iir_Kind_Selected_Element => 1086,
- Iir_Kind_Dereference => 1091,
- Iir_Kind_Implicit_Dereference => 1096,
- Iir_Kind_Slice_Name => 1103,
- Iir_Kind_Indexed_Name => 1109,
- Iir_Kind_Psl_Expression => 1111,
- Iir_Kind_Sensitized_Process_Statement => 1130,
- Iir_Kind_Process_Statement => 1148,
- Iir_Kind_Concurrent_Conditional_Signal_Assignment => 1159,
- Iir_Kind_Concurrent_Selected_Signal_Assignment => 1171,
- Iir_Kind_Concurrent_Assertion_Statement => 1179,
- Iir_Kind_Psl_Default_Clock => 1183,
- Iir_Kind_Psl_Assert_Statement => 1192,
- Iir_Kind_Psl_Cover_Statement => 1201,
- Iir_Kind_Concurrent_Procedure_Call_Statement => 1207,
- Iir_Kind_Block_Statement => 1220,
- Iir_Kind_Generate_Statement => 1232,
- Iir_Kind_Component_Instantiation_Statement => 1242,
- Iir_Kind_Simple_Simultaneous_Statement => 1249,
- Iir_Kind_Signal_Assignment_Statement => 1258,
- Iir_Kind_Null_Statement => 1262,
- Iir_Kind_Assertion_Statement => 1269,
- Iir_Kind_Report_Statement => 1275,
- Iir_Kind_Wait_Statement => 1282,
- Iir_Kind_Variable_Assignment_Statement => 1288,
- Iir_Kind_Return_Statement => 1294,
- Iir_Kind_For_Loop_Statement => 1302,
- Iir_Kind_While_Loop_Statement => 1309,
- Iir_Kind_Next_Statement => 1315,
- Iir_Kind_Exit_Statement => 1321,
- Iir_Kind_Case_Statement => 1328,
- Iir_Kind_Procedure_Call_Statement => 1333,
- Iir_Kind_If_Statement => 1341,
- Iir_Kind_Elsif => 1346,
- Iir_Kind_Character_Literal => 1353,
- Iir_Kind_Simple_Name => 1360,
- Iir_Kind_Selected_Name => 1368,
- Iir_Kind_Operator_Symbol => 1373,
- Iir_Kind_Selected_By_All_Name => 1378,
- Iir_Kind_Parenthesis_Name => 1382,
- Iir_Kind_Base_Attribute => 1384,
- Iir_Kind_Left_Type_Attribute => 1389,
- Iir_Kind_Right_Type_Attribute => 1394,
- Iir_Kind_High_Type_Attribute => 1399,
- Iir_Kind_Low_Type_Attribute => 1404,
- Iir_Kind_Ascending_Type_Attribute => 1409,
- Iir_Kind_Image_Attribute => 1415,
- Iir_Kind_Value_Attribute => 1421,
- Iir_Kind_Pos_Attribute => 1427,
- Iir_Kind_Val_Attribute => 1433,
- Iir_Kind_Succ_Attribute => 1439,
- Iir_Kind_Pred_Attribute => 1445,
- Iir_Kind_Leftof_Attribute => 1451,
- Iir_Kind_Rightof_Attribute => 1457,
- Iir_Kind_Delayed_Attribute => 1465,
- Iir_Kind_Stable_Attribute => 1473,
- Iir_Kind_Quiet_Attribute => 1481,
- Iir_Kind_Transaction_Attribute => 1489,
- Iir_Kind_Event_Attribute => 1493,
- Iir_Kind_Active_Attribute => 1497,
- Iir_Kind_Last_Event_Attribute => 1501,
- Iir_Kind_Last_Active_Attribute => 1505,
- Iir_Kind_Last_Value_Attribute => 1509,
- Iir_Kind_Driving_Attribute => 1513,
- Iir_Kind_Driving_Value_Attribute => 1517,
- Iir_Kind_Behavior_Attribute => 1517,
- Iir_Kind_Structure_Attribute => 1517,
- Iir_Kind_Simple_Name_Attribute => 1524,
- Iir_Kind_Instance_Name_Attribute => 1529,
- Iir_Kind_Path_Name_Attribute => 1534,
- Iir_Kind_Left_Array_Attribute => 1541,
- Iir_Kind_Right_Array_Attribute => 1548,
- Iir_Kind_High_Array_Attribute => 1555,
- Iir_Kind_Low_Array_Attribute => 1562,
- Iir_Kind_Length_Array_Attribute => 1569,
- Iir_Kind_Ascending_Array_Attribute => 1576,
- Iir_Kind_Range_Array_Attribute => 1583,
- Iir_Kind_Reverse_Range_Array_Attribute => 1590,
- Iir_Kind_Attribute_Name => 1598
+ Iir_Kind_String_Literal8 => 61,
+ Iir_Kind_Physical_Int_Literal => 66,
+ Iir_Kind_Physical_Fp_Literal => 71,
+ Iir_Kind_Simple_Aggregate => 76,
+ Iir_Kind_Overflow_Literal => 79,
+ Iir_Kind_Waveform_Element => 82,
+ Iir_Kind_Conditional_Waveform => 85,
+ Iir_Kind_Association_Element_By_Expression => 92,
+ Iir_Kind_Association_Element_By_Individual => 98,
+ Iir_Kind_Association_Element_Open => 103,
+ Iir_Kind_Association_Element_Package => 109,
+ Iir_Kind_Choice_By_Others => 114,
+ Iir_Kind_Choice_By_Expression => 121,
+ Iir_Kind_Choice_By_Range => 128,
+ Iir_Kind_Choice_By_None => 133,
+ Iir_Kind_Choice_By_Name => 139,
+ Iir_Kind_Entity_Aspect_Entity => 141,
+ Iir_Kind_Entity_Aspect_Configuration => 142,
+ Iir_Kind_Entity_Aspect_Open => 142,
+ Iir_Kind_Block_Configuration => 148,
+ Iir_Kind_Block_Header => 152,
+ Iir_Kind_Component_Configuration => 158,
+ Iir_Kind_Binding_Indication => 164,
+ Iir_Kind_Entity_Class => 166,
+ Iir_Kind_Attribute_Value => 174,
+ Iir_Kind_Signature => 177,
+ Iir_Kind_Aggregate_Info => 184,
+ Iir_Kind_Procedure_Call => 188,
+ Iir_Kind_Record_Element_Constraint => 194,
+ Iir_Kind_Array_Element_Resolution => 195,
+ Iir_Kind_Record_Resolution => 196,
+ Iir_Kind_Record_Element_Resolution => 199,
+ Iir_Kind_Attribute_Specification => 207,
+ Iir_Kind_Disconnection_Specification => 212,
+ Iir_Kind_Configuration_Specification => 217,
+ Iir_Kind_Access_Type_Definition => 224,
+ Iir_Kind_Incomplete_Type_Definition => 231,
+ Iir_Kind_File_Type_Definition => 238,
+ Iir_Kind_Protected_Type_Declaration => 247,
+ Iir_Kind_Record_Type_Definition => 257,
+ Iir_Kind_Array_Type_Definition => 269,
+ Iir_Kind_Array_Subtype_Definition => 284,
+ Iir_Kind_Record_Subtype_Definition => 295,
+ Iir_Kind_Access_Subtype_Definition => 303,
+ Iir_Kind_Physical_Subtype_Definition => 312,
+ Iir_Kind_Floating_Subtype_Definition => 322,
+ Iir_Kind_Integer_Subtype_Definition => 331,
+ Iir_Kind_Enumeration_Subtype_Definition => 340,
+ Iir_Kind_Enumeration_Type_Definition => 349,
+ Iir_Kind_Integer_Type_Definition => 355,
+ Iir_Kind_Floating_Type_Definition => 361,
+ Iir_Kind_Physical_Type_Definition => 370,
+ Iir_Kind_Range_Expression => 376,
+ Iir_Kind_Protected_Type_Body => 383,
+ Iir_Kind_Subtype_Definition => 387,
+ Iir_Kind_Scalar_Nature_Definition => 391,
+ Iir_Kind_Overload_List => 392,
+ Iir_Kind_Type_Declaration => 398,
+ Iir_Kind_Anonymous_Type_Declaration => 403,
+ Iir_Kind_Subtype_Declaration => 411,
+ Iir_Kind_Nature_Declaration => 417,
+ Iir_Kind_Subnature_Declaration => 423,
+ Iir_Kind_Package_Declaration => 433,
+ Iir_Kind_Package_Instantiation_Declaration => 444,
+ Iir_Kind_Package_Body => 451,
+ Iir_Kind_Configuration_Declaration => 460,
+ Iir_Kind_Entity_Declaration => 472,
+ Iir_Kind_Architecture_Body => 484,
+ Iir_Kind_Package_Header => 486,
+ Iir_Kind_Unit_Declaration => 495,
+ Iir_Kind_Library_Declaration => 502,
+ Iir_Kind_Component_Declaration => 512,
+ Iir_Kind_Attribute_Declaration => 519,
+ Iir_Kind_Group_Template_Declaration => 525,
+ Iir_Kind_Group_Declaration => 532,
+ Iir_Kind_Element_Declaration => 539,
+ Iir_Kind_Non_Object_Alias_Declaration => 547,
+ Iir_Kind_Psl_Declaration => 555,
+ Iir_Kind_Terminal_Declaration => 561,
+ Iir_Kind_Free_Quantity_Declaration => 570,
+ Iir_Kind_Across_Quantity_Declaration => 582,
+ Iir_Kind_Through_Quantity_Declaration => 594,
+ Iir_Kind_Enumeration_Literal => 605,
+ Iir_Kind_Function_Declaration => 629,
+ Iir_Kind_Procedure_Declaration => 651,
+ Iir_Kind_Function_Body => 661,
+ Iir_Kind_Procedure_Body => 671,
+ Iir_Kind_Object_Alias_Declaration => 683,
+ Iir_Kind_File_Declaration => 698,
+ Iir_Kind_Guard_Signal_Declaration => 711,
+ Iir_Kind_Signal_Declaration => 728,
+ Iir_Kind_Variable_Declaration => 741,
+ Iir_Kind_Constant_Declaration => 755,
+ Iir_Kind_Iterator_Declaration => 767,
+ Iir_Kind_Interface_Constant_Declaration => 783,
+ Iir_Kind_Interface_Variable_Declaration => 799,
+ Iir_Kind_Interface_Signal_Declaration => 820,
+ Iir_Kind_Interface_File_Declaration => 836,
+ Iir_Kind_Interface_Package_Declaration => 845,
+ Iir_Kind_Identity_Operator => 849,
+ Iir_Kind_Negation_Operator => 853,
+ Iir_Kind_Absolute_Operator => 857,
+ Iir_Kind_Not_Operator => 861,
+ Iir_Kind_Condition_Operator => 865,
+ Iir_Kind_Reduction_And_Operator => 869,
+ Iir_Kind_Reduction_Or_Operator => 873,
+ Iir_Kind_Reduction_Nand_Operator => 877,
+ Iir_Kind_Reduction_Nor_Operator => 881,
+ Iir_Kind_Reduction_Xor_Operator => 885,
+ Iir_Kind_Reduction_Xnor_Operator => 889,
+ Iir_Kind_And_Operator => 894,
+ Iir_Kind_Or_Operator => 899,
+ Iir_Kind_Nand_Operator => 904,
+ Iir_Kind_Nor_Operator => 909,
+ Iir_Kind_Xor_Operator => 914,
+ Iir_Kind_Xnor_Operator => 919,
+ Iir_Kind_Equality_Operator => 924,
+ Iir_Kind_Inequality_Operator => 929,
+ Iir_Kind_Less_Than_Operator => 934,
+ Iir_Kind_Less_Than_Or_Equal_Operator => 939,
+ Iir_Kind_Greater_Than_Operator => 944,
+ Iir_Kind_Greater_Than_Or_Equal_Operator => 949,
+ Iir_Kind_Match_Equality_Operator => 954,
+ Iir_Kind_Match_Inequality_Operator => 959,
+ Iir_Kind_Match_Less_Than_Operator => 964,
+ Iir_Kind_Match_Less_Than_Or_Equal_Operator => 969,
+ Iir_Kind_Match_Greater_Than_Operator => 974,
+ Iir_Kind_Match_Greater_Than_Or_Equal_Operator => 979,
+ Iir_Kind_Sll_Operator => 984,
+ Iir_Kind_Sla_Operator => 989,
+ Iir_Kind_Srl_Operator => 994,
+ Iir_Kind_Sra_Operator => 999,
+ Iir_Kind_Rol_Operator => 1004,
+ Iir_Kind_Ror_Operator => 1009,
+ Iir_Kind_Addition_Operator => 1014,
+ Iir_Kind_Substraction_Operator => 1019,
+ Iir_Kind_Concatenation_Operator => 1024,
+ Iir_Kind_Multiplication_Operator => 1029,
+ Iir_Kind_Division_Operator => 1034,
+ Iir_Kind_Modulus_Operator => 1039,
+ Iir_Kind_Remainder_Operator => 1044,
+ Iir_Kind_Exponentiation_Operator => 1049,
+ Iir_Kind_Function_Call => 1057,
+ Iir_Kind_Aggregate => 1063,
+ Iir_Kind_Parenthesis_Expression => 1066,
+ Iir_Kind_Qualified_Expression => 1070,
+ Iir_Kind_Type_Conversion => 1075,
+ Iir_Kind_Allocator_By_Expression => 1079,
+ Iir_Kind_Allocator_By_Subtype => 1083,
+ Iir_Kind_Selected_Element => 1089,
+ Iir_Kind_Dereference => 1094,
+ Iir_Kind_Implicit_Dereference => 1099,
+ Iir_Kind_Slice_Name => 1106,
+ Iir_Kind_Indexed_Name => 1112,
+ Iir_Kind_Psl_Expression => 1114,
+ Iir_Kind_Sensitized_Process_Statement => 1133,
+ Iir_Kind_Process_Statement => 1151,
+ Iir_Kind_Concurrent_Conditional_Signal_Assignment => 1162,
+ Iir_Kind_Concurrent_Selected_Signal_Assignment => 1174,
+ Iir_Kind_Concurrent_Assertion_Statement => 1182,
+ Iir_Kind_Psl_Default_Clock => 1186,
+ Iir_Kind_Psl_Assert_Statement => 1195,
+ Iir_Kind_Psl_Cover_Statement => 1204,
+ Iir_Kind_Concurrent_Procedure_Call_Statement => 1210,
+ Iir_Kind_Block_Statement => 1223,
+ Iir_Kind_Generate_Statement => 1235,
+ Iir_Kind_Component_Instantiation_Statement => 1245,
+ Iir_Kind_Simple_Simultaneous_Statement => 1252,
+ Iir_Kind_Signal_Assignment_Statement => 1261,
+ Iir_Kind_Null_Statement => 1265,
+ Iir_Kind_Assertion_Statement => 1272,
+ Iir_Kind_Report_Statement => 1278,
+ Iir_Kind_Wait_Statement => 1285,
+ Iir_Kind_Variable_Assignment_Statement => 1291,
+ Iir_Kind_Return_Statement => 1297,
+ Iir_Kind_For_Loop_Statement => 1305,
+ Iir_Kind_While_Loop_Statement => 1312,
+ Iir_Kind_Next_Statement => 1318,
+ Iir_Kind_Exit_Statement => 1324,
+ Iir_Kind_Case_Statement => 1331,
+ Iir_Kind_Procedure_Call_Statement => 1336,
+ Iir_Kind_If_Statement => 1344,
+ Iir_Kind_Elsif => 1349,
+ Iir_Kind_Character_Literal => 1356,
+ Iir_Kind_Simple_Name => 1363,
+ Iir_Kind_Selected_Name => 1371,
+ Iir_Kind_Operator_Symbol => 1376,
+ Iir_Kind_Selected_By_All_Name => 1381,
+ Iir_Kind_Parenthesis_Name => 1385,
+ Iir_Kind_Base_Attribute => 1387,
+ Iir_Kind_Left_Type_Attribute => 1392,
+ Iir_Kind_Right_Type_Attribute => 1397,
+ Iir_Kind_High_Type_Attribute => 1402,
+ Iir_Kind_Low_Type_Attribute => 1407,
+ Iir_Kind_Ascending_Type_Attribute => 1412,
+ Iir_Kind_Image_Attribute => 1418,
+ Iir_Kind_Value_Attribute => 1424,
+ Iir_Kind_Pos_Attribute => 1430,
+ Iir_Kind_Val_Attribute => 1436,
+ Iir_Kind_Succ_Attribute => 1442,
+ Iir_Kind_Pred_Attribute => 1448,
+ Iir_Kind_Leftof_Attribute => 1454,
+ Iir_Kind_Rightof_Attribute => 1460,
+ Iir_Kind_Delayed_Attribute => 1468,
+ Iir_Kind_Stable_Attribute => 1476,
+ Iir_Kind_Quiet_Attribute => 1484,
+ Iir_Kind_Transaction_Attribute => 1492,
+ Iir_Kind_Event_Attribute => 1496,
+ Iir_Kind_Active_Attribute => 1500,
+ Iir_Kind_Last_Event_Attribute => 1504,
+ Iir_Kind_Last_Active_Attribute => 1508,
+ Iir_Kind_Last_Value_Attribute => 1512,
+ Iir_Kind_Driving_Attribute => 1516,
+ Iir_Kind_Driving_Value_Attribute => 1520,
+ Iir_Kind_Behavior_Attribute => 1520,
+ Iir_Kind_Structure_Attribute => 1520,
+ Iir_Kind_Simple_Name_Attribute => 1527,
+ Iir_Kind_Instance_Name_Attribute => 1532,
+ Iir_Kind_Path_Name_Attribute => 1537,
+ Iir_Kind_Left_Array_Attribute => 1544,
+ Iir_Kind_Right_Array_Attribute => 1551,
+ Iir_Kind_High_Array_Attribute => 1558,
+ Iir_Kind_Low_Array_Attribute => 1565,
+ Iir_Kind_Length_Array_Attribute => 1572,
+ Iir_Kind_Ascending_Array_Attribute => 1579,
+ Iir_Kind_Range_Array_Attribute => 1586,
+ Iir_Kind_Reverse_Range_Array_Attribute => 1593,
+ Iir_Kind_Attribute_Name => 1601
);
function Get_Fields (K : Iir_Kind) return Fields_Array
@@ -4062,6 +4080,12 @@ package body Nodes_Meta is
begin
pragma Assert (Fields_Type (F) = Type_Boolean);
case F is
+ when Field_Has_Signed =>
+ return Get_Has_Signed (N);
+ when Field_Has_Sign =>
+ return Get_Has_Sign (N);
+ when Field_Has_Length =>
+ return Get_Has_Length (N);
when Field_Whole_Association_Flag =>
return Get_Whole_Association_Flag (N);
when Field_Collapse_Signal_Flag =>
@@ -4158,6 +4182,12 @@ package body Nodes_Meta is
begin
pragma Assert (Fields_Type (F) = Type_Boolean);
case F is
+ when Field_Has_Signed =>
+ Set_Has_Signed (N, V);
+ when Field_Has_Sign =>
+ Set_Has_Sign (N, V);
+ when Field_Has_Length =>
+ Set_Has_Length (N, V);
when Field_Whole_Association_Flag =>
Set_Whole_Association_Flag (N, V);
when Field_Collapse_Signal_Flag =>
@@ -5924,6 +5954,21 @@ package body Nodes_Meta is
return K = Iir_Kind_String_Literal8;
end Has_Bit_String_Base;
+ function Has_Has_Signed (K : Iir_Kind) return Boolean is
+ begin
+ return K = Iir_Kind_String_Literal8;
+ end Has_Has_Signed;
+
+ function Has_Has_Sign (K : Iir_Kind) return Boolean is
+ begin
+ return K = Iir_Kind_String_Literal8;
+ end Has_Has_Sign;
+
+ function Has_Has_Length (K : Iir_Kind) return Boolean is
+ begin
+ return K = Iir_Kind_String_Literal8;
+ end Has_Has_Length;
+
function Has_Literal_Origin (K : Iir_Kind) return Boolean is
begin
case K is