From 4d285e65d71ece770de8d21b506e37b874ee0850 Mon Sep 17 00:00:00 2001 From: Tristan Gingold Date: Tue, 30 Dec 2014 08:56:04 +0100 Subject: vhdl 2008: handle sized bit strings. --- src/vhdl/nodes_meta.adb | 503 ++++++++++++++++++++++++++---------------------- 1 file changed, 274 insertions(+), 229 deletions(-) (limited to 'src/vhdl/nodes_meta.adb') 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 -- cgit