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 C_CLASS_H_TOK_INCLUDED
36
#define C_CLASS_H_TOK_INCLUDED
37
 
38
#ifndef c_class_NAME
39
#define c_class_NAME			"c_class"
40
#define c_class_VERSION			"1.1"
41
#define c_class_SPECIFICATION		1
42
#define c_class_IMPLEMENTATION		0
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 character * string ;
72
typedef unsigned long ulong_type ;
73
typedef struct bits_tag * BITSTREAM_P ;
74
typedef struct pptok_tag * PPTOKEN_P ;
75
 
76
 
77
/* Basic types */
78
 
79
#ifndef c_class_DESTR_DEFINED
80
#define c_class_DESTR_DEFINED
81
typedef void ( *DESTROYER ) () ;
82
#endif
83
 
84
#pragma token PROC ( TYPE ) TYPE PTR #
85
#pragma token PROC ( TYPE ) TYPE LIST #
86
#pragma token PROC ( TYPE ) TYPE STACK #
87
#pragma token PROC ( TYPE ) TYPE SIZE #
88
 
89
#pragma interface PTR LIST STACK SIZE
90
 
91
 
92
/* Enumeration type definitions */
93
 
94
#pragma token VARIETY CV_SPEC #
95
#pragma interface CV_SPEC
96
#pragma token VARIETY BUILTIN_TYPE #
97
#pragma interface BUILTIN_TYPE
98
#pragma token VARIETY BASE_TYPE #
99
#pragma interface BASE_TYPE
100
#pragma token VARIETY CLASS_INFO #
101
#pragma interface CLASS_INFO
102
#pragma token VARIETY CLASS_USAGE #
103
#pragma interface CLASS_USAGE
104
#pragma token VARIETY DECL_SPEC #
105
#pragma interface DECL_SPEC
106
#pragma token VARIETY QUALIFIER #
107
#pragma interface QUALIFIER
108
#pragma token VARIETY NTEST #
109
#pragma interface NTEST
110
#pragma token VARIETY RMODE #
111
#pragma interface RMODE
112
 
113
 
114
/* Union type definitions */
115
 
116
#pragma token TYPE INT_TYPE #
117
#pragma interface INT_TYPE
118
#pragma token TYPE FLOAT_TYPE #
119
#pragma interface FLOAT_TYPE
120
#pragma token TYPE CLASS_TYPE #
121
#pragma interface CLASS_TYPE
122
#pragma token TYPE GRAPH #
123
#pragma interface GRAPH
124
#pragma token TYPE VIRTUAL #
125
#pragma interface VIRTUAL
126
#pragma token TYPE ENUM_TYPE #
127
#pragma interface ENUM_TYPE
128
#pragma token TYPE TYPE #
129
#pragma interface TYPE
130
#pragma token TYPE HASHID #
131
#pragma interface HASHID
132
#pragma token TYPE IDENTIFIER #
133
#pragma interface IDENTIFIER
134
#pragma token TYPE MEMBER #
135
#pragma interface MEMBER
136
#pragma token TYPE NAMESPACE #
137
#pragma interface NAMESPACE
138
#pragma token TYPE NAT #
139
#pragma interface NAT
140
#pragma token TYPE FLOAT #
141
#pragma interface FLOAT
142
#pragma token TYPE STRING #
143
#pragma interface STRING
144
#pragma token TYPE EXP #
145
#pragma interface EXP
146
#pragma token TYPE OFFSET #
147
#pragma interface OFFSET
148
#pragma token TYPE TOKEN #
149
#pragma interface TOKEN
150
#pragma token TYPE INSTANCE #
151
#pragma interface INSTANCE
152
#pragma token TYPE ERROR #
153
#pragma interface ERROR
154
 
155
 
156
/* Structure declarations */
157
 
158
typedef struct var_tag VARIABLE ;
159
typedef struct loc_tag LOCATION ;
160
typedef struct posn_tag POSITION ;
161
 
162
 
163
/* Identity type definitions */
164
 
165
 
166
 
167
/* Structure definitions */
168
 
169
#ifndef c_class_STRUCT_DEFINED
170
#define c_class_STRUCT_DEFINED
171
 
172
struct var_tag {
173
    IDENTIFIER id ;
174
    DECL_SPEC info ;
175
} ;
176
 
177
struct loc_tag {
178
    ulong_type line ;
179
    ulong_type column ;
180
    PTR ( POSITION ) posn ;
181
} ;
182
 
183
struct posn_tag {
184
    string file ;
185
    string input ;
186
    string base ;
187
    string dir ;
188
    ulong_type offset ;
189
    PTR ( LOCATION ) from ;
190
    ulong_type datestamp ;
191
    ulong_type tok ;
192
} ;
193
 
194
#endif /* c_class_STRUCT_DEFINED */
195
 
196
 
197
/* Function declarations */
198
 
199
extern void destroy_c_class () ;
200
extern void dummy_destroy_c_class () ;
201
#ifdef c_class_IO_ROUTINES
202
extern unsigned crt_c_class_alias ;
203
extern void clear_c_class_alias PROTO_S ( ( void ) ) ;
204
#endif
205
 
206
 
207
/* Pointer token specifications */
208
 
209
#pragma token PROC {\
210
	TYPE t, EXP : PTR ( t ) : e1, EXP : SIZE ( t ) : e2 |\
211
	EXP e1, EXP e2\
212
    } EXP : PTR ( t ) : STEP_ptr #
213
 
214
#pragma token PROC (\
215
	TYPE t\
216
    ) EXP const : PTR ( t ) : NULL_ptr #
217
 
218
#pragma token PROC {\
219
	TYPE t, EXP : PTR ( t ) : e |\
220
	EXP e\
221
    } EXP : int : IS_NULL_ptr #
222
 
223
#pragma token PROC {\
224
	TYPE t, EXP : PTR ( t ) : e1, EXP : PTR ( t ) : e2 |\
225
	EXP e1, EXP e2\
226
    } EXP : int : EQ_ptr #
227
 
228
#pragma token PROC {\
229
	TYPE t, EXP : SIZE ( t ) : e |\
230
	EXP e\
231
    } EXP : PTR ( t ) : MAKE_ptr #
232
 
233
#pragma token PROC {\
234
	TYPE t, EXP : PTR ( t ) : e1, EXP : SIZE ( t ) : e2 |\
235
	EXP e1, EXP e2\
236
    } EXP : void : DESTROY_ptr #
237
 
238
#pragma token PROC (\
239
	TYPE t\
240
    ) EXP : PTR ( t ) : UNIQ_ptr #
241
 
242
#pragma token PROC {\
243
	TYPE t, EXP : PTR ( t ) : e |\
244
	EXP e\
245
    } EXP : void : DESTROY_UNIQ_ptr #
246
 
247
#pragma interface STEP_ptr NULL_ptr IS_NULL_ptr EQ_ptr
248
#pragma interface MAKE_ptr DESTROY_ptr
249
 
250
#ifdef c_class_IO_ROUTINES
251
#pragma token PROC {\
252
	TYPE t, EXP : PTR ( t ) : e |\
253
	EXP e\
254
    } EXP : void * : VOIDSTAR_ptr #
255
#pragma interface VOIDSTAR_ptr
256
#endif
257
 
258
#pragma token PROC (\
259
	TYPE t\
260
    ) EXP const : SIZE ( PTR ( t ) ) : SIZE_ptr #
261
 
262
#pragma token PROC {\
263
	TYPE t, EXP : PTR ( PTR ( t ) ) : e1,\
264
	EXP : PTR ( t ) : e2 |\
265
	EXP e1, EXP e2\
266
    } EXP : void : COPY_ptr #
267
 
268
#pragma token PROC {\
269
	TYPE t, EXP : PTR ( PTR ( t ) ) : e |\
270
	EXP e\
271
    } EXP : PTR ( t ) : DEREF_ptr #
272
 
273
#pragma token PROC {\
274
	TYPE t, EXP : PTR ( t ) : e2,\
275
	EXP : LIST ( PTR ( t ) ) : e3,\
276
	EXP lvalue : LIST ( PTR ( t ) ) : e4 |\
277
	EXP e2, EXP e3, EXP e4\
278
    } STATEMENT CONS_ptr #
279
 
280
#pragma token PROC {\
281
	TYPE t, EXP lvalue : PTR ( t ) : e2,\
282
	EXP lvalue : LIST ( PTR ( t ) ) : e3,\
283
	EXP : LIST ( PTR ( t ) ) : e4 |\
284
	EXP e2, EXP e3, EXP e4\
285
    } STATEMENT UN_CONS_ptr #
286
 
287
#pragma token PROC {\
288
	TYPE t, EXP : DESTROYER : e1,\
289
	EXP lvalue : PTR ( t ) : e2,\
290
	EXP lvalue : LIST ( PTR ( t ) ) : e3,\
291
	EXP : LIST ( PTR ( t ) ) : e4 |\
292
	EXP e1, EXP e2, EXP e3, EXP e4\
293
    } STATEMENT DESTROY_CONS_ptr #
294
 
295
#pragma token PROC {\
296
	TYPE t, EXP : PTR ( t ) : e2,\
297
	EXP lvalue : STACK ( PTR ( t ) ) : e3 |\
298
	EXP e2, EXP e3\
299
    } STATEMENT PUSH_ptr #
300
 
301
#pragma token PROC {\
302
	TYPE t, EXP lvalue : PTR ( t ) : e2,\
303
	EXP lvalue : STACK ( PTR ( t ) ) : e3 |\
304
	EXP e2, EXP e3\
305
    } STATEMENT POP_ptr #
306
 
307
#pragma interface SIZE_ptr COPY_ptr DEREF_ptr
308
#pragma interface CONS_ptr UN_CONS_ptr DESTROY_CONS_ptr
309
#pragma interface PUSH_ptr POP_ptr
310
 
311
 
312
/* List token specifications */
313
 
314
#pragma token PROC {\
315
	TYPE t, EXP : LIST ( t ) : e |\
316
	EXP e\
317
    } EXP : PTR ( t ) : HEAD_list #
318
 
319
#pragma token PROC {\
320
	TYPE t, EXP : LIST ( t ) : e |\
321
	EXP e\
322
    } EXP : PTR ( LIST ( t ) ) : PTR_TAIL_list #
323
 
324
#pragma token PROC {\
325
	TYPE t, EXP : LIST ( t ) : e |\
326
	EXP e\
327
    } EXP : LIST ( t ) : TAIL_list #
328
 
329
#pragma token PROC {\
330
	TYPE t, EXP : LIST ( t ) : e1 |\
331
	EXP e1\
332
    } EXP : unsigned : LENGTH_list #
333
 
334
#pragma token PROC {\
335
	TYPE t, EXP : LIST ( t ) : e1 |\
336
	EXP e1\
337
    } EXP : LIST ( t ) : END_list #
338
 
339
#pragma token PROC {\
340
	TYPE t, EXP : LIST ( t ) : e1 |\
341
	EXP e1\
342
    } EXP : LIST ( t ) : REVERSE_list #
343
 
344
#pragma token PROC {\
345
	TYPE t, EXP : LIST ( t ) : e1, EXP : LIST ( t ) : e2 |\
346
	EXP e1, EXP e2\
347
    } EXP : LIST ( t ) : APPEND_list #
348
 
349
#pragma token PROC (\
350
	TYPE t\
351
    ) EXP const : LIST ( t ) : NULL_list #
352
 
353
#pragma token PROC {\
354
	TYPE t, EXP : LIST ( t ) : e |\
355
	EXP e\
356
    } EXP : int : IS_NULL_list #
357
 
358
#pragma token PROC {\
359
	TYPE t, EXP : LIST ( t ) : e1, EXP : LIST ( t ) : e2 |\
360
	EXP e1, EXP e2\
361
    } EXP : int : EQ_list #
362
 
363
#pragma token PROC (\
364
	TYPE t\
365
    ) EXP : LIST ( t ) : UNIQ_list #
366
 
367
#pragma token PROC {\
368
	TYPE t, EXP : LIST ( t ) : e |\
369
	EXP e\
370
    } EXP : void : DESTROY_UNIQ_list #
371
 
372
#pragma token PROC {\
373
	TYPE t, EXP : LIST ( t ) : e1, EXP : SIZE ( t ) : e2 |\
374
	EXP e1, EXP e2\
375
    } STATEMENT DESTROY_list #
376
 
377
#pragma interface HEAD_list PTR_TAIL_list TAIL_list
378
#pragma interface LENGTH_list END_list REVERSE_list APPEND_list
379
#pragma interface NULL_list IS_NULL_list EQ_list
380
#pragma interface UNIQ_list DESTROY_UNIQ_list DESTROY_list
381
 
382
#ifdef c_class_IO_ROUTINES
383
#pragma token PROC {\
384
	TYPE t, EXP : LIST ( t ) : e |\
385
	EXP e\
386
    } EXP : void * : VOIDSTAR_list #
387
#pragma interface VOIDSTAR_list
388
#endif
389
 
390
#pragma token PROC (\
391
	TYPE t\
392
    ) EXP const : SIZE ( LIST ( t ) ) : SIZE_list #
393
 
394
#pragma token PROC {\
395
	TYPE t, EXP : PTR ( LIST ( t ) ) : e1,\
396
	EXP : LIST ( t ) : e2 |\
397
	EXP e1, EXP e2\
398
    } EXP : void : COPY_list #
399
 
400
#pragma token PROC {\
401
	TYPE t, EXP : PTR ( LIST ( t ) ) : e |\
402
	EXP e\
403
    } EXP : LIST ( t ) : DEREF_list #
404
 
405
#pragma token PROC {\
406
	TYPE t, EXP : LIST ( t ) : e2,\
407
	EXP : LIST ( LIST ( t ) ) : e3,\
408
	EXP lvalue : LIST ( LIST ( t ) ) : e4 |\
409
	EXP e2, EXP e3, EXP e4\
410
    } STATEMENT CONS_list #
411
 
412
#pragma token PROC {\
413
	TYPE t, EXP lvalue : LIST ( t ) : e2,\
414
	EXP lvalue : LIST ( LIST ( t ) ) : e3,\
415
	EXP : LIST ( LIST ( t ) ) : e4 |\
416
	EXP e2, EXP e3, EXP e4\
417
    } STATEMENT UN_CONS_list #
418
 
419
#pragma token PROC {\
420
	TYPE t, EXP : DESTROYER : e1,\
421
	EXP lvalue : LIST ( t ) : e2,\
422
	EXP lvalue : LIST ( LIST ( t ) ) : e3,\
423
	EXP : LIST ( LIST ( t ) ) : e4 |\
424
	EXP e1, EXP e2, EXP e3, EXP e4\
425
    } STATEMENT DESTROY_CONS_list #
426
 
427
#pragma token PROC {\
428
	TYPE t, EXP : LIST ( t ) : e2,\
429
	EXP lvalue : STACK ( LIST ( t ) ) : e3 |\
430
	EXP e2, EXP e3\
431
    } STATEMENT PUSH_list #
432
 
433
#pragma token PROC {\
434
	TYPE t, EXP lvalue : LIST ( t ) : e2,\
435
	EXP lvalue : STACK ( LIST ( t ) ) : e3 |\
436
	EXP e2, EXP e3\
437
    } STATEMENT POP_list #
438
 
439
#pragma interface SIZE_list COPY_list DEREF_list
440
#pragma interface CONS_list UN_CONS_list DESTROY_CONS_list
441
#pragma interface PUSH_list POP_list
442
 
443
 
444
/* Stack token specifications */
445
 
446
#pragma token PROC (\
447
	TYPE t\
448
    ) EXP const : STACK ( t ) : NULL_stack #
449
 
450
#pragma token PROC {\
451
	TYPE t, EXP : STACK ( t ) : e |\
452
	EXP e\
453
    } EXP : int : IS_NULL_stack #
454
 
455
#pragma token PROC {\
456
	TYPE t, EXP : STACK ( t ) : e1 |\
457
	EXP e1\
458
    } EXP : LIST ( t ) : LIST_stack #
459
 
460
#pragma token PROC {\
461
	TYPE t, EXP : LIST ( t ) : e1 |\
462
	EXP e1\
463
    } EXP : STACK ( t ) : STACK_list #
464
 
465
#pragma interface NULL_stack IS_NULL_stack LIST_stack STACK_list
466
 
467
#pragma token PROC (\
468
	TYPE t\
469
    ) EXP const : SIZE ( STACK ( t ) ) : SIZE_stack #
470
 
471
#pragma token PROC {\
472
	TYPE t, EXP : PTR ( STACK ( t ) ) : e1,\
473
	EXP : STACK ( t ) : e2 |\
474
	EXP e1, EXP e2\
475
    } EXP : void : COPY_stack #
476
 
477
#pragma token PROC {\
478
	TYPE t, EXP : PTR ( STACK ( t ) ) : e |\
479
	EXP e\
480
    } EXP : STACK ( t ) : DEREF_stack #
481
 
482
#pragma token PROC {\
483
	TYPE t, EXP : STACK ( t ) : e2,\
484
	EXP : LIST ( STACK ( t ) ) : e3,\
485
	EXP lvalue : LIST ( STACK ( t ) ) : e4 |\
486
	EXP e2, EXP e3, EXP e4\
487
    } STATEMENT CONS_stack #
488
 
489
#pragma token PROC {\
490
	TYPE t, EXP lvalue : STACK ( t ) : e2,\
491
	EXP lvalue : LIST ( STACK ( t ) ) : e3,\
492
	EXP : LIST ( STACK ( t ) ) : e4 |\
493
	EXP e2, EXP e3, EXP e4\
494
    } STATEMENT UN_CONS_stack #
495
 
496
#pragma token PROC {\
497
	TYPE t, EXP : DESTROYER : e1,\
498
	EXP lvalue : STACK ( t ) : e2,\
499
	EXP lvalue : LIST ( STACK ( t ) ) : e3,\
500
	EXP : LIST ( STACK ( t ) ) : e4 |\
501
	EXP e1, EXP e2, EXP e3, EXP e4\
502
    } STATEMENT DESTROY_CONS_stack #
503
 
504
#pragma token PROC {\
505
	TYPE t, EXP : STACK ( t ) : e2,\
506
	EXP lvalue : STACK ( STACK ( t ) ) : e3 |\
507
	EXP e2, EXP e3\
508
    } STATEMENT PUSH_stack #
509
 
510
#pragma token PROC {\
511
	TYPE t, EXP lvalue : STACK ( t ) : e2,\
512
	EXP lvalue : STACK ( STACK ( t ) ) : e3 |\
513
	EXP e2, EXP e3\
514
    } STATEMENT POP_stack #
515
 
516
#pragma interface SIZE_stack COPY_stack DEREF_stack
517
#pragma interface CONS_stack UN_CONS_stack DESTROY_CONS_stack
518
#pragma interface PUSH_stack POP_stack
519
 
520
 
521
/* Size token specifications */
522
 
523
#pragma token PROC {\
524
	TYPE t, VARIETY v,\
525
	EXP : SIZE ( t ) : e1, EXP : v : e2 |\
526
	EXP e1, EXP e2\
527
    } EXP : SIZE ( t ) : SCALE #
528
 
529
#pragma interface SCALE
530
 
531
 
532
/* Definitions for primitive int */
533
 
534
#pragma token EXP const : SIZE ( int ) : SIZE_int #
535
 
536
#pragma token PROC (\
537
	EXP : PTR ( int ) :,\
538
	EXP : int :\
539
    ) EXP : void : COPY_int #
540
 
541
#pragma token PROC (\
542
	EXP : PTR ( int ) :\
543
    ) EXP : int : DEREF_int #
544
 
545
#pragma token PROC (\
546
	EXP : int :,\
547
	EXP : LIST ( int ) :,\
548
	EXP lvalue : LIST ( int ) :\
549
    ) STATEMENT CONS_int #
550
 
551
#pragma token PROC (\
552
	EXP lvalue : int :,\
553
	EXP lvalue : LIST ( int ) :,\
554
	EXP : LIST ( int ) :\
555
    ) STATEMENT UN_CONS_int #
556
 
557
#pragma token PROC (\
558
	EXP : DESTROYER :,\
559
	EXP lvalue : int :,\
560
	EXP lvalue : LIST ( int ) :,\
561
	EXP : LIST ( int ) :\
562
    ) STATEMENT DESTROY_CONS_int #
563
 
564
#pragma token PROC (\
565
	EXP : int :,\
566
	EXP lvalue : STACK ( int ) :\
567
    ) STATEMENT PUSH_int #
568
 
569
#pragma token PROC (\
570
	EXP lvalue : int :,\
571
	EXP lvalue : STACK ( int ) :\
572
    ) STATEMENT POP_int #
573
 
574
#pragma interface SIZE_int COPY_int DEREF_int
575
#pragma interface CONS_int UN_CONS_int DESTROY_CONS_int
576
#pragma interface PUSH_int POP_int
577
 
578
 
579
/* Definitions for primitive unsigned */
580
 
581
#pragma token EXP const : SIZE ( unsigned ) : SIZE_unsigned #
582
 
583
#pragma token PROC (\
584
	EXP : PTR ( unsigned ) :,\
585
	EXP : unsigned :\
586
    ) EXP : void : COPY_unsigned #
587
 
588
#pragma token PROC (\
589
	EXP : PTR ( unsigned ) :\
590
    ) EXP : unsigned : DEREF_unsigned #
591
 
592
#pragma token PROC (\
593
	EXP : unsigned :,\
594
	EXP : LIST ( unsigned ) :,\
595
	EXP lvalue : LIST ( unsigned ) :\
596
    ) STATEMENT CONS_unsigned #
597
 
598
#pragma token PROC (\
599
	EXP lvalue : unsigned :,\
600
	EXP lvalue : LIST ( unsigned ) :,\
601
	EXP : LIST ( unsigned ) :\
602
    ) STATEMENT UN_CONS_unsigned #
603
 
604
#pragma token PROC (\
605
	EXP : DESTROYER :,\
606
	EXP lvalue : unsigned :,\
607
	EXP lvalue : LIST ( unsigned ) :,\
608
	EXP : LIST ( unsigned ) :\
609
    ) STATEMENT DESTROY_CONS_unsigned #
610
 
611
#pragma token PROC (\
612
	EXP : unsigned :,\
613
	EXP lvalue : STACK ( unsigned ) :\
614
    ) STATEMENT PUSH_unsigned #
615
 
616
#pragma token PROC (\
617
	EXP lvalue : unsigned :,\
618
	EXP lvalue : STACK ( unsigned ) :\
619
    ) STATEMENT POP_unsigned #
620
 
621
#pragma interface SIZE_unsigned COPY_unsigned DEREF_unsigned
622
#pragma interface CONS_unsigned UN_CONS_unsigned DESTROY_CONS_unsigned
623
#pragma interface PUSH_unsigned POP_unsigned
624
 
625
 
626
/* Definitions for primitive string */
627
 
628
#pragma token EXP const : SIZE ( string ) : SIZE_string #
629
 
630
#pragma token PROC (\
631
	EXP : PTR ( string ) :,\
632
	EXP : string :\
633
    ) EXP : void : COPY_string #
634
 
635
#pragma token PROC (\
636
	EXP : PTR ( string ) :\
637
    ) EXP : string : DEREF_string #
638
 
639
#pragma token PROC (\
640
	EXP : string :,\
641
	EXP : LIST ( string ) :,\
642
	EXP lvalue : LIST ( string ) :\
643
    ) STATEMENT CONS_string #
644
 
645
#pragma token PROC (\
646
	EXP lvalue : string :,\
647
	EXP lvalue : LIST ( string ) :,\
648
	EXP : LIST ( string ) :\
649
    ) STATEMENT UN_CONS_string #
650
 
651
#pragma token PROC (\
652
	EXP : DESTROYER :,\
653
	EXP lvalue : string :,\
654
	EXP lvalue : LIST ( string ) :,\
655
	EXP : LIST ( string ) :\
656
    ) STATEMENT DESTROY_CONS_string #
657
 
658
#pragma token PROC (\
659
	EXP : string :,\
660
	EXP lvalue : STACK ( string ) :\
661
    ) STATEMENT PUSH_string #
662
 
663
#pragma token PROC (\
664
	EXP lvalue : string :,\
665
	EXP lvalue : STACK ( string ) :\
666
    ) STATEMENT POP_string #
667
 
668
#pragma interface SIZE_string COPY_string DEREF_string
669
#pragma interface CONS_string UN_CONS_string DESTROY_CONS_string
670
#pragma interface PUSH_string POP_string
671
 
672
 
673
/* Definitions for primitive ulong_type */
674
 
675
#pragma token EXP const : SIZE ( ulong_type ) : SIZE_ulong #
676
 
677
#pragma token PROC (\
678
	EXP : PTR ( ulong_type ) :,\
679
	EXP : ulong_type :\
680
    ) EXP : void : COPY_ulong #
681
 
682
#pragma token PROC (\
683
	EXP : PTR ( ulong_type ) :\
684
    ) EXP : ulong_type : DEREF_ulong #
685
 
686
#pragma token PROC (\
687
	EXP : ulong_type :,\
688
	EXP : LIST ( ulong_type ) :,\
689
	EXP lvalue : LIST ( ulong_type ) :\
690
    ) STATEMENT CONS_ulong #
691
 
692
#pragma token PROC (\
693
	EXP lvalue : ulong_type :,\
694
	EXP lvalue : LIST ( ulong_type ) :,\
695
	EXP : LIST ( ulong_type ) :\
696
    ) STATEMENT UN_CONS_ulong #
697
 
698
#pragma token PROC (\
699
	EXP : DESTROYER :,\
700
	EXP lvalue : ulong_type :,\
701
	EXP lvalue : LIST ( ulong_type ) :,\
702
	EXP : LIST ( ulong_type ) :\
703
    ) STATEMENT DESTROY_CONS_ulong #
704
 
705
#pragma token PROC (\
706
	EXP : ulong_type :,\
707
	EXP lvalue : STACK ( ulong_type ) :\
708
    ) STATEMENT PUSH_ulong #
709
 
710
#pragma token PROC (\
711
	EXP lvalue : ulong_type :,\
712
	EXP lvalue : STACK ( ulong_type ) :\
713
    ) STATEMENT POP_ulong #
714
 
715
#pragma interface SIZE_ulong COPY_ulong DEREF_ulong
716
#pragma interface CONS_ulong UN_CONS_ulong DESTROY_CONS_ulong
717
#pragma interface PUSH_ulong POP_ulong
718
 
719
 
720
/* Definitions for primitive BITSTREAM_P */
721
 
722
#pragma token EXP const : SIZE ( BITSTREAM_P ) : SIZE_bits #
723
 
724
#pragma token PROC (\
725
	EXP : PTR ( BITSTREAM_P ) :,\
726
	EXP : BITSTREAM_P :\
727
    ) EXP : void : COPY_bits #
728
 
729
#pragma token PROC (\
730
	EXP : PTR ( BITSTREAM_P ) :\
731
    ) EXP : BITSTREAM_P : DEREF_bits #
732
 
733
#pragma token PROC (\
734
	EXP : BITSTREAM_P :,\
735
	EXP : LIST ( BITSTREAM_P ) :,\
736
	EXP lvalue : LIST ( BITSTREAM_P ) :\
737
    ) STATEMENT CONS_bits #
738
 
739
#pragma token PROC (\
740
	EXP lvalue : BITSTREAM_P :,\
741
	EXP lvalue : LIST ( BITSTREAM_P ) :,\
742
	EXP : LIST ( BITSTREAM_P ) :\
743
    ) STATEMENT UN_CONS_bits #
744
 
745
#pragma token PROC (\
746
	EXP : DESTROYER :,\
747
	EXP lvalue : BITSTREAM_P :,\
748
	EXP lvalue : LIST ( BITSTREAM_P ) :,\
749
	EXP : LIST ( BITSTREAM_P ) :\
750
    ) STATEMENT DESTROY_CONS_bits #
751
 
752
#pragma token PROC (\
753
	EXP : BITSTREAM_P :,\
754
	EXP lvalue : STACK ( BITSTREAM_P ) :\
755
    ) STATEMENT PUSH_bits #
756
 
757
#pragma token PROC (\
758
	EXP lvalue : BITSTREAM_P :,\
759
	EXP lvalue : STACK ( BITSTREAM_P ) :\
760
    ) STATEMENT POP_bits #
761
 
762
#pragma interface SIZE_bits COPY_bits DEREF_bits
763
#pragma interface CONS_bits UN_CONS_bits DESTROY_CONS_bits
764
#pragma interface PUSH_bits POP_bits
765
 
766
 
767
/* Definitions for primitive PPTOKEN_P */
768
 
769
#pragma token EXP const : SIZE ( PPTOKEN_P ) : SIZE_pptok #
770
 
771
#pragma token PROC (\
772
	EXP : PTR ( PPTOKEN_P ) :,\
773
	EXP : PPTOKEN_P :\
774
    ) EXP : void : COPY_pptok #
775
 
776
#pragma token PROC (\
777
	EXP : PTR ( PPTOKEN_P ) :\
778
    ) EXP : PPTOKEN_P : DEREF_pptok #
779
 
780
#pragma token PROC (\
781
	EXP : PPTOKEN_P :,\
782
	EXP : LIST ( PPTOKEN_P ) :,\
783
	EXP lvalue : LIST ( PPTOKEN_P ) :\
784
    ) STATEMENT CONS_pptok #
785
 
786
#pragma token PROC (\
787
	EXP lvalue : PPTOKEN_P :,\
788
	EXP lvalue : LIST ( PPTOKEN_P ) :,\
789
	EXP : LIST ( PPTOKEN_P ) :\
790
    ) STATEMENT UN_CONS_pptok #
791
 
792
#pragma token PROC (\
793
	EXP : DESTROYER :,\
794
	EXP lvalue : PPTOKEN_P :,\
795
	EXP lvalue : LIST ( PPTOKEN_P ) :,\
796
	EXP : LIST ( PPTOKEN_P ) :\
797
    ) STATEMENT DESTROY_CONS_pptok #
798
 
799
#pragma token PROC (\
800
	EXP : PPTOKEN_P :,\
801
	EXP lvalue : STACK ( PPTOKEN_P ) :\
802
    ) STATEMENT PUSH_pptok #
803
 
804
#pragma token PROC (\
805
	EXP lvalue : PPTOKEN_P :,\
806
	EXP lvalue : STACK ( PPTOKEN_P ) :\
807
    ) STATEMENT POP_pptok #
808
 
809
#pragma interface SIZE_pptok COPY_pptok DEREF_pptok
810
#pragma interface CONS_pptok UN_CONS_pptok DESTROY_CONS_pptok
811
#pragma interface PUSH_pptok POP_pptok
812
 
813
 
814
/* Definitions for enumeration CV_SPEC */
815
 
816
#define cv_none				( ( CV_SPEC ) 0 )
817
#define cv_const			( ( CV_SPEC ) 1 )
818
#define cv_volatile			( ( CV_SPEC ) 2 )
819
#define cv_lvalue			( ( CV_SPEC ) 4 )
820
#define cv_c				( ( CV_SPEC ) 8 )
821
#define cv_cpp				( ( CV_SPEC ) 16 )
822
#define cv_qual				( ( CV_SPEC ) 3 )
823
#define cv_mask				( ( CV_SPEC ) 7 )
824
#define cv_language			( ( CV_SPEC ) 24 )
825
#define ORDER_cv			( ( unsigned long ) 25 )
826
#pragma token EXP const : SIZE ( CV_SPEC ) : SIZE_cv #
827
 
828
#pragma token PROC (\
829
	EXP : PTR ( CV_SPEC ) :,\
830
	EXP : CV_SPEC :\
831
    ) EXP : void : COPY_cv #
832
 
833
#pragma token PROC (\
834
	EXP : PTR ( CV_SPEC ) :\
835
    ) EXP : CV_SPEC : DEREF_cv #
836
 
837
#pragma interface SIZE_cv COPY_cv DEREF_cv
838
 
839
 
840
/* Definitions for enumeration BUILTIN_TYPE */
841
 
842
#define ntype_none			( ( BUILTIN_TYPE ) 0 )
843
#define ntype_char			( ( BUILTIN_TYPE ) 1 )
844
#define ntype_schar			( ( BUILTIN_TYPE ) 2 )
845
#define ntype_uchar			( ( BUILTIN_TYPE ) 3 )
846
#define ntype_sshort			( ( BUILTIN_TYPE ) 4 )
847
#define ntype_ushort			( ( BUILTIN_TYPE ) 5 )
848
#define ntype_sint			( ( BUILTIN_TYPE ) 6 )
849
#define ntype_uint			( ( BUILTIN_TYPE ) 7 )
850
#define ntype_slong			( ( BUILTIN_TYPE ) 8 )
851
#define ntype_ulong			( ( BUILTIN_TYPE ) 9 )
852
#define ntype_sllong			( ( BUILTIN_TYPE ) 10 )
853
#define ntype_ullong			( ( BUILTIN_TYPE ) 11 )
854
#define ntype_float			( ( BUILTIN_TYPE ) 12 )
855
#define ntype_double			( ( BUILTIN_TYPE ) 13 )
856
#define ntype_ldouble			( ( BUILTIN_TYPE ) 14 )
857
#define ntype_void			( ( BUILTIN_TYPE ) 15 )
858
#define ntype_bottom			( ( BUILTIN_TYPE ) 16 )
859
#define ntype_bool			( ( BUILTIN_TYPE ) 17 )
860
#define ntype_ptrdiff_t			( ( BUILTIN_TYPE ) 18 )
861
#define ntype_size_t			( ( BUILTIN_TYPE ) 19 )
862
#define ntype_wchar_t			( ( BUILTIN_TYPE ) 20 )
863
#define ntype_ellipsis			( ( BUILTIN_TYPE ) 21 )
864
#define ORDER_ntype			( ( unsigned long ) 22 )
865
#pragma token EXP const : SIZE ( BUILTIN_TYPE ) : SIZE_ntype #
866
 
867
#pragma token PROC (\
868
	EXP : PTR ( BUILTIN_TYPE ) :,\
869
	EXP : BUILTIN_TYPE :\
870
    ) EXP : void : COPY_ntype #
871
 
872
#pragma token PROC (\
873
	EXP : PTR ( BUILTIN_TYPE ) :\
874
    ) EXP : BUILTIN_TYPE : DEREF_ntype #
875
 
876
#pragma interface SIZE_ntype COPY_ntype DEREF_ntype
877
 
878
 
879
/* Definitions for enumeration BASE_TYPE */
880
 
881
#ifdef __STDC__
882
#define btype_none			( ( BASE_TYPE ) 0UL )
883
#define btype_class			( ( BASE_TYPE ) 1UL )
884
#define btype_struct_			( ( BASE_TYPE ) 2UL )
885
#define btype_union_			( ( BASE_TYPE ) 3UL )
886
#define btype_enum_			( ( BASE_TYPE ) 4UL )
887
#define btype_alias			( ( BASE_TYPE ) 5UL )
888
#define btype_any			( ( BASE_TYPE ) 6UL )
889
#define btype_named			( ( BASE_TYPE ) 7UL )
890
#define btype_signed			( ( BASE_TYPE ) 8UL )
891
#define btype_unsigned			( ( BASE_TYPE ) 16UL )
892
#define btype_char			( ( BASE_TYPE ) 32UL )
893
#define btype_short			( ( BASE_TYPE ) 64UL )
894
#define btype_int			( ( BASE_TYPE ) 128UL )
895
#define btype_long			( ( BASE_TYPE ) 256UL )
896
#define btype_long2			( ( BASE_TYPE ) 512UL )
897
#define btype_float			( ( BASE_TYPE ) 1024UL )
898
#define btype_double			( ( BASE_TYPE ) 2048UL )
899
#define btype_void			( ( BASE_TYPE ) 4096UL )
900
#define btype_bottom			( ( BASE_TYPE ) 8192UL )
901
#define btype_bool			( ( BASE_TYPE ) 16384UL )
902
#define btype_ptrdiff_t			( ( BASE_TYPE ) 32768UL )
903
#define btype_size_t			( ( BASE_TYPE ) 65536UL )
904
#define btype_wchar_t			( ( BASE_TYPE ) 131072UL )
905
#define btype_schar			( ( BASE_TYPE ) 40UL )
906
#define btype_uchar			( ( BASE_TYPE ) 48UL )
907
#define btype_sshort			( ( BASE_TYPE ) 200UL )
908
#define btype_ushort			( ( BASE_TYPE ) 208UL )
909
#define btype_sint			( ( BASE_TYPE ) 136UL )
910
#define btype_uint			( ( BASE_TYPE ) 144UL )
911
#define btype_slong			( ( BASE_TYPE ) 392UL )
912
#define btype_ulong			( ( BASE_TYPE ) 400UL )
913
#define btype_llong			( ( BASE_TYPE ) 768UL )
914
#define btype_sllong			( ( BASE_TYPE ) 904UL )
915
#define btype_ullong			( ( BASE_TYPE ) 912UL )
916
#define btype_ldouble			( ( BASE_TYPE ) 2304UL )
917
#define btype_ellipsis			( ( BASE_TYPE ) 262144UL )
918
#define btype_star			( ( BASE_TYPE ) 524288UL )
919
#define btype_template			( ( BASE_TYPE ) 1048576UL )
920
#define btype_typename			( ( BASE_TYPE ) 2097152UL )
921
#define btype_args			( ( BASE_TYPE ) 4194304UL )
922
#define btype_keyword			( ( BASE_TYPE ) 154624UL )
923
#define btype_other			( ( BASE_TYPE ) 261120UL )
924
#define btype_arith			( ( BASE_TYPE ) 1152UL )
925
#define btype_scalar			( ( BASE_TYPE ) 525440UL )
926
#define ORDER_btype			( 4194305UL )
927
#else
928
#define btype_none			( ( BASE_TYPE ) 0 )
929
#define btype_class			( ( BASE_TYPE ) 1 )
930
#define btype_struct_			( ( BASE_TYPE ) 2 )
931
#define btype_union_			( ( BASE_TYPE ) 3 )
932
#define btype_enum_			( ( BASE_TYPE ) 4 )
933
#define btype_alias			( ( BASE_TYPE ) 5 )
934
#define btype_any			( ( BASE_TYPE ) 6 )
935
#define btype_named			( ( BASE_TYPE ) 7 )
936
#define btype_signed			( ( BASE_TYPE ) 8 )
937
#define btype_unsigned			( ( BASE_TYPE ) 16 )
938
#define btype_char			( ( BASE_TYPE ) 32 )
939
#define btype_short			( ( BASE_TYPE ) 64 )
940
#define btype_int			( ( BASE_TYPE ) 128 )
941
#define btype_long			( ( BASE_TYPE ) 256 )
942
#define btype_long2			( ( BASE_TYPE ) 512 )
943
#define btype_float			( ( BASE_TYPE ) 1024 )
944
#define btype_double			( ( BASE_TYPE ) 2048 )
945
#define btype_void			( ( BASE_TYPE ) 4096 )
946
#define btype_bottom			( ( BASE_TYPE ) 8192 )
947
#define btype_bool			( ( BASE_TYPE ) 16384 )
948
#define btype_ptrdiff_t			( ( BASE_TYPE ) 32768 )
949
#define btype_size_t			( ( BASE_TYPE ) 65536 )
950
#define btype_wchar_t			( ( BASE_TYPE ) 131072 )
951
#define btype_schar			( ( BASE_TYPE ) 40 )
952
#define btype_uchar			( ( BASE_TYPE ) 48 )
953
#define btype_sshort			( ( BASE_TYPE ) 200 )
954
#define btype_ushort			( ( BASE_TYPE ) 208 )
955
#define btype_sint			( ( BASE_TYPE ) 136 )
956
#define btype_uint			( ( BASE_TYPE ) 144 )
957
#define btype_slong			( ( BASE_TYPE ) 392 )
958
#define btype_ulong			( ( BASE_TYPE ) 400 )
959
#define btype_llong			( ( BASE_TYPE ) 768 )
960
#define btype_sllong			( ( BASE_TYPE ) 904 )
961
#define btype_ullong			( ( BASE_TYPE ) 912 )
962
#define btype_ldouble			( ( BASE_TYPE ) 2304 )
963
#define btype_ellipsis			( ( BASE_TYPE ) 262144 )
964
#define btype_star			( ( BASE_TYPE ) 524288 )
965
#define btype_template			( ( BASE_TYPE ) 1048576 )
966
#define btype_typename			( ( BASE_TYPE ) 2097152 )
967
#define btype_args			( ( BASE_TYPE ) 4194304 )
968
#define btype_keyword			( ( BASE_TYPE ) 154624 )
969
#define btype_other			( ( BASE_TYPE ) 261120 )
970
#define btype_arith			( ( BASE_TYPE ) 1152 )
971
#define btype_scalar			( ( BASE_TYPE ) 525440 )
972
#define ORDER_btype			( ( unsigned long ) 4194305 )
973
#endif
974
#pragma token EXP const : SIZE ( BASE_TYPE ) : SIZE_btype #
975
 
976
#pragma token PROC (\
977
	EXP : PTR ( BASE_TYPE ) :,\
978
	EXP : BASE_TYPE :\
979
    ) EXP : void : COPY_btype #
980
 
981
#pragma token PROC (\
982
	EXP : PTR ( BASE_TYPE ) :\
983
    ) EXP : BASE_TYPE : DEREF_btype #
984
 
985
#pragma interface SIZE_btype COPY_btype DEREF_btype
986
 
987
 
988
/* Definitions for enumeration CLASS_INFO */
989
 
990
#ifdef __STDC__
991
#define cinfo_none			( ( CLASS_INFO ) 0UL )
992
#define cinfo_complete			( ( CLASS_INFO ) 1UL )
993
#define cinfo_defined			( ( CLASS_INFO ) 2UL )
994
#define cinfo_struct_			( ( CLASS_INFO ) 4UL )
995
#define cinfo_union_			( ( CLASS_INFO ) 8UL )
996
#define cinfo_template			( ( CLASS_INFO ) 16UL )
997
#define cinfo_token			( ( CLASS_INFO ) 32UL )
998
#define cinfo_pod			( ( CLASS_INFO ) 64UL )
999
#define cinfo_nested			( ( CLASS_INFO ) 128UL )
1000
#define cinfo_rescan			( ( CLASS_INFO ) 256UL )
1001
#define cinfo_recursive			( ( CLASS_INFO ) 512UL )
1002
#define cinfo_incomplete		( ( CLASS_INFO ) 1024UL )
1003
#define cinfo_base			( ( CLASS_INFO ) 2048UL )
1004
#define cinfo_multiple_base		( ( CLASS_INFO ) 4096UL )
1005
#define cinfo_virtual_base		( ( CLASS_INFO ) 8192UL )
1006
#define cinfo_templ_base		( ( CLASS_INFO ) 16384UL )
1007
#define cinfo_ambiguous			( ( CLASS_INFO ) 32768UL )
1008
#define cinfo_empty			( ( CLASS_INFO ) 65536UL )
1009
#define cinfo_private			( ( CLASS_INFO ) 131072UL )
1010
#define cinfo_const			( ( CLASS_INFO ) 262144UL )
1011
#define cinfo_static			( ( CLASS_INFO ) 524288UL )
1012
#define cinfo_function			( ( CLASS_INFO ) 1048576UL )
1013
#define cinfo_params			( ( CLASS_INFO ) 2097152UL )
1014
#define cinfo_polymorphic		( ( CLASS_INFO ) 4194304UL )
1015
#define cinfo_poly_base			( ( CLASS_INFO ) 8388608UL )
1016
#define cinfo_abstract			( ( CLASS_INFO ) 16777216UL )
1017
#define cinfo_trivial_constr		( ( CLASS_INFO ) 33554432UL )
1018
#define cinfo_trivial_destr		( ( CLASS_INFO ) 67108864UL )
1019
#define cinfo_trivial_copy		( ( CLASS_INFO ) 134217728UL )
1020
#define cinfo_trivial_assign		( ( CLASS_INFO ) 268435456UL )
1021
#define cinfo_const_copy		( ( CLASS_INFO ) 536870912UL )
1022
#define cinfo_const_assign		( ( CLASS_INFO ) 1073741824UL )
1023
#define cinfo_usr_constr		( ( CLASS_INFO ) 2147483648UL )
1024
#define cinfo_key			( ( CLASS_INFO ) 12UL )
1025
#define cinfo_non_aggregate		( ( CLASS_INFO ) 2151811104UL )
1026
#define cinfo_force_copy		( ( CLASS_INFO ) 3670016UL )
1027
#define cinfo_trivial_make		( ( CLASS_INFO ) 436207616UL )
1028
#define cinfo_trivial			( ( CLASS_INFO ) 503316480UL )
1029
#define cinfo_implicit			( ( CLASS_INFO ) 2113929216UL )
1030
#define cinfo_default			( ( CLASS_INFO ) 2113994816UL )
1031
#define ORDER_cinfo			( 2151811105UL )
1032
#else
1033
#define cinfo_none			( ( CLASS_INFO ) 0 )
1034
#define cinfo_complete			( ( CLASS_INFO ) 1 )
1035
#define cinfo_defined			( ( CLASS_INFO ) 2 )
1036
#define cinfo_struct_			( ( CLASS_INFO ) 4 )
1037
#define cinfo_union_			( ( CLASS_INFO ) 8 )
1038
#define cinfo_template			( ( CLASS_INFO ) 16 )
1039
#define cinfo_token			( ( CLASS_INFO ) 32 )
1040
#define cinfo_pod			( ( CLASS_INFO ) 64 )
1041
#define cinfo_nested			( ( CLASS_INFO ) 128 )
1042
#define cinfo_rescan			( ( CLASS_INFO ) 256 )
1043
#define cinfo_recursive			( ( CLASS_INFO ) 512 )
1044
#define cinfo_incomplete		( ( CLASS_INFO ) 1024 )
1045
#define cinfo_base			( ( CLASS_INFO ) 2048 )
1046
#define cinfo_multiple_base		( ( CLASS_INFO ) 4096 )
1047
#define cinfo_virtual_base		( ( CLASS_INFO ) 8192 )
1048
#define cinfo_templ_base		( ( CLASS_INFO ) 16384 )
1049
#define cinfo_ambiguous			( ( CLASS_INFO ) 32768 )
1050
#define cinfo_empty			( ( CLASS_INFO ) 65536 )
1051
#define cinfo_private			( ( CLASS_INFO ) 131072 )
1052
#define cinfo_const			( ( CLASS_INFO ) 262144 )
1053
#define cinfo_static			( ( CLASS_INFO ) 524288 )
1054
#define cinfo_function			( ( CLASS_INFO ) 1048576 )
1055
#define cinfo_params			( ( CLASS_INFO ) 2097152 )
1056
#define cinfo_polymorphic		( ( CLASS_INFO ) 4194304 )
1057
#define cinfo_poly_base			( ( CLASS_INFO ) 8388608 )
1058
#define cinfo_abstract			( ( CLASS_INFO ) 16777216 )
1059
#define cinfo_trivial_constr		( ( CLASS_INFO ) 33554432 )
1060
#define cinfo_trivial_destr		( ( CLASS_INFO ) 67108864 )
1061
#define cinfo_trivial_copy		( ( CLASS_INFO ) 134217728 )
1062
#define cinfo_trivial_assign		( ( CLASS_INFO ) 268435456 )
1063
#define cinfo_const_copy		( ( CLASS_INFO ) 536870912 )
1064
#define cinfo_const_assign		( ( CLASS_INFO ) 1073741824 )
1065
#define cinfo_usr_constr		( ( CLASS_INFO ) 2147483648 )
1066
#define cinfo_key			( ( CLASS_INFO ) 12 )
1067
#define cinfo_non_aggregate		( ( CLASS_INFO ) 2151811104 )
1068
#define cinfo_force_copy		( ( CLASS_INFO ) 3670016 )
1069
#define cinfo_trivial_make		( ( CLASS_INFO ) 436207616 )
1070
#define cinfo_trivial			( ( CLASS_INFO ) 503316480 )
1071
#define cinfo_implicit			( ( CLASS_INFO ) 2113929216 )
1072
#define cinfo_default			( ( CLASS_INFO ) 2113994816 )
1073
#define ORDER_cinfo			( ( unsigned long ) 2151811105 )
1074
#endif
1075
#pragma token EXP const : SIZE ( CLASS_INFO ) : SIZE_cinfo #
1076
 
1077
#pragma token PROC (\
1078
	EXP : PTR ( CLASS_INFO ) :,\
1079
	EXP : CLASS_INFO :\
1080
    ) EXP : void : COPY_cinfo #
1081
 
1082
#pragma token PROC (\
1083
	EXP : PTR ( CLASS_INFO ) :\
1084
    ) EXP : CLASS_INFO : DEREF_cinfo #
1085
 
1086
#pragma interface SIZE_cinfo COPY_cinfo DEREF_cinfo
1087
 
1088
 
1089
/* Definitions for enumeration CLASS_USAGE */
1090
 
1091
#define cusage_none			( ( CLASS_USAGE ) 0 )
1092
#define cusage_address			( ( CLASS_USAGE ) 1 )
1093
#define cusage_destr			( ( CLASS_USAGE ) 2 )
1094
#define cusage_delete			( ( CLASS_USAGE ) 4 )
1095
#define cusage_delete_array		( ( CLASS_USAGE ) 8 )
1096
#define ORDER_cusage			( ( unsigned long ) 9 )
1097
#pragma token EXP const : SIZE ( CLASS_USAGE ) : SIZE_cusage #
1098
 
1099
#pragma token PROC (\
1100
	EXP : PTR ( CLASS_USAGE ) :,\
1101
	EXP : CLASS_USAGE :\
1102
    ) EXP : void : COPY_cusage #
1103
 
1104
#pragma token PROC (\
1105
	EXP : PTR ( CLASS_USAGE ) :\
1106
    ) EXP : CLASS_USAGE : DEREF_cusage #
1107
 
1108
#pragma interface SIZE_cusage COPY_cusage DEREF_cusage
1109
 
1110
 
1111
/* Definitions for enumeration DECL_SPEC */
1112
 
1113
#ifdef __STDC__
1114
#define dspec_none			( ( DECL_SPEC ) 0UL )
1115
#define dspec_used			( ( DECL_SPEC ) 1UL )
1116
#define dspec_called			( ( DECL_SPEC ) 2UL )
1117
#define dspec_defn			( ( DECL_SPEC ) 4UL )
1118
#define dspec_inherit			( ( DECL_SPEC ) 8UL )
1119
#define dspec_alias			( ( DECL_SPEC ) 16UL )
1120
#define dspec_done			( ( DECL_SPEC ) 32UL )
1121
#define dspec_static			( ( DECL_SPEC ) 64UL )
1122
#define dspec_extern			( ( DECL_SPEC ) 128UL )
1123
#define dspec_auto			( ( DECL_SPEC ) 256UL )
1124
#define dspec_register			( ( DECL_SPEC ) 512UL )
1125
#define dspec_mutable			( ( DECL_SPEC ) 1024UL )
1126
#define dspec_inline			( ( DECL_SPEC ) 2048UL )
1127
#define dspec_virtual			( ( DECL_SPEC ) 4096UL )
1128
#define dspec_explicit			( ( DECL_SPEC ) 8192UL )
1129
#define dspec_friend			( ( DECL_SPEC ) 16384UL )
1130
#define dspec_typedef			( ( DECL_SPEC ) 32768UL )
1131
#define dspec_public			( ( DECL_SPEC ) 65536UL )
1132
#define dspec_protected			( ( DECL_SPEC ) 131072UL )
1133
#define dspec_private			( ( DECL_SPEC ) 196608UL )
1134
#define dspec_public2			( ( DECL_SPEC ) 262144UL )
1135
#define dspec_protected2		( ( DECL_SPEC ) 524288UL )
1136
#define dspec_private2			( ( DECL_SPEC ) 786432UL )
1137
#define dspec_c				( ( DECL_SPEC ) 1048576UL )
1138
#define dspec_cpp			( ( DECL_SPEC ) 2097152UL )
1139
#define dspec_ignore			( ( DECL_SPEC ) 4194304UL )
1140
#define dspec_implicit			( ( DECL_SPEC ) 8388608UL )
1141
#define dspec_instance			( ( DECL_SPEC ) 16777216UL )
1142
#define dspec_main			( ( DECL_SPEC ) 33554432UL )
1143
#define dspec_pure			( ( DECL_SPEC ) 67108864UL )
1144
#define dspec_reserve			( ( DECL_SPEC ) 134217728UL )
1145
#define dspec_temp			( ( DECL_SPEC ) 268435456UL )
1146
#define dspec_template			( ( DECL_SPEC ) 536870912UL )
1147
#define dspec_token			( ( DECL_SPEC ) 1073741824UL )
1148
#define dspec_trivial			( ( DECL_SPEC ) 2147483648UL )
1149
#define dspec_linkage			( ( DECL_SPEC ) 192UL )
1150
#define dspec_storage			( ( DECL_SPEC ) 1984UL )
1151
#define dspec_function			( ( DECL_SPEC ) 14336UL )
1152
#define dspec_keyword			( ( DECL_SPEC ) 65472UL )
1153
#define dspec_duplicate			( ( DECL_SPEC ) 65472UL )
1154
#define dspec_access			( ( DECL_SPEC ) 196608UL )
1155
#define dspec_access2			( ( DECL_SPEC ) 786432UL )
1156
#define dspec_language			( ( DECL_SPEC ) 3145728UL )
1157
#define dspec_other			( ( DECL_SPEC ) 4290772992UL )
1158
#define ORDER_dspec			( 4290772993UL )
1159
#else
1160
#define dspec_none			( ( DECL_SPEC ) 0 )
1161
#define dspec_used			( ( DECL_SPEC ) 1 )
1162
#define dspec_called			( ( DECL_SPEC ) 2 )
1163
#define dspec_defn			( ( DECL_SPEC ) 4 )
1164
#define dspec_inherit			( ( DECL_SPEC ) 8 )
1165
#define dspec_alias			( ( DECL_SPEC ) 16 )
1166
#define dspec_done			( ( DECL_SPEC ) 32 )
1167
#define dspec_static			( ( DECL_SPEC ) 64 )
1168
#define dspec_extern			( ( DECL_SPEC ) 128 )
1169
#define dspec_auto			( ( DECL_SPEC ) 256 )
1170
#define dspec_register			( ( DECL_SPEC ) 512 )
1171
#define dspec_mutable			( ( DECL_SPEC ) 1024 )
1172
#define dspec_inline			( ( DECL_SPEC ) 2048 )
1173
#define dspec_virtual			( ( DECL_SPEC ) 4096 )
1174
#define dspec_explicit			( ( DECL_SPEC ) 8192 )
1175
#define dspec_friend			( ( DECL_SPEC ) 16384 )
1176
#define dspec_typedef			( ( DECL_SPEC ) 32768 )
1177
#define dspec_public			( ( DECL_SPEC ) 65536 )
1178
#define dspec_protected			( ( DECL_SPEC ) 131072 )
1179
#define dspec_private			( ( DECL_SPEC ) 196608 )
1180
#define dspec_public2			( ( DECL_SPEC ) 262144 )
1181
#define dspec_protected2		( ( DECL_SPEC ) 524288 )
1182
#define dspec_private2			( ( DECL_SPEC ) 786432 )
1183
#define dspec_c				( ( DECL_SPEC ) 1048576 )
1184
#define dspec_cpp			( ( DECL_SPEC ) 2097152 )
1185
#define dspec_ignore			( ( DECL_SPEC ) 4194304 )
1186
#define dspec_implicit			( ( DECL_SPEC ) 8388608 )
1187
#define dspec_instance			( ( DECL_SPEC ) 16777216 )
1188
#define dspec_main			( ( DECL_SPEC ) 33554432 )
1189
#define dspec_pure			( ( DECL_SPEC ) 67108864 )
1190
#define dspec_reserve			( ( DECL_SPEC ) 134217728 )
1191
#define dspec_temp			( ( DECL_SPEC ) 268435456 )
1192
#define dspec_template			( ( DECL_SPEC ) 536870912 )
1193
#define dspec_token			( ( DECL_SPEC ) 1073741824 )
1194
#define dspec_trivial			( ( DECL_SPEC ) 2147483648 )
1195
#define dspec_linkage			( ( DECL_SPEC ) 192 )
1196
#define dspec_storage			( ( DECL_SPEC ) 1984 )
1197
#define dspec_function			( ( DECL_SPEC ) 14336 )
1198
#define dspec_keyword			( ( DECL_SPEC ) 65472 )
1199
#define dspec_duplicate			( ( DECL_SPEC ) 65472 )
1200
#define dspec_access			( ( DECL_SPEC ) 196608 )
1201
#define dspec_access2			( ( DECL_SPEC ) 786432 )
1202
#define dspec_language			( ( DECL_SPEC ) 3145728 )
1203
#define dspec_other			( ( DECL_SPEC ) 4290772992 )
1204
#define ORDER_dspec			( ( unsigned long ) 4290772993 )
1205
#endif
1206
#pragma token EXP const : SIZE ( DECL_SPEC ) : SIZE_dspec #
1207
 
1208
#pragma token PROC (\
1209
	EXP : PTR ( DECL_SPEC ) :,\
1210
	EXP : DECL_SPEC :\
1211
    ) EXP : void : COPY_dspec #
1212
 
1213
#pragma token PROC (\
1214
	EXP : PTR ( DECL_SPEC ) :\
1215
    ) EXP : DECL_SPEC : DEREF_dspec #
1216
 
1217
#pragma token PROC (\
1218
	EXP : DECL_SPEC :,\
1219
	EXP : LIST ( DECL_SPEC ) :,\
1220
	EXP lvalue : LIST ( DECL_SPEC ) :\
1221
    ) STATEMENT CONS_dspec #
1222
 
1223
#pragma token PROC (\
1224
	EXP lvalue : DECL_SPEC :,\
1225
	EXP lvalue : LIST ( DECL_SPEC ) :,\
1226
	EXP : LIST ( DECL_SPEC ) :\
1227
    ) STATEMENT UN_CONS_dspec #
1228
 
1229
#pragma token PROC (\
1230
	EXP : DESTROYER :,\
1231
	EXP lvalue : DECL_SPEC :,\
1232
	EXP lvalue : LIST ( DECL_SPEC ) :,\
1233
	EXP : LIST ( DECL_SPEC ) :\
1234
    ) STATEMENT DESTROY_CONS_dspec #
1235
 
1236
#pragma token PROC (\
1237
	EXP : DECL_SPEC :,\
1238
	EXP lvalue : STACK ( DECL_SPEC ) :\
1239
    ) STATEMENT PUSH_dspec #
1240
 
1241
#pragma token PROC (\
1242
	EXP lvalue : DECL_SPEC :,\
1243
	EXP lvalue : STACK ( DECL_SPEC ) :\
1244
    ) STATEMENT POP_dspec #
1245
 
1246
#pragma interface SIZE_dspec COPY_dspec DEREF_dspec
1247
#pragma interface CONS_dspec UN_CONS_dspec DESTROY_CONS_dspec
1248
#pragma interface PUSH_dspec POP_dspec
1249
 
1250
 
1251
/* Definitions for enumeration QUALIFIER */
1252
 
1253
#define qual_none			( ( QUALIFIER ) 0 )
1254
#define qual_nested			( ( QUALIFIER ) 1 )
1255
#define qual_full			( ( QUALIFIER ) 2 )
1256
#define qual_top			( ( QUALIFIER ) 3 )
1257
#define qual_mark			( ( QUALIFIER ) 4 )
1258
#define qual_explicit			( ( QUALIFIER ) 3 )
1259
#define ORDER_qual			( ( unsigned long ) 5 )
1260
#pragma token EXP const : SIZE ( QUALIFIER ) : SIZE_qual #
1261
 
1262
#pragma token PROC (\
1263
	EXP : PTR ( QUALIFIER ) :,\
1264
	EXP : QUALIFIER :\
1265
    ) EXP : void : COPY_qual #
1266
 
1267
#pragma token PROC (\
1268
	EXP : PTR ( QUALIFIER ) :\
1269
    ) EXP : QUALIFIER : DEREF_qual #
1270
 
1271
#pragma interface SIZE_qual COPY_qual DEREF_qual
1272
 
1273
 
1274
/* Definitions for enumeration NTEST */
1275
 
1276
#define ntest_eq			( ( NTEST ) 0 )
1277
#define ntest_greater			( ( NTEST ) 1 )
1278
#define ntest_greater_eq		( ( NTEST ) 2 )
1279
#define ntest_less			( ( NTEST ) 3 )
1280
#define ntest_less_eq			( ( NTEST ) 4 )
1281
#define ntest_not_eq			( ( NTEST ) 5 )
1282
#define ntest_not_greater		( ( NTEST ) 6 )
1283
#define ntest_not_greater_eq		( ( NTEST ) 7 )
1284
#define ntest_not_less			( ( NTEST ) 8 )
1285
#define ntest_not_less_eq		( ( NTEST ) 9 )
1286
#define ntest_not_not_eq		( ( NTEST ) 10 )
1287
#define ntest_none			( ( NTEST ) 11 )
1288
#define ntest_negate			( ( NTEST ) 5 )
1289
#define ntest_not			( ( NTEST ) 5 )
1290
#define ntest_not_not			( ( NTEST ) 10 )
1291
#define ORDER_ntest			( ( unsigned long ) 12 )
1292
#pragma token EXP const : SIZE ( NTEST ) : SIZE_ntest #
1293
 
1294
#pragma token PROC (\
1295
	EXP : PTR ( NTEST ) :,\
1296
	EXP : NTEST :\
1297
    ) EXP : void : COPY_ntest #
1298
 
1299
#pragma token PROC (\
1300
	EXP : PTR ( NTEST ) :\
1301
    ) EXP : NTEST : DEREF_ntest #
1302
 
1303
#pragma interface SIZE_ntest COPY_ntest DEREF_ntest
1304
 
1305
 
1306
/* Definitions for enumeration RMODE */
1307
 
1308
#define rmode_as_state			( ( RMODE ) 0 )
1309
#define rmode_to_nearest		( ( RMODE ) 1 )
1310
#define rmode_to_larger			( ( RMODE ) 2 )
1311
#define rmode_to_smaller		( ( RMODE ) 3 )
1312
#define rmode_to_zero			( ( RMODE ) 4 )
1313
#define ORDER_rmode			( ( unsigned long ) 5 )
1314
#pragma token EXP const : SIZE ( RMODE ) : SIZE_rmode #
1315
 
1316
#pragma token PROC (\
1317
	EXP : PTR ( RMODE ) :,\
1318
	EXP : RMODE :\
1319
    ) EXP : void : COPY_rmode #
1320
 
1321
#pragma token PROC (\
1322
	EXP : PTR ( RMODE ) :\
1323
    ) EXP : RMODE : DEREF_rmode #
1324
 
1325
#pragma interface SIZE_rmode COPY_rmode DEREF_rmode
1326
 
1327
 
1328
/* Definitions for structure VARIABLE */
1329
 
1330
#pragma token PROC ( EXP : PTR ( VARIABLE ) : ) EXP : PTR ( IDENTIFIER ) : var_id #
1331
#pragma interface var_id
1332
 
1333
#pragma token PROC ( EXP : PTR ( VARIABLE ) : ) EXP : PTR ( DECL_SPEC ) : var_info #
1334
#pragma interface var_info
1335
 
1336
#pragma token PROC (\
1337
	EXP : IDENTIFIER :,\
1338
	EXP : DECL_SPEC :,\
1339
	EXP : PTR ( VARIABLE ) :\
1340
    ) STATEMENT MAKE_var #
1341
#pragma interface MAKE_var
1342
 
1343
#pragma token EXP const : SIZE ( VARIABLE ) : SIZE_var #
1344
 
1345
#pragma token PROC (\
1346
	EXP : PTR ( VARIABLE ) :,\
1347
	EXP : VARIABLE :\
1348
    ) STATEMENT COPY_var #
1349
 
1350
#pragma token PROC (\
1351
	EXP : PTR ( VARIABLE ) :,\
1352
	EXP lvalue : VARIABLE :\
1353
    ) STATEMENT DEREF_var #
1354
 
1355
#pragma token PROC (\
1356
	EXP : VARIABLE :,\
1357
	EXP : LIST ( VARIABLE ) :,\
1358
	EXP lvalue : LIST ( VARIABLE ) :\
1359
    ) STATEMENT CONS_var #
1360
 
1361
#pragma token PROC (\
1362
	EXP lvalue : VARIABLE :,\
1363
	EXP lvalue : LIST ( VARIABLE ) :,\
1364
	EXP : LIST ( VARIABLE ) :\
1365
    ) STATEMENT UN_CONS_var #
1366
 
1367
#pragma token PROC (\
1368
	EXP : DESTROYER :,\
1369
	EXP lvalue : VARIABLE :,\
1370
	EXP lvalue : LIST ( VARIABLE ) :,\
1371
	EXP : LIST ( VARIABLE ) :\
1372
    ) STATEMENT DESTROY_CONS_var #
1373
 
1374
#pragma token PROC (\
1375
	EXP : VARIABLE :,\
1376
	EXP lvalue : STACK ( VARIABLE ) :\
1377
    ) STATEMENT PUSH_var #
1378
 
1379
#pragma token PROC (\
1380
	EXP lvalue : VARIABLE :,\
1381
	EXP lvalue : STACK ( VARIABLE ) :\
1382
    ) STATEMENT POP_var #
1383
 
1384
#pragma interface SIZE_var COPY_var DEREF_var
1385
#pragma interface CONS_var UN_CONS_var DESTROY_CONS_var
1386
#pragma interface PUSH_var POP_var
1387
 
1388
 
1389
/* Definitions for structure LOCATION */
1390
 
1391
#pragma token PROC ( EXP : PTR ( LOCATION ) : ) EXP : PTR ( ulong_type ) : loc_line #
1392
#pragma interface loc_line
1393
 
1394
#pragma token PROC ( EXP : PTR ( LOCATION ) : ) EXP : PTR ( ulong_type ) : loc_column #
1395
#pragma interface loc_column
1396
 
1397
#pragma token PROC ( EXP : PTR ( LOCATION ) : ) EXP : PTR ( PTR ( POSITION ) ) : loc_posn #
1398
#pragma interface loc_posn
1399
 
1400
#pragma token PROC (\
1401
	EXP : ulong_type :,\
1402
	EXP : ulong_type :,\
1403
	EXP : PTR ( POSITION ) :,\
1404
	EXP : PTR ( LOCATION ) :\
1405
    ) STATEMENT MAKE_loc #
1406
#pragma interface MAKE_loc
1407
 
1408
#pragma token EXP const : SIZE ( LOCATION ) : SIZE_loc #
1409
 
1410
#pragma token PROC (\
1411
	EXP : PTR ( LOCATION ) :,\
1412
	EXP : LOCATION :\
1413
    ) STATEMENT COPY_loc #
1414
 
1415
#pragma token PROC (\
1416
	EXP : PTR ( LOCATION ) :,\
1417
	EXP lvalue : LOCATION :\
1418
    ) STATEMENT DEREF_loc #
1419
 
1420
#pragma token PROC (\
1421
	EXP : LOCATION :,\
1422
	EXP : LIST ( LOCATION ) :,\
1423
	EXP lvalue : LIST ( LOCATION ) :\
1424
    ) STATEMENT CONS_loc #
1425
 
1426
#pragma token PROC (\
1427
	EXP lvalue : LOCATION :,\
1428
	EXP lvalue : LIST ( LOCATION ) :,\
1429
	EXP : LIST ( LOCATION ) :\
1430
    ) STATEMENT UN_CONS_loc #
1431
 
1432
#pragma token PROC (\
1433
	EXP : DESTROYER :,\
1434
	EXP lvalue : LOCATION :,\
1435
	EXP lvalue : LIST ( LOCATION ) :,\
1436
	EXP : LIST ( LOCATION ) :\
1437
    ) STATEMENT DESTROY_CONS_loc #
1438
 
1439
#pragma token PROC (\
1440
	EXP : LOCATION :,\
1441
	EXP lvalue : STACK ( LOCATION ) :\
1442
    ) STATEMENT PUSH_loc #
1443
 
1444
#pragma token PROC (\
1445
	EXP lvalue : LOCATION :,\
1446
	EXP lvalue : STACK ( LOCATION ) :\
1447
    ) STATEMENT POP_loc #
1448
 
1449
#pragma interface SIZE_loc COPY_loc DEREF_loc
1450
#pragma interface CONS_loc UN_CONS_loc DESTROY_CONS_loc
1451
#pragma interface PUSH_loc POP_loc
1452
 
1453
 
1454
/* Definitions for structure POSITION */
1455
 
1456
#pragma token PROC ( EXP : PTR ( POSITION ) : ) EXP : PTR ( string ) : posn_file #
1457
#pragma interface posn_file
1458
 
1459
#pragma token PROC ( EXP : PTR ( POSITION ) : ) EXP : PTR ( string ) : posn_input #
1460
#pragma interface posn_input
1461
 
1462
#pragma token PROC ( EXP : PTR ( POSITION ) : ) EXP : PTR ( string ) : posn_base #
1463
#pragma interface posn_base
1464
 
1465
#pragma token PROC ( EXP : PTR ( POSITION ) : ) EXP : PTR ( string ) : posn_dir #
1466
#pragma interface posn_dir
1467
 
1468
#pragma token PROC ( EXP : PTR ( POSITION ) : ) EXP : PTR ( ulong_type ) : posn_offset #
1469
#pragma interface posn_offset
1470
 
1471
#pragma token PROC ( EXP : PTR ( POSITION ) : ) EXP : PTR ( PTR ( LOCATION ) ) : posn_from #
1472
#pragma interface posn_from
1473
 
1474
#pragma token PROC ( EXP : PTR ( POSITION ) : ) EXP : PTR ( ulong_type ) : posn_datestamp #
1475
#pragma interface posn_datestamp
1476
 
1477
#pragma token PROC ( EXP : PTR ( POSITION ) : ) EXP : PTR ( ulong_type ) : posn_tok #
1478
#pragma interface posn_tok
1479
 
1480
#pragma token PROC (\
1481
	EXP : string :,\
1482
	EXP : string :,\
1483
	EXP : string :,\
1484
	EXP : string :,\
1485
	EXP : ulong_type :,\
1486
	EXP : PTR ( LOCATION ) :,\
1487
	EXP : ulong_type :,\
1488
	EXP : PTR ( POSITION ) :\
1489
    ) STATEMENT MAKE_posn #
1490
#pragma interface MAKE_posn
1491
 
1492
#pragma token EXP const : SIZE ( POSITION ) : SIZE_posn #
1493
 
1494
#pragma token PROC (\
1495
	EXP : PTR ( POSITION ) :,\
1496
	EXP : POSITION :\
1497
    ) STATEMENT COPY_posn #
1498
 
1499
#pragma token PROC (\
1500
	EXP : PTR ( POSITION ) :,\
1501
	EXP lvalue : POSITION :\
1502
    ) STATEMENT DEREF_posn #
1503
 
1504
#pragma token PROC (\
1505
	EXP : POSITION :,\
1506
	EXP : LIST ( POSITION ) :,\
1507
	EXP lvalue : LIST ( POSITION ) :\
1508
    ) STATEMENT CONS_posn #
1509
 
1510
#pragma token PROC (\
1511
	EXP lvalue : POSITION :,\
1512
	EXP lvalue : LIST ( POSITION ) :,\
1513
	EXP : LIST ( POSITION ) :\
1514
    ) STATEMENT UN_CONS_posn #
1515
 
1516
#pragma token PROC (\
1517
	EXP : DESTROYER :,\
1518
	EXP lvalue : POSITION :,\
1519
	EXP lvalue : LIST ( POSITION ) :,\
1520
	EXP : LIST ( POSITION ) :\
1521
    ) STATEMENT DESTROY_CONS_posn #
1522
 
1523
#pragma token PROC (\
1524
	EXP : POSITION :,\
1525
	EXP lvalue : STACK ( POSITION ) :\
1526
    ) STATEMENT PUSH_posn #
1527
 
1528
#pragma token PROC (\
1529
	EXP lvalue : POSITION :,\
1530
	EXP lvalue : STACK ( POSITION ) :\
1531
    ) STATEMENT POP_posn #
1532
 
1533
#pragma interface SIZE_posn COPY_posn DEREF_posn
1534
#pragma interface CONS_posn UN_CONS_posn DESTROY_CONS_posn
1535
#pragma interface PUSH_posn POP_posn
1536
 
1537
 
1538
/* Definitions for union INT_TYPE */
1539
 
1540
#define ORDER_itype ( ( unsigned ) 6 )
1541
#pragma token EXP const : INT_TYPE : NULL_itype #
1542
#pragma token PROC ( EXP : INT_TYPE : ) EXP : int : IS_NULL_itype #
1543
#pragma token PROC ( EXP : INT_TYPE :, EXP : INT_TYPE : ) EXP : int : EQ_itype #
1544
#pragma interface NULL_itype IS_NULL_itype EQ_itype
1545
 
1546
#pragma token EXP const : SIZE ( INT_TYPE ) : SIZE_itype #
1547
 
1548
#pragma token PROC (\
1549
	EXP : PTR ( INT_TYPE ) :,\
1550
	EXP : INT_TYPE :\
1551
    ) EXP : void : COPY_itype #
1552
 
1553
#pragma token PROC (\
1554
	EXP : PTR ( INT_TYPE ) :\
1555
    ) EXP : INT_TYPE : DEREF_itype #
1556
 
1557
#pragma token PROC (\
1558
	EXP : INT_TYPE :,\
1559
	EXP : LIST ( INT_TYPE ) :,\
1560
	EXP lvalue : LIST ( INT_TYPE ) :\
1561
    ) STATEMENT CONS_itype #
1562
 
1563
#pragma token PROC (\
1564
	EXP lvalue : INT_TYPE :,\
1565
	EXP lvalue : LIST ( INT_TYPE ) :,\
1566
	EXP : LIST ( INT_TYPE ) :\
1567
    ) STATEMENT UN_CONS_itype #
1568
 
1569
#pragma token PROC (\
1570
	EXP : DESTROYER :,\
1571
	EXP lvalue : INT_TYPE :,\
1572
	EXP lvalue : LIST ( INT_TYPE ) :,\
1573
	EXP : LIST ( INT_TYPE ) :\
1574
    ) STATEMENT DESTROY_CONS_itype #
1575
 
1576
#pragma token PROC (\
1577
	EXP : INT_TYPE :,\
1578
	EXP lvalue : STACK ( INT_TYPE ) :\
1579
    ) STATEMENT PUSH_itype #
1580
 
1581
#pragma token PROC (\
1582
	EXP lvalue : INT_TYPE :,\
1583
	EXP lvalue : STACK ( INT_TYPE ) :\
1584
    ) STATEMENT POP_itype #
1585
 
1586
#pragma interface SIZE_itype COPY_itype DEREF_itype
1587
#pragma interface CONS_itype UN_CONS_itype DESTROY_CONS_itype
1588
#pragma interface PUSH_itype POP_itype
1589
 
1590
 
1591
/* Definitions for union FLOAT_TYPE */
1592
 
1593
#define ORDER_ftype ( ( unsigned ) 4 )
1594
#pragma token EXP const : FLOAT_TYPE : NULL_ftype #
1595
#pragma token PROC ( EXP : FLOAT_TYPE : ) EXP : int : IS_NULL_ftype #
1596
#pragma token PROC ( EXP : FLOAT_TYPE :, EXP : FLOAT_TYPE : ) EXP : int : EQ_ftype #
1597
#pragma interface NULL_ftype IS_NULL_ftype EQ_ftype
1598
 
1599
#pragma token EXP const : SIZE ( FLOAT_TYPE ) : SIZE_ftype #
1600
 
1601
#pragma token PROC (\
1602
	EXP : PTR ( FLOAT_TYPE ) :,\
1603
	EXP : FLOAT_TYPE :\
1604
    ) EXP : void : COPY_ftype #
1605
 
1606
#pragma token PROC (\
1607
	EXP : PTR ( FLOAT_TYPE ) :\
1608
    ) EXP : FLOAT_TYPE : DEREF_ftype #
1609
 
1610
#pragma token PROC (\
1611
	EXP : FLOAT_TYPE :,\
1612
	EXP : LIST ( FLOAT_TYPE ) :,\
1613
	EXP lvalue : LIST ( FLOAT_TYPE ) :\
1614
    ) STATEMENT CONS_ftype #
1615
 
1616
#pragma token PROC (\
1617
	EXP lvalue : FLOAT_TYPE :,\
1618
	EXP lvalue : LIST ( FLOAT_TYPE ) :,\
1619
	EXP : LIST ( FLOAT_TYPE ) :\
1620
    ) STATEMENT UN_CONS_ftype #
1621
 
1622
#pragma token PROC (\
1623
	EXP : DESTROYER :,\
1624
	EXP lvalue : FLOAT_TYPE :,\
1625
	EXP lvalue : LIST ( FLOAT_TYPE ) :,\
1626
	EXP : LIST ( FLOAT_TYPE ) :\
1627
    ) STATEMENT DESTROY_CONS_ftype #
1628
 
1629
#pragma token PROC (\
1630
	EXP : FLOAT_TYPE :,\
1631
	EXP lvalue : STACK ( FLOAT_TYPE ) :\
1632
    ) STATEMENT PUSH_ftype #
1633
 
1634
#pragma token PROC (\
1635
	EXP lvalue : FLOAT_TYPE :,\
1636
	EXP lvalue : STACK ( FLOAT_TYPE ) :\
1637
    ) STATEMENT POP_ftype #
1638
 
1639
#pragma interface SIZE_ftype COPY_ftype DEREF_ftype
1640
#pragma interface CONS_ftype UN_CONS_ftype DESTROY_CONS_ftype
1641
#pragma interface PUSH_ftype POP_ftype
1642
 
1643
 
1644
/* Definitions for union CLASS_TYPE */
1645
 
1646
#define ORDER_ctype ( ( unsigned ) 1 )
1647
#pragma token EXP const : CLASS_TYPE : NULL_ctype #
1648
#pragma token PROC ( EXP : CLASS_TYPE : ) EXP : int : IS_NULL_ctype #
1649
#pragma token PROC ( EXP : CLASS_TYPE :, EXP : CLASS_TYPE : ) EXP : int : EQ_ctype #
1650
#pragma interface NULL_ctype IS_NULL_ctype EQ_ctype
1651
 
1652
#pragma token EXP const : SIZE ( CLASS_TYPE ) : SIZE_ctype #
1653
 
1654
#pragma token PROC (\
1655
	EXP : PTR ( CLASS_TYPE ) :,\
1656
	EXP : CLASS_TYPE :\
1657
    ) EXP : void : COPY_ctype #
1658
 
1659
#pragma token PROC (\
1660
	EXP : PTR ( CLASS_TYPE ) :\
1661
    ) EXP : CLASS_TYPE : DEREF_ctype #
1662
 
1663
#pragma token PROC (\
1664
	EXP : CLASS_TYPE :,\
1665
	EXP : LIST ( CLASS_TYPE ) :,\
1666
	EXP lvalue : LIST ( CLASS_TYPE ) :\
1667
    ) STATEMENT CONS_ctype #
1668
 
1669
#pragma token PROC (\
1670
	EXP lvalue : CLASS_TYPE :,\
1671
	EXP lvalue : LIST ( CLASS_TYPE ) :,\
1672
	EXP : LIST ( CLASS_TYPE ) :\
1673
    ) STATEMENT UN_CONS_ctype #
1674
 
1675
#pragma token PROC (\
1676
	EXP : DESTROYER :,\
1677
	EXP lvalue : CLASS_TYPE :,\
1678
	EXP lvalue : LIST ( CLASS_TYPE ) :,\
1679
	EXP : LIST ( CLASS_TYPE ) :\
1680
    ) STATEMENT DESTROY_CONS_ctype #
1681
 
1682
#pragma token PROC (\
1683
	EXP : CLASS_TYPE :,\
1684
	EXP lvalue : STACK ( CLASS_TYPE ) :\
1685
    ) STATEMENT PUSH_ctype #
1686
 
1687
#pragma token PROC (\
1688
	EXP lvalue : CLASS_TYPE :,\
1689
	EXP lvalue : STACK ( CLASS_TYPE ) :\
1690
    ) STATEMENT POP_ctype #
1691
 
1692
#pragma interface SIZE_ctype COPY_ctype DEREF_ctype
1693
#pragma interface CONS_ctype UN_CONS_ctype DESTROY_CONS_ctype
1694
#pragma interface PUSH_ctype POP_ctype
1695
 
1696
 
1697
/* Definitions for union GRAPH */
1698
 
1699
#define ORDER_graph ( ( unsigned ) 1 )
1700
#pragma token EXP const : GRAPH : NULL_graph #
1701
#pragma token PROC ( EXP : GRAPH : ) EXP : int : IS_NULL_graph #
1702
#pragma token PROC ( EXP : GRAPH :, EXP : GRAPH : ) EXP : int : EQ_graph #
1703
#pragma interface NULL_graph IS_NULL_graph EQ_graph
1704
 
1705
#pragma token EXP const : SIZE ( GRAPH ) : SIZE_graph #
1706
 
1707
#pragma token PROC (\
1708
	EXP : PTR ( GRAPH ) :,\
1709
	EXP : GRAPH :\
1710
    ) EXP : void : COPY_graph #
1711
 
1712
#pragma token PROC (\
1713
	EXP : PTR ( GRAPH ) :\
1714
    ) EXP : GRAPH : DEREF_graph #
1715
 
1716
#pragma token PROC (\
1717
	EXP : GRAPH :,\
1718
	EXP : LIST ( GRAPH ) :,\
1719
	EXP lvalue : LIST ( GRAPH ) :\
1720
    ) STATEMENT CONS_graph #
1721
 
1722
#pragma token PROC (\
1723
	EXP lvalue : GRAPH :,\
1724
	EXP lvalue : LIST ( GRAPH ) :,\
1725
	EXP : LIST ( GRAPH ) :\
1726
    ) STATEMENT UN_CONS_graph #
1727
 
1728
#pragma token PROC (\
1729
	EXP : DESTROYER :,\
1730
	EXP lvalue : GRAPH :,\
1731
	EXP lvalue : LIST ( GRAPH ) :,\
1732
	EXP : LIST ( GRAPH ) :\
1733
    ) STATEMENT DESTROY_CONS_graph #
1734
 
1735
#pragma token PROC (\
1736
	EXP : GRAPH :,\
1737
	EXP lvalue : STACK ( GRAPH ) :\
1738
    ) STATEMENT PUSH_graph #
1739
 
1740
#pragma token PROC (\
1741
	EXP lvalue : GRAPH :,\
1742
	EXP lvalue : STACK ( GRAPH ) :\
1743
    ) STATEMENT POP_graph #
1744
 
1745
#pragma interface SIZE_graph COPY_graph DEREF_graph
1746
#pragma interface CONS_graph UN_CONS_graph DESTROY_CONS_graph
1747
#pragma interface PUSH_graph POP_graph
1748
 
1749
 
1750
/* Definitions for union VIRTUAL */
1751
 
1752
#define ORDER_virt ( ( unsigned ) 6 )
1753
#pragma token EXP const : VIRTUAL : NULL_virt #
1754
#pragma token PROC ( EXP : VIRTUAL : ) EXP : int : IS_NULL_virt #
1755
#pragma token PROC ( EXP : VIRTUAL :, EXP : VIRTUAL : ) EXP : int : EQ_virt #
1756
#pragma interface NULL_virt IS_NULL_virt EQ_virt
1757
 
1758
#pragma token EXP const : SIZE ( VIRTUAL ) : SIZE_virt #
1759
 
1760
#pragma token PROC (\
1761
	EXP : PTR ( VIRTUAL ) :,\
1762
	EXP : VIRTUAL :\
1763
    ) EXP : void : COPY_virt #
1764
 
1765
#pragma token PROC (\
1766
	EXP : PTR ( VIRTUAL ) :\
1767
    ) EXP : VIRTUAL : DEREF_virt #
1768
 
1769
#pragma token PROC (\
1770
	EXP : VIRTUAL :,\
1771
	EXP : LIST ( VIRTUAL ) :,\
1772
	EXP lvalue : LIST ( VIRTUAL ) :\
1773
    ) STATEMENT CONS_virt #
1774
 
1775
#pragma token PROC (\
1776
	EXP lvalue : VIRTUAL :,\
1777
	EXP lvalue : LIST ( VIRTUAL ) :,\
1778
	EXP : LIST ( VIRTUAL ) :\
1779
    ) STATEMENT UN_CONS_virt #
1780
 
1781
#pragma token PROC (\
1782
	EXP : DESTROYER :,\
1783
	EXP lvalue : VIRTUAL :,\
1784
	EXP lvalue : LIST ( VIRTUAL ) :,\
1785
	EXP : LIST ( VIRTUAL ) :\
1786
    ) STATEMENT DESTROY_CONS_virt #
1787
 
1788
#pragma token PROC (\
1789
	EXP : VIRTUAL :,\
1790
	EXP lvalue : STACK ( VIRTUAL ) :\
1791
    ) STATEMENT PUSH_virt #
1792
 
1793
#pragma token PROC (\
1794
	EXP lvalue : VIRTUAL :,\
1795
	EXP lvalue : STACK ( VIRTUAL ) :\
1796
    ) STATEMENT POP_virt #
1797
 
1798
#pragma interface SIZE_virt COPY_virt DEREF_virt
1799
#pragma interface CONS_virt UN_CONS_virt DESTROY_CONS_virt
1800
#pragma interface PUSH_virt POP_virt
1801
 
1802
 
1803
/* Definitions for union ENUM_TYPE */
1804
 
1805
#define ORDER_etype ( ( unsigned ) 1 )
1806
#pragma token EXP const : ENUM_TYPE : NULL_etype #
1807
#pragma token PROC ( EXP : ENUM_TYPE : ) EXP : int : IS_NULL_etype #
1808
#pragma token PROC ( EXP : ENUM_TYPE :, EXP : ENUM_TYPE : ) EXP : int : EQ_etype #
1809
#pragma interface NULL_etype IS_NULL_etype EQ_etype
1810
 
1811
#pragma token EXP const : SIZE ( ENUM_TYPE ) : SIZE_etype #
1812
 
1813
#pragma token PROC (\
1814
	EXP : PTR ( ENUM_TYPE ) :,\
1815
	EXP : ENUM_TYPE :\
1816
    ) EXP : void : COPY_etype #
1817
 
1818
#pragma token PROC (\
1819
	EXP : PTR ( ENUM_TYPE ) :\
1820
    ) EXP : ENUM_TYPE : DEREF_etype #
1821
 
1822
#pragma token PROC (\
1823
	EXP : ENUM_TYPE :,\
1824
	EXP : LIST ( ENUM_TYPE ) :,\
1825
	EXP lvalue : LIST ( ENUM_TYPE ) :\
1826
    ) STATEMENT CONS_etype #
1827
 
1828
#pragma token PROC (\
1829
	EXP lvalue : ENUM_TYPE :,\
1830
	EXP lvalue : LIST ( ENUM_TYPE ) :,\
1831
	EXP : LIST ( ENUM_TYPE ) :\
1832
    ) STATEMENT UN_CONS_etype #
1833
 
1834
#pragma token PROC (\
1835
	EXP : DESTROYER :,\
1836
	EXP lvalue : ENUM_TYPE :,\
1837
	EXP lvalue : LIST ( ENUM_TYPE ) :,\
1838
	EXP : LIST ( ENUM_TYPE ) :\
1839
    ) STATEMENT DESTROY_CONS_etype #
1840
 
1841
#pragma token PROC (\
1842
	EXP : ENUM_TYPE :,\
1843
	EXP lvalue : STACK ( ENUM_TYPE ) :\
1844
    ) STATEMENT PUSH_etype #
1845
 
1846
#pragma token PROC (\
1847
	EXP lvalue : ENUM_TYPE :,\
1848
	EXP lvalue : STACK ( ENUM_TYPE ) :\
1849
    ) STATEMENT POP_etype #
1850
 
1851
#pragma interface SIZE_etype COPY_etype DEREF_etype
1852
#pragma interface CONS_etype UN_CONS_etype DESTROY_CONS_etype
1853
#pragma interface PUSH_etype POP_etype
1854
 
1855
 
1856
/* Definitions for union TYPE */
1857
 
1858
#define ORDER_type ( ( unsigned ) 18 )
1859
#pragma token EXP const : TYPE : NULL_type #
1860
#pragma token PROC ( EXP : TYPE : ) EXP : int : IS_NULL_type #
1861
#pragma token PROC ( EXP : TYPE :, EXP : TYPE : ) EXP : int : EQ_type #
1862
#pragma interface NULL_type IS_NULL_type EQ_type
1863
 
1864
#pragma token EXP const : SIZE ( TYPE ) : SIZE_type #
1865
 
1866
#pragma token PROC (\
1867
	EXP : PTR ( TYPE ) :,\
1868
	EXP : TYPE :\
1869
    ) EXP : void : COPY_type #
1870
 
1871
#pragma token PROC (\
1872
	EXP : PTR ( TYPE ) :\
1873
    ) EXP : TYPE : DEREF_type #
1874
 
1875
#pragma token PROC (\
1876
	EXP : TYPE :,\
1877
	EXP : LIST ( TYPE ) :,\
1878
	EXP lvalue : LIST ( TYPE ) :\
1879
    ) STATEMENT CONS_type #
1880
 
1881
#pragma token PROC (\
1882
	EXP lvalue : TYPE :,\
1883
	EXP lvalue : LIST ( TYPE ) :,\
1884
	EXP : LIST ( TYPE ) :\
1885
    ) STATEMENT UN_CONS_type #
1886
 
1887
#pragma token PROC (\
1888
	EXP : DESTROYER :,\
1889
	EXP lvalue : TYPE :,\
1890
	EXP lvalue : LIST ( TYPE ) :,\
1891
	EXP : LIST ( TYPE ) :\
1892
    ) STATEMENT DESTROY_CONS_type #
1893
 
1894
#pragma token PROC (\
1895
	EXP : TYPE :,\
1896
	EXP lvalue : STACK ( TYPE ) :\
1897
    ) STATEMENT PUSH_type #
1898
 
1899
#pragma token PROC (\
1900
	EXP lvalue : TYPE :,\
1901
	EXP lvalue : STACK ( TYPE ) :\
1902
    ) STATEMENT POP_type #
1903
 
1904
#pragma interface SIZE_type COPY_type DEREF_type
1905
#pragma interface CONS_type UN_CONS_type DESTROY_CONS_type
1906
#pragma interface PUSH_type POP_type
1907
 
1908
 
1909
/* Definitions for union HASHID */
1910
 
1911
#define ORDER_hashid ( ( unsigned ) 7 )
1912
#pragma token EXP const : HASHID : NULL_hashid #
1913
#pragma token PROC ( EXP : HASHID : ) EXP : int : IS_NULL_hashid #
1914
#pragma token PROC ( EXP : HASHID :, EXP : HASHID : ) EXP : int : EQ_hashid #
1915
#pragma interface NULL_hashid IS_NULL_hashid EQ_hashid
1916
 
1917
#pragma token EXP const : SIZE ( HASHID ) : SIZE_hashid #
1918
 
1919
#pragma token PROC (\
1920
	EXP : PTR ( HASHID ) :,\
1921
	EXP : HASHID :\
1922
    ) EXP : void : COPY_hashid #
1923
 
1924
#pragma token PROC (\
1925
	EXP : PTR ( HASHID ) :\
1926
    ) EXP : HASHID : DEREF_hashid #
1927
 
1928
#pragma token PROC (\
1929
	EXP : HASHID :,\
1930
	EXP : LIST ( HASHID ) :,\
1931
	EXP lvalue : LIST ( HASHID ) :\
1932
    ) STATEMENT CONS_hashid #
1933
 
1934
#pragma token PROC (\
1935
	EXP lvalue : HASHID :,\
1936
	EXP lvalue : LIST ( HASHID ) :,\
1937
	EXP : LIST ( HASHID ) :\
1938
    ) STATEMENT UN_CONS_hashid #
1939
 
1940
#pragma token PROC (\
1941
	EXP : DESTROYER :,\
1942
	EXP lvalue : HASHID :,\
1943
	EXP lvalue : LIST ( HASHID ) :,\
1944
	EXP : LIST ( HASHID ) :\
1945
    ) STATEMENT DESTROY_CONS_hashid #
1946
 
1947
#pragma token PROC (\
1948
	EXP : HASHID :,\
1949
	EXP lvalue : STACK ( HASHID ) :\
1950
    ) STATEMENT PUSH_hashid #
1951
 
1952
#pragma token PROC (\
1953
	EXP lvalue : HASHID :,\
1954
	EXP lvalue : STACK ( HASHID ) :\
1955
    ) STATEMENT POP_hashid #
1956
 
1957
#pragma interface SIZE_hashid COPY_hashid DEREF_hashid
1958
#pragma interface CONS_hashid UN_CONS_hashid DESTROY_CONS_hashid
1959
#pragma interface PUSH_hashid POP_hashid
1960
 
1961
 
1962
/* Definitions for union IDENTIFIER */
1963
 
1964
#define ORDER_id ( ( unsigned ) 29 )
1965
#pragma token EXP const : IDENTIFIER : NULL_id #
1966
#pragma token PROC ( EXP : IDENTIFIER : ) EXP : int : IS_NULL_id #
1967
#pragma token PROC ( EXP : IDENTIFIER :, EXP : IDENTIFIER : ) EXP : int : EQ_id #
1968
#pragma interface NULL_id IS_NULL_id EQ_id
1969
 
1970
#pragma token EXP const : SIZE ( IDENTIFIER ) : SIZE_id #
1971
 
1972
#pragma token PROC (\
1973
	EXP : PTR ( IDENTIFIER ) :,\
1974
	EXP : IDENTIFIER :\
1975
    ) EXP : void : COPY_id #
1976
 
1977
#pragma token PROC (\
1978
	EXP : PTR ( IDENTIFIER ) :\
1979
    ) EXP : IDENTIFIER : DEREF_id #
1980
 
1981
#pragma token PROC (\
1982
	EXP : IDENTIFIER :,\
1983
	EXP : LIST ( IDENTIFIER ) :,\
1984
	EXP lvalue : LIST ( IDENTIFIER ) :\
1985
    ) STATEMENT CONS_id #
1986
 
1987
#pragma token PROC (\
1988
	EXP lvalue : IDENTIFIER :,\
1989
	EXP lvalue : LIST ( IDENTIFIER ) :,\
1990
	EXP : LIST ( IDENTIFIER ) :\
1991
    ) STATEMENT UN_CONS_id #
1992
 
1993
#pragma token PROC (\
1994
	EXP : DESTROYER :,\
1995
	EXP lvalue : IDENTIFIER :,\
1996
	EXP lvalue : LIST ( IDENTIFIER ) :,\
1997
	EXP : LIST ( IDENTIFIER ) :\
1998
    ) STATEMENT DESTROY_CONS_id #
1999
 
2000
#pragma token PROC (\
2001
	EXP : IDENTIFIER :,\
2002
	EXP lvalue : STACK ( IDENTIFIER ) :\
2003
    ) STATEMENT PUSH_id #
2004
 
2005
#pragma token PROC (\
2006
	EXP lvalue : IDENTIFIER :,\
2007
	EXP lvalue : STACK ( IDENTIFIER ) :\
2008
    ) STATEMENT POP_id #
2009
 
2010
#pragma interface SIZE_id COPY_id DEREF_id
2011
#pragma interface CONS_id UN_CONS_id DESTROY_CONS_id
2012
#pragma interface PUSH_id POP_id
2013
 
2014
 
2015
/* Definitions for union MEMBER */
2016
 
2017
#define ORDER_member ( ( unsigned ) 2 )
2018
#pragma token EXP const : MEMBER : NULL_member #
2019
#pragma token PROC ( EXP : MEMBER : ) EXP : int : IS_NULL_member #
2020
#pragma token PROC ( EXP : MEMBER :, EXP : MEMBER : ) EXP : int : EQ_member #
2021
#pragma interface NULL_member IS_NULL_member EQ_member
2022
 
2023
#pragma token EXP const : SIZE ( MEMBER ) : SIZE_member #
2024
 
2025
#pragma token PROC (\
2026
	EXP : PTR ( MEMBER ) :,\
2027
	EXP : MEMBER :\
2028
    ) EXP : void : COPY_member #
2029
 
2030
#pragma token PROC (\
2031
	EXP : PTR ( MEMBER ) :\
2032
    ) EXP : MEMBER : DEREF_member #
2033
 
2034
#pragma token PROC (\
2035
	EXP : MEMBER :,\
2036
	EXP : LIST ( MEMBER ) :,\
2037
	EXP lvalue : LIST ( MEMBER ) :\
2038
    ) STATEMENT CONS_member #
2039
 
2040
#pragma token PROC (\
2041
	EXP lvalue : MEMBER :,\
2042
	EXP lvalue : LIST ( MEMBER ) :,\
2043
	EXP : LIST ( MEMBER ) :\
2044
    ) STATEMENT UN_CONS_member #
2045
 
2046
#pragma token PROC (\
2047
	EXP : DESTROYER :,\
2048
	EXP lvalue : MEMBER :,\
2049
	EXP lvalue : LIST ( MEMBER ) :,\
2050
	EXP : LIST ( MEMBER ) :\
2051
    ) STATEMENT DESTROY_CONS_member #
2052
 
2053
#pragma token PROC (\
2054
	EXP : MEMBER :,\
2055
	EXP lvalue : STACK ( MEMBER ) :\
2056
    ) STATEMENT PUSH_member #
2057
 
2058
#pragma token PROC (\
2059
	EXP lvalue : MEMBER :,\
2060
	EXP lvalue : STACK ( MEMBER ) :\
2061
    ) STATEMENT POP_member #
2062
 
2063
#pragma interface SIZE_member COPY_member DEREF_member
2064
#pragma interface CONS_member UN_CONS_member DESTROY_CONS_member
2065
#pragma interface PUSH_member POP_member
2066
 
2067
 
2068
/* Definitions for union NAMESPACE */
2069
 
2070
#define ORDER_nspace ( ( unsigned ) 9 )
2071
#pragma token EXP const : NAMESPACE : NULL_nspace #
2072
#pragma token PROC ( EXP : NAMESPACE : ) EXP : int : IS_NULL_nspace #
2073
#pragma token PROC ( EXP : NAMESPACE :, EXP : NAMESPACE : ) EXP : int : EQ_nspace #
2074
#pragma interface NULL_nspace IS_NULL_nspace EQ_nspace
2075
 
2076
#pragma token EXP const : SIZE ( NAMESPACE ) : SIZE_nspace #
2077
 
2078
#pragma token PROC (\
2079
	EXP : PTR ( NAMESPACE ) :,\
2080
	EXP : NAMESPACE :\
2081
    ) EXP : void : COPY_nspace #
2082
 
2083
#pragma token PROC (\
2084
	EXP : PTR ( NAMESPACE ) :\
2085
    ) EXP : NAMESPACE : DEREF_nspace #
2086
 
2087
#pragma token PROC (\
2088
	EXP : NAMESPACE :,\
2089
	EXP : LIST ( NAMESPACE ) :,\
2090
	EXP lvalue : LIST ( NAMESPACE ) :\
2091
    ) STATEMENT CONS_nspace #
2092
 
2093
#pragma token PROC (\
2094
	EXP lvalue : NAMESPACE :,\
2095
	EXP lvalue : LIST ( NAMESPACE ) :,\
2096
	EXP : LIST ( NAMESPACE ) :\
2097
    ) STATEMENT UN_CONS_nspace #
2098
 
2099
#pragma token PROC (\
2100
	EXP : DESTROYER :,\
2101
	EXP lvalue : NAMESPACE :,\
2102
	EXP lvalue : LIST ( NAMESPACE ) :,\
2103
	EXP : LIST ( NAMESPACE ) :\
2104
    ) STATEMENT DESTROY_CONS_nspace #
2105
 
2106
#pragma token PROC (\
2107
	EXP : NAMESPACE :,\
2108
	EXP lvalue : STACK ( NAMESPACE ) :\
2109
    ) STATEMENT PUSH_nspace #
2110
 
2111
#pragma token PROC (\
2112
	EXP lvalue : NAMESPACE :,\
2113
	EXP lvalue : STACK ( NAMESPACE ) :\
2114
    ) STATEMENT POP_nspace #
2115
 
2116
#pragma interface SIZE_nspace COPY_nspace DEREF_nspace
2117
#pragma interface CONS_nspace UN_CONS_nspace DESTROY_CONS_nspace
2118
#pragma interface PUSH_nspace POP_nspace
2119
 
2120
 
2121
/* Definitions for union NAT */
2122
 
2123
#define ORDER_nat ( ( unsigned ) 5 )
2124
#pragma token EXP const : NAT : NULL_nat #
2125
#pragma token PROC ( EXP : NAT : ) EXP : int : IS_NULL_nat #
2126
#pragma token PROC ( EXP : NAT :, EXP : NAT : ) EXP : int : EQ_nat #
2127
#pragma interface NULL_nat IS_NULL_nat EQ_nat
2128
 
2129
#pragma token EXP const : SIZE ( NAT ) : SIZE_nat #
2130
 
2131
#pragma token PROC (\
2132
	EXP : PTR ( NAT ) :,\
2133
	EXP : NAT :\
2134
    ) EXP : void : COPY_nat #
2135
 
2136
#pragma token PROC (\
2137
	EXP : PTR ( NAT ) :\
2138
    ) EXP : NAT : DEREF_nat #
2139
 
2140
#pragma token PROC (\
2141
	EXP : NAT :,\
2142
	EXP : LIST ( NAT ) :,\
2143
	EXP lvalue : LIST ( NAT ) :\
2144
    ) STATEMENT CONS_nat #
2145
 
2146
#pragma token PROC (\
2147
	EXP lvalue : NAT :,\
2148
	EXP lvalue : LIST ( NAT ) :,\
2149
	EXP : LIST ( NAT ) :\
2150
    ) STATEMENT UN_CONS_nat #
2151
 
2152
#pragma token PROC (\
2153
	EXP : DESTROYER :,\
2154
	EXP lvalue : NAT :,\
2155
	EXP lvalue : LIST ( NAT ) :,\
2156
	EXP : LIST ( NAT ) :\
2157
    ) STATEMENT DESTROY_CONS_nat #
2158
 
2159
#pragma token PROC (\
2160
	EXP : NAT :,\
2161
	EXP lvalue : STACK ( NAT ) :\
2162
    ) STATEMENT PUSH_nat #
2163
 
2164
#pragma token PROC (\
2165
	EXP lvalue : NAT :,\
2166
	EXP lvalue : STACK ( NAT ) :\
2167
    ) STATEMENT POP_nat #
2168
 
2169
#pragma interface SIZE_nat COPY_nat DEREF_nat
2170
#pragma interface CONS_nat UN_CONS_nat DESTROY_CONS_nat
2171
#pragma interface PUSH_nat POP_nat
2172
 
2173
 
2174
/* Definitions for union FLOAT */
2175
 
2176
#define ORDER_flt ( ( unsigned ) 1 )
2177
#pragma token EXP const : FLOAT : NULL_flt #
2178
#pragma token PROC ( EXP : FLOAT : ) EXP : int : IS_NULL_flt #
2179
#pragma token PROC ( EXP : FLOAT :, EXP : FLOAT : ) EXP : int : EQ_flt #
2180
#pragma interface NULL_flt IS_NULL_flt EQ_flt
2181
 
2182
#pragma token EXP const : SIZE ( FLOAT ) : SIZE_flt #
2183
 
2184
#pragma token PROC (\
2185
	EXP : PTR ( FLOAT ) :,\
2186
	EXP : FLOAT :\
2187
    ) EXP : void : COPY_flt #
2188
 
2189
#pragma token PROC (\
2190
	EXP : PTR ( FLOAT ) :\
2191
    ) EXP : FLOAT : DEREF_flt #
2192
 
2193
#pragma token PROC (\
2194
	EXP : FLOAT :,\
2195
	EXP : LIST ( FLOAT ) :,\
2196
	EXP lvalue : LIST ( FLOAT ) :\
2197
    ) STATEMENT CONS_flt #
2198
 
2199
#pragma token PROC (\
2200
	EXP lvalue : FLOAT :,\
2201
	EXP lvalue : LIST ( FLOAT ) :,\
2202
	EXP : LIST ( FLOAT ) :\
2203
    ) STATEMENT UN_CONS_flt #
2204
 
2205
#pragma token PROC (\
2206
	EXP : DESTROYER :,\
2207
	EXP lvalue : FLOAT :,\
2208
	EXP lvalue : LIST ( FLOAT ) :,\
2209
	EXP : LIST ( FLOAT ) :\
2210
    ) STATEMENT DESTROY_CONS_flt #
2211
 
2212
#pragma token PROC (\
2213
	EXP : FLOAT :,\
2214
	EXP lvalue : STACK ( FLOAT ) :\
2215
    ) STATEMENT PUSH_flt #
2216
 
2217
#pragma token PROC (\
2218
	EXP lvalue : FLOAT :,\
2219
	EXP lvalue : STACK ( FLOAT ) :\
2220
    ) STATEMENT POP_flt #
2221
 
2222
#pragma interface SIZE_flt COPY_flt DEREF_flt
2223
#pragma interface CONS_flt UN_CONS_flt DESTROY_CONS_flt
2224
#pragma interface PUSH_flt POP_flt
2225
 
2226
 
2227
/* Definitions for union STRING */
2228
 
2229
#define ORDER_str ( ( unsigned ) 1 )
2230
#pragma token EXP const : STRING : NULL_str #
2231
#pragma token PROC ( EXP : STRING : ) EXP : int : IS_NULL_str #
2232
#pragma token PROC ( EXP : STRING :, EXP : STRING : ) EXP : int : EQ_str #
2233
#pragma interface NULL_str IS_NULL_str EQ_str
2234
 
2235
#pragma token EXP const : SIZE ( STRING ) : SIZE_str #
2236
 
2237
#pragma token PROC (\
2238
	EXP : PTR ( STRING ) :,\
2239
	EXP : STRING :\
2240
    ) EXP : void : COPY_str #
2241
 
2242
#pragma token PROC (\
2243
	EXP : PTR ( STRING ) :\
2244
    ) EXP : STRING : DEREF_str #
2245
 
2246
#pragma token PROC (\
2247
	EXP : STRING :,\
2248
	EXP : LIST ( STRING ) :,\
2249
	EXP lvalue : LIST ( STRING ) :\
2250
    ) STATEMENT CONS_str #
2251
 
2252
#pragma token PROC (\
2253
	EXP lvalue : STRING :,\
2254
	EXP lvalue : LIST ( STRING ) :,\
2255
	EXP : LIST ( STRING ) :\
2256
    ) STATEMENT UN_CONS_str #
2257
 
2258
#pragma token PROC (\
2259
	EXP : DESTROYER :,\
2260
	EXP lvalue : STRING :,\
2261
	EXP lvalue : LIST ( STRING ) :,\
2262
	EXP : LIST ( STRING ) :\
2263
    ) STATEMENT DESTROY_CONS_str #
2264
 
2265
#pragma token PROC (\
2266
	EXP : STRING :,\
2267
	EXP lvalue : STACK ( STRING ) :\
2268
    ) STATEMENT PUSH_str #
2269
 
2270
#pragma token PROC (\
2271
	EXP lvalue : STRING :,\
2272
	EXP lvalue : STACK ( STRING ) :\
2273
    ) STATEMENT POP_str #
2274
 
2275
#pragma interface SIZE_str COPY_str DEREF_str
2276
#pragma interface CONS_str UN_CONS_str DESTROY_CONS_str
2277
#pragma interface PUSH_str POP_str
2278
 
2279
 
2280
/* Definitions for union EXP */
2281
 
2282
#define ORDER_exp ( ( unsigned ) 88 )
2283
#pragma token EXP const : EXP : NULL_exp #
2284
#pragma token PROC ( EXP : EXP : ) EXP : int : IS_NULL_exp #
2285
#pragma token PROC ( EXP : EXP :, EXP : EXP : ) EXP : int : EQ_exp #
2286
#pragma interface NULL_exp IS_NULL_exp EQ_exp
2287
 
2288
#pragma token EXP const : SIZE ( EXP ) : SIZE_exp #
2289
 
2290
#pragma token PROC (\
2291
	EXP : PTR ( EXP ) :,\
2292
	EXP : EXP :\
2293
    ) EXP : void : COPY_exp #
2294
 
2295
#pragma token PROC (\
2296
	EXP : PTR ( EXP ) :\
2297
    ) EXP : EXP : DEREF_exp #
2298
 
2299
#pragma token PROC (\
2300
	EXP : EXP :,\
2301
	EXP : LIST ( EXP ) :,\
2302
	EXP lvalue : LIST ( EXP ) :\
2303
    ) STATEMENT CONS_exp #
2304
 
2305
#pragma token PROC (\
2306
	EXP lvalue : EXP :,\
2307
	EXP lvalue : LIST ( EXP ) :,\
2308
	EXP : LIST ( EXP ) :\
2309
    ) STATEMENT UN_CONS_exp #
2310
 
2311
#pragma token PROC (\
2312
	EXP : DESTROYER :,\
2313
	EXP lvalue : EXP :,\
2314
	EXP lvalue : LIST ( EXP ) :,\
2315
	EXP : LIST ( EXP ) :\
2316
    ) STATEMENT DESTROY_CONS_exp #
2317
 
2318
#pragma token PROC (\
2319
	EXP : EXP :,\
2320
	EXP lvalue : STACK ( EXP ) :\
2321
    ) STATEMENT PUSH_exp #
2322
 
2323
#pragma token PROC (\
2324
	EXP lvalue : EXP :,\
2325
	EXP lvalue : STACK ( EXP ) :\
2326
    ) STATEMENT POP_exp #
2327
 
2328
#pragma interface SIZE_exp COPY_exp DEREF_exp
2329
#pragma interface CONS_exp UN_CONS_exp DESTROY_CONS_exp
2330
#pragma interface PUSH_exp POP_exp
2331
 
2332
 
2333
/* Definitions for union OFFSET */
2334
 
2335
#define ORDER_off ( ( unsigned ) 13 )
2336
#pragma token EXP const : OFFSET : NULL_off #
2337
#pragma token PROC ( EXP : OFFSET : ) EXP : int : IS_NULL_off #
2338
#pragma token PROC ( EXP : OFFSET :, EXP : OFFSET : ) EXP : int : EQ_off #
2339
#pragma interface NULL_off IS_NULL_off EQ_off
2340
 
2341
#pragma token EXP const : SIZE ( OFFSET ) : SIZE_off #
2342
 
2343
#pragma token PROC (\
2344
	EXP : PTR ( OFFSET ) :,\
2345
	EXP : OFFSET :\
2346
    ) EXP : void : COPY_off #
2347
 
2348
#pragma token PROC (\
2349
	EXP : PTR ( OFFSET ) :\
2350
    ) EXP : OFFSET : DEREF_off #
2351
 
2352
#pragma token PROC (\
2353
	EXP : OFFSET :,\
2354
	EXP : LIST ( OFFSET ) :,\
2355
	EXP lvalue : LIST ( OFFSET ) :\
2356
    ) STATEMENT CONS_off #
2357
 
2358
#pragma token PROC (\
2359
	EXP lvalue : OFFSET :,\
2360
	EXP lvalue : LIST ( OFFSET ) :,\
2361
	EXP : LIST ( OFFSET ) :\
2362
    ) STATEMENT UN_CONS_off #
2363
 
2364
#pragma token PROC (\
2365
	EXP : DESTROYER :,\
2366
	EXP lvalue : OFFSET :,\
2367
	EXP lvalue : LIST ( OFFSET ) :,\
2368
	EXP : LIST ( OFFSET ) :\
2369
    ) STATEMENT DESTROY_CONS_off #
2370
 
2371
#pragma token PROC (\
2372
	EXP : OFFSET :,\
2373
	EXP lvalue : STACK ( OFFSET ) :\
2374
    ) STATEMENT PUSH_off #
2375
 
2376
#pragma token PROC (\
2377
	EXP lvalue : OFFSET :,\
2378
	EXP lvalue : STACK ( OFFSET ) :\
2379
    ) STATEMENT POP_off #
2380
 
2381
#pragma interface SIZE_off COPY_off DEREF_off
2382
#pragma interface CONS_off UN_CONS_off DESTROY_CONS_off
2383
#pragma interface PUSH_off POP_off
2384
 
2385
 
2386
/* Definitions for union TOKEN */
2387
 
2388
#define ORDER_tok ( ( unsigned ) 10 )
2389
#pragma token EXP const : TOKEN : NULL_tok #
2390
#pragma token PROC ( EXP : TOKEN : ) EXP : int : IS_NULL_tok #
2391
#pragma token PROC ( EXP : TOKEN :, EXP : TOKEN : ) EXP : int : EQ_tok #
2392
#pragma interface NULL_tok IS_NULL_tok EQ_tok
2393
 
2394
#pragma token EXP const : SIZE ( TOKEN ) : SIZE_tok #
2395
 
2396
#pragma token PROC (\
2397
	EXP : PTR ( TOKEN ) :,\
2398
	EXP : TOKEN :\
2399
    ) EXP : void : COPY_tok #
2400
 
2401
#pragma token PROC (\
2402
	EXP : PTR ( TOKEN ) :\
2403
    ) EXP : TOKEN : DEREF_tok #
2404
 
2405
#pragma token PROC (\
2406
	EXP : TOKEN :,\
2407
	EXP : LIST ( TOKEN ) :,\
2408
	EXP lvalue : LIST ( TOKEN ) :\
2409
    ) STATEMENT CONS_tok #
2410
 
2411
#pragma token PROC (\
2412
	EXP lvalue : TOKEN :,\
2413
	EXP lvalue : LIST ( TOKEN ) :,\
2414
	EXP : LIST ( TOKEN ) :\
2415
    ) STATEMENT UN_CONS_tok #
2416
 
2417
#pragma token PROC (\
2418
	EXP : DESTROYER :,\
2419
	EXP lvalue : TOKEN :,\
2420
	EXP lvalue : LIST ( TOKEN ) :,\
2421
	EXP : LIST ( TOKEN ) :\
2422
    ) STATEMENT DESTROY_CONS_tok #
2423
 
2424
#pragma token PROC (\
2425
	EXP : TOKEN :,\
2426
	EXP lvalue : STACK ( TOKEN ) :\
2427
    ) STATEMENT PUSH_tok #
2428
 
2429
#pragma token PROC (\
2430
	EXP lvalue : TOKEN :,\
2431
	EXP lvalue : STACK ( TOKEN ) :\
2432
    ) STATEMENT POP_tok #
2433
 
2434
#pragma interface SIZE_tok COPY_tok DEREF_tok
2435
#pragma interface CONS_tok UN_CONS_tok DESTROY_CONS_tok
2436
#pragma interface PUSH_tok POP_tok
2437
 
2438
 
2439
/* Definitions for union INSTANCE */
2440
 
2441
#define ORDER_inst ( ( unsigned ) 2 )
2442
#pragma token EXP const : INSTANCE : NULL_inst #
2443
#pragma token PROC ( EXP : INSTANCE : ) EXP : int : IS_NULL_inst #
2444
#pragma token PROC ( EXP : INSTANCE :, EXP : INSTANCE : ) EXP : int : EQ_inst #
2445
#pragma interface NULL_inst IS_NULL_inst EQ_inst
2446
 
2447
#pragma token EXP const : SIZE ( INSTANCE ) : SIZE_inst #
2448
 
2449
#pragma token PROC (\
2450
	EXP : PTR ( INSTANCE ) :,\
2451
	EXP : INSTANCE :\
2452
    ) EXP : void : COPY_inst #
2453
 
2454
#pragma token PROC (\
2455
	EXP : PTR ( INSTANCE ) :\
2456
    ) EXP : INSTANCE : DEREF_inst #
2457
 
2458
#pragma token PROC (\
2459
	EXP : INSTANCE :,\
2460
	EXP : LIST ( INSTANCE ) :,\
2461
	EXP lvalue : LIST ( INSTANCE ) :\
2462
    ) STATEMENT CONS_inst #
2463
 
2464
#pragma token PROC (\
2465
	EXP lvalue : INSTANCE :,\
2466
	EXP lvalue : LIST ( INSTANCE ) :,\
2467
	EXP : LIST ( INSTANCE ) :\
2468
    ) STATEMENT UN_CONS_inst #
2469
 
2470
#pragma token PROC (\
2471
	EXP : DESTROYER :,\
2472
	EXP lvalue : INSTANCE :,\
2473
	EXP lvalue : LIST ( INSTANCE ) :,\
2474
	EXP : LIST ( INSTANCE ) :\
2475
    ) STATEMENT DESTROY_CONS_inst #
2476
 
2477
#pragma token PROC (\
2478
	EXP : INSTANCE :,\
2479
	EXP lvalue : STACK ( INSTANCE ) :\
2480
    ) STATEMENT PUSH_inst #
2481
 
2482
#pragma token PROC (\
2483
	EXP lvalue : INSTANCE :,\
2484
	EXP lvalue : STACK ( INSTANCE ) :\
2485
    ) STATEMENT POP_inst #
2486
 
2487
#pragma interface SIZE_inst COPY_inst DEREF_inst
2488
#pragma interface CONS_inst UN_CONS_inst DESTROY_CONS_inst
2489
#pragma interface PUSH_inst POP_inst
2490
 
2491
 
2492
/* Definitions for union ERROR */
2493
 
2494
#define ORDER_err ( ( unsigned ) 2 )
2495
#pragma token EXP const : ERROR : NULL_err #
2496
#pragma token PROC ( EXP : ERROR : ) EXP : int : IS_NULL_err #
2497
#pragma token PROC ( EXP : ERROR :, EXP : ERROR : ) EXP : int : EQ_err #
2498
#pragma interface NULL_err IS_NULL_err EQ_err
2499
 
2500
#pragma token EXP const : SIZE ( ERROR ) : SIZE_err #
2501
 
2502
#pragma token PROC (\
2503
	EXP : PTR ( ERROR ) :,\
2504
	EXP : ERROR :\
2505
    ) EXP : void : COPY_err #
2506
 
2507
#pragma token PROC (\
2508
	EXP : PTR ( ERROR ) :\
2509
    ) EXP : ERROR : DEREF_err #
2510
 
2511
#pragma token PROC (\
2512
	EXP : ERROR :,\
2513
	EXP : LIST ( ERROR ) :,\
2514
	EXP lvalue : LIST ( ERROR ) :\
2515
    ) STATEMENT CONS_err #
2516
 
2517
#pragma token PROC (\
2518
	EXP lvalue : ERROR :,\
2519
	EXP lvalue : LIST ( ERROR ) :,\
2520
	EXP : LIST ( ERROR ) :\
2521
    ) STATEMENT UN_CONS_err #
2522
 
2523
#pragma token PROC (\
2524
	EXP : DESTROYER :,\
2525
	EXP lvalue : ERROR :,\
2526
	EXP lvalue : LIST ( ERROR ) :,\
2527
	EXP : LIST ( ERROR ) :\
2528
    ) STATEMENT DESTROY_CONS_err #
2529
 
2530
#pragma token PROC (\
2531
	EXP : ERROR :,\
2532
	EXP lvalue : STACK ( ERROR ) :\
2533
    ) STATEMENT PUSH_err #
2534
 
2535
#pragma token PROC (\
2536
	EXP lvalue : ERROR :,\
2537
	EXP lvalue : STACK ( ERROR ) :\
2538
    ) STATEMENT POP_err #
2539
 
2540
#pragma interface SIZE_err COPY_err DEREF_err
2541
#pragma interface CONS_err UN_CONS_err DESTROY_CONS_err
2542
#pragma interface PUSH_err POP_err
2543
 
2544
 
2545
#endif