]> oss.titaniummirror.com Git - nesc.git/blobdiff - src/AST_types.h
Pristine nesc-1.3.2
[nesc.git] / src / AST_types.h
index 6e0c7c0d407f9f9c7eaa6527815bf1abf99e8f13..030b51afb3cb5c9111ea8eace5cc089a46e859f3 100644 (file)
@@ -158,9 +158,10 @@ typedef struct AST_connection *rp_connection;
 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,
@@ -168,11 +169,11 @@ typedef enum {
   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,
@@ -193,8 +194,8 @@ typedef enum {
   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,
@@ -202,31 +203,31 @@ typedef enum {
   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,
@@ -291,42 +292,42 @@ typedef enum {
   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,
@@ -335,16 +336,16 @@ typedef enum {
   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,
@@ -353,18 +354,18 @@ typedef enum {
   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,
@@ -469,10 +470,12 @@ typedef enum {
   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 */
@@ -639,6 +642,7 @@ extern type_t AST_typeof[]; /* 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;