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
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 errors (VERSION 1.0)
32
    BY calculus (VERSION 1.2)
33
*/
34
 
35
#ifndef ERRORS_H_INCLUDED
36
#define ERRORS_H_INCLUDED
37
 
38
#ifndef errors_NAME
39
#define errors_NAME			"errors"
40
#define errors_VERSION			"1.0"
41
#define errors_SPECIFICATION		0
42
#define errors_IMPLEMENTATION		1
43
#endif
44
 
45
 
46
/* Prototype macros */
47
 
48
#ifndef PROTO_S
49
#ifdef __STDC__
50
#define PROTO_S( types )		types
51
#define PROTO_N( names )
52
#define PROTO_T( parms )		( parms )
53
#define PROTO_Z()			( void )
54
#define X				,
55
#else
56
#define PROTO_S( types )		()
57
#define PROTO_N( names )		names
58
#define PROTO_T( parms )		parms ;
59
#define PROTO_Z()			()
60
#define X				;
61
#endif
62
#endif
63
 
64
#ifndef CONST_S
65
#define CONST_S
66
#endif
67
 
68
 
69
/* Primitive types */
70
 
71
typedef char * string ;
72
 
73
 
74
/* Basic types */
75
 
76
typedef union errors_tag {
77
    unsigned ag_tag ;
78
    union errors_tag *ag_ptr ;
79
    unsigned ag_enum ;
80
    unsigned long ag_long_enum ;
81
    int ag_prim_int ;
82
    string ag_prim_string ;
83
} errors ;
84
 
85
typedef errors *errors_PTR ;
86
 
87
#ifndef errors_DESTR_DEFINED
88
#define errors_DESTR_DEFINED
89
typedef void ( *DESTROYER ) PROTO_S ( ( errors *, unsigned ) ) ;
90
#endif
91
 
92
#define PTR( A )	errors_PTR
93
#define LIST( A )	errors_PTR
94
#define STACK( A )	errors_PTR
95
#define SIZE( A )	int
96
 
97
 
98
/* Assertion macros */
99
 
100
#ifdef ASSERTS
101
extern errors *check_null_errors PROTO_S ( ( errors *, CONST_S char *, int ) ) ;
102
extern errors *check_tag_errors PROTO_S ( ( errors *, unsigned, CONST_S char *, int ) ) ;
103
extern errors *check_tag_etc_errors PROTO_S ( ( errors *, unsigned, unsigned, CONST_S char *, int ) ) ;
104
#define CHECK_NULL( P )\
105
    ( check_null_errors ( ( P ), __FILE__, __LINE__ ) )
106
#define CHECK_TAG( P, N )\
107
    ( check_tag_errors ( ( P ), ( unsigned ) ( N ), __FILE__, __LINE__ ) )
108
#define CHECK_TAG_ETC( P, L, U )\
109
    ( check_tag_etc_errors ( ( P ), ( unsigned ) ( L ), ( unsigned ) ( U ), __FILE__, __LINE__ ) )
110
#else
111
#define CHECK_NULL( P )			( P )
112
#define CHECK_TAG( P, N )		( P )
113
#define CHECK_TAG_ETC( P, L, U )	( P )
114
#endif
115
 
116
 
117
/* Enumeration definitions */
118
 
119
 
120
 
121
/* Union type definitions */
122
 
123
typedef errors *NAME ;
124
typedef errors *MESSAGE ;
125
typedef errors *MAP ;
126
typedef errors *PARAM ;
127
typedef errors *ENTRY ;
128
 
129
 
130
/* Structure declarations */
131
 
132
 
133
 
134
/* Identity type definitions */
135
 
136
typedef NAME KEY ;
137
typedef NAME PROPERTY ;
138
typedef NAME TYPE ;
139
typedef NAME USAGE ;
140
 
141
 
142
/* Structure definitions */
143
 
144
#ifndef errors_STRUCT_DEFINED
145
#define errors_STRUCT_DEFINED
146
 
147
#endif /* errors_STRUCT_DEFINED */
148
 
149
 
150
/* Function declarations */
151
 
152
extern errors *gen_errors PROTO_S ( ( unsigned ) ) ;
153
extern void destroy_errors PROTO_S ( ( errors *, unsigned ) ) ;
154
extern void dummy_destroy_errors PROTO_S ( ( errors *, unsigned ) ) ;
155
extern void destroy_errors_list PROTO_S ( ( errors *, unsigned ) ) ;
156
extern errors *append_errors_list PROTO_S ( ( errors *, errors * ) ) ;
157
extern errors *end_errors_list PROTO_S ( ( errors * ) ) ;
158
extern unsigned length_errors_list PROTO_S ( ( errors * ) ) ;
159
extern errors *reverse_errors_list PROTO_S ( ( errors * ) ) ;
160
#ifdef errors_IO_ROUTINES
161
extern unsigned crt_errors_alias ;
162
extern void set_errors_alias PROTO_S ( ( errors *, unsigned ) ) ;
163
extern errors *find_errors_alias PROTO_S ( ( unsigned ) ) ;
164
extern void clear_errors_alias PROTO_S ( ( void ) ) ;
165
#endif
166
 
167
 
168
/* Run-time type information */
169
 
170
#ifndef GEN_errors
171
#define GEN_errors( A, B )		gen_errors ( ( unsigned ) ( A ) )
172
#endif
173
#define TYPEID_ptr			( ( unsigned ) 0 )
174
#define TYPEID_list			( ( unsigned ) 1 )
175
#define TYPEID_stack			( ( unsigned ) 2 )
176
#define TYPEID_name			( ( unsigned ) 3 )
177
#define TYPEID_msg			( ( unsigned ) 4 )
178
#define TYPEID_map			( ( unsigned ) 5 )
179
#define TYPEID_param			( ( unsigned ) 6 )
180
#define TYPEID_entry			( ( unsigned ) 7 )
181
 
182
 
183
/* Definitions for pointers */
184
 
185
#define STEP_ptr( A, B )		( CHECK_NULL ( A ) + B )
186
#define SIZE_ptr( A )			1
187
#define NULL_ptr( A )			( ( errors * ) 0 )
188
#define IS_NULL_ptr( A )		( ( A ) == 0 )
189
#define EQ_ptr( A, B )			( ( A ) == ( B ) )
190
#define MAKE_ptr( A )			GEN_errors ( ( A ), TYPEID_ptr )
191
#define DESTROY_ptr( A, B )		destroy_errors ( ( A ), ( unsigned ) ( B ) )
192
#define UNIQ_ptr( A )			GEN_errors ( 1, TYPEID_ptr )
193
#define DESTROY_UNIQ_ptr( A )		destroy_errors ( ( A ), ( unsigned ) 1 )
194
#ifdef errors_IO_ROUTINES
195
#define VOIDSTAR_ptr( A )		( ( void * ) ( A ) )
196
#endif
197
 
198
#define COPY_ptr( A, B )		( CHECK_NULL ( A )->ag_ptr = ( B ) )
199
#define DEREF_ptr( A )			( CHECK_NULL ( A )->ag_ptr )
200
#define CONS_ptr( A, B, C )\
201
    {\
202
	errors *x0_ = GEN_errors ( 2, TYPEID_list ) ;\
203
	x0_ [1].ag_ptr = ( A ) ;\
204
	x0_->ag_ptr = ( B ) ;\
205
	( C ) = x0_ ;\
206
    }
207
 
208
#define UN_CONS_ptr( A, B, C )\
209
    {\
210
	errors *x1_ = CHECK_NULL ( C ) ;\
211
	( A ) = x1_ [1].ag_ptr ;\
212
	( B ) = x1_->ag_ptr ;\
213
    }
214
 
215
#define DESTROY_CONS_ptr( D, A, B, C )\
216
    {\
217
	errors *x2_ = CHECK_NULL ( C ) ;\
218
	( A ) = x2_ [1].ag_ptr ;\
219
	( B ) = x2_->ag_ptr ;\
220
	( D ) ( x2_, ( unsigned ) 2 ) ;\
221
    }
222
 
223
#define PUSH_ptr( A, B )\
224
    {\
225
	errors **r3_ = &( B ) ;\
226
	errors *x3_ = GEN_errors ( 2, TYPEID_stack ) ;\
227
	x3_ [1].ag_ptr = ( A ) ;\
228
	x3_->ag_ptr = *r3_ ;\
229
	*r3_ = x3_ ;\
230
    }
231
 
232
#define POP_ptr( A, B )\
233
    {\
234
	errors **r4_ = &( B ) ;\
235
	errors *x4_ = CHECK_NULL ( *r4_ ) ;\
236
	( A ) = x4_ [1].ag_ptr ;\
237
	*r4_ = x4_->ag_ptr ;\
238
	destroy_errors ( x4_, ( unsigned ) 2 ) ;\
239
    }
240
 
241
 
242
/* Definitions for lists */
243
 
244
#define HEAD_list( A )			( CHECK_NULL ( A ) + 1 )
245
#define PTR_TAIL_list( A )		( CHECK_NULL ( A ) )
246
#define TAIL_list( A )			( CHECK_NULL ( A )->ag_ptr )
247
#define LENGTH_list( A )		length_errors_list ( ( A ) )
248
#define END_list( A )			end_errors_list ( ( A ) )
249
#define REVERSE_list( A )		reverse_errors_list ( ( A ) )
250
#define APPEND_list( A, B )		append_errors_list ( ( A ), ( B ) )
251
 
252
#define SIZE_list( A )			1
253
#define NULL_list( A )			( ( errors * ) 0 )
254
#define IS_NULL_list( A )		( ( A ) == 0 )
255
#define EQ_list( A, B )			( ( A ) == ( B ) )
256
#define UNIQ_list( A )			GEN_errors ( 1, TYPEID_list )
257
#define DESTROY_UNIQ_list( A )		destroy_errors ( ( A ), ( unsigned ) 1 )
258
#ifdef errors_IO_ROUTINES
259
#define VOIDSTAR_list( A )		( ( void * ) ( A ) )
260
#endif
261
 
262
#define DESTROY_list( A, B )\
263
    {\
264
	destroy_errors_list ( ( A ), ( unsigned ) ( B ) ) ;\
265
    }
266
 
267
#define COPY_list( A, B )		( CHECK_NULL ( A )->ag_ptr = ( B ) )
268
#define DEREF_list( A )			( CHECK_NULL ( A )->ag_ptr )
269
#define CONS_list( A, B, C )\
270
    {\
271
	errors *x5_ = GEN_errors ( 2, TYPEID_list ) ;\
272
	x5_ [1].ag_ptr = ( A ) ;\
273
	x5_->ag_ptr = ( B ) ;\
274
	( C ) = x5_ ;\
275
    }
276
 
277
#define UN_CONS_list( A, B, C )\
278
    {\
279
	errors *x6_ = CHECK_NULL ( C ) ;\
280
	( A ) = x6_ [1].ag_ptr ;\
281
	( B ) = x6_->ag_ptr ;\
282
    }
283
 
284
#define DESTROY_CONS_list( D, A, B, C )\
285
    {\
286
	errors *x7_ = CHECK_NULL ( C ) ;\
287
	( A ) = x7_ [1].ag_ptr ;\
288
	( B ) = x7_->ag_ptr ;\
289
	( D ) ( x7_, ( unsigned ) 2 ) ;\
290
    }
291
 
292
#define PUSH_list( A, B )\
293
    {\
294
	errors **r8_ = &( B ) ;\
295
	errors *x8_ = GEN_errors ( 2, TYPEID_stack ) ;\
296
	x8_ [1].ag_ptr = ( A ) ;\
297
	x8_->ag_ptr = *r8_ ;\
298
	*r8_ = x8_ ;\
299
    }
300
 
301
#define POP_list( A, B )\
302
    {\
303
	errors **r9_ = &( B ) ;\
304
	errors *x9_ = CHECK_NULL ( *r9_ ) ;\
305
	( A ) = x9_ [1].ag_ptr ;\
306
	*r9_ = x9_->ag_ptr ;\
307
	destroy_errors ( x9_, ( unsigned ) 2 ) ;\
308
    }
309
 
310
 
311
/* Definitions for stacks */
312
 
313
#define SIZE_stack( A )			1
314
#define NULL_stack( A )			( ( errors * ) 0 )
315
#define IS_NULL_stack( A )		( ( A ) == 0 )
316
#define STACK_list( A )			( A )
317
#define LIST_stack( A )			( A )
318
 
319
#define COPY_stack( A, B )		( CHECK_NULL ( A )->ag_ptr = ( B ) )
320
#define DEREF_stack( A )		( CHECK_NULL ( A )->ag_ptr )
321
#define CONS_stack( A, B, C )\
322
    {\
323
	errors *x10_ = GEN_errors ( 2, TYPEID_list ) ;\
324
	x10_ [1].ag_ptr = ( A ) ;\
325
	x10_->ag_ptr = ( B ) ;\
326
	( C ) = x10_ ;\
327
    }
328
 
329
#define UN_CONS_stack( A, B, C )\
330
    {\
331
	errors *x11_ = CHECK_NULL ( C ) ;\
332
	( A ) = x11_ [1].ag_ptr ;\
333
	( B ) = x11_->ag_ptr ;\
334
    }
335
 
336
#define DESTROY_CONS_stack( D, A, B, C )\
337
    {\
338
	errors *x12_ = CHECK_NULL ( C ) ;\
339
	( A ) = x12_ [1].ag_ptr ;\
340
	( B ) = x12_->ag_ptr ;\
341
	( D ) ( x12_, ( unsigned ) 2 ) ;\
342
    }
343
 
344
#define PUSH_stack( A, B )\
345
    {\
346
	errors **r13_ = &( B ) ;\
347
	errors *x13_ = GEN_errors ( 2, TYPEID_stack ) ;\
348
	x13_ [1].ag_ptr = ( A ) ;\
349
	x13_->ag_ptr = *r13_ ;\
350
	*r13_ = x13_ ;\
351
    }
352
 
353
#define POP_stack( A, B )\
354
    {\
355
	errors **r14_ = &( B ) ;\
356
	errors *x14_ = CHECK_NULL ( *r14_ ) ;\
357
	( A ) = x14_ [1].ag_ptr ;\
358
	*r14_ = x14_->ag_ptr ;\
359
	destroy_errors ( x14_, ( unsigned ) 2 ) ;\
360
    }
361
 
362
 
363
/* Definitions for sizes */
364
 
365
#define SCALE( A, B )			( ( A ) * ( int ) ( B ) )
366
 
367
 
368
/* Definitions for primitive int */
369
 
370
#define SIZE_int			1
371
 
372
#define COPY_int( A, B )		( CHECK_NULL ( A )->ag_prim_int = ( B ) )
373
#define DEREF_int( A )			( CHECK_NULL ( A )->ag_prim_int )
374
#define CONS_int( A, B, C )\
375
    {\
376
	errors *x15_ = GEN_errors ( 2, TYPEID_list ) ;\
377
	COPY_int ( x15_ + 1, ( A ) ) ;\
378
	x15_->ag_ptr = ( B ) ;\
379
	( C ) = x15_ ;\
380
    }
381
 
382
#define UN_CONS_int( A, B, C )\
383
    {\
384
	errors *x16_ = CHECK_NULL ( C ) ;\
385
	( A ) = DEREF_int ( x16_ + 1 ) ;\
386
	( B ) = x16_->ag_ptr ;\
387
    }
388
 
389
#define DESTROY_CONS_int( D, A, B, C )\
390
    {\
391
	errors *x17_ = CHECK_NULL ( C ) ;\
392
	( A ) = DEREF_int ( x17_ + 1 ) ;\
393
	( B ) = x17_->ag_ptr ;\
394
	( D ) ( x17_, ( unsigned ) 2 ) ;\
395
    }
396
 
397
#define PUSH_int( A, B )\
398
    {\
399
	errors **r18_ = &( B ) ;\
400
	errors *x18_ = GEN_errors ( 2, TYPEID_stack ) ;\
401
	COPY_int ( x18_ + 1, ( A ) ) ;\
402
	x18_->ag_ptr = *r18_ ;\
403
	*r18_ = x18_ ;\
404
    }
405
 
406
#define POP_int( A, B )\
407
    {\
408
	errors **r19_ = &( B ) ;\
409
	errors *x19_ = CHECK_NULL ( *r19_ ) ;\
410
	( A ) = DEREF_int ( x19_ + 1 ) ;\
411
	*r19_ = x19_->ag_ptr ;\
412
	destroy_errors ( x19_, ( unsigned ) 2 ) ;\
413
    }
414
 
415
 
416
/* Definitions for primitive string */
417
 
418
#define SIZE_string			1
419
 
420
#define COPY_string( A, B )		( CHECK_NULL ( A )->ag_prim_string = ( B ) )
421
#define DEREF_string( A )		( CHECK_NULL ( A )->ag_prim_string )
422
#define CONS_string( A, B, C )\
423
    {\
424
	errors *x20_ = GEN_errors ( 2, TYPEID_list ) ;\
425
	COPY_string ( x20_ + 1, ( A ) ) ;\
426
	x20_->ag_ptr = ( B ) ;\
427
	( C ) = x20_ ;\
428
    }
429
 
430
#define UN_CONS_string( A, B, C )\
431
    {\
432
	errors *x21_ = CHECK_NULL ( C ) ;\
433
	( A ) = DEREF_string ( x21_ + 1 ) ;\
434
	( B ) = x21_->ag_ptr ;\
435
    }
436
 
437
#define DESTROY_CONS_string( D, A, B, C )\
438
    {\
439
	errors *x22_ = CHECK_NULL ( C ) ;\
440
	( A ) = DEREF_string ( x22_ + 1 ) ;\
441
	( B ) = x22_->ag_ptr ;\
442
	( D ) ( x22_, ( unsigned ) 2 ) ;\
443
    }
444
 
445
#define PUSH_string( A, B )\
446
    {\
447
	errors **r23_ = &( B ) ;\
448
	errors *x23_ = GEN_errors ( 2, TYPEID_stack ) ;\
449
	COPY_string ( x23_ + 1, ( A ) ) ;\
450
	x23_->ag_ptr = *r23_ ;\
451
	*r23_ = x23_ ;\
452
    }
453
 
454
#define POP_string( A, B )\
455
    {\
456
	errors **r24_ = &( B ) ;\
457
	errors *x24_ = CHECK_NULL ( *r24_ ) ;\
458
	( A ) = DEREF_string ( x24_ + 1 ) ;\
459
	*r24_ = x24_->ag_ptr ;\
460
	destroy_errors ( x24_, ( unsigned ) 2 ) ;\
461
    }
462
 
463
 
464
/* Definitions for union NAME */
465
 
466
#define ORDER_name			( ( unsigned ) 1 )
467
#define SIZE_name			1
468
#define NULL_name			( ( NAME ) 0 )
469
#define IS_NULL_name( A )		( ( A ) == 0 )
470
#define EQ_name( A, B )			( ( A ) == ( B ) )
471
 
472
#define COPY_name( A, B )		( CHECK_NULL ( A )->ag_ptr = ( B ) )
473
#define DEREF_name( A )			( CHECK_NULL ( A )->ag_ptr )
474
 
475
#define CONS_name( A, B, C )\
476
    {\
477
	errors *x25_ = GEN_errors ( 2, TYPEID_list ) ;\
478
	COPY_name ( x25_ + 1, ( A ) ) ;\
479
	x25_->ag_ptr = ( B ) ;\
480
	( C ) = x25_ ;\
481
    }
482
 
483
#define UN_CONS_name( A, B, C )\
484
    {\
485
	errors *x26_ = CHECK_NULL ( C ) ;\
486
	( A ) = DEREF_name ( x26_ + 1 ) ;\
487
	( B ) = x26_->ag_ptr ;\
488
    }
489
 
490
#define DESTROY_CONS_name( D, A, B, C )\
491
    {\
492
	errors *x27_ = CHECK_NULL ( C ) ;\
493
	( A ) = DEREF_name ( x27_ + 1 ) ;\
494
	( B ) = x27_->ag_ptr ;\
495
	( D ) ( x27_, ( unsigned ) 2 ) ;\
496
    }
497
 
498
#define PUSH_name( A, B )\
499
    {\
500
	errors **r28_ = &( B ) ;\
501
	errors *x28_ = GEN_errors ( 2, TYPEID_stack ) ;\
502
	COPY_name ( x28_ + 1, ( A ) ) ;\
503
	x28_->ag_ptr = *r28_ ;\
504
	*r28_ = x28_ ;\
505
    }
506
 
507
#define POP_name( A, B )\
508
    {\
509
	errors **r29_ = &( B ) ;\
510
	errors *x29_ = CHECK_NULL ( *r29_ ) ;\
511
	( A ) = DEREF_name ( x29_ + 1 ) ;\
512
	*r29_ = x29_->ag_ptr ;\
513
	destroy_errors ( x29_, ( unsigned ) 2 ) ;\
514
    }
515
 
516
 
517
/* Definitions for union MESSAGE */
518
 
519
#define ORDER_msg			( ( unsigned ) 2 )
520
#define SIZE_msg			1
521
#define NULL_msg			( ( MESSAGE ) 0 )
522
#define IS_NULL_msg( A )		( ( A ) == 0 )
523
#define EQ_msg( A, B )			( ( A ) == ( B ) )
524
 
525
#define COPY_msg( A, B )		( CHECK_NULL ( A )->ag_ptr = ( B ) )
526
#define DEREF_msg( A )			( CHECK_NULL ( A )->ag_ptr )
527
 
528
#define CONS_msg( A, B, C )\
529
    {\
530
	errors *x30_ = GEN_errors ( 2, TYPEID_list ) ;\
531
	COPY_msg ( x30_ + 1, ( A ) ) ;\
532
	x30_->ag_ptr = ( B ) ;\
533
	( C ) = x30_ ;\
534
    }
535
 
536
#define UN_CONS_msg( A, B, C )\
537
    {\
538
	errors *x31_ = CHECK_NULL ( C ) ;\
539
	( A ) = DEREF_msg ( x31_ + 1 ) ;\
540
	( B ) = x31_->ag_ptr ;\
541
    }
542
 
543
#define DESTROY_CONS_msg( D, A, B, C )\
544
    {\
545
	errors *x32_ = CHECK_NULL ( C ) ;\
546
	( A ) = DEREF_msg ( x32_ + 1 ) ;\
547
	( B ) = x32_->ag_ptr ;\
548
	( D ) ( x32_, ( unsigned ) 2 ) ;\
549
    }
550
 
551
#define PUSH_msg( A, B )\
552
    {\
553
	errors **r33_ = &( B ) ;\
554
	errors *x33_ = GEN_errors ( 2, TYPEID_stack ) ;\
555
	COPY_msg ( x33_ + 1, ( A ) ) ;\
556
	x33_->ag_ptr = *r33_ ;\
557
	*r33_ = x33_ ;\
558
    }
559
 
560
#define POP_msg( A, B )\
561
    {\
562
	errors **r34_ = &( B ) ;\
563
	errors *x34_ = CHECK_NULL ( *r34_ ) ;\
564
	( A ) = DEREF_msg ( x34_ + 1 ) ;\
565
	*r34_ = x34_->ag_ptr ;\
566
	destroy_errors ( x34_, ( unsigned ) 2 ) ;\
567
    }
568
 
569
 
570
/* Definitions for union MAP */
571
 
572
#define ORDER_map			( ( unsigned ) 1 )
573
#define SIZE_map			1
574
#define NULL_map			( ( MAP ) 0 )
575
#define IS_NULL_map( A )		( ( A ) == 0 )
576
#define EQ_map( A, B )			( ( A ) == ( B ) )
577
 
578
#define COPY_map( A, B )		( CHECK_NULL ( A )->ag_ptr = ( B ) )
579
#define DEREF_map( A )			( CHECK_NULL ( A )->ag_ptr )
580
 
581
#define CONS_map( A, B, C )\
582
    {\
583
	errors *x35_ = GEN_errors ( 2, TYPEID_list ) ;\
584
	COPY_map ( x35_ + 1, ( A ) ) ;\
585
	x35_->ag_ptr = ( B ) ;\
586
	( C ) = x35_ ;\
587
    }
588
 
589
#define UN_CONS_map( A, B, C )\
590
    {\
591
	errors *x36_ = CHECK_NULL ( C ) ;\
592
	( A ) = DEREF_map ( x36_ + 1 ) ;\
593
	( B ) = x36_->ag_ptr ;\
594
    }
595
 
596
#define DESTROY_CONS_map( D, A, B, C )\
597
    {\
598
	errors *x37_ = CHECK_NULL ( C ) ;\
599
	( A ) = DEREF_map ( x37_ + 1 ) ;\
600
	( B ) = x37_->ag_ptr ;\
601
	( D ) ( x37_, ( unsigned ) 2 ) ;\
602
    }
603
 
604
#define PUSH_map( A, B )\
605
    {\
606
	errors **r38_ = &( B ) ;\
607
	errors *x38_ = GEN_errors ( 2, TYPEID_stack ) ;\
608
	COPY_map ( x38_ + 1, ( A ) ) ;\
609
	x38_->ag_ptr = *r38_ ;\
610
	*r38_ = x38_ ;\
611
    }
612
 
613
#define POP_map( A, B )\
614
    {\
615
	errors **r39_ = &( B ) ;\
616
	errors *x39_ = CHECK_NULL ( *r39_ ) ;\
617
	( A ) = DEREF_map ( x39_ + 1 ) ;\
618
	*r39_ = x39_->ag_ptr ;\
619
	destroy_errors ( x39_, ( unsigned ) 2 ) ;\
620
    }
621
 
622
 
623
/* Definitions for union PARAM */
624
 
625
#define ORDER_param			( ( unsigned ) 1 )
626
#define SIZE_param			1
627
#define NULL_param			( ( PARAM ) 0 )
628
#define IS_NULL_param( A )		( ( A ) == 0 )
629
#define EQ_param( A, B )		( ( A ) == ( B ) )
630
 
631
#define COPY_param( A, B )		( CHECK_NULL ( A )->ag_ptr = ( B ) )
632
#define DEREF_param( A )		( CHECK_NULL ( A )->ag_ptr )
633
 
634
#define CONS_param( A, B, C )\
635
    {\
636
	errors *x40_ = GEN_errors ( 2, TYPEID_list ) ;\
637
	COPY_param ( x40_ + 1, ( A ) ) ;\
638
	x40_->ag_ptr = ( B ) ;\
639
	( C ) = x40_ ;\
640
    }
641
 
642
#define UN_CONS_param( A, B, C )\
643
    {\
644
	errors *x41_ = CHECK_NULL ( C ) ;\
645
	( A ) = DEREF_param ( x41_ + 1 ) ;\
646
	( B ) = x41_->ag_ptr ;\
647
    }
648
 
649
#define DESTROY_CONS_param( D, A, B, C )\
650
    {\
651
	errors *x42_ = CHECK_NULL ( C ) ;\
652
	( A ) = DEREF_param ( x42_ + 1 ) ;\
653
	( B ) = x42_->ag_ptr ;\
654
	( D ) ( x42_, ( unsigned ) 2 ) ;\
655
    }
656
 
657
#define PUSH_param( A, B )\
658
    {\
659
	errors **r43_ = &( B ) ;\
660
	errors *x43_ = GEN_errors ( 2, TYPEID_stack ) ;\
661
	COPY_param ( x43_ + 1, ( A ) ) ;\
662
	x43_->ag_ptr = *r43_ ;\
663
	*r43_ = x43_ ;\
664
    }
665
 
666
#define POP_param( A, B )\
667
    {\
668
	errors **r44_ = &( B ) ;\
669
	errors *x44_ = CHECK_NULL ( *r44_ ) ;\
670
	( A ) = DEREF_param ( x44_ + 1 ) ;\
671
	*r44_ = x44_->ag_ptr ;\
672
	destroy_errors ( x44_, ( unsigned ) 2 ) ;\
673
    }
674
 
675
 
676
/* Definitions for union ENTRY */
677
 
678
#define ORDER_entry			( ( unsigned ) 1 )
679
#define SIZE_entry			1
680
#define NULL_entry			( ( ENTRY ) 0 )
681
#define IS_NULL_entry( A )		( ( A ) == 0 )
682
#define EQ_entry( A, B )		( ( A ) == ( B ) )
683
 
684
#define COPY_entry( A, B )		( CHECK_NULL ( A )->ag_ptr = ( B ) )
685
#define DEREF_entry( A )		( CHECK_NULL ( A )->ag_ptr )
686
 
687
#define CONS_entry( A, B, C )\
688
    {\
689
	errors *x45_ = GEN_errors ( 2, TYPEID_list ) ;\
690
	COPY_entry ( x45_ + 1, ( A ) ) ;\
691
	x45_->ag_ptr = ( B ) ;\
692
	( C ) = x45_ ;\
693
    }
694
 
695
#define UN_CONS_entry( A, B, C )\
696
    {\
697
	errors *x46_ = CHECK_NULL ( C ) ;\
698
	( A ) = DEREF_entry ( x46_ + 1 ) ;\
699
	( B ) = x46_->ag_ptr ;\
700
    }
701
 
702
#define DESTROY_CONS_entry( D, A, B, C )\
703
    {\
704
	errors *x47_ = CHECK_NULL ( C ) ;\
705
	( A ) = DEREF_entry ( x47_ + 1 ) ;\
706
	( B ) = x47_->ag_ptr ;\
707
	( D ) ( x47_, ( unsigned ) 2 ) ;\
708
    }
709
 
710
#define PUSH_entry( A, B )\
711
    {\
712
	errors **r48_ = &( B ) ;\
713
	errors *x48_ = GEN_errors ( 2, TYPEID_stack ) ;\
714
	COPY_entry ( x48_ + 1, ( A ) ) ;\
715
	x48_->ag_ptr = *r48_ ;\
716
	*r48_ = x48_ ;\
717
    }
718
 
719
#define POP_entry( A, B )\
720
    {\
721
	errors **r49_ = &( B ) ;\
722
	errors *x49_ = CHECK_NULL ( *r49_ ) ;\
723
	( A ) = DEREF_entry ( x49_ + 1 ) ;\
724
	*r49_ = x49_->ag_ptr ;\
725
	destroy_errors ( x49_, ( unsigned ) 2 ) ;\
726
    }
727
 
728
 
729
/* Maximum allocation size */
730
 
731
#define errors_GEN_MAX			8
732
 
733
#endif