Subversion Repositories tendra.SVN

Rev

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

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