Subversion Repositories tendra.SVN

Rev

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

Rev Author Line No. Line
2 7u83 1
/*
2
    		 Crown Copyright (c) 1997
3
 
4
    This TenDRA(r) Computer Program is subject to Copyright
5
    owned by the United Kingdom Secretary of State for Defence
6
    acting through the Defence Evaluation and Research Agency
7
    (DERA).  It is made available to Recipients with a
8
    royalty-free licence for its use, reproduction, transfer
9
    to other parties and amendment for any purpose not excluding
10
    product development provided that any such use et cetera
11
    shall be deemed to be acceptance of the following conditions:-
12
 
13
        (1) Its Recipients shall ensure that this Notice is
14
        reproduced upon any copies or amended versions of it;
15
 
16
        (2) Any amended version of it shall be clearly marked to
17
        show both the nature of and the organisation responsible
18
        for the relevant amendment or amendments;
19
 
20
        (3) Its onward transfer from a recipient to another
21
        party shall be deemed to be that party's acceptance of
22
        these conditions;
23
 
24
        (4) DERA gives no warranty or assurance as to its
25
        quality or suitability for any purpose and DERA accepts
26
        no liability whatsoever in relation to any use to which
27
        it may be put.
28
*/
29
 
30
/*
31
    AUTOMATICALLY GENERATED FROM ALGEBRA calculus (VERSION 1.2)
32
    BY calculus (VERSION 1.2)
33
*/
34
 
35
#ifndef CALCULUS_H_TOK_INCLUDED
36
#define CALCULUS_H_TOK_INCLUDED
37
 
38
#ifndef calculus_NAME
39
#define calculus_NAME			"calculus"
40
#define calculus_VERSION		"1.2"
41
#define calculus_SPECIFICATION		1
42
#define calculus_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
 
6 7u83 55
typedef unsigned long number;
56
typedef char * string;
2 7u83 57
 
58
 
59
/* Basic types */
60
 
61
#ifndef calculus_DESTR_DEFINED
62
#define calculus_DESTR_DEFINED
6 7u83 63
typedef void (*DESTROYER)();
2 7u83 64
#endif
65
 
6 7u83 66
#pragma token PROC(TYPE) TYPE PTR #
67
#pragma token PROC(TYPE) TYPE LIST #
68
#pragma token PROC(TYPE) TYPE STACK #
69
#pragma token PROC(TYPE) TYPE SIZE #
2 7u83 70
 
71
#pragma interface PTR LIST STACK SIZE
72
 
73
 
74
/* Enumeration type definitions */
75
 
76
 
77
 
78
/* Union type definitions */
79
 
80
#pragma token TYPE TYPE #
81
#pragma interface TYPE
82
#pragma token TYPE COMMAND #
83
#pragma interface COMMAND
84
 
85
 
86
/* Structure declarations */
87
 
6 7u83 88
typedef struct alg_tag ALGEBRA_DEFN;
89
typedef struct cid_tag CLASS_ID;
90
typedef struct prim_tag PRIMITIVE;
91
typedef struct ec_tag ECONST;
92
typedef struct en_tag ENUM;
93
typedef struct ident_tag IDENTITY;
94
typedef struct cmp_tag COMPONENT;
95
typedef struct str_tag STRUCTURE;
96
typedef struct fld_tag FIELD;
97
typedef struct arg_tag ARGUMENT;
98
typedef struct map_tag MAP;
99
typedef struct un_tag UNION;
2 7u83 100
 
101
 
102
/* Identity type definitions */
103
 
6 7u83 104
typedef string name_string;
105
typedef int zero_int;
106
typedef PTR(int) int_P;
107
typedef PTR(number) number_P;
108
typedef PTR(string) string_P;
109
typedef PTR(ARGUMENT) ARGUMENT_P;
110
typedef PTR(CLASS_ID) CLASS_ID_P;
111
typedef PTR(CLASS_ID_P) CLASS_ID_P_P;
112
typedef PTR(COMPONENT) COMPONENT_P;
113
typedef PTR(ECONST) ECONST_P;
114
typedef PTR(ENUM) ENUM_P;
115
typedef PTR(FIELD) FIELD_P;
116
typedef PTR(IDENTITY) IDENTITY_P;
117
typedef PTR(MAP) MAP_P;
118
typedef PTR(PRIMITIVE) PRIMITIVE_P;
119
typedef PTR(STRUCTURE) STRUCTURE_P;
120
typedef PTR(TYPE) TYPE_P;
121
typedef PTR(TYPE_P) TYPE_P_P;
122
typedef PTR(UNION) UNION_P;
2 7u83 123
 
124
 
125
/* Structure definitions */
126
 
127
#ifndef calculus_STRUCT_DEFINED
128
#define calculus_STRUCT_DEFINED
129
 
130
struct alg_tag {
6 7u83 131
    string name;
132
    int major_no;
133
    int minor_no;
134
    LIST(PRIMITIVE_P) primitives;
135
    LIST(IDENTITY_P) identities;
136
    LIST(ENUM_P) enumerations;
137
    LIST(STRUCTURE_P) structures;
138
    LIST(UNION_P) unions;
139
    LIST(TYPE_P) types;
140
};
2 7u83 141
 
142
struct cid_tag {
6 7u83 143
    string name;
144
    string name_aux;
145
    int flag;
146
    name_string file;
147
    int line;
148
};
2 7u83 149
 
150
struct prim_tag {
6 7u83 151
    CLASS_ID_P id;
152
    string defn;
153
};
2 7u83 154
 
155
struct ec_tag {
6 7u83 156
    string name;
157
    number value;
158
};
2 7u83 159
 
160
struct en_tag {
6 7u83 161
    CLASS_ID_P id;
162
    LIST(ECONST_P) consts;
163
    number order;
164
    int lists;
165
};
2 7u83 166
 
167
struct ident_tag {
6 7u83 168
    CLASS_ID_P id;
169
    TYPE_P defn;
170
};
2 7u83 171
 
172
struct cmp_tag {
6 7u83 173
    string name;
174
    TYPE_P type;
175
    string value;
176
};
2 7u83 177
 
178
struct str_tag {
6 7u83 179
    CLASS_ID_P id;
180
    STRUCTURE_P base;
181
    LIST(COMPONENT_P) defn;
182
    zero_int output;
183
};
2 7u83 184
 
185
struct fld_tag {
6 7u83 186
    string name;
187
    int tag;
188
    int flag;
189
    int set;
190
    FIELD_P base;
191
    LIST(COMPONENT_P) defn;
192
};
2 7u83 193
 
194
struct arg_tag {
6 7u83 195
    string name;
196
    TYPE_P type;
197
};
2 7u83 198
 
199
struct map_tag {
6 7u83 200
    string name;
201
    int flag;
202
    TYPE_P ret_type;
203
    LIST(ARGUMENT_P) args;
204
};
2 7u83 205
 
206
struct un_tag {
6 7u83 207
    CLASS_ID_P id;
208
    UNION_P base;
209
    LIST(COMPONENT_P) s_defn;
210
    LIST(FIELD_P) u_defn;
211
    LIST(MAP_P) map;
212
    int no_fields;
213
};
2 7u83 214
 
215
#endif /* calculus_STRUCT_DEFINED */
216
 
217
 
218
/* Function declarations */
219
 
6 7u83 220
extern void destroy_calculus();
221
extern void dummy_destroy_calculus();
2 7u83 222
#ifdef calculus_IO_ROUTINES
6 7u83 223
extern unsigned crt_calculus_alias;
224
extern void clear_calculus_alias(void);
2 7u83 225
#endif
226
 
227
 
228
/* Pointer token specifications */
229
 
230
#pragma token PROC {\
6 7u83 231
	TYPE t, EXP : PTR(t) : e1, EXP : SIZE(t) : e2 |\
2 7u83 232
	EXP e1, EXP e2\
6 7u83 233
    } EXP : PTR(t) : STEP_ptr #
2 7u83 234
 
6 7u83 235
#pragma token PROC(\
2 7u83 236
	TYPE t\
6 7u83 237
    ) EXP const : PTR(t) : NULL_ptr #
2 7u83 238
 
239
#pragma token PROC {\
6 7u83 240
	TYPE t, EXP : PTR(t) : e |\
2 7u83 241
	EXP e\
242
    } EXP : int : IS_NULL_ptr #
243
 
244
#pragma token PROC {\
6 7u83 245
	TYPE t, EXP : PTR(t) : e1, EXP : PTR(t) : e2 |\
2 7u83 246
	EXP e1, EXP e2\
247
    } EXP : int : EQ_ptr #
248
 
249
#pragma token PROC {\
6 7u83 250
	TYPE t, EXP : SIZE(t) : e |\
2 7u83 251
	EXP e\
6 7u83 252
    } EXP : PTR(t) : MAKE_ptr #
2 7u83 253
 
254
#pragma token PROC {\
6 7u83 255
	TYPE t, EXP : PTR(t) : e1, EXP : SIZE(t) : e2 |\
2 7u83 256
	EXP e1, EXP e2\
257
    } EXP : void : DESTROY_ptr #
258
 
6 7u83 259
#pragma token PROC(\
2 7u83 260
	TYPE t\
6 7u83 261
    ) EXP : PTR(t) : UNIQ_ptr #
2 7u83 262
 
263
#pragma token PROC {\
6 7u83 264
	TYPE t, EXP : PTR(t) : e |\
2 7u83 265
	EXP e\
266
    } EXP : void : DESTROY_UNIQ_ptr #
267
 
268
#pragma interface STEP_ptr NULL_ptr IS_NULL_ptr EQ_ptr
269
#pragma interface MAKE_ptr DESTROY_ptr
270
 
271
#ifdef calculus_IO_ROUTINES
272
#pragma token PROC {\
6 7u83 273
	TYPE t, EXP : PTR(t) : e |\
2 7u83 274
	EXP e\
275
    } EXP : void * : VOIDSTAR_ptr #
276
#pragma interface VOIDSTAR_ptr
277
#endif
278
 
6 7u83 279
#pragma token PROC(\
2 7u83 280
	TYPE t\
6 7u83 281
    ) EXP const : SIZE(PTR(t)) : SIZE_ptr #
2 7u83 282
 
283
#pragma token PROC {\
6 7u83 284
	TYPE t, EXP : PTR(PTR(t)) : e1,\
285
	EXP : PTR(t) : e2 |\
2 7u83 286
	EXP e1, EXP e2\
287
    } EXP : void : COPY_ptr #
288
 
289
#pragma token PROC {\
6 7u83 290
	TYPE t, EXP : PTR(PTR(t)) : e |\
2 7u83 291
	EXP e\
6 7u83 292
    } EXP : PTR(t) : DEREF_ptr #
2 7u83 293
 
294
#pragma token PROC {\
6 7u83 295
	TYPE t, EXP : PTR(t) : e2,\
296
	EXP : LIST(PTR(t)) : e3,\
297
	EXP lvalue : LIST(PTR(t)) : e4 |\
2 7u83 298
	EXP e2, EXP e3, EXP e4\
299
    } STATEMENT CONS_ptr #
300
 
301
#pragma token PROC {\
6 7u83 302
	TYPE t, EXP lvalue : PTR(t) : e2,\
303
	EXP lvalue : LIST(PTR(t)) : e3,\
304
	EXP : LIST(PTR(t)) : e4 |\
2 7u83 305
	EXP e2, EXP e3, EXP e4\
306
    } STATEMENT UN_CONS_ptr #
307
 
308
#pragma token PROC {\
309
	TYPE t, EXP : DESTROYER : e1,\
6 7u83 310
	EXP lvalue : PTR(t) : e2,\
311
	EXP lvalue : LIST(PTR(t)) : e3,\
312
	EXP : LIST(PTR(t)) : e4 |\
2 7u83 313
	EXP e1, EXP e2, EXP e3, EXP e4\
314
    } STATEMENT DESTROY_CONS_ptr #
315
 
316
#pragma token PROC {\
6 7u83 317
	TYPE t, EXP : PTR(t) : e2,\
318
	EXP lvalue : STACK(PTR(t)) : e3 |\
2 7u83 319
	EXP e2, EXP e3\
320
    } STATEMENT PUSH_ptr #
321
 
322
#pragma token PROC {\
6 7u83 323
	TYPE t, EXP lvalue : PTR(t) : e2,\
324
	EXP lvalue : STACK(PTR(t)) : e3 |\
2 7u83 325
	EXP e2, EXP e3\
326
    } STATEMENT POP_ptr #
327
 
328
#pragma interface SIZE_ptr COPY_ptr DEREF_ptr
329
#pragma interface CONS_ptr UN_CONS_ptr DESTROY_CONS_ptr
330
#pragma interface PUSH_ptr POP_ptr
331
 
332
 
333
/* List token specifications */
334
 
335
#pragma token PROC {\
6 7u83 336
	TYPE t, EXP : LIST(t) : e |\
2 7u83 337
	EXP e\
6 7u83 338
    } EXP : PTR(t) : HEAD_list #
2 7u83 339
 
340
#pragma token PROC {\
6 7u83 341
	TYPE t, EXP : LIST(t) : e |\
2 7u83 342
	EXP e\
6 7u83 343
    } EXP : PTR(LIST(t)) : PTR_TAIL_list #
2 7u83 344
 
345
#pragma token PROC {\
6 7u83 346
	TYPE t, EXP : LIST(t) : e |\
2 7u83 347
	EXP e\
6 7u83 348
    } EXP : LIST(t) : TAIL_list #
2 7u83 349
 
350
#pragma token PROC {\
6 7u83 351
	TYPE t, EXP : LIST(t) : e1 |\
2 7u83 352
	EXP e1\
353
    } EXP : unsigned : LENGTH_list #
354
 
355
#pragma token PROC {\
6 7u83 356
	TYPE t, EXP : LIST(t) : e1 |\
2 7u83 357
	EXP e1\
6 7u83 358
    } EXP : LIST(t) : END_list #
2 7u83 359
 
360
#pragma token PROC {\
6 7u83 361
	TYPE t, EXP : LIST(t) : e1 |\
2 7u83 362
	EXP e1\
6 7u83 363
    } EXP : LIST(t) : REVERSE_list #
2 7u83 364
 
365
#pragma token PROC {\
6 7u83 366
	TYPE t, EXP : LIST(t) : e1, EXP : LIST(t) : e2 |\
2 7u83 367
	EXP e1, EXP e2\
6 7u83 368
    } EXP : LIST(t) : APPEND_list #
2 7u83 369
 
6 7u83 370
#pragma token PROC(\
2 7u83 371
	TYPE t\
6 7u83 372
    ) EXP const : LIST(t) : NULL_list #
2 7u83 373
 
374
#pragma token PROC {\
6 7u83 375
	TYPE t, EXP : LIST(t) : e |\
2 7u83 376
	EXP e\
377
    } EXP : int : IS_NULL_list #
378
 
379
#pragma token PROC {\
6 7u83 380
	TYPE t, EXP : LIST(t) : e1, EXP : LIST(t) : e2 |\
2 7u83 381
	EXP e1, EXP e2\
382
    } EXP : int : EQ_list #
383
 
6 7u83 384
#pragma token PROC(\
2 7u83 385
	TYPE t\
6 7u83 386
    ) EXP : LIST(t) : UNIQ_list #
2 7u83 387
 
388
#pragma token PROC {\
6 7u83 389
	TYPE t, EXP : LIST(t) : e |\
2 7u83 390
	EXP e\
391
    } EXP : void : DESTROY_UNIQ_list #
392
 
393
#pragma token PROC {\
6 7u83 394
	TYPE t, EXP : LIST(t) : e1, EXP : SIZE(t) : e2 |\
2 7u83 395
	EXP e1, EXP e2\
396
    } STATEMENT DESTROY_list #
397
 
398
#pragma interface HEAD_list PTR_TAIL_list TAIL_list
399
#pragma interface LENGTH_list END_list REVERSE_list APPEND_list
400
#pragma interface NULL_list IS_NULL_list EQ_list
401
#pragma interface UNIQ_list DESTROY_UNIQ_list DESTROY_list
402
 
403
#ifdef calculus_IO_ROUTINES
404
#pragma token PROC {\
6 7u83 405
	TYPE t, EXP : LIST(t) : e |\
2 7u83 406
	EXP e\
407
    } EXP : void * : VOIDSTAR_list #
408
#pragma interface VOIDSTAR_list
409
#endif
410
 
6 7u83 411
#pragma token PROC(\
2 7u83 412
	TYPE t\
6 7u83 413
    ) EXP const : SIZE(LIST(t)) : SIZE_list #
2 7u83 414
 
415
#pragma token PROC {\
6 7u83 416
	TYPE t, EXP : PTR(LIST(t)) : e1,\
417
	EXP : LIST(t) : e2 |\
2 7u83 418
	EXP e1, EXP e2\
419
    } EXP : void : COPY_list #
420
 
421
#pragma token PROC {\
6 7u83 422
	TYPE t, EXP : PTR(LIST(t)) : e |\
2 7u83 423
	EXP e\
6 7u83 424
    } EXP : LIST(t) : DEREF_list #
2 7u83 425
 
426
#pragma token PROC {\
6 7u83 427
	TYPE t, EXP : LIST(t) : e2,\
428
	EXP : LIST(LIST(t)) : e3,\
429
	EXP lvalue : LIST(LIST(t)) : e4 |\
2 7u83 430
	EXP e2, EXP e3, EXP e4\
431
    } STATEMENT CONS_list #
432
 
433
#pragma token PROC {\
6 7u83 434
	TYPE t, EXP lvalue : LIST(t) : e2,\
435
	EXP lvalue : LIST(LIST(t)) : e3,\
436
	EXP : LIST(LIST(t)) : e4 |\
2 7u83 437
	EXP e2, EXP e3, EXP e4\
438
    } STATEMENT UN_CONS_list #
439
 
440
#pragma token PROC {\
441
	TYPE t, EXP : DESTROYER : e1,\
6 7u83 442
	EXP lvalue : LIST(t) : e2,\
443
	EXP lvalue : LIST(LIST(t)) : e3,\
444
	EXP : LIST(LIST(t)) : e4 |\
2 7u83 445
	EXP e1, EXP e2, EXP e3, EXP e4\
446
    } STATEMENT DESTROY_CONS_list #
447
 
448
#pragma token PROC {\
6 7u83 449
	TYPE t, EXP : LIST(t) : e2,\
450
	EXP lvalue : STACK(LIST(t)) : e3 |\
2 7u83 451
	EXP e2, EXP e3\
452
    } STATEMENT PUSH_list #
453
 
454
#pragma token PROC {\
6 7u83 455
	TYPE t, EXP lvalue : LIST(t) : e2,\
456
	EXP lvalue : STACK(LIST(t)) : e3 |\
2 7u83 457
	EXP e2, EXP e3\
458
    } STATEMENT POP_list #
459
 
460
#pragma interface SIZE_list COPY_list DEREF_list
461
#pragma interface CONS_list UN_CONS_list DESTROY_CONS_list
462
#pragma interface PUSH_list POP_list
463
 
464
 
465
/* Stack token specifications */
466
 
6 7u83 467
#pragma token PROC(\
2 7u83 468
	TYPE t\
6 7u83 469
    ) EXP const : STACK(t) : NULL_stack #
2 7u83 470
 
471
#pragma token PROC {\
6 7u83 472
	TYPE t, EXP : STACK(t) : e |\
2 7u83 473
	EXP e\
474
    } EXP : int : IS_NULL_stack #
475
 
476
#pragma token PROC {\
6 7u83 477
	TYPE t, EXP : STACK(t) : e1 |\
2 7u83 478
	EXP e1\
6 7u83 479
    } EXP : LIST(t) : LIST_stack #
2 7u83 480
 
481
#pragma token PROC {\
6 7u83 482
	TYPE t, EXP : LIST(t) : e1 |\
2 7u83 483
	EXP e1\
6 7u83 484
    } EXP : STACK(t) : STACK_list #
2 7u83 485
 
486
#pragma interface NULL_stack IS_NULL_stack LIST_stack STACK_list
487
 
6 7u83 488
#pragma token PROC(\
2 7u83 489
	TYPE t\
6 7u83 490
    ) EXP const : SIZE(STACK(t)) : SIZE_stack #
2 7u83 491
 
492
#pragma token PROC {\
6 7u83 493
	TYPE t, EXP : PTR(STACK(t)) : e1,\
494
	EXP : STACK(t) : e2 |\
2 7u83 495
	EXP e1, EXP e2\
496
    } EXP : void : COPY_stack #
497
 
498
#pragma token PROC {\
6 7u83 499
	TYPE t, EXP : PTR(STACK(t)) : e |\
2 7u83 500
	EXP e\
6 7u83 501
    } EXP : STACK(t) : DEREF_stack #
2 7u83 502
 
503
#pragma token PROC {\
6 7u83 504
	TYPE t, EXP : STACK(t) : e2,\
505
	EXP : LIST(STACK(t)) : e3,\
506
	EXP lvalue : LIST(STACK(t)) : e4 |\
2 7u83 507
	EXP e2, EXP e3, EXP e4\
508
    } STATEMENT CONS_stack #
509
 
510
#pragma token PROC {\
6 7u83 511
	TYPE t, EXP lvalue : STACK(t) : e2,\
512
	EXP lvalue : LIST(STACK(t)) : e3,\
513
	EXP : LIST(STACK(t)) : e4 |\
2 7u83 514
	EXP e2, EXP e3, EXP e4\
515
    } STATEMENT UN_CONS_stack #
516
 
517
#pragma token PROC {\
518
	TYPE t, EXP : DESTROYER : e1,\
6 7u83 519
	EXP lvalue : STACK(t) : e2,\
520
	EXP lvalue : LIST(STACK(t)) : e3,\
521
	EXP : LIST(STACK(t)) : e4 |\
2 7u83 522
	EXP e1, EXP e2, EXP e3, EXP e4\
523
    } STATEMENT DESTROY_CONS_stack #
524
 
525
#pragma token PROC {\
6 7u83 526
	TYPE t, EXP : STACK(t) : e2,\
527
	EXP lvalue : STACK(STACK(t)) : e3 |\
2 7u83 528
	EXP e2, EXP e3\
529
    } STATEMENT PUSH_stack #
530
 
531
#pragma token PROC {\
6 7u83 532
	TYPE t, EXP lvalue : STACK(t) : e2,\
533
	EXP lvalue : STACK(STACK(t)) : e3 |\
2 7u83 534
	EXP e2, EXP e3\
535
    } STATEMENT POP_stack #
536
 
537
#pragma interface SIZE_stack COPY_stack DEREF_stack
538
#pragma interface CONS_stack UN_CONS_stack DESTROY_CONS_stack
539
#pragma interface PUSH_stack POP_stack
540
 
541
 
542
/* Size token specifications */
543
 
544
#pragma token PROC {\
545
	TYPE t, VARIETY v,\
6 7u83 546
	EXP : SIZE(t) : e1, EXP : v : e2 |\
2 7u83 547
	EXP e1, EXP e2\
6 7u83 548
    } EXP : SIZE(t) : SCALE #
2 7u83 549
 
550
#pragma interface SCALE
551
 
552
 
553
/* Definitions for primitive int */
554
 
6 7u83 555
#pragma token EXP const : SIZE(int) : SIZE_int #
2 7u83 556
 
6 7u83 557
#pragma token PROC(\
558
	EXP : PTR(int) :,\
2 7u83 559
	EXP : int :\
560
    ) EXP : void : COPY_int #
561
 
6 7u83 562
#pragma token PROC(\
563
	EXP : PTR(int) :\
2 7u83 564
    ) EXP : int : DEREF_int #
565
 
6 7u83 566
#pragma token PROC(\
2 7u83 567
	EXP : int :,\
6 7u83 568
	EXP : LIST(int) :,\
569
	EXP lvalue : LIST(int) :\
2 7u83 570
    ) STATEMENT CONS_int #
571
 
6 7u83 572
#pragma token PROC(\
2 7u83 573
	EXP lvalue : int :,\
6 7u83 574
	EXP lvalue : LIST(int) :,\
575
	EXP : LIST(int) :\
2 7u83 576
    ) STATEMENT UN_CONS_int #
577
 
6 7u83 578
#pragma token PROC(\
2 7u83 579
	EXP : DESTROYER :,\
580
	EXP lvalue : int :,\
6 7u83 581
	EXP lvalue : LIST(int) :,\
582
	EXP : LIST(int) :\
2 7u83 583
    ) STATEMENT DESTROY_CONS_int #
584
 
6 7u83 585
#pragma token PROC(\
2 7u83 586
	EXP : int :,\
6 7u83 587
	EXP lvalue : STACK(int) :\
2 7u83 588
    ) STATEMENT PUSH_int #
589
 
6 7u83 590
#pragma token PROC(\
2 7u83 591
	EXP lvalue : int :,\
6 7u83 592
	EXP lvalue : STACK(int) :\
2 7u83 593
    ) STATEMENT POP_int #
594
 
595
#pragma interface SIZE_int COPY_int DEREF_int
596
#pragma interface CONS_int UN_CONS_int DESTROY_CONS_int
597
#pragma interface PUSH_int POP_int
598
 
599
 
600
/* Definitions for primitive number */
601
 
6 7u83 602
#pragma token EXP const : SIZE(number) : SIZE_number #
2 7u83 603
 
6 7u83 604
#pragma token PROC(\
605
	EXP : PTR(number) :,\
2 7u83 606
	EXP : number :\
607
    ) EXP : void : COPY_number #
608
 
6 7u83 609
#pragma token PROC(\
610
	EXP : PTR(number) :\
2 7u83 611
    ) EXP : number : DEREF_number #
612
 
6 7u83 613
#pragma token PROC(\
2 7u83 614
	EXP : number :,\
6 7u83 615
	EXP : LIST(number) :,\
616
	EXP lvalue : LIST(number) :\
2 7u83 617
    ) STATEMENT CONS_number #
618
 
6 7u83 619
#pragma token PROC(\
2 7u83 620
	EXP lvalue : number :,\
6 7u83 621
	EXP lvalue : LIST(number) :,\
622
	EXP : LIST(number) :\
2 7u83 623
    ) STATEMENT UN_CONS_number #
624
 
6 7u83 625
#pragma token PROC(\
2 7u83 626
	EXP : DESTROYER :,\
627
	EXP lvalue : number :,\
6 7u83 628
	EXP lvalue : LIST(number) :,\
629
	EXP : LIST(number) :\
2 7u83 630
    ) STATEMENT DESTROY_CONS_number #
631
 
6 7u83 632
#pragma token PROC(\
2 7u83 633
	EXP : number :,\
6 7u83 634
	EXP lvalue : STACK(number) :\
2 7u83 635
    ) STATEMENT PUSH_number #
636
 
6 7u83 637
#pragma token PROC(\
2 7u83 638
	EXP lvalue : number :,\
6 7u83 639
	EXP lvalue : STACK(number) :\
2 7u83 640
    ) STATEMENT POP_number #
641
 
642
#pragma interface SIZE_number COPY_number DEREF_number
643
#pragma interface CONS_number UN_CONS_number DESTROY_CONS_number
644
#pragma interface PUSH_number POP_number
645
 
646
 
647
/* Definitions for primitive string */
648
 
6 7u83 649
#pragma token EXP const : SIZE(string) : SIZE_string #
2 7u83 650
 
6 7u83 651
#pragma token PROC(\
652
	EXP : PTR(string) :,\
2 7u83 653
	EXP : string :\
654
    ) EXP : void : COPY_string #
655
 
6 7u83 656
#pragma token PROC(\
657
	EXP : PTR(string) :\
2 7u83 658
    ) EXP : string : DEREF_string #
659
 
6 7u83 660
#pragma token PROC(\
2 7u83 661
	EXP : string :,\
6 7u83 662
	EXP : LIST(string) :,\
663
	EXP lvalue : LIST(string) :\
2 7u83 664
    ) STATEMENT CONS_string #
665
 
6 7u83 666
#pragma token PROC(\
2 7u83 667
	EXP lvalue : string :,\
6 7u83 668
	EXP lvalue : LIST(string) :,\
669
	EXP : LIST(string) :\
2 7u83 670
    ) STATEMENT UN_CONS_string #
671
 
6 7u83 672
#pragma token PROC(\
2 7u83 673
	EXP : DESTROYER :,\
674
	EXP lvalue : string :,\
6 7u83 675
	EXP lvalue : LIST(string) :,\
676
	EXP : LIST(string) :\
2 7u83 677
    ) STATEMENT DESTROY_CONS_string #
678
 
6 7u83 679
#pragma token PROC(\
2 7u83 680
	EXP : string :,\
6 7u83 681
	EXP lvalue : STACK(string) :\
2 7u83 682
    ) STATEMENT PUSH_string #
683
 
6 7u83 684
#pragma token PROC(\
2 7u83 685
	EXP lvalue : string :,\
6 7u83 686
	EXP lvalue : STACK(string) :\
2 7u83 687
    ) STATEMENT POP_string #
688
 
689
#pragma interface SIZE_string COPY_string DEREF_string
690
#pragma interface CONS_string UN_CONS_string DESTROY_CONS_string
691
#pragma interface PUSH_string POP_string
692
 
693
 
694
/* Definitions for structure ALGEBRA_DEFN */
695
 
6 7u83 696
#pragma token PROC(EXP : PTR(ALGEBRA_DEFN) :) EXP : PTR(string) : alg_name #
2 7u83 697
#pragma interface alg_name
698
 
6 7u83 699
#pragma token PROC(EXP : PTR(ALGEBRA_DEFN) :) EXP : PTR(int) : alg_major_no #
2 7u83 700
#pragma interface alg_major_no
701
 
6 7u83 702
#pragma token PROC(EXP : PTR(ALGEBRA_DEFN) :) EXP : PTR(int) : alg_minor_no #
2 7u83 703
#pragma interface alg_minor_no
704
 
6 7u83 705
#pragma token PROC(EXP : PTR(ALGEBRA_DEFN) :) EXP : PTR(LIST(PRIMITIVE_P)) : alg_primitives #
2 7u83 706
#pragma interface alg_primitives
707
 
6 7u83 708
#pragma token PROC(EXP : PTR(ALGEBRA_DEFN) :) EXP : PTR(LIST(IDENTITY_P)) : alg_identities #
2 7u83 709
#pragma interface alg_identities
710
 
6 7u83 711
#pragma token PROC(EXP : PTR(ALGEBRA_DEFN) :) EXP : PTR(LIST(ENUM_P)) : alg_enumerations #
2 7u83 712
#pragma interface alg_enumerations
713
 
6 7u83 714
#pragma token PROC(EXP : PTR(ALGEBRA_DEFN) :) EXP : PTR(LIST(STRUCTURE_P)) : alg_structures #
2 7u83 715
#pragma interface alg_structures
716
 
6 7u83 717
#pragma token PROC(EXP : PTR(ALGEBRA_DEFN) :) EXP : PTR(LIST(UNION_P)) : alg_unions #
2 7u83 718
#pragma interface alg_unions
719
 
6 7u83 720
#pragma token PROC(EXP : PTR(ALGEBRA_DEFN) :) EXP : PTR(LIST(TYPE_P)) : alg_types #
2 7u83 721
#pragma interface alg_types
722
 
6 7u83 723
#pragma token PROC(\
2 7u83 724
	EXP : string :,\
725
	EXP : int :,\
726
	EXP : int :,\
6 7u83 727
	EXP : LIST(PRIMITIVE_P) :,\
728
	EXP : LIST(IDENTITY_P) :,\
729
	EXP : LIST(ENUM_P) :,\
730
	EXP : LIST(STRUCTURE_P) :,\
731
	EXP : LIST(UNION_P) :,\
732
	EXP : LIST(TYPE_P) :,\
733
	EXP : PTR(ALGEBRA_DEFN) :\
2 7u83 734
    ) STATEMENT MAKE_alg #
735
#pragma interface MAKE_alg
736
 
6 7u83 737
#pragma token EXP const : SIZE(ALGEBRA_DEFN) : SIZE_alg #
2 7u83 738
 
6 7u83 739
#pragma token PROC(\
740
	EXP : PTR(ALGEBRA_DEFN) :,\
2 7u83 741
	EXP : ALGEBRA_DEFN :\
742
    ) STATEMENT COPY_alg #
743
 
6 7u83 744
#pragma token PROC(\
745
	EXP : PTR(ALGEBRA_DEFN) :,\
2 7u83 746
	EXP lvalue : ALGEBRA_DEFN :\
747
    ) STATEMENT DEREF_alg #
748
 
6 7u83 749
#pragma token PROC(\
2 7u83 750
	EXP : ALGEBRA_DEFN :,\
6 7u83 751
	EXP : LIST(ALGEBRA_DEFN) :,\
752
	EXP lvalue : LIST(ALGEBRA_DEFN) :\
2 7u83 753
    ) STATEMENT CONS_alg #
754
 
6 7u83 755
#pragma token PROC(\
2 7u83 756
	EXP lvalue : ALGEBRA_DEFN :,\
6 7u83 757
	EXP lvalue : LIST(ALGEBRA_DEFN) :,\
758
	EXP : LIST(ALGEBRA_DEFN) :\
2 7u83 759
    ) STATEMENT UN_CONS_alg #
760
 
6 7u83 761
#pragma token PROC(\
2 7u83 762
	EXP : DESTROYER :,\
763
	EXP lvalue : ALGEBRA_DEFN :,\
6 7u83 764
	EXP lvalue : LIST(ALGEBRA_DEFN) :,\
765
	EXP : LIST(ALGEBRA_DEFN) :\
2 7u83 766
    ) STATEMENT DESTROY_CONS_alg #
767
 
6 7u83 768
#pragma token PROC(\
2 7u83 769
	EXP : ALGEBRA_DEFN :,\
6 7u83 770
	EXP lvalue : STACK(ALGEBRA_DEFN) :\
2 7u83 771
    ) STATEMENT PUSH_alg #
772
 
6 7u83 773
#pragma token PROC(\
2 7u83 774
	EXP lvalue : ALGEBRA_DEFN :,\
6 7u83 775
	EXP lvalue : STACK(ALGEBRA_DEFN) :\
2 7u83 776
    ) STATEMENT POP_alg #
777
 
778
#pragma interface SIZE_alg COPY_alg DEREF_alg
779
#pragma interface CONS_alg UN_CONS_alg DESTROY_CONS_alg
780
#pragma interface PUSH_alg POP_alg
781
 
782
 
783
/* Definitions for structure CLASS_ID */
784
 
6 7u83 785
#pragma token PROC(EXP : PTR(CLASS_ID) :) EXP : PTR(string) : cid_name #
2 7u83 786
#pragma interface cid_name
787
 
6 7u83 788
#pragma token PROC(EXP : PTR(CLASS_ID) :) EXP : PTR(string) : cid_name_aux #
2 7u83 789
#pragma interface cid_name_aux
790
 
6 7u83 791
#pragma token PROC(EXP : PTR(CLASS_ID) :) EXP : PTR(int) : cid_flag #
2 7u83 792
#pragma interface cid_flag
793
 
6 7u83 794
#pragma token PROC(EXP : PTR(CLASS_ID) :) EXP : PTR(name_string) : cid_file #
2 7u83 795
#pragma interface cid_file
796
 
6 7u83 797
#pragma token PROC(EXP : PTR(CLASS_ID) :) EXP : PTR(int) : cid_line #
2 7u83 798
#pragma interface cid_line
799
 
6 7u83 800
#pragma token PROC(\
2 7u83 801
	EXP : string :,\
802
	EXP : string :,\
803
	EXP : int :,\
804
	EXP : name_string :,\
805
	EXP : int :,\
6 7u83 806
	EXP : PTR(CLASS_ID) :\
2 7u83 807
    ) STATEMENT MAKE_cid #
808
#pragma interface MAKE_cid
809
 
6 7u83 810
#pragma token EXP const : SIZE(CLASS_ID) : SIZE_cid #
2 7u83 811
 
6 7u83 812
#pragma token PROC(\
813
	EXP : PTR(CLASS_ID) :,\
2 7u83 814
	EXP : CLASS_ID :\
815
    ) STATEMENT COPY_cid #
816
 
6 7u83 817
#pragma token PROC(\
818
	EXP : PTR(CLASS_ID) :,\
2 7u83 819
	EXP lvalue : CLASS_ID :\
820
    ) STATEMENT DEREF_cid #
821
 
6 7u83 822
#pragma token PROC(\
2 7u83 823
	EXP : CLASS_ID :,\
6 7u83 824
	EXP : LIST(CLASS_ID) :,\
825
	EXP lvalue : LIST(CLASS_ID) :\
2 7u83 826
    ) STATEMENT CONS_cid #
827
 
6 7u83 828
#pragma token PROC(\
2 7u83 829
	EXP lvalue : CLASS_ID :,\
6 7u83 830
	EXP lvalue : LIST(CLASS_ID) :,\
831
	EXP : LIST(CLASS_ID) :\
2 7u83 832
    ) STATEMENT UN_CONS_cid #
833
 
6 7u83 834
#pragma token PROC(\
2 7u83 835
	EXP : DESTROYER :,\
836
	EXP lvalue : CLASS_ID :,\
6 7u83 837
	EXP lvalue : LIST(CLASS_ID) :,\
838
	EXP : LIST(CLASS_ID) :\
2 7u83 839
    ) STATEMENT DESTROY_CONS_cid #
840
 
6 7u83 841
#pragma token PROC(\
2 7u83 842
	EXP : CLASS_ID :,\
6 7u83 843
	EXP lvalue : STACK(CLASS_ID) :\
2 7u83 844
    ) STATEMENT PUSH_cid #
845
 
6 7u83 846
#pragma token PROC(\
2 7u83 847
	EXP lvalue : CLASS_ID :,\
6 7u83 848
	EXP lvalue : STACK(CLASS_ID) :\
2 7u83 849
    ) STATEMENT POP_cid #
850
 
851
#pragma interface SIZE_cid COPY_cid DEREF_cid
852
#pragma interface CONS_cid UN_CONS_cid DESTROY_CONS_cid
853
#pragma interface PUSH_cid POP_cid
854
 
855
 
856
/* Definitions for structure PRIMITIVE */
857
 
6 7u83 858
#pragma token PROC(EXP : PTR(PRIMITIVE) :) EXP : PTR(CLASS_ID_P) : prim_id #
2 7u83 859
#pragma interface prim_id
860
 
6 7u83 861
#pragma token PROC(EXP : PTR(PRIMITIVE) :) EXP : PTR(string) : prim_defn #
2 7u83 862
#pragma interface prim_defn
863
 
6 7u83 864
#pragma token PROC(\
2 7u83 865
	EXP : CLASS_ID_P :,\
866
	EXP : string :,\
6 7u83 867
	EXP : PTR(PRIMITIVE) :\
2 7u83 868
    ) STATEMENT MAKE_prim #
869
#pragma interface MAKE_prim
870
 
6 7u83 871
#pragma token EXP const : SIZE(PRIMITIVE) : SIZE_prim #
2 7u83 872
 
6 7u83 873
#pragma token PROC(\
874
	EXP : PTR(PRIMITIVE) :,\
2 7u83 875
	EXP : PRIMITIVE :\
876
    ) STATEMENT COPY_prim #
877
 
6 7u83 878
#pragma token PROC(\
879
	EXP : PTR(PRIMITIVE) :,\
2 7u83 880
	EXP lvalue : PRIMITIVE :\
881
    ) STATEMENT DEREF_prim #
882
 
6 7u83 883
#pragma token PROC(\
2 7u83 884
	EXP : PRIMITIVE :,\
6 7u83 885
	EXP : LIST(PRIMITIVE) :,\
886
	EXP lvalue : LIST(PRIMITIVE) :\
2 7u83 887
    ) STATEMENT CONS_prim #
888
 
6 7u83 889
#pragma token PROC(\
2 7u83 890
	EXP lvalue : PRIMITIVE :,\
6 7u83 891
	EXP lvalue : LIST(PRIMITIVE) :,\
892
	EXP : LIST(PRIMITIVE) :\
2 7u83 893
    ) STATEMENT UN_CONS_prim #
894
 
6 7u83 895
#pragma token PROC(\
2 7u83 896
	EXP : DESTROYER :,\
897
	EXP lvalue : PRIMITIVE :,\
6 7u83 898
	EXP lvalue : LIST(PRIMITIVE) :,\
899
	EXP : LIST(PRIMITIVE) :\
2 7u83 900
    ) STATEMENT DESTROY_CONS_prim #
901
 
6 7u83 902
#pragma token PROC(\
2 7u83 903
	EXP : PRIMITIVE :,\
6 7u83 904
	EXP lvalue : STACK(PRIMITIVE) :\
2 7u83 905
    ) STATEMENT PUSH_prim #
906
 
6 7u83 907
#pragma token PROC(\
2 7u83 908
	EXP lvalue : PRIMITIVE :,\
6 7u83 909
	EXP lvalue : STACK(PRIMITIVE) :\
2 7u83 910
    ) STATEMENT POP_prim #
911
 
912
#pragma interface SIZE_prim COPY_prim DEREF_prim
913
#pragma interface CONS_prim UN_CONS_prim DESTROY_CONS_prim
914
#pragma interface PUSH_prim POP_prim
915
 
916
 
917
/* Definitions for structure ECONST */
918
 
6 7u83 919
#pragma token PROC(EXP : PTR(ECONST) :) EXP : PTR(string) : ec_name #
2 7u83 920
#pragma interface ec_name
921
 
6 7u83 922
#pragma token PROC(EXP : PTR(ECONST) :) EXP : PTR(number) : ec_value #
2 7u83 923
#pragma interface ec_value
924
 
6 7u83 925
#pragma token PROC(\
2 7u83 926
	EXP : string :,\
927
	EXP : number :,\
6 7u83 928
	EXP : PTR(ECONST) :\
2 7u83 929
    ) STATEMENT MAKE_ec #
930
#pragma interface MAKE_ec
931
 
6 7u83 932
#pragma token EXP const : SIZE(ECONST) : SIZE_ec #
2 7u83 933
 
6 7u83 934
#pragma token PROC(\
935
	EXP : PTR(ECONST) :,\
2 7u83 936
	EXP : ECONST :\
937
    ) STATEMENT COPY_ec #
938
 
6 7u83 939
#pragma token PROC(\
940
	EXP : PTR(ECONST) :,\
2 7u83 941
	EXP lvalue : ECONST :\
942
    ) STATEMENT DEREF_ec #
943
 
6 7u83 944
#pragma token PROC(\
2 7u83 945
	EXP : ECONST :,\
6 7u83 946
	EXP : LIST(ECONST) :,\
947
	EXP lvalue : LIST(ECONST) :\
2 7u83 948
    ) STATEMENT CONS_ec #
949
 
6 7u83 950
#pragma token PROC(\
2 7u83 951
	EXP lvalue : ECONST :,\
6 7u83 952
	EXP lvalue : LIST(ECONST) :,\
953
	EXP : LIST(ECONST) :\
2 7u83 954
    ) STATEMENT UN_CONS_ec #
955
 
6 7u83 956
#pragma token PROC(\
2 7u83 957
	EXP : DESTROYER :,\
958
	EXP lvalue : ECONST :,\
6 7u83 959
	EXP lvalue : LIST(ECONST) :,\
960
	EXP : LIST(ECONST) :\
2 7u83 961
    ) STATEMENT DESTROY_CONS_ec #
962
 
6 7u83 963
#pragma token PROC(\
2 7u83 964
	EXP : ECONST :,\
6 7u83 965
	EXP lvalue : STACK(ECONST) :\
2 7u83 966
    ) STATEMENT PUSH_ec #
967
 
6 7u83 968
#pragma token PROC(\
2 7u83 969
	EXP lvalue : ECONST :,\
6 7u83 970
	EXP lvalue : STACK(ECONST) :\
2 7u83 971
    ) STATEMENT POP_ec #
972
 
973
#pragma interface SIZE_ec COPY_ec DEREF_ec
974
#pragma interface CONS_ec UN_CONS_ec DESTROY_CONS_ec
975
#pragma interface PUSH_ec POP_ec
976
 
977
 
978
/* Definitions for structure ENUM */
979
 
6 7u83 980
#pragma token PROC(EXP : PTR(ENUM) :) EXP : PTR(CLASS_ID_P) : en_id #
2 7u83 981
#pragma interface en_id
982
 
6 7u83 983
#pragma token PROC(EXP : PTR(ENUM) :) EXP : PTR(LIST(ECONST_P)) : en_consts #
2 7u83 984
#pragma interface en_consts
985
 
6 7u83 986
#pragma token PROC(EXP : PTR(ENUM) :) EXP : PTR(number) : en_order #
2 7u83 987
#pragma interface en_order
988
 
6 7u83 989
#pragma token PROC(EXP : PTR(ENUM) :) EXP : PTR(int) : en_lists #
2 7u83 990
#pragma interface en_lists
991
 
6 7u83 992
#pragma token PROC(\
2 7u83 993
	EXP : CLASS_ID_P :,\
6 7u83 994
	EXP : LIST(ECONST_P) :,\
2 7u83 995
	EXP : number :,\
996
	EXP : int :,\
6 7u83 997
	EXP : PTR(ENUM) :\
2 7u83 998
    ) STATEMENT MAKE_en #
999
#pragma interface MAKE_en
1000
 
6 7u83 1001
#pragma token EXP const : SIZE(ENUM) : SIZE_en #
2 7u83 1002
 
6 7u83 1003
#pragma token PROC(\
1004
	EXP : PTR(ENUM) :,\
2 7u83 1005
	EXP : ENUM :\
1006
    ) STATEMENT COPY_en #
1007
 
6 7u83 1008
#pragma token PROC(\
1009
	EXP : PTR(ENUM) :,\
2 7u83 1010
	EXP lvalue : ENUM :\
1011
    ) STATEMENT DEREF_en #
1012
 
6 7u83 1013
#pragma token PROC(\
2 7u83 1014
	EXP : ENUM :,\
6 7u83 1015
	EXP : LIST(ENUM) :,\
1016
	EXP lvalue : LIST(ENUM) :\
2 7u83 1017
    ) STATEMENT CONS_en #
1018
 
6 7u83 1019
#pragma token PROC(\
2 7u83 1020
	EXP lvalue : ENUM :,\
6 7u83 1021
	EXP lvalue : LIST(ENUM) :,\
1022
	EXP : LIST(ENUM) :\
2 7u83 1023
    ) STATEMENT UN_CONS_en #
1024
 
6 7u83 1025
#pragma token PROC(\
2 7u83 1026
	EXP : DESTROYER :,\
1027
	EXP lvalue : ENUM :,\
6 7u83 1028
	EXP lvalue : LIST(ENUM) :,\
1029
	EXP : LIST(ENUM) :\
2 7u83 1030
    ) STATEMENT DESTROY_CONS_en #
1031
 
6 7u83 1032
#pragma token PROC(\
2 7u83 1033
	EXP : ENUM :,\
6 7u83 1034
	EXP lvalue : STACK(ENUM) :\
2 7u83 1035
    ) STATEMENT PUSH_en #
1036
 
6 7u83 1037
#pragma token PROC(\
2 7u83 1038
	EXP lvalue : ENUM :,\
6 7u83 1039
	EXP lvalue : STACK(ENUM) :\
2 7u83 1040
    ) STATEMENT POP_en #
1041
 
1042
#pragma interface SIZE_en COPY_en DEREF_en
1043
#pragma interface CONS_en UN_CONS_en DESTROY_CONS_en
1044
#pragma interface PUSH_en POP_en
1045
 
1046
 
1047
/* Definitions for structure IDENTITY */
1048
 
6 7u83 1049
#pragma token PROC(EXP : PTR(IDENTITY) :) EXP : PTR(CLASS_ID_P) : ident_id #
2 7u83 1050
#pragma interface ident_id
1051
 
6 7u83 1052
#pragma token PROC(EXP : PTR(IDENTITY) :) EXP : PTR(TYPE_P) : ident_defn #
2 7u83 1053
#pragma interface ident_defn
1054
 
6 7u83 1055
#pragma token PROC(\
2 7u83 1056
	EXP : CLASS_ID_P :,\
1057
	EXP : TYPE_P :,\
6 7u83 1058
	EXP : PTR(IDENTITY) :\
2 7u83 1059
    ) STATEMENT MAKE_ident #
1060
#pragma interface MAKE_ident
1061
 
6 7u83 1062
#pragma token EXP const : SIZE(IDENTITY) : SIZE_ident #
2 7u83 1063
 
6 7u83 1064
#pragma token PROC(\
1065
	EXP : PTR(IDENTITY) :,\
2 7u83 1066
	EXP : IDENTITY :\
1067
    ) STATEMENT COPY_ident #
1068
 
6 7u83 1069
#pragma token PROC(\
1070
	EXP : PTR(IDENTITY) :,\
2 7u83 1071
	EXP lvalue : IDENTITY :\
1072
    ) STATEMENT DEREF_ident #
1073
 
6 7u83 1074
#pragma token PROC(\
2 7u83 1075
	EXP : IDENTITY :,\
6 7u83 1076
	EXP : LIST(IDENTITY) :,\
1077
	EXP lvalue : LIST(IDENTITY) :\
2 7u83 1078
    ) STATEMENT CONS_ident #
1079
 
6 7u83 1080
#pragma token PROC(\
2 7u83 1081
	EXP lvalue : IDENTITY :,\
6 7u83 1082
	EXP lvalue : LIST(IDENTITY) :,\
1083
	EXP : LIST(IDENTITY) :\
2 7u83 1084
    ) STATEMENT UN_CONS_ident #
1085
 
6 7u83 1086
#pragma token PROC(\
2 7u83 1087
	EXP : DESTROYER :,\
1088
	EXP lvalue : IDENTITY :,\
6 7u83 1089
	EXP lvalue : LIST(IDENTITY) :,\
1090
	EXP : LIST(IDENTITY) :\
2 7u83 1091
    ) STATEMENT DESTROY_CONS_ident #
1092
 
6 7u83 1093
#pragma token PROC(\
2 7u83 1094
	EXP : IDENTITY :,\
6 7u83 1095
	EXP lvalue : STACK(IDENTITY) :\
2 7u83 1096
    ) STATEMENT PUSH_ident #
1097
 
6 7u83 1098
#pragma token PROC(\
2 7u83 1099
	EXP lvalue : IDENTITY :,\
6 7u83 1100
	EXP lvalue : STACK(IDENTITY) :\
2 7u83 1101
    ) STATEMENT POP_ident #
1102
 
1103
#pragma interface SIZE_ident COPY_ident DEREF_ident
1104
#pragma interface CONS_ident UN_CONS_ident DESTROY_CONS_ident
1105
#pragma interface PUSH_ident POP_ident
1106
 
1107
 
1108
/* Definitions for structure COMPONENT */
1109
 
6 7u83 1110
#pragma token PROC(EXP : PTR(COMPONENT) :) EXP : PTR(string) : cmp_name #
2 7u83 1111
#pragma interface cmp_name
1112
 
6 7u83 1113
#pragma token PROC(EXP : PTR(COMPONENT) :) EXP : PTR(TYPE_P) : cmp_type #
2 7u83 1114
#pragma interface cmp_type
1115
 
6 7u83 1116
#pragma token PROC(EXP : PTR(COMPONENT) :) EXP : PTR(string) : cmp_value #
2 7u83 1117
#pragma interface cmp_value
1118
 
6 7u83 1119
#pragma token PROC(\
2 7u83 1120
	EXP : string :,\
1121
	EXP : TYPE_P :,\
1122
	EXP : string :,\
6 7u83 1123
	EXP : PTR(COMPONENT) :\
2 7u83 1124
    ) STATEMENT MAKE_cmp #
1125
#pragma interface MAKE_cmp
1126
 
6 7u83 1127
#pragma token EXP const : SIZE(COMPONENT) : SIZE_cmp #
2 7u83 1128
 
6 7u83 1129
#pragma token PROC(\
1130
	EXP : PTR(COMPONENT) :,\
2 7u83 1131
	EXP : COMPONENT :\
1132
    ) STATEMENT COPY_cmp #
1133
 
6 7u83 1134
#pragma token PROC(\
1135
	EXP : PTR(COMPONENT) :,\
2 7u83 1136
	EXP lvalue : COMPONENT :\
1137
    ) STATEMENT DEREF_cmp #
1138
 
6 7u83 1139
#pragma token PROC(\
2 7u83 1140
	EXP : COMPONENT :,\
6 7u83 1141
	EXP : LIST(COMPONENT) :,\
1142
	EXP lvalue : LIST(COMPONENT) :\
2 7u83 1143
    ) STATEMENT CONS_cmp #
1144
 
6 7u83 1145
#pragma token PROC(\
2 7u83 1146
	EXP lvalue : COMPONENT :,\
6 7u83 1147
	EXP lvalue : LIST(COMPONENT) :,\
1148
	EXP : LIST(COMPONENT) :\
2 7u83 1149
    ) STATEMENT UN_CONS_cmp #
1150
 
6 7u83 1151
#pragma token PROC(\
2 7u83 1152
	EXP : DESTROYER :,\
1153
	EXP lvalue : COMPONENT :,\
6 7u83 1154
	EXP lvalue : LIST(COMPONENT) :,\
1155
	EXP : LIST(COMPONENT) :\
2 7u83 1156
    ) STATEMENT DESTROY_CONS_cmp #
1157
 
6 7u83 1158
#pragma token PROC(\
2 7u83 1159
	EXP : COMPONENT :,\
6 7u83 1160
	EXP lvalue : STACK(COMPONENT) :\
2 7u83 1161
    ) STATEMENT PUSH_cmp #
1162
 
6 7u83 1163
#pragma token PROC(\
2 7u83 1164
	EXP lvalue : COMPONENT :,\
6 7u83 1165
	EXP lvalue : STACK(COMPONENT) :\
2 7u83 1166
    ) STATEMENT POP_cmp #
1167
 
1168
#pragma interface SIZE_cmp COPY_cmp DEREF_cmp
1169
#pragma interface CONS_cmp UN_CONS_cmp DESTROY_CONS_cmp
1170
#pragma interface PUSH_cmp POP_cmp
1171
 
1172
 
1173
/* Definitions for structure STRUCTURE */
1174
 
6 7u83 1175
#pragma token PROC(EXP : PTR(STRUCTURE) :) EXP : PTR(CLASS_ID_P) : str_id #
2 7u83 1176
#pragma interface str_id
1177
 
6 7u83 1178
#pragma token PROC(EXP : PTR(STRUCTURE) :) EXP : PTR(STRUCTURE_P) : str_base #
2 7u83 1179
#pragma interface str_base
1180
 
6 7u83 1181
#pragma token PROC(EXP : PTR(STRUCTURE) :) EXP : PTR(LIST(COMPONENT_P)) : str_defn #
2 7u83 1182
#pragma interface str_defn
1183
 
6 7u83 1184
#pragma token PROC(EXP : PTR(STRUCTURE) :) EXP : PTR(zero_int) : str_output #
2 7u83 1185
#pragma interface str_output
1186
 
6 7u83 1187
#pragma token PROC(\
2 7u83 1188
	EXP : CLASS_ID_P :,\
1189
	EXP : STRUCTURE_P :,\
6 7u83 1190
	EXP : LIST(COMPONENT_P) :,\
2 7u83 1191
	EXP : zero_int :,\
6 7u83 1192
	EXP : PTR(STRUCTURE) :\
2 7u83 1193
    ) STATEMENT MAKE_str #
1194
#pragma interface MAKE_str
1195
 
6 7u83 1196
#pragma token EXP const : SIZE(STRUCTURE) : SIZE_str #
2 7u83 1197
 
6 7u83 1198
#pragma token PROC(\
1199
	EXP : PTR(STRUCTURE) :,\
2 7u83 1200
	EXP : STRUCTURE :\
1201
    ) STATEMENT COPY_str #
1202
 
6 7u83 1203
#pragma token PROC(\
1204
	EXP : PTR(STRUCTURE) :,\
2 7u83 1205
	EXP lvalue : STRUCTURE :\
1206
    ) STATEMENT DEREF_str #
1207
 
6 7u83 1208
#pragma token PROC(\
2 7u83 1209
	EXP : STRUCTURE :,\
6 7u83 1210
	EXP : LIST(STRUCTURE) :,\
1211
	EXP lvalue : LIST(STRUCTURE) :\
2 7u83 1212
    ) STATEMENT CONS_str #
1213
 
6 7u83 1214
#pragma token PROC(\
2 7u83 1215
	EXP lvalue : STRUCTURE :,\
6 7u83 1216
	EXP lvalue : LIST(STRUCTURE) :,\
1217
	EXP : LIST(STRUCTURE) :\
2 7u83 1218
    ) STATEMENT UN_CONS_str #
1219
 
6 7u83 1220
#pragma token PROC(\
2 7u83 1221
	EXP : DESTROYER :,\
1222
	EXP lvalue : STRUCTURE :,\
6 7u83 1223
	EXP lvalue : LIST(STRUCTURE) :,\
1224
	EXP : LIST(STRUCTURE) :\
2 7u83 1225
    ) STATEMENT DESTROY_CONS_str #
1226
 
6 7u83 1227
#pragma token PROC(\
2 7u83 1228
	EXP : STRUCTURE :,\
6 7u83 1229
	EXP lvalue : STACK(STRUCTURE) :\
2 7u83 1230
    ) STATEMENT PUSH_str #
1231
 
6 7u83 1232
#pragma token PROC(\
2 7u83 1233
	EXP lvalue : STRUCTURE :,\
6 7u83 1234
	EXP lvalue : STACK(STRUCTURE) :\
2 7u83 1235
    ) STATEMENT POP_str #
1236
 
1237
#pragma interface SIZE_str COPY_str DEREF_str
1238
#pragma interface CONS_str UN_CONS_str DESTROY_CONS_str
1239
#pragma interface PUSH_str POP_str
1240
 
1241
 
1242
/* Definitions for structure FIELD */
1243
 
6 7u83 1244
#pragma token PROC(EXP : PTR(FIELD) :) EXP : PTR(string) : fld_name #
2 7u83 1245
#pragma interface fld_name
1246
 
6 7u83 1247
#pragma token PROC(EXP : PTR(FIELD) :) EXP : PTR(int) : fld_tag #
2 7u83 1248
#pragma interface fld_tag
1249
 
6 7u83 1250
#pragma token PROC(EXP : PTR(FIELD) :) EXP : PTR(int) : fld_flag #
2 7u83 1251
#pragma interface fld_flag
1252
 
6 7u83 1253
#pragma token PROC(EXP : PTR(FIELD) :) EXP : PTR(int) : fld_set #
2 7u83 1254
#pragma interface fld_set
1255
 
6 7u83 1256
#pragma token PROC(EXP : PTR(FIELD) :) EXP : PTR(FIELD_P) : fld_base #
2 7u83 1257
#pragma interface fld_base
1258
 
6 7u83 1259
#pragma token PROC(EXP : PTR(FIELD) :) EXP : PTR(LIST(COMPONENT_P)) : fld_defn #
2 7u83 1260
#pragma interface fld_defn
1261
 
6 7u83 1262
#pragma token PROC(\
2 7u83 1263
	EXP : string :,\
1264
	EXP : int :,\
1265
	EXP : int :,\
1266
	EXP : int :,\
1267
	EXP : FIELD_P :,\
6 7u83 1268
	EXP : LIST(COMPONENT_P) :,\
1269
	EXP : PTR(FIELD) :\
2 7u83 1270
    ) STATEMENT MAKE_fld #
1271
#pragma interface MAKE_fld
1272
 
6 7u83 1273
#pragma token EXP const : SIZE(FIELD) : SIZE_fld #
2 7u83 1274
 
6 7u83 1275
#pragma token PROC(\
1276
	EXP : PTR(FIELD) :,\
2 7u83 1277
	EXP : FIELD :\
1278
    ) STATEMENT COPY_fld #
1279
 
6 7u83 1280
#pragma token PROC(\
1281
	EXP : PTR(FIELD) :,\
2 7u83 1282
	EXP lvalue : FIELD :\
1283
    ) STATEMENT DEREF_fld #
1284
 
6 7u83 1285
#pragma token PROC(\
2 7u83 1286
	EXP : FIELD :,\
6 7u83 1287
	EXP : LIST(FIELD) :,\
1288
	EXP lvalue : LIST(FIELD) :\
2 7u83 1289
    ) STATEMENT CONS_fld #
1290
 
6 7u83 1291
#pragma token PROC(\
2 7u83 1292
	EXP lvalue : FIELD :,\
6 7u83 1293
	EXP lvalue : LIST(FIELD) :,\
1294
	EXP : LIST(FIELD) :\
2 7u83 1295
    ) STATEMENT UN_CONS_fld #
1296
 
6 7u83 1297
#pragma token PROC(\
2 7u83 1298
	EXP : DESTROYER :,\
1299
	EXP lvalue : FIELD :,\
6 7u83 1300
	EXP lvalue : LIST(FIELD) :,\
1301
	EXP : LIST(FIELD) :\
2 7u83 1302
    ) STATEMENT DESTROY_CONS_fld #
1303
 
6 7u83 1304
#pragma token PROC(\
2 7u83 1305
	EXP : FIELD :,\
6 7u83 1306
	EXP lvalue : STACK(FIELD) :\
2 7u83 1307
    ) STATEMENT PUSH_fld #
1308
 
6 7u83 1309
#pragma token PROC(\
2 7u83 1310
	EXP lvalue : FIELD :,\
6 7u83 1311
	EXP lvalue : STACK(FIELD) :\
2 7u83 1312
    ) STATEMENT POP_fld #
1313
 
1314
#pragma interface SIZE_fld COPY_fld DEREF_fld
1315
#pragma interface CONS_fld UN_CONS_fld DESTROY_CONS_fld
1316
#pragma interface PUSH_fld POP_fld
1317
 
1318
 
1319
/* Definitions for structure ARGUMENT */
1320
 
6 7u83 1321
#pragma token PROC(EXP : PTR(ARGUMENT) :) EXP : PTR(string) : arg_name #
2 7u83 1322
#pragma interface arg_name
1323
 
6 7u83 1324
#pragma token PROC(EXP : PTR(ARGUMENT) :) EXP : PTR(TYPE_P) : arg_type #
2 7u83 1325
#pragma interface arg_type
1326
 
6 7u83 1327
#pragma token PROC(\
2 7u83 1328
	EXP : string :,\
1329
	EXP : TYPE_P :,\
6 7u83 1330
	EXP : PTR(ARGUMENT) :\
2 7u83 1331
    ) STATEMENT MAKE_arg #
1332
#pragma interface MAKE_arg
1333
 
6 7u83 1334
#pragma token EXP const : SIZE(ARGUMENT) : SIZE_arg #
2 7u83 1335
 
6 7u83 1336
#pragma token PROC(\
1337
	EXP : PTR(ARGUMENT) :,\
2 7u83 1338
	EXP : ARGUMENT :\
1339
    ) STATEMENT COPY_arg #
1340
 
6 7u83 1341
#pragma token PROC(\
1342
	EXP : PTR(ARGUMENT) :,\
2 7u83 1343
	EXP lvalue : ARGUMENT :\
1344
    ) STATEMENT DEREF_arg #
1345
 
6 7u83 1346
#pragma token PROC(\
2 7u83 1347
	EXP : ARGUMENT :,\
6 7u83 1348
	EXP : LIST(ARGUMENT) :,\
1349
	EXP lvalue : LIST(ARGUMENT) :\
2 7u83 1350
    ) STATEMENT CONS_arg #
1351
 
6 7u83 1352
#pragma token PROC(\
2 7u83 1353
	EXP lvalue : ARGUMENT :,\
6 7u83 1354
	EXP lvalue : LIST(ARGUMENT) :,\
1355
	EXP : LIST(ARGUMENT) :\
2 7u83 1356
    ) STATEMENT UN_CONS_arg #
1357
 
6 7u83 1358
#pragma token PROC(\
2 7u83 1359
	EXP : DESTROYER :,\
1360
	EXP lvalue : ARGUMENT :,\
6 7u83 1361
	EXP lvalue : LIST(ARGUMENT) :,\
1362
	EXP : LIST(ARGUMENT) :\
2 7u83 1363
    ) STATEMENT DESTROY_CONS_arg #
1364
 
6 7u83 1365
#pragma token PROC(\
2 7u83 1366
	EXP : ARGUMENT :,\
6 7u83 1367
	EXP lvalue : STACK(ARGUMENT) :\
2 7u83 1368
    ) STATEMENT PUSH_arg #
1369
 
6 7u83 1370
#pragma token PROC(\
2 7u83 1371
	EXP lvalue : ARGUMENT :,\
6 7u83 1372
	EXP lvalue : STACK(ARGUMENT) :\
2 7u83 1373
    ) STATEMENT POP_arg #
1374
 
1375
#pragma interface SIZE_arg COPY_arg DEREF_arg
1376
#pragma interface CONS_arg UN_CONS_arg DESTROY_CONS_arg
1377
#pragma interface PUSH_arg POP_arg
1378
 
1379
 
1380
/* Definitions for structure MAP */
1381
 
6 7u83 1382
#pragma token PROC(EXP : PTR(MAP) :) EXP : PTR(string) : map_name #
2 7u83 1383
#pragma interface map_name
1384
 
6 7u83 1385
#pragma token PROC(EXP : PTR(MAP) :) EXP : PTR(int) : map_flag #
2 7u83 1386
#pragma interface map_flag
1387
 
6 7u83 1388
#pragma token PROC(EXP : PTR(MAP) :) EXP : PTR(TYPE_P) : map_ret_type #
2 7u83 1389
#pragma interface map_ret_type
1390
 
6 7u83 1391
#pragma token PROC(EXP : PTR(MAP) :) EXP : PTR(LIST(ARGUMENT_P)) : map_args #
2 7u83 1392
#pragma interface map_args
1393
 
6 7u83 1394
#pragma token PROC(\
2 7u83 1395
	EXP : string :,\
1396
	EXP : int :,\
1397
	EXP : TYPE_P :,\
6 7u83 1398
	EXP : LIST(ARGUMENT_P) :,\
1399
	EXP : PTR(MAP) :\
2 7u83 1400
    ) STATEMENT MAKE_map #
1401
#pragma interface MAKE_map
1402
 
6 7u83 1403
#pragma token EXP const : SIZE(MAP) : SIZE_map #
2 7u83 1404
 
6 7u83 1405
#pragma token PROC(\
1406
	EXP : PTR(MAP) :,\
2 7u83 1407
	EXP : MAP :\
1408
    ) STATEMENT COPY_map #
1409
 
6 7u83 1410
#pragma token PROC(\
1411
	EXP : PTR(MAP) :,\
2 7u83 1412
	EXP lvalue : MAP :\
1413
    ) STATEMENT DEREF_map #
1414
 
6 7u83 1415
#pragma token PROC(\
2 7u83 1416
	EXP : MAP :,\
6 7u83 1417
	EXP : LIST(MAP) :,\
1418
	EXP lvalue : LIST(MAP) :\
2 7u83 1419
    ) STATEMENT CONS_map #
1420
 
6 7u83 1421
#pragma token PROC(\
2 7u83 1422
	EXP lvalue : MAP :,\
6 7u83 1423
	EXP lvalue : LIST(MAP) :,\
1424
	EXP : LIST(MAP) :\
2 7u83 1425
    ) STATEMENT UN_CONS_map #
1426
 
6 7u83 1427
#pragma token PROC(\
2 7u83 1428
	EXP : DESTROYER :,\
1429
	EXP lvalue : MAP :,\
6 7u83 1430
	EXP lvalue : LIST(MAP) :,\
1431
	EXP : LIST(MAP) :\
2 7u83 1432
    ) STATEMENT DESTROY_CONS_map #
1433
 
6 7u83 1434
#pragma token PROC(\
2 7u83 1435
	EXP : MAP :,\
6 7u83 1436
	EXP lvalue : STACK(MAP) :\
2 7u83 1437
    ) STATEMENT PUSH_map #
1438
 
6 7u83 1439
#pragma token PROC(\
2 7u83 1440
	EXP lvalue : MAP :,\
6 7u83 1441
	EXP lvalue : STACK(MAP) :\
2 7u83 1442
    ) STATEMENT POP_map #
1443
 
1444
#pragma interface SIZE_map COPY_map DEREF_map
1445
#pragma interface CONS_map UN_CONS_map DESTROY_CONS_map
1446
#pragma interface PUSH_map POP_map
1447
 
1448
 
1449
/* Definitions for structure UNION */
1450
 
6 7u83 1451
#pragma token PROC(EXP : PTR(UNION) :) EXP : PTR(CLASS_ID_P) : un_id #
2 7u83 1452
#pragma interface un_id
1453
 
6 7u83 1454
#pragma token PROC(EXP : PTR(UNION) :) EXP : PTR(UNION_P) : un_base #
2 7u83 1455
#pragma interface un_base
1456
 
6 7u83 1457
#pragma token PROC(EXP : PTR(UNION) :) EXP : PTR(LIST(COMPONENT_P)) : un_s_defn #
2 7u83 1458
#pragma interface un_s_defn
1459
 
6 7u83 1460
#pragma token PROC(EXP : PTR(UNION) :) EXP : PTR(LIST(FIELD_P)) : un_u_defn #
2 7u83 1461
#pragma interface un_u_defn
1462
 
6 7u83 1463
#pragma token PROC(EXP : PTR(UNION) :) EXP : PTR(LIST(MAP_P)) : un_map #
2 7u83 1464
#pragma interface un_map
1465
 
6 7u83 1466
#pragma token PROC(EXP : PTR(UNION) :) EXP : PTR(int) : un_no_fields #
2 7u83 1467
#pragma interface un_no_fields
1468
 
6 7u83 1469
#pragma token PROC(\
2 7u83 1470
	EXP : CLASS_ID_P :,\
1471
	EXP : UNION_P :,\
6 7u83 1472
	EXP : LIST(COMPONENT_P) :,\
1473
	EXP : LIST(FIELD_P) :,\
1474
	EXP : LIST(MAP_P) :,\
2 7u83 1475
	EXP : int :,\
6 7u83 1476
	EXP : PTR(UNION) :\
2 7u83 1477
    ) STATEMENT MAKE_un #
1478
#pragma interface MAKE_un
1479
 
6 7u83 1480
#pragma token EXP const : SIZE(UNION) : SIZE_un #
2 7u83 1481
 
6 7u83 1482
#pragma token PROC(\
1483
	EXP : PTR(UNION) :,\
2 7u83 1484
	EXP : UNION :\
1485
    ) STATEMENT COPY_un #
1486
 
6 7u83 1487
#pragma token PROC(\
1488
	EXP : PTR(UNION) :,\
2 7u83 1489
	EXP lvalue : UNION :\
1490
    ) STATEMENT DEREF_un #
1491
 
6 7u83 1492
#pragma token PROC(\
2 7u83 1493
	EXP : UNION :,\
6 7u83 1494
	EXP : LIST(UNION) :,\
1495
	EXP lvalue : LIST(UNION) :\
2 7u83 1496
    ) STATEMENT CONS_un #
1497
 
6 7u83 1498
#pragma token PROC(\
2 7u83 1499
	EXP lvalue : UNION :,\
6 7u83 1500
	EXP lvalue : LIST(UNION) :,\
1501
	EXP : LIST(UNION) :\
2 7u83 1502
    ) STATEMENT UN_CONS_un #
1503
 
6 7u83 1504
#pragma token PROC(\
2 7u83 1505
	EXP : DESTROYER :,\
1506
	EXP lvalue : UNION :,\
6 7u83 1507
	EXP lvalue : LIST(UNION) :,\
1508
	EXP : LIST(UNION) :\
2 7u83 1509
    ) STATEMENT DESTROY_CONS_un #
1510
 
6 7u83 1511
#pragma token PROC(\
2 7u83 1512
	EXP : UNION :,\
6 7u83 1513
	EXP lvalue : STACK(UNION) :\
2 7u83 1514
    ) STATEMENT PUSH_un #
1515
 
6 7u83 1516
#pragma token PROC(\
2 7u83 1517
	EXP lvalue : UNION :,\
6 7u83 1518
	EXP lvalue : STACK(UNION) :\
2 7u83 1519
    ) STATEMENT POP_un #
1520
 
1521
#pragma interface SIZE_un COPY_un DEREF_un
1522
#pragma interface CONS_un UN_CONS_un DESTROY_CONS_un
1523
#pragma interface PUSH_un POP_un
1524
 
1525
 
1526
/* Definitions for union TYPE */
1527
 
6 7u83 1528
#define ORDER_type ((unsigned)12)
2 7u83 1529
#pragma token EXP const : TYPE : NULL_type #
6 7u83 1530
#pragma token PROC(EXP : TYPE :) EXP : int : IS_NULL_type #
1531
#pragma token PROC(EXP : TYPE :, EXP : TYPE :) EXP : int : EQ_type #
2 7u83 1532
#pragma interface NULL_type IS_NULL_type EQ_type
1533
 
6 7u83 1534
#pragma token EXP const : SIZE(TYPE) : SIZE_type #
2 7u83 1535
 
6 7u83 1536
#pragma token PROC(\
1537
	EXP : PTR(TYPE) :,\
2 7u83 1538
	EXP : TYPE :\
1539
    ) EXP : void : COPY_type #
1540
 
6 7u83 1541
#pragma token PROC(\
1542
	EXP : PTR(TYPE) :\
2 7u83 1543
    ) EXP : TYPE : DEREF_type #
1544
 
6 7u83 1545
#pragma token PROC(\
2 7u83 1546
	EXP : TYPE :,\
6 7u83 1547
	EXP : LIST(TYPE) :,\
1548
	EXP lvalue : LIST(TYPE) :\
2 7u83 1549
    ) STATEMENT CONS_type #
1550
 
6 7u83 1551
#pragma token PROC(\
2 7u83 1552
	EXP lvalue : TYPE :,\
6 7u83 1553
	EXP lvalue : LIST(TYPE) :,\
1554
	EXP : LIST(TYPE) :\
2 7u83 1555
    ) STATEMENT UN_CONS_type #
1556
 
6 7u83 1557
#pragma token PROC(\
2 7u83 1558
	EXP : DESTROYER :,\
1559
	EXP lvalue : TYPE :,\
6 7u83 1560
	EXP lvalue : LIST(TYPE) :,\
1561
	EXP : LIST(TYPE) :\
2 7u83 1562
    ) STATEMENT DESTROY_CONS_type #
1563
 
6 7u83 1564
#pragma token PROC(\
2 7u83 1565
	EXP : TYPE :,\
6 7u83 1566
	EXP lvalue : STACK(TYPE) :\
2 7u83 1567
    ) STATEMENT PUSH_type #
1568
 
6 7u83 1569
#pragma token PROC(\
2 7u83 1570
	EXP lvalue : TYPE :,\
6 7u83 1571
	EXP lvalue : STACK(TYPE) :\
2 7u83 1572
    ) STATEMENT POP_type #
1573
 
1574
#pragma interface SIZE_type COPY_type DEREF_type
1575
#pragma interface CONS_type UN_CONS_type DESTROY_CONS_type
1576
#pragma interface PUSH_type POP_type
1577
 
1578
 
1579
/* Definitions for union COMMAND */
1580
 
6 7u83 1581
#define ORDER_cmd ((unsigned)4)
2 7u83 1582
#pragma token EXP const : COMMAND : NULL_cmd #
6 7u83 1583
#pragma token PROC(EXP : COMMAND :) EXP : int : IS_NULL_cmd #
1584
#pragma token PROC(EXP : COMMAND :, EXP : COMMAND :) EXP : int : EQ_cmd #
2 7u83 1585
#pragma interface NULL_cmd IS_NULL_cmd EQ_cmd
1586
 
6 7u83 1587
#pragma token EXP const : SIZE(COMMAND) : SIZE_cmd #
2 7u83 1588
 
6 7u83 1589
#pragma token PROC(\
1590
	EXP : PTR(COMMAND) :,\
2 7u83 1591
	EXP : COMMAND :\
1592
    ) EXP : void : COPY_cmd #
1593
 
6 7u83 1594
#pragma token PROC(\
1595
	EXP : PTR(COMMAND) :\
2 7u83 1596
    ) EXP : COMMAND : DEREF_cmd #
1597
 
6 7u83 1598
#pragma token PROC(\
2 7u83 1599
	EXP : COMMAND :,\
6 7u83 1600
	EXP : LIST(COMMAND) :,\
1601
	EXP lvalue : LIST(COMMAND) :\
2 7u83 1602
    ) STATEMENT CONS_cmd #
1603
 
6 7u83 1604
#pragma token PROC(\
2 7u83 1605
	EXP lvalue : COMMAND :,\
6 7u83 1606
	EXP lvalue : LIST(COMMAND) :,\
1607
	EXP : LIST(COMMAND) :\
2 7u83 1608
    ) STATEMENT UN_CONS_cmd #
1609
 
6 7u83 1610
#pragma token PROC(\
2 7u83 1611
	EXP : DESTROYER :,\
1612
	EXP lvalue : COMMAND :,\
6 7u83 1613
	EXP lvalue : LIST(COMMAND) :,\
1614
	EXP : LIST(COMMAND) :\
2 7u83 1615
    ) STATEMENT DESTROY_CONS_cmd #
1616
 
6 7u83 1617
#pragma token PROC(\
2 7u83 1618
	EXP : COMMAND :,\
6 7u83 1619
	EXP lvalue : STACK(COMMAND) :\
2 7u83 1620
    ) STATEMENT PUSH_cmd #
1621
 
6 7u83 1622
#pragma token PROC(\
2 7u83 1623
	EXP lvalue : COMMAND :,\
6 7u83 1624
	EXP lvalue : STACK(COMMAND) :\
2 7u83 1625
    ) STATEMENT POP_cmd #
1626
 
1627
#pragma interface SIZE_cmd COPY_cmd DEREF_cmd
1628
#pragma interface CONS_cmd UN_CONS_cmd DESTROY_CONS_cmd
1629
#pragma interface PUSH_cmd POP_cmd
1630
 
1631
 
1632
#endif