Mercurial > hg > xemacs-beta
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 = \ |