Subversion Repositories tendra.SVN

Rev

Go to most recent revision | Details | 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 ID_OPS_H_INCLUDED
36
#define ID_OPS_H_INCLUDED
37
 
38
/* Operations for union IDENTIFIER */
39
 
40
#define TAG_id( P )			( CHECK_NULL ( P )->ag_tag )
41
 
42
 
43
/* Operations for component name of union IDENTIFIER */
44
 
45
#define id_name( P )			( CHECK_NULL ( P ) + 1 )
46
 
47
 
48
/* Operations for component storage of union IDENTIFIER */
49
 
50
#define id_storage( P )			( CHECK_NULL ( P ) + 2 )
51
 
52
 
53
/* Operations for component parent of union IDENTIFIER */
54
 
55
#define id_parent( P )			( CHECK_NULL ( P ) + 3 )
56
 
57
 
58
/* Operations for component loc of union IDENTIFIER */
59
 
60
#define id_loc( P )			( CHECK_NULL ( P ) + 4 )
61
 
62
 
63
/* Operations for component alias of union IDENTIFIER */
64
 
65
#define id_alias( P )			( CHECK_NULL ( P ) + 7 )
66
 
67
 
68
/* Operations for component no of union IDENTIFIER */
69
 
70
#define id_no( P )			( CHECK_NULL ( P ) + 8 )
71
 
72
 
73
/* Operations for component dump of union IDENTIFIER */
74
 
75
#define id_dump( P )			( CHECK_NULL ( P ) + 9 )
76
 
77
 
78
/* Operations for field dummy of union IDENTIFIER */
79
 
80
#define id_dummy_tag			( ( unsigned ) 0 )
81
#define IS_id_dummy( P )		( CHECK_NULL ( P )->ag_tag == 0 )
82
 
83
 
84
#define MAKE_id_dummy( name_, storage_, parent_, loc_, c_class_id )\
85
    {\
86
	c_class *x317_ = GEN_c_class ( 10, TYPEID_id ) ;\
87
	x317_->ag_tag = 0 ;\
88
	COPY_hashid ( x317_ + 1, ( name_ ) ) ;\
89
	COPY_dspec ( x317_ + 2, ( storage_ ) ) ;\
90
	COPY_nspace ( x317_ + 3, ( parent_ ) ) ;\
91
	COPY_ulong ( x317_ + 4, ( loc_ ).line ) ;\
92
	COPY_ulong ( x317_ + 5, ( loc_ ).column ) ;\
93
	COPY_ptr ( x317_ + 6, ( loc_ ).posn ) ;\
94
	COPY_id ( x317_ + 7, x317_ ) ;\
95
	COPY_ulong ( x317_ + 8, LINK_NONE ) ;\
96
	COPY_ulong ( x317_ + 9, LINK_NONE ) ;\
97
	( c_class_id ) = x317_ ;\
98
    }
99
 
100
#define DECONS_id_dummy( name_, storage_, parent_, loc_, alias_, no_, dump_, c_class_id )\
101
    {\
102
	c_class *x318_ = CHECK_TAG ( ( c_class_id ), 0 ) ;\
103
	( name_ ) = DEREF_hashid ( x318_ + 1 ) ;\
104
	( storage_ ) = DEREF_dspec ( x318_ + 2 ) ;\
105
	( parent_ ) = DEREF_nspace ( x318_ + 3 ) ;\
106
	( loc_ ).line = DEREF_ulong ( x318_ + 4 ) ;\
107
	( loc_ ).column = DEREF_ulong ( x318_ + 5 ) ;\
108
	( loc_ ).posn = DEREF_ptr ( x318_ + 6 ) ;\
109
	( alias_ ) = DEREF_id ( x318_ + 7 ) ;\
110
	( no_ ) = DEREF_ulong ( x318_ + 8 ) ;\
111
	( dump_ ) = DEREF_ulong ( x318_ + 9 ) ;\
112
    }
113
 
114
#define DESTROY_id_dummy( destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, c_class_id )\
115
    {\
116
	c_class *x319_ = CHECK_TAG ( ( c_class_id ), 0 ) ;\
117
	( name_ ) = DEREF_hashid ( x319_ + 1 ) ;\
118
	( storage_ ) = DEREF_dspec ( x319_ + 2 ) ;\
119
	( parent_ ) = DEREF_nspace ( x319_ + 3 ) ;\
120
	( loc_ ).line = DEREF_ulong ( x319_ + 4 ) ;\
121
	( loc_ ).column = DEREF_ulong ( x319_ + 5 ) ;\
122
	( loc_ ).posn = DEREF_ptr ( x319_ + 6 ) ;\
123
	( alias_ ) = DEREF_id ( x319_ + 7 ) ;\
124
	( no_ ) = DEREF_ulong ( x319_ + 8 ) ;\
125
	( dump_ ) = DEREF_ulong ( x319_ + 9 ) ;\
126
	( destroyer_ ) ( x319_, ( unsigned ) 10 ) ;\
127
    }
128
 
129
 
130
/* Operations for field set keyword_etc of union IDENTIFIER */
131
 
132
#define id_keyword_etc_tag		( ( unsigned ) 4 )
133
#define IS_id_keyword_etc( P )		( ( unsigned ) ( CHECK_NULL ( P )->ag_tag - 1 ) < ( unsigned ) 3 )
134
 
135
 
136
#define MAKE_id_keyword_etc( tag, name_, storage_, parent_, loc_, c_class_id )\
137
    {\
138
	c_class *x320_ = GEN_c_class ( 10, TYPEID_id ) ;\
139
	x320_->ag_tag = ( tag ) ;\
140
	COPY_hashid ( x320_ + 1, ( name_ ) ) ;\
141
	COPY_dspec ( x320_ + 2, ( storage_ ) ) ;\
142
	COPY_nspace ( x320_ + 3, ( parent_ ) ) ;\
143
	COPY_ulong ( x320_ + 4, ( loc_ ).line ) ;\
144
	COPY_ulong ( x320_ + 5, ( loc_ ).column ) ;\
145
	COPY_ptr ( x320_ + 6, ( loc_ ).posn ) ;\
146
	COPY_id ( x320_ + 7, x320_ ) ;\
147
	COPY_ulong ( x320_ + 8, LINK_NONE ) ;\
148
	COPY_ulong ( x320_ + 9, LINK_NONE ) ;\
149
	( c_class_id ) = CHECK_TAG_ETC ( x320_, 1, 4 ) ;\
150
    }
151
 
152
#define MODIFY_id_keyword_etc( tag, c_class_id )\
153
    {\
154
	c_class *x321_ = CHECK_TAG_ETC ( ( c_class_id ), 1, 4 ) ;\
155
	x321_->ag_tag = ( tag ) ;\
156
	( void ) CHECK_TAG_ETC ( x321_, 1, 4 ) ;\
157
    }
158
 
159
#define DECONS_id_keyword_etc( name_, storage_, parent_, loc_, alias_, no_, dump_, c_class_id )\
160
    {\
161
	c_class *x322_ = CHECK_TAG_ETC ( ( c_class_id ), 1, 4 ) ;\
162
	( name_ ) = DEREF_hashid ( x322_ + 1 ) ;\
163
	( storage_ ) = DEREF_dspec ( x322_ + 2 ) ;\
164
	( parent_ ) = DEREF_nspace ( x322_ + 3 ) ;\
165
	( loc_ ).line = DEREF_ulong ( x322_ + 4 ) ;\
166
	( loc_ ).column = DEREF_ulong ( x322_ + 5 ) ;\
167
	( loc_ ).posn = DEREF_ptr ( x322_ + 6 ) ;\
168
	( alias_ ) = DEREF_id ( x322_ + 7 ) ;\
169
	( no_ ) = DEREF_ulong ( x322_ + 8 ) ;\
170
	( dump_ ) = DEREF_ulong ( x322_ + 9 ) ;\
171
    }
172
 
173
#define DESTROY_id_keyword_etc( destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, c_class_id )\
174
    {\
175
	c_class *x323_ = CHECK_TAG_ETC ( ( c_class_id ), 1, 4 ) ;\
176
	( name_ ) = DEREF_hashid ( x323_ + 1 ) ;\
177
	( storage_ ) = DEREF_dspec ( x323_ + 2 ) ;\
178
	( parent_ ) = DEREF_nspace ( x323_ + 3 ) ;\
179
	( loc_ ).line = DEREF_ulong ( x323_ + 4 ) ;\
180
	( loc_ ).column = DEREF_ulong ( x323_ + 5 ) ;\
181
	( loc_ ).posn = DEREF_ptr ( x323_ + 6 ) ;\
182
	( alias_ ) = DEREF_id ( x323_ + 7 ) ;\
183
	( no_ ) = DEREF_ulong ( x323_ + 8 ) ;\
184
	( dump_ ) = DEREF_ulong ( x323_ + 9 ) ;\
185
	( destroyer_ ) ( x323_, ( unsigned ) 10 ) ;\
186
    }
187
 
188
 
189
/* Operations for field keyword of union IDENTIFIER */
190
 
191
#define id_keyword_tag			( ( unsigned ) 1 )
192
#define IS_id_keyword( P )		( CHECK_NULL ( P )->ag_tag == 1 )
193
 
194
 
195
#define MAKE_id_keyword( name_, storage_, parent_, loc_, c_class_id )\
196
    {\
197
	c_class *x324_ = GEN_c_class ( 10, TYPEID_id ) ;\
198
	x324_->ag_tag = 1 ;\
199
	COPY_hashid ( x324_ + 1, ( name_ ) ) ;\
200
	COPY_dspec ( x324_ + 2, ( storage_ ) ) ;\
201
	COPY_nspace ( x324_ + 3, ( parent_ ) ) ;\
202
	COPY_ulong ( x324_ + 4, ( loc_ ).line ) ;\
203
	COPY_ulong ( x324_ + 5, ( loc_ ).column ) ;\
204
	COPY_ptr ( x324_ + 6, ( loc_ ).posn ) ;\
205
	COPY_id ( x324_ + 7, x324_ ) ;\
206
	COPY_ulong ( x324_ + 8, LINK_NONE ) ;\
207
	COPY_ulong ( x324_ + 9, LINK_NONE ) ;\
208
	( c_class_id ) = x324_ ;\
209
    }
210
 
211
#define DECONS_id_keyword( name_, storage_, parent_, loc_, alias_, no_, dump_, c_class_id )\
212
    {\
213
	c_class *x325_ = CHECK_TAG ( ( c_class_id ), 1 ) ;\
214
	( name_ ) = DEREF_hashid ( x325_ + 1 ) ;\
215
	( storage_ ) = DEREF_dspec ( x325_ + 2 ) ;\
216
	( parent_ ) = DEREF_nspace ( x325_ + 3 ) ;\
217
	( loc_ ).line = DEREF_ulong ( x325_ + 4 ) ;\
218
	( loc_ ).column = DEREF_ulong ( x325_ + 5 ) ;\
219
	( loc_ ).posn = DEREF_ptr ( x325_ + 6 ) ;\
220
	( alias_ ) = DEREF_id ( x325_ + 7 ) ;\
221
	( no_ ) = DEREF_ulong ( x325_ + 8 ) ;\
222
	( dump_ ) = DEREF_ulong ( x325_ + 9 ) ;\
223
    }
224
 
225
#define DESTROY_id_keyword( destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, c_class_id )\
226
    {\
227
	c_class *x326_ = CHECK_TAG ( ( c_class_id ), 1 ) ;\
228
	( name_ ) = DEREF_hashid ( x326_ + 1 ) ;\
229
	( storage_ ) = DEREF_dspec ( x326_ + 2 ) ;\
230
	( parent_ ) = DEREF_nspace ( x326_ + 3 ) ;\
231
	( loc_ ).line = DEREF_ulong ( x326_ + 4 ) ;\
232
	( loc_ ).column = DEREF_ulong ( x326_ + 5 ) ;\
233
	( loc_ ).posn = DEREF_ptr ( x326_ + 6 ) ;\
234
	( alias_ ) = DEREF_id ( x326_ + 7 ) ;\
235
	( no_ ) = DEREF_ulong ( x326_ + 8 ) ;\
236
	( dump_ ) = DEREF_ulong ( x326_ + 9 ) ;\
237
	( destroyer_ ) ( x326_, ( unsigned ) 10 ) ;\
238
    }
239
 
240
 
241
/* Operations for field iso_keyword of union IDENTIFIER */
242
 
243
#define id_iso_keyword_tag		( ( unsigned ) 2 )
244
#define IS_id_iso_keyword( P )		( CHECK_NULL ( P )->ag_tag == 2 )
245
 
246
 
247
#define MAKE_id_iso_keyword( name_, storage_, parent_, loc_, c_class_id )\
248
    {\
249
	c_class *x327_ = GEN_c_class ( 10, TYPEID_id ) ;\
250
	x327_->ag_tag = 2 ;\
251
	COPY_hashid ( x327_ + 1, ( name_ ) ) ;\
252
	COPY_dspec ( x327_ + 2, ( storage_ ) ) ;\
253
	COPY_nspace ( x327_ + 3, ( parent_ ) ) ;\
254
	COPY_ulong ( x327_ + 4, ( loc_ ).line ) ;\
255
	COPY_ulong ( x327_ + 5, ( loc_ ).column ) ;\
256
	COPY_ptr ( x327_ + 6, ( loc_ ).posn ) ;\
257
	COPY_id ( x327_ + 7, x327_ ) ;\
258
	COPY_ulong ( x327_ + 8, LINK_NONE ) ;\
259
	COPY_ulong ( x327_ + 9, LINK_NONE ) ;\
260
	( c_class_id ) = x327_ ;\
261
    }
262
 
263
#define DECONS_id_iso_keyword( name_, storage_, parent_, loc_, alias_, no_, dump_, c_class_id )\
264
    {\
265
	c_class *x328_ = CHECK_TAG ( ( c_class_id ), 2 ) ;\
266
	( name_ ) = DEREF_hashid ( x328_ + 1 ) ;\
267
	( storage_ ) = DEREF_dspec ( x328_ + 2 ) ;\
268
	( parent_ ) = DEREF_nspace ( x328_ + 3 ) ;\
269
	( loc_ ).line = DEREF_ulong ( x328_ + 4 ) ;\
270
	( loc_ ).column = DEREF_ulong ( x328_ + 5 ) ;\
271
	( loc_ ).posn = DEREF_ptr ( x328_ + 6 ) ;\
272
	( alias_ ) = DEREF_id ( x328_ + 7 ) ;\
273
	( no_ ) = DEREF_ulong ( x328_ + 8 ) ;\
274
	( dump_ ) = DEREF_ulong ( x328_ + 9 ) ;\
275
    }
276
 
277
#define DESTROY_id_iso_keyword( destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, c_class_id )\
278
    {\
279
	c_class *x329_ = CHECK_TAG ( ( c_class_id ), 2 ) ;\
280
	( name_ ) = DEREF_hashid ( x329_ + 1 ) ;\
281
	( storage_ ) = DEREF_dspec ( x329_ + 2 ) ;\
282
	( parent_ ) = DEREF_nspace ( x329_ + 3 ) ;\
283
	( loc_ ).line = DEREF_ulong ( x329_ + 4 ) ;\
284
	( loc_ ).column = DEREF_ulong ( x329_ + 5 ) ;\
285
	( loc_ ).posn = DEREF_ptr ( x329_ + 6 ) ;\
286
	( alias_ ) = DEREF_id ( x329_ + 7 ) ;\
287
	( no_ ) = DEREF_ulong ( x329_ + 8 ) ;\
288
	( dump_ ) = DEREF_ulong ( x329_ + 9 ) ;\
289
	( destroyer_ ) ( x329_, ( unsigned ) 10 ) ;\
290
    }
291
 
292
 
293
/* Operations for field reserved of union IDENTIFIER */
294
 
295
#define id_reserved_tag			( ( unsigned ) 3 )
296
#define IS_id_reserved( P )		( CHECK_NULL ( P )->ag_tag == 3 )
297
 
298
 
299
#define MAKE_id_reserved( name_, storage_, parent_, loc_, c_class_id )\
300
    {\
301
	c_class *x330_ = GEN_c_class ( 10, TYPEID_id ) ;\
302
	x330_->ag_tag = 3 ;\
303
	COPY_hashid ( x330_ + 1, ( name_ ) ) ;\
304
	COPY_dspec ( x330_ + 2, ( storage_ ) ) ;\
305
	COPY_nspace ( x330_ + 3, ( parent_ ) ) ;\
306
	COPY_ulong ( x330_ + 4, ( loc_ ).line ) ;\
307
	COPY_ulong ( x330_ + 5, ( loc_ ).column ) ;\
308
	COPY_ptr ( x330_ + 6, ( loc_ ).posn ) ;\
309
	COPY_id ( x330_ + 7, x330_ ) ;\
310
	COPY_ulong ( x330_ + 8, LINK_NONE ) ;\
311
	COPY_ulong ( x330_ + 9, LINK_NONE ) ;\
312
	( c_class_id ) = x330_ ;\
313
    }
314
 
315
#define DECONS_id_reserved( name_, storage_, parent_, loc_, alias_, no_, dump_, c_class_id )\
316
    {\
317
	c_class *x331_ = CHECK_TAG ( ( c_class_id ), 3 ) ;\
318
	( name_ ) = DEREF_hashid ( x331_ + 1 ) ;\
319
	( storage_ ) = DEREF_dspec ( x331_ + 2 ) ;\
320
	( parent_ ) = DEREF_nspace ( x331_ + 3 ) ;\
321
	( loc_ ).line = DEREF_ulong ( x331_ + 4 ) ;\
322
	( loc_ ).column = DEREF_ulong ( x331_ + 5 ) ;\
323
	( loc_ ).posn = DEREF_ptr ( x331_ + 6 ) ;\
324
	( alias_ ) = DEREF_id ( x331_ + 7 ) ;\
325
	( no_ ) = DEREF_ulong ( x331_ + 8 ) ;\
326
	( dump_ ) = DEREF_ulong ( x331_ + 9 ) ;\
327
    }
328
 
329
#define DESTROY_id_reserved( destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, c_class_id )\
330
    {\
331
	c_class *x332_ = CHECK_TAG ( ( c_class_id ), 3 ) ;\
332
	( name_ ) = DEREF_hashid ( x332_ + 1 ) ;\
333
	( storage_ ) = DEREF_dspec ( x332_ + 2 ) ;\
334
	( parent_ ) = DEREF_nspace ( x332_ + 3 ) ;\
335
	( loc_ ).line = DEREF_ulong ( x332_ + 4 ) ;\
336
	( loc_ ).column = DEREF_ulong ( x332_ + 5 ) ;\
337
	( loc_ ).posn = DEREF_ptr ( x332_ + 6 ) ;\
338
	( alias_ ) = DEREF_id ( x332_ + 7 ) ;\
339
	( no_ ) = DEREF_ulong ( x332_ + 8 ) ;\
340
	( dump_ ) = DEREF_ulong ( x332_ + 9 ) ;\
341
	( destroyer_ ) ( x332_, ( unsigned ) 10 ) ;\
342
    }
343
 
344
 
345
/* Operations for field builtin of union IDENTIFIER */
346
 
347
#define id_builtin_tag			( ( unsigned ) 4 )
348
#define IS_id_builtin( P )		( CHECK_NULL ( P )->ag_tag == 4 )
349
 
350
#define id_builtin_ret( P )		( CHECK_TAG ( ( P ), 4 ) + 10 )
351
#define id_builtin_ptypes( P )		( CHECK_TAG ( ( P ), 4 ) + 11 )
352
 
353
#define MAKE_id_builtin( name_, storage_, parent_, loc_, ret_, ptypes_, c_class_id )\
354
    {\
355
	c_class *x333_ = GEN_c_class ( 12, TYPEID_id ) ;\
356
	x333_->ag_tag = 4 ;\
357
	COPY_hashid ( x333_ + 1, ( name_ ) ) ;\
358
	COPY_dspec ( x333_ + 2, ( storage_ ) ) ;\
359
	COPY_nspace ( x333_ + 3, ( parent_ ) ) ;\
360
	COPY_ulong ( x333_ + 4, ( loc_ ).line ) ;\
361
	COPY_ulong ( x333_ + 5, ( loc_ ).column ) ;\
362
	COPY_ptr ( x333_ + 6, ( loc_ ).posn ) ;\
363
	COPY_id ( x333_ + 7, x333_ ) ;\
364
	COPY_ulong ( x333_ + 8, LINK_NONE ) ;\
365
	COPY_ulong ( x333_ + 9, LINK_NONE ) ;\
366
	COPY_type ( x333_ + 10, ( ret_ ) ) ;\
367
	COPY_list ( x333_ + 11, ( ptypes_ ) ) ;\
368
	( c_class_id ) = x333_ ;\
369
    }
370
 
371
#define DECONS_id_builtin( name_, storage_, parent_, loc_, alias_, no_, dump_, ret_, ptypes_, c_class_id )\
372
    {\
373
	c_class *x334_ = CHECK_TAG ( ( c_class_id ), 4 ) ;\
374
	( name_ ) = DEREF_hashid ( x334_ + 1 ) ;\
375
	( storage_ ) = DEREF_dspec ( x334_ + 2 ) ;\
376
	( parent_ ) = DEREF_nspace ( x334_ + 3 ) ;\
377
	( loc_ ).line = DEREF_ulong ( x334_ + 4 ) ;\
378
	( loc_ ).column = DEREF_ulong ( x334_ + 5 ) ;\
379
	( loc_ ).posn = DEREF_ptr ( x334_ + 6 ) ;\
380
	( alias_ ) = DEREF_id ( x334_ + 7 ) ;\
381
	( no_ ) = DEREF_ulong ( x334_ + 8 ) ;\
382
	( dump_ ) = DEREF_ulong ( x334_ + 9 ) ;\
383
	( ret_ ) = DEREF_type ( x334_ + 10 ) ;\
384
	( ptypes_ ) = DEREF_list ( x334_ + 11 ) ;\
385
    }
386
 
387
#define DESTROY_id_builtin( destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, ret_, ptypes_, c_class_id )\
388
    {\
389
	c_class *x335_ = CHECK_TAG ( ( c_class_id ), 4 ) ;\
390
	( name_ ) = DEREF_hashid ( x335_ + 1 ) ;\
391
	( storage_ ) = DEREF_dspec ( x335_ + 2 ) ;\
392
	( parent_ ) = DEREF_nspace ( x335_ + 3 ) ;\
393
	( loc_ ).line = DEREF_ulong ( x335_ + 4 ) ;\
394
	( loc_ ).column = DEREF_ulong ( x335_ + 5 ) ;\
395
	( loc_ ).posn = DEREF_ptr ( x335_ + 6 ) ;\
396
	( alias_ ) = DEREF_id ( x335_ + 7 ) ;\
397
	( no_ ) = DEREF_ulong ( x335_ + 8 ) ;\
398
	( dump_ ) = DEREF_ulong ( x335_ + 9 ) ;\
399
	( ret_ ) = DEREF_type ( x335_ + 10 ) ;\
400
	( ptypes_ ) = DEREF_list ( x335_ + 11 ) ;\
401
	( destroyer_ ) ( x335_, ( unsigned ) 12 ) ;\
402
    }
403
 
404
 
405
/* Operations for field obj_macro of union IDENTIFIER */
406
 
407
#define id_obj_macro_tag		( ( unsigned ) 5 )
408
#define IS_id_obj_macro( P )		( CHECK_NULL ( P )->ag_tag == 5 )
409
 
410
#define id_obj_macro_defn( P )		( CHECK_TAG ( ( P ), 5 ) + 10 )
411
 
412
#define MAKE_id_obj_macro( name_, storage_, parent_, loc_, defn_, c_class_id )\
413
    {\
414
	c_class *x336_ = GEN_c_class ( 11, TYPEID_id ) ;\
415
	x336_->ag_tag = 5 ;\
416
	COPY_hashid ( x336_ + 1, ( name_ ) ) ;\
417
	COPY_dspec ( x336_ + 2, ( storage_ ) ) ;\
418
	COPY_nspace ( x336_ + 3, ( parent_ ) ) ;\
419
	COPY_ulong ( x336_ + 4, ( loc_ ).line ) ;\
420
	COPY_ulong ( x336_ + 5, ( loc_ ).column ) ;\
421
	COPY_ptr ( x336_ + 6, ( loc_ ).posn ) ;\
422
	COPY_id ( x336_ + 7, x336_ ) ;\
423
	COPY_ulong ( x336_ + 8, LINK_NONE ) ;\
424
	COPY_ulong ( x336_ + 9, LINK_NONE ) ;\
425
	COPY_pptok ( x336_ + 10, ( defn_ ) ) ;\
426
	( c_class_id ) = x336_ ;\
427
    }
428
 
429
#define DECONS_id_obj_macro( name_, storage_, parent_, loc_, alias_, no_, dump_, defn_, c_class_id )\
430
    {\
431
	c_class *x337_ = CHECK_TAG ( ( c_class_id ), 5 ) ;\
432
	( name_ ) = DEREF_hashid ( x337_ + 1 ) ;\
433
	( storage_ ) = DEREF_dspec ( x337_ + 2 ) ;\
434
	( parent_ ) = DEREF_nspace ( x337_ + 3 ) ;\
435
	( loc_ ).line = DEREF_ulong ( x337_ + 4 ) ;\
436
	( loc_ ).column = DEREF_ulong ( x337_ + 5 ) ;\
437
	( loc_ ).posn = DEREF_ptr ( x337_ + 6 ) ;\
438
	( alias_ ) = DEREF_id ( x337_ + 7 ) ;\
439
	( no_ ) = DEREF_ulong ( x337_ + 8 ) ;\
440
	( dump_ ) = DEREF_ulong ( x337_ + 9 ) ;\
441
	( defn_ ) = DEREF_pptok ( x337_ + 10 ) ;\
442
    }
443
 
444
#define DESTROY_id_obj_macro( destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, defn_, c_class_id )\
445
    {\
446
	c_class *x338_ = CHECK_TAG ( ( c_class_id ), 5 ) ;\
447
	( name_ ) = DEREF_hashid ( x338_ + 1 ) ;\
448
	( storage_ ) = DEREF_dspec ( x338_ + 2 ) ;\
449
	( parent_ ) = DEREF_nspace ( x338_ + 3 ) ;\
450
	( loc_ ).line = DEREF_ulong ( x338_ + 4 ) ;\
451
	( loc_ ).column = DEREF_ulong ( x338_ + 5 ) ;\
452
	( loc_ ).posn = DEREF_ptr ( x338_ + 6 ) ;\
453
	( alias_ ) = DEREF_id ( x338_ + 7 ) ;\
454
	( no_ ) = DEREF_ulong ( x338_ + 8 ) ;\
455
	( dump_ ) = DEREF_ulong ( x338_ + 9 ) ;\
456
	( defn_ ) = DEREF_pptok ( x338_ + 10 ) ;\
457
	( destroyer_ ) ( x338_, ( unsigned ) 11 ) ;\
458
    }
459
 
460
 
461
/* Operations for field func_macro of union IDENTIFIER */
462
 
463
#define id_func_macro_tag		( ( unsigned ) 6 )
464
#define IS_id_func_macro( P )		( CHECK_NULL ( P )->ag_tag == 6 )
465
 
466
#define id_func_macro_defn( P )		( CHECK_TAG ( ( P ), 6 ) + 10 )
467
#define id_func_macro_params( P )	( CHECK_TAG ( ( P ), 6 ) + 11 )
468
#define id_func_macro_no_params( P )	( CHECK_TAG ( ( P ), 6 ) + 12 )
469
 
470
#define MAKE_id_func_macro( name_, storage_, parent_, loc_, defn_, params_, no_params_, c_class_id )\
471
    {\
472
	c_class *x339_ = GEN_c_class ( 13, TYPEID_id ) ;\
473
	x339_->ag_tag = 6 ;\
474
	COPY_hashid ( x339_ + 1, ( name_ ) ) ;\
475
	COPY_dspec ( x339_ + 2, ( storage_ ) ) ;\
476
	COPY_nspace ( x339_ + 3, ( parent_ ) ) ;\
477
	COPY_ulong ( x339_ + 4, ( loc_ ).line ) ;\
478
	COPY_ulong ( x339_ + 5, ( loc_ ).column ) ;\
479
	COPY_ptr ( x339_ + 6, ( loc_ ).posn ) ;\
480
	COPY_id ( x339_ + 7, x339_ ) ;\
481
	COPY_ulong ( x339_ + 8, LINK_NONE ) ;\
482
	COPY_ulong ( x339_ + 9, LINK_NONE ) ;\
483
	COPY_pptok ( x339_ + 10, ( defn_ ) ) ;\
484
	COPY_list ( x339_ + 11, ( params_ ) ) ;\
485
	COPY_unsigned ( x339_ + 12, ( no_params_ ) ) ;\
486
	( c_class_id ) = x339_ ;\
487
    }
488
 
489
#define DECONS_id_func_macro( name_, storage_, parent_, loc_, alias_, no_, dump_, defn_, params_, no_params_, c_class_id )\
490
    {\
491
	c_class *x340_ = CHECK_TAG ( ( c_class_id ), 6 ) ;\
492
	( name_ ) = DEREF_hashid ( x340_ + 1 ) ;\
493
	( storage_ ) = DEREF_dspec ( x340_ + 2 ) ;\
494
	( parent_ ) = DEREF_nspace ( x340_ + 3 ) ;\
495
	( loc_ ).line = DEREF_ulong ( x340_ + 4 ) ;\
496
	( loc_ ).column = DEREF_ulong ( x340_ + 5 ) ;\
497
	( loc_ ).posn = DEREF_ptr ( x340_ + 6 ) ;\
498
	( alias_ ) = DEREF_id ( x340_ + 7 ) ;\
499
	( no_ ) = DEREF_ulong ( x340_ + 8 ) ;\
500
	( dump_ ) = DEREF_ulong ( x340_ + 9 ) ;\
501
	( defn_ ) = DEREF_pptok ( x340_ + 10 ) ;\
502
	( params_ ) = DEREF_list ( x340_ + 11 ) ;\
503
	( no_params_ ) = DEREF_unsigned ( x340_ + 12 ) ;\
504
    }
505
 
506
#define DESTROY_id_func_macro( destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, defn_, params_, no_params_, c_class_id )\
507
    {\
508
	c_class *x341_ = CHECK_TAG ( ( c_class_id ), 6 ) ;\
509
	( name_ ) = DEREF_hashid ( x341_ + 1 ) ;\
510
	( storage_ ) = DEREF_dspec ( x341_ + 2 ) ;\
511
	( parent_ ) = DEREF_nspace ( x341_ + 3 ) ;\
512
	( loc_ ).line = DEREF_ulong ( x341_ + 4 ) ;\
513
	( loc_ ).column = DEREF_ulong ( x341_ + 5 ) ;\
514
	( loc_ ).posn = DEREF_ptr ( x341_ + 6 ) ;\
515
	( alias_ ) = DEREF_id ( x341_ + 7 ) ;\
516
	( no_ ) = DEREF_ulong ( x341_ + 8 ) ;\
517
	( dump_ ) = DEREF_ulong ( x341_ + 9 ) ;\
518
	( defn_ ) = DEREF_pptok ( x341_ + 10 ) ;\
519
	( params_ ) = DEREF_list ( x341_ + 11 ) ;\
520
	( no_params_ ) = DEREF_unsigned ( x341_ + 12 ) ;\
521
	( destroyer_ ) ( x341_, ( unsigned ) 13 ) ;\
522
    }
523
 
524
 
525
/* Operations for field predicate of union IDENTIFIER */
526
 
527
#define id_predicate_tag		( ( unsigned ) 7 )
528
#define IS_id_predicate( P )		( CHECK_NULL ( P )->ag_tag == 7 )
529
 
530
#define id_predicate_values( P )	( CHECK_TAG ( ( P ), 7 ) + 10 )
531
 
532
#define MAKE_id_predicate( name_, storage_, parent_, loc_, c_class_id )\
533
    {\
534
	c_class *x342_ = GEN_c_class ( 11, TYPEID_id ) ;\
535
	x342_->ag_tag = 7 ;\
536
	COPY_hashid ( x342_ + 1, ( name_ ) ) ;\
537
	COPY_dspec ( x342_ + 2, ( storage_ ) ) ;\
538
	COPY_nspace ( x342_ + 3, ( parent_ ) ) ;\
539
	COPY_ulong ( x342_ + 4, ( loc_ ).line ) ;\
540
	COPY_ulong ( x342_ + 5, ( loc_ ).column ) ;\
541
	COPY_ptr ( x342_ + 6, ( loc_ ).posn ) ;\
542
	COPY_id ( x342_ + 7, x342_ ) ;\
543
	COPY_ulong ( x342_ + 8, LINK_NONE ) ;\
544
	COPY_ulong ( x342_ + 9, LINK_NONE ) ;\
545
	COPY_list ( x342_ + 10, NULL_list ( PPTOKEN_P ) ) ;\
546
	( c_class_id ) = x342_ ;\
547
    }
548
 
549
#define DECONS_id_predicate( name_, storage_, parent_, loc_, alias_, no_, dump_, values_, c_class_id )\
550
    {\
551
	c_class *x343_ = CHECK_TAG ( ( c_class_id ), 7 ) ;\
552
	( name_ ) = DEREF_hashid ( x343_ + 1 ) ;\
553
	( storage_ ) = DEREF_dspec ( x343_ + 2 ) ;\
554
	( parent_ ) = DEREF_nspace ( x343_ + 3 ) ;\
555
	( loc_ ).line = DEREF_ulong ( x343_ + 4 ) ;\
556
	( loc_ ).column = DEREF_ulong ( x343_ + 5 ) ;\
557
	( loc_ ).posn = DEREF_ptr ( x343_ + 6 ) ;\
558
	( alias_ ) = DEREF_id ( x343_ + 7 ) ;\
559
	( no_ ) = DEREF_ulong ( x343_ + 8 ) ;\
560
	( dump_ ) = DEREF_ulong ( x343_ + 9 ) ;\
561
	( values_ ) = DEREF_list ( x343_ + 10 ) ;\
562
    }
563
 
564
#define DESTROY_id_predicate( destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, values_, c_class_id )\
565
    {\
566
	c_class *x344_ = CHECK_TAG ( ( c_class_id ), 7 ) ;\
567
	( name_ ) = DEREF_hashid ( x344_ + 1 ) ;\
568
	( storage_ ) = DEREF_dspec ( x344_ + 2 ) ;\
569
	( parent_ ) = DEREF_nspace ( x344_ + 3 ) ;\
570
	( loc_ ).line = DEREF_ulong ( x344_ + 4 ) ;\
571
	( loc_ ).column = DEREF_ulong ( x344_ + 5 ) ;\
572
	( loc_ ).posn = DEREF_ptr ( x344_ + 6 ) ;\
573
	( alias_ ) = DEREF_id ( x344_ + 7 ) ;\
574
	( no_ ) = DEREF_ulong ( x344_ + 8 ) ;\
575
	( dump_ ) = DEREF_ulong ( x344_ + 9 ) ;\
576
	( values_ ) = DEREF_list ( x344_ + 10 ) ;\
577
	( destroyer_ ) ( x344_, ( unsigned ) 11 ) ;\
578
    }
579
 
580
 
581
/* Operations for field set class_name_etc of union IDENTIFIER */
582
 
583
#define id_class_name_etc_tag		( ( unsigned ) 13 )
584
#define IS_id_class_name_etc( P )	( ( unsigned ) ( CHECK_NULL ( P )->ag_tag - 8 ) < ( unsigned ) 5 )
585
 
586
#define id_class_name_etc_defn( P )	( CHECK_TAG_ETC ( ( P ), 8, 13 ) + 10 )
587
#define id_class_name_etc_rep( P )	( CHECK_TAG_ETC ( ( P ), 8, 13 ) + 11 )
588
 
589
#define MAKE_id_class_name_etc( tag, name_, storage_, parent_, loc_, defn_, c_class_id )\
590
    {\
591
	c_class *x345_ = GEN_c_class ( 12, TYPEID_id ) ;\
592
	x345_->ag_tag = ( tag ) ;\
593
	COPY_hashid ( x345_ + 1, ( name_ ) ) ;\
594
	COPY_dspec ( x345_ + 2, ( storage_ ) ) ;\
595
	COPY_nspace ( x345_ + 3, ( parent_ ) ) ;\
596
	COPY_ulong ( x345_ + 4, ( loc_ ).line ) ;\
597
	COPY_ulong ( x345_ + 5, ( loc_ ).column ) ;\
598
	COPY_ptr ( x345_ + 6, ( loc_ ).posn ) ;\
599
	COPY_id ( x345_ + 7, x345_ ) ;\
600
	COPY_ulong ( x345_ + 8, LINK_NONE ) ;\
601
	COPY_ulong ( x345_ + 9, LINK_NONE ) ;\
602
	COPY_type ( x345_ + 10, ( defn_ ) ) ;\
603
	COPY_btype ( x345_ + 11, btype_none ) ;\
604
	( c_class_id ) = CHECK_TAG_ETC ( x345_, 8, 13 ) ;\
605
    }
606
 
607
#define MODIFY_id_class_name_etc( tag, c_class_id )\
608
    {\
609
	c_class *x346_ = CHECK_TAG_ETC ( ( c_class_id ), 8, 13 ) ;\
610
	x346_->ag_tag = ( tag ) ;\
611
	( void ) CHECK_TAG_ETC ( x346_, 8, 13 ) ;\
612
    }
613
 
614
#define DECONS_id_class_name_etc( name_, storage_, parent_, loc_, alias_, no_, dump_, defn_, rep_, c_class_id )\
615
    {\
616
	c_class *x347_ = CHECK_TAG_ETC ( ( c_class_id ), 8, 13 ) ;\
617
	( name_ ) = DEREF_hashid ( x347_ + 1 ) ;\
618
	( storage_ ) = DEREF_dspec ( x347_ + 2 ) ;\
619
	( parent_ ) = DEREF_nspace ( x347_ + 3 ) ;\
620
	( loc_ ).line = DEREF_ulong ( x347_ + 4 ) ;\
621
	( loc_ ).column = DEREF_ulong ( x347_ + 5 ) ;\
622
	( loc_ ).posn = DEREF_ptr ( x347_ + 6 ) ;\
623
	( alias_ ) = DEREF_id ( x347_ + 7 ) ;\
624
	( no_ ) = DEREF_ulong ( x347_ + 8 ) ;\
625
	( dump_ ) = DEREF_ulong ( x347_ + 9 ) ;\
626
	( defn_ ) = DEREF_type ( x347_ + 10 ) ;\
627
	( rep_ ) = DEREF_btype ( x347_ + 11 ) ;\
628
    }
629
 
630
#define DESTROY_id_class_name_etc( destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, defn_, rep_, c_class_id )\
631
    {\
632
	c_class *x348_ = CHECK_TAG_ETC ( ( c_class_id ), 8, 13 ) ;\
633
	( name_ ) = DEREF_hashid ( x348_ + 1 ) ;\
634
	( storage_ ) = DEREF_dspec ( x348_ + 2 ) ;\
635
	( parent_ ) = DEREF_nspace ( x348_ + 3 ) ;\
636
	( loc_ ).line = DEREF_ulong ( x348_ + 4 ) ;\
637
	( loc_ ).column = DEREF_ulong ( x348_ + 5 ) ;\
638
	( loc_ ).posn = DEREF_ptr ( x348_ + 6 ) ;\
639
	( alias_ ) = DEREF_id ( x348_ + 7 ) ;\
640
	( no_ ) = DEREF_ulong ( x348_ + 8 ) ;\
641
	( dump_ ) = DEREF_ulong ( x348_ + 9 ) ;\
642
	( defn_ ) = DEREF_type ( x348_ + 10 ) ;\
643
	( rep_ ) = DEREF_btype ( x348_ + 11 ) ;\
644
	( destroyer_ ) ( x348_, ( unsigned ) 12 ) ;\
645
    }
646
 
647
 
648
/* Operations for field class_name of union IDENTIFIER */
649
 
650
#define id_class_name_tag		( ( unsigned ) 8 )
651
#define IS_id_class_name( P )		( CHECK_NULL ( P )->ag_tag == 8 )
652
 
653
#define id_class_name_defn( P )		( CHECK_TAG ( ( P ), 8 ) + 10 )
654
#define id_class_name_rep( P )		( CHECK_TAG ( ( P ), 8 ) + 11 )
655
 
656
#define MAKE_id_class_name( name_, storage_, parent_, loc_, defn_, c_class_id )\
657
    {\
658
	c_class *x349_ = GEN_c_class ( 12, TYPEID_id ) ;\
659
	x349_->ag_tag = 8 ;\
660
	COPY_hashid ( x349_ + 1, ( name_ ) ) ;\
661
	COPY_dspec ( x349_ + 2, ( storage_ ) ) ;\
662
	COPY_nspace ( x349_ + 3, ( parent_ ) ) ;\
663
	COPY_ulong ( x349_ + 4, ( loc_ ).line ) ;\
664
	COPY_ulong ( x349_ + 5, ( loc_ ).column ) ;\
665
	COPY_ptr ( x349_ + 6, ( loc_ ).posn ) ;\
666
	COPY_id ( x349_ + 7, x349_ ) ;\
667
	COPY_ulong ( x349_ + 8, LINK_NONE ) ;\
668
	COPY_ulong ( x349_ + 9, LINK_NONE ) ;\
669
	COPY_type ( x349_ + 10, ( defn_ ) ) ;\
670
	COPY_btype ( x349_ + 11, btype_none ) ;\
671
	( c_class_id ) = x349_ ;\
672
    }
673
 
674
#define DECONS_id_class_name( name_, storage_, parent_, loc_, alias_, no_, dump_, defn_, rep_, c_class_id )\
675
    {\
676
	c_class *x350_ = CHECK_TAG ( ( c_class_id ), 8 ) ;\
677
	( name_ ) = DEREF_hashid ( x350_ + 1 ) ;\
678
	( storage_ ) = DEREF_dspec ( x350_ + 2 ) ;\
679
	( parent_ ) = DEREF_nspace ( x350_ + 3 ) ;\
680
	( loc_ ).line = DEREF_ulong ( x350_ + 4 ) ;\
681
	( loc_ ).column = DEREF_ulong ( x350_ + 5 ) ;\
682
	( loc_ ).posn = DEREF_ptr ( x350_ + 6 ) ;\
683
	( alias_ ) = DEREF_id ( x350_ + 7 ) ;\
684
	( no_ ) = DEREF_ulong ( x350_ + 8 ) ;\
685
	( dump_ ) = DEREF_ulong ( x350_ + 9 ) ;\
686
	( defn_ ) = DEREF_type ( x350_ + 10 ) ;\
687
	( rep_ ) = DEREF_btype ( x350_ + 11 ) ;\
688
    }
689
 
690
#define DESTROY_id_class_name( destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, defn_, rep_, c_class_id )\
691
    {\
692
	c_class *x351_ = CHECK_TAG ( ( c_class_id ), 8 ) ;\
693
	( name_ ) = DEREF_hashid ( x351_ + 1 ) ;\
694
	( storage_ ) = DEREF_dspec ( x351_ + 2 ) ;\
695
	( parent_ ) = DEREF_nspace ( x351_ + 3 ) ;\
696
	( loc_ ).line = DEREF_ulong ( x351_ + 4 ) ;\
697
	( loc_ ).column = DEREF_ulong ( x351_ + 5 ) ;\
698
	( loc_ ).posn = DEREF_ptr ( x351_ + 6 ) ;\
699
	( alias_ ) = DEREF_id ( x351_ + 7 ) ;\
700
	( no_ ) = DEREF_ulong ( x351_ + 8 ) ;\
701
	( dump_ ) = DEREF_ulong ( x351_ + 9 ) ;\
702
	( defn_ ) = DEREF_type ( x351_ + 10 ) ;\
703
	( rep_ ) = DEREF_btype ( x351_ + 11 ) ;\
704
	( destroyer_ ) ( x351_, ( unsigned ) 12 ) ;\
705
    }
706
 
707
 
708
/* Operations for field enum_name of union IDENTIFIER */
709
 
710
#define id_enum_name_tag		( ( unsigned ) 9 )
711
#define IS_id_enum_name( P )		( CHECK_NULL ( P )->ag_tag == 9 )
712
 
713
#define id_enum_name_defn( P )		( CHECK_TAG ( ( P ), 9 ) + 10 )
714
#define id_enum_name_rep( P )		( CHECK_TAG ( ( P ), 9 ) + 11 )
715
 
716
#define MAKE_id_enum_name( name_, storage_, parent_, loc_, defn_, c_class_id )\
717
    {\
718
	c_class *x352_ = GEN_c_class ( 12, TYPEID_id ) ;\
719
	x352_->ag_tag = 9 ;\
720
	COPY_hashid ( x352_ + 1, ( name_ ) ) ;\
721
	COPY_dspec ( x352_ + 2, ( storage_ ) ) ;\
722
	COPY_nspace ( x352_ + 3, ( parent_ ) ) ;\
723
	COPY_ulong ( x352_ + 4, ( loc_ ).line ) ;\
724
	COPY_ulong ( x352_ + 5, ( loc_ ).column ) ;\
725
	COPY_ptr ( x352_ + 6, ( loc_ ).posn ) ;\
726
	COPY_id ( x352_ + 7, x352_ ) ;\
727
	COPY_ulong ( x352_ + 8, LINK_NONE ) ;\
728
	COPY_ulong ( x352_ + 9, LINK_NONE ) ;\
729
	COPY_type ( x352_ + 10, ( defn_ ) ) ;\
730
	COPY_btype ( x352_ + 11, btype_none ) ;\
731
	( c_class_id ) = x352_ ;\
732
    }
733
 
734
#define DECONS_id_enum_name( name_, storage_, parent_, loc_, alias_, no_, dump_, defn_, rep_, c_class_id )\
735
    {\
736
	c_class *x353_ = CHECK_TAG ( ( c_class_id ), 9 ) ;\
737
	( name_ ) = DEREF_hashid ( x353_ + 1 ) ;\
738
	( storage_ ) = DEREF_dspec ( x353_ + 2 ) ;\
739
	( parent_ ) = DEREF_nspace ( x353_ + 3 ) ;\
740
	( loc_ ).line = DEREF_ulong ( x353_ + 4 ) ;\
741
	( loc_ ).column = DEREF_ulong ( x353_ + 5 ) ;\
742
	( loc_ ).posn = DEREF_ptr ( x353_ + 6 ) ;\
743
	( alias_ ) = DEREF_id ( x353_ + 7 ) ;\
744
	( no_ ) = DEREF_ulong ( x353_ + 8 ) ;\
745
	( dump_ ) = DEREF_ulong ( x353_ + 9 ) ;\
746
	( defn_ ) = DEREF_type ( x353_ + 10 ) ;\
747
	( rep_ ) = DEREF_btype ( x353_ + 11 ) ;\
748
    }
749
 
750
#define DESTROY_id_enum_name( destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, defn_, rep_, c_class_id )\
751
    {\
752
	c_class *x354_ = CHECK_TAG ( ( c_class_id ), 9 ) ;\
753
	( name_ ) = DEREF_hashid ( x354_ + 1 ) ;\
754
	( storage_ ) = DEREF_dspec ( x354_ + 2 ) ;\
755
	( parent_ ) = DEREF_nspace ( x354_ + 3 ) ;\
756
	( loc_ ).line = DEREF_ulong ( x354_ + 4 ) ;\
757
	( loc_ ).column = DEREF_ulong ( x354_ + 5 ) ;\
758
	( loc_ ).posn = DEREF_ptr ( x354_ + 6 ) ;\
759
	( alias_ ) = DEREF_id ( x354_ + 7 ) ;\
760
	( no_ ) = DEREF_ulong ( x354_ + 8 ) ;\
761
	( dump_ ) = DEREF_ulong ( x354_ + 9 ) ;\
762
	( defn_ ) = DEREF_type ( x354_ + 10 ) ;\
763
	( rep_ ) = DEREF_btype ( x354_ + 11 ) ;\
764
	( destroyer_ ) ( x354_, ( unsigned ) 12 ) ;\
765
    }
766
 
767
 
768
/* Operations for field class_alias of union IDENTIFIER */
769
 
770
#define id_class_alias_tag		( ( unsigned ) 10 )
771
#define IS_id_class_alias( P )		( CHECK_NULL ( P )->ag_tag == 10 )
772
 
773
#define id_class_alias_defn( P )	( CHECK_TAG ( ( P ), 10 ) + 10 )
774
#define id_class_alias_rep( P )		( CHECK_TAG ( ( P ), 10 ) + 11 )
775
 
776
#define MAKE_id_class_alias( name_, storage_, parent_, loc_, defn_, c_class_id )\
777
    {\
778
	c_class *x355_ = GEN_c_class ( 12, TYPEID_id ) ;\
779
	x355_->ag_tag = 10 ;\
780
	COPY_hashid ( x355_ + 1, ( name_ ) ) ;\
781
	COPY_dspec ( x355_ + 2, ( storage_ ) ) ;\
782
	COPY_nspace ( x355_ + 3, ( parent_ ) ) ;\
783
	COPY_ulong ( x355_ + 4, ( loc_ ).line ) ;\
784
	COPY_ulong ( x355_ + 5, ( loc_ ).column ) ;\
785
	COPY_ptr ( x355_ + 6, ( loc_ ).posn ) ;\
786
	COPY_id ( x355_ + 7, x355_ ) ;\
787
	COPY_ulong ( x355_ + 8, LINK_NONE ) ;\
788
	COPY_ulong ( x355_ + 9, LINK_NONE ) ;\
789
	COPY_type ( x355_ + 10, ( defn_ ) ) ;\
790
	COPY_btype ( x355_ + 11, btype_none ) ;\
791
	( c_class_id ) = x355_ ;\
792
    }
793
 
794
#define DECONS_id_class_alias( name_, storage_, parent_, loc_, alias_, no_, dump_, defn_, rep_, c_class_id )\
795
    {\
796
	c_class *x356_ = CHECK_TAG ( ( c_class_id ), 10 ) ;\
797
	( name_ ) = DEREF_hashid ( x356_ + 1 ) ;\
798
	( storage_ ) = DEREF_dspec ( x356_ + 2 ) ;\
799
	( parent_ ) = DEREF_nspace ( x356_ + 3 ) ;\
800
	( loc_ ).line = DEREF_ulong ( x356_ + 4 ) ;\
801
	( loc_ ).column = DEREF_ulong ( x356_ + 5 ) ;\
802
	( loc_ ).posn = DEREF_ptr ( x356_ + 6 ) ;\
803
	( alias_ ) = DEREF_id ( x356_ + 7 ) ;\
804
	( no_ ) = DEREF_ulong ( x356_ + 8 ) ;\
805
	( dump_ ) = DEREF_ulong ( x356_ + 9 ) ;\
806
	( defn_ ) = DEREF_type ( x356_ + 10 ) ;\
807
	( rep_ ) = DEREF_btype ( x356_ + 11 ) ;\
808
    }
809
 
810
#define DESTROY_id_class_alias( destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, defn_, rep_, c_class_id )\
811
    {\
812
	c_class *x357_ = CHECK_TAG ( ( c_class_id ), 10 ) ;\
813
	( name_ ) = DEREF_hashid ( x357_ + 1 ) ;\
814
	( storage_ ) = DEREF_dspec ( x357_ + 2 ) ;\
815
	( parent_ ) = DEREF_nspace ( x357_ + 3 ) ;\
816
	( loc_ ).line = DEREF_ulong ( x357_ + 4 ) ;\
817
	( loc_ ).column = DEREF_ulong ( x357_ + 5 ) ;\
818
	( loc_ ).posn = DEREF_ptr ( x357_ + 6 ) ;\
819
	( alias_ ) = DEREF_id ( x357_ + 7 ) ;\
820
	( no_ ) = DEREF_ulong ( x357_ + 8 ) ;\
821
	( dump_ ) = DEREF_ulong ( x357_ + 9 ) ;\
822
	( defn_ ) = DEREF_type ( x357_ + 10 ) ;\
823
	( rep_ ) = DEREF_btype ( x357_ + 11 ) ;\
824
	( destroyer_ ) ( x357_, ( unsigned ) 12 ) ;\
825
    }
826
 
827
 
828
/* Operations for field enum_alias of union IDENTIFIER */
829
 
830
#define id_enum_alias_tag		( ( unsigned ) 11 )
831
#define IS_id_enum_alias( P )		( CHECK_NULL ( P )->ag_tag == 11 )
832
 
833
#define id_enum_alias_defn( P )		( CHECK_TAG ( ( P ), 11 ) + 10 )
834
#define id_enum_alias_rep( P )		( CHECK_TAG ( ( P ), 11 ) + 11 )
835
 
836
#define MAKE_id_enum_alias( name_, storage_, parent_, loc_, defn_, c_class_id )\
837
    {\
838
	c_class *x358_ = GEN_c_class ( 12, TYPEID_id ) ;\
839
	x358_->ag_tag = 11 ;\
840
	COPY_hashid ( x358_ + 1, ( name_ ) ) ;\
841
	COPY_dspec ( x358_ + 2, ( storage_ ) ) ;\
842
	COPY_nspace ( x358_ + 3, ( parent_ ) ) ;\
843
	COPY_ulong ( x358_ + 4, ( loc_ ).line ) ;\
844
	COPY_ulong ( x358_ + 5, ( loc_ ).column ) ;\
845
	COPY_ptr ( x358_ + 6, ( loc_ ).posn ) ;\
846
	COPY_id ( x358_ + 7, x358_ ) ;\
847
	COPY_ulong ( x358_ + 8, LINK_NONE ) ;\
848
	COPY_ulong ( x358_ + 9, LINK_NONE ) ;\
849
	COPY_type ( x358_ + 10, ( defn_ ) ) ;\
850
	COPY_btype ( x358_ + 11, btype_none ) ;\
851
	( c_class_id ) = x358_ ;\
852
    }
853
 
854
#define DECONS_id_enum_alias( name_, storage_, parent_, loc_, alias_, no_, dump_, defn_, rep_, c_class_id )\
855
    {\
856
	c_class *x359_ = CHECK_TAG ( ( c_class_id ), 11 ) ;\
857
	( name_ ) = DEREF_hashid ( x359_ + 1 ) ;\
858
	( storage_ ) = DEREF_dspec ( x359_ + 2 ) ;\
859
	( parent_ ) = DEREF_nspace ( x359_ + 3 ) ;\
860
	( loc_ ).line = DEREF_ulong ( x359_ + 4 ) ;\
861
	( loc_ ).column = DEREF_ulong ( x359_ + 5 ) ;\
862
	( loc_ ).posn = DEREF_ptr ( x359_ + 6 ) ;\
863
	( alias_ ) = DEREF_id ( x359_ + 7 ) ;\
864
	( no_ ) = DEREF_ulong ( x359_ + 8 ) ;\
865
	( dump_ ) = DEREF_ulong ( x359_ + 9 ) ;\
866
	( defn_ ) = DEREF_type ( x359_ + 10 ) ;\
867
	( rep_ ) = DEREF_btype ( x359_ + 11 ) ;\
868
    }
869
 
870
#define DESTROY_id_enum_alias( destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, defn_, rep_, c_class_id )\
871
    {\
872
	c_class *x360_ = CHECK_TAG ( ( c_class_id ), 11 ) ;\
873
	( name_ ) = DEREF_hashid ( x360_ + 1 ) ;\
874
	( storage_ ) = DEREF_dspec ( x360_ + 2 ) ;\
875
	( parent_ ) = DEREF_nspace ( x360_ + 3 ) ;\
876
	( loc_ ).line = DEREF_ulong ( x360_ + 4 ) ;\
877
	( loc_ ).column = DEREF_ulong ( x360_ + 5 ) ;\
878
	( loc_ ).posn = DEREF_ptr ( x360_ + 6 ) ;\
879
	( alias_ ) = DEREF_id ( x360_ + 7 ) ;\
880
	( no_ ) = DEREF_ulong ( x360_ + 8 ) ;\
881
	( dump_ ) = DEREF_ulong ( x360_ + 9 ) ;\
882
	( defn_ ) = DEREF_type ( x360_ + 10 ) ;\
883
	( rep_ ) = DEREF_btype ( x360_ + 11 ) ;\
884
	( destroyer_ ) ( x360_, ( unsigned ) 12 ) ;\
885
    }
886
 
887
 
888
/* Operations for field type_alias of union IDENTIFIER */
889
 
890
#define id_type_alias_tag		( ( unsigned ) 12 )
891
#define IS_id_type_alias( P )		( CHECK_NULL ( P )->ag_tag == 12 )
892
 
893
#define id_type_alias_defn( P )		( CHECK_TAG ( ( P ), 12 ) + 10 )
894
#define id_type_alias_rep( P )		( CHECK_TAG ( ( P ), 12 ) + 11 )
895
 
896
#define MAKE_id_type_alias( name_, storage_, parent_, loc_, defn_, c_class_id )\
897
    {\
898
	c_class *x361_ = GEN_c_class ( 12, TYPEID_id ) ;\
899
	x361_->ag_tag = 12 ;\
900
	COPY_hashid ( x361_ + 1, ( name_ ) ) ;\
901
	COPY_dspec ( x361_ + 2, ( storage_ ) ) ;\
902
	COPY_nspace ( x361_ + 3, ( parent_ ) ) ;\
903
	COPY_ulong ( x361_ + 4, ( loc_ ).line ) ;\
904
	COPY_ulong ( x361_ + 5, ( loc_ ).column ) ;\
905
	COPY_ptr ( x361_ + 6, ( loc_ ).posn ) ;\
906
	COPY_id ( x361_ + 7, x361_ ) ;\
907
	COPY_ulong ( x361_ + 8, LINK_NONE ) ;\
908
	COPY_ulong ( x361_ + 9, LINK_NONE ) ;\
909
	COPY_type ( x361_ + 10, ( defn_ ) ) ;\
910
	COPY_btype ( x361_ + 11, btype_none ) ;\
911
	( c_class_id ) = x361_ ;\
912
    }
913
 
914
#define DECONS_id_type_alias( name_, storage_, parent_, loc_, alias_, no_, dump_, defn_, rep_, c_class_id )\
915
    {\
916
	c_class *x362_ = CHECK_TAG ( ( c_class_id ), 12 ) ;\
917
	( name_ ) = DEREF_hashid ( x362_ + 1 ) ;\
918
	( storage_ ) = DEREF_dspec ( x362_ + 2 ) ;\
919
	( parent_ ) = DEREF_nspace ( x362_ + 3 ) ;\
920
	( loc_ ).line = DEREF_ulong ( x362_ + 4 ) ;\
921
	( loc_ ).column = DEREF_ulong ( x362_ + 5 ) ;\
922
	( loc_ ).posn = DEREF_ptr ( x362_ + 6 ) ;\
923
	( alias_ ) = DEREF_id ( x362_ + 7 ) ;\
924
	( no_ ) = DEREF_ulong ( x362_ + 8 ) ;\
925
	( dump_ ) = DEREF_ulong ( x362_ + 9 ) ;\
926
	( defn_ ) = DEREF_type ( x362_ + 10 ) ;\
927
	( rep_ ) = DEREF_btype ( x362_ + 11 ) ;\
928
    }
929
 
930
#define DESTROY_id_type_alias( destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, defn_, rep_, c_class_id )\
931
    {\
932
	c_class *x363_ = CHECK_TAG ( ( c_class_id ), 12 ) ;\
933
	( name_ ) = DEREF_hashid ( x363_ + 1 ) ;\
934
	( storage_ ) = DEREF_dspec ( x363_ + 2 ) ;\
935
	( parent_ ) = DEREF_nspace ( x363_ + 3 ) ;\
936
	( loc_ ).line = DEREF_ulong ( x363_ + 4 ) ;\
937
	( loc_ ).column = DEREF_ulong ( x363_ + 5 ) ;\
938
	( loc_ ).posn = DEREF_ptr ( x363_ + 6 ) ;\
939
	( alias_ ) = DEREF_id ( x363_ + 7 ) ;\
940
	( no_ ) = DEREF_ulong ( x363_ + 8 ) ;\
941
	( dump_ ) = DEREF_ulong ( x363_ + 9 ) ;\
942
	( defn_ ) = DEREF_type ( x363_ + 10 ) ;\
943
	( rep_ ) = DEREF_btype ( x363_ + 11 ) ;\
944
	( destroyer_ ) ( x363_, ( unsigned ) 12 ) ;\
945
    }
946
 
947
 
948
/* Operations for field set nspace_name_etc of union IDENTIFIER */
949
 
950
#define id_nspace_name_etc_tag		( ( unsigned ) 15 )
951
#define IS_id_nspace_name_etc( P )	( ( unsigned ) ( CHECK_NULL ( P )->ag_tag - 13 ) < ( unsigned ) 2 )
952
 
953
#define id_nspace_name_etc_defn( P )	( CHECK_TAG_ETC ( ( P ), 13, 15 ) + 10 )
954
 
955
#define MAKE_id_nspace_name_etc( tag, name_, storage_, parent_, loc_, defn_, c_class_id )\
956
    {\
957
	c_class *x364_ = GEN_c_class ( 11, TYPEID_id ) ;\
958
	x364_->ag_tag = ( tag ) ;\
959
	COPY_hashid ( x364_ + 1, ( name_ ) ) ;\
960
	COPY_dspec ( x364_ + 2, ( storage_ ) ) ;\
961
	COPY_nspace ( x364_ + 3, ( parent_ ) ) ;\
962
	COPY_ulong ( x364_ + 4, ( loc_ ).line ) ;\
963
	COPY_ulong ( x364_ + 5, ( loc_ ).column ) ;\
964
	COPY_ptr ( x364_ + 6, ( loc_ ).posn ) ;\
965
	COPY_id ( x364_ + 7, x364_ ) ;\
966
	COPY_ulong ( x364_ + 8, LINK_NONE ) ;\
967
	COPY_ulong ( x364_ + 9, LINK_NONE ) ;\
968
	COPY_nspace ( x364_ + 10, ( defn_ ) ) ;\
969
	( c_class_id ) = CHECK_TAG_ETC ( x364_, 13, 15 ) ;\
970
    }
971
 
972
#define MODIFY_id_nspace_name_etc( tag, c_class_id )\
973
    {\
974
	c_class *x365_ = CHECK_TAG_ETC ( ( c_class_id ), 13, 15 ) ;\
975
	x365_->ag_tag = ( tag ) ;\
976
	( void ) CHECK_TAG_ETC ( x365_, 13, 15 ) ;\
977
    }
978
 
979
#define DECONS_id_nspace_name_etc( name_, storage_, parent_, loc_, alias_, no_, dump_, defn_, c_class_id )\
980
    {\
981
	c_class *x366_ = CHECK_TAG_ETC ( ( c_class_id ), 13, 15 ) ;\
982
	( name_ ) = DEREF_hashid ( x366_ + 1 ) ;\
983
	( storage_ ) = DEREF_dspec ( x366_ + 2 ) ;\
984
	( parent_ ) = DEREF_nspace ( x366_ + 3 ) ;\
985
	( loc_ ).line = DEREF_ulong ( x366_ + 4 ) ;\
986
	( loc_ ).column = DEREF_ulong ( x366_ + 5 ) ;\
987
	( loc_ ).posn = DEREF_ptr ( x366_ + 6 ) ;\
988
	( alias_ ) = DEREF_id ( x366_ + 7 ) ;\
989
	( no_ ) = DEREF_ulong ( x366_ + 8 ) ;\
990
	( dump_ ) = DEREF_ulong ( x366_ + 9 ) ;\
991
	( defn_ ) = DEREF_nspace ( x366_ + 10 ) ;\
992
    }
993
 
994
#define DESTROY_id_nspace_name_etc( destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, defn_, c_class_id )\
995
    {\
996
	c_class *x367_ = CHECK_TAG_ETC ( ( c_class_id ), 13, 15 ) ;\
997
	( name_ ) = DEREF_hashid ( x367_ + 1 ) ;\
998
	( storage_ ) = DEREF_dspec ( x367_ + 2 ) ;\
999
	( parent_ ) = DEREF_nspace ( x367_ + 3 ) ;\
1000
	( loc_ ).line = DEREF_ulong ( x367_ + 4 ) ;\
1001
	( loc_ ).column = DEREF_ulong ( x367_ + 5 ) ;\
1002
	( loc_ ).posn = DEREF_ptr ( x367_ + 6 ) ;\
1003
	( alias_ ) = DEREF_id ( x367_ + 7 ) ;\
1004
	( no_ ) = DEREF_ulong ( x367_ + 8 ) ;\
1005
	( dump_ ) = DEREF_ulong ( x367_ + 9 ) ;\
1006
	( defn_ ) = DEREF_nspace ( x367_ + 10 ) ;\
1007
	( destroyer_ ) ( x367_, ( unsigned ) 11 ) ;\
1008
    }
1009
 
1010
 
1011
/* Operations for field nspace_name of union IDENTIFIER */
1012
 
1013
#define id_nspace_name_tag		( ( unsigned ) 13 )
1014
#define IS_id_nspace_name( P )		( CHECK_NULL ( P )->ag_tag == 13 )
1015
 
1016
#define id_nspace_name_defn( P )	( CHECK_TAG ( ( P ), 13 ) + 10 )
1017
 
1018
#define MAKE_id_nspace_name( name_, storage_, parent_, loc_, defn_, c_class_id )\
1019
    {\
1020
	c_class *x368_ = GEN_c_class ( 11, TYPEID_id ) ;\
1021
	x368_->ag_tag = 13 ;\
1022
	COPY_hashid ( x368_ + 1, ( name_ ) ) ;\
1023
	COPY_dspec ( x368_ + 2, ( storage_ ) ) ;\
1024
	COPY_nspace ( x368_ + 3, ( parent_ ) ) ;\
1025
	COPY_ulong ( x368_ + 4, ( loc_ ).line ) ;\
1026
	COPY_ulong ( x368_ + 5, ( loc_ ).column ) ;\
1027
	COPY_ptr ( x368_ + 6, ( loc_ ).posn ) ;\
1028
	COPY_id ( x368_ + 7, x368_ ) ;\
1029
	COPY_ulong ( x368_ + 8, LINK_NONE ) ;\
1030
	COPY_ulong ( x368_ + 9, LINK_NONE ) ;\
1031
	COPY_nspace ( x368_ + 10, ( defn_ ) ) ;\
1032
	( c_class_id ) = x368_ ;\
1033
    }
1034
 
1035
#define DECONS_id_nspace_name( name_, storage_, parent_, loc_, alias_, no_, dump_, defn_, c_class_id )\
1036
    {\
1037
	c_class *x369_ = CHECK_TAG ( ( c_class_id ), 13 ) ;\
1038
	( name_ ) = DEREF_hashid ( x369_ + 1 ) ;\
1039
	( storage_ ) = DEREF_dspec ( x369_ + 2 ) ;\
1040
	( parent_ ) = DEREF_nspace ( x369_ + 3 ) ;\
1041
	( loc_ ).line = DEREF_ulong ( x369_ + 4 ) ;\
1042
	( loc_ ).column = DEREF_ulong ( x369_ + 5 ) ;\
1043
	( loc_ ).posn = DEREF_ptr ( x369_ + 6 ) ;\
1044
	( alias_ ) = DEREF_id ( x369_ + 7 ) ;\
1045
	( no_ ) = DEREF_ulong ( x369_ + 8 ) ;\
1046
	( dump_ ) = DEREF_ulong ( x369_ + 9 ) ;\
1047
	( defn_ ) = DEREF_nspace ( x369_ + 10 ) ;\
1048
    }
1049
 
1050
#define DESTROY_id_nspace_name( destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, defn_, c_class_id )\
1051
    {\
1052
	c_class *x370_ = CHECK_TAG ( ( c_class_id ), 13 ) ;\
1053
	( name_ ) = DEREF_hashid ( x370_ + 1 ) ;\
1054
	( storage_ ) = DEREF_dspec ( x370_ + 2 ) ;\
1055
	( parent_ ) = DEREF_nspace ( x370_ + 3 ) ;\
1056
	( loc_ ).line = DEREF_ulong ( x370_ + 4 ) ;\
1057
	( loc_ ).column = DEREF_ulong ( x370_ + 5 ) ;\
1058
	( loc_ ).posn = DEREF_ptr ( x370_ + 6 ) ;\
1059
	( alias_ ) = DEREF_id ( x370_ + 7 ) ;\
1060
	( no_ ) = DEREF_ulong ( x370_ + 8 ) ;\
1061
	( dump_ ) = DEREF_ulong ( x370_ + 9 ) ;\
1062
	( defn_ ) = DEREF_nspace ( x370_ + 10 ) ;\
1063
	( destroyer_ ) ( x370_, ( unsigned ) 11 ) ;\
1064
    }
1065
 
1066
 
1067
/* Operations for field nspace_alias of union IDENTIFIER */
1068
 
1069
#define id_nspace_alias_tag		( ( unsigned ) 14 )
1070
#define IS_id_nspace_alias( P )		( CHECK_NULL ( P )->ag_tag == 14 )
1071
 
1072
#define id_nspace_alias_defn( P )	( CHECK_TAG ( ( P ), 14 ) + 10 )
1073
 
1074
#define MAKE_id_nspace_alias( name_, storage_, parent_, loc_, defn_, c_class_id )\
1075
    {\
1076
	c_class *x371_ = GEN_c_class ( 11, TYPEID_id ) ;\
1077
	x371_->ag_tag = 14 ;\
1078
	COPY_hashid ( x371_ + 1, ( name_ ) ) ;\
1079
	COPY_dspec ( x371_ + 2, ( storage_ ) ) ;\
1080
	COPY_nspace ( x371_ + 3, ( parent_ ) ) ;\
1081
	COPY_ulong ( x371_ + 4, ( loc_ ).line ) ;\
1082
	COPY_ulong ( x371_ + 5, ( loc_ ).column ) ;\
1083
	COPY_ptr ( x371_ + 6, ( loc_ ).posn ) ;\
1084
	COPY_id ( x371_ + 7, x371_ ) ;\
1085
	COPY_ulong ( x371_ + 8, LINK_NONE ) ;\
1086
	COPY_ulong ( x371_ + 9, LINK_NONE ) ;\
1087
	COPY_nspace ( x371_ + 10, ( defn_ ) ) ;\
1088
	( c_class_id ) = x371_ ;\
1089
    }
1090
 
1091
#define DECONS_id_nspace_alias( name_, storage_, parent_, loc_, alias_, no_, dump_, defn_, c_class_id )\
1092
    {\
1093
	c_class *x372_ = CHECK_TAG ( ( c_class_id ), 14 ) ;\
1094
	( name_ ) = DEREF_hashid ( x372_ + 1 ) ;\
1095
	( storage_ ) = DEREF_dspec ( x372_ + 2 ) ;\
1096
	( parent_ ) = DEREF_nspace ( x372_ + 3 ) ;\
1097
	( loc_ ).line = DEREF_ulong ( x372_ + 4 ) ;\
1098
	( loc_ ).column = DEREF_ulong ( x372_ + 5 ) ;\
1099
	( loc_ ).posn = DEREF_ptr ( x372_ + 6 ) ;\
1100
	( alias_ ) = DEREF_id ( x372_ + 7 ) ;\
1101
	( no_ ) = DEREF_ulong ( x372_ + 8 ) ;\
1102
	( dump_ ) = DEREF_ulong ( x372_ + 9 ) ;\
1103
	( defn_ ) = DEREF_nspace ( x372_ + 10 ) ;\
1104
    }
1105
 
1106
#define DESTROY_id_nspace_alias( destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, defn_, c_class_id )\
1107
    {\
1108
	c_class *x373_ = CHECK_TAG ( ( c_class_id ), 14 ) ;\
1109
	( name_ ) = DEREF_hashid ( x373_ + 1 ) ;\
1110
	( storage_ ) = DEREF_dspec ( x373_ + 2 ) ;\
1111
	( parent_ ) = DEREF_nspace ( x373_ + 3 ) ;\
1112
	( loc_ ).line = DEREF_ulong ( x373_ + 4 ) ;\
1113
	( loc_ ).column = DEREF_ulong ( x373_ + 5 ) ;\
1114
	( loc_ ).posn = DEREF_ptr ( x373_ + 6 ) ;\
1115
	( alias_ ) = DEREF_id ( x373_ + 7 ) ;\
1116
	( no_ ) = DEREF_ulong ( x373_ + 8 ) ;\
1117
	( dump_ ) = DEREF_ulong ( x373_ + 9 ) ;\
1118
	( defn_ ) = DEREF_nspace ( x373_ + 10 ) ;\
1119
	( destroyer_ ) ( x373_, ( unsigned ) 11 ) ;\
1120
    }
1121
 
1122
 
1123
/* Operations for field set variable_etc of union IDENTIFIER */
1124
 
1125
#define id_variable_etc_tag		( ( unsigned ) 18 )
1126
#define IS_id_variable_etc( P )		( ( unsigned ) ( CHECK_NULL ( P )->ag_tag - 15 ) < ( unsigned ) 3 )
1127
 
1128
#define id_variable_etc_type( P )	( CHECK_TAG_ETC ( ( P ), 15, 18 ) + 10 )
1129
#define id_variable_etc_init( P )	( CHECK_TAG_ETC ( ( P ), 15, 18 ) + 11 )
1130
#define id_variable_etc_term( P )	( CHECK_TAG_ETC ( ( P ), 15, 18 ) + 12 )
1131
 
1132
#define MAKE_id_variable_etc( tag, name_, storage_, parent_, loc_, type_, c_class_id )\
1133
    {\
1134
	c_class *x374_ = GEN_c_class ( 13, TYPEID_id ) ;\
1135
	x374_->ag_tag = ( tag ) ;\
1136
	COPY_hashid ( x374_ + 1, ( name_ ) ) ;\
1137
	COPY_dspec ( x374_ + 2, ( storage_ ) ) ;\
1138
	COPY_nspace ( x374_ + 3, ( parent_ ) ) ;\
1139
	COPY_ulong ( x374_ + 4, ( loc_ ).line ) ;\
1140
	COPY_ulong ( x374_ + 5, ( loc_ ).column ) ;\
1141
	COPY_ptr ( x374_ + 6, ( loc_ ).posn ) ;\
1142
	COPY_id ( x374_ + 7, x374_ ) ;\
1143
	COPY_ulong ( x374_ + 8, LINK_NONE ) ;\
1144
	COPY_ulong ( x374_ + 9, LINK_NONE ) ;\
1145
	COPY_type ( x374_ + 10, ( type_ ) ) ;\
1146
	COPY_exp ( x374_ + 11, NULL_exp ) ;\
1147
	COPY_exp ( x374_ + 12, NULL_exp ) ;\
1148
	( c_class_id ) = CHECK_TAG_ETC ( x374_, 15, 18 ) ;\
1149
    }
1150
 
1151
#define MODIFY_id_variable_etc( tag, c_class_id )\
1152
    {\
1153
	c_class *x375_ = CHECK_TAG_ETC ( ( c_class_id ), 15, 18 ) ;\
1154
	x375_->ag_tag = ( tag ) ;\
1155
	( void ) CHECK_TAG_ETC ( x375_, 15, 18 ) ;\
1156
    }
1157
 
1158
#define DECONS_id_variable_etc( name_, storage_, parent_, loc_, alias_, no_, dump_, type_, init_, term_, c_class_id )\
1159
    {\
1160
	c_class *x376_ = CHECK_TAG_ETC ( ( c_class_id ), 15, 18 ) ;\
1161
	( name_ ) = DEREF_hashid ( x376_ + 1 ) ;\
1162
	( storage_ ) = DEREF_dspec ( x376_ + 2 ) ;\
1163
	( parent_ ) = DEREF_nspace ( x376_ + 3 ) ;\
1164
	( loc_ ).line = DEREF_ulong ( x376_ + 4 ) ;\
1165
	( loc_ ).column = DEREF_ulong ( x376_ + 5 ) ;\
1166
	( loc_ ).posn = DEREF_ptr ( x376_ + 6 ) ;\
1167
	( alias_ ) = DEREF_id ( x376_ + 7 ) ;\
1168
	( no_ ) = DEREF_ulong ( x376_ + 8 ) ;\
1169
	( dump_ ) = DEREF_ulong ( x376_ + 9 ) ;\
1170
	( type_ ) = DEREF_type ( x376_ + 10 ) ;\
1171
	( init_ ) = DEREF_exp ( x376_ + 11 ) ;\
1172
	( term_ ) = DEREF_exp ( x376_ + 12 ) ;\
1173
    }
1174
 
1175
#define DESTROY_id_variable_etc( destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, type_, init_, term_, c_class_id )\
1176
    {\
1177
	c_class *x377_ = CHECK_TAG_ETC ( ( c_class_id ), 15, 18 ) ;\
1178
	( name_ ) = DEREF_hashid ( x377_ + 1 ) ;\
1179
	( storage_ ) = DEREF_dspec ( x377_ + 2 ) ;\
1180
	( parent_ ) = DEREF_nspace ( x377_ + 3 ) ;\
1181
	( loc_ ).line = DEREF_ulong ( x377_ + 4 ) ;\
1182
	( loc_ ).column = DEREF_ulong ( x377_ + 5 ) ;\
1183
	( loc_ ).posn = DEREF_ptr ( x377_ + 6 ) ;\
1184
	( alias_ ) = DEREF_id ( x377_ + 7 ) ;\
1185
	( no_ ) = DEREF_ulong ( x377_ + 8 ) ;\
1186
	( dump_ ) = DEREF_ulong ( x377_ + 9 ) ;\
1187
	( type_ ) = DEREF_type ( x377_ + 10 ) ;\
1188
	( init_ ) = DEREF_exp ( x377_ + 11 ) ;\
1189
	( term_ ) = DEREF_exp ( x377_ + 12 ) ;\
1190
	( destroyer_ ) ( x377_, ( unsigned ) 13 ) ;\
1191
    }
1192
 
1193
 
1194
/* Operations for field variable of union IDENTIFIER */
1195
 
1196
#define id_variable_tag			( ( unsigned ) 15 )
1197
#define IS_id_variable( P )		( CHECK_NULL ( P )->ag_tag == 15 )
1198
 
1199
#define id_variable_type( P )		( CHECK_TAG ( ( P ), 15 ) + 10 )
1200
#define id_variable_init( P )		( CHECK_TAG ( ( P ), 15 ) + 11 )
1201
#define id_variable_term( P )		( CHECK_TAG ( ( P ), 15 ) + 12 )
1202
 
1203
#define MAKE_id_variable( name_, storage_, parent_, loc_, type_, c_class_id )\
1204
    {\
1205
	c_class *x378_ = GEN_c_class ( 13, TYPEID_id ) ;\
1206
	x378_->ag_tag = 15 ;\
1207
	COPY_hashid ( x378_ + 1, ( name_ ) ) ;\
1208
	COPY_dspec ( x378_ + 2, ( storage_ ) ) ;\
1209
	COPY_nspace ( x378_ + 3, ( parent_ ) ) ;\
1210
	COPY_ulong ( x378_ + 4, ( loc_ ).line ) ;\
1211
	COPY_ulong ( x378_ + 5, ( loc_ ).column ) ;\
1212
	COPY_ptr ( x378_ + 6, ( loc_ ).posn ) ;\
1213
	COPY_id ( x378_ + 7, x378_ ) ;\
1214
	COPY_ulong ( x378_ + 8, LINK_NONE ) ;\
1215
	COPY_ulong ( x378_ + 9, LINK_NONE ) ;\
1216
	COPY_type ( x378_ + 10, ( type_ ) ) ;\
1217
	COPY_exp ( x378_ + 11, NULL_exp ) ;\
1218
	COPY_exp ( x378_ + 12, NULL_exp ) ;\
1219
	( c_class_id ) = x378_ ;\
1220
    }
1221
 
1222
#define DECONS_id_variable( name_, storage_, parent_, loc_, alias_, no_, dump_, type_, init_, term_, c_class_id )\
1223
    {\
1224
	c_class *x379_ = CHECK_TAG ( ( c_class_id ), 15 ) ;\
1225
	( name_ ) = DEREF_hashid ( x379_ + 1 ) ;\
1226
	( storage_ ) = DEREF_dspec ( x379_ + 2 ) ;\
1227
	( parent_ ) = DEREF_nspace ( x379_ + 3 ) ;\
1228
	( loc_ ).line = DEREF_ulong ( x379_ + 4 ) ;\
1229
	( loc_ ).column = DEREF_ulong ( x379_ + 5 ) ;\
1230
	( loc_ ).posn = DEREF_ptr ( x379_ + 6 ) ;\
1231
	( alias_ ) = DEREF_id ( x379_ + 7 ) ;\
1232
	( no_ ) = DEREF_ulong ( x379_ + 8 ) ;\
1233
	( dump_ ) = DEREF_ulong ( x379_ + 9 ) ;\
1234
	( type_ ) = DEREF_type ( x379_ + 10 ) ;\
1235
	( init_ ) = DEREF_exp ( x379_ + 11 ) ;\
1236
	( term_ ) = DEREF_exp ( x379_ + 12 ) ;\
1237
    }
1238
 
1239
#define DESTROY_id_variable( destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, type_, init_, term_, c_class_id )\
1240
    {\
1241
	c_class *x380_ = CHECK_TAG ( ( c_class_id ), 15 ) ;\
1242
	( name_ ) = DEREF_hashid ( x380_ + 1 ) ;\
1243
	( storage_ ) = DEREF_dspec ( x380_ + 2 ) ;\
1244
	( parent_ ) = DEREF_nspace ( x380_ + 3 ) ;\
1245
	( loc_ ).line = DEREF_ulong ( x380_ + 4 ) ;\
1246
	( loc_ ).column = DEREF_ulong ( x380_ + 5 ) ;\
1247
	( loc_ ).posn = DEREF_ptr ( x380_ + 6 ) ;\
1248
	( alias_ ) = DEREF_id ( x380_ + 7 ) ;\
1249
	( no_ ) = DEREF_ulong ( x380_ + 8 ) ;\
1250
	( dump_ ) = DEREF_ulong ( x380_ + 9 ) ;\
1251
	( type_ ) = DEREF_type ( x380_ + 10 ) ;\
1252
	( init_ ) = DEREF_exp ( x380_ + 11 ) ;\
1253
	( term_ ) = DEREF_exp ( x380_ + 12 ) ;\
1254
	( destroyer_ ) ( x380_, ( unsigned ) 13 ) ;\
1255
    }
1256
 
1257
 
1258
/* Operations for field parameter of union IDENTIFIER */
1259
 
1260
#define id_parameter_tag		( ( unsigned ) 16 )
1261
#define IS_id_parameter( P )		( CHECK_NULL ( P )->ag_tag == 16 )
1262
 
1263
#define id_parameter_type( P )		( CHECK_TAG ( ( P ), 16 ) + 10 )
1264
#define id_parameter_init( P )		( CHECK_TAG ( ( P ), 16 ) + 11 )
1265
#define id_parameter_term( P )		( CHECK_TAG ( ( P ), 16 ) + 12 )
1266
 
1267
#define MAKE_id_parameter( name_, storage_, parent_, loc_, type_, c_class_id )\
1268
    {\
1269
	c_class *x381_ = GEN_c_class ( 13, TYPEID_id ) ;\
1270
	x381_->ag_tag = 16 ;\
1271
	COPY_hashid ( x381_ + 1, ( name_ ) ) ;\
1272
	COPY_dspec ( x381_ + 2, ( storage_ ) ) ;\
1273
	COPY_nspace ( x381_ + 3, ( parent_ ) ) ;\
1274
	COPY_ulong ( x381_ + 4, ( loc_ ).line ) ;\
1275
	COPY_ulong ( x381_ + 5, ( loc_ ).column ) ;\
1276
	COPY_ptr ( x381_ + 6, ( loc_ ).posn ) ;\
1277
	COPY_id ( x381_ + 7, x381_ ) ;\
1278
	COPY_ulong ( x381_ + 8, LINK_NONE ) ;\
1279
	COPY_ulong ( x381_ + 9, LINK_NONE ) ;\
1280
	COPY_type ( x381_ + 10, ( type_ ) ) ;\
1281
	COPY_exp ( x381_ + 11, NULL_exp ) ;\
1282
	COPY_exp ( x381_ + 12, NULL_exp ) ;\
1283
	( c_class_id ) = x381_ ;\
1284
    }
1285
 
1286
#define DECONS_id_parameter( name_, storage_, parent_, loc_, alias_, no_, dump_, type_, init_, term_, c_class_id )\
1287
    {\
1288
	c_class *x382_ = CHECK_TAG ( ( c_class_id ), 16 ) ;\
1289
	( name_ ) = DEREF_hashid ( x382_ + 1 ) ;\
1290
	( storage_ ) = DEREF_dspec ( x382_ + 2 ) ;\
1291
	( parent_ ) = DEREF_nspace ( x382_ + 3 ) ;\
1292
	( loc_ ).line = DEREF_ulong ( x382_ + 4 ) ;\
1293
	( loc_ ).column = DEREF_ulong ( x382_ + 5 ) ;\
1294
	( loc_ ).posn = DEREF_ptr ( x382_ + 6 ) ;\
1295
	( alias_ ) = DEREF_id ( x382_ + 7 ) ;\
1296
	( no_ ) = DEREF_ulong ( x382_ + 8 ) ;\
1297
	( dump_ ) = DEREF_ulong ( x382_ + 9 ) ;\
1298
	( type_ ) = DEREF_type ( x382_ + 10 ) ;\
1299
	( init_ ) = DEREF_exp ( x382_ + 11 ) ;\
1300
	( term_ ) = DEREF_exp ( x382_ + 12 ) ;\
1301
    }
1302
 
1303
#define DESTROY_id_parameter( destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, type_, init_, term_, c_class_id )\
1304
    {\
1305
	c_class *x383_ = CHECK_TAG ( ( c_class_id ), 16 ) ;\
1306
	( name_ ) = DEREF_hashid ( x383_ + 1 ) ;\
1307
	( storage_ ) = DEREF_dspec ( x383_ + 2 ) ;\
1308
	( parent_ ) = DEREF_nspace ( x383_ + 3 ) ;\
1309
	( loc_ ).line = DEREF_ulong ( x383_ + 4 ) ;\
1310
	( loc_ ).column = DEREF_ulong ( x383_ + 5 ) ;\
1311
	( loc_ ).posn = DEREF_ptr ( x383_ + 6 ) ;\
1312
	( alias_ ) = DEREF_id ( x383_ + 7 ) ;\
1313
	( no_ ) = DEREF_ulong ( x383_ + 8 ) ;\
1314
	( dump_ ) = DEREF_ulong ( x383_ + 9 ) ;\
1315
	( type_ ) = DEREF_type ( x383_ + 10 ) ;\
1316
	( init_ ) = DEREF_exp ( x383_ + 11 ) ;\
1317
	( term_ ) = DEREF_exp ( x383_ + 12 ) ;\
1318
	( destroyer_ ) ( x383_, ( unsigned ) 13 ) ;\
1319
    }
1320
 
1321
 
1322
/* Operations for field stat_member of union IDENTIFIER */
1323
 
1324
#define id_stat_member_tag		( ( unsigned ) 17 )
1325
#define IS_id_stat_member( P )		( CHECK_NULL ( P )->ag_tag == 17 )
1326
 
1327
#define id_stat_member_type( P )	( CHECK_TAG ( ( P ), 17 ) + 10 )
1328
#define id_stat_member_init( P )	( CHECK_TAG ( ( P ), 17 ) + 11 )
1329
#define id_stat_member_term( P )	( CHECK_TAG ( ( P ), 17 ) + 12 )
1330
 
1331
#define MAKE_id_stat_member( name_, storage_, parent_, loc_, type_, c_class_id )\
1332
    {\
1333
	c_class *x384_ = GEN_c_class ( 13, TYPEID_id ) ;\
1334
	x384_->ag_tag = 17 ;\
1335
	COPY_hashid ( x384_ + 1, ( name_ ) ) ;\
1336
	COPY_dspec ( x384_ + 2, ( storage_ ) ) ;\
1337
	COPY_nspace ( x384_ + 3, ( parent_ ) ) ;\
1338
	COPY_ulong ( x384_ + 4, ( loc_ ).line ) ;\
1339
	COPY_ulong ( x384_ + 5, ( loc_ ).column ) ;\
1340
	COPY_ptr ( x384_ + 6, ( loc_ ).posn ) ;\
1341
	COPY_id ( x384_ + 7, x384_ ) ;\
1342
	COPY_ulong ( x384_ + 8, LINK_NONE ) ;\
1343
	COPY_ulong ( x384_ + 9, LINK_NONE ) ;\
1344
	COPY_type ( x384_ + 10, ( type_ ) ) ;\
1345
	COPY_exp ( x384_ + 11, NULL_exp ) ;\
1346
	COPY_exp ( x384_ + 12, NULL_exp ) ;\
1347
	( c_class_id ) = x384_ ;\
1348
    }
1349
 
1350
#define DECONS_id_stat_member( name_, storage_, parent_, loc_, alias_, no_, dump_, type_, init_, term_, c_class_id )\
1351
    {\
1352
	c_class *x385_ = CHECK_TAG ( ( c_class_id ), 17 ) ;\
1353
	( name_ ) = DEREF_hashid ( x385_ + 1 ) ;\
1354
	( storage_ ) = DEREF_dspec ( x385_ + 2 ) ;\
1355
	( parent_ ) = DEREF_nspace ( x385_ + 3 ) ;\
1356
	( loc_ ).line = DEREF_ulong ( x385_ + 4 ) ;\
1357
	( loc_ ).column = DEREF_ulong ( x385_ + 5 ) ;\
1358
	( loc_ ).posn = DEREF_ptr ( x385_ + 6 ) ;\
1359
	( alias_ ) = DEREF_id ( x385_ + 7 ) ;\
1360
	( no_ ) = DEREF_ulong ( x385_ + 8 ) ;\
1361
	( dump_ ) = DEREF_ulong ( x385_ + 9 ) ;\
1362
	( type_ ) = DEREF_type ( x385_ + 10 ) ;\
1363
	( init_ ) = DEREF_exp ( x385_ + 11 ) ;\
1364
	( term_ ) = DEREF_exp ( x385_ + 12 ) ;\
1365
    }
1366
 
1367
#define DESTROY_id_stat_member( destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, type_, init_, term_, c_class_id )\
1368
    {\
1369
	c_class *x386_ = CHECK_TAG ( ( c_class_id ), 17 ) ;\
1370
	( name_ ) = DEREF_hashid ( x386_ + 1 ) ;\
1371
	( storage_ ) = DEREF_dspec ( x386_ + 2 ) ;\
1372
	( parent_ ) = DEREF_nspace ( x386_ + 3 ) ;\
1373
	( loc_ ).line = DEREF_ulong ( x386_ + 4 ) ;\
1374
	( loc_ ).column = DEREF_ulong ( x386_ + 5 ) ;\
1375
	( loc_ ).posn = DEREF_ptr ( x386_ + 6 ) ;\
1376
	( alias_ ) = DEREF_id ( x386_ + 7 ) ;\
1377
	( no_ ) = DEREF_ulong ( x386_ + 8 ) ;\
1378
	( dump_ ) = DEREF_ulong ( x386_ + 9 ) ;\
1379
	( type_ ) = DEREF_type ( x386_ + 10 ) ;\
1380
	( init_ ) = DEREF_exp ( x386_ + 11 ) ;\
1381
	( term_ ) = DEREF_exp ( x386_ + 12 ) ;\
1382
	( destroyer_ ) ( x386_, ( unsigned ) 13 ) ;\
1383
    }
1384
 
1385
 
1386
/* Operations for field weak_param of union IDENTIFIER */
1387
 
1388
#define id_weak_param_tag		( ( unsigned ) 18 )
1389
#define IS_id_weak_param( P )		( CHECK_NULL ( P )->ag_tag == 18 )
1390
 
1391
 
1392
#define MAKE_id_weak_param( name_, storage_, parent_, loc_, c_class_id )\
1393
    {\
1394
	c_class *x387_ = GEN_c_class ( 10, TYPEID_id ) ;\
1395
	x387_->ag_tag = 18 ;\
1396
	COPY_hashid ( x387_ + 1, ( name_ ) ) ;\
1397
	COPY_dspec ( x387_ + 2, ( storage_ ) ) ;\
1398
	COPY_nspace ( x387_ + 3, ( parent_ ) ) ;\
1399
	COPY_ulong ( x387_ + 4, ( loc_ ).line ) ;\
1400
	COPY_ulong ( x387_ + 5, ( loc_ ).column ) ;\
1401
	COPY_ptr ( x387_ + 6, ( loc_ ).posn ) ;\
1402
	COPY_id ( x387_ + 7, x387_ ) ;\
1403
	COPY_ulong ( x387_ + 8, LINK_NONE ) ;\
1404
	COPY_ulong ( x387_ + 9, LINK_NONE ) ;\
1405
	( c_class_id ) = x387_ ;\
1406
    }
1407
 
1408
#define DECONS_id_weak_param( name_, storage_, parent_, loc_, alias_, no_, dump_, c_class_id )\
1409
    {\
1410
	c_class *x388_ = CHECK_TAG ( ( c_class_id ), 18 ) ;\
1411
	( name_ ) = DEREF_hashid ( x388_ + 1 ) ;\
1412
	( storage_ ) = DEREF_dspec ( x388_ + 2 ) ;\
1413
	( parent_ ) = DEREF_nspace ( x388_ + 3 ) ;\
1414
	( loc_ ).line = DEREF_ulong ( x388_ + 4 ) ;\
1415
	( loc_ ).column = DEREF_ulong ( x388_ + 5 ) ;\
1416
	( loc_ ).posn = DEREF_ptr ( x388_ + 6 ) ;\
1417
	( alias_ ) = DEREF_id ( x388_ + 7 ) ;\
1418
	( no_ ) = DEREF_ulong ( x388_ + 8 ) ;\
1419
	( dump_ ) = DEREF_ulong ( x388_ + 9 ) ;\
1420
    }
1421
 
1422
#define DESTROY_id_weak_param( destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, c_class_id )\
1423
    {\
1424
	c_class *x389_ = CHECK_TAG ( ( c_class_id ), 18 ) ;\
1425
	( name_ ) = DEREF_hashid ( x389_ + 1 ) ;\
1426
	( storage_ ) = DEREF_dspec ( x389_ + 2 ) ;\
1427
	( parent_ ) = DEREF_nspace ( x389_ + 3 ) ;\
1428
	( loc_ ).line = DEREF_ulong ( x389_ + 4 ) ;\
1429
	( loc_ ).column = DEREF_ulong ( x389_ + 5 ) ;\
1430
	( loc_ ).posn = DEREF_ptr ( x389_ + 6 ) ;\
1431
	( alias_ ) = DEREF_id ( x389_ + 7 ) ;\
1432
	( no_ ) = DEREF_ulong ( x389_ + 8 ) ;\
1433
	( dump_ ) = DEREF_ulong ( x389_ + 9 ) ;\
1434
	( destroyer_ ) ( x389_, ( unsigned ) 10 ) ;\
1435
    }
1436
 
1437
 
1438
/* Operations for field set function_etc of union IDENTIFIER */
1439
 
1440
#define id_function_etc_tag		( ( unsigned ) 22 )
1441
#define IS_id_function_etc( P )		( ( unsigned ) ( CHECK_NULL ( P )->ag_tag - 19 ) < ( unsigned ) 3 )
1442
 
1443
#define id_function_etc_type( P )	( CHECK_TAG_ETC ( ( P ), 19, 22 ) + 10 )
1444
#define id_function_etc_over( P )	( CHECK_TAG_ETC ( ( P ), 19, 22 ) + 11 )
1445
#define id_function_etc_form( P )	( CHECK_TAG_ETC ( ( P ), 19, 22 ) + 12 )
1446
#define id_function_etc_chums( P )	( CHECK_TAG_ETC ( ( P ), 19, 22 ) + 13 )
1447
#define id_function_etc_defn( P )	( CHECK_TAG_ETC ( ( P ), 19, 22 ) + 14 )
1448
 
1449
#define MAKE_id_function_etc( tag, name_, storage_, parent_, loc_, type_, over_, c_class_id )\
1450
    {\
1451
	c_class *x390_ = GEN_c_class ( 15, TYPEID_id ) ;\
1452
	x390_->ag_tag = ( tag ) ;\
1453
	COPY_hashid ( x390_ + 1, ( name_ ) ) ;\
1454
	COPY_dspec ( x390_ + 2, ( storage_ ) ) ;\
1455
	COPY_nspace ( x390_ + 3, ( parent_ ) ) ;\
1456
	COPY_ulong ( x390_ + 4, ( loc_ ).line ) ;\
1457
	COPY_ulong ( x390_ + 5, ( loc_ ).column ) ;\
1458
	COPY_ptr ( x390_ + 6, ( loc_ ).posn ) ;\
1459
	COPY_id ( x390_ + 7, x390_ ) ;\
1460
	COPY_ulong ( x390_ + 8, LINK_NONE ) ;\
1461
	COPY_ulong ( x390_ + 9, LINK_NONE ) ;\
1462
	COPY_type ( x390_ + 10, ( type_ ) ) ;\
1463
	COPY_id ( x390_ + 11, ( over_ ) ) ;\
1464
	COPY_type ( x390_ + 12, NULL_type ) ;\
1465
	COPY_list ( x390_ + 13, NULL_list ( CLASS_TYPE ) ) ;\
1466
	COPY_exp ( x390_ + 14, NULL_exp ) ;\
1467
	( c_class_id ) = CHECK_TAG_ETC ( x390_, 19, 22 ) ;\
1468
    }
1469
 
1470
#define MODIFY_id_function_etc( tag, c_class_id )\
1471
    {\
1472
	c_class *x391_ = CHECK_TAG_ETC ( ( c_class_id ), 19, 22 ) ;\
1473
	x391_->ag_tag = ( tag ) ;\
1474
	( void ) CHECK_TAG_ETC ( x391_, 19, 22 ) ;\
1475
    }
1476
 
1477
#define DECONS_id_function_etc( name_, storage_, parent_, loc_, alias_, no_, dump_, type_, over_, form_, chums_, defn_, c_class_id )\
1478
    {\
1479
	c_class *x392_ = CHECK_TAG_ETC ( ( c_class_id ), 19, 22 ) ;\
1480
	( name_ ) = DEREF_hashid ( x392_ + 1 ) ;\
1481
	( storage_ ) = DEREF_dspec ( x392_ + 2 ) ;\
1482
	( parent_ ) = DEREF_nspace ( x392_ + 3 ) ;\
1483
	( loc_ ).line = DEREF_ulong ( x392_ + 4 ) ;\
1484
	( loc_ ).column = DEREF_ulong ( x392_ + 5 ) ;\
1485
	( loc_ ).posn = DEREF_ptr ( x392_ + 6 ) ;\
1486
	( alias_ ) = DEREF_id ( x392_ + 7 ) ;\
1487
	( no_ ) = DEREF_ulong ( x392_ + 8 ) ;\
1488
	( dump_ ) = DEREF_ulong ( x392_ + 9 ) ;\
1489
	( type_ ) = DEREF_type ( x392_ + 10 ) ;\
1490
	( over_ ) = DEREF_id ( x392_ + 11 ) ;\
1491
	( form_ ) = DEREF_type ( x392_ + 12 ) ;\
1492
	( chums_ ) = DEREF_list ( x392_ + 13 ) ;\
1493
	( defn_ ) = DEREF_exp ( x392_ + 14 ) ;\
1494
    }
1495
 
1496
#define DESTROY_id_function_etc( destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, type_, over_, form_, chums_, defn_, c_class_id )\
1497
    {\
1498
	c_class *x393_ = CHECK_TAG_ETC ( ( c_class_id ), 19, 22 ) ;\
1499
	( name_ ) = DEREF_hashid ( x393_ + 1 ) ;\
1500
	( storage_ ) = DEREF_dspec ( x393_ + 2 ) ;\
1501
	( parent_ ) = DEREF_nspace ( x393_ + 3 ) ;\
1502
	( loc_ ).line = DEREF_ulong ( x393_ + 4 ) ;\
1503
	( loc_ ).column = DEREF_ulong ( x393_ + 5 ) ;\
1504
	( loc_ ).posn = DEREF_ptr ( x393_ + 6 ) ;\
1505
	( alias_ ) = DEREF_id ( x393_ + 7 ) ;\
1506
	( no_ ) = DEREF_ulong ( x393_ + 8 ) ;\
1507
	( dump_ ) = DEREF_ulong ( x393_ + 9 ) ;\
1508
	( type_ ) = DEREF_type ( x393_ + 10 ) ;\
1509
	( over_ ) = DEREF_id ( x393_ + 11 ) ;\
1510
	( form_ ) = DEREF_type ( x393_ + 12 ) ;\
1511
	( chums_ ) = DEREF_list ( x393_ + 13 ) ;\
1512
	( defn_ ) = DEREF_exp ( x393_ + 14 ) ;\
1513
	( destroyer_ ) ( x393_, ( unsigned ) 15 ) ;\
1514
    }
1515
 
1516
 
1517
/* Operations for field function of union IDENTIFIER */
1518
 
1519
#define id_function_tag			( ( unsigned ) 19 )
1520
#define IS_id_function( P )		( CHECK_NULL ( P )->ag_tag == 19 )
1521
 
1522
#define id_function_type( P )		( CHECK_TAG ( ( P ), 19 ) + 10 )
1523
#define id_function_over( P )		( CHECK_TAG ( ( P ), 19 ) + 11 )
1524
#define id_function_form( P )		( CHECK_TAG ( ( P ), 19 ) + 12 )
1525
#define id_function_chums( P )		( CHECK_TAG ( ( P ), 19 ) + 13 )
1526
#define id_function_defn( P )		( CHECK_TAG ( ( P ), 19 ) + 14 )
1527
 
1528
#define MAKE_id_function( name_, storage_, parent_, loc_, type_, over_, c_class_id )\
1529
    {\
1530
	c_class *x394_ = GEN_c_class ( 15, TYPEID_id ) ;\
1531
	x394_->ag_tag = 19 ;\
1532
	COPY_hashid ( x394_ + 1, ( name_ ) ) ;\
1533
	COPY_dspec ( x394_ + 2, ( storage_ ) ) ;\
1534
	COPY_nspace ( x394_ + 3, ( parent_ ) ) ;\
1535
	COPY_ulong ( x394_ + 4, ( loc_ ).line ) ;\
1536
	COPY_ulong ( x394_ + 5, ( loc_ ).column ) ;\
1537
	COPY_ptr ( x394_ + 6, ( loc_ ).posn ) ;\
1538
	COPY_id ( x394_ + 7, x394_ ) ;\
1539
	COPY_ulong ( x394_ + 8, LINK_NONE ) ;\
1540
	COPY_ulong ( x394_ + 9, LINK_NONE ) ;\
1541
	COPY_type ( x394_ + 10, ( type_ ) ) ;\
1542
	COPY_id ( x394_ + 11, ( over_ ) ) ;\
1543
	COPY_type ( x394_ + 12, NULL_type ) ;\
1544
	COPY_list ( x394_ + 13, NULL_list ( CLASS_TYPE ) ) ;\
1545
	COPY_exp ( x394_ + 14, NULL_exp ) ;\
1546
	( c_class_id ) = x394_ ;\
1547
    }
1548
 
1549
#define DECONS_id_function( name_, storage_, parent_, loc_, alias_, no_, dump_, type_, over_, form_, chums_, defn_, c_class_id )\
1550
    {\
1551
	c_class *x395_ = CHECK_TAG ( ( c_class_id ), 19 ) ;\
1552
	( name_ ) = DEREF_hashid ( x395_ + 1 ) ;\
1553
	( storage_ ) = DEREF_dspec ( x395_ + 2 ) ;\
1554
	( parent_ ) = DEREF_nspace ( x395_ + 3 ) ;\
1555
	( loc_ ).line = DEREF_ulong ( x395_ + 4 ) ;\
1556
	( loc_ ).column = DEREF_ulong ( x395_ + 5 ) ;\
1557
	( loc_ ).posn = DEREF_ptr ( x395_ + 6 ) ;\
1558
	( alias_ ) = DEREF_id ( x395_ + 7 ) ;\
1559
	( no_ ) = DEREF_ulong ( x395_ + 8 ) ;\
1560
	( dump_ ) = DEREF_ulong ( x395_ + 9 ) ;\
1561
	( type_ ) = DEREF_type ( x395_ + 10 ) ;\
1562
	( over_ ) = DEREF_id ( x395_ + 11 ) ;\
1563
	( form_ ) = DEREF_type ( x395_ + 12 ) ;\
1564
	( chums_ ) = DEREF_list ( x395_ + 13 ) ;\
1565
	( defn_ ) = DEREF_exp ( x395_ + 14 ) ;\
1566
    }
1567
 
1568
#define DESTROY_id_function( destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, type_, over_, form_, chums_, defn_, c_class_id )\
1569
    {\
1570
	c_class *x396_ = CHECK_TAG ( ( c_class_id ), 19 ) ;\
1571
	( name_ ) = DEREF_hashid ( x396_ + 1 ) ;\
1572
	( storage_ ) = DEREF_dspec ( x396_ + 2 ) ;\
1573
	( parent_ ) = DEREF_nspace ( x396_ + 3 ) ;\
1574
	( loc_ ).line = DEREF_ulong ( x396_ + 4 ) ;\
1575
	( loc_ ).column = DEREF_ulong ( x396_ + 5 ) ;\
1576
	( loc_ ).posn = DEREF_ptr ( x396_ + 6 ) ;\
1577
	( alias_ ) = DEREF_id ( x396_ + 7 ) ;\
1578
	( no_ ) = DEREF_ulong ( x396_ + 8 ) ;\
1579
	( dump_ ) = DEREF_ulong ( x396_ + 9 ) ;\
1580
	( type_ ) = DEREF_type ( x396_ + 10 ) ;\
1581
	( over_ ) = DEREF_id ( x396_ + 11 ) ;\
1582
	( form_ ) = DEREF_type ( x396_ + 12 ) ;\
1583
	( chums_ ) = DEREF_list ( x396_ + 13 ) ;\
1584
	( defn_ ) = DEREF_exp ( x396_ + 14 ) ;\
1585
	( destroyer_ ) ( x396_, ( unsigned ) 15 ) ;\
1586
    }
1587
 
1588
 
1589
/* Operations for field mem_func of union IDENTIFIER */
1590
 
1591
#define id_mem_func_tag			( ( unsigned ) 20 )
1592
#define IS_id_mem_func( P )		( CHECK_NULL ( P )->ag_tag == 20 )
1593
 
1594
#define id_mem_func_type( P )		( CHECK_TAG ( ( P ), 20 ) + 10 )
1595
#define id_mem_func_over( P )		( CHECK_TAG ( ( P ), 20 ) + 11 )
1596
#define id_mem_func_form( P )		( CHECK_TAG ( ( P ), 20 ) + 12 )
1597
#define id_mem_func_chums( P )		( CHECK_TAG ( ( P ), 20 ) + 13 )
1598
#define id_mem_func_defn( P )		( CHECK_TAG ( ( P ), 20 ) + 14 )
1599
 
1600
#define MAKE_id_mem_func( name_, storage_, parent_, loc_, type_, over_, c_class_id )\
1601
    {\
1602
	c_class *x397_ = GEN_c_class ( 15, TYPEID_id ) ;\
1603
	x397_->ag_tag = 20 ;\
1604
	COPY_hashid ( x397_ + 1, ( name_ ) ) ;\
1605
	COPY_dspec ( x397_ + 2, ( storage_ ) ) ;\
1606
	COPY_nspace ( x397_ + 3, ( parent_ ) ) ;\
1607
	COPY_ulong ( x397_ + 4, ( loc_ ).line ) ;\
1608
	COPY_ulong ( x397_ + 5, ( loc_ ).column ) ;\
1609
	COPY_ptr ( x397_ + 6, ( loc_ ).posn ) ;\
1610
	COPY_id ( x397_ + 7, x397_ ) ;\
1611
	COPY_ulong ( x397_ + 8, LINK_NONE ) ;\
1612
	COPY_ulong ( x397_ + 9, LINK_NONE ) ;\
1613
	COPY_type ( x397_ + 10, ( type_ ) ) ;\
1614
	COPY_id ( x397_ + 11, ( over_ ) ) ;\
1615
	COPY_type ( x397_ + 12, NULL_type ) ;\
1616
	COPY_list ( x397_ + 13, NULL_list ( CLASS_TYPE ) ) ;\
1617
	COPY_exp ( x397_ + 14, NULL_exp ) ;\
1618
	( c_class_id ) = x397_ ;\
1619
    }
1620
 
1621
#define DECONS_id_mem_func( name_, storage_, parent_, loc_, alias_, no_, dump_, type_, over_, form_, chums_, defn_, c_class_id )\
1622
    {\
1623
	c_class *x398_ = CHECK_TAG ( ( c_class_id ), 20 ) ;\
1624
	( name_ ) = DEREF_hashid ( x398_ + 1 ) ;\
1625
	( storage_ ) = DEREF_dspec ( x398_ + 2 ) ;\
1626
	( parent_ ) = DEREF_nspace ( x398_ + 3 ) ;\
1627
	( loc_ ).line = DEREF_ulong ( x398_ + 4 ) ;\
1628
	( loc_ ).column = DEREF_ulong ( x398_ + 5 ) ;\
1629
	( loc_ ).posn = DEREF_ptr ( x398_ + 6 ) ;\
1630
	( alias_ ) = DEREF_id ( x398_ + 7 ) ;\
1631
	( no_ ) = DEREF_ulong ( x398_ + 8 ) ;\
1632
	( dump_ ) = DEREF_ulong ( x398_ + 9 ) ;\
1633
	( type_ ) = DEREF_type ( x398_ + 10 ) ;\
1634
	( over_ ) = DEREF_id ( x398_ + 11 ) ;\
1635
	( form_ ) = DEREF_type ( x398_ + 12 ) ;\
1636
	( chums_ ) = DEREF_list ( x398_ + 13 ) ;\
1637
	( defn_ ) = DEREF_exp ( x398_ + 14 ) ;\
1638
    }
1639
 
1640
#define DESTROY_id_mem_func( destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, type_, over_, form_, chums_, defn_, c_class_id )\
1641
    {\
1642
	c_class *x399_ = CHECK_TAG ( ( c_class_id ), 20 ) ;\
1643
	( name_ ) = DEREF_hashid ( x399_ + 1 ) ;\
1644
	( storage_ ) = DEREF_dspec ( x399_ + 2 ) ;\
1645
	( parent_ ) = DEREF_nspace ( x399_ + 3 ) ;\
1646
	( loc_ ).line = DEREF_ulong ( x399_ + 4 ) ;\
1647
	( loc_ ).column = DEREF_ulong ( x399_ + 5 ) ;\
1648
	( loc_ ).posn = DEREF_ptr ( x399_ + 6 ) ;\
1649
	( alias_ ) = DEREF_id ( x399_ + 7 ) ;\
1650
	( no_ ) = DEREF_ulong ( x399_ + 8 ) ;\
1651
	( dump_ ) = DEREF_ulong ( x399_ + 9 ) ;\
1652
	( type_ ) = DEREF_type ( x399_ + 10 ) ;\
1653
	( over_ ) = DEREF_id ( x399_ + 11 ) ;\
1654
	( form_ ) = DEREF_type ( x399_ + 12 ) ;\
1655
	( chums_ ) = DEREF_list ( x399_ + 13 ) ;\
1656
	( defn_ ) = DEREF_exp ( x399_ + 14 ) ;\
1657
	( destroyer_ ) ( x399_, ( unsigned ) 15 ) ;\
1658
    }
1659
 
1660
 
1661
/* Operations for field stat_mem_func of union IDENTIFIER */
1662
 
1663
#define id_stat_mem_func_tag		( ( unsigned ) 21 )
1664
#define IS_id_stat_mem_func( P )	( CHECK_NULL ( P )->ag_tag == 21 )
1665
 
1666
#define id_stat_mem_func_type( P )	( CHECK_TAG ( ( P ), 21 ) + 10 )
1667
#define id_stat_mem_func_over( P )	( CHECK_TAG ( ( P ), 21 ) + 11 )
1668
#define id_stat_mem_func_form( P )	( CHECK_TAG ( ( P ), 21 ) + 12 )
1669
#define id_stat_mem_func_chums( P )	( CHECK_TAG ( ( P ), 21 ) + 13 )
1670
#define id_stat_mem_func_defn( P )	( CHECK_TAG ( ( P ), 21 ) + 14 )
1671
 
1672
#define MAKE_id_stat_mem_func( name_, storage_, parent_, loc_, type_, over_, c_class_id )\
1673
    {\
1674
	c_class *x400_ = GEN_c_class ( 15, TYPEID_id ) ;\
1675
	x400_->ag_tag = 21 ;\
1676
	COPY_hashid ( x400_ + 1, ( name_ ) ) ;\
1677
	COPY_dspec ( x400_ + 2, ( storage_ ) ) ;\
1678
	COPY_nspace ( x400_ + 3, ( parent_ ) ) ;\
1679
	COPY_ulong ( x400_ + 4, ( loc_ ).line ) ;\
1680
	COPY_ulong ( x400_ + 5, ( loc_ ).column ) ;\
1681
	COPY_ptr ( x400_ + 6, ( loc_ ).posn ) ;\
1682
	COPY_id ( x400_ + 7, x400_ ) ;\
1683
	COPY_ulong ( x400_ + 8, LINK_NONE ) ;\
1684
	COPY_ulong ( x400_ + 9, LINK_NONE ) ;\
1685
	COPY_type ( x400_ + 10, ( type_ ) ) ;\
1686
	COPY_id ( x400_ + 11, ( over_ ) ) ;\
1687
	COPY_type ( x400_ + 12, NULL_type ) ;\
1688
	COPY_list ( x400_ + 13, NULL_list ( CLASS_TYPE ) ) ;\
1689
	COPY_exp ( x400_ + 14, NULL_exp ) ;\
1690
	( c_class_id ) = x400_ ;\
1691
    }
1692
 
1693
#define DECONS_id_stat_mem_func( name_, storage_, parent_, loc_, alias_, no_, dump_, type_, over_, form_, chums_, defn_, c_class_id )\
1694
    {\
1695
	c_class *x401_ = CHECK_TAG ( ( c_class_id ), 21 ) ;\
1696
	( name_ ) = DEREF_hashid ( x401_ + 1 ) ;\
1697
	( storage_ ) = DEREF_dspec ( x401_ + 2 ) ;\
1698
	( parent_ ) = DEREF_nspace ( x401_ + 3 ) ;\
1699
	( loc_ ).line = DEREF_ulong ( x401_ + 4 ) ;\
1700
	( loc_ ).column = DEREF_ulong ( x401_ + 5 ) ;\
1701
	( loc_ ).posn = DEREF_ptr ( x401_ + 6 ) ;\
1702
	( alias_ ) = DEREF_id ( x401_ + 7 ) ;\
1703
	( no_ ) = DEREF_ulong ( x401_ + 8 ) ;\
1704
	( dump_ ) = DEREF_ulong ( x401_ + 9 ) ;\
1705
	( type_ ) = DEREF_type ( x401_ + 10 ) ;\
1706
	( over_ ) = DEREF_id ( x401_ + 11 ) ;\
1707
	( form_ ) = DEREF_type ( x401_ + 12 ) ;\
1708
	( chums_ ) = DEREF_list ( x401_ + 13 ) ;\
1709
	( defn_ ) = DEREF_exp ( x401_ + 14 ) ;\
1710
    }
1711
 
1712
#define DESTROY_id_stat_mem_func( destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, type_, over_, form_, chums_, defn_, c_class_id )\
1713
    {\
1714
	c_class *x402_ = CHECK_TAG ( ( c_class_id ), 21 ) ;\
1715
	( name_ ) = DEREF_hashid ( x402_ + 1 ) ;\
1716
	( storage_ ) = DEREF_dspec ( x402_ + 2 ) ;\
1717
	( parent_ ) = DEREF_nspace ( x402_ + 3 ) ;\
1718
	( loc_ ).line = DEREF_ulong ( x402_ + 4 ) ;\
1719
	( loc_ ).column = DEREF_ulong ( x402_ + 5 ) ;\
1720
	( loc_ ).posn = DEREF_ptr ( x402_ + 6 ) ;\
1721
	( alias_ ) = DEREF_id ( x402_ + 7 ) ;\
1722
	( no_ ) = DEREF_ulong ( x402_ + 8 ) ;\
1723
	( dump_ ) = DEREF_ulong ( x402_ + 9 ) ;\
1724
	( type_ ) = DEREF_type ( x402_ + 10 ) ;\
1725
	( over_ ) = DEREF_id ( x402_ + 11 ) ;\
1726
	( form_ ) = DEREF_type ( x402_ + 12 ) ;\
1727
	( chums_ ) = DEREF_list ( x402_ + 13 ) ;\
1728
	( defn_ ) = DEREF_exp ( x402_ + 14 ) ;\
1729
	( destroyer_ ) ( x402_, ( unsigned ) 15 ) ;\
1730
    }
1731
 
1732
 
1733
/* Operations for field member of union IDENTIFIER */
1734
 
1735
#define id_member_tag			( ( unsigned ) 22 )
1736
#define IS_id_member( P )		( CHECK_NULL ( P )->ag_tag == 22 )
1737
 
1738
#define id_member_type( P )		( CHECK_TAG ( ( P ), 22 ) + 10 )
1739
#define id_member_off( P )		( CHECK_TAG ( ( P ), 22 ) + 11 )
1740
#define id_member_base( P )		( CHECK_TAG ( ( P ), 22 ) + 12 )
1741
 
1742
#define MAKE_id_member( name_, storage_, parent_, loc_, type_, c_class_id )\
1743
    {\
1744
	c_class *x403_ = GEN_c_class ( 13, TYPEID_id ) ;\
1745
	x403_->ag_tag = 22 ;\
1746
	COPY_hashid ( x403_ + 1, ( name_ ) ) ;\
1747
	COPY_dspec ( x403_ + 2, ( storage_ ) ) ;\
1748
	COPY_nspace ( x403_ + 3, ( parent_ ) ) ;\
1749
	COPY_ulong ( x403_ + 4, ( loc_ ).line ) ;\
1750
	COPY_ulong ( x403_ + 5, ( loc_ ).column ) ;\
1751
	COPY_ptr ( x403_ + 6, ( loc_ ).posn ) ;\
1752
	COPY_id ( x403_ + 7, x403_ ) ;\
1753
	COPY_ulong ( x403_ + 8, LINK_NONE ) ;\
1754
	COPY_ulong ( x403_ + 9, LINK_NONE ) ;\
1755
	COPY_type ( x403_ + 10, ( type_ ) ) ;\
1756
	COPY_off ( x403_ + 11, NULL_off ) ;\
1757
	COPY_graph ( x403_ + 12, NULL_graph ) ;\
1758
	( c_class_id ) = x403_ ;\
1759
    }
1760
 
1761
#define DECONS_id_member( name_, storage_, parent_, loc_, alias_, no_, dump_, type_, off_, base_, c_class_id )\
1762
    {\
1763
	c_class *x404_ = CHECK_TAG ( ( c_class_id ), 22 ) ;\
1764
	( name_ ) = DEREF_hashid ( x404_ + 1 ) ;\
1765
	( storage_ ) = DEREF_dspec ( x404_ + 2 ) ;\
1766
	( parent_ ) = DEREF_nspace ( x404_ + 3 ) ;\
1767
	( loc_ ).line = DEREF_ulong ( x404_ + 4 ) ;\
1768
	( loc_ ).column = DEREF_ulong ( x404_ + 5 ) ;\
1769
	( loc_ ).posn = DEREF_ptr ( x404_ + 6 ) ;\
1770
	( alias_ ) = DEREF_id ( x404_ + 7 ) ;\
1771
	( no_ ) = DEREF_ulong ( x404_ + 8 ) ;\
1772
	( dump_ ) = DEREF_ulong ( x404_ + 9 ) ;\
1773
	( type_ ) = DEREF_type ( x404_ + 10 ) ;\
1774
	( off_ ) = DEREF_off ( x404_ + 11 ) ;\
1775
	( base_ ) = DEREF_graph ( x404_ + 12 ) ;\
1776
    }
1777
 
1778
#define DESTROY_id_member( destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, type_, off_, base_, c_class_id )\
1779
    {\
1780
	c_class *x405_ = CHECK_TAG ( ( c_class_id ), 22 ) ;\
1781
	( name_ ) = DEREF_hashid ( x405_ + 1 ) ;\
1782
	( storage_ ) = DEREF_dspec ( x405_ + 2 ) ;\
1783
	( parent_ ) = DEREF_nspace ( x405_ + 3 ) ;\
1784
	( loc_ ).line = DEREF_ulong ( x405_ + 4 ) ;\
1785
	( loc_ ).column = DEREF_ulong ( x405_ + 5 ) ;\
1786
	( loc_ ).posn = DEREF_ptr ( x405_ + 6 ) ;\
1787
	( alias_ ) = DEREF_id ( x405_ + 7 ) ;\
1788
	( no_ ) = DEREF_ulong ( x405_ + 8 ) ;\
1789
	( dump_ ) = DEREF_ulong ( x405_ + 9 ) ;\
1790
	( type_ ) = DEREF_type ( x405_ + 10 ) ;\
1791
	( off_ ) = DEREF_off ( x405_ + 11 ) ;\
1792
	( base_ ) = DEREF_graph ( x405_ + 12 ) ;\
1793
	( destroyer_ ) ( x405_, ( unsigned ) 13 ) ;\
1794
    }
1795
 
1796
 
1797
/* Operations for field enumerator of union IDENTIFIER */
1798
 
1799
#define id_enumerator_tag		( ( unsigned ) 23 )
1800
#define IS_id_enumerator( P )		( CHECK_NULL ( P )->ag_tag == 23 )
1801
 
1802
#define id_enumerator_etype( P )	( CHECK_TAG ( ( P ), 23 ) + 10 )
1803
#define id_enumerator_value( P )	( CHECK_TAG ( ( P ), 23 ) + 11 )
1804
 
1805
#define MAKE_id_enumerator( name_, storage_, parent_, loc_, etype_, value_, c_class_id )\
1806
    {\
1807
	c_class *x406_ = GEN_c_class ( 12, TYPEID_id ) ;\
1808
	x406_->ag_tag = 23 ;\
1809
	COPY_hashid ( x406_ + 1, ( name_ ) ) ;\
1810
	COPY_dspec ( x406_ + 2, ( storage_ ) ) ;\
1811
	COPY_nspace ( x406_ + 3, ( parent_ ) ) ;\
1812
	COPY_ulong ( x406_ + 4, ( loc_ ).line ) ;\
1813
	COPY_ulong ( x406_ + 5, ( loc_ ).column ) ;\
1814
	COPY_ptr ( x406_ + 6, ( loc_ ).posn ) ;\
1815
	COPY_id ( x406_ + 7, x406_ ) ;\
1816
	COPY_ulong ( x406_ + 8, LINK_NONE ) ;\
1817
	COPY_ulong ( x406_ + 9, LINK_NONE ) ;\
1818
	COPY_type ( x406_ + 10, ( etype_ ) ) ;\
1819
	COPY_exp ( x406_ + 11, ( value_ ) ) ;\
1820
	( c_class_id ) = x406_ ;\
1821
    }
1822
 
1823
#define DECONS_id_enumerator( name_, storage_, parent_, loc_, alias_, no_, dump_, etype_, value_, c_class_id )\
1824
    {\
1825
	c_class *x407_ = CHECK_TAG ( ( c_class_id ), 23 ) ;\
1826
	( name_ ) = DEREF_hashid ( x407_ + 1 ) ;\
1827
	( storage_ ) = DEREF_dspec ( x407_ + 2 ) ;\
1828
	( parent_ ) = DEREF_nspace ( x407_ + 3 ) ;\
1829
	( loc_ ).line = DEREF_ulong ( x407_ + 4 ) ;\
1830
	( loc_ ).column = DEREF_ulong ( x407_ + 5 ) ;\
1831
	( loc_ ).posn = DEREF_ptr ( x407_ + 6 ) ;\
1832
	( alias_ ) = DEREF_id ( x407_ + 7 ) ;\
1833
	( no_ ) = DEREF_ulong ( x407_ + 8 ) ;\
1834
	( dump_ ) = DEREF_ulong ( x407_ + 9 ) ;\
1835
	( etype_ ) = DEREF_type ( x407_ + 10 ) ;\
1836
	( value_ ) = DEREF_exp ( x407_ + 11 ) ;\
1837
    }
1838
 
1839
#define DESTROY_id_enumerator( destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, etype_, value_, c_class_id )\
1840
    {\
1841
	c_class *x408_ = CHECK_TAG ( ( c_class_id ), 23 ) ;\
1842
	( name_ ) = DEREF_hashid ( x408_ + 1 ) ;\
1843
	( storage_ ) = DEREF_dspec ( x408_ + 2 ) ;\
1844
	( parent_ ) = DEREF_nspace ( x408_ + 3 ) ;\
1845
	( loc_ ).line = DEREF_ulong ( x408_ + 4 ) ;\
1846
	( loc_ ).column = DEREF_ulong ( x408_ + 5 ) ;\
1847
	( loc_ ).posn = DEREF_ptr ( x408_ + 6 ) ;\
1848
	( alias_ ) = DEREF_id ( x408_ + 7 ) ;\
1849
	( no_ ) = DEREF_ulong ( x408_ + 8 ) ;\
1850
	( dump_ ) = DEREF_ulong ( x408_ + 9 ) ;\
1851
	( etype_ ) = DEREF_type ( x408_ + 10 ) ;\
1852
	( value_ ) = DEREF_exp ( x408_ + 11 ) ;\
1853
	( destroyer_ ) ( x408_, ( unsigned ) 12 ) ;\
1854
    }
1855
 
1856
 
1857
/* Operations for field label of union IDENTIFIER */
1858
 
1859
#define id_label_tag			( ( unsigned ) 24 )
1860
#define IS_id_label( P )		( CHECK_NULL ( P )->ag_tag == 24 )
1861
 
1862
#define id_label_op( P )		( CHECK_TAG ( ( P ), 24 ) + 10 )
1863
#define id_label_stmt( P )		( CHECK_TAG ( ( P ), 24 ) + 11 )
1864
#define id_label_gotos( P )		( CHECK_TAG ( ( P ), 24 ) + 12 )
1865
#define id_label_vars( P )		( CHECK_TAG ( ( P ), 24 ) + 13 )
1866
 
1867
#define MAKE_id_label( name_, storage_, parent_, loc_, op_, c_class_id )\
1868
    {\
1869
	c_class *x409_ = GEN_c_class ( 14, TYPEID_id ) ;\
1870
	x409_->ag_tag = 24 ;\
1871
	COPY_hashid ( x409_ + 1, ( name_ ) ) ;\
1872
	COPY_dspec ( x409_ + 2, ( storage_ ) ) ;\
1873
	COPY_nspace ( x409_ + 3, ( parent_ ) ) ;\
1874
	COPY_ulong ( x409_ + 4, ( loc_ ).line ) ;\
1875
	COPY_ulong ( x409_ + 5, ( loc_ ).column ) ;\
1876
	COPY_ptr ( x409_ + 6, ( loc_ ).posn ) ;\
1877
	COPY_id ( x409_ + 7, x409_ ) ;\
1878
	COPY_ulong ( x409_ + 8, LINK_NONE ) ;\
1879
	COPY_ulong ( x409_ + 9, LINK_NONE ) ;\
1880
	COPY_int ( x409_ + 10, ( op_ ) ) ;\
1881
	COPY_exp ( x409_ + 11, NULL_exp ) ;\
1882
	COPY_exp ( x409_ + 12, NULL_exp ) ;\
1883
	COPY_list ( x409_ + 13, NULL_list ( VARIABLE ) ) ;\
1884
	( c_class_id ) = x409_ ;\
1885
    }
1886
 
1887
#define DECONS_id_label( name_, storage_, parent_, loc_, alias_, no_, dump_, op_, stmt_, gotos_, vars_, c_class_id )\
1888
    {\
1889
	c_class *x410_ = CHECK_TAG ( ( c_class_id ), 24 ) ;\
1890
	( name_ ) = DEREF_hashid ( x410_ + 1 ) ;\
1891
	( storage_ ) = DEREF_dspec ( x410_ + 2 ) ;\
1892
	( parent_ ) = DEREF_nspace ( x410_ + 3 ) ;\
1893
	( loc_ ).line = DEREF_ulong ( x410_ + 4 ) ;\
1894
	( loc_ ).column = DEREF_ulong ( x410_ + 5 ) ;\
1895
	( loc_ ).posn = DEREF_ptr ( x410_ + 6 ) ;\
1896
	( alias_ ) = DEREF_id ( x410_ + 7 ) ;\
1897
	( no_ ) = DEREF_ulong ( x410_ + 8 ) ;\
1898
	( dump_ ) = DEREF_ulong ( x410_ + 9 ) ;\
1899
	( op_ ) = DEREF_int ( x410_ + 10 ) ;\
1900
	( stmt_ ) = DEREF_exp ( x410_ + 11 ) ;\
1901
	( gotos_ ) = DEREF_exp ( x410_ + 12 ) ;\
1902
	( vars_ ) = DEREF_list ( x410_ + 13 ) ;\
1903
    }
1904
 
1905
#define DESTROY_id_label( destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, op_, stmt_, gotos_, vars_, c_class_id )\
1906
    {\
1907
	c_class *x411_ = CHECK_TAG ( ( c_class_id ), 24 ) ;\
1908
	( name_ ) = DEREF_hashid ( x411_ + 1 ) ;\
1909
	( storage_ ) = DEREF_dspec ( x411_ + 2 ) ;\
1910
	( parent_ ) = DEREF_nspace ( x411_ + 3 ) ;\
1911
	( loc_ ).line = DEREF_ulong ( x411_ + 4 ) ;\
1912
	( loc_ ).column = DEREF_ulong ( x411_ + 5 ) ;\
1913
	( loc_ ).posn = DEREF_ptr ( x411_ + 6 ) ;\
1914
	( alias_ ) = DEREF_id ( x411_ + 7 ) ;\
1915
	( no_ ) = DEREF_ulong ( x411_ + 8 ) ;\
1916
	( dump_ ) = DEREF_ulong ( x411_ + 9 ) ;\
1917
	( op_ ) = DEREF_int ( x411_ + 10 ) ;\
1918
	( stmt_ ) = DEREF_exp ( x411_ + 11 ) ;\
1919
	( gotos_ ) = DEREF_exp ( x411_ + 12 ) ;\
1920
	( vars_ ) = DEREF_list ( x411_ + 13 ) ;\
1921
	( destroyer_ ) ( x411_, ( unsigned ) 14 ) ;\
1922
    }
1923
 
1924
 
1925
/* Operations for field token of union IDENTIFIER */
1926
 
1927
#define id_token_tag			( ( unsigned ) 25 )
1928
#define IS_id_token( P )		( CHECK_NULL ( P )->ag_tag == 25 )
1929
 
1930
#define id_token_sort( P )		( CHECK_TAG ( ( P ), 25 ) + 10 )
1931
#define id_token_alt( P )		( CHECK_TAG ( ( P ), 25 ) + 11 )
1932
 
1933
#define MAKE_id_token( name_, storage_, parent_, loc_, sort_, alt_, c_class_id )\
1934
    {\
1935
	c_class *x412_ = GEN_c_class ( 12, TYPEID_id ) ;\
1936
	x412_->ag_tag = 25 ;\
1937
	COPY_hashid ( x412_ + 1, ( name_ ) ) ;\
1938
	COPY_dspec ( x412_ + 2, ( storage_ ) ) ;\
1939
	COPY_nspace ( x412_ + 3, ( parent_ ) ) ;\
1940
	COPY_ulong ( x412_ + 4, ( loc_ ).line ) ;\
1941
	COPY_ulong ( x412_ + 5, ( loc_ ).column ) ;\
1942
	COPY_ptr ( x412_ + 6, ( loc_ ).posn ) ;\
1943
	COPY_id ( x412_ + 7, x412_ ) ;\
1944
	COPY_ulong ( x412_ + 8, LINK_NONE ) ;\
1945
	COPY_ulong ( x412_ + 9, LINK_NONE ) ;\
1946
	COPY_tok ( x412_ + 10, ( sort_ ) ) ;\
1947
	COPY_id ( x412_ + 11, ( alt_ ) ) ;\
1948
	( c_class_id ) = x412_ ;\
1949
    }
1950
 
1951
#define DECONS_id_token( name_, storage_, parent_, loc_, alias_, no_, dump_, sort_, alt_, c_class_id )\
1952
    {\
1953
	c_class *x413_ = CHECK_TAG ( ( c_class_id ), 25 ) ;\
1954
	( name_ ) = DEREF_hashid ( x413_ + 1 ) ;\
1955
	( storage_ ) = DEREF_dspec ( x413_ + 2 ) ;\
1956
	( parent_ ) = DEREF_nspace ( x413_ + 3 ) ;\
1957
	( loc_ ).line = DEREF_ulong ( x413_ + 4 ) ;\
1958
	( loc_ ).column = DEREF_ulong ( x413_ + 5 ) ;\
1959
	( loc_ ).posn = DEREF_ptr ( x413_ + 6 ) ;\
1960
	( alias_ ) = DEREF_id ( x413_ + 7 ) ;\
1961
	( no_ ) = DEREF_ulong ( x413_ + 8 ) ;\
1962
	( dump_ ) = DEREF_ulong ( x413_ + 9 ) ;\
1963
	( sort_ ) = DEREF_tok ( x413_ + 10 ) ;\
1964
	( alt_ ) = DEREF_id ( x413_ + 11 ) ;\
1965
    }
1966
 
1967
#define DESTROY_id_token( destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, sort_, alt_, c_class_id )\
1968
    {\
1969
	c_class *x414_ = CHECK_TAG ( ( c_class_id ), 25 ) ;\
1970
	( name_ ) = DEREF_hashid ( x414_ + 1 ) ;\
1971
	( storage_ ) = DEREF_dspec ( x414_ + 2 ) ;\
1972
	( parent_ ) = DEREF_nspace ( x414_ + 3 ) ;\
1973
	( loc_ ).line = DEREF_ulong ( x414_ + 4 ) ;\
1974
	( loc_ ).column = DEREF_ulong ( x414_ + 5 ) ;\
1975
	( loc_ ).posn = DEREF_ptr ( x414_ + 6 ) ;\
1976
	( alias_ ) = DEREF_id ( x414_ + 7 ) ;\
1977
	( no_ ) = DEREF_ulong ( x414_ + 8 ) ;\
1978
	( dump_ ) = DEREF_ulong ( x414_ + 9 ) ;\
1979
	( sort_ ) = DEREF_tok ( x414_ + 10 ) ;\
1980
	( alt_ ) = DEREF_id ( x414_ + 11 ) ;\
1981
	( destroyer_ ) ( x414_, ( unsigned ) 12 ) ;\
1982
    }
1983
 
1984
 
1985
/* Operations for field ambig of union IDENTIFIER */
1986
 
1987
#define id_ambig_tag			( ( unsigned ) 26 )
1988
#define IS_id_ambig( P )		( CHECK_NULL ( P )->ag_tag == 26 )
1989
 
1990
#define id_ambig_ids( P )		( CHECK_TAG ( ( P ), 26 ) + 10 )
1991
#define id_ambig_over( P )		( CHECK_TAG ( ( P ), 26 ) + 11 )
1992
 
1993
#define MAKE_id_ambig( name_, storage_, parent_, loc_, ids_, over_, c_class_id )\
1994
    {\
1995
	c_class *x415_ = GEN_c_class ( 12, TYPEID_id ) ;\
1996
	x415_->ag_tag = 26 ;\
1997
	COPY_hashid ( x415_ + 1, ( name_ ) ) ;\
1998
	COPY_dspec ( x415_ + 2, ( storage_ ) ) ;\
1999
	COPY_nspace ( x415_ + 3, ( parent_ ) ) ;\
2000
	COPY_ulong ( x415_ + 4, ( loc_ ).line ) ;\
2001
	COPY_ulong ( x415_ + 5, ( loc_ ).column ) ;\
2002
	COPY_ptr ( x415_ + 6, ( loc_ ).posn ) ;\
2003
	COPY_id ( x415_ + 7, x415_ ) ;\
2004
	COPY_ulong ( x415_ + 8, LINK_NONE ) ;\
2005
	COPY_ulong ( x415_ + 9, LINK_NONE ) ;\
2006
	COPY_list ( x415_ + 10, ( ids_ ) ) ;\
2007
	COPY_int ( x415_ + 11, ( over_ ) ) ;\
2008
	( c_class_id ) = x415_ ;\
2009
    }
2010
 
2011
#define DECONS_id_ambig( name_, storage_, parent_, loc_, alias_, no_, dump_, ids_, over_, c_class_id )\
2012
    {\
2013
	c_class *x416_ = CHECK_TAG ( ( c_class_id ), 26 ) ;\
2014
	( name_ ) = DEREF_hashid ( x416_ + 1 ) ;\
2015
	( storage_ ) = DEREF_dspec ( x416_ + 2 ) ;\
2016
	( parent_ ) = DEREF_nspace ( x416_ + 3 ) ;\
2017
	( loc_ ).line = DEREF_ulong ( x416_ + 4 ) ;\
2018
	( loc_ ).column = DEREF_ulong ( x416_ + 5 ) ;\
2019
	( loc_ ).posn = DEREF_ptr ( x416_ + 6 ) ;\
2020
	( alias_ ) = DEREF_id ( x416_ + 7 ) ;\
2021
	( no_ ) = DEREF_ulong ( x416_ + 8 ) ;\
2022
	( dump_ ) = DEREF_ulong ( x416_ + 9 ) ;\
2023
	( ids_ ) = DEREF_list ( x416_ + 10 ) ;\
2024
	( over_ ) = DEREF_int ( x416_ + 11 ) ;\
2025
    }
2026
 
2027
#define DESTROY_id_ambig( destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, ids_, over_, c_class_id )\
2028
    {\
2029
	c_class *x417_ = CHECK_TAG ( ( c_class_id ), 26 ) ;\
2030
	( name_ ) = DEREF_hashid ( x417_ + 1 ) ;\
2031
	( storage_ ) = DEREF_dspec ( x417_ + 2 ) ;\
2032
	( parent_ ) = DEREF_nspace ( x417_ + 3 ) ;\
2033
	( loc_ ).line = DEREF_ulong ( x417_ + 4 ) ;\
2034
	( loc_ ).column = DEREF_ulong ( x417_ + 5 ) ;\
2035
	( loc_ ).posn = DEREF_ptr ( x417_ + 6 ) ;\
2036
	( alias_ ) = DEREF_id ( x417_ + 7 ) ;\
2037
	( no_ ) = DEREF_ulong ( x417_ + 8 ) ;\
2038
	( dump_ ) = DEREF_ulong ( x417_ + 9 ) ;\
2039
	( ids_ ) = DEREF_list ( x417_ + 10 ) ;\
2040
	( over_ ) = DEREF_int ( x417_ + 11 ) ;\
2041
	( destroyer_ ) ( x417_, ( unsigned ) 12 ) ;\
2042
    }
2043
 
2044
 
2045
/* Operations for field undef of union IDENTIFIER */
2046
 
2047
#define id_undef_tag			( ( unsigned ) 27 )
2048
#define IS_id_undef( P )		( CHECK_NULL ( P )->ag_tag == 27 )
2049
 
2050
#define id_undef_form( P )		( CHECK_TAG ( ( P ), 27 ) + 10 )
2051
 
2052
#define MAKE_id_undef( name_, storage_, parent_, loc_, c_class_id )\
2053
    {\
2054
	c_class *x418_ = GEN_c_class ( 11, TYPEID_id ) ;\
2055
	x418_->ag_tag = 27 ;\
2056
	COPY_hashid ( x418_ + 1, ( name_ ) ) ;\
2057
	COPY_dspec ( x418_ + 2, ( storage_ ) ) ;\
2058
	COPY_nspace ( x418_ + 3, ( parent_ ) ) ;\
2059
	COPY_ulong ( x418_ + 4, ( loc_ ).line ) ;\
2060
	COPY_ulong ( x418_ + 5, ( loc_ ).column ) ;\
2061
	COPY_ptr ( x418_ + 6, ( loc_ ).posn ) ;\
2062
	COPY_id ( x418_ + 7, x418_ ) ;\
2063
	COPY_ulong ( x418_ + 8, LINK_NONE ) ;\
2064
	COPY_ulong ( x418_ + 9, LINK_NONE ) ;\
2065
	COPY_type ( x418_ + 10, NULL_type ) ;\
2066
	( c_class_id ) = x418_ ;\
2067
    }
2068
 
2069
#define DECONS_id_undef( name_, storage_, parent_, loc_, alias_, no_, dump_, form_, c_class_id )\
2070
    {\
2071
	c_class *x419_ = CHECK_TAG ( ( c_class_id ), 27 ) ;\
2072
	( name_ ) = DEREF_hashid ( x419_ + 1 ) ;\
2073
	( storage_ ) = DEREF_dspec ( x419_ + 2 ) ;\
2074
	( parent_ ) = DEREF_nspace ( x419_ + 3 ) ;\
2075
	( loc_ ).line = DEREF_ulong ( x419_ + 4 ) ;\
2076
	( loc_ ).column = DEREF_ulong ( x419_ + 5 ) ;\
2077
	( loc_ ).posn = DEREF_ptr ( x419_ + 6 ) ;\
2078
	( alias_ ) = DEREF_id ( x419_ + 7 ) ;\
2079
	( no_ ) = DEREF_ulong ( x419_ + 8 ) ;\
2080
	( dump_ ) = DEREF_ulong ( x419_ + 9 ) ;\
2081
	( form_ ) = DEREF_type ( x419_ + 10 ) ;\
2082
    }
2083
 
2084
#define DESTROY_id_undef( destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, form_, c_class_id )\
2085
    {\
2086
	c_class *x420_ = CHECK_TAG ( ( c_class_id ), 27 ) ;\
2087
	( name_ ) = DEREF_hashid ( x420_ + 1 ) ;\
2088
	( storage_ ) = DEREF_dspec ( x420_ + 2 ) ;\
2089
	( parent_ ) = DEREF_nspace ( x420_ + 3 ) ;\
2090
	( loc_ ).line = DEREF_ulong ( x420_ + 4 ) ;\
2091
	( loc_ ).column = DEREF_ulong ( x420_ + 5 ) ;\
2092
	( loc_ ).posn = DEREF_ptr ( x420_ + 6 ) ;\
2093
	( alias_ ) = DEREF_id ( x420_ + 7 ) ;\
2094
	( no_ ) = DEREF_ulong ( x420_ + 8 ) ;\
2095
	( dump_ ) = DEREF_ulong ( x420_ + 9 ) ;\
2096
	( form_ ) = DEREF_type ( x420_ + 10 ) ;\
2097
	( destroyer_ ) ( x420_, ( unsigned ) 11 ) ;\
2098
    }
2099
 
2100
 
2101
/* Operations for field pending of union IDENTIFIER */
2102
 
2103
#define id_pending_tag			( ( unsigned ) 28 )
2104
#define IS_id_pending( P )		( CHECK_NULL ( P )->ag_tag == 28 )
2105
 
2106
#define id_pending_itag( P )		( CHECK_TAG ( ( P ), 28 ) + 10 )
2107
#define id_pending_type( P )		( CHECK_TAG ( ( P ), 28 ) + 11 )
2108
 
2109
#define MAKE_id_pending( name_, storage_, parent_, loc_, itag_, type_, c_class_id )\
2110
    {\
2111
	c_class *x421_ = GEN_c_class ( 12, TYPEID_id ) ;\
2112
	x421_->ag_tag = 28 ;\
2113
	COPY_hashid ( x421_ + 1, ( name_ ) ) ;\
2114
	COPY_dspec ( x421_ + 2, ( storage_ ) ) ;\
2115
	COPY_nspace ( x421_ + 3, ( parent_ ) ) ;\
2116
	COPY_ulong ( x421_ + 4, ( loc_ ).line ) ;\
2117
	COPY_ulong ( x421_ + 5, ( loc_ ).column ) ;\
2118
	COPY_ptr ( x421_ + 6, ( loc_ ).posn ) ;\
2119
	COPY_id ( x421_ + 7, x421_ ) ;\
2120
	COPY_ulong ( x421_ + 8, LINK_NONE ) ;\
2121
	COPY_ulong ( x421_ + 9, LINK_NONE ) ;\
2122
	COPY_unsigned ( x421_ + 10, ( itag_ ) ) ;\
2123
	COPY_type ( x421_ + 11, ( type_ ) ) ;\
2124
	( c_class_id ) = x421_ ;\
2125
    }
2126
 
2127
#define DECONS_id_pending( name_, storage_, parent_, loc_, alias_, no_, dump_, itag_, type_, c_class_id )\
2128
    {\
2129
	c_class *x422_ = CHECK_TAG ( ( c_class_id ), 28 ) ;\
2130
	( name_ ) = DEREF_hashid ( x422_ + 1 ) ;\
2131
	( storage_ ) = DEREF_dspec ( x422_ + 2 ) ;\
2132
	( parent_ ) = DEREF_nspace ( x422_ + 3 ) ;\
2133
	( loc_ ).line = DEREF_ulong ( x422_ + 4 ) ;\
2134
	( loc_ ).column = DEREF_ulong ( x422_ + 5 ) ;\
2135
	( loc_ ).posn = DEREF_ptr ( x422_ + 6 ) ;\
2136
	( alias_ ) = DEREF_id ( x422_ + 7 ) ;\
2137
	( no_ ) = DEREF_ulong ( x422_ + 8 ) ;\
2138
	( dump_ ) = DEREF_ulong ( x422_ + 9 ) ;\
2139
	( itag_ ) = DEREF_unsigned ( x422_ + 10 ) ;\
2140
	( type_ ) = DEREF_type ( x422_ + 11 ) ;\
2141
    }
2142
 
2143
#define DESTROY_id_pending( destroyer_, name_, storage_, parent_, loc_, alias_, no_, dump_, itag_, type_, c_class_id )\
2144
    {\
2145
	c_class *x423_ = CHECK_TAG ( ( c_class_id ), 28 ) ;\
2146
	( name_ ) = DEREF_hashid ( x423_ + 1 ) ;\
2147
	( storage_ ) = DEREF_dspec ( x423_ + 2 ) ;\
2148
	( parent_ ) = DEREF_nspace ( x423_ + 3 ) ;\
2149
	( loc_ ).line = DEREF_ulong ( x423_ + 4 ) ;\
2150
	( loc_ ).column = DEREF_ulong ( x423_ + 5 ) ;\
2151
	( loc_ ).posn = DEREF_ptr ( x423_ + 6 ) ;\
2152
	( alias_ ) = DEREF_id ( x423_ + 7 ) ;\
2153
	( no_ ) = DEREF_ulong ( x423_ + 8 ) ;\
2154
	( dump_ ) = DEREF_ulong ( x423_ + 9 ) ;\
2155
	( itag_ ) = DEREF_unsigned ( x423_ + 10 ) ;\
2156
	( type_ ) = DEREF_type ( x423_ + 11 ) ;\
2157
	( destroyer_ ) ( x423_, ( unsigned ) 12 ) ;\
2158
    }
2159
 
2160
 
2161
#endif