Subversion Repositories tendra.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 7u83 1
/*
2
    		 Crown Copyright (c) 1997, 1998
3
 
4
    This TenDRA(r) Computer Program is subject to Copyright
5
    owned by the United Kingdom Secretary of State for Defence
6
    acting through the Defence Evaluation and Research Agency
7
    (DERA).  It is made available to Recipients with a
8
    royalty-free licence for its use, reproduction, transfer
9
    to other parties and amendment for any purpose not excluding
10
    product development provided that any such use et cetera
11
    shall be deemed to be acceptance of the following conditions:-
12
 
13
        (1) Its Recipients shall ensure that this Notice is
14
        reproduced upon any copies or amended versions of it;
15
 
16
        (2) Any amended version of it shall be clearly marked to
17
        show both the nature of and the organisation responsible
18
        for the relevant amendment or amendments;
19
 
20
        (3) Its onward transfer from a recipient to another
21
        party shall be deemed to be that party's acceptance of
22
        these conditions;
23
 
24
        (4) DERA gives no warranty or assurance as to its
25
        quality or suitability for any purpose and DERA accepts
26
        no liability whatsoever in relation to any use to which
27
        it may be put.
28
*/
29
 
30
/*
31
    AUTOMATICALLY GENERATED FROM ALGEBRA c_class (VERSION 1.1)
32
    BY calculus (VERSION 1.2)
33
*/
34
 
35
#ifndef TYPE_OPS_H_INCLUDED
36
#define TYPE_OPS_H_INCLUDED
37
 
38
/* Operations for union TYPE */
39
 
7 7u83 40
#define TAG_type(P)			(CHECK_NULL(P)->ag_tag)
2 7u83 41
 
42
 
43
/* Operations for component qual of union TYPE */
44
 
7 7u83 45
#define type_qual(P)			(CHECK_NULL(P) + 1)
2 7u83 46
 
47
 
48
/* Operations for component name of union TYPE */
49
 
7 7u83 50
#define type_name(P)			(CHECK_NULL(P) + 2)
2 7u83 51
 
52
 
53
/* Operations for field pre of union TYPE */
54
 
7 7u83 55
#define type_pre_tag			((unsigned)0)
56
#define IS_type_pre(P)			(CHECK_NULL(P)->ag_tag == 0)
2 7u83 57
 
7 7u83 58
#define type_pre_rep(P)			(CHECK_TAG((P), 0) + 3)
59
#define type_pre_nqual(P)		(CHECK_TAG((P), 0) + 4)
2 7u83 60
 
7 7u83 61
#define MAKE_type_pre(qual_, rep_, nqual_, c_class_type)\
2 7u83 62
    {\
7 7u83 63
	c_class *x226_ = GEN_c_class(5, TYPEID_type);\
64
	x226_->ag_tag = 0;\
65
	COPY_cv(x226_ + 1, (qual_));\
66
	COPY_id(x226_ + 2, NULL_id);\
67
	COPY_btype(x226_ + 3, (rep_));\
68
	COPY_qual(x226_ + 4, (nqual_));\
69
	(c_class_type) = x226_;\
2 7u83 70
    }
71
 
7 7u83 72
#define DECONS_type_pre(qual_, name_, rep_, nqual_, c_class_type)\
2 7u83 73
    {\
7 7u83 74
	c_class *x227_ = CHECK_TAG((c_class_type), 0);\
75
	(qual_) = DEREF_cv(x227_ + 1);\
76
	(name_) = DEREF_id(x227_ + 2);\
77
	(rep_) = DEREF_btype(x227_ + 3);\
78
	(nqual_) = DEREF_qual(x227_ + 4);\
2 7u83 79
    }
80
 
7 7u83 81
#define DESTROY_type_pre(destroyer_, qual_, name_, rep_, nqual_, c_class_type)\
2 7u83 82
    {\
7 7u83 83
	c_class *x228_ = CHECK_TAG((c_class_type), 0);\
84
	(qual_) = DEREF_cv(x228_ + 1);\
85
	(name_) = DEREF_id(x228_ + 2);\
86
	(rep_) = DEREF_btype(x228_ + 3);\
87
	(nqual_) = DEREF_qual(x228_ + 4);\
88
	(destroyer_)(x228_, (unsigned)5);\
2 7u83 89
    }
90
 
91
 
92
/* Operations for field integer of union TYPE */
93
 
7 7u83 94
#define type_integer_tag		((unsigned)1)
95
#define IS_type_integer(P)		(CHECK_NULL(P)->ag_tag == 1)
2 7u83 96
 
7 7u83 97
#define type_integer_rep(P)		(CHECK_TAG((P), 1) + 3)
98
#define type_integer_sem(P)		(CHECK_TAG((P), 1) + 4)
2 7u83 99
 
7 7u83 100
#define MAKE_type_integer(qual_, rep_, sem_, c_class_type)\
2 7u83 101
    {\
7 7u83 102
	c_class *x229_ = GEN_c_class(5, TYPEID_type);\
103
	x229_->ag_tag = 1;\
104
	COPY_cv(x229_ + 1, (qual_));\
105
	COPY_id(x229_ + 2, NULL_id);\
106
	COPY_itype(x229_ + 3, (rep_));\
107
	COPY_itype(x229_ + 4, (sem_));\
108
	(c_class_type) = x229_;\
2 7u83 109
    }
110
 
7 7u83 111
#define DECONS_type_integer(qual_, name_, rep_, sem_, c_class_type)\
2 7u83 112
    {\
7 7u83 113
	c_class *x230_ = CHECK_TAG((c_class_type), 1);\
114
	(qual_) = DEREF_cv(x230_ + 1);\
115
	(name_) = DEREF_id(x230_ + 2);\
116
	(rep_) = DEREF_itype(x230_ + 3);\
117
	(sem_) = DEREF_itype(x230_ + 4);\
2 7u83 118
    }
119
 
7 7u83 120
#define DESTROY_type_integer(destroyer_, qual_, name_, rep_, sem_, c_class_type)\
2 7u83 121
    {\
7 7u83 122
	c_class *x231_ = CHECK_TAG((c_class_type), 1);\
123
	(qual_) = DEREF_cv(x231_ + 1);\
124
	(name_) = DEREF_id(x231_ + 2);\
125
	(rep_) = DEREF_itype(x231_ + 3);\
126
	(sem_) = DEREF_itype(x231_ + 4);\
127
	(destroyer_)(x231_, (unsigned)5);\
2 7u83 128
    }
129
 
130
 
131
/* Operations for field floating of union TYPE */
132
 
7 7u83 133
#define type_floating_tag		((unsigned)2)
134
#define IS_type_floating(P)		(CHECK_NULL(P)->ag_tag == 2)
2 7u83 135
 
7 7u83 136
#define type_floating_rep(P)		(CHECK_TAG((P), 2) + 3)
137
#define type_floating_sem(P)		(CHECK_TAG((P), 2) + 4)
2 7u83 138
 
7 7u83 139
#define MAKE_type_floating(qual_, rep_, sem_, c_class_type)\
2 7u83 140
    {\
7 7u83 141
	c_class *x232_ = GEN_c_class(5, TYPEID_type);\
142
	x232_->ag_tag = 2;\
143
	COPY_cv(x232_ + 1, (qual_));\
144
	COPY_id(x232_ + 2, NULL_id);\
145
	COPY_ftype(x232_ + 3, (rep_));\
146
	COPY_ftype(x232_ + 4, (sem_));\
147
	(c_class_type) = x232_;\
2 7u83 148
    }
149
 
7 7u83 150
#define DECONS_type_floating(qual_, name_, rep_, sem_, c_class_type)\
2 7u83 151
    {\
7 7u83 152
	c_class *x233_ = CHECK_TAG((c_class_type), 2);\
153
	(qual_) = DEREF_cv(x233_ + 1);\
154
	(name_) = DEREF_id(x233_ + 2);\
155
	(rep_) = DEREF_ftype(x233_ + 3);\
156
	(sem_) = DEREF_ftype(x233_ + 4);\
2 7u83 157
    }
158
 
7 7u83 159
#define DESTROY_type_floating(destroyer_, qual_, name_, rep_, sem_, c_class_type)\
2 7u83 160
    {\
7 7u83 161
	c_class *x234_ = CHECK_TAG((c_class_type), 2);\
162
	(qual_) = DEREF_cv(x234_ + 1);\
163
	(name_) = DEREF_id(x234_ + 2);\
164
	(rep_) = DEREF_ftype(x234_ + 3);\
165
	(sem_) = DEREF_ftype(x234_ + 4);\
166
	(destroyer_)(x234_, (unsigned)5);\
2 7u83 167
    }
168
 
169
 
170
/* Operations for field set top_etc of union TYPE */
171
 
7 7u83 172
#define type_top_etc_tag		((unsigned)5)
173
#define IS_type_top_etc(P)		((unsigned)(CHECK_NULL(P)->ag_tag - 3) < (unsigned)2)
2 7u83 174
 
175
 
7 7u83 176
#define MAKE_type_top_etc(tag, qual_, c_class_type)\
2 7u83 177
    {\
7 7u83 178
	c_class *x235_ = GEN_c_class(3, TYPEID_type);\
179
	x235_->ag_tag = (tag);\
180
	COPY_cv(x235_ + 1, (qual_));\
181
	COPY_id(x235_ + 2, NULL_id);\
182
	(c_class_type) = CHECK_TAG_ETC(x235_, 3, 5);\
2 7u83 183
    }
184
 
7 7u83 185
#define MODIFY_type_top_etc(tag, c_class_type)\
2 7u83 186
    {\
7 7u83 187
	c_class *x236_ = CHECK_TAG_ETC ((c_class_type), 3, 5);\
188
	x236_->ag_tag = (tag);\
189
	(void) CHECK_TAG_ETC (x236_, 3, 5);\
2 7u83 190
    }
191
 
7 7u83 192
#define DECONS_type_top_etc(qual_, name_, c_class_type)\
2 7u83 193
    {\
7 7u83 194
	c_class *x237_ = CHECK_TAG_ETC((c_class_type), 3, 5);\
195
	(qual_) = DEREF_cv(x237_ + 1);\
196
	(name_) = DEREF_id(x237_ + 2);\
2 7u83 197
    }
198
 
7 7u83 199
#define DESTROY_type_top_etc(destroyer_, qual_, name_, c_class_type)\
2 7u83 200
    {\
7 7u83 201
	c_class *x238_ = CHECK_TAG_ETC((c_class_type), 3, 5);\
202
	(qual_) = DEREF_cv(x238_ + 1);\
203
	(name_) = DEREF_id(x238_ + 2);\
204
	(destroyer_)(x238_, (unsigned)3);\
2 7u83 205
    }
206
 
207
 
208
/* Operations for field top of union TYPE */
209
 
7 7u83 210
#define type_top_tag			((unsigned)3)
211
#define IS_type_top(P)			(CHECK_NULL(P)->ag_tag == 3)
2 7u83 212
 
213
 
7 7u83 214
#define MAKE_type_top(qual_, c_class_type)\
2 7u83 215
    {\
7 7u83 216
	c_class *x239_ = GEN_c_class(3, TYPEID_type);\
217
	x239_->ag_tag = 3;\
218
	COPY_cv(x239_ + 1, (qual_));\
219
	COPY_id(x239_ + 2, NULL_id);\
220
	(c_class_type) = x239_;\
2 7u83 221
    }
222
 
7 7u83 223
#define DECONS_type_top(qual_, name_, c_class_type)\
2 7u83 224
    {\
7 7u83 225
	c_class *x240_ = CHECK_TAG((c_class_type), 3);\
226
	(qual_) = DEREF_cv(x240_ + 1);\
227
	(name_) = DEREF_id(x240_ + 2);\
2 7u83 228
    }
229
 
7 7u83 230
#define DESTROY_type_top(destroyer_, qual_, name_, c_class_type)\
2 7u83 231
    {\
7 7u83 232
	c_class *x241_ = CHECK_TAG((c_class_type), 3);\
233
	(qual_) = DEREF_cv(x241_ + 1);\
234
	(name_) = DEREF_id(x241_ + 2);\
235
	(destroyer_)(x241_, (unsigned)3);\
2 7u83 236
    }
237
 
238
 
239
/* Operations for field bottom of union TYPE */
240
 
7 7u83 241
#define type_bottom_tag			((unsigned)4)
242
#define IS_type_bottom(P)		(CHECK_NULL(P)->ag_tag == 4)
2 7u83 243
 
244
 
7 7u83 245
#define MAKE_type_bottom(qual_, c_class_type)\
2 7u83 246
    {\
7 7u83 247
	c_class *x242_ = GEN_c_class(3, TYPEID_type);\
248
	x242_->ag_tag = 4;\
249
	COPY_cv(x242_ + 1, (qual_));\
250
	COPY_id(x242_ + 2, NULL_id);\
251
	(c_class_type) = x242_;\
2 7u83 252
    }
253
 
7 7u83 254
#define DECONS_type_bottom(qual_, name_, c_class_type)\
2 7u83 255
    {\
7 7u83 256
	c_class *x243_ = CHECK_TAG((c_class_type), 4);\
257
	(qual_) = DEREF_cv(x243_ + 1);\
258
	(name_) = DEREF_id(x243_ + 2);\
2 7u83 259
    }
260
 
7 7u83 261
#define DESTROY_type_bottom(destroyer_, qual_, name_, c_class_type)\
2 7u83 262
    {\
7 7u83 263
	c_class *x244_ = CHECK_TAG((c_class_type), 4);\
264
	(qual_) = DEREF_cv(x244_ + 1);\
265
	(name_) = DEREF_id(x244_ + 2);\
266
	(destroyer_)(x244_, (unsigned)3);\
2 7u83 267
    }
268
 
269
 
270
/* Operations for field set ptr_etc of union TYPE */
271
 
7 7u83 272
#define type_ptr_etc_tag		((unsigned)7)
273
#define IS_type_ptr_etc(P)		((unsigned)(CHECK_NULL(P)->ag_tag - 5) < (unsigned)2)
2 7u83 274
 
7 7u83 275
#define type_ptr_etc_sub(P)		(CHECK_TAG_ETC((P), 5, 7) + 3)
2 7u83 276
 
7 7u83 277
#define MAKE_type_ptr_etc(tag, qual_, sub_, c_class_type)\
2 7u83 278
    {\
7 7u83 279
	c_class *x245_ = GEN_c_class(4, TYPEID_type);\
280
	x245_->ag_tag = (tag);\
281
	COPY_cv(x245_ + 1, (qual_));\
282
	COPY_id(x245_ + 2, NULL_id);\
283
	COPY_type(x245_ + 3, (sub_));\
284
	(c_class_type) = CHECK_TAG_ETC(x245_, 5, 7);\
2 7u83 285
    }
286
 
7 7u83 287
#define MODIFY_type_ptr_etc(tag, c_class_type)\
2 7u83 288
    {\
7 7u83 289
	c_class *x246_ = CHECK_TAG_ETC ((c_class_type), 5, 7);\
290
	x246_->ag_tag = (tag);\
291
	(void) CHECK_TAG_ETC (x246_, 5, 7);\
2 7u83 292
    }
293
 
7 7u83 294
#define DECONS_type_ptr_etc(qual_, name_, sub_, c_class_type)\
2 7u83 295
    {\
7 7u83 296
	c_class *x247_ = CHECK_TAG_ETC((c_class_type), 5, 7);\
297
	(qual_) = DEREF_cv(x247_ + 1);\
298
	(name_) = DEREF_id(x247_ + 2);\
299
	(sub_) = DEREF_type(x247_ + 3);\
2 7u83 300
    }
301
 
7 7u83 302
#define DESTROY_type_ptr_etc(destroyer_, qual_, name_, sub_, c_class_type)\
2 7u83 303
    {\
7 7u83 304
	c_class *x248_ = CHECK_TAG_ETC((c_class_type), 5, 7);\
305
	(qual_) = DEREF_cv(x248_ + 1);\
306
	(name_) = DEREF_id(x248_ + 2);\
307
	(sub_) = DEREF_type(x248_ + 3);\
308
	(destroyer_)(x248_, (unsigned)4);\
2 7u83 309
    }
310
 
311
 
312
/* Operations for field ptr of union TYPE */
313
 
7 7u83 314
#define type_ptr_tag			((unsigned)5)
315
#define IS_type_ptr(P)			(CHECK_NULL(P)->ag_tag == 5)
2 7u83 316
 
7 7u83 317
#define type_ptr_sub(P)			(CHECK_TAG((P), 5) + 3)
2 7u83 318
 
7 7u83 319
#define MAKE_type_ptr(qual_, sub_, c_class_type)\
2 7u83 320
    {\
7 7u83 321
	c_class *x249_ = GEN_c_class(4, TYPEID_type);\
322
	x249_->ag_tag = 5;\
323
	COPY_cv(x249_ + 1, (qual_));\
324
	COPY_id(x249_ + 2, NULL_id);\
325
	COPY_type(x249_ + 3, (sub_));\
326
	(c_class_type) = x249_;\
2 7u83 327
    }
328
 
7 7u83 329
#define DECONS_type_ptr(qual_, name_, sub_, c_class_type)\
2 7u83 330
    {\
7 7u83 331
	c_class *x250_ = CHECK_TAG((c_class_type), 5);\
332
	(qual_) = DEREF_cv(x250_ + 1);\
333
	(name_) = DEREF_id(x250_ + 2);\
334
	(sub_) = DEREF_type(x250_ + 3);\
2 7u83 335
    }
336
 
7 7u83 337
#define DESTROY_type_ptr(destroyer_, qual_, name_, sub_, c_class_type)\
2 7u83 338
    {\
7 7u83 339
	c_class *x251_ = CHECK_TAG((c_class_type), 5);\
340
	(qual_) = DEREF_cv(x251_ + 1);\
341
	(name_) = DEREF_id(x251_ + 2);\
342
	(sub_) = DEREF_type(x251_ + 3);\
343
	(destroyer_)(x251_, (unsigned)4);\
2 7u83 344
    }
345
 
346
 
347
/* Operations for field ref of union TYPE */
348
 
7 7u83 349
#define type_ref_tag			((unsigned)6)
350
#define IS_type_ref(P)			(CHECK_NULL(P)->ag_tag == 6)
2 7u83 351
 
7 7u83 352
#define type_ref_sub(P)			(CHECK_TAG((P), 6) + 3)
2 7u83 353
 
7 7u83 354
#define MAKE_type_ref(qual_, sub_, c_class_type)\
2 7u83 355
    {\
7 7u83 356
	c_class *x252_ = GEN_c_class(4, TYPEID_type);\
357
	x252_->ag_tag = 6;\
358
	COPY_cv(x252_ + 1, (qual_));\
359
	COPY_id(x252_ + 2, NULL_id);\
360
	COPY_type(x252_ + 3, (sub_));\
361
	(c_class_type) = x252_;\
2 7u83 362
    }
363
 
7 7u83 364
#define DECONS_type_ref(qual_, name_, sub_, c_class_type)\
2 7u83 365
    {\
7 7u83 366
	c_class *x253_ = CHECK_TAG((c_class_type), 6);\
367
	(qual_) = DEREF_cv(x253_ + 1);\
368
	(name_) = DEREF_id(x253_ + 2);\
369
	(sub_) = DEREF_type(x253_ + 3);\
2 7u83 370
    }
371
 
7 7u83 372
#define DESTROY_type_ref(destroyer_, qual_, name_, sub_, c_class_type)\
2 7u83 373
    {\
7 7u83 374
	c_class *x254_ = CHECK_TAG((c_class_type), 6);\
375
	(qual_) = DEREF_cv(x254_ + 1);\
376
	(name_) = DEREF_id(x254_ + 2);\
377
	(sub_) = DEREF_type(x254_ + 3);\
378
	(destroyer_)(x254_, (unsigned)4);\
2 7u83 379
    }
380
 
381
 
382
/* Operations for field ptr_mem of union TYPE */
383
 
7 7u83 384
#define type_ptr_mem_tag		((unsigned)7)
385
#define IS_type_ptr_mem(P)		(CHECK_NULL(P)->ag_tag == 7)
2 7u83 386
 
7 7u83 387
#define type_ptr_mem_of(P)		(CHECK_TAG((P), 7) + 3)
388
#define type_ptr_mem_sub(P)		(CHECK_TAG((P), 7) + 4)
2 7u83 389
 
7 7u83 390
#define MAKE_type_ptr_mem(qual_, of_, sub_, c_class_type)\
2 7u83 391
    {\
7 7u83 392
	c_class *x255_ = GEN_c_class(5, TYPEID_type);\
393
	x255_->ag_tag = 7;\
394
	COPY_cv(x255_ + 1, (qual_));\
395
	COPY_id(x255_ + 2, NULL_id);\
396
	COPY_ctype(x255_ + 3, (of_));\
397
	COPY_type(x255_ + 4, (sub_));\
398
	(c_class_type) = x255_;\
2 7u83 399
    }
400
 
7 7u83 401
#define DECONS_type_ptr_mem(qual_, name_, of_, sub_, c_class_type)\
2 7u83 402
    {\
7 7u83 403
	c_class *x256_ = CHECK_TAG((c_class_type), 7);\
404
	(qual_) = DEREF_cv(x256_ + 1);\
405
	(name_) = DEREF_id(x256_ + 2);\
406
	(of_) = DEREF_ctype(x256_ + 3);\
407
	(sub_) = DEREF_type(x256_ + 4);\
2 7u83 408
    }
409
 
7 7u83 410
#define DESTROY_type_ptr_mem(destroyer_, qual_, name_, of_, sub_, c_class_type)\
2 7u83 411
    {\
7 7u83 412
	c_class *x257_ = CHECK_TAG((c_class_type), 7);\
413
	(qual_) = DEREF_cv(x257_ + 1);\
414
	(name_) = DEREF_id(x257_ + 2);\
415
	(of_) = DEREF_ctype(x257_ + 3);\
416
	(sub_) = DEREF_type(x257_ + 4);\
417
	(destroyer_)(x257_, (unsigned)5);\
2 7u83 418
    }
419
 
420
 
421
/* Operations for field func of union TYPE */
422
 
7 7u83 423
#define type_func_tag			((unsigned)8)
424
#define IS_type_func(P)			(CHECK_NULL(P)->ag_tag == 8)
2 7u83 425
 
7 7u83 426
#define type_func_ret(P)		(CHECK_TAG((P), 8) + 3)
427
#define type_func_ptypes(P)		(CHECK_TAG((P), 8) + 4)
428
#define type_func_ellipsis(P)		(CHECK_TAG((P), 8) + 5)
429
#define type_func_mqual(P)		(CHECK_TAG((P), 8) + 6)
430
#define type_func_mtypes(P)		(CHECK_TAG((P), 8) + 7)
431
#define type_func_pars(P)		(CHECK_TAG((P), 8) + 8)
432
#define type_func_pids(P)		(CHECK_TAG((P), 8) + 9)
433
#define type_func_except(P)		(CHECK_TAG((P), 8) + 10)
2 7u83 434
 
7 7u83 435
#define MAKE_type_func(qual_, ret_, ptypes_, ellipsis_, mqual_, mtypes_, pars_, pids_, except_, c_class_type)\
2 7u83 436
    {\
7 7u83 437
	c_class *x258_ = GEN_c_class(11, TYPEID_type);\
438
	x258_->ag_tag = 8;\
439
	COPY_cv(x258_ + 1, (qual_));\
440
	COPY_id(x258_ + 2, NULL_id);\
441
	COPY_type(x258_ + 3, (ret_));\
442
	COPY_list(x258_ + 4, (ptypes_));\
443
	COPY_int(x258_ + 5, (ellipsis_));\
444
	COPY_cv(x258_ + 6, (mqual_));\
445
	COPY_list(x258_ + 7, (mtypes_));\
446
	COPY_nspace(x258_ + 8, (pars_));\
447
	COPY_list(x258_ + 9, (pids_));\
448
	COPY_list(x258_ + 10, (except_));\
449
	(c_class_type) = x258_;\
2 7u83 450
    }
451
 
7 7u83 452
#define DECONS_type_func(qual_, name_, ret_, ptypes_, ellipsis_, mqual_, mtypes_, pars_, pids_, except_, c_class_type)\
2 7u83 453
    {\
7 7u83 454
	c_class *x259_ = CHECK_TAG((c_class_type), 8);\
455
	(qual_) = DEREF_cv(x259_ + 1);\
456
	(name_) = DEREF_id(x259_ + 2);\
457
	(ret_) = DEREF_type(x259_ + 3);\
458
	(ptypes_) = DEREF_list(x259_ + 4);\
459
	(ellipsis_) = DEREF_int(x259_ + 5);\
460
	(mqual_) = DEREF_cv(x259_ + 6);\
461
	(mtypes_) = DEREF_list(x259_ + 7);\
462
	(pars_) = DEREF_nspace(x259_ + 8);\
463
	(pids_) = DEREF_list(x259_ + 9);\
464
	(except_) = DEREF_list(x259_ + 10);\
2 7u83 465
    }
466
 
7 7u83 467
#define DESTROY_type_func(destroyer_, qual_, name_, ret_, ptypes_, ellipsis_, mqual_, mtypes_, pars_, pids_, except_, c_class_type)\
2 7u83 468
    {\
7 7u83 469
	c_class *x260_ = CHECK_TAG((c_class_type), 8);\
470
	(qual_) = DEREF_cv(x260_ + 1);\
471
	(name_) = DEREF_id(x260_ + 2);\
472
	(ret_) = DEREF_type(x260_ + 3);\
473
	(ptypes_) = DEREF_list(x260_ + 4);\
474
	(ellipsis_) = DEREF_int(x260_ + 5);\
475
	(mqual_) = DEREF_cv(x260_ + 6);\
476
	(mtypes_) = DEREF_list(x260_ + 7);\
477
	(pars_) = DEREF_nspace(x260_ + 8);\
478
	(pids_) = DEREF_list(x260_ + 9);\
479
	(except_) = DEREF_list(x260_ + 10);\
480
	(destroyer_)(x260_, (unsigned)11);\
2 7u83 481
    }
482
 
483
 
484
/* Operations for field array of union TYPE */
485
 
7 7u83 486
#define type_array_tag			((unsigned)9)
487
#define IS_type_array(P)		(CHECK_NULL(P)->ag_tag == 9)
2 7u83 488
 
7 7u83 489
#define type_array_sub(P)		(CHECK_TAG((P), 9) + 3)
490
#define type_array_size(P)		(CHECK_TAG((P), 9) + 4)
2 7u83 491
 
7 7u83 492
#define MAKE_type_array(qual_, sub_, size_, c_class_type)\
2 7u83 493
    {\
7 7u83 494
	c_class *x261_ = GEN_c_class(5, TYPEID_type);\
495
	x261_->ag_tag = 9;\
496
	COPY_cv(x261_ + 1, (qual_));\
497
	COPY_id(x261_ + 2, NULL_id);\
498
	COPY_type(x261_ + 3, (sub_));\
499
	COPY_nat(x261_ + 4, (size_));\
500
	(c_class_type) = x261_;\
2 7u83 501
    }
502
 
7 7u83 503
#define DECONS_type_array(qual_, name_, sub_, size_, c_class_type)\
2 7u83 504
    {\
7 7u83 505
	c_class *x262_ = CHECK_TAG((c_class_type), 9);\
506
	(qual_) = DEREF_cv(x262_ + 1);\
507
	(name_) = DEREF_id(x262_ + 2);\
508
	(sub_) = DEREF_type(x262_ + 3);\
509
	(size_) = DEREF_nat(x262_ + 4);\
2 7u83 510
    }
511
 
7 7u83 512
#define DESTROY_type_array(destroyer_, qual_, name_, sub_, size_, c_class_type)\
2 7u83 513
    {\
7 7u83 514
	c_class *x263_ = CHECK_TAG((c_class_type), 9);\
515
	(qual_) = DEREF_cv(x263_ + 1);\
516
	(name_) = DEREF_id(x263_ + 2);\
517
	(sub_) = DEREF_type(x263_ + 3);\
518
	(size_) = DEREF_nat(x263_ + 4);\
519
	(destroyer_)(x263_, (unsigned)5);\
2 7u83 520
    }
521
 
522
 
523
/* Operations for field bitfield of union TYPE */
524
 
7 7u83 525
#define type_bitfield_tag		((unsigned)10)
526
#define IS_type_bitfield(P)		(CHECK_NULL(P)->ag_tag == 10)
2 7u83 527
 
7 7u83 528
#define type_bitfield_defn(P)		(CHECK_TAG((P), 10) + 3)
2 7u83 529
 
7 7u83 530
#define MAKE_type_bitfield(qual_, defn_, c_class_type)\
2 7u83 531
    {\
7 7u83 532
	c_class *x264_ = GEN_c_class(4, TYPEID_type);\
533
	x264_->ag_tag = 10;\
534
	COPY_cv(x264_ + 1, (qual_));\
535
	COPY_id(x264_ + 2, NULL_id);\
536
	COPY_itype(x264_ + 3, (defn_));\
537
	(c_class_type) = x264_;\
2 7u83 538
    }
539
 
7 7u83 540
#define DECONS_type_bitfield(qual_, name_, defn_, c_class_type)\
2 7u83 541
    {\
7 7u83 542
	c_class *x265_ = CHECK_TAG((c_class_type), 10);\
543
	(qual_) = DEREF_cv(x265_ + 1);\
544
	(name_) = DEREF_id(x265_ + 2);\
545
	(defn_) = DEREF_itype(x265_ + 3);\
2 7u83 546
    }
547
 
7 7u83 548
#define DESTROY_type_bitfield(destroyer_, qual_, name_, defn_, c_class_type)\
2 7u83 549
    {\
7 7u83 550
	c_class *x266_ = CHECK_TAG((c_class_type), 10);\
551
	(qual_) = DEREF_cv(x266_ + 1);\
552
	(name_) = DEREF_id(x266_ + 2);\
553
	(defn_) = DEREF_itype(x266_ + 3);\
554
	(destroyer_)(x266_, (unsigned)4);\
2 7u83 555
    }
556
 
557
 
558
/* Operations for field compound of union TYPE */
559
 
7 7u83 560
#define type_compound_tag		((unsigned)11)
561
#define IS_type_compound(P)		(CHECK_NULL(P)->ag_tag == 11)
2 7u83 562
 
7 7u83 563
#define type_compound_defn(P)		(CHECK_TAG((P), 11) + 3)
2 7u83 564
 
7 7u83 565
#define MAKE_type_compound(qual_, defn_, c_class_type)\
2 7u83 566
    {\
7 7u83 567
	c_class *x267_ = GEN_c_class(4, TYPEID_type);\
568
	x267_->ag_tag = 11;\
569
	COPY_cv(x267_ + 1, (qual_));\
570
	COPY_id(x267_ + 2, NULL_id);\
571
	COPY_ctype(x267_ + 3, (defn_));\
572
	(c_class_type) = x267_;\
2 7u83 573
    }
574
 
7 7u83 575
#define DECONS_type_compound(qual_, name_, defn_, c_class_type)\
2 7u83 576
    {\
7 7u83 577
	c_class *x268_ = CHECK_TAG((c_class_type), 11);\
578
	(qual_) = DEREF_cv(x268_ + 1);\
579
	(name_) = DEREF_id(x268_ + 2);\
580
	(defn_) = DEREF_ctype(x268_ + 3);\
2 7u83 581
    }
582
 
7 7u83 583
#define DESTROY_type_compound(destroyer_, qual_, name_, defn_, c_class_type)\
2 7u83 584
    {\
7 7u83 585
	c_class *x269_ = CHECK_TAG((c_class_type), 11);\
586
	(qual_) = DEREF_cv(x269_ + 1);\
587
	(name_) = DEREF_id(x269_ + 2);\
588
	(defn_) = DEREF_ctype(x269_ + 3);\
589
	(destroyer_)(x269_, (unsigned)4);\
2 7u83 590
    }
591
 
592
 
593
/* Operations for field enumerate of union TYPE */
594
 
7 7u83 595
#define type_enumerate_tag		((unsigned)12)
596
#define IS_type_enumerate(P)		(CHECK_NULL(P)->ag_tag == 12)
2 7u83 597
 
7 7u83 598
#define type_enumerate_defn(P)		(CHECK_TAG((P), 12) + 3)
2 7u83 599
 
7 7u83 600
#define MAKE_type_enumerate(qual_, defn_, c_class_type)\
2 7u83 601
    {\
7 7u83 602
	c_class *x270_ = GEN_c_class(4, TYPEID_type);\
603
	x270_->ag_tag = 12;\
604
	COPY_cv(x270_ + 1, (qual_));\
605
	COPY_id(x270_ + 2, NULL_id);\
606
	COPY_etype(x270_ + 3, (defn_));\
607
	(c_class_type) = x270_;\
2 7u83 608
    }
609
 
7 7u83 610
#define DECONS_type_enumerate(qual_, name_, defn_, c_class_type)\
2 7u83 611
    {\
7 7u83 612
	c_class *x271_ = CHECK_TAG((c_class_type), 12);\
613
	(qual_) = DEREF_cv(x271_ + 1);\
614
	(name_) = DEREF_id(x271_ + 2);\
615
	(defn_) = DEREF_etype(x271_ + 3);\
2 7u83 616
    }
617
 
7 7u83 618
#define DESTROY_type_enumerate(destroyer_, qual_, name_, defn_, c_class_type)\
2 7u83 619
    {\
7 7u83 620
	c_class *x272_ = CHECK_TAG((c_class_type), 12);\
621
	(qual_) = DEREF_cv(x272_ + 1);\
622
	(name_) = DEREF_id(x272_ + 2);\
623
	(defn_) = DEREF_etype(x272_ + 3);\
624
	(destroyer_)(x272_, (unsigned)4);\
2 7u83 625
    }
626
 
627
 
628
/* Operations for field token of union TYPE */
629
 
7 7u83 630
#define type_token_tag			((unsigned)13)
631
#define IS_type_token(P)		(CHECK_NULL(P)->ag_tag == 13)
2 7u83 632
 
7 7u83 633
#define type_token_tok(P)		(CHECK_TAG((P), 13) + 3)
634
#define type_token_args(P)		(CHECK_TAG((P), 13) + 4)
635
#define type_token_app(P)		(CHECK_TAG((P), 13) + 5)
2 7u83 636
 
7 7u83 637
#define MAKE_type_token(qual_, tok_, args_, c_class_type)\
2 7u83 638
    {\
7 7u83 639
	c_class *x273_ = GEN_c_class(6, TYPEID_type);\
640
	x273_->ag_tag = 13;\
641
	COPY_cv(x273_ + 1, (qual_));\
642
	COPY_id(x273_ + 2, NULL_id);\
643
	COPY_id(x273_ + 3, (tok_));\
644
	COPY_list(x273_ + 4, (args_));\
645
	COPY_inst(x273_ + 5, NULL_inst);\
646
	(c_class_type) = x273_;\
2 7u83 647
    }
648
 
7 7u83 649
#define DECONS_type_token(qual_, name_, tok_, args_, app_, c_class_type)\
2 7u83 650
    {\
7 7u83 651
	c_class *x274_ = CHECK_TAG((c_class_type), 13);\
652
	(qual_) = DEREF_cv(x274_ + 1);\
653
	(name_) = DEREF_id(x274_ + 2);\
654
	(tok_) = DEREF_id(x274_ + 3);\
655
	(args_) = DEREF_list(x274_ + 4);\
656
	(app_) = DEREF_inst(x274_ + 5);\
2 7u83 657
    }
658
 
7 7u83 659
#define DESTROY_type_token(destroyer_, qual_, name_, tok_, args_, app_, c_class_type)\
2 7u83 660
    {\
7 7u83 661
	c_class *x275_ = CHECK_TAG((c_class_type), 13);\
662
	(qual_) = DEREF_cv(x275_ + 1);\
663
	(name_) = DEREF_id(x275_ + 2);\
664
	(tok_) = DEREF_id(x275_ + 3);\
665
	(args_) = DEREF_list(x275_ + 4);\
666
	(app_) = DEREF_inst(x275_ + 5);\
667
	(destroyer_)(x275_, (unsigned)6);\
2 7u83 668
    }
669
 
670
 
671
/* Operations for field templ of union TYPE */
672
 
7 7u83 673
#define type_templ_tag			((unsigned)14)
674
#define IS_type_templ(P)		(CHECK_NULL(P)->ag_tag == 14)
2 7u83 675
 
7 7u83 676
#define type_templ_sort(P)		(CHECK_TAG((P), 14) + 3)
677
#define type_templ_defn(P)		(CHECK_TAG((P), 14) + 4)
678
#define type_templ_fix(P)		(CHECK_TAG((P), 14) + 5)
2 7u83 679
 
7 7u83 680
#define MAKE_type_templ(qual_, sort_, defn_, fix_, c_class_type)\
2 7u83 681
    {\
7 7u83 682
	c_class *x276_ = GEN_c_class(6, TYPEID_type);\
683
	x276_->ag_tag = 14;\
684
	COPY_cv(x276_ + 1, (qual_));\
685
	COPY_id(x276_ + 2, NULL_id);\
686
	COPY_tok(x276_ + 3, (sort_));\
687
	COPY_type(x276_ + 4, (defn_));\
688
	COPY_int(x276_ + 5, (fix_));\
689
	(c_class_type) = x276_;\
2 7u83 690
    }
691
 
7 7u83 692
#define DECONS_type_templ(qual_, name_, sort_, defn_, fix_, c_class_type)\
2 7u83 693
    {\
7 7u83 694
	c_class *x277_ = CHECK_TAG((c_class_type), 14);\
695
	(qual_) = DEREF_cv(x277_ + 1);\
696
	(name_) = DEREF_id(x277_ + 2);\
697
	(sort_) = DEREF_tok(x277_ + 3);\
698
	(defn_) = DEREF_type(x277_ + 4);\
699
	(fix_) = DEREF_int(x277_ + 5);\
2 7u83 700
    }
701
 
7 7u83 702
#define DESTROY_type_templ(destroyer_, qual_, name_, sort_, defn_, fix_, c_class_type)\
2 7u83 703
    {\
7 7u83 704
	c_class *x278_ = CHECK_TAG((c_class_type), 14);\
705
	(qual_) = DEREF_cv(x278_ + 1);\
706
	(name_) = DEREF_id(x278_ + 2);\
707
	(sort_) = DEREF_tok(x278_ + 3);\
708
	(defn_) = DEREF_type(x278_ + 4);\
709
	(fix_) = DEREF_int(x278_ + 5);\
710
	(destroyer_)(x278_, (unsigned)6);\
2 7u83 711
    }
712
 
713
 
714
/* Operations for field instance of union TYPE */
715
 
7 7u83 716
#define type_instance_tag		((unsigned)15)
717
#define IS_type_instance(P)		(CHECK_NULL(P)->ag_tag == 15)
2 7u83 718
 
7 7u83 719
#define type_instance_id(P)		(CHECK_TAG((P), 15) + 3)
720
#define type_instance_access(P)		(CHECK_TAG((P), 15) + 4)
2 7u83 721
 
7 7u83 722
#define MAKE_type_instance(qual_, id_, access_, c_class_type)\
2 7u83 723
    {\
7 7u83 724
	c_class *x279_ = GEN_c_class(5, TYPEID_type);\
725
	x279_->ag_tag = 15;\
726
	COPY_cv(x279_ + 1, (qual_));\
727
	COPY_id(x279_ + 2, NULL_id);\
728
	COPY_id(x279_ + 3, (id_));\
729
	COPY_dspec(x279_ + 4, (access_));\
730
	(c_class_type) = x279_;\
2 7u83 731
    }
732
 
7 7u83 733
#define DECONS_type_instance(qual_, name_, id_, access_, c_class_type)\
2 7u83 734
    {\
7 7u83 735
	c_class *x280_ = CHECK_TAG((c_class_type), 15);\
736
	(qual_) = DEREF_cv(x280_ + 1);\
737
	(name_) = DEREF_id(x280_ + 2);\
738
	(id_) = DEREF_id(x280_ + 3);\
739
	(access_) = DEREF_dspec(x280_ + 4);\
2 7u83 740
    }
741
 
7 7u83 742
#define DESTROY_type_instance(destroyer_, qual_, name_, id_, access_, c_class_type)\
2 7u83 743
    {\
7 7u83 744
	c_class *x281_ = CHECK_TAG((c_class_type), 15);\
745
	(qual_) = DEREF_cv(x281_ + 1);\
746
	(name_) = DEREF_id(x281_ + 2);\
747
	(id_) = DEREF_id(x281_ + 3);\
748
	(access_) = DEREF_dspec(x281_ + 4);\
749
	(destroyer_)(x281_, (unsigned)5);\
2 7u83 750
    }
751
 
752
 
753
/* Operations for field dummy of union TYPE */
754
 
7 7u83 755
#define type_dummy_tag			((unsigned)16)
756
#define IS_type_dummy(P)		(CHECK_NULL(P)->ag_tag == 16)
2 7u83 757
 
7 7u83 758
#define type_dummy_tok(P)		(CHECK_TAG((P), 16) + 3)
2 7u83 759
 
7 7u83 760
#define MAKE_type_dummy(qual_, tok_, c_class_type)\
2 7u83 761
    {\
7 7u83 762
	c_class *x282_ = GEN_c_class(4, TYPEID_type);\
763
	x282_->ag_tag = 16;\
764
	COPY_cv(x282_ + 1, (qual_));\
765
	COPY_id(x282_ + 2, NULL_id);\
766
	COPY_int(x282_ + 3, (tok_));\
767
	(c_class_type) = x282_;\
2 7u83 768
    }
769
 
7 7u83 770
#define DECONS_type_dummy(qual_, name_, tok_, c_class_type)\
2 7u83 771
    {\
7 7u83 772
	c_class *x283_ = CHECK_TAG((c_class_type), 16);\
773
	(qual_) = DEREF_cv(x283_ + 1);\
774
	(name_) = DEREF_id(x283_ + 2);\
775
	(tok_) = DEREF_int(x283_ + 3);\
2 7u83 776
    }
777
 
7 7u83 778
#define DESTROY_type_dummy(destroyer_, qual_, name_, tok_, c_class_type)\
2 7u83 779
    {\
7 7u83 780
	c_class *x284_ = CHECK_TAG((c_class_type), 16);\
781
	(qual_) = DEREF_cv(x284_ + 1);\
782
	(name_) = DEREF_id(x284_ + 2);\
783
	(tok_) = DEREF_int(x284_ + 3);\
784
	(destroyer_)(x284_, (unsigned)4);\
2 7u83 785
    }
786
 
787
 
788
/* Operations for field error of union TYPE */
789
 
7 7u83 790
#define type_error_tag			((unsigned)17)
791
#define IS_type_error(P)		(CHECK_NULL(P)->ag_tag == 17)
2 7u83 792
 
793
 
7 7u83 794
#define MAKE_type_error(qual_, c_class_type)\
2 7u83 795
    {\
7 7u83 796
	c_class *x285_ = GEN_c_class(3, TYPEID_type);\
797
	x285_->ag_tag = 17;\
798
	COPY_cv(x285_ + 1, (qual_));\
799
	COPY_id(x285_ + 2, NULL_id);\
800
	(c_class_type) = x285_;\
2 7u83 801
    }
802
 
7 7u83 803
#define DECONS_type_error(qual_, name_, c_class_type)\
2 7u83 804
    {\
7 7u83 805
	c_class *x286_ = CHECK_TAG((c_class_type), 17);\
806
	(qual_) = DEREF_cv(x286_ + 1);\
807
	(name_) = DEREF_id(x286_ + 2);\
2 7u83 808
    }
809
 
7 7u83 810
#define DESTROY_type_error(destroyer_, qual_, name_, c_class_type)\
2 7u83 811
    {\
7 7u83 812
	c_class *x287_ = CHECK_TAG((c_class_type), 17);\
813
	(qual_) = DEREF_cv(x287_ + 1);\
814
	(name_) = DEREF_id(x287_ + 2);\
815
	(destroyer_)(x287_, (unsigned)3);\
2 7u83 816
    }
817
 
818
 
819
#endif