comparison src/specifier.h @ 185:3d6bfa290dbd r20-3b19

Import from CVS: tag r20-3b19
author cvs
date Mon, 13 Aug 2007 09:55:28 +0200
parents 9f59509498e1
children c5d627a313b1
comparison
equal deleted inserted replaced
184:bcd2674570bf 185:3d6bfa290dbd
150 SPECMETH (MTspecmeth_or_given, m, args) : (given) \ 150 SPECMETH (MTspecmeth_or_given, m, args) : (given) \
151 MAC_END 151 MAC_END
152 152
153 /***** Defining new specifier types *****/ 153 /***** Defining new specifier types *****/
154 154
155 #define DECLARE_SPECIFIER_TYPE(type) \ 155 #define DECLARE_SPECIFIER_TYPE(type) \
156 extern struct specifier_methods * type##_specifier_methods 156 extern struct specifier_methods * type##_specifier_methods
157 157
158 #define DEFINE_SPECIFIER_TYPE(type) \ 158 #define DEFINE_SPECIFIER_TYPE(type) \
159 struct specifier_methods * type##_specifier_methods 159 struct specifier_methods * type##_specifier_methods
160 160
161 #define INITIALIZE_SPECIFIER_TYPE(type, obj_name, pred_sym) \ 161 #define INITIALIZE_SPECIFIER_TYPE(type, obj_name, pred_sym) do { \
162 do { \ 162 type##_specifier_methods = xnew_and_zero (struct specifier_methods); \
163 type##_specifier_methods = \ 163 type##_specifier_methods->name = obj_name; \
164 malloc_type_and_zero (struct specifier_methods); \ 164 defsymbol (&type##_specifier_methods->predicate_symbol, pred_sym); \
165 type##_specifier_methods->name = obj_name; \ 165 add_entry_to_specifier_type_list (Q##type, type##_specifier_methods); \
166 defsymbol (&type##_specifier_methods->predicate_symbol, \ 166 } while (0) \
167 pred_sym); \
168 add_entry_to_specifier_type_list (Q##type, \
169 type##_specifier_methods); \
170 } while (0) \
171 167
172 #define INITIALIZE_SPECIFIER_TYPE_WITH_DATA(type, obj_name, pred_sym) \ 168 #define INITIALIZE_SPECIFIER_TYPE_WITH_DATA(type, obj_name, pred_sym) \
173 do { \ 169 do { \
174 INITIALIZE_SPECIFIER_TYPE (type, obj_name, pred_sym); \ 170 INITIALIZE_SPECIFIER_TYPE (type, obj_name, pred_sym); \
175 type##_specifier_methods->extra_data_size = \ 171 type##_specifier_methods->extra_data_size = \