typedef struct AST_connection *eq_connection;
typedef struct AST_struct_ref *nx_struct_ref;
typedef struct AST_union_ref *nx_union_ref;
+typedef struct AST_gcc_attribute *target_attribute;
typedef enum {
kind_node = 42,
- postkind_node = 198,
+ postkind_node = 199,
kind_declaration = 43,
postkind_declaration = 64,
kind_statement = 65,
kind_expression = 84,
postkind_expression = 156,
kind_type_element = 157,
- postkind_type_element = 173,
- kind_declarator = 174,
- postkind_declarator = 182,
- kind_label = 183,
- postkind_label = 186,
+ postkind_type_element = 174,
+ kind_declarator = 175,
+ postkind_declarator = 183,
+ kind_label = 184,
+ postkind_label = 187,
kind_asm_decl = 44,
postkind_asm_decl = 44,
kind_data_decl = 45,
postkind_variable_decl = 52,
kind_field_decl = 53,
postkind_field_decl = 53,
- kind_asttype = 187,
- postkind_asttype = 187,
+ kind_asttype = 188,
+ postkind_asttype = 188,
kind_typename = 158,
postkind_typename = 159,
kind_typeof_expr = 160,
kind_typeof_type = 161,
postkind_typeof_type = 161,
kind_attribute = 162,
- postkind_attribute = 164,
+ postkind_attribute = 165,
kind_gcc_attribute = 163,
- postkind_gcc_attribute = 163,
- kind_rid = 165,
- postkind_rid = 165,
- kind_qualifier = 166,
- postkind_qualifier = 166,
- kind_tag_ref = 167,
- postkind_tag_ref = 173,
- kind_struct_ref = 168,
- postkind_struct_ref = 169,
- kind_union_ref = 170,
- postkind_union_ref = 171,
- kind_nested_declarator = 175,
- postkind_nested_declarator = 180,
- kind_function_declarator = 176,
- postkind_function_declarator = 176,
- kind_pointer_declarator = 177,
- postkind_pointer_declarator = 177,
- kind_qualified_declarator = 178,
- postkind_qualified_declarator = 178,
- kind_array_declarator = 179,
- postkind_array_declarator = 179,
- kind_identifier_declarator = 181,
- postkind_identifier_declarator = 181,
+ postkind_gcc_attribute = 164,
+ kind_rid = 166,
+ postkind_rid = 166,
+ kind_qualifier = 167,
+ postkind_qualifier = 167,
+ kind_tag_ref = 168,
+ postkind_tag_ref = 174,
+ kind_struct_ref = 169,
+ postkind_struct_ref = 170,
+ kind_union_ref = 171,
+ postkind_union_ref = 172,
+ kind_nested_declarator = 176,
+ postkind_nested_declarator = 181,
+ kind_function_declarator = 177,
+ postkind_function_declarator = 177,
+ kind_pointer_declarator = 178,
+ postkind_pointer_declarator = 178,
+ kind_qualified_declarator = 179,
+ postkind_qualified_declarator = 179,
+ kind_array_declarator = 180,
+ postkind_array_declarator = 180,
+ kind_identifier_declarator = 182,
+ postkind_identifier_declarator = 182,
kind_asm_stmt = 66,
postkind_asm_stmt = 66,
kind_compound_stmt = 67,
postkind_init_list = 149,
kind_init_specific = 150,
postkind_init_specific = 150,
- kind_designator = 188,
- postkind_designator = 190,
- kind_designate_field = 189,
- postkind_designate_field = 189,
- kind_designate_index = 190,
- postkind_designate_index = 190,
+ kind_designator = 189,
+ postkind_designator = 191,
+ kind_designate_field = 190,
+ postkind_designate_field = 190,
+ kind_designate_index = 191,
+ postkind_designate_index = 191,
kind_lexical_cst = 151,
postkind_lexical_cst = 152,
kind_string_cst = 152,
postkind_string_cst = 152,
kind_string = 153,
postkind_string = 153,
- kind_id_label = 184,
- postkind_id_label = 184,
- kind_case_label = 185,
- postkind_case_label = 185,
- kind_default_label = 186,
- postkind_default_label = 186,
- kind_word = 191,
- postkind_word = 191,
- kind_asm_operand = 192,
- postkind_asm_operand = 192,
+ kind_id_label = 185,
+ postkind_id_label = 185,
+ kind_case_label = 186,
+ postkind_case_label = 186,
+ kind_default_label = 187,
+ postkind_default_label = 187,
+ kind_word = 192,
+ postkind_word = 192,
+ kind_asm_operand = 193,
+ postkind_asm_operand = 193,
kind_nesc_decl = 54,
postkind_nesc_decl = 56,
kind_interface = 55,
postkind_interface = 55,
kind_component = 56,
postkind_component = 56,
- kind_implementation = 193,
- postkind_implementation = 196,
- kind_configuration = 194,
- postkind_configuration = 194,
- kind_module = 195,
- postkind_module = 195,
- kind_binary_component = 196,
- postkind_binary_component = 196,
+ kind_implementation = 194,
+ postkind_implementation = 197,
+ kind_configuration = 195,
+ postkind_configuration = 195,
+ kind_module = 196,
+ postkind_module = 196,
+ kind_binary_component = 197,
+ postkind_binary_component = 197,
kind_rp_interface = 57,
postkind_rp_interface = 57,
kind_interface_ref = 58,
postkind_component_ref = 59,
kind_connection = 60,
postkind_connection = 62,
- kind_endpoint = 197,
- postkind_endpoint = 197,
- kind_parameterised_identifier = 198,
- postkind_parameterised_identifier = 198,
- kind_generic_declarator = 182,
- postkind_generic_declarator = 182,
+ kind_endpoint = 198,
+ postkind_endpoint = 198,
+ kind_parameterised_identifier = 199,
+ postkind_parameterised_identifier = 199,
+ kind_generic_declarator = 183,
+ postkind_generic_declarator = 183,
kind_generic_call = 154,
postkind_generic_call = 154,
- kind_interface_ref_declarator = 180,
- postkind_interface_ref_declarator = 180,
+ kind_interface_ref_declarator = 181,
+ postkind_interface_ref_declarator = 181,
kind_interface_deref = 93,
postkind_interface_deref = 93,
kind_component_deref = 94,
postkind_component_typeref = 159,
kind_atomic_stmt = 82,
postkind_atomic_stmt = 82,
- kind_nesc_attribute = 164,
- postkind_nesc_attribute = 164,
+ kind_nesc_attribute = 165,
+ postkind_nesc_attribute = 165,
kind_type_parm_decl = 63,
postkind_type_parm_decl = 63,
kind_type_argument = 155,
postkind_type_argument = 155,
kind_error_decl = 64,
postkind_error_decl = 64,
- kind_attribute_ref = 172,
- postkind_attribute_ref = 172,
- kind_enum_ref = 173,
- postkind_enum_ref = 173,
+ kind_attribute_ref = 173,
+ postkind_attribute_ref = 173,
+ kind_enum_ref = 174,
+ postkind_enum_ref = 174,
kind_error_stmt = 83,
postkind_error_stmt = 83,
kind_while_stmt = 73,
postkind_rp_connection = 61,
kind_eq_connection = 62,
postkind_eq_connection = 62,
- kind_nx_struct_ref = 169,
- postkind_nx_struct_ref = 169,
- kind_nx_union_ref = 171,
- postkind_nx_union_ref = 171
+ kind_nx_struct_ref = 170,
+ postkind_nx_struct_ref = 170,
+ kind_nx_union_ref = 172,
+ postkind_nx_union_ref = 172,
+ kind_target_attribute = 164,
+ postkind_target_attribute = 164
} AST_kind;
extern AST_kind AST_parent_kind[]; /* indexed by kind - kind_node */
#define is_eq_connection(x) ((x)->kind >= kind_eq_connection && (x)->kind <= postkind_eq_connection)
#define is_nx_struct_ref(x) ((x)->kind >= kind_nx_struct_ref && (x)->kind <= postkind_nx_struct_ref)
#define is_nx_union_ref(x) ((x)->kind >= kind_nx_union_ref && (x)->kind <= postkind_nx_union_ref)
+#define is_target_attribute(x) ((x)->kind >= kind_target_attribute && (x)->kind <= postkind_target_attribute)
typedef struct
{
AST_kind kind;