Subversion Repositories tendra.SVN

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 7u83 1
/*
2
    		 Crown Copyright (c) 1997
3
 
4
    This TenDRA(r) Computer Program is subject to Copyright
5
    owned by the United Kingdom Secretary of State for Defence
6
    acting through the Defence Evaluation and Research Agency
7
    (DERA).  It is made available to Recipients with a
8
    royalty-free licence for its use, reproduction, transfer
9
    to other parties and amendment for any purpose not excluding
10
    product development provided that any such use et cetera
11
    shall be deemed to be acceptance of the following conditions:-
12
 
13
        (1) Its Recipients shall ensure that this Notice is
14
        reproduced upon any copies or amended versions of it;
15
 
16
        (2) Any amended version of it shall be clearly marked to
17
        show both the nature of and the organisation responsible
18
        for the relevant amendment or amendments;
19
 
20
        (3) Its onward transfer from a recipient to another
21
        party shall be deemed to be that party's acceptance of
22
        these conditions;
23
 
24
        (4) DERA gives no warranty or assurance as to its
25
        quality or suitability for any purpose and DERA accepts
26
        no liability whatsoever in relation to any use to which
27
        it may be put.
28
*/
29
 
30
/*
31
    AUTOMATICALLY GENERATED FROM ALGEBRA tdf (VERSION 1.0)
32
    BY calculus (VERSION 1.2)
33
*/
34
 
35
#ifndef TDF_H_TOK_INCLUDED
36
#define TDF_H_TOK_INCLUDED
37
 
38
#ifndef tdf_NAME
39
#define tdf_NAME			"tdf"
40
#define tdf_VERSION			"1.0"
41
#define tdf_SPECIFICATION		1
42
#define tdf_IMPLEMENTATION		0
43
#endif
44
 
45
 
46
/* Prototype macros */
47
 
48
#ifndef PROTO_S
49
#ifdef __STDC__
50
#define PROTO_S( types )		types
51
#define PROTO_N( names )
52
#define PROTO_T( parms )		( parms )
53
#define PROTO_Z()			( void )
54
#define X				,
55
#else
56
#define PROTO_S( types )		()
57
#define PROTO_N( names )		names
58
#define PROTO_T( parms )		parms ;
59
#define PROTO_Z()			()
60
#define X				;
61
#endif
62
#endif
63
 
64
#ifndef CONST_S
65
#define CONST_S
66
#endif
67
 
68
 
69
/* Primitive types */
70
 
71
typedef char * string ;
72
 
73
 
74
/* Basic types */
75
 
76
#ifndef tdf_DESTR_DEFINED
77
#define tdf_DESTR_DEFINED
78
typedef void ( *DESTROYER ) () ;
79
#endif
80
 
81
#pragma token PROC ( TYPE ) TYPE PTR #
82
#pragma token PROC ( TYPE ) TYPE LIST #
83
#pragma token PROC ( TYPE ) TYPE STACK #
84
#pragma token PROC ( TYPE ) TYPE SIZE #
85
 
86
#pragma interface PTR LIST STACK SIZE
87
 
88
 
89
/* Enumeration type definitions */
90
 
91
 
92
 
93
/* Union type definitions */
94
 
95
#pragma token TYPE PARAMETER #
96
#pragma interface PARAMETER
97
#pragma token TYPE CONSTRUCT #
98
#pragma interface CONSTRUCT
99
#pragma token TYPE SORT_INFO #
100
#pragma interface SORT_INFO
101
#pragma token TYPE SORT #
102
#pragma interface SORT
103
#pragma token TYPE LINKAGE #
104
#pragma interface LINKAGE
105
#pragma token TYPE SPECIFICATION #
106
#pragma interface SPECIFICATION
107
#pragma token TYPE COMMAND #
108
#pragma interface COMMAND
109
 
110
 
111
/* Structure declarations */
112
 
113
 
114
 
115
/* Identity type definitions */
116
 
117
 
118
 
119
/* Structure definitions */
120
 
121
#ifndef tdf_STRUCT_DEFINED
122
#define tdf_STRUCT_DEFINED
123
 
124
#endif /* tdf_STRUCT_DEFINED */
125
 
126
 
127
/* Function declarations */
128
 
129
extern void destroy_tdf () ;
130
extern void dummy_destroy_tdf () ;
131
#ifdef tdf_IO_ROUTINES
132
extern unsigned crt_tdf_alias ;
133
extern void clear_tdf_alias PROTO_S ( ( void ) ) ;
134
#endif
135
 
136
 
137
/* Pointer token specifications */
138
 
139
#pragma token PROC {\
140
	TYPE t, EXP : PTR ( t ) : e1, EXP : SIZE ( t ) : e2 |\
141
	EXP e1, EXP e2\
142
    } EXP : PTR ( t ) : STEP_ptr #
143
 
144
#pragma token PROC (\
145
	TYPE t\
146
    ) EXP const : PTR ( t ) : NULL_ptr #
147
 
148
#pragma token PROC {\
149
	TYPE t, EXP : PTR ( t ) : e |\
150
	EXP e\
151
    } EXP : int : IS_NULL_ptr #
152
 
153
#pragma token PROC {\
154
	TYPE t, EXP : PTR ( t ) : e1, EXP : PTR ( t ) : e2 |\
155
	EXP e1, EXP e2\
156
    } EXP : int : EQ_ptr #
157
 
158
#pragma token PROC {\
159
	TYPE t, EXP : SIZE ( t ) : e |\
160
	EXP e\
161
    } EXP : PTR ( t ) : MAKE_ptr #
162
 
163
#pragma token PROC {\
164
	TYPE t, EXP : PTR ( t ) : e1, EXP : SIZE ( t ) : e2 |\
165
	EXP e1, EXP e2\
166
    } EXP : void : DESTROY_ptr #
167
 
168
#pragma token PROC (\
169
	TYPE t\
170
    ) EXP : PTR ( t ) : UNIQ_ptr #
171
 
172
#pragma token PROC {\
173
	TYPE t, EXP : PTR ( t ) : e |\
174
	EXP e\
175
    } EXP : void : DESTROY_UNIQ_ptr #
176
 
177
#pragma interface STEP_ptr NULL_ptr IS_NULL_ptr EQ_ptr
178
#pragma interface MAKE_ptr DESTROY_ptr
179
 
180
#ifdef tdf_IO_ROUTINES
181
#pragma token PROC {\
182
	TYPE t, EXP : PTR ( t ) : e |\
183
	EXP e\
184
    } EXP : void * : VOIDSTAR_ptr #
185
#pragma interface VOIDSTAR_ptr
186
#endif
187
 
188
#pragma token PROC (\
189
	TYPE t\
190
    ) EXP const : SIZE ( PTR ( t ) ) : SIZE_ptr #
191
 
192
#pragma token PROC {\
193
	TYPE t, EXP : PTR ( PTR ( t ) ) : e1,\
194
	EXP : PTR ( t ) : e2 |\
195
	EXP e1, EXP e2\
196
    } EXP : void : COPY_ptr #
197
 
198
#pragma token PROC {\
199
	TYPE t, EXP : PTR ( PTR ( t ) ) : e |\
200
	EXP e\
201
    } EXP : PTR ( t ) : DEREF_ptr #
202
 
203
#pragma token PROC {\
204
	TYPE t, EXP : PTR ( t ) : e2,\
205
	EXP : LIST ( PTR ( t ) ) : e3,\
206
	EXP lvalue : LIST ( PTR ( t ) ) : e4 |\
207
	EXP e2, EXP e3, EXP e4\
208
    } STATEMENT CONS_ptr #
209
 
210
#pragma token PROC {\
211
	TYPE t, EXP lvalue : PTR ( t ) : e2,\
212
	EXP lvalue : LIST ( PTR ( t ) ) : e3,\
213
	EXP : LIST ( PTR ( t ) ) : e4 |\
214
	EXP e2, EXP e3, EXP e4\
215
    } STATEMENT UN_CONS_ptr #
216
 
217
#pragma token PROC {\
218
	TYPE t, EXP : DESTROYER : e1,\
219
	EXP lvalue : PTR ( t ) : e2,\
220
	EXP lvalue : LIST ( PTR ( t ) ) : e3,\
221
	EXP : LIST ( PTR ( t ) ) : e4 |\
222
	EXP e1, EXP e2, EXP e3, EXP e4\
223
    } STATEMENT DESTROY_CONS_ptr #
224
 
225
#pragma token PROC {\
226
	TYPE t, EXP : PTR ( t ) : e2,\
227
	EXP lvalue : STACK ( PTR ( t ) ) : e3 |\
228
	EXP e2, EXP e3\
229
    } STATEMENT PUSH_ptr #
230
 
231
#pragma token PROC {\
232
	TYPE t, EXP lvalue : PTR ( t ) : e2,\
233
	EXP lvalue : STACK ( PTR ( t ) ) : e3 |\
234
	EXP e2, EXP e3\
235
    } STATEMENT POP_ptr #
236
 
237
#pragma interface SIZE_ptr COPY_ptr DEREF_ptr
238
#pragma interface CONS_ptr UN_CONS_ptr DESTROY_CONS_ptr
239
#pragma interface PUSH_ptr POP_ptr
240
 
241
 
242
/* List token specifications */
243
 
244
#pragma token PROC {\
245
	TYPE t, EXP : LIST ( t ) : e |\
246
	EXP e\
247
    } EXP : PTR ( t ) : HEAD_list #
248
 
249
#pragma token PROC {\
250
	TYPE t, EXP : LIST ( t ) : e |\
251
	EXP e\
252
    } EXP : PTR ( LIST ( t ) ) : PTR_TAIL_list #
253
 
254
#pragma token PROC {\
255
	TYPE t, EXP : LIST ( t ) : e |\
256
	EXP e\
257
    } EXP : LIST ( t ) : TAIL_list #
258
 
259
#pragma token PROC {\
260
	TYPE t, EXP : LIST ( t ) : e1 |\
261
	EXP e1\
262
    } EXP : unsigned : LENGTH_list #
263
 
264
#pragma token PROC {\
265
	TYPE t, EXP : LIST ( t ) : e1 |\
266
	EXP e1\
267
    } EXP : LIST ( t ) : END_list #
268
 
269
#pragma token PROC {\
270
	TYPE t, EXP : LIST ( t ) : e1 |\
271
	EXP e1\
272
    } EXP : LIST ( t ) : REVERSE_list #
273
 
274
#pragma token PROC {\
275
	TYPE t, EXP : LIST ( t ) : e1, EXP : LIST ( t ) : e2 |\
276
	EXP e1, EXP e2\
277
    } EXP : LIST ( t ) : APPEND_list #
278
 
279
#pragma token PROC (\
280
	TYPE t\
281
    ) EXP const : LIST ( t ) : NULL_list #
282
 
283
#pragma token PROC {\
284
	TYPE t, EXP : LIST ( t ) : e |\
285
	EXP e\
286
    } EXP : int : IS_NULL_list #
287
 
288
#pragma token PROC {\
289
	TYPE t, EXP : LIST ( t ) : e1, EXP : LIST ( t ) : e2 |\
290
	EXP e1, EXP e2\
291
    } EXP : int : EQ_list #
292
 
293
#pragma token PROC (\
294
	TYPE t\
295
    ) EXP : LIST ( t ) : UNIQ_list #
296
 
297
#pragma token PROC {\
298
	TYPE t, EXP : LIST ( t ) : e |\
299
	EXP e\
300
    } EXP : void : DESTROY_UNIQ_list #
301
 
302
#pragma token PROC {\
303
	TYPE t, EXP : LIST ( t ) : e1, EXP : SIZE ( t ) : e2 |\
304
	EXP e1, EXP e2\
305
    } STATEMENT DESTROY_list #
306
 
307
#pragma interface HEAD_list PTR_TAIL_list TAIL_list
308
#pragma interface LENGTH_list END_list REVERSE_list APPEND_list
309
#pragma interface NULL_list IS_NULL_list EQ_list
310
#pragma interface UNIQ_list DESTROY_UNIQ_list DESTROY_list
311
 
312
#ifdef tdf_IO_ROUTINES
313
#pragma token PROC {\
314
	TYPE t, EXP : LIST ( t ) : e |\
315
	EXP e\
316
    } EXP : void * : VOIDSTAR_list #
317
#pragma interface VOIDSTAR_list
318
#endif
319
 
320
#pragma token PROC (\
321
	TYPE t\
322
    ) EXP const : SIZE ( LIST ( t ) ) : SIZE_list #
323
 
324
#pragma token PROC {\
325
	TYPE t, EXP : PTR ( LIST ( t ) ) : e1,\
326
	EXP : LIST ( t ) : e2 |\
327
	EXP e1, EXP e2\
328
    } EXP : void : COPY_list #
329
 
330
#pragma token PROC {\
331
	TYPE t, EXP : PTR ( LIST ( t ) ) : e |\
332
	EXP e\
333
    } EXP : LIST ( t ) : DEREF_list #
334
 
335
#pragma token PROC {\
336
	TYPE t, EXP : LIST ( t ) : e2,\
337
	EXP : LIST ( LIST ( t ) ) : e3,\
338
	EXP lvalue : LIST ( LIST ( t ) ) : e4 |\
339
	EXP e2, EXP e3, EXP e4\
340
    } STATEMENT CONS_list #
341
 
342
#pragma token PROC {\
343
	TYPE t, EXP lvalue : LIST ( t ) : e2,\
344
	EXP lvalue : LIST ( LIST ( t ) ) : e3,\
345
	EXP : LIST ( LIST ( t ) ) : e4 |\
346
	EXP e2, EXP e3, EXP e4\
347
    } STATEMENT UN_CONS_list #
348
 
349
#pragma token PROC {\
350
	TYPE t, EXP : DESTROYER : e1,\
351
	EXP lvalue : LIST ( t ) : e2,\
352
	EXP lvalue : LIST ( LIST ( t ) ) : e3,\
353
	EXP : LIST ( LIST ( t ) ) : e4 |\
354
	EXP e1, EXP e2, EXP e3, EXP e4\
355
    } STATEMENT DESTROY_CONS_list #
356
 
357
#pragma token PROC {\
358
	TYPE t, EXP : LIST ( t ) : e2,\
359
	EXP lvalue : STACK ( LIST ( t ) ) : e3 |\
360
	EXP e2, EXP e3\
361
    } STATEMENT PUSH_list #
362
 
363
#pragma token PROC {\
364
	TYPE t, EXP lvalue : LIST ( t ) : e2,\
365
	EXP lvalue : STACK ( LIST ( t ) ) : e3 |\
366
	EXP e2, EXP e3\
367
    } STATEMENT POP_list #
368
 
369
#pragma interface SIZE_list COPY_list DEREF_list
370
#pragma interface CONS_list UN_CONS_list DESTROY_CONS_list
371
#pragma interface PUSH_list POP_list
372
 
373
 
374
/* Stack token specifications */
375
 
376
#pragma token PROC (\
377
	TYPE t\
378
    ) EXP const : STACK ( t ) : NULL_stack #
379
 
380
#pragma token PROC {\
381
	TYPE t, EXP : STACK ( t ) : e |\
382
	EXP e\
383
    } EXP : int : IS_NULL_stack #
384
 
385
#pragma token PROC {\
386
	TYPE t, EXP : STACK ( t ) : e1 |\
387
	EXP e1\
388
    } EXP : LIST ( t ) : LIST_stack #
389
 
390
#pragma token PROC {\
391
	TYPE t, EXP : LIST ( t ) : e1 |\
392
	EXP e1\
393
    } EXP : STACK ( t ) : STACK_list #
394
 
395
#pragma interface NULL_stack IS_NULL_stack LIST_stack STACK_list
396
 
397
#pragma token PROC (\
398
	TYPE t\
399
    ) EXP const : SIZE ( STACK ( t ) ) : SIZE_stack #
400
 
401
#pragma token PROC {\
402
	TYPE t, EXP : PTR ( STACK ( t ) ) : e1,\
403
	EXP : STACK ( t ) : e2 |\
404
	EXP e1, EXP e2\
405
    } EXP : void : COPY_stack #
406
 
407
#pragma token PROC {\
408
	TYPE t, EXP : PTR ( STACK ( t ) ) : e |\
409
	EXP e\
410
    } EXP : STACK ( t ) : DEREF_stack #
411
 
412
#pragma token PROC {\
413
	TYPE t, EXP : STACK ( t ) : e2,\
414
	EXP : LIST ( STACK ( t ) ) : e3,\
415
	EXP lvalue : LIST ( STACK ( t ) ) : e4 |\
416
	EXP e2, EXP e3, EXP e4\
417
    } STATEMENT CONS_stack #
418
 
419
#pragma token PROC {\
420
	TYPE t, EXP lvalue : STACK ( t ) : e2,\
421
	EXP lvalue : LIST ( STACK ( t ) ) : e3,\
422
	EXP : LIST ( STACK ( t ) ) : e4 |\
423
	EXP e2, EXP e3, EXP e4\
424
    } STATEMENT UN_CONS_stack #
425
 
426
#pragma token PROC {\
427
	TYPE t, EXP : DESTROYER : e1,\
428
	EXP lvalue : STACK ( t ) : e2,\
429
	EXP lvalue : LIST ( STACK ( t ) ) : e3,\
430
	EXP : LIST ( STACK ( t ) ) : e4 |\
431
	EXP e1, EXP e2, EXP e3, EXP e4\
432
    } STATEMENT DESTROY_CONS_stack #
433
 
434
#pragma token PROC {\
435
	TYPE t, EXP : STACK ( t ) : e2,\
436
	EXP lvalue : STACK ( STACK ( t ) ) : e3 |\
437
	EXP e2, EXP e3\
438
    } STATEMENT PUSH_stack #
439
 
440
#pragma token PROC {\
441
	TYPE t, EXP lvalue : STACK ( t ) : e2,\
442
	EXP lvalue : STACK ( STACK ( t ) ) : e3 |\
443
	EXP e2, EXP e3\
444
    } STATEMENT POP_stack #
445
 
446
#pragma interface SIZE_stack COPY_stack DEREF_stack
447
#pragma interface CONS_stack UN_CONS_stack DESTROY_CONS_stack
448
#pragma interface PUSH_stack POP_stack
449
 
450
 
451
/* Size token specifications */
452
 
453
#pragma token PROC {\
454
	TYPE t, VARIETY v,\
455
	EXP : SIZE ( t ) : e1, EXP : v : e2 |\
456
	EXP e1, EXP e2\
457
    } EXP : SIZE ( t ) : SCALE #
458
 
459
#pragma interface SCALE
460
 
461
 
462
/* Definitions for primitive int */
463
 
464
#pragma token EXP const : SIZE ( int ) : SIZE_int #
465
 
466
#pragma token PROC (\
467
	EXP : PTR ( int ) :,\
468
	EXP : int :\
469
    ) EXP : void : COPY_int #
470
 
471
#pragma token PROC (\
472
	EXP : PTR ( int ) :\
473
    ) EXP : int : DEREF_int #
474
 
475
#pragma token PROC (\
476
	EXP : int :,\
477
	EXP : LIST ( int ) :,\
478
	EXP lvalue : LIST ( int ) :\
479
    ) STATEMENT CONS_int #
480
 
481
#pragma token PROC (\
482
	EXP lvalue : int :,\
483
	EXP lvalue : LIST ( int ) :,\
484
	EXP : LIST ( int ) :\
485
    ) STATEMENT UN_CONS_int #
486
 
487
#pragma token PROC (\
488
	EXP : DESTROYER :,\
489
	EXP lvalue : int :,\
490
	EXP lvalue : LIST ( int ) :,\
491
	EXP : LIST ( int ) :\
492
    ) STATEMENT DESTROY_CONS_int #
493
 
494
#pragma token PROC (\
495
	EXP : int :,\
496
	EXP lvalue : STACK ( int ) :\
497
    ) STATEMENT PUSH_int #
498
 
499
#pragma token PROC (\
500
	EXP lvalue : int :,\
501
	EXP lvalue : STACK ( int ) :\
502
    ) STATEMENT POP_int #
503
 
504
#pragma interface SIZE_int COPY_int DEREF_int
505
#pragma interface CONS_int UN_CONS_int DESTROY_CONS_int
506
#pragma interface PUSH_int POP_int
507
 
508
 
509
/* Definitions for primitive unsigned */
510
 
511
#pragma token EXP const : SIZE ( unsigned ) : SIZE_unsigned #
512
 
513
#pragma token PROC (\
514
	EXP : PTR ( unsigned ) :,\
515
	EXP : unsigned :\
516
    ) EXP : void : COPY_unsigned #
517
 
518
#pragma token PROC (\
519
	EXP : PTR ( unsigned ) :\
520
    ) EXP : unsigned : DEREF_unsigned #
521
 
522
#pragma token PROC (\
523
	EXP : unsigned :,\
524
	EXP : LIST ( unsigned ) :,\
525
	EXP lvalue : LIST ( unsigned ) :\
526
    ) STATEMENT CONS_unsigned #
527
 
528
#pragma token PROC (\
529
	EXP lvalue : unsigned :,\
530
	EXP lvalue : LIST ( unsigned ) :,\
531
	EXP : LIST ( unsigned ) :\
532
    ) STATEMENT UN_CONS_unsigned #
533
 
534
#pragma token PROC (\
535
	EXP : DESTROYER :,\
536
	EXP lvalue : unsigned :,\
537
	EXP lvalue : LIST ( unsigned ) :,\
538
	EXP : LIST ( unsigned ) :\
539
    ) STATEMENT DESTROY_CONS_unsigned #
540
 
541
#pragma token PROC (\
542
	EXP : unsigned :,\
543
	EXP lvalue : STACK ( unsigned ) :\
544
    ) STATEMENT PUSH_unsigned #
545
 
546
#pragma token PROC (\
547
	EXP lvalue : unsigned :,\
548
	EXP lvalue : STACK ( unsigned ) :\
549
    ) STATEMENT POP_unsigned #
550
 
551
#pragma interface SIZE_unsigned COPY_unsigned DEREF_unsigned
552
#pragma interface CONS_unsigned UN_CONS_unsigned DESTROY_CONS_unsigned
553
#pragma interface PUSH_unsigned POP_unsigned
554
 
555
 
556
/* Definitions for primitive string */
557
 
558
#pragma token EXP const : SIZE ( string ) : SIZE_string #
559
 
560
#pragma token PROC (\
561
	EXP : PTR ( string ) :,\
562
	EXP : string :\
563
    ) EXP : void : COPY_string #
564
 
565
#pragma token PROC (\
566
	EXP : PTR ( string ) :\
567
    ) EXP : string : DEREF_string #
568
 
569
#pragma token PROC (\
570
	EXP : string :,\
571
	EXP : LIST ( string ) :,\
572
	EXP lvalue : LIST ( string ) :\
573
    ) STATEMENT CONS_string #
574
 
575
#pragma token PROC (\
576
	EXP lvalue : string :,\
577
	EXP lvalue : LIST ( string ) :,\
578
	EXP : LIST ( string ) :\
579
    ) STATEMENT UN_CONS_string #
580
 
581
#pragma token PROC (\
582
	EXP : DESTROYER :,\
583
	EXP lvalue : string :,\
584
	EXP lvalue : LIST ( string ) :,\
585
	EXP : LIST ( string ) :\
586
    ) STATEMENT DESTROY_CONS_string #
587
 
588
#pragma token PROC (\
589
	EXP : string :,\
590
	EXP lvalue : STACK ( string ) :\
591
    ) STATEMENT PUSH_string #
592
 
593
#pragma token PROC (\
594
	EXP lvalue : string :,\
595
	EXP lvalue : STACK ( string ) :\
596
    ) STATEMENT POP_string #
597
 
598
#pragma interface SIZE_string COPY_string DEREF_string
599
#pragma interface CONS_string UN_CONS_string DESTROY_CONS_string
600
#pragma interface PUSH_string POP_string
601
 
602
 
603
/* Definitions for union PARAMETER */
604
 
605
#define ORDER_par ( ( unsigned ) 1 )
606
#pragma token EXP const : PARAMETER : NULL_par #
607
#pragma token PROC ( EXP : PARAMETER : ) EXP : int : IS_NULL_par #
608
#pragma token PROC ( EXP : PARAMETER :, EXP : PARAMETER : ) EXP : int : EQ_par #
609
#pragma interface NULL_par IS_NULL_par EQ_par
610
 
611
#pragma token EXP const : SIZE ( PARAMETER ) : SIZE_par #
612
 
613
#pragma token PROC (\
614
	EXP : PTR ( PARAMETER ) :,\
615
	EXP : PARAMETER :\
616
    ) EXP : void : COPY_par #
617
 
618
#pragma token PROC (\
619
	EXP : PTR ( PARAMETER ) :\
620
    ) EXP : PARAMETER : DEREF_par #
621
 
622
#pragma token PROC (\
623
	EXP : PARAMETER :,\
624
	EXP : LIST ( PARAMETER ) :,\
625
	EXP lvalue : LIST ( PARAMETER ) :\
626
    ) STATEMENT CONS_par #
627
 
628
#pragma token PROC (\
629
	EXP lvalue : PARAMETER :,\
630
	EXP lvalue : LIST ( PARAMETER ) :,\
631
	EXP : LIST ( PARAMETER ) :\
632
    ) STATEMENT UN_CONS_par #
633
 
634
#pragma token PROC (\
635
	EXP : DESTROYER :,\
636
	EXP lvalue : PARAMETER :,\
637
	EXP lvalue : LIST ( PARAMETER ) :,\
638
	EXP : LIST ( PARAMETER ) :\
639
    ) STATEMENT DESTROY_CONS_par #
640
 
641
#pragma token PROC (\
642
	EXP : PARAMETER :,\
643
	EXP lvalue : STACK ( PARAMETER ) :\
644
    ) STATEMENT PUSH_par #
645
 
646
#pragma token PROC (\
647
	EXP lvalue : PARAMETER :,\
648
	EXP lvalue : STACK ( PARAMETER ) :\
649
    ) STATEMENT POP_par #
650
 
651
#pragma interface SIZE_par COPY_par DEREF_par
652
#pragma interface CONS_par UN_CONS_par DESTROY_CONS_par
653
#pragma interface PUSH_par POP_par
654
 
655
 
656
/* Definitions for union CONSTRUCT */
657
 
658
#define ORDER_cons ( ( unsigned ) 1 )
659
#pragma token EXP const : CONSTRUCT : NULL_cons #
660
#pragma token PROC ( EXP : CONSTRUCT : ) EXP : int : IS_NULL_cons #
661
#pragma token PROC ( EXP : CONSTRUCT :, EXP : CONSTRUCT : ) EXP : int : EQ_cons #
662
#pragma interface NULL_cons IS_NULL_cons EQ_cons
663
 
664
#pragma token EXP const : SIZE ( CONSTRUCT ) : SIZE_cons #
665
 
666
#pragma token PROC (\
667
	EXP : PTR ( CONSTRUCT ) :,\
668
	EXP : CONSTRUCT :\
669
    ) EXP : void : COPY_cons #
670
 
671
#pragma token PROC (\
672
	EXP : PTR ( CONSTRUCT ) :\
673
    ) EXP : CONSTRUCT : DEREF_cons #
674
 
675
#pragma token PROC (\
676
	EXP : CONSTRUCT :,\
677
	EXP : LIST ( CONSTRUCT ) :,\
678
	EXP lvalue : LIST ( CONSTRUCT ) :\
679
    ) STATEMENT CONS_cons #
680
 
681
#pragma token PROC (\
682
	EXP lvalue : CONSTRUCT :,\
683
	EXP lvalue : LIST ( CONSTRUCT ) :,\
684
	EXP : LIST ( CONSTRUCT ) :\
685
    ) STATEMENT UN_CONS_cons #
686
 
687
#pragma token PROC (\
688
	EXP : DESTROYER :,\
689
	EXP lvalue : CONSTRUCT :,\
690
	EXP lvalue : LIST ( CONSTRUCT ) :,\
691
	EXP : LIST ( CONSTRUCT ) :\
692
    ) STATEMENT DESTROY_CONS_cons #
693
 
694
#pragma token PROC (\
695
	EXP : CONSTRUCT :,\
696
	EXP lvalue : STACK ( CONSTRUCT ) :\
697
    ) STATEMENT PUSH_cons #
698
 
699
#pragma token PROC (\
700
	EXP lvalue : CONSTRUCT :,\
701
	EXP lvalue : STACK ( CONSTRUCT ) :\
702
    ) STATEMENT POP_cons #
703
 
704
#pragma interface SIZE_cons COPY_cons DEREF_cons
705
#pragma interface CONS_cons UN_CONS_cons DESTROY_CONS_cons
706
#pragma interface PUSH_cons POP_cons
707
 
708
 
709
/* Definitions for union SORT_INFO */
710
 
711
#define ORDER_info ( ( unsigned ) 6 )
712
#pragma token EXP const : SORT_INFO : NULL_info #
713
#pragma token PROC ( EXP : SORT_INFO : ) EXP : int : IS_NULL_info #
714
#pragma token PROC ( EXP : SORT_INFO :, EXP : SORT_INFO : ) EXP : int : EQ_info #
715
#pragma interface NULL_info IS_NULL_info EQ_info
716
 
717
#pragma token EXP const : SIZE ( SORT_INFO ) : SIZE_info #
718
 
719
#pragma token PROC (\
720
	EXP : PTR ( SORT_INFO ) :,\
721
	EXP : SORT_INFO :\
722
    ) EXP : void : COPY_info #
723
 
724
#pragma token PROC (\
725
	EXP : PTR ( SORT_INFO ) :\
726
    ) EXP : SORT_INFO : DEREF_info #
727
 
728
#pragma token PROC (\
729
	EXP : SORT_INFO :,\
730
	EXP : LIST ( SORT_INFO ) :,\
731
	EXP lvalue : LIST ( SORT_INFO ) :\
732
    ) STATEMENT CONS_info #
733
 
734
#pragma token PROC (\
735
	EXP lvalue : SORT_INFO :,\
736
	EXP lvalue : LIST ( SORT_INFO ) :,\
737
	EXP : LIST ( SORT_INFO ) :\
738
    ) STATEMENT UN_CONS_info #
739
 
740
#pragma token PROC (\
741
	EXP : DESTROYER :,\
742
	EXP lvalue : SORT_INFO :,\
743
	EXP lvalue : LIST ( SORT_INFO ) :,\
744
	EXP : LIST ( SORT_INFO ) :\
745
    ) STATEMENT DESTROY_CONS_info #
746
 
747
#pragma token PROC (\
748
	EXP : SORT_INFO :,\
749
	EXP lvalue : STACK ( SORT_INFO ) :\
750
    ) STATEMENT PUSH_info #
751
 
752
#pragma token PROC (\
753
	EXP lvalue : SORT_INFO :,\
754
	EXP lvalue : STACK ( SORT_INFO ) :\
755
    ) STATEMENT POP_info #
756
 
757
#pragma interface SIZE_info COPY_info DEREF_info
758
#pragma interface CONS_info UN_CONS_info DESTROY_CONS_info
759
#pragma interface PUSH_info POP_info
760
 
761
 
762
/* Definitions for union SORT */
763
 
764
#define ORDER_sort ( ( unsigned ) 1 )
765
#pragma token EXP const : SORT : NULL_sort #
766
#pragma token PROC ( EXP : SORT : ) EXP : int : IS_NULL_sort #
767
#pragma token PROC ( EXP : SORT :, EXP : SORT : ) EXP : int : EQ_sort #
768
#pragma interface NULL_sort IS_NULL_sort EQ_sort
769
 
770
#pragma token EXP const : SIZE ( SORT ) : SIZE_sort #
771
 
772
#pragma token PROC (\
773
	EXP : PTR ( SORT ) :,\
774
	EXP : SORT :\
775
    ) EXP : void : COPY_sort #
776
 
777
#pragma token PROC (\
778
	EXP : PTR ( SORT ) :\
779
    ) EXP : SORT : DEREF_sort #
780
 
781
#pragma token PROC (\
782
	EXP : SORT :,\
783
	EXP : LIST ( SORT ) :,\
784
	EXP lvalue : LIST ( SORT ) :\
785
    ) STATEMENT CONS_sort #
786
 
787
#pragma token PROC (\
788
	EXP lvalue : SORT :,\
789
	EXP lvalue : LIST ( SORT ) :,\
790
	EXP : LIST ( SORT ) :\
791
    ) STATEMENT UN_CONS_sort #
792
 
793
#pragma token PROC (\
794
	EXP : DESTROYER :,\
795
	EXP lvalue : SORT :,\
796
	EXP lvalue : LIST ( SORT ) :,\
797
	EXP : LIST ( SORT ) :\
798
    ) STATEMENT DESTROY_CONS_sort #
799
 
800
#pragma token PROC (\
801
	EXP : SORT :,\
802
	EXP lvalue : STACK ( SORT ) :\
803
    ) STATEMENT PUSH_sort #
804
 
805
#pragma token PROC (\
806
	EXP lvalue : SORT :,\
807
	EXP lvalue : STACK ( SORT ) :\
808
    ) STATEMENT POP_sort #
809
 
810
#pragma interface SIZE_sort COPY_sort DEREF_sort
811
#pragma interface CONS_sort UN_CONS_sort DESTROY_CONS_sort
812
#pragma interface PUSH_sort POP_sort
813
 
814
 
815
/* Definitions for union LINKAGE */
816
 
817
#define ORDER_link ( ( unsigned ) 1 )
818
#pragma token EXP const : LINKAGE : NULL_link #
819
#pragma token PROC ( EXP : LINKAGE : ) EXP : int : IS_NULL_link #
820
#pragma token PROC ( EXP : LINKAGE :, EXP : LINKAGE : ) EXP : int : EQ_link #
821
#pragma interface NULL_link IS_NULL_link EQ_link
822
 
823
#pragma token EXP const : SIZE ( LINKAGE ) : SIZE_link #
824
 
825
#pragma token PROC (\
826
	EXP : PTR ( LINKAGE ) :,\
827
	EXP : LINKAGE :\
828
    ) EXP : void : COPY_link #
829
 
830
#pragma token PROC (\
831
	EXP : PTR ( LINKAGE ) :\
832
    ) EXP : LINKAGE : DEREF_link #
833
 
834
#pragma token PROC (\
835
	EXP : LINKAGE :,\
836
	EXP : LIST ( LINKAGE ) :,\
837
	EXP lvalue : LIST ( LINKAGE ) :\
838
    ) STATEMENT CONS_link #
839
 
840
#pragma token PROC (\
841
	EXP lvalue : LINKAGE :,\
842
	EXP lvalue : LIST ( LINKAGE ) :,\
843
	EXP : LIST ( LINKAGE ) :\
844
    ) STATEMENT UN_CONS_link #
845
 
846
#pragma token PROC (\
847
	EXP : DESTROYER :,\
848
	EXP lvalue : LINKAGE :,\
849
	EXP lvalue : LIST ( LINKAGE ) :,\
850
	EXP : LIST ( LINKAGE ) :\
851
    ) STATEMENT DESTROY_CONS_link #
852
 
853
#pragma token PROC (\
854
	EXP : LINKAGE :,\
855
	EXP lvalue : STACK ( LINKAGE ) :\
856
    ) STATEMENT PUSH_link #
857
 
858
#pragma token PROC (\
859
	EXP lvalue : LINKAGE :,\
860
	EXP lvalue : STACK ( LINKAGE ) :\
861
    ) STATEMENT POP_link #
862
 
863
#pragma interface SIZE_link COPY_link DEREF_link
864
#pragma interface CONS_link UN_CONS_link DESTROY_CONS_link
865
#pragma interface PUSH_link POP_link
866
 
867
 
868
/* Definitions for union SPECIFICATION */
869
 
870
#define ORDER_spec ( ( unsigned ) 1 )
871
#pragma token EXP const : SPECIFICATION : NULL_spec #
872
#pragma token PROC ( EXP : SPECIFICATION : ) EXP : int : IS_NULL_spec #
873
#pragma token PROC ( EXP : SPECIFICATION :, EXP : SPECIFICATION : ) EXP : int : EQ_spec #
874
#pragma interface NULL_spec IS_NULL_spec EQ_spec
875
 
876
#pragma token EXP const : SIZE ( SPECIFICATION ) : SIZE_spec #
877
 
878
#pragma token PROC (\
879
	EXP : PTR ( SPECIFICATION ) :,\
880
	EXP : SPECIFICATION :\
881
    ) EXP : void : COPY_spec #
882
 
883
#pragma token PROC (\
884
	EXP : PTR ( SPECIFICATION ) :\
885
    ) EXP : SPECIFICATION : DEREF_spec #
886
 
887
#pragma token PROC (\
888
	EXP : SPECIFICATION :,\
889
	EXP : LIST ( SPECIFICATION ) :,\
890
	EXP lvalue : LIST ( SPECIFICATION ) :\
891
    ) STATEMENT CONS_spec #
892
 
893
#pragma token PROC (\
894
	EXP lvalue : SPECIFICATION :,\
895
	EXP lvalue : LIST ( SPECIFICATION ) :,\
896
	EXP : LIST ( SPECIFICATION ) :\
897
    ) STATEMENT UN_CONS_spec #
898
 
899
#pragma token PROC (\
900
	EXP : DESTROYER :,\
901
	EXP lvalue : SPECIFICATION :,\
902
	EXP lvalue : LIST ( SPECIFICATION ) :,\
903
	EXP : LIST ( SPECIFICATION ) :\
904
    ) STATEMENT DESTROY_CONS_spec #
905
 
906
#pragma token PROC (\
907
	EXP : SPECIFICATION :,\
908
	EXP lvalue : STACK ( SPECIFICATION ) :\
909
    ) STATEMENT PUSH_spec #
910
 
911
#pragma token PROC (\
912
	EXP lvalue : SPECIFICATION :,\
913
	EXP lvalue : STACK ( SPECIFICATION ) :\
914
    ) STATEMENT POP_spec #
915
 
916
#pragma interface SIZE_spec COPY_spec DEREF_spec
917
#pragma interface CONS_spec UN_CONS_spec DESTROY_CONS_spec
918
#pragma interface PUSH_spec POP_spec
919
 
920
 
921
/* Definitions for union COMMAND */
922
 
923
#define ORDER_cmd ( ( unsigned ) 6 )
924
#pragma token EXP const : COMMAND : NULL_cmd #
925
#pragma token PROC ( EXP : COMMAND : ) EXP : int : IS_NULL_cmd #
926
#pragma token PROC ( EXP : COMMAND :, EXP : COMMAND : ) EXP : int : EQ_cmd #
927
#pragma interface NULL_cmd IS_NULL_cmd EQ_cmd
928
 
929
#pragma token EXP const : SIZE ( COMMAND ) : SIZE_cmd #
930
 
931
#pragma token PROC (\
932
	EXP : PTR ( COMMAND ) :,\
933
	EXP : COMMAND :\
934
    ) EXP : void : COPY_cmd #
935
 
936
#pragma token PROC (\
937
	EXP : PTR ( COMMAND ) :\
938
    ) EXP : COMMAND : DEREF_cmd #
939
 
940
#pragma token PROC (\
941
	EXP : COMMAND :,\
942
	EXP : LIST ( COMMAND ) :,\
943
	EXP lvalue : LIST ( COMMAND ) :\
944
    ) STATEMENT CONS_cmd #
945
 
946
#pragma token PROC (\
947
	EXP lvalue : COMMAND :,\
948
	EXP lvalue : LIST ( COMMAND ) :,\
949
	EXP : LIST ( COMMAND ) :\
950
    ) STATEMENT UN_CONS_cmd #
951
 
952
#pragma token PROC (\
953
	EXP : DESTROYER :,\
954
	EXP lvalue : COMMAND :,\
955
	EXP lvalue : LIST ( COMMAND ) :,\
956
	EXP : LIST ( COMMAND ) :\
957
    ) STATEMENT DESTROY_CONS_cmd #
958
 
959
#pragma token PROC (\
960
	EXP : COMMAND :,\
961
	EXP lvalue : STACK ( COMMAND ) :\
962
    ) STATEMENT PUSH_cmd #
963
 
964
#pragma token PROC (\
965
	EXP lvalue : COMMAND :,\
966
	EXP lvalue : STACK ( COMMAND ) :\
967
    ) STATEMENT POP_cmd #
968
 
969
#pragma interface SIZE_cmd COPY_cmd DEREF_cmd
970
#pragma interface CONS_cmd UN_CONS_cmd DESTROY_CONS_cmd
971
#pragma interface PUSH_cmd POP_cmd
972
 
973
 
974
#endif